/*
 * ========================================
 * android-analysis-bundle.css
 * Android静态分析页面 - 样式合并包
 * ========================================
 *
 * 版本: 3.0 (方案二：激进型重构)
 * 创建日期: 2025-01-09
 *
 * 合并的文件：
 * 1. android-analysis-nmlh.css (35KB) - Android分析页面专用样式
 * 2. android-sidebar.css (13KB) - 侧边栏白色现代主题
 * 3. red_theme_components.css (22KB) - 红色主题组件库
 * 4. file-tree-contrast.css (2.5KB) - 文件树对比度修复
 *
 * 优化收益：
 * - 减少HTTP请求：从4个文件合并为1个（减少3个请求）
 * - 减少重复CSS变量：统一使用全局nmlh变量
 * - 提升加载性能：减少网络往返时间
 *
 * 依赖关系:
 * - 本文件依赖 nmlh-design-tokens.css 的全局设计变量
 * - 必须确保 nmlh-design-tokens.css 在本文件之前加载
 *
 * ========================================
 */

/* ========================================
   Part 1: android-analysis-nmlh.css
   Android分析页面专用样式
   ======================================== */

/* FontAwesome已在nmlh_base.html中引入，此处仅保留字体族覆盖定义 */

/* 强制覆盖FontAwesome字体族定义 - 解决5.x和6.x冲突 */
.fa, .fas, .far, .fal, .fad, .fab {
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Pro", "Font Awesome 5 Free", "Font Awesome 5 Pro" !important;
}

.fas {
    font-weight: 900 !important;
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Pro" !important;
}

.far {
    font-weight: 400 !important;
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Pro" !important;
}

.fab {
    font-weight: 400 !important;
    font-family: "Font Awesome 6 Brands", "Font Awesome 5 Brands" !important;
}

/* 强制定义fa-file-xml图标 - 如果CDN加载失败的备用方案 */
.fa-file-xml::before {
    content: "\e07b" !important; /* FontAwesome 6.x中fa-file-xml的Unicode */
    font-family: "Font Awesome 6 Free" !important;
    font-weight: 900 !important;
}

/* ========================================
   全局布局适配 - Android特有部分
   参考主页统一设计：白色背景 + 蓝色点缀
   ======================================== */
body.android-analysis,
body.sidebar-mini.android-analysis {
    background: #ffffff !important;
    color: #2c3e50 !important;
}

/* AdminLTE wrapper适配 */
.wrapper {
    background: #ffffff !important;
}

/* 主内容区域 */
.content-wrapper {
    background: #ffffff !important;
    min-height: calc(100vh - 56px) !important;
    color: #2c3e50 !important;
}

/* ========================================
   导航栏适配 - 确保与南明离火量子离火主题一致
   ======================================== */
/* 强制覆盖AdminLTE和Bootstrap导航栏样式 */
.main-header,
.main-header .navbar,
.navbar,
.nmlh-navbar  {
    background: var(--nmlh-bg-primary) !important;
    backdrop-filter: blur(10px) !important;
    border-bottom: 2px solid var(--nmlh-quantum-fire) !important;
    padding: var(--nmlh-spacing-sm) 0 !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 1030 !important;
    box-shadow: 0 4px 16px rgba(220, 38, 38, 0.15) !important;
    min-height: 56px !important;
    color: var(--nmlh-text-on-dark-primary) !important;
}

/* 统一导航栏样式，继承量子离火主题效果 */
.nmlh-navbar {
    background: var(--nmlh-bg-primary) !important;
    backdrop-filter: blur(10px) !important;
    border-bottom: 2px solid var(--nmlh-quantum-fire) !important;
    padding: var(--nmlh-spacing-sm) 0 !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 1030 !important;
    box-shadow: 0 4px 16px rgba(220, 38, 38, 0.15) !important;
    min-height: 56px !important;
}

/* 强制覆盖AdminLTE和Bootstrap品牌样式 */
.main-header .navbar-brand,
.main-header .logo,
.navbar-brand,
.nmlh-navbar-brand  {
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    color: var(--nmlh-nav-text) !important; /* 白色，确保在红色背景上可读（对比度7.23:1） */
    text-decoration: none !important;
    display: flex !important;
    align-items: center !important;
    transition: all var(--nmlh-transition-normal) !important;
    line-height: 1.2 !important;
    position: relative !important;
    text-shadow: none !important; /* 移除红色阴影 */
}

.nmlh-navbar-brand {
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    color: var(--nmlh-nav-text) !important; /* 白色，确保在红色背景上可读 */
    text-decoration: none !important;
    display: flex !important;
    align-items: center !important;
    transition: all var(--nmlh-transition-normal) !important;
    line-height: 1.2 !important;
    position: relative !important;
}

.nmlh-navbar-brand:hover {
    color: var(--nmlh-nav-hover) !important; /* 浅粉色悬浮态（对比度6.8:1） */
    text-shadow: none !important; /* 移除橙色光晕 */
    transform: translateY(-1px) scale(1.02) !important;
}

.nmlh-navbar-nav {
    display: flex !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: var(--nmlh-spacing-lg) !important;
}

.nmlh-navbar-link {
    color: var(--nmlh-nav-text) !important;  /* 修复：使用纯白色，与主页统一 */
    text-decoration: none !important;
    padding: 8px 6px !important;  /* 修复：与nmlh-unified.css统一 */
    border-radius: var(--nmlh-radius-sm) !important;
    transition: all var(--nmlh-transition-normal) !important;
    display: flex !important;
    align-items: center !important;
    font-weight: 600 !important;  /* 修复：从500改为600，与主页统一 */
    font-size: 0.9rem !important;
    line-height: 1.4 !important;
    position: relative !important;
}

/* 下划线动画效果 */
.nmlh-navbar-link::after {
    content: '' !important;
    position: absolute !important;
    bottom: -2px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 0 !important;
    height: 2px !important;
    background: linear-gradient(90deg, var(--nmlh-quantum-fire), var(--nmlh-quantum-lava)) !important;
    transition: all var(--nmlh-transition-normal) !important;
    border-radius: 1px !important;
}

.nmlh-navbar-link:hover::after,
.nmlh-navbar-link.active::after {
    width: 100% !important;
}

.nmlh-navbar-link:hover,
.nmlh-navbar-link.active {
    color: var(--nmlh-nav-hover) !important;  /* 修复：使用统一的悬浮颜色 */
    background: transparent !important;  /* 修复：移除背景色，与主页统一 */
    text-shadow: none !important;  /* 修复：移除文字阴影，与主页统一 */
    transform: none !important;  /* 修复：移除transform，与主页统一 */
    text-decoration: none !important;
}

.nmlh-container-fluid {
    width: 100% !important;
    padding: 0 var(--nmlh-spacing-md) !important;
    max-width: none !important;
}

/* =========================================
   AdminLTE侧边栏适配南明离火主题
   注意：侧边栏样式已完全迁移到 android-sidebar.css
   包括深海蓝背景、WCAG对比度修复、hover状态改进
   ======================================== */


/* AdminLTE导航栏适配 */
.main-header {
    background: var(--nmlh-bg-secondary) !important;
    border-bottom: 1px solid var(--nmlh-border-primary) !important;
}

.main-header .navbar-nav .nav-link {
    color: var(--nmlh-nav-text) !important;  /* 修复：使用纯白色 */
}

.main-header .navbar-nav .nav-link:hover {
    color: var(--nmlh-nav-hover) !important;  /* 修复：使用统一的悬浮颜色 */
}

/* ========================================
   内容区域适配
   ======================================== */
.content-wrapper {
    background: transparent !important;
    min-height: 100vh;
}

/* ========================================
   AdminLTE卡片适配南明离火主题
   ======================================== */
.card {
    background: var(--nmlh-bg-light-secondary) !important;
    border: 1px solid rgba(var(--rgb-primary), 0.2) !important;
    border-radius: var(--nmlh-radius-lg) !important;
    box-shadow: var(--nmlh-shadow-md) !important;
    margin-bottom: var(--nmlh-spacing-lg);
    transition: all var(--nmlh-transition-normal);
}

.card:hover {
    box-shadow: var(--nmlh-shadow-lg) !important;
    transform: translateY(-2px);
}

.card-body {
    padding: var(--nmlh-spacing-lg) !important;
}

.card-body p strong {
    color: var(--nmlh-primary) !important;  /* 修复：使用主题红色，与网站整体风格统一 */
    font-size: var(--nmlh-font-size-md);
    margin-bottom: var(--nmlh-spacing-md);
    display: block;
}

/* ========================================
   表格样式 - Android分析页专用覆盖 - 美化版
   ======================================== */
.table,
.table-bordered,
.table-hover,
.table-striped,
#table_permissions,
#malware-table,
.permissions-table {
    background: var(--nmlh-bg-light) !important;
    color: var(--nmlh-text-on-light-primary) !important;
    border-radius: var(--nmlh-radius-md) !important;
    overflow: hidden;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.05) !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border: 1px solid var(--nmlh-gray-200) !important;
    margin-bottom: var(--nmlh-spacing-lg) !important;
    width: 100% !important;
}

/* 表格单元格样式统一 */
.table th,
.table td,
.permissions-table th,
.permissions-table td {
    padding: var(--nmlh-spacing-sm) var(--nmlh-spacing-md) !important;
    vertical-align: middle !important;
    border: 1px solid var(--nmlh-gray-200) !important;
    font-size: var(--nmlh-font-size-sm) !important;
    transition: all 0.2s ease !important;
}

/* 表头单元格间隔线 */
.table thead th:not(:last-child),
.permissions-table thead th:not(:last-child) {
    border-right: 1px solid rgba(255, 255, 255, 0.2) !important;
}

