/*
 * Escala tipográfica compartilhada.
 * Segue a direção de painel.css e garante leitura confortável em todas as telas.
 */
:root {
  --font-ui: Inter, "Segoe UI Variable", "Segoe UI", Roboto, Arial, sans-serif;
  --font-size-body: 15px;
  --font-size-caption: 12px;
  --font-size-control: 14px;
  --font-size-table: 14px;
  --line-height-body: 1.55;
}

html {
  font-size: 16px;
}

body {
  font-family: var(--font-ui);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  letter-spacing: -.005em;
}

button,
input,
select,
textarea {
  font-family: inherit;
}

/* Cabeçalho e navegação */
h1 {
  font-size: clamp(29px, 2.25vw, 36px);
  font-weight: 720;
  line-height: 1.16;
  letter-spacing: -.032em;
}

.page-description {
  max-width: 780px;
  font-size: 14px;
  line-height: 1.55;
}

.eyebrow {
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .09em;
}

#data-atual,
.date-label,
.demo-label {
  font-size: 12px;
}

.brand-caption strong {
  font-size: 16px;
}

.brand-caption span {
  font-size: 11.5px;
  line-height: 1.45;
}

.brand-name .brand-product,
.brand-product {
  font-size: 11px;
  line-height: 1.35;
}

.nav-label {
  font-size: 10.5px;
  letter-spacing: .12em;
}

.nav-link {
  min-height: 46px;
  font-size: 14px;
  font-weight: 600;
}

.sidebar-toggle,
.sidebar-theme-toggle,
.sidebar [data-logout],
.sidebar-account-action,
.sidebar .sidebar-account-actions [data-logout] {
  font-size: 12.5px;
}

.sidebar-profile strong {
  font-size: 12.5px;
}

.sidebar-profile small,
.sidebar-status p,
.sidebar-status noscript {
  font-size: 11.5px;
}

.notification-badge {
  font-size: 10px;
  font-weight: 750;
}

/* Conteúdo, cartões e indicadores */
.metric > span:first-child,
.metric-label,
.dashboard-kicker,
.section-overline,
.focus-eyebrow,
.summary-label,
.stock-overline {
  font-size: 11.5px;
  font-weight: 700;
}

.metric-value {
  font-size: 34px;
}

.metric-value small,
.metric p,
.panel-heading p,
.dashboard-panel-heading p,
.executive-panel-heading p,
.stock-health > p,
.dashboard-hero-copy > p {
  font-size: 12.5px;
  line-height: 1.5;
}

.dashboard-metric-copy small,
.dashboard-metric-copy em,
.executive-kpi-copy small,
.executive-kpi-copy em,
.dashboard-hero-footer > div span,
.today-stat span,
.summary-note {
  font-size: 11.5px;
  line-height: 1.45;
}

.panel-heading h2,
.operacao-panel > h2,
.dashboard-panel-heading h2,
.executive-panel-heading h2 {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
}

.text-link,
.row-link,
.button,
.focus-link,
.stock-health > a,
.dashboard-hero-footer > a {
  font-size: 12.5px;
  font-weight: 650;
}

/* Formulários e ações */
label,
.filtros label,
[class*="-filters"] label > span:first-child,
[class*="-field-label"],
.registry-control-panel label,
.purchase-create-fields label,
.purchase-item label,
.registry-dialog-grid label,
.registry-dialog-single label,
.access-dialog-grid label > span,
.access-password-grid label > span {
  font-size: 12.5px;
  font-weight: 650;
  line-height: 1.4;
}

input,
select,
textarea,
.purchase-create-fields input,
.purchase-create-fields textarea,
.purchase-item select,
.purchase-item input {
  min-height: 44px;
  font-size: var(--font-size-control);
  line-height: 1.4;
}

input::placeholder,
textarea::placeholder {
  font-size: 13.5px;
}

button.primary,
.acoes button,
.pagination button,
#dialogo-cancelar,
#dialogo-confirmar,
#adicionar-item,
[data-remove-item],
#tentar,
.purchase-new-button,
.movement-action,
.registry-create,
.nfe-select-file,
.nfe-open,
.purchase-open,
.request-open,
.pending-open,
.registry-edit,
.small-button {
  min-height: 40px;
  font-size: 12.5px;
  font-weight: 680;
}

