/**
 * Modern UI Design System for Score Management System
 * 针对成绩管理系统量身定制的「现代友好风格」样式系统
 * 确立现代主题为系统全局唯一基准设计系统
 */

/* ==========================================================================
   1. 设计令牌 (Design Tokens)
   ========================================================================== */
:root, [data-theme="modern"] {
    --primary-color: #4f46e5;
    --primary: var(--primary-color);
    --primary-hover: #4338ca;
    --primary-light: #eef2ff;
    --primary-border: #c7d2fe;
    --primary-gradient: linear-gradient(135deg, var(--primary) 0%, #6366f1 100%);
    
    --success: #10b981;
    --success-bg: #ecfdf5;
    --success-border: #a7f3d0;
    --success-text: #047857;

    --warning: #f59e0b;
    --warning-bg: #fffbeb;
    --warning-border: #fde68a;
    --warning-text: #b45309;

    --danger: #ef4444;
    --danger-bg: #fef2f2;
    --danger-border: #fecaca;
    --danger-text: #b91c1c;

    --info: #0ea5e9;
    --info-bg: #f0f9ff;
    --info-border: #bae6fd;
    --info-text: #0369a1;

    --bg-page: #f8fafc;
    --bg-card: #ffffff;
    --bg-sidebar: #0f172a;
    --bg-header: rgba(15, 23, 42, 0.96);
    --bg-logo: #0a0f1d;
    --header-border: rgba(255, 255, 255, 0.08);
    --bg-hover: #f1f5f9;
    --logo-dot: #6366f1;
    --sidebar-menu-active-bg: rgba(79, 70, 229, 0.18);
    --sidebar-menu-active-color: #a5b4fc;
    --dropdown-bg: #1e293b;

    --text-main: #0f172a;
    --text-regular: #334155;
    --text-secondary: #64748b;
    --text-muted: #94a3b8;

    --border-color: #e2e8f0;
    --border-light: #f1f5f9;

    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 14px;
    --radius-xl: 20px;
    --radius-full: 9999px;

    --shadow-subtle: 0 1px 3px 0 rgba(15, 23, 42, 0.04);
    --shadow-card: 0 4px 20px -2px rgba(15, 23, 42, 0.06), 0 2px 6px -1px rgba(15, 23, 42, 0.02);
    --shadow-hover: 0 10px 25px -3px rgba(15, 23, 42, 0.09), 0 4px 10px -2px rgba(15, 23, 42, 0.04);
    --shadow-glow: 0 0 16px rgba(79, 70, 229, 0.25);

    --transition: all 0.22s cubic-bezier(0.4, 0, 0.2, 1);

    --header-height: 50px;
    --tab-height: 42px;
}

/* ==========================================================================
   2. 全局排版、背景与滚动条
   ========================================================================== */
body {
    background-color: var(--bg-page) !important;
    color: var(--text-regular) !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif !important;
    letter-spacing: -0.01em;
    -webkit-font-smoothing: antialiased;
}

::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}
::-webkit-scrollbar-track {
    background: transparent;
}
::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

/* ==========================================================================
   3. 顶部导航栏 (Header)
   ========================================================================== */
.container {
    background: var(--bg-header) !important;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--header-border, rgba(255, 255, 255, 0.08)) !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12) !important;
    height: var(--header-height) !important;
    line-height: var(--header-height) !important;
    position: relative !important;
    z-index: 9999 !important;
    overflow: visible !important;
    transition: background 0.28s ease, border-color 0.28s ease !important;
}

.container .layui-nav,
.container .layui-nav-item {
    overflow: visible !important;
    position: relative !important;
}


.container .logo {
    float: left !important;
    height: 100% !important;
    width: 220px !important;
    box-sizing: border-box !important;
    background: var(--bg-logo, transparent) !important;
    border-right: 1px solid var(--header-border, rgba(255, 255, 255, 0.08)) !important;
    transition: background 0.28s ease, border-color 0.28s ease !important;
}

.container .logo a {
    float: left !important;
    width: 100% !important;
    height: 100% !important;
    box-sizing: border-box !important;
    color: #f8fafc !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    padding-left: 20px !important;
    background: transparent !important;
    display: inline-flex !important;
    align-items: center !important;
}

.container .logo a::before {
    content: '';
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--logo-dot, #6366f1) !important;
    box-shadow: 0 0 10px var(--logo-dot, #6366f1) !important;
    margin-right: 10px;
    flex-shrink: 0;
    transition: background 0.28s ease, box-shadow 0.28s ease !important;
}

.left_open {
    display: flex;
    align-items: center;
    height: 100%;
    float: left;
}
.left_open a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 100% !important;
    background: transparent !important;
    padding: 0 8px 0 16px !important;
    color: #94a3b8 !important;
    transition: var(--transition);
}
.left_open i {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 34px !important;
    height: 34px !important;
    line-height: 34px !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 8px !important;
    color: #cbd5e1 !important;
    font-size: 16px !important;
    margin-top: 0 !important;
    transition: var(--transition) !important;
}
.left_open a:hover i {
    background: var(--sidebar-menu-active-bg, rgba(99, 102, 241, 0.25)) !important;
    border-color: var(--primary) !important;
    color: #ffffff !important;
    box-shadow: 0 0 12px var(--sidebar-menu-active-bg, rgba(99, 102, 241, 0.35)) !important;
}

.container .fast-add .layui-nav-item > a {
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: 8px !important;
    padding: 0 14px !important;
    height: 34px !important;
    line-height: 34px !important;
    margin-top: 8px !important;
    color: #e2e8f0 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    transition: var(--transition) !important;
}
.container .fast-add .layui-nav-item > a:hover {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.25) !important;
    color: #ffffff !important;
}

.container .layui-nav {
    background: transparent !important;
}

.container .layui-nav-item > a {
    color: #cbd5e1 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    transition: var(--transition) !important;
    padding: 0 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.container .layui-nav-item:hover > a,
.container .layui-nav-item.layui-this > a {
    color: #ffffff !important;
}

/* ==========================================================================
   顶部导航栏下拉三角对齐修复 (Header Nav Dropdown Arrow Alignment)
   彻底消除原生 X-Admin 绝对定位 top:20px 导致的三角上浮、不对齐、错位问题
   ========================================================================== */
.container .layui-nav .layui-nav-more,
.container .layui-nav-more {
    position: static !important;
    display: inline-block !important;
    vertical-align: middle !important;
    margin: 0 !important;
    margin-top: 1px !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    width: 0 !important;
    height: 0 !important;
    border-style: solid dashed dashed !important;
    border-width: 4px 4px 0 4px !important;
    border-color: rgba(255, 255, 255, 0.7) transparent transparent !important;
    transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.2s ease !important;
    transform: rotate(0deg) !important;
    pointer-events: none !important;
}

/* 导航项与配色按钮悬停时三角高亮 */
.container .layui-nav-item:hover > a .layui-nav-more,
.container .color-switch-btn:hover .layui-nav-more {
    border-color: #ffffff transparent transparent !important;
}

/* 下拉菜单展开时三角平滑倒转 180 度朝上（防止原生 top 跳动） */
.container .layui-nav-mored,
.container .layui-nav-item.open > a .layui-nav-more,
.container .layui-nav-item.layui-nav-itemed > a .layui-nav-more {
    top: auto !important;
    margin-top: 1px !important;
    transform: rotate(180deg) !important;
    border-style: solid dashed dashed !important;
    border-color: #ffffff transparent transparent !important;
}

.container .layui-nav-child {
    background: var(--dropdown-bg, #1e293b) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35) !important;
    padding: 6px !important;
    top: 48px !important;
    left: 0 !important;
    min-width: 140px !important;
    z-index: 100000 !important;
    display: none;
    line-height: normal !important;
    transition: background 0.28s ease !important;
}

.container ul.right .layui-nav-child {
    left: auto !important;
    right: 0 !important;
}

.container .layui-nav-child::before {
    content: '';
    position: absolute;
    top: -12px;
    left: 0;
    width: 100%;
    height: 12px;
    background: transparent;
}

/* 无论通过鼠标悬停还是点击，均稳定展开下拉菜单 */
.container .layui-nav-item:hover > .layui-nav-child,
.container .layui-nav-item.open > .layui-nav-child,
.container .layui-nav-item.layui-nav-itemed > .layui-nav-child,
.container .layui-nav-child.layui-show,
.container .layui-nav-child.show {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}


.container .layui-nav-child dd a {
    color: #e2e8f0 !important;
    border-radius: var(--radius-sm) !important;
    padding: 8px 16px !important;
    font-size: 13px !important;
    transition: var(--transition) !important;
}

.container .layui-nav-child dd a:hover {
    background: rgba(255, 255, 255, 0.08) !important;
    color: #ffffff !important;
}

/* ==========================================================================
   4. 配色切换器组件样式 (Color Scheme Switcher Widget)
   ========================================================================== */
.container .color-switch-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    padding: 0 12px !important;
    height: 32px !important;
    line-height: 32px !important;
    margin-top: 9px !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: var(--radius-sm) !important;
    color: #e2e8f0 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    transition: var(--transition) !important;
    cursor: pointer;
}
.container .color-switch-btn:hover {
    background: rgba(255, 255, 255, 0.15) !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
    color: #ffffff !important;
}
/* 配色切换按钮前置当前主色指示块 (Single Dynamic Theme Color Swatch) */
.container .color-switch-btn .color-switch-swatch,
.container .color-switch-btn i.layui-icon-theme,
.login-color-picker-title .color-switch-swatch,
.login-color-picker-title i.layui-icon-theme {
    display: inline-block !important;
    width: 11px !important;
    height: 11px !important;
    min-width: 11px !important;
    min-height: 11px !important;
    border-radius: 3px !important;
    background-color: var(--primary) !important;
    box-shadow: 0 0 0 1.5px rgba(255, 255, 255, 0.5), 0 1px 3px rgba(0, 0, 0, 0.3) !important;
    flex-shrink: 0 !important;
    vertical-align: middle !important;
    margin-right: 2px !important;
    font-size: 0 !important;
    color: transparent !important;
    line-height: 11px !important;
    -webkit-mask: none !important;
    mask: none !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
    background-image: none !important;
    transition: background-color 0.28s ease, transform 0.2s ease, box-shadow 0.2s ease !important;
}

.container .color-switch-btn:hover .color-switch-swatch,
.container .color-switch-btn:hover i.layui-icon-theme {
    transform: scale(1.18);
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.85), 0 0 8px var(--primary) !important;
}

/* 彻底隐去右侧多余方块图标，仅保留原生对齐下拉三角 */
.container .color-switch-btn .layui-icon-down {
    display: none !important;
}

/* 下拉调色盘面板 */
.container .color-palette-dropdown {
    min-width: 200px !important;
    padding: 12px 14px !important;
    background: var(--dropdown-bg, #1e293b) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.4), 0 8px 10px -6px rgba(0, 0, 0, 0.3) !important;
    transition: background 0.28s ease !important;
}
.color-palette-header {
    font-size: 11px;
    font-weight: 600;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 10px;
    padding-bottom: 6px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    user-select: none;
}
.color-palette-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 8px;
    align-items: center;
    justify-items: center;
}
.color-palette-item {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background-color: var(--swatch);
    cursor: pointer;
    position: relative;
    box-sizing: border-box;
    border: 2px solid transparent;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}
