/**
 * QDS v2 — components.css: componentes genéricos (estrutura, cabeçalho, listas, tabelas, formulários, gráficos, feed "o que mudou", árvore)
 * Só lê tokens (`var(--q-...)`); sem hex, sem !important, sem sombra, sem gradiente.
 * Ordem de carga: Bootstrap 5.3.3 -> tokens.css -> bootstrap-theme.css -> base.css -> components.css.
 */


body {
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* ---------- Estrutura ---------- */
.q-container {
    width: 100%;
    max-width: calc(var(--q-container-max) + 2 * var(--q-gutter));
    margin-inline: auto;
    padding-inline: var(--q-gutter);
}

.q-skip {
    position: absolute;
    left: var(--q-space-4);
    top: calc(var(--q-space-12) * -2);
    padding: var(--q-space-2) var(--q-space-4);
    background: var(--q-color-accent);
    color: var(--q-color-accent-contrast);
    border-radius: var(--q-radius-sm);
    z-index: var(--q-z-toast);
}

.q-skip:focus {
    top: var(--q-space-2);
}

/* ---------- Links discretos ---------- */
.q-link {
    color: var(--q-color-link);
    font-weight: var(--q-weight-medium);
    text-decoration: none;
}

.q-link:hover {
    color: var(--q-color-link-hover);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

/* ---------- Header de um nível ---------- */
.q-header {
    position: sticky;
    top: 0;
    z-index: var(--q-z-sticky);
    background-color: var(--q-color-bg);
    border-top: 3px solid var(--q-color-brand);
    border-bottom: var(--q-border-width) solid var(--q-color-border);
}

.q-header__bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: var(--q-space-6);
}

.q-brand {
    display: inline-flex;
    align-items: center;
    gap: var(--q-space-2);
    height: 4rem;
    margin-right: auto;
    font-family: var(--q-font-title);
    font-weight: var(--q-weight-display);
    font-size: var(--q-text-xl);
    letter-spacing: var(--q-tracking-tight);
    color: var(--q-color-text);
    text-decoration: none;
}

.q-brand:hover {
    color: var(--q-color-text);
}

.q-brand img {
    width: 2.5rem;
    height: 2.5rem;
}

.q-header__panel {
    order: 3;
    flex-basis: 100%;
    padding-bottom: var(--q-space-4);
}

.q-header__tools {
    display: flex;
    align-items: center;
    gap: var(--q-space-2);
    height: 4rem;
}

.q-nav {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    list-style: none;
}

.q-nav a {
    display: flex;
    align-items: center;
    padding-block: var(--q-space-3);
    border-bottom: var(--q-border-width) solid var(--q-color-border);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-md);
    font-weight: var(--q-weight-medium);
    text-decoration: none;
}

.q-nav a:hover {
    color: var(--q-color-link);
}

.q-nav a[aria-current] {
    color: var(--q-color-text);
}

.q-nav a[aria-current] {
    font-weight: var(--q-weight-bold);
}

/* ---------- Dropdown do menu principal (<details class="q-nav__dropdown">) ---------- */
.q-nav__dropdown {
    display: block;
}

.q-nav__dropdown > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-block: var(--q-space-3);
    border-bottom: var(--q-border-width) solid var(--q-color-border);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-md);
    font-weight: var(--q-weight-medium);
    cursor: pointer;
    list-style: none;
}

.q-nav__dropdown > summary::-webkit-details-marker,
.q-nav__dropdown > summary::marker {
    display: none;
    content: "";
}

.q-nav__dropdown > summary:hover {
    color: var(--q-color-link);
}

.q-nav__dropdown > summary[aria-current] {
    color: var(--q-color-text);
    font-weight: var(--q-weight-bold);
}

.q-nav__dropdown > summary::after {
    content: "";
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: var(--q-space-2);
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 4px solid currentColor;
    vertical-align: middle;
    transition: transform var(--q-duration-base) var(--q-ease-standard);
}

.q-nav__dropdown[open] > summary::after {
    transform: rotate(180deg);
}

/* Menu empilhado no celular (dentro do painel do hambúrguer, com recuo) */
.q-nav__menu {
    display: flex;
    flex-direction: column;
    gap: var(--q-space-1);
    margin: 0;
    padding: var(--q-space-2) 0 var(--q-space-3) var(--q-space-4);
    list-style: none;
    border-bottom: var(--q-border-width) solid var(--q-color-border);
}

.q-nav__menu li {
    display: block;
}

.q-nav__menu a {
    display: flex;
    align-items: center;
    gap: var(--q-space-2);
    padding: var(--q-space-2) var(--q-space-2);
    border-bottom: 0;
    border-radius: var(--q-radius-sm);
    color: var(--q-color-text);
    font-size: var(--q-text-sm);
    font-weight: var(--q-weight-medium);
    text-decoration: none;
}

.q-nav__menu a:hover {
    background-color: var(--q-color-surface-hover);
    color: var(--q-color-link);
}

.q-nav__menu a[aria-current="page"],
.q-nav__menu a[aria-current] {
    background-color: var(--q-color-surface-sunken);
    color: var(--q-color-text);
    font-weight: var(--q-weight-bold);
}

.q-nav__menu-label {
    display: block;
    padding: var(--q-space-2) var(--q-space-2) var(--q-space-1);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

.q-nav__menu-label:not(:first-child) {
    margin-top: var(--q-space-2);
    padding-top: var(--q-space-2);
    border-top: var(--q-border-width) solid var(--q-color-border);
}

.q-nav__menu .q-app-mark {
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
}

.q-nav__menu small {
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-regular);
}

.q-header__search {
    margin-top: var(--q-space-4);
}

.q-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: var(--q-radius-sm);
    color: var(--q-color-text-muted);
}

.q-icon-btn:hover {
    background-color: var(--q-color-accent-subtle);
    color: var(--q-color-link);
}

.q-icon-btn svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.q-theme-toggle .q-icon-sun {
    display: none;
}

[data-bs-theme="dark"] .q-theme-toggle .q-icon-sun {
    display: block;
}

[data-bs-theme="dark"] .q-theme-toggle .q-icon-moon {
    display: none;
}

@media (min-width: 992px) {
    .q-header .q-header__panel {
        display: flex;
        align-items: stretch;
        order: 0;
        flex: 1 1 auto;
        flex-basis: auto;
        gap: var(--q-space-8);
        padding-bottom: 0;
        height: 4rem;
    }

    .q-brand {
        margin-right: 0;
    }

    .q-header__tools {
        order: 4;
    }

    .q-header__panel nav {
        display: flex;
    }

    .q-nav {
        flex-direction: row;
        gap: var(--q-space-6);
    }

    .q-nav li {
        display: flex;
    }

    .q-nav a {
        padding-block: 0;
        border-bottom: 2px solid transparent;
        font-size: var(--q-text-sm);
    }

    .q-nav a[aria-current] {
        border-bottom-color: var(--q-color-accent);
    }

    .q-nav__dropdown {
        position: relative;
        display: flex;
        align-items: stretch;
        height: 100%;
    }

    .q-nav__dropdown > summary {
        justify-content: flex-start;
        gap: var(--q-space-1);
        padding-block: 0;
        border-bottom: 2px solid transparent;
        font-size: var(--q-text-sm);
    }

    .q-nav__dropdown > summary[aria-current] {
        border-bottom-color: var(--q-color-accent);
    }

    .q-nav__dropdown[open] > summary {
        color: var(--q-color-text);
    }

    .q-nav__dropdown > summary::after {
        margin-left: var(--q-space-1);
    }

    .q-nav__menu {
        position: absolute;
        top: 100%;
        left: 0;
        z-index: var(--q-z-dropdown);
        min-width: 17.5rem;
        padding: var(--q-space-2);
        background-color: var(--q-color-surface);
        border: var(--q-border-width) solid var(--q-color-border);
        border-radius: var(--q-radius-md);
    }

    .q-nav__menu li {
        display: block;
    }

    .q-nav__menu a {
        padding: var(--q-space-2) var(--q-space-3);
    }

    .q-nav__menu-label {
        padding: var(--q-space-2) var(--q-space-3) var(--q-space-1);
    }

    .q-header .q-header__search {
        align-self: center;
        margin: 0 0 0 auto;
        width: 16rem;
    }

    .q-menu-toggle {
        display: none;
    }
}

/* ---------- Busca ---------- */
.q-search {
    display: flex;
    width: 100%;
}

.q-search .form-control {
    background-color: var(--q-color-surface);
    border-color: var(--q-color-border-strong);
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    color: var(--q-color-text);
}

.q-search .btn {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.q-search--compact .form-control {
    height: 2.25rem;
    font-size: var(--q-text-sm);
    border-radius: var(--q-radius-sm);
}

.q-search--compact .btn {
    display: none;
}

.q-search--lg .form-control {
    height: 3.5rem;
    font-size: var(--q-text-lg);
    padding-inline: var(--q-space-5);
}

@media (max-width: 575.98px) {
    .q-search--lg .form-control {
        padding-inline: var(--q-space-4);
        font-size: var(--q-text-md);
    }
}

.q-search--lg .btn {
    padding-inline: var(--q-space-6);
    font-size: var(--q-text-md);
    font-weight: var(--q-weight-bold);
}

.q-hint {
    margin: var(--q-space-3) 0 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

.q-hint a {
    margin-right: var(--q-space-3);
    color: var(--q-color-link);
    font-family: var(--q-font-data);
    font-size: var(--q-text-xs);
    text-decoration: none;
    white-space: nowrap;
}

.q-hint a:hover {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

/* ---------- Abertura da home ---------- */
.q-opening {
    padding-block: clamp(var(--q-space-10), 1rem + 6vw, calc(var(--q-space-12) * 2)) var(--q-space-12);
}

.q-opening__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-6);
    align-items: center;
}

.q-opening__mascot {
    order: -1;
    width: clamp(7rem, 30vw, 9rem);
    height: auto;
}

@media (min-width: 992px) {
    .q-opening__grid {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: var(--q-space-12);
    }

    .q-opening__mascot {
        order: 0;
        width: 19rem;
    }
}

.q-opening__date {
    margin: 0 0 var(--q-space-5);
    color: var(--q-color-brand-text);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

.q-opening__title {
    max-width: 17ch;
    margin: 0;
    font-family: var(--q-font-title);
    font-weight: var(--q-weight-display);
    font-size: var(--q-text-5xl);
    line-height: 1.02;
    letter-spacing: var(--q-tracking-tight);
    text-wrap: balance;
}

.q-opening__lede {
    max-width: 40rem;
    margin: var(--q-space-6) 0 var(--q-space-8);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-lg);
    font-style: italic;
    line-height: var(--q-leading-normal);
}

.q-opening .q-search {
    max-width: 44rem;
}

/* ---------- Seção com filete ---------- */
.q-section {
    padding-block: var(--q-section-pad);
    border-top: var(--q-border-width) solid var(--q-color-border-strong);
}

.q-section__head {
    display: grid;
    grid-template-columns: 1fr;
    align-items: baseline;
    gap: var(--q-space-1) var(--q-space-5);
    margin-bottom: var(--q-space-8);
}

.q-section__head--num {
    grid-template-columns: auto 1fr;
}

.q-section__num {
    grid-row: span 2;
    align-self: start;
    font-family: var(--q-font-title);
    font-weight: var(--q-weight-display);
    font-size: var(--q-text-4xl);
    line-height: 0.9;
    color: var(--q-color-brand-display);
    font-variant-numeric: tabular-nums;
}

.q-section__head--num .q-section__title,
.q-section__head--num .q-section__lede {
    grid-column: 2;
}

.q-section__title {
    margin: 0;
    font-size: var(--q-text-2xl);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-tight);
    line-height: var(--q-leading-tight);
}

.q-section__lede {
    grid-column: 1;
    margin: 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    max-width: 44rem;
}

.q-section__more {
    margin-top: var(--q-space-6);
    font-size: var(--q-text-sm);
}

@media (min-width: 768px) {
    .q-section__head {
        grid-template-columns: 1fr auto;
    }

    .q-section__head--num {
        grid-template-columns: auto 1fr auto;
    }

    .q-section__head > .q-section__more-top {
        grid-column: -2 / -1;
        grid-row: 1;
        margin: 0;
    }
}

/* ---------- Identificador de app ---------- */
.q-app-mark {
    --q-app-color: var(--q-app-quantilica);
    display: inline-flex;
    align-items: center;
    gap: var(--q-space-2);
    color: var(--q-color-text);
    font-weight: var(--q-weight-bold);
    text-decoration: none;
    white-space: nowrap;
}

.q-app-mark::before {
    content: "";
    flex: none;
    width: 2px;
    height: var(--q-mark-size);
    background-color: var(--q-app-color);
}

