/* Semantic theme foundation. Respondent templates do not load theme-init.js. */
:root {
    --traxe-page-bg: #07111f;
    --traxe-theme-surface: #122338;
    --traxe-theme-surface-raised: #0d1b2c;
    --traxe-text-primary: #f4f8fb;
    --traxe-text-muted: #b9c6d2;
    --traxe-text-subtle: #7e91a2;
    --traxe-border-color: rgba(185, 198, 210, 0.52);
    --traxe-link-color: #36c86d;
    --traxe-control-bg: #122338;
    --traxe-focus-color: #36c86d;
    --traxe-border: var(--traxe-border-color);
    --traxe-border-strong: rgba(185, 198, 210, 0.72);
    --traxe-overlay-bg: rgba(3, 10, 18, 0.78);
    --traxe-table-stripe: rgba(255, 255, 255, 0.035);
    --traxe-chart-grid: rgba(185, 198, 210, 0.2);
    --traxe-status-success: #36c86d;
    --traxe-status-warning: #f0b44d;
    --traxe-status-danger: #ff707c;
    --traxe-status-info: #4dc7d9;
    --bs-link-color: var(--traxe-link-color);
    --bs-link-color-rgb: 54, 200, 109;
    --bs-link-hover-color: var(--traxe-focus-color);
    --bs-link-hover-color-rgb: 54, 200, 109;
}

html[data-bs-theme="dark"] { color-scheme: dark; }
html[data-bs-theme="dark"] body.public-home-page {
    --home-border: var(--traxe-border-color);
    --home-border-strong: var(--traxe-border-strong);
}
html[data-bs-theme="dark"] body.public-home-page .solution-card--featured {
    border-color: var(--traxe-success);
}
html[data-bs-theme] body.public-home-page .solution-card--link:hover,
html[data-bs-theme] body.public-home-page .solution-card--link:focus-visible {
    border-color: var(--traxe-focus-color);
}

html[data-bs-theme="light"] {
    color-scheme: light;
    --traxe-page-bg: #f5f8f6;
    --traxe-theme-surface: #ffffff;
    --traxe-theme-surface-raised: #edf3ef;
    --traxe-text-primary: #17251d;
    --traxe-text-muted: #43564a;
    --traxe-text-subtle: #617268;
    --traxe-border-color: #7b8d80;
    --traxe-link-color: #16733c;
    --traxe-control-bg: #ffffff;
    --traxe-focus-color: #16733c;
    --traxe-overlay-bg: rgba(18, 33, 24, 0.48);
    --traxe-table-stripe: rgba(20, 80, 44, 0.045);
    --traxe-chart-grid: rgba(50, 73, 58, 0.2);
    --traxe-status-success: #16733c;
    --traxe-status-warning: #8a5800;
    --traxe-status-danger: #b42332;
    --traxe-status-info: #08788b;
    --bs-link-color: var(--traxe-link-color);
    --bs-link-color-rgb: 22, 115, 60;
    --bs-link-hover-color: var(--traxe-focus-color);
    --bs-link-hover-color-rgb: 22, 115, 60;
    --color-text: var(--traxe-text-primary);
    --color-muted: var(--traxe-text-muted);
    --color-surface: var(--traxe-theme-surface);
    --color-background: var(--traxe-page-bg);
    --color-border: var(--traxe-border-color);
    --traxe-bg: var(--traxe-page-bg);
    --traxe-bg-2: var(--traxe-theme-surface-raised);
    --traxe-bg-subtle: var(--traxe-theme-surface-raised);
    --traxe-text: var(--traxe-text-primary);
    --traxe-text-2: var(--traxe-text-muted);
    --traxe-text-3: var(--traxe-text-subtle);
    --traxe-muted: var(--traxe-text-muted);
    --traxe-border: var(--traxe-border-color);
    --traxe-border-strong: #617268;
    --traxe-surface: var(--traxe-theme-surface);
    --traxe-surface-strong: var(--traxe-theme-surface-raised);
    --traxe-success: #16733c;
    --traxe-primary: #16733c;
    /* Legacy aliases still used by established workspace modules. */
    --traxe-bg: var(--traxe-page-bg);
    --traxe-bg-2: var(--traxe-theme-surface-raised);
    --traxe-bg-subtle: var(--traxe-theme-surface-raised);
    --traxe-text: var(--traxe-text-primary);
    --traxe-text-2: var(--traxe-text-muted);
    --traxe-text-3: var(--traxe-text-subtle);
    --traxe-muted: var(--traxe-text-muted);
    --traxe-border: var(--traxe-border-color);
    --traxe-border-strong: #617268;
    --traxe-surface: var(--traxe-theme-surface);
    --traxe-surface-strong: var(--traxe-theme-surface-raised);
    --traxe-green: var(--traxe-status-success);
    --color-primary: var(--traxe-link-color);
    --color-structural: var(--traxe-page-bg);
    --color-text: var(--traxe-text-primary);
    --color-muted: var(--traxe-text-muted);
    --color-surface: var(--traxe-theme-surface);
    --color-background: var(--traxe-theme-surface-raised);
    --color-border: var(--traxe-border-color);
    --color-success: var(--traxe-status-success);
    --color-warning: var(--traxe-status-warning);
    --color-danger: var(--traxe-status-danger);
    --color-info: var(--traxe-status-info);
    --traxe-focus-ring: color-mix(in srgb, var(--traxe-focus-color) 35%, transparent);
    --traxe-scrollbar-thumb: rgba(67, 86, 74, 0.4);
    --traxe-scrollbar-thumb-hover: rgba(67, 86, 74, 0.62);
    --traxe-scrollbar-thumb-active: rgba(23, 37, 29, 0.75);
    --form-workspace-header-bg: var(--traxe-theme-surface);
    --form-workspace-header-border: var(--traxe-border-color);
    --form-workspace-header-text: var(--traxe-text-primary);
    --form-workspace-title: var(--traxe-link-color);
    --form-lifecycle-text: var(--traxe-text-muted);
    --form-lifecycle-active: var(--traxe-text-primary);
    --form-lifecycle-accent: var(--traxe-link-color);
    --form-submodule-text: var(--traxe-text-muted);
}

