.wp-block-dx-hub-report.dx-hub-report {
    --dx-dark: #123946;
    --dx-text: #173f4b;
    --dx-green: #98ca81;
    --dx-yellow: #f4bb10;
    --dx-blue: #348daa;
    --dx-purple: #a763b8;
    --dx-light-blue: #dceff4;
    --dx-soft-gray: #f3f3f3;
    --dx-line: #9aa3a6;
    --dx-font-sans: Inter, Helvetica, Arial, sans-serif;
    --dx-font-serif: "Roboto Slab", Georgia, serif;
    box-sizing: border-box;
    width: min(100%, 1120px);
    margin-left: auto;
    margin-right: auto;
    color: var(--dx-text);
    font-family: var(--dx-font-sans);
    font-size: 17px;
    line-height: 1.5;
    min-width: 0;
}

.wp-block-dx-hub-report.dx-hub-report.dx-menu-layout--lateral {
    width: min(100%, 1380px);
}

.wp-block-dx-hub-report.dx-hub-report *,
.wp-block-dx-hub-report.dx-hub-report *::before,
.wp-block-dx-hub-report.dx-hub-report *::after { box-sizing: border-box; }

.dx-hub-report .dx-hub-shell,
.dx-hub-report .dx-hub-content { min-width: 0; }
.dx-hub-report .dx-hub-content { width: 100%; }
.dx-hub-report .wp-block-group { margin-block-start: 0; }
.dx-hub-report p { margin: 0 0 1.05em; }
.dx-hub-report h2,
.dx-hub-report h3,
.dx-hub-report h4 { color: var(--dx-dark); }

.dx-hub-report h2,
.dx-hub-report .dx-section-title,
.dx-hub-report .dx-band-heading,
.dx-hub-report .dx-comparison-title,
.dx-hub-report .dx-panorama-title,
.dx-hub-report .dx-hub-heading,
.dx-hub-report .dx-alert-topic-title,
.dx-hub-report .dx-trend-title,
.dx-hub-report .dx-race-badge,
.dx-hub-report .dx-engagement-title,
.dx-hub-report .dx-narratives-title,
.dx-hub-report .dx-state-title {
    font-family: var(--dx-font-serif);
}

.dx-hub-report .dx-body-copy,
.dx-hub-report .dx-item-title,
.dx-hub-report .dx-item-lead,
.dx-hub-report .dx-state-subtitle,
.dx-hub-report .dx-state-lead,
.dx-hub-report .dx-table,
.dx-hub-report .dx-table-title,
.dx-hub-report .dx-hub-anchor-menu {
    font-family: var(--dx-font-sans);
}

.dx-hub-report .dx-section-title {
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    line-height: 1.08;
    margin: 0 0 1.2rem;
    padding-bottom: .15rem;
    border-bottom: 1px solid var(--dx-dark);
    width: fit-content;
}

.dx-hub-report .dx-body-copy { font-size: 1rem; line-height: 1.5; }

.dx-region--norte { --dx-accent: var(--dx-green); }
.dx-region--centro { --dx-accent: var(--dx-yellow); }
.dx-region--sudeste { --dx-accent: var(--dx-blue); }
.dx-region--sul { --dx-accent: var(--dx-purple); }

.dx-hub-report .dx-hub-summary { margin: 0 0 3.25rem; }
.dx-hub-report .dx-hub-heading-row,
.dx-hub-report .dx-region-heading-row {
    gap: .75rem;
    align-items: center;
    margin-bottom: .75rem;
}

.dx-hub-report .dx-hub-icon {
    flex: 0 0 auto;
    width: 58px;
    margin: 0;
}
.dx-hub-report .dx-hub-icon img { width: 100%; height: auto; display: block; }
.dx-hub-report .dx-hub-icon--region { width: 68px; }

