:root {
    --ao-page-bg: var(--surface-0);
    --ao-card-bg: var(--surface-1);
    --ao-header-bg: var(--surface-2);
    --ao-text: var(--text-1);
    --ao-muted: var(--text-3);
    --ao-border: var(--border-1);
    --ao-surface: var(--ao-card-bg);
    --ao-text-muted: var(--ao-muted);
    --app-surface: var(--ao-card-bg);
    --app-surface-2: var(--ao-header-bg);
    --card-border-color: var(--ao-border);
    --text-color: var(--ao-text);
    --ao-topbar-bg: #ffffff;
    --ao-sidebar-bg: #ffffff;
    --ao-sidebar-text: #111827;
    --ao-sidebar-muted: #6b7280;
    --ao-sidebar-hover-bg: #eef2f7;
    --ao-sidebar-active-bg: #e0edff;
    --ao-sidebar-active-text: #1d4ed8;
    --ao-content-max-width: 1680px;
    --ao-font-sans: 'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    --ao-font-mono: 'JetBrains Mono', 'Fira Code', 'Consolas', monospace;
    --ao-text-xs: 0.75rem;
    --ao-text-sm: 0.8125rem;
    --ao-text-base: 0.875rem;
    --ao-text-md: 1rem;
    --ao-text-lg: 1.125rem;
    --ao-text-xl: 1.375rem;
    --ao-table-row-height-compact: 2rem;
    --ao-table-row-height-standard: 2.75rem;
    --ao-table-row-height-spacious: 3.25rem;
    --ao-table-border: 1px solid var(--ao-border);
    --ao-actions-col-max-width: 15rem;
    --ao-transition-fast: 120ms ease;
    --ao-transition-base: 200ms ease;
    --ao-transition-slow: 300ms ease;
    --bs-body-bg: var(--ao-page-bg);
    --bs-body-color: var(--ao-text);
    --bs-border-color: var(--ao-border);
    --ao-qa-bar-bg: color-mix(in srgb, var(--ao-accent) 8%, #ffffff);
    --ao-qa-bar-border: rgba(99, 102, 241, 0.18);
    --ao-qa-bar-shadow: 0 1px 2px rgba(15, 23, 42, 0.06), 0 14px 34px rgba(15, 23, 42, 0.06);

    --ao-qa-btn-bg: rgba(255, 255, 255, 0.78);
    --ao-qa-btn-border: rgba(15, 23, 42, 0.12);
    --ao-qa-btn-hover-bg: rgba(255, 255, 255, 0.92);
    --ao-qa-btn-hover-border: rgba(99, 102, 241, 0.26);
    --ao-qa-btn-active-bg: rgba(255, 255, 255, 0.70);
    --ao-qa-btn-active-border: rgba(99, 102, 241, 0.22);

    --ao-qa-accent-bg: rgba(79, 70, 229, 0.14);
    --ao-qa-accent-border: rgba(79, 70, 229, 0.30);
    --ao-qa-accent-fg: #3730a3;
    --ao-qa-accent-hover-bg: rgba(79, 70, 229, 0.18);
    --ao-qa-accent-hover-border: rgba(79, 70, 229, 0.38);
    --ao-qa-accent-active-bg: rgba(79, 70, 229, 0.22);
    --ao-qa-accent-active-border: rgba(79, 70, 229, 0.46);
    --ao-shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.06), 0 1px 2px rgba(15, 23, 42, 0.04);
    --ao-shadow-md: 0 4px 12px rgba(15, 23, 42, 0.08), 0 2px 4px rgba(15, 23, 42, 0.05);
    --ao-shadow-lg: 0 10px 30px rgba(15, 23, 42, 0.10), 0 4px 8px rgba(15, 23, 42, 0.06);
    --ao-radius-sm: 0.375rem;
    --ao-radius-md: 0.625rem;
    --ao-radius-lg: 0.875rem;
    --ao-radius-xl: 1.125rem;
    --z-base: 1;
    --z-dropdown: 100;
    --z-sticky: 200;
    --z-popup: 300;
    --z-app-chrome: 1200;
    --z-app-menu: 1210;
    --z-modal: 2000;
    --z-toast: 2100;
}

