/* Shared mobile behavior for the authenticated client and admin surfaces only. */
@media (max-width: 800px) {
  body.admin-page .admin-toolbox {
    display: flex;
    width: calc(100% - 20px);
    max-width: 1440px;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 8px;
    margin: 10px auto 0;
    padding: 0;
  }

  body.admin-page .admin-toolbox .admin-global-search {
    order: -1;
    flex: 0 0 100%;
    min-width: 0;
  }

  body.admin-page .admin-toolbox .admin-global-search input { min-width: 0; }
  body.admin-page .admin-toolbox .admin-global-search kbd { display: none; }

  /* These controls were previously display:none below 800px. */
  body.admin-page .admin-toolbox .admin-tool-menu {
    display: block;
    position: static;
    min-width: 0;
  }

  body.admin-page .admin-toolbox .admin-tool-menu > summary {
    min-height: 44px;
    height: 44px;
    padding: 0 10px;
    font-size: 12px;
  }

  body.admin-page .admin-toolbox .admin-tool-menu > summary span,
  body.admin-page .admin-toolbox .admin-tool-menu > summary b { font-size: inherit; }

  body.admin-page .admin-toolbox .admin-tool-popover {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    left: 0;
    width: auto;
    max-height: min(68dvh, 560px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  body.admin-page .admin-toolbox .admin-dashboard-return {
    order: 10;
    min-height: 44px;
    margin-left: auto;
  }

  body.admin-page .admin-toolbox :is(.admin-live-chat-shortcut, .admin-analytics-shortcut) {
    min-height: 44px;
  }

  body:is(.admin-page, .dashboard-page, .portal-service-page) > main.container,
  body:is(.admin-page, .dashboard-page, .portal-service-page) > main.container > * {
    min-width: 0;
  }

  body.admin-page :is(.admin-table-container, .admin-services-page .admin-table-container,
    .ops-table-wrap, .analytics-table-wrap, .rbac-table-wrap, .discount-table-wrap,
    .campaign-table, .billing-mail__table-wrap, .affiliate-table-wrap, .table-responsive),
  body:is(.dashboard-page, .portal-service-page) .table-responsive {
    max-width: 100%;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }

  body.admin-page :is(.billing-admin__heading, .admin-user-heading, .admin-create-user__heading,
    .ops-section-title, .admin-utility-hero, .provisioning-hero, .job-health-hero) {
    min-width: 0;
  }

  body.admin-page :is(.billing-admin__heading, .admin-user-heading, .admin-create-user__heading,
    .provisioning-hero, .job-health-hero) > :first-child,
  body:is(.dashboard-page, .portal-service-page) :is(.portal-ticket-thread__header, .ticket-center__hero) > :first-child {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  body:is(.admin-page, .dashboard-page, .portal-service-page) :is(input:not([type='checkbox']):not([type='radio']), select, textarea) {
    font-size: 16px !important;
  }

  body:is(.admin-page, .dashboard-page, .portal-service-page) :is(button, a, summary, select) {
    touch-action: manipulation;
  }
}

@media (max-width: 600px) {
  body.admin-page .billing-admin { width: calc(100% - 20px); }
  body.admin-page :is(.year-report-shell, .ops-records, .revenue-breakdown-shell) { padding: 14px; }
  body.admin-page .admin-page-links { min-width: 0; flex-wrap: wrap; }
  body.admin-page .admin-page-links a { min-height: 44px; }
  body.admin-page .admin-search-hero { grid-template-columns: minmax(0, 1fr); }
  body.admin-page .admin-search-hero button { min-height: 44px; }
  body.admin-page .billing-ops-actions button { min-height: 44px !important; }
  body.admin-page .rbac-assignment-form select { min-width: 0; }

  body.dashboard-page #newTicketModal .modal-dialog,
  body.dashboard-page #changePasswordModal .modal-dialog {
    max-width: calc(100vw - 16px);
    margin: 8px auto;
  }

  body.dashboard-page #newTicketModal .modal-content,
  body.dashboard-page #changePasswordModal .modal-content {
    max-height: calc(100dvh - 16px);
    overflow: hidden;
  }

  body.dashboard-page #newTicketModal .modal-body,
  body.dashboard-page #changePasswordModal .modal-body {
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  body.dashboard-page #newTicketModal .form-control,
  body.dashboard-page #changePasswordModal .form-control { font-size: 16px !important; }

  body.dashboard-page .portal-ticket-drawer.is-expanded { height: 100dvh; }
  body.dashboard-page .portal-ticket-thread__reply textarea { min-width: 0; font-size: 16px; }
  body.dashboard-page .portal-ticket-message { width: min(92%, 780px); }
  body.dashboard-page .ticket-center__hero > div:last-child { flex-wrap: wrap; width: 100%; }
  body.dashboard-page .ticket-center__reply { grid-template-columns: minmax(0, 1fr); }
  body.dashboard-page .ticket-center__reply button { min-height: 44px; }

  body.admin-page .live-support__chat-head { align-items: flex-start; flex-wrap: wrap; }
  body.admin-page .live-support__chat-actions { flex-wrap: wrap; }
  body.admin-page .live-support__reply { grid-template-columns: minmax(0, 1fr); }
  body.admin-page .live-support__reply button { min-height: 44px; }
}

@media (max-width: 380px) {
  body.admin-page .admin-toolbox :is(.admin-live-chat-shortcut, .admin-analytics-shortcut) {
    flex: 1 1 calc(50% - 4px);
    font-size: 11px;
  }

  body.admin-page .admin-toolbox .admin-tool-menu { flex: 1 1 auto; }
  body.admin-page .admin-toolbox .admin-tool-menu > summary { justify-content: center; }
  body.admin-page .admin-toolbox .admin-dashboard-return { flex: 1 1 100%; }
}
