/* BSAdmin LAB003 host conformance v1.0.0.
 * Scope: BSAdmin HTML shells, legacy forms and their non-Quasar dialogs.
 * Source of truth: published Registry variables + BSEventos canonical host contract.
 * NO changes to frozen BSAlert v32.9, LAB003 renderer internals or native-dialog host geometry.
 */
:root {
  --bsadmin-field-bg: var(--bs-form-background, #f6f8f8);
  --bsadmin-field-border: var(--bs-form-border-color, rgba(0, 48, 62, .22));
  --bsadmin-field-focus: var(--bs-form-focus-border-color, var(--bs-petrol, #007492));
  --bsadmin-card-line: var(--bs-line, #dfe8eb);
  --bsadmin-title: var(--bs-title-color, #02465d);
  --bsadmin-muted: var(--bs-muted, #61777e);
}
/* Neutral shell geometry (the LAB003 renderer keeps authority over tokens). */
.admin-body .admin-content { width: min(95rem, calc(100% - 2rem)); max-width: 95rem; margin-inline: auto; }
.admin-body .admin-topbar h1,
.admin-body .panel-header h2,
.admin-body .settings-panel h2,
.admin-body .admin-modal-card h2,
.admin-body .visual-dialog-card h2 { color: var(--bsadmin-title); }
.admin-body :is(.users-panel,.settings-panel,.stat-card,.configuration-summary,.access-group,.visual-app-card) {
  border-color: var(--bsadmin-card-line);
  border-radius: var(--bs-card-radius, 0.875rem);
}
.admin-body :is(.admin-modal, .admin-dialog) .form-grid,
.admin-body .admin-content .form-grid { column-gap: 1rem; row-gap: 1rem; align-items: start; }
.admin-body .form-actions { justify-content: flex-end; gap: .625rem; }
/* Native dialogs (risk, refund and Registry) retain their functional host geometry. */
.admin-body :is(.risk-modal-card,.risk-confirm-card,.refund-debit-card,.visual-dialog-card,.visual-version-dialog-card) {
  color: var(--bs-text-soft, #26363e);
  border-color: var(--bsadmin-card-line);
  background: var(--bs-surface, #ffffff);
}
.admin-body :is(.risk-modal-card,.risk-confirm-card,.refund-debit-card,.visual-dialog-card,.visual-version-dialog-card) h2 {
  color: var(--bsadmin-title);
}
.admin-body :is(.risk-confirm-actions,.refund-debit-card .form-actions) {
  justify-content: flex-end;
}
.admin-body :is(.risk-confirm-card,.refund-debit-card,.visual-dialog-card) :is(p,small) {
  color: var(--bsadmin-muted);
}
/* The BSAdmin modal heading/form remains a host construct; do not rewrite its geometry. */
.admin-body .admin-modal-card { color: var(--bs-text-soft, #26363e); border: 1px solid var(--bsadmin-card-line); border-radius: .875rem; }
.admin-body .admin-modal-card > p { color: var(--bsadmin-muted); }
.admin-body .admin-modal-backdrop { background: rgba(5, 30, 38, .52); backdrop-filter: blur(2px); }
.admin-body .admin-modal-card .field > span,
.admin-body .admin-dialog .field > span,
.admin-body .admin-content .field > span {
  margin-bottom: .25rem;
  color: var(--bs-form-label-color, #61777e);
  font-family: var(--bs-form-label-font-family, 'Comfortaa', sans-serif);
  font-size: var(--bs-form-label-font-size, .675rem);
  font-weight: var(--bs-form-label-font-weight, 600);
  line-height: var(--bs-form-label-line-height, 1.25);
}
/* Login remains a distinct public-facing modal but shares the LAB003 dialog language. */
#login-modal .modal-backdrop { background: rgba(5, 30, 38, .52); backdrop-filter: blur(2px); }
#login-modal .bs-login-card {
  border-color: var(--bsadmin-card-line);
  border-radius: .875rem;
  color: var(--bs-text-soft, #26363e);
}
#login-modal .bs-login-card h2 { color: var(--bsadmin-title); }
#login-modal .bs-login-control input { background: var(--bsadmin-field-bg); border-color: var(--bsadmin-field-border); }
#login-modal .bs-login-control input:focus { border-color: var(--bsadmin-field-focus); }
@media (max-width: 760px) {
  #login-modal { padding: .625rem; }
  #login-modal .bs-login-card { max-height: calc(100dvh - 1.25rem); overflow-y: auto; overscroll-behavior: contain; }
}
/* Fields outside the Registry adapter (not Quasar internals, file/check controls or the LAB renderer). */
.admin-body :is(.admin-main,.admin-modal,.admin-dialog) :is(
  .field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
  .field select, .field textarea,
  .panel-toolbar input, .panel-toolbar select,
  .search-box input
) {
  color: var(--bs-form-text-color, #26363e);
  background: var(--bsadmin-field-bg);
  border: var(--bs-form-border-width, 1px) solid var(--bsadmin-field-border);
  border-radius: var(--bs-form-border-radius, .4375rem);
  font-family: 'Comfortaa', ui-rounded, system-ui, sans-serif;
  font-size: var(--bs-form-text-font-size, var(--bs-font-control, .6875rem));
  font-weight: var(--bs-form-text-font-weight, 500);
  transition: border-color 160ms ease, box-shadow 160ms ease;
}
.admin-body :is(.admin-main,.admin-modal,.admin-dialog) :is(
  .field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
  .field select, .field textarea,
  .panel-toolbar input, .panel-toolbar select,
  .search-box input
):focus-visible {
  outline: 0;
  border-color: var(--bsadmin-field-focus);
  box-shadow: 0 0 0 var(--bs-form-focus-ring-size, 2px)
    var(--bs-form-focus-ring-color, rgba(0, 116, 146, .18));
}
.admin-body .field small,
.admin-body .bs-field-shell .bs-form-help,
.admin-body .bs-field-shell .bs-form-error {
  font-size: var(--bs-form-help-font-size, var(--bs-font-label, .625rem));
  line-height: 1.4;
}
.admin-body :is(.field small,.bs-form-help) { color: var(--bs-form-help-color, #87959c); }
.admin-body .bs-field-shell .bs-form-error { color: var(--bs-form-error-color, #c94c48); }
/* Keep inline/field validation contextual: it is not a temporary toast. */
.admin-body :is(.admin-form-message,.form-message) { font-size: var(--bs-font-label, .625rem); }
/* Avoid the old bottom-right toast geometry; new messages are from BSEventos component. */
.admin-body .toast { display: none !important; }
/* Dedicated mobile dialog treatment: scroll inside viewport, never clip action buttons. */
@media (max-width: 760px) {
  .admin-body .admin-content { width: calc(100% - 1.25rem); }
  .admin-body .admin-modal { padding: 0; }
  .admin-body .admin-modal-card {
    width: 100%; max-width: none; max-height: 100dvh; height: min(100dvh, 100%);
    border-radius: 0; padding: 1.125rem .875rem calc(1rem + env(safe-area-inset-bottom));
    overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
  }
  .admin-body .admin-modal .form-grid { grid-template-columns: minmax(0,1fr); }
  .admin-body .admin-modal .form-grid > * { grid-column: 1 / -1; }
  .admin-body .admin-modal .form-actions { position: relative; flex-wrap: wrap; justify-content: flex-end; }
  .admin-body .admin-modal-card > p { margin-bottom: 1rem; }
}
/* iOS WebKit: 16px prevents Safari zoom and inaccessible input focusing.
 * Android/desktop keep typography controlled by LAB003 tokens. */
@supports (-webkit-touch-callout: none) {
  .admin-body :is(.admin-main,.admin-modal,.admin-dialog) :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),select,textarea
  ),
  #login-modal :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
    font-size: max(16px, var(--bs-form-text-font-size, .6875rem)) !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .admin-body .admin-modal-card { animation: none; }
}