[data-bs-theme="dark"] {
    --ao-page-bg: var(--surface-0);
    --ao-card-bg: var(--surface-1);
    --ao-header-bg: var(--surface-2);
    --ao-text: var(--text-1);
    --ao-muted: var(--text-3);
    --ao-border: var(--border-1);
    --ao-surface: var(--ao-card-bg);
    --ao-text-muted: var(--ao-muted);
    --app-surface: var(--ao-card-bg);
    --app-surface-2: var(--ao-header-bg);
    --card-border-color: var(--ao-border);
    --text-color: var(--ao-text);
    --ao-topbar-bg: #111827;
    --ao-sidebar-bg: #0f172a;
    --ao-sidebar-text: #e5e7eb;
    --ao-sidebar-muted: #9ca3af;
    --ao-sidebar-hover-bg: #1f2937;
    --ao-sidebar-active-bg: #1e3a8a;
    --ao-sidebar-active-text: #e0e7ff;
    --bs-body-bg: var(--ao-page-bg);
    --bs-body-color: var(--ao-text);
    --bs-border-color: var(--ao-border);
    --ao-qa-bar-bg: color-mix(in srgb, var(--ao-accent) 10%, rgba(15, 23, 42, 0.96));
    --ao-qa-bar-border: rgba(99, 102, 241, 0.22);
    --ao-qa-bar-shadow: 0 18px 46px rgba(2, 6, 23, 0.55);

    --ao-qa-btn-bg: rgba(148, 163, 184, 0.10);
    --ao-qa-btn-border: rgba(148, 163, 184, 0.18);
    --ao-qa-btn-hover-bg: rgba(148, 163, 184, 0.14);
    --ao-qa-btn-hover-border: rgba(99, 102, 241, 0.34);
    --ao-qa-btn-active-bg: rgba(148, 163, 184, 0.18);
    --ao-qa-btn-active-border: rgba(99, 102, 241, 0.42);

    --ao-qa-accent-bg: rgba(99, 102, 241, 0.22);
    --ao-qa-accent-border: rgba(99, 102, 241, 0.42);
    --ao-qa-accent-fg: #e0e7ff;
    --ao-qa-accent-hover-bg: rgba(99, 102, 241, 0.28);
    --ao-qa-accent-hover-border: rgba(99, 102, 241, 0.52);
    --ao-qa-accent-active-bg: rgba(99, 102, 241, 0.34);
    --ao-qa-accent-active-border: rgba(99, 102, 241, 0.62);
    --ao-shadow-sm: 0 1px 3px rgba(2, 6, 23, 0.34), 0 1px 2px rgba(2, 6, 23, 0.24);
    --ao-shadow-md: 0 4px 12px rgba(2, 6, 23, 0.42), 0 2px 4px rgba(2, 6, 23, 0.28);
    --ao-shadow-lg: 0 10px 30px rgba(2, 6, 23, 0.50), 0 4px 8px rgba(2, 6, 23, 0.34);
}

html,
body {
    background-color: var(--ao-page-bg);
    color: var(--ao-text);
}

body.ao-theme-dark {
    background-color: var(--ao-page-bg);
}

.text-muted {
    color: var(--ao-muted) !important;
}

.card,
.grid-toolbar-card {
    background-color: var(--app-surface);
    color: var(--text-color);
    border-color: var(--card-border-color);
}

.card-header,
.ao-card-header {
    background-color: var(--app-surface-2);
    color: var(--text-color);
    border-color: var(--card-border-color);
}

[data-bs-theme="dark"] .dxbs-grid,
[data-bs-theme="dark"] .dxbs-grid .dxbs-table,
[data-bs-theme="dark"] .dxbl-grid-table {
    background-color: var(--ao-card-bg);
    color: var(--ao-text);
}

[data-bs-theme="dark"] .dxbs-grid .dxbs-table > thead > tr > th,
[data-bs-theme="dark"] .dxbl-grid-table > thead > tr > th {
    background-color: #1f2937;
    color: var(--ao-text);
    border-color: var(--ao-border);
}

[data-bs-theme="dark"] .dxbs-grid .dxbs-table > tbody > tr > td,
[data-bs-theme="dark"] .dxbl-grid-table > tbody > tr > td {
    background-color: var(--ao-card-bg);
    color: var(--ao-text);
    border-color: var(--ao-border);
}

.ao-toolbar-separator {
    width: 1px;
    height: var(--ao-toolbar-control-height);
    background-color: var(--card-border-color);
    align-self: center;
    margin: 0 0.5rem;
    opacity: 0.6;
    display: none !important;
}

.ao-surface {
    background-color: var(--app-surface);
    border: 1px solid var(--card-border-color);
    border-radius: 0.5rem;
    color: var(--text-color);
}