#contador,
.subtle,
#aviso:not(:empty),
.pagination,
.table-footer,
.integration-state {
  font-size: 12px;
  line-height: 1.55;
}

/* Tabelas e listas */
table,
.operacao-table,
.stock-table,
.forecast-table,
.planning-table,
.movements-table,
.pending-table,
.registry-table,
.nfe-conference-table,
.nfe-detail-table,
.purchase-detail-table {
  font-size: var(--font-size-table);
  line-height: 1.45;
}

thead th,
.operacao-table th,
.stock-table th,
.forecast-table th,
.planning-table thead th,
.movements-table th,
.registry-table thead th,
.nfe-conference-table th,
.nfe-detail-table th {
  font-size: 11.5px;
  font-weight: 720;
  line-height: 1.35;
  letter-spacing: .025em;
}

tbody td,
.operacao-table td,
.movements-table td,
.purchase-detail-table td {
  font-size: 13.5px;
}

.cell-title,
.requester-copy strong,
.pending-requester-copy strong,
.pending-material strong,
.movement-date strong,
.movement-material strong,
.purchase-supplier strong,
.purchase-detail-material strong,
.registry-material strong,
.queue-copy strong,
.receiving-copy strong,
.nfe-file-status strong,
.nfe-date strong,
.nfe-xml-item strong,
.nfe-product-cell strong {
  font-size: 13.5px;
  font-weight: 680;
  line-height: 1.4;
}

.cell-subtitle,
.requester-copy small,
.pending-requester-copy small,
.pending-material small,
.movement-date small,
.movement-material small,
.purchase-forecast small,
.purchase-detail-material small,
.registry-material small,
.registry-simple-copy small,
.queue-copy small,
.receiving-copy small,
.nfe-file-status small,
.nfe-date small,
.nfe-xml-item small,
.nfe-product-cell small {
  font-size: 11.5px;
  line-height: 1.45;
}

.badge,
.coverage,
.status-badge,
.profile-badge,
.planning-status,
.movement-kind,
.access-profile,
.nfe-items-count {
  font-size: 11px;
  font-weight: 680;
  line-height: 1.25;
}

[class*="-updated"],
[class*="-pagination"],
[class*="-empty"] span,
[class*="-list-heading"] p,
[class*="-toolbar"] p,
.pending-filter-footer p,
.access-panel-heading p,
.registry-list-heading p,
.nfe-import-note,
.registry-dialog-note {
  font-size: 11.5px;
  line-height: 1.5;
}

.request-status-tab,
.pending-status-tab,
.purchase-status-tab,
.movement-status-tab,
.registry-tab,
.dashboard-view-tabs button {
  font-size: 12.5px;
  font-weight: 670;
}

.request-status-tab strong,
.pending-status-tab strong,
.purchase-status-tab strong,
.movement-status-tab strong,
.registry-tab strong {
  font-size: 11px;
}

/* Calendário */
.calendar-title h2 {
  font-size: 18px;
}

.calendar-title p,
.dashboard-calendar .calendar-title p,
.calendar-total,
.day-agenda-heading p,
.day-history-link,
.calendar-empty span,
.daily-summary-empty {
  font-size: 12px;
  line-height: 1.5;
}

.today-button,
.segmented-control button,
.clear-filters,
.calendar-legend,
.calendar-weekdays,
.day-number,
.day-marker,
.event-overline,
.day-event p,
.event-quantity > span,
.event-document,
.event-document .text-link,
.monthly-materials thead small,
.monthly-materials td button,
.calendar-dashboard-hint,
.daily-summary-metrics span,
.daily-summary-metrics small,
.daily-summary-section > header > a,
.daily-summary-row-copy > span,
.daily-summary-row-copy > small,
.daily-summary-row > time {
  font-size: 11.5px;
  line-height: 1.4;
}

.day-agenda-heading h3,
.day-event h4,
.calendar-empty strong,
.daily-summary-row-title > strong,
.daily-summary-quantity {
  font-size: 13px;
}

/* Diálogos e mensagens */
#dialogo-titulo,
.planning-parameter-header h2,
.sector-modal-header-v3 h2 {
  font-size: 21px;
  line-height: 1.3;
}