.q-app-mark img {
    flex: none;
    width: var(--q-mark-size);
    height: var(--q-mark-size);
}

.q-app-mark--lg {
    --q-mark-size: 2rem;
    gap: var(--q-space-3);
}

/* Tamanho fixo de 1,25rem (substitui o style="--q-mark-size" das telas) */
.q-app-mark--20 {
    --q-mark-size: 1.25rem;
}

.q-app-mark--hedgehog { --q-app-color: var(--q-app-hedgehog); }
.q-app-mark--fish { --q-app-color: var(--q-app-fish); }
.q-app-mark--flamingo { --q-app-color: var(--q-app-flamingo); }
.q-app-mark--alpaca { --q-app-color: var(--q-app-alpaca); }
.q-app-mark--sloth { --q-app-color: var(--q-app-sloth); }

/* ---------- Tabela densa ---------- */
.q-table-wrap {
    overflow-x: auto;
}

.q-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--q-text-sm);
}

.q-table th {
    background-color: transparent;
    padding: var(--q-space-2) var(--q-space-4) var(--q-space-2) 0;
    text-align: left;
    white-space: nowrap;
}

.q-table td {
    padding: var(--q-space-3) var(--q-space-4) var(--q-space-3) 0;
    border-bottom: var(--q-border-width) solid var(--q-color-border);
    vertical-align: baseline;
}

.q-table th:last-child,
.q-table td:last-child {
    padding-right: 0;
}

.q-table .q-num {
    text-align: right;
}

.q-table tbody tr:hover td {
    background-color: var(--q-color-surface-sunken);
}

.q-table__code {
    color: var(--q-color-code-inline);
    font-family: var(--q-font-data);
    font-size: var(--q-text-xs);
    white-space: nowrap;
}

.q-table__title {
    color: var(--q-color-text);
    font-size: var(--q-text-md);
    font-weight: var(--q-weight-medium);
    text-decoration: none;
}

.q-table__title:hover {
    color: var(--q-color-link);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.q-table__meta {
    display: block;
    margin-top: var(--q-space-1);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
}

.q-table__meta time {
    white-space: nowrap;
}

.q-value {
    font-family: var(--q-font-data);
    font-size: var(--q-text-sm);
    font-weight: var(--q-weight-bold);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.q-value small {
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-regular);
}

.q-date {
    color: var(--q-color-text-muted);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* ---------- Linha de lista densa ---------- */
.q-list {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 2px solid var(--q-color-border-strong);
}

.q-list-row {
    position: relative;
    display: grid;
    grid-template-areas:
        "code date"
        "body body";
    grid-template-columns: 1fr auto;
    align-items: baseline;
    gap: var(--q-space-1) var(--q-space-6);
    margin-inline: calc(var(--q-space-3) * -1);
    padding: var(--q-space-4) var(--q-space-3);
    color: var(--q-color-text);
    text-decoration: none;
}

/* O filete fica alinhado ao texto; só o tint do hover sangra para a margem */
.q-list-row::after {
    content: "";
    position: absolute;
    right: var(--q-space-3);
    bottom: 0;
    left: var(--q-space-3);
    border-bottom: var(--q-border-width) solid var(--q-color-border);
}

.q-list-row:hover {
    background-color: var(--q-color-accent-subtle);
    color: var(--q-color-text);
}

.q-list-row__code {
    grid-area: code;
    color: var(--q-color-code-inline);
    font-family: var(--q-font-data);
    font-size: var(--q-text-xs);
}

.q-list-row__body {
    grid-area: body;
    min-width: 0;
}

.q-list-row__title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    font-size: var(--q-text-md);
    font-weight: var(--q-weight-medium);
    line-height: var(--q-leading-snug);
}

.q-list-row:hover .q-list-row__title {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.q-list-row__meta {
    display: block;
    margin-top: var(--q-space-1);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
}

.q-list-row__date {
    grid-area: date;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

@media (min-width: 768px) {
    .q-list-row {
        grid-template-areas: "code body date";
        grid-template-columns: 4.5rem minmax(0, 1fr) 7rem;
        align-items: start;
    }

    .q-list-row__code {
        padding-top: 0.2em;
    }

    .q-list-row__date {
        text-align: right;
        padding-top: 0.1em;
    }
}

/* Linha de fonte (home): identificador, órgão e um número */
.q-list-row--source {
    grid-template-areas:
        "mark figure"
        "body body";
    align-items: center;
    padding-block: var(--q-space-5);
}

.q-list-row--source .q-app-mark {
    grid-area: mark;
    --q-mark-size: 3.5rem;
    gap: var(--q-space-4);
    font-size: var(--q-text-xl);
}

.q-list-row--source .q-app-mark small {
    display: block;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-regular);
    line-height: var(--q-leading-snug);
}

.q-list-row--source .q-list-row__title {
    display: block;
    font-weight: var(--q-weight-regular);
    font-size: var(--q-text-md);
    color: var(--q-color-text-muted);
}

.q-list-row--source .q-list-row__title b {
    color: var(--q-color-text);
    font-weight: var(--q-weight-medium);
}

.q-figure {
    grid-area: figure;
    text-align: right;
    line-height: var(--q-leading-tight);
}

.q-figure__value {
    display: block;
    font-family: var(--q-font-data);
    font-size: var(--q-text-2xl);
    font-variant-numeric: tabular-nums;
    letter-spacing: var(--q-tracking-tight);
}

.q-figure__label {
    display: block;
    margin-top: var(--q-space-1);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
}

@media (min-width: 992px) {
    .q-list-row--source {
        grid-template-areas: "mark body figure";
        grid-template-columns: 15rem minmax(0, 1fr) 9rem;
        gap: var(--q-space-8);
    }

    .q-list-row--source .q-list-row__body {
        align-self: center;
    }
}

/* ---------- Cabeçalho de página ---------- */
.q-page-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-6);
    padding-block: clamp(var(--q-space-8), 1rem + 3vw, var(--q-space-12)) var(--q-space-10);
}

.q-page-header__eyebrow {
    margin: 0 0 var(--q-space-3);
    color: var(--q-color-brand-text);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

.q-page-header__title {
    margin: 0;
    font-family: var(--q-font-title);
    font-weight: var(--q-weight-display);
    font-size: var(--q-text-4xl);
    line-height: var(--q-leading-tight);
    letter-spacing: var(--q-tracking-tight);
    text-wrap: balance;
}

.q-page-header__lede {
    max-width: 42rem;
    margin: var(--q-space-4) 0 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-lg);
    line-height: var(--q-leading-normal);
}

.q-page-header__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--q-space-3) var(--q-space-6);
    margin-top: var(--q-space-6);
}

.q-page-header__mark {
    order: -1;
    width: 6rem;
    height: auto;
}

@media (min-width: 768px) {
    .q-page-header {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: var(--q-space-10);
        align-items: center;
    }

    .q-page-header__mark {
        order: 0;
        width: clamp(10rem, 18vw, 12.5rem);
    }
}

/* ---------- Barra do app ---------- */
.q-appbar {
    border-bottom: var(--q-border-width) solid var(--q-color-border);
    background-color: var(--q-color-bg);
}

.q-appbar__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: var(--q-space-8);
}

.q-appbar .q-app-mark {
    --q-mark-size: 1.75rem;
    padding-block: var(--q-space-3);
}

.q-appbar .q-app-mark small {
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-regular);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

.q-tabs {
    display: flex;
    flex: 1 1 100%;
    gap: var(--q-space-6);
    margin: 0;
    padding: 0;
    overflow-x: auto;
    list-style: none;
    scrollbar-width: none;
}

.q-tabs::-webkit-scrollbar {
    display: none;
}

.q-tabs a {
    display: block;
    padding-block: var(--q-space-2) calc(var(--q-space-3) - 2px);
    border-bottom: 2px solid transparent;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    font-weight: var(--q-weight-medium);
    text-decoration: none;
    white-space: nowrap;
}

.q-tabs a:hover {
    color: var(--q-color-text);
}

.q-tabs a[aria-current] {
    border-bottom-color: var(--q-color-accent);
    color: var(--q-color-text);
    font-weight: var(--q-weight-bold);
}

@media (min-width: 768px) {
    .q-tabs {
        flex: 1 1 auto;
    }

    .q-tabs a {
        padding-block: var(--q-space-4) calc(var(--q-space-4) - 2px);
    }

    .q-appbar .q-app-mark {
        padding-block: var(--q-space-3);
    }
}

/* ---------- Totais (numerais, não cartões) ---------- */
.q-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--q-space-8) var(--q-space-6);
    margin: 0;
}

.q-stat {
    margin: 0;
    padding-top: var(--q-space-4);
    border-top: var(--q-border-width) solid var(--q-color-border-strong);
}

.q-stat__label {
    margin: 0 0 var(--q-space-3);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

.q-stat__value {
    margin: 0;
    font-family: var(--q-font-data);
    font-size: var(--q-text-4xl);
    font-variant-numeric: tabular-nums;
    letter-spacing: var(--q-tracking-tight);
    line-height: 1;
}

.q-stat__note {
    margin: var(--q-space-3) 0 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    line-height: var(--q-leading-snug);
}

@media (min-width: 992px) {
    .q-stats {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0;
    }

    .q-stat {
        padding: 0 var(--q-space-6);
        border-top: 0;
        border-left: var(--q-border-width) solid var(--q-color-border-strong);
    }

    .q-stat:first-child {
        padding-left: 0;
        border-left: 0;
    }
}

/* ---------- Publicações (grade editorial sóbria) ---------- */
.q-post-grid {
    display: grid;
    gap: var(--q-space-10) var(--q-space-8);
    grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 768px) {
    .q-post-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .q-post--lead {
        grid-column: 1 / -1;
    }
}

@media (min-width: 992px) {
    .q-post-grid {
        grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr);
    }

    .q-post--lead {
        grid-column: auto;
    }
}

.q-post {
    display: flex;
    flex-direction: column;
    gap: var(--q-space-3);
    color: var(--q-color-text);
    text-decoration: none;
}

.q-post:hover {
    color: var(--q-color-text);
}

.q-post__media {
    display: block;
    aspect-ratio: 16 / 10;
    width: 100%;
    height: auto;
    background-color: var(--q-color-surface-sunken);
    border-radius: var(--q-radius-sm);
    object-fit: cover;
}

.q-kicker {
    --q-app-color: var(--q-app-quantilica);
    display: flex;
    align-items: center;
    gap: var(--q-space-2);
    margin: 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-variant-numeric: tabular-nums;
}

.q-kicker::before {
    content: "";
    flex: none;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: var(--q-radius-full);
    background-color: var(--q-app-color);
}

.q-kicker b {
    color: var(--q-color-text);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

.q-kicker--hedgehog { --q-app-color: var(--q-app-hedgehog); }
.q-kicker--fish { --q-app-color: var(--q-app-fish); }
.q-kicker--flamingo { --q-app-color: var(--q-app-flamingo); }
.q-kicker--alpaca { --q-app-color: var(--q-app-alpaca); }
.q-kicker--sloth { --q-app-color: var(--q-app-sloth); }

.q-post__title {
    margin: 0;
    font-size: var(--q-text-lg);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-tight);
    line-height: var(--q-leading-snug);
    text-wrap: balance;
}

.q-post:hover .q-post__title {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.q-post--lead .q-post__title {
    font-size: var(--q-text-3xl);
    line-height: var(--q-leading-tight);
}

.q-post__summary {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    overflow: hidden;
    margin: 0;
    max-width: 38rem;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-md);
    line-height: var(--q-leading-normal);
}

.q-post-more {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    margin-top: var(--q-space-10);
    padding: 0;
    list-style: none;
    border-top: 2px solid var(--q-color-border-strong);
}

.q-post-more .q-post {
    height: 100%;
    padding-block: var(--q-space-4);
    border-bottom: var(--q-border-width) solid var(--q-color-border);
}

@media (min-width: 768px) {
    .q-post-more {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: var(--q-space-8);
    }
}

