:root {
  --brui-safe-bottom: max(28px, env(safe-area-inset-bottom, 0px));
  --brui-app-bar-space: 56px;
  --brui-page-bottom: calc(var(--brui-app-bar-space) + var(--brui-safe-bottom));
  --brui-radius: 16px;
  --brui-radius-sm: 11px;
  --brui-gap: 16px;
  --brui-text: #0f172a;
  --brui-muted: #64748b;
  --brui-border: rgba(15, 23, 42, .10);
  --brui-bg: #f8fafc;
  --brui-surface: #fff;
  --brui-primary: #1d4ed8;
  --brui-primary-hover: #1e40af;
  --brui-danger: #b91c1c;
  --brui-focus: rgba(37, 99, 235, .30);
  --brui-shadow: 0 8px 28px rgba(15, 23, 42, .07);
}

html.brui-module-page,
body.brui-module-page {
  min-height: 100%;
  height: auto !important;
  overflow-y: auto !important;
  overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
}

body.brui-module-page {
  padding-bottom: var(--brui-page-bottom) !important;
  box-sizing: border-box;
}

:where(
  .bremp-app, .brasilaim-module, .brasilaim-app, .brasilaim-page,
  .brasilaim-content, .brasilaim-shell, .brasilaim-wrapper,
  .brasilaim-container, [data-brasilaim-module], [data-module-slug],
  [class*="brasilaim-"][class*="-app"], [class*="brasilaim-"][class*="-page"]
) {
  box-sizing: border-box;
  min-height: 100%;
  color: var(--brui-text);
  padding-bottom: var(--brui-page-bottom) !important;
}

:where(.brui-enhanced) *,
:where(.brui-enhanced) *::before,
:where(.brui-enhanced) *::after { box-sizing: border-box; }

.brui-page {
  width: min(100%, 1280px);
  margin-inline: auto;
  padding: 20px 16px var(--brui-page-bottom);
}

.brui-card,
:where(.brui-enhanced) .brasilaim-card {
  background: var(--brui-surface);
  border: 1px solid var(--brui-border);
  border-radius: var(--brui-radius);
  box-shadow: var(--brui-shadow);
  padding: 18px;
}

.brui-stack { display: grid; gap: var(--brui-gap); }
.brui-grid { display: grid; gap: var(--brui-gap); grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.brui-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.brui-scroll-end { height: var(--brui-page-bottom); flex: 0 0 var(--brui-page-bottom); pointer-events: none; }

:where(.brui-enhanced) :is(button, .button, [role="button"], input[type="submit"], input[type="button"]) {
  min-height: 42px;
  border-radius: var(--brui-radius-sm);
  font-weight: 600;
  touch-action: manipulation;
}

:where(.brui-enhanced) :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  max-width: 100%;
  min-height: 42px;
  border-radius: var(--brui-radius-sm);
  border: 1px solid rgba(100, 116, 139, .35);
  background: #fff;
  color: var(--brui-text);
  padding: 9px 11px;
}

:where(.brui-enhanced) textarea { min-height: 110px; resize: vertical; }

:where(.brui-enhanced) :is(button, .button, [role="button"], input, select, textarea, a):focus-visible {
  outline: 3px solid var(--brui-focus);
  outline-offset: 2px;
}

:where(.brui-enhanced) table {
  width: 100%;
  border-collapse: collapse;
}
:where(.brui-enhanced) th,
:where(.brui-enhanced) td {
  padding: 11px 12px;
  border-bottom: 1px solid var(--brui-border);
  text-align: start;
  vertical-align: top;
}

.brui-alert { padding: 12px 14px; border-radius: var(--brui-radius-sm); border: 1px solid var(--brui-border); background: var(--brui-bg); }
.brui-muted { color: var(--brui-muted); }
.brui-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.brui-admin-card {
  max-width: 860px;
  margin-top: 18px;
  padding: 20px;
  background: #fff;
  border: 1px solid #dcdcde;
  border-radius: 12px;
  box-shadow: 0 4px 18px rgba(0,0,0,.04);
}
.brui-status-table td:first-child { width: 190px; font-weight: 600; }

@media (max-width: 782px) {
  :root {
    --brui-app-bar-space: 68px;
    --brui-page-bottom: calc(var(--brui-app-bar-space) + max(32px, env(safe-area-inset-bottom, 0px)));
  }
  .brui-page { padding-inline: 12px; }
  .brui-card, :where(.brui-enhanced) .brasilaim-card { padding: 15px; border-radius: 14px; }
  :where(.brui-enhanced) table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  :where(.brui-enhanced) :is(input, select, textarea) { font-size: 16px; }
}

@media (display-mode: standalone) {
  :root { --brui-page-bottom: calc(var(--brui-app-bar-space) + max(36px, env(safe-area-inset-bottom, 0px))); }
}

@media (prefers-reduced-motion: reduce) {
  :where(.brui-enhanced) *, :where(.brui-enhanced) *::before, :where(.brui-enhanced) *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
