.documents-wrapper {
    --bo-cor-primaria: var(--core-color-primary, #63ab43);
    --bo-cor-complementar: var(--core-color-secondary, #63ab43);
    --bo-cor-white: var(--core-color-white, #ffffff);
    --bo-cor-black: var(--core-color-black, #000000);
}

/*docs titles*/
.documents-wrapper .docs-title {
    margin-bottom: 0
}
.documents-wrapper .docs-h1-title {
    font-size: 2em;
}
.documents-wrapper .docs-h2-title {
    font-size: 1.6em;
    margin-bottom: 20px
}
.documents-wrapper .docs-h3-title {
    font-size: 1.2em;
}
.documents-wrapper .docs-h4-title {
    font-size: 1.1em;
}
/*docs titles - end*/

/* Archive page layout with consistent spacing */
.docs-archive-page {
    display: flex;
    flex-direction: column;
    gap: var(--core-gap, 24px);
}
/* Archive page layout - end */



/*balcao online custom loop*/

.balcao-online-grid {
    display: grid;
    gap: var(--core-gap, 24px);
}

/* Docs Layout Grid - Modern Two Column Layout */
.docs-layout-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--core-gap, 24px);
    margin: 2rem 0;
}

.docs-layout-types,
.docs-layout-recent {
    min-width: 0; /* Prevent grid blowout */
}

/* Responsive */
@media (max-width: 900px) {
    .docs-layout-grid {
        grid-template-columns: 1fr;
        gap: var(--core-gap, 24px);
    }
}

/* Modern Doc Layout - [doc_layout] */
.doc-layout-wrapper {
    display: flex;
    flex-direction: column;
    gap: var(--core-gap, 24px);
}

.doc-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--core-gap, 24px);
    /* Both columns always share the row height; the content inside each
       column stretches to fill it (rules below). */
    align-items: stretch;
}

/* Equal-height columns — the content fills the column:
   - types (mosaic): grid rows grow (1fr) to the column height;
   - types (taxonomy cards): wrapper → nav → list are flex/grid that grow;
   - recent: list/grid grows, each card grows (inline list: flex:1,
     adsicore.css; grid layouts: equal rows). */