.dx-hub-report .dx-hub-heading {
    display: inline-block;
    width: fit-content;
    margin: 0;
    padding: .08em .22em .12em;
    background: var(--dx-accent);
    font-size: clamp(1.55rem, 2.7vw, 2.15rem);
    line-height: 1.05;
    font-weight: 700;
}
.dx-region--sudeste .dx-hub-heading,
.dx-region--sul .dx-hub-heading { color: #fff; }

.dx-hub-report .dx-band {
    margin: 3rem 0 1.25rem;
    padding: .55rem 1.25rem;
}
.dx-hub-report .dx-band--light { background: var(--dx-light-blue); }
.dx-hub-report .dx-band--alert { background: var(--dx-yellow); }
.dx-hub-report .dx-band--dark { background: var(--dx-dark); }
.dx-hub-report .dx-band-row { gap: .9rem; align-items: center; }
.dx-hub-report .dx-band-heading {
    margin: 0;
    font-size: clamp(1.7rem, 3vw, 2.3rem);
    line-height: 1.1;
}
.dx-hub-report .dx-band--dark .dx-band-heading { color: #fff; }
.dx-hub-report .dx-band-icon { width: 48px; margin: 0; flex: 0 0 auto; }
.dx-hub-report .dx-band-icon img { width: 100%; height: auto; display: block; }
.dx-hub-report .dx-band-icon--trends { width: 44px; }

.dx-hub-report .dx-highlights-list {
    padding-left: 1.75rem;
    margin: 0 0 3.5rem;
}
.dx-hub-report .dx-highlights-list li { margin-bottom: .8rem; padding-left: .15rem; }
.dx-hub-report .dx-highlights-list li::marker { color: var(--dx-dark); }

.dx-hub-report .dx-comparison-hero {
    background: var(--dx-soft-gray);
    margin: 3rem 0 1.35rem;
    padding: 1.4rem 1.25rem;
}
.dx-hub-report .dx-comparison-row { justify-content: flex-start; gap: 1rem; }
.dx-hub-report .dx-comparison-title {
    margin: 0;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: .98;
    max-width: 420px;
}
.dx-hub-report .dx-comparison-icon { width: 76px; margin: 0; }
.dx-hub-report .dx-comparison-icon img { width: 100%; height: auto; display: block; }
.dx-hub-report .dx-comparison-items { margin-bottom: 3rem; }
.dx-hub-report .dx-item-title {
    margin: 1.8rem 0 .3rem;
    font-size: 1.05rem;
    font-weight: 700;
}
.dx-hub-report .dx-item-lead { margin: .35rem 0; }

.dx-hub-report .dx-alert-topics { margin-bottom: 3.2rem; }
.dx-hub-report .dx-alert-topic { margin: 0 0 2rem; }
.dx-hub-report .dx-alert-topic-title,
.dx-hub-report .dx-trend-title {
    position: relative;
    display: flex;
    align-items: center;
    gap: .55rem;
    margin: 0 0 .65rem;
    padding-bottom: .22rem;
    border-bottom: 2px solid var(--dx-yellow);
    font-size: clamp(1.35rem, 2.5vw, 1.8rem);
}
.dx-hub-report .dx-alert-topic-title::before {
    content: '◉';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35em;
    height: 1.35em;
    border-radius: 999px;
    background: var(--dx-dark);
    color: var(--dx-yellow);
    font-family: var(--dx-font-sans);
    font-size: .62em;
    flex: 0 0 auto;
}

.dx-hub-report .dx-trends { margin: 2rem 0 4rem; }
.dx-hub-report .dx-trend-item { margin: 0 0 2.6rem; }
.dx-hub-report .dx-trend-title { border-bottom-color: #55a5ba; }
.dx-hub-report .dx-trend-title::before {
    content: '⌕';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5em;
    height: 1.5em;
    border-radius: 999px;
    background: var(--dx-dark);
    color: #8bc7d6;
    font-family: var(--dx-font-sans);
    font-size: .65em;
}

.dx-hub-report .dx-panorama-band {
    margin: 3.5rem 0 2.25rem;
    padding: 1.4rem 1.25rem;
    background: var(--dx-dark);
}
.dx-hub-report .dx-panorama-title {
    margin: 0;
    color: #fff;
    font-size: clamp(2rem, 4vw, 3.1rem);
    line-height: 1;
    text-transform: none;
}

.dx-hub-report .dx-region-section {
    margin: 0 0 5rem;
    padding-top: .5rem;
}
.dx-hub-report .dx-region-heading-row {
    padding-top: 1.75rem;
    border-top: 1px solid var(--dx-line);
    margin-bottom: 2.2rem;
}
.dx-hub-report .dx-region-section:first-of-type .dx-region-heading-row { border-top: 0; }
.dx-hub-report .dx-race-section { margin: 0 0 4.8rem; }
.dx-hub-report .dx-race-badge {
    display: inline-block;
    width: fit-content;
    margin: 0 0 2.5rem;
    padding: .12em .32em .18em;
    background: var(--dx-accent);
    color: var(--dx-dark);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    line-height: 1.05;
}
.dx-region--sudeste .dx-race-badge,
.dx-region--sul .dx-race-badge { color: #fff; }

.dx-hub-report .dx-engagement-heading,
.dx-hub-report .dx-mini-section-title {
    gap: .65rem;
    align-items: center;
    margin: 0 0 1.55rem;
}
.dx-hub-report .dx-engagement-icon { width: 38px; margin: 0; flex: 0 0 auto; }
.dx-hub-report .dx-engagement-icon img { width: 100%; height: auto; display: block; }
.dx-hub-report .dx-engagement-title,
.dx-hub-report .dx-narratives-title {
    margin: 0;
    font-size: clamp(1.15rem, 2vw, 1.5rem);
    line-height: 1.2;
}

/* Títulos de tabelas são sans-serif, como o corpo editorial. */
.dx-hub-report .dx-table-title {
    margin: 2rem 0 .45rem;
    font-family: var(--dx-font-sans);
    font-size: clamp(1.08rem, 1.8vw, 1.35rem);
    line-height: 1.25;
    font-weight: 700;
}

/* Tabelas sem largura mínima: no desktop elas comprimem; no mobile viram cards. */
.dx-hub-report .wp-block-table.dx-table {
    width: 100%;
    max-width: 100%;
    overflow: visible !important;
    margin: 0 0 1.55rem;
}
.dx-hub-report .dx-table table {
    width: 100%;
    max-width: 100%;
    min-width: 0 !important;
    table-layout: fixed;
    border-collapse: collapse;
    margin: 0;
    font-family: var(--dx-font-sans);
    font-size: clamp(.72rem, 1.15vw, .9rem);
    line-height: 1.2;
}
.dx-hub-report .dx-table th,
.dx-hub-report .dx-table td {
    min-width: 0;
    border: 1px solid #333;
    padding: clamp(.35rem, .8vw, .55rem) clamp(.3rem, .9vw, .65rem);
    text-align: center;
    vertical-align: middle;
    overflow-wrap: anywhere;
    word-break: normal;
}
.dx-hub-report .dx-table thead th {
    background: var(--dx-accent);
    color: var(--dx-dark);
    font-family: var(--dx-font-sans);
    font-weight: 700;
}
.dx-region--sudeste .dx-table thead th,
.dx-region--sul .dx-table thead th { color: #fff; }
.dx-hub-report .dx-table tbody td:first-child { font-weight: 700; }
.dx-hub-report .dx-table a { overflow-wrap: anywhere; word-break: break-word; }
.dx-hub-report .dx-table--compare th:nth-child(1),
.dx-hub-report .dx-table--compare td:nth-child(1) { width: 18%; }
.dx-hub-report .dx-table--performance th:nth-child(1),
.dx-hub-report .dx-table--performance td:nth-child(1) { width: 12%; }
.dx-hub-report .dx-table--performance th:nth-child(2),
.dx-hub-report .dx-table--performance td:nth-child(2) { width: 25%; }
.dx-hub-report .dx-table--performance th:nth-child(3),
.dx-hub-report .dx-table--performance td:nth-child(3) { width: 15%; }
.dx-hub-report .dx-table--performance th:nth-child(4),
.dx-hub-report .dx-table--performance td:nth-child(4) { width: 17%; }
.dx-hub-report .dx-table--performance th:nth-child(5),
.dx-hub-report .dx-table--performance td:nth-child(5) { width: 31%; }

.dx-hub-report .dx-narratives {
    margin: 3.8rem 0 0;
    padding-top: 1.5rem;
    border-top: 1px solid var(--dx-line);
}
.dx-hub-report .dx-mini-icon { width: 34px; margin: 0; flex: 0 0 auto; }
.dx-hub-report .dx-mini-icon img { width: 100%; height: auto; display: block; }
.dx-hub-report .dx-state-narrative { margin: 0 0 3rem; }
.dx-hub-report .dx-state-heading-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: .8rem;
    margin: 0 0 .55rem;
}
.dx-hub-report .wp-block-image.dx-state-map-frame {
    width: 78px;
    aspect-ratio: 1 / 1;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 7px;
    border: 1px solid transparent;
    border-radius: 50%;
}
.dx-hub-report .wp-block-image.dx-state-map-frame img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center;
}
.dx-hub-report .dx-state-title {
    min-width: 0;
    margin: 0;
    font-size: clamp(1.45rem, 2.6vw, 2rem);
    line-height: 1.1;
    font-weight: 700;
}
.dx-hub-report .dx-state-subtitle {
    margin: 0 0 .15rem;
    font-size: 1.08rem;
    font-weight: 700;
}
.dx-hub-report .dx-state-lead { margin: 0 0 .15rem; }

.dx-hub-report .dx-final-separator { margin: 2rem 0 2.2rem; border-top-color: var(--dx-line); }
.dx-hub-report .dx-notes-title { margin-bottom: .35rem; border-bottom: 0; }
.dx-hub-report .dx-notes-copy { margin-bottom: 4rem; }

/* Menu âncora */
.dx-hub-report .dx-hub-anchor-menu {
    width: 100%;
    min-width: 0;
    margin: 0 0 2rem;
    padding: .8rem;
    background: rgba(255,255,255,.98);
    border: 1px solid #d7dde0;
    box-shadow: 0 6px 22px rgba(18,57,70,.08);
    z-index: 30;
    font-family: var(--dx-font-sans);
    text-transform: none;
}
.dx-hub-report .dx-anchor-menu-title {
    color: var(--dx-dark);
    font-family: var(--dx-font-sans);
    font-weight: 700;
    font-size: .88rem;
    line-height: 1.2;
    text-transform: none;
}
.dx-hub-report .dx-hub-anchor-links { min-width: 0; }
.dx-hub-report .dx-hub-anchor-links a,
.dx-hub-report .dx-anchor-preview-item {
    color: var(--dx-dark);
    background: #fff;
    border: 1px solid #d7dde0;
    font-family: var(--dx-font-sans);
    font-size: .78rem;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    text-transform: none;
    white-space: normal;
    overflow-wrap: anywhere;
}
.dx-hub-report .dx-hub-anchor-links a:hover,
.dx-hub-report .dx-hub-anchor-links a:focus-visible,
.dx-hub-report .dx-hub-anchor-links a.is-active {
    background: var(--dx-dark);
    border-color: var(--dx-dark);
    color: #fff;
    outline: none;
}

/* Horizontal: quebra em várias linhas, nunca cria rolagem horizontal. */
.dx-menu-layout--horizontal .dx-hub-anchor-menu {
    display: flex;
    align-items: flex-start;
    gap: .75rem 1rem;
}
.dx-menu-layout--horizontal .dx-anchor-menu-title {
    flex: 0 0 auto;
    padding-top: .4rem;
}
.dx-menu-layout--horizontal .dx-hub-anchor-links {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    gap: .45rem;
    overflow: visible;
}
.dx-menu-layout--horizontal .dx-hub-anchor-links a,
.dx-menu-layout--horizontal .dx-anchor-preview-item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 145px;
    min-height: 34px;
    padding: .35rem .6rem;
    border-radius: 999px;
    text-align: center;
}

/* Lateral: menu em coluna e conteúdo ao lado. */
.dx-menu-layout--lateral .dx-hub-shell {
    display: grid;
    grid-template-columns: minmax(190px, 220px) minmax(0, 1fr);
    gap: 0 52px;
    align-items: start;
    padding-top: 1rem;
}
.dx-menu-layout--lateral .dx-hub-anchor-menu {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
    padding: .9rem;
}
.dx-menu-layout--lateral .dx-hub-content {
    grid-column: 2;
    grid-row: 1;
}
.dx-menu-layout--lateral .dx-anchor-menu-title {
    display: block;
    margin-bottom: .65rem;
}
.dx-menu-layout--lateral .dx-hub-anchor-links {
    display: flex;
    flex-direction: column;
    gap: .38rem;
    overflow: visible;
}
.dx-menu-layout--lateral .dx-hub-anchor-links a,
.dx-menu-layout--lateral .dx-anchor-preview-item {
    display: block;
    width: 100%;
    padding: .48rem .55rem;
    border-radius: 8px;
}

.dx-hub-report.dx-menu-sticky .dx-hub-anchor-menu { position: sticky; top: 88px; }
body.admin-bar .dx-hub-report.dx-menu-sticky .dx-hub-anchor-menu { top: 120px; }
.dx-hub-report h2[id] { scroll-margin-top: 120px; }

@media (max-width: 1100px) {
    .wp-block-dx-hub-report.dx-hub-report.dx-menu-layout--lateral { width: min(100%, 1120px); }
    .dx-menu-layout--lateral .dx-hub-shell { display: block; padding-top: .75rem; }
    .dx-menu-layout--lateral .dx-hub-anchor-menu {
        display: flex;
        align-items: flex-start;
        gap: .75rem 1rem;
        margin: 0 0 2rem;
    }
    .dx-menu-layout--lateral .dx-anchor-menu-title {
        flex: 0 0 auto;
        margin: 0;
        padding-top: .4rem;
    }
    .dx-menu-layout--lateral .dx-hub-anchor-links {
        flex: 1 1 auto;
        flex-direction: row;
        flex-wrap: wrap;
        gap: .45rem;
    }
    .dx-menu-layout--lateral .dx-hub-anchor-links a,
    .dx-menu-layout--lateral .dx-anchor-preview-item {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex: 1 1 145px;
        width: auto;
        min-height: 34px;
        padding: .35rem .6rem;
        border-radius: 999px;
        text-align: center;
    }
}

@media (max-width: 782px) {
    .dx-hub-report.dx-menu-sticky .dx-hub-anchor-menu { top: 82px; }
    body.admin-bar .dx-hub-report.dx-menu-sticky .dx-hub-anchor-menu { top: 128px; }
}

@media (max-width: 760px) {
    .wp-block-dx-hub-report.dx-hub-report {
        font-size: 16px;
        padding-left: 2px;
        padding-right: 2px;
    }

    .dx-hub-report .dx-hub-anchor-menu,
    .dx-menu-layout--lateral .dx-hub-anchor-menu {
        display: block;
        padding: .65rem;
    }
    .dx-hub-report .dx-anchor-menu-title,
    .dx-menu-layout--lateral .dx-anchor-menu-title {
        display: block;
        margin: 0 0 .55rem;
        padding: 0;
    }
    .dx-hub-report .dx-hub-anchor-links,
    .dx-menu-layout--lateral .dx-hub-anchor-links {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .4rem;
    }
    .dx-hub-report .dx-hub-anchor-links a,
    .dx-hub-report .dx-anchor-preview-item,
    .dx-menu-layout--lateral .dx-hub-anchor-links a,
    .dx-menu-layout--lateral .dx-anchor-preview-item {
        display: flex;
        width: 100%;
        min-width: 0;
        min-height: 38px;
        padding: .4rem .45rem;
        border-radius: 8px;
    }

    .dx-hub-report .dx-hub-heading-row,
    .dx-hub-report .dx-region-heading-row,
    .dx-hub-report .dx-comparison-row,
    .dx-hub-report .dx-band-row,
    .dx-hub-report .dx-engagement-heading,
    .dx-hub-report .dx-mini-section-title,
    .dx-hub-report .dx-state-heading-row { align-items: center; }

    .dx-hub-report .dx-hub-icon { width: 48px; }
    .dx-hub-report .dx-hub-icon--region { width: 54px; }
    .dx-hub-report .dx-band { margin-left: 0; margin-right: 0; padding: .65rem .8rem; }
    .dx-hub-report .dx-comparison-hero { padding: 1.1rem .85rem; }
    .dx-hub-report .dx-comparison-title { font-size: 2rem; }
    .dx-hub-report .dx-comparison-icon { width: 54px; }

    /* Tabelas em cards verticais: nenhum scroll horizontal. */
    .dx-hub-report .wp-block-table.dx-table,
    .dx-hub-report .dx-table table,
    .dx-hub-report .dx-table tbody,
    .dx-hub-report .dx-table tr { display: block; width: 100%; }
    .dx-hub-report .dx-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        white-space: nowrap;
    }
    .dx-hub-report .dx-table tr {
        margin: 0 0 .8rem;
        border: 1px solid #333;
        background: #fff;
    }
    .dx-hub-report .dx-table td,
    .dx-hub-report .dx-table--compare td,
    .dx-hub-report .dx-table--performance td {
        display: grid;
        grid-template-columns: minmax(105px, 38%) minmax(0, 1fr);
        gap: .65rem;
        align-items: center;
        width: 100% !important;
        min-height: 42px;
        border: 0;
        border-bottom: 1px solid #d7dde0;
        padding: .5rem .6rem;
        text-align: left;
        font-size: .88rem;
    }
    .dx-hub-report .dx-table td:last-child { border-bottom: 0; }
    .dx-hub-report .dx-table td::before {
        color: var(--dx-dark);
        font-family: var(--dx-font-sans);
        font-weight: 700;
        line-height: 1.15;
    }
    .dx-hub-report .dx-table--compare td:nth-child(1)::before { content: 'Estado'; }
    .dx-hub-report .dx-table--compare td:nth-child(2)::before { content: 'Candidaturas monitoradas'; }
    .dx-hub-report .dx-table--compare td:nth-child(3)::before { content: 'Publicações'; }
    .dx-hub-report .dx-table--compare td:nth-child(4)::before { content: 'Interações totais'; }
    .dx-hub-report .dx-table--performance td:nth-child(1)::before { content: 'Estado'; }
    .dx-hub-report .dx-table--performance td:nth-child(2)::before { content: 'Candidatura'; }
    .dx-hub-report .dx-table--performance td:nth-child(3)::before { content: 'Publicações'; }
    .dx-hub-report .dx-table--performance td:nth-child(4)::before { content: 'Interações'; }
    .dx-hub-report .dx-table--performance td:nth-child(5)::before { content: 'Maior desempenho'; }
    .dx-hub-report .dx-table tbody td:first-child {
        background: color-mix(in srgb, var(--dx-accent) 18%, white);
    }

    .dx-hub-report .wp-block-image.dx-state-map-frame { width: 66px; padding: 6px; }
    .dx-hub-report .dx-state-title { font-size: 1.45rem; }
    .dx-hub-report .dx-region-section { margin-bottom: 3.7rem; }
    .dx-hub-report .dx-race-section { margin-bottom: 3.8rem; }
}

@media (max-width: 480px) {
    .dx-hub-report .dx-hub-anchor-links,
    .dx-menu-layout--lateral .dx-hub-anchor-links { grid-template-columns: 1fr; }
    .dx-hub-report .dx-table td,
    .dx-hub-report .dx-table--compare td,
    .dx-hub-report .dx-table--performance td {
        grid-template-columns: minmax(92px, 36%) minmax(0, 1fr);
        font-size: .84rem;
    }
    .dx-hub-report .wp-block-image.dx-state-map-frame { width: 60px; }
    .dx-hub-report .dx-state-heading-row { gap: .6rem; }
}

/* =========================================================
   EXPEDIENTE HUB — v0.3.0
   Escopo isolado dentro do relatório e compatível com o bloco avulso.
   ========================================================= */
.dx-hub-report .dx-expediente,
.wp-block-dx-hub-expediente .dx-expediente,
.dx-hub-report .dx-expediente *,
.wp-block-dx-hub-expediente .dx-expediente * {
    box-sizing: border-box;
}

.dx-hub-report .dx-expediente,
.wp-block-dx-hub-expediente .dx-expediente {
    --hubs-exp-navy: #123f49;
    --hubs-exp-navy-deep: #0b323b;
    --hubs-exp-teal: #3b92a5;
    --hubs-exp-green: #9aca7e;
    --hubs-exp-bg: #f4f7f6;
    --hubs-exp-white: #ffffff;
    --hubs-exp-text: #173e47;
    --hubs-exp-muted: #5c7176;
    --hubs-exp-line: #dce5e3;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 4rem 0 0;
    color: var(--hubs-exp-text);
    font-family: var(--dx-font-sans, Inter, Helvetica, Arial, sans-serif);
    font-size: 15px;
    line-height: 1.45;
    overflow-x: clip;
}

.dx-expediente img { display: block; max-width: 100%; height: auto; }
.dx-expediente .hubs-exp-shell {
    width: 100%;
    min-width: 0;
    overflow: hidden;
    background: var(--hubs-exp-white);
    border-radius: 20px;
    box-shadow: 0 18px 55px rgba(11, 50, 59, .10);
}
.dx-expediente .hubs-exp-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(2rem, 5vw, 3.25rem);
    color: var(--hubs-exp-white);
    background-color: var(--hubs-exp-navy-deep);
    background-image: linear-gradient(90deg, rgba(11,50,59,.98) 0%, rgba(11,50,59,.94) 38%, rgba(11,50,59,.78) 68%, rgba(11,50,59,.63) 100%), url("https://institutodx.org/wp-content/uploads/2026/08/fotocapa2.png");
    background-repeat: no-repeat;
    background-position: center right;
    background-size: cover;
}
.dx-expediente .hubs-exp-hero-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(210px,.75fr) minmax(0,1.25fr);
    gap: clamp(1.5rem, 4vw, 3.25rem);
    align-items: center;
    min-width: 0;
}
.dx-expediente .hubs-exp-title {
    margin: 0;
    color: var(--hubs-exp-white) !important;
    font-family: var(--dx-font-sans, Inter, Helvetica, Arial, sans-serif) !important;
    font-size: clamp(2.6rem, 5vw, 3.75rem);
    line-height: 1.08;
    font-weight: 700;
    letter-spacing: 0;
}
.dx-expediente .hubs-exp-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; margin-top: 22px; }
.dx-expediente .hubs-exp-edition {
    margin: 0;
    color: var(--hubs-exp-white);
    font-family: var(--dx-font-serif, "Roboto Slab", Georgia, serif);
    font-size: 18px;
    line-height: 1.3;
    font-weight: 700;
}
.dx-expediente .hubs-exp-date { position: relative; margin: 0; padding-left: 18px; color: rgba(255,255,255,.78); font-size: 14px; }
.dx-expediente .hubs-exp-date::before { content:""; position:absolute; left:0; top:50%; width:5px; height:5px; border-radius:50%; background:#f7bd12; transform:translateY(-50%); }
.dx-expediente .hubs-exp-hero-image-wrap { min-width:0; padding: clamp(.9rem,2.4vw,1.5rem); border-radius:18px; background:rgba(255,255,255,.97); box-shadow:0 14px 35px rgba(0,0,0,.12); }
.dx-expediente .hubs-exp-hero-image { width:100%; }
.dx-expediente .hubs-exp-citation-wrap { display:grid; grid-template-columns:7px minmax(0,1fr); background:#edf5f3; }
.dx-expediente .hubs-exp-citation-accent { background:var(--hubs-exp-green); }
.dx-expediente .hubs-exp-citation { margin:0; padding:24px clamp(1.4rem,4vw,3rem) 25px; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.dx-expediente .hubs-exp-citation strong { color:var(--hubs-exp-navy); font-weight:800; }
.dx-expediente .hubs-exp-content { padding: clamp(1.75rem,4vw,3.25rem); background:var(--hubs-exp-bg); }
.dx-expediente .hubs-exp-layout { display:grid; grid-template-columns:minmax(260px,.82fr) minmax(0,1.5fr); gap:28px; align-items:start; min-width:0; }
.dx-expediente .hubs-exp-panel { min-width:0; background:var(--hubs-exp-white); border-radius:18px; box-shadow:0 8px 26px rgba(18,63,73,.055); }
.dx-expediente .hubs-exp-panel-inner { padding:30px; }
.dx-expediente .hubs-exp-section-title {
    display:flex;
    align-items:center;
    gap:12px;
    margin:0 0 24px;
    color:var(--hubs-exp-navy) !important;
    font-family:var(--dx-font-serif, "Roboto Slab", Georgia, serif) !important;
    font-size:20px;
    line-height:1.2;
    font-weight:700;
}
.dx-expediente .hubs-exp-section-title::before { content:""; flex:0 0 auto; width:8px; height:27px; border-radius:3px; background:var(--hubs-exp-teal); }
.dx-expediente .hubs-exp-label { margin:0 0 10px; color:var(--hubs-exp-navy); font-family:var(--dx-font-sans, Inter, Helvetica, Arial, sans-serif); font-size:11px; line-height:1.25; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.dx-expediente .hubs-exp-list { margin:0; padding:0; list-style:none; }
.dx-expediente .hubs-exp-list li { margin:0 0 6px; }
.dx-expediente .hubs-exp-list li:last-child { margin-bottom:0; }
.dx-expediente .hubs-exp-coord-list li { position:relative; padding-left:15px; }
.dx-expediente .hubs-exp-coord-list li::before { content:"•"; position:absolute; left:0; top:0; color:var(--hubs-exp-teal); }
.dx-expediente .hubs-exp-network { margin-top:31px; padding-top:27px; border-top:1px solid var(--hubs-exp-line); }
.dx-expediente .hubs-exp-hub { margin-top:20px; }
.dx-expediente .hubs-exp-hub-title { display:inline; padding:1px 4px 2px; color:var(--hubs-exp-navy); font-family:var(--dx-font-sans, Inter, Helvetica, Arial, sans-serif); font-size:14px; line-height:1.35; font-weight:700; }
.dx-expediente .hubs-exp-hub--north .hubs-exp-hub-title { background:#c8e5b8; }
.dx-expediente .hubs-exp-hub--southeast .hubs-exp-hub-title,
.dx-expediente .hubs-exp-hub--rio .hubs-exp-hub-title { background:#cbe7ee; }
.dx-expediente .hubs-exp-hub--center .hubs-exp-hub-title { background:#f4dfa0; }
.dx-expediente .hubs-exp-hub--south .hubs-exp-hub-title { background:#e4d3e8; }
.dx-expediente .hubs-exp-hub-list { margin-top:8px; font-size:13px; line-height:1.4; }
.dx-expediente .hubs-exp-hub-list li { position:relative; margin-bottom:4px; padding-left:13px; }
.dx-expediente .hubs-exp-hub-list li::before { content:"–"; position:absolute; left:0; top:0; }
.dx-expediente .hubs-exp-hub-list--plain li { padding-left:0; }
.dx-expediente .hubs-exp-hub-list--plain li::before { display:none; }
.dx-expediente .hubs-exp-team-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 42px; }
.dx-expediente .hubs-exp-team-column { min-width:0; }
.dx-expediente .hubs-exp-person { margin:0 0 21px; }
.dx-expediente .hubs-exp-person:last-child { margin-bottom:0; }
.dx-expediente .hubs-exp-name { display:block; margin:0; color:var(--hubs-exp-navy); font-size:15px; line-height:1.28; font-weight:800; overflow-wrap:anywhere; }
.dx-expediente .hubs-exp-role { display:block; margin-top:3px; color:var(--hubs-exp-muted); font-size:12px; line-height:1.35; }
.dx-expediente .hubs-exp-partners { margin-top:28px; }
.dx-expediente .hubs-exp-partners-head { padding:28px 30px 0; }
.dx-expediente .hubs-exp-partners-logos { margin:0 30px 30px; padding:20px 22px; border:1px solid var(--hubs-exp-line); border-radius:13px; background:#fff; }
.dx-expediente .hubs-exp-partners-image { width:100%; }
.dx-expediente .hubs-exp-partners-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px 30px; padding:0 30px 32px; }
.dx-expediente .hubs-exp-partner-group { min-width:0; }
.dx-expediente .hubs-exp-partner-names { margin:0; color:var(--hubs-exp-navy); font-size:14px; line-height:1.34; font-weight:800; }
.dx-expediente .hubs-exp-partner-inst { margin:7px 0 0; color:var(--hubs-exp-muted); font-size:11px; line-height:1.35; overflow-wrap:anywhere; }
.dx-expediente .hubs-exp-footer { display:grid; grid-template-columns:minmax(0,1fr) minmax(140px,180px); gap:38px; align-items:end; padding:33px clamp(1.4rem,4vw,3.25rem) 37px; color:rgba(255,255,255,.82); background:var(--hubs-exp-navy); }
.dx-expediente .hubs-exp-license { margin:0; font-size:11px; line-height:1.55; overflow-wrap:anywhere; }
.dx-expediente .hubs-exp-license a { color:var(--hubs-exp-white); text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.dx-expediente .hubs-exp-support { min-width:0; padding:16px; border-radius:12px; background:var(--hubs-exp-white); }
.dx-expediente .hubs-exp-support-label { margin:0 0 9px; color:var(--hubs-exp-navy); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.dx-expediente .hubs-exp-support img { width:100%; max-width:150px; }

@media (max-width: 980px) {
    .dx-expediente .hubs-exp-hero-inner,
    .dx-expediente .hubs-exp-layout { grid-template-columns:1fr; }
    .dx-expediente .hubs-exp-hero-inner { gap:30px; }
}

@media (max-width: 700px) {
    .dx-hub-report .dx-expediente,
    .wp-block-dx-hub-expediente .dx-expediente { margin-top:2.5rem; font-size:14px; }
    .dx-expediente .hubs-exp-shell { border-radius:14px; }
    .dx-expediente .hubs-exp-hero { padding:32px 20px 28px; }
    .dx-expediente .hubs-exp-title { font-size:clamp(2.3rem,12vw,2.8rem); }
    .dx-expediente .hubs-exp-meta { display:block; }
    .dx-expediente .hubs-exp-date { margin-top:6px; padding-left:0; }
    .dx-expediente .hubs-exp-date::before { display:none; }
    .dx-expediente .hubs-exp-hero-image-wrap { padding:14px; border-radius:12px; }
    .dx-expediente .hubs-exp-citation { padding:21px 20px 22px; }
    .dx-expediente .hubs-exp-content { padding:28px 14px 30px; }
    .dx-expediente .hubs-exp-panel-inner { padding:24px 18px; }
    .dx-expediente .hubs-exp-team-grid { gap:0 24px; }
    .dx-expediente .hubs-exp-partners-head { padding:24px 18px 0; }
    .dx-expediente .hubs-exp-partners-logos { margin:0 18px 24px; padding:14px; }
    .dx-expediente .hubs-exp-partners-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 20px; padding:0 18px 26px; }
    .dx-expediente .hubs-exp-footer { grid-template-columns:1fr; gap:24px; padding:27px 20px 30px; }
    .dx-expediente .hubs-exp-support { width:min(170px,100%); }
}

@media (max-width: 500px) {
    .dx-expediente .hubs-exp-team-grid,
    .dx-expediente .hubs-exp-partners-grid { grid-template-columns:1fr; }
    .dx-expediente .hubs-exp-team-column + .hubs-exp-team-column { margin-top:20px; }
    .dx-expediente .hubs-exp-section-title { font-size:18px; }
}

/* =========================================================
   REFINO EDITORIAL — v0.3.1
   Escala tipográfica e ritmo vertical aproximados ao Expediente.
   Apenas tamanhos e espaçamentos: famílias, cores e estrutura preservadas.
   ========================================================= */
.wp-block-dx-hub-report.dx-hub-report {
    font-size: 15px;
    line-height: 1.45;
}

.dx-hub-report .dx-hub-content {
    container-type: inline-size;
    container-name: dx-hub-content;
}

.dx-hub-report p { margin-bottom: .85em; }
.dx-hub-report .dx-body-copy { font-size: 1rem; line-height: 1.45; }

.dx-hub-report .dx-section-title {
    font-size: clamp(1.55rem, 2.35vw, 2.05rem);
    line-height: 1.1;
    margin-bottom: .9rem;
}

.dx-hub-report .dx-hub-summary { margin-bottom: 2.45rem; }
.dx-hub-report .dx-hub-heading-row,
.dx-hub-report .dx-region-heading-row {
    gap: .65rem;
    margin-bottom: .6rem;
}
.dx-hub-report .dx-hub-heading {
    font-size: clamp(1.3rem, 2.1vw, 1.75rem);
    line-height: 1.08;
}

.dx-hub-report .dx-band {
    margin: 2.25rem 0 .95rem;
    padding: .48rem 1rem;
}
.dx-hub-report .dx-band-row { gap: .75rem; }
.dx-hub-report .dx-band-heading {
    font-size: clamp(1.42rem, 2.35vw, 1.85rem);
    line-height: 1.12;
}
.dx-hub-report .dx-band-icon { width: 42px; }
.dx-hub-report .dx-band-icon--trends { width: 39px; }

.dx-hub-report .dx-highlights-list {
    padding-left: 1.55rem;
    margin-bottom: 2.65rem;
}
.dx-hub-report .dx-highlights-list li { margin-bottom: .62rem; }

.dx-hub-report .dx-comparison-hero {
    margin: 2.25rem 0 1rem;
    padding: 1.05rem 1rem;
}
.dx-hub-report .dx-comparison-row { gap: .8rem; }
.dx-hub-report .dx-comparison-title {
    font-size: clamp(1.65rem, 3.15vw, 2.35rem);
    line-height: 1;
}
.dx-hub-report .dx-comparison-icon { width: 64px; }
.dx-hub-report .dx-comparison-items { margin-bottom: 2.3rem; }
.dx-hub-report .dx-item-title {
    margin: 1.35rem 0 .22rem;
    font-size: 1rem;
}
.dx-hub-report .dx-item-lead { margin: .25rem 0; }

.dx-hub-report .dx-alert-topics { margin-bottom: 2.45rem; }
.dx-hub-report .dx-alert-topic { margin-bottom: 1.55rem; }
.dx-hub-report .dx-alert-topic-title,
.dx-hub-report .dx-trend-title {
    gap: .48rem;
    margin-bottom: .5rem;
    padding-bottom: .18rem;
    font-size: clamp(1.15rem, 1.9vw, 1.45rem);
}

.dx-hub-report .dx-trends { margin: 1.55rem 0 3rem; }
.dx-hub-report .dx-trend-item { margin-bottom: 2rem; }

.dx-hub-report .dx-panorama-band {
    margin: 2.7rem 0 1.7rem;
    padding: 1.05rem 1rem;
}
.dx-hub-report .dx-panorama-title {
    font-size: clamp(1.72rem, 3.25vw, 2.45rem);
    line-height: 1.02;
}

.dx-hub-report .dx-region-section {
    margin-bottom: 4rem;
    padding-top: .35rem;
}
.dx-hub-report .dx-region-heading-row {
    padding-top: 1.35rem;
    margin-bottom: 1.65rem;
}
.dx-hub-report .dx-race-section { margin-bottom: 3.65rem; }
.dx-hub-report .dx-race-badge {
    margin-bottom: 1.9rem;
    font-size: clamp(1.3rem, 2.2vw, 1.75rem);
    line-height: 1.08;
}

.dx-hub-report .dx-engagement-heading,
.dx-hub-report .dx-mini-section-title {
    gap: .55rem;
    margin-bottom: 1.15rem;
}
.dx-hub-report .dx-engagement-icon { width: 34px; }
.dx-hub-report .dx-engagement-title,
.dx-hub-report .dx-narratives-title {
    font-size: clamp(1.02rem, 1.55vw, 1.22rem);
    line-height: 1.22;
}

.dx-hub-report .dx-table-title {
    margin: 1.5rem 0 .38rem;
    font-size: clamp(.98rem, 1.35vw, 1.15rem);
    line-height: 1.25;
}
.dx-hub-report .dx-table table {
    font-size: clamp(.74rem, 1vw, .86rem);
    line-height: 1.2;
}
.dx-hub-report .dx-table th,
.dx-hub-report .dx-table td {
    padding: clamp(.3rem, .65vw, .48rem) clamp(.28rem, .72vw, .55rem);
}
.dx-hub-report .wp-block-table.dx-table { margin-bottom: 1.2rem; }

.dx-hub-report .dx-narratives {
    margin-top: 2.9rem;
    padding-top: 1.15rem;
}
.dx-hub-report .dx-mini-icon { width: 30px; }
.dx-hub-report .dx-state-narrative { margin-bottom: 2.35rem; }
.dx-hub-report .dx-state-heading-row {
    gap: .7rem;
    margin-bottom: .4rem;
}
.dx-hub-report .dx-state-title {
    font-size: clamp(1.25rem, 2vw, 1.62rem);
    line-height: 1.12;
}
.dx-hub-report .dx-state-subtitle {
    margin-bottom: .1rem;
    font-size: 1rem;
}
.dx-hub-report .dx-state-lead { margin-bottom: .1rem; }

.dx-hub-report .dx-final-separator { margin: 1.55rem 0 1.75rem; }
.dx-hub-report .dx-notes-title { margin-bottom: .25rem; }
.dx-hub-report .dx-notes-copy { margin-bottom: 3rem; }

/* Menu acompanha a mesma densidade editorial e permanece sem scroll horizontal. */
.dx-hub-report .dx-hub-anchor-menu {
    margin-bottom: 1.55rem;
    padding: .7rem;
}
.dx-hub-report .dx-anchor-menu-title { font-size: .82rem; }
.dx-hub-report .dx-hub-anchor-links a,
.dx-hub-report .dx-anchor-preview-item {
    font-size: .74rem;
    line-height: 1.2;
}
.dx-menu-layout--horizontal .dx-hub-anchor-menu { gap: .6rem .8rem; }
.dx-menu-layout--horizontal .dx-hub-anchor-links,
.dx-menu-layout--lateral .dx-hub-anchor-links { gap: .34rem; }
.dx-menu-layout--horizontal .dx-hub-anchor-links a,
.dx-menu-layout--horizontal .dx-anchor-preview-item {
    min-height: 31px;
    padding: .3rem .52rem;
}
.dx-menu-layout--lateral .dx-hub-anchor-menu { padding: .75rem; }
.dx-menu-layout--lateral .dx-hub-anchor-links a,
.dx-menu-layout--lateral .dx-anchor-preview-item { padding: .42rem .48rem; }

/*
 * Expediente dentro de uma coluna estreita (especialmente no menu lateral):
 * a composição passa a responder à largura real do conteúdo, e não à viewport.
 */
.dx-menu-layout--lateral .dx-expediente .hubs-exp-hero-inner,
.dx-menu-layout--lateral .dx-expediente .hubs-exp-layout {
    grid-template-columns: 1fr;
}
.dx-menu-layout--lateral .dx-expediente .hubs-exp-team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 30px;
}
.dx-menu-layout--lateral .dx-expediente .hubs-exp-partners-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@container dx-hub-content (max-width: 760px) {
    .dx-expediente .hubs-exp-hero-inner,
    .dx-expediente .hubs-exp-layout {
        grid-template-columns: 1fr;
    }
    .dx-expediente .hubs-exp-team-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 28px;
    }
    .dx-expediente .hubs-exp-partners-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px 22px;
    }
    .dx-expediente .hubs-exp-panel-inner { padding: 24px; }
    .dx-expediente .hubs-exp-content { padding: 28px 20px 32px; }
}

@container dx-hub-content (max-width: 520px) {
    .dx-expediente .hubs-exp-team-grid,
    .dx-expediente .hubs-exp-partners-grid {
        grid-template-columns: 1fr;
    }
    .dx-expediente .hubs-exp-team-column + .hubs-exp-team-column { margin-top: 18px; }
    .dx-expediente .hubs-exp-panel-inner { padding: 22px 18px; }
    .dx-expediente .hubs-exp-partners-head { padding: 22px 18px 0; }
    .dx-expediente .hubs-exp-partners-logos { margin: 0 18px 22px; }
    .dx-expediente .hubs-exp-partners-grid { padding: 0 18px 24px; }
}

@media (max-width: 760px) {
    .wp-block-dx-hub-report.dx-hub-report {
        font-size: 14px;
    }
    .dx-hub-report .dx-section-title { font-size: clamp(1.45rem, 6vw, 1.8rem); }
    .dx-hub-report .dx-hub-heading { font-size: clamp(1.25rem, 5vw, 1.55rem); }
    .dx-hub-report .dx-band-heading { font-size: clamp(1.3rem, 5.5vw, 1.65rem); }
    .dx-hub-report .dx-comparison-title { font-size: clamp(1.55rem, 7vw, 1.95rem); }
    .dx-hub-report .dx-panorama-title { font-size: clamp(1.65rem, 7vw, 2.05rem); }
    .dx-hub-report .dx-region-section { margin-bottom: 3.15rem; }
    .dx-hub-report .dx-race-section { margin-bottom: 3rem; }
    .dx-hub-report .dx-table td,
    .dx-hub-report .dx-table--compare td,
    .dx-hub-report .dx-table--performance td {
        min-height: 38px;
        padding: .42rem .52rem;
        font-size: .84rem;
    }
    .dx-hub-report .dx-state-narrative { margin-bottom: 2rem; }
}

/* v0.3.2 — robustez do menu lateral sticky.
 * `position: sticky` deixa de acompanhar a viewport quando algum ancestral
 * cria um scroll container com overflow hidden/auto/scroll. O próprio bloco
 * permanece com overflow visível; no template PHP, os wrappers usam clip. */
.wp-block-dx-hub-report.dx-hub-report,
.wp-block-dx-hub-report.dx-hub-report .dx-hub-shell {
    overflow: visible;
}

.wp-block-dx-hub-report.dx-hub-report.dx-menu-layout--lateral .dx-hub-anchor-menu {
    align-self: start;
    height: max-content;
}

/* v0.4.0 — Componentes editoriais movíveis/duplicáveis.
 * O wrapper é neutro no front-end; o visual continua vindo dos blocos internos. */
.dx-hub-report .dx-hub-component {
    min-width: 0;
    max-width: 100%;
}

.dx-hub-report .dx-hub-component > :first-child { margin-top: 0; }
.dx-hub-report .dx-hub-component > :last-child { margin-bottom: 0; }


/* =========================================================
   v0.4.1 — alinhamento editorial + respiro do menu lateral
   ========================================================= */

/* Mantém toda a composição editorial ancorada à esquerda. */
.dx-hub-report .dx-hub-content,
.dx-hub-report .dx-hub-content .wp-block-group,
.dx-hub-report .dx-hub-content .wp-block-columns,
.dx-hub-report .dx-hub-content .wp-block-column {
    text-align: left;
}

/* Títulos do relatório permanecem sempre alinhados à esquerda,
 * mesmo se um bloco herdou alinhamento do tema ou do Gutenberg. */
.dx-hub-report .dx-hub-content h2,
.dx-hub-report .dx-hub-content h3,
.dx-hub-report .dx-hub-content h4,
.dx-hub-report .dx-section-title,
.dx-hub-report .dx-band-heading,
.dx-hub-report .dx-comparison-title,
.dx-hub-report .dx-panorama-title,
.dx-hub-report .dx-hub-heading,
.dx-hub-report .dx-alert-topic-title,
.dx-hub-report .dx-trend-title,
.dx-hub-report .dx-race-badge,
.dx-hub-report .dx-engagement-title,
.dx-hub-report .dx-narratives-title,
.dx-hub-report .dx-state-title,
.dx-hub-report .dx-table-title {
    text-align: left !important;
}

/* Corpo editorial justificado, com a última linha voltando à esquerda.
 * A hifenização ajuda a evitar rios muito grandes em telas intermediárias. */
.dx-hub-report .dx-hub-content p,
.dx-hub-report .dx-highlights-list li {
    text-align: justify;
    text-align-last: left;
    hyphens: auto;
    -webkit-hyphens: auto;
    overflow-wrap: break-word;
}

/* Elementos curtos/funcionais não devem ser esticados pelo justificado. */
.dx-hub-report .dx-expediente p,
.dx-hub-report .dx-table th,
.dx-hub-report .dx-table td {
    text-align: left;
    text-align-last: auto;
    hyphens: manual;
}

/* Mais respiro visual entre a navegação lateral e a coluna do relatório. */
.dx-menu-layout--lateral .dx-hub-shell {
    column-gap: 52px;
}

@media (max-width: 1240px) and (min-width: 1101px) {
    .dx-menu-layout--lateral .dx-hub-shell {
        column-gap: 42px;
    }
}

@media (max-width: 760px) {
    /* Em telas estreitas, o texto justificado perde legibilidade. */
    .dx-hub-report .dx-hub-content p,
    .dx-hub-report .dx-highlights-list li {
        text-align: left;
        text-align-last: auto;
        hyphens: none;
    }
}


/* =========================================================
   v0.4.2 — alinhamento estrutural + trilho lateral mais amplo
   ========================================================= */

/*
 * Os grupos criados nas versões anteriores usavam o layout "constrained"
 * do Gutenberg. Dependendo do theme.json, isso centraliza os filhos em uma
 * largura menor e cria aqueles recuos grandes vistos entre H2, parágrafos,
 * tabelas e seções. Esta regra neutraliza esse comportamento nos relatórios
 * já existentes. Novos templates passam a nascer com layout "default".
 */
.dx-hub-report .dx-hub-content .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.dx-hub-report .dx-hub-content .wp-block-group-is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
    width: 100%;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Garante um único eixo à esquerda para seções, componentes e conteúdo. */
.dx-hub-report .dx-hub-content > *,
.dx-hub-report .dx-hub-content .dx-hub-component,
.dx-hub-report .dx-hub-content .dx-hub-summary,
.dx-hub-report .dx-hub-content .dx-comparison-items,
.dx-hub-report .dx-hub-content .dx-alert-topics,
.dx-hub-report .dx-hub-content .dx-trends,
.dx-hub-report .dx-hub-content .dx-region-section,
.dx-hub-report .dx-hub-content .dx-race-section,
.dx-hub-report .dx-hub-content .dx-narratives {
    max-width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Os blocos de largura total continuam ocupando a coluna inteira,
 * mas seu conteúdo não recebe centralização automática do Gutenberg. */
.dx-hub-report .dx-band,
.dx-hub-report .dx-comparison-hero,
.dx-hub-report .dx-panorama-band {
    width: 100%;
    max-width: 100%;
}

/*
 * Desktop largo: cria um trilho lateral real. O relatório ocupa a largura
 * disponível do template da página; o menu começa a 100px da esquerda e há
 * 100px de respiro até a coluna editorial.
 */
@media (min-width: 1400px) {
    .wp-block-dx-hub-report.dx-hub-report.dx-menu-layout--lateral {
        width: 100%;
        max-width: none;
    }

    .dx-menu-layout--lateral .dx-hub-shell {
        grid-template-columns: 220px minmax(0, 1fr);
        column-gap: 100px;
        padding-left: 100px;
        padding-right: 40px;
    }

    .dx-menu-layout--lateral .dx-hub-anchor-menu {
        width: 220px;
        justify-self: center;
    }
}

/* Desktop intermediário: preserva o respiro sem sacrificar a coluna de texto. */
@media (min-width: 1101px) and (max-width: 1399px) {
    .wp-block-dx-hub-report.dx-hub-report.dx-menu-layout--lateral {
        width: 100%;
        max-width: none;
    }

    .dx-menu-layout--lateral .dx-hub-shell {
        grid-template-columns: 210px minmax(0, 1fr);
        column-gap: 64px;
        padding-left: 40px;
        padding-right: 24px;
    }

    .dx-menu-layout--lateral .dx-hub-anchor-menu {
        width: 210px;
        justify-self: center;
    }
}

/* Quando o menu volta para cima do conteúdo, remove o trilho lateral. */
@media (max-width: 1100px) {
    .dx-menu-layout--lateral .dx-hub-shell {
        padding-left: 0;
        padding-right: 0;
    }
}


/* =========================================================
   v0.4.3 — ritmo vertical + menu lateral centralizado
   ========================================================= */

/* Mais respiro entre blocos de texto. Mantém a densidade editorial,
 * mas evita que o próximo título/tabela encoste no parágrafo anterior. */
.dx-hub-report .dx-hub-content p,
.dx-hub-report .dx-hub-content .dx-body-copy {
    margin-bottom: 1.35em;
}

/* Quando um parágrafo fecha um pequeno componente recorrente, o próximo
 * bloco ganha um pouco mais de distância visual. */
.dx-hub-report .dx-hub-summary .dx-body-copy,
.dx-hub-report .dx-comparison-item .dx-body-copy,
.dx-hub-report .dx-alert-topic .dx-body-copy,
.dx-hub-report .dx-trend-item .dx-body-copy,
.dx-hub-report .dx-state-narrative .dx-body-copy {
    margin-bottom: 1.55em;
}

/* Menu lateral: mais leve, maior e com divisores, sem o aspecto de
 * vários botões com bordas individuais. */
@media (min-width: 1101px) {
    .dx-menu-layout--lateral .dx-hub-anchor-menu {
        padding: 1rem 1.05rem;
        border: 1px solid #dfe5e7;
        border-radius: 2px;
        box-shadow: 0 10px 30px rgba(18,57,70,.08);
        background: rgba(255,255,255,.985);
    }

    .dx-menu-layout--lateral .dx-anchor-menu-title {
        margin-bottom: .55rem;
        padding: 0 .15rem .65rem;
        border-bottom: 1px solid #cfdadd;
        font-size: .9rem;
        line-height: 1.3;
    }

    .dx-menu-layout--lateral .dx-hub-anchor-links {
        gap: 0;
    }

    .dx-menu-layout--lateral .dx-hub-anchor-links a,
    .dx-menu-layout--lateral .dx-anchor-preview-item {
        position: relative;
        padding: .67rem .18rem;
        border: 0;
        border-radius: 0;
        background: transparent;
        font-size: .8rem;
        line-height: 1.35;
        font-weight: 600;
        transition: color .16s ease, background-color .16s ease, padding .16s ease;
    }

    .dx-menu-layout--lateral .dx-hub-anchor-links a:not(:last-child),
    .dx-menu-layout--lateral .dx-anchor-preview-item:not(:last-child) {
        border-bottom: 1px solid #e2e8ea;
    }

    .dx-menu-layout--lateral .dx-hub-anchor-links a:hover,
    .dx-menu-layout--lateral .dx-hub-anchor-links a:focus-visible {
        padding-left: .45rem;
        color: var(--dx-dark);
        background: #f4f7f7;
    }

    .dx-menu-layout--lateral .dx-hub-anchor-links a.is-active {
        padding-left: .55rem;
        padding-right: .45rem;
        color: #fff;
        background: var(--dx-dark);
        border-bottom-color: var(--dx-dark);
    }

    /* Centraliza o menu verticalmente na viewport enquanto o relatório
     * estiver passando pela tela. O limite continua sendo o próprio post. */
    .dx-hub-report.dx-menu-sticky .dx-hub-anchor-menu {
        top: 50vh;
        transform: translateY(-50%);
        max-height: calc(100vh - 110px);
        overflow-y: auto;
        overflow-x: hidden;
        scrollbar-width: thin;
    }

    body.admin-bar .dx-hub-report.dx-menu-sticky .dx-hub-anchor-menu {
        top: calc(50vh + 16px);
        max-height: calc(100vh - 142px);
    }
}

/* Desktop largo: menu ligeiramente maior, preservando os 100px de margem
 * esquerda e os 100px de respiro até a coluna editorial. */
@media (min-width: 1400px) {
    .dx-menu-layout--lateral .dx-hub-shell {
        grid-template-columns: 240px minmax(0, 1fr);
        column-gap: 100px;
        padding-left: 100px;
    }

    .dx-menu-layout--lateral .dx-hub-anchor-menu {
        width: 240px;
    }
}

/* Desktop intermediário: mantém o menu confortável sem apertar o texto. */
@media (min-width: 1101px) and (max-width: 1399px) {
    .dx-menu-layout--lateral .dx-hub-shell {
        grid-template-columns: 225px minmax(0, 1fr);
        column-gap: 68px;
    }

    .dx-menu-layout--lateral .dx-hub-anchor-menu {
        width: 225px;
    }
}

@media (max-width: 760px) {
    .dx-hub-report .dx-hub-content p,
    .dx-hub-report .dx-hub-content .dx-body-copy {
        margin-bottom: 1.15em;
    }
}


/* =========================================================
   v0.4.4 — revelar o menu lateral apenas após entrar no relatório
   ========================================================= */
@media (min-width: 1101px) {
    /* A classe é adicionada apenas no front-end pelo JS. Assim o menu
     * continua visível normalmente dentro do editor Gutenberg. */
    .dx-menu-layout--lateral.dx-menu-scroll-reveal-enabled .dx-hub-anchor-menu {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(-46%);
        transition: opacity .22s ease, transform .22s ease, visibility .22s ease;
    }

    .dx-menu-layout--lateral.dx-menu-scroll-reveal-enabled.dx-menu-scroll-active .dx-hub-anchor-menu {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(-50%);
    }
}

/* =========================================================
 * v0.5.0 — Relatório de Segurança Pública — Eleições 2026
 * ========================================================= */
.wp-block-dx-security-report.dx-security-report {
    --dx-sec-ink: #20224f;
    --dx-sec-blue: #4854c6;
    --dx-sec-blue-deep: #313a9e;
    --dx-sec-coral: #f46f6b;
    --dx-sec-red: #f5574d;
    --dx-sec-lilac: #eeeafb;
    --dx-sec-soft: #f7f6fb;
    --dx-sec-line: #dcd8ea;
    --dx-sec-text: #30334b;
    --dx-sec-muted: #73758b;
    --dx-sec-font-sans: Inter, Helvetica, Arial, sans-serif;
    --dx-sec-font-serif: "Roboto Slab", Georgia, serif;
    width: min(100%, 1520px);
    max-width: 100%;
    margin: 0 auto;
    color: var(--dx-sec-text);
    font-family: var(--dx-sec-font-sans);
    font-size: 15px;
    line-height: 1.55;
    overflow: visible;
}
.wp-block-dx-security-report.dx-security-report *,
.wp-block-dx-security-report.dx-security-report *::before,
.wp-block-dx-security-report.dx-security-report *::after { box-sizing: border-box; }

.dx-security-report .dx-security-shell,
.dx-security-report .dx-security-content { min-width: 0; overflow: visible; }
.dx-security-report .dx-security-content { width: 100%; max-width: 100%; container-type: inline-size; container-name: dx-security-content; }
.dx-security-report .dx-security-content > * { max-width: 100%; }
.dx-security-report .dx-security-content p,
.dx-security-report .dx-security-content li { overflow-wrap: anywhere; }
.dx-security-report .dx-sec-body {
    margin: 0 0 1.45rem;
    color: var(--dx-sec-text);
    font-size: 1rem;
    line-height: 1.62;
    text-align: justify;
    text-align-last: left;
}

/* Cabeçalho inspirado na capa: mesma atmosfera, sem reproduzir a capa impressa. */
.dx-security-report .dx-sec-hero {
    position: relative;
    overflow: hidden;
    margin: 0 0 3.5rem;
    padding: clamp(32px, 5vw, 64px);
    border-radius: 24px;
    background:
        radial-gradient(circle at 72% 22%, rgba(255,255,255,.22), transparent 24%),
        linear-gradient(135deg, #f5a29d 0%, #ee7c78 34%, #c477ac 62%, #5058c5 100%);
    box-shadow: 0 18px 48px rgba(32,34,79,.12);
}
.dx-security-report .dx-sec-hero::after {
    content: "";
    position: absolute;
    right: -50px;
    bottom: -36px;
    width: 360px;
    height: 150px;
    opacity: .75;
    background: repeating-linear-gradient(135deg, transparent 0 13px, rgba(245,87,77,.92) 13px 19px, transparent 19px 31px);
    transform: skewX(-18deg);
    pointer-events: none;
}
.dx-security-report .dx-sec-brandline,
.dx-security-report .dx-sec-kicker,
.dx-security-report .dx-sec-report-number,
.dx-security-report .dx-sec-period { position: relative; z-index: 1; }
.dx-security-report .dx-sec-brandline {
    margin: 0 0 2.1rem;
    color: rgba(32,34,79,.78);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
}
.dx-security-report .dx-sec-kicker {
    margin: 0 0 .6rem;
    color: var(--dx-sec-ink);
    font-size: .88rem;
    font-weight: 700;
    letter-spacing: .08em;
}
.dx-security-report .dx-sec-hero-title {
    position: relative;
    z-index: 1;
    max-width: 760px;
    margin: 0 0 1.45rem;
    color: var(--dx-sec-ink);
    font-family: var(--dx-sec-font-sans);
    font-size: clamp(2.3rem, 5.2vw, 4.7rem);
    line-height: .98;
    font-weight: 700;
    letter-spacing: -.035em;
}
.dx-security-report .dx-sec-hero-meta {
    position: relative;
    z-index: 1;
    gap: .65rem 1.4rem;
    align-items: center;
}
.dx-security-report .dx-sec-report-number,
.dx-security-report .dx-sec-period { margin: 0; color: var(--dx-sec-ink); }
.dx-security-report .dx-sec-report-number { font-weight: 700; }
.dx-security-report .dx-sec-period { font-size: .88rem; }

/* Títulos editoriais. */
.dx-security-report .dx-sec-section-title {
    margin: 4.4rem 0 1.45rem;
    padding: 0 0 .55rem 1rem;
    border-left: 6px solid var(--dx-sec-coral);
    border-bottom: 1px solid var(--dx-sec-line);
    color: var(--dx-sec-blue-deep);
    font-family: var(--dx-sec-font-serif);
    font-size: clamp(1.75rem, 3.3vw, 2.65rem);
    line-height: 1.12;
    font-weight: 700;
    text-align: left;
}
.dx-security-report .dx-sec-subsection-title {
    margin: 3.1rem 0 1rem;
    color: var(--dx-sec-blue-deep);
    font-family: var(--dx-sec-font-serif);
    font-size: clamp(1.28rem, 2.2vw, 1.75rem);
    line-height: 1.2;
}
.dx-security-report .dx-sec-summary-lead {
    margin: -.35rem 0 1.6rem;
    color: var(--dx-sec-muted);
    font-size: .95rem;
}

/* Pontos de atenção. */
.dx-security-report .dx-sec-attention {
    margin: 0 0 2rem;
    padding: 1.7rem clamp(1.2rem, 3vw, 2rem);
    border: 1px solid #f3c0bd;
    border-top: 5px solid var(--dx-sec-red);
    border-radius: 14px;
    background: #fff8f7;
}
.dx-security-report .dx-sec-attention-list { margin: 0; padding-left: 1.4rem; }
.dx-security-report .dx-sec-attention-list li {
    margin: 0 0 .9rem;
    padding-left: .2rem;
    line-height: 1.5;
}
.dx-security-report .dx-sec-attention-list li:last-child { margin-bottom: 0; }
.dx-security-report .dx-sec-attention-list li::marker { color: var(--dx-sec-red); font-size: 1.1em; }

/* Sumário editorial em cards. */
.dx-security-report .dx-sec-summary-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 0 0 2.5rem;
}
.dx-security-report .dx-sec-summary-card {
    min-width: 0;
    padding: 1.25rem 1.35rem;
    border: 1px solid var(--dx-sec-line);
    border-radius: 13px;
    background: var(--dx-sec-soft);
}
.dx-security-report .dx-sec-summary-title {
    margin: 0 0 .35rem;
    color: var(--dx-sec-blue-deep);
    font-family: var(--dx-sec-font-sans);
    font-size: 1rem;
    font-weight: 700;
}
.dx-security-report .dx-sec-summary-copy { margin: 0; color: var(--dx-sec-muted); font-size: .86rem; line-height: 1.45; }

/* Gráficos / SVGs / imagens. */
.dx-security-report .dx-security-component--chart { margin: 2.2rem 0 2.65rem; }
.dx-security-report .dx-sec-chart {
    padding: 1.1rem 1.2rem 1rem;
    border: 1px solid var(--dx-sec-line);
    border-radius: 14px;
    background: #fff;
}
.dx-security-report .dx-sec-chart-title,
.dx-security-report .dx-sec-table-title {
    margin: 0 0 .8rem;
    color: var(--dx-sec-blue-deep);
    font-family: var(--dx-sec-font-sans);
    font-size: .92rem;
    line-height: 1.25;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .02em;
}
.dx-security-report .wp-block-image.dx-sec-chart-media {
    width: 100%;
    max-width: 100%;
    min-height: 180px;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px dashed #aca7ca;
    border-radius: 10px;
    background: linear-gradient(135deg, #faf9fd, #f1eff9);
}
.dx-security-report .wp-block-image.dx-sec-chart-media img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    object-fit: contain;
    border-radius: 8px;
}
.dx-security-report .dx-sec-source { margin: .65rem 0 0; color: var(--dx-sec-muted); font-size: .72rem; line-height: 1.35; }

/* Componentes reutilizáveis. */
.dx-security-report .dx-security-component { min-width: 0; }
.dx-security-report .dx-security-component--text { margin-bottom: 1rem; }
.dx-security-report .dx-sec-callout {
    margin: 2.5rem 0;
    padding: 1.45rem 1.6rem;
    border-left: 6px solid var(--dx-sec-coral);
    border-radius: 0 14px 14px 0;
    background: var(--dx-sec-lilac);
}
.dx-security-report .dx-sec-callout-title {
    margin: 0 0 .55rem;
    color: var(--dx-sec-blue-deep);
    font-family: var(--dx-sec-font-serif);
    font-size: 1.35rem;
    line-height: 1.2;
}
.dx-security-report .dx-sec-callout .dx-sec-body { margin-bottom: 0; }
.dx-security-report .dx-sec-state { margin: 3.1rem 0; padding-top: 1.2rem; border-top: 1px solid var(--dx-sec-line); }
.dx-security-report .dx-sec-state-title {
    margin: 0 0 .85rem;
    color: var(--dx-sec-coral);
    font-family: var(--dx-sec-font-serif);
    font-size: 1.55rem;
    line-height: 1.2;
}

/* Tabelas. */
.dx-security-report .dx-sec-table-block { margin: 1.6rem 0 2.4rem; min-width: 0; }
.dx-security-report .wp-block-table.dx-sec-table {
    width: 100%;
    max-width: 100%;
    margin: 0;
    overflow: visible !important;
}
.dx-security-report .dx-sec-table table {
    width: 100%;
    max-width: 100%;
    min-width: 0 !important;
    margin: 0;
    table-layout: fixed;
    border-collapse: collapse;
    font-family: var(--dx-sec-font-sans);
    font-size: clamp(.69rem, 1vw, .83rem);
    line-height: 1.28;
}
.dx-security-report .dx-sec-table th,
.dx-security-report .dx-sec-table td {
    min-width: 0;
    padding: .52rem .58rem;
    border: 1px solid #b9b6c8;
    text-align: left;
    vertical-align: top;
    overflow-wrap: anywhere;
    word-break: normal;
}
.dx-security-report .dx-sec-table thead th {
    color: #fff;
    background: var(--dx-sec-blue-deep);
    font-weight: 700;
}
.dx-security-report .dx-sec-table tbody tr:nth-child(even) td { background: #f8f7fb; }
.dx-security-report .dx-sec-table a { word-break: break-word; }
.dx-security-report .dx-sec-table--influencers th:nth-child(1) { width: 13%; }
.dx-security-report .dx-sec-table--influencers th:nth-child(2) { width: 24%; }
.dx-security-report .dx-sec-table--influencers th:nth-child(n+3) { width: 12.6%; }
.dx-security-report .dx-sec-table--posts th:nth-child(1) { width: 19%; }
.dx-security-report .dx-sec-table--posts th:nth-child(2) { width: 25%; }
.dx-security-report .dx-sec-table--posts th:nth-child(3) { width: 42%; }
.dx-security-report .dx-sec-table--posts th:nth-child(4) { width: 14%; }
.dx-security-report .dx-sec-table--proposal th:first-child { width: 31%; }

/* Expediente compacto. */
.dx-security-report .dx-sec-expedient {
    margin: 1rem 0 2rem;
    overflow: hidden;
    border-radius: 18px;
    background: var(--dx-sec-ink);
    color: #fff;
}
.dx-security-report .dx-sec-expedient-meta { padding: 1.6rem 1.8rem 1.15rem; border-bottom: 1px solid rgba(255,255,255,.15); }
.dx-security-report .dx-sec-exp-title { margin: 0 0 .45rem; color: #fff; font-family: var(--dx-sec-font-serif); font-size: 1.35rem; }
.dx-security-report .dx-sec-exp-copy { margin: 0 0 .3rem; color: rgba(255,255,255,.84); font-size: .82rem; line-height: 1.5; }
.dx-security-report .dx-sec-expedient-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; }
.dx-security-report .dx-sec-exp-card { padding: 1.35rem 1.8rem; border-right: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); }
.dx-security-report .dx-sec-exp-heading { margin: 0 0 .55rem; color: #ffb1aa; font-family: var(--dx-sec-font-sans); font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }

/* Menu lateral — mesmo princípio do HUB, mas independente. */
.dx-security-report.dx-menu-layout--lateral .dx-security-shell {
    display: grid;
    grid-template-columns: minmax(210px, 245px) minmax(0, 1fr);
    gap: 0 82px;
    align-items: start;
    padding: 1rem 24px 0 70px;
}
.dx-security-report.dx-menu-layout--lateral .dx-hub-anchor-menu {
    grid-column: 1;
    grid-row: 1;
    align-self: start;
    width: 100%;
    margin: 0;
    padding: 1rem 1.05rem;
    border: 1px solid #e1deeb;
    border-radius: 12px;
    background: rgba(255,255,255,.97);
    box-shadow: 0 14px 34px rgba(32,34,79,.08);
}
.dx-security-report.dx-menu-layout--lateral .dx-security-content { grid-column: 2; grid-row: 1; }
.dx-security-report .dx-anchor-menu-title { display: block; margin: 0 0 .55rem; color: var(--dx-sec-ink); font-size: .8rem; font-weight: 700; }
.dx-security-report .dx-hub-anchor-links { display: flex; flex-direction: column; gap: 0; }
.dx-security-report .dx-hub-anchor-links a,
.dx-security-report .dx-anchor-preview-item {
    display: block;
    width: 100%;
    padding: .58rem .15rem;
    border: 0;
    border-bottom: 1px solid #e6e3ee;
    border-radius: 0;
    color: #41445d;
    background: transparent;
    font-size: .72rem;
    line-height: 1.35;
    text-decoration: none;
}
.dx-security-report .dx-hub-anchor-links a:last-child,
.dx-security-report .dx-anchor-preview-item:last-child { border-bottom: 0; }
.dx-security-report .dx-hub-anchor-links a:hover { color: var(--dx-sec-blue-deep); }
.dx-security-report .dx-hub-anchor-links a.is-active {
    margin: 0 -.45rem;
    width: calc(100% + .9rem);
    padding-left: .6rem;
    padding-right: .6rem;
    border-bottom-color: transparent;
    border-radius: 7px;
    color: #fff;
    background: var(--dx-sec-blue-deep);
    font-weight: 700;
}
.dx-security-report.dx-menu-sticky .dx-hub-anchor-menu { position: sticky; top: 50%; transform: translateY(-50%); }
body.admin-bar .dx-security-report.dx-menu-sticky .dx-hub-anchor-menu { top: calc(50% + 16px); }
.dx-security-report .dx-security-content h2[id] { scroll-margin-top: 120px; }

/* Menu horizontal opcional. */
.dx-security-report.dx-menu-layout--horizontal .dx-security-shell { display: block; padding: 0; }
.dx-security-report.dx-menu-layout--horizontal .dx-hub-anchor-menu {
    display: flex;
    gap: .7rem 1rem;
    align-items: flex-start;
    margin: 0 0 2rem;
    padding: .85rem 1rem;
    border: 1px solid var(--dx-sec-line);
    border-radius: 12px;
    background: #fff;
}
.dx-security-report.dx-menu-layout--horizontal .dx-anchor-menu-title { flex: 0 0 auto; padding-top: .45rem; }
.dx-security-report.dx-menu-layout--horizontal .dx-hub-anchor-links { flex: 1 1 auto; flex-direction: row; flex-wrap: wrap; gap: .35rem .8rem; }
.dx-security-report.dx-menu-layout--horizontal .dx-hub-anchor-links a,
.dx-security-report.dx-menu-layout--horizontal .dx-anchor-preview-item { width: auto; border-bottom: 0; padding: .42rem .25rem; }

/* No front-end o menu entra apenas quando o relatório chega à zona de leitura. */
.dx-security-report.dx-menu-scroll-reveal-enabled.dx-menu-layout--lateral .dx-hub-anchor-menu {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .22s ease, visibility .22s ease;
}
.dx-security-report.dx-menu-scroll-reveal-enabled.dx-menu-layout--lateral.dx-menu-scroll-active .dx-hub-anchor-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

@media (max-width: 1280px) {
    .dx-security-report.dx-menu-layout--lateral .dx-security-shell {
        grid-template-columns: minmax(195px, 220px) minmax(0, 1fr);
        gap: 0 48px;
        padding-left: 24px;
        padding-right: 24px;
    }
}

@media (max-width: 1100px) {
    .dx-security-report.dx-menu-layout--lateral .dx-security-shell { display: block; padding: .5rem 18px 0; }
    .dx-security-report.dx-menu-layout--lateral .dx-hub-anchor-menu {
        position: static !important;
        transform: none !important;
        display: flex;
        align-items: flex-start;
        gap: .7rem 1rem;
        margin: 0 0 2rem;
    }
    .dx-security-report.dx-menu-layout--lateral .dx-anchor-menu-title { flex: 0 0 auto; padding-top: .35rem; }
    .dx-security-report.dx-menu-layout--lateral .dx-hub-anchor-links { flex: 1 1 auto; flex-direction: row; flex-wrap: wrap; gap: .3rem .65rem; }
    .dx-security-report.dx-menu-layout--lateral .dx-hub-anchor-links a,
    .dx-security-report.dx-menu-layout--lateral .dx-anchor-preview-item { width: auto; border-bottom: 0; padding: .38rem .25rem; }
    .dx-security-report.dx-menu-scroll-reveal-enabled.dx-menu-layout--lateral .dx-hub-anchor-menu { opacity: 1; visibility: visible; pointer-events: auto; }
}

@media (max-width: 760px) {
    .wp-block-dx-security-report.dx-security-report { font-size: 14px; }
    .dx-security-report .dx-security-content { padding: 0 2px; }
    .dx-security-report .dx-sec-body { line-height: 1.56; text-align: left; }
    .dx-security-report .dx-sec-hero { margin-bottom: 2.5rem; padding: 30px 22px; border-radius: 16px; }
    .dx-security-report .dx-sec-hero::after { width: 240px; height: 105px; }
    .dx-security-report .dx-sec-brandline { margin-bottom: 1.4rem; font-size: .64rem; }
    .dx-security-report .dx-sec-hero-title { font-size: clamp(2.05rem, 12vw, 3.25rem); }
    .dx-security-report .dx-sec-section-title { margin-top: 3.4rem; font-size: clamp(1.55rem, 7vw, 2rem); }
    .dx-security-report .dx-sec-summary-grid { grid-template-columns: 1fr; }
    .dx-security-report .dx-sec-expedient-grid { grid-template-columns: 1fr; }

    /* Tabelas viram cards, sem scroll horizontal. */
    .dx-security-report .wp-block-table.dx-sec-table,
    .dx-security-report .dx-sec-table table,
    .dx-security-report .dx-sec-table tbody,
    .dx-security-report .dx-sec-table tr { display: block; width: 100%; }
    .dx-security-report .dx-sec-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        white-space: nowrap;
    }
    .dx-security-report .dx-sec-table tr {
        margin: 0 0 .85rem;
        overflow: hidden;
        border: 1px solid #c8c5d4;
        border-radius: 10px;
        background: #fff;
    }
    .dx-security-report .dx-sec-table td {
        display: grid;
        grid-template-columns: minmax(105px, 38%) minmax(0,1fr);
        gap: .7rem;
        width: 100% !important;
        min-height: 40px;
        padding: .52rem .62rem;
        border: 0;
        border-bottom: 1px solid #e3e0ea;
        background: #fff !important;
        font-size: .82rem;
    }
    .dx-security-report .dx-sec-table td:last-child { border-bottom: 0; }
    .dx-security-report .dx-sec-table td::before { color: var(--dx-sec-blue-deep); font-weight: 700; line-height: 1.2; }

    .dx-security-report .dx-sec-table--influencers td:nth-child(1)::before { content:'Perfil'; }
    .dx-security-report .dx-sec-table--influencers td:nth-child(2)::before { content:'URL'; }
    .dx-security-report .dx-sec-table--influencers td:nth-child(3)::before { content:'Posts'; }
    .dx-security-report .dx-sec-table--influencers td:nth-child(4)::before { content:'Reach'; }
    .dx-security-report .dx-sec-table--influencers td:nth-child(5)::before { content:'Reach / menção'; }
    .dx-security-report .dx-sec-table--influencers td:nth-child(6)::before { content:'Engagement'; }
    .dx-security-report .dx-sec-table--influencers td:nth-child(7)::before { content:'Engagement / menção'; }
    .dx-security-report .dx-sec-table--posts td:nth-child(1)::before { content:'Perfil'; }
    .dx-security-report .dx-sec-table--posts td:nth-child(2)::before { content:'URL'; }
    .dx-security-report .dx-sec-table--posts td:nth-child(3)::before { content:'Post'; }
    .dx-security-report .dx-sec-table--posts td:nth-child(4)::before { content:'Engajamento'; }
    .dx-security-report .dx-sec-table--parties td:nth-child(1)::before { content:'Partido'; }
    .dx-security-report .dx-sec-table--parties td:nth-child(2)::before { content:'Posts'; }
    .dx-security-report .dx-sec-table--parties td:nth-child(3)::before { content:'Interações'; }
    .dx-security-report .dx-sec-table--parties td:nth-child(4)::before { content:'% posts'; }
    .dx-security-report .dx-sec-table--parties td:nth-child(5)::before { content:'% interações'; }
    .dx-security-report .dx-sec-table--candidates td:nth-child(1)::before { content:'Nome'; }
    .dx-security-report .dx-sec-table--candidates td:nth-child(2)::before { content:'Partido'; }
    .dx-security-report .dx-sec-table--candidates td:nth-child(3)::before { content:'UF'; }
    .dx-security-report .dx-sec-table--candidates td:nth-child(4)::before { content:'Posts'; }
    .dx-security-report .dx-sec-table--candidates td:nth-child(5)::before { content:'Interações'; }
    .dx-security-report .dx-sec-table--state td:nth-child(1)::before { content:'Nome'; }
    .dx-security-report .dx-sec-table--state td:nth-child(2)::before { content:'Posts'; }
    .dx-security-report .dx-sec-table--state td:nth-child(3)::before { content:'Interações'; }
    .dx-security-report .dx-sec-table--state td:nth-child(4)::before { content:'% no Estado'; }
    .dx-security-report .dx-sec-table--proposal td:nth-child(1)::before { content:'Candidato'; }
    .dx-security-report .dx-sec-table--proposal td:nth-child(2)::before { content:'Propostas'; }
    .dx-security-report .dx-sec-table--generic td:nth-child(1)::before { content:'Coluna 1'; }
    .dx-security-report .dx-sec-table--generic td:nth-child(2)::before { content:'Coluna 2'; }
    .dx-security-report .dx-sec-table--generic td:nth-child(3)::before { content:'Coluna 3'; }
    .dx-security-report .dx-sec-table--generic td:nth-child(4)::before { content:'Coluna 4'; }
}

@media (max-width: 500px) {
    .dx-security-report .dx-sec-table td { grid-template-columns: 1fr; gap: .2rem; }
    .dx-security-report .dx-sec-table td::before { font-size: .72rem; }
    .dx-security-report.dx-menu-layout--lateral .dx-hub-anchor-menu { display: block; }
    .dx-security-report.dx-menu-layout--lateral .dx-anchor-menu-title { display: block; padding: 0; margin-bottom: .5rem; }
    .dx-security-report.dx-menu-layout--lateral .dx-hub-anchor-links { display: grid; grid-template-columns: 1fr; }
    .dx-security-report.dx-menu-layout--lateral .dx-hub-anchor-links a,
    .dx-security-report.dx-menu-layout--lateral .dx-anchor-preview-item { border-bottom: 1px solid #e6e3ee; padding: .5rem 0; }
}

/* =========================================================
 * v0.6.0 — MONITOR JOVEM DX
 * Mesma arquitetura editorial do template de Segurança Pública,
 * com identidade baseada na capa violeta / lavanda / menta.
 * ========================================================= */
.wp-block-dx-monitor-report.dx-monitor-report.dx-security-report {
    --dx-sec-ink: #45327f;
    --dx-sec-blue: #7055a5;
    --dx-sec-blue-deep: #54348a;
    --dx-sec-coral: #b3dcd5;
    --dx-sec-red: #6f55a6;
    --dx-sec-lilac: #f0eef8;
    --dx-sec-soft: #f8f8fc;
    --dx-sec-line: #d9d9e9;
    --dx-sec-text: #30364f;
    --dx-sec-muted: #757a91;
    --dx-mon-mint: #b3dcd5;
    --dx-mon-mint-light: #c2f3d9;
    --dx-mon-purple: #54348a;
    --dx-mon-purple-light: #7055a5;
    --dx-mon-blue: #95a8c7;
    width: min(100%, 1520px);
    max-width: 100%;
    margin: 0 auto;
    color: var(--dx-sec-text);
    font-family: Inter, Helvetica, Arial, sans-serif;
    font-size: 15px;
    line-height: 1.55;
    overflow: visible;
}
.wp-block-dx-monitor-report.dx-monitor-report.dx-security-report *,
.wp-block-dx-monitor-report.dx-monitor-report.dx-security-report *::before,
.wp-block-dx-monitor-report.dx-monitor-report.dx-security-report *::after { box-sizing: border-box; }

.dx-monitor-report .dx-sec-section-title {
    border-left-color: var(--dx-mon-mint);
    border-bottom-color: rgba(84,52,138,.22);
    color: var(--dx-mon-purple);
}
.dx-monitor-report .dx-sec-subsection-title,
.dx-monitor-report .dx-sec-table-title,
.dx-monitor-report .dx-sec-chart-title,
.dx-monitor-report .dx-sec-callout-title { color: var(--dx-mon-purple); }

.dx-monitor-report .dx-sec-chart {
    border-color: rgba(84,52,138,.18);
    background: linear-gradient(135deg, rgba(112,85,165,.055), rgba(194,243,217,.18));
}
.dx-monitor-report .wp-block-image.dx-sec-chart-media {
    border-color: rgba(84,52,138,.32);
    background:
        radial-gradient(circle at 88% 82%, rgba(194,243,217,.55), transparent 33%),
        linear-gradient(145deg, #f6f4fb 0%, #eeeaf8 45%, #edf8f5 100%);
}

.dx-monitor-report .dx-sec-callout.dx-mon-callout {
    border-left-color: var(--dx-mon-mint);
    background:
        linear-gradient(110deg, rgba(112,85,165,.09) 0%, rgba(149,168,199,.08) 52%, rgba(194,243,217,.24) 100%);
}

.dx-monitor-report .dx-sec-table thead th {
    background: var(--dx-mon-purple);
}
.dx-monitor-report .dx-sec-table tbody tr:nth-child(even) td { background: #f6f5fa; }
.dx-monitor-report .dx-sec-table th,
.dx-monitor-report .dx-sec-table td { border-color: #c9c9da; }

.dx-monitor-report .dx-hub-anchor-links a.is-active {
    background: var(--dx-mon-purple);
}
.dx-monitor-report .dx-hub-anchor-links a:hover { color: var(--dx-mon-purple); }
.dx-monitor-report.dx-menu-layout--lateral .dx-hub-anchor-menu {
    border-color: rgba(84,52,138,.18);
    box-shadow: 0 14px 34px rgba(69,50,127,.09);
}

/* Bloco de abertura opcional previsto no modelo editorial. */
.dx-monitor-report .dx-mon-optional-intro {
    margin: 0 0 2.8rem;
    padding: 1.3rem 1.45rem;
    border: 1px dashed rgba(84,52,138,.32);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(112,85,165,.055), rgba(194,243,217,.14));
}
.dx-monitor-report .dx-mon-optional-label {
    margin: 0 0 .6rem;
    color: var(--dx-sec-muted);
    font-size: .69rem;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.dx-monitor-report .dx-mon-optional-title {
    margin: 0 0 .65rem;
    color: var(--dx-mon-purple);
    font-family: "Roboto Slab", Georgia, serif;
    font-size: 1.35rem;
    line-height: 1.2;
}
.dx-monitor-report .dx-mon-optional-intro .dx-sec-body { margin-bottom: 0; }

.dx-monitor-report .dx-mon-section-lead {
    margin: -.4rem 0 1.6rem;
    color: var(--dx-sec-muted);
    font-size: .94rem;
    line-height: 1.5;
}

/* Cards de partidos / candidaturas jovens. */
.dx-monitor-report .dx-mon-stat-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin: 0 0 3rem;
}
.dx-monitor-report .dx-monitor-component--stat { min-width: 0; }
.dx-monitor-report .dx-mon-stat-card {
    position: relative;
    height: 100%;
    min-width: 0;
    overflow: hidden;
    padding: 1.25rem 1.25rem 1.15rem;
    border: 1px solid rgba(84,52,138,.17);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 25px rgba(69,50,127,.055);
}
.dx-monitor-report .dx-mon-stat-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 5px;
    background: linear-gradient(90deg, var(--dx-mon-purple), var(--dx-mon-purple-light), var(--dx-mon-mint));
}
.dx-monitor-report .dx-mon-stat-party {
    margin: .15rem 0 .9rem;
    color: var(--dx-mon-purple);
    font-family: Inter, Helvetica, Arial, sans-serif;
    font-size: .84rem;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: .055em;
}
.dx-monitor-report .dx-mon-stat-number {
    margin: 0;
    color: var(--dx-mon-purple);
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: .95;
    font-weight: 800;
}
.dx-monitor-report .dx-mon-stat-label {
    margin: .3rem 0 1rem;
    color: var(--dx-sec-muted);
    font-size: .78rem;
    font-weight: 600;
}
.dx-monitor-report .dx-mon-stat-copy {
    margin: 0 0 .62rem;
    padding-top: .6rem;
    border-top: 1px solid #eceaf2;
    color: var(--dx-sec-text);
    font-size: .78rem;
    line-height: 1.42;
}
.dx-monitor-report .dx-mon-stat-copy strong { color: var(--dx-mon-purple); }
.dx-monitor-report .dx-mon-stat-total {
    margin: .8rem 0 0;
    color: var(--dx-sec-muted);
    font-size: .72rem;
    line-height: 1.35;
}

/* Expediente na mesma lógica estrutural, com a paleta do Monitor Jovem. */
.dx-monitor-report .dx-mon-expedient {
    background:
        radial-gradient(circle at 90% 100%, rgba(194,243,217,.30), transparent 30%),
        linear-gradient(135deg, #45327f 0%, #5d4196 58%, #7762aa 100%);
}
.dx-monitor-report .dx-sec-exp-heading { color: var(--dx-mon-mint-light); }

@media (max-width: 1100px) {
    .dx-monitor-report .dx-mon-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
    .dx-monitor-report .dx-mon-stat-grid { grid-template-columns: 1fr; gap: 13px; }
    .dx-monitor-report .dx-mon-stat-card { padding: 1.05rem 1.05rem 1rem; }
}

.dx-monitor-report .dx-monitor-component { min-width: 0; }
.dx-monitor-report .dx-monitor-component--text { margin-bottom: 1rem; }
.dx-monitor-report .dx-monitor-component--chart { margin: 2.2rem 0 2.65rem; }
.dx-monitor-report .dx-monitor-component--callout { margin: 0; }

@media (max-width: 760px) {
    .wp-block-dx-monitor-report.dx-monitor-report.dx-security-report { font-size: 14px; }
}
