/**
 * card-normalize.css
 *
 * Kit spec (COMPONENT_SPECS.md): "Cards: 14px radius, 1px warm border,
 * --shadow-sm resting, --shadow-md emphasis." Many card-family classes
 * across the theme predate the kit and ship with 12/16/20px radii via
 * --pp-radius-lg / --pp-radius-xl. This file normalizes every card-family
 * class to 14px. Loaded LAST so it wins the cascade.
 *
 * Does NOT force shadow-sm because several cards are intentionally
 * shadowless (sidebar cards, flat inline cards) — shadows are added
 * per-class in their origin files.
 */

.pp-card,
.pp-training-card,
.pp-resource-card,
.pp-job-card,
.pp-stat-card,
.pp-admin-stat,
.pp-admin-table-wrap,
.pp-search-card,
.pp-badge-card,
.pp-path-card,
.pp-enrollment-card,
.pp-course-card,
.pp-kpi-card,
.pp-dashboard-card,
.pp-session-card,
.pp-review-card,
.pp-grant-card,
.pp-instructor-chart-card,
.pp-instructor-kpi-card,
.pp-offer-card,
.pp-progress-card,
.pp-completed-card,
.pp-wishlist-card,
.pp-gradebook-card,
.pp-cert-card,
.pp-sidebar-card,
.pp-service-card,
.pp-pillar-card,
.pp-founder-card,
.pp-persona-card,
.pp-expertise-card,
.pp-confirm-dialog,
.pp-filter-bar {
  border-radius: 14px !important;
}

/* Certificate preview keeps only top corners rounded (bottom flush to info panel) */
.pp-cert-card__preview {
  border-radius: 14px 14px 0 0 !important;
}

/* Buttons inside cards keep their button radius, not the card radius */
.pp-training-card .pp-btn,
.pp-progress-card .pp-btn {
  border-radius: var(--pp-radius-lg) !important;
}

/* Mobile overflow guard: grid items shouldn't expand past their track.
   Default `min-width: auto` lets long strings (phone numbers, URLs)
   blow the grid wider than the viewport. */
.pp-grid > *,
.pp-grid--2 > *,
.pp-grid--3 > *,
.pp-grid--4 > *,
.pp-achievements-badges > *,
.pp-admin-stats > *,
.pp-stat-cards > *,
.pp-cert-gallery > *,
.pp-courses-grid > *,
.pp-training-grid > *,
.pp-jobs-grid > *,
.pp-resources-grid > *,
.pp-offers-grid > *,
.pp-cohort-grid > *,
.pp-session-grid > *,
.pp-dashboard-grid > * {
  min-width: 0;
}

/* Break unbreakable strings in card text (phone numbers, URLs, counties) */
.pp-resource-card,
.pp-job-card,
.pp-training-card,
.pp-offer-card,
.pp-resource-card__title,
.pp-resource-card__excerpt,
.pp-resource-card__meta,
.pp-resource-card__phone,
.pp-job-card p,
.pp-training-card__excerpt {
  overflow-wrap: break-word;
  word-wrap: break-word;
}

/* Narrow-viewport collapse: grids with minmax >= 9rem can't fit 2 cols
   at 360px. Force single-column below 480px. */
@media (max-width: 480px) {
  .pp-achievements-badges,
  .pp-cert-gallery,
  .pp-courses-grid,
  .pp-training-grid,
  .pp-resources-grid,
  .pp-offers-grid,
  .pp-cohort-grid,
  .pp-session-grid {
    grid-template-columns: 1fr !important;
  }

  /* Wide data tables scroll horizontally within their container at
     mobile instead of forcing the whole viewport to scroll. */
  .pp-admin__content,
  .pp-ann__table-wrap,
  .pp-admin-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }
  .pp-ann__table,
  .pp-admin-table {
    min-width: max-content;
  }
}