.color-palette-item:hover {
    transform: scale(1.18);
    box-shadow: 0 0 10px var(--swatch);
}
.color-palette-item.active {
    border-color: #ffffff;
    box-shadow: 0 0 0 2px var(--swatch), 0 0 12px var(--swatch);
    transform: scale(1.1);
}
.color-palette-item.active::after {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: #ffffff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

/* 登录页配色切换条 */
.login-color-switch-bar {
    position: absolute;
    top: 24px;
    right: 28px;
    z-index: 99;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    padding: 6px 14px;
    border-radius: 20px;
    border: 1px solid rgba(255, 255, 255, 0.6);
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.08);
}
.login-color-picker-title {
    font-size: 12px;
    color: #475569;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 4px;
    user-select: none;
}
.login-color-picker-title i {
    color: var(--primary);
    font-size: 14px;
}
.login-color-grid {
    display: flex;
    gap: 6px;
}
.login-color-grid .color-palette-item {
    width: 20px;
    height: 20px;
}



/* ==========================================================================
   5. 左侧菜单导航 (Sidebar)
   ========================================================================== */
.left-nav {
    background: var(--bg-sidebar) !important;
    border-right: 1px solid var(--header-border, rgba(255, 255, 255, 0.06)) !important;
    box-shadow: 2px 0 10px rgba(0, 0, 0, 0.05) !important;
    top: var(--header-height) !important;
    transition: background 0.3s ease, border-color 0.3s ease !important;
}

#side-nav {
    padding: 10px 8px !important;
}

.left-nav #nav li a {
    color: #cbd5e1 !important;
    border-radius: var(--radius-md) !important;
    margin-bottom: 4px !important;
    padding: 10px 14px !important;
    display: flex;
    align-items: center;
    transition: var(--transition) !important;
    border: none !important;
}

.left-nav #nav li a:hover {
    background: rgba(255, 255, 255, 0.06) !important;
    color: #ffffff !important;
}

.left-nav #nav li a.active,
.left-nav #nav li.open > a,
.left-nav .sub-menu li a.active {
    background: var(--sidebar-menu-active-bg) !important;
    color: var(--sidebar-menu-active-color) !important;
    font-weight: 600 !important;
}

.left-nav #nav li a i.iconfont {
    color: #94a3b8 !important;
    margin-right: 10px !important;
    font-size: 16px !important;
    transition: var(--transition);
}

.left-nav #nav li a:hover i.iconfont,
.left-nav #nav li.open > a i.iconfont,
.left-nav #nav li a.active i.iconfont,
.left-nav .sub-menu li a.active i.iconfont {
    color: var(--sidebar-menu-active-color) !important;
}

.left-nav .sub-menu {
    background: rgba(0, 0, 0, 0.16) !important;
    border-radius: var(--radius-md) !important;
    padding: 4px 6px !important;
    margin: 4px 0 8px !important;
}

.left-nav .sub-menu li a {
    padding: 8px 12px 8px 24px !important;
    font-size: 13px !important;
    transition: var(--transition) !important;
}

.left-nav .sub-menu li a:hover {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.08) !important;
}

/* ==========================================================================
   6. 页面 Tab 标签栏与主体布局 (Tab Container & Content Layout)
   ========================================================================== */
.page-content {
    top: var(--header-height) !important;
    background: var(--bg-page) !important;
}

.page-content-bg {
    top: var(--header-height) !important;
}

.layui-tab.tab {
    margin: 0 !important;
    height: 100% !important;
}

.page-content .layui-tab-title {
    background: #ffffff !important;
    border-bottom: 1px solid var(--border-color) !important;
    height: var(--tab-height) !important;
    line-height: var(--tab-height) !important;
    box-sizing: border-box !important;
    padding: 0 12px !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02) !important;
    position: relative !important;
    z-index: 100 !important;
    display: flex !important;
    align-items: flex-end !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
}

.page-content .layui-tab-title::-webkit-scrollbar {
    display: none !important;
    height: 0 !important;
}

.page-content .layui-tab-title li {
    font-size: 13.5px !important;
    font-weight: 500 !important;
    color: var(--text-secondary) !important;
    border: none !important;
    margin-right: 6px !important;
    padding: 0 14px !important;
    height: 34px !important;
    line-height: 34px !important;
    box-sizing: border-box !important;
    border-radius: 8px 8px 0 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    background: transparent !important;
    transition: var(--transition) !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
}

.page-content .layui-tab-title li.home .layui-tab-close {
    display: none !important;
}

.page-content .layui-tab-title li:hover {
    color: var(--primary) !important;
    background: var(--bg-hover) !important;
}

.page-content .layui-tab-title li.layui-this {
    background: var(--bg-page) !important;
    color: var(--primary) !important;
    font-weight: 600 !important;
    border-bottom: 2px solid var(--primary) !important;
}

.page-content .layui-tab-title .layui-this:after {
    display: none !important;
}

.layui-tab-title li .layui-tab-close {
    border-radius: 50% !important;
    width: 16px !important;
    height: 16px !important;
    margin-left: 6px !important;
    color: #64748b !important;
    background-color: transparent !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0 !important;
    cursor: pointer !important;
    position: relative !important;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease !important;
    -webkit-mask: none !important;
    mask: none !important;
}

.layui-tab-title li.layui-this .layui-tab-close {
    color: #475569 !important;
    background-color: rgba(0, 0, 0, 0.05) !important;
}

.layui-tab-title li .layui-tab-close::after {
    content: '' !important;
    display: inline-block !important;
    width: 9px !important;
    height: 9px !important;
    background-color: currentColor !important;
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cline%20x1%3D%2218%22%20y1%3D%226%22%20x2%3D%226%22%20y2%3D%2218%22/%3E%3Cline%20x1%3D%226%22%20y1%3D%226%22%20x2%3D%2218%22%20y2%3D%2218%22/%3E%3C/svg%3E") !important;
    -webkit-mask-image: var(--icon-svg) !important;
    mask-image: var(--icon-svg) !important;
    -webkit-mask-size: contain !important;
    mask-size: contain !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;
    mask-position: center !important;
}

.page-content .layui-tab-title li .layui-tab-close:hover,
.layui-tab-title li .layui-tab-close:hover {
    background-color: #fee2e2 !important;
    color: #ef4444 !important;
    transform: scale(1.15) !important;
}


/* 关键修复：Tab 内容区 top 同步对齐 var(--tab-height)，杜绝遮挡页面内容 */
.page-content .layui-tab-content {
    top: var(--tab-height) !important;
    bottom: 0px !important;
    position: absolute !important;
    width: 100% !important;
    padding: 0px !important;
    overflow: hidden !important;
    background: var(--bg-page) !important;
}

#tab_right {
    top: var(--tab-height) !important;
}

#tab_show {
    top: var(--tab-height) !important;
}

/* 全局子页面顶部与菜单间距扩大：针对所有子页面（即所有 iframe 页面）统一加大顶部距离 */
body:not(.index):not(.login-bg) {
    padding-top: 14px !important;
    box-sizing: border-box !important;
    background-color: var(--bg-page) !important;
}

/* 子页面各类型容器内边距：保证所有子页面（表格、表单、详情、卡片）拥有舒适从容的呼吸距离 */
.x-body {
    padding: 16px 22px 24px !important;
    box-sizing: border-box !important;
    background-color: var(--bg-page) !important;
}

.layui-fluid {
    padding: 14px 22px 24px !important;
    box-sizing: border-box !important;
}

.myrow {
    padding: 14px 22px 24px !important;
    box-sizing: border-box !important;
}

.layui-fluid > .layui-row:first-child,
.x-body > .layui-row:first-child,
.myrow > .layui-row:first-child {
    margin-top: 0 !important;
}

/* ==========================================================================
   7. 面包屑与快捷导航栏
   ========================================================================== */
.x-nav {
    background: #ffffff !important;
    border-bottom: 1px solid var(--border-color) !important;
    padding: 0 20px !important;
    height: 48px !important;
    line-height: 48px !important;
    margin-bottom: 14px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
}

.layui-breadcrumb {
    visibility: visible !important;
}

.layui-breadcrumb a {
    color: var(--text-secondary) !important;
    font-size: 13px !important;
}

.layui-breadcrumb a:hover {
    color: var(--primary) !important;
}

.layui-breadcrumb a cite {
    color: var(--text-main) !important;
    font-weight: 600 !important;
}

/* 列表页右上角刷新按钮现代胶囊化，替换旧版绿色小方块 */
.x-nav .layui-btn,
.x-nav .layui-btn-small,
.x-nav .layui-btn-sm {
    height: 32px !important;
    line-height: 32px !important;
    padding: 0 12px !important;
    border-radius: 8px !important;
    margin-top: 0 !important;
    float: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--primary-light) !important;
    color: var(--primary) !important;
    border: 1px solid var(--primary-border) !important;
    box-shadow: none !important;
    transition: var(--transition) !important;
}

.x-nav .layui-btn:hover,
.x-nav .layui-btn-small:hover,
.x-nav .layui-btn-sm:hover {
    background: var(--primary) !important;
    color: #ffffff !important;
    border-color: var(--primary) !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(79, 70, 229, 0.25) !important;
}

.x-nav .layui-btn .layui-icon {
    line-height: 1 !important;
    font-size: 15px !important;
    margin: 0 !important;
}

/* ==========================================================================
   8. 核心成绩数据表格 (Score Tables Overhaul)
   ========================================================================== */
.layui-table-view {
    border: 1px solid var(--border-color) !important;
    border-radius: var(--radius-lg) !important;
    background: #ffffff !important;
    box-shadow: var(--shadow-card) !important;
    overflow: hidden !important;
    margin: 10px 0 !important;
}

.layui-table-header {
    background: #f8fafc !important;
    border-bottom: 1px solid var(--border-color) !important;
}

.layui-table-header th {
    background: #f8fafc !important;
    color: var(--text-secondary) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-transform: none;
    height: 46px !important;
    border-color: var(--border-color) !important;
    vertical-align: middle !important;
}

.layui-table td {
    border-color: var(--border-light) !important;
    color: var(--text-regular) !important;
    font-size: 13.5px !important;
    height: 46px !important;
    vertical-align: middle !important;
    transition: background-color 0.15s ease;
}

/* --------------------------------------------------------------------------
   8.1 表格复选框/单选/序号列：消除过宽空白，实现上下左右绝对居中
   -------------------------------------------------------------------------- */

/* 强制限定复选框与单选所在列宽为 48px，消除过宽空白 */
th:has(.laytable-cell-checkbox),
td:has(.laytable-cell-checkbox),
th:has(.laytable-cell-radio),
td:has(.laytable-cell-radio),
th.laytable-cell-checkbox,
td.laytable-cell-checkbox {
    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
    padding: 0 !important;
    text-align: center !important;
    vertical-align: middle !important;
    box-sizing: border-box !important;
}

