@layer mindz.theme {
/*
 * MindZ Theme Contract v2660
 * A paleta vive em mindz_foundations.css. Esta camada contém somente
 * garantias transversais de cor, contraste e renderização do documento.
 */

:root {
    --mindz-theme-contract-release: 2660;
}

:root[data-theme-mode="dark"],
:root[data-theme="dark"] {
    color-scheme: dark;
}

:root:not([data-theme="dark"]) {
    color-scheme: light;
}

:root[data-theme="dark"] body,
:root[data-theme="dark"] :where(.app-shell, .app-area, .app-content, .content-page, .main-content, .page-content, .shell-main, .page, .page-body, .view, .view-content) {
    color: var(--text);
}

:root[data-theme="dark"] :where(.app-topbar, .topbar, .app-header, .shell-header, .main-header, .sidebar, .app-sidebar, .shell-sidebar) {
    background-color: var(--header-bg);
    color: var(--header-title);
    border-color: var(--header-border);
}

:root[data-theme="dark"] :where(.page-header, .module-header, .result-header, .section-hero) {
    color: var(--title-color);
    border-color: var(--border);
}

:root[data-theme="dark"] :where(
    input:not([type="checkbox"]):not([type="radio"]),
    select,
    textarea
) {
    background-color: var(--input-bg);
    color: var(--input-text);
    border-color: var(--input-border);
}

:root[data-theme="dark"] :where(input, select, textarea)::placeholder {
    color: var(--placeholder);
}

:root[data-theme="dark"] :where(h1, h2, h3, h4, h5, h6, strong, b, .title, .page-title, .section-title) {
    color: var(--title-color);
}

:root[data-theme="dark"] :where(.subtitle, .description, .helper-text, .muted, small) {
    color: var(--text-muted);
}

:root[data-theme="dark"] :where(canvas, .mindz-chart-canvas-host) {
    color-scheme: dark;
}

@media (prefers-contrast: more) {
    html:root {
        --border: var(--border-strong);
        --input-border: var(--border-strong);
        --table-border: var(--border-strong);
        --focus-ring: 0 0 0 4px color-mix(in srgb, var(--focus-ring-color) 44%, transparent);
    }

    :where(button, a, input, select, textarea, [tabindex]):focus-visible {
        outline: 2px solid var(--focus-ring-color);
        outline-offset: 2px;
    }
}

@media (forced-colors: active) {
    :where(button, a, input, select, textarea, [tabindex]):focus-visible:not([aria-disabled="true"]) {
        outline: 2px solid CanvasText;
        outline-offset: 2px;
    }
}
}
