/*
 * RTGEO — contrato responsivo global
 *
 * Este arquivo é carregado por último para manter a lógica e os estilos
 * específicos de cada ferramenta intactos, corrigindo apenas composição,
 * overflow e ergonomia entre 320px e telas largas.
 */

html {
  min-width: 0;
  overflow-x: hidden;
}

body {
  width: 100%;
  min-width: 0;
  min-height: 100vh;
  min-height: 100dvh;
  overflow-x: hidden;
}

.app-layout {
  width: 100%;
  height: 100vh;
  height: 100dvh;
  min-height: 100vh;
  min-height: 100dvh;
}

.app-content,
.views-container,
.tab-view,
.tab-view > * {
  min-width: 0;
}

.tab-view {
  max-width: 100%;
  overflow-x: hidden;
}

.tab-view img,
.tab-view canvas,
.tab-view iframe {
  max-width: 100%;
}

.tab-view :where(h1, h2, h3, h4, h5, p, li, td, th, label, button, a) {
  overflow-wrap: break-word;
}

.app-layout :where(button, a, input, select, textarea):focus-visible {
  outline: 2px solid var(--rt-s-color-focus);
  outline-offset: 2px;
  box-shadow: var(--rt-s-focus-ring);
}

.app-layout :where(button, a, input, select, textarea) {
  -webkit-tap-highlight-color: transparent;
}

/* Shell, drawer e viewport seguro em celulares com notch. */
@media (max-width: 860px) {
  .main-header {
    padding-left: max(10px, env(safe-area-inset-left));
    padding-right: max(10px, env(safe-area-inset-right));
  }

  .app-sidebar {
    padding-bottom: max(14px, calc(14px + env(safe-area-inset-bottom)));
  }

  .sidebar-mobile-toggle,
  .sidebar-scrim {
    -webkit-tap-highlight-color: transparent;
  }

  .app-layout :where(.pill-btn, .tab-btn, .sim-tab-btn, .intel-tab-btn, .market-mode-btn, .ventures-city-tab) {
    min-height: 40px;
  }
}

/* Inteligência de mercado / mapa */
.market-workspace,
.market-content,
.market-map-stage,
.market-insights,
.market-list-panel,
.market-analysis-view {
  min-width: 0;
}

.market-mode-switch,
.market-toolbar-actions,
.drawer-search,
.market-active-filters {
  min-width: 0;
}

.market-mode-switch {
  scrollbar-width: thin;
}

.market-table-scroll,
.table-wrapper,
.analysis-table-scroll {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
}

.market-workspace :where(.data-table, .analysis-table, .neighborhood-table) {
  max-width: none;
}

@media (max-width: 860px) {
  #tabView-mapa {
    overflow-y: auto;
  }

  .market-workspace {
    height: auto;
    min-height: 100%;
    grid-template-rows: auto;
    padding: 12px;
  }

  .market-content {
    overflow: visible;
  }

  .market-map-stage {
    min-height: clamp(360px, 58dvh, 560px);
  }

  .market-filter-panel,
  .market-insights,
  .market-list-panel,
  .market-analysis-view {
    min-width: 0;
  }
}

@media (max-width: 560px) {
  .market-workspace {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px;
  }

  .market-toolbar {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 8px;
  }

  .market-search {
    grid-column: auto;
    min-width: 0;
  }

  .market-search input,
  .market-filter-fields select,
  .drawer-search .search-input {
    min-height: 42px;
    font-size: 16px;
  }

  .market-mode-switch {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    flex-wrap: nowrap;
  }

  .market-mode-btn {
    flex: 0 0 auto;
    min-width: 82px;
    padding-right: 12px;
    padding-left: 12px;
  }

  .market-toolbar-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    width: 100%;
    gap: 8px;
  }

  .market-toolbar-actions .market-filter-toggle,
  .market-toolbar-actions .market-clear-btn {
    min-height: 42px;
  }

  .market-active-filters {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 6px;
    min-height: 32px;
  }

  .market-results-summary {
    margin-left: auto;
  }

  .market-content {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .market-map-stage {
    min-height: min(68dvh, 540px);
  }

  .market-insights {
    overflow: visible;
  }

  .market-kpi strong {
    font-size: clamp(14px, 4.8vw, 18px);
  }

  .market-workspace[data-market-view="list"] .market-content {
    min-height: max(420px, calc(100dvh - 230px));
  }

  .market-workspace[data-market-view="list"] .market-list-panel {
    height: 100%;
    min-height: 420px;
  }

  .drawer-search {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: stretch;
    gap: 8px;
  }

  .drawer-search-field {
    min-width: 0;
  }

  .drawer-search > .pill-btn {
    min-height: 42px;
  }

  .market-analysis-view {
    width: 100%;
  }
}

