/* Páginas públicas: recuperação, cadastro e confirmação. */
.pcd-public-screen { background: linear-gradient(115deg, #fff 0%, #fff 44%, #f0f6fb 100%); }
.pcd-public-screen main, .pcd-public-screen section, .pcd-public-screen form { min-width: 0; }
.pcd-public-container { width: min(100%, 980px); margin: auto; padding: 40px 24px; }
.pcd-success-container { max-width: 680px; min-height: 100svh; display: grid; align-content: center; }
.pcd-public-card { padding: 36px; background: var(--pcdental-branco); border: 1px solid var(--pcdental-borda); border-radius: 20px; box-shadow: 0 12px 40px rgba(0,48,120,.06); }
.pcd-public-logo { display: block; width: 180px; max-width: 100%; height: auto; margin: 0 auto 20px; }
.pcd-public-heading h1, .pcd-public-heading h2 { margin: 0 0 10px; color: var(--pcdental-azul-escuro); font-size: 28px; line-height: 1.25; letter-spacing: -.5px; }
.pcd-public-heading p { margin: 0; color: #526174; font-size: 15px; line-height: 1.6; }
.pcd-registration-card > .pcd-public-heading, .pcd-success-container .pcd-public-heading { text-align: center; }
.pcd-form-section { margin: 28px 0; padding-top: 24px; border-top: 1px solid var(--pcdental-borda); }
.pcd-form-section h2 { margin: 0 0 20px; font-size: 19px; color: var(--pcdental-azul-escuro); }
.pcd-public-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; }
.pcd-public-form { display: grid; gap: 20px; margin-top: 24px; }
.pcd-public-field { display: grid; align-content: start; gap: 8px; min-width: 0; }
.pcd-public-field label { font-size: 14px; font-weight: 600; line-height: 1.5; }
.pcd-public-field input, .pcd-public-field select { width: 100%; min-width: 0; height: 50px; padding: 12px 14px; border: 1px solid #c4cfdb; border-radius: 10px; background: var(--pcdental-branco); color: var(--pcdental-texto); font: inherit; font-size: 16px; }
.pcd-public-field [aria-invalid="true"] { border-color: #9f2031; }
.pcd-public-checkbox { display: flex; align-items: center; gap: 10px; grid-column: 1 / -1; min-height: 44px; }
.pcd-public-checkbox input { width: 20px; height: 20px; flex-shrink: 0; accent-color: var(--pcdental-azul); }
.pcd-public-checkbox label { line-height: 1.5; }
.pcd-public-primary { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 50px; padding: 12px 16px; border: 1px solid var(--pcdental-azul-escuro); border-radius: 10px; background: var(--pcdental-azul-escuro); color: #fff; font: inherit; font-weight: 700; text-decoration: none; text-align: center; cursor: pointer; }
.pcd-public-primary:hover { background: #00255d; }
.pcd-public-link { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 44px; margin-top: 18px; padding: 8px; border: 0; border-radius: 7px; background: transparent; color: var(--pcdental-azul-escuro); font: inherit; font-size: 14px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.pcd-public-screen input:focus-visible, .pcd-public-screen select:focus-visible, .pcd-public-screen button:focus-visible, .pcd-public-screen a:focus-visible { outline: 3px solid var(--pcdental-azul); outline-offset: 3px; }
.pcd-public-message { margin: 20px 0; padding: 14px 16px; border: 1px solid; border-radius: 10px; font-size: 14px; line-height: 1.55; overflow-wrap: anywhere; }
.pcd-public-message p { margin: 0; }
.pcd-public-success { background: #edf8f2; color: #16633d; border-color: #b9ddc9; }
.pcd-public-error { background: #fff1f2; color: #9f2031; border-color: #f2bcc4; }
.pcd-public-field-error { color: #9f2031; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.pcd-public-summary dt { color: #526174; font-size: 14px; margin-top: 18px; }
.pcd-public-summary dd { margin: 6px 0; font-weight: 600; overflow-wrap: anywhere; }
.pcd-public-code { margin: 24px 0; padding: 20px; border: 1px solid #c4cfdb; border-radius: 12px; background: var(--pcdental-fundo); }
.pcd-public-code p { margin: 0; line-height: 1.6; font-size: 14px; }
.pcd-public-code strong { display: block; margin: 10px 0; color: var(--pcdental-azul-escuro); font-size: 24px; overflow-wrap: anywhere; }
.pcd-public-recovery { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 440px); align-items: center; gap: 80px; width: min(100%, 1200px); min-height: 100svh; margin: auto; padding: 56px 48px; }
.pcd-public-brand .pcd-public-logo { width: 300px; margin: 0 0 24px; }
.pcd-public-brand h1 { max-width: 470px; margin: 0 0 20px; color: var(--pcdental-azul-escuro); font-size: clamp(32px,3.2vw,42px); line-height: 1.18; letter-spacing: -1px; }
.pcd-public-brand > p { max-width: 400px; margin: 0; color: #526174; font-size: 18px; line-height: 1.6; }
@media (max-width: 991.98px) {
 .pcd-public-screen { background: var(--pcdental-fundo); }
 .pcd-public-recovery { grid-template-columns: minmax(0,460px); justify-content: center; align-content: center; gap: 20px; padding: 40px 24px; }
 .pcd-public-brand .pcd-public-logo { width: 180px; margin: auto; }
 .pcd-public-brand h1, .pcd-public-brand > p { display: none; }
}
@media (max-width: 767.98px) {
 .pcd-public-grid { grid-template-columns: minmax(0,1fr); }
 .pcd-public-container, .pcd-public-recovery { padding: 24px 20px; }
 .pcd-public-card { padding: 28px; border-radius: 16px; }
 .pcd-public-logo, .pcd-public-brand .pcd-public-logo { width: 156px; }
}
@media (max-width: 399.98px) {
 .pcd-public-container, .pcd-public-recovery { padding: 20px 12px; }
 .pcd-public-card { padding: 24px 20px; }
 .pcd-public-heading h1, .pcd-public-heading h2 { font-size: 25px; }
}