.ao-grid-button {
    padding: 0.25rem 0.65rem;
}

[data-bs-theme="dark"] .alert {
    background-color: #111827;
    border-color: var(--ao-border);
    color: var(--ao-text);
}

[data-bs-theme="dark"] .alert-info {
    background-color: rgba(59, 130, 246, 0.12);
    border-color: rgba(59, 130, 246, 0.35);
    color: #dbeafe;
}

[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select,
[data-bs-theme="dark"] .form-check-input,
[data-bs-theme="dark"] .input-group-text {
    background-color: #0f172a;
    border-color: var(--ao-border);
    color: var(--ao-text);
}

[data-bs-theme="dark"] .form-control::placeholder,
[data-bs-theme="dark"] .form-select::placeholder {
    color: rgba(148, 163, 184, 0.8);
}

[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus,
[data-bs-theme="dark"] .form-check-input:focus {
    border-color: rgba(96, 165, 250, 0.6);
    box-shadow: var(--focus-ring);
}

[data-bs-theme="dark"] .form-check-input:checked {
    background-color: #2563eb;
    border-color: #2563eb;
}

[data-bs-theme="dark"] .table {
    color: var(--ao-text);
    border-color: var(--ao-border);
}

[data-bs-theme="dark"] .table thead th {
    background-color: #0f172a;
    color: var(--ao-text);
    border-color: var(--ao-border);
}

[data-bs-theme="dark"] .table tbody td {
    border-color: var(--ao-border);
}

[data-bs-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: rgba(15, 23, 42, 0.55);
}

[data-bs-theme="dark"] .table-hover > tbody > tr:hover > * {
    background-color: rgba(148, 163, 184, 0.12);
    color: var(--ao-text);
}

[data-bs-theme="dark"] .btn-outline-primary,
[data-bs-theme="dark"] .btn-outline-secondary,
[data-bs-theme="dark"] .btn-outline-warning,
[data-bs-theme="dark"] .btn-outline-danger {
    background-color: transparent;
    border-color: rgba(148, 163, 184, 0.35);
    color: var(--ao-text);
}

[data-bs-theme="dark"] .btn-outline-primary:hover,
[data-bs-theme="dark"] .btn-outline-secondary:hover,
[data-bs-theme="dark"] .btn-outline-warning:hover,
[data-bs-theme="dark"] .btn-outline-danger:hover {
    background-color: rgba(148, 163, 184, 0.12);
    border-color: rgba(148, 163, 184, 0.55);
    color: var(--ao-text);
}

[data-bs-theme="dark"] .dxbl-btn-secondary:not(.ao-btn),
[data-bs-theme="dark"] .dxbl-btn-outline:not(.ao-btn),
[data-bs-theme="dark"] .dxbl-btn-outline-primary:not(.ao-btn),
[data-bs-theme="dark"] .dxbl-btn-outline-secondary:not(.ao-btn) {
    background-color: #1f2937;
    border-color: #475569;
    color: var(--ao-text);
}

[data-bs-theme="dark"] .dxbl-btn-secondary:not(.ao-btn):hover,
[data-bs-theme="dark"] .dxbl-btn-outline:not(.ao-btn):hover,
[data-bs-theme="dark"] .dxbl-btn-outline-primary:not(.ao-btn):hover,
[data-bs-theme="dark"] .dxbl-btn-outline-secondary:not(.ao-btn):hover {
    background-color: #334155;
    border-color: #64748b;
    color: var(--ao-text);
}

[data-bs-theme="dark"] .dxbs-grid .dxbs-table > tbody > tr:hover > td,
[data-bs-theme="dark"] .dxbl-grid-table > tbody > tr:hover > td {
    background-color: rgba(148, 163, 184, 0.12);
}

[data-bs-theme="dark"] .dxbs-grid .dxbs-table > tbody > tr.dxbs-selected > td,
[data-bs-theme="dark"] .dxbl-grid-table > tbody > tr.dxbs-selected > td,
[data-bs-theme="dark"] .dxbl-grid-table > tbody > tr.dxbl-selected > td {
    background-color: rgba(96, 165, 250, 0.18);
}

.dxbs-grid .dxbs-table > tbody > tr:hover > td,
.dxbl-grid-table > tbody > tr:hover > td {
    background-color: rgba(148, 163, 184, 0.12);
}

.dxbs-grid .dxbs-table > tbody > tr.dxbs-selected > td,
.dxbl-grid-table > tbody > tr.dxbs-selected > td,
.dxbl-grid-table > tbody > tr.dxbl-selected > td {
    background-color: rgba(59, 130, 246, 0.15);
}

[data-bs-theme="dark"] .bg-light {
    background-color: #0f172a !important;
    color: var(--ao-text) !important;
    border-color: var(--ao-border);
}

.ao-toolbar,
.ao-toolbar-row,
.ao-actions-row,
.ao-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ao-toolbar-gap, 0.5rem);
    --ao-btn-font-size: 0.8rem;
    --ao-btn-height: 2rem;
    --ao-btn-padding-y: 0.25rem;
    --ao-btn-padding-x: 0.7rem;
    --ao-toolbar-control-height: 2rem;
}