/* Empreendimentos */
.ventures-shell,
.ventures-hero,
.ventures-toolbar,
.ventures-grid,
.venture-card,
.venture-detail-shell {
  min-width: 0;
}

.venture-card h3,
.venture-card p,
.venture-detail-shell h1,
.venture-detail-shell h2,
.venture-detail-shell h3 {
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  .ventures-shell {
    padding-right: max(12px, env(safe-area-inset-right));
    padding-left: max(12px, env(safe-area-inset-left));
  }

  .ventures-toolbar {
    align-items: stretch;
  }

  .ventures-search {
    flex: 1 1 100%;
    min-width: 0;
  }

  .ventures-select-wrap {
    flex: 1 1 170px;
    min-width: 0;
  }

  .ventures-toolbar > .pill-btn {
    flex: 1 1 150px;
    justify-content: center;
    min-height: 42px;
  }
}

/* Simulador */
.simulator-container,
.simulator-header,
.simulator-subnav,
.sim-module-view,
.sim-grid,
.sim-card,
.chart-container-box,
.calculator-intro,
.cost-hero-card {
  min-width: 0;
}

.simulator-subnav {
  width: 100%;
  max-width: 100%;
  scrollbar-width: thin;
}

.simulator-subnav .sim-tab-btn {
  flex: 0 0 auto;
  min-height: 40px;
}

.sim-card,
.chart-container-box,
.system-result-box,
.cost-hero-card {
  overflow-wrap: anywhere;
}

.canvas-wrapper {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 760px) {
  .simulator-container {
    padding: 16px 12px 36px;
  }

  .sim-card,
  .chart-container-box,
  .cost-hero-card {
    padding: 18px;
  }

  .calculator-actions {
    flex-wrap: wrap;
  }

  .calculator-actions .pill-btn {
    flex: 1 1 150px;
    min-height: 42px;
  }

  .cost-hero-total {
    font-size: clamp(25px, 8vw, 38px);
    overflow-wrap: anywhere;
  }

  .cost-hero-side {
    min-width: 0;
  }

  .stat-row {
    align-items: flex-start;
  }

  .stat-row strong,
  .stat-row b {
    max-width: 58%;
    overflow-wrap: anywhere;
    text-align: right;
  }

  .simulator-container .kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 620px) {
  .simulator-container .form-grid,
  .simulator-container .form-grid[style] {
    grid-template-columns: 1fr !important;
  }

  .calculator-intro {
    flex-direction: column;
    align-items: stretch;
  }

  .calculator-status {
    align-self: flex-start;
  }

  .canvas-wrapper {
    height: clamp(210px, 58vw, 280px);
  }
}

@media (max-width: 420px) {
  .simulator-container .kpi-grid {
    grid-template-columns: 1fr !important;
  }

  .sim-card,
  .chart-container-box,
  .cost-hero-card {
    padding: 15px;
  }

  .calculator-actions .pill-btn {
    flex-basis: 100%;
  }
}

/* Playbooks / inteligência */
.intelligence-container,
.intel-hero-banner,
.intel-subnav,
.intel-module-view,
.intel-filter-bar,
.city-matrix-layout,
.city-detail-panel,
.city-card,
.legal-guides-grid,
.video-scripts-grid {
  min-width: 0;
}

.intel-subnav {
  width: 100%;
  max-width: 100%;
  scrollbar-width: thin;
}

.intel-subnav .intel-tab-btn {
  flex: 0 0 auto;
  min-height: 40px;
}

.intel-search-box {
  min-width: min(320px, 100%);
  max-width: 100%;
}

.intel-search-box input {
  max-width: 100%;
  min-height: 42px;
  font-size: 16px;
}

.intel-filter-bar > :last-child {
  min-width: 0;
  max-width: 100%;
}

.city-detail-panel {
  overflow-x: auto;
  overscroll-behavior-x: contain;
}

.typology-table {
  min-width: 520px;
}

.city-detail-panel :where(.legal-guide-card, .video-script-card, p, li) {
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  .intelligence-container {
    padding: 16px 12px 36px;
  }

  .intel-hero-banner {
    padding: 20px;
  }

  .intel-filter-bar {
    align-items: stretch;
  }

  .intel-search-box {
    flex: 1 1 100%;
    width: 100%;
  }

  .intel-filter-bar > :last-child {
    display: flex;
    flex: 1 1 100%;
    flex-wrap: wrap;
    gap: 6px;
  }

  .intel-filter-bar > :last-child :where(button, select) {
    flex: 1 1 120px;
    min-height: 42px;
  }

  .city-matrix-layout {
    grid-template-columns: 1fr;
  }

  .city-detail-panel {
    position: static;
    max-height: none;
  }
}