@media (min-width: 992px) {
    .q-post-more {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* ---------- Nota de fonte e rodapé ---------- */
.q-source-note {
    margin: 0;
    padding-block: var(--q-space-6);
    border-top: var(--q-border-width) solid var(--q-color-border-strong);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

.q-footer {
    padding-block: var(--q-space-10) var(--q-space-12);
    border-top: 3px solid var(--q-color-brand);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

.q-footer__grid {
    display: grid;
    gap: var(--q-space-8);
    grid-template-columns: minmax(0, 1fr);
}

.q-footer .q-brand {
    height: auto;
}

.q-footer__about {
    max-width: 24rem;
    margin: var(--q-space-3) 0 0;
}

.q-footer__links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--q-space-2) var(--q-space-6);
    margin: 0;
    padding: 0;
    list-style: none;
}

.q-footer__links a {
    color: var(--q-color-text-muted);
    text-decoration: none;
}

.q-footer__links a:hover {
    color: var(--q-color-link);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.q-footer__legal {
    margin: var(--q-space-8) 0 0;
    font-size: var(--q-text-xs);
}

@media (min-width: 768px) {
    .q-footer__grid {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
    }
}

/* ---------- Acréscimos (rodada 2) ---------- */

/* Kicker com mascote de 20 px no lugar do ponto */
.q-kicker--mark::before {
    width: 2px;
    height: var(--q-mark-size);
    border-radius: 0;
}

.q-kicker img {
    flex: none;
    width: var(--q-mark-size);
    height: var(--q-mark-size);
}

/* Subtítulo dentro de uma seção (várias listas sob o mesmo capítulo) */
.q-section__subtitle {
    margin: var(--q-space-8) 0 var(--q-space-3);
    font-size: var(--q-text-lg);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-tight);
}

.q-section__subtitle:first-of-type {
    margin-top: 0;
}

.q-footer .q-brand img {
    width: 3rem;
    height: 3rem;
}

/* ---------- Gráfico ---------- */
.q-chart {
    margin: 0;
}

.q-chart__head {
    margin-bottom: var(--q-space-4);
}

.q-chart__title {
    margin: 0;
    font-size: var(--q-text-lg);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-tight);
}

.q-chart__sub {
    margin: var(--q-space-1) 0 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

.q-chart__canvas {
    position: relative;
    height: var(--q-chart-h-md);
}

/* Estados do gráfico de série assíncrono (series-chart.js) */
.q-chart[data-state="error"] .q-chart__foot {
    color: var(--q-color-danger-text);
}

.q-chart[data-state="loading"] .q-chart__canvas,
.q-chart[data-state="error"] .q-chart__canvas {
    opacity: 0.4;
}

.q-chart--sm .q-chart__canvas {
    height: var(--q-chart-h-sm);
}

.q-chart--lg .q-chart__canvas {
    height: var(--q-chart-h-lg);
}

.q-chart__foot {
    margin-top: var(--q-space-3);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
}

.q-grid-2 {
    display: grid;
    gap: var(--q-space-10) var(--q-space-10);
    grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 992px) {
    .q-grid-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ---------- Ficha horizontal (definition_list) ---------- */
.q-dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--q-space-4) var(--q-space-6);
    margin: 0;
    padding-block: var(--q-space-5);
    border-top: var(--q-border-width) solid var(--q-color-border);
}

.q-dl dt {
    margin-bottom: var(--q-space-1);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-2xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

.q-dl dd {
    margin: 0;
    font-size: var(--q-text-sm);
    font-weight: var(--q-weight-medium);
}

.q-dl__mono {
    color: var(--q-color-code-inline);
    font-family: var(--q-font-data);
    font-size: var(--q-text-xs);
}

@media (min-width: 768px) {
    .q-dl {
        grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    }
}

/* ---------- Trilha de navegação ---------- */
.q-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: var(--q-space-1) var(--q-space-2);
    margin: 0 0 var(--q-space-4);
    padding: 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    list-style: none;
}

.q-breadcrumb li + li::before {
    content: "/";
    margin-right: var(--q-space-2);
    color: var(--q-color-brand);
}

.q-breadcrumb a {
    color: var(--q-color-text-muted);
    text-decoration: none;
}

.q-breadcrumb a:hover {
    color: var(--q-color-link);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

/* ---------- KPI com sparkline ---------- */
.q-stat--kpi .q-stat__value {
    font-size: var(--q-text-3xl);
}

.q-stat__unit {
    margin-left: var(--q-space-1);
    color: var(--q-color-text-muted);
    font-family: var(--q-font-ui);
    font-size: var(--q-text-sm);
    letter-spacing: var(--q-tracking-normal);
}

.q-spark {
    display: block;
    width: 100%;
    max-width: 10rem;
    height: auto;
    margin-top: var(--q-space-4);
    overflow: visible;
}

.q-spark polyline {
    fill: none;
    stroke: var(--q-color-data-1);
    stroke-width: 2;
    stroke-linejoin: round;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
}

.q-spark line {
    stroke: var(--q-color-border-strong);
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
}

.q-spark circle {
    fill: var(--q-color-warm);
}

/* ---------- Texto corrido (narrativa) ---------- */
.q-prose {
    max-width: 40rem;
    font-size: var(--q-text-lg);
    line-height: var(--q-leading-relaxed);
}

.q-prose p {
    margin: 0 0 var(--q-space-5);
}

.q-prose strong {
    font-weight: var(--q-weight-bold);
}

.q-prose .q-prose__lead {
    font-family: var(--q-font-title);
    font-size: var(--q-text-2xl);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-tight);
    line-height: var(--q-leading-snug);
}

.q-prose .q-prose__limit {
    color: var(--q-color-text-muted);
    font-size: var(--q-text-md);
    font-style: italic;
}

/* ---------- Números em tabela e valores negativos ---------- */
.q-cell-num {
    font-family: var(--q-font-data);
    font-size: var(--q-text-sm);
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

.q-neg {
    color: var(--q-color-warm-text);
}

.q-table tfoot td {
    padding-top: var(--q-space-4);
    border-top: 2px solid var(--q-color-border-strong);
    border-bottom: 0;
    font-size: var(--q-text-sm);
    font-weight: var(--q-weight-bold);
}

.q-table-wrap--narrow {
    max-width: 52rem;
}

/* ---------- Trecho de código ---------- */
.q-snippet {
    min-width: 0;
}

.q-snippet__label {
    margin: 0 0 var(--q-space-2);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

.q-snippet pre {
    margin: 0;
    overflow-x: auto;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    font-size: var(--q-text-xs);
    line-height: var(--q-leading-relaxed);
}

.q-snippet pre .q-c {
    color: var(--q-color-data-mute);
}

.q-snippet pre .q-k {
    color: var(--q-tabby-300);
}

/* --- lote 2 --- */
/* hub, ficha, artigo, login e 404. Só acrescenta; nada acima é alterado. */

/* ---------- Migalhas ---------- */
.q-breadcrumb-nav {
    padding-top: var(--q-space-6);
}

.q-breadcrumb-nav .q-breadcrumb {
    margin: 0;
}

.q-page-header--compact {
    padding-block: var(--q-space-5) var(--q-space-8);
}

.q-page-header--compact .q-page-header__title {
    font-size: var(--q-text-4xl);
}

/* ---------- Hub: filtros e lista de datasets ---------- */
.q-hub {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-6);
    padding-bottom: var(--q-space-12);
}

@media (min-width: 992px) {
    .q-hub {
        grid-template-columns: 15rem minmax(0, 1fr);
        gap: var(--q-space-10);
        align-items: start;
    }

    .q-hub__filters {
        position: sticky;
        top: calc(4rem + var(--q-space-4));
    }
}

.q-hub__toggle {
    justify-self: start;
}

.q-facet {
    margin: 0 0 var(--q-space-6);
    padding: var(--q-space-3) 0 0;
    border: 0;
    border-top: var(--q-border-width) solid var(--q-color-border-strong);
}

.q-facet:first-child {
    border-top: 2px solid var(--q-color-brand);
}

.q-facet__title {
    float: none;
    width: auto;
    margin: 0 0 var(--q-space-2);
    padding: 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    line-height: var(--q-leading-normal);
    text-transform: uppercase;
}

.q-check {
    display: flex;
    align-items: center;
    gap: var(--q-space-2);
    margin: 0;
    padding-block: var(--q-space-1);
    color: var(--q-color-text);
    font-size: var(--q-text-sm);
    line-height: var(--q-leading-snug);
    cursor: pointer;
}

.q-check .form-check-input {
    flex: none;
    margin: 0;
}

.q-check img {
    flex: none;
    width: 1.5rem;
    height: 1.5rem;
}

.q-check__n {
    margin-left: auto;
    color: var(--q-color-text-subtle);
    font-size: var(--q-text-xs);
    font-variant-numeric: tabular-nums;
}

.q-hub__clear {
    font-size: var(--q-text-sm);
}

.q-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--q-space-3) var(--q-space-6);
    margin-bottom: var(--q-space-4);
}

.q-toolbar__count {
    margin: 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

.q-toolbar__count b {
    color: var(--q-color-text);
    font-variant-numeric: tabular-nums;
}

.q-toolbar__sort {
    display: flex;
    align-items: center;
    gap: var(--q-space-2);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

.q-toolbar__sort .form-select {
    width: auto;
    height: 2.25rem;
    padding-block: 0;
    font-size: var(--q-text-sm);
}

.q-dataset-head {
    display: none;
}

.q-dataset {
    position: relative;
    display: grid;
    grid-template-columns: 2.75rem minmax(0, 1fr);
    gap: var(--q-space-1) var(--q-space-4);
    align-items: start;
    margin-inline: calc(var(--q-space-3) * -1);
    padding: var(--q-space-4) var(--q-space-3);
    color: var(--q-color-text);
    text-decoration: none;
}

.q-dataset::after {
    content: "";
    position: absolute;
    right: var(--q-space-3);
    bottom: 0;
    left: var(--q-space-3);
    border-bottom: var(--q-border-width) solid var(--q-color-border);
}

.q-dataset:hover {
    background-color: var(--q-color-accent-subtle);
    color: var(--q-color-text);
}

.q-dataset__mark {
    grid-row: span 2;
    width: 2.75rem;
    height: 2.75rem;
}

.q-dataset__body {
    min-width: 0;
}

.q-dataset__title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    font-size: var(--q-text-md);
    font-weight: var(--q-weight-medium);
    line-height: var(--q-leading-snug);
}

.q-dataset:hover .q-dataset__title {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.q-dataset__desc {
    display: block;
    margin-top: var(--q-space-1);
    overflow: hidden;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.q-dataset__meta {
    display: block;
    margin-top: var(--q-space-1);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
}

.q-dataset__meta b {
    color: var(--q-color-text);
    font-weight: var(--q-weight-bold);
}

.q-dataset__code {
    color: var(--q-color-code-inline);
    font-family: var(--q-font-data);
}

.q-dataset__facts {
    grid-column: 2;
    display: flex;
    flex-wrap: wrap;
    gap: 0 var(--q-space-3);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-variant-numeric: tabular-nums;
}

.q-dataset__facts > span {
    white-space: nowrap;
}

.q-dataset__facts > .is-empty {
    display: none;
}

@media (min-width: 992px) {
    .q-dataset-head,
    .q-dataset {
        grid-template-columns: 2.75rem minmax(0, 1fr) 5.5rem 5.75rem 7rem 6rem;
        column-gap: var(--q-space-3);
    }

    .q-dataset-head {
        display: grid;
        padding: var(--q-space-2) 0;
        border-bottom: 2px solid var(--q-color-border-strong);
        color: var(--q-color-text-muted);
        font-size: var(--q-text-xs);
        font-weight: var(--q-weight-bold);
        letter-spacing: var(--q-tracking-wide);
        text-transform: uppercase;
    }

    .q-dataset-head span:first-child {
        grid-column: 1 / 3;
    }

    .q-dataset__facts {
        display: contents;
    }

    .q-dataset__facts > span {
        padding-top: 0.15em;
        color: var(--q-color-text);
        font-size: var(--q-text-sm);
    }

    .q-dataset__facts > .is-empty {
        display: block;
        color: var(--q-color-text-subtle);
    }

    .q-dataset__facts > .q-dataset__upd {
        text-align: right;
        color: var(--q-color-text-muted);
    }

    .q-dataset-head span:last-child {
        text-align: right;
    }
}

.q-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--q-space-1);
    margin: var(--q-space-8) 0 0;
    padding: 0;
    list-style: none;
    font-size: var(--q-text-sm);
}

.q-pagination a,
.q-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    height: 2.25rem;
    padding-inline: var(--q-space-3);
    border-bottom: 2px solid transparent;
    color: var(--q-color-link);
    font-variant-numeric: tabular-nums;
    text-decoration: none;
}

.q-pagination a:hover {
    background-color: var(--q-color-accent-subtle);
}

.q-pagination [aria-current] {
    border-bottom-color: var(--q-color-accent);
    color: var(--q-color-text);
    font-weight: var(--q-weight-bold);
}

.q-pagination [aria-disabled] {
    color: var(--q-color-text-subtle);
}

/* ---------- Ficha: ficha técnica, hash, código e abas ---------- */
.q-deflist {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0 var(--q-space-12);
    margin: 0;
    border-top: 2px solid var(--q-color-border-strong);
}

.q-deflist__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-1);
    padding-block: var(--q-space-3);
    border-bottom: var(--q-border-width) solid var(--q-color-border);
}

