/*
 * DashNOX Mobile Overhaul 3.0.22
 * Camada final de responsividade. Carregada por ultimo para encerrar conflitos
 * entre estilos historicos dos modulos sem alterar o desktop.
 */

@media (max-width: 860px) {
  :root {
    --mobile-gutter: clamp(10px, 3.2vw, 16px);
    --mobile-radius: 16px;
    --mobile-nav-space: calc(112px + env(safe-area-inset-bottom));
  }

  html {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
    scroll-padding-top: 8px;
    scroll-padding-bottom: var(--mobile-nav-space);
  }

  body {
    width: 100%;
    max-width: 100%;
    min-width: 0 !important;
    overflow-x: clip !important;
  }

  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  img,
  svg,
  canvas,
  video {
    max-width: 100%;
  }

  pre,
  code {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .app-shell {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .sidebar {
    display: none !important;
  }

  .main-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding:
      max(10px, env(safe-area-inset-top))
      var(--mobile-gutter)
      var(--mobile-nav-space) !important;
    overflow: visible !important;
  }

  .main-content > *,
  #moduleContent,
  .module-section,
  .module-section > *,
  .panel,
  .toolbar-panel,
  .table-panel,
  .chart-panel,
  .stat-card,
  .settings-panel {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  /* Cabecalho mobile compacto: deixa o conteudo operacional aparecer cedo. */
  .hero-header {
    min-height: 84px !important;
    margin: 0 0 10px !important;
    padding: 14px 64px 14px 15px !important;
    gap: 8px !important;
    border-radius: 17px !important;
  }

  .hero-copy {
    min-width: 0;
  }

  .hero-badge {
    padding: 5px 8px !important;
    font-size: 0.66rem !important;
    line-height: 1.1;
  }

  .brand-title {
    margin: 7px 0 0 !important;
    font-size: clamp(1.75rem, 8vw, 2.15rem) !important;
    line-height: 0.98 !important;
  }

  .hero-description,
  .hero-logo-wrap {
    display: none !important;
  }

  .main-content {
    position: relative !important;
  }

  .mobile-account {
    position: absolute !important;
    z-index: 40 !important;
    top: 12px !important;
    right: var(--mobile-gutter) !important;
  }

  .mobile-account-button {
    width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    border-radius: 14px !important;
  }

  .mobile-account .account-menu {
    top: calc(100% + 8px) !important;
    right: 0 !important;
    left: auto !important;
    width: min(310px, calc(100vw - (var(--mobile-gutter) * 2))) !important;
    max-width: calc(100vw - (var(--mobile-gutter) * 2)) !important;
    max-height: calc(100dvh - 82px - env(safe-area-inset-top)) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }

  .module-switcher-panel {
    min-height: 0 !important;
    margin: 0 0 10px !important;
    padding: 11px 14px !important;
    border-radius: 14px !important;
  }

  .module-switcher-panel h2 {
    margin: 0 !important;
    font-size: 1.05rem !important;
    line-height: 1.2;
  }

  .module-switcher-panel .panel-eyebrow,
  .module-switcher-description,
  .module-switcher-actions {
    display: none !important;
  }

  /* Superficies e ritmo vertical. */
  .panel,
  .chart-panel,
  .table-panel,
  .settings-panel,
  .goals-panel,
  .module-functional-panel,
  .module-placeholder-panel,
  .insight-panel {
    padding: 15px !important;
    border-radius: var(--mobile-radius) !important;
  }

  .panel,
  .chart-panel,
  .table-panel,
  .toolbar-panel,
  .cards-grid,
  .cards-grid-main,
  .summary-grid,
  .goals-panel {
    margin-bottom: 10px !important;
  }

  .panel-header,
  .panel-header-split {
    min-width: 0;
    gap: 10px !important;
    margin-bottom: 12px !important;
  }

  .panel-header-split {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  .panel-header h2,
  .module-functional-panel .panel-header h2,
  .module-placeholder-panel .panel-header h2,
  .goals-panel .panel-header h2 {
    margin-bottom: 0;
    font-size: clamp(1.15rem, 5.2vw, 1.35rem) !important;
    line-height: 1.18;
    overflow-wrap: anywhere;
  }

  .panel-description,
  .goals-helper,
  .field-hint,
  .stat-footnote {
    line-height: 1.45 !important;
  }

  .cards-grid,
  .cards-grid-main,
  .summary-grid,
  .module-mini-grid,
  .goals-progress-grid,
  .goals-form-grid {
    width: 100% !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px !important;
  }

  .cards-grid-main .stat-card:first-child {
    grid-column: 1 / -1 !important;
  }

  .stat-card {
    min-width: 0 !important;
    min-height: 112px !important;
    padding: 14px !important;
    border-radius: 15px !important;
  }

  .stat-card-featured {
    min-height: 122px !important;
  }

  .stat-label,
  .stat-footnote,
  .stat-value,
  .stat-value.small {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .stat-value,
  .stat-value.small {
    font-size: clamp(1.3rem, 7vw, 1.8rem) !important;
  }

  /* Formularios: iOS nao da zoom, controles nao estouram largura. */
  input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),
  select,
  textarea {
    width: 100%;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 46px;
    font-size: 16px !important;
  }

  textarea {
    min-height: 96px;
    resize: vertical;
  }

  .backup-file-control input[type="file"] {
    position: absolute !important;
    width: 1px !important;
    min-width: 1px !important;
    height: 1px !important;
    min-height: 1px !important;
    padding: 0 !important;
    opacity: 0 !important;
  }

  button,
  .primary-button,
  .secondary-button,
  .danger-button,
  .edit-button,
  .icon-button {
    max-width: 100%;
    min-height: 44px;
  }

  .form-grid,
  .transaction-form,
  .settings-form-grid,
  .settings-grid,
  .settings-category-grid,
  .theme-custom-grid {
    min-width: 0 !important;
    grid-template-columns: 1fr !important;
    gap: 11px !important;
  }

  .form-actions,
  .settings-actions,
  .monthly-closing-actions {
    width: 100%;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .form-actions > *,
  .settings-actions > *,
  .monthly-closing-actions > * {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  /* Toolbars. A especificidade com IDs corrige regras desktop que antes venciam o mobile. */
  .toolbar-panel {
    width: 100% !important;
    padding: 12px !important;
    gap: 10px !important;
  }

  .toolbar-panel-left,
  .toolbar-panel-right,
  .filters-inline {
    width: 100% !important;
    min-width: 0 !important;
  }

  .filters-inline {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .filter-group,
  .filters-inline > button,
  .toolbar-panel-right > button {
    width: 100% !important;
    min-width: 0 !important;
  }

  #applyFilterButton,
  #exportCsvButton,
  #openImportButton {
    grid-column: auto !important;
  }

  #openModalButton {
    width: 100% !important;
  }

  #transactions-section .table-filters-extended,
  #transactions-section .table-filters {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    padding: 9px !important;
  }

  #transactions-section .table-filters-extended > *,
  #transactions-section .table-filters > * {
    width: 100% !important;
    min-width: 0 !important;
    grid-column: auto !important;
  }

  #transactions-section #searchInput,
  #transactions-section .bulk-delete-button {
    grid-column: 1 / -1 !important;
  }

  /* Tabelas financeiras viram cards, sem scroll horizontal escondendo acoes. */
  #transactions-section .table-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
  }

  #transactions-section table,
  #transactions-section thead,
  #transactions-section tbody,
  #transactions-section tr {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  #transactions-section tbody tr {
    padding: 13px !important;
    border-radius: 14px !important;
  }

  #transactions-section tbody td {
    width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: minmax(82px, 34%) minmax(0, 1fr) !important;
    gap: 9px !important;
  }

  #transactions-section tbody td.action-cell {
    grid-template-columns: minmax(82px, 34%) repeat(2, minmax(0, 1fr)) !important;
  }

  .pagination-bar,
  .bet-core-pagination {
    max-width: 100%;
  }

  /* Scrolls horizontais intencionais: contidos e claros, nunca no body. */
  .finance-internal-tabs,
  .bet-core-tabs,
  .automation-tabs,
  [role="tablist"] {
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
  }

  .finance-internal-tabs::-webkit-scrollbar,
  .bet-core-tabs::-webkit-scrollbar,
  .automation-tabs::-webkit-scrollbar,
  [role="tablist"]::-webkit-scrollbar {
    display: none;
  }

  .finance-internal-tabs > button,
  .bet-core-tabs > button,
  .automation-tabs > button,
  [role="tablist"] > button {
    flex: 0 0 auto !important;
    scroll-snap-align: start;
  }

  .finance-internal-tabs,
  .bet-core-tabs,
  .automation-tabs,
  [role="tablist"] {
    position: static !important;
    z-index: auto !important;
    top: auto !important;
    margin-inline: 0 !important;
    border-radius: 13px !important;
  }

  /* Hoje */
  .today-header,
  .today-quick-actions,
  .today-date-control {
    width: 100%;
    min-width: 0;
  }

  .today-header,
  .today-quick-actions {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  .today-date-control {
    display: grid !important;
    grid-template-columns: 44px minmax(0, 1fr) 44px !important;
    gap: 7px !important;
  }

  .today-date-control input {
    min-width: 0 !important;
  }

  .today-quick-actions > div {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .today-quick-actions button {
    width: 100% !important;
  }

  /* Financeiro */
  .goals-panel-header > button,
  .expense-control-header button,
  .balance-distribution-footer .primary-button {
    width: 100% !important;
  }

  .expense-budget-editor,
  .expense-budget-editor-row,
  .expense-category-row,
  .expense-category-add-form {
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .analytics-panel-header,
  .temporal-selected-day-heading,
  .category-ranking-line {
    min-width: 0;
  }

  .analytics-view-toggle {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
  }

  .analytics-toggle-button {
    min-width: 0 !important;
  }

  .chart-wrapper,
  .temporal-chart-wrapper,
  .category-chart-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 250px !important;
    height: 250px !important;
    overflow: hidden;
  }

  /* Apostas */
  #section-betting,
  #section-betting > *,
  .bet-core-panel,
  .bet-core-terminal,
  .bet-core-overview-grid,
  .bet-core-operation-card,
  .bet-core-house-group,
  .bet-core-account-row,
  .bet-core-account-detail {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .bet-core-hero {
    gap: 12px !important;
    padding: 15px !important;
  }

  .bet-core-hero .primary-button,
  .bet-core-history-toolbar .secondary-button {
    width: 100% !important;
  }

  .bet-core-tabs {
    padding: 5px !important;
  }

  .bet-core-tabs button {
    min-height: 42px !important;
    padding-inline: 12px !important;
  }

  .bet-core-kpis,
  .bet-core-cash-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .bet-core-terminal {
    padding: 14px 11px !important;
    border-radius: 15px !important;
  }

  .bet-core-terminal-heading,
  .bet-core-hero,
  .bet-core-house-group > header {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  .bet-core-quickbar,
  .bet-core-top-controls,
  .bet-core-adjustments,
  .bet-core-modifier-toggles,
  .bet-core-form-tail,
  .bet-core-filter-grid,
  .bet-core-freebet-filters,
  .bet-core-outcome-options {
    min-width: 0 !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .bet-core-quickbar {
    padding: 11px !important;
    gap: 9px !important;
  }

  .bet-core-modifier-toggles,
  .bet-core-form-tail > button,
  .bet-core-span {
    grid-column: 1 / -1 !important;
  }

  .bet-core-table-wrap {
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
  }

  .bet-core-table,
  .bet-core-table[data-adjustment-count="1"],
  .bet-core-table[data-adjustment-count="2"],
  .bet-core-table[data-adjustment-count="3"] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .bet-core-table tr {
    max-width: 100% !important;
  }

  .bet-core-table tbody td:nth-child(n),
  .bet-core-table tbody td:first-child,
  .bet-core-table .bet-col-house,
  .bet-core-table .bet-col-stake,
  .bet-core-table .bet-col-profit {
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .bet-core-type-popover,
  .bet-core-choice-popover,
  .bet-core-house-suggestions {
    max-width: calc(100vw - (var(--mobile-gutter) * 2)) !important;
  }

  .bet-core-operation-card,
  .bet-core-operation-card.is-history {
    display: block !important;
    width: 100% !important;
    padding: 13px !important;
  }

  .bet-core-operation-main {
    grid-template-columns: 1fr !important;
  }

  .bet-core-operation-time {
    align-items: flex-start !important;
    text-align: left !important;
  }

  .bet-core-operation-accounts,
  .bet-core-operation-metrics,
  .bet-core-operation-actions,
  .bet-core-history-hit {
    width: 100%;
    margin-top: 10px !important;
  }

  .bet-core-operation-metrics,
  .bet-core-operation-actions,
  .bet-core-account-buttons {
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
  }

  .bet-core-operation-actions > button,
  .bet-core-account-buttons > button {
    flex: 1 1 130px;
  }

  .bet-core-account-summary-button {
    width: 100% !important;
    min-width: 0 !important;
  }

  .bet-core-account-balance-grid,
  .bet-core-freebet-card,
  .bet-core-balance-strip,
  .bet-core-balance-strip-wide,
  .bet-core-calculation-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .bet-core-table tbody {
    display: grid !important;
    gap: 12px !important;
  }

  .bet-core-table tr {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    position: relative !important;
  }

  .bet-core-table tbody td:last-child {
    position: static !important;
    justify-self: auto !important;
  }

  .bet-core-table .bet-col-house,
  .bet-core-table tbody td.bet-col-house {
    grid-column: 1 / -1 !important;
    padding-left: 34px !important;
  }

  .bet-core-table tfoot,
  .bet-core-table tfoot .bet-core-total-row {
    display: block !important;
  }

  .bet-core-table tfoot .bet-core-total-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: stretch !important;
  }

  .bet-core-table tfoot .bet-col-total-label,
  .bet-core-table tfoot .bet-col-stake,
  .bet-core-table tfoot .bet-col-profit,
  .bet-core-table tfoot .bet-col-marker:last-child {
    grid-column: auto !important;
    width: 100% !important;
    text-align: left !important;
    justify-self: stretch !important;
  }

  .bet-core-table tfoot .bet-col-marker:last-child {
    display: flex !important;
    justify-content: flex-start !important;
    padding-top: 0 !important;
  }

  /* Todos os modais viram sheets consistentes. Apostas tinha regra propria que anulava isso. */
  .modal,
  #section-betting .modal {
    align-items: flex-end !important;
    justify-content: center !important;
    padding: 12px 0 0 !important;
    overflow: hidden !important;
  }

  .modal-content,
  .modal .modal-content,
  .modal .modal-content.modal-confirm,
  #section-betting .modal > .bet-core-modal-card,
  #section-betting .modal > .bet-core-calendar-card,
  .invoice-modal-content,
  .import-modal-content,
  .club365-modal-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    max-height: calc(94dvh - env(safe-area-inset-top)) !important;
    margin: 0 !important;
    padding: 18px 15px calc(18px + env(safe-area-inset-bottom)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    border-right: 0 !important;
    border-bottom: 0 !important;
    border-left: 0 !important;
    border-radius: 21px 21px 0 0 !important;
  }

  .modal-header,
  #section-betting .modal .modal-header {
    position: sticky !important;
    z-index: 8 !important;
    top: -18px !important;
    margin: -18px -15px 14px !important;
    padding: 15px 15px 12px !important;
    border-bottom: 1px solid var(--line) !important;
    background: var(--user-surface-bottom) !important;
    backdrop-filter: blur(16px) !important;
  }

  .modal-header h2 {
    min-width: 0;
    padding-right: 6px;
    font-size: 1.2rem !important;
    overflow-wrap: anywhere;
  }

  .modal .icon-button,
  .modal-header .icon-button {
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    flex: 0 0 44px;
  }

  .bet-core-modal-actions,
  .modal-actions {
    width: 100%;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .bet-core-modal-actions > *,
  .modal-actions > * {
    width: 100% !important;
    min-width: 0 !important;
  }

  /* Clube 365 */
  .club365-hero,
  .club365-week-navigation,
  .club365-tier-row,
  .club365-entry-item {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .club365-week-navigation {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    align-items: stretch !important;
  }

  .club365-week-label {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    text-align: left !important;
    min-width: 0 !important;
  }

  .club365-week-navigation button {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 46px !important;
    padding: 10px 12px !important;
    white-space: normal !important;
    line-height: 1.2 !important;
    text-align: center !important;
  }

  #club365ConfigureTiers,
  #club365CurrentWeek,
  #club365PreviousWeek,
  #club365NextWeek {
    grid-column: auto !important;
  }

  .club365-kpi-grid,
  .club365-accounts-grid,
  .club365-result-grid,
  .club365-tier-status {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .club365-entry-form {
    grid-template-columns: 1fr !important;
  }

  .club365-entry-delete {
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
  }

  /* Configuracao das faixas: rolavel, legivel e sem ocupar a pagina inteira. */
  #club365TiersModal {
    align-items: center !important;
    justify-content: center !important;
    padding: 14px !important;
  }

  #club365TiersModal .club365-tiers-modal-card {
    display: flex !important;
    flex-direction: column !important;
    width: min(100%, 620px) !important;
    max-width: min(100%, 620px) !important;
    max-height: min(88dvh, 780px) !important;
    margin: 0 !important;
    padding: 20px !important;
    overflow: hidden !important;
    border: 1px solid rgba(var(--user-accent-rgb), 0.2) !important;
    border-radius: 20px !important;
    background: linear-gradient(180deg, var(--user-surface-top), var(--user-surface-bottom)) !important;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.56) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  #club365TiersModal .modal-header {
    position: static !important;
    top: auto !important;
    margin: 0 0 13px !important;
    padding: 0 0 13px !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  #club365TiersModal > .club365-tiers-modal-card > .panel-description {
    margin: 0 0 16px !important;
    font-size: 0.94rem !important;
    line-height: 1.55 !important;
  }

  #club365TiersForm {
    display: flex !important;
    min-height: 0 !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
  }

  #club365TiersModal .club365-tier-head {
    display: none !important;
  }

  #club365TiersModal .club365-tier-rows {
    display: grid !important;
    gap: 11px !important;
    min-height: 0 !important;
    max-height: 50dvh !important;
    padding: 1px 2px 2px !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }

  #club365TiersModal .club365-tier-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 42px !important;
    gap: 8px !important;
    align-items: stretch !important;
    padding: 13px !important;
    border: 1px solid rgba(var(--user-accent-rgb), 0.14) !important;
    border-radius: 14px !important;
    background: rgba(var(--user-menu-bg-rgb), 0.64) !important;
  }

  #club365TiersModal .club365-tier-field {
    display: grid !important;
    min-width: 0 !important;
    gap: 7px !important;
  }

  #club365TiersModal .club365-tier-field:nth-child(3) {
    grid-column: 1 / 3 !important;
  }

  #club365TiersModal .club365-tier-field-label {
    display: block !important;
    color: var(--muted) !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }

  #club365TiersModal .club365-tier-row input {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 48px !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 10px 12px !important;
    border: 1px solid rgba(var(--user-accent-rgb), 0.18) !important;
    border-radius: 11px !important;
    background: var(--user-field-bg) !important;
    color: var(--text) !important;
    font-size: 16px !important;
    appearance: textfield;
  }

  #club365TiersModal .club365-tier-remove {
    grid-column: 3 !important;
    grid-row: 1 / 3 !important;
    align-self: stretch !important;
    width: 42px !important;
    min-width: 42px !important;
    height: auto !important;
    min-height: 48px !important;
    margin: 0 !important;
    border-radius: 12px !important;
  }

  #club365TiersModal .club365-tier-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr) !important;
    gap: 8px !important;
    margin-top: 16px !important;
    padding-top: 14px !important;
    border-top: 1px solid rgba(var(--user-accent-rgb), 0.12);
  }

  #club365TiersModal .club365-tier-actions > * {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 48px !important;
    font-size: 0.9rem !important;
  }

  /* Automacao e administracao */
  .automation-header,
  .backup-hero,
  .automation-panel-heading,
  .publication-heading-actions,
  .publication-email-test-row,
  .publication-address-row {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  .automation-header-actions,
  .backup-primary-actions,
  .user-admin-actions {
    width: 100%;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .automation-header-actions > *,
  .backup-primary-actions > *,
  .user-admin-actions > * {
    width: 100% !important;
    min-width: 0 !important;
  }

  .automation-summary-grid,
  .recurring-template-list,
  .backup-point-list,
  .recurring-form-grid,
  .publication-readiness-list,
  .invite-form-row {
    grid-template-columns: 1fr !important;
  }

  .user-admin-item {
    min-width: 0 !important;
    grid-template-columns: 40px minmax(0, 1fr) !important;
  }

  .user-admin-status,
  .user-admin-role,
  .user-admin-actions {
    grid-column: 2 !important;
  }

  /* Distribuicao, configuracoes, faturas e importacao. */
  .balance-location-grid,
  .balance-position-strip,
  .balance-distribution-header,
  .balance-distribution-footer,
  .invoice-item,
  .invoice-summary-grid {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .balance-location-grid,
  .balance-position-strip,
  .invoice-summary-grid {
    grid-template-columns: 1fr !important;
  }

  .balance-distribution-header,
  .balance-distribution-footer {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  .theme-preset-list {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .theme-color-input-wrap {
    max-width: 100%;
  }

  .invoice-item {
    grid-template-columns: minmax(0, 1fr) auto !important;
  }

  .invoice-actions {
    grid-column: 1 / -1 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .import-table-wrap,
  .import-table,
  .import-table tbody,
  .import-table tr,
  .import-table td {
    max-width: 100% !important;
    min-width: 0 !important;
  }

  /* Navegacao inferior e FAB compartilham o mesmo dock. Assim a distancia
     entre os dois nao muda quando a barra do navegador expande/recolhe. */
  .mobile-dock {
    position: fixed !important;
    z-index: 180 !important;
    right: max(6px, env(safe-area-inset-right)) !important;
    bottom: max(6px, env(safe-area-inset-bottom)) !important;
    left: max(6px, env(safe-area-inset-left)) !important;
    display: block !important;
    pointer-events: none;
  }

  .mobile-bottom-nav {
    position: relative !important;
    z-index: 1 !important;
    inset: auto !important;
    width: 100% !important;
    min-height: 66px !important;
    margin: 0 !important;
    padding: 5px !important;
    border-radius: 18px !important;
    background: rgba(var(--user-menu-bg-rgb), 0.985) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    pointer-events: auto;
  }

  .mobile-bottom-nav button {
    min-width: 0 !important;
    min-height: 54px !important;
    padding: 4px 1px !important;
    border-radius: 12px !important;
    font-size: clamp(0.56rem, 2.45vw, 0.64rem) !important;
    line-height: 1.05;
  }

  .mobile-nav-icon {
    min-height: 20px !important;
  }

  .quick-add-button {
    position: absolute !important;
    z-index: 2 !important;
    right: 8px !important;
    bottom: calc(100% + 10px) !important;
    width: 50px !important;
    height: 50px !important;
    min-height: 50px !important;
    border-radius: 16px !important;
    pointer-events: auto;
  }

  body.modal-open .mobile-dock,
  body.auth-open .mobile-dock {
    display: none !important;
  }

  .toast-container {
    z-index: 6500 !important;
    top: max(10px, env(safe-area-inset-top)) !important;
    right: var(--mobile-gutter) !important;
    left: var(--mobile-gutter) !important;
    width: auto !important;
    max-width: none !important;
  }

  .toast {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 600px) {
  .cards-grid,
  .cards-grid-main,
  .summary-grid,
  .module-mini-grid,
  .goals-progress-grid,
  .goals-form-grid,
  .bet-core-kpis,
  .bet-core-cash-grid,
  .club365-kpi-grid,
  .club365-accounts-grid,
  .club365-result-grid,
  .club365-tier-status {
    grid-template-columns: 1fr !important;
  }

  .cards-grid-main .stat-card:first-child {
    grid-column: auto !important;
  }

  .filters-inline,
  #transactions-section .table-filters-extended,
  #transactions-section .table-filters,
  .form-actions,
  .settings-actions,
  .monthly-closing-actions,
  .bet-core-quickbar,
  .bet-core-top-controls,
  .bet-core-adjustments,
  .bet-core-modifier-toggles,
  .bet-core-form-tail,
  .bet-core-filter-grid,
  .bet-core-freebet-filters,
  .bet-core-outcome-options,
  .bet-core-account-balance-grid,
  .bet-core-freebet-card,
  .bet-core-balance-strip,
  .bet-core-balance-strip-wide,
  .bet-core-calculation-summary,
  .automation-header-actions,
  .backup-primary-actions,
  .user-admin-actions,
  .invoice-actions,
  .bet-core-modal-actions,
  .modal-actions {
    grid-template-columns: 1fr !important;
  }

  #applyFilterButton,
  #exportCsvButton,
  #openImportButton,
  #transactions-section #searchInput,
  #transactions-section .bulk-delete-button,
  .bet-core-modifier-toggles,
  .bet-core-form-tail > button,
  .bet-core-span {
    grid-column: auto !important;
  }

  .today-quick-actions > div,
  .analytics-view-toggle {
    grid-template-columns: 1fr !important;
  }

  #transactions-section tbody td,
  #transactions-section tbody td.action-cell {
    grid-template-columns: 1fr !important;
    text-align: left !important;
  }

  #transactions-section tbody td::before,
  #transactions-section tbody td.action-cell::before {
    grid-column: auto !important;
  }

  #transactions-section tbody td.checkbox-cell {
    display: block !important;
    width: auto !important;
  }

  .bet-core-operation-actions > button,
  .bet-core-account-buttons > button {
    flex-basis: 100%;
    width: 100% !important;
  }

  #club365TiersModal {
    padding: 8px !important;
  }

  #club365TiersModal .club365-tiers-modal-card {
    max-height: 90dvh !important;
    padding: 16px !important;
  }

  #club365TiersModal .club365-tier-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 40px !important;
    padding: 11px !important;
  }

  #club365TiersModal .club365-tier-remove {
    width: 40px !important;
    min-width: 40px !important;
  }

  .club365-week-navigation {
    grid-template-columns: 1fr !important;
  }

  .club365-week-navigation button {
    grid-column: auto !important;
  }

  .bet-core-table tr {
    grid-template-columns: 1fr !important;
  }

  .bet-core-table td,
  .bet-core-table td:first-child,
  .bet-core-table td:nth-child(n) {
    grid-column: auto !important;
  }

  .bet-core-table .bet-col-house,
  .bet-core-table tbody td.bet-col-house {
    grid-column: auto !important;
    padding-left: 34px !important;
  }

  .club365-tier-row {
    grid-template-columns: 1fr !important;
  }

  .club365-tier-field:nth-child(3) {
    grid-column: auto !important;
  }

  .theme-preset-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 390px) {
  :root {
    --mobile-gutter: 8px;
  }

  .hero-header {
    min-height: 78px !important;
    padding-left: 13px !important;
  }

  .panel,
  .chart-panel,
  .table-panel,
  .settings-panel,
  .goals-panel,
  .module-functional-panel,
  .module-placeholder-panel,
  .insight-panel {
    padding: 13px !important;
  }

  .mobile-dock {
    right: 4px !important;
    bottom: 4px !important;
    left: 4px !important;
  }

  .mobile-bottom-nav button {
    letter-spacing: -0.025em;
  }
}