@media (max-width: 560px) {
  .intel-filter-bar > :last-child :where(button, select) {
    flex-basis: 100%;
  }

  .typology-table {
    min-width: 480px;
  }
}

/* Ferramentas: formulários, editor e modais */
.ferramentas-container,
.ferramentas-subview,
.ferramentas-subview > *,
.native-tools-grid,
.external-tools-grid,
.tool-card,
.form-fieldset-card,
.form-group-grid,
.editor-action-bar {
  min-width: 0;
}

.ferramentas-container {
  width: 100%;
  max-width: 100%;
  padding-right: clamp(12px, 3vw, 24px);
  padding-left: clamp(12px, 3vw, 24px);
}

.ferramentas-header,
.subview-header,
.form-fieldset-header,
.editor-action-bar,
.modal-header-rt,
.modal-footer-rt {
  min-width: 0;
}

.ferramentas-header > *,
.subview-header > *,
.form-fieldset-header > *,
.editor-action-bar > * {
  min-width: 0;
}

.tool-card,
.external-tool-card,
.form-fieldset-card {
  overflow-wrap: anywhere;
}

.ferramentas-container :where(input, select, textarea) {
  max-width: 100%;
}

.ferramentas-container :where(input, select, textarea):not([type="checkbox"]):not([type="radio"]) {
  min-height: 42px;
  font-size: 16px;
}

.rt-table {
  min-width: 620px;
}

.modal-overlay-rt {
  width: 100%;
  min-width: 0;
  padding: max(10px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));
}

.modal-content-rt {
  width: min(100%, 1050px);
  min-width: 0;
}

.modal-header-rt h2,
.modal-header-rt h3,
.modal-body-rt,
.modal-footer-rt {
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  #tabView-ferramentas {
    overflow-x: hidden !important;
  }

  .ferramentas-container {
    gap: 16px;
    padding-top: 14px;
    padding-bottom: max(32px, calc(32px + env(safe-area-inset-bottom)));
  }

  .native-tools-grid,
  .external-tools-grid {
    grid-template-columns: 1fr;
  }

  .tool-card,
  .external-tool-card,
  .form-fieldset-card {
    padding: 16px;
  }

  .ferramentas-header,
  .subview-header {
    align-items: stretch;
  }

  .ferramentas-header-actions,
  .subview-header-actions {
    width: 100%;
    flex-wrap: wrap;
  }

  .ferramentas-header-actions .pill-btn,
  .subview-header-actions .pill-btn {
    flex: 1 1 150px;
    justify-content: center;
    min-height: 42px;
  }

  .form-group-grid,
  .form-group-grid[style] {
    grid-template-columns: 1fr !important;
  }

  .form-group-grid .col-span-2,
  .form-group-grid .col-full {
    grid-column: auto !important;
  }

  .dynamic-person-row {
    grid-template-columns: 1fr;
  }

  .dynamic-person-row > button,
  .dynamic-person-row .remove-person-btn {
    justify-self: stretch;
    width: 100%;
  }

  .editor-action-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .editor-action-bar > div {
    width: 100%;
    flex-wrap: wrap;
  }

  .editor-action-bar .pill-btn,
  .editor-action-bar button {
    flex: 1 1 150px;
    min-height: 42px;
  }

  .modal-overlay-rt {
    align-items: flex-end;
  }

  .modal-content-rt {
    max-height: calc(100dvh - 20px);
    border-radius: 18px 18px 0 0;
  }

  .modal-header-rt {
    align-items: flex-start;
    padding: 14px 16px;
  }

  .modal-body-rt {
    padding: 16px;
  }

  .modal-footer-rt {
    flex-direction: column-reverse;
    align-items: stretch;
    gap: 8px;
    padding: 12px 16px max(12px, env(safe-area-inset-bottom));
  }

  .modal-footer-rt :where(button, .pill-btn) {
    width: 100%;
    min-height: 44px;
  }

  #modalPdfPreview .modal-content-rt {
    height: calc(100dvh - 20px) !important;
  }

  #modalPdfPreview .pdf-preview-container {
    min-width: 0;
    overflow: auto;
  }

  #modalPdfPreview .pdf-sheet {
    margin-right: 0;
    margin-left: 0;
  }
}

@media (max-width: 420px) {
  .ferramentas-header-actions .pill-btn,
  .subview-header-actions .pill-btn,
  .editor-action-bar .pill-btn,
  .editor-action-bar button {
    flex-basis: 100%;
  }

  .rt-table {
    min-width: 560px;
  }
}