/* 表头单元格悬停效果 - 深红渐变（方案一：保持品牌基因） */
.table thead th:hover,
.permissions-table thead th:hover,
table.dataTable thead th:hover {
    background: linear-gradient(135deg, #D32F2F 0%, #B71C1C 100%) !important;
    color: #FFFFFF !important;
    box-shadow: 0 4px 12px rgba(211, 47, 47, 0.3);
    transform: translateY(-1px);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
}

/* 增强排序图标的可见性（悬浮时） */
.table thead th:hover .sorting_asc,
.table thead th:hover .sorting_desc,
.table thead th:hover .sorting,
.permissions-table thead th:hover .sorting_asc,
.permissions-table thead th:hover .sorting_desc,
.permissions-table thead th:hover .sorting,
table.dataTable thead th:hover .sorting_asc,
table.dataTable thead th:hover .sorting_desc,
table.dataTable thead th:hover .sorting {
    color: #FFFFFF !important;
    opacity: 1 !important;
}

/* 表头样式统一 - 已被第2061-2071行的.red-table样式覆盖，此处注释保留以备参考 */
/*
.table thead th,
.permissions-table thead th {
    background: linear-gradient(to bottom, var(--nmlh-gray-600), var(--nmlh-gray-700)) !important;
    color: var(--nmlh-text-on-dark-primary) !important;
    font-weight: var(--nmlh-font-weight-semibold) !important;
    font-size: var(--nmlh-font-size-sm) !important;
    border-bottom: 2px solid var(--nmlh-gray-800) !important;
    padding: var(--nmlh-spacing-md) var(--nmlh-spacing-md) !important;
    position: relative !important;
    text-align: left !important;
    white-space: nowrap !important;
    letter-spacing: 0.3px !important;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1) !important;
}
*/

/* 表格悬停效果统一 - 使用更明显的淡蓝色 */
.table tbody tr:hover,
.permissions-table tbody tr:hover {
    background: var(--nmlh-hover-bg) !important;
    box-shadow: inset 0 0 0 1px var(--nmlh-hover-border) !important;
}

.table tbody tr:hover td,
.permissions-table tbody tr:hover td {
    background: transparent !important;
    color: var(--nmlh-hover-text) !important;
}

/* 表格条纹效果统一 - 加深对比度 */
.table-striped tbody tr:nth-child(odd),
.permissions-table tbody tr:nth-child(odd) {
    background: var(--nmlh-bg-light-tertiary) !important;
}

.table-striped tbody tr:nth-child(odd) td,
.permissions-table tbody tr:nth-child(odd) td {
    background: transparent !important;
}

/* 特殊列样式 - 代码类内容 */
.table td:first-child code,
.permissions-table td:first-child code,
td.code {
    font-family: var(--nmlh-font-mono) !important;
    font-size: var(--nmlh-font-size-sm) !important;
    color: var(--nmlh-code-text) !important;
    word-break: break-all !important;
    background-color: var(--nmlh-code-bg);
    padding: 2px 4px;
    border-radius: 3px;
}

/* 状态样式 - 危险、警告、安全等 */
td.danger,
.table .danger,
.table .text-danger {
    color: var(--nmlh-status-danger-text) !important;
    font-weight: var(--nmlh-font-weight-medium) !important;
}

td.warning,
.table .warning,
.table .text-warning {
    color: var(--nmlh-status-warning-text) !important;
    font-weight: var(--nmlh-font-weight-medium) !important;
}

td.success,
.table .success,
.table .text-success {
    color: var(--nmlh-status-success-text) !important;
    font-weight: var(--nmlh-font-weight-medium) !important;
}

td.info,
.table .info,
.table .text-info {
    color: var(--nmlh-status-info-text) !important;
    font-weight: var(--nmlh-font-weight-medium) !important;
}

/* ========================================
   权限徽章样式 - Android分析页专用
   ======================================== */
.permission-badge {
    display: inline-block;
    padding: 5px 10px;
    border-radius: var(--nmlh-radius-md);
    font-size: var(--nmlh-font-size-xs);
    font-weight: var(--nmlh-font-weight-semibold);
    text-align: center;
    min-width: 80px;
    box-shadow: var(--nmlh-shadow-xs);
    transition: all 0.2s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.permission-dangerous {
    background: linear-gradient(135deg, var(--nmlh-permission-dangerous-from), var(--nmlh-permission-dangerous-to)) !important;
    color: var(--nmlh-text-on-danger) !important;
}

.permission-normal {
    background: linear-gradient(135deg, var(--nmlh-permission-normal-from), var(--nmlh-permission-normal-to)) !important;
    color: var(--nmlh-text-on-info) !important;
}

.permission-system {
    background: linear-gradient(135deg, var(--nmlh-permission-system-from), var(--nmlh-permission-system-to)) !important;
    color: var(--nmlh-text-on-dark-primary) !important;
}

.permission-signature {
    background: linear-gradient(135deg, var(--nmlh-permission-signature-from), var(--nmlh-permission-signature-to)) !important;
    color: var(--nmlh-text-on-success) !important;
}

.permission-unknown {
    background: linear-gradient(135deg, var(--nmlh-permission-unknown-from), var(--nmlh-permission-unknown-to)) !important;
    color: var(--nmlh-text-on-warning) !important;
}

.permission-badge:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
    filter: brightness(1.05);
}

/* ========================================
   应用信息网格布局 - Android分析页专用
   ======================================== */
.app-info-card {
    background: var(--nmlh-bg-light) !important;
    border-radius: var(--nmlh-radius-lg) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08) !important;
    padding: var(--nmlh-spacing-lg) !important;
    margin-bottom: 22px !important;
}

.app-info-grid {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--nmlh-spacing-lg);
    align-items: start;
}

.detail-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: var(--nmlh-spacing-sm) 0;
    border-bottom: 1px solid var(--nmlh-gray-200);
}

.detail-row:last-child {
    border-bottom: none;
}

.detail-label {
    font-weight: var(--nmlh-font-weight-semibold);
    color: var(--nmlh-text-on-light-primary);
    font-size: var(--nmlh-font-size-sm);
    min-width: 100px;
    width: 100px;
    margin-right: 12px;
    position: relative;
}

.detail-value {
    color: var(--nmlh-text-on-light-secondary);
    font-size: var(--nmlh-font-size-base);
    font-weight: var(--nmlh-font-weight-medium);
    word-break: break-all;
    flex: 1;
}

.detail-value.hash {
    color: var(--nmlh-status-success-text);
    font-family: var(--nmlh-font-mono);
    font-size: var(--nmlh-font-size-sm);
    background: rgba(0,180,216,0.08);
    border-radius: 4px;
    padding: 2px 6px;
}

/* ========================================
   文件树样式 - Android分析页专用
   ======================================== */
.file-tree {
    background: var(--nmlh-bg-light);
    border-radius: var(--nmlh-radius-md);
    padding: var(--nmlh-spacing-md);
    border: 1px solid var(--nmlh-gray-200);
    list-style: none;
    margin: 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}

.file-tree ul {
    list-style: none;
    margin: 0;
    padding-left: 28px; /* 增加缩进以提升层次感 */
}

.file-tree li {
    color: var(--nmlh-primary);
    margin: 4px 0;
    position: relative;
    line-height: var(--nmlh-line-height-relaxed);
}

/* 添加水平连接线 - 仅对嵌套列表中的项（.nested类内的li） */
.file-tree .nested li::before {
    content: "";
    position: absolute;
    left: -18px; /* 连接到垂直线 */
    top: 50%;
    width: 14px; /* 水平线长度 */
    height: 0;
    border-top: 2px dashed rgba(var(--rgb-primary), 0.25); /* 与垂直线样式一致 */
}

.file-tree a {
    color: var(--nmlh-code-text);
    text-decoration: none;
    display: inline-block;
    padding: 3px 5px;
    border-radius: 4px;
    transition: all 0.2s ease;
}

.file-tree a:hover {
    color: var(--nmlh-primary-dark);
    background: var(--nmlh-hover-bg);
    text-decoration: none;
}

/* 文件夹图标样式 - 增强可见性 */
.file-tree .caret {
    cursor: pointer;
    user-select: none;
    display: inline-block;
    width: 20px; /* 从16px增加到20px */
    height: 20px; /* 从16px增加到20px */
    margin-right: 6px; /* 从4px增加到6px */
    color: var(--nmlh-primary); /* 使用更醒目的蓝色 */
    font-size: 14px; /* 从12px增加到14px */
    line-height: 20px; /* 调整行高匹配新尺寸 */
    text-align: center;
    transition: all var(--nmlh-transition-fast); /* 改为all以包含颜色过渡 */
    border-radius: var(--nmlh-radius-sm, 4px);
    background: rgba(var(--rgb-primary), 0.05); /* 添加淡背景 */
}

.file-tree .caret:before {
    content: "▶";
}

.file-tree .caret-down:before {
    content: "▼";
}

