/**
 * XML SVG图标样式文件
 * 为XML文件类型的SVG图标提供完整的样式支持
 */

/* 基础XML SVG图标样式 */
.xml-icon svg,
svg.xml-icon,
.file-icon-xml svg,
.xml-file-icon svg {
    width: 16px;
    height: 16px;
    display: inline-block;
    vertical-align: middle;
    fill: currentColor;
    transition: all 0.3s ease;
}

/* 搜索结果中的XML图标 */
.search-results .xml-icon svg,
.search-results .file-icon-xml svg {
    width: 18px;
    height: 18px;
    margin-right: 8px;
}

/* 文件树中的XML图标 */
.file-tree .xml-icon svg,
.file-tree .file-icon-xml svg {
    width: 14px;
    height: 14px;
    margin-right: 6px;
}

/* 预览页面中的XML图标 */
.preview-section .xml-icon svg,
.preview-section .file-icon-xml svg {
    width: 20px;
    height: 20px;
    margin-right: 10px;
}

/* 悬停效果 */
.xml-icon:hover svg,
.file-icon-xml:hover svg,
.xml-file-icon:hover svg {
    transform: scale(1.1);
    filter: brightness(1.2);
}

/* 激活状态 */
.xml-icon:active svg,
.file-icon-xml:active svg,
.xml-file-icon:active svg {
    transform: scale(0.95);
}

/* 加载动画 */
.xml-icon.loading svg,
.file-icon-xml.loading svg {
    animation: xmlIconPulse 1.5s ease-in-out infinite;
}

@keyframes xmlIconPulse {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: 0.7;
        transform: scale(1.05);
    }
}

/* 响应式设计 */
@media (max-width: 768px) {
    .xml-icon svg,
    .file-icon-xml svg,
    .xml-file-icon svg {
        width: 14px;
        height: 14px;
    }
    
    .search-results .xml-icon svg,
    .search-results .file-icon-xml svg {
        width: 16px;
        height: 16px;
        margin-right: 6px;
    }
    
    .preview-section .xml-icon svg,
    .preview-section .file-icon-xml svg {
        width: 18px;
        height: 18px;
        margin-right: 8px;
    }
}

@media (max-width: 480px) {
    .xml-icon svg,
    .file-icon-xml svg,
    .xml-file-icon svg {
        width: 12px;
        height: 12px;
    }
    
    .search-results .xml-icon svg,
    .search-results .file-icon-xml svg {
        width: 14px;
        height: 14px;
        margin-right: 4px;
    }
}

/* 深色主题支持 */
@media (prefers-color-scheme: dark) {
    .xml-icon svg,
    .file-icon-xml svg,
    .xml-file-icon svg {
        filter: brightness(1.1) contrast(0.9);
    }
    
    .xml-icon:hover svg,
    .file-icon-xml:hover svg,
    .xml-file-icon:hover svg {
        filter: brightness(1.3) contrast(1);
    }
}

/* 高对比度模式 */
@media (prefers-contrast: high) {
    .xml-icon svg,
    .file-icon-xml svg,
    .xml-file-icon svg {
        filter: contrast(1.5);
    }
}

/* 减少动画模式 */
@media (prefers-reduced-motion: reduce) {
    .xml-icon svg,
    .file-icon-xml svg,
    .xml-file-icon svg {
        transition: none;
    }
    
    .xml-icon.loading svg,
    .file-icon-xml.loading svg {
        animation: none;
    }
    
    .xml-icon:hover svg,
    .file-icon-xml:hover svg,
    .xml-file-icon:hover svg {
        transform: none;
    }
}

/* 焦点状态（键盘导航） */
.xml-icon:focus svg,
.file-icon-xml:focus svg,
.xml-file-icon:focus svg {
    outline: 2px solid #007cba;
    outline-offset: 2px;
    border-radius: 2px;
}

/* 禁用状态 */
.xml-icon.disabled svg,
.file-icon-xml.disabled svg,
.xml-file-icon.disabled svg {
    opacity: 0.5;
    cursor: not-allowed;
    filter: grayscale(100%);
}

/* 打印样式 */
@media print {
    .xml-icon svg,
    .file-icon-xml svg,
    .xml-file-icon svg {
        width: 12px;
        height: 12px;
        filter: grayscale(100%);
    }
}

/* 特定容器中的XML图标样式 */
.file-list .xml-icon svg,
.file-grid .xml-icon svg {
    width: 16px;
    height: 16px;
}

.file-details .xml-icon svg {
    width: 24px;
    height: 24px;
}

/* XML图标在不同背景下的适配 */
.light-background .xml-icon svg,
.light-background .file-icon-xml svg {
    filter: brightness(0.9);
}

.dark-background .xml-icon svg,
.dark-background .file-icon-xml svg {
    filter: brightness(1.2);
}

/* 错误状态 */
.xml-icon.error svg,
.file-icon-xml.error svg {
    filter: hue-rotate(0deg) saturate(1.5) brightness(0.8);
    animation: xmlIconError 0.5s ease-in-out;
}

@keyframes xmlIconError {
    0%, 100% {
        transform: translateX(0);
    }
    25% {
        transform: translateX(-2px);
    }
    75% {
        transform: translateX(2px);
    }
}

/* 成功状态 */
.xml-icon.success svg,
.file-icon-xml.success svg {
    filter: hue-rotate(120deg) saturate(1.2) brightness(1.1);
}