/* High-priority platform polish loaded after the main stylesheet. */
.profile-self-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: .42rem !important;
}

/* Standard desktop performance contract.
   Every PC gets the same low-cost rendering profile. It deliberately changes
   effects, never layout, typography, data, permissions or Android behavior. */
html.kudzu-desktop-performance:not(.kudzu-android-webview) {
  --panel-shadow: 0 4px 12px rgba(24, 54, 94, .08);
  --panel-shadow-soft: 0 2px 8px rgba(24, 54, 94, .07);
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) *,
html.kudzu-desktop-performance:not(.kudzu-android-webview) *::before,
html.kudzu-desktop-performance:not(.kudzu-android-webview) *::after {
  animation-duration: .01ms !important;
  animation-delay: 0ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0ms !important;
  transition-delay: 0ms !important;
  scroll-behavior: auto !important;
  will-change: auto !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) .bg-layer,
html.kudzu-desktop-performance:not(.kudzu-android-webview) .module-header-ambient,
html.kudzu-desktop-performance:not(.kudzu-android-webview) body.home-page::before,
html.kudzu-desktop-performance:not(.kudzu-android-webview) body.home-page::after {
  display: none !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) body,
html.kudzu-desktop-performance:not(.kudzu-android-webview) body * {
  font-family: inherit !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) body {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-weight: 400;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background: var(--bg-linear-mid) !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  p,
  small,
  td,
  input,
  select,
  textarea
) {
  font-weight: 400 !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  strong,
  b,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  th
) {
  font-weight: 600 !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .btn,
  button,
  .nav-links.nav-sidebar .btn,
  .nav-module-label,
  .sidebar-top h2,
  .module-sidebar .sidebar-top > .kudzu-core-heading,
  .field > span,
  label
) {
  font-weight: 500 !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .eyebrow,
  .nav-group-title,
  .global-status-popup-loading-eyebrow
) {
  font-weight: 500 !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .mono,
  code,
  pre,
  kbd,
  samp,
  .nav-group-title,
  .eyebrow,
  th
) {
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .panel,
  .table-panel,
  .panel-card,
  .dashboard-panel,
  .metric-card,
  .module-card,
  .module-sidebar,
  .app-header,
  .modal-window,
  .profile-popover-card
) {
  background-color: var(--surface-2) !important;
  background-image: none !important;
  box-shadow: 0 2px 8px rgba(24, 54, 94, .08) !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .module-sidebar,
  .app-header,
  .module-card,
  .metric-card
)::before {
  content: none !important;
  display: none !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .nav-module-icon,
  .module-title-icon,
  .module-icon-shell
) {
  background: var(--surface-3) !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .btn,
  .icon-btn,
  .theme-toggle,
  .nav-module-icon,
  input,
  select,
  textarea
) {
  box-shadow: none !important;
  text-shadow: none !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .btn,
  .nav-links.nav-sidebar .btn,
  .nav-module-icon,
  .module-card,
  .home-quick-action-card,
  .metric-card,
  .calendar-event-card
):hover {
  transform: none !important;
  filter: none !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) .global-status-popup[data-loading="true"] .global-status-spinner {
  width: 1.18rem;
  height: 1.18rem;
  border: 2px solid color-mix(in srgb, var(--line-strong) 30%, transparent);
  border-top-color: var(--module-header-accent, #2f7bff);
  border-right-color: color-mix(in srgb, var(--module-header-accent, #2f7bff) 66%, #00aef0);
  box-shadow: none !important;
  animation: kudzu-functional-loading-wheel .78s linear infinite !important;
  will-change: transform !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) .global-status-popup-loading {
  background: var(--surface-3) !important;
  box-shadow: none !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) .global-status-spinner-core,
html.kudzu-desktop-performance:not(.kudzu-android-webview) .global-status-popup-progress {
  display: none !important;
}

@keyframes kudzu-functional-loading-wheel {
  to {
    transform: rotate(360deg);
  }
}

/* Reportes · Centro de excepciones: preservar severidad aun en modo PC liviano.
   responsive_overrides se carga luego de styles.css y apaga adornos genéricos
   de .metric-card; este bloque repone sólo la señal crítica/barra izquierda. */
html.kudzu-desktop-performance:not(.kudzu-android-webview) body[data-module-key="reportes"] .dashboard-exception-card {
  --kc-severity-solid: var(--ta-blue, #2563eb);
  border-color: color-mix(in srgb, var(--kc-severity-solid) 44%, var(--line)) !important;
  border-left: .62rem solid var(--kc-severity-solid) !important;
  background-color: var(--surface-2) !important;
  box-shadow: 0 2px 8px rgba(24, 54, 94, .08) !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) body[data-module-key="reportes"] .dashboard-exception-card.is-negative,
html.kudzu-desktop-performance:not(.kudzu-android-webview) body[data-module-key="reportes"] .dashboard-exception-card.is-critical {
  --kc-severity-solid: var(--ta-rose, #f43f5e);
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) body[data-module-key="reportes"] .dashboard-exception-card.is-warning {
  --kc-severity-solid: var(--ta-amber, #f59e0b);
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) body[data-module-key="reportes"] .dashboard-exception-card.is-positive {
  --kc-severity-solid: var(--ta-emerald, #10b981);
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) body[data-module-key="reportes"] .dashboard-exception-card.is-info {
  --kc-severity-solid: var(--ta-blue, #2563eb);
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) body[data-module-key="reportes"] .dashboard-exception-card::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 0 auto 0 0 !important;
  width: .62rem !important;
  background: var(--kc-severity-solid) !important;
  opacity: 1 !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) .skeleton-block,
html.kudzu-desktop-performance:not(.kudzu-android-webview) .skeleton-cell {
  animation: none !important;
  background-size: 100% 100% !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) body {
  background-attachment: scroll !important;
}

@supports (content-visibility: auto) {
  html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
    .table-wrap,
    .entity-table-wrap,
    .docs-ai-card,
    .entity-card,
    .timeline-item,
    .audit-item,
    #module-movements-panel
  ):not(.modal *):not(.profile-popover *) {
    content-visibility: visible !important;
    contain-intrinsic-size: none !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) body.home-page #home-activity-panel {
    content-visibility: visible !important;
    contain-intrinsic-size: none !important;
  }
}

/* PC adaptive safety net - 2026-07-05.
   This is deliberately scoped to the standard desktop profile: reduced or
   non-maximized browser windows must reflow or expose local scrollbars instead
   of overlapping actions. Android/WebView keeps its own contract. */
html.kudzu-desktop-performance:not(.kudzu-android-webview),
html.kudzu-desktop-performance:not(.kudzu-android-webview) body {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .module-layout,
  .module-main,
  .module-main.app-shell,
  .app-shell,
  .page-shell,
  .dashboard-page,
  .workspace,
  .workspace-wide,
  .panel,
  .table-panel,
  .panel-card,
  .dashboard-panel,
  .module-summary-panel,
  .module-grid,
  .metric-grid,
  .summary-grid,
  .stats-grid,
  .report-grid,
  .chart-grid,
  .platform-grid,
  .permissions-grid,
  .module-access-grid,
  .effective-permissions-grid,
  .document-ai-workspace,
  .document-ai-split,
  .invoice-detail-layout,
  .invoice-detail-grid,
  .rebate-workspace,
  .finanzas-grid,
  .saas-ops-grid,
  .tenant-online-detail-grid,
  .user-detail-grid
) {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .app-header,
  .header-left,
  .header-actions,
  .header-actions.header-right,
  .header-row,
  .panel-head,
  .panel-head-actions,
  .table-headline,
  .table-head-tools,
  .clientes-headline,
  .clientes-head-tools,
  .compact-panel-head,
  .employee-panel-head,
  .employee-panel-tools,
  .module-section-head,
  .dashboard-head,
  .calendar-toolbar,
  .calendar-toolbar-actions,
  .calendar-toolbar-nav,
  .report-toolbar,
  .report-feature-tools
) {
  min-width: 0 !important;
  max-width: 100% !important;
  flex-wrap: wrap !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .search-form,
  .compact-search-form,
  .clientes-search-form,
  .productos-search-form,
  .users-search-form,
  .roles-search-form,
  .chart-toolbar-form,
  .finanzas-inline-search,
  .module-period-form,
  .reportes-toolbar-form,
  .finanzas-toolbar-form,
  .rebate-filter-bar,
  .compact-results-filter,
  .docs-filters,
  .audit-filters,
  .form-grid,
  .field-grid,
  .modal-grid,
  .detail-grid,
  .users-form-grid,
  .editor-form,
  .user-detail-form
) {
  min-width: 0 !important;
  max-width: 100% !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .search-form,
  .compact-search-form,
  .clientes-search-form,
  .productos-search-form,
  .users-search-form,
  .roles-search-form,
  .chart-toolbar-form,
  .finanzas-inline-search,
  .module-period-form,
  .reportes-toolbar-form,
  .finanzas-toolbar-form,
  .rebate-filter-bar,
  .compact-results-filter,
  .docs-filters,
  .audit-filters
) > * {
  min-width: 0 !important;
  max-width: 100% !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea,
  .field,
  .field > *,
  .input-shell,
  .kudzu-file-picker,
  .kudzu-file-picker-name
) {
  min-width: 0 !important;
  max-width: 100% !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .table-wrap,
  .entity-table-wrap,
  .clientes-table-wrap,
  .users-table-wrap,
  .kudzu-responsive-table-wrap,
  .stock-ranking-table-wrap,
  .ai-reprocess-table-wrap
) {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  overscroll-behavior-inline: contain !important;
  scrollbar-gutter: stable;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .table-wrap,
  .entity-table-wrap,
  .clientes-table-wrap,
  .users-table-wrap,
  .kudzu-responsive-table-wrap,
  .stock-ranking-table-wrap,
  .ai-reprocess-table-wrap
) > table {
  max-width: none !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  th,
  td,
  .metric-card,
  .report-metric-card,
  .entity-card,
  .docs-ai-card,
  .calendar-event-card,
  .status,
  .meta-line,
  .subhead,
  .modal-subhead,
  .doc-empty
) {
  overflow-wrap: anywhere;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .table-actions,
  td.table-actions
) {
  white-space: nowrap !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .row-actions,
  .table-actions .row-actions,
  .entity-card-actions,
  .cliente-card-actions,
  .calendar-event-actions,
  .invoice-detail-actions,
  .inspector-actions,
  .actions,
  .form-actions,
  .rebate-modal-actions,
  .modal-actions,
  .modal-actions-right,
  .comms-actions,
  .comms-quick-actions,
  .csv-inline-actions
) {
  min-width: 0 !important;
  max-width: 100% !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .table-actions .row-actions,
  td.table-actions .row-actions
) {
  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  overscroll-behavior-inline: contain !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .btn,
  button,
  [role="button"]
) {
  white-space: nowrap !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  img,
  svg,
  canvas,
  video,
  iframe,
  object,
  embed
) {
  max-width: 100% !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) .modal:not(.hidden) {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: auto !important;
  overscroll-behavior: contain !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .modal-window,
  .user-modal-window,
  .upload-modal-window,
  .document-ai-modal-window,
  .invoice-detail-window,
  .compare-modal-window,
  .selector-modal-window,
  .calendar-quick-modal-window,
  .home-quick-picker-window,
  .qr-detail-window,
  .campanas-form-window,
  .campanas-settings-window,
  .campanas-detail-window,
  .campanas-send-result-window,
  .campanas-templates-window,
  .campanas-preview-window,
  .comms-settings-window,
  .rebate-agreement-modal-window,
  .rebate-objective-modal-window,
  .auth-recovery-modal-window,
  .auth-mfa-window,
  .auth-feedback-window,
  .active-session-window,
  .sales-payment-modal-window,
  .patient-bed-modal-window,
  .history-control-modal-window,
  .history-medication-plan-modal-window,
  .history-patient-modal-window,
  .role-modal-window,
  .tenant-online-modal-window,
  .saas-tenant-detail-window,
  .timeline-modal-window,
  .provider-products-modal-window,
  .selector-notice-window,
  .line-items-modal-window,
  .rooms-admin-window,
  .module-movement-detail-window,
  .bug-report-window,
  .global-status-popup-window
) {
  min-width: 0 !important;
  max-width: min(100%, calc(100vw - 1rem)) !important;
  max-height: calc(100dvh - 1rem) !important;
  overflow: hidden !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .modal-body,
  .upload-modal-body,
  .auth-recovery-modal-body,
  .auth-mfa-body,
  .auth-feedback-body,
  .active-session-body
) {
  min-width: 0 !important;
  min-height: 0 !important;
  overflow: auto !important;
  overscroll-behavior: contain !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .invoice-tabs-card,
  .rebate-tabs-card,
  .employee-tabs-card,
  .document-detail-tab-strip
) {
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  overscroll-behavior-inline: contain !important;
  scrollbar-gutter: stable;
}

/* Adaptive desktop contract - 2026-07-02.
   A fine-pointer PC keeps the desktop information architecture from 1280px,
   but adapts density instead of rendering an off-screen 1920px canvas.
   Android/touch remains governed exclusively by the scoped WebView/mobile
   rules above. Typography is intentionally not scaled down. */
:root {
  --kudzu-desktop-supported-width: 1280px;
  --kudzu-desktop-supported-height: 700px;
  --kudzu-desktop-compact-gap: clamp(.62rem, .72vw, .9rem);
  --kudzu-desktop-compact-sidebar: 268px;
}

@media (hover: hover) and (pointer: fine) and (min-width: 1024px) and (max-width: 1919px),
       (any-hover: hover) and (any-pointer: fine) and (min-width: 1024px) and (max-width: 1919px) {
  html:not(.kudzu-android-webview),
  html:not(.kudzu-android-webview) body {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    overscroll-behavior-x: none !important;
  }

  html:not(.kudzu-android-webview) body {
    --ta-sidebar-width: var(--kudzu-desktop-compact-sidebar);
  }

  html:not(.kudzu-android-webview) .bg-layer {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  html:not(.kudzu-android-webview) .app-shell:not(.module-main),
  html:not(.kudzu-android-webview) .page-shell {
    width: min(100% - .75rem, 1760px) !important;
    min-width: 0 !important;
    max-width: 1760px !important;
  }

  html:not(.kudzu-android-webview) .module-layout,
  html:not(.kudzu-android-webview) body.kudzu-sidebar-collapsed .module-layout {
    width: calc(100% - .75rem) !important;
    min-width: 0 !important;
    max-width: 1919px !important;
    margin: .42rem auto 1.25rem !important;
    padding: 0 !important;
    gap: var(--kudzu-desktop-compact-gap) !important;
    align-items: start !important;
  }

  html:not(.kudzu-android-webview) .module-layout {
    grid-template-columns: var(--kudzu-desktop-compact-sidebar) minmax(0, 1fr) !important;
  }

  html:not(.kudzu-android-webview) body.kudzu-sidebar-collapsed,
  html:not(.kudzu-android-webview).kudzu-sidebar-collapsed {
    --ta-sidebar-width: 84px !important;
  }

  html:not(.kudzu-android-webview) body.kudzu-sidebar-collapsed .module-layout {
    grid-template-columns: minmax(84px, 84px) minmax(0, 1fr) !important;
  }

  html:not(.kudzu-android-webview) .module-main,
  html:not(.kudzu-android-webview) .module-main.app-shell {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    gap: var(--kudzu-desktop-compact-gap) !important;
  }

  html:not(.kudzu-android-webview) .app-header {
    min-width: 0 !important;
    padding: .75rem .88rem !important;
    gap: .62rem .85rem !important;
    flex-wrap: wrap !important;
    border-radius: 20px !important;
  }

  html:not(.kudzu-android-webview) .app-header .header-left {
    flex: 1 1 360px !important;
    min-width: 0 !important;
  }

  html:not(.kudzu-android-webview) .app-header .header-actions,
  html:not(.kudzu-android-webview) .app-header .header-right {
    flex: 0 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    flex-wrap: wrap !important;
    justify-content: flex-end !important;
  }

  html:not(.kudzu-android-webview) .panel,
  html:not(.kudzu-android-webview) .table-panel,
  html:not(.kudzu-android-webview) .panel-card,
  html:not(.kudzu-android-webview) .dashboard-panel {
    min-width: 0 !important;
    border-radius: 20px !important;
  }

  html:not(.kudzu-android-webview) .panel,
  html:not(.kudzu-android-webview) .table-panel {
    padding: clamp(.72rem, .82vw, .94rem) !important;
  }

  html:not(.kudzu-android-webview) .table-headline,
  html:not(.kudzu-android-webview) .clientes-headline,
  html:not(.kudzu-android-webview) .compact-panel-head,
  html:not(.kudzu-android-webview) .panel-head,
  html:not(.kudzu-android-webview) .employee-panel-head,
  html:not(.kudzu-android-webview) .calendar-toolbar,
  html:not(.kudzu-android-webview) .report-toolbar,
  html:not(.kudzu-android-webview) .report-feature-tools {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    gap: .62rem .8rem !important;
    flex-wrap: wrap !important;
    align-items: center !important;
  }

  html:not(.kudzu-android-webview) .table-headline > :first-child,
  html:not(.kudzu-android-webview) .clientes-headline > :first-child,
  html:not(.kudzu-android-webview) .panel-head > :first-child,
  html:not(.kudzu-android-webview) .employee-panel-head > :first-child {
    min-width: min(100%, 210px) !important;
  }

  html:not(.kudzu-android-webview) .clientes-head-tools,
  html:not(.kudzu-android-webview) .table-head-tools,
  html:not(.kudzu-android-webview) .campanas-head-tools,
  html:not(.kudzu-android-webview) .employee-panel-tools,
  html:not(.kudzu-android-webview) .calendar-toolbar-actions,
  html:not(.kudzu-android-webview) .calendar-toolbar-nav,
  html:not(.kudzu-android-webview) .panel-head-actions {
    flex: 1 1 560px !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    gap: .48rem !important;
    flex-wrap: wrap !important;
    justify-content: flex-end !important;
  }

  html:not(.kudzu-android-webview) .search-form,
  html:not(.kudzu-android-webview) .compact-search-form,
  html:not(.kudzu-android-webview) .clientes-search-form,
  html:not(.kudzu-android-webview) .productos-search-form,
  html:not(.kudzu-android-webview) .users-search-form,
  html:not(.kudzu-android-webview) .roles-search-form,
  html:not(.kudzu-android-webview) .chart-toolbar-form,
  html:not(.kudzu-android-webview) .finanzas-inline-search,
  html:not(.kudzu-android-webview) .module-period-form,
  html:not(.kudzu-android-webview) .reportes-toolbar-form,
  html:not(.kudzu-android-webview) .finanzas-toolbar-form,
  html:not(.kudzu-android-webview) .rebate-filter-bar,
  html:not(.kudzu-android-webview) .compact-results-filter,
  html:not(.kudzu-android-webview) .docs-filters,
  html:not(.kudzu-android-webview) .audit-filters,
  html:not(.kudzu-android-webview) #campanas-search-form,
  html:not(.kudzu-android-webview) #qr-search-form {
    display: flex !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    gap: .48rem !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
  }

  html:not(.kudzu-android-webview) .clientes-search-form > .clientes-search-stack,
  html:not(.kudzu-android-webview) #campanas-search-form > .clientes-search-stack,
  html:not(.kudzu-android-webview) #qr-search-form > .clientes-search-stack,
  html:not(.kudzu-android-webview) .search-form input[type="search"],
  html:not(.kudzu-android-webview) .compact-search-form input[type="search"],
  html:not(.kudzu-android-webview) .productos-search-form input[type="search"],
  html:not(.kudzu-android-webview) .users-search-form input[type="search"],
  html:not(.kudzu-android-webview) .roles-search-form input[type="search"] {
    flex: 1 1 260px !important;
    width: auto !important;
    min-width: min(100%, 220px) !important;
    max-width: none !important;
  }

  html:not(.kudzu-android-webview) .table-wrap,
  html:not(.kudzu-android-webview) .entity-table-wrap,
  html:not(.kudzu-android-webview) .clientes-table-wrap,
  html:not(.kudzu-android-webview) .users-table-wrap,
  html:not(.kudzu-android-webview) .kudzu-responsive-table-wrap {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    overscroll-behavior-inline: contain !important;
    scrollbar-gutter: stable;
  }

  html:not(.kudzu-android-webview) .table-wrap table,
  html:not(.kudzu-android-webview) .entity-table-wrap table,
  html:not(.kudzu-android-webview) table.users-table,
  html:not(.kudzu-android-webview) table.entity-table,
  html:not(.kudzu-android-webview) table.platform-table,
  html:not(.kudzu-android-webview) table.audit-table,
  html:not(.kudzu-android-webview) table.logs-table,
  html:not(.kudzu-android-webview) table.kudzu-responsive-table {
    width: 100% !important;
    min-width: 100% !important;
    max-width: none !important;
    table-layout: auto !important;
  }

  html:not(.kudzu-android-webview) .table-wrap th,
  html:not(.kudzu-android-webview) .table-wrap td,
  html:not(.kudzu-android-webview) .entity-table-wrap th,
  html:not(.kudzu-android-webview) .entity-table-wrap td {
    padding-inline: clamp(.48rem, .62vw, .72rem) !important;
  }

  html:not(.kudzu-android-webview) .table-wrap td:not(.table-actions),
  html:not(.kudzu-android-webview) .entity-table-wrap td:not(.table-actions) {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
  }

  html:not(.kudzu-android-webview) .table-actions,
  html:not(.kudzu-android-webview) td.table-actions {
    width: 1% !important;
    min-width: max-content !important;
    max-width: none !important;
    white-space: nowrap !important;
  }

  html:not(.kudzu-android-webview) .row-actions,
  html:not(.kudzu-android-webview) .table-actions .row-actions,
  html:not(.kudzu-android-webview) .entity-card-actions,
  html:not(.kudzu-android-webview) .cliente-card-actions,
  html:not(.kudzu-android-webview) .calendar-event-actions,
  html:not(.kudzu-android-webview) .invoice-detail-actions,
  html:not(.kudzu-android-webview) .inspector-actions,
  html:not(.kudzu-android-webview) .actions,
  html:not(.kudzu-android-webview) .form-actions,
  html:not(.kudzu-android-webview) .rebate-modal-actions,
  html:not(.kudzu-android-webview) .modal-actions,
  html:not(.kudzu-android-webview) .comms-actions,
  html:not(.kudzu-android-webview) .comms-quick-actions {
    display: flex !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    gap: .34rem !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
  }

  html:not(.kudzu-android-webview) .table-actions .row-actions,
  html:not(.kudzu-android-webview) td.table-actions .row-actions {
    min-width: max-content !important;
    max-width: none !important;
    flex-wrap: nowrap !important;
  }

  html:not(.kudzu-android-webview) .row-actions .btn,
  html:not(.kudzu-android-webview) .table-actions .btn,
  html:not(.kudzu-android-webview) .entity-card-actions .btn,
  html:not(.kudzu-android-webview) .cliente-card-actions .btn,
  html:not(.kudzu-android-webview) .calendar-event-actions .btn,
  html:not(.kudzu-android-webview) .invoice-detail-actions .btn,
  html:not(.kudzu-android-webview) .inspector-actions .btn,
  html:not(.kudzu-android-webview) .actions .btn,
  html:not(.kudzu-android-webview) .form-actions .btn,
  html:not(.kudzu-android-webview) .modal-actions .btn {
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding-inline: clamp(.56rem, .62vw, .72rem) !important;
    justify-content: center !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
  }

  html:not(.kudzu-android-webview) .entity-mobile-list,
  html:not(.kudzu-android-webview) .clientes-mobile-list {
    display: none !important;
  }

  html:not(.kudzu-android-webview) .table-wrap:not(.hidden),
  html:not(.kudzu-android-webview) .entity-table-wrap:not(.hidden),
  html:not(.kudzu-android-webview) .clientes-table-wrap:not(.hidden) {
    display: block !important;
  }

  html:not(.kudzu-android-webview) .modal:not(.hidden) {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: .5rem !important;
    align-items: center !important;
    justify-content: center !important;
  }

  html:not(.kudzu-android-webview) .modal-window,
  html:not(.kudzu-android-webview) .user-modal-window,
  html:not(.kudzu-android-webview) .upload-modal-window,
  html:not(.kudzu-android-webview) .document-ai-modal-window,
  html:not(.kudzu-android-webview) .invoice-detail-window,
  html:not(.kudzu-android-webview) .compare-modal-window,
  html:not(.kudzu-android-webview) .selector-modal-window,
  html:not(.kudzu-android-webview) .calendar-quick-modal-window,
  html:not(.kudzu-android-webview) .home-quick-picker-window,
  html:not(.kudzu-android-webview) .qr-detail-window,
  html:not(.kudzu-android-webview) .campanas-form-window,
  html:not(.kudzu-android-webview) .campanas-settings-window,
  html:not(.kudzu-android-webview) .campanas-detail-window,
  html:not(.kudzu-android-webview) .campanas-send-result-window,
  html:not(.kudzu-android-webview) .campanas-templates-window,
  html:not(.kudzu-android-webview) .campanas-preview-window,
  html:not(.kudzu-android-webview) .comms-settings-window,
  html:not(.kudzu-android-webview) .rebate-agreement-modal-window,
  html:not(.kudzu-android-webview) .rebate-objective-modal-window,
  html:not(.kudzu-android-webview) .auth-recovery-modal-window,
  html:not(.kudzu-android-webview) .auth-mfa-window,
  html:not(.kudzu-android-webview) .auth-feedback-window,
  html:not(.kudzu-android-webview) .active-session-window,
  html:not(.kudzu-android-webview) .sales-payment-modal-window,
  html:not(.kudzu-android-webview) .patient-bed-modal-window,
  html:not(.kudzu-android-webview) .history-control-modal-window,
  html:not(.kudzu-android-webview) .history-medication-plan-modal-window,
  html:not(.kudzu-android-webview) .history-patient-modal-window,
  html:not(.kudzu-android-webview) .role-modal-window,
  html:not(.kudzu-android-webview) .tenant-online-modal-window,
  html:not(.kudzu-android-webview) .saas-tenant-detail-window,
  html:not(.kudzu-android-webview) .timeline-modal-window,
  html:not(.kudzu-android-webview) .provider-products-modal-window,
  html:not(.kudzu-android-webview) .selector-notice-window,
  html:not(.kudzu-android-webview) .line-items-modal-window,
  html:not(.kudzu-android-webview) .rooms-admin-window,
  html:not(.kudzu-android-webview) .module-movement-detail-window,
  html:not(.kudzu-android-webview) .bug-report-window,
  html:not(.kudzu-android-webview) .global-status-popup-window {
    width: min(1120px, calc(100vw - 1rem)) !important;
    min-width: 0 !important;
    max-width: calc(100vw - 1rem) !important;
    max-height: calc(100dvh - 1rem) !important;
    grid-template-rows: auto minmax(0, 1fr) auto !important;
    overflow: hidden !important;
  }

  html:not(.kudzu-android-webview) .document-ai-modal-window,
  html:not(.kudzu-android-webview) .invoice-detail-window,
  html:not(.kudzu-android-webview) .compare-modal-window,
  html:not(.kudzu-android-webview) .line-items-modal-window,
  html:not(.kudzu-android-webview) .saas-tenant-detail-window,
  html:not(.kudzu-android-webview) .tenant-online-modal-window,
  html:not(.kudzu-android-webview) .module-movement-detail-window {
    width: min(1540px, calc(100vw - 1rem)) !important;
  }

  html:not(.kudzu-android-webview) .modal-head {
    min-width: 0 !important;
    gap: .62rem !important;
    flex-wrap: wrap !important;
  }

  html:not(.kudzu-android-webview) .modal-head-main {
    flex: 1 1 360px !important;
    min-width: 0 !important;
  }

  html:not(.kudzu-android-webview) .modal-head-actions {
    flex: 0 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    flex-wrap: wrap !important;
    justify-content: flex-end !important;
  }

  html:not(.kudzu-android-webview) .modal-body,
  html:not(.kudzu-android-webview) .document-ai-modal-window .modal-body,
  html:not(.kudzu-android-webview) .invoice-detail-window .modal-body,
  html:not(.kudzu-android-webview) .compare-modal-window .modal-body,
  html:not(.kudzu-android-webview) .selector-modal-window .modal-body,
  html:not(.kudzu-android-webview) .upload-modal-body,
  html:not(.kudzu-android-webview) .auth-recovery-modal-body,
  html:not(.kudzu-android-webview) .auth-mfa-body,
  html:not(.kudzu-android-webview) .auth-feedback-body,
  html:not(.kudzu-android-webview) .active-session-body {
    min-width: 0 !important;
    overflow: auto !important;
    overscroll-behavior: contain !important;
  }

  html:not(.kudzu-android-webview) .document-ai-viewer,
  html:not(.kudzu-android-webview) .document-ai-summary-text,
  html:not(.kudzu-android-webview) .invoice-detail-frame,
  html:not(.kudzu-android-webview) .doc-viewer,
  html:not(.kudzu-android-webview) .pdf-viewer,
  html:not(.kudzu-android-webview) iframe,
  html:not(.kudzu-android-webview) object,
  html:not(.kudzu-android-webview) embed {
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

@media (hover: hover) and (pointer: fine) and (min-width: 1024px) and (max-width: 1599px),
       (any-hover: hover) and (any-pointer: fine) and (min-width: 1024px) and (max-width: 1599px) {
  html:not(.kudzu-android-webview) .metrics,
  html:not(.kudzu-android-webview) .metric-grid,
  html:not(.kudzu-android-webview) .summary-grid,
  html:not(.kudzu-android-webview) .stats-grid {
    gap: .62rem !important;
  }

  html:not(.kudzu-android-webview) .metric-card {
    min-height: 102px !important;
    padding: .78rem .88rem !important;
    border-radius: 18px !important;
  }

  html:not(.kudzu-android-webview) .invoice-detail-body,
  html:not(.kudzu-android-webview) .document-ai-layout,
  html:not(.kudzu-android-webview) .document-ai-modal-grid {
    gap: .7rem !important;
  }
}

@media (hover: hover) and (pointer: fine) and (min-width: 1024px) and (max-height: 820px),
       (any-hover: hover) and (any-pointer: fine) and (min-width: 1024px) and (max-height: 820px) {
  html:not(.kudzu-android-webview) .module-layout {
    margin-top: .32rem !important;
  }

  html:not(.kudzu-android-webview) .app-header,
  html:not(.kudzu-android-webview) .panel,
  html:not(.kudzu-android-webview) .table-panel {
    padding-block: .68rem !important;
  }

  html:not(.kudzu-android-webview) .modal:not(.hidden) {
    padding: .35rem !important;
  }

  html:not(.kudzu-android-webview) .modal-window,
  html:not(.kudzu-android-webview) .user-modal-window,
  html:not(.kudzu-android-webview) .document-ai-modal-window,
  html:not(.kudzu-android-webview) .invoice-detail-window,
  html:not(.kudzu-android-webview) .line-items-modal-window {
    max-height: calc(100dvh - .7rem) !important;
  }
}

.profile-self-actions .btn {
  flex: 0 0 auto !important;
  min-width: 112px !important;
}

#shell-profile-password-btn {
  justify-self: auto !important;
  max-width: none !important;
}

body[data-module-key=ventas] .users-table.entity-table td.table-actions {
  width: 268px !important;
  min-width: 268px !important;
  max-width: 268px !important;
}

body[data-module-key=ventas] .users-table.entity-table td.table-actions .row-actions {
  flex-wrap: nowrap !important;
  justify-content: flex-end !important;
  gap: .28rem !important;
}

body[data-module-key=ventas] .users-table.entity-table td.table-actions .row-actions .btn {
  white-space: nowrap !important;
  overflow-wrap: normal !important;
  padding: .38rem .46rem !important;
  font-size: .76rem !important;
  line-height: 1.1 !important;
}

#saas-platform-tenants.reveal {
  animation: none;
  opacity: 1;
  transform: none;
}

body.shell-booting #saas-platform-tenants .panel,
body.shell-booting #saas-platform-tenants .table-wrap {
  animation: none;
  filter: none;
}

#saas-platform-tenants .table-wrap thead th {
  backdrop-filter: none;
}

.modal-head-main {
  flex: 1 1 auto !important;
  min-width: min(18rem, 100%) !important;
}

.modal-head-main h1,
.modal-head-main h2,
.modal-head-main h3,
.modal-subhead {
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: none !important;
}

.modal-head-actions {
  flex: 0 0 auto !important;
  min-width: max-content !important;
  max-width: 55% !important;
  flex-wrap: wrap !important;
  justify-content: flex-end !important;
}

@media (min-width: 761px) and (max-width: 1180px) {
  .module-layout {
    width: min(100% - 1rem, 100%) !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .75rem !important;
    margin-inline: auto !important;
  }

  .module-sidebar {
    position: sticky !important;
    top: .55rem !important;
    z-index: 55 !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: hidden !important;
    padding: .68rem .78rem !important;
    border-radius: 18px !important;
    gap: .52rem !important;
  }

  .module-sidebar .sidebar-top {
    min-height: 0 !important;
    padding: .02rem 4rem .5rem .1rem !important;
    gap: .12rem !important;
  }

  .module-sidebar .sidebar-top > h2 {
    font-size: 1rem !important;
    line-height: 1.12 !important;
  }

  .module-sidebar .sidebar-subhead {
    font-size: .74rem !important;
  }

  .nav-links.nav-sidebar {
    display: flex !important;
    grid-template-columns: none !important;
    flex-wrap: nowrap !important;
    gap: .45rem !important;
    margin-inline: -.12rem !important;
    padding: .08rem .12rem .22rem !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-inline: contain !important;
    scroll-snap-type: x proximity !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .nav-group {
    display: contents !important;
  }

  .nav-group-title {
    display: none !important;
  }

  .nav-links.nav-sidebar .btn {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 44px !important;
    max-width: 11.5rem !important;
    min-height: 40px !important;
    padding: .44rem .6rem !important;
    border-radius: 13px !important;
    scroll-snap-align: start !important;
  }

  .nav-module-icon {
    width: 1.56rem !important;
    height: 1.56rem !important;
    flex-basis: 1.56rem !important;
  }

  .nav-links.nav-sidebar .btn .nav-module-label,
  .nav-module-label {
    max-width: 8.8rem !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .module-main,
  .app-shell {
    min-width: 0 !important;
  }

  .table-wrap {
    max-width: 100% !important;
    overflow-x: auto !important;
  }

  .modal-head {
    display: grid !important;
    grid-template-columns: minmax(14rem, 1fr) auto !important;
    align-items: start !important;
  }

  .modal-head-main {
    min-width: 0 !important;
  }

  .modal-head-actions {
    max-width: min(22rem, 42vw) !important;
  }
}

@media (max-width: 760px) {
  .module-layout {
    width: min(100% - .55rem, 100%) !important;
    margin: .35rem auto 1.2rem !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .55rem !important;
  }

  .module-sidebar {
    position: sticky !important;
    top: .35rem !important;
    z-index: 60 !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    padding: .48rem !important;
    border-radius: 16px !important;
    gap: .42rem !important;
  }

  .module-sidebar .sidebar-top {
    padding: .02rem 3.2rem .42rem .12rem !important;
    gap: .1rem !important;
  }

  .module-sidebar .sidebar-top > h2 {
    font-size: .95rem !important;
  }

  .module-sidebar .sidebar-subhead {
    font-size: .7rem !important;
  }

  .sidebar-tenant-brand {
    top: .02rem !important;
    right: .08rem !important;
    max-width: 40px !important;
  }

  .sidebar-tenant-logo-wrap {
    width: 32px !important;
    height: 32px !important;
  }

  .nav-links.nav-sidebar {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: .42rem !important;
    margin-inline: -.1rem !important;
    padding: .08rem .1rem .18rem !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x proximity !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .nav-group {
    display: contents !important;
  }

  .nav-group-title {
    display: none !important;
  }

  .nav-links.nav-sidebar .btn {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 44px !important;
    max-width: 10.5rem !important;
    min-height: 38px !important;
    padding: .4rem .52rem !important;
    border-radius: 12px !important;
    scroll-snap-align: start !important;
  }

  .nav-module-icon {
    width: 1.48rem !important;
    height: 1.48rem !important;
    flex-basis: 1.48rem !important;
  }

  .nav-links.nav-sidebar .btn .nav-module-label,
  .nav-module-label {
    max-width: 7.8rem !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .module-layout .app-header {
    grid-template-columns: 1fr !important;
    padding: .82rem !important;
    border-radius: 16px !important;
  }

  .module-layout .app-header .header-left {
    min-height: 0 !important;
  }

  .header-actions.header-right,
  .header-actions.header-right .header-row {
    justify-content: flex-start !important;
    justify-items: start !important;
  }

  .table-wrap {
    max-width: 100% !important;
    overflow-x: auto !important;
  }

  .profile-self-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .48rem !important;
  }

  .profile-self-actions .btn,
  #shell-profile-password-btn {
    width: 100% !important;
    min-width: 0 !important;
  }

  body[data-module-key=ventas] .users-table.entity-table td.table-actions {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  body[data-module-key=ventas] .users-table.entity-table td.table-actions .row-actions,
  body[data-module-key=ventas] .entity-card .row-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .42rem !important;
    width: 100% !important;
  }

  body[data-module-key=ventas] .users-table.entity-table td.table-actions .row-actions .btn,
  body[data-module-key=ventas] .entity-card .row-actions .btn {
    width: 100% !important;
    justify-content: center !important;
    white-space: normal !important;
  }
}

@media (max-width: 460px) {
  .nav-links.nav-sidebar .btn {
    padding-inline: .46rem !important;
  }

  .nav-links.nav-sidebar .btn .nav-module-label,
  .nav-module-label {
    max-width: 6.4rem !important;
    font-size: .78rem !important;
  }
}

/* Deep mobile/tablet hardening. Desktop keeps the base layout. */
@media (max-width: 1180px) {
  html,
  body {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .module-main,
  .module-main > *,
  .app-shell,
  .panel,
  .panel-card,
  .table-panel,
  .workspace,
  .workspace-wide,
  .dashboard-panel,
  .module-summary-panel,
  .entity-table-wrap,
  .table-wrap,
  .modal-window,
  .modal-body {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .metrics,
  .metrics-4,
  .summary-grid,
  .stats-grid,
  .assistant-result-grid,
  .assistant-context-grid,
  .ai-capabilities-grid,
  .comms-overview-grid,
  .comms-content-grid,
  .comms-channel-grid,
  .module-movement-detail-grid,
  .platform-grid,
  .docs-ops-grid,
  .dashboard-grid,
  .dashboard-focus-grid,
  .dashboard-contract-grid,
  .report-metric-grid,
  .report-health-grid,
  .workspace,
  .rebate-workspace,
  .rebate-dashboard-grid,
  .rebate-executive-grid,
  .rebate-insight-grid,
  .rebate-top-grid,
  .rebate-enterprise-grid,
  .rebate-finance-grid,
  .rebate-card-grid,
  .document-ai-workspace,
  .document-ai-split,
  .invoice-detail-layout,
  .invoice-detail-grid,
  .compare-grid,
  .selector-grid,
  .patient-bed-grid,
  .calendar-detail-grid,
  .home-quick-actions-grid,
  .home-quick-picker-grid,
  .finanzas-grid,
  .finanzas-aging-grid,
  .finanzas-agenda-grid,
  .finance-reconciliation-grid,
  .compare-result-grid,
  .finanzas-debt-grid,
  .bank-reconciliation-grid,
  .module-access-grid,
  .permissions-grid,
  .dashboard-exception-grid,
  .report-grid,
  .chart-grid,
  .chart-grid-reportes,
  .quick-links-grid,
  .saas-ops-grid,
  .tenant-backup-schedule-grid,
  .tenant-online-detail-grid,
  .user-detail-grid,
  .effective-permissions-grid,
  .module-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)) !important;
  }

  .modal:not(.hidden) {
    padding: .5rem !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .modal-window,
  .user-modal-window,
  .upload-modal-window,
  .document-ai-modal-window,
  .invoice-detail-window,
  .compare-modal-window,
  .selector-modal-window,
  .calendar-quick-modal-window,
  .home-quick-picker-window,
  .qr-detail-window,
  .campanas-form-window,
  .campanas-settings-window,
  .campanas-detail-window,
  .campanas-send-result-window,
  .campanas-templates-window,
  .campanas-preview-window,
  .comms-settings-window,
  .rebate-agreement-modal-window,
  .rebate-objective-modal-window,
  .auth-recovery-modal-window,
  .auth-mfa-window,
  .auth-feedback-window,
  .active-session-window,
  .sales-payment-modal-window,
  .patient-bed-modal-window,
  .history-control-modal-window,
  .history-medication-plan-modal-window,
  .history-patient-modal-window,
  .role-modal-window,
  .tenant-online-modal-window,
  .saas-tenant-detail-window,
  .timeline-modal-window,
  .provider-products-modal-window,
  .selector-notice-window,
  .line-items-modal-window,
  .rooms-admin-window,
  .module-movement-detail-window,
  .bug-report-window,
  .global-status-popup-window {
    width: min(100%, calc(100vw - 1rem)) !important;
    max-width: calc(100vw - 1rem) !important;
    max-height: calc(100dvh - 1rem) !important;
    grid-template-rows: auto minmax(0, 1fr) auto !important;
    overflow: hidden !important;
  }

  .modal-head {
    min-width: 0 !important;
    flex-wrap: wrap !important;
  }

  .modal-head-main,
  .modal-head-main > *,
  .modal-subhead,
  .modal-body > *,
  .modal-body form,
  .modal-body fieldset {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .modal-body,
  .document-ai-modal-window .modal-body,
  .invoice-detail-window .modal-body,
  .compare-modal-window .modal-body,
  .selector-modal-window .modal-body,
  .upload-modal-body,
  .auth-recovery-modal-body,
  .auth-mfa-body,
  .auth-feedback-body,
  .active-session-body {
    overflow: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
  }

  .users-form-grid,
  .editor-form,
  .user-detail-form,
  .rebate-agreement-form,
  .rebate-objective-defaults,
  .rebate-objective-modal-body .rebate-objective-row,
  .field-grid,
  .auth-fields,
  .calendar-modal-grid,
  .compare-picker-grid,
  .form-grid,
  .modal-grid,
  .detail-grid,
  .inspector-grid,
  .calendar-time-row,
  .calendar-detail-grid,
  .patient-bed-grid,
  .employee-summary-strip,
  .docs-filters,
  .audit-filters,
  .reportes-toolbar-form,
  .finanzas-toolbar-form,
  .prompt-form {
    grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)) !important;
  }

  .table-headline,
  .compact-panel-head,
  .panel-head,
  .employee-panel-head,
  .calendar-toolbar,
  .calendar-toolbar-actions,
  .calendar-toolbar-nav,
  .report-toolbar,
  .report-feature-tools,
  .clientes-head-tools,
  .table-head-tools,
  .campanas-head-tools,
  .employee-panel-tools {
    min-width: 0 !important;
    max-width: 100% !important;
    flex-wrap: wrap !important;
  }

  .search-form,
  .compact-search-form,
  .clientes-search-form,
  .productos-search-form,
  .users-search-form,
  .roles-search-form,
  .chart-toolbar-form,
  .finanzas-inline-search,
  .module-period-form,
  .reportes-toolbar-form,
  .finanzas-toolbar-form,
  .rebate-filter-bar,
  .compact-results-filter,
  .docs-filters,
  .audit-filters {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr)) !important;
    gap: .55rem !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    align-items: end !important;
  }

  .search-form > *,
  .compact-search-form > *,
  .clientes-search-form > *,
  .productos-search-form > *,
  .users-search-form > *,
  .roles-search-form > *,
  .chart-toolbar-form > *,
  .finanzas-inline-search > *,
  .module-period-form > *,
  .reportes-toolbar-form > *,
  .finanzas-toolbar-form > *,
  .rebate-filter-bar > *,
  .compact-results-filter > *,
  .docs-filters > *,
  .audit-filters > * {
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .table-wrap,
  .entity-table-wrap {
    width: 100% !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-inline: contain !important;
  }

  .table-wrap table,
  .entity-table-wrap table,
  table.users-table,
  table.entity-table,
  table.platform-table,
  table.audit-table,
  table.logs-table {
    min-width: 760px !important;
    width: max-content !important;
    max-width: none !important;
  }

  .table-actions,
  td.table-actions {
    width: auto !important;
    min-width: 0 !important;
    max-width: 240px !important;
  }

  .row-actions,
  .table-actions .row-actions,
  .entity-card-actions,
  .cliente-card-actions,
  .calendar-event-actions,
  .invoice-detail-actions,
  .inspector-actions,
  .actions,
  .form-actions,
  .rebate-modal-actions,
  .modal-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: .45rem !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .row-actions .btn,
  .table-actions .btn,
  .entity-card-actions .btn,
  .cliente-card-actions .btn,
  .calendar-event-actions .btn,
  .invoice-detail-actions .btn,
  .inspector-actions .btn,
  .actions .btn,
  .form-actions .btn,
  .rebate-modal-actions .btn,
  .modal-actions .btn {
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    text-align: center !important;
  }

  .document-ai-viewer,
  .document-ai-summary-text,
  .invoice-detail-frame,
  .doc-viewer,
  .pdf-viewer,
  iframe,
  object,
  embed {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .document-ai-viewer,
  .document-ai-summary-text,
  .invoice-detail-frame,
  iframe,
  object,
  embed {
    min-height: min(58dvh, 520px) !important;
  }
}

@media (max-width: 760px) {
  .modal:not(.hidden) {
    padding: .35rem !important;
    align-items: stretch !important;
  }

  .modal-window,
  .user-modal-window,
  .upload-modal-window,
  .document-ai-modal-window,
  .invoice-detail-window,
  .compare-modal-window,
  .selector-modal-window,
  .calendar-quick-modal-window,
  .home-quick-picker-window,
  .qr-detail-window,
  .campanas-form-window,
  .campanas-settings-window,
  .campanas-detail-window,
  .campanas-send-result-window,
  .campanas-templates-window,
  .campanas-preview-window,
  .comms-settings-window,
  .rebate-agreement-modal-window,
  .rebate-objective-modal-window,
  .auth-recovery-modal-window,
  .auth-mfa-window,
  .auth-feedback-window,
  .active-session-window,
  .sales-payment-modal-window,
  .patient-bed-modal-window,
  .history-control-modal-window,
  .history-medication-plan-modal-window,
  .history-patient-modal-window,
  .role-modal-window,
  .tenant-online-modal-window,
  .saas-tenant-detail-window,
  .timeline-modal-window,
  .provider-products-modal-window,
  .selector-notice-window,
  .line-items-modal-window,
  .rooms-admin-window,
  .module-movement-detail-window,
  .bug-report-window,
  .global-status-popup-window {
    width: 100% !important;
    max-width: 100% !important;
    max-height: calc(100dvh - .7rem) !important;
    border-radius: 16px !important;
  }

  .modal-head {
    padding: .76rem .86rem !important;
    gap: .58rem !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: start !important;
  }

  .modal-head-main {
    min-width: 0 !important;
  }

  .modal-head-actions {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
  }

  .modal-head-main h2 {
    font-size: clamp(1.05rem, 5vw, 1.35rem) !important;
    line-height: 1.15 !important;
  }

  .modal-subhead {
    font-size: .84rem !important;
    line-height: 1.35 !important;
  }

  .modal-head-actions .icon-btn,
  .modal-head .icon-btn {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
  }

  .modal-body {
    padding: .78rem .86rem !important;
  }

  .users-form-grid,
  .editor-form,
  .user-detail-form,
  .rebate-agreement-form,
  .rebate-objective-defaults,
  .rebate-objective-modal-body .rebate-objective-row,
  .field-grid,
  .auth-fields,
  .calendar-modal-grid,
  .compare-picker-grid,
  .form-grid,
  .modal-grid,
  .detail-grid,
  .inspector-grid,
  .calendar-time-row,
  .calendar-detail-grid,
  .patient-bed-grid,
  .employee-summary-strip,
  .docs-filters,
  .audit-filters,
  .reportes-toolbar-form,
  .finanzas-toolbar-form,
  .prompt-form,
  .metrics,
  .metrics-4,
  .summary-grid,
  .stats-grid,
  .assistant-result-grid,
  .assistant-context-grid,
  .ai-capabilities-grid,
  .comms-overview-grid,
  .comms-content-grid,
  .comms-channel-grid,
  .module-movement-detail-grid,
  .platform-grid,
  .docs-ops-grid,
  .dashboard-focus-grid,
  .dashboard-contract-grid,
  .report-metric-grid,
  .report-health-grid,
  .dashboard-grid,
  .workspace,
  .module-grid,
  .home-quick-actions-grid,
  .home-quick-picker-grid,
  .rebate-workspace,
  .rebate-dashboard-grid,
  .rebate-executive-grid,
  .rebate-insight-grid,
  .rebate-top-grid,
  .rebate-enterprise-grid,
  .rebate-finance-grid,
  .rebate-card-grid,
  .finanzas-grid,
  .finanzas-aging-grid,
  .finanzas-agenda-grid,
  .finance-reconciliation-grid,
  .compare-result-grid,
  .finanzas-debt-grid,
  .bank-reconciliation-grid,
  .module-access-grid,
  .permissions-grid,
  .dashboard-exception-grid,
  .report-grid,
  .chart-grid,
  .chart-grid-reportes,
  .quick-links-grid,
  .saas-ops-grid,
  .tenant-backup-schedule-grid,
  .tenant-online-detail-grid,
  .user-detail-grid,
  .effective-permissions-grid {
    grid-template-columns: 1fr !important;
  }

  .table-wrap table,
  .entity-table-wrap table,
  table.users-table,
  table.entity-table,
  table.platform-table,
  table.audit-table,
  table.logs-table {
    min-width: 680px !important;
  }

  .table-actions,
  td.table-actions {
    max-width: none !important;
  }

  .table-actions .row-actions,
  .entity-card .row-actions,
  .entity-card-actions,
  .cliente-card-actions,
  .calendar-event-actions,
  .invoice-detail-actions,
  .inspector-actions,
  .actions,
  .form-actions,
  .rebate-modal-actions,
  .modal-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
    justify-content: stretch !important;
  }

  .table-actions .row-actions .btn,
  .entity-card .row-actions .btn,
  .entity-card-actions .btn,
  .cliente-card-actions .btn,
  .calendar-event-actions .btn,
  .invoice-detail-actions .btn,
  .inspector-actions .btn,
  .actions .btn,
  .form-actions .btn,
  .rebate-modal-actions .btn,
  .modal-actions .btn {
    width: 100% !important;
    justify-content: center !important;
  }

  .search-form,
  .compact-search-form,
  .clientes-search-form,
  .productos-search-form,
  .users-search-form,
  .roles-search-form,
  .chart-toolbar-form,
  .finanzas-inline-search,
  .module-period-form,
  .reportes-toolbar-form,
  .finanzas-toolbar-form,
  .rebate-filter-bar,
  .compact-results-filter,
  .docs-filters,
  .audit-filters {
    grid-template-columns: 1fr !important;
  }

  .module-layout .app-header {
    gap: .72rem !important;
  }

  .header-actions.header-right,
  .header-actions.header-right .header-row,
  .panel-head-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    width: 100% !important;
    justify-content: flex-start !important;
  }

  .panel-head-actions .btn,
  .header-actions.header-right .btn {
    max-width: 100% !important;
  }

  .document-ai-viewer,
  .document-ai-summary-text,
  .invoice-detail-frame,
  iframe,
  object,
  embed {
    min-height: min(56dvh, 380px) !important;
  }
}

@media (max-width: 520px) {
  .module-layout {
    width: min(100% - .35rem, 100%) !important;
    margin-top: .25rem !important;
  }

  .module-sidebar {
    border-radius: 14px !important;
    padding: .42rem !important;
  }

  .module-layout .app-header {
    padding: .72rem !important;
  }

  .modal-window {
    border-radius: 14px !important;
  }

  .modal-head,
  .modal-body {
    padding-inline: .72rem !important;
  }

  .table-wrap table,
  .entity-table-wrap table,
  table.users-table,
  table.entity-table,
  table.platform-table,
  table.audit-table,
  table.logs-table {
    min-width: 620px !important;
  }
}

/* Mobile/tablet app navigation: drawer/sheet instead of horizontal module rail. */
.kudzu-mobile-nav-toggle,
.kudzu-mobile-nav-panel-head,
.kudzu-mobile-nav-search-wrap,
.kudzu-mobile-nav-backdrop {
  display: none;
}

.kudzu-mobile-nav-panel {
  display: contents;
}

@media (max-width: 1180px) {
  html.kudzu-mobile-nav-open,
  body.kudzu-mobile-nav-open {
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }

  .module-sidebar {
    position: sticky !important;
    top: .55rem !important;
    z-index: 80 !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    display: grid !important;
    gap: .55rem !important;
  }

  .module-sidebar .sidebar-top {
    border-bottom: 1px solid var(--line) !important;
  }

  .kudzu-mobile-nav-toggle {
    display: flex !important;
    align-items: center !important;
    gap: .65rem !important;
    width: 100% !important;
    min-height: 46px !important;
    padding: .58rem .72rem !important;
    border: 1px solid color-mix(in srgb, var(--line-strong) 48%, transparent) !important;
    border-radius: 15px !important;
    background:
      linear-gradient(135deg, color-mix(in srgb, var(--surface-2) 92%, transparent), color-mix(in srgb, var(--surface) 88%, transparent)),
      radial-gradient(circle at 12% 18%, rgba(59, 168, 255, .18), transparent 48%) !important;
    color: var(--text-main) !important;
    box-shadow: 0 14px 28px rgba(15, 23, 42, .12), inset 0 1px 0 rgba(255, 255, 255, .12) !important;
    cursor: pointer !important;
    text-align: left !important;
  }

  .kudzu-mobile-nav-toggle-icon {
    display: inline-grid !important;
    place-items: center !important;
    width: 2rem !important;
    height: 2rem !important;
    flex: 0 0 2rem !important;
    border-radius: .78rem !important;
    border: 1px solid rgba(59, 168, 255, .32) !important;
    background: rgba(59, 168, 255, .12) !important;
    color: var(--eyebrow) !important;
    font-size: 1.02rem !important;
    line-height: 1 !important;
  }

  .kudzu-mobile-nav-toggle-copy {
    display: grid !important;
    min-width: 0 !important;
    gap: .05rem !important;
  }

  .kudzu-mobile-nav-toggle-copy strong {
    font-size: .93rem !important;
    line-height: 1.16 !important;
  }

  .kudzu-mobile-nav-toggle-copy small {
    color: var(--muted) !important;
    font-size: .76rem !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .kudzu-mobile-nav-backdrop {
    display: block !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 980 !important;
    border: 0 !important;
    padding: 0 !important;
    background: rgba(3, 10, 24, .56) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity 180ms ease !important;
    backdrop-filter: blur(5px) !important;
  }

  body.kudzu-mobile-nav-open .kudzu-mobile-nav-backdrop {
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .kudzu-mobile-nav-panel {
    display: grid !important;
    grid-template-rows: auto auto minmax(0, 1fr) !important;
    gap: .72rem !important;
    position: fixed !important;
    z-index: 990 !important;
    min-width: 0 !important;
    overflow: hidden !important;
    border: 1px solid color-mix(in srgb, var(--line-strong) 46%, transparent) !important;
    background:
      radial-gradient(420px circle at 0 0, rgba(59, 168, 255, .16), transparent 62%),
      linear-gradient(160deg, color-mix(in srgb, var(--surface-2) 96%, transparent), color-mix(in srgb, var(--surface) 94%, transparent)) !important;
    box-shadow: 0 28px 70px rgba(2, 9, 22, .34), inset 0 1px 0 rgba(255, 255, 255, .12) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    touch-action: pan-y !important;
    transition: transform 210ms cubic-bezier(.2, .9, .25, 1), opacity 170ms ease !important;
  }

  body.kudzu-mobile-nav-open .kudzu-mobile-nav-panel {
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .kudzu-mobile-nav-panel-head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: .75rem !important;
    min-width: 0 !important;
    padding: .82rem .88rem 0 !important;
  }

  .kudzu-mobile-nav-panel-head > div {
    display: grid !important;
    gap: .08rem !important;
    min-width: 0 !important;
  }

  .kudzu-mobile-nav-panel-head strong {
    color: var(--text-main) !important;
    font-size: 1.02rem !important;
    line-height: 1.14 !important;
  }

  .kudzu-mobile-nav-panel-current {
    color: var(--muted) !important;
    font-size: .78rem !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .kudzu-mobile-nav-close {
    flex: 0 0 auto !important;
  }

  .kudzu-mobile-nav-search-wrap {
    display: grid !important;
    gap: .32rem !important;
    padding: 0 .88rem !important;
    min-width: 0 !important;
  }

  .kudzu-mobile-nav-search-wrap span {
    color: var(--field-label) !important;
    font-size: .72rem !important;
    font-weight: 800 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
  }

  .kudzu-mobile-nav-search-wrap input {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 42px !important;
    border-radius: 13px !important;
    border: 1px solid var(--input-border) !important;
    background: var(--input-bg) !important;
    color: var(--text) !important;
    padding: .62rem .78rem !important;
    font: inherit !important;
    outline: none !important;
  }

  .kudzu-mobile-nav-search-wrap input:focus {
    border-color: var(--btn-hover-border) !important;
    box-shadow: 0 0 0 3px var(--focus-ring) !important;
  }

  .kudzu-mobile-nav-panel .nav-links.nav-sidebar {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-auto-flow: row !important;
    align-content: start !important;
    gap: .72rem !important;
    margin: 0 !important;
    padding: 0 .88rem .95rem !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    scroll-snap-type: none !important;
    touch-action: pan-y !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .kudzu-mobile-nav-panel .nav-links.nav-sidebar::-webkit-scrollbar {
    width: 6px !important;
    height: 6px !important;
  }

  .kudzu-mobile-nav-panel .nav-group {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .38rem !important;
    min-width: 0 !important;
  }

  .kudzu-mobile-nav-panel .nav-group[hidden],
  .kudzu-mobile-nav-panel a[hidden] {
    display: none !important;
  }

  .kudzu-mobile-nav-panel .nav-group-title {
    display: block !important;
    padding: .1rem .08rem !important;
    writing-mode: initial !important;
    transform: none !important;
    opacity: .82 !important;
    font-size: .68rem !important;
    letter-spacing: .12em !important;
  }

  .kudzu-mobile-nav-panel .nav-links.nav-sidebar .btn {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 44px !important;
    flex: 0 1 auto !important;
    justify-content: flex-start !important;
    padding: .58rem .72rem !important;
    border-radius: 14px !important;
    scroll-snap-align: none !important;
  }

  .kudzu-mobile-nav-panel .nav-links.nav-sidebar .btn:hover {
    transform: none !important;
  }

  .kudzu-mobile-nav-panel .nav-links.nav-sidebar .btn .nav-module-label,
  .kudzu-mobile-nav-panel .nav-module-label {
    max-width: none !important;
    white-space: normal !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    overflow-wrap: anywhere !important;
    line-height: 1.18 !important;
  }
}

@media (min-width: 761px) and (max-width: 1180px) {
  .kudzu-mobile-nav-panel {
    top: .75rem !important;
    bottom: .75rem !important;
    left: .75rem !important;
    width: min(390px, calc(100vw - 1.5rem)) !important;
    max-height: calc(100dvh - 1.5rem) !important;
    border-radius: 22px !important;
    transform: translateX(calc(-100% - 1.2rem)) scale(.985) !important;
  }

  body.kudzu-mobile-nav-open .kudzu-mobile-nav-panel {
    transform: translateX(0) scale(1) !important;
  }
}

@media (max-width: 760px) {
  .kudzu-mobile-nav-panel {
    left: .55rem !important;
    right: .55rem !important;
    bottom: calc(.55rem + env(safe-area-inset-bottom, 0px)) !important;
    width: auto !important;
    max-height: min(82dvh, 700px) !important;
    border-radius: 24px 24px 18px 18px !important;
    transform: translateY(calc(100% + 1.25rem)) !important;
  }

  body.kudzu-mobile-nav-open .kudzu-mobile-nav-panel {
    transform: translateY(0) !important;
  }

  .kudzu-mobile-nav-panel .nav-links.nav-sidebar {
    padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px)) !important;
  }
}

@media (max-width: 520px) {
  .kudzu-mobile-nav-toggle {
    min-height: 44px !important;
    padding: .52rem .62rem !important;
  }

  .kudzu-mobile-nav-toggle-icon {
    width: 1.86rem !important;
    height: 1.86rem !important;
    flex-basis: 1.86rem !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .kudzu-mobile-nav-panel,
  .kudzu-mobile-nav-backdrop {
    transition: none !important;
  }
}

/* Mobile/tablet hardening: keep profile and app navigation usable above their backdrops. */
@media (max-width: 1180px) {
  body.kudzu-mobile-nav-open .module-sidebar {
    z-index: 1000 !important;
  }

  body.kudzu-mobile-nav-open .kudzu-mobile-nav-toggle {
    position: relative !important;
    z-index: 1001 !important;
  }

  body.kudzu-mobile-nav-open .kudzu-mobile-nav-panel {
    z-index: 1002 !important;
  }

  .kudzu-mobile-nav-backdrop {
    background: rgba(3, 10, 24, .48) !important;
    backdrop-filter: none !important;
  }
}

@media (max-width: 980px) {
  .profile-popover:not(.hidden) {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100dvh !important;
    max-height: none !important;
    overflow: hidden !important;
    display: grid !important;
    place-items: stretch !important;
    padding: max(.45rem, env(safe-area-inset-top, 0px)) .45rem max(.45rem, env(safe-area-inset-bottom, 0px)) !important;
  }

  .profile-popover-card {
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    min-height: 0 !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
    overflow: hidden !important;
  }

  .profile-popover-head {
    min-width: 0 !important;
    flex-wrap: nowrap !important;
  }

  .profile-popover-head .modal-head-main {
    min-width: 0 !important;
  }

  .profile-popover-head .modal-subhead {
    max-width: 100% !important;
  }

  .profile-popover .modal-body {
    min-height: 0 !important;
    overflow: hidden !important;
    display: grid !important;
    grid-template-rows: auto auto minmax(0, 1fr) !important;
  }

  .profile-self-form {
    min-height: 0 !important;
    height: auto !important;
    max-height: 100% !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) auto auto !important;
    overflow: hidden !important;
  }

  .profile-self-grid {
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-bottom: .85rem !important;
    scroll-padding-bottom: 1rem !important;
  }

  .profile-self-actions {
    position: static !important;
    z-index: auto !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .5rem !important;
    margin-top: 0 !important;
    padding-top: .65rem !important;
    padding-bottom: calc(.35rem + env(safe-area-inset-bottom, 0px)) !important;
    background: transparent !important;
    backdrop-filter: none !important;
  }

  .profile-self-actions .btn,
  #shell-profile-password-btn {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    justify-self: stretch !important;
  }
}

/* Follow-up mobile fix: avoid fixed panels being constrained by filtered ancestors. */
@media (max-width: 1180px) {
  .module-sidebar {
    backdrop-filter: none !important;
  }

  body.kudzu-mobile-nav-open .module-sidebar {
    z-index: 1500 !important;
  }

  .kudzu-mobile-nav-panel {
    z-index: 1510 !important;
    pointer-events: none !important;
  }

  body.kudzu-mobile-nav-open .kudzu-mobile-nav-panel {
    pointer-events: auto !important;
  }

  .kudzu-mobile-nav-backdrop {
    z-index: 1390 !important;
  }

  .kudzu-mobile-nav-panel .nav-links.nav-sidebar {
    min-height: 0 !important;
    max-height: 100% !important;
    overflow-y: auto !important;
    pointer-events: auto !important;
    overscroll-behavior: contain !important;
    touch-action: pan-y !important;
  }

  .kudzu-mobile-nav-panel .nav-links.nav-sidebar a[href] {
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }
}

@media (min-width: 761px) and (max-width: 1180px) {
  .kudzu-mobile-nav-panel {
    top: .65rem !important;
    bottom: .65rem !important;
    height: calc(100dvh - 1.3rem) !important;
    max-height: calc(100dvh - 1.3rem) !important;
  }
}

@media (max-width: 760px) {
  .kudzu-mobile-nav-panel {
    top: auto !important;
    bottom: calc(.5rem + env(safe-area-inset-bottom, 0px)) !important;
    height: min(78dvh, 680px) !important;
    max-height: calc(100dvh - 1rem - env(safe-area-inset-bottom, 0px)) !important;
  }
}

@media (max-width: 980px) {
  .profile-popover-head {
    padding: .62rem .72rem !important;
  }

  .profile-popover-head h2 {
    font-size: 1.05rem !important;
  }

  .profile-popover-head .modal-subhead {
    display: none !important;
  }

  .profile-popover .modal-body {
    gap: .55rem !important;
    padding: .62rem !important;
  }

  .profile-self-summary {
    padding: .58rem !important;
    gap: .58rem !important;
  }

  .profile-self-avatar {
    width: 42px !important;
    height: 42px !important;
    border-radius: 14px !important;
    font-size: 1rem !important;
  }

  .profile-self-form {
    display: block !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    padding: .68rem !important;
  }

  .profile-self-note {
    padding: .42rem .52rem !important;
    border-left-width: 3px !important;
    border-radius: 12px !important;
    font-size: .76rem !important;
    line-height: 1.25 !important;
  }

  .profile-self-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    overflow: visible !important;
    padding: .55rem 0 !important;
    gap: .58rem !important;
  }

  .profile-self-grid input,
  .profile-self-grid select {
    min-height: 40px !important;
  }

  .profile-self-actions {
    position: sticky !important;
    bottom: 0 !important;
    z-index: 3 !important;
    margin-top: .55rem !important;
    padding-top: .62rem !important;
    background: linear-gradient(180deg, color-mix(in srgb, var(--surface-2) 72%, transparent), color-mix(in srgb, var(--surface-2) 98%, transparent) 30%) !important;
    border-top: 1px solid var(--line) !important;
  }
}

/* Android/iOS WebView readiness pass - 2026-06-05. */
:root {
  --kudzu-safe-top: env(safe-area-inset-top, 0px);
  --kudzu-safe-right: env(safe-area-inset-right, 0px);
  --kudzu-safe-bottom: env(safe-area-inset-bottom, 0px);
  --kudzu-safe-left: env(safe-area-inset-left, 0px);
  --kudzu-app-vh: var(--kudzu-visual-vh, 100dvh);
}

@supports (height: 100svh) {
  :root {
    --kudzu-app-vh: var(--kudzu-visual-vh, 100svh);
  }
}

@media (max-width: 1180px) {
  html {
    min-height: 100dvh !important;
    scroll-padding-top: calc(.75rem + var(--kudzu-safe-top)) !important;
    scroll-padding-bottom: calc(1rem + var(--kudzu-safe-bottom)) !important;
  }

  body {
    min-height: var(--kudzu-app-vh) !important;
    overscroll-behavior-x: none !important;
  }

  .module-layout,
  .app-shell {
    padding-left: max(0px, var(--kudzu-safe-left)) !important;
    padding-right: max(0px, var(--kudzu-safe-right)) !important;
  }

  .module-layout {
    padding-bottom: calc(1rem + var(--kudzu-safe-bottom)) !important;
  }

  button,
  .btn,
  .theme-toggle,
  .icon-btn,
  [role="button"],
  input,
  select,
  textarea {
    touch-action: manipulation !important;
  }

  input,
  select,
  textarea {
    font-size: 16px !important;
  }

  .btn,
  .theme-toggle,
  .icon-btn,
  .calendar-notify-dismiss,
  .kudzu-mobile-nav-toggle,
  .kudzu-mobile-nav-panel .nav-links.nav-sidebar .btn {
    min-height: 44px !important;
  }

  .theme-toggle,
  .icon-btn,
  .calendar-notify-dismiss {
    min-width: 44px !important;
  }

  .modal-window,
  .user-modal-window,
  .upload-modal-window,
  .document-ai-modal-window,
  .invoice-detail-window,
  .compare-modal-window,
  .selector-modal-window,
  .calendar-quick-modal-window,
  .home-quick-picker-window,
  .qr-detail-window,
  .campanas-form-window,
  .campanas-settings-window,
  .campanas-detail-window,
  .campanas-send-result-window,
  .campanas-templates-window,
  .campanas-preview-window,
  .comms-settings-window,
  .rebate-agreement-modal-window,
  .rebate-objective-modal-window,
  .auth-recovery-modal-window,
  .auth-mfa-window,
  .auth-feedback-window,
  .active-session-window,
  .sales-payment-modal-window,
  .patient-bed-modal-window,
  .history-control-modal-window,
  .history-medication-plan-modal-window,
  .history-patient-modal-window,
  .role-modal-window,
  .tenant-online-modal-window,
  .saas-tenant-detail-window,
  .timeline-modal-window,
  .provider-products-modal-window,
  .selector-notice-window,
  .line-items-modal-window,
  .rooms-admin-window,
  .module-movement-detail-window,
  .bug-report-window,
  .global-status-popup-window {
    max-height: calc(var(--kudzu-app-vh) - 1rem - var(--kudzu-safe-top) - var(--kudzu-safe-bottom)) !important;
  }

  .kudzu-mobile-nav-panel {
    max-height: calc(var(--kudzu-app-vh) - 1.1rem - var(--kudzu-safe-top) - var(--kudzu-safe-bottom)) !important;
  }

  .modal-body,
  .kudzu-mobile-nav-panel .nav-links.nav-sidebar,
  .profile-self-form,
  .table-wrap,
  .entity-table-wrap {
    -webkit-overflow-scrolling: touch !important;
  }

  .entity-mobile-list,
  .clientes-mobile-list,
  .docs-ai-grid {
    width: 100% !important;
    min-width: 0 !important;
    display: grid !important;
    gap: .72rem !important;
  }

  .entity-mobile-list.hidden,
  .clientes-mobile-list.hidden {
    display: none !important;
  }

  .entity-card,
  .entity-mobile-card,
  .docs-ai-card,
  .calendar-event-card {
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }

  .entity-card-head,
  .docs-ai-card-head,
  .calendar-event-head {
    min-width: 0 !important;
  }

  .entity-card-head strong,
  .docs-ai-card-name,
  .calendar-event-head strong {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .cliente-card-line,
  .entity-mobile-card-main,
  .docs-ai-card-preview,
  .calendar-event-meta,
  .calendar-event-detail,
  .metric-card strong,
  .report-metric-card strong,
  .subhead,
  .meta-line,
  .status,
  .doc-empty {
    overflow-wrap: anywhere !important;
  }

  body[data-module-key="reportes"] .chart-card,
  .chart-card,
  .chart-surface {
    min-width: 0 !important;
  }

  body[data-module-key="reportes"] .chart-surface,
  .chart-surface {
    min-height: clamp(240px, 42dvh, 380px) !important;
  }

  body[data-module-key="reportes"] .chart-surface canvas,
  .chart-surface canvas {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 220px !important;
  }

  .reportes-toolbar-form .finanzas-toolbar-sep,
  .finanzas-toolbar-form .finanzas-toolbar-sep {
    display: none !important;
  }

  .document-ai-modal-window .modal-body {
    min-height: 0 !important;
  }

  .document-ai-split,
  .document-ai-workspace {
    grid-template-columns: 1fr !important;
  }

  .document-ai-viewer,
  .document-ai-summary-text {
    min-height: min(52dvh, 480px) !important;
  }
}

@media (max-width: 760px) {
  .module-layout {
    width: 100% !important;
    padding-top: var(--kudzu-safe-top) !important;
    padding-left: max(.28rem, var(--kudzu-safe-left)) !important;
    padding-right: max(.28rem, var(--kudzu-safe-right)) !important;
    padding-bottom: calc(1rem + var(--kudzu-safe-bottom)) !important;
  }

  .module-sidebar {
    top: calc(.35rem + var(--kudzu-safe-top)) !important;
  }

  .module-layout .app-header {
    gap: .62rem !important;
  }

  .module-layout .app-header .header-left h1,
  .app-header h1 {
    font-size: clamp(1.28rem, 7vw, 1.85rem) !important;
    line-height: 1.08 !important;
  }

  .header-actions.header-right,
  .header-actions.header-right .header-row {
    gap: .42rem !important;
  }

  .metrics,
  .metrics-4,
  .dashboard-metrics,
  .report-metric-grid,
  .report-health-grid,
  .dashboard-contract-grid {
    gap: .62rem !important;
  }

  .metric-card,
  .report-metric-card {
    min-height: 0 !important;
    padding: .82rem !important;
  }

  .metric-card strong,
  .report-metric-card strong {
    font-size: clamp(1.32rem, 7vw, 2.15rem) !important;
    line-height: 1.08 !important;
  }

  body.home-page .module-grid,
  body[data-module-key="centro_ia"] .ai-capabilities-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .66rem !important;
  }

  body.home-page .module-card,
  body[data-module-key="centro_ia"] .ai-capability-card.ai-capability-card--compact {
    min-height: 8.65rem !important;
    padding: .74rem .56rem !important;
    border-radius: 15px !important;
  }

  body.home-page .module-icon-shell,
  body[data-module-key="centro_ia"] .ai-capability-card--compact .ai-capability-icon {
    width: 3.35rem !important;
    height: 3.35rem !important;
    border-radius: 1rem !important;
  }

  body.home-page .module-icon-art,
  body[data-module-key="centro_ia"] .ai-capability-card--compact .ai-capability-icon svg {
    width: 1.85rem !important;
    height: 1.85rem !important;
  }

  body.home-page .module-card h3,
  body[data-module-key="centro_ia"] .ai-capability-card--compact .ai-capability-head h3 {
    max-width: 13ch !important;
    min-height: 2.25rem !important;
    font-size: .94rem !important;
  }

  .modal:not(.hidden) {
    padding: max(.35rem, var(--kudzu-safe-top)) max(.35rem, var(--kudzu-safe-right)) max(.35rem, var(--kudzu-safe-bottom)) max(.35rem, var(--kudzu-safe-left)) !important;
  }

  .modal-window,
  .user-modal-window,
  .upload-modal-window,
  .document-ai-modal-window,
  .invoice-detail-window,
  .compare-modal-window,
  .selector-modal-window,
  .calendar-quick-modal-window,
  .home-quick-picker-window,
  .qr-detail-window,
  .campanas-form-window,
  .campanas-settings-window,
  .campanas-detail-window,
  .campanas-send-result-window,
  .campanas-templates-window,
  .campanas-preview-window,
  .comms-settings-window,
  .rebate-agreement-modal-window,
  .rebate-objective-modal-window,
  .auth-recovery-modal-window,
  .auth-mfa-window,
  .auth-feedback-window,
  .active-session-window,
  .sales-payment-modal-window,
  .patient-bed-modal-window,
  .history-control-modal-window,
  .history-medication-plan-modal-window,
  .history-patient-modal-window,
  .role-modal-window,
  .tenant-online-modal-window,
  .saas-tenant-detail-window,
  .timeline-modal-window,
  .provider-products-modal-window,
  .selector-notice-window,
  .line-items-modal-window,
  .rooms-admin-window,
  .module-movement-detail-window,
  .bug-report-window,
  .global-status-popup-window {
    max-height: calc(var(--kudzu-app-vh) - .7rem - var(--kudzu-safe-top) - var(--kudzu-safe-bottom)) !important;
  }

  .modal-body form > .actions,
  .modal-body .form-actions,
  .modal-body .modal-actions {
    position: sticky !important;
    bottom: -.78rem !important;
    z-index: 4 !important;
    margin-top: .7rem !important;
    padding: .68rem 0 calc(.2rem + var(--kudzu-safe-bottom)) !important;
    border-top: 1px solid var(--line) !important;
    background: linear-gradient(180deg, color-mix(in srgb, var(--surface-2) 72%, transparent), color-mix(in srgb, var(--surface-2) 98%, transparent) 28%) !important;
    backdrop-filter: blur(8px) !important;
  }

  .table-wrap,
  .entity-table-wrap {
    border-radius: 14px !important;
  }

  body[data-module-key="reportes"] .chart-surface,
  .chart-surface {
    min-height: 260px !important;
  }

  .document-ai-viewer,
  .document-ai-summary-text,
  .invoice-detail-frame,
  iframe,
  object,
  embed {
    min-height: min(50dvh, 360px) !important;
  }
}

@media (max-width: 430px) {
  .module-layout {
    gap: .45rem !important;
    padding-left: max(.22rem, var(--kudzu-safe-left)) !important;
    padding-right: max(.22rem, var(--kudzu-safe-right)) !important;
  }

  .module-sidebar,
  .module-layout .app-header,
  .panel,
  .table-panel {
    border-radius: 14px !important;
  }

  body.home-page .module-grid,
  body[data-module-key="centro_ia"] .ai-capabilities-grid {
    gap: .54rem !important;
  }

  body.home-page .module-card,
  body[data-module-key="centro_ia"] .ai-capability-card.ai-capability-card--compact {
    min-height: 7.9rem !important;
    padding: .66rem .48rem !important;
  }

  body.home-page .module-icon-shell,
  body[data-module-key="centro_ia"] .ai-capability-card--compact .ai-capability-icon {
    width: 3rem !important;
    height: 3rem !important;
  }

  body.home-page .module-card h3,
  body[data-module-key="centro_ia"] .ai-capability-card--compact .ai-capability-head h3 {
    font-size: .88rem !important;
    line-height: 1.16 !important;
  }

  .search-form,
  .compact-search-form,
  .clientes-search-form,
  .productos-search-form,
  .users-search-form,
  .roles-search-form,
  .chart-toolbar-form,
  .finanzas-inline-search,
  .module-period-form,
  .reportes-toolbar-form,
  .finanzas-toolbar-form,
  .rebate-filter-bar,
  .compact-results-filter,
  .docs-filters,
  .audit-filters {
    gap: .48rem !important;
  }

  .entity-card,
  .entity-mobile-card,
  .docs-ai-card,
  .calendar-event-card {
    padding: .72rem !important;
  }

  .chart-surface {
    min-height: 238px !important;
    padding: .55rem !important;
  }

  .modal-head,
  .modal-body {
    padding-inline: .66rem !important;
  }
}

@media (max-width: 760px) {
  .kudzu-responsive-table-wrap {
    overflow-x: visible !important;
    background: transparent !important;
    border: 0 !important;
  }

  table.kudzu-responsive-table {
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background: transparent !important;
  }

  table.kudzu-responsive-table thead {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
  }

  table.kudzu-responsive-table tbody {
    display: grid !important;
    gap: .72rem !important;
    width: 100% !important;
  }

  table.kudzu-responsive-table tbody tr {
    display: grid !important;
    gap: .45rem !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: .78rem !important;
    border: 1px solid color-mix(in srgb, var(--line-strong) 30%, var(--line)) !important;
    border-radius: 16px !important;
    background: var(--panel-soft) !important;
    box-shadow: var(--panel-shadow-soft) !important;
  }

  table.kudzu-responsive-table tbody tr.row-selectable {
    cursor: pointer !important;
  }

  table.kudzu-responsive-table tbody td {
    display: grid !important;
    grid-template-columns: minmax(6.8rem, 34%) minmax(0, 1fr) !important;
    align-items: start !important;
    gap: .58rem !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--text) !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: anywhere !important;
  }

  table.kudzu-responsive-table tbody td::before {
    content: attr(data-label) !important;
    min-width: 0 !important;
    color: var(--muted) !important;
    font-family: "IBM Plex Mono", monospace !important;
    font-size: .68rem !important;
    font-weight: 800 !important;
    letter-spacing: .08em !important;
    line-height: 1.28 !important;
    text-transform: uppercase !important;
  }

  table.kudzu-responsive-table tbody td[data-label=""] {
    display: block !important;
  }

  table.kudzu-responsive-table tbody td[data-label=""]::before {
    display: none !important;
  }

  table.kudzu-responsive-table tbody td.table-empty,
  table.kudzu-responsive-table tbody td[colspan] {
    display: block !important;
    text-align: center !important;
    color: var(--muted) !important;
  }

  table.kudzu-responsive-table tbody td.table-empty::before,
  table.kudzu-responsive-table tbody td[colspan]::before {
    display: none !important;
  }

  table.kudzu-responsive-table tbody td.table-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .44rem !important;
    padding-top: .5rem !important;
    border-top: 1px solid var(--line) !important;
  }

  table.kudzu-responsive-table tbody td.table-actions::before {
    content: attr(data-label) !important;
  }

  table.kudzu-responsive-table tbody td.table-actions .row-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .42rem !important;
    width: 100% !important;
  }

  table.kudzu-responsive-table tbody td.table-actions .btn {
    width: 100% !important;
    justify-content: center !important;
  }
}