/* 序号列紧凑定宽与居中 */
th:has(.laytable-cell-numbers),
td:has(.laytable-cell-numbers),
th.laytable-cell-numbers,
td.laytable-cell-numbers {
    width: 50px !important;
    min-width: 50px !important;
    max-width: 50px !important;
    padding: 0 !important;
    text-align: center !important;
    vertical-align: middle !important;
    box-sizing: border-box !important;
}

/* 复选框单元格容器：Flex 弹性盒布局实现真正的垂直、水平绝对居中 */
.laytable-cell-checkbox,
.laytable-cell-radio {
    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
    height: 46px !important;
    min-height: 46px !important;
    line-height: 46px !important;
    padding: 0 !important;
    margin: 0 auto !important;
    text-align: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}

.laytable-cell-numbers {
    width: 50px !important;
    min-width: 50px !important;
    max-width: 50px !important;
    height: 46px !important;
    line-height: 46px !important;
    padding: 0 !important;
    margin: 0 auto !important;
    text-align: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
}

/* 表格内复选框元素重置与尺寸精准锁定 (18x18px) */
.laytable-cell-checkbox .layui-form-checkbox[lay-skin="primary"] {
    position: relative !important;
    top: 0 !important;
    left: 0 !important;
    right: auto !important;
    bottom: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    line-height: 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    vertical-align: middle !important;
    background: transparent !important;
    border: none !important;
    -webkit-mask: none !important;
    mask: none !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
}

/* 复选框图标方块：保证未选中状态下常驻清晰的方形边框方块！ */
.laytable-cell-checkbox .layui-form-checkbox[lay-skin="primary"] i {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    line-height: 18px !important;
    font-size: 0 !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 4px !important;
    border: 1.5px solid #94a3b8 !important;
    background-color: #ffffff !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08) !important;
    color: transparent !important;
    -webkit-mask: none !important;
    mask: none !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
    transition: all 0.2s ease !important;
}

/* 复选框悬停微交互 */
.laytable-cell-checkbox .layui-form-checkbox[lay-skin="primary"]:hover i {
    border-color: var(--primary, #4f46e5) !important;
    box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.18) !important;
}

