/* Shared readable text and keyboard states. Loaded after legacy module layers. */
:root {
  --pc-muted: #526174;
  --pc-shell-muted: #526174;
  --pc-shell-muted-2: #526174;
  --pc-readable-accent: #086b76;
  --pc-readable-muted: #526174;
  --pb-primary-dark: #086b76;
  --reg-muted: #526174;
}
.pc-brand__picture { display: contents; }

/* Legacy display:flex rules must not resurrect finished clinical actions. */
.pc-app .pc-sticky-actions [hidden],
.pc-app .pc-med-actions [hidden],
.pc-app .pc-patient-page [role="tabpanel"][hidden] {
  display: none !important;
}

/* Primary actions use a readable brand colour in every entry flow. */
.pc-auth-submit,
.pc-location-submit,
.booking-submit-btn,
.pc-public-booking .clinic-card .btn-appointment,
.pc-public-btn--primary {
  background: #087680 !important;
  border-color: #087680 !important;
  color: #fff !important;
}
.pc-auth-submit:hover:not(:disabled),
.pc-auth-submit:focus-visible,
.pc-location-submit:hover:not(:disabled),
.pc-location-submit:focus-visible,
.booking-submit-btn:hover:not(:disabled),
.booking-submit-btn:focus-visible,
.pc-public-booking .clinic-card .btn-appointment:hover:not(:disabled),
.pc-public-booking .clinic-card .btn-appointment:focus-visible,
.pc-public-btn--primary:hover:not(:disabled),
.pc-public-btn--primary:focus-visible {
  background: #065e68 !important;
  border-color: #065e68 !important;
}

/* A translated panel must also leave the tab order and accessibility tree. */
@media (max-width: 1024px) {
  .pc-sidebar { visibility: hidden; pointer-events: none; }
  body.pc-sidebar-open .pc-sidebar { visibility: visible; pointer-events: auto; }
}

.pc-nav__section-title,
.pc-version,
.pc-main .pc-med-kicker,
.pc-patient-page .pc-patient-card__head p,
.pc-patient-page .pc-info-row dt,
.pc-patient-page .pc-empty-value,
.svc-footer-note > span,
.pc-main .pc-event-card__status,
.pc-main .pc-event-card__doctor,
.pc-main #selectedDateDisplay,
.pc-main [data-selected-patient-kind],
.pc-main .pc-appointment-clinic .form-text,
.pc-main #legacyOvertimeGroup .form-text,
.pc-main .table th,
.pp-kv dt {
  color: var(--pc-readable-muted) !important;
}

.pc-sidebar__support a,
.pc-patient-page .pc-workflow-back {
  color: #0957b8;
}
.pc-nav__item.active,
.pc-nav__item.active span,
.pc-ref-card-head a,
.role-card-head a,
.appointment-mini time {
  color: var(--pc-readable-accent) !important;
}
.pc-patient-page .pc-patient-hero__actions .btn-light,
.pc-calendar-page .fc .fc-button-primary:not(:disabled).fc-button-active {
  background: #087680 !important;
  border-color: #087680 !important;
  color: #fff !important;
}
.pc-patient-page .pc-patient-hero__actions .btn-light:hover,
.pc-patient-page .pc-patient-hero__actions .btn-light:focus-visible,
.pc-calendar-page .fc .fc-button-primary:not(:disabled).fc-button-active:hover {
  background: #065e68 !important;
  border-color: #065e68 !important;
}
.pc-main .pc-date-strip .selected .weekday,
.pc-main .pc-date-strip .active .weekday {
  color: #fff !important;
}

body.pc-public-booking .map-link,
body.pc-public-booking .clinic-card a,
.pc-section-head > span,
.pc-clinics-head > div > span,
.pc-feature-card > i {
  color: var(--pc-readable-accent);
}
.pb-dates button span { color: #526174; }
.pb-dates button[aria-pressed=true],
.pb-slots button[aria-pressed=true] {
  background: #087680;
  border-color: #087680;
  color: #fff;
}
.pb-dates button[aria-pressed=true] span { color: #fff; }
.pb-slots button:hover:not(:disabled) { border-color: #087680; }
.pb-dates button[aria-pressed=true]:hover,
.pb-slots button[aria-pressed=true]:hover {
  background: #065e68;
  border-color: #065e68;
}

.pc-auth-copy > span,
.pc-auth-footer a,
.pc-auth-link,
.pc-registration-consent a,
.pc-registration-footer a { color: var(--pc-readable-accent); }
#password-requirements > span,
.pc-registration-alert small { color: #526174 !important; }

/* The visible form title stays styled when auth templates use a semantic h1. */
.pc-auth-copy :is(h1,h2) {
  margin: 0 0 14px;
  font-size: clamp(2rem,4vw,3.6rem);
  line-height: 1.02;
  letter-spacing: -.07em;
  font-weight: 600;
  color: var(--auth-ink, #102437);
}
.pc-auth-card__head :is(h1,h2) {
  margin: 0 0 4px;
  font-size: 1.55rem;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: -.045em;
  color: var(--auth-ink, #102437);
}
.pc-registration-alert .pc-registration-alert-title {
  margin: 0 0 5px;
  font-size: 1rem;
}
@media (max-width: 860px) {
  .pc-auth-copy :is(h1,h2) { font-size: 2.25rem; }
}

/* Observational clinical states do not imply a calculated low medical risk. */
.pc-risk-badge--review { background: #fef3c7; border-color: #d6a420; color: #713f12; }
.pc-risk-badge--recorded { background: #eef2f6; border-color: #cbd5e1; color: #34445a; }

/* Keep keyboard focus visible even on icon-only controls and high contrast themes. */
.pc-app :is(a,button,input,select,textarea,[tabindex]):focus-visible,
.pc-public :is(a,button,input,select,textarea,[tabindex]):focus-visible,
.pc-public-booking :is(a,button,input,select,textarea,[tabindex]):focus-visible {
  outline: 3px solid #085f70 !important;
  outline-offset: 3px;
}
@media (forced-colors: active) {
  .pc-app :focus-visible,
  .pc-public :focus-visible,
  .pc-public-booking :focus-visible { outline-color: Highlight !important; }
}
