/* Camada final da identidade institucional. Os tokens-base vivem em style.css. */
body {
  min-height: 100vh;
  background: linear-gradient(135deg, var(--brand-navy-950) 0%, var(--brand-navy-800) 58%, var(--brand-blue-700) 100%) !important;
  background-attachment: fixed !important;
  color: var(--brand-text);
}

.container {
  background: var(--brand-surface) !important;
  border: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: 0 24px 70px rgba(7, 16, 48, 0.28) !important;
}

.header {
  background-image: linear-gradient(135deg, rgba(38, 49, 97, 0.92) 0%, rgba(55, 84, 210, 0.85) 100%), url("header-bg.jpg") !important;
  background-size: cover !important;
  background-position: center 60% !important;
}

.header .logo {
  width: min(100%, 340px) !important;
  height: auto !important;
  max-height: 116px;
}

@media (max-width: 480px) {
  .header .logo {
    width: min(100%, 280px) !important;
  }
}

.progress-container {
  background: var(--brand-surface-muted) !important;
  border-bottom-color: var(--brand-border) !important;
}

.progress-steps::before {
  background-color: var(--brand-border) !important;
}

.progress-bar,
.step.completed {
  background-color: var(--brand-cyan-500) !important;
}

.step.active,
.step.completed {
  border-color: var(--brand-cyan-500) !important;
}

.step.active {
  color: var(--brand-navy-900) !important;
}

.form-step h2,
.partner-card legend,
#partners-section h3,
.doc-title,
.titulo-anexo {
  color: var(--brand-navy-900) !important;
}

.sub-desc,
.modal-container p {
  color: var(--brand-text-muted) !important;
}

input:not([type="checkbox"]):not([type="radio"]),
select,
textarea {
  border-color: var(--brand-border) !important;
  background-color: var(--brand-surface-muted) !important;
  color: var(--brand-text) !important;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--brand-cyan-500) !important;
  box-shadow: 0 0 0 3px var(--focus-ring) !important;
  outline: none !important;
}

.next-btn,
.submit-btn,
.upload-btn-doc,
.modal-button,
#btnObservacaoEnviar {
  background: var(--brand-cyan-600) !important;
  color: var(--brand-surface) !important;
  box-shadow: 0 2px 4px rgba(0, 155, 216, 0.22) !important;
}

.next-btn:hover,
.submit-btn:hover,
.upload-btn-doc:hover,
.modal-button:hover,
#btnObservacaoEnviar:hover {
  background: var(--brand-blue-700) !important;
  box-shadow: 0 4px 10px rgba(23, 38, 84, 0.28) !important;
}

.upload-btn-doc.anexado {
  background: var(--status-success) !important;
  box-shadow: 0 2px 4px rgba(22, 128, 91, 0.28) !important;
}

.upload-btn-doc.anexado:hover {
  background: var(--status-success) !important;
  filter: brightness(0.92);
}

.prev-btn,
.remove-partner {
  background: var(--brand-navy-900) !important;
  color: var(--brand-surface) !important;
}

.prev-btn:hover,
.remove-partner:hover {
  background: var(--brand-navy-800) !important;
}

.destaque-importante {
  border-left-color: var(--brand-cyan-500) !important;
  background: var(--brand-cyan-100) !important;
  color: var(--brand-navy-900) !important;
}

.destaque-importante i {
  color: var(--brand-cyan-600) !important;
}

a,
.link-portal {
  color: var(--brand-blue-700) !important;
}

.partner-card,
.doc-card {
  border-color: var(--brand-border) !important;
}

.obrigatorio,
.erro-campo,
.error-icon {
  color: var(--status-error) !important;
}

.sucesso-campo,
.success-icon {
  color: var(--status-success) !important;
}

.site-footer {
  max-width: 800px;
  margin: 16px auto 0;
  padding: 0 20px;
  text-align: center;
}

.site-footer .link-portal {
  font-size: 0.85rem;
  text-decoration: underline;
}
