/* ==================== Kendo UI Dark Mode Overrides ==================== */

/* Tab Strip */
[data-theme="dark"] .k-tabstrip {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-tabstrip-items {
    background-color: var(--bg-tertiary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-tabstrip-item {
    color: var(--text-secondary);
    border-color: var(--border-color);
    background-color: transparent;
}

[data-theme="dark"] .k-tabstrip-item:hover {
    color: var(--text-primary);
    background-color: var(--hover-bg);
}

[data-theme="dark"] .k-tabstrip-item.k-active {
    background-color: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-tabstrip-content {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

/* Inputs */
[data-theme="dark"] .k-input,
[data-theme="dark"] .k-textbox,
[data-theme="dark"] .k-picker,
[data-theme="dark"] .k-textarea {
    background-color: var(--input-bg);
    color: var(--text-primary);
    border-color: var(--input-border);
}

[data-theme="dark"] .k-input:hover,
[data-theme="dark"] .k-textbox:hover,
[data-theme="dark"] .k-picker:hover {
    border-color: var(--blueteq-blue);
}

[data-theme="dark"] .k-input:focus,
[data-theme="dark"] .k-textbox:focus,
[data-theme="dark"] .k-picker:focus {
    border-color: var(--blueteq-blue);
    box-shadow: 0 0 0 3px rgba(24, 111, 181, 0.2);
}

[data-theme="dark"] .k-input::placeholder,
[data-theme="dark"] .k-textbox::placeholder {
    color: var(--text-tertiary);
}

/* Multiselect */
[data-theme="dark"] .k-multiselect {
    background-color: var(--input-bg);
    border-color: var(--input-border);
    color: var(--text-primary);
}

[data-theme="dark"] .k-multiselect:hover {
    border-color: var(--blueteq-blue);
}

[data-theme="dark"] .k-multiselect .k-chip {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-multiselect .k-chip:hover {
    background-color: var(--hover-bg);
}

[data-theme="dark"] .k-chip-remove-action:hover {
    background-color: var(--danger-red);
    color: white;
}

/* Dropdown Lists */
[data-theme="dark"] .k-list-item {
    color: var(--text-primary);
    background-color: transparent;
}

[data-theme="dark"] .k-list-item:hover {
    background-color: var(--hover-bg);
    color: var(--text-primary);
}

[data-theme="dark"] .k-list-item.k-selected,
[data-theme="dark"] .k-list-item.k-focus {
    background-color: rgba(24, 111, 181, 0.2);
    color: var(--blueteq-blue);
}

/* Popup/Dropdown Container */
[data-theme="dark"] .k-animation-container,
[data-theme="dark"] .k-popup {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
    box-shadow: var(--shadow-lg);
}

[data-theme="dark"] .k-list {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

/* Grid */
[data-theme="dark"] .k-grid {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .k-grid-header {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-grid-header th {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-grid tbody tr {
    background-color: var(--bg-secondary);
    color: var(--text-primary);
}

[data-theme="dark"] .k-grid tbody tr:hover {
    background-color: var(--hover-bg);
}

[data-theme="dark"] .k-grid tbody tr.k-alt {
    background-color: var(--bg-tertiary);
}

[data-theme="dark"] .k-grid td {
    border-color: var(--border-color);
}

/* Pager */
[data-theme="dark"] .k-pager {
    background-color: var(--bg-tertiary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .k-pager .k-link {
    color: var(--text-primary);
}

[data-theme="dark"] .k-pager .k-link:hover {
    background-color: var(--hover-bg);
}

[data-theme="dark"] .k-pager .k-state-selected {
    background-color: var(--blueteq-blue);
    color: white;
}

/* Window/Dialog */
[data-theme="dark"] .k-window {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
    box-shadow: var(--shadow-lg);
}

[data-theme="dark"] .k-window-titlebar {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-window-content {
    background-color: var(--bg-secondary);
    color: var(--text-primary);
}

/* Buttons inside Kendo components */
[data-theme="dark"] .k-button {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-button:hover {
    background-color: var(--hover-bg);
}

[data-theme="dark"] .k-button.k-primary {
    background-color: var(--blueteq-blue);
    color: white;
    border-color: var(--blueteq-blue);
}

[data-theme="dark"] .k-button.k-primary:hover {
    background-color: #1a5a8f;
    border-color: #1a5a8f;
}

/* DatePicker */
[data-theme="dark"] .k-calendar {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .k-calendar .k-header {
    border-color: var(--border-color);
    color: var(--text-primary);
    background-color: var(--bg-tertiary);
    box-shadow: none;
}

[data-theme="dark"] .k-calendar .k-calendar-header {
    background-color: transparent;
    color: var(--text-primary);
}

[data-theme="dark"] .k-calendar .k-calendar-header .k-calendar-title,
[data-theme="dark"] .k-calendar .k-calendar-header .k-title {
    color: var(--text-primary);
}

[data-theme="dark"] .k-calendar .k-calendar-view {
    background-color: var(--bg-secondary);
}

[data-theme="dark"] .k-calendar .k-calendar-nav {
    background-color: transparent;
}

[data-theme="dark"] .k-calendar .k-calendar-nav .k-button {
    color: var(--text-primary);
    background-color: transparent;
    border-color: transparent;
}

[data-theme="dark"] .k-calendar .k-calendar-nav .k-button:hover {
    background-color: var(--hover-bg);
    color: var(--text-primary);
}

    [data-theme="dark"] .k-calendar .k-calendar-th,
    [data-theme="dark"] .k-calendar .k-calendar-caption,
    [data-theme="dark"] .k-calendar .k-meta-header,
    [data-theme="dark"] .k-calendar .k-month-header,
    [data-theme="dark"] .k-calendar thead th {
        color: var(--text-secondary) !important;
        background-color: var(--bg-secondary);
        border-color: var(--border-color) !important;
    }

/* Default cell content */
[data-theme="dark"] .k-calendar .k-calendar-td .k-calendar-cell-inner,
[data-theme="dark"] .k-calendar .k-calendar-td .k-link {
    color: var(--text-primary);
    background-color: transparent;
    border-color: transparent;
}

    [data-theme="dark"] .k-calendar .k-calendar-td:hover .k-calendar-cell-inner,
    [data-theme="dark"] .k-calendar .k-calendar-td:hover .k-link,
    [data-theme="dark"] .k-calendar .k-calendar-td.k-hover .k-calendar-cell-inner,
    [data-theme="dark"] .k-calendar .k-calendar-td.k-hover .k-link {
        border-color: var(--border-color);
        color: var(--text-primary);
        background-color: var(--bg-secondary);
    }

[data-theme="dark"] .k-calendar .k-calendar-view .k-today .k-calendar-cell-inner,
[data-theme="dark"] .k-calendar .k-calendar-view .k-today .k-link {
    box-shadow: inset 0 0 0 1px var(--blueteq-blue);
    color: var(--info-color, var(--blueteq-blue));
}

[data-theme="dark"] .k-calendar .k-calendar-td.k-selected .k-calendar-cell-inner,
[data-theme="dark"] .k-calendar .k-calendar-td.k-selected .k-link,
[data-theme="dark"] .k-calendar td.k-selected .k-link {
    border-color: var(--blueteq-blue);
    color: #ffffff !important;
    background-color: var(--blueteq-blue) !important;
}

[data-theme="dark"] .k-calendar .k-calendar-td.k-selected:hover .k-calendar-cell-inner,
[data-theme="dark"] .k-calendar .k-calendar-td.k-selected:hover .k-link,
[data-theme="dark"] .k-calendar .k-calendar-td.k-selected.k-hover .k-calendar-cell-inner,
[data-theme="dark"] .k-calendar .k-calendar-td.k-selected.k-hover .k-link {
    color: #ffffff !important;
    background-color: var(--blueteq-blue) !important;
    filter: brightness(1.08);
}

[data-theme="dark"] .k-calendar .k-other-month,
[data-theme="dark"] .k-calendar .k-calendar-td.k-other-month .k-link {
    color: var(--text-tertiary);
}

[data-theme="dark"] .k-calendar .k-calendar-td.k-disabled .k-calendar-cell-inner,
[data-theme="dark"] .k-calendar .k-calendar-td.k-disabled .k-link,
[data-theme="dark"] .k-calendar td.k-disabled .k-link {
    color: var(--text-tertiary);
    opacity: 0.45;
}

[data-theme="dark"] .k-calendar .k-calendar-navigation {
    color: var(--text-primary);
    background-color: var(--bg-tertiary);
    box-shadow: inset -1px 0 var(--border-color);
}

[data-theme="dark"] .k-calendar .k-calendar-navigation li:hover,
[data-theme="dark"] .k-calendar .k-calendar-navigation li.k-hover {
    color: var(--info-color, var(--blueteq-blue));
}

[data-theme="dark"] .k-calendar .k-calendar-navigation-highlight {
    border-color: var(--border-color);
    color: var(--text-primary);
    background-color: var(--bg-secondary);
}

[data-theme="dark"] .k-calendar .k-range-start,
[data-theme="dark"] .k-calendar .k-range-end,
[data-theme="dark"] .k-calendar .k-range-mid {
    background-color: rgba(24, 111, 181, 0.28);
}

[data-theme="dark"] .k-calendar .k-calendar-td:focus .k-calendar-cell-inner,
[data-theme="dark"] .k-calendar .k-calendar-td:focus .k-link,
[data-theme="dark"] .k-calendar .k-calendar-td.k-focus .k-calendar-cell-inner,
[data-theme="dark"] .k-calendar .k-calendar-td.k-focus .k-link {
    box-shadow: inset 0 0 0 0.25rem rgba(96, 165, 250, 0.35);
}

[data-theme="dark"] .k-calendar .k-calendar-view .k-today.k-focus .k-calendar-cell-inner,
[data-theme="dark"] .k-calendar .k-calendar-view .k-today.k-focus .k-link {
    box-shadow: inset 0 0 0 1px var(--blueteq-blue), inset 0 0 0 0.25rem rgba(96, 165, 250, 0.35);
}

/* Popup-hosted calendar inherits surface */
[data-theme="dark"] .k-popup .k-calendar {
    background-color: var(--bg-secondary);
    color: var(--text-primary);
}

/* DatePicker input */
[data-theme="dark"] .k-datepicker,
[data-theme="dark"] .k-timepicker,
[data-theme="dark"] .k-datetimepicker {
    background-color: var(--input-bg);
    border-color: var(--input-border);
}

[data-theme="dark"] .k-datepicker:hover,
[data-theme="dark"] .k-timepicker:hover,
[data-theme="dark"] .k-datetimepicker:hover {
    border-color: var(--blueteq-blue);
}

[data-theme="dark"] .k-datepicker .k-input-inner,
[data-theme="dark"] .k-timepicker .k-input-inner,
[data-theme="dark"] .k-datetimepicker .k-input-inner {
    background-color: var(--input-bg);
    color: var(--text-primary);
}

[data-theme="dark"] .k-datepicker .k-button,
[data-theme="dark"] .k-timepicker .k-button,
[data-theme="dark"] .k-datetimepicker .k-button {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-datepicker .k-button:hover,
[data-theme="dark"] .k-timepicker .k-button:hover,
[data-theme="dark"] .k-datetimepicker .k-button:hover {
    background-color: var(--hover-bg);
}

/* Time picker dropdown */
[data-theme="dark"] .k-time-list {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-time-list .k-item {
    color: var(--text-primary);
}

[data-theme="dark"] .k-time-list .k-item:hover {
    background-color: var(--hover-bg);
}

[data-theme="dark"] .k-time-list .k-item.k-selected {
    background-color: var(--blueteq-blue);
    color: #ffffff;
}

/* Notification */
[data-theme="dark"] .k-notification {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

/* Tooltip */
[data-theme="dark"] .k-tooltip {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

/* Editor */
[data-theme="dark"] .k-editor {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-editor-toolbar {
    background-color: var(--bg-tertiary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-editable-area {
    background-color: var(--input-bg);
    color: var(--text-primary);
}

/* Menu */
[data-theme="dark"] .k-menu {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-menu-item {
    color: var(--text-primary);
}

[data-theme="dark"] .k-menu-item:hover {
    background-color: var(--hover-bg);
}

/* Splitter */
[data-theme="dark"] .k-splitter {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-splitbar {
    background-color: var(--bg-tertiary);
    border-color: var(--border-color);
}

/* TreeView */
[data-theme="dark"] .k-treeview {
    background-color: var(--bg-secondary);
    color: var(--text-primary);
}

[data-theme="dark"] .k-treeview-item {
    color: var(--text-primary);
}

[data-theme="dark"] .k-treeview-item:hover {
    background-color: var(--hover-bg);
}

[data-theme="dark"] .k-treeview .k-selected {
    background-color: rgba(24, 111, 181, 0.2);
    color: var(--blueteq-blue);
}

/* Upload */
[data-theme="dark"] .k-upload {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .k-upload .k-upload-button {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-upload .k-upload-button:hover {
    background-color: var(--hover-bg);
    border-color: var(--blueteq-blue);
    color: var(--text-primary);
}

[data-theme="dark"] .k-upload .k-upload-button:focus,
[data-theme="dark"] .k-upload .k-upload-button.k-focus {
    box-shadow: 0 0 0 3px rgba(24, 111, 181, 0.25);
}

[data-theme="dark"] .k-dropzone,
[data-theme="dark"] .k-upload-dropzone,
[data-theme="dark"] .k-upload .k-upload-empty,
[data-theme="dark"] .k-upload .k-upload-sync .k-upload-empty .k-valid {
    background-color: var(--bg-tertiary);
    color: var(--text-secondary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-dropzone:hover,
[data-theme="dark"] .k-upload-dropzone:hover,
[data-theme="dark"] .k-upload .k-upload-empty:hover {
    border-color: var(--blueteq-blue);
    background-color: var(--hover-bg);
}

[data-theme="dark"] .k-upload-files {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .k-file {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-file:hover {
    background-color: var(--hover-bg);
}

[data-theme="dark"] .k-file .k-file-name,
[data-theme="dark"] .k-file .k-file-size,
[data-theme="dark"] .k-file-info {
    color: var(--text-primary);
}

[data-theme="dark"] .k-file .k-file-icon {
    color: var(--text-secondary);
}

[data-theme="dark"] .k-file.k-file-invalid,
[data-theme="dark"] .k-file.k-file-error {
    background-color: rgba(220, 38, 38, 0.12);
    border-color: var(--danger-red, #dc2626);
}

[data-theme="dark"] .k-file-validation-message,
[data-theme="dark"] .k-file-invalid .k-file-validation-message {
    color: var(--danger-red, #f87171);
}

[data-theme="dark"] .k-upload .k-upload-action,
[data-theme="dark"] .k-file .k-upload-action {
    color: var(--text-secondary);
    background-color: transparent;
    border-color: transparent;
}

[data-theme="dark"] .k-upload .k-upload-action:hover,
[data-theme="dark"] .k-file .k-upload-action:hover {
    color: var(--text-primary);
    background-color: var(--hover-bg);
}

[data-theme="dark"] .k-upload-status,
[data-theme="dark"] .k-upload-status-total {
    color: var(--text-secondary);
}

[data-theme="dark"] .k-file-progress,
[data-theme="dark"] .k-upload .k-progressbar,
[data-theme="dark"] .k-upload .k-progress-bar {
    background-color: var(--border-color);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-upload .k-selected,
[data-theme="dark"] .k-upload .k-progressbar .k-selected,
[data-theme="dark"] .k-upload .k-progress-bar .k-selected {
    background-color: var(--blueteq-blue);
}

[data-theme="dark"] .k-upload input[type="file"] {
    color: var(--text-secondary);
}

[data-theme="dark"] .k-upload input[type="file"]::file-selector-button {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
    border: 1px solid var(--border-color);
    border-radius: 0.375rem;
    padding: 0.35rem 0.75rem;
    margin-right: 0.5rem;
    cursor: pointer;
}

[data-theme="dark"] .k-upload input[type="file"]::file-selector-button:hover {
    background-color: var(--hover-bg);
    border-color: var(--blueteq-blue);
}

/* Scheduler */
[data-theme="dark"] .k-scheduler {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .k-scheduler-header {
    background-color: var(--bg-tertiary);
    border-color: var(--border-color);
}

[data-theme="dark"] .k-scheduler-table td {
    border-color: var(--border-color);
}

/* Chart */
[data-theme="dark"] .k-chart {
    background-color: var(--bg-secondary);
    color: var(--text-primary);
}

/* Form Labels */
[data-theme="dark"] .k-form-label {
    color: var(--text-primary);
}

/* Icons */
[data-theme="dark"] .k-icon {
    color: var(--text-secondary);
}

[data-theme="dark"] .k-icon:hover {
    color: var(--text-primary);
}

/* ==================== High Contrast Mode Kendo UI Overrides ==================== */

/* All Kendo components in high contrast */
[data-theme="high-contrast"] .k-widget,
[data-theme="high-contrast"] .k-input,
[data-theme="high-contrast"] .k-textbox,
[data-theme="high-contrast"] .k-picker,
[data-theme="high-contrast"] .k-multiselect,
[data-theme="high-contrast"] .k-dropdown,
[data-theme="high-contrast"] .k-grid,
[data-theme="high-contrast"] .k-tabstrip,
[data-theme="high-contrast"] .k-window,
[data-theme="high-contrast"] .k-calendar {
    background-color: #000000 !important;
    color: #ffffff !important;
    border: 3px solid #ffffff !important;
}

[data-theme="high-contrast"] .k-list-item,
[data-theme="high-contrast"] .k-grid td,
[data-theme="high-contrast"] .k-grid th {
    background-color: #000000 !important;
    color: #ffffff !important;
    border: 2px solid #ffffff !important;
}

[data-theme="high-contrast"] .k-list-item:hover,
[data-theme="high-contrast"] .k-grid tbody tr:hover {
    background-color: #333333 !important;
}

[data-theme="high-contrast"] .k-list-item.k-selected,
[data-theme="high-contrast"] .k-list-item.k-focus {
    background-color: #0066ff !important;
    color: #ffffff !important;
    border: 3px solid #ffffff !important;
}

[data-theme="high-contrast"] .k-button {
    background-color: #000000 !important;
    color: #ffffff !important;
    border: 3px solid #ffffff !important;
    font-weight: 700 !important;
}

[data-theme="high-contrast"] .k-button:hover {
    background-color: #333333 !important;
}

[data-theme="high-contrast"] .k-button.k-primary {
    background-color: #0066ff !important;
    color: #ffffff !important;
    border: 3px solid #ffffff !important;
}

[data-theme="high-contrast"] .k-chip {
    background-color: #0066ff !important;
    color: #ffffff !important;
    border: 2px solid #ffffff !important;
}

[data-theme="high-contrast"] .k-tabstrip-item.k-active {
    background-color: #0066ff !important;
    color: #ffffff !important;
    border: 3px solid #ffffff !important;
}

[data-theme="high-contrast"] .k-tabstrip-items {
    background-color: #000000 !important;
    border: 3px solid #ffffff !important;
}

[data-theme="high-contrast"] .k-tabstrip-content {
    background-color: #000000 !important;
    border: 3px solid #ffffff !important;
    color: #ffffff !important;
}

[data-theme="high-contrast"] .k-animation-container,
[data-theme="high-contrast"] .k-popup,
[data-theme="high-contrast"] .k-list {
    background-color: #000000 !important;
    border: 3px solid #ffffff !important;
}

[data-theme="high-contrast"] .k-icon {
    color: #ffffff !important;
}

/* High contrast — Upload */
[data-theme="high-contrast"] .k-upload,
[data-theme="high-contrast"] .k-upload-files,
[data-theme="high-contrast"] .k-dropzone,
[data-theme="high-contrast"] .k-upload-dropzone,
[data-theme="high-contrast"] .k-file {
    background-color: #000000 !important;
    color: #ffffff !important;
    border: 3px solid #ffffff !important;
}

[data-theme="high-contrast"] .k-upload .k-upload-button {
    background-color: #000000 !important;
    color: #ffffff !important;
    border: 3px solid #ffffff !important;
}

[data-theme="high-contrast"] .k-upload .k-upload-button:hover {
    background-color: #333333 !important;
}

[data-theme="high-contrast"] .k-file .k-file-name,
[data-theme="high-contrast"] .k-file .k-file-size,
[data-theme="high-contrast"] .k-upload-status,
[data-theme="high-contrast"] .k-upload-status-total {
    color: #ffffff !important;
}

[data-theme="high-contrast"] .k-upload input[type="file"]::file-selector-button {
    background-color: #000000 !important;
    color: #ffffff !important;
    border: 3px solid #ffffff !important;
}