.doc-layout .doc-types {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.doc-layout .doc-types__grid {
    flex: 1;
    align-content: stretch;
}
.doc-layout .doc-types--taxonomy .core-taxonomy-filter {
    flex: 1;
    display: flex;
    flex-direction: column;
    margin-bottom: 0;
}
.doc-layout .doc-types--taxonomy ul.core-taxonomy-filter__list {
    flex: 1;
    grid-auto-rows: 1fr;
    align-content: stretch;
}
.doc-layout .doc-recent {
    height: 100%;
    /* No flex gap: the title keeps only its own margin, like the types
       column title — otherwise the list starts 1 gap lower than the types. */
    gap: 0;
}
.doc-layout .doc-recent .documentos-button-wrapper--column {
    margin-top: var(--core-gap, 24px);
}
.doc-layout .doc-recent__grid {
    grid-auto-rows: 1fr;
    align-content: stretch;
    margin-bottom: 0;
}

/* columns_ratio — types | recent */
.doc-layout.doc-layout--60-40 { grid-template-columns: 3fr 2fr; }
.doc-layout.doc-layout--40-60 { grid-template-columns: 2fr 3fr; }
.doc-layout.doc-layout--stacked { grid-template-columns: 1fr; }

/* show="types" | "recent" — one sub-module, full width */
.doc-layout.doc-layout--single { grid-template-columns: 1fr; }

.doc-layout__types,
.doc-layout__recent {
    min-width: 0;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.doc-layout__types > *,
.doc-layout__recent > * {
    flex: 1;
}

@media (max-width: 900px) {
    .doc-layout,
    .doc-layout.doc-layout--60-40,
    .doc-layout.doc-layout--40-60 {
        grid-template-columns: 1fr;
        gap: var(--core-gap, 24px);
    }
}

/* Legacy grid classes */
.balcao-online-grid-1 {
    grid-template-columns: 1fr;
}
.balcao-online-grid-2 {
    grid-template-columns: 1fr 1fr;    
}

.bo-archive-content .entry-title {
    display: flex;
    gap: 10px
}
.bo-archive-content .balcao-online-archive-item {
    margin-bottom: 10px
}
.balcao-online-archive-item {
    padding: 0;
    width: 100%;
}
.balcao-online-archive-item-inside {
    padding: 15px 30px;
    display: grid;
    background: rgba(255,255,255,0.5);
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 20px;
    border-radius: var(--core-radius, 5px);
    border: 1px #ddd solid;
}
.balcao-online-archive-btns {
    display: flex;
    flex-flow: column
}
.balcao-online-archive-btns a {
    position: relative;
}
.balcao-online-archive-btns-previsualizar::before {
    content: "\f06e"; /* Eye icon (fa-eye) */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    display: inline-block;
    margin-right: 8px;
}

.balcao-online-archive-btns-transferir::before {
    content: "\f019"; /* Download icon (fa-download) */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    display: inline-block;
    margin-right: 8px;
}

@media (max-width: 768px) {
    .balcao-online-archive-item-inside {
        grid-template-columns: 1fr;
    }
}

/*balcao online custom loop - fim*/

.adsi-bo-search-form ul {
    max-width: 100%;
}
.adsi-bo-container {
    display: flex;
    flex-flow: column;
    width: 100%;
    margin-bottom: 50px;
}

.adsi-bo-header {
    margin: 10px 0
}
.adsi-bo-inline-cats-outside {
    display: flex;
    flex-flow: column;
    gap: 20px;
    height: 100%
}

.adsi-bo-inline-cats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}


.bo-introducao {
    padding: 15px 30px;
    background: var(--bo-cor-white);
    margin: 15px 0
}

.bo-default-sidebar-menu-home {
    display:  inline-block;
    width: 100%;
    padding: 5px 30px 5px 0;
}
.bo-default-sidebar-menu-home:after {
    font-family: "Font Awesome 5 Free"; 
    font-weight: 600; 
    content: "\f100";
    float: right;
    margin-right: -21px;
}
.bo-default-sidebar-menu, .bo-default-sidebar-menu ul {
    margin: 0;
}
.bo-default-sidebar-menu li {
    margin-bottom: 5px;
}
.bo-default-sidebar-menu li a {
    display: inline-block;
    width: 100%;
    padding: 5px 30px 5px 0px;
}
.bo-default-sidebar-menu li a:after {
    font-family: "Font Awesome 5 Free"; 
    font-weight: 600; 
    content: "";
    float: right;
    margin-right: -21px;
}
.bo-default-sidebar-menu li.i-have-kids > a:after {
    content: "\f054";
}
.bo-default-sidebar-menu .children {
    padding-left: 15px;
    display: none
}

.bo-default-sidebar-menu .current-cat > .children, .bo-default-sidebar-menu .current-cat-ancestor > .children {
    display: block;
    border-left: 2px var(--bo-cor-primaria) solid;
}

.bo-file-callout {
    padding: 15px;
    margin-bottom: 10px;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    border: 1px #eee solid;
    border-radius: var(--core-radius, 5px);
}
/* The callout is one link (title + button): it keeps the card colours,
   no underline — themes colour every content link (Enfold .main_color a,
   0,1,1), so the title selector is (0,2,0). */
.bo-file-callout .bo-file-callout-title {
    color: var(--core-docs-text-primary, #1a1a1a);
    font-weight: 600;
}
.bo-file-callout:hover .bo-file-callout-title,
.bo-file-callout:focus-visible .bo-file-callout-title {
    text-decoration: underline;
}
.bo-file-callout .bo-file-callout-btn {
    color: var(--core-docs-button-color, var(--bo-cor-white, #fff));
}

.bo-file-callout-btn {
    text-align: center;
    background: var(--core-docs-button-bg, var(--bo-cor-primaria));
    color: var(--core-docs-button-color, var(--bo-cor-white));
    padding: var(--core-docs-button-padding-y, 10px) var(--core-docs-button-padding-x, 16px);
    border-radius: var(--core-docs-button-radius, 5px);
    font-weight: var(--core-docs-button-weight, 500);
    min-height: var(--core-docs-button-min-height, 44px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    transition: background-color var(--core-transition-base, 0.3s ease);
}
.bo-file-callout-btn:hover {
    background: var(--core-docs-button-bg-hover, var(--bo-cor-complementar));
}
.docs-loop-list {
    display: flex;
    flex-flow: column;
    padding-top: 20px
}
.docs-loop-item {
  display: flex;
  justify-content: space-between;
  padding: 5px 0;
  align-items: center
}
.docs-loop-alldocs {
    margin-top: 20px;
    margin-bottom: 20px;
    display: flex;
}
.docs-loop-nodocs {
    padding: 20px 0;
}

.adsi_balcao_online .bo-bloco-de-documentos {
    margin-bottom: 20px;
}
.adsi_balcao_online h2 {
    margin: 0;
}
.adsi_balcao_online .entry-title a, .adsi_balcao_online .bo-bloco-de-documentos a.bo-file-callout {
    padding: 10px 20px;
    display: grid;
    grid-template-columns: 1fr auto;
}

.adsi-bo-container {
    display: flex;
    flex-flow: column;
    width: 100%;
}

.adsi-bo-header {
    margin: 10px 0
}


.bo-introducao {
  padding: 20px 0px;
  background: var(--bo-cor-white);
  margin: 10px 0 30px 0;
  border-bottom: 1px #e4e2e2 solid;
  border-top: 1px #e4e2e2 solid;
}
.bo-single-content {
    margin-bottom: 30px;
}




.content-bo-search {
  padding: 0 0 20px 0
}

.content-bo-search ul {
    list-style: none;
    margin: 0 0 15px 0;
    display: grid;
    grid-template-columns: 2fr 3fr 1fr 1fr;
    gap: 10px;
}
.content-bo-search li {
  padding-right: 0;
}
.content-bo-search input, .content-bo-search select {
    width: 100%;
    line-height: 100% !important;
    height: 40px !important;
    padding: 5px 10px !important
}
.bo-default-sidebar-menu-home {
    display:  inline-block;
    width: 100%;
    padding: 5px 30px 5px 0;
}
.bo-default-sidebar-menu-home:after {
    font-family: "Font Awesome 5 Free"; 
    font-weight: 600; 
    content: "\f100";
    float: right;
    margin-right: -21px;
}
.bo-default-sidebar-menu, .bo-default-sidebar-menu ul {
    margin: 0;
}
.bo-default-sidebar-menu li {
    margin-bottom: 5px;
}
.bo-default-sidebar-menu li a {
    display: inline-block;
    width: 100%;
    padding: 5px 30px 5px 0px;
}
.bo-default-sidebar-menu li a:after {
    font-family: "Font Awesome 5 Free"; 
    font-weight: 600; 
    content: "";
    float: right;
    margin-right: -21px;
}
.bo-default-sidebar-menu li.i-have-kids > a:after {
    content: "\f054";
}
.bo-default-sidebar-menu .children {
    padding-left: 15px;
    display: none
}

.bo-default-sidebar-menu .current-cat > .children, .bo-default-sidebar-menu .current-cat-ancestor > .children {
    display: block;
    border-left: 2px var(--bo-cor-primaria) solid;
}

.adsi-bo-inline-cat-button {
    padding: 20px;
    line-height: 1.5em;
}

/* Archive/term search ([usearch layout="inline" classes="docs-usearch"]):
   text + Tipo + Ano + button on one row on wide screens. The classic inline
   layout is 2 columns (adsicore.css, `1fr auto`) and the material one only
   gets 4 from 1280px; form + 3 classes beat both. */
@media (min-width: 1024px) {
    form.usearch.usearch--inline.docs-usearch {
        grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) auto;
        align-items: end;
    }
}

/* Cartão em lista: o ritmo vertical é controlado apenas pelo gap, sem
   acumular margens do tema, dos metadados e da linha do último ficheiro. */
.core-card.doc-card--layout-e .doc-card__inline-content {
    grid-template-columns: minmax(0, 1fr) auto;
    width: 100%;
    min-width: 0;
}

.core-card.doc-card--layout-e .doc-card__text-content {
    gap: 0.25rem;
    min-width: 0;
    line-height: 1.4;
}

.core-card.doc-card--layout-e .doc-card__meta-row,
.core-card.doc-card--layout-e .doc-card__date,
.core-card.doc-card--layout-e .doc-card__taxonomy,
.core-card.doc-card--layout-e .doc-card__title,
.core-card.doc-card--layout-e .doc-card__custom-meta,
.core-card.doc-card--layout-e .doc-card__meta-item {
    margin-block: 0;
    line-height: 1.4;
}

.core-card.doc-card--layout-e .doc-card__title-link {
    line-height: inherit;
}

/* Último ficheiro adicionado ("Novo: …"). Um bloco com largura limitada
   permite reticências reais, incluindo quando o texto contém o span do rótulo.
   O texto completo permanece no HTML; a ligação abre a página do documento. */
.core-card .doc-card__custom-meta {
    min-width: 0;
    max-width: 100%;
}

.core-card .doc-card__custom-meta .doc-card__meta-item--ultimo-ficheiro {
    display: block;
    flex: 0 1 100%;
    min-width: 0;
    max-width: 100%;
    margin: 0;
    font-size: max(var(--core-font-min, 0px), 1rem);
    line-height: 1.4;
    color: var(--core-color-text-muted, #595959);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.doc-card__novo-label {
    font-weight: 600;
}


/* Paginação centrada na coluna dos documentos, também quando quebra linha. */
.documents-wrapper .core-pagination .nav-links {
    justify-content: center;
}

/* ==========================================================================
   Lista de ficheiros (DocsFicheiros) — modelos cartao | linha | compacto.
   As opções de Documentos → Opções → Ficheiros só mudam as variáveis
   (--bo-file-*, impressas inline em .bo-ficheiros.bo-ficheiros, 0,2,0).
   O <a> nunca é sublinhado: o sublinhado do pai propagava-se ao tipo/tamanho
   e ao botão; só o título o recebe (por modelo ou pela opção). !important no
   <a> porque há temas com a{text-decoration:underline!important}.
   ========================================================================== */
.bo-ficheiros {
    --bo-file-accent: var(--core-btn-color, var(--core-color-primary, #2c5f8d));
    --bo-file-bg: #ffffff;
    --bo-file-bg-hover: #f9fafb;
    --bo-file-border: #d1d5db;
    --bo-file-border-hover: var(--bo-file-accent);
    --bo-file-radius: var(--core-radius, 8px);
    --bo-file-title: var(--core-docs-text-primary, #1a1a1a);
    --bo-file-title-hover: var(--bo-file-title);
    --bo-file-meta: #4b5563;
    --bo-file-action: var(--bo-file-accent);
    --bo-file-action-text: #ffffff;
    --bo-file-gap: 8px;
    --bo-file-padding: 12px 16px;
    --bo-file-min-height: 72px;
    margin: 0 0 1.5rem;
}
.bo-ficheiros--linha {
    --bo-file-bg: #f4f4f4;
    --bo-file-bg-hover: #ececec;
    --bo-file-border: transparent;
    --bo-file-border-hover: transparent;
    --bo-file-radius: var(--core-radius, 5px);
    --bo-file-title: var(--core-color-link, var(--core-color-primary, #2c5f8d));
    --bo-file-title-hover: var(--core-color-link-hover, var(--bo-file-title));
    --bo-file-action: var(--bo-file-title);
    --bo-file-padding: 12px 20px;
    --bo-file-min-height: 64px;
}
.bo-ficheiros--compacto {
    --bo-file-bg: transparent;
    --bo-file-bg-hover: #f9fafb;
    --bo-file-border-hover: var(--bo-file-border);
    --bo-file-radius: 0;
    --bo-file-gap: 0;
    --bo-file-padding: 10px 8px;
    --bo-file-min-height: 52px;
}

.bo-ficheiros [hidden] {
    display: none !important;
}
.bo-sr {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Listas: anula bullets/margens dos temas (Enfold .entry-content-wrapper ul). */
.bo-ficheiros ul.bo-ficheiros__lista {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--bo-file-gap);
}
.bo-ficheiros ul.bo-ficheiros__lista > li {
    list-style: none;
    margin: 0;
    padding: 0;
}
.bo-ficheiros--compacto ul.bo-ficheiros__lista {
    border-top: 1px solid var(--bo-file-border);
}

/* O cartão: um único link */
.bo-ficheiros a.bo-ficheiro__link {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    min-height: var(--bo-file-min-height);
    padding: var(--bo-file-padding);
    box-sizing: border-box;
    background: var(--bo-file-bg);
    border: 1px solid var(--bo-file-border);
    border-radius: var(--bo-file-radius);
    color: var(--bo-file-title);
    font-weight: inherit;
    text-decoration: none !important;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}
.bo-ficheiros--com-tipo a.bo-ficheiro__link {
    grid-template-columns: auto minmax(0, 1fr) auto;
}
.bo-ficheiros--compacto a.bo-ficheiro__link {
    border-width: 0 0 1px;
}
.bo-ficheiros a.bo-ficheiro__link:hover {
    background: var(--bo-file-bg-hover);
    border-color: var(--bo-file-border-hover);
}
.bo-ficheiros a.bo-ficheiro__link:focus-visible {
    outline: 3px solid #111827;
    outline-offset: 2px;
    box-shadow: 0 0 0 2px #ffffff;
}

.bo-ficheiro__texto {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.bo-ficheiros .bo-ficheiro__titulo {
    color: var(--bo-file-title);
    font-weight: 600;
    line-height: 1.4;
    overflow-wrap: anywhere;
    text-decoration: none;
    text-underline-offset: 3px;
}
.bo-ficheiros--linha .bo-ficheiro__titulo {
    font-weight: 700;
    text-decoration: underline;
}
.bo-ficheiros a.bo-ficheiro__link:is(:hover, :focus-visible) .bo-ficheiro__titulo {
    color: var(--bo-file-title-hover);
    text-decoration: underline;
}
.bo-ficheiro__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 8px;
    color: var(--bo-file-meta);
    font-size: max(var(--core-font-min, 0px), 0.9375rem);
    font-weight: 400;
    line-height: 1.4;
}
.bo-ficheiro__novo {
    padding: 0 8px;
    border-radius: 999px;
    background: #e8eefc;
    color: #1e3a8a;
    font-weight: 600;
}

/* Data do upload por cima do título (bo_ficheiros_data = acima) */
.bo-ficheiro__data {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 10px;
    margin-bottom: 2px;
    color: var(--bo-file-meta);
    font-weight: 400;
    line-height: 1.4;
    font-variant-numeric: tabular-nums;
}
/* Junto à data o "Novo" é uma pílula cheia na cor de destaque (branco sobre a
   cor dos botões: escolhida com ≥ 4.5:1, ver --core-btn-color). */
.bo-ficheiro__data .bo-ficheiro__novo {
    padding: 2px 9px;
    background: var(--bo-file-accent);
    color: #ffffff;
    line-height: 1.2;
}

/* Tipo e tamanho à direita (bo_ficheiros_meta_posicao = direita): coluna com a
   ação + "PDF · 2,8 MB"; o botão de contorno do Cartão dá lugar a texto. */
.bo-ficheiro__lado {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}
.bo-ficheiros--meta-direita .bo-ficheiro__lado .bo-ficheiro__meta {
    flex-wrap: nowrap;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.bo-ficheiros--meta-direita .bo-ficheiro__formato {
    color: var(--bo-file-action);
    font-weight: 600;
}
.bo-ficheiros--meta-direita.bo-ficheiros--cartao .bo-ficheiro__acao {
    min-height: 0;
    padding: 0;
    border: 0;
}
.bo-ficheiros--meta-direita.bo-ficheiros--cartao a.bo-ficheiro__link:is(:hover, :focus-visible) .bo-ficheiro__acao {
    background: none;
    color: var(--bo-file-action);
}

/* Ícone do tipo de ficheiro (decorativo: o tipo também está no texto) */
.bo-ficheiro__tipo {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    width: 44px;
    height: 52px;
    box-sizing: border-box;
    padding-bottom: 8px;
    border-radius: 4px 12px 4px 4px;
    background: #f3f4f6;
    color: #374151;
    font-size: max(var(--core-font-min, 0px), 0.75rem);
    font-weight: 700;
    letter-spacing: 0.03em;
    line-height: 1;
}
.bo-ficheiro__tipo--pdf { background: #fbe9ec; color: #8a1424; }
.bo-ficheiro__tipo--doc { background: #e8eefc; color: #1e3a8a; }
.bo-ficheiro__tipo--xls { background: #e6f4ea; color: #14532d; }
.bo-ficheiro__tipo--ppt { background: #fdeee4; color: #7c2d12; }
.bo-ficheiro__tipo--link { align-items: center; padding-bottom: 0; border-radius: 4px; font-size: 1.125rem; }

/* Ação (Abrir / Descarregar) */
.bo-ficheiro__acao {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--bo-file-action);
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    transition: background-color 0.15s ease, color 0.15s ease;
}
.bo-ficheiros--cartao .bo-ficheiro__acao {
    min-height: 44px;
    padding: 0 16px;
    box-sizing: border-box;
    border: 2px solid var(--bo-file-action);
    border-radius: var(--core-btn-radius, 6px);
}
.bo-ficheiros--cartao a.bo-ficheiro__link:is(:hover, :focus-visible) .bo-ficheiro__acao {
    background: var(--bo-file-action);
    color: var(--bo-file-action-text);
}
.bo-ficheiros--linha a.bo-ficheiro__link:is(:hover, :focus-visible) .bo-ficheiro__acao {
    color: var(--bo-file-title-hover);
}
.bo-ficheiros--compacto .bo-ficheiro__acao {
    min-width: 24px;
    justify-content: center;
}

/* Filtro: campo partilhado CoreFilterField (estilos em adsicore.css). */
.bo-ficheiros .core-filter { --core-filter-gap: 16px; }
.bo-ficheiros__vazio {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
    padding: 16px 20px;
    border: 1px dashed #9ca3af;
    border-radius: var(--core-radius, 8px);
}
.bo-ficheiros .bo-ficheiros__limpar {
    min-height: 44px;
    padding: 0 16px;
    font: inherit;
    font-weight: 600;
    color: var(--bo-file-accent);
    background: #ffffff;
    border: 2px solid var(--bo-file-accent);
    border-radius: var(--core-btn-radius, 6px);
    cursor: pointer;
}
.bo-ficheiros .bo-ficheiros__limpar:focus-visible {
    outline: 3px solid #111827;
    outline-offset: 2px;
}

/* Grupos por mês */
.bo-ficheiros__grupos {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.bo-ficheiros__grupo {
    margin: 0;
}
.bo-ficheiros .bo-ficheiros__grupo-sumario {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 48px;
    cursor: pointer;
    font-size: 1.125rem;
    font-weight: 700;
    list-style: none;
}
.bo-ficheiros__grupo-sumario::-webkit-details-marker {
    display: none;
}
.bo-ficheiros__grupo-sumario::before {
    content: "";
    flex: none;
    width: 0.5em;
    height: 0.5em;
    margin: 0 0.2em;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(-45deg);
    transition: transform 0.15s ease;
}
.bo-ficheiros__grupo[open] > .bo-ficheiros__grupo-sumario::before {
    transform: rotate(45deg);
}
.bo-ficheiros__grupo-sumario:focus-visible {
    outline: 3px solid #111827;
    outline-offset: 2px;
}
.bo-ficheiros__grupo-contagem {
    color: #4b5563;
    font-size: 1rem;
    font-weight: 400;
}
.bo-ficheiros__grupo > .bo-ficheiros__lista {
    margin-top: 8px;
}

/* Ecrãs estreitos: a ação passa para baixo do título (o compacto mantém o ícone) */
@media (max-width: 480px) {
    .bo-ficheiros:not(.bo-ficheiros--compacto) a.bo-ficheiro__link {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }
    .bo-ficheiros--com-tipo:not(.bo-ficheiros--compacto) a.bo-ficheiro__link {
        grid-template-columns: auto minmax(0, 1fr);
    }
    .bo-ficheiros--com-tipo:not(.bo-ficheiros--compacto) .bo-ficheiro__acao {
        grid-column: 2;
    }
    .bo-ficheiros:not(.bo-ficheiros--compacto) .bo-ficheiro__acao,
    .bo-ficheiros:not(.bo-ficheiros--compacto) .bo-ficheiro__lado {
        justify-self: start;
    }
    .bo-ficheiros--com-tipo:not(.bo-ficheiros--compacto) .bo-ficheiro__lado {
        grid-column: 2;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bo-ficheiros a.bo-ficheiro__link,
    .bo-ficheiro__acao,
    .bo-ficheiros__grupo-sumario::before {
        transition: none;
    }
}
