.staff-page main { width: min(100%, 1100px); padding: clamp(.75rem, 4vw, 2rem); }
.staff-page { overflow-wrap: anywhere; }
.staff-page .staff-login { width: min(calc(100% - 1rem), 480px); margin: min(2rem, 4vw) auto; padding: clamp(.75rem, 4vw, 1.5rem); }
.staff-login h1 { font-size: clamp(1.5rem, 4vw, 2.5rem); }
.staff-page h1 { font-size: clamp(1.35rem, 4vw, 2.5rem); }
.staff-page h2 { font-size: clamp(1.15rem, 3vw, 1.65rem); }
.staff-page .card { padding: clamp(.75rem, 4vw, 1.5rem); }
.staff-login label { margin-top: 1.2rem; }
.staff-login .button { width: 100%; margin-top: 1rem; }
.staff-login .small { margin-top: 1rem; }
.staff-login .recovery-link { display: flex; margin-left: auto; }
.staff-login .recovery-back { margin-top: .75rem; }
.staff-login .recovery-icon { display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; margin-bottom: 1rem; border-radius: 16px; background: var(--accent-soft); color: var(--accent); font-size: 1.7rem; }
.staff-login .recovery-recipient { padding: .75rem 1rem; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); font-weight: 600; }
.staff-login .recovery-steps { padding-left: 1.4rem; font-size: .9rem; }
.staff-login .recovery-steps li + li { margin-top: .65rem; }
.staff-login #auth-status { margin-top: 1rem; }
.staff-language { display: flex; flex-wrap: wrap; gap: .25rem; width: fit-content; max-width: 100%; padding: .25rem; margin-bottom: 1.5rem; border: 1px solid var(--line); border-radius: 16px; background: var(--bg); }
.staff-language a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .5rem .85rem; border-radius: 12px; font-size: .8rem; font-weight: 600; text-decoration: none; }
.staff-language a[aria-current="true"] { background: var(--accent); color: white; }
.staff-language a:hover:not([aria-current="true"]) { background: var(--accent-soft); }
.staff-page .page-heading > div { min-width: 0; }
.staff-gym-list { list-style: none; padding: 0; margin: 0; }
.staff-gym-list a { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; min-height: 48px; padding: .8rem 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.staff-next { margin-top: 1.5rem; }
.profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.profile-grid > .card { min-width: 0; }
.profile-grid .muted { font-size: .82rem; }
.profile-wide { grid-column: 1 / -1; }
.profile-facts { margin: 0; }
.profile-facts > div + div { margin-top: 1rem; }
.profile-facts dt { font-size: .8rem; color: var(--muted); margin-bottom: .35rem; }
.profile-facts dd { margin: 0; font-size: .9rem; font-weight: 600; }
.profile-grid .staff-language { margin-bottom: 0; }
.profile-session { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1.25rem; }
.profile-session > div { flex: 1 1 32rem; min-width: 0; }
.profile-session p { margin-bottom: 0; }
.profile-session form { margin: 0; }
.draft-page main { max-width: 850px; padding: clamp(.75rem, 4vw, 2rem); }
.draft-page .card { padding: clamp(.75rem, 4vw, 1.5rem); }
.draft-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.draft-fields > div { min-width: 0; }
.draft-wide { grid-column: 1 / -1; }
.draft-fields select, .draft-fields input { max-width: 100%; }
.draft-actions { margin: 1rem 0; flex-wrap: wrap; }
.draft-history { margin-top: 1.5rem; }
.draft-changes > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 1rem; margin: .5rem 0; }
.draft-changes dd { margin: 0; }
.staff-navigation { margin-bottom: 1.5rem; }
.archive-confirm { display: flex; align-items: start; gap: .75rem; min-height: 48px; margin: 1.5rem 0; }
.archive-confirm input { flex: 0 0 24px; width: 24px; min-height: 44px; }
.staff-edit { display: flex; flex-wrap: wrap; align-items: end; gap: 1rem; }
.staff-edit > div { flex: 1 1 12rem; min-width: 0; }
.staff-edit input, .staff-edit select { max-width: 100%; }
.staff-verification-help { margin: 1.25rem 0; }
.staff-verification-help summary { min-height: 44px; cursor: pointer; padding: .5rem 0; }
.staff-edit > button { flex: 0 1 auto; }
.staff-entry { padding: 1.25rem 0; border-top: 1px solid var(--line); }
.staff-entry h3 { overflow-wrap: anywhere; }
.staff-page .inline-controls form { max-width: 100%; }
.inventory-page { overflow-wrap: anywhere; }
.inventory-language { max-width: 100%; }
.inventory-language select { width: auto; }
.inventory-counts { margin-bottom: 0; }
.inventory-counts > div { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); padding: .5rem 0; }
.inventory-counts dd { margin: 0; font-variant-numeric: tabular-nums; }
.climb-type-fields { border: 0; padding: 0; margin: 1rem 0; }
.climb-type-fields label { display: flex; align-items: center; gap: .75rem; min-height: 44px; font-size: 1rem; }
.climb-type-fields input { width: 1.25rem; min-height: 1.25rem; height: 1.25rem; flex: 0 0 auto; }
.feedback-page { overflow-wrap: anywhere; }
.feedback-language { max-width: 100%; }
.feedback-language select { width: auto; }
.feedback-results { margin: 1.5rem 0 1rem; }
.reports-table { table-layout: fixed; white-space: normal; }
.reports-table th, .reports-table td { vertical-align: top; overflow-wrap: anywhere; }
.reports-table th:first-child { width: 30%; }
.reports-table th:nth-child(2) { width: 35%; }
.reports-table th:nth-child(3) { width: 20%; }
.reports-table th:nth-child(4) { width: 15%; }
.reports-issue strong { font-weight: 650; }
.reports-issue .feedback-excerpt { margin: .4rem 0 0; color: var(--muted); }
.reports-mobile-label { display: none; }
.feedback-excerpt, .feedback-message { white-space: pre-wrap; overflow-wrap: anywhere; }
.feedback-review label { margin-top: 1rem; }
.feedback-review .button { margin-top: 1rem; }
.feedback-review p { font-size: .85rem; }
.feedback-context { margin-bottom: 0; }
.feedback-context > div { display: flex; gap: 1rem; justify-content: space-between; }
.feedback-context dd { margin: 0; }
.report-photo { margin: 1rem 0 0; }
.report-photo a { display: block; }
.report-photo img { display: block; width: 100%; aspect-ratio: 4 / 3; max-height: 28rem; object-fit: contain; border: 1px solid var(--line); background: #f3f5f4; }
.report-photo figcaption { margin-top: .5rem; color: var(--muted); font-size: .8rem; }
.feedback-history { margin: 1.5rem 0; }
.feedback-events { padding: 0; margin: 0; list-style: none; }
.feedback-events li { border-top: 1px solid var(--line); padding: 1.25rem 0; }
.feedback-pagination { margin: 1rem 0; flex-wrap: wrap; }
@media (max-width: 800px) {
  .reports-table, .reports-table tbody { display: block; }
  .reports-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .reports-table tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .75rem; border-top: 1px solid var(--line); padding: 1rem 0; }
  .reports-table tbody th, .reports-table tbody td { display: block; width: auto; min-width: 0; padding: 0; border: 0; }
  .reports-context, .reports-issue { grid-column: 1 / -1; }
  .reports-mobile-label { display: block; font-size: .7rem; font-weight: 650; color: var(--muted); margin-bottom: .3rem; }
}
@media (max-width: 600px) {
  .profile-grid { grid-template-columns: 1fr; }
  .draft-fields { grid-template-columns: 1fr; }
  .draft-changes > div { display: block; margin: 1rem 0; }
  .draft-changes dt { font-weight: 600; }
  .draft-changes dd { margin-top: .25rem; }
  .staff-page .page-heading { flex-wrap: wrap; align-items: start; }
  .staff-edit > button { width: 100%; }
}
.photo-editor { max-width: 70rem; }
.photo-editor figure { margin: 0 0 1.5rem; }
.uploaded-photo { display: block; max-width: 100%; max-height: 36rem; object-fit: contain; }
#photo-form textarea { display: block; width: 100%; box-sizing: border-box; }
#photo-form input[type=file] { display: block; max-width: 100%; }
#photo-progress progress { max-width: 100%; }
