/**
 * ec-erp — layout e ritmo do conteúdo principal
 * Carregar depois de styles.css e responsive.css.
 */

/* ─── Ritmo vertical — shell ec-page gere o gap ─── */
.ec-page > .page-header,
.ec-page > .page-header.mb-16,
.ec-page > .page-header.mb-12 {
  margin-bottom: 0;
}

.page-content > .page-header,
.page-content > .page-header.mb-16,
.page-content > .page-header.mb-12 {
  margin-bottom: 12px;
}

.page-content > .ec-tabs,
.page-content .ec-tabs.mb-16 {
  margin-bottom: 12px;
}

.page-content > .db-kpi-row {
  margin-bottom: 12px;
}

.page-content > .filter-bar,
.page-content > form.filter-bar {
  margin-bottom: 12px;
}

.page-content > .card + .card,
.page-content > .table-wrap {
  margin-top: 0;
}

/* ─── Cabeçalho secundário (descrição + acções) ─── */
.page-header {
  gap: 10px 14px;
}

.page-header__main {
  flex: 1;
  min-width: 0;
}

.page-header__desc {
  margin: 0;
  font-size: var(--ec-text-sm);
  line-height: 1.45;
  max-width: 72ch;
}

.page-header__actions {
  flex-shrink: 0;
}

@media (min-width: 720px) {
  .page-header {
    flex-direction: row;
    align-items: center;
  }
}

/* ─── Cartões e tabelas ─── */
.page-content > .card:not(.card--flush):not(.card--compact) {
  padding: 16px 18px;
}

.page-content .filter-bar.filter-bar--card,
.page-content .card.filter-bar--card {
  padding: 12px 14px;
}

.page-content .table-wrap {
  border-radius: var(--ec-radius-md);
}

@media (min-width: 901px) {
  .page-content .data-table td,
  .page-content table tbody td {
    padding: 8px 12px;
  }
}

/* ─── KPIs (.db-kpi-row) ─── */
.page-content .db-kpi-row {
  gap: 10px;
}

/* ─── Formulários: usar largura útil ─── */
.ec-form-page__main {
  max-width: none;
}

.ec-form-page__grid {
  padding: 0 16px 16px;
}

.ec-form-page__hero {
  padding: 14px 16px 12px;
}

.ec-form-page__footer,
.ec-form-footer__inner {
  max-width: none;
}

@media (min-width: 1024px) {
  .ec-form-page:not(.ec-form-page--compact) .ec-form-page__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) min(240px, 26%);
    gap: 20px;
    align-items: start;
  }
}

@media (max-width: 1023px) {
  .ec-form-page:not(.ec-form-page--compact) .ec-form-page__grid {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .ec-form-page__aside {
    order: -1;
    width: 100%;
  }
}

.ec-form-section__summary {
  padding: 12px 0;
}

.ec-form-section__body {
  padding-bottom: 16px;
}

/* ─── Abas internas ─── */
.ec-tabs {
  gap: 4px;
}

.ec-tabs__btn {
  padding: 8px 14px;
}


/* ─── Alertas / vazios ─── */
.page-content > .alert,
.page-content > .card.card--error,
.page-content > .card.card--warn {
  margin-bottom: 12px;
}

.page-content .td-empty-state {
  padding: 1.5rem 1rem;
}