.ao-toolbar,
.ao-toolbar-row,
.ao-toolbar-actions {
    align-items: flex-end;
}

.ao-actions-row {
    align-items: center;
}

.ao-toolbar-sep {
    width: 1px;
    height: var(--ao-toolbar-control-height);
    background: var(--ao-border);
    align-self: flex-end;
    opacity: 0.7;
    display: none;
}

.ao-toolbar-sep,
.ao-toolbar-separator {
    display: none !important;
}

.ao-toolbar-search {
    min-width: var(--ao-toolbar-search-min-width);
    max-width: var(--ao-toolbar-search-max-width);
    width: min(100%, var(--ao-toolbar-search-max-width));
    flex: 0 0 auto;
    align-self: center;
}

.ao-card-border {
    background: var(--ao-surface);
    border: 1px solid var(--ao-border);
    color: var(--ao-text);
}

.ao-sidepanel-card {
    background: var(--ao-surface);
    border: 1px solid var(--ao-border);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    color: var(--ao-text);
}

.ao-toolbar-separator,
.ao-toolbar-sep {
    display: none !important;
}

/* Dark mode fixes for Bootstrap modals */
[data-bs-theme="dark"] .modal-content {
    background-color: var(--ao-card-bg);
    color: var(--ao-text);
    border-color: var(--ao-border);
}

[data-bs-theme="dark"] .modal-header {
    background-color: var(--ao-header-bg);
    color: var(--ao-text);
    border-color: var(--ao-border);
}

[data-bs-theme="dark"] .modal-body {
    background-color: var(--ao-card-bg);
    color: var(--ao-text);
}

[data-bs-theme="dark"] .modal-footer {
    background-color: var(--ao-header-bg);
    border-color: var(--ao-border);
}

[data-bs-theme="dark"] .modal-title {
    color: var(--ao-text);
}

[data-bs-theme="dark"] .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

/* Dark mode fixes for DevExpress popups */
[data-bs-theme="dark"] .dxbl-popup-content,
[data-bs-theme="dark"] .dxbl-popup .dxbl-popup-body,
[data-bs-theme="dark"] .dxbl-popup-body {
    background-color: var(--ao-card-bg);
    color: var(--ao-text);
}

[data-bs-theme="dark"] .dxbl-popup-header,
[data-bs-theme="dark"] .dxbl-popup .dxbl-popup-header-text {
    background-color: var(--ao-header-bg);
    color: var(--ao-text);
    border-color: var(--ao-border);
}

[data-bs-theme="dark"] .dxbl-popup-footer {
    background-color: var(--ao-header-bg);
    border-color: var(--ao-border);
}

[data-bs-theme="dark"] .dxbl-modal-back,
[data-bs-theme="dark"] .dxbl-popup-modal-back {
    background-color: rgba(0, 0, 0, 0.7);
}

/* DevExpress dropdown and combobox z-index fixes for modals */
.dxbl-dropdown-dialog,
.dxbl-listbox,
.dxbl-dropdown-area {
    z-index: var(--z-modal) !important;
}

.dxbl-popup .dxbl-dropdown-dialog,
.dxbl-popup .dxbl-listbox,
.dxbl-popup .dxbl-dropdown-area,
.modal .dxbl-dropdown-dialog,
.modal .dxbl-listbox,
.modal .dxbl-dropdown-area {
    z-index: var(--z-toast) !important;
}

/* Ensure DevExpress dropdowns in dialogs are properly visible */
[data-bs-theme="dark"] .dxbl-dropdown-dialog,
[data-bs-theme="dark"] .dxbl-listbox {
    background-color: var(--ao-card-bg);
    color: var(--ao-text);
    border-color: var(--ao-border);
}