@media (max-width: 860px) and (orientation: landscape) and (max-height: 560px) {
  .hero-header,
  .module-switcher-panel {
    display: none !important;
  }

  .main-content {
    padding-top: max(8px, env(safe-area-inset-top)) !important;
  }

  .modal-content,
  .modal .modal-content,
  #section-betting .modal > .bet-core-modal-card,
  #section-betting .modal > .bet-core-calendar-card {
    max-height: 98dvh !important;
  }
}

@media (max-width: 860px) and (hover: none) {
  button:hover,
  a:hover,
  .stat-card:hover,
  .panel:hover,
  .nav-item:hover,
  .theme-preset:hover {
    transform: none !important;
  }
}


/* 3.0.36 · acabamento mobile da liquidação compacta */
@media (max-width: 860px) {
  #bettingFinalizeModal > .bet-core-finalize-card {
    padding: 18px 14px calc(16px + env(safe-area-inset-bottom)) !important;
  }
  #bettingFinalizeModal .bet-core-finalize-header {
    position: static !important;
    top: auto !important;
    margin: 0 0 12px !important;
    padding: 0 0 12px !important;
    background: transparent !important;
    backdrop-filter: none !important;
  }
  #bettingFinalizeModal .bet-core-finalize-outcomes {
    grid-template-columns: 1fr !important;
  }
  #bettingFinalizeModal .bet-core-club-volume-row {
    grid-template-columns: 1fr 1fr !important;
  }
  #bettingFinalizeModal .bet-core-club-volume-copy {
    grid-column: 1 / -1 !important;
  }
}

