.certificate-page { padding: 48px 0 80px; }
.preview-badge { display: none; }
.certificate-layout { grid-template-columns: minmax(300px, .85fr) minmax(0, 1.15fr); gap: 32px; }
.certificate-layout [hidden] { display: none !important; }
.certificate-panel { padding: clamp(24px, 3vw, 36px); }
.certificate-panel h2 { font-size: clamp(1.65rem, 2.5vw, 2.25rem); line-height: 1.15; }
.certificate-form-row { grid-template-columns: 1fr; }
.certificate-form input { font-weight: 500; font-size: 1rem; min-width: 0; }
.certificate-form input[aria-invalid="true"] { border-color: #ad3a16; }
.certificate-form button { width: 100%; }
.certificate-form button:focus-visible, .certificate-note a:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
.certificate-help { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.certificate-help h3 { margin: 0 0 8px; font-size: 1rem; color: var(--navy); }
.certificate-help p { margin: 0; font-size: .9rem; }
.certificate-status { font-weight: 500; }
.certificate-empty { padding: clamp(28px, 4vw, 48px); border: 1px dashed #bacbdd; border-radius: 22px; background: #f7faff; }
.certificate-empty-icon { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 24px; border-radius: 16px; background: #e0edf8; color: var(--navy-2); font-size: 1.8rem; }
.certificate-empty h2 { margin: 0 0 12px; font-size: 1.45rem; }
.certificate-empty p, .certificate-empty li { color: var(--muted); }
.certificate-empty ul { padding-left: 20px; line-height: 1.9; }
.certificate-empty-caption { margin-top: 28px; font-size: .85rem; }
.certificate-result { scroll-margin-top: 110px; }
.certificate-result:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
.certificate-result-header { gap: 8px; padding: 26px 28px; }
.certificate-result-header h2 { margin: 0; color: inherit; font-size: 1.4rem; line-height: 1.3; }
.certificate-result-header strong { font-size: .95rem; font-weight: 500; line-height: 1.6; }
.certificate-result[data-state="valido"] .certificate-result-header { background: #126444; }
.certificate-result[data-state="substituido"] .certificate-result-header,
.certificate-result[data-state="nao_encontrado"] .certificate-result-header { background: #784614; }
.certificate-result[data-state="integridade_invalida"] .certificate-result-header,
.certificate-result[data-state="invalido"] .certificate-result-header { background: #962f2f; }
.certificate-person { padding: 26px 28px; border-bottom: 1px solid var(--line); }
.certificate-person h2 { margin: 4px 0 6px; font-size: 1.65rem; line-height: 1.25; overflow-wrap: anywhere; }
.certificate-person p { margin: 0; overflow-wrap: anywhere; }
.certificate-overline { color: var(--muted); font-size: .75rem; text-transform: uppercase; letter-spacing: .07em; }
.certificate-detail-group { padding: 22px 28px; border-bottom: 1px solid var(--line); }
.certificate-detail-group h3 { margin: 0 0 14px; font-size: 1rem; }
.certificate-data { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; padding: 0; }
.certificate-data div { padding: 0; border: 0; min-width: 0; }
.certificate-data .certificate-data-wide { grid-column: 1 / -1; }
.certificate-data dt { font-size: .73rem; color: var(--muted); font-weight: 600; letter-spacing: .02em; }
.certificate-data dd { font-size: .95rem; font-weight: 500; white-space: pre-line; }
.certificate-signers { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.certificate-signers li { display: grid; overflow-wrap: anywhere; }
.certificate-signers span { font-size: .9rem; color: var(--muted); }
.certificate-note { margin: 0; padding: 20px 28px; font-size: .9rem; color: var(--muted); }
.certificate-note a { color: var(--navy-2); text-underline-offset: 3px; }
@media (max-width: 900px) {
  .certificate-layout { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .certificate-page { padding-top: 28px; }
  .certificate-data { grid-template-columns: 1fr; }
  .certificate-result-header, .certificate-person, .certificate-detail-group, .certificate-note { padding: 22px; }
}