/* 复选框选中状态：方块填满品牌蓝，边框也是品牌蓝 */
.laytable-cell-checkbox .layui-form-checked[lay-skin="primary"] i,
.laytable-cell-checkbox .layui-form-checked[lay-skin="primary"]:hover i {
    border-color: var(--primary, #4f46e5) !important;
    background-color: var(--primary, #4f46e5) !important;
    box-shadow: 0 2px 4px rgba(79, 70, 229, 0.25) !important;
}

/* 选中时的对号由 ::after 独立绘制，纯白矢量对号 */
.laytable-cell-checkbox .layui-form-checked[lay-skin="primary"] i::after {
    content: '' !important;
    display: block !important;
    width: 4.5px !important;
    height: 8.5px !important;
    border: solid #ffffff !important;
    border-width: 0 2px 2px 0 !important;
    transform: rotate(45deg) !important;
    margin-top: -2px !important;
    background: transparent !important;
    box-sizing: content-box !important;
}
.laytable-cell-checkbox .layui-form-checkbox[lay-skin="primary"]:not(.layui-form-checked) i::after {
    display: none !important;
}


.layui-table tbody tr:hover,
.layui-table-hover {
    background-color: #f8fafc !important;
}

/* 斑马纹微质感 */
.layui-table tbody tr:nth-child(even) {
    background-color: #fafbfc;
}

/* 工具栏与表头操作栏 */
.layui-table-tool {
    background: #ffffff !important;
    border-bottom: 1px solid var(--border-color) !important;
    padding: 10px 16px !important;
    min-height: 48px !important;
}

.layui-table-tool-self .layui-inline {
    border-color: var(--border-color) !important;
    border-radius: var(--radius-sm) !important;
}

/* 分页器 (Pagination) */
.layui-table-page {
    border-top: 1px solid var(--border-color) !important;
    background: #ffffff !important;
    padding: 10px 16px !important;
}

.layui-laypage a,
.layui-laypage span {
    border-radius: var(--radius-sm) !important;
    margin: 0 3px !important;
    font-size: 13px !important;
    border-color: var(--border-color) !important;
    color: var(--text-secondary) !important;
    transition: var(--transition);
}

.layui-laypage a:hover {
    color: var(--primary) !important;
    border-color: var(--primary-border) !important;
}

.layui-laypage .layui-laypage-curr .layui-laypage-em {
    background-color: var(--primary) !important;
    border-radius: var(--radius-sm) !important;
}

/* 成绩操作条微按钮由第 11 节统一接管 */

/* ==========================================================================
   9. 状态徽章体系 (Pill Status Badges)
   ========================================================================== */
.layui-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 10px;
    border-radius: var(--radius-full);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.02em;
    border: 1px solid transparent;
}

/* 优秀 / 成功状态 */
.layui-bg-green {
    background-color: var(--success-bg) !important;
    color: var(--success-text) !important;
    border-color: var(--success-border) !important;
}

/* 良好 / 进行中状态 */
.layui-bg-blue {
    background-color: var(--info-bg) !important;
    color: var(--info-text) !important;
    border-color: var(--info-border) !important;
}

/* 及格 / 预警状态 */
.layui-bg-orange {
    background-color: var(--warning-bg) !important;
    color: var(--warning-text) !important;
    border-color: var(--warning-border) !important;
}

/* 不及格 / 危险状态 */
.layui-bg-red {
    background-color: var(--danger-bg) !important;
    color: var(--danger-text) !important;
    border-color: var(--danger-border) !important;
}

/* ==========================================================================
   10. 筛选折叠面板与表单控件 (Forms & Filters)
   ========================================================================== */
.layui-collapse {
    border: 1px solid var(--border-color) !important;
    border-radius: var(--radius-lg) !important;
    background: #ffffff !important;
    box-shadow: var(--shadow-card) !important;
    overflow: hidden;
}

.layui-colla-title {
    position: relative !important;
    background: #ffffff !important;
    color: var(--text-main) !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    height: 44px !important;
    line-height: 44px !important;
    border-bottom: 1px solid var(--border-light) !important;
    padding: 0 16px 0 38px !important;
    margin: 0 !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.layui-colla-icon {
    position: absolute !important;
    left: 14px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
    width: 14px !important;
    height: 14px !important;
    line-height: 14px !important;
    font-size: 0 !important;
    color: var(--text-secondary, #64748b) !important;
    background-color: currentColor !important;
    transition: transform 0.2s ease !important;
}

.layui-colla-content {
    padding: 16px 20px !important;
}

/* 全局表单标签 (非 pane 与 pane 通用基础) */
.layui-form-label {
    height: 38px !important;
    line-height: 20px !important;
    padding: 8px 15px !important;
    box-sizing: border-box !important;
    color: var(--text-secondary) !important;
    font-size: 13.5px !important;
}

/* pane 方块模式下的表单标签 (与输入框高度 38px 严丝合缝完全一致，消除高差) */
.layui-form-pane .layui-form-label {
    height: 38px !important;
    min-height: 38px !important;
    line-height: 20px !important;
    padding: 8px 15px !important;
    box-sizing: border-box !important;
    background: #f8fafc !important;
    border-color: var(--border-color) !important;
    color: var(--text-secondary) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    border-radius: var(--radius-sm) 0 0 var(--radius-sm) !important;
}

/* 支持自适应高度多行标签 (如显式标注 style="height: 100%" 的班级多选/权限标签) */
.layui-form-pane .layui-form-label[style*="height: 100%"],
.layui-form-pane .layui-form-label[style*="height:100%"] {
    height: 100% !important;
    min-height: 38px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* 填充区输入框、选择器及下拉框 (统一 38px 高度与盒模型) */
.layui-input,
.layui-select,
.layui-form-select .layui-input {
    height: 38px !important;
    line-height: 38px !important;
    padding: 0 12px !important;
    border-color: var(--border-color) !important;
    border-radius: var(--radius-sm) !important;
    font-size: 13.5px !important;
    color: var(--text-main) !important;
    background-color: #ffffff !important;
    box-sizing: border-box !important;
    transition: var(--transition) !important;
}

/* 文本域盒模型与内边距 */
.layui-textarea {
    border-color: var(--border-color) !important;
    border-radius: var(--radius-sm) !important;
    font-size: 13.5px !important;
    color: var(--text-main) !important;
    background-color: #ffffff !important;
    padding: 8px 12px !important;
    box-sizing: border-box !important;
    transition: var(--transition) !important;
}

.layui-input:focus,
.layui-select:focus,
.layui-form-select .layui-input:focus,
.layui-textarea:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.12) !important;
}

/* 只读与禁用输入框样式 */
.layui-input[readonly],
.layui-input.layui-disabled,
.layui-input:disabled {
    background-color: var(--bg-hover, #f1f5f9) !important;
    color: var(--text-muted, #64748b) !important;
    cursor: not-allowed !important;
    border-color: var(--border-color, #e2e8f0) !important;
    user-select: none;
}

/* 在 layui-form-pane 拼接模式下：输入框左平直、右圆角，与左侧标签完美拼接对接无缝隙 */
.layui-form-pane .layui-input-block > .layui-input,
.layui-form-pane .layui-input-block > .layui-form-select .layui-input,
.layui-form-pane .layui-input-inline > .layui-input,
.layui-form-pane .layui-input-inline > .layui-form-select .layui-input {
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0 !important;
}

/* 表单容器块最小高度保持 38px 统一 */
.layui-form-pane .layui-input-block {
    min-height: 38px !important;
}
.layui-form-pane .layui-input-inline {
    min-height: 38px !important;
}
.layui-form-pane .layui-form-item {
    min-height: 38px;
}

/* 文本域在 pane 模式下的标签顶置与底框拼接 */
.layui-form-pane .layui-form-text .layui-form-label {
    float: none !important;
    width: 100% !important;
    border-radius: var(--radius-sm) var(--radius-sm) 0 0 !important;
    border-bottom: 0 !important;
    text-align: left !important;
    height: 38px !important;
    line-height: 20px !important;
}
.layui-form-pane .layui-form-text .layui-textarea {
    border-radius: 0 0 var(--radius-sm) var(--radius-sm) !important;
}

/* pane 复合项 (如带有 pane 属性的 radio/checkbox 容器) */
.layui-form-pane .layui-form-item[pane] {
    border: 1px solid var(--border-color) !important;
    border-radius: var(--radius-sm) !important;
    min-height: 38px !important;
}
.layui-form-pane .layui-form-item[pane] .layui-form-label {
    border-width: 0 1px 0 0 !important;
    height: 100% !important;
}
.layui-form-pane .layui-form-item[pane] .layui-input-block {
    min-height: 38px !important;
    padding-left: 10px !important;
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
}

/* --- 全面消除经典 Layui 绿色表单组件 (#009688 / #5FB878) --- */

/* 下拉菜单高亮选项 */
.layui-form-select dl dd.layui-this {
    background-color: var(--primary) !important;
    color: #ffffff !important;
}
.layui-form-select dl dd:hover {
    background-color: var(--bg-hover) !important;
    color: var(--primary) !important;
}

/* 常规按钮型复选框 (无 lay-skin 时) */
.layui-form-checkbox:not([lay-skin]) {
    border-radius: var(--radius-sm) !important;
    height: 32px !important;
    line-height: 32px !important;
}
.layui-form-checked:not([lay-skin]),
.layui-form-checked:not([lay-skin]):hover {
    border-color: var(--primary) !important;
}
.layui-form-checked:not([lay-skin]) span,
.layui-form-checked:not([lay-skin]):hover span {
    background-color: var(--primary) !important;
}
.layui-form-checked:not([lay-skin]) i,
.layui-form-checked:not([lay-skin]):hover i {
    color: var(--primary) !important;
}

/* 原生/主色调复选框 (lay-skin="primary") */
.layui-form-item .layui-form-checkbox[lay-skin=primary],
.layui-form-pane .layui-form-checkbox[lay-skin=primary],
.layui-form-checkbox[lay-skin=primary] {
    height: auto !important;
    line-height: 18px !important;
    min-width: 18px !important;
    background: transparent !important;
    border: none !important;
    margin-top: 6px !important;
    padding-left: 24px !important;
    position: relative !important;
}

/* 未选中状态的小方框 */
.layui-form-item .layui-form-checkbox[lay-skin=primary]:not(.layui-form-checked) i,
.layui-form-pane .layui-form-checkbox[lay-skin=primary]:not(.layui-form-checked) i,
.layui-form-checkbox[lay-skin=primary]:not(.layui-form-checked) i {
    border-radius: 4px !important;
    border: 1.5px solid #94a3b8 !important;
    background-color: #ffffff !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05) !important;
    transition: all 0.2s ease !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    line-height: 18px !important;
    font-size: 0 !important;
    color: transparent !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
}

.layui-form-item .layui-form-checkbox[lay-skin=primary]:not(.layui-form-checked):hover i,
.layui-form-pane .layui-form-checkbox[lay-skin=primary]:not(.layui-form-checked):hover i,
.layui-form-checkbox[lay-skin=primary]:not(.layui-form-checked):hover i {
    border-color: var(--primary, #4f46e5) !important;
    box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.15) !important;
}

/* 选中状态的小方框（高特异性绝对互斥） */
.layui-form-item .layui-form-checked[lay-skin=primary] i,
.layui-form-pane .layui-form-checked[lay-skin=primary] i,
.layui-form-checked[lay-skin=primary] i,
.layui-form-item .layui-form-checked[lay-skin=primary]:hover i,
.layui-form-pane .layui-form-checked[lay-skin=primary]:hover i,
.layui-form-checked[lay-skin=primary]:hover i {
    border-radius: 4px !important;
    border: 1.5px solid var(--primary, #4f46e5) !important;
    background-color: var(--primary, #4f46e5) !important;
    box-shadow: 0 2px 4px rgba(79, 70, 229, 0.25) !important;
    transition: all 0.2s ease !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    line-height: 18px !important;
    font-size: 0 !important;
    color: transparent !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
}

/* 选中状态的纯白矢量对勾 */
.layui-form-item .layui-form-checked[lay-skin=primary] i::after,
.layui-form-pane .layui-form-checked[lay-skin=primary] i::after,
.layui-form-checked[lay-skin=primary] i::after {
    content: '' !important;
    display: block !important;
    width: 4.5px !important;
    height: 8.5px !important;
    border: solid #ffffff !important;
    border-width: 0 2px 2px 0 !important;
    transform: rotate(45deg) !important;
    margin-top: -2px !important;
    background: transparent !important;
    box-sizing: content-box !important;
}

.layui-form-checkbox[lay-skin=primary]:not(.layui-form-checked) i::after {
    display: none !important;
}

/* ==========================================================================
   单选框 (Radio) 现代化体系
   彻底消除陈旧字体图标冲突与紫方块/黑圈失真，重构极简现代微交互圆环
   ========================================================================== */

/* 单选框容器 */
.layui-form-radio,
.layui-form-item .layui-form-radio,
.layui-form-pane .layui-form-radio {
    display: inline-flex !important;
    align-items: center !important;
    margin: 4px 20px 4px 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    cursor: pointer !important;
    font-size: 0 !important;
    vertical-align: middle !important;
    user-select: none !important;
    transition: var(--transition) !important;
}

/* 表格内部嵌入的单选框居中紧凑处理 */
.laytable-cell-radio .layui-form-radio {
    margin: 0 !important;
    padding: 0 !important;
}
.laytable-cell-radio .layui-form-radio > div {
    display: none !important;
}

/* 单选框文字标签 */
.layui-form-radio > div,
.layui-form-item .layui-form-radio > div,
.layui-form-pane .layui-form-radio > div {
    font-size: 14px !important;
    color: var(--text-regular, #334155) !important;
    margin-left: 7px !important;
    padding: 0 !important;
    line-height: 1.5 !important;
    display: inline-block !important;
    transition: color 0.2s ease !important;
}

/* 单选框文字悬停与选中高亮 */
.layui-form-radio:hover > div {
    color: var(--primary, #4f46e5) !important;
}
.layui-form-radioed > div,
.layui-form-item .layui-form-radioed > div,
.layui-form-pane .layui-form-radioed > div {
    color: var(--primary, #4f46e5) !important;
    font-weight: 500 !important;
}

/* 单选框圆形外圈 - 消除字体文本与 SVG 遮罩冲突，构建现代微线条纯净外环 */
.layui-form-radio > i,
.layui-form-item .layui-form-radio > i,
.layui-form-pane .layui-form-radio > i,
.layui-form-radio > i.layui-icon,
.layui-form-radio > i[data-modern-icon] {
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    border-radius: 50% !important;
    border: 1.5px solid #94a3b8 !important;
    background-color: #ffffff !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 0 !important;
    color: transparent !important;
    line-height: 18px !important;
    vertical-align: middle !important;
    overflow: visible !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05) !important;
    transition: border-color 0.2s cubic-bezier(0.4, 0, 0.2, 1),
                background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1),
                box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
    -webkit-mask: none !important;
    mask: none !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
    background-image: none !important;
}

/* 彻底隐去伪类与旧字体图标 */
.layui-form-radio > i::before {
    display: none !important;
    content: "" !important;
}

/* 单选框未选中时悬停高亮 */
.layui-form-radio:hover > i {
    border-color: var(--primary, #4f46e5) !important;
    box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.15) !important;
}

/* 单选框核心选中圆点 (::after) - 未选中缩放至 0 */
.layui-form-radio > i::after,
.layui-form-item .layui-form-radio > i::after,
.layui-form-pane .layui-form-radio > i::after {
    content: '' !important;
    display: block !important;
    width: 8px !important;
    height: 8px !important;
    border-radius: 50% !important;
    background-color: var(--primary, #4f46e5) !important;
    transform: scale(0) !important;
    opacity: 0 !important;
    transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1),
                opacity 0.2s ease !important;
    box-sizing: border-box !important;
    -webkit-mask: none !important;
    mask: none !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
}

/* 单选框选中态 (Radioed) */
.layui-form-radioed > i,
.layui-form-item .layui-form-radioed > i,
.layui-form-pane .layui-form-radioed > i {
    border-color: var(--primary, #4f46e5) !important;
    background-color: #ffffff !important;
    box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.15), 0 1px 3px rgba(79, 70, 229, 0.2) !important;
}

/* 选中态内部核心圆点弹性弹出 */
.layui-form-radioed > i::after,
.layui-form-item .layui-form-radioed > i::after,
.layui-form-pane .layui-form-radioed > i::after {
    transform: scale(1) !important;
    opacity: 1 !important;
    background-color: var(--primary, #4f46e5) !important;
}

/* 禁用态 (Disabled) */
.layui-radio-disbaled,
.layui-form-radio.layui-disabled {
    cursor: not-allowed !important;
    opacity: 0.6 !important;
}
.layui-radio-disbaled > i,
.layui-form-radio.layui-disabled > i {
    border-color: #cbd5e1 !important;
    background-color: #f1f5f9 !important;
    box-shadow: none !important;
}
.layui-radio-disbaled > div,
.layui-form-radio.layui-disabled > div {
    color: var(--text-muted, #94a3b8) !important;
    cursor: not-allowed !important;
}
.layui-radio-disbaled.layui-form-radioed > i::after {
    background-color: #94a3b8 !important;
}

/* 开关 Switch 现代化与品牌蓝 */
.layui-form-switch {
    border-radius: 20px !important;
    transition: var(--transition) !important;
}
.layui-form-onswitch {
    border-color: var(--primary) !important;
    background-color: var(--primary) !important;
}

/* 表格内直接编辑框焦点 */
.layui-table-edit:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 2px rgba(79, 70, 229, 0.15) !important;
}

/* ==========================================================================
   11. 现代按钮与图标体系 (Buttons & Micro-interactions)
   ========================================================================== */

/* 通用按钮基类 - 彻底消除默认 Layui 绿 (#009688) */
.layui-btn {
    background: var(--primary-gradient) !important;
    color: #ffffff !important;
    border-radius: 8px !important;
    font-weight: 500 !important;
    font-size: 13.5px !important;
    height: 36px !important;
    line-height: 36px !important;
    padding: 0 16px !important;
    border: none !important;
    box-shadow: 0 2px 6px rgba(79, 70, 229, 0.22) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    transition: var(--transition) !important;
    vertical-align: middle !important;
    cursor: pointer !important;
}

.layui-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(79, 70, 229, 0.32) !important;
    filter: brightness(1.05);
}

.layui-btn:active {
    transform: translateY(0);
    box-shadow: 0 2px 4px rgba(79, 70, 229, 0.2) !important;
}

/* 大尺寸按钮 (Large) */
.layui-btn-lg {
    height: 42px !important;
    line-height: 42px !important;
    padding: 0 22px !important;
    font-size: 15px !important;
    border-radius: 10px !important;
}

/* 中/小尺寸按钮 (Small / Sm) - 彻底告别原版 30px 绿按钮 */
.layui-btn-sm,
.layui-btn-small {
    height: 32px !important;
    line-height: 32px !important;
    padding: 0 13px !important;
    font-size: 12.5px !important;
    border-radius: 7px !important;
}

/* 微尺寸按钮 (Extra Small / Mini) - 彻底告别原版 22px 挤压按钮 */
.layui-btn-xs,
.layui-btn-mini,
a.layui-btn-xs {
    height: 28px !important;
    line-height: 28px !important;
    min-width: 28px !important;
    padding: 0 8px !important;
    font-size: 12px !important;
    border-radius: 6px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: none !important;
}

/* 按钮内图标大小及对齐微调 */
.layui-btn .layui-icon,
.layui-btn i {
    font-size: 15px !important;
    line-height: 1 !important;
    margin-right: 2px !important;
    vertical-align: middle !important;
}
.layui-btn-sm .layui-icon,
.layui-btn-sm i,
.layui-btn-small .layui-icon,
.layui-btn-small i {
    font-size: 14px !important;
}
.layui-btn-xs .layui-icon,
.layui-btn-xs i,
a.layui-btn-xs i {
    font-size: 13px !important;
    margin-right: 0 !important;
}

/* 危险操作按钮 (Danger) */
.layui-btn-danger {
    background: linear-gradient(135deg, #ef4444 0%, #f43f5e 100%) !important;
    box-shadow: 0 2px 6px rgba(239, 68, 68, 0.25) !important;
}
.layui-btn-danger:hover {
    box-shadow: 0 6px 14px rgba(239, 68, 68, 0.35) !important;
}

/* 警告操作按钮 (Warm) */
.layui-btn-warm {
    background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%) !important;
    box-shadow: 0 2px 6px rgba(245, 158, 11, 0.25) !important;
}
.layui-btn-warm:hover {
    box-shadow: 0 6px 14px rgba(245, 158, 11, 0.35) !important;
}

/* 信息操作按钮 (Normal) */
.layui-btn-normal {
    background: linear-gradient(135deg, #0ea5e9 0%, #38bdf8 100%) !important;
    box-shadow: 0 2px 6px rgba(14, 165, 233, 0.25) !important;
}
.layui-btn-normal:hover {
    box-shadow: 0 6px 14px rgba(14, 165, 233, 0.35) !important;
}

/* 次级/幽灵按钮 (Primary / Ghost) */
.layui-btn-primary {
    background: #ffffff !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-regular) !important;
    box-shadow: var(--shadow-subtle) !important;
}
.layui-btn-primary:hover {
    border-color: var(--primary) !important;
    color: var(--primary) !important;
    background: var(--primary-light) !important;
}

/* 禁用按钮 (Disabled) */
.layui-btn-disabled,
.layui-btn-disabled:hover {
    background: #f1f5f9 !important;
    border: 1px solid #e2e8f0 !important;
    color: #94a3b8 !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
    transform: none !important;
}

/* 工具栏容器按钮组 (.layui-btn-container) */
.layui-btn-container {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    font-size: 13px !important;
}
.layui-btn-container .layui-btn {
    margin: 0 !important;
    height: 34px !important;
    line-height: 34px !important;
    padding: 0 14px !important;
    font-size: 13px !important;
    border-radius: 8px !important;
}

/* 表格单元格微操作按钮语义化色彩 (Table Action Pills) */
.layui-table-cell a.layui-btn-xs,
a.layui-btn-xs {
    margin: 0 2px !important;
    border: 1px solid transparent !important;
    background: var(--bg-hover) !important;
    color: var(--text-secondary) !important;
    cursor: pointer !important;
    transition: var(--transition) !important;
}
/* 删除按钮 */
.layui-table-cell a[lay-event="del"],
.layui-table-cell a[lay-event="dels"],
.layui-table-cell a[title*="删"],
a.layui-btn-xs[lay-event="del"] {
    background: #fef2f2 !important;
    color: #ef4444 !important;
    border-color: #fecaca !important;
}
.layui-table-cell a[lay-event="del"]:hover,
.layui-table-cell a[title*="删"]:hover,
a.layui-btn-xs[lay-event="del"]:hover {
    background: #ef4444 !important;
    color: #ffffff !important;
    transform: translateY(-1px);
}
/* 编辑按钮 */
.layui-table-cell a[lay-event="edit"],
.layui-table-cell a[title*="编"],
a.layui-btn-xs[lay-event="edit"] {
    background: #eef2ff !important;
    color: #4f46e5 !important;
    border-color: #c7d2fe !important;
}
.layui-table-cell a[lay-event="edit"]:hover,
.layui-table-cell a[title*="编"]:hover,
a.layui-btn-xs[lay-event="edit"]:hover {
    background: #4f46e5 !important;
    color: #ffffff !important;
    transform: translateY(-1px);
}
/* 查看/详情按钮 */
.layui-table-cell a[lay-event="detail"],
.layui-table-cell a[lay-event="search"],
.layui-table-cell a[title*="录入"],
.layui-table-cell a[title*="查看"],
a.layui-btn-xs[lay-event="detail"] {
    background: #f0f9ff !important;
    color: #0284c7 !important;
    border-color: #bae6fd !important;
}
.layui-table-cell a[lay-event="detail"]:hover,
.layui-table-cell a[title*="录入"]:hover,
a.layui-btn-xs[lay-event="detail"]:hover {
    background: #0284c7 !important;
    color: #ffffff !important;
    transform: translateY(-1px);
}
/* 图表按钮 */
.layui-table-cell a[lay-event="chengji"],
.layui-table-cell a[title*="图表"],
a.layui-btn-xs[lay-event="chengji"] {
    background: #ecfdf5 !important;
    color: #059669 !important;
    border-color: #a7f3d0 !important;
}
.layui-table-cell a[lay-event="chengji"]:hover,
.layui-table-cell a[title*="图表"]:hover,
a.layui-btn-xs[lay-event="chengji"]:hover {
    background: #059669 !important;
    color: #ffffff !important;
    transform: translateY(-1px);
}

/* 表格自带列工具栏 (筛选、导出、打印图标卡片化) */
.layui-table-tool-self .layui-inline[lay-event] {
    width: 32px !important;
    height: 32px !important;
    line-height: 32px !important;
    border-radius: 8px !important;
    border-color: var(--border-color) !important;
    background: #ffffff !important;
    color: var(--text-secondary) !important;
    transition: var(--transition) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
}
.layui-table-tool-self .layui-inline[lay-event]:hover {
    border-color: var(--primary) !important;
    color: var(--primary) !important;
    background: var(--primary-light) !important;
    transform: translateY(-1px);
}

/* ==========================================================================
   12. 看板与卡片系统 (Welcome & Cards)
   ========================================================================== */
.layui-card {
    border-radius: var(--radius-lg) !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: var(--shadow-card) !important;
    background: #ffffff !important;
    transition: var(--transition);
}

.layui-card:hover {
    box-shadow: var(--shadow-hover) !important;
}

.layui-elem-quote {
    border-left: 4px solid var(--primary) !important;
    background: var(--bg-page) !important;
    border-radius: var(--radius-md) !important;
    padding: 16px 20px !important;
    color: var(--text-regular) !important;
    font-size: 14px !important;
}

.x-admin-backlog-body {
    border-radius: var(--radius-lg) !important;
    border: 1px solid var(--border-color) !important;
    background: #ffffff !important;
    padding: 18px 20px !important;
    box-shadow: var(--shadow-card) !important;
    transition: var(--transition) !important;
}

.x-admin-backlog-body:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-hover) !important;
    border-color: var(--primary-border) !important;
}

.x-admin-backlog-body h3 {
    color: var(--text-secondary) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
}

.x-admin-backlog-body p cite {
    color: var(--primary) !important;
    font-size: 26px !important;
    font-weight: 700 !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}

/* ==========================================================================
   13. 登录页现代化 (Login Page Refactor)
   ========================================================================== */
body.login-bg {
    background: radial-gradient(circle at 10% 20%, #1e1b4b 0%, #0f172a 90%) !important;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

body.login-bg::before {
    content: '';
    position: absolute;
    width: 480px;
    height: 480px;
    background: radial-gradient(circle, rgba(79, 70, 229, 0.25) 0%, transparent 70%);
    top: 15%;
    left: 20%;
    border-radius: 50%;
    pointer-events: none;
    animation: floatOrb 8s ease-in-out infinite alternate;
}

body.login-bg::after {
    content: '';
    position: absolute;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(14, 165, 233, 0.2) 0%, transparent 70%);
    bottom: 10%;
    right: 20%;
    border-radius: 50%;
    pointer-events: none;
    animation: floatOrb 10s ease-in-out infinite alternate-reverse;
}

@keyframes floatOrb {
    0% { transform: translateY(0px) scale(1); }
    100% { transform: translateY(-30px) scale(1.08); }
}

.login {
    background: rgba(255, 255, 255, 0.92) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
    border-radius: var(--radius-xl) !important;
    border: 1px solid rgba(255, 255, 255, 0.4) !important;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.35) !important;
    margin: 0 auto !important;
    max-width: 440px !important;
    width: 92% !important;
    padding: 40px 36px 32px !important;
    position: relative;
    z-index: 10;
}

.login .message {
    background: transparent !important;
    border: none !important;
    color: var(--text-main) !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    text-align: center !important;
    padding: 0 0 20px 0 !important;
    letter-spacing: -0.02em;
}

.login #darkbannerwrap {
    display: none !important;
}

.login input[type="text"],
.login input[type="password"] {
    border: 1px solid var(--border-color) !important;
    border-radius: var(--radius-md) !important;
    height: 44px !important;
    font-size: 14px !important;
    padding-left: 16px !important;
    background: #ffffff !important;
}

.login input[type="submit"] {
    background: var(--primary-gradient) !important;
    border-radius: var(--radius-md) !important;
    height: 44px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    box-shadow: 0 4px 12px rgba(79, 70, 229, 0.3) !important;
    width: 100% !important;
    float: none !important;
    margin-top: 10px !important;
    transition: var(--transition) !important;
}

.login input[type="submit"]:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(79, 70, 229, 0.4) !important;
}

/* 登录表单间隔线：背景与卡片一致，杜绝白条色差 */
.login hr,
.login hr {
    background: transparent !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.login hr.hr15 {
    height: 15px !important;
}
.login hr.hr20 {
    height: 20px !important;
}



/* 登录页滑块验证现代化与高对比度（滑块按钮初始与常态完全清晰可见） */
.login .slider-item,
.slider-item {
    height: 44px !important;
    line-height: 44px !important;
    border-radius: var(--radius-md) !important;
    border: 1.5px solid #cbd5e1 !important;
    background-color: #f8fafc !important;
    box-shadow: inset 0 1px 3px rgba(15, 23, 42, 0.04) !important;
    overflow: hidden !important;
    position: relative !important;
    box-sizing: border-box !important;
}
.login .slider-text,
.slider-text {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    line-height: 41px !important;
    text-align: center !important;
    color: #475569 !important;
    font-size: 13.5px !important;
    font-weight: 500 !important;
    letter-spacing: 0.5px !important;
    z-index: 15 !important;
    pointer-events: none !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    transition: color 0.25s ease !important;
}
.login .slider-text.slider-text-success,
.slider-item .slider-text-success,
.slider-text.slider-text-success {
    color: #ffffff !important;
    font-weight: 600 !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.18) !important;
}
.login .slider-bg,
.slider-item .slider-bg,
.slider-bg {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    height: 100% !important;
    width: 0;
    background: var(--primary-gradient) !important;
    border-radius: var(--radius-md) 0 0 var(--radius-md) !important;
    z-index: 10 !important;
    pointer-events: none !important;
}
.login .slider-bg.slider-bg-success,
.slider-item .slider-bg-success,
.slider-bg.slider-bg-success {
    background: linear-gradient(135deg, #10b981 0%, #059669 100%) !important;
    border-radius: var(--radius-md) !important;
}
.login .slider-btn,
.slider-item .slider-btn,
.slider-btn {
    width: 48px !important;
    height: 100% !important;
    position: absolute !important;
    top: 0 !important;
    left: 0;
    border-radius: var(--radius-md) !important;
    border: 1.5px solid #cbd5e1 !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
    color: var(--primary) !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12) !important;
    cursor: grab !important;
    cursor: -webkit-grab !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    z-index: 20 !important;
    -webkit-mask: none !important;
    mask: none !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
    transition: box-shadow 0.2s ease, border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}
.login .slider-btn:hover,
.slider-item .slider-btn:hover,
.slider-btn:hover {
    border-color: var(--primary) !important;
    box-shadow: 0 4px 12px rgba(79, 70, 229, 0.25) !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
    color: var(--primary) !important;
}
.login .slider-btn:active,
.slider-item .slider-btn:active,
.slider-btn:active {
    cursor: grabbing !important;
    cursor: -webkit-grabbing !important;
    border-color: var(--primary) !important;
    box-shadow: 0 2px 8px rgba(79, 70, 229, 0.3) !important;
}
.login .slider-btn-success,
.slider-item .slider-btn-success,
.slider-btn-success {
    color: #ffffff !important;
    border-color: #059669 !important;
    background: #10b981 !important;
    background-color: #10b981 !important;
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.35) !important;
    cursor: default !important;
}
.login .slider-btn svg,
.slider-item .slider-btn svg,
.slider-btn svg,
.slider-btn .slider-btn-icon {
    width: 20px !important;
    height: 20px !important;
    color: inherit !important;
    stroke: currentColor !important;
    pointer-events: none !important;
    flex-shrink: 0 !important;
}

/* 未验证通过状态（初始/拖动中/未到底弹回/复位）：仅展示两个 >> 拖动提示，隐藏对号 */
.slider-btn .slider-icon-arrow,
.slider-btn svg.slider-icon-arrow,
.slider-btn i.layui-icon-next,
.slider-btn i.layui-icon-right {
    display: inline-block !important;
}
.slider-btn .slider-icon-ok,
.slider-btn svg.slider-icon-ok,
.slider-btn i.layui-icon-ok {
    display: none !important;
}

/* 验证通过成功状态：彻底隐藏 >> 提示箭头，唯一呈现对号 */
.slider-btn.slider-btn-success .slider-icon-arrow,
.slider-btn.success .slider-icon-arrow,
.slider-btn.slider-btn-success svg.slider-icon-arrow,
.slider-btn.success svg.slider-icon-arrow,
.slider-btn.slider-btn-success i.layui-icon-next,
.slider-btn.slider-btn-success i.layui-icon-right,
.slider-btn.success i.layui-icon-next,
.slider-btn.success i.layui-icon-right {
    display: none !important;
}
.slider-btn.slider-btn-success .slider-icon-ok,
.slider-btn.success .slider-icon-ok,
.slider-btn.slider-btn-success svg.slider-icon-ok,
.slider-btn.success svg.slider-icon-ok,
.slider-btn.slider-btn-success i.layui-icon-ok,
.slider-btn.success i.layui-icon-ok {
    display: inline-block !important;
    color: #ffffff !important;
    stroke: #ffffff !important;
}
.login .slider-btn i,
.slider-item .slider-btn i,
.slider-btn i {
    font-size: 18px !important;
    width: 18px !important;
    height: 18px !important;
    line-height: 18px !important;
    color: inherit !important;
    pointer-events: none !important;
}


/* ==========================================================================
   14. Layer 弹窗与通用浮层现代化 (Modals & Dialogs)
   ========================================================================== */
.layui-layer {
    border-radius: var(--radius-lg) !important;
    box-shadow: 0 20px 25px -5px rgba(15, 23, 42, 0.2), 0 8px 10px -6px rgba(15, 23, 42, 0.1) !important;
    border: 1px solid var(--border-color) !important;
    overflow: hidden !important;
    animation: layerFadeIn 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes layerFadeIn {
    from { opacity: 0; transform: scale(0.96); }
    to { opacity: 1; transform: scale(1); }
}

.layui-layer-title {
    background: #ffffff !important;
    border-bottom: 1px solid var(--border-color) !important;
    color: var(--text-main) !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    height: 48px !important;
    line-height: 48px !important;
    padding: 0 20px !important;
}

.layui-layer-btn {
    background: #f8fafc !important;
    border-top: 1px solid var(--border-color) !important;
    padding: 10px 16px !important;
}

.layui-layer-btn a {
    height: 34px !important;
    line-height: 34px !important;
    padding: 0 16px !important;
    border-radius: var(--radius-sm) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    transition: var(--transition) !important;
}

.layui-layer-btn a.layui-layer-btn0 {
    background: var(--primary-gradient) !important;
    border: none !important;
    color: #ffffff !important;
    box-shadow: 0 2px 6px rgba(79, 70, 229, 0.25) !important;
}

.layui-layer-btn a.layui-layer-btn1 {
    background: #ffffff !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-regular) !important;
}

/* ==========================================================================
   14.1 Laydate 日期时间控件现代配色联动
   ========================================================================== */
.layui-laydate {
    border-radius: var(--radius-md) !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: var(--shadow-card) !important;
    overflow: hidden;
}
.layui-laydate-header i:hover,
.layui-laydate-header span:hover {
    color: var(--primary) !important;
}
.layui-laydate .layui-this {
    background-color: var(--primary) !important;
    color: #ffffff !important;
    border-radius: 4px !important;
}
.layui-laydate-content td.laydate-selected {
    background-color: var(--primary-light) !important;
    color: var(--primary) !important;
}
.laydate-day-mark::after {
    background-color: var(--primary) !important;
}
.layui-laydate-footer span[lay-type=date] {
    color: var(--primary) !important;
}
.laydate-footer-btns span {
    border-radius: var(--radius-sm) !important;
}
.laydate-footer-btns span.laydate-btns-confirm {
    background-color: var(--primary) !important;
    color: #ffffff !important;
    border-color: var(--primary) !important;
}

/* ==========================================================================
   15. 扫码录入与特殊面板 (Scan Score & Terminals)
   ========================================================================== */
#saoma {
    height: 54px !important;
    font-size: 20px !important;
    border-radius: var(--radius-md) !important;
    border: 2px solid var(--primary-border) !important;
    box-shadow: 0 4px 12px rgba(79, 70, 229, 0.08) !important;
    padding-left: 18px !important;
    transition: var(--transition) !important;
}
#saoma:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 4px rgba(79, 70, 229, 0.15) !important;
}

#xianshi {
    border: 1px solid var(--border-color) !important;
    border-radius: var(--radius-lg) !important;
    background: #ffffff !important;
    padding: 14px !important;
    box-shadow: var(--shadow-card) !important;
    box-sizing: border-box !important;
}
#xianshi > div[style*="background-color: #eeeeee"] {
    background-color: #f1f5f9 !important;
    color: var(--text-secondary) !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    border-radius: var(--radius-sm) !important;
    line-height: 28px !important;
}
#xianshi > div[id^="xs"] {
    color: var(--text-main) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    border-color: var(--border-light) !important;
    line-height: 28px !important;
}

