/* Popup do dicionário: livro (--bg, --fg) e manifesto (--papel, --tinta) usam os mesmos tokens de tema. */
.termo-popup {
    --popup-fundo: var(--bg, var(--papel));
    --popup-tinta: var(--fg, var(--tinta));
    --popup-regua: var(--table-border-color, var(--regua));
    position: absolute;
    z-index: 1000;
    width: min(26rem, calc(100vw - 24px));
    padding: 1rem 1.15rem 0.9rem;
    background: var(--popup-fundo);
    color: var(--popup-tinta);
    border: 1px solid var(--popup-regua);
    border-top: 3px solid var(--popup-tinta);
    border-radius: 4px;
    box-shadow: 0 10px 30px rgba(20, 22, 26, 0.18);
    font-family: var(--texto, Georgia, serif);
    font-size: 15px;
    line-height: 1.5;
    text-align: left;
}
.termo-popup[hidden] { display: none; }
.termo-popup p { margin: 0; }
.termo-popup-topo {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.15rem;
}
.termo-popup-nome {
    font-family: var(--display, sans-serif);
    font-size: 20px;
    font-weight: 750;
    letter-spacing: -0.01em;
}
.termo-popup-tipo {
    margin-left: 0.6rem;
    padding: 0.05rem 0.45rem;
    border: 1px solid var(--popup-regua);
    border-radius: 3px;
    font-family: var(--display, sans-serif);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--apagado);
    vertical-align: 0.2em;
}
.termo-popup-fechar {
    appearance: none;
    border: 1px solid var(--popup-regua);
    border-radius: 999px;
    background: transparent;
    color: var(--popup-tinta);
    padding: 0.15rem 0.7rem;
    font-family: var(--display, sans-serif);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}
.termo-popup-fechar:hover { background: var(--popup-tinta); color: var(--popup-fundo); }
.termo-popup-fechar:focus-visible { outline: 2px solid var(--popup-tinta); outline-offset: 2px; }
.termo-popup-extenso {
    font-family: var(--display, sans-serif);
    font-weight: 600;
    font-size: 14px;
    margin-bottom: 0.55rem !important;
}
.termo-popup-traducao { font-weight: 400; color: var(--apagado); }
.termo-popup-descricao { margin-bottom: 0.75rem !important; }
.termo-popup-rodape {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.35rem 1rem;
    padding-top: 0.6rem;
    border-top: 1px solid var(--popup-regua);
    font-family: var(--display, sans-serif);
    font-size: 13px;
    color: var(--apagado);
}
.termo-popup a, .termo-popup a:visited {
    color: var(--popup-tinta);
    text-decoration: underline;
    text-decoration-color: var(--apagado);
    text-underline-offset: 0.2em;
}
.termo-popup-dicionario { font-weight: 600; }
@media (prefers-reduced-motion: no-preference) {
    .termo-popup:not([hidden]) { animation: termo-popup-entra 140ms ease-out; }
    .termo-popup.acima:not([hidden]) { animation-name: termo-popup-entra-acima; }
}
@keyframes termo-popup-entra { from { opacity: 0; transform: translateY(-4px); } }
@keyframes termo-popup-entra-acima { from { opacity: 0; transform: translateY(4px); } }
