.publicacao-mapa { height: 55vh; min-height: 360px; background: #393b3e; }
.publicacao-mapa .leaflet-container { background: #393b3e; }
.publicacao-pino { background: transparent; border: 0; }
.publicacao-pino span {
    display: grid; place-items: center; width: 30px; height: 30px;
    background: #d8a078; color: #202124; border: 2px solid #eee9e2;
    border-radius: 50% 50% 50% 0; transform: rotate(-45deg);
    box-shadow: 0 2px 4px #0008;
}
.publicacao-pino b { transform: rotate(45deg); font: bold 13px Arial, sans-serif; }
.publicacao-previews { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-start; }
.publicacao-previews figure { margin: 0; width: min(100%, 480px); }
.publicacao-previews canvas { display: block; width: 100%; height: auto; border-radius: 5px; box-shadow: 0 3px 14px #0003; }
.publicacao-previews figcaption { margin-top: 8px; }
.publicacao-mapa .leaflet-control-attribution { font-size: 10px; }

.publicacao-editor-titulo { max-width: 760px; }
.publicacao-previews canvas { aspect-ratio: 4 / 5; }

/* Bootstrap utilitários usam !important: o atributo hidden prevalece nesta página. */
[hidden][id^="publicacao"], .publicacao-editor-titulo[hidden], #publicacaoResultado [hidden] { display:none !important; }

/* Alinha os campos pelo topo, independentemente dos textos de ajuda. */
.publicacao-filtros-campos > .form-check {
    padding-top: calc(1.5em + .5rem + .375rem);
}

.publicacao-filtros-campos > button[type="submit"] {
    margin-top: calc(1.5em + .5rem);
}

/* No telemóvel, as opções podem ocupar linhas próprias. */
@media (max-width: 575.98px) {
    .publicacao-filtros-campos > .form-check {
        flex-basis: 100%;
        padding-top: 0;
    }

    .publicacao-filtros-campos > button[type="submit"] {
        margin-top: 0;
    }
}