/* 3.0.37 · revisão móvel minuciosa e hardening de viewport. */
@media (max-width: 860px) {
  :root {
    --mobile-gutter: clamp(10px, 3.4vw, 15px);
    --mobile-nav-space: calc(104px + env(safe-area-inset-bottom));
  }

  html,
  body,
  .app-shell,
  .main-content {
    max-width: 100% !important;
    overflow-x: clip !important;
  }

  body {
    font-size: 15px;
  }

  /* O seletor superior repetia a mesma navegação já disponível no dock. */
  .module-switcher-panel {
    display: none !important;
  }

  .main-content {
    padding:
      max(8px, env(safe-area-inset-top))
      var(--mobile-gutter)
      var(--mobile-nav-space) !important;
  }

  .hero-header {
    min-height: 70px !important;
    margin-bottom: 10px !important;
    padding: 11px 58px 11px 13px !important;
    border-radius: 15px !important;
  }

  .hero-badge {
    padding: 4px 7px !important;
    font-size: 0.62rem !important;
  }

  .brand-title {
    margin-top: 5px !important;
    font-size: clamp(1.55rem, 7.5vw, 1.9rem) !important;
  }

  .mobile-account {
    top: 10px !important;
  }

  .mobile-account-button {
    width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    border-radius: 13px !important;
  }

  .module-section,
  #section-today,
  #section-finance,
  #section-betting,
  #section-club365,
  #section-automation,
  #section-settings {
    gap: 12px !important;
  }

  .panel,
  .chart-panel,
  .table-panel,
  .toolbar-panel,
  .settings-panel,
  .stat-card,
  .goals-panel {
    border-radius: 15px !important;
  }

  .panel,
  .chart-panel,
  .table-panel,
  .settings-panel,
  .goals-panel {
    padding: 14px !important;
  }

  .panel-header,
  .today-panel-heading {
    margin-bottom: 12px !important;
  }

  .panel-header h2,
  .today-panel-heading h3 {
    font-size: 1.15rem !important;
  }

  .panel-description,
  .stat-footnote,
  .goals-helper {
    line-height: 1.42 !important;
  }

  /* Navegação interna: uma única linha rolável sem empurrar o body. */
  .finance-internal-tabs,
  .bet-core-tabs,
  .automation-tabs,
  [role="tablist"] {
    width: 100% !important;
    padding: 4px !important;
    gap: 4px !important;
    scroll-padding-inline: 4px;
  }

  .finance-internal-tabs > button,
  .bet-core-tabs > button,
  .automation-tabs > button,
  [role="tablist"] > button {
    min-height: 40px !important;
    padding: 7px 11px !important;
    font-size: 0.78rem !important;
  }

  /* Hoje: datas compactas e KPIs em 2x2 em celulares normais. */
  .today-header {
    padding: 14px !important;
    gap: 12px !important;
  }

  .today-subtitle {
    margin-top: 4px !important;
    font-size: 0.82rem;
  }

  .today-date-control {
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) 42px auto !important;
    gap: 7px !important;
  }

  .today-date-control > button,
  .today-date-control > input {
    min-height: 42px !important;
  }

  #todayResetButton {
    width: auto !important;
    min-width: 58px !important;
    padding-inline: 10px !important;
  }

  .today-kpi-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    border-radius: 15px !important;
  }

  .today-kpi-strip article {
    padding: 14px !important;
    border-right: 1px solid var(--line) !important;
    border-bottom: 1px solid var(--line) !important;
  }

  .today-kpi-strip article:nth-child(2n) {
    border-right: 0 !important;
  }

  .today-kpi-strip article:nth-last-child(-n + 2) {
    border-bottom: 0 !important;
  }

  .today-kpi-strip strong {
    margin: 5px 0 3px !important;
    font-size: clamp(1.15rem, 5.4vw, 1.5rem) !important;
  }

  .today-grid {
    gap: 12px !important;
    margin-top: 12px !important;
  }

  .today-grid > .panel {
    padding: 14px !important;
  }

  .today-month-summary,
  .today-betting-summary,
  .today-house-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .today-month-summary span,
  .today-betting-summary span,
  .today-house-summary span {
    min-width: 0;
    padding: 12px 8px !important;
    overflow-wrap: anywhere;
  }

  .today-month-summary strong,
  .today-betting-summary strong,
  .today-house-summary strong {
    font-size: 0.9rem !important;
  }

  .today-list-item,
  .today-alert-item,
  .today-activity-item {
    gap: 10px !important;
    padding: 10px 0 !important;
  }

  /* Financeiro: mantém leitura sem transformar cada KPI em uma tela inteira. */
  .cards-grid-main {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px !important;
  }

  .cards-grid-main .stat-card:first-child,
  .cards-grid-main .stat-card:nth-child(4) {
    grid-column: 1 / -1 !important;
  }

  .summary-grid,
  .module-mini-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px !important;
  }

  .stat-card {
    min-height: 0 !important;
    padding: 14px !important;
  }

  .stat-value {
    font-size: clamp(1.35rem, 6vw, 1.8rem) !important;
  }

  .stat-value.small {
    font-size: clamp(1.15rem, 5vw, 1.5rem) !important;
  }

  .balance-position-strip,
  .balance-location-grid {
    gap: 9px !important;
  }

  /* Apostas: cards das pernas em duas colunas para reduzir rolagem vertical. */
  .bet-core-table tbody {
    gap: 10px !important;
  }

  .bet-core-table tbody tr {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px !important;
    padding: 12px !important;
  }

  .bet-core-table .bet-col-house,
  .bet-core-table tbody td.bet-col-house {
    grid-column: 1 / -1 !important;
    padding-left: 32px !important;
  }

  .bet-core-table tbody td {
    min-width: 0 !important;
  }

  .bet-core-table tbody td[data-label="Freebet"],
  .bet-core-table tbody td[data-label="Dist."],
  .bet-core-table tbody td[data-label="Fixo"] {
    align-items: center !important;
  }

  .bet-core-terminal {
    padding: 12px 9px !important;
  }

  .bet-core-operation-card,
  .bet-core-operation-card.is-history {
    border-radius: 14px !important;
  }

  .bet-classic-workspace {
    gap: 10px !important;
  }

  .bet-classic-register-panel,
  .bet-classic-open-panel {
    padding: 14px !important;
    border-radius: 15px !important;
  }

  /* Clube 365: KPIs continuam legíveis em duas colunas. */
  .club365-kpi-grid,
  .club365-result-grid,
  .club365-tier-status {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px !important;
  }

  .club365-accounts-grid {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .club365-account-card {
    padding: 14px !important;
  }

  .club365-week-navigation {
    gap: 7px !important;
  }

  /* Automação e Configurações: evita ações minúsculas lado a lado. */
  .automation-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px !important;
  }

  .settings-category-grid,
  .settings-grid,
  .settings-form-grid {
    gap: 10px !important;
  }

  /* Componentes flutuantes respeitam o visualViewport e não usam blur caro. */
  .dashnox-select-popover,
  .bet-core-type-popover,
  .bet-core-choice-popover,
  .bet-core-house-suggestions,
  .bet-leg-house-popover {
    max-width: calc(100vw - (var(--mobile-gutter) * 2)) !important;
    max-height: min(320px, calc(var(--dashnox-visual-height, 100dvh) - 28px)) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .dashnox-select-popover button {
    min-height: 50px !important;
    font-size: 0.9rem !important;
  }

  /* Sheets nunca ficam atrás do teclado ou das barras dinâmicas do navegador. */
  .modal-content,
  .modal .modal-content,
  #section-betting .modal > .bet-core-modal-card,
  #section-betting .modal > .bet-core-calendar-card,
  .invoice-modal-content,
  .import-modal-content,
  .club365-modal-content,
  .modal-card {
    max-height: min(
      calc(var(--dashnox-visual-height, 100dvh) - 8px),
      calc(96dvh - env(safe-area-inset-top))
    ) !important;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
  }

  .modal-header,
  #section-betting .modal .modal-header {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  /* Dock some com o teclado; botão + só aparece em Hoje/Financeiro. */
  body.mobile-keyboard-open .mobile-dock {
    display: none !important;
  }

  .quick-add-button.context-hidden {
    display: none !important;
  }

  .mobile-bottom-nav {
    padding-bottom: max(5px, env(safe-area-inset-bottom)) !important;
  }

  .mobile-bottom-nav button {
    font-size: clamp(0.61rem, 2.7vw, 0.7rem) !important;
  }

  .mobile-nav-icon {
    font-size: 1.05rem !important;
  }

  /* Textos longos não criam overflow invisível. */
  .panel,
  .stat-card,
  .bet-core-operation-card,
  .club365-account-card,
  .user-admin-item,
  .invoice-item,
  .today-list-item,
  .today-activity-item {
    overflow-wrap: anywhere;
  }
}

@media (max-width: 359px) {
  .today-date-control {
    grid-template-columns: 42px minmax(0, 1fr) 42px !important;
  }

  #todayResetButton {
    grid-column: 1 / -1 !important;
    width: 100% !important;
  }

  .today-month-summary,
  .today-betting-summary,
  .today-house-summary,
  .cards-grid-main,
  .summary-grid,
  .module-mini-grid,
  .club365-kpi-grid,
  .club365-result-grid,
  .club365-tier-status,
  .automation-summary-grid,
  .bet-core-table tbody tr {
    grid-template-columns: 1fr !important;
  }

  .cards-grid-main .stat-card:first-child,
  .cards-grid-main .stat-card:nth-child(4),
  .bet-core-table .bet-col-house,
  .bet-core-table tbody td.bet-col-house {
    grid-column: auto !important;
  }

  .mobile-bottom-nav button {
    font-size: 0.58rem !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* 3.0.40 · correção de total VH obsoleto após edição manual de stake. */
