/* ReservaAI — PWA / tablet-first / fullscreen (carregar após theme_reservaai.css) */

:root {
  --reservaai-vh: 100dvh;
  --reservaai-vh-fallback: 100vh;
  --pwa-safe-top: env(safe-area-inset-top, 0px);
  --pwa-safe-bottom: env(safe-area-inset-bottom, 0px);
  --pwa-safe-left: env(safe-area-inset-left, 0px);
  --pwa-safe-right: env(safe-area-inset-right, 0px);
}

html[data-pwa-tablet="true"] .admin-page,
html[data-pwa-tablet="true"] .auth-page,
html[data-pwa-tablet="true"] body.financeiro-standalone-page {
  min-height: 100dvh;
}

html[data-display-mode="standalone"] .admin-page,
html[data-display-mode="standalone"] .auth-page,
html[data-display-mode="standalone"] body.financeiro-standalone-page,
html[data-fullscreen="true"] .admin-page,
html[data-fullscreen="true"] .auth-page,
html[data-fullscreen="true"] body.financeiro-standalone-page {
  min-height: 100dvh;
  overscroll-behavior: none;
}

html[data-display-mode="standalone"] body.admin-page,
html[data-fullscreen="true"] body.admin-page {
  -webkit-tap-highlight-color: transparent;
}

html[data-display-mode="standalone"] .topbar,
html[data-fullscreen="true"] .topbar {
  padding-top: max(0px, var(--pwa-safe-top));
}

html[data-display-mode="standalone"] .admin-main,
html[data-fullscreen="true"] .admin-main {
  padding-bottom: max(2rem, calc(2rem + var(--pwa-safe-bottom)));
}

/* Botão discreto — visível em tablet / modo app */
.admin-pwa-fullscreen-btn {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 36px;
  padding: 0 0.65rem;
  border-radius: 999px;
  border: 1px solid rgba(157, 181, 220, 0.85);
  background: rgba(255, 255, 255, 0.92);
  color: #294d78;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(15, 38, 71, 0.08);
  backdrop-filter: blur(6px);
  flex-shrink: 0;
}

.admin-pwa-fullscreen-btn svg {
  width: 15px;
  height: 15px;
  flex-shrink: 0;
}

.admin-pwa-fullscreen-btn:hover:not(:disabled),
.admin-pwa-fullscreen-btn:focus-visible {
  border-color: #93c5fd;
  color: #1d4ed8;
  background: #eff6ff;
}

.admin-pwa-fullscreen-btn:disabled {
  opacity: 0.55;
  cursor: default;
}

html[data-pwa-tablet="true"] .admin-pwa-fullscreen-btn,
html[data-display-mode="standalone"] .admin-pwa-fullscreen-btn {
  display: inline-flex;
}

html[data-display-mode="standalone"] .admin-pwa-fullscreen-btn[data-pwa-role="enter"],
html[data-fullscreen="true"] .admin-pwa-fullscreen-btn[data-pwa-role="enter"] {
  display: none;
}

html[data-fullscreen="true"] .admin-pwa-fullscreen-btn[data-pwa-role="exit"] {
  display: inline-flex;
}

.admin-pwa-fullscreen-btn[data-pwa-role="exit"] {
  display: none;
}

.admin-topbar-pwa-tools {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-left: auto;
}

@media (min-width: 768px) and (max-width: 1199px) {
  html[data-pwa-tablet="true"] .admin-topbar-pwa-tools {
    display: flex;
    position: fixed;
    top: max(0.55rem, var(--pwa-safe-top));
    right: max(0.65rem, var(--pwa-safe-right));
    z-index: 32005;
    margin: 0;
  }
}

/* Banner instalar app */
.pwa-install-banner {
  position: fixed;
  left: max(0.75rem, var(--pwa-safe-left));
  right: max(0.75rem, var(--pwa-safe-right));
  bottom: max(0.75rem, var(--pwa-safe-bottom));
  z-index: 32500;
  display: grid;
  gap: 0.65rem;
  padding: 0.9rem 1rem;
  border-radius: 16px;
  border: 1px solid rgba(147, 197, 253, 0.9);
  background: linear-gradient(165deg, #ffffff 0%, #f0f7ff 100%);
  box-shadow: 0 18px 48px rgba(15, 38, 71, 0.2);
  animation: pwa-install-banner-in 0.35s ease;
}

.pwa-install-banner[hidden] {
  display: none !important;
}

@keyframes pwa-install-banner-in {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.pwa-install-banner-copy strong {
  display: block;
  font-size: 0.92rem;
  color: #1e3a5f;
  margin-bottom: 0.2rem;
}

.pwa-install-banner-copy p {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.4;
  color: #475569;
}

.pwa-install-banner-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.pwa-install-banner-actions button {
  min-height: 40px;
  padding: 0 0.85rem;
  border-radius: 10px;
  font-size: 0.78rem;
  font-weight: 800;
  cursor: pointer;
}

.pwa-install-banner-install {
  border: none;
  background: #2563eb;
  color: #fff;
  box-shadow: 0 8px 20px rgba(37, 99, 235, 0.28);
}

.pwa-install-banner-fullscreen {
  border: 1px solid rgba(157, 181, 220, 0.95);
  background: #fff;
  color: #294d78;
}

.pwa-install-banner-dismiss {
  border: none;
  background: transparent;
  color: #64748b;
  font-weight: 600;
}

html[data-display-mode="standalone"] .pwa-install-banner,
html[data-fullscreen="true"] .pwa-install-banner {
  display: none !important;
}

/* Login: banner acima do card */
.auth-page .pwa-install-banner {
  max-width: min(440px, calc(100vw - 1.5rem));
  margin: 0 auto;
}

@media (orientation: portrait) and (min-width: 768px) and (max-width: 1199px) {
  html[data-pwa-tablet="true"] .admin-page .admin-main {
    padding-top: 1rem;
  }

  html[data-pwa-tablet="true"] body.admin-page .admin-shell {
    min-height: calc(100dvh - var(--admin-tablet-topbar-offset, 72px) - 2rem);
  }
}
