/*
 * Interface plana do aplicativo autenticado.
 *
 * A hierarquia passa a depender de títulos, espaço e divisórias. Caixas,
 * sombras e fundos alternados não devem voltar a ser a estrutura principal
 * das páginas. Login, impressão, modais e controles interativos preservam
 * seus próprios limites porque cumprem funções diferentes de um "card".
 */

body:not(.login-active),
body:not(.login-active) .app-shell,
body:not(.login-active) .workspace,
body:not(.login-active) .route-view {
  background: #fff;
}

body:not(.login-active) .app-shell {
  padding: 0;
}

body:not(.login-active) .sidebar {
  height: 100vh;
  max-height: 100vh;
  border-right: 1px solid var(--color-border);
  border-radius: 0;
  background: #fff;
}

body:not(.login-active) .workspace {
  padding-left: 0;
}

body:not(.login-active) .topbar {
  min-height: 70px;
  margin-bottom: 0;
  border-bottom: 1px solid var(--color-border);
  border-radius: 0;
  background: #fff;
}

body:not(.login-active) .route-view {
  height: calc(100% - 70px);
  padding: 32px clamp(24px, 4vw, 58px) 48px;
}

body:not(.login-active) .button--primary {
  box-shadow: none;
}

/* Superfícies que antes eram apresentadas como cartões independentes.
 * O banner de boas-vindas (.hero-card) é a única exceção visual: ele preserva
 * a imagem e a moldura da marca para abrir a página inicial.
 */