.q-deflist dt {
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

.q-deflist dd {
    margin: 0;
    font-size: var(--q-text-md);
    font-variant-numeric: tabular-nums;
}

.q-deflist dd small {
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
}

@media (min-width: 768px) {
    .q-deflist {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .q-deflist__row {
        grid-template-columns: 9.5rem minmax(0, 1fr);
        gap: var(--q-space-4);
        align-items: baseline;
    }

    .q-deflist__row--wide {
        grid-column: 1 / -1;
    }
}

.q-mono {
    font-family: var(--q-font-data);
    font-size: var(--q-text-xs);
    font-variant-numeric: tabular-nums;
}

.q-hash {
    color: var(--q-color-text-muted);
    font-family: var(--q-font-data);
    font-size: var(--q-text-xs);
    overflow-wrap: anywhere;
}

.q-table--dense td {
    padding-block: var(--q-space-2);
}

.q-table td.q-mono,
.q-table td .q-mono {
    font-size: var(--q-text-xs);
}

.q-table__key {
    color: var(--q-color-warm-text);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

.q-table-note {
    margin: var(--q-space-3) 0 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

.q-code {
    margin: 0;
    overflow-x: auto;
    font-size: var(--q-text-xs);
    line-height: var(--q-leading-relaxed);
}

.q-code__title {
    margin: var(--q-space-4) 0 var(--q-space-2);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

.q-tabs--panel {
    margin-bottom: var(--q-space-4);
    border-bottom: var(--q-border-width) solid var(--q-color-border);
}

.q-tabs a.active,
.q-tabs a[aria-selected="true"] {
    border-bottom-color: var(--q-color-accent);
    color: var(--q-color-text);
    font-weight: var(--q-weight-bold);
}

.q-tabs--panel a {
    padding-block: var(--q-space-2) calc(var(--q-space-2) - 2px);
}

.q-prov {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-8);
}

@media (min-width: 992px) {
    .q-prov {
        grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
        gap: var(--q-space-12);
    }
}

.q-prov h3 {
    margin: 0 0 var(--q-space-3);
    font-size: var(--q-text-lg);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-tight);
}

.q-prov p {
    margin: 0 0 var(--q-space-3);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    max-width: 38rem;
}

.q-page-header__mark--ficha {
    width: clamp(7rem, 14vw, 9rem);
}

/* ---------- Artigo ---------- */
.q-article-head {
    padding-block: clamp(var(--q-space-8), 1rem + 3vw, var(--q-space-12)) var(--q-space-8);
}

.q-article-head .q-kicker {
    --q-mark-size: 2.25rem;
    gap: var(--q-space-3);
    font-size: var(--q-text-sm);
}

.q-article-head__title {
    max-width: 28ch;
    margin: var(--q-space-5) 0 0;
    font-family: var(--q-font-title);
    font-weight: var(--q-weight-display);
    font-size: var(--q-text-5xl);
    line-height: 1.04;
    letter-spacing: var(--q-tracking-tight);
    text-wrap: balance;
}

.q-article-head__lede {
    max-width: 44rem;
    margin: var(--q-space-6) 0 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xl);
    font-style: italic;
    line-height: var(--q-leading-normal);
}

.q-byline {
    display: flex;
    flex-wrap: wrap;
    gap: var(--q-space-1) var(--q-space-6);
    margin: var(--q-space-8) 0 0;
    padding: var(--q-space-3) 0 0;
    border-top: var(--q-border-width) solid var(--q-color-border-strong);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

.q-byline b {
    color: var(--q-color-text);
}

.q-article {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-6);
    padding-bottom: var(--q-space-12);
}

@media (min-width: 992px) {
    .q-article {
        grid-template-columns: 12.5rem minmax(0, 68ch) minmax(0, 1fr);
        gap: var(--q-space-8);
        align-items: start;
    }
}

.q-toc {
    font-size: var(--q-text-sm);
}

@media (min-width: 992px) {
    .q-toc {
        position: sticky;
        top: calc(4rem + var(--q-space-6));
    }
}

.q-toc summary {
    padding-block: var(--q-space-2);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
    cursor: pointer;
}

.q-toc ol {
    margin: 0;
    padding: 0;
    list-style: none;
    border-left: var(--q-border-width) solid var(--q-color-border-strong);
}

.q-toc a {
    display: block;
    margin-left: -1px;
    padding: var(--q-space-1) 0 var(--q-space-1) var(--q-space-3);
    border-left: 2px solid transparent;
    color: var(--q-color-text-muted);
    line-height: var(--q-leading-snug);
    text-decoration: none;
}

.q-toc a:hover {
    color: var(--q-color-link);
}

.q-toc a[aria-current] {
    border-left-color: var(--q-color-accent);
    color: var(--q-color-text);
    font-weight: var(--q-weight-bold);
}

.q-article .q-prose {
    max-width: none;
    min-width: 0;
    font-size: var(--q-text-lg);
    line-height: var(--q-leading-relaxed);
}

.q-article .q-prose > :first-child {
    margin-top: 0;
}

.q-article .q-prose p {
    margin: 0 0 var(--q-space-5);
}

.q-article .q-prose h2 {
    margin: var(--q-space-12) 0 var(--q-space-4);
    padding-top: var(--q-space-5);
    border-top: 2px solid var(--q-color-brand);
    font-size: var(--q-text-2xl);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-tight);
    line-height: var(--q-leading-tight);
    scroll-margin-top: calc(4rem + var(--q-space-6));
}

.q-article .q-prose h3 {
    margin: var(--q-space-8) 0 var(--q-space-3);
    font-size: var(--q-text-xl);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-tight);
    line-height: var(--q-leading-snug);
}

.q-article .q-prose a {
    color: var(--q-color-link);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.2em;
}

.q-article .q-prose ul {
    margin: 0 0 var(--q-space-5);
    padding-left: var(--q-space-6);
}

.q-article .q-prose li {
    margin-bottom: var(--q-space-2);
}

.q-article .q-prose .q-table {
    font-size: var(--q-text-sm);
    line-height: var(--q-leading-snug);
}

.q-article .q-prose .q-table td:first-child,
.q-article .q-prose .q-table th:first-child {
    max-width: 18rem;
}

.q-article .q-prose .q-table-wrap {
    margin: var(--q-space-6) 0;
}

.q-article .q-prose .q-table caption {
    padding-bottom: var(--q-space-2);
    caption-side: top;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    text-align: left;
}

.q-eq {
    margin: var(--q-space-6) 0;
    padding: var(--q-space-3) var(--q-space-5);
    background-color: var(--q-color-surface-sunken);
    border-radius: var(--q-radius-sm);
    font-family: var(--q-font-title);
    font-size: var(--q-text-xl);
    font-style: italic;
    text-align: center;
    overflow-x: auto;
}

.q-callout {
    margin: var(--q-space-6) 0;
    padding: var(--q-space-4) var(--q-space-5);
    background-color: var(--q-color-warm-subtle);
    border-left: 3px solid var(--q-color-warm);
    border-radius: 0 var(--q-radius-sm) var(--q-radius-sm) 0;
    font-size: var(--q-text-md);
    line-height: var(--q-leading-normal);
}

.q-callout > :last-child {
    margin-bottom: 0;
}

.q-callout__title {
    margin: 0 0 var(--q-space-1);
    color: var(--q-color-warm-text);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

.q-callout--nota {
    background-color: var(--q-color-accent-subtle);
    border-left-color: var(--q-color-accent);
}

.q-callout--nota .q-callout__title {
    color: var(--q-color-link);
}

.q-article .q-prose .q-chart {
    margin: var(--q-space-8) 0;
}

.q-chart__legend {
    display: flex;
    flex-wrap: wrap;
    gap: var(--q-space-1) var(--q-space-5);
    margin: 0 0 var(--q-space-3);
    padding: 0;
    list-style: none;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

.q-chart__legend li {
    --q-chart-color: var(--q-color-brand);
    display: flex;
    align-items: center;
    gap: var(--q-space-2);
}

.q-chart__legend li::before {
    content: "";
    width: 1.25rem;
    height: 3px;
    background-color: var(--q-chart-color);
}

.q-chart__legend .q-chart__s1 { --q-chart-color: var(--q-color-data-1); }
.q-chart__legend .q-chart__s2 { --q-chart-color: var(--q-color-data-2); }

.q-sidenote {
    margin: 0 0 var(--q-space-5);
    padding-left: var(--q-space-3);
    border-left: 2px solid var(--q-color-border-strong);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    line-height: var(--q-leading-snug);
}

@media (min-width: 1200px) {
    .q-sidenote {
        float: right;
        clear: right;
        width: 13rem;
        margin: 0 -15rem var(--q-space-4) var(--q-space-4);
    }
}

.q-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--q-space-1) var(--q-space-4);
    margin: var(--q-space-8) 0 0;
    padding: 0;
    list-style: none;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

.q-tags a {
    color: var(--q-color-text-muted);
    text-decoration: none;
}

.q-tags a:hover {
    color: var(--q-color-link);
    text-decoration: underline;
}

/* ---------- Login e 404 ---------- */
.q-solo {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-8);
    align-items: center;
    justify-items: start;
    padding-block: clamp(var(--q-space-8), 1rem + 5vw, calc(var(--q-space-12) * 2)) var(--q-space-12);
}

.q-solo__mascot {
    width: clamp(8rem, 32vw, 10rem);
    height: auto;
}

@media (min-width: 768px) {
    .q-solo {
        grid-template-columns: auto minmax(0, 1fr);
        gap: clamp(var(--q-space-10), 6vw, calc(var(--q-space-12) * 2));
        justify-items: stretch;
    }

    .q-solo--center {
        width: fit-content;
        margin-inline: auto;
        min-height: calc(100vh - 12rem);
    }

    .q-solo__mascot {
        width: clamp(14rem, 24vw, 20rem);
    }
}

.q-solo__eyebrow {
    margin: 0 0 var(--q-space-3);
    color: var(--q-color-brand-text);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

.q-solo__title {
    margin: 0;
    font-family: var(--q-font-title);
    font-weight: var(--q-weight-display);
    font-size: var(--q-text-4xl);
    line-height: var(--q-leading-tight);
    letter-spacing: var(--q-tracking-tight);
    text-wrap: balance;
}

.q-solo__lede {
    max-width: 34rem;
    margin: var(--q-space-3) 0 var(--q-space-6);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-lg);
    line-height: var(--q-leading-normal);
}

.q-form {
    display: grid;
    gap: var(--q-space-5);
    width: min(100%, 24rem);
}

.q-form .form-label {
    margin-bottom: var(--q-space-1);
    font-size: var(--q-text-sm);
    font-weight: var(--q-weight-bold);
}

.q-form .form-control {
    height: 2.75rem;
}

.q-form__label-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--q-space-4);
}

.q-form__label-row a {
    font-size: var(--q-text-sm);
}

.q-form__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--q-space-3) var(--q-space-6);
}

.q-form__alt {
    margin: var(--q-space-6) 0 0;
    padding-top: var(--q-space-4);
    border-top: var(--q-border-width) solid var(--q-color-border-strong);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

.q-search--block {
    max-width: 34rem;
}

.q-solo .q-list {
    max-width: 34rem;
    margin-top: var(--q-space-8);
}

.q-solo .q-list-row {
    grid-template-columns: 4.5rem minmax(0, 1fr);
    grid-template-areas: "code body";
}

.q-solo .q-list-row__date {
    display: none;
}

.q-hub__search {
    margin-bottom: var(--q-space-5);
}

.q-check__sub {
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
}

@media (min-width: 992px) {
    .q-dataset-head + .q-dataset-list {
        border-top: 0;
    }
}

.q-appbar--sticky {
    position: sticky;
    top: 4rem;
    z-index: calc(var(--q-z-sticky) - 1);
}

.q-section--first,
#ficha,
#arquivos,
#variaveis,
#amostra,
#acesso,
#proveniencia {
    scroll-margin-top: 7.5rem;
}

.q-deflist--stack {
    grid-template-columns: minmax(0, 1fr);
}

.q-deflist--stack .q-deflist__row {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-1);
}

.q-stats--ficha {
    margin-bottom: var(--q-space-10);
}

.q-table--nowrap td,
.q-table--nowrap th {
    white-space: nowrap;
}

.q-article .q-prose .q-tags {
    margin-top: var(--q-space-8);
    padding-left: 0;
}

.q-article .q-prose .q-tags li {
    margin-bottom: 0;
}

.q-header__bar--simple .q-header__tools {
    margin-left: auto;
}

@media (min-width: 768px) {
    .q-solo .q-solo__mascot {
        width: clamp(16rem, 28vw, 26rem);
    }
}

/* ---------- Lote 3 · Conta, desenvolvedores, institucional e admin: cadastro, conta, credenciais, API, metodologia, painel interno e erro 500 ---------- */

