/*
 * MyAPi readability layer
 * Keeps the recovered production design intact while increasing type,
 * spacing and interactive targets consistently on desktop-sized screens.
 */
html {
  font-size: 16px;
  text-rendering: optimizeLegibility;
}

body {
  line-height: 1.55;
}

@media (min-width: 768px) {
  html {
    font-size: 17px;
  }
}

/* Controls: keep every primary interaction comfortably readable/clickable. */
.btn {
  min-height: 44px;
  font-weight: 600;
}

.btn-sm {
  min-height: 36px;
  font-size: 0.8125rem;
}

.btn-lg {
  min-height: 48px;
}

.btn-icon {
  min-width: 44px;
  min-height: 44px;
}

.input,
select.input,
textarea.input:not([rows]) {
  min-height: 44px;
}

.input-label {
  margin-bottom: 0.5rem;
  font-weight: 600;
}

.input-hint,
.input-error-text {
  font-size: 0.8125rem;
  line-height: 1.25rem;
}

/* Navigation: stronger labels and taller rows improve scanning. */
.sidebar-header,
.glass.sticky.top-0 > div {
  min-height: 72px;
}

.sidebar-nav {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

.sidebar-link {
  min-height: 44px;
  font-size: 0.9375rem;
  font-weight: 600;
}

.sidebar-section-title {
  font-size: 0.8125rem;
}

.dropdown-item {
  min-height: 44px;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  font-weight: 500;
}

/* Provider homepage: these labels were intentionally tiny (8-10px) in the
 * recovered bundle. Bring them back to a readable supporting-text scale. */
.provider-home .hero-copy .proof {
  gap: 28px;
  margin-top: 30px;
  font-size: 13px;
  line-height: 20px;
  font-weight: 500;
  color: #696d84;
}

.provider-home .hero-copy .proof span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}

.provider-home .hero-copy .proof i {
  font-size: 14px;
  font-weight: 700;
}

.provider-home > .footer {
  min-height: 120px;
  padding-top: 30px;
  padding-bottom: 30px;
  gap: 32px;
}

.provider-home .footer .brand-mark {
  width: 38px;
  height: 38px;
}

.provider-home .footer p {
  font-size: 13px;
  line-height: 20px;
  font-weight: 500;
}

.provider-home .footer nav {
  gap: 26px;
}

.provider-home .footer nav a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  font-size: 12px;
  line-height: 18px;
  font-weight: 500;
}

.provider-home .footer small {
  font-size: 12px;
  line-height: 18px;
}

/* Data-heavy screens: improve table hierarchy without wasting width. */
.table-header th,
.table th {
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.25rem;
}

.table-body td,
.table td {
  font-size: 0.9375rem;
  line-height: 1.5rem;
}

.table-body input[type='checkbox'],
.table-header input[type='checkbox'] {
  width: 1.0625rem;
  height: 1.0625rem;
}

/* Small helper copy must remain legible on high-density displays. */
.page-description,
.stat-label {
  font-size: 0.9375rem;
  line-height: 1.5rem;
}

@media (max-width: 767px) {
  .btn-sm {
    min-height: 36px;
    font-size: 0.8125rem;
  }

  .glass.sticky.top-0 > div {
    min-height: 64px;
  }

  .provider-home .hero-copy .proof {
    gap: 10px;
    margin-top: 24px;
    font-size: 13px;
    line-height: 20px;
  }

  .provider-home > .footer {
    min-height: 132px;
    padding-top: 24px;
    padding-bottom: 24px;
    row-gap: 14px;
  }

  .provider-home .footer .brand-mark {
    width: 36px;
    height: 36px;
  }

  .provider-home .footer p,
  .provider-home .footer small {
    font-size: 12px;
    line-height: 18px;
  }
}
