/* Shared text scale: app, authentication, recovery and public booking. */
:root {
  --text-caption: 0.75rem; /* 12px */
  --text-action: 1rem; /* 16px */
  --text-body: 1rem; /* 16px */
  --text-subtitle: 1.25rem; /* 20px */
  --text-section: 1.25rem; /* 20px */
  --text-title: 1.5rem; /* 24px */
  --text-display: 2rem; /* 32px */
  --text-field: 0.75rem; /* 12px: compact desktop fields and filters */
}

body {
  font-size: var(--text-body);
  line-height: 1.5;
}

/* Examples use the same compact scale on every form and search field. */
:root body :is(input, textarea)::placeholder {
  font-size: inherit !important;
  font-family: inherit !important;
  font-weight: 400 !important;
}

.top-controls #appbarTitle,
.modal-header h2,
.auth-copy h1 {
  font-size: var(--text-title) !important;
  line-height: 1.3 !important;
}

#relatorios .report-content-header h2,
.home-quick-access-header h2 {
  font-size: var(--text-section) !important;
  line-height: 1.4;
}

.panel-header h3,
.report-detail-card h3 {
  font-size: var(--text-subtitle) !important;
  line-height: 1.4;
}

.sidebar .nav-item,
.sidebar .nav-submenu button,
.button,
.file-button {
  font-size: var(--text-action) !important;
  line-height: 1.4;
}

/* Higher specificity than the legacy caption-size form overrides. */
:root body :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="hidden"]) {
  font-size: var(--text-field) !important;
  font-weight: 400 !important;
  line-height: 1.5;
}

.password-checklist::before,
.password-checklist li,
.auth-field-error,
.home-shortcut-copy > span,
.home-summary-period {
  font-size: var(--text-caption) !important;
  line-height: 1.5;
}

/* Keep appointment text legible at the denser mobile breakpoints too. */
.agenda-time-gutter,
.agenda-time-axis span,
.agenda-time-block span,
.agenda-time-block small,
.agenda-month-chip,
.agenda-month-more {
  font-size: var(--text-caption) !important;
}

.agenda-time-block strong {
  font-size: var(--text-action) !important;
}

.agenda-time-block strong,
.agenda-time-block small {
  line-height: 1.3;
}

.agenda-time-block.is-compact {
  align-content: center !important;
  padding-block: 4px !important;
}

.agenda-time-block.is-compact small {
  display: none !important;
}

/* Keep the same field scale on desktop and touch devices. */
@media (max-width: 760px), (pointer: coarse) {
  :root {
    --text-title: 1.25rem;
  }
}

/* Shared column-heading typography for every management list. */
:root {
  --list-heading-size: 0.75rem;
  --list-heading-weight: 500;
  --list-heading-color: #5c5c5c;
}

:root body :is(.management-table-header, .commission-table-head),
:root body :is(.management-table-header, .commission-table-head) :is(span, strong, small, button, a):not(.material-symbols-outlined):not([data-lucide]) {
  font-family: var(--font-sans) !important;
  font-size: var(--list-heading-size) !important;
  font-weight: var(--list-heading-weight) !important;
  line-height: 16px !important;
  color: var(--list-heading-color) !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

/* Field labels and shared controls retain the same hierarchy on every screen. */
:root body :is(.form-grid, .booking-page-form, .auth-form, .weekly-apply-range) label,
:root body .field-label,
:root body .portal-field {
  font-size: var(--text-caption) !important;
  line-height: 1.5;
}
:root body :is(.button, .file-button, .portal-primary-button, .portal-secondary-button, .portal-payment-button) {
  font-size: var(--text-action) !important;
  line-height: 1.5;
}
:root body :is(.modal-header, .portal-modal-header) :is(h2, h3) {
  font-size: var(--text-title) !important;
  line-height: 1.25;
}