.file-tree .caret:hover {
    color: var(--nmlh-primary, #FF8C00); /* 悬停时使用主色调 */
    background: rgba(255, 140, 0, 0.1); /* 悬停时背景 */
    transform: scale(1.1); /* 轻微放大效果 */
}

/* 嵌套列表样式 - 增强层次感 */
.file-tree .nested {
    display: none;
    padding-left: 24px; /* 从20px增加到24px */
    border-left: 2px dashed rgba(var(--rgb-primary), 0.25); /* 增强边框：1px→2px，并使用蓝色 */
    margin-left: 10px; /* 从8px增加到10px */
}

.file-tree .active {
    display: block;
    animation: fadeIn 0.2s ease-in; /* 添加展开动画 */
}

/* 最后一个子项的特殊处理 - 阻止垂直线延伸 */
.file-tree ul li:last-child::after {
    content: "";
    position: absolute;
    left: -28px; /* 定位到垂直线位置 */
    top: 50%;
    bottom: 0;
    width: 2px;
    background: var(--nmlh-bg-light, #FFFFFF); /* 使用背景色遮盖下半部分垂直线 */
}

/* 嵌套列表展开动画 */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 文件对齐修正 - 没有展开图标的文件需要左边距来与文件夹对齐 */
.file-tree li:not(:has(.caret)) {
    padding-left: 26px; /* caret宽度(20px) + 右边距(6px) = 26px */
}

/* 文件和文件夹图标 */
.file-tree .folder-icon {
    color: var(--nmlh-folder-color);
    margin-right: 4px;
}

.file-tree .file-icon {
    color: var(--nmlh-text-accent);
    margin-right: 4px;
}

/* ========================================
   文件类型特定图标颜色 - 使用设计Token
   ======================================== */

/* 编程语言文件 */
.file-tree .java-file { color: var(--nmlh-file-java); }
.file-tree .kotlin-file { color: var(--nmlh-file-kotlin); }
.file-tree .js-file { color: var(--nmlh-file-js); }
.file-tree .python-file { color: var(--nmlh-file-python); }
.file-tree .cpp-file { color: var(--nmlh-file-cpp); }
.file-tree .c-file { color: var(--nmlh-file-c); }

/* 配置和数据文件 */
.file-tree .xml-file {
    color: var(--nmlh-file-xml);
    font-weight: var(--nmlh-font-weight-semibold);
}

.file-tree .json-file {
    color: var(--nmlh-file-json);
    font-weight: var(--nmlh-font-weight-medium);
}

.file-tree .yaml-file { color: var(--nmlh-file-yaml); }
.file-tree .properties-file { color: var(--nmlh-file-properties); }

/* 图片文件 */
.file-tree .image-file { color: var(--nmlh-file-image); }
.file-tree .gif-file { color: var(--nmlh-file-gif); }
.file-tree .svg-file { color: var(--nmlh-file-svg); }
.file-tree .webp-file { color: var(--nmlh-file-webp); }

/* 库文件和可执行文件 */
.file-tree .so-file { color: var(--nmlh-file-so); }
.file-tree .jar-file { color: var(--nmlh-file-jar); }
.file-tree .aar-file { color: var(--nmlh-file-aar); }

.file-tree .apk-file {
    color: var(--nmlh-file-apk);
    font-weight: var(--nmlh-font-weight-bold);
}

/* 文档和文本文件 */
.file-tree .markdown-file { color: var(--nmlh-file-markdown); }
.file-tree .text-file { color: var(--nmlh-file-text); }
.file-tree .pdf-file { color: var(--nmlh-file-pdf); }

/* 压缩文件 */
.file-tree .zip-file,
.file-tree .archive-file {
    color: var(--nmlh-file-archive);
}

/* 证书和密钥文件 */
.file-tree .cert-file::before {
    content: "🔒 ";
    font-size: 0.8em;
    margin-right: 2px;
}

.file-tree .key-file::before {
    content: "🔑 ";
    font-size: 0.8em;
    margin-right: 2px;
}

/* ========================================
   特殊Android文件图标样式
   ======================================== */
.file-tree .android-manifest-file {
    color: var(--nmlh-file-manifest) !important;
    font-size: 1.1em;
    text-shadow: 0 0 8px rgba(61, 220, 132, 0.4);
    animation: androidPulse 2.5s ease-in-out infinite;
}

.file-tree .dex-file {
    color: var(--nmlh-file-dex) !important;
    font-size: 1.1em;
    text-shadow: 0 0 8px rgba(255, 107, 53, 0.4);
    animation: dexGlow 2.5s ease-in-out infinite;
}

.file-tree .arsc-file {
    color: var(--nmlh-file-arsc) !important;
    font-size: 1.1em;
    text-shadow: 0 0 8px rgba(33, 150, 243, 0.4);
    animation: arscShimmer 3s ease-in-out infinite;
}

/* 特殊文件动画效果 */
@keyframes androidPulse {
    0%, 100% {
        transform: scale(1);
        filter: brightness(1);
    }
    50% {
        transform: scale(1.05);
        filter: brightness(1.2);
    }
}

@keyframes dexGlow {
    0%, 100% {
        text-shadow: 0 0 8px rgba(255, 107, 53, 0.4);
    }
    50% {
        text-shadow: 0 0 15px rgba(255, 107, 53, 0.8);
    }
}

@keyframes arscShimmer {
    0%, 100% {
        text-shadow: 0 0 8px rgba(33, 150, 243, 0.4);
    }
    50% {
        text-shadow: 0 0 12px rgba(33, 150, 243, 0.7);
    }
}

/* 特殊文件悬停效果 */
.file-tree .file:hover .android-manifest-file {
    color: var(--nmlh-green-700) !important;
    transform: scale(1.15);
    text-shadow: 0 0 15px rgba(61, 220, 132, 0.8);
}

.file-tree .file:hover .dex-file {
    color: var(--nmlh-red-700) !important;
    transform: scale(1.15);
    text-shadow: 0 0 15px rgba(255, 107, 53, 0.8);
}

.file-tree .file:hover .arsc-file {
    color: var(--nmlh-primary) !important;
    transform: scale(1.15);
    text-shadow: 0 0 15px rgba(33, 150, 243, 0.8);
}

/* 特殊文件标签样式 - 已移除标签，仅保留特殊文件的样式标记 */

/* 特殊文件背景高亮 */
.file-tree .file:has(.android-manifest-file) {
    background: linear-gradient(90deg,
        rgba(61, 220, 132, 0.07) 0%,
        transparent 100%);
    border-left: 3px solid rgba(61, 220, 132, 0.4);
    padding-left: 8px;
    margin-left: -8px;
    border-radius: 0 var(--nmlh-radius-sm) var(--nmlh-radius-sm) 0;
}

.file-tree .file:has(.dex-file) {
    background: linear-gradient(90deg,
        rgba(255, 107, 53, 0.05) 0%,
        transparent 100%);
    border-left: 3px solid rgba(255, 107, 53, 0.3);
    padding-left: 8px;
    margin-left: -8px;
    border-radius: 0 var(--nmlh-radius-sm) var(--nmlh-radius-sm) 0;
}

.file-tree .file:has(.arsc-file) {
    background: linear-gradient(90deg,
        rgba(33, 150, 243, 0.05) 0%,
        transparent 100%);
    border-left: 3px solid rgba(33, 150, 243, 0.3);
    padding-left: 8px;
    margin-left: -8px;
    border-radius: 0 var(--nmlh-radius-sm) var(--nmlh-radius-sm) 0;
}

/* 文件计数样式 */
.file-tree .file-count {
    color: var(--nmlh-text-on-dark-secondary);
    font-size: var(--nmlh-font-size-xs);
    margin-left: 8px;
    background: rgba(var(--rgb-primary), 0.1);
    padding: 1px 6px;
    border-radius: var(--nmlh-radius-sm);
}

/* ========================================
   加载动画适配
   ======================================== */
.loading {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background: rgba(10, 25, 47, 0.92) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 9999 !important;
    backdrop-filter: blur(6px) !important;
}

.hidden {
    display: none !important;
}

/* 进度条美化 */
.progress {
    height: 8px !important;
    background-color: rgba(226, 232, 240, 0.3) !important;
    border-radius: 4px !important;
    overflow: hidden;
}

.progress-bar {
    background: linear-gradient(90deg, var(--nmlh-primary), var(--nmlh-bg-dark)) !important;
    border-radius: 4px !important;
    position: relative;
    overflow: hidden;
}

.progress-bar::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    animation: shimmer 2s infinite;
}

@keyframes shimmer {
    100% {
        left: 100%;
    }
}

/* 针对特定按钮的美化 */
.btn-primary {
    background: linear-gradient(135deg, var(--nmlh-primary), var(--nmlh-bg-dark)) !important;
    border: none !important;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.08) !important;
}

.btn-primary:hover {
    background: linear-gradient(135deg, var(--nmlh-primary-hover), var(--nmlh-secondary-hover)) !important;
    transform: translateY(-1px);
    box-shadow: 0 7px 14px rgba(0, 0, 0, 0.1), 0 3px 6px rgba(0, 0, 0, 0.08) !important;
}

/* ========================================
   移动端响应优化
   ======================================== */
@media (max-width: 768px) {
    /* 表格响应式调整 */
    .table th,
    .table td,
    .permissions-table th,
    .permissions-table td {
        padding: var(--nmlh-spacing-xs) var(--nmlh-spacing-sm) !important;
        font-size: var(--nmlh-font-size-sm) !important;
    }

    /* 应用信息布局调整 */
    .app-info-grid {
        grid-template-columns: 1fr !important;
    }

    .detail-row {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 4px;
    }

    .detail-label {
        min-width: auto !important;
        width: auto !important;
        color: var(--nmlh-primary);
        border-left: 2px solid var(--nmlh-primary);
        padding-left: 6px;
        margin-bottom: 3px;
        margin-right: 0;
    }

    /* 文件树调整 */
    .file-tree .nested {
        padding-left: 10px;
    }
}

@media (max-width: 576px) {
    /* 小屏幕特别优化 */
    .app-icon {
        width: 64px;
        height: 64px;
        display: block;
        margin: 0 auto 12px;
    }

    .detail-value {
        font-size: var(--nmlh-font-size-sm);
    }

    .card {
        border-radius: 15px !important;
    }

    /* 徽章样式小屏幕优化 */
    .permission-badge {
        width: 100%;
        display: block;
        margin-bottom: 5px;
    }
}

/* ========================================
   可复制内容样式
   ======================================== */
.copyable {
    cursor: pointer;
    position: relative;
    transition: all 0.2s ease;
    padding-right: 28px !important;
}

.copyable:hover {
    background-color: rgba(var(--rgb-primary), 0.15);
}

.copy-icon {
    position: absolute;
    right: 8px;
    color: var(--nmlh-gray-500);
    font-size: 14px;
    opacity: 0.7;
    transition: all 0.2s ease;
}

.copyable:hover .copy-icon {
    color: var(--nmlh-status-success-text);
    opacity: 1;
    transform: scale(1.1);
}

