/* Attendance Management System v1.0.13
 * One readable typographic scale for admin portal + shortcode/PWA screens.
 * Scoped exclusively to Attendance UI; WordPress dashboard is untouched.
 * Headlines/statistics remain intentionally larger than ordinary content.
 */
body.att-portal .att-portal-shell,
body.att-portal .att-portal-content,
.att-wrap,
.att-mobile-app {
  --ams-type-body: 16px;
  --ams-type-control: 15px;
  --ams-type-support: 15px;
  --ams-type-heading: 22px;
  --ams-type-section: 18px;
  --ams-type-subsection: 17px;
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-size: var(--ams-type-body) !important;
  line-height: 1.55 !important;
}
/* Content, card text and table rows share a single baseline. */
body.att-portal .att-portal-content :is(p,li,dt,dd,td,.att-card,.att-acc-body,.att-info-value,.att-field-value,.att-table td),
.att-wrap :is(p,li,dt,dd,td,.att-card,.att-acc-body,.att-info-value,.att-field-value,.att-table td),
.att-mobile-app :is(p,li,dt,dd,td) {
  font-size: var(--ams-type-body) !important;
  line-height: 1.55 !important;
}
/* Consistent labels, descriptions, status captions, and header/navigation controls. */
body.att-portal :is(.att-sidenav-label,.att-portal-username,.att-back-to-wordpress),
body.att-portal .att-portal-content :is(label,.att-label,.description,.small,.muted,.att-muted,small,.att-section-desc,.att-subtitle,.att-card-subtitle,.att-table th,.att-mini-table th),
.att-wrap :is(label,.att-label,.description,.small,.muted,.att-muted,small,.att-section-desc,.att-subtitle,.att-card-subtitle,.att-table th,.att-mini-table th),
.att-mobile-app :is(label,.att-label,.description,.muted,small) {
  font-size: var(--ams-type-support) !important;
  line-height: 1.5 !important;
}
body.att-portal .att-portal-content :is(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]),select,textarea),
.att-wrap :is(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]),select,textarea),
.att-mobile-app :is(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]),select,textarea) {
  font-family: inherit !important;
  font-size: 16px !important; /* avoids automatic iOS input zoom */
  line-height: 1.45 !important;
}
body.att-portal .att-portal-content :is(button,.button,.att-btn,.att-button,.att-tab,select),
.att-wrap :is(button,.button,.att-btn,.att-button,.att-tab,select),
.att-mobile-app :is(button,.button,.att-btn,.att-button,.att-tab,select) {
  font-family: inherit !important;
  font-size: var(--ams-type-control) !important;
  line-height: 1.4 !important;
  font-weight: 500 !important;
}
/* Proper hierarchy: do not flatten headings and key metrics to ordinary text size. */
body.att-portal .att-portal-content :is(h1,.att-title,.att-page-title),
.att-wrap :is(h1,.att-title,.att-page-title) {
  font-size: var(--ams-type-heading) !important;
  line-height: 1.35 !important;
  font-weight: 600 !important;
}
body.att-portal .att-portal-content h2,
.att-wrap h2 {
  font-size: var(--ams-type-section) !important;
  line-height: 1.4 !important;
  font-weight: 600 !important;
}
body.att-portal .att-portal-content :is(h3,h4,.att-section-title,.att-card-title),
.att-wrap :is(h3,h4,.att-section-title,.att-card-title) {
  font-size: var(--ams-type-subsection) !important;
  line-height: 1.4 !important;
  font-weight: 600 !important;
}
body.att-portal .att-portal-content :is(.att-stat-value,.att-stat-number,.att-statvalue),
.att-wrap :is(.att-stat-value,.att-stat-number,.att-statvalue) {
  font-size: 26px !important;
  line-height: 1.3 !important;
  font-weight: 600 !important;
}
/* Utility metadata remains modest but never tiny. Preserve semantic status colors. */
body.att-portal .att-portal-content :is(.att-pagination,.att-acc-meta,.att-help-text,.att-loc-map-tip,.att-loc-section-head p),
.att-wrap :is(.att-pagination,.att-acc-meta,.att-help-text,.att-loc-map-tip,.att-loc-section-head p) {
  font-size: var(--ams-type-support) !important;
  line-height: 1.5 !important;
}
/* Fix legacy 12px Location Check-in text that was explicitly marked !important. */
.att-wrap.att-location :is(.att-loc-field>.att-label,.att-loc-create-title p,.att-loc-sessions-heading p,.att-loc-section-head p,.att-loc-map-tip,.att-loc-mode-pill,.att-loc-section-number) {
  font-size: var(--ams-type-support) !important;
}
body.att-portal .att-sidenav-section-title {
  font-size: 13px !important;
  font-weight: 500 !important;
}
@media (max-width: 767px) {
  body.att-portal .att-portal-content,
  .att-wrap,.att-mobile-app {
    --ams-type-heading: 20px;
    --ams-type-section: 18px;
    --ams-type-subsection: 17px;
  }
}
