/**
 * AsiaGoManage 全局样式优化
 * 统一字体、间距、颜色、图标等
 */

/* ==================== 字体优化 ==================== */
* {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", 
                 "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    font-size: 14px;
    line-height: 1.6;
    color: #333;
    background-color: #f5f7fa;
}

/* 标题字体 */
h1, h2, h3, h4, h5, h6 {
    font-weight: 500;
    color: #2c3e50;
    margin: 0;
}

h1 { font-size: 24px; }
h2 { font-size: 20px; }
h3 { font-size: 18px; }
h4 { font-size: 16px; }

/* ==================== 表格优化 ==================== */
/* 表格工具条：深色系模块化组件 */
.layui-table-tool {
    background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
    padding: 15px;
    border: 1px solid #475569;
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    margin-bottom: 0;
}

.layui-table-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
}

.layui-table-toolbar .layui-btn {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border: none;
    color: white;
}

.layui-table-toolbar .layui-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
}

/* 表格主体：深色系风格 */
.layui-table {
    font-size: 14px;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    background: #1e293b;
    border: 1px solid #475569;
}

/* 当表格有工具条时，通过调整工具条样式来无缝连接 */
.layui-table-tool + .layui-table-view {
    margin-top: 0;
}

.layui-table-tool + .layui-table-view .layui-table {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    border-top: none;
    margin-top: 0;
}

.layui-table thead tr {
    background: linear-gradient(135deg, #1e1b4b 0%, #312e81 50%, #4c1d95 100%);
    background-size: 200% 200%;
    animation: tableHeadGradient 8s ease infinite;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

@keyframes tableHeadGradient {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

.layui-table thead th {
    font-weight: 700;
    color: rgba(233, 213, 255, 0.95);
    padding: 14px 16px;
    border-bottom: 2px solid rgba(167, 139, 250, 0.4);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    position: relative;
}

.layui-table thead th::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(139, 92, 246, 0.6), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.layui-table thead th:hover::after {
    opacity: 1;
}

.layui-table tbody tr {
    transition: all 0.3s ease;
    background: rgba(30, 27, 75, 0.6);
    color: rgba(233, 213, 255, 0.9);
    border-bottom: 1px solid rgba(167, 139, 250, 0.15);
}

.layui-table tbody tr:hover {
    background: linear-gradient(90deg, rgba(139, 92, 246, 0.2) 0%, rgba(167, 139, 250, 0.15) 100%);
    box-shadow: 0 4px 15px rgba(139, 92, 246, 0.3),
                inset 0 0 20px rgba(139, 92, 246, 0.1);
    transform: translateY(-2px) scale(1.01);
    color: #ffffff;
}

.layui-table tbody td {
    padding: 14px 16px;
    border-bottom: 1px solid rgba(167, 139, 250, 0.15);
    color: rgba(233, 213, 255, 0.85);
    transition: color 0.3s ease;
}

.layui-table tbody tr:hover td {
    color: #ffffff;
}

.layui-table tbody tr:last-child td {
    border-bottom: none;
}

/* 表格序号列 */
.layui-table[lay-data] th[data-field*="numbers"],
.layui-table[lay-data] td[data-field*="numbers"] {
    text-align: center;
    color: #909399;
    font-weight: 500;
}

/* ==================== 按钮优化 ==================== */
/* 按钮样式已还原为LayUI默认样式 */

/* ==================== 表单优化 ==================== */
.layui-form {
    font-size: 14px;
}

.layui-form-item {
    margin-bottom: 20px;
}

/* 普通表单标签 - 保持原色 */
.layui-form-label {
    font-weight: 500;
    color: #2c3e50;
    padding: 9px 15px;
    width: 110px;
}

/* 搜索框内的表单标签 - 使用超亮白色和强烈发光效果 */
.search-box .layui-form-label {
    color: #ffffff !important;
    font-weight: 700 !important;
    position: relative;
    z-index: 1;
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.8),
                 0 0 20px rgba(196, 181, 253, 0.6),
                 0 0 30px rgba(167, 139, 250, 0.4),
                 0 2px 15px rgba(0, 0, 0, 0.6),
                 0 4px 20px rgba(0, 0, 0, 0.4);
    filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.5));
    letter-spacing: 0.5px;
}

.layui-input,
.layui-select,
.layui-textarea {
    border: 1px solid #dcdfe6;
    border-radius: 4px;
    padding: 9px 15px;
    font-size: 14px;
    transition: all 0.3s ease;
}

.layui-input:focus,
.layui-select:focus,
.layui-textarea:focus {
    border-color: #667eea;
    box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.1);
    outline: none;
}

.layui-input-block {
    margin-left: 140px;
}