/* 复制成功提示动画 */
@keyframes copiedAnimation {
    0% { opacity: 0; transform: translateY(10px); }
    20% { opacity: 1; transform: translateY(0); }
    80% { opacity: 1; transform: translateY(0); }
    100% { opacity: 0; transform: translateY(-10px); }
}

.copied-tooltip {
    position: fixed;
    background: rgba(46, 178, 125, 0.9);
    color: var(--nmlh-text-on-success);
    padding: var(--nmlh-spacing-sm) var(--nmlh-spacing-md);
    border-radius: 4px;
    z-index: 1000;
    font-size: 14px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    animation: copiedAnimation 1.5s ease forwards;
    pointer-events: none;
}

/* ========================================
   页面特定组件样式 - 按钮组件
   ======================================== */

/* 自定义按钮组件 - 用于分析页面的功能按钮 */
.btn-component {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 16px;
  border-radius: 10px;
  background: linear-gradient(145deg, #ffffff, #f0f0f0);
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1),
              -5px -5px 10px rgba(255, 255, 255, 0.8);
  transition: all 0.3s ease;
  border: none;
  color: #444;
  font-weight: 500;
  text-decoration: none;
  margin-bottom: 10px;
  overflow: hidden;
  position: relative;
}

.btn-component:hover {
  transform: translateY(-3px);
  box-shadow: 6px 6px 12px rgba(0, 0, 0, 0.15),
              -6px -6px 12px rgba(255, 255, 255, 0.9);
  color: #0056b3;
  text-decoration: none;
}

.btn-component:active {
  transform: translateY(1px);
  box-shadow: inset 2px 2px 5px rgba(0, 0, 0, 0.1),
              inset -2px -2px 5px rgba(255, 255, 255, 0.8);
}

.btn-component .icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(145deg, #f0f0f0, #ffffff);
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1),
              -2px -2px 5px rgba(255, 255, 255, 0.8);
  margin-right: 12px;
  transition: all 0.3s ease;
  color: #0056b3;
}

.btn-component:hover .icon {
  transform: rotate(10deg) scale(1.1);
  color: #0056b3;
}

.btn-component .text {
  font-size: 14px;
  font-weight: 500;
  transition: all 0.3s ease;
}

.btn-component:hover .text {
  transform: translateX(3px);
}

.btn-component:before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
  transition: 0.5s;
}

.btn-component:hover:before {
  left: 100%;
}

@media (max-width: 768px) {
  .btn-component {
    flex-direction: column;
    padding: 10px;
  }

  .btn-component .icon {
    margin-right: 0;
    margin-bottom: 8px;
  }
}

/* ========================================
   侧边栏切换按钮样式优化
   解决方案：导航栏是红色背景，按钮需要白色才能可见
   ======================================== */
[data-widget="pushmenu"] {
    color: #FFFFFF !important;  /* 白色文字/图标 - 在红色导航栏上可见 */
    background-color: rgba(255, 255, 255, 0.1) !important;  /* 半透明白色背景 */
    border: 1.5px solid rgba(255, 255, 255, 0.6) !important;  /* 半透明白色边框 */
    border-radius: 8px !important;  /* 圆角 */
    padding: 8px 12px !important;  /* 内边距 */
    margin-left: 1rem !important;  /* 左侧间距 */
    margin-right: 1.25rem !important;  /* 修复：增加与Logo的间距（20px） */
    transition: all 0.3s ease !important;
    backdrop-filter: blur(4px) !important;  /* 毛玻璃效果 */
}

[data-widget="pushmenu"]:hover {
    color: #D32F2F !important;  /* 悬浮时改为红色文字 */
    background-color: #FFFFFF !important;  /* 白色背景 */
    border-color: #FFFFFF !important;  /* 白色边框 */
    transform: translateY(-2px) !important;  /* 上浮效果 */
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important;  /* 深色阴影 */
}

[data-widget="pushmenu"]:active {
    transform: translateY(-1px) !important;  /* 按下时轻微下降 */
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15) !important;
}

/* 按钮图标样式 */
[data-widget="pushmenu"] i {
    font-size: 16px;
    transition: transform 0.3s ease;
}

[data-widget="pushmenu"]:hover i {
    transform: scale(1.1);
}

/* ========================================
   Card 标题样式统一为南明红主题
   ======================================== */
/* 修复所有标题颜色，统一使用南明红 */
.content-wrapper h2,
.content-wrapper h3,
.content-wrapper h4,
.content-wrapper h5,
.card-header,
.card-title,
.description-header {
    color: var(--nmlh-primary) !important;  /* 南明红 #D32F2F */
}

/* 修复：card-body内作为标题使用的p标签（如"组件导出状态统计"等） */
.card-body > p:first-child,
.card-body > p[style*="font-size: 16px"],
.card-body > p:only-child {
    color: var(--nmlh-primary) !important;  /* 南明红 */
    font-weight: 600 !important;  /* 加粗，使其看起来像标题 */
    font-size: 1rem !important;  /* 统一字号 */
    margin-bottom: 1rem !important;
}

/* 确保已有red-text-primary类的标题保持正确 */
.red-text-primary {
    color: var(--nmlh-primary) !important;
}

/* 次级标题可以使用稍浅的颜色 */
.content-wrapper h6,
.card-subtitle {
    color: var(--nmlh-text-secondary) !important;
}

/* ========================================
   DataTable 导出按钮样式优化
   符合南明离火品牌红色主题
   ======================================== */

/* DataTable按钮组基础样式 */
.dt-buttons {
    display: inline-flex !important;
    gap: 0 !important; /* 按钮紧密连接，形成按钮组 */
    margin-bottom: 1rem !important;
}

/* 覆盖Bootstrap灰色按钮，使用品牌红色渐变 */
.dt-buttons .btn-secondary,
.dt-buttons button {
    background: linear-gradient(135deg, var(--nmlh-primary) 0%, var(--nmlh-primary-dark) 100%) !important;
    color: #FFFFFF !important;
    border: 1px solid var(--nmlh-primary) !important;
    padding: 6px 12px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 2px 4px rgba(211, 47, 47, 0.2) !important;
}

/* 第一个按钮 - 左侧圆角 */
.dt-buttons button:first-child {
    border-radius: 6px 0 0 6px !important;
}

/* 最后一个按钮 - 右侧圆角 */
.dt-buttons button:last-child {
    border-radius: 0 6px 6px 0 !important;
}

/* 单个按钮时的圆角 */
.dt-buttons button:only-child {
    border-radius: 6px !important;
}

/* 悬浮效果 - 现代化交互 */
.dt-buttons button:hover {
    background: linear-gradient(135deg, var(--nmlh-primary-dark) 0%, var(--nmlh-red-800) 100%) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 8px rgba(211, 47, 47, 0.35) !important;
    border-color: var(--nmlh-primary-dark) !important;
}

/* 激活/点击效果 */
.dt-buttons button:active {
    transform: translateY(0) !important;
    box-shadow: 0 1px 2px rgba(211, 47, 47, 0.3) !important;
}

/* 按钮图标样式 */
.dt-buttons button i {
    color: #FFFFFF !important;
    font-size: 14px !important;
}

/* 禁用状态 */
.dt-buttons button:disabled,
.dt-buttons button.disabled {
    background: var(--nmlh-gray-400) !important;
    border-color: var(--nmlh-gray-400) !important;
    color: var(--nmlh-gray-600) !important;
    cursor: not-allowed !important;
    opacity: 0.6 !important;
    transform: none !important;
    box-shadow: none !important;
}

/* ========================================
   android-sidebar.css - 侧边栏样式
   ======================================== */
/* ========================================
   Android静态分析页�?- 白色侧边栏主�?
   采用sidebar.html的现代简洁设计风�?
   设计理念：Material Design + 品牌红强调色

   依赖关系:
   - 本文件依�?nmlh-design-tokens.css 的全局设计变量
   - 必须确保 nmlh-design-tokens.css 在本文件之前加载
   ======================================== */

/* 侧边栏特有变量（非重复变量） */
:root {
  --sidebar-shadow: rgba(0,0,0,0.04) 0 2px 6px; /* 特有：侧边栏专用轻柔阴影 */
}

/* 已移除的重复变量（改用全局变量�?
   --sidebar-primary �?使用 var(--nmlh-primary)
   --sidebar-primary-hover �?使用 var(--nmlh-primary-dark)
   --sidebar-primary-light �?使用 var(--nmlh-primary-light)
   --sidebar-bg �?使用 var(--nmlh-bg-card)
   --sidebar-border �?使用 var(--nmlh-border-light-dark)
   --sidebar-text-main �?使用 var(--nmlh-text-light-primary)
   --sidebar-text-secondary �?使用 var(--nmlh-text-light-secondary)
   --sidebar-text-muted �?使用 var(--nmlh-text-light-muted)
   --sidebar-radius �?使用 var(--nmlh-radius-md)
*/

/* ========================================
   1. 侧边栏容器基础样式
   ======================================== */
.main-sidebar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 260px !important; /* 比原来的250px稍宽 */
    height: 100vh !important;
    z-index: 1000 !important;
    background: var(--nmlh-bg-card) !important; /* 纯白背景 */
    border-right: 1px solid var(--nmlh-border-light-dark) !important; /* 浅灰边框 */
    box-shadow: var(--sidebar-shadow) !important; /* 轻柔阴影 */
    transition: all 0.3s ease !important;
    overflow: hidden !important;
}

/* 品牌Logo区域 */
.main-sidebar .brand-link {
    background: var(--nmlh-bg-card) !important;
    border-bottom: 1px solid var(--nmlh-border-light-dark) !important;
    padding: 1rem 1.25rem !important;
    display: flex !important;
    align-items: center !important;
    min-height: 64px !important; /* 与导航栏高度一�?*/
}

.main-sidebar .brand-text {
    color: var(--nmlh-primary) !important; /* 品牌红色 */
    font-weight: 700 !important;
    font-size: 1.25rem !important;
    margin-left: 0.75rem !important;
}

