.intro-module-group.internal.locked .intro-modules {
  grid-template-columns: 1fr;
}

.intro-module-group .internal-access-module {
  grid-column: 1 / -1;
  border-color: #9fc7be;
  background: linear-gradient(135deg, #eef8f5, #fbfdfc);
}

.intro-module-group .internal-access-module > i {
  background: #dfeeea;
  color: #075448;
}

.theme-dark .intro-module-group .internal-access-module {
  border-color: #456b62;
  background: linear-gradient(135deg, #18342e, #172a27);
}

@media (max-width: 800px) {
  body {
    font-size: 14px;
  }

  .intro-card {
    --intro-card-height: 96px;
  }

  .intro-card > small {
    font-size: 11px;
  }

  .intro-card h2 {
    font-size: 24px;
    line-height: 1.15;
  }

  .intro-card > p {
    font-size: 14px;
    line-height: 1.5;
  }

  .intro-module-group .intro-module {
    min-height: var(--intro-card-height);
    padding: 13px;
  }

  .intro-access b,
  .intro-module-group .intro-module b,
  .intro-module-group .technical-portal-module b {
    font-size: 14px;
    line-height: 1.3;
  }

  .intro-access small,
  .intro-module-group .intro-module small,
  .intro-operations > span em,
  .intro-operations > strong small {
    font-size: 12px;
    line-height: 1.45;
    letter-spacing: 0;
    text-transform: none;
  }

  .intro-module-group > header small,
  .intro-module-group > header > em {
    font-size: 11px;
  }

  .intro-module-group > header b {
    font-size: 13px;
  }

  .intro-period {
    font-size: 12px;
  }

  .intro-stats {
    font-size: 11px;
  }

  .intro-stats b {
    font-size: 15px;
  }

  .intro-recent-lot {
    min-height: 64px;
  }

  .intro-recent-lot small {
    font-size: 12px;
  }

  .intro-recent-lot b {
    font-size: 15px;
  }

  .intro-recent-lot em {
    font-size: 12px;
  }

  .intro-offline-switch {
    min-width: 108px;
    height: 44px;
    font-size: 12px;
  }

  .intro-theme {
    right: calc(max(10px, env(safe-area-inset-right)) + 118px);
    width: 44px;
    height: 44px;
    font-size: 18px;
  }

  .mobile-map-mode > header .mobile-hub-home span {
    font-size: 12px;
  }

  .mobile-map-mode .map-head {
    top: calc(72px + env(safe-area-inset-top));
    min-height: 106px;
    height: 106px;
    padding: 10px;
    display: grid;
    grid-template-rows: 26px 44px;
    align-content: start;
    gap: 6px;
  }

  .mobile-map-mode .map-head > div:first-child {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
  }

  .mobile-map-mode .map-head small {
    font-size: 11px;
  }

  .mobile-map-mode .map-head h2 {
    font-size: 15px;
    line-height: 1.2;
  }

  .mobile-map-mode .map-head-actions {
    width: 100%;
    display: grid !important;
    grid-template-columns: minmax(112px, 1fr) 44px 58px 82px;
    align-items: center;
    gap: 5px;
  }

  .mobile-map-mode .map-head-actions label,
  .mobile-map-mode .map-head-actions > a,
  .mobile-map-mode .map-pdf-download,
  .mobile-map-mode .theme-mini {
    min-width: 0;
    min-height: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 0 7px;
    border-radius: 9px;
    font-size: 13px;
    line-height: 1.1;
  }

  .mobile-map-mode .map-head-actions > * {
    width: 100%;
    flex: none;
  }

  .mobile-map-mode .map-head-actions label input {
    width: 20px;
    height: 20px;
  }

  .mobile-map-mode .zoom,
  .mobile-map-mode .map-legend {
    top: calc(186px + env(safe-area-inset-top));
  }

  .mobile-map-mode .map-legend {
    right: 126px;
    width: auto;
    padding: 6px;
  }

  .mobile-map-mode .map-legend button {
    min-width: 136px;
    min-height: 44px;
    font-size: 12px;
  }

  .mobile-map-mode .map-legend button b {
    font-size: 12px;
  }

  .selected-card {
    width: calc(100% - 20px) !important;
  }

  .selected-card-dismiss {
    width: 44px;
    height: 44px;
  }

  .selected-card-copy small {
    font-size: 11px;
  }

  .selected-card-copy strong {
    font-size: 22px;
  }

  .selected-card-copy span {
    max-width: none;
    font-size: 13px;
  }

  .selected-card-copy em,
  .selected-card-meta > span {
    font-size: 11px;
  }

  .selected-card-meta {
    width: 100%;
    display: grid;
    gap: 8px;
  }

  .selected-card-meta > div {
    width: 100%;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  .selected-card-meta > div > * {
    min-width: 0;
    min-height: 44px;
    padding: 5px 6px;
    font-size: 12px;
    line-height: 1.15;
    text-align: center;
    white-space: normal;
  }

  .mobile-tabs button,
  .mobile-tabs a {
    min-height: 44px;
  }

  .mobile-tabs button > span,
  .mobile-tabs a > span {
    font-size: 12px;
  }

  .mobile-tabs button > em,
  .mobile-tabs a > em {
    font-size: 10px;
  }

  body:has(.mobile-map-mode) .field-connectivity.online {
    display: none;
  }

  .technical-account-nav a,
  .technical-portal-header > a:last-child,
  .technical-results-more,
  .technical-map-zoom button:last-child {
    min-height: 44px;
    font-size: 13px;
  }

  .technical-portal-privacy,
  .technical-portal-intro p {
    font-size: 14px;
    line-height: 1.45;
  }

  .technical-portal-intro small,
  .technical-lot-picker label > span,
  .technical-portal-results > header,
  .technical-map-card > header small,
  .technical-results-more small {
    font-size: 12px;
  }

  .technical-portal-results button b,
  .technical-map-card > header h2 {
    font-size: 14px;
  }

  .technical-portal-results button small {
    font-size: 12px;
    line-height: 1.4;
  }

  /* Escala móvel única para formulários e módulos operacionais. */
  :is(
    .inspection-panel,
    .project-panel,
    .project-intake-queue,
    .admin-shell,
    .backup-shell,
    .agenda-page,
    .operations-center,
    .lot-dossier,
    .platform-shell,
    .maintenance-register-modal,
    .regulation-page,
    .technical-portal,
    .responsible-account,
    .owner-portal,
    .inspection-report-shell
  ) {
    font-size: 14px;
  }

  :is(
    .inspection-panel,
    .project-panel,
    .project-intake-queue,
    .admin-shell,
    .backup-shell,
    .agenda-page,
    .operations-center,
    .lot-dossier,
    .platform-shell,
    .maintenance-register-modal,
    .regulation-page,
    .technical-portal,
    .responsible-account,
    .owner-portal,
    .inspection-report-shell
  ) small {
    font-size: 11px !important;
    line-height: 1.4;
    letter-spacing: 0.04em;
  }

  :is(
    .inspection-panel,
    .project-panel,
    .project-intake-queue,
    .admin-shell,
    .backup-shell,
    .agenda-page,
    .operations-center,
    .lot-dossier,
    .platform-shell,
    .maintenance-register-modal,
    .regulation-page,
    .technical-portal,
    .responsible-account,
    .owner-portal,
    .inspection-report-shell
  ) p {
    font-size: 13px !important;
    line-height: 1.5;
  }

  :is(
    .inspection-panel,
    .project-panel,
    .project-intake-queue,
    .admin-shell,
    .backup-shell,
    .agenda-page,
    .operations-center,
    .lot-dossier,
    .platform-shell,
    .maintenance-register-modal,
    .regulation-page,
    .technical-portal,
    .responsible-account,
    .owner-portal,
    .inspection-report-shell
  ) :is(input, select, textarea) {
    font-size: 16px !important;
  }

  :is(
    .inspection-panel,
    .project-panel,
    .project-intake-queue,
    .admin-shell,
    .backup-shell,
    .agenda-page,
    .operations-center,
    .lot-dossier,
    .platform-shell,
    .maintenance-register-modal,
    .regulation-page,
    .technical-portal,
    .responsible-account,
    .owner-portal,
    .inspection-report-shell
  ) label {
    font-size: 12px !important;
    line-height: 1.4;
  }

  /* Fiscalização e dossiê. */
  .inspection-header h2,
  .dossier-header h2,
  .operations-header h2 {
    font-size: 21px !important;
    line-height: 1.15;
  }

  .inspection-header p,
  .inspection-step p,
  .inspection-message,
  .inspection-flexible-note small,
  .inspection-connectivity,
  .dossier-header p,
  .operations-header p {
    font-size: 13px !important;
  }

  .inspection-step strong,
  .inspection-photo-actions strong,
  .inspection-lot-snapshot article b,
  .inspection-sync-tracker header b,
  .inspection-checklist label,
  .dossier-section h3,
  .operations-section h3 {
    font-size: 14px !important;
  }

  .inspection-header > button,
  .inspection-camera-card > header > button,
  .dossier-header > button,
  .operations-header > button {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    font-size: 22px !important;
  }

  .inspection-panel :is(button, a),
  .lot-dossier :is(button, a),
  .operations-center :is(button, a) {
    font-size: 13px;
  }

  .inspection-save,
  .inspection-checklist-actions button,
  .inspection-connectivity button,
  .inspection-photo-actions > button,
  .dossier-actions > *,
  .operations-actions > * {
    min-height: 44px;
    font-size: 13px !important;
  }

  /* Aprovação de projetos. */
  .project-panel-header h1,
  .project-header h1,
  .project-intake-queue > header h2 {
    font-size: 22px !important;
    line-height: 1.15;
  }

  .project-step-card h2,
  .project-panel-lot b,
  .project-analysis-entry h2,
  .project-internal-intake h2 {
    font-size: 18px !important;
  }

  .project-panel :is(button, a),
  .project-intake-queue :is(button, a) {
    font-size: 13px;
  }

  .project-primary,
  .project-secondary,
  .project-document-link,
  .project-panel-header > button,
  .project-queue-item-head button,
  .project-portal-admin-actions > *,
  .project-preview-actions > * {
    min-height: 44px;
    font-size: 13px !important;
  }

  .project-checklist article b,
  .project-fields > label > span,
  .project-intake-file b,
  .project-message,
  .project-state {
    font-size: 12px !important;
  }

  /* Cadastro e administração. */
  .admin-brand h1,
  .backup-brand h1 {
    font-size: 22px !important;
  }

  .admin-editor-head h2,
  .admin-lots-head h2,
  .backup-hero h1 {
    font-size: 20px !important;
  }

  .admin-shell :is(button, a),
  .backup-shell :is(button, a) {
    font-size: 13px;
  }

  .admin-header a,
  .admin-mobile-tabs :is(button, a),
  .admin-photo-actions button,
  .admin-editor-footer button,
  .backup-row-actions > *,
  .backup-header a {
    min-height: 44px;
    font-size: 13px !important;
  }

  .admin-results strong,
  .admin-holder-card strong,
  .admin-instruction strong,
  .backup-list strong {
    font-size: 14px !important;
  }

  /* Agenda. */
  .agenda-hero h1 {
    font-size: 26px !important;
    line-height: 1.12;
  }

  .agenda-hero p,
  .agenda-task-content p,
  .agenda-empty p {
    font-size: 13px !important;
  }

  .agenda-task-content h3,
  .agenda-calendar-panel h2,
  .agenda-list-panel h2 {
    font-size: 16px !important;
  }

  .agenda-page :is(button, a) {
    font-size: 13px;
  }

  .agenda-primary,
  .agenda-top-actions a,
  .agenda-view-switch button,
  .agenda-task-actions > *,
  .agenda-mobile-add {
    min-height: 44px;
    font-size: 13px !important;
  }

  /* Governança e manutenção. */
  .platform-hero {
    gap: 20px;
    padding: 28px 16px 24px;
  }

  .platform-hero h1,
  .maintenance-register-hero h1 {
    font-size: 26px !important;
    line-height: 1.12;
  }

  .platform-grid article h2,
  .maintenance-record-card h2,
  .maintenance-register-modal h2,
  .sync-health h2,
  .sync-attempts h2 {
    font-size: 18px !important;
  }

  .platform-shell :is(button, a),
  .maintenance-register-modal :is(button, a) {
    font-size: 13px;
  }

  .platform-tabs button,
  .platform-top a,
  .platform-form button,
  .maintenance-new-record,
  .maintenance-record-card footer > *,
  .maintenance-photo-source-actions > button,
  .sync-health-actions button,
  .sync-item-actions > * {
    min-height: 44px;
    font-size: 13px !important;
  }

  .platform-kpis span,
  .maintenance-record-card p,
  .maintenance-register-photos p,
  .sync-metrics span,
  .sync-attempts article b {
    font-size: 12px !important;
  }

  /* Regulamentos. */
  .regulation-hero {
    padding: 32px 15px 30px;
  }

  .regulation-hero h1 {
    font-size: 26px !important;
    line-height: 1.12;
  }

  .regulation-section {
    padding: 36px 14px;
  }

  .regulation-section-heading h2 {
    font-size: 22px !important;
    line-height: 1.15;
  }

  .regulation-page :is(button, a) {
    font-size: 13px !important;
  }

  .regulation-hero-actions a,
  .regulation-section-action,
  .regulation-suggestions button,
  .regulation-related button,
  .regulation-question-form button,
  .regulation-document-tools button,
  .regulation-document-actions a {
    min-height: 44px;
  }

  .regulation-suggestions {
    gap: 8px;
  }

  .regulation-message {
    max-width: 100%;
  }

  .regulation-chat-welcome b,
  .regulation-tutorial b,
  .regulation-sources strong,
  .regulation-document-list h3 {
    font-size: 14px !important;
  }

  .regulation-public-badge,
  .regulation-hero > aside b,
  .regulation-grounded,
  .regulation-document-count,
  .regulation-tutorial li > span,
  .regulation-document-icon,
  .regulation-document-list article > div:nth-child(2) > span {
    font-size: 11px !important;
    line-height: 1.35;
  }

  .regulation-document-revision {
    font-size: 10px !important;
    line-height: 1.4;
  }

  .regulation-question-form textarea,
  .regulation-document-tools input {
    font-size: 16px !important;
  }

  /* Portais do responsável técnico e do proprietário. */
  .technical-portal-intro h1,
  .technical-intake-form > header h1,
  .responsible-account-hero h1,
  .owner-login h1,
  .owner-dashboard-hero h1 {
    font-size: 26px !important;
    line-height: 1.15;
  }

  .technical-portal :is(button, a),
  .responsible-account :is(button, a),
  .owner-portal :is(button, a) {
    font-size: 13px;
  }

  .technical-portal-results button {
    min-height: 52px;
  }

  .technical-portal-results button b,
  .responsible-process-top h2,
  .owner-dashboard h2 {
    font-size: 14px !important;
  }

  .technical-portal-results button small,
  .technical-results-more small,
  .responsible-process-top small,
  .responsible-process-summary small,
  .owner-dashboard small {
    font-size: 12px !important;
  }

  .technical-picker-divider span {
    font-size: 11px !important;
  }

  .technical-account-nav a,
  .technical-portal-header > a,
  .technical-results-more,
  .technical-intake-submit,
  .responsible-account-header a,
  .responsible-account-hero > a,
  .responsible-process footer a,
  .owner-portal > header > a,
  .owner-portal > header > button,
  .owner-login button {
    min-height: 44px;
    font-size: 13px !important;
  }

  .owner-login {
    margin: 3vh auto;
    padding: 24px;
  }

  .owner-login p,
  .owner-dashboard-hero p,
  .responsible-account-hero p,
  .responsible-process-opinion {
    font-size: 14px !important;
  }
}