html[data-bs-theme="light"] .btn-success,
html[data-bs-theme="light"] .btn-success:hover,
html[data-bs-theme="light"] .btn-success:focus {
    color: #ffffff;
}

html[data-bs-theme="dark"] .btn-success,
html[data-bs-theme="dark"] .btn-success:hover,
html[data-bs-theme="dark"] .btn-success:focus { color: #07111f; }

html[data-bs-theme="light"] .btn-outline-primary:hover,
html[data-bs-theme="light"] .btn-outline-primary:focus,
html[data-bs-theme="light"] .btn-outline-primary.active,
html[data-bs-theme="light"] .btn-outline-secondary:hover,
html[data-bs-theme="light"] .btn-outline-secondary:focus,
html[data-bs-theme="light"] .btn-outline-secondary.active { color: var(--traxe-text-primary); }

html[data-bs-theme] body {
    background-color: var(--traxe-page-bg);
    color: var(--traxe-text-primary);
}

html[data-bs-theme] :focus-visible {
    outline: 3px solid var(--traxe-focus-color);
    outline-offset: 2px;
}

html[data-bs-theme] .form-control,
html[data-bs-theme] .form-select {
    background-color: var(--traxe-control-bg);
    border-color: var(--traxe-border-color);
    color: var(--traxe-text-primary);
}

html[data-bs-theme] .form-control:focus,
html[data-bs-theme] .form-select:focus {
    border-color: var(--traxe-focus-color);
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--traxe-focus-color) 28%, transparent);
}

html[data-bs-theme] .table {
    --bs-table-color: var(--traxe-text-primary);
    --bs-table-border-color: var(--traxe-border-color);
    --bs-table-striped-bg: var(--traxe-table-stripe);
}

html[data-bs-theme] .table-hover > tbody > tr:hover > *,
html[data-bs-theme] .table-active > * {
    --bs-table-bg-state: color-mix(in srgb, var(--traxe-text-primary) 5%, var(--traxe-theme-surface));
    color: var(--traxe-text-primary);
}

html[data-bs-theme] .modal-backdrop.show { opacity: 0.72; }
html[data-bs-theme] .tooltip .tooltip-inner,
html[data-bs-theme] .popover {
    background-color: var(--traxe-theme-surface);
    color: var(--traxe-text-primary);
}
html[data-bs-theme] { --bs-tooltip-bg: var(--traxe-theme-surface); --bs-tooltip-color: var(--traxe-text-primary); }
html[data-bs-theme] .popover { border-color: var(--traxe-border-color); }
html[data-bs-theme] .popover-arrow { --bs-popover-bg: var(--traxe-theme-surface); }
html[data-bs-theme="light"] .modal .btn-close { filter: none; }
html[data-bs-theme] .alert-success,
html[data-bs-theme] .alert-warning,
html[data-bs-theme] .alert-danger,
html[data-bs-theme] .alert-info {
    background-color: var(--traxe-theme-surface-raised);
    border-color: var(--traxe-border-color);
    border-inline-start-width: 3px;
    color: var(--traxe-text-primary);
}
html[data-bs-theme] .alert-success { border-inline-start-color: var(--traxe-status-success); }
html[data-bs-theme] .alert-warning { border-inline-start-color: var(--traxe-status-warning); }
html[data-bs-theme] .alert-danger { border-inline-start-color: var(--traxe-status-danger); }
html[data-bs-theme] .alert-info { border-inline-start-color: var(--traxe-status-info); }
html[data-bs-theme] .form-control::placeholder { color: var(--traxe-text-subtle); opacity: 1; }

