/* Shared responsive guardrails. Page-specific selectors keep the legacy admin
   dashboard and the WellO account surfaces independent. */
html,
body {
  max-width: 100%;
}

body {
  overflow-x: clip;
}

main,
section,
article,
form,
fieldset,
label,
input,
select,
textarea {
  min-width: 0;
}

/* Account access */
body:is([data-page="login"], [data-page="register"], [data-page="forgot-password"]) .account-actions a {
  min-height: 44px;
}

/* Athlete profile */
body[data-page="profile"] main,
body[data-page="profile"] .card,
body[data-page="profile"] .profile-hero > *,
body[data-page="profile"] .section-head > *,
body[data-page="profile"] .account-controls > *,
body[data-page="profile"] .people-heading > * {
  min-width: 0;
}

body[data-page="profile"] input,
body[data-page="profile"] select,
body[data-page="profile"] button {
  min-height: 44px;
  max-width: 100%;
}

body[data-page="profile"] .topbar-actions a {
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid #87aaa0;
  border-radius: 11px;
}

body[data-page="profile"] .profile-hero p,
body[data-page="profile"] .person-card,
body[data-page="profile"] .public-data-details {
  overflow-wrap: anywhere;
}

body[data-page="profile"] .people-heading input {
  width: 100%;
}

body[data-page="profile"] .person-actions button {
  min-height: 44px;
}

/* Coach dashboard */
body[data-page="coach"] .dashboard,
body[data-page="coach"] .panel,
body[data-page="coach"] .subpanel,
body[data-page="coach"] .hero > *,
body[data-page="coach"] .panel-head > *,
body[data-page="coach"] .athlete-grid > *,
body[data-page="coach"] .nutrition-plan,
body[data-page="coach"] .meal-plan-editor,
body[data-page="coach"] .supplement-plan-editor,
body[data-page="coach"] .custom-food-plan-editor,
body[data-page="coach"] .coach-profile-form,
body[data-page="coach"] .profile-fields > *,
body[data-page="coach"] .profile-media-editor,
body[data-page="coach"] .public-profile-preview {
  min-width: 0;
}

body[data-page="coach"] input,
body[data-page="coach"] select,
body[data-page="coach"] button {
  min-height: 44px;
  max-width: 100%;
}

body[data-page="coach"] textarea {
  max-width: 100%;
}

body[data-page="coach"] .topbar-actions a,
body[data-page="coach"] .network-actions button,
body[data-page="coach"] .profile-availability label {
  min-height: 44px;
}

body[data-page="coach"] .topbar-actions a {
  padding-block: 10px;
}

body[data-page="coach"] .table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

body[data-page="coach"] .panel-head p,
body[data-page="coach"] .identity small,
body[data-page="coach"] .network-identity small {
  overflow-wrap: anywhere;
}

body[data-page="coach"] :is(.meal-plan-editor, .supplement-plan-editor, .custom-food-plan-editor) > div:last-child {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

body[data-page="coach"] .supplement-plan-editor {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #dce8e3;
}

body[data-page="coach"] .supplement-plan-editor h4 {
  margin: 0;
}

body[data-page="coach"] .supplement-plan-editor p {
  margin: 4px 0;
  color: #71867f;
  font-size: 12px;
}

body[data-page="coach"] .supplement-plan-row {
  display: grid;
  grid-template-columns: 1.3fr .65fr .75fr .8fr 1fr 1.2fr auto;
  align-items: center;
  gap: 7px;
  min-width: 820px;
  margin-top: 9px;
}

body[data-page="coach"] :is(.meal-plan-row, .supplement-plan-row, .custom-food-plan-row) input,
body[data-page="coach"] :is(.meal-plan-row, .supplement-plan-row) select {
  width: 100%;
  min-height: 44px;
}

/* WellO operations dashboard */
body[data-page="users"] input,
body[data-page="users"] select,
body[data-page="users"] textarea,
body[data-page="users"] button,
body[data-page="users"] .back {
  min-height: 44px;
  max-width: 100%;
}

body[data-page="users"] .table-wrap,
body[data-page="users"] .workout-summary,
body[data-page="users"] .data-card {
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

body[data-page="users"] #createForm {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  align-items: end;
  gap: 12px;
}

body[data-page="users"] #createForm > * {
  min-width: 0;
}

body[data-page="users"] .detail-head p,
body[data-page="users"] .user small,
body[data-page="users"] .relationship-top small {
  overflow-wrap: anywhere;
}

/* Legacy index kept responsive even though production no longer routes to it. */
body[data-page="index"] .icon-button,
body[data-page="index"] .profile-button,
body[data-page="index"] .button,
body[data-page="index"] .modal-close,
body[data-page="index"] .row-action,
body[data-page="index"] .notice button,
body[data-page="index"] .filter-group button {
  min-width: 45px;
  min-height: 45px;
}

body[data-page="index"] .modal {
  max-width: 100%;
  max-height: calc(100dvh - 20px);
}

body[data-page="index"] .modal-backdrop {
  padding: 10px;
}

@media (max-width: 700px) {
  body[data-page="profile"] .topbar > div:not(.topbar-actions) {
    min-width: 0;
  }

  body[data-page="coach"] .panel-head {
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
  }

  body[data-page="coach"] .panel-head > button,
  body[data-page="coach"] .section-head > button {
    width: 100%;
  }
}

@media (max-width: 560px) {
  body[data-page="profile"] main {
    margin-top: 18px;
    padding-inline: 12px;
  }

  body[data-page="profile"] .card {
    padding: 16px;
  }

  body[data-page="profile"] .topbar {
    padding-inline: 12px;
  }

  body[data-page="profile"] .topbar > .topbar-actions {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  body[data-page="profile"] .section-head {
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
  }

  body[data-page="profile"] .section-head > button,
  body[data-page="profile"] .account-control-actions button {
    width: 100%;
  }

  body[data-page="profile"] .account-control-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  body[data-page="profile"] .metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body[data-page="profile"] .public-profile-actions {
    grid-template-columns: 1fr;
  }

  body[data-page="coach"] .panel {
    padding: 15px;
  }

  body[data-page="coach"] .hero {
    padding: 18px;
  }

  body[data-page="coach"] .routine-add-row {
    align-items: stretch;
    flex-direction: column;
  }

  body[data-page="coach"] .routine-add-row > * {
    width: 100%;
  }

  body[data-page="coach"] .routine-exercise-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  body[data-page="coach"] .routine-exercise-row select,
  body[data-page="coach"] .routine-exercise-row button {
    grid-column: 1 / -1;
    width: 100%;
  }

  body[data-page="coach"] .nutrition-fields,
  body[data-page="coach"] .earnings-overview {
    grid-template-columns: 1fr;
  }

  body[data-page="coach"] .income-chart {
    overflow-x: auto;
  }

  body[data-page="coach"] .athlete-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body[data-page="users"] .toolbar,
  body[data-page="users"] .detail-head {
    align-items: stretch;
    flex-direction: column;
  }

  body[data-page="users"] #createForm {
    grid-template-columns: 1fr;
  }

  body[data-page="index"] .mobile-nav button {
    flex: 1 1 0;
    min-width: 44px;
    min-height: 52px;
  }

  body[data-page="index"] .modal {
    padding: 16px;
    border-radius: 18px;
  }

  body[data-page="index"] .modal-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 380px) {
  body[data-page="coach"] .topbar {
    padding-inline: 12px;
  }

  body[data-page="coach"] .topbar-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  body[data-page="coach"] .topbar-actions a,
  body[data-page="coach"] .topbar-actions button {
    padding-inline: 6px;
    font-size: 11px;
  }
}
