/* Shared reading, keyboard and overflow rules for the three application shells. */
.account-label-short { display: none; }
[hidden] { display: none !important; }
:root { scroll-padding-top: 100px; }
:where(.user-v36, .staff-portal) :is(button, input, select, textarea) { font-family: inherit; }
:where(.user-v36, .staff-portal) :is(h1, h2, h3, p, dd, a, label, strong, small) { overflow-wrap: anywhere; }
:where(.user-v36, .staff-portal) :is(img, video, iframe) { max-width: 100%; }
:where(.user-v36, .staff-portal) :is(button, a, summary, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid #2f6257; outline-offset: 3px; box-shadow: none;
}
:where(.user-v36, .staff-portal) :is(button, .button)[disabled],
:where(.user-v36, .staff-portal) [aria-disabled="true"] { cursor: default; }
:where(.user-v36, .staff-portal) .button[disabled]:hover,
:where(.user-v36, .staff-portal) .button[aria-disabled="true"]:hover { transform: none; }
:where(.user-v36, .staff-portal) summary { cursor: pointer; }
:where(.user-v36, .staff-portal) input[type="file"] { max-width: 100%; min-width: 0; }
:where(.user-v36, .staff-portal) fieldset:is(.field, .auth-field) { min-width: 0; margin: 0; padding: 0; border: 0; }
:where(.user-v36, .staff-portal) fieldset:is(.field, .auth-field) > legend { margin-bottom: 8px; padding: 0; font-weight: 700; }
:where(.user-v36, .staff-portal) fieldset:is(.field, .auth-field) label { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; }
:where(.user-v36, .staff-portal) fieldset:is(.field, .auth-field) input[type="checkbox"] { flex: 0 0 auto; margin-top: 3px; }
:where(.user-v36, .staff-portal) input::file-selector-button {
  max-width: 100%; margin-right: 10px; padding: 8px 12px; border: 1px solid #cbd2cb;
  border-radius: 8px; background: #e1e9e3; color: #214a41; font: inherit; cursor: pointer;
}
:where(.user-v36, .staff-portal) :is(.field-error, .errorlist) { color: #8c332a; font-size: 13px; line-height: 1.5; }
:where(.user-v36, .staff-portal) .form-error-summary { font-size: 14px; line-height: 1.5; }
:where(.user-v36, .staff-portal) .form-error-summary ul { padding-left: 20px; }
:where(.user-v36, .staff-portal) .timezone-badge {
  display: inline-flex; align-items: center; gap: 8px; max-width: 100%; padding: 7px 10px;
  border: 1px solid #b0c8b6; border-radius: 10px; background: #dfeade; color: #214a41;
  font-size: 12px; font-weight: 700; line-height: 1.45; text-align: left;
}
:where(.user-v36, .staff-portal) .timezone-badge > svg { width: 16px; height: 16px; flex: 0 0 16px; }
.timezone-badge__offset { white-space: nowrap; }
.page-timezone { margin: 0 0 18px; }
.ui-visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
@media (prefers-reduced-motion: reduce) {
  :root { scroll-behavior: auto; }
  :where(.user-v36, .staff-portal) *, :where(.user-v36, .staff-portal) *::before, :where(.user-v36, .staff-portal) *::after {
    animation-duration: 0s !important; transition-duration: 0s !important; scroll-behavior: auto !important;
  }
}
/* Keep keyboard focus visible above legacy input :focus resets. */
.user-v36 :is(a, button, summary, input, select, textarea, [tabindex]):focus-visible,
.staff-portal :is(.field, .auth-field) :is(input, select, textarea):focus-visible {
  outline: 2px solid #2f6257; outline-offset: 3px; box-shadow: none;
}

/* Accessible shared shell controls. */
.ui-skip { position: fixed; z-index: 1000; top: 8px; left: 12px; transform: translateY(-150%); padding: 12px 18px; border-radius: 8px; background: #214a41; color: #fff; }
.ui-skip:focus { transform: none; }
:where(.user-v36, .staff-portal) :is(button, a, summary) { touch-action: manipulation; }
:where(.user-v36, .staff-portal) :is(.auth-field, .field, .commerce-field, .consultation-field, .settings-grid label):focus-within { scroll-margin-block: 90px 24px; }
@media (max-width: 900px) {
  :where(.user-v36, .staff-portal) :is(.button, .button-small, .icon-btn, .cd-button, .auth-switch, .auth-back) { min-height: 44px; }
  .user-v36 .v28-account-user { overflow-wrap: anywhere; }
}