[data-bs-theme="dark"] .dxbl-listbox-item,
[data-bs-theme="dark"] .dxbl-listbox .dxbl-listbox-item {
    background-color: var(--ao-card-bg);
    color: var(--ao-text);
}

[data-bs-theme="dark"] .dxbl-listbox-item:hover,
[data-bs-theme="dark"] .dxbl-listbox .dxbl-listbox-item:hover {
    background-color: var(--ao-sidebar-hover-bg);
}

[data-bs-theme="dark"] .dxbl-listbox-item.dxbl-focused,
[data-bs-theme="dark"] .dxbl-listbox-item.dxbl-selected,
[data-bs-theme="dark"] .dxbl-listbox .dxbl-listbox-item.dxbl-focused,
[data-bs-theme="dark"] .dxbl-listbox .dxbl-listbox-item.dxbl-selected {
    background-color: var(--ao-sidebar-active-bg);
    color: var(--ao-sidebar-active-text);
}

/* DevExpress ComboBox and TextBox in dark mode */
[data-bs-theme="dark"] .dxbl-text-edit,
[data-bs-theme="dark"] .dxbl-combobox,
[data-bs-theme="dark"] .dxbl-spin-edit {
    background-color: #0f172a;
    border-color: var(--ao-border);
    color: var(--ao-text);
}

[data-bs-theme="dark"] .dxbl-text-edit input,
[data-bs-theme="dark"] .dxbl-combobox input,
[data-bs-theme="dark"] .dxbl-spin-edit input {
    background-color: transparent;
    color: var(--ao-text);
}

[data-bs-theme="dark"] .dxbl-text-edit:focus-within,
[data-bs-theme="dark"] .dxbl-combobox:focus-within,
[data-bs-theme="dark"] .dxbl-spin-edit:focus-within {
    border-color: rgba(96, 165, 250, 0.6);
    box-shadow: var(--focus-ring);
}

/* Dialog styling class */
.ao-dialog .dxbl-popup-content,
.ao-dialog .dxbl-popup-body {
    padding: 0;
    background-color: var(--ao-card-bg);
    color: var(--ao-text);
}

.ao-dialog .dxbl-popup-header {
    padding: 0.75rem 1rem;
    background-color: var(--ao-header-bg);
    color: var(--ao-text);
    border-bottom: 1px solid var(--ao-border);
}

.ao-dialog .dxbl-popup-header-text {
    color: var(--ao-text);
}

.ao-theme-dark .ao-dialog .dxbl-popup-header {
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06);
}

.ao-theme-dark .dxbl-popup-overlay {
    background-color: rgba(0, 0, 0, 0.55);
}

.ao-dialog .dxbl-popup-footer {
    padding: 0.75rem 1rem;
    background-color: var(--ao-header-bg);
    color: var(--ao-text);
    border-top: 1px solid var(--ao-border);
}

.ao-dialog .dxbl-dropdown-dialog,
.ao-dialog .dxbl-listbox,
.ao-dialog .dxbl-dropdown-area {
    background-color: var(--ao-card-bg);
    color: var(--ao-text);
    border-color: var(--ao-border);
}

.ao-dialog .dxbl-listbox-item:hover,
.ao-dialog .dxbl-listbox-item.dxbl-focused,
.ao-dialog .dxbl-listbox-item.dxbl-selected {
    background-color: var(--ao-sidebar-hover-bg);
    color: var(--ao-text);
}

/* Global search result rows - theme-consistent list-group styling */
.search-page .card .list-group,
.search-page .card .list-group-flush {
    --bs-list-group-bg: var(--ao-card-bg);
    --bs-list-group-border-color: var(--ao-border);
    --bs-list-group-color: var(--ao-text);
}

.search-page .list-group-item,
.search-page .list-group-item-action {
    background-color: var(--ao-card-bg);
    color: var(--ao-text);
    border-color: var(--ao-border);
}

.search-page .list-group-item-action:hover,
.search-page .list-group-item-action:focus {
    background-color: var(--ao-sidebar-hover-bg);
    color: var(--ao-text);
}

.search-page .list-group-item-action:active {
    background-color: var(--ao-sidebar-active-bg);
    color: var(--ao-sidebar-active-text);
}

.search-page .list-group-item .text-muted,
.search-page .list-group-item-action .text-muted,
.search-page .card-header .badge.text-bg-light {
    color: var(--ao-text-muted) !important;
}

.search-page .card-header .badge.text-bg-light {
    background-color: var(--ao-header-bg) !important;
    border: 1px solid var(--ao-border);
}