.main-sidebar .brand-image {
    max-height: 40px !important;
    width: auto !important;
}

/* ========================================
   2. 侧边栏内容区�?
   ======================================== */
.sidebar {
    background: transparent !important;
    padding: 1.25rem 0 !important; /* 上下padding */
    height: calc(100vh - 64px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
}

/* ========================================
   3. 用户面板样式（仪表盘�?
   ======================================== */
.user-panel {
    background: var(--nmlh-primary-light) !important; /* 浅红背景 */
    border-radius: var(--nmlh-radius-md) !important;
    margin: 0 1.25rem 1.5rem !important;
    padding: 1rem !important;
    border: none !important;
    box-shadow: none !important;
}

.user-panel .info a {
    color: var(--nmlh-primary) !important; /* 品牌红文�?*/
    font-weight: 600 !important;
    text-decoration: none !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    font-size: 0.95rem !important;
}

.user-panel .info a:hover {
    color: var(--nmlh-primary-dark) !important;
}

/* ========================================
   4. 导航菜单基础样式
   ======================================== */
.nav-sidebar {
    padding: 0 1rem !important; /* 左右padding */
}

.nav-sidebar .nav-item {
    margin-bottom: 4px !important; /* 减小间距 */
}

/* ========================================
   5. 主导航链接样式（一级菜单）
   ======================================== */
.nav-sidebar > .nav-item > .nav-link {
    display: flex !important; /* 使用flex布局 */
    align-items: center !important; /* 垂直居中 */
    gap: 0.75rem !important; /* 使用gap代替margin-right */
    color: var(--nmlh-text-light-primary) !important; /* 深色文字 */
    border-radius: var(--nmlh-radius-md) !important;
    padding: 0.75rem 1rem !important;
    margin: 0 !important;
    transition: all 0.3s ease !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important; /* �?00加粗�?00，增强视觉层�?*/
    letter-spacing: 0.02em !important; /* 增加字间距，提升可读�?*/
    border: none !important;
    background: transparent !important;
}

/* 重置文字元素margin，修复与图标的垂直对齐（覆盖Bootstrap默认样式�?*/
.nav-sidebar .nav-link p {
    margin: 0 !important;
}

/* 一级菜单悬浮�?*/
.nav-sidebar > .nav-item > .nav-link:hover {
    background: var(--nmlh-primary-light) !important; /* 浅红背景 */
    color: var(--nmlh-primary-dark) !important;
    transform: translateX(2px) !important;
}

/* 一级菜单激活�?*/
.nav-sidebar > .nav-item > .nav-link.active {
    background: var(--nmlh-primary) !important; /* 红色背景 */
    color: #FFFFFF !important; /* 白色文字 */
    font-weight: 600 !important;
    box-shadow: 0 2px 8px rgba(211, 47, 47, 0.3) !important;
}

/* ========================================
   6. 导航图标样式
   ======================================== */
.nav-sidebar .nav-link i.nav-icon {
    color: var(--nmlh-primary) !important; /* 品牌红色，增强识别度 */
    font-size: 1.125rem !important; /* 18px，稍微放�?*/
    width: 1.5rem !important;
    text-align: center !important;
    margin-right: 0 !important; /* 移除margin-right，使用gap控制间距 */
    transition: all 0.3s ease !important; /* 改为all以支持多属性动�?*/
    font-weight: 600 !important; /* 增加图标字重 */
    flex-shrink: 0 !important; /* 防止图标被压�?*/
}

/* 悬浮时图标颜�?*/
.nav-sidebar .nav-link:hover i.nav-icon {
    color: var(--nmlh-primary-dark) !important; /* 深红色强�?*/
    transform: scale(1.1) !important; /* 轻微放大效果 */
}

/* 激活时图标颜色 */
.nav-sidebar .nav-link.active i.nav-icon {
    color: #FFFFFF !important;
}

/* ========================================
   7. 树形菜单展开箭头
   ======================================== */
.nav-sidebar .nav-link .right {
    transition: transform 0.3s ease !important;
    color: var(--nmlh-text-light-muted) !important;
    font-size: 0.875rem !important;
}

.nav-sidebar .nav-link:hover .right {
    color: var(--nmlh-primary) !important;
}

.nav-sidebar .nav-link.active .right {
    color: #FFFFFF !important;
}

.nav-sidebar .nav-item.menu-open > .nav-link .right {
    transform: rotate(-90deg) !important;
}

/* ========================================
   8. 子菜单样式（二级、三级菜单）
   ======================================== */
.nav-sidebar .nav-treeview {
    display: none !important;
    background: #FAFAFA !important; /* 极浅灰背景，区分层级 */
    border-radius: 8px !important; /* 稍小的圆�?*/
    margin: 0.5rem 0 0.75rem 0 !important;
    padding: 0.5rem 0 !important;
    border: none !important;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05) !important; /* 轻微内阴�?*/
}

/* 当父级菜单项有menu-open类时显示子菜�?*/
.nav-sidebar .nav-item.menu-open > .nav-treeview {
    display: block !important;
}

/* 子菜单链接样�?*/
.nav-sidebar .nav-treeview .nav-link {
    display: flex !important; /* 使用flex布局 */
    align-items: center !important; /* 垂直居中 */
    gap: 0.625rem !important; /* 使用gap代替margin-right */
    padding: 0.625rem 0.875rem 0.625rem 2.75rem !important; /* 增加左边�?*/
    font-size: 0.875rem !important;
    font-weight: 550 !important;  /* �?00提升�?50，建立层级感 */
    letter-spacing: 0.01em !important; /* 轻微增加字间�?*/
    color: var(--nmlh-text-light-secondary) !important;
    background: transparent !important;
    border: none !important;
    border-radius: 8px !important;
}

/* 子菜单悬浮�?*/
.nav-sidebar .nav-treeview .nav-link:hover {
    background: var(--nmlh-primary-light) !important;
    color: var(--nmlh-primary) !important;
    transform: translateX(4px) !important;
}

/* 子菜单激活�?*/
.nav-sidebar .nav-treeview .nav-link.active {
    background: #FFE5E5 !important; /* 更浅的红�?*/
    color: var(--nmlh-primary-dark) !important;
    font-weight: 600 !important;
    border-left: 3px solid var(--nmlh-primary) !important;
    padding-left: 2.625rem !important; /* 调整padding补偿边框 */
}

/* 子菜单图�?*/
.nav-sidebar .nav-treeview .nav-icon {
    font-size: 0.875rem !important;
    color: var(--nmlh-primary) !important; /* 子菜单图标也使用品牌�?*/
    opacity: 0.75 !important; /* 通过透明度区分层�?*/
    transition: all 0.3s ease !important;
}

.nav-sidebar .nav-treeview .nav-link:hover .nav-icon,
.nav-sidebar .nav-treeview .nav-link.active .nav-icon {
    color: var(--nmlh-primary) !important;
    opacity: 1 !important; /* 悬浮和激活时完全不透明 */
    transform: scale(1.05) !important; /* 轻微放大 */
}

/* ========================================
   9. 三级嵌套菜单（如果存在）
   ======================================== */
.nav-sidebar .nav-treeview .nav-treeview {
    background: #F5F5F5 !important; /* 更深的背景区分层�?*/
    margin-left: 1rem !important;
}

.nav-sidebar .nav-treeview .nav-treeview .nav-link {
    padding-left: 3.5rem !important;
    font-size: 0.8125rem !important;
    font-weight: 500 !important;  /* 修复：统一字体粗细�?00 */
}

/* ========================================
   10. 主内容区域适配
   ======================================== */
.content-wrapper {
    margin-left: 260px !important; /* 与侧边栏宽度一�?*/
    transition: margin-left 0.3s ease !important;
    background: #FAFAFA !important; /* 极浅灰背�?*/
}

/* ========================================
   11. 侧边栏收起状�?
   ======================================== */
.sidebar-collapse .main-sidebar {
    width: 4.5rem !important;
}

.sidebar-collapse .content-wrapper {
    margin-left: 4.5rem !important;
}

.sidebar-collapse .nav-sidebar .nav-link {
    text-align: center !important;
    padding: 0.75rem 0.5rem !important;
}

.sidebar-collapse .nav-sidebar .nav-link p {
    display: none !important;
}

.sidebar-collapse .nav-sidebar .nav-link .right {
    display: none !important;
}

.sidebar-collapse .nav-sidebar .nav-treeview {
    display: none !important;
}

.sidebar-collapse .user-panel {
    text-align: center !important;
}

.sidebar-collapse .user-panel .info {
    display: none !important;
}

.sidebar-collapse .brand-text {
    display: none !important;
}

/* ========================================
   12. 滚动条样�?
   ======================================== */
.sidebar::-webkit-scrollbar {
    width: 6px !important;
}

.sidebar::-webkit-scrollbar-track {
    background: #F5F5F5 !important; /* 浅灰轨道 */
}

.sidebar::-webkit-scrollbar-thumb {
    background: #CCCCCC !important; /* 中灰滑块 */
    border-radius: 3px !important;
}

.sidebar::-webkit-scrollbar-thumb:hover {
    background: var(--nmlh-primary) !important; /* 红色悬浮�?*/
}

/* ========================================
   13. 响应式设�?
   ======================================== */
@media (max-width: 991px) {
    .main-sidebar {
        transform: translateX(-100%) !important;
    }

    .sidebar-open .main-sidebar {
        transform: translateX(0) !important;
        box-shadow: 4px 0 16px rgba(0, 0, 0, 0.15) !important;
    }

    .content-wrapper {
        margin-left: 0 !important;
    }
}

@media (max-width: 768px) {
    .main-sidebar {
        width: 240px !important; /* 移动端稍�?*/
    }
}

/* ========================================
   14. 辅助样式
   ======================================== */

/* 菜单分隔线（可选） */
.nav-sidebar .nav-header {
    padding: 0.5rem 1.25rem !important;
    color: var(--nmlh-text-light-muted) !important;
    font-size: 0.75rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin-top: 1rem !important;
    font-weight: 600 !important;
}