/* Navegação da conta: lista lateral no desktop, linha rolável no celular */
.q-account {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-4);
    padding-bottom: var(--q-space-12);
}

.q-account__main {
    min-width: 0;
}

@media (min-width: 992px) {
    .q-account {
        grid-template-columns: 12.5rem minmax(0, 1fr);
        gap: var(--q-space-12);
        align-items: start;
    }

    .q-subnav {
        position: sticky;
        top: calc(4rem + var(--q-space-6));
    }
}

.q-subnav ul {
    display: flex;
    margin: 0;
    padding: 0;
    overflow-x: auto;
    list-style: none;
    border-bottom: var(--q-border-width) solid var(--q-color-border-strong);
    scrollbar-width: none;
}

.q-subnav ul::-webkit-scrollbar {
    display: none;
}

.q-subnav a {
    display: block;
    padding: var(--q-space-2) var(--q-space-4) calc(var(--q-space-2) - 2px) 0;
    border-bottom: 2px solid transparent;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    font-weight: var(--q-weight-medium);
    text-decoration: none;
    white-space: nowrap;
}

.q-subnav a:hover {
    color: var(--q-color-link);
}

.q-subnav a[aria-current] {
    border-bottom-color: var(--q-color-accent);
    color: var(--q-color-text);
    font-weight: var(--q-weight-bold);
}

@media (min-width: 992px) {
    .q-subnav ul {
        flex-direction: column;
        overflow: visible;
        border-bottom: 0;
        border-left: var(--q-border-width) solid var(--q-color-border-strong);
    }

    .q-subnav a {
        margin-left: -1px;
        padding: var(--q-space-2) 0 var(--q-space-2) var(--q-space-3);
        border-bottom: 0;
        border-left: 2px solid transparent;
    }

    .q-subnav a[aria-current] {
        border-left-color: var(--q-color-accent);
    }
}

.q-subnav__group {
    margin: var(--q-space-6) 0 var(--q-space-2);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

/* Seção mais curta, para blocos dentro de uma coluna de conteúdo */
.q-section--tight {
    padding-block: var(--q-space-8);
}

.q-section--tight .q-section__head {
    margin-bottom: var(--q-space-5);
}

.q-section--tight:first-child {
    border-top: 2px solid var(--q-color-brand);
}

/* Formulários: ajuda, erro, regras de senha, campo com ação, linha de opção */
.q-form--wide {
    width: min(100%, 30rem);
}

.q-form__help {
    margin: var(--q-space-1) 0 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    line-height: var(--q-leading-snug);
}

.q-form__error {
    margin: var(--q-space-1) 0 0;
    color: var(--q-color-danger-text);
    font-size: var(--q-text-sm);
    font-weight: var(--q-weight-medium);
    line-height: var(--q-leading-snug);
}

.q-form .form-control.is-invalid,
.q-form .form-select.is-invalid {
    --bs-form-invalid-border-color: var(--q-color-danger-text);
    padding-right: var(--q-space-3);
    background-image: none;
    border-color: var(--q-color-danger-text);
    border-width: 2px;
}

.q-form .form-control.is-invalid:focus {
    border-color: var(--q-color-danger-text);
    box-shadow: var(--q-focus-ring);
}

.q-form .form-label small {
    color: var(--q-color-text-muted);
    font-weight: var(--q-weight-regular);
}

.q-pw {
    position: relative;
}

.q-pw .form-control {
    padding-right: 5.5rem;
}

.q-pw__toggle {
    position: absolute;
    top: 50%;
    right: var(--q-space-3);
    padding: var(--q-space-1) var(--q-space-2);
    background: transparent;
    border: 0;
    border-radius: var(--q-radius-sm);
    color: var(--q-color-link);
    font-size: var(--q-text-sm);
    font-weight: var(--q-weight-medium);
    transform: translateY(-50%);
}

.q-pw__toggle:hover {
    background-color: var(--q-color-accent-subtle);
}

.q-rules {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--q-space-1) var(--q-space-4);
    margin: var(--q-space-3) 0 0;
    padding: 0;
    list-style: none;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

.q-rules li {
    display: flex;
    align-items: baseline;
    gap: var(--q-space-2);
}

.q-rules li::before {
    content: "";
    flex: none;
    width: 0.5rem;
    height: 0.5rem;
    border: 1.5px solid var(--q-color-text-subtle);
    border-radius: var(--q-radius-full);
}

.q-rules .is-ok {
    color: var(--q-color-text);
}

.q-rules .is-ok::before {
    background-color: var(--q-color-accent);
    border-color: var(--q-color-accent);
}

@media (max-width: 575.98px) {
    .q-rules {
        grid-template-columns: minmax(0, 1fr);
    }
}

.q-form .q-check {
    align-items: flex-start;
    padding-block: 0;
}

.q-form .q-check .form-check-input {
    margin-top: 0.2em;
}

.btn-outline-danger {
    --bs-btn-color: var(--q-color-danger-text);
    --bs-btn-border-color: var(--q-color-danger-text);
    --bs-btn-hover-color: var(--q-color-danger-text);
    --bs-btn-hover-bg: var(--q-color-danger-bg);
    --bs-btn-hover-border-color: var(--q-color-danger-text);
    --bs-btn-active-color: var(--q-color-danger-text);
    --bs-btn-active-bg: var(--q-color-danger-bg);
    --bs-btn-active-border-color: var(--q-color-danger-text);
    --bs-btn-disabled-color: var(--q-color-danger-text);
    --bs-btn-disabled-border-color: var(--q-color-danger-text);
}

/* Medidor de uso: uma barra fina e dois números */
.q-meter {
    margin-top: var(--q-space-4);
}

.q-meter__track {
    height: 0.5rem;
    overflow: hidden;
    background-color: var(--q-color-surface-sunken);
    border: var(--q-border-width) solid var(--q-color-border);
    border-radius: var(--q-radius-full);
}

.q-meter__bar {
    --q-meter-pct: 0%;
    display: block;
    width: var(--q-meter-pct);
    height: 100%;
    background-color: var(--q-color-data-1);
    border-radius: var(--q-radius-full);
}

/* Preenchimento por decil (a classe arredonda o valor; o número exato vai no texto) */
.q-meter__bar--p10 { --q-meter-pct: 10%; }
.q-meter__bar--p20 { --q-meter-pct: 20%; }
.q-meter__bar--p30 { --q-meter-pct: 30%; }
.q-meter__bar--p40 { --q-meter-pct: 40%; }
.q-meter__bar--p50 { --q-meter-pct: 50%; }
.q-meter__bar--p60 { --q-meter-pct: 60%; }
.q-meter__bar--p70 { --q-meter-pct: 70%; }
.q-meter__bar--p80 { --q-meter-pct: 80%; }
.q-meter__bar--p90 { --q-meter-pct: 90%; }
.q-meter__bar--p100 { --q-meter-pct: 100%; }

.q-meter__legend {
    display: flex;
    justify-content: space-between;
    gap: var(--q-space-4);
    margin: var(--q-space-2) 0 0;
    color: var(--q-color-text-muted);
    font-family: var(--q-font-data);
    font-size: var(--q-text-xs);
    font-variant-numeric: tabular-nums;
}

/* Uso: números do mês lado a lado, sem cartões */
.q-stats--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 992px) {
    .q-stats--3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.q-stats--3 .q-stat__value {
    font-size: var(--q-text-3xl);
}

/* Segredo mostrado uma vez */
.q-secret {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--q-space-4);
    align-items: center;
    padding: var(--q-space-3) var(--q-space-3) var(--q-space-3) var(--q-space-5);
    background-color: var(--q-color-code-bg);
    border: var(--q-border-width) solid var(--q-color-border-strong);
    border-radius: var(--q-radius-md);
}

.q-secret code {
    padding: 0;
    background: none;
    border: 0;
    color: var(--q-color-code-text);
    font-size: var(--q-text-sm);
    overflow-wrap: anywhere;
}

/* Estado de uma execução ou de uma chave: ponto e texto, nunca só cor */
.q-status {
    --q-status-color: var(--q-color-text-subtle);
    display: inline-flex;
    align-items: center;
    gap: var(--q-space-2);
    white-space: nowrap;
}

.q-status::before {
    content: "";
    flex: none;
    width: 0.5rem;
    height: 0.5rem;
    background-color: var(--q-status-color);
    border-radius: var(--q-radius-full);
}

.q-status--ok {
    --q-status-color: var(--q-color-accent);
}

.q-status--run {
    --q-status-color: var(--q-color-data-3);
}

.q-status--fail {
    --q-status-color: var(--q-color-danger-text);
    color: var(--q-color-danger-text);
    font-weight: var(--q-weight-bold);
}

/* Passos numerados (quickstart e fluxo da metodologia) */
.q-steps {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-8);
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: passo;
}

.q-steps > li {
    min-width: 0;
    padding-top: var(--q-space-4);
    border-top: var(--q-border-width) solid var(--q-color-border-strong);
    counter-increment: passo;
}

.q-steps > li::before {
    content: counter(passo, decimal-leading-zero);
    display: block;
    margin-bottom: var(--q-space-3);
    color: var(--q-color-brand-display);
    font-family: var(--q-font-title);
    font-size: var(--q-text-3xl);
    font-weight: var(--q-weight-display);
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.q-steps h3 {
    margin: 0 0 var(--q-space-2);
    font-size: var(--q-text-lg);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-tight);
}

.q-steps p {
    margin: 0 0 var(--q-space-3);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    line-height: var(--q-leading-normal);
}

.q-steps pre {
    margin: 0;
    overflow-x: auto;
    font-size: var(--q-text-xs);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

@media (min-width: 992px) {
    .q-steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: var(--q-space-8);
    }
}

/* Método HTTP na tabela de endpoints */
.q-method {
    color: var(--q-color-brand-text);
    font-family: var(--q-font-data);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
}

.q-method--post {
    color: var(--q-color-warm-text);
}

/* Documentação com índice lateral e coluna larga (API) */
.q-doc {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-4);
    padding-bottom: var(--q-space-12);
}

.q-doc__main {
    min-width: 0;
}

@media (min-width: 992px) {
    .q-doc {
        grid-template-columns: 12.5rem minmax(0, 1fr);
        gap: var(--q-space-12);
        align-items: start;
    }
}

.q-doc .q-section--tight {
    scroll-margin-top: calc(4rem + var(--q-space-6));
}

.q-doc__lead {
    max-width: 44rem;
    margin: 0 0 var(--q-space-5);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-md);
    line-height: var(--q-leading-normal);
}

/* Painel interno: barra de ferramenta do admin, interruptores, observações */
.q-appbar--admin .q-app-mark small {
    color: var(--q-color-warm-text);
}

.q-switch {
    display: inline-flex;
    align-items: center;
    gap: var(--q-space-3);
    margin: 0;
    min-height: 1.5rem;
}

.q-switch .form-check-input {
    margin: 0;
    cursor: pointer;
}