#dialogo-conteudo > p,
#dialogo-erro,
.historico li,
details > summary,
.planning-parameter-error,
.purchase-detail-note p,
.purchase-receiving-section header p,
.nfe-confirm-check small,
.access-dialog-intro p,
.access-confirmation p,
.movement-dialog-lead p,
.movement-dialog-warning p {
  font-size: 12.5px;
  line-height: 1.55;
}

.planning-parameter-body label > span,
.planning-parameter-body input {
  font-size: 14px;
}

.planning-parameter-body small,
.access-dialog-grid small {
  font-size: 11.5px;
  line-height: 1.5;
}

.cards-estoque h3 {
  font-size: 15px;
  line-height: 1.4;
}

.cards-estoque article > span:last-child {
  font-size: 11px;
}

.page-footer {
  font-size: 11.5px;
}

/*
 * Ajustes para seletores específicos das telas. Mantidos no fim do arquivo para
 * que a tipografia compartilhada prevaleça sobre os estilos de layout locais.
 */
body[data-page="estoque"] #filtros label {
  font-size: 12.5px;
}

body[data-page="estoque"] #filtros input,
body[data-page="estoque"] #filtros select {
  font-size: 14px;
}

body[data-page="estoque"] #contador {
  font-size: 12px;
}

body[data-page="estoque"] #contador::after {
  font-size: 11px;
}

body[data-page="estoque"] #estoque-lista .operacao-table th {
  font-size: 11.5px;
}

body[data-page="estoque"] #estoque-lista .operacao-table td,
body[data-page="estoque"] #estoque-lista .operacao-table td:nth-child(1),
body[data-page="estoque"] #estoque-lista .operacao-table td:nth-child(2),
body[data-page="estoque"] #estoque-lista .operacao-table td:nth-child(3),
body[data-page="estoque"] #estoque-lista .operacao-table td:nth-child(5) {
  font-size: 13px;
}

body[data-page="estoque"] #estoque-lista .operacao-table tbody td::before {
  font-size: 10.5px;
}

body[data-page="estoque"] #estoque-lista + .acoes .text-link,
body[data-page="estoque"] #estoque-lista .cards-estoque .subtle {
  font-size: 12px;
}

body[data-page="requisicoes"] .request-date-separator,
body[data-page="requisicoes"] .request-period-shortcuts button,
body[data-page="requisicoes"] .request-clear,
body[data-page="requisicoes"] .requests-pagination,
body[data-page="requisicoes"] .requests-pagination button {
  font-size: 12px;
}

body[data-page="requisicoes"] .requests-updated,
body[data-page="requisicoes"] .request-date small,
body[data-page="requisicoes"] .requester-copy small {
  font-size: 11.5px;
}

body[data-page="requisicoes"] .request-avatar,
body[data-page="requisicoes"] .request-avatar-initials {
  font-size: 11.5px;
}

body[data-page="requisicoes"] .request-order,
body[data-page="requisicoes"] .requester-copy strong,
body[data-page="requisicoes"] .request-date strong,
body[data-page="requisicoes"] .request-open {
  font-size: 12.5px;
}

body[data-page="requisicoes"] #dialogo .operacao-table th,
body[data-page="requisicoes"] #dialogo .historico li {
  font-size: 11.5px;
}

body[data-page="movimentacoes"] .movement-date-range > span,
body[data-page="movimentacoes"] .movement-period-shortcuts button,
body[data-page="movimentacoes"] .movement-clear,
body[data-page="movimentacoes"] .movements-pagination button,
body[data-page="movimentacoes"] .movements-pagination > span {
  font-size: 12px;
}

body[data-page="movimentacoes"] .movements-updated,
body[data-page="movimentacoes"] .movement-date small,
body[data-page="movimentacoes"] .movement-material small,
body[data-page="movimentacoes"] .movement-quantity small {
  font-size: 11.5px;
}

body[data-page="movimentacoes"] .movements-table th {
  font-size: 11.5px;
}

body[data-page="movimentacoes"] .movements-table td,
body[data-page="movimentacoes"] .movement-date strong,
body[data-page="movimentacoes"] .movement-material strong {
  font-size: 13px;
}

body[data-page="movimentacoes"] .movements-table td::before {
  font-size: 10.5px;
}

body[data-page="compras"] .purchase-date-range > span,
body[data-page="compras"] .purchase-period-shortcuts button,
body[data-page="compras"] .purchase-clear,
body[data-page="compras"] .purchases-pagination,
body[data-page="compras"] .purchases-pagination button {
  font-size: 12px;
}