/* 徽章样式（如果有通知徽章�?*/
.nav-sidebar .badge {
    background: var(--nmlh-primary) !important;
    color: #FFFFFF !important;
    font-size: 0.7rem !important;
    padding: 0.25rem 0.5rem !important;
    border-radius: 12px !important;
}

/* ========================================
   red_theme_components.css - 红色主题组件
   ======================================== */
/* ========================================
   red_theme_components.css
   基于 red_theme_demo.html 的组件库
   专为Android静态分析结果页面设计

   设计理念：
   - Material Design + 品牌红强调色
   - 大圆角(12-18px)现代化设计
   - 轻柔阴影(0.04-0.08透明度)
   - 统一的Design Tokens

   依赖关系:
   - 本文件依赖 nmlh-design-tokens.css 的全局设计变量
   - 必须确保 nmlh-design-tokens.css 在本文件之前加载

   创建日期：2025-11-08
   参考文件：D:/source_code/NMLH/red_theme_demo.html
   ======================================== */

/* ========================================
   1. Design Tokens（设计变量 - 引用全局变量）
   ======================================== */
:root {
  /* 主色系 - 引用全局变量 */
  --red-primary: var(--nmlh-primary);
  --red-primary-hover: var(--nmlh-primary-dark);
  --red-primary-100: var(--nmlh-primary-light);
  --red-accent: var(--nmlh-red-300);

  /* 语义色 - 引用全局变量 */
  --red-success: var(--nmlh-success);
  --red-warning: var(--nmlh-warning);
  --red-error: var(--nmlh-danger);
  --red-info: var(--nmlh-info);

  /* 背景色 - 引用全局变量 */
  --red-bg-page: var(--nmlh-bg-light);
  --red-surface: var(--nmlh-bg-card);
  --red-border: var(--nmlh-border-light-dark);

  /* 文字色 - 引用全局变量 */
  --red-text-main: var(--nmlh-text-light-primary);
  --red-text-muted: var(--nmlh-text-light-secondary);
  --red-text-muted-2: var(--nmlh-text-light-muted);

  /* 圆角 - 引用全局变量 */
  --red-radius-lg: var(--nmlh-radius-lg);
  --red-radius-md: var(--nmlh-radius-md);
  --red-radius-sm: var(--nmlh-radius-sm);

  /* 阴影 - 引用全局变量 */
  --red-shadow-light: var(--nmlh-shadow-sm);
  --red-shadow-mid: var(--nmlh-shadow-md);

  /* 过渡 - 引用全局变量 */
  --red-transition-fast: var(--nmlh-transition-fast);
  --red-transition-normal: var(--nmlh-transition-normal);
}

/* ========================================
   2. 按钮系统（Buttons）
   ======================================== */

/* 基础按钮 */
.red-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 10px 16px !important;
  border-radius: var(--red-radius-md) !important;
  border: 0 !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: var(--red-transition-fast) !important;
  background: #efefef !important;
  color: var(--red-text-main) !important;
  box-shadow: none !important;
  user-select: none !important;
  text-decoration: none !important;
  line-height: 1.4 !important;
}

/* 尺寸变体 */
.red-btn-lg {
  padding: 14px 20px !important;
  border-radius: 14px !important;
  font-size: 1.05rem !important;
}

.red-btn-sm {
  padding: 6px 10px !important;
  border-radius: 10px !important;
  font-size: 0.92rem !important;
}

/* 主按钮 */
.red-btn-primary {
  background: var(--red-primary) !important;
  color: #FFFFFF !important;
}

.red-btn-primary:hover {
  background: var(--red-primary-hover) !important;
  transform: translateY(-1px) !important;
  box-shadow: var(--red-shadow-mid) !important;
  color: #FFFFFF !important;
}

/* 次按钮 */
.red-btn-secondary {
  background: var(--red-accent) !important;
  color: #FFFFFF !important;
}

.red-btn-secondary:hover {
  background: #EF5350 !important;
  transform: translateY(-1px) !important;
}

/* 边框按钮 */
.red-btn-outline {
  background: transparent !important;
  border: 1px solid var(--red-accent) !important;
  color: var(--red-primary) !important;
}

.red-btn-outline:hover {
  background: var(--red-primary-100) !important;
  border-color: var(--red-primary) !important;
  color: var(--red-primary-hover) !important;
}

/* 幽灵按钮 */
.red-btn-ghost {
  background: transparent !important;
  color: var(--red-primary) !important;
  border: 0 !important;
}

.red-btn-ghost:hover {
  background: var(--red-primary-100) !important;
}

/* 危险按钮 */
.red-btn-danger {
  background: var(--red-error) !important;
  color: #FFFFFF !important;
}

.red-btn-danger:hover {
  background: #B71C1C !important;
  transform: translateY(-1px) !important;
}

/* 成功按钮 */
.red-btn-success {
  background: var(--red-success) !important;
  color: #FFFFFF !important;
}

.red-btn-success:hover {
  background: #388E3C !important;
}

/* 警告按钮 */
.red-btn-warning {
  background: var(--red-warning) !important;
  color: #FFFFFF !important;
}

.red-btn-warning:hover {
  background: #F57C00 !important;
  transform: translateY(-1px) !important;
}

/* 信息按钮 */
.red-btn-info {
  background: var(--red-info) !important;
  color: #FFFFFF !important;
}

.red-btn-info:hover {
  background: #1976D2 !important;
  transform: translateY(-1px) !important;
}

/* 链接按钮 */
.red-btn-link {
  background: transparent !important;
  color: var(--red-primary) !important;
  padding: 6px 8px !important;
  font-weight: 500 !important;
}

/* Pill形状 */
.red-btn-pill {
  border-radius: 999px !important;
  padding: 8px 18px !important;
}

/* 圆形按钮 */
.red-btn-circle {
  border-radius: 999px !important;
  width: 40px !important;
  height: 40px !important;
  justify-content: center !important;
  padding: 0 !important;
}

/* 禁用状态 */
.red-btn-disabled,
.red-btn:disabled {
  opacity: 0.45 !important;
  pointer-events: none !important;
}

/* 加载状态 */
.red-btn.loading {
  position: relative !important;
  pointer-events: none !important;
  opacity: 0.9 !important;
}

.red-btn.loading::after {
  content: '' !important;
  position: absolute !important;
  right: 12px !important;
  width: 14px !important;
  height: 14px !important;
  border-radius: 50% !important;
  border: 2px solid rgba(255,255,255,0.4) !important;
  border-top-color: rgba(255,255,255,0.95) !important;
  animation: red-spin 0.9s linear infinite !important;
}

@keyframes red-spin {
  to { transform: rotate(360deg); }
}

/* ========================================
   3. 标签/徽章系统（Tags / Badges）
   ======================================== */

/* 圆形徽章 */
.red-badge {
  display: inline-block !important;
  padding: 6px 12px !important;
  border-radius: 999px !important;
  background: var(--red-primary) !important;
  color: #FFFFFF !important;
  font-weight: 600 !important;
  font-size: 0.875rem !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
}

/* 徽章颜色变体 */
.red-badge-success {
  background: var(--red-success) !important;
}

.red-badge-warning {
  background: var(--red-warning) !important;
}

.red-badge-error {
  background: var(--red-error) !important;
}

.red-badge-info {
  background: var(--red-info) !important;
}

/* 方形标签 */
.red-tag {
  display: inline-block !important;
  padding: 6px 10px !important;
  border-radius: var(--red-radius-sm) !important;
  background: var(--red-primary-100) !important;
  color: var(--red-primary) !important;
  font-weight: 600 !important;
  font-size: 0.875rem !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
}

/* 标签颜色变体 */
.red-tag-success {
  background: #E8F5E9 !important;
  color: var(--red-success) !important;
}

.red-tag-warning {
  background: #FFF3E0 !important;
  color: var(--red-warning) !important;
}

.red-tag-info {
  background: #E3F2FD !important;
  color: var(--red-info) !important;
}

/* 权限徽章样式（Android分析页专用） */
.permission-badge {
  display: inline-block !important;
  padding: 6px 12px !important;
  border-radius: var(--red-radius-md) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  text-align: center !important;
  min-width: 80px !important;
  box-shadow: var(--red-shadow-light) !important;
  transition: all 0.2s ease !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  color: #FFFFFF !important;
}

.permission-dangerous {
  background: var(--red-error) !important;
}

.permission-normal {
  background: var(--red-info) !important;
}

.permission-system {
  background: #424242 !important; /* 深灰色 */
}

.permission-signature {
  background: var(--red-success) !important;
}

.permission-unknown {
  background: var(--red-warning) !important;
}

.permission-badge:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15) !important;
  filter: brightness(1.1) !important;
}

/* ========================================
   4. 卡片/容器系统（Cards / Containers）
   ======================================== */

/* 主容器 */
.red-container {
  max-width: 1200px !important;
  margin: 28px auto !important;
  padding: 24px !important;
  background: var(--red-surface) !important;
  border-radius: var(--red-radius-lg) !important;
  box-shadow: var(--red-shadow-light) !important;
}

/* 卡片 */
.red-card {
  background: var(--red-surface) !important;
  border-radius: var(--red-radius-lg) !important;
  padding: 24px !important;
  box-shadow: var(--red-shadow-light) !important;
  margin-bottom: 20px !important;
  border: 1px solid var(--red-border) !important;
  transition: var(--red-transition-normal) !important;
}

.red-card:hover {
  transform: translateY(-2px) !important;
  box-shadow: var(--red-shadow-mid) !important;
}

/* 卡片头部 */
.red-card-header {
  padding: 16px 24px !important;
  background: #FBFBFB !important;
  border-bottom: 1px solid var(--red-border) !important;
  border-radius: var(--red-radius-md) var(--red-radius-md) 0 0 !important;
  font-weight: 600 !important;
  color: var(--red-text-main) !important;
}

