/* Window geometry, not device identity, owns the shell. Kept separate from the
   legacy app.css cascade; consolidate shell chrome here as it is touched. */
:root {
  --futbora-safe-top: env(safe-area-inset-top, 0px);
  --futbora-safe-right: env(safe-area-inset-right, 0px);
  --futbora-safe-bottom: env(safe-area-inset-bottom, 0px);
  --futbora-safe-left: env(safe-area-inset-left, 0px);
  --futbora-header-height: calc(52px + var(--futbora-safe-top));
}

body:has(.mobile-primary-navigation) .sidebar .top-row.navbar {
  position: fixed !important;
  inset: 0 0 auto;
  width: auto;
  height: var(--futbora-header-height);
  padding: var(--futbora-safe-top) max(12px, var(--futbora-safe-right)) 0 max(12px, var(--futbora-safe-left));
}

body:has(.mobile-primary-navigation) .page > main {
  min-width: 0;
  padding-top: calc(var(--futbora-header-height) + 12px);
  padding-right: var(--futbora-safe-right);
  padding-left: var(--futbora-safe-left);
}

@media (min-width: 768px) {
  :root { --futbora-header-height: calc(76px + var(--futbora-safe-top)); }
  body:has(.mobile-primary-navigation) .navbar-container .top-row-racha-select {
    flex: 0 1 280px !important;
    margin-right: 0;
    overflow: hidden;
  }
}

/* Dialogs follow the visible viewport, including an open keyboard. Their body
   scrolls inside the available space; folding never closes/remounts a dialog. */
.mud-dialog-container {
  box-sizing: border-box;
  top: var(--futbora-viewport-top, 0px);
  bottom: auto;
  height: var(--futbora-viewport-height, 100dvh);
  padding: max(8px, var(--futbora-safe-top)) max(8px, var(--futbora-safe-right)) max(8px, var(--futbora-safe-bottom)) max(8px, var(--futbora-safe-left));
}
.mud-dialog-container .mud-dialog {
  min-width: 0;
  flex-shrink: 1;
  max-height: 100%;
  margin: 0;
}
.mud-dialog .mud-dialog-content {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior-y: contain;
}
.mud-dialog .mud-dialog-actions { flex-wrap: wrap; }

/* Narrow outer displays still need six readable navigation actions. */
@media (max-width: 359px) {
  .mobile-primary-navigation .mobile-primary-navigation__item { font-size: .6rem; }
}

/* iOS automatically zooms a focused text control below 16px. Keep touch
   controls readable without disabling the user's pinch zoom or text scaling. */
@media (pointer: coarse) {
  input:is(:not([type]), [type="text"], [type="email"], [type="password"], [type="search"], [type="tel"], [type="url"], [type="number"]),
  textarea,
  select {
    font-size: max(16px, 1em);
    max-width: 100%;
    box-sizing: border-box;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  body:has(.mobile-primary-navigation) .navbar-container { gap: 8px; }
  body:has(.mobile-primary-navigation) .navbar-container .top-row-racha-select {
    flex: 0 1 180px !important;
    margin-right: 0;
    overflow: hidden;
  }
}

/* Financeiro interno: aproveita a largura disponível no celular. */
@media (max-width: 600px) {
  .mud-dialog.finance-dialog {
    width: calc(100% - 16px);
    max-width: calc(100% - 16px);
    margin: 8px;
    max-height: calc(100% - 16px);
  }

  .finance-dialog .mud-dialog-title,
  .finance-dialog .mud-dialog-content {
    padding: 16px;
  }

  .finance-dialog .mud-dialog-actions {
    padding: 12px 16px;
  }
}
