/*
 * Bem Que Inspira — Shared App Shell v1
 * Canonical responsive shell for public interactive modules.
 * Master Visão remains the visual reference while it is still under validation;
 * new modules consume this shared shell instead of creating independent layouts.
 */
.bqi-app-shell,
.bqi-app-shell *,
.bqi-app-shell *::before,
.bqi-app-shell *::after {
  box-sizing: border-box;
}

.bqi-app-shell {
  width: 100%;
  max-width: none;
  min-width: 0;
}

.bqi-app-shell--viewport {
  position: fixed;
  inset: 0;
  z-index: 99980;
  width: 100vw;
  max-width: 100vw;
  height: 100vh;
  min-height: 0;
  margin: 0 !important;
  left: 0;
  right: 0;
  border-radius: 0 !important;
  padding: clamp(20px, 2.6vw, 48px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  background: #fff;
  box-shadow: none !important;
}

body.admin-bar .bqi-app-shell--viewport {
  top: 32px;
  height: calc(100vh - 32px);
}

.bqi-app-shell--embedded {
  width: 100%;
  max-width: 1100px;
  margin: 24px auto;
}

@supports (height: 100dvh) {
  .bqi-app-shell--viewport {
    height: 100dvh;
  }
  body.admin-bar .bqi-app-shell--viewport {
    height: calc(100dvh - 32px);
  }
}

@media (max-width: 782px) {
  body.admin-bar .bqi-app-shell--viewport {
    top: 46px;
    height: calc(100vh - 46px);
  }

  @supports (height: 100dvh) {
    body.admin-bar .bqi-app-shell--viewport {
      height: calc(100dvh - 46px);
    }
  }
}

@media (max-width: 640px) {
  .bqi-app-shell--viewport {
    padding: 16px;
  }
}