#defen {
    height: 150px !important;
    font-size: 72px !important;
    text-align: center !important;
    border-radius: var(--radius-lg) !important;
    border: 2px solid var(--border-color) !important;
    color: var(--primary) !important;
    font-weight: 700 !important;
    background: #ffffff !important;
    box-shadow: var(--shadow-card) !important;
    transition: var(--transition) !important;
}
#defen:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 4px rgba(79, 70, 229, 0.15) !important;
}


/* ==========================================================================
   16. 全面矢量图标现代化体系 (Modern Vector Icon System)
   彻底重构并替换陈旧粗笨的 Layui 1.x/2.x 与 X-Admin 图标，呈现现代极简微线条质感
   ========================================================================== */

/* 消除原旧版图标字体字符与伪类 content */
.iconfont::before,
.layui-icon:not(.layui-form-radio i):not(.layui-form-checkbox i)::before {
    content: "" !important;
    display: none !important;
}

/* 现代图标基类：所有被标记或匹配的图标均转化为现代 SVG 矢量遮罩容器 */
.iconfont,
.layui-icon:not(.layui-form-radio i):not(.layui-form-checkbox i),
[data-modern-icon]:not(.layui-form-radio i):not(.layui-form-checkbox i) {
    display: inline-block !important;
    vertical-align: -0.16em !important;
    width: 14px !important;
    height: 14px !important;
    font-size: 0 !important;
    color: inherit !important;
    line-height: 1 !important;
    background-color: currentColor !important;
    -webkit-mask-image: var(--icon-svg) !important;
    mask-image: var(--icon-svg) !important;
    -webkit-mask-size: contain !important;
    mask-size: contain !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;
    mask-position: center !important;
    flex-shrink: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    transition: transform var(--transition), opacity var(--transition) !important;
}

