/**
 * Gen3 — Correções mobile (portal + carrinho)
 * Carregar após portal.css e portal-cart-overrides.css
 */

/* ===== Shell — ≤991px ===== */
@media (max-width: 991.98px) {
  html,
  body.gen3-theme.page-portal,
  body.gen3-theme.page-cart {
    overflow-x: hidden;
    width: 100%;
    max-width: 100%;
  }

  body.page-portal,
  body.page-cart {
    overflow-x: hidden;
  }

  .gen3-portal {
    width: 100%;
    max-width: 100vw;
    min-width: 0;
    overflow-x: hidden;
  }

  .gen3-portal-main {
    margin-left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .gen3-portal-body,
  body.page-portal #main-body,
  body.page-portal .gen3-portal-container,
  body.page-portal .gen3-portal-row,
  body.page-portal .primary-content,
  body.page-portal .gen3-portal-page {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.page-portal .gen3-portal-container {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    box-sizing: border-box;
  }

  /* Bootstrap grid — overflow control sem “achatar” tablet */
  body.page-portal .row,
  body.page-portal .gen3-portal-row {
    width: 100%;
    max-width: 100%;
  }

  body.page-portal .row > [class*="col-"],
  body.page-portal .gen3-portal-row > [class*="col-"] {
    min-width: 0;
  }

  body.page-portal.page-cart #order-standard_cart .products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  /* Tabelas */
  body.page-portal .table-container,
  body.page-portal .dataTables_wrapper {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  body.page-portal .table-list,
  body.page-portal table.dataTable {
    width: 100% !important;
    min-width: 0;
  }

  /* Sub-nav contexto — scroll sem cortar pills */
  body.page-portal .gen3-context-nav {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    overflow: visible;
    padding: 0.5rem 0.55rem;
  }

  body.page-portal .gen3-context-nav-scroll {
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: visible;
    padding: 0.1rem 0;
  }

  body.page-portal .gen3-context-nav-link {
    flex: 0 0 auto;
    min-height: 2.2rem;
  }

  /* Carrinho logado */
  body.page-portal.page-cart .gen3-portal-container {
    max-width: 100% !important;
    padding-left: 0.85rem !important;
    padding-right: 0.85rem !important;
  }

  body.page-portal.page-cart #order-standard_cart,
  body.page-portal.page-cart #order-standard_cart .cart-body {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.page-portal.page-cart #order-standard_cart .cart-body > .row {
    flex-direction: column !important;
    gap: 1rem !important;
    margin: 0 !important;
  }

  body.page-portal.page-cart #order-standard_cart .secondary-cart-body,
  body.page-portal.page-cart #order-standard_cart .secondary-cart-sidebar {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    position: static !important;
  }

  /* Carrinho guest */
  body.page-cart:not(.page-portal) .container,
  body.page-cart:not(.page-portal) #order-standard_cart {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 1rem;
    padding-right: 1rem;
    box-sizing: border-box;
  }

  body.page-cart:not(.page-portal) #order-standard_cart .cart-body > .row {
    flex-direction: column;
  }

  /* Vitrine IA */
  body.page-cart #order-standard_cart.gen3-store-ia .cart-body {
    max-width: none !important;
    padding: 0 0 2rem !important;
  }

  .gen3-store-ia .gen3-ia-pricing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .gen3-store-ia .gen3-ia-plan {
    width: 100%;
  }

  .gen3-store-ia .gen3-ia-openclaw-card {
    padding: 1.25rem;
  }

  .gen3-store-ia .gen3-ia-openclaw-cta {
    align-items: stretch !important;
    width: 100%;
  }

  .gen3-store-ia .gen3-ia-openclaw-cta .gen3-ia-btn {
    width: 100%;
  }

  .gen3-store-ia .gen3-ia-section-head h2 {
    font-size: 1.35rem;
  }

  /* Billing */
  body.page-portal .gen3-billing-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.page-portal .gen3-billing-hero-actions {
    width: 100%;
  }

  /* Modais */
  body.page-portal .modal-dialog {
    margin: 0.75rem auto;
    max-width: calc(100vw - 1.5rem);
  }
}