body:not(.login-active) :where(
  .content-card,
  .profile-completion-card,
  .info-card,
  .metric-card,
  .origin-record-card,
  .record-label-card,
  .record-media-card,
  .record-detail__hero,
  .record-detail__story,
  .record-detail__section,
  .record-edit,
  .about-page__panel,
  .producer-profile__summary,
  .producer-profile__panel,
  .producer-profile__completion,
  .producer-code-card,
  .producer-card-action,
  .legal-page__column,
  .report-metric,
  .report-chart,
  .sales-document-card,
  .traceability-event-card,
  .panorama-report-panel,
  .panorama-insight-card,
  .panorama-detail-card,
  .panorama-recent,
  .panorama-empty-state,
  .institutional-account-state,
  .institutional-kpi,
  .institutional-alert,
  .institutional-producer-card,
  .institutional-empty,
  .institutional-quick-actions a,
  .producer-consent-control,
  .institutional-report-card,
  .institutional-account-card,
  .institutional-request-option,
  .institutional-share-result,
  .producer-consent-invite,
  .producer-consent-scope,
  .producer-consent-card,
  .marketplace-card,
  .frigorifico-kpi,
  .frigorifico-card,
  .frigorifico-preview,
  .frigorifico-lineage-detail,
  .frigorifico-hero__scope,
  .frigorifico-official,
  .frigorifico-share
) {
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

body:not(.login-active) .content-card {
  min-height: 0;
  padding: 0;
}

body:not(.login-active) .content-card + .content-card {
  margin-top: 36px;
  padding-top: 32px;
  border-top: 1px solid var(--color-border);
}

/* Indicadores continuam fáceis de comparar, sem cinco caixas flutuantes. */
body:not(.login-active) .metric-grid,
body:not(.login-active) .frigorifico-kpis,
body:not(.login-active) .institutional-kpis {
  gap: 0;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}

body:not(.login-active) :where(.metric-card, .frigorifico-kpi, .institutional-kpi) {
  min-height: 0;
  padding: 22px;
}

body:not(.login-active) .metric-card {
  align-content: start;
  grid-template-rows: none;
}

body:not(.login-active) :where(.metric-card, .frigorifico-kpi, .institutional-kpi) +
  :where(.metric-card, .frigorifico-kpi, .institutional-kpi) {
  border-left: 1px solid var(--color-border);
}

/* Listas e painéis passam a usar linhas contínuas em vez de cartões. */
body:not(.login-active) :where(
  .origin-record-card,
  .record-label-card,
  .record-media-card,
  .sales-document-card,
  .traceability-event-card,
  .panorama-insight-card,
  .panorama-detail-card,
  .panorama-recent,
  .institutional-producer-card,
  .institutional-alert,
  .producer-consent-card,
  .frigorifico-card
) {
  padding: 22px 0;
  border-bottom: 1px solid var(--color-border);
}

body:not(.login-active) :where(
  .panorama-insights-grid,
  .panorama-detail-grid,
  .institutional-producer-grid,
  .frigorifico-grid
) {
  gap: 0 32px;
}

body:not(.login-active) :where(
  .profile-edit__section,
  .help-form__audio,
  .profile-setup__photo,
  .profile-setup__summary,
  .chain-product-selector,
  .new-record__panel
) {
  border: 0;
  border-top: 1px solid var(--color-border);
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

body:not(.login-active) :where(.profile-edit__section, .new-record__panel) {
  padding: 26px 0;
}

body:not(.login-active) :where(
  .profile-photo-editor,
  .new-record__auto,
  .frigorifico-form,
  .frigorifico-flow li,
  .frigorifico-lineage-list article,
  .frigorifico-timeline li,
  .about-page__deliveries article,
  .record-fact
) {
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

body:not(.login-active) .frigorifico-form {
  padding: 0;
}

/* A tela de um registro continua plana, mas usa tons claros em faixas
 * inteiras para o produtor reconhecer em qual assunto está. Os dados do
 * resumo viram linhas de leitura, não pequenos cartões dentro da faixa. */
body:not(.login-active) .record-detail__panel .record-fact {
  padding: 12px 0;
  border-bottom: 1px solid rgba(42, 72, 61, 0.16);
  background: transparent;
}

body:not(.login-active) .record-detail__panel .record-detail__story {
  padding: 0 0 20px;
  border-bottom: 1px solid rgba(42, 72, 61, 0.16);
  background: transparent;
}

body:not(.login-active) .record-detail__panel .traceability-progress__item {
  border: 0;
  border-left: 3px solid #b8c8c0;
  border-radius: 0;
  background: rgba(255, 255, 255, 0.62);
}

body:not(.login-active) .record-detail__panel .traceability-progress__item--completed {
  border-left-color: var(--color-green);
  background: rgba(235, 247, 231, 0.78);
}

body:not(.login-active) .record-detail__panel .traceability-progress__item--waiting {
  border-left-color: #c78b19;
  background: rgba(255, 248, 231, 0.86);
}

body:not(.login-active) :where(.frigorifico-flow li, .frigorifico-lineage-list article, .frigorifico-timeline li) {
  padding: 16px 0;
  border-bottom: 1px solid var(--color-border);
}

/* Avisos não viram cartões: uma linha lateral mantém o significado. */
body:not(.login-active) :where(
  .profile-completion-card,
  .profile-edit__required-note,
  .origin-readiness,
  .frigorifico-notice,
  .frigorifico-warning
) {
  border: 0;
  border-left: 4px solid var(--color-green);
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

body:not(.login-active) :where(.origin-readiness, .frigorifico-warning) {
  border-left-color: #b67800;
}

@media (max-width: 900px) {
  body:not(.login-active) .app-shell {
    width: 100vw;
    max-width: 100vw;
  }

  body:not(.login-active) .workspace {
    width: 100%;
    max-width: 100%;
  }

  body:not(.login-active) .topbar {
    border-radius: 0;
  }

  body:not(.login-active) .route-view {
    height: calc(100% - 70px);
    padding: 24px 18px 40px;
  }

  body:not(.login-active) .sidebar {
    inset: 0 auto 0 0;
    height: 100vh;
    max-height: 100vh;
    border-radius: 0;
    box-shadow: none;
  }

  body:not(.login-active) :where(.metric-grid, .frigorifico-kpis, .institutional-kpis) {
    grid-template-columns: minmax(0, 1fr);
  }

  body:not(.login-active) :where(.metric-card, .frigorifico-kpi, .institutional-kpi) {
    padding: 18px 0;
  }

  body:not(.login-active) :where(.metric-card, .frigorifico-kpi, .institutional-kpi) +
    :where(.metric-card, .frigorifico-kpi, .institutional-kpi) {
    border-top: 1px solid var(--color-border);
    border-left: 0;
  }
}
