html {
  -webkit-text-size-adjust: 100%;
}

body {
  max-width: 100vw;
}

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

* {
  box-sizing: border-box;
}

table {
  width: 100%;
}

.content-area,
.main-content-area,
.content-scroll-container,
.center-layout,
.layout,
.content,
.main,
.panel,
.card,
.client-summary-card-fidel,
.hist-card,
.billing-card,
.fact-card {
  min-width: 0;
}

.login-container,
.card {
  max-width: calc(100vw - 32px);
}

.hist-table-wrap,
.table-wrap,
.table-responsive,
.requests-table-wrap,
.billing-table-wrap,
.history-table-wrapper,
.popup-table-wrapper,
.na-table-wrapper,
.plans-table-wrap,
.content-scroll-container {
  overflow-x: auto;
}

.breadcrumb a,
.breadcrumb-nav a {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

.breadcrumb a:hover,
.breadcrumb-nav a:hover {
  color: #00a9e0;
  text-decoration: underline;
}

.breadcrumb a.active,
.breadcrumb-nav a.active {
  color: #00a9e0;
  font-weight: 700;
}

@media (max-width: 1180px) {
  .app-container,
  .container,
  .layout {
    grid-template-columns: 200px minmax(0, 1fr) 190px !important;
  }

  .main-layout {
    grid-template-columns: 132px minmax(0, 1fr) 132px !important;
  }

  .card-body-grid-fidel,
  .summary-grid,
  .data-grid,
  .fact-grid,
  .invoice-grid,
  .receipt-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .cards {
    flex-wrap: wrap;
  }

  .header-actions-icons,
  .top-icons {
    gap: 8px !important;
  }
}

@media (max-width: 900px) {
  html,
  body {
    min-height: 100%;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  .app,
  .app-container,
  .container,
  .layout,
  .main-layout {
    display: block !important;
    height: auto !important;
    min-height: 100vh;
    overflow: visible !important;
  }

  .sidebar-left,
  .sidebar,
  .left-panel,
  .right-menu,
  .sidebar-right,
  .right-panel {
    width: 100% !important;
    max-width: none !important;
    border: 0 !important;
    border-bottom: 1px solid #dce1e5 !important;
    padding: 12px !important;
  }

  .sidebar-left,
  .sidebar,
  .left-panel {
    max-height: none !important;
    overflow: visible !important;
  }

  .right-menu,
  .sidebar-right,
  .right-panel {
    display: block !important;
    background: #062237;
  }

  .center-layout,
  .content,
  .content-area,
  .main-content-area {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding: 14px !important;
  }

  .content-scroll-container {
    height: auto !important;
    overflow: visible !important;
    padding-right: 0 !important;
  }

  .topbar,
  .main-header,
  .header {
    height: auto !important;
    min-height: 48px;
    flex-wrap: wrap;
    gap: 8px !important;
    padding: 8px 12px !important;
  }

  .topbar-left,
  .topbar-right,
  .header-left,
  .header-right,
  .right {
    flex-wrap: wrap;
    gap: 8px !important;
  }

  .breadcrumb,
  .breadcrumb-nav {
    white-space: normal !important;
  }

  .client-profile-block,
  .left-header,
  .billing-tiles,
  .status-block,
  .plan-block {
    max-width: 100%;
  }

  .card-body-grid-fidel,
  .summary-grid,
  .data-grid,
  .fact-grid,
  .invoice-grid,
  .receipt-grid,
  .detail-grid {
    grid-template-columns: 1fr !important;
  }

  .grid-section {
    border-right: 0 !important;
    border-bottom: 1px solid #eee;
    padding-right: 0 !important;
    padding-bottom: 10px;
  }

  .cards {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 180px));
    justify-content: center;
    gap: 12px !important;
  }

  .cards .card {
    width: auto !important;
  }

  .modal-box {
    width: min(94vw, 420px) !important;
  }

  .search {
    width: min(540px, calc(100vw - 28px)) !important;
  }

  .tabs,
  .modules,
  .solicitud-actions {
    flex-wrap: wrap;
  }

  .hist-modal-content,
  .modal-content,
  .detail-modal-content,
  .mt-modal-panel,
  .detail-modal,
  .na-modal,
  .mt-plans-modal,
  .mt-attention-modal,
  .mt-argumentario-modal,
  .mt-no-aplica-modal {
    width: min(96vw, 980px) !important;
    max-height: 88vh !important;
    overflow: auto !important;
  }

  .service-card,
  .module-card,
  .big-action,
  .menu-item,
  .action-btn,
  .offer-btn,
  .argumentario-btn,
  .choice-btn {
    min-width: 0 !important;
  }

  .cards-row,
  .modules-grid,
  .bottom-actions,
  .calculator-tabs,
  .calc-offer-row,
  .tools-add-row {
    flex-wrap: wrap !important;
  }

  .history-table,
  .na-history-table,
  .mini-table,
  .log-table,
  .plans-table {
    min-width: 760px;
  }

  .mt-popup-overlay,
  .mt-modal-overlay,
  .no-aplica-overlay {
    padding: 12px !important;
    align-items: flex-start !important;
    overflow: auto !important;
  }
}

@media (max-width: 560px) {
  body {
    font-size: 12px;
  }

  .brand-logo {
    width: 96px !important;
    height: auto !important;
  }

  .btn-close,
  .btn-role,
  .btn-header,
  .badge {
    min-height: 30px;
    padding: 6px 10px !important;
  }

  .user-chip,
  .user,
  .agent-info-block {
    font-size: 10px !important;
    max-width: 100%;
  }

  .main {
    margin-top: 32px !important;
    padding: 0 12px;
  }

  .main h1,
  .page-title-center,
  .content h2 {
    max-width: 100%;
    font-size: 18px !important;
    line-height: 1.25;
    overflow-wrap: anywhere;
    white-space: normal !important;
  }

  .background {
    min-height: 100dvh !important;
    height: auto !important;
    padding: 20px 12px;
  }

  .background .card,
  .container .card {
    width: min(100%, 420px) !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 24px 16px !important;
  }

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

  .cards {
    grid-template-columns: 1fr !important;
  }

  .module {
    width: auto !important;
  }

  .tabs button,
  .btn-solicitud {
    width: 100% !important;
    max-width: 220px;
  }

  .no-aplica-overlay {
    align-items: center !important;
    padding: 12px !important;
  }

  .no-aplica-frame {
    width: 96vw !important;
    height: 82vh !important;
  }

  input,
  select,
  textarea,
  button {
    max-width: 100%;
  }

  .top-icons {
    display: none !important;
  }

  .right-menu,
  .right-panel {
    padding-bottom: 56px !important;
  }

  .calculator-contact,
  .tools-add-row,
  .flow-grid,
  .tenencia-head,
  .tenencia-stats,
  .tenencia-components,
  .detail-columns,
  .tool-adjust-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 700px) {
  .main h1,
  .page-title-center,
  .content h2 {
    max-width: calc(100vw - 28px);
    margin-left: auto;
    margin-right: auto;
    overflow-wrap: anywhere;
    white-space: normal !important;
  }

  .modules {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: calc(100vw - 24px);
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }

  .module {
    width: auto !important;
    min-width: 0;
  }
}
