/*
 * Camada tipografica global.
 *
 * Os tokens abaixo elevam a tipografia em aproximadamente 10% sem aplicar
 * zoom ou transformar o layout. Os seletores mantem a hierarquia original:
 * apenas o tamanho do texto muda; espacamentos, colunas e componentes
 * continuam sob responsabilidade de app.css, forms.css e workspace.css.
 */
:root {
  --type-base: 1.1rem;
  --type-from-08: .625rem;
  --type-from-09: .625rem;
  --type-from-10: .69rem;
  --type-from-11: .76rem;
  --type-from-12: .825rem;
  --type-from-13: .895rem;
  --type-from-14: .9625rem;
  --type-from-15: 1.03rem;
  --type-from-17: 1.17rem;
  --type-from-18: 1.2375rem;
  --type-from-19: 1.306rem;
  --type-from-20: 1.375rem;
  --type-from-21: 1.444rem;
  --type-from-22: 1.5125rem;
  --type-from-25: 1.72rem;
  --type-from-28: 1.925rem;
  --type-from-30: 2.0625rem;
  --type-from-34: 2.3375rem;
  --type-from-38: 2.6125rem;
  --type-from-48: 3.3rem;
}

body {
  font-size: var(--type-base);
}

/*
 * Reforco de leitura operacional: aproximadamente 15% sobre a escala ja
 * homologada para textos de 8px a 13px. O escopo .content propaga o mesmo
 * padrao a cadastros, filtros, tabelas e relatorios sem ampliar novamente
 * a barra de abas, o menu lateral, os botoes comuns ou os titulos grandes.
 */
.content {
  --type-from-08: .72rem;
  --type-from-09: .72rem;
  --type-from-10: .795rem;
  --type-from-11: .875rem;
  --type-from-12: .95rem;
  --type-from-13: 1.03rem;
}

/* 8px -> 10px: piso de leitura para metadados muito pequenos. */
.nav-item small,
.timesheet-punch small,
.pending-original-punch small,
.pending-history-list small {
  font-size: var(--type-from-08);
}

/* 9px -> 10px: piso de leitura para indicadores e rótulos auxiliares. */
.nav-section,
.security-list span,
th,
.badge,
.permission-list span,
.rep-configuration-grid small,
.employee-scale-controls label small,
.pending-day-off-suggestion,
.preliminary-pending-summary-button span,
.timesheet-status,
.timesheet-adjusted-button,
.timesheet-day-body h4,
.pending-resolution-context small,
.pending-original-section > div:first-child small,
.pending-history-undo,
.pending-action-guidance,
.monthly-timecard-filter-grid label small,
.monthly-timecard-table tbody th small,
.monthly-timecard-status,
.monthly-timecard-alerts small,
.journey-next-day {
  font-size: var(--type-from-09);
}

/* 10px -> 11px */
.sidebar-brand small,
.breadcrumb,
.metric-card p,
.action-button,
.form-section-label,
.agent-details span,
.registration-path,
.rep-configuration-grid span,
.preliminary-export-options small,
.preliminary-summary-card small,
.timesheet-employee-totals span,
.timesheet-pending-button,
.timesheet-day > header small,
.timesheet-punch-sequence,
.timesheet-cycle,
.timesheet-alert-list p,
.pending-day-card > header p,
.pending-day-summary,
.pending-original-punch > span,
.pending-detail-alerts p,
.pending-history-list strong,
.pending-history-list p,
.pending-cancel-form label,
.pending-cancel-confirm,
.employee-vacation-history-item > header small,
.employee-vacation-cancelled-note,
.employee-vacation-cancel-open,
.pending-inline-empty,
.pending-readonly-message,
.pending-resolution-form-grid label,
.monthly-timecard-general-alerts p,
.monthly-timecard-summary-card small,
.monthly-timecard-employee-totals span,
.monthly-timecard-expected {
  font-size: var(--type-from-10);
}