/* Follow-up / CRM */
#app-followup,
#app-followup > *,
#app-followup :where(.lead-card, .lead-expanded, .followup-toolbar, .filters-panel, .kpi-grid) {
  min-width: 0;
}

#app-followup :where(.lead-name, .lead-contact, .lead-notes, .followup-title-area, .header-user-email) {
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  #app-followup {
    padding-right: max(12px, env(safe-area-inset-right));
    padding-left: max(12px, env(safe-area-inset-left));
  }

  #app-followup :where(.lead-card, .followup-card, .filters-panel, .kpi-card) {
    min-width: 0;
  }

  #app-followup :where(button, select, input, textarea) {
    max-width: 100%;
  }

  #app-followup :where(.btn-primary, .btn-secondary, .btn-ghost, .filter-btn, .quick-view-btn) {
    min-height: 40px;
  }
}

/* Radar / governança de dados */
.radar-container,
.radar-header,
.radar-header-title,
.radar-subnav,
.radar-management-v2,
.radar-workbench-grid,
.radar-review-detail,
.radar-queue-filter-fields,
.radar-captures-panel {
  min-width: 0;
}

.radar-subnav {
  width: 100%;
  max-width: 100%;
  flex-wrap: nowrap;
  overflow-x: auto;
  scrollbar-width: thin;
}

.radar-header-title h1,
.radar-header-title h2,
.radar-header-title p,
.radar-connectivity {
  overflow-wrap: anywhere;
}

.radar-container :where(.radar-action-btn, .radar-secondary-btn, .radar-tab-btn, button, select, input) {
  max-width: 100%;
}

@media (max-width: 760px) {
  .radar-container {
    gap: 12px;
    padding: 12px;
  }

  .radar-header {
    align-items: stretch;
  }

  .radar-management-command-actions {
    width: 100%;
    flex-wrap: wrap;
  }

  .radar-management-command-actions :where(button, .radar-action-btn, .radar-secondary-btn) {
    flex: 1 1 150px;
    min-height: 42px;
  }

  .radar-management-v2 .radar-scope-filters,
  .radar-management-v2 .radar-health-section,
  .radar-management-v2 .radar-workbench,
  .radar-management-v2 .radar-operation-panel,
  .radar-management-v2 .radar-captures-panel {
    padding: 16px;
  }

  .radar-kpi-grid-interactive {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .radar-workbench-grid {
    display: flex;
    flex-direction: column;
  }

  .radar-review-queue-list {
    max-height: 340px;
  }

  .radar-queue-filter-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .radar-queue-filter-fields > :first-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 420px) {
  .radar-container {
    padding: 10px;
  }

  .radar-kpi-grid-interactive,
  .radar-queue-filter-fields {
    grid-template-columns: 1fr;
  }

  .radar-queue-filter-fields > :first-child {
    grid-column: auto;
  }

  .radar-management-command-actions :where(button, .radar-action-btn, .radar-secondary-btn) {
    flex-basis: 100%;
  }
}

/* Configurações, acesso e estados vazios */
.system-status-view,
.system-status-shell,
.account-settings-workspace,
.account-settings-head,
.account-settings-grid,
.settings-panel,
.access-person-card,
.access-person-main,
.access-member-editor {
  min-width: 0;
}

.system-status-view :where(input, select, textarea),
.account-settings-workspace :where(input, select, textarea) {
  max-width: 100%;
}

.account-settings-head h2,
.settings-panel h3,
.access-card h3,
.system-status-header h1,
.system-status-header h2 {
  overflow-wrap: anywhere;
}

@media (max-width: 700px) {
  .access-person-main,
  .access-member-editor {
    min-width: 0;
  }

  .access-person-main > *,
  .access-member-editor > * {
    min-width: 0;
  }

  .access-row-actions {
    flex-wrap: wrap;
  }

  .access-row-actions button {
    min-height: 40px;
  }
}

@media (max-width: 420px) {
  .system-setting-row {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .settings-inline-select {
    align-items: stretch;
    flex-direction: column;
  }

  .settings-inline-select select {
    width: 100%;
  }

  .access-team-summary {
    display: grid;
    grid-template-columns: 1fr;
  }
}

/* Conteúdo incorporado que pode receber tokens/URLs longas. */
:where(.modal-body-rt, .pdf-preview-container, .table-wrapper, .access-table-wrap, .market-table-scroll, .analysis-table-scroll) {
  overflow-wrap: anywhere;
}

@media (prefers-reduced-motion: reduce) {
  .app-layout *,
  .tab-view * {
    scroll-behavior: auto !important;
  }
}