.layui-btn i,
a i,
button i {
    color: inherit !important;
    background-color: currentColor !important;
}

/* 按钮内部图标与文字间距 */
.layui-btn .iconfont,
.layui-btn .layui-icon,
.layui-btn [data-modern-icon] {
    margin-right: 6px !important;
}

/* 纯图标按钮（无跟随文字或表格操作微按钮）取消右边距 */
a[lay-event] i,
a.layui-btn-xs i,
.layui-table-tool-self .layui-inline i,
.x-nav .layui-btn i {
    margin-right: 0 !important;
}

/* 刷新按钮悬停顺滑旋转 180 度交互 */
.x-nav .layui-btn:hover i,
[data-modern-icon="refresh"]:hover {
    transform: rotate(180deg) !important;
}

/* 侧边栏一级主模块图标尺寸 */
.left-nav #nav li a i.left-nav-li {
    width: 18px !important;
    height: 18px !important;
    margin-right: 12px !important;
    vertical-align: -0.15em !important;
}

/* 侧边栏右侧折叠/展开指示箭头 */
.left-nav #nav li a .nav_right {
    float: right !important;
    margin-left: auto !important;
    width: 12px !important;
    height: 12px !important;
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
}
.left-nav #nav li.open > a .nav_right {
    transform: rotate(90deg) !important;
}

/* 侧边栏子菜单圆点指示器 */
.left-nav .sub-menu li a i.iconfont {
    width: 6px !important;
    height: 6px !important;
    margin-right: 10px !important;
    opacity: 0.65 !important;
    transition: opacity var(--transition), transform var(--transition) !important;
}
.left-nav .sub-menu li a:hover i.iconfont {
    opacity: 1 !important;
    transform: scale(1.3) !important;
}

/* 顶部栏汉堡菜单切换图标 */
.container .left_open i {
    width: 18px !important;
    height: 18px !important;
    transition: transform var(--transition), opacity var(--transition) !important;
}
.container .left_open:hover i {
    transform: scale(1.1) !important;
}