/* 必填项标识 */
.layui-form-label span[style*="color: red"] {
    color: #f56c6c !important;
    margin-right: 4px;
    font-weight: 600;
}

/* ==================== 卡片/面板优化 ==================== */
/* 搜索区域：深色系模块化组件 - 丰富渐变 */
.search-box {
    background: linear-gradient(135deg, #1e1b4b 0%, #312e81 30%, #4c1d95 60%, #6b21a8 100%);
    background-size: 200% 200%;
    animation: searchBoxGradient 15s ease infinite;
    padding: 24px;
    margin-bottom: 16px;
    border-radius: 12px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.4),
                0 0 40px rgba(139, 92, 246, 0.2),
                0 0 0 1px rgba(167, 139, 250, 0.3) inset;
    border: 1px solid rgba(167, 139, 250, 0.3);
    position: relative;
    overflow: hidden;
}

@keyframes searchBoxGradient {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

.search-box::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(139, 92, 246, 0.2) 0%, transparent 70%);
    animation: searchBoxRotate 20s linear infinite;
}

@keyframes searchBoxRotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.search-box .layui-input,
.search-box .layui-select {
    background: rgba(30, 27, 75, 0.6);
    backdrop-filter: blur(10px);
    border: 2px solid rgba(167, 139, 250, 0.3);
    color: #e9d5ff;
    border-radius: 8px;
    position: relative;
    z-index: 1;
    transition: all 0.3s ease;
}

.search-box .layui-input:focus,
.search-box .layui-select:focus {
    border-color: #8b5cf6;
    background: rgba(49, 46, 129, 0.7);
    color: #ffffff;
    box-shadow: 0 0 0 4px rgba(139, 92, 246, 0.2),
                0 0 20px rgba(139, 92, 246, 0.3),
                inset 0 0 20px rgba(139, 92, 246, 0.1);
    transform: translateY(-2px);
}

.search-box .layui-input::placeholder {
    color: rgba(233, 213, 255, 0.5);
}

.search-box .layui-btn {
    background: linear-gradient(135deg, #6b21a8 0%, #7c3aed 25%, #8b5cf6 50%, #a78bfa 75%, #c4b5fd 100%);
    background-size: 200% 200%;
    animation: searchButtonGradient 3s ease infinite;
    border: none;
    color: white;
    position: relative;
    z-index: 1;
    box-shadow: 0 4px 15px rgba(139, 92, 246, 0.4);
    transition: all 0.3s ease;
}

@keyframes searchButtonGradient {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

.search-box .layui-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(139, 92, 246, 0.5);
}

.search-box .layui-btn-primary {
    background: rgba(49, 46, 129, 0.6);
    border: 2px solid rgba(167, 139, 250, 0.4);
    color: rgba(233, 213, 255, 0.9);
    position: relative;
    z-index: 1;
}

.search-box .layui-btn-primary:hover {
    background: rgba(67, 56, 202, 0.7);
    border-color: rgba(167, 139, 250, 0.6);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(139, 92, 246, 0.3);
}

/* 工具栏：深色系模块化组件 - 丰富渐变 */
.toolbar {
    background: linear-gradient(135deg, #1e1b4b 0%, #312e81 30%, #4c1d95 60%, #6b21a8 100%);
    background-size: 200% 200%;
    animation: toolbarGradient 12s ease infinite;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 24px;
    margin-bottom: 16px;
    border-radius: 12px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.4),
                0 0 40px rgba(139, 92, 246, 0.2),
                0 0 0 1px rgba(167, 139, 250, 0.3) inset;
    border: 1px solid rgba(167, 139, 250, 0.3);
    position: relative;
    overflow: hidden;
}

@keyframes toolbarGradient {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

.toolbar::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
    animation: toolbarShine 4s ease infinite;
}

@keyframes toolbarShine {
    0% { left: -100%; }
    100% { left: 100%; }
}

.toolbar .layui-btn {
    background: linear-gradient(135deg, #6b21a8 0%, #7c3aed 25%, #8b5cf6 50%, #a78bfa 75%, #c4b5fd 100%);
    background-size: 200% 200%;
    animation: toolbarButtonGradient 3s ease infinite;
    border: none;
    color: white;
    position: relative;
    z-index: 1;
    box-shadow: 0 4px 15px rgba(139, 92, 246, 0.4);
    transition: all 0.3s ease;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

@keyframes toolbarButtonGradient {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

.toolbar .layui-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(139, 92, 246, 0.5);
}

.toolbar .layui-btn i {
    transition: transform 0.3s ease;
    margin-right: 4px;
}

.toolbar .layui-btn:hover i {
    transform: scale(1.15) rotate(5deg);
}

.content-panel {
    background: linear-gradient(135deg, rgba(30, 27, 75, 0.8) 0%, rgba(49, 46, 129, 0.7) 100%);
    backdrop-filter: blur(20px);
    padding: 20px;
    margin-bottom: 15px;
    border-radius: 12px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.4),
                0 0 40px rgba(139, 92, 246, 0.2),
                0 0 0 1px rgba(167, 139, 250, 0.3) inset;
    border: 1px solid rgba(167, 139, 250, 0.3);
    color: rgba(233, 213, 255, 0.9);
    position: relative;
    overflow: hidden;
}

.content-panel::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(139, 92, 246, 0.1) 0%, transparent 70%);
    animation: contentPanelRotate 25s linear infinite;
    pointer-events: none;
}