/* ===== ≤767px ===== */
@media (max-width: 767.98px) {
  body.page-portal .row,
  body.page-portal .gen3-portal-row {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.page-portal .row > [class*="col-"],
  body.page-portal .gen3-portal-row > [class*="col-"] {
    padding-left: 0;
    padding-right: 0;
    max-width: 100%;
  }

  body.page-portal .float-md-left,
  body.page-portal .float-md-right {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.page-portal .card .row.d-md-block > [class*="col-md"] {
    float: none !important;
    width: 100% !important;
  }

  body.page-portal.page-cart #order-standard_cart .products {
    grid-template-columns: 1fr !important;
  }

  .gen3-store-ia .gen3-ia-pricing-grid {
    grid-template-columns: 1fr !important;
  }

  body.page-portal .gen3-portal-topbar {
    padding: 0.65rem 0.85rem;
    gap: 0.45rem;
  }

  body.page-portal .gen3-portal-topbar-actions {
    gap: 0.35rem;
    flex-shrink: 0;
  }

  body.page-portal .gen3-portal-user-btn {
    padding: 0.2rem;
    min-width: 0;
  }

  body.page-portal .gen3-portal-user-btn .gen3-portal-user-name {
    display: none !important;
  }

  body.page-portal .gen3-portal-container {
    padding-top: 0.85rem !important;
    padding-bottom: 1.25rem !important;
  }

  /* Dashboard */
  body.page-portal .gen3-dash {
    max-width: none;
    width: 100%;
  }

  body.page-portal .gen3-dash-hero {
    flex-direction: column;
    align-items: stretch;
    gap: 0.85rem;
  }

  body.page-portal .gen3-dash-hero h1 {
    font-size: 1.45rem;
    line-height: 1.2;
  }

  body.page-portal .gen3-dash-hero-actions {
    width: 100%;
    flex-direction: column;
  }

  body.page-portal .gen3-dash-hero-actions .gen3-btn {
    width: 100%;
    justify-content: center;
  }

  body.page-portal .gen3-dash-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.page-portal .gen3-dash-stat {
    padding: 0.85rem 0.45rem;
    min-width: 0;
  }

  body.page-portal .gen3-dash-stat-num {
    font-size: 1.25rem;
  }

  body.page-portal .gen3-dash-stat-label {
    font-size: 0.625rem;
  }

  body.page-portal .gen3-dash-promos {
    grid-template-columns: 1fr;
  }

  body.page-portal .gen3-dash-promo {
    min-width: 0;
  }

  body.page-portal .gen3-dash-domain-row {
    flex-direction: column;
    align-items: stretch;
  }

  body.page-portal .gen3-dash-domain-input,
  body.page-portal .gen3-dash-domain-btn {
    width: 100%;
  }

  /* Billing */
  body.page-portal .gen3-billing-hero {
    padding: 1.25rem 1rem;
    flex-direction: column;
    align-items: stretch;
  }

  body.page-portal .gen3-billing-title {
    font-size: 1.45rem;
  }

  body.page-portal .gen3-billing-hero-actions .gen3-btn {
    width: 100%;
    justify-content: center;
  }

  body.page-portal .gen3-billing-panel-head {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  body.page-portal .gen3-billing-toolbar,
  body.page-portal .gen3-billing-toolbar .dataTables_filter,
  body.page-portal .gen3-billing-toolbar .dataTables_filter input {
    width: 100% !important;
    min-width: 0 !important;
  }

  body.page-portal .gen3-invoice-card-main {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.65rem;
  }

  /* Support */
  body.page-portal.page-support .gen3-dept-grid {
    grid-template-columns: 1fr;
  }

  body.page-portal.page-support .gen3-support-hero {
    flex-direction: column;
  }

  body.page-portal.page-support .gen3-support-back {
    width: 100%;
    justify-content: center;
  }

  body.page-portal.page-support .gen3-support-panel {
    padding: 1rem;
  }

  body.page-portal.page-support .gen3-support-actions {
    flex-direction: column;
  }

  body.page-portal.page-support .gen3-support-actions .gen3-btn {
    width: 100%;
  }

  /* Services */
  body.page-portal.page-services .gen3-service-overview-head {
    flex-direction: column;
  }

  body.page-portal.page-services .gen3-service-actions {
    width: 100%;
    flex-direction: column;
  }

  body.page-portal.page-services .gen3-service-actions .gen3-btn {
    width: 100%;
    justify-content: center;
  }

  body.page-portal.page-services .gen3-btn.w-100 {
    display: flex;
    justify-content: center;
  }

  /* Domains */
  body.page-portal.page-domains .domain-actions,
  body.page-portal.page-domains .btn-group.setBulkAction,
  body.page-portal.page-domains #tableDomainsList_wrapper .dataTables_filter {
    width: 100%;
  }

  body.page-portal.page-domains .domain-actions .btn,
  body.page-portal.page-domains .btn-group.setBulkAction .btn {
    width: 100%;
    margin-bottom: 0.35rem;
  }

  body.page-portal.page-domains #tableDomainsList_wrapper .dataTables_filter input {
    width: 100% !important;
    min-width: 0 !important;
  }

  /* Support PIN */
  body.page-portal.page-support .gen3-support-pin-toggle,
  body.page-portal .gen3-support-pin-toggle {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    touch-action: manipulation;
  }

  body.page-portal.page-support .gen3-support-pin-value {
    font-size: clamp(1.25rem, 5vw, 1.75rem);
    letter-spacing: 0.18em;
    word-break: break-all;
  }

  body.page-portal.page-support .gen3-support-pin-actions .gen3-btn {
    width: 100%;
    min-height: 44px;
  }

  /* Email */
  body.page-portal.page-email .gen3-email-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  body.page-portal.page-email .gen3-email-domains {
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
  }

  body.page-portal.page-email .gen3-email-card {
    flex-direction: column;
    align-items: flex-start;
  }

  body.page-portal.page-email .gen3-email-search-wrap {
    width: 100%;
  }

  /* Forms / cards */
  body.page-portal .card-body {
    padding: 1rem;
  }

  body.page-portal .card .form-group.text-center .btn {
    display: block;
    width: 100%;
    margin-bottom: 0.5rem;
  }

  body.page-portal .card .form-group.text-center .btn + .btn {
    margin-left: 0;
  }
}

