/* ==========================================================================
   RUKIA F10 — layout.css
   --------------------------------------------------------------------------
   F10.4.3-C — camada estrutural do shell da aplicação.

   Responsabilidade:
   - App shell/frame/content
   - Travamento da rolagem global
   - Rolagem interna do Cliente Público
   - Stack/layout operacional

   NÃO contém:
   - Header/Footer
   - Login CP-01
   - Cliente Público/cards
   - Grid/KPIs/modal/importação
   ========================================================================== */

/* Layout viewport */

html,
body {
  width: 100%;
  height: 100%;
}

body {
  overflow: hidden;
}

/* Layout base */

.app-shell {
  width: min(var(--container-max), calc(100% - 12px));
  height: 100vh;
  min-height: 640px;
  margin: 0 auto;
  padding: 6px 0;
  overflow: hidden;
}

.app-frame {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  height: 100%;
  min-height: 0;
  background: var(--bg-shell);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
  backdrop-filter: blur(18px);
}

.app-content {
  flex: 1 1 auto;
  min-height: 0;
  padding: 12px;
  overflow: hidden;
}

/* CP-02.1 — rolagem interna somente no Cliente Público.
   Mantém header e rodapé fixos dentro do frame e preserva o scroll próprio da tabela operacional. */
.app-shell-client .app-content {
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.app-shell-client .client-view {
  padding-bottom: 18px;
}

.stack,
.operation-layout {
  display: grid;
  height: 100%;
  min-height: 0;
  gap: 10px;
}

.operation-layout {
  grid-template-rows: auto minmax(0, 1fr);
}

.operation-sticky {
  position: relative;
  z-index: 20;
  display: grid;
  gap: 10px;
  min-height: 0;
}