@keyframes contentPanelRotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* ==================== 图标优化 ==================== */
.layui-icon {
    font-size: 16px;
    vertical-align: middle;
    margin-right: 1px;
}

.layui-icon + span {
    vertical-align: middle;
}

/* 操作图标 */
.layui-table-tool .layui-btn i,
.layui-table-toolbar .layui-btn i {
    margin-right: 1px;
}

/* ==================== 导航优化 ==================== */
.layui-nav {
    font-size: 14px;
}

.layui-nav-item {
    margin: 0 5px;
}

.layui-nav-item > a {
    padding: 0 15px;
    border-radius: 4px;
    transition: all 0.3s ease;
}

.layui-nav-item > a:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

/* 侧边栏导航 */
.layui-nav-tree .layui-nav-item > a {
    padding: 12px 20px;
    border-radius: 0;
}

.layui-nav-tree .layui-nav-item > a:hover {
    background-color: rgba(255, 255, 255, 0.05);
}

.layui-nav-tree .layui-this > a,
.layui-nav-tree .layui-nav-child dd.layui-this > a {
    background: linear-gradient(90deg, #667eea 0%, #764ba2 100%);
    color: #fff;
    font-weight: 500;
}

/* ==================== 标签页优化 ==================== */
.layui-tab {
    margin-top: 0;
}

.layui-tab-title {
    border-bottom: 2px solid #e4e7ed;
    background: #fff;
    padding: 0 15px;
}

.layui-tab-title li {
    margin-right: 5px;
    padding: 12px 20px;
    border-radius: 4px 4px 0 0;
    transition: all 0.3s ease;
}

.layui-tab-title li:hover {
    background-color: #f5f7fa;
}

.layui-tab-title li.layui-this {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: #fff;
    font-weight: 500;
    border-bottom: 2px solid transparent;
}

.layui-tab-content {
    padding: 20px;
    background: #fff;
    border-radius: 0 0 4px 4px;
}

/* ==================== 弹窗优化 ==================== */
.layui-layer {
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
}

.layui-layer-title {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: #fff;
    font-weight: 500;
    padding: 15px 20px;
    border-bottom: none;
}

.layui-layer-content {
    padding: 20px;
}

/* ==================== 分页优化 ==================== */
.layui-laypage {
    margin: 20px 0;
}

.layui-laypage a,
.layui-laypage span {
    border-radius: 4px;
    margin: 0 3px;
    transition: all 0.3s ease;
}

.layui-laypage a:hover {
    background-color: #667eea;
    color: #fff;
    border-color: #667eea;
}

.layui-laypage .layui-laypage-curr em {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-color: #667eea;
}

/* ==================== Tree选择器优化 ==================== */
.tree-select-container {
    padding: 15px;
    max-height: 500px;
    overflow-y: auto;
}

.layui-tree {
    font-size: 14px;
}

.layui-tree li {
    padding: 6px 0;
}

.layui-tree li a {
    padding: 6px 10px;
    border-radius: 4px;
    transition: all 0.2s ease;
}

.layui-tree li a:hover {
    background-color: #f5f7fa;
    color: #667eea;
}

/* Tree表格图标 */
.tree-icon {
    color: #909399;
    transition: all 0.2s ease;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
}

.tree-icon:hover {
    color: #667eea;
    transform: scale(1.1);
}

/* ==================== 工具条优化 ==================== */
.layui-table-tool {
    padding: 15px;
    background: #fafbfc;
    border-bottom: 1px solid #e4e7ed;
}

.layui-table-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* ==================== 状态标签优化 ==================== */
.status-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
}

.status-success {
    background: #f0f9ff;
    color: #10b981;
    border: 1px solid #d1fae5;
}

.status-warning {
    background: #fffbeb;
    color: #f59e0b;
    border: 1px solid #fde68a;
}

.status-danger {
    background: #fef2f2;
    color: #ef4444;
    border: 1px solid #fecaca;
}

.status-info {
    background: #eff6ff;
    color: #3b82f6;
    border: 1px solid #bfdbfe;
}