@media (max-width: 430px) {
  table.kudzu-responsive-table tbody tr {
    padding: .68rem !important;
    border-radius: 14px !important;
  }

  table.kudzu-responsive-table tbody td {
    grid-template-columns: 1fr !important;
    gap: .18rem !important;
  }
}

@media (max-width: 370px) {
  body.home-page .module-grid,
  body[data-module-key="centro_ia"] .ai-capabilities-grid {
    grid-template-columns: 1fr !important;
  }

  .header-actions.header-right .btn.ghost {
    width: 100% !important;
    justify-content: center !important;
  }
}

/* Mobile app readiness consolidation - 2026-06-05. */
@media (max-width: 1180px) {
  html,
  body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .module-layout,
  .module-main,
  .module-main.app-shell,
  .page-shell,
  .dashboard-page,
  .panel,
  .table-panel,
  .table-wrap,
  .entity-table-wrap,
  .modal-window,
  .modal-body {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .module-main.app-shell {
    width: 100% !important;
  }

  .app-header,
  .header-actions,
  .header-actions.header-right,
  .panel-head,
  .table-headline,
  .clientes-headline,
  .module-section-head,
  .dashboard-head,
  .actions,
  .modal-actions-right,
  .csv-inline-actions,
  .table-head-tools,
  .clientes-head-tools {
    min-width: 0 !important;
    max-width: 100% !important;
    flex-wrap: wrap !important;
  }

  .header-actions.header-right,
  .table-head-tools,
  .clientes-head-tools,
  .csv-inline-actions {
    gap: .5rem !important;
  }

  .header-actions.header-right > *,
  .table-head-tools > *,
  .clientes-head-tools > *,
  .csv-inline-actions > *,
  .actions > * {
    min-width: 0 !important;
  }

  .search-form,
  .compact-search-form,
  .clientes-search-form,
  .productos-search-form,
  .users-search-form,
  .roles-search-form,
  .chart-toolbar-form,
  .finanzas-toolbar-form,
  .reportes-toolbar-form,
  .module-period-form,
  .docs-filters,
  .audit-filters,
  .rebate-filter-bar,
  .compact-results-filter {
    width: 100% !important;
    min-width: 0 !important;
  }

  .search-form input,
  .search-form select,
  .compact-search-form input,
  .compact-search-form select,
  .clientes-search-form input,
  .clientes-search-form select,
  .productos-search-form input,
  .productos-search-form select,
  .users-search-form input,
  .users-search-form select,
  .roles-search-form input,
  .roles-search-form select,
  .docs-filters input,
  .docs-filters select,
  .audit-filters input,
  .audit-filters select,
  .reportes-toolbar-form input,
  .reportes-toolbar-form select,
  .finanzas-toolbar-form input,
  .finanzas-toolbar-form select,
  .module-period-form input,
  .module-period-form select {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .table-wrap,
  .entity-table-wrap {
    overscroll-behavior-x: contain !important;
    scroll-padding-inline: .75rem !important;
  }

  .table-wrap table,
  .entity-table-wrap table {
    max-width: none;
  }

  .row-actions,
  .table-actions,
  .entity-mobile-actions,
  .inspector-actions {
    flex-wrap: wrap !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .row-actions .btn,
  .table-actions .btn,
  .entity-mobile-actions .btn,
  .inspector-actions .btn {
    min-width: 44px !important;
  }

  .modal-head {
    position: sticky !important;
    top: 0 !important;
    z-index: 6 !important;
    background: linear-gradient(180deg, color-mix(in srgb, var(--surface-2) 98%, transparent), color-mix(in srgb, var(--surface-2) 90%, transparent)) !important;
    backdrop-filter: blur(10px) !important;
  }

  .modal-body {
    overscroll-behavior: contain !important;
  }

  .modal-body input,
  .modal-body select,
  .modal-body textarea,
  .panel input,
  .panel select,
  .panel textarea {
    max-width: 100% !important;
  }

  .chart-card,
  .chart-surface,
  .report-chart-card {
    overflow: hidden !important;
  }

  canvas {
    max-width: 100% !important;
  }
}

@media (max-width: 760px) {
  .module-main,
  .module-main.app-shell,
  .page-shell,
  .dashboard-page {
    padding-inline: max(.5rem, var(--kudzu-safe-left)) max(.5rem, var(--kudzu-safe-right)) !important;
  }

  .panel,
  .table-panel {
    padding: .78rem !important;
  }

  .panel-head,
  .table-headline,
  .clientes-headline,
  .module-section-head,
  .dashboard-head {
    gap: .55rem !important;
  }

  .panel-head > *,
  .table-headline > *,
  .clientes-headline > *,
  .dashboard-head > * {
    min-width: 0 !important;
  }

  .search-form,
  .compact-search-form,
  .clientes-search-form,
  .productos-search-form,
  .users-search-form,
  .roles-search-form,
  .chart-toolbar-form,
  .finanzas-toolbar-form,
  .reportes-toolbar-form,
  .module-period-form,
  .docs-filters,
  .audit-filters,
  .rebate-filter-bar,
  .compact-results-filter {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .search-form .btn,
  .compact-search-form .btn,
  .clientes-search-form .btn,
  .productos-search-form .btn,
  .users-search-form .btn,
  .roles-search-form .btn,
  .chart-toolbar-form .btn,
  .finanzas-toolbar-form .btn,
  .reportes-toolbar-form .btn,
  .module-period-form .btn,
  .docs-filters .btn,
  .audit-filters .btn,
  .rebate-filter-bar .btn,
  .compact-results-filter .btn {
    width: 100% !important;
    justify-content: center !important;
  }

  .modal:not(.hidden) {
    align-items: flex-end !important;
  }

  .modal-window,
  .user-modal-window,
  .upload-modal-window,
  .document-ai-modal-window,
  .invoice-detail-window,
  .compare-modal-window,
  .selector-modal-window,
  .calendar-quick-modal-window,
  .home-quick-picker-window,
  .qr-detail-window,
  .campanas-form-window,
  .campanas-settings-window,
  .campanas-detail-window,
  .campanas-send-result-window,
  .campanas-templates-window,
  .campanas-preview-window,
  .comms-settings-window,
  .rebate-agreement-modal-window,
  .rebate-objective-modal-window,
  .auth-recovery-modal-window,
  .auth-mfa-window,
  .auth-feedback-window,
  .active-session-window,
  .sales-payment-modal-window,
  .patient-bed-modal-window,
  .history-control-modal-window,
  .history-medication-plan-modal-window,
  .history-patient-modal-window,
  .role-modal-window,
  .tenant-online-modal-window,
  .saas-tenant-detail-window,
  .timeline-modal-window,
  .provider-products-modal-window,
  .selector-notice-window,
  .line-items-modal-window,
  .rooms-admin-window,
  .module-movement-detail-window,
  .bug-report-window,
  .global-status-popup-window {
    width: 100% !important;
    max-width: 100% !important;
    border-radius: 18px 18px 0 0 !important;
  }

  .modal-body .actions,
  .modal-body .modal-actions-right,
  .modal-body .form-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .modal-body .actions .btn,
  .modal-body .modal-actions-right .btn,
  .modal-body .form-actions .btn {
    width: 100% !important;
    justify-content: center !important;
  }

  .metric-grid,
  .summary-grid,
  .stats-grid,
  .cards-grid,
  .dashboard-grid,
  .reportes-grid,
  .finanzas-grid,
  .saas-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 430px) {
  .module-main,
  .module-main.app-shell,
  .page-shell,
  .dashboard-page {
    padding-inline: max(.38rem, var(--kudzu-safe-left)) max(.38rem, var(--kudzu-safe-right)) !important;
  }

  .panel,
  .table-panel,
  .entity-card,
  .entity-mobile-card,
  .docs-ai-card,
  .calendar-event-card {
    border-radius: 13px !important;
  }

  .app-header h1,
  .panel h2,
  .table-headline h2,
  .dashboard-head h2 {
    font-size: clamp(1.05rem, 7vw, 1.42rem) !important;
    line-height: 1.12 !important;
  }

  .btn,
  .theme-toggle,
  .icon-btn {
    max-width: 100% !important;
  }
}

/* Primary navigation mobile/tablet stabilization - 2026-06-14.
   Keep the drawer behavior, but make its layout, scroll and touch handling
   win over older horizontal-navigation rules on compact viewports. */
@media (max-width: 1180px) {
  html.kudzu-mobile-nav-open,
  body.kudzu-mobile-nav-open {
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }

  .module-sidebar {
    position: sticky !important;
    top: calc(.5rem + var(--kudzu-safe-top, 0px)) !important;
    z-index: 1800 !important;
    display: grid !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: visible !important;
    isolation: isolate !important;
    backdrop-filter: none !important;
  }

  .kudzu-mobile-nav-toggle {
    position: relative !important;
    isolation: isolate !important;
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    transform: translateZ(0) !important;
    transition:
      border-color 170ms ease,
      box-shadow 170ms ease,
      transform 170ms ease,
      background-color 170ms ease !important;
  }

  .kudzu-mobile-nav-toggle::after {
    content: "" !important;
    position: absolute !important;
    inset: auto .72rem .42rem 3.55rem !important;
    height: 2px !important;
    border-radius: 999px !important;
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--kudzu-cyan, #00AEEF) 66%, transparent), transparent) !important;
    opacity: .58 !important;
    transform: scaleX(.68) !important;
    transform-origin: left center !important;
    transition: opacity 170ms ease, transform 170ms ease !important;
    pointer-events: none !important;
  }

  .kudzu-mobile-nav-toggle:hover,
  .kudzu-mobile-nav-toggle:focus-visible,
  body.kudzu-mobile-nav-open .kudzu-mobile-nav-toggle {
    border-color: color-mix(in srgb, var(--kudzu-cyan, #00AEEF) 42%, var(--line)) !important;
    box-shadow: 0 16px 30px color-mix(in srgb, var(--kudzu-cyan, #00AEEF) 12%, transparent), inset 0 1px 0 rgba(255, 255, 255, .12) !important;
    transform: translateY(-1px) !important;
  }

  .kudzu-mobile-nav-toggle:hover::after,
  .kudzu-mobile-nav-toggle:focus-visible::after,
  body.kudzu-mobile-nav-open .kudzu-mobile-nav-toggle::after {
    opacity: .9 !important;
    transform: scaleX(1) !important;
  }

  .kudzu-mobile-nav-toggle-icon {
    transition: transform 170ms ease, border-color 170ms ease, background-color 170ms ease !important;
  }

  body.kudzu-mobile-nav-open .kudzu-mobile-nav-toggle-icon {
    transform: rotate(90deg) !important;
  }

  .kudzu-mobile-nav-backdrop {
    position: fixed !important;
    inset: 0 !important;
    z-index: 1810 !important;
    opacity: 0 !important;
    pointer-events: none !important;
    background: rgba(3, 10, 24, .48) !important;
    border: 0 !important;
    padding: 0 !important;
    touch-action: none !important;
    transition: opacity 180ms ease !important;
  }

  body.kudzu-mobile-nav-open .kudzu-mobile-nav-backdrop {
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .kudzu-mobile-nav-panel {
    position: fixed !important;
    z-index: 1820 !important;
    display: grid !important;
    grid-template-rows: auto auto minmax(0, 1fr) !important;
    gap: .72rem !important;
    min-width: 0 !important;
    overflow: hidden !important;
    contain: layout paint !important;
    opacity: 0 !important;
    pointer-events: none !important;
    background:
      radial-gradient(520px circle at 0 0, rgba(59, 168, 255, .13), transparent 58%),
      linear-gradient(160deg, color-mix(in srgb, var(--surface-2) 98%, transparent), color-mix(in srgb, var(--surface) 96%, transparent)) !important;
    box-shadow: 0 28px 70px rgba(2, 9, 22, .34), inset 0 1px 0 rgba(255, 255, 255, .12) !important;
    transition:
      transform 220ms cubic-bezier(.2, .9, .25, 1),
      opacity 170ms ease !important;
    will-change: transform, opacity !important;
  }

  body.kudzu-mobile-nav-open .kudzu-mobile-nav-panel {
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .kudzu-mobile-nav-panel-head,
  .kudzu-mobile-nav-search-wrap {
    flex: 0 0 auto !important;
    min-width: 0 !important;
  }

  .kudzu-mobile-nav-panel .nav-links.nav-sidebar {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    align-content: start !important;
    gap: .68rem !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 .9rem calc(.95rem + var(--kudzu-safe-bottom, 0px)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: none !important;
    touch-action: pan-y !important;
  }

  .kudzu-mobile-nav-panel .nav-group {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: .38rem !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .kudzu-mobile-nav-panel .nav-group-title {
    display: block !important;
    margin: 0 .12rem .04rem !important;
    padding: 0 !important;
    writing-mode: initial !important;
    transform: none !important;
    color: var(--text-muted) !important;
    font-size: .68rem !important;
    font-weight: 850 !important;
    letter-spacing: .1em !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
  }

  .kudzu-mobile-nav-panel .nav-links.nav-sidebar .btn {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 46px !important;
    flex: 0 0 auto !important;
    justify-content: flex-start !important;
    gap: .66rem !important;
    padding: .62rem .78rem !important;
    border-radius: 14px !important;
    scroll-snap-align: none !important;
    transform: translate3d(0, 0, 0) !important;
    transition:
      border-color 160ms ease,
      box-shadow 160ms ease,
      background-color 160ms ease,
      transform 160ms ease !important;
  }

  .kudzu-mobile-nav-panel .nav-links.nav-sidebar .btn:active {
    transform: scale(.99) !important;
  }

  .kudzu-mobile-nav-panel .nav-links.nav-sidebar .btn.is-active {
    box-shadow: inset 3px 0 0 color-mix(in srgb, var(--kudzu-cyan, #00AEEF) 72%, transparent), 0 10px 20px color-mix(in srgb, var(--kudzu-cyan, #00AEEF) 10%, transparent) !important;
  }

  .kudzu-mobile-nav-panel .nav-links.nav-sidebar .btn .nav-module-icon {
    flex: 0 0 1.72rem !important;
    width: 1.72rem !important;
    height: 1.72rem !important;
  }

  .kudzu-mobile-nav-panel .nav-links.nav-sidebar .btn .nav-module-label {
    min-width: 0 !important;
    max-width: none !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    line-height: 1.2 !important;
  }
}

@media (min-width: 761px) and (max-width: 1180px) {
  .kudzu-mobile-nav-panel {
    top: calc(.7rem + var(--kudzu-safe-top, 0px)) !important;
    bottom: calc(.7rem + var(--kudzu-safe-bottom, 0px)) !important;
    left: calc(.7rem + var(--kudzu-safe-left, 0px)) !important;
    right: auto !important;
    width: min(410px, calc(100vw - 1.4rem - var(--kudzu-safe-left, 0px) - var(--kudzu-safe-right, 0px))) !important;
    height: auto !important;
    max-height: calc(var(--kudzu-app-vh, 100dvh) - 1.4rem - var(--kudzu-safe-top, 0px) - var(--kudzu-safe-bottom, 0px)) !important;
    border-radius: 22px !important;
    transform: translate3d(calc(-100% - 1.2rem), 0, 0) scale(.985) !important;
  }

  body.kudzu-mobile-nav-open .kudzu-mobile-nav-panel {
    transform: translate3d(0, 0, 0) scale(1) !important;
  }
}

@media (max-width: 760px) {
  .kudzu-mobile-nav-panel {
    top: auto !important;
    left: calc(.45rem + var(--kudzu-safe-left, 0px)) !important;
    right: calc(.45rem + var(--kudzu-safe-right, 0px)) !important;
    bottom: calc(.45rem + var(--kudzu-safe-bottom, 0px)) !important;
    width: auto !important;
    height: min(76dvh, 680px) !important;
    max-height: calc(var(--kudzu-app-vh, 100dvh) - .9rem - var(--kudzu-safe-top, 0px) - var(--kudzu-safe-bottom, 0px)) !important;
    border-radius: 22px 22px 18px 18px !important;
    transform: translate3d(0, calc(100% + 1.2rem), 0) !important;
  }

  body.kudzu-mobile-nav-open .kudzu-mobile-nav-panel {
    transform: translate3d(0, 0, 0) !important;
  }

  .kudzu-mobile-nav-panel-head {
    padding: .86rem .9rem 0 !important;
  }

  .kudzu-mobile-nav-search-wrap {
    padding: 0 .9rem !important;
  }
}

@media (hover: none), (pointer: coarse) {
  .kudzu-mobile-nav-toggle:hover {
    transform: translateZ(0) !important;
  }

  .kudzu-mobile-nav-panel .nav-links.nav-sidebar .btn:hover {
    transform: translate3d(0, 0, 0) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .kudzu-mobile-nav-toggle,
  .kudzu-mobile-nav-toggle::after,
  .kudzu-mobile-nav-toggle-icon,
  .kudzu-mobile-nav-panel,
  .kudzu-mobile-nav-backdrop,
  .kudzu-mobile-nav-panel .nav-links.nav-sidebar .btn {
    transition: none !important;
  }
}


/* Primary navigation compact stabilization - 2026-06-18.
   The backdrop must remain below the sidebar stacking context so the drawer stays tappable. */
@media (max-width: 1180px) {
  .module-sidebar,
  body.kudzu-mobile-nav-open .module-sidebar {
    z-index: 1800 !important;
    isolation: auto !important;
  }

  .kudzu-mobile-nav-backdrop {
    z-index: 1760 !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    background: rgba(3, 10, 24, .38) !important;
    transition: opacity 210ms ease, visibility 0s linear 270ms !important;
  }

  html.kudzu-mobile-nav-open .kudzu-mobile-nav-backdrop,
  body.kudzu-mobile-nav-open .kudzu-mobile-nav-backdrop {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transition-delay: 0s !important;
  }

  .kudzu-mobile-nav-panel {
    z-index: 1820 !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: transform 270ms cubic-bezier(.2, .82, .2, 1), opacity 220ms ease, visibility 0s linear 280ms !important;
  }

  html.kudzu-mobile-nav-open .kudzu-mobile-nav-panel,
  body.kudzu-mobile-nav-open .kudzu-mobile-nav-panel {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transition-delay: 0s !important;
  }

  .kudzu-mobile-nav-toggle-icon {
    width: 2.12rem !important;
    height: 2.12rem !important;
    flex: 0 0 2.12rem !important;
    font-size: 1.08rem !important;
  }

  .kudzu-mobile-nav-panel .nav-links.nav-sidebar .btn .nav-module-icon {
    width: 1.98rem !important;
    height: 1.98rem !important;
    flex: 0 0 1.98rem !important;
  }

  .kudzu-mobile-nav-panel .nav-links.nav-sidebar .btn:active .nav-module-icon {
    transform: scale(.97) !important;
  }
}

@media (hover: none), (pointer: coarse) {
  .nav-links.nav-sidebar .btn:hover .nav-module-icon {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .kudzu-mobile-nav-panel,
  .kudzu-mobile-nav-backdrop,
  .nav-links.nav-sidebar .btn .nav-module-icon {
    transition: none !important;
  }
}


@media (max-width: 1180px) {
  html.kudzu-android-webview body .kudzu-mobile-nav-backdrop {
    z-index: 1760 !important;
  }

  html.kudzu-android-webview body .module-sidebar {
    z-index: 1800 !important;
    isolation: auto !important;
  }

  html.kudzu-android-webview body .kudzu-mobile-nav-panel {
    z-index: 1820 !important;
  }

  body.kudzu-shell-leaving .module-sidebar,
  body.kudzu-shell-arriving .module-sidebar {
    transform: none !important;
  }
}


@media (max-width: 1180px) {
  html.kudzu-android-webview #module-movements-panel .table-wrap,
  html.kudzu-android-webview #module-movements-panel .entity-table-wrap {
    max-height: none !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y;
  }

  html.kudzu-android-webview #module-movements-panel table {
    display: table !important;
    width: 100% !important;
    min-width: 720px !important;
    border-spacing: 0 !important;
    table-layout: auto !important;
  }

  html.kudzu-android-webview #module-movements-panel thead {
    display: table-header-group !important;
  }

  html.kudzu-android-webview #module-movements-panel tbody {
    display: table-row-group !important;
  }

  html.kudzu-android-webview #module-movements-panel tr {
    display: table-row !important;
    width: auto !important;
  }

  html.kudzu-android-webview #module-movements-panel th,
  html.kudzu-android-webview #module-movements-panel td {
    display: table-cell !important;
    width: auto !important;
    min-width: 108px !important;
    padding: .62rem .68rem !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    line-height: 1.35 !important;
    vertical-align: top !important;
  }

  html.kudzu-android-webview #module-movements-panel td::before {
    content: none !important;
  }

  html.kudzu-android-webview #module-movements-panel .module-movements-empty {
    display: table-cell !important;
    text-align: center !important;
    padding: .85rem !important;
  }

  html.kudzu-android-webview #module-movements-panel.module-movements-panel--android-cards .table-wrap {
    display: none !important;
  }

  html.kudzu-android-webview #module-movements-panel.module-movements-panel--android-cards .module-movements-mobile-list {
    display: grid !important;
    gap: .62rem !important;
    min-width: 0 !important;
  }

  html.kudzu-android-webview #module-movements-panel .module-movement-mobile-card {
    display: grid !important;
    gap: .38rem !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: .8rem .84rem !important;
    border: 1px solid color-mix(in srgb, var(--line-strong) 34%, var(--line)) !important;
    border-radius: 14px !important;
    background: var(--panel-soft) !important;
    box-shadow: var(--panel-shadow-soft) !important;
    overflow: hidden !important;
    cursor: pointer;
    touch-action: manipulation;
  }

  html.kudzu-android-webview #module-movements-panel .module-movement-mobile-card .entity-card-head {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: .55rem !important;
    min-width: 0 !important;
  }

  html.kudzu-android-webview #module-movements-panel .module-movement-mobile-card .cliente-card-line {
    margin: 0 !important;
    line-height: 1.35 !important;
    overflow-wrap: anywhere !important;
  }

  html.kudzu-android-webview #module-movements-panel .module-movement-mobile-card:active {
    transform: scale(.992);
  }

  html.kudzu-android-webview body[data-module-key="compras"] .line-items-modal-window .modal-body {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  html.kudzu-android-webview body[data-module-key="compras"] .line-items-modal-window .modal-body > *,
  html.kudzu-android-webview body[data-module-key="compras"] .line-items-modal-toolbar {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  html.kudzu-android-webview body[data-module-key="compras"] .line-items-modal-window .table-wrap,
  html.kudzu-android-webview body[data-module-key="compras"] .line-items-modal-window .entity-table-wrap {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-inline: contain !important;
    touch-action: pan-x pan-y !important;
  }

  html.kudzu-android-webview body[data-module-key="compras"] .line-items-catalog-table {
    width: 680px !important;
    min-width: 680px !important;
    max-width: none !important;
  }

  html.kudzu-android-webview body[data-module-key="compras"] .line-items-table {
    width: 920px !important;
    min-width: 920px !important;
    max-width: none !important;
  }
}

/* Adaptive windowed desktop contract - 2026-07-04.
   A desktop browser remains fully operable when it is not maximized. These
   rules are intentionally scoped away from Android/WebView, whose responsive
   contract remains independent. Typography and functionality are preserved;
   only containers, toolbars and dense workspaces reflow. */
@media (max-width: 1180px) {
  html.kudzu-desktop-performance:not(.kudzu-android-webview),
  html.kudzu-desktop-performance:not(.kudzu-android-webview) body {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .module-layout,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) body.kudzu-sidebar-collapsed .module-layout {
    width: calc(100% - .75rem) !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: .38rem auto 1rem !important;
    padding: 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: .62rem !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .module-main,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .module-main > *,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .app-shell,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .panel,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .panel-card,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .table-panel,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .workspace,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .workspace-wide {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .module-sidebar {
    position: sticky !important;
    top: .38rem !important;
    z-index: 1800 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    padding: .56rem .68rem !important;
    overflow: visible !important;
    gap: .46rem !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .module-sidebar .sidebar-top {
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 0 3.8rem .42rem .08rem !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .kudzu-mobile-nav-toggle {
    display: flex !important;
    min-width: 0 !important;
    max-width: 100% !important;
    background: var(--surface-2) !important;
    background-image: none !important;
    box-shadow: none !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .kudzu-mobile-nav-panel {
    background: var(--surface-2) !important;
    background-image: none !important;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .16) !important;
    will-change: auto !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .kudzu-mobile-nav-backdrop {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .app-header {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: .72rem .82rem !important;
    gap: .58rem .72rem !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .app-header .header-left,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .app-header .header-actions,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .app-header .header-right,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .app-header .header-row {
    min-width: 0 !important;
    max-width: 100% !important;
    flex-wrap: wrap !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
    .table-headline,
    .clientes-headline,
    .compact-panel-head,
    .panel-head,
    .employee-panel-head,
    .calendar-toolbar,
    .report-toolbar,
    .report-feature-tools,
    .clientes-head-tools,
    .table-head-tools,
    .campanas-head-tools,
    .employee-panel-tools,
    .calendar-toolbar-actions,
    .calendar-toolbar-nav,
    .panel-head-actions,
    .actions,
    .form-actions,
    .modal-actions
  ) {
    min-width: 0 !important;
    max-width: 100% !important;
    flex-wrap: wrap !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) body.home-page .module-launcher-tools {
    display: grid !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: .55rem !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) body.home-page .module-search-field {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    flex: none !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) body.home-page .module-search-count {
    min-width: 0 !important;
    max-width: min(100%, 18rem) !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    text-align: center !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) body[data-module-key="reportes"] .report-feature-head {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) body[data-module-key="reportes"] .report-feature-tools {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    flex: 0 1 auto !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) body[data-module-key="reportes"] .report-feature-tools > * {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) body[data-module-key="reportes"] .report-feature-tools .inline-note {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
    .search-form,
    .compact-search-form,
    .clientes-search-form,
    .productos-search-form,
    .users-search-form,
    .roles-search-form,
    .chart-toolbar-form,
    .finanzas-inline-search,
    .module-period-form,
    .reportes-toolbar-form,
    .finanzas-toolbar-form,
    .rebate-filter-bar,
    .compact-results-filter,
    .docs-filters,
    .audit-filters,
    .employee-planner-form,
    .history-search-form,
    #campanas-search-form,
    #qr-search-form
  ) {
    display: grid !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    grid-template-columns: repeat(auto-fit, minmax(min(185px, 100%), 1fr)) !important;
    gap: .5rem !important;
    align-items: end !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
    .search-form,
    .compact-search-form,
    .clientes-search-form,
    .productos-search-form,
    .users-search-form,
    .roles-search-form,
    .chart-toolbar-form,
    .finanzas-inline-search,
    .module-period-form,
    .reportes-toolbar-form,
    .finanzas-toolbar-form,
    .rebate-filter-bar,
    .compact-results-filter,
    .docs-filters,
    .audit-filters,
    .employee-planner-form,
    .history-search-form,
    #campanas-search-form,
    #qr-search-form
  ) > * {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
    .metrics,
    .metrics-3,
    .metrics-4,
    .summary-grid,
    .stats-grid,
    .dashboard-grid,
    .dashboard-focus-grid,
    .dashboard-contract-grid,
    .dashboard-exception-grid,
    .report-metric-grid,
    .report-health-grid,
    .report-summary-grid,
    .report-insights-grid,
    .report-executive-cards,
    .platform-grid,
    .platform-metrics-grid,
    .module-grid,
    .ai-capabilities-grid,
    .ai-hub-metrics,
    .assistant-result-grid,
    .assistant-context-grid,
    .assistant-status-grid,
    .comms-overview-grid,
    .comms-content-grid,
    .comms-channel-grid,
    .home-quick-actions-grid,
    .finanzas-grid,
    .finanzas-aging-grid,
    .finanzas-agenda-grid,
    .finance-reconciliation-grid,
    .bank-reconciliation-grid,
    .quick-links-grid,
    .tenant-config-grid,
    .module-access-grid,
    .permissions-grid,
    .employee-overview-grid,
    .employee-attendance-metrics,
    .employee-birthday-layout,
    .employee-attendance-grid,
    .employee-compensation-grid,
    .rebate-workspace,
    .rebate-dashboard-grid,
    .rebate-executive-grid,
    .rebate-insight-grid,
    .rebate-enterprise-grid,
    .rebate-finance-grid,
    .rebate-card-grid
  ) {
    min-width: 0 !important;
    max-width: 100% !important;
    grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)) !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
    .document-ai-workspace,
    .document-ai-split,
    .invoice-detail-body,
    .invoice-detail-layout,
    .invoice-detail-grid,
    .compare-grid,
    .selector-grid,
    .report-ai-layout,
    .assistant-query-grid,
    .assistant-response-grid,
    .tenant-online-layout,
    .saas-service-notices-layout,
    .rebate-agreement-workspace,
    .rebate-rules-command,
    .rebate-rules-command-side,
    .rebate-agreement-info-grid,
    .document-detail-main-panel,
    .document-detail-history-panel
  ) {
    min-width: 0 !important;
    max-width: 100% !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
    .invoice-tab-strip,
    .employee-tab-strip,
    .rebate-tab-strip,
    .document-detail-tab-strip,
    .saas-section-nav
  ) {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    gap: .42rem !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-inline: contain !important;
    scrollbar-width: thin;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
    .invoice-tab-strip,
    .employee-tab-strip,
    .rebate-tab-strip,
    .document-detail-tab-strip,
    .saas-section-nav
  ) > * {
    flex: 1 0 max-content !important;
    min-width: max-content !important;
    max-width: none !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
    .table-wrap,
    .entity-table-wrap,
    .clientes-table-wrap,
    .users-table-wrap,
    .kudzu-responsive-table-wrap
  ) {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    overscroll-behavior-inline: contain !important;
    scrollbar-gutter: stable;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .modal:not(.hidden) {
    padding: .42rem !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .modal-window {
    width: min(100%, calc(100vw - .84rem)) !important;
    min-width: 0 !important;
    max-width: calc(100vw - .84rem) !important;
    max-height: calc(100dvh - .84rem) !important;
    overflow: hidden !important;
    grid-template-rows: auto minmax(0, 1fr) auto !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .modal-head,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .modal-head-main,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .modal-head-actions,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .modal-body {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .modal-head-actions {
    width: auto !important;
    min-width: 0 !important;
    flex-wrap: wrap !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .modal-body {
    min-height: 0 !important;
    overflow: auto !important;
    overscroll-behavior: contain !important;
  }
}

@media (max-width: 900px) {
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .app-header {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .app-header .header-actions,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .app-header .header-right,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .app-header .header-row {
    width: 100% !important;
    justify-content: flex-start !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
    .modal-head,
    .panel-head,
    .table-headline,
    .clientes-headline,
    .employee-panel-head
  ) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
    .modal-head-actions,
    .panel-head-actions,
    .clientes-head-tools,
    .table-head-tools,
    .employee-panel-tools
  ) {
    width: 100% !important;
    justify-content: flex-start !important;
  }
}

@media (max-width: 640px) {
  html.kudzu-desktop-performance:not(.kudzu-android-webview) body.home-page .module-launcher-tools {
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: stretch !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) body.home-page .module-search-count {
    justify-self: start !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
    .search-form,
    .compact-search-form,
    .clientes-search-form,
    .productos-search-form,
    .users-search-form,
    .roles-search-form,
    .chart-toolbar-form,
    .finanzas-inline-search,
    .module-period-form,
    .reportes-toolbar-form,
    .finanzas-toolbar-form,
    .rebate-filter-bar,
    .compact-results-filter,
    .docs-filters,
    .audit-filters,
    .employee-planner-form,
    .history-search-form,
    #campanas-search-form,
    #qr-search-form
  ) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
    .actions,
    .form-actions,
    .modal-actions,
    .row-actions
  ) {
    display: grid !important;
    width: 100% !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
    .actions,
    .form-actions,
    .modal-actions,
    .row-actions
  ) .btn {
    width: 100% !important;
    min-width: 0 !important;
    justify-content: center !important;
  }
}

@media (max-width: 1180px) and (max-height: 640px) {
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .module-layout {
    margin-top: .24rem !important;
    gap: .48rem !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .module-sidebar {
    top: .24rem !important;
    padding-block: .42rem !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .module-sidebar .sidebar-top {
    padding-bottom: .3rem !important;
  }

  html.kudzu-desktop-performance:not(.kudzu-android-webview) .app-header,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .panel,
  html.kudzu-desktop-performance:not(.kudzu-android-webview) .table-panel {
    padding-block: .62rem !important;
  }
}

/* Scroll performance guard - 2026-07-07.
   Keep the single desktop profile visually clear through borders/backgrounds,
   but avoid expensive blur, projected shadows and promoted layers while the
   user scrolls data-heavy modules. Android keeps its own rendering contract. */
html.kudzu-desktop-performance:not(.kudzu-android-webview) {
  --panel-shadow: none;
  --panel-shadow-soft: none;
  --ta-card-shadow: none;
  --ta-card-shadow-hover: none;
  --kudzu-hover-shadow: none;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .panel,
  .table-panel,
  .panel-card,
  .dashboard-panel,
  .metric-card,
  .report-metric-card,
  .module-card,
  .module-sidebar,
  .app-header,
  .entity-card,
  .docs-ai-card,
  .calendar-event-card,
  .invoice-tabs-card,
  .employee-tabs-card,
  .rebate-tabs-card,
  .document-detail-tab-strip,
  .modal-window,
  .profile-popover-card,
  .global-status-popup
) {
  box-shadow: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .invoice-tabs-card,
  .employee-tabs-card,
  .rebate-tabs-card,
  .document-detail-tab-strip
) {
  transform: none !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .panel,
  .table-panel,
  .panel-card,
  .dashboard-panel,
  .metric-card,
  .report-metric-card,
  .entity-card,
  .docs-ai-card,
  .calendar-event-card
) {
  border-color: color-mix(in srgb, var(--line-strong) 34%, var(--line)) !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
  .table-wrap,
  .entity-table-wrap,
  .clientes-table-wrap,
  .users-table-wrap,
  .kudzu-responsive-table-wrap,
  .docs-ai-grid,
  .entity-mobile-list
) {
  contain: none !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) .module-movements-content {
  display: grid;
  gap: .75rem;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) .module-movements-content.hidden {
  display: none !important;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) .module-movements-panel--collapsed {
  align-content: center;
}

html.kudzu-desktop-performance:not(.kudzu-android-webview) .module-movements-panel--collapsed .panel-head {
  margin-bottom: 0 !important;
}

@media (min-width: 1280px) {
  html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
    .table-wrap,
    .entity-table-wrap,
    .clientes-table-wrap,
    .users-table-wrap,
    .kudzu-responsive-table-wrap,
    .stock-ranking-table-wrap,
    .ai-reprocess-table-wrap
  ) {
    overflow-x: visible !important;
    overflow-y: visible !important;
    overscroll-behavior: auto !important;
    scrollbar-gutter: auto !important;
    contain: none !important;
  }
}

@media (max-width: 1279px) {
  html.kudzu-desktop-performance:not(.kudzu-android-webview) :is(
    .table-wrap,
    .entity-table-wrap,
    .clientes-table-wrap,
    .users-table-wrap,
    .kudzu-responsive-table-wrap,
    .stock-ranking-table-wrap,
    .ai-reprocess-table-wrap
  ) {
    overflow-x: auto !important;
    overflow-y: visible !important;
    overscroll-behavior-inline: contain !important;
    scrollbar-gutter: stable;
    contain: none !important;
  }
}
