.hub-busca[b-ygwx396f7e] { display: flex; flex-direction: column; gap: 8px; max-width: 760px; margin-top: 10px; }
.hub-busca textarea[b-ygwx396f7e] { width: 100%; padding: 12px; border: 1px solid #c4e1fa; border-radius: 12px; font: inherit; resize: vertical; background: #fff; box-shadow: 0 4px 14px rgba(46, 130, 200, .12); }
.hub-busca button[b-ygwx396f7e] { align-self: flex-start; padding: 12px 22px; border: 0; border-radius: 10px; background: #1857ad; color: #fff; font-weight: 700; cursor: pointer; transition: transform .15s, box-shadow .15s; }
.hub-busca button:hover[b-ygwx396f7e] { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(24, 87, 173, .3); }

.hub-lista[b-ygwx396f7e] { margin: 26px 0; }
.hub-lista h2[b-ygwx396f7e] { font-size: 1.25rem; margin: 0 0 14px; color: #0f3557; }
.hub-grade[b-ygwx396f7e] { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.hub-card[b-ygwx396f7e] {
    display: flex; flex-direction: column; justify-content: space-between; gap: 8px; padding: 16px; border-radius: 16px;
    border: 1px solid #c4e1fa; border-left: 4px solid #2e82c8; background: #fff; text-decoration: none; color: #0f3557;
    box-shadow: 0 4px 14px rgba(46, 130, 200, .08);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.hub-card:hover[b-ygwx396f7e] { transform: translateY(-4px); border-color: #1857ad; box-shadow: 0 12px 26px rgba(46, 130, 200, .22); }
/* nome de assunto da BNCC é frase inteira: quebra em vez de estourar a caixa */
.hub-card strong[b-ygwx396f7e] { color: #1857ad; font-size: .98rem; line-height: 1.35; overflow-wrap: anywhere; }
.hub-qtd[b-ygwx396f7e] { font-size: .82rem; color: #475569; }

.hub-btn[b-ygwx396f7e] { display: block; margin-top: 8px; padding: 10px 14px; border-radius: 10px; background: #1857ad; color: #fff !important; font-weight: 700; text-align: center; text-decoration: none; }
.hub-btn-sec[b-ygwx396f7e] { background: #fff; color: #1857ad !important; border: 1px solid #1857ad; }

.hub-vazio[b-ygwx396f7e] { max-width: 640px; margin: 60px auto; text-align: center; color: #0f3557; }
.hub-vazio a[b-ygwx396f7e] { color: #1857ad; }

@media (prefers-reduced-motion: reduce) { .hub-card[b-ygwx396f7e], .hub-busca button[b-ygwx396f7e] { transition: none; } }