.q-switch__text {
    min-width: 5.5rem;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

.q-switch .form-check-input:checked ~ .q-switch__text {
    color: var(--q-color-text);
}

.q-table tr.is-off td {
    color: var(--q-color-text-muted);
}

.q-table tr.is-off .q-table__code {
    text-decoration: line-through;
    text-decoration-color: var(--q-color-warm);
}

.q-table--admin td,
.q-table--admin th {
    white-space: nowrap;
}

.q-table--admin td.q-wrap {
    white-space: normal;
}

.q-table-wrap--admin {
    border-top: 2px solid var(--q-color-border-strong);
}

.q-table--admin thead th {
    padding-block: var(--q-space-2);
    border-bottom: var(--q-border-width) solid var(--q-color-border-strong);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

.q-admin-summary {
    display: flex;
    flex-wrap: wrap;
    gap: var(--q-space-1) var(--q-space-6);
    margin: 0 0 var(--q-space-4);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    font-variant-numeric: tabular-nums;
}

.q-admin-summary b {
    color: var(--q-color-text);
}

.q-form--stack {
    width: min(100%, 36rem);
}

.q-form .form-control.q-mono {
    height: auto;
    font-family: var(--q-font-data);
    font-size: var(--q-text-sm);
}

/* Erro 500: código do incidente e o que fazer */
.q-incident {
    max-width: 34rem;
    margin: var(--q-space-6) 0 0;
}

.q-incident .q-deflist__row {
    grid-template-columns: 7rem minmax(0, 1fr);
    align-items: baseline;
}

.q-solo__next {
    max-width: 34rem;
    margin: var(--q-space-6) 0 0;
    padding: 0 0 0 var(--q-space-5);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-md);
    line-height: var(--q-leading-normal);
}

.q-solo__next li {
    margin-bottom: var(--q-space-2);
    padding-left: var(--q-space-1);
}

.q-solo__next li::marker {
    color: var(--q-color-brand-text);
    font-weight: var(--q-weight-bold);
}

/* Cabeçalho do solo (cadastro) sem centralização de altura mínima */
.q-solo--form .q-form {
    width: min(100%, 26rem);
}

/* Cabeçalho de página logada: nome do usuário */
.q-user {
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

/* Callout só com filete: o texto fica na mesma margem da coluna e o filete pende para a calha */
.q-callout--filete {
    margin-left: calc((3px + var(--q-space-3)) * -1);
    padding: var(--q-space-1) 0 var(--q-space-1) var(--q-space-3);
    background-color: transparent;
    border-radius: 0;
}

.q-callout--filete .q-callout__title + p {
    margin-top: 0;
}

.q-callout--filete .btn {
    margin-top: var(--q-space-3);
}

.q-callout__list {
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: var(--q-text-sm);
}

.q-solo--form .q-callout,
.q-solo--form .q-form__alt {
    width: min(100%, 26rem);
}

.q-solo--form .q-callout {
    margin-top: 0;
    margin-bottom: var(--q-space-5);
}

.q-section--tight .q-deflist,
.q-section--tight .q-list {
    border-top: var(--q-border-width) solid var(--q-color-border-strong);
}

.q-table--admin td.q-wrap {
    min-width: 16rem;
}

.q-prose .q-app-mark,
.q-article .q-prose a.q-app-mark {
    color: var(--q-color-text);
    text-decoration: none;
}

.q-switch.form-switch {
    padding-left: 0;
}

.q-switch.form-switch .form-check-input {
    flex: none;
    width: 2.25em;
    height: 1.25em;
    margin-left: 0;
}

.q-table-wrap--admin {
    position: relative;
}

/* ---------- Lote 3 · Descoberta: busca, índices, análises e marts ---------- */
/* busca, series, paineis, analises, marts e mart. Só acrescenta; nada acima é alterado. */

/* Linha de lista com código largo (SGS 13522, SIDRA 7060, RTN 1.6) */
.q-list-row__summary {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    margin-top: var(--q-space-1);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    line-height: var(--q-leading-snug);
}

.q-list-row__mark {
    width: 1.75rem;
    height: 1.75rem;
}

@media (min-width: 768px) {
    .q-list-row--wide-code {
        grid-template-columns: 6rem minmax(0, 1fr) 7rem;
    }

    .q-list-row--wide-code .q-list-row__mark {
        margin-top: -0.15rem;
    }
}

/* ---------- Grupo de resultados (busca e índices por tema) ---------- */
.q-group {
    margin: 0 0 var(--q-space-12);
    scroll-margin-top: calc(4rem + var(--q-space-4));
}

.q-group__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--q-space-1) var(--q-space-6);
    margin-bottom: var(--q-space-3);
}

.q-group__title {
    margin: 0;
    font-size: var(--q-text-xl);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-tight);
    line-height: var(--q-leading-snug);
}

.q-group__count {
    margin-left: var(--q-space-2);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    font-weight: var(--q-weight-regular);
    font-variant-numeric: tabular-nums;
}

.q-group__more {
    font-size: var(--q-text-sm);
}

.q-group__note {
    margin: 0 0 var(--q-space-3);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

/* Faceta feita de links (tipo de resultado, tema), com contagem */
.q-facet__links {
    margin: 0;
    padding: 0;
    list-style: none;
}

.q-facet__links a {
    display: flex;
    align-items: baseline;
    gap: var(--q-space-2);
    padding: var(--q-space-1) 0 var(--q-space-1) var(--q-space-2);
    border-left: 2px solid transparent;
    color: var(--q-color-text);
    font-size: var(--q-text-sm);
    line-height: var(--q-leading-snug);
    text-decoration: none;
}

.q-facet__links a:hover {
    color: var(--q-color-link);
}

.q-facet__links a[aria-current] {
    border-left-color: var(--q-color-accent);
    font-weight: var(--q-weight-bold);
}

.q-facet__links .is-zero {
    color: var(--q-color-text-subtle);
}

/* Contagem de resultados abaixo do formulário de busca da página */
.q-search--page {
    max-width: 44rem;
    margin-top: var(--q-space-6);
}

.q-page-header--search .q-page-header__title {
    overflow-wrap: anywhere;
}

/* ---------- Sparkline dentro de tabela ---------- */
.q-table .q-spark,
.q-spark--inline {
    display: block;
    width: 6rem;
    max-width: none;
    height: auto;
    margin: 0 0 0 auto;
}

.q-table th.q-table__spark,
.q-table td.q-table__spark {
    width: 7rem;
    padding-left: var(--q-space-2);
}

/* ---------- Faixa de filtros horizontal (poucos itens) ---------- */
.q-filterbar {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--q-space-3) var(--q-space-10);
    margin: 0 0 var(--q-space-8);
    padding-block: var(--q-space-3);
    border-block: var(--q-border-width) solid var(--q-color-border-strong);
}

.q-filterbar__group {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--q-space-1) var(--q-space-5);
    margin: 0;
    padding: 0;
    border: 0;
}

.q-filterbar__label {
    margin-right: var(--q-space-1);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

.q-filterbar ul {
    display: contents;
    margin: 0;
    padding: 0;
    list-style: none;
}

.q-filterbar a {
    display: inline-block;
    padding-block: var(--q-space-1);
    border-bottom: 2px solid transparent;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    text-decoration: none;
}

.q-filterbar a:hover {
    color: var(--q-color-link);
}

.q-filterbar a[aria-current] {
    border-bottom-color: var(--q-color-accent);
    color: var(--q-color-text);
    font-weight: var(--q-weight-bold);
}

/* ---------- Fontes de um painel (mascotes pequenos + nome) ---------- */
.q-srcs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--q-space-1) var(--q-space-4);
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
}

.q-srcs li {
    display: inline-flex;
    align-items: center;
    gap: var(--q-space-2);
}

.q-srcs img {
    width: 1.5rem;
    height: 1.5rem;
}

/* ---------- Painéis: destaque e lista ---------- */
.q-panels-lead {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-10) var(--q-space-12);
    margin-bottom: var(--q-space-12);
}

@media (min-width: 992px) {
    .q-panels-lead {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.q-panel {
    display: flex;
    flex-direction: column;
    gap: var(--q-space-3);
    padding-top: var(--q-space-4);
    border-top: 2px solid var(--q-color-border-strong);
    color: var(--q-color-text);
    text-decoration: none;
}

.q-panel:hover {
    color: var(--q-color-text);
}

.q-panel__title {
    margin: 0;
    font-family: var(--q-font-title);
    font-size: var(--q-text-3xl);
    font-weight: var(--q-weight-display);
    letter-spacing: var(--q-tracking-tight);
    line-height: var(--q-leading-tight);
    text-wrap: balance;
}

.q-panel:hover .q-panel__title {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.q-panel__desc {
    max-width: 36rem;
    margin: 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-md);
    line-height: var(--q-leading-normal);
}

.q-panel__figure {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--q-space-4) var(--q-space-8);
    margin: auto 0 0;
    padding-top: var(--q-space-4);
}

.q-panel__value {
    display: block;
    font-family: var(--q-font-data);
    font-size: var(--q-text-4xl);
    font-variant-numeric: tabular-nums;
    letter-spacing: var(--q-tracking-tight);
    line-height: 1;
}

.q-panel__unit,
.q-panel-row__unit {
    margin-left: var(--q-space-1);
    color: var(--q-color-text-muted);
    font-family: var(--q-font-ui);
    font-size: var(--q-text-sm);
    letter-spacing: var(--q-tracking-normal);
}

.q-panel__label,
.q-panel-row__label {
    display: block;
    margin-top: var(--q-space-2);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    line-height: var(--q-leading-snug);
}

.q-panel .q-spark {
    flex: 1 1 8rem;
    width: auto;
    max-width: 16rem;
    height: auto;
    margin: 0;
}

.q-panel__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--q-space-2) var(--q-space-6);
    padding-top: var(--q-space-2);
}

.q-panel__date,
.q-panel-row__date {
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.q-panel-row {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "body body"
        "figure spark"
        "foot foot";
    align-items: end;
    gap: var(--q-space-3) var(--q-space-6);
    margin-inline: calc(var(--q-space-3) * -1);
    padding: var(--q-space-5) var(--q-space-3);
    color: var(--q-color-text);
    text-decoration: none;
}

.q-panel-row::after {
    content: "";
    position: absolute;
    right: var(--q-space-3);
    bottom: 0;
    left: var(--q-space-3);
    border-bottom: var(--q-border-width) solid var(--q-color-border);
}

.q-panel-row:hover {
    background-color: var(--q-color-accent-subtle);
    color: var(--q-color-text);
}

.q-panel-row__body {
    grid-area: body;
    align-self: start;
    min-width: 0;
}

.q-panel-row__title {
    margin: 0;
    font-size: var(--q-text-lg);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-tight);
    line-height: var(--q-leading-snug);
}

.q-panel-row:hover .q-panel-row__title {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.q-panel-row__desc {
    margin: var(--q-space-1) 0 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    line-height: var(--q-leading-snug);
}

.q-panel-row__figure {
    grid-area: figure;
    min-width: 0;
    line-height: var(--q-leading-tight);
}

.q-panel-row__value {
    display: block;
    font-family: var(--q-font-data);
    font-size: var(--q-text-2xl);
    font-variant-numeric: tabular-nums;
    letter-spacing: var(--q-tracking-tight);
}

.q-panel-row .q-spark {
    grid-area: spark;
    width: 7rem;
    height: auto;
    margin: 0;
}

.q-panel-row__foot {
    grid-area: foot;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--q-space-2) var(--q-space-6);
}

@media (min-width: 992px) {
    .q-panel-row {
        grid-template-columns: minmax(0, 1fr) 11rem 8rem 12rem;
        grid-template-areas: "body figure spark foot";
        align-items: center;
        gap: var(--q-space-6);
    }

    .q-panel-row__body {
        align-self: center;
    }

    .q-panel-row__foot {
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: var(--q-space-2);
    }
}

/* ---------- Análises: linha editorial com capa pequena opcional ---------- */
.q-post-row {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-3) var(--q-space-8);
    margin-inline: calc(var(--q-space-3) * -1);
    padding: var(--q-space-5) var(--q-space-3);
    color: var(--q-color-text);
    text-decoration: none;
}

.q-post-row::after {
    content: "";
    position: absolute;
    right: var(--q-space-3);
    bottom: 0;
    left: var(--q-space-3);
    border-bottom: var(--q-border-width) solid var(--q-color-border);
}

.q-post-row:hover {
    background-color: var(--q-color-accent-subtle);
    color: var(--q-color-text);
}

.q-post-row__title {
    display: block;
    max-width: 44rem;
    margin: var(--q-space-2) 0 0;
    font-size: var(--q-text-xl);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-tight);
    line-height: var(--q-leading-snug);
    text-wrap: balance;
}

.q-post-row:hover .q-post-row__title {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.q-post-row__summary {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    max-width: 42rem;
    margin: var(--q-space-2) 0 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-md);
    line-height: var(--q-leading-normal);
}

.q-post-row__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--q-space-1) var(--q-space-4);
    margin: var(--q-space-3) 0 0;
    padding: 0;
    list-style: none;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-variant-numeric: tabular-nums;
}

.q-post-row__cover {
    display: none;
    width: 100%;
    aspect-ratio: 16 / 10;
    height: auto;
    background-color: var(--q-color-surface-sunken);
    border-radius: var(--q-radius-sm);
    object-fit: cover;
}

@media (min-width: 768px) {
    .q-post-row--cover {
        grid-template-columns: minmax(0, 1fr) 9.5rem;
        align-items: start;
    }

    .q-post-row--cover .q-post-row__cover {
        display: block;
        margin-top: var(--q-space-2);
    }
}

/* ---------- Marts: lista e linhagem ---------- */
.q-mart-head {
    display: none;
}

.q-mart {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-1) var(--q-space-6);
    align-items: start;
    margin-inline: calc(var(--q-space-3) * -1);
    padding: var(--q-space-5) var(--q-space-3);
    color: var(--q-color-text);
    text-decoration: none;
}

.q-mart::after {
    content: "";
    position: absolute;
    right: var(--q-space-3);
    bottom: 0;
    left: var(--q-space-3);
    border-bottom: var(--q-border-width) solid var(--q-color-border);
}

.q-mart:hover {
    background-color: var(--q-color-accent-subtle);
    color: var(--q-color-text);
}

.q-mart__code {
    color: var(--q-color-code-inline);
    font-family: var(--q-font-data);
    font-size: var(--q-text-xs);
}