/* ===== ≤575px ===== */
@media (max-width: 575.98px) {
  body.page-portal .gen3-dash-stats,
  body.page-portal .gen3-billing-stats {
    grid-template-columns: 1fr;
  }

  body.page-portal .gen3-portal-container {
    padding-left: 0.85rem !important;
    padding-right: 0.85rem !important;
  }

  .gen3-store-ia .gen3-ia-hero {
    padding: 1.35rem 1rem;
    margin-bottom: 1.75rem;
    border-radius: 14px;
  }

  .gen3-store-ia .gen3-ia-hero h1 {
    font-size: 1.35rem;
  }

  .gen3-store-ia .gen3-ia-lead {
    font-size: 0.9375rem;
  }

  .gen3-store-ia .gen3-ia-pills {
    gap: 0.45rem;
  }

  .gen3-store-ia .gen3-ia-pills span {
    width: 100%;
    justify-content: flex-start;
  }

  .gen3-store-ia .gen3-ia-openclaw-main {
    flex-direction: column;
  }

  .gen3-store-ia .gen3-ia-feature-list--inline {
    flex-direction: column;
    gap: 0.4rem;
  }

  .gen3-store-ia .gen3-ia-plan .gen3-ia-btn {
    width: 100%;
  }

  .gen3-store-ia .gen3-ia-trust {
    padding: 1rem;
  }
}


/* Support PIN FAB (mobile fallback) */
@media (max-width: 991.98px) {
  body.page-portal .gen3-support-pin-fab {
    position: fixed;
    right: 0.95rem;
    bottom: 0.95rem;
    z-index: 1105;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    height: 42px;
    padding: 0 0.85rem;
    border: 1px solid rgba(74, 222, 128, 0.45);
    border-radius: 999px;
    background: #0b1a15;
    color: #eef3f0;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
    touch-action: manipulation;
  }

  body.page-portal .gen3-support-pin-fab i {
    font-size: 0.85rem;
  }

  body.page-portal .gen3-support-pin-fab:hover,
  body.page-portal .gen3-support-pin-fab:focus {
    color: #ffffff;
    background: #10251d;
    text-decoration: none;
  }
}