body[data-page="compras"] .purchases-updated,
body[data-page="compras"] .purchase-forecast small,
body[data-page="compras"] .purchase-detail-material small,
body[data-page="compras"] .purchase-detail-summary > div > span:first-child,
body[data-page="compras"] .purchase-detail-note > span {
  font-size: 11.5px;
}

body[data-page="compras"] .purchase-order,
body[data-page="compras"] .purchase-supplier strong,
body[data-page="compras"] .purchase-forecast strong,
body[data-page="compras"] .purchase-open,
body[data-page="compras"] .purchase-detail-table td,
body[data-page="compras"] .purchase-detail-material strong {
  font-size: 12.5px;
}

body[data-page="importacoes"] .nfe-flow,
body[data-page="importacoes"] .nfe-import-note,
body[data-page="importacoes"] .nfe-updated,
body[data-page="importacoes"] .nfe-pagination,
body[data-page="importacoes"] .nfe-pagination button,
body[data-page="importacoes"] .nfe-date-range > span {
  font-size: 12px;
}

body[data-page="importacoes"] .nfe-flow strong {
  font-size: 11px;
}

body[data-page="importacoes"] .nfe-date small,
body[data-page="importacoes"] .nfe-file-status small,
body[data-page="importacoes"] .nfe-xml-item small,
body[data-page="importacoes"] .nfe-product-cell small,
body[data-page="importacoes"] .nfe-link-status {
  font-size: 11.5px;
}

body[data-page="importacoes"] .nfe-conference-table tbody td::before {
  font-size: 10.5px;
}

body[data-page="pendencias"] .pending-requester-copy small,
body[data-page="pendencias"] .pending-material small,
body[data-page="pendencias"] .pending-replenishment small,
body[data-page="pendencias"] .pending-updated,
body[data-page="pendencias"] .pending-pagination {
  font-size: 11.5px;
}

body[data-page="pendencias"] .pending-requester-copy strong,
body[data-page="pendencias"] .pending-material strong,
body[data-page="pendencias"] .pending-quantity,
body[data-page="pendencias"] .pending-stock {
  font-size: 13px;
}

body[data-page="cadastros"] .registry-list-heading > span,
body[data-page="cadastros"] .registry-category,
body[data-page="cadastros"] .registry-material small,
body[data-page="cadastros"] .registry-simple-copy small,
body[data-page="cadastros"] .registry-dialog-note {
  font-size: 11.5px;
}

body[data-page="cadastros"] .registry-table thead th,
body[data-page="cadastros"] .registry-code,
body[data-page="cadastros"] .registry-edit {
  font-size: 12px;
}

body[data-page="acessos"] .access-list-heading,
body[data-page="acessos"] .access-list-heading span,
body[data-page="acessos"] .access-person small,
body[data-page="acessos"] .access-table code,
body[data-page="acessos"] .access-row-actions button,
body[data-page="acessos"] .access-empty span,
body[data-page="acessos"] .access-generate-password {
  font-size: 11.5px;
}

body[data-page="acessos"] .access-avatar,
body[data-page="acessos"] .access-profile {
  font-size: 11px;
}

body[data-page="acessos"] .access-person strong,
body[data-page="acessos"] .access-dialog-intro strong,
body[data-page="acessos"] .access-confirmation strong {
  font-size: 13px;
}

/* Login: mantém a identidade atual com a mesma escala do sistema. */
body:has(#formularioLogin) {
  font-family: var(--font-ui);
  font-size: 15px;
  line-height: 1.55;
}

#formularioLogin label > span,
.login-field > span {
  font-size: 13px;
}

#formularioLogin input,
#entrarBtn {
  min-height: 46px;
  font-size: 14px;
}

.login-brand-name,
.login-message {
  font-size: 13px;
}

.login-subtitle {
  font-size: 12.5px;
  line-height: 1.5;
}

@media (max-width: 760px) {
  body {
    font-size: 15px;
  }

  h1 {
    font-size: 28px;
  }

  .page-description {
    font-size: 13.5px;
  }

  .nav-link {
    font-size: 14px;
  }

  table,
  tbody td,
  .operacao-table td,
  .movements-table td,
  .purchase-detail-table td {
    font-size: 13px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