.q-mart__title {
    display: block;
    margin-top: var(--q-space-1);
    font-size: var(--q-text-md);
    font-weight: var(--q-weight-medium);
    line-height: var(--q-leading-snug);
}

.q-mart:hover .q-mart__title {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.q-mart__desc,
.q-mart__origin {
    display: block;
    margin-top: var(--q-space-1);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    line-height: var(--q-leading-snug);
}

.q-mart__origin {
    font-size: var(--q-text-xs);
}

.q-mart__origin code {
    font-size: inherit;
}

.q-mart__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 0 var(--q-space-4);
    margin-top: var(--q-space-2);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-variant-numeric: tabular-nums;
}

@media (min-width: 992px) {
    .q-mart-head,
    .q-mart {
        grid-template-columns: minmax(0, 1fr) 5rem 6rem 7rem;
        column-gap: var(--q-space-4);
    }

    .q-mart-head {
        display: grid;
        padding: var(--q-space-2) 0;
        border-bottom: 2px solid var(--q-color-border-strong);
        color: var(--q-color-text-muted);
        font-size: var(--q-text-xs);
        font-weight: var(--q-weight-bold);
        letter-spacing: var(--q-tracking-wide);
        text-transform: uppercase;
    }

    .q-mart-head span:not(:first-child) {
        text-align: right;
    }

    .q-mart__facts {
        display: contents;
    }

    .q-mart__facts > span {
        padding-top: 0.15em;
        color: var(--q-color-text);
        font-size: var(--q-text-sm);
        text-align: right;
        white-space: nowrap;
    }

    .q-mart__facts > .is-muted {
        color: var(--q-color-text-muted);
    }
}

.q-lineage {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-6);
    margin: 0;
    padding: 0;
    list-style: none;
}

.q-lineage li {
    padding-top: var(--q-space-3);
    border-top: 2px solid var(--q-color-border-strong);
}

.q-lineage li:last-child {
    border-top-color: var(--q-color-brand);
}

.q-lineage__step {
    display: block;
    margin-bottom: var(--q-space-2);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

.q-lineage__name {
    display: block;
    color: var(--q-color-code-inline);
    font-family: var(--q-font-data);
    font-size: var(--q-text-sm);
    overflow-wrap: anywhere;
}

.q-lineage__note {
    display: block;
    margin-top: var(--q-space-2);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    line-height: var(--q-leading-snug);
}

@media (min-width: 992px) {
    .q-lineage {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* Nome de coluna em tabela de esquema */
.q-table__col {
    color: var(--q-color-code-inline);
    font-family: var(--q-font-data);
    font-size: var(--q-text-xs);
    white-space: nowrap;
}

/* Ajustes pequenos do lote 3 */
.q-group__title--lead {
    margin-bottom: var(--q-space-6);
}

.q-section__subtitle.q-section__subtitle--spaced {
    margin-top: var(--q-space-10);
}

.q-stat__value--text {
    font-size: var(--q-text-2xl);
}

.q-page-header__actions--flush {
    margin-top: 0;
}

.q-app-mark--inline {
    --q-mark-size: 1.25rem;
    font-size: var(--q-text-xs);
}

.q-kicker--sm {
    --q-mark-size: 1.25rem;
}

.q-solo__tips {
    max-width: 34rem;
    margin: var(--q-space-8) 0 0;
    padding-left: var(--q-space-5);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    line-height: var(--q-leading-normal);
}

.q-solo__tips li {
    margin-bottom: var(--q-space-2);
}

.q-solo .q-hint {
    max-width: 34rem;
}

/* A barra de abas pode encolher e rolar por dentro, sem alargar a página no celular */
.q-appbar__inner > nav {
    min-width: 0;
    max-width: 100%;
}

/* ---------- Lote 3 · Apps: Tesouro Direto, calculadora, calendário do DATASUS e ferramentas ---------- */

/* Legenda do gráfico: terceira e quarta séries (as duas primeiras já existem) */
.q-chart__legend .q-chart__s3 { --q-chart-color: var(--q-color-data-3); }
.q-chart__legend .q-chart__s4 { --q-chart-color: var(--q-color-data-8); }

.q-chart__axis-note {
    margin: var(--q-space-2) 0 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
}

/* Atalhos da abertura de um app: título, uma frase, sem cartão */
.q-shortcuts {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    column-gap: var(--q-space-8);
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 2px solid var(--q-color-border-strong);
}

.q-shortcuts a {
    display: block;
    height: 100%;
    padding-block: var(--q-space-4);
    border-bottom: var(--q-border-width) solid var(--q-color-border);
    color: var(--q-color-text);
    text-decoration: none;
}

.q-shortcuts__title {
    display: block;
    font-size: var(--q-text-lg);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-tight);
}

.q-shortcuts a:hover .q-shortcuts__title {
    color: var(--q-color-link);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.q-shortcuts__desc {
    display: block;
    max-width: 32rem;
    margin-top: var(--q-space-1);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    line-height: var(--q-leading-snug);
}

@media (min-width: 768px) {
    .q-shortcuts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .q-shortcuts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* Tabelas de preços: título com vencimento e demais colunas numéricas */
.q-table--bonds .q-table__title {
    font-size: var(--q-text-sm);
}

.q-table--bonds td {
    padding-block: var(--q-space-2);
}

.q-table--bonds .q-cell-num {
    padding-left: var(--q-space-3);
}

@media (max-width: 575.98px) {
    .q-table--bonds th {
        padding-right: var(--q-space-2);
        vertical-align: bottom;
        white-space: normal;
    }

    .q-table--bonds td {
        padding-right: var(--q-space-2);
    }
}

.q-table-group + .q-table-group {
    margin-top: var(--q-space-10);
}

.q-table-group__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--q-space-1) var(--q-space-6);
    margin-bottom: var(--q-space-2);
}

.q-table-group__head .q-section__subtitle {
    margin: 0;
}

.q-table-group__note {
    margin: 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
}

/* Equação em destaque dentro do texto corrido */
.q-eq--block {
    font-size: var(--q-text-lg);
    line-height: var(--q-leading-relaxed);
}

/* ---------- Calculadora ---------- */
.q-calc {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-10);
    padding-bottom: var(--q-space-12);
}

@media (min-width: 992px) {
    .q-calc {
        grid-template-columns: minmax(0, 22rem) minmax(0, 1fr);
        gap: var(--q-space-12);
        align-items: start;
    }
}

.q-calc .q-form {
    width: 100%;
}

.q-calc__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-5);
}

.q-calc .form-select {
    height: 2.75rem;
}

.q-calc .input-group .form-control {
    height: 2.75rem;
}

.q-field__hint {
    margin: var(--q-space-1) 0 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
}

.q-calc__demo {
    margin: 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
}

.q-calc__demo button {
    padding: 0;
    background: none;
    border: 0;
    color: var(--q-color-link);
    font: inherit;
    text-decoration: underline;
    text-underline-offset: 0.2em;
    cursor: pointer;
}

.q-result {
    min-width: 0;
    padding-top: var(--q-space-5);
    border-top: 2px solid var(--q-color-brand);
}

.q-result__label {
    margin: 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

.q-result__value {
    margin: var(--q-space-2) 0 var(--q-space-3);
    font-family: var(--q-font-data);
    font-size: var(--q-text-5xl);
    font-variant-numeric: tabular-nums;
    letter-spacing: var(--q-tracking-tight);
    line-height: 1;
    overflow-wrap: anywhere;
}

.q-result__lede {
    max-width: 38rem;
    margin: 0 0 var(--q-space-6);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-md);
    line-height: var(--q-leading-normal);
}

.q-result__lede b {
    color: var(--q-color-text);
}

.q-result__empty {
    max-width: 34rem;
    margin: var(--q-space-3) 0 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-md);
    line-height: var(--q-leading-normal);
}

.q-fold {
    margin-top: var(--q-space-8);
    border-top: var(--q-border-width) solid var(--q-color-border-strong);
}

.q-fold > summary {
    display: flex;
    align-items: baseline;
    gap: var(--q-space-3);
    padding-block: var(--q-space-3);
    font-size: var(--q-text-md);
    font-weight: var(--q-weight-bold);
    list-style: none;
    cursor: pointer;
}

.q-fold > summary::-webkit-details-marker {
    display: none;
}

.q-fold > summary::before {
    content: "+";
    flex: none;
    width: 1ch;
    color: var(--q-color-brand-text);
    font-family: var(--q-font-data);
}

.q-fold[open] > summary::before {
    content: "\2212";
}

.q-fold > summary small {
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    font-weight: var(--q-weight-regular);
}

.q-fold__body {
    max-height: 26rem;
    overflow: auto;
    margin-bottom: var(--q-space-2);
}

.q-result .q-section__subtitle {
    margin-top: var(--q-space-8);
}

.q-fold__body thead th {
    position: sticky;
    top: 0;
    background-color: var(--q-color-bg);
}

/* ---------- Calendário de atualizações ---------- */
.q-sprite {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}

.q-cal-wrap {
    position: relative;
}

.q-cal {
    width: 100%;
    min-width: 58rem;
    border-collapse: separate;
    border-spacing: 0;
    font-size: var(--q-text-sm);
}

.q-cal thead th {
    padding: var(--q-space-2) var(--q-space-1);
    border-bottom: 2px solid var(--q-color-border-strong);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-align: center;
    text-transform: uppercase;
    white-space: nowrap;
}

.q-cal thead th small {
    display: block;
    font-size: var(--q-text-2xs);
    font-weight: var(--q-weight-regular);
    letter-spacing: 0;
}

.q-cal thead th:first-child,
.q-cal tbody th {
    position: sticky;
    left: 0;
    z-index: 1;
    min-width: 11.5rem;
    padding-right: var(--q-space-4);
    background-color: var(--q-color-bg);
    text-align: left;
}

.q-cal tbody th {
    padding-block: var(--q-space-2);
    color: var(--q-color-text);
    font-size: var(--q-text-sm);
    font-weight: var(--q-weight-bold);
    vertical-align: middle;
}

.q-cal thead th:first-child,
.q-cal tbody th {
    width: 15rem;
    max-width: 15rem;
}

@media (max-width: 767.98px) {
    .q-cal thead th:first-child,
    .q-cal tbody th {
        width: 5.5rem;
        min-width: 5.5rem;
        max-width: 5.5rem;
    }
}

.q-cal tbody th small {
    display: block;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-regular);
    line-height: var(--q-leading-snug);
}

@media (max-width: 767.98px) {
    .q-cal tbody th small {
        display: none;
    }
}

.q-cal td {
    padding: var(--q-space-1) 2px;
}

.q-cal__cell {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--q-space-1);
    height: 2.5rem;
    border: var(--q-border-width) solid transparent;
    border-radius: var(--q-radius-xs);
    font-family: var(--q-font-data);
    font-size: var(--q-text-xs);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.q-cal__cell--ok {
    background-color: var(--q-color-brand-soft);
    color: var(--q-color-text);
}

.q-cal__cell--ok .q-cal__ico {
    color: var(--q-color-brand-text);
}

.q-cal__cell--late {
    background-color: var(--q-color-danger-bg);
    border-color: var(--q-color-danger-text);
    color: var(--q-color-danger-text);
}

.q-cal__cell--none {
    color: var(--q-color-text-subtle);
}

