/*
 * Mobile responsive guardrails for the built EZ theme bundle.
 * Loaded after the app CSS so narrow screens keep readable, non-overlapping UI.
 */
:root {
  --ez-mobile-nav-height: 72px;
  --ez-mobile-nav-gap: 14px;
  --ez-mobile-safe-bottom: max(env(safe-area-inset-bottom, 0px), 0px);
  --ez-mobile-bottom-space: calc(var(--ez-mobile-nav-height) + var(--ez-mobile-nav-gap) + var(--ez-mobile-safe-bottom));
}

html,
body,
#app {
  min-width: 0;
}

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

.dashboard-card,
.app-card,
.stats-card,
.order-card,
.period-card,
.platform-option,
.import-action,
.deposit-notice,
.notice-item {
  min-width: 0;
}

.card-title,
.stats-value,
.stats-label,
.info-value,
.order-number .value,
.trade-no,
.platform-title,
.platform-option span,
.deposit-notice span,
.welcome-card p,
.card-body p {
  overflow-wrap: anywhere;
  word-break: break-word;
}

@media (max-width: 768px) {
  body {
    padding-bottom: var(--ez-mobile-safe-bottom);
  }

  .content-area {
    padding-left: clamp(12px, 4vw, 18px) !important;
    padding-right: clamp(12px, 4vw, 18px) !important;
    padding-bottom: calc(var(--ez-mobile-bottom-space) + 18px) !important;
  }

  .dashboard-container,
  .more-container,
  .orders-container,
  .deposit-container {
    padding-left: clamp(12px, 4vw, 16px) !important;
    padding-right: clamp(12px, 4vw, 16px) !important;
    padding-bottom: calc(var(--ez-mobile-bottom-space) + 18px) !important;
  }

  .slide-tabs-container {
    bottom: calc(var(--ez-mobile-safe-bottom) + 10px) !important;
    left: clamp(8px, 3vw, 14px) !important;
    right: clamp(8px, 3vw, 14px) !important;
    width: auto !important;
    max-width: none !important;
    transform: none !important;
    z-index: 200 !important;
  }

  .slide-tabs-container .slide-tabs-wrapper {
    width: 100% !important;
    overflow: hidden !important;
  }

  .slide-tabs-container .slide-tabs-nav {
    display: grid !important;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    align-items: stretch;
    justify-content: stretch !important;
    gap: 2px;
  }

  .slide-tabs-container .slide-tabs-nav .nav-item {
    min-width: 0 !important;
    height: 58px !important;
    padding: 5px 4px !important;
    overflow: hidden;
  }

  .slide-tabs-container .slide-tabs-nav .nav-text {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1.2;
  }

  .customer-service-icon,
  #crisp-chatbox > div,
  .crisp-client .cc-kv6t,
  .crisp-client .cc-1xry,
  .crisp-client .cc-unoo {
    right: 14px !important;
    bottom: calc(var(--ez-mobile-bottom-space) + 14px) !important;
    z-index: 180 !important;
  }

  .back-to-top {
    right: 14px !important;
    bottom: calc(var(--ez-mobile-bottom-space) + 70px) !important;
  }

  .site-logo {
    left: 12px !important;
    right: auto !important;
    max-width: calc(100vw - 214px) !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .top-toolbar,
  .auth-toolbar .top-toolbar {
    right: 10px !important;
    left: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: clamp(5px, 1.6vw, 8px) !important;
    width: auto !important;
    max-width: calc(100vw - 20px) !important;
    min-width: 0 !important;
    flex-wrap: nowrap !important;
    overflow: visible !important;
  }

  .top-toolbar > *,
  .auth-toolbar .top-toolbar > * {
    flex: 0 0 auto !important;
    min-width: 0 !important;
  }

  .top-toolbar .theme-toggle,
  .top-toolbar .language-btn,
  .top-toolbar .avatar-wrapper,
  .auth-toolbar .top-toolbar .theme-toggle,
  .auth-toolbar .top-toolbar .language-btn,
  .auth-toolbar .top-toolbar .avatar-wrapper {
    width: clamp(36px, 10.8vw, 44px) !important;
    height: clamp(36px, 10.8vw, 44px) !important;
  }

  .top-toolbar .user-avatar-container,
  .auth-toolbar .top-toolbar .user-avatar-container,
  .top-toolbar .language-selector,
  .auth-toolbar .top-toolbar .language-selector {
    width: clamp(36px, 10.8vw, 44px) !important;
    height: clamp(36px, 10.8vw, 44px) !important;
  }

  .top-toolbar button,
  .top-toolbar a,
  .auth-toolbar .top-toolbar button,
  .auth-toolbar .top-toolbar a {
    flex-shrink: 0 !important;
  }

  .dashboard-card .card-header,
  .app-card__header,
  .order-card-header,
  .deposit-container .dashboard-card .card-header,
  .more-container .dashboard-card .card-header {
    align-items: flex-start !important;
    gap: 10px;
    min-width: 0;
  }

  .dashboard-card .card-header .card-title,
  .app-card__title,
  .deposit-container .dashboard-card .card-header .card-title,
  .more-container .dashboard-card .card-header .card-title {
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.35;
  }

  .dashboard-card .card-header .card-actions {
    flex: 0 1 auto;
    flex-wrap: wrap;
    justify-content: flex-end;
    min-width: 0;
  }

  .dashboard-container .stats-grid .stats-card,
  .more-container .stats-grid .stats-card {
    align-items: flex-start !important;
    gap: 12px !important;
    padding: 14px !important;
  }

  .dashboard-container .stats-grid .stats-card .stats-icon,
  .more-container .stats-grid .stats-card .stats-icon {
    flex: 0 0 44px !important;
    width: 44px !important;
    height: 44px !important;
    margin-right: 0 !important;
  }

  .dashboard-container .stats-grid .stats-card .stats-info,
  .more-container .stats-grid .stats-card .stats-info {
    min-width: 0;
  }

  .dashboard-container .stats-grid .stats-card .stats-info .stats-value,
  .more-container .stats-grid .stats-card .stats-info .stats-value {
    font-size: 16px !important;
    line-height: 1.35;
    white-space: normal !important;
  }

  .dashboard-container .subscription-card .subscription-info,
  .subscription-card .subscription-info {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .dashboard-container .subscription-card .subscription-info .info-item,
  .subscription-card .info-item {
    min-width: 0;
    padding-bottom: 10px !important;
  }

  .dashboard-container .subscription-card .subscription-actions,
  .subscription-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .dashboard-container .subscription-card .subscription-actions button,
  .subscription-actions button,
  .btn-outline,
  .btn-primary,
  .action-button {
    min-width: 0 !important;
    max-width: 100%;
    white-space: normal;
    line-height: 1.25;
  }

  .import-action {
    align-items: flex-start !important;
  }

  .import-content,
  .import-title,
  .import-desc {
    min-width: 0;
  }

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

  .platform-selector .platform-button {
    justify-content: center;
    width: 100%;
    min-width: 0;
    padding: 8px 10px !important;
  }

  .platform-selector .platform-button span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .platform-options {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .platform-option {
    min-width: 0 !important;
    width: 100%;
    justify-content: flex-start !important;
  }

  .platform-option .client-icon {
    flex: 0 0 auto;
  }

  .platform-option span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .download-options {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  .download-option {
    min-width: 0;
    padding: 12px 8px !important;
  }

  .download-option .option-name {
    max-width: 100%;
    text-align: center;
    overflow-wrap: anywhere;
  }

  .orders-container {
    overflow-x: hidden;
  }

  .order-table-container {
    max-width: 100%;
    overflow-x: auto !important;
  }

  .order-table {
    min-width: 720px;
    table-layout: auto !important;
  }

  .order-card-header,
  .order-card-body .info-row,
  .order-card-footer,
  .modal-footer {
    gap: 10px;
  }

  .order-card-header {
    flex-wrap: wrap;
  }

  .order-card-header .order-number {
    flex: 1 1 180px;
    min-width: 0;
  }

  .order-card-body .info-row {
    display: grid !important;
    grid-template-columns: minmax(92px, 38%) minmax(0, 1fr);
    align-items: start;
  }

  .order-card-body .info-row .label,
  .order-card-body .info-row .value {
    min-width: 0;
  }

  .order-card-body .info-row .value {
    text-align: right;
    overflow-wrap: anywhere;
  }

  .order-card-footer {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .order-card-footer .action-button,
  .order-table .actions .action-button {
    justify-content: center;
    min-width: 0;
  }

  .pagination-container {
    justify-content: center !important;
  }

  .pagination {
    max-width: 100%;
  }

  .pagination .page-info {
    margin: 0 .5rem !important;
    white-space: nowrap;
  }

  .modal-overlay {
    padding: 12px;
  }

  .modal-content {
    width: min(100%, 480px) !important;
    max-height: calc(100dvh - 24px);
  }

  .modal-body {
    overflow: auto;
  }

  .modal-body .trade-no-info {
    align-items: flex-start !important;
    overflow-wrap: anywhere;
  }

  .modal-footer {
    flex-direction: column-reverse;
  }

  .modal-footer button {
    width: 100%;
  }

  .deposit-container .balance-card .card-body {
    padding: 18px 14px !important;
  }

  .deposit-container .balance-card .balance-display .balance-value {
    font-size: clamp(2rem, 12vw, 2.6rem) !important;
    line-height: 1.1;
  }

  .deposit-container .balance-card .balance-setting .setting-item {
    align-items: flex-start !important;
    gap: 12px;
  }

  .deposit-container .balance-card .balance-setting .setting-item .setting-info {
    min-width: 0;
    margin-right: 0 !important;
  }

  .deposit-container .deposit-card .deposit-notice {
    align-items: flex-start !important;
    line-height: 1.55;
  }

  .deposit-container .deposit-card .deposit-notice .notice-icon {
    flex: 0 0 auto;
    margin-top: 2px;
  }

  .deposit-container .deposit-card .amount-selection .period-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .deposit-container .deposit-card .amount-selection .period-cards .period-card .period-card-inner {
    padding: 13px 8px !important;
  }

  .deposit-container .deposit-card .amount-selection .period-cards .period-card .period-price {
    max-width: 100%;
    flex-wrap: wrap;
  }

  .deposit-container .deposit-card .amount-selection .period-cards .period-card .period-price .amount {
    font-size: clamp(16px, 5vw, 20px) !important;
    overflow-wrap: anywhere;
  }

  .deposit-container .deposit-card .custom-amount .input-container,
  .deposit-container .deposit-card .deposit-actions .btn-order,
  .btn-order-skeleton {
    width: 100% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 420px) {
  :root {
    --ez-mobile-nav-height: 64px;
  }

  .slide-tabs-container .slide-tabs-nav .nav-item {
    height: 54px !important;
    font-size: 10px !important;
  }

  .slide-tabs-container .slide-tabs-nav .nav-item .nav-icon svg {
    width: 19px !important;
    height: 19px !important;
  }

  .site-logo {
    max-width: calc(100vw - 184px) !important;
    font-size: 16px !important;
    padding: 5px 8px !important;
  }

  .site-logo .site-logo-img {
    width: 20px !important;
    height: 20px !important;
  }

  .top-toolbar,
  .auth-toolbar .top-toolbar {
    max-width: calc(100vw - 14px) !important;
    gap: 5px !important;
  }

  .top-toolbar .theme-toggle,
  .top-toolbar .language-btn,
  .top-toolbar .avatar-wrapper,
  .auth-toolbar .top-toolbar .theme-toggle,
  .auth-toolbar .top-toolbar .language-btn,
  .auth-toolbar .top-toolbar .avatar-wrapper,
  .top-toolbar .user-avatar-container,
  .auth-toolbar .top-toolbar .user-avatar-container,
  .top-toolbar .language-selector,
  .auth-toolbar .top-toolbar .language-selector {
    width: 36px !important;
    height: 36px !important;
  }

  .platform-selector,
  .platform-options,
  .download-options,
  .deposit-container .deposit-card .amount-selection .period-cards {
    grid-template-columns: 1fr !important;
  }

  .order-card-body .info-row {
    grid-template-columns: 1fr !important;
  }

  .order-card-body .info-row .value {
    text-align: left;
  }

  .order-card-footer {
    grid-template-columns: 1fr !important;
  }
}