/* 卡片主体 */
.red-card-body {
  padding: 20px 24px !important;
}

/* 卡片底部 */
.red-card-footer {
  padding: 16px 24px !important;
  background: #FBFBFB !important;
  border-top: 1px solid var(--red-border) !important;
  border-radius: 0 0 var(--red-radius-md) var(--red-radius-md) !important;
}

/* 区块 */
.red-section {
  margin-bottom: 26px !important;
}

/* ========================================
   5. 表格系统（Tables）- 样式二：浅红表头 + 条纹
   基于 table.html 样式二设计规范
   ======================================== */

/* 基础表格容器 */
.red-table,
.table,
.table-bordered,
.table-hover,
.table-striped {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  border-radius: var(--red-radius-md) !important;
  overflow: hidden !important;
  background: var(--red-surface) !important;
  box-shadow: var(--red-shadow-light) !important;
  font-size: 15px !important;
}

/* 表头样式 - 浅红背景 + 深红文字 */
.red-table thead th,
.table thead th {
  background: var(--red-primary-100) !important; /* #FFEBEE 浅红背景 */
  color: var(--red-primary-hover) !important;    /* #B71C1C 深红文字 */
  text-align: left !important;
  padding: 12px 16px !important;
  font-weight: 800 !important;                   /* 加粗至800 */
  font-size: 0.875rem !important;
  letter-spacing: 0.3px !important;
  border-bottom: 2px solid #FFCDD2 !important; /* 稍深的浅红边框 */
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* 表头悬浮效果 - 深红渐变（方案一：保持品牌基因） */
.red-table thead th:hover,
.table thead th:hover,
table.dataTable thead th:hover {
  background: linear-gradient(135deg, #D32F2F 0%, #B71C1C 100%) !important;
  color: #FFFFFF !important;
  box-shadow: 0 4px 12px rgba(211, 47, 47, 0.3) !important;
  transform: translateY(-1px) !important;
  cursor: pointer !important;
}

/* 增强排序图标的可见性（悬浮时） */
.table thead th:hover .sorting_asc,
.table thead th:hover .sorting_desc,
.table thead th:hover .sorting,
table.dataTable thead th:hover .sorting_asc,
table.dataTable thead th:hover .sorting_desc,
table.dataTable thead th:hover .sorting {
  color: #FFFFFF !important;
  opacity: 1 !important;
}

/* 单元格基础样式 */
.red-table td,
.table td {
  padding: 12px 16px !important;
  color: var(--red-text-main) !important;
  border-bottom: 1px solid #F7F7F7 !important;
  vertical-align: middle !important;
}

.red-table th,
.table th {
  vertical-align: middle !important;
}

/* 条纹表格 - 奇偶行交替 */
.red-table tbody tr:nth-child(odd),
.table tbody tr:nth-child(odd),
.table-striped tbody tr:nth-child(odd) {
  background: #FFFFFF !important; /* 奇数行白色 */
}

.red-table tbody tr:nth-child(even),
.table tbody tr:nth-child(even),
.table-striped tbody tr:nth-child(even) {
  background: #FFF5F5 !important; /* 偶数行浅红 */
}

/* 悬浮效果 - 浅红高亮 */
.red-table tbody tr:hover,
.table tbody tr:hover {
  background: var(--red-primary-100) !important; /* #FFEBEE */
  transition: background-color 0.15s ease !important;
}

.red-table tbody tr:hover td,
.table tbody tr:hover td {
  background: transparent !important;
}

/* 紧凑表格 */
.red-table.compact td,
.red-table.compact th,
.table.compact td,
.table.compact th {
  padding: 8px 12px !important;
}

/* 边框表格 */
.table-bordered td,
.table-bordered th {
  border: 1px solid #F0F0F0 !important;
}

/* ========================================
   6. 表单系统（Forms）
   ======================================== */

/* 表单行 */
.red-form-row {
  display: flex !important;
  gap: 12px !important;
  align-items: flex-start !important;
  flex-wrap: wrap !important;
  margin-bottom: 16px !important;
}

/* 字段容器 */
.red-field {
  width: 100% !important;
  margin-bottom: 12px !important;
}

/* 标签 */
.red-label {
  display: block !important;
  font-weight: 600 !important;
  margin-bottom: 6px !important;
  color: var(--red-text-main) !important;
  font-size: 0.95rem !important;
}

/* 输入框、下拉框、文本域 */
.red-input,
.red-textarea,
.red-select {
  width: 100% !important;
  padding: 12px !important;
  border-radius: 10px !important;
  border: 1px solid var(--red-border) !important;
  background: #FFFFFF !important;
  font-size: 1rem !important;
  color: var(--red-text-main) !important;
  transition: var(--red-transition-fast) !important;
  font-family: inherit !important;
}

/* 聚焦态 */
.red-input:focus,
.red-textarea:focus,
.red-select:focus {
  outline: none !important;
  box-shadow: 0 0 0 6px rgba(211,47,47,0.06) !important;
  border-color: var(--red-primary) !important;
}

/* 错误态 */
.red-input.error,
.red-textarea.error {
  border-color: var(--red-error) !important;
  box-shadow: 0 0 0 6px rgba(198,40,40,0.06) !important;
}

/* 禁用态 */
.red-input:disabled,
.red-textarea:disabled,
.red-select:disabled {
  background: #FBFBFB !important;
  opacity: 0.9 !important;
  cursor: not-allowed !important;
}

/* 文本域 */
.red-textarea {
  min-height: 110px !important;
  resize: vertical !important;
}

/* 帮助文字 */
.red-form-help {
  font-size: 13px !important;
  color: var(--red-text-muted) !important;
  margin-top: 6px !important;
}

/* 错误消息 */
.red-error-msg {
  color: var(--red-error) !important;
  font-size: 13px !important;
  margin-top: 6px !important;
}

/* ========================================
   7. 提示框/警告框（Alerts）
   ======================================== */

/* 基础提示框 */
.red-alert {
  position: relative !important;
  padding: 16px 48px 16px 20px !important; /* 右侧留出空间给关闭按钮 */
  border-radius: var(--red-radius-md) !important;
  background: var(--red-surface) !important;
  border: 1px solid var(--red-border) !important;
  box-shadow: var(--red-shadow-light) !important;
  margin-bottom: 20px !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
}

/* 信息提示 */
.red-alert-info {
  background: #E3F2FD !important;
  border-left: 4px solid var(--red-info) !important;
  color: #1565C0 !important;
}

/* 成功提示 */
.red-alert-success {
  background: #E8F5E9 !important;
  border-left: 4px solid var(--red-success) !important;
  color: #2E7D32 !important;
}

/* 警告提示 */
.red-alert-warning {
  background: #FFF3E0 !important;
  border-left: 4px solid var(--red-warning) !important;
  color: #EF6C00 !important;
}

/* 错误提示 */
.red-alert-error {
  background: #FFEBEE !important;
  border-left: 4px solid var(--red-error) !important;
  color: #C62828 !important;
}

/* 主色调提示 */
.red-alert-primary {
  background: var(--red-primary-100) !important;
  border-left: 4px solid var(--red-primary) !important;
  color: var(--red-primary-hover) !important;
}

/* 隐藏状态 - 用于关闭按钮 */
.red-alert.hidden {
  display: none !important;
}

/* 提示框图标 */
.red-alert-icon {
  flex-shrink: 0 !important;
  font-size: 1.25rem !important;
}

/* 提示框内容 */
.red-alert-content {
  flex: 1 !important;
  line-height: 1.6 !important;
}

/* 关闭按钮 - 绝对定位到右上角 */
.red-alert-close {
  position: absolute !important;
  top: 16px !important;
  right: 16px !important;
  background: transparent !important;
  border: 0 !important;
  color: inherit !important;
  opacity: 0.6 !important;
  cursor: pointer !important;
  padding: 0 !important;
  width: 24px !important;
  height: 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 1.25rem !important;
  line-height: 1 !important;
  transition: all 0.2s ease !important;
  border-radius: 4px !important;
}

.red-alert-close:hover {
  opacity: 1 !important;
  background: rgba(0, 0, 0, 0.05) !important;
  transform: scale(1.1) !important;
}

/* ========================================
   8. 下拉菜单系统（Dropdown / Menu）
   基于 red_theme_demo.html 的 menu 组件
   ======================================== */

/* 下拉菜单容器 - Bootstrap 兼容 */
.dropdown {
  position: relative !important;
  display: inline-block !important;
}

/* 下拉菜单触发按钮 */
.dropdown-toggle {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 8px 12px !important;
  border-radius: var(--red-radius-md) !important;
  background: var(--red-primary) !important;
  color: #FFFFFF !important;
  border: 0 !important;
  cursor: pointer !important;
  font-weight: 600 !important;
  font-size: 0.875rem !important;
  transition: all 0.16s ease !important;
  text-decoration: none !important;
}

.dropdown-toggle:hover {
  background: var(--red-primary-hover) !important;
  transform: translateY(-1px) !important;
  box-shadow: var(--red-shadow-mid) !important;
  color: #FFFFFF !important;
}

.dropdown-toggle:active {
  transform: translateY(0) !important;
}

/* 下拉菜单列表 */
.dropdown-menu {
  position: absolute !important;
  top: calc(100% + 8px) !important;
  left: 0 !important;
  min-width: 200px !important;
  background: var(--red-surface) !important;
  border-radius: var(--red-radius-md) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12) !important;
  border: 1px solid var(--red-border) !important;
  padding: 8px 6px !important;
  z-index: 1000 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateY(-8px) !important;
  transition: all 0.16s ease !important;
}

/* 显示下拉菜单 */
.dropdown-menu.show,
.dropdown:hover .dropdown-menu {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) !important;
}