.q-cal__ico {
    flex: none;
    width: 0.9rem;
    height: 0.9rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.q-cal-key {
    display: flex;
    flex-wrap: wrap;
    gap: var(--q-space-3) var(--q-space-8);
    margin: 0 0 var(--q-space-5);
    padding: 0;
    list-style: none;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

.q-cal-key li {
    display: flex;
    align-items: center;
    gap: var(--q-space-3);
}

.q-cal-key .q-cal__cell {
    width: 2.5rem;
    height: 1.75rem;
}

.q-cal-key b {
    color: var(--q-color-text);
}

/* ---------- Índice de ferramentas ---------- */
.q-list-row__desc {
    display: block;
    max-width: 44rem;
    margin-top: var(--q-space-1);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    font-weight: var(--q-weight-regular);
    line-height: var(--q-leading-normal);
}

.q-list-row__desc b {
    color: var(--q-color-text);
    font-weight: var(--q-weight-medium);
}

.q-list-row--tool .q-list-row__date {
    white-space: normal;
}

@media (min-width: 768px) {
    .q-list-row--tool {
        grid-template-columns: 5.5rem minmax(0, 1fr) 8rem;
    }
}

/* Cabeçalho de linha em tabela (primeira coluna como rótulo) */
.q-table tbody th {
    padding: var(--q-space-3) var(--q-space-4) var(--q-space-3) 0;
    border-bottom: var(--q-border-width) solid var(--q-color-border);
    color: var(--q-color-text);
    font-size: var(--q-text-sm);
    font-weight: var(--q-weight-medium);
    letter-spacing: 0;
    text-transform: none;
    vertical-align: baseline;
}

.q-calc .form-control.is-invalid,
.q-calc .form-control.is-invalid:focus {
    border-color: var(--q-color-danger-text);
    background-image: none;
}

.q-field__error {
    display: flex;
    align-items: flex-start;
    gap: var(--q-space-2);
    margin: var(--q-space-2) 0 0;
    color: var(--q-color-danger-text);
    font-size: var(--q-text-sm);
    font-weight: var(--q-weight-medium);
    line-height: var(--q-leading-snug);
}

.q-field__error[hidden] {
    display: none;
}

.q-field__error svg {
    flex: none;
    width: 1.1rem;
    height: 1.1rem;
    margin-top: 0.05rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* A barra do app rola dentro de si mesma: o nav precisa poder encolher */
.q-appbar__inner > nav {
    flex: 1 1 100%;
    min-width: 0;
}

@media (min-width: 768px) {
    .q-appbar__inner > nav {
        flex: 1 1 0;
    }
}

/* ---------- Lote 4 · Apps 1 (Hedgehog, Flamingo, Alpaca): feed "o que mudou", árvore, lista de arquivos e área de soltar arquivo ---------- */

/* Feed "o que mudou": um bloco por dia, uma linha por mudança. Serve a Hedgehog, Fish e Alpaca */
.q-feed-day {
    margin: 0 0 var(--q-space-10);
}

.q-feed-day__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--q-space-1) var(--q-space-4);
    padding-bottom: var(--q-space-2);
    border-bottom: 2px solid var(--q-color-border-strong);
}

.q-feed-day__title {
    margin: 0;
    font-family: var(--q-font-title);
    font-size: var(--q-text-2xl);
    font-weight: var(--q-weight-display);
    letter-spacing: var(--q-tracking-tight);
    line-height: var(--q-leading-snug);
}

.q-feed-day__weekday {
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

.q-feed-day__count {
    margin-left: auto;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
    font-variant-numeric: tabular-nums;
}

.q-feed {
    margin: 0;
    padding: 0;
    list-style: none;
}

.q-feed__item {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-1) var(--q-space-6);
    padding-block: var(--q-space-4);
    border-bottom: var(--q-border-width) solid var(--q-color-border);
}

/* Tipo da mudança: o formato da marca diferencia sem depender de cor */
.q-feed__type {
    display: inline-flex;
    align-items: center;
    gap: var(--q-space-2);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
    white-space: normal;
    overflow-wrap: anywhere;
}

.q-feed__type::before {
    content: "";
    flex: none;
    box-sizing: border-box;
    width: 0.55rem;
    height: 0.55rem;
    border: 2px solid var(--q-color-accent);
    background-color: var(--q-color-accent);
    border-radius: var(--q-radius-full);
}

.q-feed__type--new::before {
    border-radius: 0;
}

.q-feed__type--change::before {
    background-color: transparent;
}

.q-feed__type--remove::before {
    height: 2px;
    border: 0;
    border-radius: 0;
    background-color: var(--q-color-text-subtle);
}

.q-feed__body {
    min-width: 0;
}

.q-feed__title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    color: var(--q-color-text);
    font-size: var(--q-text-md);
    font-weight: var(--q-weight-medium);
    line-height: var(--q-leading-snug);
    text-decoration: none;
    overflow-wrap: anywhere;
}

.q-feed__title:hover {
    color: var(--q-color-link);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.q-feed__meta {
    display: block;
    margin-top: var(--q-space-1);
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
    line-height: var(--q-leading-normal);
}

.q-feed__meta time {
    white-space: nowrap;
}

.q-feed__figure {
    margin: 0;
    font-family: var(--q-font-data);
    font-size: var(--q-text-sm);
    font-variant-numeric: tabular-nums;
}

.q-feed__value {
    font-weight: var(--q-weight-bold);
}

.q-feed__delta,
.q-feed__from,
.q-feed__count small {
    color: var(--q-color-text-muted);
    font-size: var(--q-text-xs);
}

.q-feed__delta.q-neg {
    color: var(--q-color-warm-text);
}

.q-feed__count b {
    font-weight: var(--q-weight-bold);
}

.q-feed__count {
    white-space: nowrap;
}

.q-feed__more,
.q-feed__note {
    margin: var(--q-space-3) 0 0;
    color: var(--q-color-text-muted);
    font-size: var(--q-text-sm);
}

@media (min-width: 768px) {
    .q-feed__item {
        grid-template-columns: 10rem minmax(0, 1fr) minmax(8rem, auto);
        align-items: baseline;
    }

    .q-feed__item:not(:has(.q-feed__figure)) {
        grid-template-columns: 10rem minmax(0, 1fr);
    }

    .q-feed__figure {
        text-align: right;
    }
}

.q-filterbar__group--end {
    margin-left: auto;
}

/* Árvore de temas (details aninhados) */
.q-tree,
.q-tree ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.q-tree ul {
    margin-left: var(--q-space-2);
    padding-left: var(--q-space-4);
    border-left: var(--q-border-width) solid var(--q-color-border-strong);
}

.q-tree__node > summary,
.q-tree__leaf {
    display: flex;
    align-items: baseline;
    gap: var(--q-space-3);
    padding-block: var(--q-space-2);
}

.q-tree__node > summary {
    list-style: none;
    cursor: pointer;
}

.q-tree__node > summary::-webkit-details-marker {
    display: none;
}

.q-tree__node > summary::before {
    content: "+";
    flex: none;
    width: 1ch;
    color: var(--q-color-brand-text);
    font-family: var(--q-font-data);
}

.q-tree__node[open] > summary::before {
    content: "\2212";
}

.q-tree__leaf {
    padding-left: calc(1ch + var(--q-space-3));
}

.q-tree__name {
    min-width: 0;
    padding-left: var(--q-space-2);
    border-left: 2px solid transparent;
    color: var(--q-color-text);
    font-size: var(--q-text-sm);
    line-height: var(--q-leading-snug);
    text-decoration: none;
}

.q-tree > li > .q-tree__node > summary .q-tree__name {
    font-size: var(--q-text-md);
    font-weight: var(--q-weight-bold);
}

.q-tree__name:hover {
    color: var(--q-color-link);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.q-tree__name[aria-current] {
    border-left-color: var(--q-color-accent);
    font-weight: var(--q-weight-bold);
}

.q-tree__count {
    flex: none;
    margin-left: auto;
    color: var(--q-color-text-muted);
    font-family: var(--q-font-data);
    font-size: var(--q-text-xs);
    font-variant-numeric: tabular-nums;
}

.q-tree-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--q-space-10);
}

.q-tree-tools {
    margin-bottom: var(--q-space-4);
}

.q-tree-tools__acoes {
    display: flex;
    gap: var(--q-space-5);
    margin: var(--q-space-3) 0 0;
}

.q-tree-tools__btn {
    padding: 0;
    border: 0;
    background: none;
    color: var(--q-color-link);
    font-size: var(--q-text-sm);
    font-weight: var(--q-weight-medium);
}

.q-tree-tools__btn:hover {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.q-tree-pane__trail {
    margin: 0 0 var(--q-space-2);
    color: var(--q-color-brand-text);
    font-size: var(--q-text-xs);
    font-weight: var(--q-weight-bold);
    letter-spacing: var(--q-tracking-wide);
    text-transform: uppercase;
}

@media (min-width: 992px) {
    .q-tree-layout {
        grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
        align-items: start;
    }

    .q-tree-pane {
        position: sticky;
        top: var(--q-space-6);
        padding-left: var(--q-space-10);
        border-left: var(--q-border-width) solid var(--q-color-border);
    }
}

/* ==========================================================================
   Mascote: cena da gata (recorte com lua em CSS, sombra de chão e traço do rodapé).
   Uso: <div class="q-gata-cena q-opening__mascot"><img class="q-gata-cena__img"
   src=".../gata-recorte.png" alt="" width="1024" height="1024"></div>.
   Uma variação por tela; a gata é assinatura, não decoração recorrente.
   O tamanho vem do contêiner (q-opening__mascot, q-solo__mascot, etc.).
   A lua é um disco teal-300 em ::before (o recorte não a traz embutida).
   A sombra de chão é o gata-recorte-sombra.svg; o consumidor define o caminho:
       :root { --q-gata-sombra-url: url("/static/img/gata/gata-recorte-sombra.svg"); }
   (sem a variável, a cena fica sem sombra). Rodapé: <svg class="q-footer__gata"
   viewBox="0 0 1024 1024" aria-hidden="true"><use href=".../gata-linha.svg#gata-linha"/></svg>.
   ========================================================================== */
.q-gata-cena {
    position: relative;
    isolation: isolate;
    aspect-ratio: 1;
}

.q-gata-cena::before,
.q-gata-cena::after {
    content: "";
    position: absolute;
    z-index: -1;
}

/* Lua: disco teal-300 atrás do corpo (65% da largura, à direita do centro da cena) */
.q-gata-cena::before {
    inset-block-start: 25%;
    inset-inline-start: 17%;
    width: 65%;
    aspect-ratio: 1;
    border-radius: 50%;
    background-color: var(--q-teal-300);
}

/* Sombra de chão desenhada (elipse do próprio recorte), sem sombra de caixa */
.q-gata-cena::after {
    inset: 0;
    background: var(--q-gata-sombra-url, none) center / 100% 100% no-repeat;
}

.q-gata-cena__img {
    display: block;
    width: 100%;
    height: auto;
}

/* Sobre: gata ao lado do título, só a partir de 768 px (no celular não empurra o texto) */
.q-article-head--gata {
    display: grid;
    gap: var(--q-space-8);
    align-items: center;
}

@media (min-width: 768px) {
    .q-article-head--gata {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .q-article-head__gata {
        width: clamp(9rem, 16vw, 12rem);
    }
}

/* Rodapé: traço da gata herda a cor do texto de marca (teal-700 no claro, teal-300 no escuro) */
.q-footer__gata {
    display: block;
    width: 3rem;
    height: 3rem;
    margin-block-start: var(--q-space-6);
    fill: currentColor;
    color: var(--q-color-brand-text);
}

/* ==========================================================================
   Mascote: estados (vazio, boas-vindas e carregamento). SVG em <use>, nos tamanhos pequenos.
   Vazio:   <svg class="q-gata-vazio" viewBox="0 0 1024 1024" aria-hidden="true"><use href=".../gata-dormindo.svg#gata"/>
            <g class="q-gata-vazio__z">os 3 <path> do gata-dormindo-z.svg</g></svg>
   Boas-vindas: <svg class="q-gata-lupa" viewBox="0 0 1024 1024" aria-hidden="true"><use href=".../gata-lupa.svg#gata-lupa"/></svg>
   Carregando: <div class="q-loading" role="status"><svg class="q-loading__gata" viewBox="0 0 1024 1024" aria-hidden="true">
            <use href=".../gata-cauda.svg#corpo"/><use class="q-loading__cauda" href=".../gata-cauda.svg#cauda"/></svg>
            <p class="q-loading__texto">Carregando…</p></div>
   Movimento só fora de prefers-reduced-motion; no resto, a gata fica parada.
   ========================================================================== */
.q-gata-vazio {
    display: block;
    width: 7.5rem;
    height: 7.5rem;
    margin-inline: auto;
    margin-block-end: var(--q-space-4);
}

.q-gata-vazio__z {
    fill: none;
    stroke: var(--q-color-brand-text);
    stroke-width: 14;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.q-gata-lupa {
    display: block;
    width: 9rem;
    height: 9rem;
}

.q-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--q-space-3);
    padding-block: var(--q-space-8);
    color: var(--q-color-text-muted);
    text-align: center;
}

.q-loading__gata {
    width: 7.5rem;
    height: 7.5rem;
}

.q-loading__texto {
    margin: 0;
}

@media (prefers-reduced-motion: no-preference) {
    .q-gata-vazio__z path {
        animation: q-gata-z 3.2s ease-in-out infinite;
    }

    .q-gata-vazio__z path:nth-child(2) {
        animation-delay: 0.5s;
    }

    .q-gata-vazio__z path:nth-child(3) {
        animation-delay: 1s;
    }

    .q-loading__cauda {
        transform-box: view-box;
        transform-origin: 548px 905px;
        animation: q-loading-cauda 1.4s ease-in-out infinite alternate;
    }
}

@keyframes q-gata-z {
    0%,
    100% {
        opacity: 0.25;
    }

    50% {
        opacity: 1;
    }
}

@keyframes q-loading-cauda {
    from {
        transform: rotate(-12deg);
    }

    to {
        transform: rotate(12deg);
    }
}

/* Vazio com a gata: mascote e frase centralizados */
.q-empty-mascote {
    text-align: center;
}