.theme-toggle {
    align-items: center;
    background: transparent;
    border: 1px solid var(--traxe-border-color);
    border-radius: 999px;
    color: var(--traxe-text-primary);
    cursor: pointer;
    display: inline-flex;
    height: 2.25rem;
    justify-content: center;
    padding: 0;
    width: 2.25rem;
}
.theme-toggle:hover { background: var(--traxe-theme-surface-raised); }
.theme-toggle:focus-visible { outline: 3px solid var(--traxe-focus-color); outline-offset: 2px; }

html[data-bs-theme="light"] .theme-toggle { border-color: var(--traxe-text-subtle); }

@media (min-width: 768px) {
    .traxe-public-shell .public-nav__collapse:not(.show) { display: flex; }
}

html[data-bs-theme="light"] .traxe-public-shell .public-nav {
    background: rgba(255, 255, 255, 0.96);
    border-color: var(--traxe-border-color) !important;
}
html[data-bs-theme="light"] .traxe-public-shell .public-nav__links a,
html[data-bs-theme="light"] .traxe-public-shell .public-nav__email,
html[data-bs-theme="light"] .traxe-public-shell .public-brand {
    color: var(--traxe-text-primary);
}
html[data-bs-theme="light"] .traxe-public-shell .public-nav__links a:hover,
html[data-bs-theme="light"] .traxe-public-shell .public-nav__links a:focus {
    color: var(--traxe-link-color);
}
html[data-bs-theme="light"] .traxe-public-shell .public-nav__toggle,
html[data-bs-theme="light"] .traxe-public-shell .public-nav__actions .btn-outline-secondary {
    border-color: var(--traxe-border-color);
    color: var(--traxe-text-primary);
}
html[data-bs-theme="light"] .traxe-public-shell .public-footer {
    background-color: var(--traxe-theme-surface);
    border-color: var(--traxe-border-color) !important;
    color: var(--traxe-text-muted);
}
html[data-bs-theme="light"] .traxe-public-shell .public-footer > .container.text-secondary {
    color: var(--traxe-text-muted) !important;
}
html[data-bs-theme="light"] .traxe-public-shell .public-footer a {
    color: var(--traxe-link-color);
}
html[data-bs-theme="light"] .traxe-public-shell .public-footer a:hover,
html[data-bs-theme="light"] .traxe-public-shell .public-footer a:focus {
    color: var(--traxe-text-primary);
}

html[data-bs-theme="light"] body.public-home-page {
    --home-border: var(--traxe-border-color);
    --home-border-strong: var(--traxe-border-strong);
    --home-surface: #ffffff;
    --home-surface-strong: #edf3ef;
    --home-green-soft: rgba(22, 115, 60, 0.09);
    --home-featured-surface: #e6f4eb;
}
html[data-bs-theme="light"] body.public-home-page .solution-card--featured {
    border-color: var(--traxe-link-color);
}

html[data-bs-theme="light"] body.public-home-page .site-nav,
html[data-bs-theme="light"] body.public-home-page .hero,
html[data-bs-theme="light"] body.public-home-page .credibility-strip,
html[data-bs-theme="light"] body.public-home-page .section-pad,
html[data-bs-theme="light"] body.public-home-page .public-footer {
    background-color: var(--traxe-page-bg);
    color: var(--traxe-text-primary);
}

html[data-bs-theme="light"] body.public-home-page .site-nav { background: rgba(245, 248, 246, 0.96); }
html[data-bs-theme="light"] body.public-home-page .hero-chart,
html[data-bs-theme="light"] body.public-home-page .solution-card,
html[data-bs-theme="light"] body.public-home-page .capability-card,
html[data-bs-theme="light"] body.public-home-page .research-list-item,
html[data-bs-theme="light"] body.public-home-page .workflow-steps li { background-color: var(--traxe-surface); }
html[data-bs-theme="light"] body.public-home-page .solution-card--featured { background: var(--home-featured-surface); }

html[data-bs-theme="light"] body.public-solution-page .solution-hero {
    background: radial-gradient(ellipse at 83% 25%, rgba(22, 115, 60, 0.1), transparent 42%), #f5f8f6;
}
html[data-bs-theme="light"] body.public-solution-page .solution-hero__aside,
html[data-bs-theme="light"] body.public-solution-page .solution-status {
    background: var(--traxe-surface);
    color: var(--traxe-text-primary);
}
html[data-bs-theme="light"] body.public-solution-page .solution-detail-card--accent { background: #e6f4eb; }

@media (max-width: 767.98px) {
    .theme-toggle { flex: 0 0 auto; }
}