/* 11px -> 12.1px */
.eyebrow,
.sidebar-footer strong,
.sidebar-footer small,
.user-menu button,
.metric-card small,
.count-pill,
.form-section-card legend,
.form-section-description,
.registration-heading > p:last-child,
.tab-section-heading p,
.employer-registration-guidance,
.activation-code-result > span,
.agent-command-result,
.agent-actions .secondary-button,
.employee-scale-current,
.employee-scale-history-empty,
.employee-agenda-current,
.employee-agenda-history-empty,
.employee-vacation-cancel-area label,
#punch-update-label,
.preliminary-filter-guidance,
.preliminary-export-menu button,
.timesheet-employee-heading p,
.timesheet-cycle strong,
.timesheet-inline-empty,
.pending-rep-notice,
.monthly-timecard-filter-guidance,
.monthly-timecard-notice,
.monthly-timecard-report-context,
.monthly-timecard-employee-heading p,
.journey-day-toggle,
.journey-type-guidance {
  font-size: var(--type-from-11);
}

/* 12px -> 13.2px */
.icon-button,
.form-error,
.dialog-error,
.user-menu strong,
.user-menu small,
.today,
.panel-heading p,
.panel > div > p,
.steps li > span,
.steps strong,
.steps small,
table,
.empty-state p,
.toast,
.editor-heading p,
.form-tab,
.registration-empty-note,
.password-result p,
.equipment-guidance,
.agent-panel-heading > div > span,
.employee-scale-controls label,
.employee-scale-history-heading strong,
.employee-agenda-controls label,
.employee-agenda-history-heading strong,
.employee-vacation-history-item > header strong,
.employee-clock-controls label,
.punch-filter-grid label,
.preliminary-filter-grid label,
.preliminary-report-toolbar > p,
.timesheet-day > header strong,
.pending-resolution-context strong,
.monthly-timecard-filter-grid label {
  font-size: var(--type-from-12);
}

.login-help {
  font-size: var(--type-from-12) !important;
}

/* 13px -> 14.3px */
.art-status,
.login-card label,
.form-grid label,
.nav-item,
.timesheet-punch strong,
.pending-day-card > header strong,
.pending-day-body > h3,
.pending-day-body section > h3,
.pending-original-section h3,
.pending-resolution-form h3,
.pending-original-punch strong {
  font-size: var(--type-from-13);
}

.rep-configuration-grid strong {
  font-size: var(--type-from-14);
}

.profile-card h3 {
  font-size: var(--type-from-15);
}

.nav-icon,
.activation-code-result input,
.timesheet-employee-heading h2,
.monthly-timecard-employee-toggle-icon,
.monthly-timecard-employee-heading h2 {
  font-size: var(--type-from-17);
}

.login-art p {
  font-size: var(--type-from-18);
}

.tab-section-heading h2 {
  font-size: var(--type-from-19);
}

.brand,
.menu-toggle,
.metric-icon,
.dialog-close,
.section-heading h2,
.preliminary-summary-card strong,
.timesheet-employee-toggle-icon,
.monthly-timecard-summary-card strong {
  font-size: var(--type-from-20);
}

.editor-heading h2 {
  font-size: var(--type-from-21);
}

.registration-heading h1 {
  font-size: var(--type-from-25);
}

.pending-resolution-heading h1 {
  font-size: var(--type-from-25);
}

.metric-card strong {
  font-size: var(--type-from-28);
}

.page-heading h1 {
  font-size: var(--type-from-30);
}

.empty-state span {
  font-size: var(--type-from-34);
}

.login-card h2 {
  font-size: var(--type-from-38);
}

.login-art h1 {
  font-size: clamp(2.8875rem, 5.5vw, 4.8125rem);
}

@media (max-width: 1050px) {
  .login-art h1 {
    font-size: var(--type-from-48);
  }
}

@media (max-width: 760px) {
  .registration-heading h1 {
    font-size: var(--type-from-22);
  }

  .form-tab {
    font-size: var(--type-from-11);
  }
}