/* 顶部快捷操作下拉菜单图标 */
.container .fast-add .layui-nav-child dd a i {
    width: 15px !important;
    height: 15px !important;
    margin-right: 8px !important;
}

/* 选项卡桌面图标与关闭按钮 */
.layui-tab-title li.home i {
    width: 15px !important;
    height: 15px !important;
    margin-right: 6px !important;
}


/* 表格列工具栏按钮 (列筛选、导出、打印) */
.layui-table-tool-self .layui-inline {
    border-color: #cbd5e1 !important;
    border-radius: var(--radius-sm) !important;
    background: #ffffff !important;
    color: var(--text-secondary) !important;
}
.layui-table-tool-self .layui-inline:hover {
    border-color: var(--primary) !important;
    color: var(--primary) !important;
    box-shadow: 0 2px 6px rgba(79, 70, 229, 0.15) !important;
}
.layui-table-tool-self .layui-inline i {
    width: 16px !important;
    height: 16px !important;
    color: inherit !important;
    background-color: currentColor !important;
}


/* 删除图标 (Delete / Trash) */
[data-modern-icon="delete"],
.layui-icon-delete,
a[lay-event="del"] i,
a[lay-event="dels"] i,
a[lay-event="delcj"] i,
a[lay-event="jdsc"] i,
button[lay-event="del"] i,
button[lay-event="dels"] i,
button[lay-event="delcj"] i,
button[lay-event="jdsc"] i,
[lay-event="del"] i,
[lay-event="dels"] i,
.layui-btn-danger i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%206h18%22/%3E%3Cpath%20d%3D%22M19%206v14c0%201-1%202-2%202H7c-1%200-2-1-2-2V6%22/%3E%3Cpath%20d%3D%22M8%206V4c0-1%201-2%202-2h4c1%200%202%201%202%202v2%22/%3E%3Cline%20x1%3D%2210%22%20y1%3D%2211%22%20x2%3D%2210%22%20y2%3D%2217%22/%3E%3Cline%20x1%3D%2214%22%20y1%3D%2211%22%20x2%3D%2214%22%20y2%3D%2217%22/%3E%3C/svg%3E") !important;
}

/* 编辑图标 (Edit / Pencil) */
[data-modern-icon="edit"],
.layui-icon-edit,
a[lay-event="edit"] i,
button[lay-event="edit"] i,
[lay-event="edit"] i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M11%204H4a2%202%200%200%200-2%202v14a2%202%200%200%200%202%202h14a2%202%200%200%200%202-2v-7%22/%3E%3Cpath%20d%3D%22M18.5%202.5a2.121%202.121%200%200%201%203%203L12%2015l-4%201%201-4%209.5-9.5z%22/%3E%3C/svg%3E") !important;
}

/* 添加图标 (Add / Plus) */
[data-modern-icon="add"],
.layui-icon-add-1,
a[lay-event="add"] i,
a[lay-event="addxd"] i,
button[lay-event="add"] i,
button[lay-event="addxd"] i,
[lay-event="add"] i,
[lay-event="addxd"] i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cline%20x1%3D%2212%22%20y1%3D%225%22%20x2%3D%2212%22%20y2%3D%2219%22/%3E%3Cline%20x1%3D%225%22%20y1%3D%2212%22%20x2%3D%2219%22%20y2%3D%2212%22/%3E%3C/svg%3E") !important;
}

/* 刷新图标 (Refresh) */
[data-modern-icon="refresh"],
.layui-icon-refresh,
.layui-icon-refresh-1,
.x-nav .layui-btn i,
.x-nav a i,
a[title="刷新"] i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M23%204v6h-6%22/%3E%3Cpath%20d%3D%22M1%2020v-6h6%22/%3E%3Cpath%20d%3D%22M3.51%209a9%209%200%200%201%2014.85-3.36L23%2010M1%2014l4.64%204.36A9%209%200%200%200%2020.49%2015%22/%3E%3C/svg%3E") !important;
}

/* 搜索/查询图标 (Search) */
[data-modern-icon="search"],
.layui-icon-search,
button[lay-filter*="search"] i,
button[lay-filter*="cx"] i,
button[lay-submit] i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2211%22%20cy%3D%2211%22%20r%3D%228%22/%3E%3Cline%20x1%3D%2221%22%20y1%3D%2221%22%20x2%3D%2216.65%22%20y2%3D%2216.65%22/%3E%3C/svg%3E") !important;
}

/* 下载/导出图标 (Download / Export) */
[data-modern-icon="download"],
.layui-icon-download-circle,
.layui-icon-export,
a[lay-event="download"] i,
a[lay-event="down"] i,
a[lay-event="downloadcjtiao"] i,
.layui-table-tool-self .layui-inline[lay-event="LAYTABLE_EXPORT"] i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21%2015v4a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2v-4%22/%3E%3Cpolyline%20points%3D%227%2010%2012%2015%2017%2010%22/%3E%3Cline%20x1%3D%2212%22%20y1%3D%2215%22%20x2%3D%2212%22%20y2%3D%223%22/%3E%3C/svg%3E") !important;
}

/* 上传/导入图标 (Upload / Import) */
[data-modern-icon="upload"],
.layui-icon-upload,
.layui-icon-upload-drag,
a[lay-event="upload"] i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21%2015v4a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2v-4%22/%3E%3Cpolyline%20points%3D%2217%208%2012%203%207%208%22/%3E%3Cline%20x1%3D%2212%22%20y1%3D%223%22%20x2%3D%2212%22%20y2%3D%2215%22/%3E%3C/svg%3E") !important;
}

/* 详情/列表图标 (Detail / Form / Read) */
[data-modern-icon="detail"],
.layui-icon-form,
.layui-icon-read,
a[lay-event="detail"] i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%22/%3E%3Cpolyline%20points%3D%2214%202%2014%208%2020%208%22/%3E%3Cline%20x1%3D%2216%22%20y1%3D%2213%22%20x2%3D%228%22%20y2%3D%2213%22/%3E%3Cline%20x1%3D%2216%22%20y1%3D%2217%22%20x2%3D%228%22%20y2%3D%2217%22/%3E%3Cpolyline%20points%3D%2210%209%209%209%208%209%22/%3E%3C/svg%3E") !important;
}

/* 图表/统计/成绩图标 (Chart / Grade) */
[data-modern-icon="chart"],
.layui-icon-chart,
.layui-icon-chart-screen,
a[lay-event="chengji"] i,
a[lay-event="tongji"] i,
a[lay-event="fenshuxian"] i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cline%20x1%3D%2218%22%20y1%3D%2220%22%20x2%3D%2218%22%20y2%3D%2210%22/%3E%3Cline%20x1%3D%2212%22%20y1%3D%2220%22%20x2%3D%2212%22%20y2%3D%224%22/%3E%3Cline%20x1%3D%226%22%20y1%3D%2220%22%20x2%3D%226%22%20y2%3D%2214%22/%3E%3C/svg%3E") !important;
}

/* 用户/学生/教师图标 (User / Student / Teacher) */
[data-modern-icon="user"],
.layui-icon-user,
.layui-icon-username,
.layui-icon-friends,
.layui-icon-group,
a[lay-event="student"] i,
a[lay-event="banzhuren"] i,
a[lay-event="renke"] i,
a[lay-event="zuzhang"] i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2021v-2a4%204%200%200%200-4-4H8a4%204%200%200%200-4%204v2%22/%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%227%22%20r%3D%224%22/%3E%3C/svg%3E") !important;
}

/* 分配/添加用户图标 (User Add / Assign) */
[data-modern-icon="user-add"],
a[lay-event="adduser"] i,
a[lay-event="lurufengong"] i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16%2021v-2a4%204%200%200%200-4-4H5a4%204%200%200%200-4%204v2%22/%3E%3Ccircle%20cx%3D%228.5%22%20cy%3D%227%22%20r%3D%224%22/%3E%3Cline%20x1%3D%2220%22%20y1%3D%228%22%20x2%3D%2220%22%20y2%3D%2214%22/%3E%3Cline%20x1%3D%2223%22%20y1%3D%2211%22%20x2%3D%2217%22%20y2%3D%2211%22/%3E%3C/svg%3E") !important;
}

/* 翻页向左箭头 (Arrow Left / Prev) */
[data-modern-icon="arrow-left"],
.layui-icon-prev,
.layui-laypage-prev i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%2215%2018%209%2012%2015%206%22/%3E%3C/svg%3E") !important;
}

/* 翻页向右箭头 (Arrow Right / Next) */
[data-modern-icon="arrow-right"],
.layui-icon-next,
.layui-laypage-next i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%229%2018%2015%2012%209%206%22/%3E%3C/svg%3E") !important;
}

/* 左侧菜单收缩折叠按钮 (Menu Hamburger) */
[data-modern-icon="menu-fold"],
.container .left_open i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cline%20x1%3D%223%22%20y1%3D%2212%22%20x2%3D%2221%22%20y2%3D%2212%22/%3E%3Cline%20x1%3D%223%22%20y1%3D%226%22%20x2%3D%2221%22%20y2%3D%226%22/%3E%3Cline%20x1%3D%223%22%20y1%3D%2218%22%20x2%3D%2221%22%20y2%3D%2218%22/%3E%3C/svg%3E") !important;
}

/* 侧边栏与折叠面板箭头 (Chevron Right) */
[data-modern-icon="chevron-right"],
.left-nav #nav li .nav_right,
.layui-colla-icon {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%229%2018%2015%2012%209%206%22/%3E%3C/svg%3E") !important;
}

/* 侧边栏子菜单圆点 (Submenu Dot) */
[data-modern-icon="dot"],
.left-nav .sub-menu li a i.iconfont {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22/%3E%3C/svg%3E") !important;
}

/* 桌面/首页图标 (Home / Desktop) */
[data-modern-icon="home"],
.layui-tab-title li.home i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%209l9-7%209%207v11a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2z%22/%3E%3Cpolyline%20points%3D%229%2022%209%2012%2015%2012%2015%2022%22/%3E%3C/svg%3E") !important;
}

/* 表格录入图标 (Table) */
[data-modern-icon="table"],
.layui-icon-table {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2218%22%20height%3D%2218%22%20rx%3D%222%22/%3E%3Cline%20x1%3D%223%22%20y1%3D%229%22%20x2%3D%2221%22%20y2%3D%229%22/%3E%3Cline%20x1%3D%223%22%20y1%3D%2215%22%20x2%3D%2221%22%20y2%3D%2215%22/%3E%3Cline%20x1%3D%229%22%20y1%3D%229%22%20x2%3D%229%22%20y2%3D%2221%22/%3E%3Cline%20x1%3D%2215%22%20y1%3D%229%22%20x2%3D%2215%22%20y2%3D%2221%22/%3E%3C/svg%3E") !important;
}

