/*
 * Contrato mínimo entre as camadas de refinamento.
 * Mantém os componentes específicos em suas folhas e fornece apenas tokens/fallbacks.
 */
:root {
    --ds-primary: var(--gov-primary, #176b43);
    --ds-primary-strong: var(--gov-primary-strong, #0f4f31);
    --ds-surface: var(--gov-surface, #fff);
    --ds-surface-muted: var(--gov-surface-muted, #f4f8f5);
    --ds-text: var(--gov-text, #18342a);
    --ds-muted: var(--gov-muted, #5d7067);
    --ds-border: var(--gov-line, #d9e4de);
    --ds-success: #19764b;
    --ds-warning: #8a5b08;
    --ds-danger: var(--gov-danger, #b3261e);
    --ds-info: var(--gov-info, #276c9f);

    --ds-space-1: var(--gov-space-1, .25rem);
    --ds-space-2: var(--gov-space-2, .5rem);
    --ds-space-3: var(--gov-space-3, .75rem);
    --ds-space-4: var(--gov-space-4, 1rem);
    --ds-space-5: var(--gov-space-5, 1.5rem);
    --ds-space-6: var(--gov-space-6, 2rem);

    --ds-radius-control: .7rem;
    --ds-radius-panel: 1rem;
    --ds-radius-hero: 1.125rem;
    --ds-radius-pill: 999rem;
    --ds-shadow-panel: 0 10px 28px rgba(20, 58, 41, .065);
    --ds-shadow-raised: 0 18px 46px rgba(20, 58, 41, .1);
}

/* Fallbacks de baixa especificidade; identidades de cada módulo continuam prioritárias. */
:where(.page-panel, .filter, .card-form, .empty-state) {
    border-color: var(--ds-border);
    border-radius: var(--ds-radius-panel);
}

:where(.page-header, [class$="-hero"], [class*="-hero "]) {
    border-radius: var(--ds-radius-hero);
}

:where(.btn, .form-control, .form-select, .input-group-text) {
    border-radius: var(--ds-radius-control);
}

:where(.badge, .tag-status, .gov-table-count, .status-online) {
    border-radius: var(--ds-radius-pill);
}

:where(.page-panel, .card-form) {
    box-shadow: var(--ds-shadow-panel);
}

:where(.form-label, .filter label, .label) {
    color: var(--ds-text);
}

:where(.subtitle, .text-muted) {
    color: var(--ds-muted);
}

:where(.alert-success) {
    border-color: color-mix(in srgb, var(--ds-success) 35%, white);
}

:where(.alert-warning) {
    border-color: color-mix(in srgb, var(--ds-warning) 35%, white);
}

:where(.alert-danger) {
    border-color: color-mix(in srgb, var(--ds-danger) 35%, white);
}

@supports not (color: color-mix(in srgb, black, white)) {
    :where(.alert-success) { border-color: #a8d4bb; }
    :where(.alert-warning) { border-color: #e0c689; }
    :where(.alert-danger) { border-color: #eab0ac; }
}

@media (max-width: 575.98px) {
    :root {
        --ds-radius-panel: .875rem;
        --ds-radius-hero: 1rem;
        --ds-space-5: 1.25rem;
        --ds-space-6: 1.5rem;
    }
}
