/* Ajuste de navegação e leitura em telas pequenas, 2026-10-02. */
@media (max-width: 760px) {
    body .portal-header { flex-direction: column; align-items: stretch; gap: 12px; min-height: 0; padding: 14px 16px; }
    .portal-header .portal-brand { min-width: 0; gap: 10px; }
    .portal-header .portal-brand strong { font-size: 1rem; line-height: 1.25; }
    .portal-header .portal-brand small { font-size: .8rem; }
    .portal-header .portal-logo { width: 42px; height: 42px; max-width: 42px; max-height: 42px; flex-basis: 42px; }
    .portal-header .portal-user { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 6px 8px; width: 100%; min-width: 0; }
    .portal-header .portal-user > span { flex: 1 0 100%; font-size: .8rem; color: var(--muted); overflow-wrap: anywhere; }
    .portal-header .portal-user > a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 12px; font-size: .85rem; line-height: 1.25; text-decoration: none; }
    .portal-header .portal-user > form { margin: 0; }
    .portal-header .portal-user button { min-height: 44px; padding: 8px 14px; font: inherit; font-size: .85rem; }
    .portal-header a:focus-visible, .portal-header button:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
    .dashboard-heading .dashboard-actions { width: 100%; }
    .dashboard-heading .dashboard-actions .portal-button { min-height: 48px; padding: 10px 16px; line-height: 1.35; white-space: normal; }
    .portal-main .hymn-book { width: auto; margin: 0 16px; padding: 20px 0 28px; }
    .portal-main .hymn-hero { gap: 16px; }
    .portal-main .hymn-hero > div { min-width: 0; }
    .portal-main .hymn-cover { flex-shrink: 0; }
    .portal-main .hymn-search { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
    .portal-main .hymn-search label { grid-column: 1 / -1; }
    .portal-main .hymn-search input { width: 100%; min-width: 0; font-size: 16px; min-height: 44px; }
    .portal-main .hymn-search button { min-height: 44px; }
    .portal-main .hymn-search > a { grid-column: 1 / -1; display: inline-flex; align-items: center; min-height: 44px; }
    .portal-main .hymn-intro summary { min-height: 44px; padding: 10px 0; }
    .portal-main .hymn-text { font-size: 1.0625rem; line-height: 1.8; }
    .portal-main .hymn-nav { flex-direction: column; gap: 10px; }
    .portal-main .hymn-nav a { display: flex; align-items: center; min-height: 44px; }
}
@media (max-width: 380px) {
    .portal-main .hymn-hero { flex-direction: column; }
}