/* 下拉菜单项 */
.dropdown-item {
  display: block !important;
  padding: 10px 14px !important;
  color: var(--red-text-main) !important;
  text-decoration: none !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  transition: all 0.16s ease !important;
  font-size: 0.875rem !important;
  white-space: nowrap !important;
}

.dropdown-item:hover {
  background: var(--red-primary-100) !important;
  color: var(--red-primary) !important;
}

.dropdown-item:active {
  background: #FFD6D6 !important;
}

/* 下拉菜单分隔线 */
.dropdown-divider {
  height: 1px !important;
  margin: 6px 0 !important;
  background: var(--red-border) !important;
  border: 0 !important;
}

/* 下拉菜单右对齐（防止溢出屏幕） */
.dropdown-menu-end {
  left: auto !important;
  right: 0 !important;
}

/* 下拉菜单左对齐 */
.dropdown-menu-start {
  left: 0 !important;
  right: auto !important;
}

/* ========================================
   9. 工具类（Utilities）
   ======================================== */

/* 文字颜色 */
.red-text-primary { color: var(--red-primary) !important; }
.red-text-muted { color: var(--red-text-muted) !important; }
.red-text-success { color: var(--red-success) !important; }
.red-text-warning { color: var(--red-warning) !important; }
.red-text-error { color: var(--red-error) !important; }

/* 背景色 */
.red-bg-light { background: var(--red-primary-100) !important; }
.red-bg-white { background: #FFFFFF !important; }
.red-bg-gray { background: #FBFBFB !important; }

/* 间距 */
.red-mt-sm { margin-top: 8px !important; }
.red-mt-md { margin-top: 16px !important; }
.red-mt-lg { margin-top: 24px !important; }
.red-mb-sm { margin-bottom: 8px !important; }
.red-mb-md { margin-bottom: 16px !important; }
.red-mb-lg { margin-bottom: 24px !important; }

/* 显示 */
.red-flex { display: flex !important; }
.red-inline-flex { display: inline-flex !important; }
.red-gap-sm { gap: 8px !important; }
.red-gap-md { gap: 12px !important; }
.red-gap-lg { gap: 20px !important; }

/* 对齐 */
.red-items-center { align-items: center !important; }
.red-justify-center { justify-content: center !important; }
.red-justify-between { justify-content: space-between !important; }

/* 字重 */
.red-fw-normal { font-weight: 400 !important; }
.red-fw-medium { font-weight: 500 !important; }
.red-fw-semibold { font-weight: 600 !important; }
.red-fw-bold { font-weight: 700 !important; }

/* ========================================
   9. 响应式工具
   ======================================== */
@media (max-width: 768px) {
  .red-container {
    margin: 16px !important;
    padding: 16px !important;
  }

  .red-card {
    padding: 16px !important;
  }

  .red-form-row {
    flex-direction: column !important;
  }

  .red-btn {
    width: 100% !important;
    justify-content: center !important;
  }
}

/* ========================================
   file-tree-contrast.css - 文件树对比度修复
   ======================================== */
/**
 * ========================================
 * Android静态分析页面 - 文件树容器专用样式
 * ========================================
 * 
 * 说明：文件树的主体样式已完全迁移到 android-analysis-nmlh.css
 * 本文件仅保留容器和搜索框的专用样式
 * 
 * 注意：不要在此文件中定义 .file-tree 前缀的样式，
 * 以避免与 android-analysis-nmlh.css 中的定义冲突
 */

/* ========================================
   文件树容器样式
   ======================================== */

/* 文件树容器 - 只影响文件树容器部分 */
.file-tree-container-enhanced {
    max-height: 400px !important;
    overflow-y: auto !important;
    border: 1px solid var(--nmlh-gray-200, #E2E8F0) !important;
    border-radius: var(--nmlh-radius-md, 8px) !important;
    padding: var(--nmlh-spacing-md, 1rem) !important;
    background: var(--nmlh-bg-light, #FFFFFF) !important;
}

/* ========================================
   文件树搜索和统计信息
   ======================================== */

/* 文件树统计信息 - 增强可见性 */
#file-tree-stats {
    color: var(--nmlh-primary) !important;
    font-size: var(--nmlh-font-size-base, 1rem) !important;
    font-weight: var(--nmlh-font-weight-semibold, 600) !important;
    background: rgba(var(--rgb-primary), 0.08) !important;
    padding: var(--nmlh-spacing-xs, 0.25rem) var(--nmlh-spacing-sm, 0.5rem) !important;
    border-radius: var(--nmlh-radius-sm, 6px) !important;
    border: 1px solid rgba(var(--rgb-primary), 0.2) !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
}

#file-tree-stats::before {
    content: "📁" !important;
    font-size: 1.1em !important;
}

/* 文件树搜索框 */
#file-tree-search {
    color: var(--nmlh-text-primary, #1E293B) !important;
    background: var(--nmlh-bg-light, #FFFFFF) !important;
    border: 1px solid var(--nmlh-gray-300, #CBD5E1) !important;
    border-radius: var(--nmlh-radius-sm, 6px) !important;
    padding: var(--nmlh-spacing-xs, 0.25rem) var(--nmlh-spacing-sm, 0.5rem) !important;
    font-size: var(--nmlh-font-size-base, 1rem) !important;
}

#file-tree-search::placeholder {
    color: var(--nmlh-text-disabled, #94A3B8) !important;
}

#file-tree-search:focus {
    border-color: var(--nmlh-primary) !important;
    box-shadow: 0 0 0 3px rgba(var(--rgb-primary), 0.1) !important;
    outline: none !important;
}

/* ========================================
   Dropdown Menu Fix - 下拉菜单修复
   修复Manifest配置安全分析表格中下拉菜单的显示问题
   ======================================== */

/* 修复下拉菜单背景透明和层级问题 */
#table_manifest .dropdown-menu,
#table_code .dropdown-menu,
.dataTable .dropdown-menu {
    background-color: #FFFFFF !important;
    opacity: 1 !important;
    z-index: 9999 !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15) !important;
    border: 1px solid var(--nmlh-border-light-dark, #E0E0E0) !important;
    border-radius: var(--nmlh-radius-md, 12px) !important;
    padding: 0.5rem 0 !important;
    min-width: 160px !important;
}

/* 确保下拉菜单显示时的样式 */
#table_manifest .dropdown-menu.show,
#table_code .dropdown-menu.show,
.dataTable .dropdown-menu.show {
    display: block !important;
    opacity: 1 !important;
    background-color: #FFFFFF !important;
}

/* 下拉菜单项样式 */
#table_manifest .dropdown-item,
#table_code .dropdown-item,
.dataTable .dropdown-item {
    padding: 0.5rem 1rem !important;
    color: var(--nmlh-text-light-primary, #212121) !important;
    transition: all 0.2s ease !important;
    background-color: transparent !important;
}

/* 下拉菜单项悬浮效果 */
#table_manifest .dropdown-item:hover,
#table_code .dropdown-item:hover,
.dataTable .dropdown-item:hover {
    background-color: var(--nmlh-primary-light, #FFEBEE) !important;
    color: var(--nmlh-primary, #D32F2F) !important;
}

/* 确保下拉按钮的z-index */
#table_manifest .dropdown,
#table_code .dropdown,
.dataTable .dropdown {
    position: relative !important;
    z-index: 1 !important;
}

/* ========================================
   Mobile Sidebar Fix - 移动端侧边栏修复
   修复移动端侧边栏透明和遮挡问题
   ======================================== */

/* 强制侧边栏不透明背景 */
.main-sidebar {
    background: #FFFFFF !important;
    background-color: #FFFFFF !important;
}

/* 移动端侧边栏打开时的遮罩层 */
@media (max-width: 991px) {
    /* 创建遮罩层效果 */
    body.sidebar-open::before {
        content: '' !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        background-color: rgba(0, 0, 0, 0.5) !important;
        z-index: 999 !important;
        opacity: 1 !important;
        transition: opacity 0.3s ease !important;
    }
    
    /* 确保侧边栏在遮罩层之上 */
    .sidebar-open .main-sidebar {
        z-index: 1000 !important;
        background: #FFFFFF !important;
        background-color: #FFFFFF !important;
    }
    
    /* 防止页面内容滚动 */
    body.sidebar-open {
        overflow: hidden !important;
    }
}

/* 移动端侧边栏样式增强 */
@media (max-width: 768px) {
    .main-sidebar {
        background: #FFFFFF !important;
        background-color: #FFFFFF !important;
        opacity: 1 !important;
    }
}

/* 移动端侧边栏遮罩层（通用方案，不依赖特定类名） */
@media (max-width: 991px) {
    /* 当侧边栏不是完全隐藏时（没有sidebar-collapse类），显示遮罩层 */
    body:not(.sidebar-collapse)::after {
        content: '' !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        background-color: rgba(0, 0, 0, 0.6) !important;
        z-index: 999 !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        transition: opacity 0.3s ease !important;
    }
    
    /* 防止sidebar-collapse状态下显示遮罩 */
    body.sidebar-collapse::after {
        display: none !important;
    }
    
    /* 点击遮罩层关闭侧边栏的功能（需要JS配合） */
    body:not(.sidebar-collapse) {
        overflow: hidden !important;
    }
}

/* ========================================
   Offcanvas Mobile Menu Fix - Bootstrap 5移动端菜单修复
   修复nmlh-mobile-menu背景透明问题
   ======================================== */

/* 修复移动端菜单背景（覆盖nmlh-components.css中的错误语法） */
.nmlh-mobile-menu {
    background: #FFFFFF !important;
    background-color: #FFFFFF !important;
    opacity: 1 !important;
}

/* 确保offcanvas的backdrop（遮罩层）样式正确 */
.offcanvas-backdrop {
    background-color: rgba(0, 0, 0, 0.5) !important;
    opacity: 1 !important;
}

/* 移动端菜单头部背景 */
.nmlh-mobile-header {
    background: #FFEBEE !important;
}

/* 移动端菜单主体背景 */
.nmlh-mobile-body {
    background: #FFFFFF !important;
}