/* ==================== 响应式优化 ==================== */
@media (max-width: 768px) {
    .layui-form-label {
        width: 100%;
        text-align: left;
        padding: 9px 0;
    }
    
    .layui-input-block {
        margin-left: 0;
    }
    
    .toolbar {
        flex-wrap: wrap;
    }
}

/* ==================== 滚动条优化 ==================== */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb {
    background: #c1c1c1;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #a8a8a8;
}

/* ==================== 动画优化 ==================== */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fade-in {
    animation: fadeIn 0.3s ease;
}

/* ==================== 工具类 ==================== */
.text-primary { color: #667eea; }
.text-success { color: #10b981; }
.text-warning { color: #f59e0b; }
.text-danger { color: #ef4444; }
.text-muted { color: #909399; }

.mt-10 { margin-top: 10px; }
.mt-20 { margin-top: 20px; }
.mb-10 { margin-bottom: 10px; }
.mb-20 { margin-bottom: 20px; }

.p-10 { padding: 10px; }
.p-20 { padding: 20px; }

/* ==================== 搜索表单通用布局 ==================== */
.search-box .layui-form-item {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px;
}
.search-box .layui-inline {
    margin-right: 0;
    margin-bottom: 8px;
}
.search-box .search-actions {
    margin-left: auto;
    white-space: nowrap;
}
@media (max-width: 992px) {
    .search-box .search-actions {
        width: 100%;
        margin-left: 0;
        text-align: right;
    }
}

/* 注：仅当显式使用 .search-actions 时靠右；不做全局兜底，避免非用户管理页面被强制靠右 */

/* ==================== 空态与骨架屏 ==================== */
.empty-state {
    padding: 40px 20px;
    text-align: center;
    color: #909399;
    background: #fff;
    border: 1px dashed #e4e7ed;
    border-radius: 6px;
}
.empty-state i {
    font-size: 28px;
    color: #c0c4cc;
    margin-right: 6px;
}
.skeleton-line {
    width: 100%;
    height: 12px;
    background: linear-gradient(90deg, #f2f3f5 25%, #e9ebee 37%, #f2f3f5 63%);
    background-size: 400% 100%;
    animation: skeleton-loading 1.4s ease infinite;
    border-radius: 6px;
}
.skeleton-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: linear-gradient(90deg, #f2f3f5 25%, #e9ebee 37%, #f2f3f5 63%);
    background-size: 400% 100%;
    animation: skeleton-loading 1.4s ease infinite;
}
@keyframes skeleton-loading {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}

/* ==================== 小工具类 ==================== */
.clickable { cursor: pointer; }
.ellipsis { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ==================== 表格体验增强 ==================== */
/* 表格行hover增强 */
.layui-table tbody tr:hover {
    background-color: #f0f7ff !important;
    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.12);
    transform: translateY(-1px);
}

/* 表格选中行 */
.layui-table tbody tr.layui-table-checked {
    background-color: #e6f2ff !important;
}

/* 列排序视觉反馈 */
.layui-table th[data-field].layui-table-sort {
    cursor: pointer;
    user-select: none;
    position: relative;
    padding-right: 30px;
}
.layui-table th[data-field].layui-table-sort:hover {
    background-color: #f5f7fa;
}
.layui-table th[data-field].layui-table-sort-asc,
.layui-table th[data-field].layui-table-sort-desc {
    background-color: #e6f2ff;
    color: #667eea;
    font-weight: 600;
}

/* 批量操作工具栏 */
.batch-toolbar {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: #fff;
    padding: 12px 24px;
    border-radius: 24px;
    box-shadow: 0 4px 16px rgba(102, 126, 234, 0.4);
    z-index: 999;
    display: none;
    align-items: center;
    gap: 12px;
    animation: slideUp 0.3s ease;
}
.batch-toolbar.show {
    display: flex;
}
.batch-toolbar .count {
    font-weight: 600;
    margin-right: 8px;
}
.batch-toolbar .layui-btn {
    background: rgba(255, 255, 255, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: #fff;
}
.batch-toolbar .layui-btn:hover {
    background: rgba(255, 255, 255, 0.3);
}
@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateX(-50%) translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }
}

/* ==================== 表单验证与反馈优化 ==================== */
/* 表单错误提示样式 */
.layui-form-item.layui-form-error .layui-input,
.layui-form-item.layui-form-error .layui-select,
.layui-form-item.layui-form-error .layui-textarea {
    border-color: #f56c6c !important;
    box-shadow: 0 0 0 2px rgba(245, 108, 108, 0.1);
}
.layui-form-item.layui-form-error .layui-form-mid {
    color: #f56c6c;
    font-size: 12px;
    margin-top: 4px;
    display: flex;
    align-items: center;
    gap: 4px;
}
.layui-form-item.layui-form-error .layui-form-mid::before {
    content: '\e69c';
    font-family: 'layui-icon';
    font-size: 14px;
}

/* 必填项标识增强 */
.layui-form-label.required::before {
    content: '*';
    color: #f56c6c;
    margin-right: 4px;
    font-weight: 600;
    font-size: 16px;
}

/* 表单字段联动提示 */
.field-linkage-hint {
    font-size: 12px;
    color: #909399;
    margin-top: 4px;
    display: flex;
    align-items: center;
    gap: 4px;
}
.field-linkage-hint i {
    font-size: 14px;
}

/* ==================== 全局提示与加载优化 ==================== */
/* Toast样式统一 - 修复图标文字对齐 */
.layui-layer-msg {
    border-radius: 8px !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15) !important;
    padding: 15px 20px !important;
    min-height: auto !important;
    line-height: 1.5 !important;
    text-align: center !important;
}
.layui-layer-msg .layui-layer-content {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    padding: 0 !important;
    margin: 0 !important;
    vertical-align: middle !important;
    line-height: 1.5 !important;
}
.layui-layer-msg .layui-layer-content i {
    font-size: 16px !important;
    line-height: 1 !important;
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    width: auto !important;
    height: 16px !important;
    vertical-align: middle !important;
    position: relative !important;
    top: 0 !important;
    left: 0 !important;
}
.layui-layer-msg .layui-layer-content span {
    display: inline-block !important;
    line-height: 1.5 !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    vertical-align: middle !important;
}

/* 针对所有layer-msg的强制对齐 */
.layui-layer-msg .layui-layer-content > * {
    vertical-align: middle !important;
}

/* 修复Layui layer.msg图标对齐 - 确保只显示一个图标 */
.layui-layer-msg .layui-layer-content {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
}
/* 隐藏可能的重复图标 */
.layui-layer-msg .layui-layer-content::before {
    display: none !important;
}
/* 确保Layui的图标正确显示和对齐 */
.layui-layer-msg[icon="1"] .layui-layer-content,
.layui-layer-msg[icon="2"] .layui-layer-content,
.layui-layer-msg[icon="3"] .layui-layer-content {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
}
/* 隐藏任何额外的图标元素 */
.layui-layer-msg .layui-layer-content > i:not(:first-child) {
    display: none !important;
}
.layui-layer-msg[type="success"] {
    background-color: #10b981 !important;
}
.layui-layer-msg[type="warning"] {
    background-color: #f59e0b !important;
}
.layui-layer-msg[type="error"] {
    background-color: #ef4444 !important;
}

/* 确认对话框优化 */
.layui-layer-dialog .layui-layer-content {
    padding: 24px !important;
    font-size: 15px;
    line-height: 1.6;
}
.layui-layer-dialog .layui-layer-btn {
    padding: 12px 20px !important;
    border-top: 1px solid #e4e7ed;
}
.layui-layer-dialog .layui-layer-btn a {
    border-radius: 4px;
    padding: 8px 20px;
    transition: all 0.2s ease;
}
.layui-layer-dialog .layui-layer-btn .layui-layer-btn0 {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: #fff;
}
.layui-layer-dialog .layui-layer-btn .layui-layer-btn0:hover {
    opacity: 0.9;
    transform: translateY(-1px);
}

/* ==================== LayUI 顶部消息提示（与深色主题协调） ==================== */
/* 统一位置为顶部居中，轻微下落动画，圆角与暗色渐变背景 */
.layui-layer.layui-layer-msg {
    left: 50% !important;
    transform: translateX(-50%) !important;
    top: 80px !important;
    border: none !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    box-shadow: 0 12px 40px rgba(0,0,0,0.35), 0 0 40px rgba(139,92,246,0.15) !important;
    animation: agmMsgDrop 260ms ease-out;
    background: transparent !important;
}

@keyframes agmMsgDrop {
    from { opacity: 0; transform: translate(-50%, -12px); }
    to   { opacity: 1; transform: translate(-50%, 0); }
}

.layui-layer.layui-layer-msg .layui-layer-content {
    padding: 14px 18px !important;
    color: #e9d5ff !important;
    background: linear-gradient(135deg, rgba(30,27,75,0.96) 0%, rgba(49,46,129,0.94) 60%, rgba(67,56,202,0.92) 100%) !important;
    border: 1px solid rgba(167,139,250,0.25) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: none !important;
}

/* 成功/警告/错误针对性配色（保持深色体系的细微变化） */
.layui-layer-msg .layui-layer-content i.layui-layer-ico {
    margin-right: 8px;
}
.layui-layer-msg[icon="1"] .layui-layer-content,
.layui-layer-msg .layui-layer-content:has(.layui-layer-ico1) {
    background: linear-gradient(135deg, rgba(22,101,52,0.25) 0%, rgba(34,197,94,0.18) 100%), 
                linear-gradient(135deg, rgba(30,27,75,0.96) 0%, rgba(49,46,129,0.94) 60%, rgba(67,56,202,0.92) 100%) !important;
    color: #bbf7d0 !important;
    border-color: rgba(34,197,94,0.25) !important;
}
.layui-layer-msg[icon="2"] .layui-layer-content,
.layui-layer-msg .layui-layer-content:has(.layui-layer-ico2) {
    background: linear-gradient(135deg, rgba(190,18,60,0.25) 0%, rgba(244,63,94,0.18) 100%),
                linear-gradient(135deg, rgba(30,27,75,0.96) 0%, rgba(49,46,129,0.94) 60%, rgba(67,56,202,0.92) 100%) !important;
    color: #fecaca !important;
    border-color: rgba(244,63,94,0.25) !important;
}
.layui-layer-msg[icon="0"] .layui-layer-content,
.layui-layer-msg .layui-layer-content:has(.layui-layer-ico0) {
    background: linear-gradient(135deg, rgba(202,138,4,0.25) 0%, rgba(251,191,36,0.18) 100%),
                linear-gradient(135deg, rgba(30,27,75,0.96) 0%, rgba(49,46,129,0.94) 60%, rgba(67,56,202,0.92) 100%) !important;
    color: #fde68a !important;
    border-color: rgba(251,191,36,0.25) !important;
}

/* 加载骨架屏增强 */
.skeleton-container {
    padding: 20px;
    background: #fff;
    border-radius: 6px;
}
.skeleton-line {
    margin-bottom: 12px;
}
.skeleton-line:last-child {
    width: 60%;
}

/* ==================== 侧边栏与导航体验 ==================== */
/* 菜单展开/收起动画 - 仅使用opacity，不动画高度（最流畅方案） */
.layui-nav-tree .layui-nav-item {
    transition: none;
}
.layui-nav-tree .layui-nav-child {
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    will-change: opacity;
    transition: opacity 0.15s ease-out;
    /* GPU加速优化 */
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    contain: layout style paint;
}
.layui-nav-tree .layui-nav-itemed > .layui-nav-child {
    max-height: 1000px;
    opacity: 1;
}
.layui-nav-tree .layui-nav-child dd {
    transition: padding-left 0.15s ease;
}
.layui-nav-tree .layui-nav-child dd:hover {
    padding-left: 24px;
}

/* 响应式侧边栏 */
@media (max-width: 768px) {
    .layui-side {
        transform: translateX(-100%);
        transition: transform 0.3s ease;
    }
    .layui-side.show {
        transform: translateX(0);
    }
}

/* 面包屑导航 */
.breadcrumb {
    padding: 12px 20px;
    background: #fff;
    border-bottom: 1px solid #e4e7ed;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
}
.breadcrumb-item {
    color: #909399;
    display: flex;
    align-items: center;
    gap: 8px;
}
.breadcrumb-item:last-child {
    color: #2c3e50;
    font-weight: 500;
}
.breadcrumb-separator {
    color: #c0c4cc;
}

/* 菜单搜索高亮 */
.menu-search-highlight {
    background-color: #fff3cd;
    padding: 2px 4px;
    border-radius: 2px;
    font-weight: 500;
}

/* ==================== 数据展示优化 ==================== */
/* 数字格式化样式 */
.number-format {
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum";
}
.currency {
    color: #f59e0b;
    font-weight: 500;
}
.currency::before {
    content: '¥';
    margin-right: 2px;
}

/* 状态标签增强 */
.status-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
}
.status-badge i {
    font-size: 12px;
}

/* 操作按钮组优化 */
.action-buttons {
    display: inline-flex;
    gap: 6px;
    align-items: center;
}
.action-buttons .layui-btn {
    margin: 0;
}

/* 时间显示优化 */
.time-relative {
    color: #909399;
    font-size: 12px;
}

/* ==================== 细节打磨 ==================== */
/* Tab标题过长省略 */
.layui-tab-title li {
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    position: relative;
}
.layui-tab-title li[title]:hover::after {
    content: attr(title);
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    background: #2c3e50;
    color: #fff;
    padding: 6px 12px;
    border-radius: 4px;
    font-size: 12px;
    white-space: nowrap;
    z-index: 1000;
    margin-bottom: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.layui-tab-title li[title]:hover::before {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-top-color: #2c3e50;
    margin-bottom: 2px;
    z-index: 1001;
}

/* 搜索表单更多条件折叠 */
.search-more-toggle {
    text-align: center;
    margin-top: 10px;
    color: #667eea;
    cursor: pointer;
    font-size: 13px;
    user-select: none;
}
.search-more-toggle:hover {
    color: #764ba2;
}
.search-more-toggle i {
    margin-left: 4px;
    transition: transform 0.3s ease;
}
.search-more-toggle.expanded i {
    transform: rotate(180deg);
}
.search-more-fields {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}
.search-more-fields.show {
    max-height: 500px;
}

/* 页面标题区 */
.page-header {
    background: #fff;
    padding: 20px;
    margin-bottom: 15px;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    border: 1px solid #e4e7ed;
}
.page-header h2 {
    margin: 0 0 8px 0;
    font-size: 20px;
    font-weight: 600;
    color: #2c3e50;
}
.page-header .page-desc {
    color: #909399;
    font-size: 13px;
    margin: 0;
}

/* 操作反馈动画 */
@keyframes fadeOut {
    from {
        opacity: 1;
        transform: scale(1);
    }
    to {
        opacity: 0;
        transform: scale(0.95);
    }
}
.row-deleting {
    animation: fadeOut 0.3s ease forwards;
}

/* ==================== 按钮交互优化 ==================== */
/* 按钮点击反馈 */
.layui-btn {
    position: relative;
    overflow: hidden;
    transition: all 0.2s ease;
}
.layui-btn:active {
    transform: scale(0.98);
}
.layui-btn:not(:disabled):hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.layui-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none !important;
}

/* 按钮加载状态 */
.layui-btn.loading {
    pointer-events: none;
    position: relative;
    color: transparent !important;
}
.layui-btn.loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: #fff;
    border-radius: 50%;
    animation: button-loading 0.6s linear infinite;
}
@keyframes button-loading {
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

/* 按钮组间距优化 */
.layui-btn-group .layui-btn {
    margin: 0;
}
.layui-btn-group .layui-btn + .layui-btn {
    margin-left: 8px;
}

/* ==================== 表单输入体验优化 ==================== */
/* 输入框聚焦效果增强 */
.layui-input:focus,
.layui-select:focus,
.layui-textarea:focus {
    border-color: #667eea !important;
    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1) !important;
    outline: none !important;
}

/* 输入框清除按钮 */
.input-clear-btn {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    line-height: 18px;
    text-align: center;
    cursor: pointer;
    color: #c0c4cc;
    font-size: 12px;
    border-radius: 50%;
    background: #f5f7fa;
    transition: all 0.2s ease;
    z-index: 10;
}
.input-clear-btn:hover {
    color: #909399;
    background: #e4e7ed;
}

/* 字数统计 */
.input-count {
    position: absolute;
    right: 10px;
    bottom: 8px;
    font-size: 12px;
    color: #909399;
    background: #fff;
    padding: 0 4px;
}
.input-count.warning {
    color: #f59e0b;
}
.input-count.error {
    color: #ef4444;
}

/* 表单标签优化 */
.layui-form-label {
    position: relative;
}
.layui-form-label.required::after {
    content: '*';
    color: #f56c6c;
    margin-left: 4px;
    font-weight: 600;
}

/* ==================== 表格空状态与加载状态 ==================== */
/* 表格空状态 */
.layui-table-empty {
    padding: 60px 20px !important;
}
.layui-table-empty td {
    border: none !important;
    text-align: center !important;
    padding: 40px 20px !important;
}
.layui-table-empty .empty-state {
    display: inline-block;
    padding: 20px;
    color: #909399;
    font-size: 14px;
}
.layui-table-empty .empty-state i {
    font-size: 48px;
    color: #c0c4cc;
    margin-bottom: 12px;
    display: block;
}

/* 表格加载状态 */
.table-loading {
    position: relative;
    min-height: 200px;
}
.table-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 32px;
    height: 32px;
    border: 3px solid #f3f3f3;
    border-top-color: #667eea;
    border-radius: 50%;
    animation: table-loading 0.8s linear infinite;
    z-index: 10;
}
@keyframes table-loading {
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

/* ==================== 弹窗体验优化 ==================== */
/* 弹窗关闭按钮优化 */
.layui-layer-close {
    width: 32px !important;
    height: 32px !important;
    line-height: 32px !important;
    text-align: center !important;
    border-radius: 50% !important;
    background: rgba(0, 0, 0, 0.05) !important;
    transition: all 0.2s ease !important;
    top: 12px !important;
    right: 12px !important;
}
.layui-layer-close:hover {
    background: rgba(0, 0, 0, 0.1) !important;
    transform: rotate(90deg) !important;
}

/* 弹窗遮罩层优化 */
.layui-layer-shade {
    background: rgba(0, 0, 0, 0.3) !important;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

/* 弹窗内容区域优化 */
.layui-layer-content {
    position: relative;
}

/* ==================== 微交互细节 ==================== */
/* 点击波纹效果 */
.ripple-effect {
    position: relative;
    overflow: hidden;
}
.ripple-effect::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    transform: translate(-50%, -50%);
    transition: width 0.6s, height 0.6s;
}
.ripple-effect:active::after {
    width: 300px;
    height: 300px;
}

/* 卡片悬停效果 */
.card-hover {
    transition: all 0.3s ease;
    cursor: pointer;
}
.card-hover:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

/* 链接悬停效果 */
a {
    transition: color 0.2s ease;
}
a:hover {
    color: #667eea;
}

/* 图标按钮悬停 */
.icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s ease;
    color: #606266;
}
.icon-btn:hover {
    background: #f5f7fa;
    color: #667eea;
}
.icon-btn:active {
    background: #e4e7ed;
    transform: scale(0.95);
}

/* ==================== 视觉细节打磨 ==================== */
/* 阴影层次系统 */
.shadow-sm {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.shadow {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.shadow-md {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
.shadow-lg {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

/* 圆角统一 */
.rounded-sm { border-radius: 2px; }
.rounded { border-radius: 4px; }
.rounded-md { border-radius: 6px; }
.rounded-lg { border-radius: 8px; }
.rounded-full { border-radius: 50%; }

/* 间距系统扩展 */
.px-4 { padding-left: 16px; padding-right: 16px; }
.px-6 { padding-left: 24px; padding-right: 24px; }
.py-2 { padding-top: 8px; padding-bottom: 8px; }
.py-3 { padding-top: 12px; padding-bottom: 12px; }
.py-4 { padding-top: 16px; padding-bottom: 16px; }
.gap-2 { gap: 8px; }
.gap-3 { gap: 12px; }
.gap-4 { gap: 16px; }

/* 边框优化 */
.border { border: 1px solid #e4e7ed; }
.border-t { border-top: 1px solid #e4e7ed; }
.border-b { border-bottom: 1px solid #e4e7ed; }
.border-l { border-left: 1px solid #e4e7ed; }
.border-r { border-right: 1px solid #e4e7ed; }

/* 背景色工具类 */
.bg-white { background-color: #fff; }
.bg-gray-50 { background-color: #fafafa; }
.bg-gray-100 { background-color: #f5f7fa; }
.bg-primary { background-color: #667eea; }
.bg-primary-light { background-color: #f0f4ff; }

/* 文字颜色工具类扩展 */
.text-xs { font-size: 12px; }
.text-sm { font-size: 13px; }
.text-base { font-size: 14px; }
.text-lg { font-size: 16px; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }

/* 过渡动画工具类 */
.transition { transition: all 0.2s ease; }
.transition-fast { transition: all 0.15s ease; }
.transition-slow { transition: all 0.3s ease; }

/* ==================== 响应式优化增强 ==================== */
@media (max-width: 1200px) {
    .layui-form-label {
        width: 100px;
    }
    .layui-input-block {
        margin-left: 120px;
    }
}

@media (max-width: 768px) {
    .search-box .layui-inline {
        width: 100%;
        margin-bottom: 12px;
    }
    .toolbar {
        flex-wrap: wrap;
    }
    .action-buttons {
        flex-wrap: wrap;
    }
}

/* ==================== 打印样式优化 ==================== */
@media print {
    .layui-header,
    .layui-side,
    .layui-footer,
    .toolbar,
    .search-box {
        display: none !important;
    }
    .layui-body {
        margin: 0 !important;
        padding: 0 !important;
    }
    .layui-table {
        border: 1px solid #000;
    }
    .layui-table th,
    .layui-table td {
        border: 1px solid #000;
    }
}

/* ==================== 无障碍优化 ==================== */
/* 焦点可见性 - 仅对需要键盘导航的元素 */
a:focus,
input:focus,
select:focus,
textarea:focus {
    outline: 2px solid #667eea;
    outline-offset: 2px;
}

/* 按钮焦点样式 - 使用更优雅的内阴影效果 */
.layui-btn:focus {
    outline: none;
    box-shadow: inset 0 0 0 2px rgba(102, 126, 234, 0.3);
}

/* 图标按钮焦点样式 */
.icon-btn:focus {
    outline: none;
    box-shadow: inset 0 0 0 2px rgba(102, 126, 234, 0.2);
    background: #f0f4ff;
}

/* 跳过链接（无障碍） */
.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: #667eea;
    color: #fff;
    padding: 8px;
    text-decoration: none;
    z-index: 10000;
}
.skip-link:focus {
    top: 0;
}

/* ==================== 性能优化 ==================== */
/* 减少重绘 */
.will-change-transform {
    will-change: transform;
}
.will-change-opacity {
    will-change: opacity;
}
.will-change-scroll {
    will-change: scroll-position;
}

/* GPU加速 */
.gpu-accelerated {
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
}

