/* CSS兼容性修复文件 */
/* 解决-ms-high-contrast弃用警告，使用新的Forced Colors Mode标准 */

/* 替换-ms-high-contrast为forced-colors */
@media (forced-colors: active) {
    /* 高对比度模式下的样式 */
    .ant-btn {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-input {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-select {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-table {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-card {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-modal {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-drawer {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-menu {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-tabs {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-form {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-pagination {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-dropdown {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-tooltip {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-popover {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-notification {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-message {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-alert {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-progress {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-slider {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-switch {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-checkbox {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-radio {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-rate {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-upload {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-transfer {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-cascader {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-tree {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-tree-select {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-mentions {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-time-picker {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-date-picker {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-calendar {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-statistic {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-descriptions {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-empty {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-result {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-skeleton {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-spin {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-affix {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-anchor {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-back-top {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-badge {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-tag {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-divider {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-space {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-row {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-col {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-layout {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-layout-header {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-layout-sider {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-layout-content {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-layout-footer {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-page-header {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-breadcrumb {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-steps {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-timeline {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-collapse {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-panel {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-list {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-comment {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-avatar {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-image {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-carousel {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-title {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-paragraph {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-text {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-link {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-copy {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-edit {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-expand {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-ellipsis {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-code {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-mark {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-underline {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-delete {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-strong {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-italic {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-kbd {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-pre {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-blockquote {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-ul {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-ol {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-li {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-dl {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-dt {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-dd {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-h1 {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-h2 {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-h3 {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-h4 {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-h5 {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
    
    .ant-typography-h6 {
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }
}

/* 语言切换后文本不可见兜底修复（避免仅 hover 才显文字） */
html[lang] .ant-menu,
html[lang] .ant-menu *,
html[lang] .ant-select,
html[lang] .ant-select *,
/* 排除按钮，避免覆盖 AntD 主题按钮配色 */
html[lang] .ant-dropdown,
html[lang] .ant-dropdown *,
html[lang] .ant-table,
html[lang] .ant-table *,
html[lang] .ant-form,
html[lang] .ant-form * {
    color: inherit;
    opacity: 1;
    visibility: visible;
}

/* 确保选择器文字在未聚焦/未悬停时也可见 */
html[lang] .ant-select-selector,
html[lang] .ant-select-selection-item,
html[lang] .ant-select-selection-placeholder {
    color: inherit;
    opacity: 1;
}

/* 例外：可搜索 select 的输入镜像元素（用于测量输入宽度）必须保持隐藏，
   否则上面的 visibility:visible 会让镜像文本与输入框文字叠印，出现"重影" */
html[lang] .ant-select .ant-select-selection-search-mirror,
.ant-select-selection-search-mirror {
    visibility: hidden !important;
}

/* 原生下拉框与选项的可见性（语言切换器使用的是原生 select） */
/* 语言选择下拉：蓝底白字，覆盖内联样式 */
#language-switcher {
    background-color: #1890ff !important; /* Match header/AntD v4 primary blue */
    color: #ffffff !important;
    border-color: #1890ff !important;
    margin-right: 12px !important; /* space from username */
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    background-image: none !important;
}

/* 选项使用深蓝底与白字，确保可读性 */
#language-switcher option {
    background-color: #1890ff !important; /* match header/AntD primary blue for dropdown list */
    color: #ffffff !important;
}

/* Active/hover states keep theme color where supported */
#language-switcher option:hover,
#language-switcher option:checked,
#language-switcher option:focus {
    background-color: #1890ff !important;
    color: #ffffff !important;
}

#language-switcher optgroup {
    background-color: #1890ff !important;
    color: #ffffff !important;
}

/* 聚焦与悬停保持主题色，避免回退到默认 */
#language-switcher:focus,
#language-switcher:hover {
    background-color: #1890ff !important;
    color: #ffffff !important;
    outline: none !important;
}

/* 兼容性提示 */
@media (forced-colors: active) {
    .ant-btn:hover,
    .ant-input:focus,
    .ant-select:focus,
    .ant-table tr:hover > td {
        border-color: Highlight;
        background-color: Highlight;
        color: HighlightText;
    }
}

/* === Modal overlay stacking fixes for Ant Design Vue === */
/* Ensure TreeSelect dropdown appears above modal (modal z-index ~2000) */
.ant-select-dropdown.ant-tree-select-dropdown {
    z-index: 2100 !important;
}

/* Header logout button visibility fix (override AntD default white background) */
.header .logout-btn,
.header .logout-btn.ant-btn {
    background-color: transparent !important;
    border-color: rgba(255, 255, 255, 0.65) !important;
    color: #fff !important;
}

.header .logout-btn:hover,
.header .logout-btn.ant-btn:hover {
    background-color: rgba(255, 255, 255, 0.18) !important;
    border-color: #ffffff !important;
}

/* Fallback: elevate all select dropdowns above modal */
.ant-select-dropdown {
    z-index: 2100 !important;
}

/* Tooltip 层级提升：确保在 Modal 上层显示 */
.ant-tooltip {
    z-index: 3000 !important;
}

/* Select 选择器文本溢出处理 */
.ant-select-selection-item {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: calc(100% - 30px); /* 留出下拉箭头空间 */
}

/* 
 * 注意：已移除-ms-high-contrast样式，使用现代的forced-colors标准
 * 如需IE兼容性，请考虑使用polyfill或单独的IE样式表
 */
