/* Shared light palette */
:root,
:root[data-theme="light"] {
    --md-accent:#087f73;
    --md-accent-hover:#06685e;
    --md-accent-text:#ffffff;
    --md-link:#06685e;
    --md-tint:#e9f3ef;
    --md-focus:#087f73;
    --background:#f7f8f5;
    --surface:#eef2ef;
    --text:#172126;
    --muted:#59676b;
    --border:#d4ded8;
    --accent:#087f73;
    --vx-bg:#f7f8f5;
    --vx-soft:#eef2ef;
    --vx-panel:#ffffff;
    --vx-text:#172126;
    --vx-muted:#59676b;
    --vx-border:#d4ded8;
    --vx-line:#e2e8e3;
    --vx-ink:#101b20;
    --vx-bar:#087f73;
    --vx-bar-old:#758681;
    --vx-shadow:0 24px 70px rgb(20 60 50 / 9%);
}

/* Dark palette */
:root[data-theme="dark"] {
    --md-accent:#67dcc5;
    --md-accent-hover:#8be7d4;
    --md-accent-text:#0b0f12;
    --md-link:#67dcc5;
    --md-tint:#152c2a;
    --md-focus:#67dcc5;
    --background:#0b0f12;
    --surface:#141b20;
    --text:#edf4f1;
    --muted:#a7b8b5;
    --border:#30413f;
    --accent:#67dcc5;
    --vx-bg:#0b0f12;
    --vx-soft:#141b20;
    --vx-panel:#1a2429;
    --vx-text:#edf4f1;
    --vx-muted:#a7b8b5;
    --vx-border:#30413f;
    --vx-line:#253633;
    --vx-ink:#0d201f;
    --vx-bar:#67dcc5;
    --vx-bar-old:#7a8b8a;
    --vx-shadow:0 24px 70px rgb(0 0 0 / 22%);
}

/* Follow system preference until a theme is selected */
@media(prefers-color-scheme:dark) {
    :root:not([data-theme]) {
        --md-accent:#67dcc5;
        --md-accent-hover:#8be7d4;
        --md-accent-text:#0b0f12;
        --md-link:#67dcc5;
        --md-tint:#152c2a;
        --md-focus:#67dcc5;
        --background:#0b0f12;
        --surface:#141b20;
        --text:#edf4f1;
        --muted:#a7b8b5;
        --border:#30413f;
        --accent:#67dcc5;
        --vx-bg:#0b0f12;
        --vx-soft:#141b20;
        --vx-panel:#1a2429;
        --vx-text:#edf4f1;
        --vx-muted:#a7b8b5;
        --vx-border:#30413f;
        --vx-line:#253633;
        --vx-ink:#0d201f;
        --vx-bar:#67dcc5;
        --vx-bar-old:#7a8b8a;
        --vx-shadow:0 24px 70px rgb(0 0 0 / 22%);
    }
}

body {
    background:var(--background);
    color:var(--text);
}

/* Primary actions */
.vx-home .vx-button,
.button:not(.button-outline):not(.button-secondary),
.md-header-cta,
.md-mobile-cta {
    background:var(--md-accent);
    border-color:var(--md-accent);
    color:var(--md-accent-text)!important;
}

.vx-home .vx-button:hover,
.button:not(.button-outline):not(.button-secondary):hover,
.md-header-cta:hover,
.md-mobile-cta:hover {
    background:var(--md-accent-hover);
    border-color:var(--md-accent-hover);
    opacity:1;
}

.vx-home .vx-button:disabled { opacity:.6; }

.button-outline,
.button-secondary {
    background:transparent;
    border-color:var(--border);
    color:var(--text);
}

/* Links and research controls */
.vx-home .vx-text-link,
.vx-source-line a,
.vx-macro-grid a,
.country-source a,
.country-news>a {
    color:var(--md-link);
}

.vx-ink .vx-text-link { color:#67dcc5; }

.vx-home .vx-hero {
    background:radial-gradient(
        ellipse at 50% 42%,
        var(--md-tint),
        transparent 65%
    );
}

.vx-home .vx-dashboard { border-color:var(--border); }
.vx-home .vx-dash-brand { color:var(--md-link); }
.vx-home .vx-dash-brand span { color:var(--vx-text); }

.vx-home .vx-dashboard-side>a[aria-current],
.vx-home .vx-research-switch button[aria-pressed="true"] {
    background:var(--md-tint);
    color:var(--md-link);
    border-color:var(--md-accent);
}

.vx-home .vx-data-tag {
    background:var(--md-tint);
    color:var(--md-link);
}

.vx-home .vx-column-2025>strong { color:var(--md-link); }

.vx-home .vx-mini-graphic>.vx-mini-dark {
    background:var(--md-accent);
    border-color:var(--md-accent);
    color:var(--md-accent-text);
}

.vx-home .vx-sector-link:hover h3,
.vx-home .vx-services>a:hover h3,
.vx-home .vx-country-list>a:hover,
.vx-home .vx-link-arrow {
    color:var(--md-link);
}

.vx-home .vx-evidence-stack>div:first-child {
    border-left:3px solid var(--md-accent);
}

.vx-home .vx-feature,
.vx-home .vx-form {
    box-shadow:0 8px 28px rgb(15 40 35 / 3%);
}

/* Consultation section */
.vx-home .vx-contact-section { background:var(--md-tint); }
.vx-home .vx-form { background:var(--vx-panel); }

.vx-home .vx-form input:not([type=checkbox]),
.vx-home .vx-form select,
.vx-home .vx-form textarea {
    background:var(--vx-bg);
}

.vx-home .vx-consent input {
    accent-color:var(--md-accent);
}

.vx-home .vx-editorial-art>strong {
    background:var(--md-accent);
    border-color:var(--md-accent);
    color:var(--md-accent-text);
}

.md-shell-header { background:var(--background); }
.md-shell-footer { background:var(--surface); }

.md-nav-dropdown a:hover,
.md-nav-dropdown a:focus-visible {
    background:var(--md-tint);
    color:var(--md-link);
}

:where(a,button,input,select,textarea,summary):focus-visible {
    outline:2px solid var(--md-focus)!important;
    outline-offset:4px;
}
