/* Responsividade transversal. Regras específicas de módulos permanecem no legado até sua extração. */
@media (max-width: 900px) {
  .sidebar {
    transform: translateX(-100%);
    transition: transform var(--motion-base) var(--ease-standard);
  }

  .sidebar.open {
    transform: translateX(0);
    box-shadow: 30px 0 60px rgba(0, 0, 0, .25);
  }

  .main { margin-left: 0; }
  .mobile-only { display: grid !important; }
  .content {
    min-width: 0;
    padding: var(--space-5);
    padding-bottom: calc(var(--space-8) + env(safe-area-inset-bottom));
    overflow-x: clip;
  }
  .sidebar-scrim.is-visible { opacity: 1; pointer-events: auto; }
  body.has-mobile-navigation { overflow: hidden; }

  .topbar { gap: var(--space-2); min-width: 0; padding-inline: var(--space-4); }
  .top-title { min-width: 0; }
  .top-title h1 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .global-date { flex: 0 1 auto; min-width: 0; margin-left: 0; margin-right: 0; }
  .global-date span { display: none; }
  .top-actions { flex: 0 1 auto; gap: var(--space-1); min-width: 0; }
  .company-switch { min-width: 0; }
  .company-switch select { max-width: 88px; }
  .command-trigger b,
  .command-trigger kbd,
  .assistant-trigger b,
  .user-button div { display: none; }
  .command-trigger,
  .assistant-trigger,
  .top-actions .primary,
  .user-button { min-width: 44px; padding-inline: 10px; }

  :where(button, input, select) { min-height: 44px; }
  :where(.icon-button, .notification-button) { min-width: 44px; }
  .source-open,
  .portfolio-card footer a,
  .norm-card footer .icon-button,
  a.secondary,
  .settings-section-nav a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .source-open { width: 100%; }
}

@media (max-width: 760px) {
  .audit-summary { grid-template-columns: 1fr; }
  .audit-toolbar { grid-template-columns: 1fr; }
  .audit-row { grid-template-columns: 1fr; gap: 4px; }
}

@media (max-width: 760px) {
  .topbar {
    top: 0;
    min-width: 0;
    padding-top: max(10px, env(safe-area-inset-top));
  }
  .top-title { min-width: 0; }
  .global-date { min-width: 92px; margin-right: 8px; }
  .global-date span { display: none; }
  .global-date-time { font-size: 11px; }
  .top-title h1 {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-height: 1.25;
  }
  .top-actions { flex: 0 0 auto; min-width: 0; }
  .top-actions > :where(button, .command-trigger, .assistant-trigger) {
    flex: 0 0 44px;
    width: 44px;
    min-width: 44px;
    padding-inline: 0;
    justify-content: center;
  }

  .content { padding: var(--space-4); padding-bottom: calc(32px + env(safe-area-inset-bottom)); }
  .content > * { min-width: 0; max-width: 100%; }

  .module-context,
  .hero,
  .portfolio-hero,
  .tender-hero,
  .norms-hero,
  .fiscal-hero,
  .competitor-hero { padding: 20px; }

  .module-toolbar { gap: 10px; }
  .toolbar-filters { grid-template-columns: minmax(0, 1fr); width: 100%; }
  .toolbar-filters > * { width: 100%; min-width: 0; }
  .toolbar-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
  }
  .toolbar-actions > * {
    width: 100%;
    min-width: 0;
    min-height: 46px;
    white-space: normal;
  }
  .toolbar-actions > :only-child { grid-column: 1 / -1; }

  .table-wrap {
    max-width: 100%;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
  .data-table th,
  .data-table td { padding-inline: 12px; }

  .competitor-hero {
    color: #fff;
    background: linear-gradient(155deg, #65544a, #1d1c1b 72%);
  }
  .competitor-hero h2 { color: #fff; }
  .competitor-hero p { color: rgba(255, 255, 255, .78); }
  .competitor-price-card,
  .competitor-method-card,
  .competitor-workspace { min-width: 0; }

  .settings-card,
  .panel,
  .module-context { overflow: hidden; }

  .record-dialog {
    top: 4px;
    right: 0;
    bottom: auto;
    left: 0;
    width: calc(100vw - 8px);
    max-width: calc(100vw - 8px);
    height: calc(100dvh - 8px);
    max-height: calc(100dvh - 8px);
    margin: 0 auto;
  }

  .record-dialog .record-form {
    min-height: 0;
    height: 100%;
    max-height: 100%;
  }

  .toast {
    right: var(--space-4);
    bottom: var(--space-4);
    left: var(--space-4);
    text-align: center;
  }

  .install-dialog {
    inset: auto 8px max(8px, env(safe-area-inset-bottom));
    width: calc(100% - 16px);
    max-width: none;
    margin: 0;
    border-radius: 18px;
  }
  .install-dialog .dialog-static { padding: 20px 18px; }
  .install-app-summary { grid-template-columns: 58px minmax(0, 1fr); }
  .install-app-summary img { width: 58px; height: 58px; border-radius: 14px; }

  .dialog-actions:not(.record-actions) {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .dialog-actions:not(.record-actions) > button,
  .dialog-actions:not(.record-actions) > a { width: 100%; }
}

@media (max-width: 340px) {
  .metric-grid,
  .executive-metrics,
  .norms-summary,
  .calibration-summary,
  .portfolio-summary,
  .tender-summary { grid-template-columns: 1fr; }

  .hero,
  .portfolio-hero,
  .tender-hero,
  .norms-hero,
  .fiscal-hero { border-radius: var(--radius-lg); }
}
