/*
 * Termos e Políticas — tipografia do texto (páginas públicas, tela de aceite, janela do Portal e
 * pré-visualização na gestão). O HTML vem do editor e é sanitizado no servidor (policy-html.js).
 */
.policy-content { font-size: 1rem; line-height: 1.65; color: #1f2937; overflow-wrap: anywhere; }
.policy-content h1, .policy-content h2, .policy-content h3, .policy-content h4 { font-weight: 700; margin: 1.5rem 0 .6rem; line-height: 1.3; }
.policy-content h1 { font-size: 1.6rem; } .policy-content h2 { font-size: 1.3rem; } .policy-content h3 { font-size: 1.12rem; } .policy-content h4 { font-size: 1rem; }
.policy-content > :first-child { margin-top: 0; }
.policy-content p, .policy-content ul, .policy-content ol, .policy-content blockquote, .policy-content table, .policy-content figure { margin-bottom: 1rem; }
.policy-content blockquote { border-left: .25rem solid #cbd5e1; padding: .25rem 0 .25rem 1rem; color: #475569; }
.policy-content img { max-width: 100%; height: auto; border-radius: .5rem; }
.policy-content table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }
.policy-content th, .policy-content td { border: 1px solid #dee2e6; padding: .5rem .65rem; vertical-align: top; }
.policy-content th { background: #f8fafc; }
.policy-content a { word-break: break-word; }
.policy-reader { max-height: min(55vh, 34rem); overflow-y: auto; border: 1px solid #e2e8f0; border-radius: .75rem; padding: 1rem 1.25rem; background: #fff; }
.policy-reader:focus { outline: 2px solid var(--app-focus, #86b7fe); outline-offset: 2px; }
.policy-meta { font-size: .85rem; color: #64748b; }
/* Caixa "Li e aceito": o recuo à esquerda acomoda a caixa de seleção (o .form-check usa margem negativa). */
.policy-check { border: 1px solid #e2e8f0; border-radius: .75rem; padding: .75rem 1rem .75rem 2.75rem; background: #f8fafc; }
.policy-check .form-check-input { width: 1.25em; height: 1.25em; margin-top: .15em; margin-left: -1.75rem; }
@media (prefers-color-scheme: dark) { .policy-reader { background: #fff; } }