/* 列筛选图标 (Cols Filter) */
[data-modern-icon="cols"],
.layui-icon-cols,
[lay-event="LAYTABLE_COLS"] i,
div[lay-event="LAYTABLE_COLS"] i,
.layui-table-tool-self .layui-inline[lay-event="LAYTABLE_COLS"] i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2218%22%20height%3D%2218%22%20rx%3D%222%22/%3E%3Cline%20x1%3D%2212%22%20y1%3D%223%22%20x2%3D%2212%22%20y2%3D%2221%22/%3E%3C/svg%3E") !important;
}

/* 打印图标 (Print) */
[data-modern-icon="print"],
.layui-icon-print,
[lay-event="LAYTABLE_PRINT"] i,
.layui-table-tool-self .layui-inline[lay-event="LAYTABLE_PRINT"] i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%206%202%2018%202%2018%209%22/%3E%3Cpath%20d%3D%22M6%2018H4a2%202%200%200%201-2-2v-5a2%202%200%200%201%202-2h16a2%202%200%200%201%202%202v5a2%202%200%200%201-2%202h-2%22/%3E%3Crect%20x%3D%226%22%20y%3D%2214%22%20width%3D%2212%22%20height%3D%228%22/%3E%3C/svg%3E") !important;
}

/* 勾选确认图标 (Check / OK) - 严格排除复选框方块内部 i 元素，防止边框背景被 mask 裁切 */
[data-modern-icon="check"]:not(.layui-form-checkbox i):not([lay-skin="primary"] i),
.layui-icon-ok-circle,
.layui-icon-ok:not(.layui-form-checkbox i):not([lay-skin="primary"] i) {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%2220%206%209%2017%204%2012%22/%3E%3C/svg%3E") !important;
}

/* 关闭图标 (Close / Dialog Close) */
[data-modern-icon="close"],
.layui-icon-close,
.layui-layer-close {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cline%20x1%3D%2218%22%20y1%3D%226%22%20x2%3D%226%22%20y2%3D%2218%22/%3E%3Cline%20x1%3D%226%22%20y1%3D%226%22%20x2%3D%2218%22%20y2%3D%2218%22/%3E%3C/svg%3E") !important;
}

/* 日期图标 (Calendar / Date) */
[data-modern-icon="calendar"],
.layui-icon-date {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%2218%22%20height%3D%2218%22%20rx%3D%222%22%20ry%3D%222%22/%3E%3Cline%20x1%3D%2216%22%20y1%3D%222%22%20x2%3D%2216%22%20y2%3D%226%22/%3E%3Cline%20x1%3D%228%22%20y1%3D%222%22%20x2%3D%228%22%20y2%3D%226%22/%3E%3Cline%20x1%3D%223%22%20y1%3D%2210%22%20x2%3D%2221%22%20y2%3D%2210%22/%3E%3C/svg%3E") !important;
}

/* 撤销/重置图标 (Undo / Restore) */
[data-modern-icon="undo"],
a[lay-event="huifu"] i,
a[lay-event="reset"] i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%207v6h6%22/%3E%3Cpath%20d%3D%22M21%2017a9%209%200%200%200-9-9%209%209%200%200%200-6%202.3L3%2013%22/%3E%3C/svg%3E") !important;
}

/* 考号/条形码图标 (Barcode) */
[data-modern-icon="barcode"],
a[lay-event="kaohao"] i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cline%20x1%3D%223%22%20y1%3D%225%22%20x2%3D%223%22%20y2%3D%2219%22/%3E%3Cline%20x1%3D%227%22%20y1%3D%225%22%20x2%3D%227%22%20y2%3D%2219%22/%3E%3Cline%20x1%3D%2211%22%20y1%3D%225%22%20x2%3D%2211%22%20y2%3D%2219%22/%3E%3Cline%20x1%3D%2215%22%20y1%3D%225%22%20x2%3D%2215%22%20y2%3D%2219%22/%3E%3Cline%20x1%3D%2219%22%20y1%3D%225%22%20x2%3D%2219%22%20y2%3D%2219%22/%3E%3Cline%20x1%3D%2221%22%20y1%3D%225%22%20x2%3D%2221%22%20y2%3D%2219%22/%3E%3C/svg%3E") !important;
}

/* 复制图标 (Copy) */
[data-modern-icon="copy"],
a[lay-event="copy"] i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%229%22%20y%3D%229%22%20width%3D%2213%22%20height%3D%2213%22%20rx%3D%222%22%20ry%3D%222%22/%3E%3Cpath%20d%3D%22M5%2015H4a2%202%200%200%201-2-2V4a2%202%200%200%201%202-2h9a2%202%200%200%201%202%202v1%22/%3E%3C/svg%3E") !important;
}

/* 时间轴圆点 (Timeline Point) */
[data-modern-icon="timeline-dot"]:not(.layui-form-radio i),
.layui-timeline-axis {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%228%22/%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22%20fill%3D%22black%22/%3E%3C/svg%3E") !important;
}

/* 返回图标 (Return / Back) */
[data-modern-icon="return"],
.layui-icon-return,
a[lay-event="fanhui"] i {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cline%20x1%3D%2219%22%20y1%3D%2212%22%20x2%3D%225%22%20y2%3D%2212%22/%3E%3Cpolyline%20points%3D%2212%2019%205%2012%2012%205%22/%3E%3C/svg%3E") !important;
}

/* 密码/锁图标 (Lock / Password) */
[data-modern-icon="lock"],
.layui-icon-password {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%2211%22%20width%3D%2218%22%20height%3D%2211%22%20rx%3D%222%22%20ry%3D%222%22/%3E%3Cpath%20d%3D%22M7%2011V7a5%205%200%200%201%2010%200v4%22/%3E%3C/svg%3E") !important;
}

/* 退出/切换帐号图标 (Logout) */
[data-modern-icon="logout"],
.layui-icon-logout {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%2021H5a2%202%200%200%201-2-2V5a2%202%200%200%201%202-2h4%22/%3E%3Cpolyline%20points%3D%2216%2017%2021%2012%2016%207%22/%3E%3Cline%20x1%3D%2221%22%20y1%3D%2212%22%20x2%3D%229%22%20y2%3D%2212%22/%3E%3C/svg%3E") !important;
}

/* 侧边栏主模块：成绩采集 */
[data-modern-icon="score-collect"],
.left-nav .left-nav-li[lay-tips*="采集"],
.left-nav .left-nav-li[lay-tips*="成绩"] {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%22/%3E%3Cpolyline%20points%3D%2214%202%2014%208%2020%208%22/%3E%3Cpath%20d%3D%22m9%2015%202%202%204-4%22/%3E%3C/svg%3E") !important;
}

/* 侧边栏主模块：考试管理 */
[data-modern-icon="exam"],
.left-nav .left-nav-li[lay-tips*="考试"] {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%2218%22%20height%3D%2218%22%20rx%3D%222%22%20ry%3D%222%22/%3E%3Cline%20x1%3D%2216%22%20y1%3D%222%22%20x2%3D%2216%22%20y2%3D%226%22/%3E%3Cline%20x1%3D%228%22%20y1%3D%222%22%20x2%3D%228%22%20y2%3D%226%22/%3E%3Cline%20x1%3D%223%22%20y1%3D%2210%22%20x2%3D%2221%22%20y2%3D%2210%22/%3E%3Cpolyline%20points%3D%229%2016%2011%2018%2015%2013%22/%3E%3C/svg%3E") !important;
}

/* 侧边栏主模块：学生管理 */
[data-modern-icon="student"],
.left-nav .left-nav-li[lay-tips*="学生"] {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M22%2010v6M2%2010l10-5%2010%205-10%205z%22/%3E%3Cpath%20d%3D%22M6%2012v5c3%203%209%203%2012%200v-5%22/%3E%3C/svg%3E") !important;
}

/* 侧边栏主模块：教务管理 */
[data-modern-icon="academic"],
.left-nav .left-nav-li[lay-tips*="教务"] {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2021h18%22/%3E%3Cpath%20d%3D%22M5%2021V7l8-4v18%22/%3E%3Cpath%20d%3D%22M19%2021V11l-6-4%22/%3E%3Cline%20x1%3D%229%22%20y1%3D%229%22%20x2%3D%229%22%20y2%3D%229.01%22/%3E%3Cline%20x1%3D%229%22%20y1%3D%2212%22%20x2%3D%229%22%20y2%3D%2212.01%22/%3E%3Cline%20x1%3D%229%22%20y1%3D%2215%22%20x2%3D%229%22%20y2%3D%2215.01%22/%3E%3Cline%20x1%3D%229%22%20y1%3D%2218%22%20x2%3D%229%22%20y2%3D%2218.01%22/%3E%3C/svg%3E") !important;
}

/* 侧边栏主模块：教师管理 */
[data-modern-icon="teacher"],
.left-nav .left-nav-li[lay-tips*="教师"] {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16%2021v-2a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v2%22/%3E%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%224%22/%3E%3Cpath%20d%3D%22M22%2021v-2a4%204%200%200%200-3-3.87%22/%3E%3Cpath%20d%3D%22M16%203.13a4%204%200%200%201%200%207.75%22/%3E%3C/svg%3E") !important;
}

/* 侧边栏主模块：系统管理 */
[data-modern-icon="settings"],
.left-nav .left-nav-li[lay-tips*="系统"] {
    --icon-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22/%3E%3Cpath%20d%3D%22M19.4%2015a1.65%201.65%200%200%200%20.33%201.82l.06.06a2%202%200%200%201%200%202.83%202%202%200%200%201-2.83%200l-.06-.06a1.65%201.65%200%200%200-1.82-.33%201.65%201.65%200%200%200-1%201.51V21a2%202%200%200%201-2%202%202%202%200%200%201-2-2v-.09A1.65%201.65%200%200%200%209%2019.4a1.65%201.65%200%200%200-1.82.33l-.06.06a2%202%200%200%201-2.83%200%202%202%200%200%201%200-2.83l.06-.06a1.65%201.65%200%200%200%20.33-1.82%201.65%201.65%200%200%200-1.51-1H3a2%202%200%200%201-2-2%202%202%200%200%201%202-2h.09A1.65%201.65%200%200%200%204.6%209a1.65%201.65%200%200%200-.33-1.82l-.06-.06a2%202%200%200%201%200-2.83%202%202%200%200%201%202.83%200l.06.06a1.65%201.65%200%200%200%201.82.33H9a1.65%201.65%200%200%200%201-1.51V3a2%202%200%200%201%202-2%202%202%200%200%201%202%202v.09a1.65%201.65%200%200%200%201%201.51%201.65%201.65%200%200%200%201.82-.33l.06-.06a2%202%200%200%201%202.83%200%202%202%200%200%201%200%202.83l-.06.06a1.65%201.65%200%200%200-.33%201.82V9a1.65%201.65%200%200%200%201.51%201H21a2%202%200%200%201%202%202%202%202%200%200%201-2%202h-.09a1.65%201.65%200%200%200-1.51%201z%22/%3E%3C/svg%3E") !important;
}


/* 响应式适配 */
@media screen and (max-width: 768px) {
    .container .logo {
        width: 140px !important;
    }
}
