/* ============================================================
   jwxt admin theme — 浅色高端风格
   只作用于 Filament 后台（fi-* 类），与登录/注册/学生端统一
   ============================================================ */

/* ---- 全局背景 ---- */
body.fi-body {
    background: linear-gradient(180deg, #eef4fd 0%, #f3f7ff 100%);
}

.fi-main-ctn {
    background: linear-gradient(180deg, #eef4fd 0%, #f3f7ff 100%);
}

/* ---- 侧边栏 ---- */
.fi-sidebar.fi-main-sidebar {
    background: rgba(255, 255, 255, .88);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-right: 1px solid rgba(47, 107, 255, .10);
    box-shadow: 8px 0 28px -22px rgba(47, 107, 255, .30);
}

.fi-sidebar-group-label {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    color: #8ba1c4;
}

.fi-sidebar-item {
    border-radius: 10px;
    margin: 2px 8px;
    transition: background .15s ease, box-shadow .15s ease;
}

.fi-sidebar-item-btn:hover {
    background: rgba(47, 107, 255, .08);
}

.fi-sidebar-item.fi-active {
    background: linear-gradient(90deg, #2f6bff, #5a67e8);
    box-shadow: 0 10px 20px -10px rgba(47, 107, 255, .55);
}

.fi-sidebar-item.fi-active .fi-sidebar-item-btn {
    background: transparent;
}

.fi-sidebar-item.fi-active .fi-sidebar-item-label {
    color: #fff;
    font-weight: 600;
}

.fi-sidebar-item.fi-active .fi-sidebar-item-btn > svg {
    color: #fff;
}

/* ---- 顶栏 ---- */
.fi-topbar {
    background: rgba(255, 255, 255, .82);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(47, 107, 255, .10);
    box-shadow: 0 8px 24px -18px rgba(47, 107, 255, .35);
}

/* ---- 内容卡片 ---- */
.fi-widget {
    border: 1px solid rgba(255, 255, 255, .95);
    box-shadow: 0 20px 44px -26px rgba(47, 107, 255, .28), 0 6px 16px -12px rgba(90, 120, 180, .18);
}

/* ---- 主色按钮补光（primary 已切蓝色） ---- */
.fi-btn.fi-color-primary.fi-bg-color-400 {
    box-shadow: 0 10px 22px -10px rgba(47, 107, 255, .5);
}

/* ============================================================
   菜单区域整体优化 — AI 生成光泽磁贴图标 + 高端布局
   图标文件位于 /icons/menu/*.png（gpt-image-2 全幅渐变磁贴风）
   ============================================================ */

/* ---- 侧边栏：细腻玻璃 + 顶部光晕 ---- */
.fi-sidebar.fi-main-sidebar {
    background:
        radial-gradient(130% 55% at 50% -12%, rgba(47, 107, 255, .16), rgba(255, 255, 255, 0) 62%),
        linear-gradient(180deg, #fcfdff 0%, #f2f7ff 100%);
    border-right: 1px solid rgba(47, 107, 255, .12);
}

.fi-sidebar-nav {
    scrollbar-width: thin;
    scrollbar-color: rgba(47, 107, 255, .28) transparent;
}
.fi-sidebar-nav::-webkit-scrollbar { width: 6px; }
.fi-sidebar-nav::-webkit-scrollbar-thumb { background: rgba(47, 107, 255, .25); border-radius: 6px; }
.fi-sidebar-nav::-webkit-scrollbar-track { background: transparent; }

/* ---- 分组头：光泽小图标 + 标题强化 ---- */
.fi-sidebar-group-btn {
    position: relative;
    padding-left: 42px !important;
    margin-top: 6px;
}
.fi-sidebar-group-btn::before {
    content: '';
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    border-radius: 7px;
    background: url('/icons/menu/g-academic.png') center/cover no-repeat;
    box-shadow: 0 4px 8px -4px rgba(47, 107, 255, .45), inset 0 0 0 1px rgba(255, 255, 255, .5);
}
.fi-sidebar-group-label {
    font-size: 1rem;
    letter-spacing: .08em;
    background: linear-gradient(90deg, #2f6bff, #6d28d9);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* ---- 菜单项：隐藏 heroicon，改挂 AI 光泽磁贴 ---- */
.fi-sidebar-item-btn {
    position: relative;
    height: 42px;
    padding-left: 56px !important;
}
.fi-sidebar-item-btn > svg {
    display: none;
}
.fi-sidebar-item-btn::before {
    content: '';
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: url('/icons/menu/emp-dashboard.png') center/cover no-repeat;
    box-shadow: 0 6px 14px -6px rgba(47, 107, 255, .45), inset 0 0 0 1px rgba(255, 255, 255, .45);
}
.fi-sidebar-item.fi-active .fi-sidebar-item-btn::before {
    box-shadow: 0 0 0 2px rgba(255, 255, 255, .9), 0 8px 18px -8px rgba(47, 107, 255, .7);
}
/* 主菜单项文字：16px 更清晰（仅顶层，子菜单保持 14px 形成层级） */
.fi-sidebar-group-items > li > .fi-sidebar-item-btn .fi-sidebar-item-label {
    font-size: 16px;
    font-weight: 500;
    letter-spacing: .01em;
}
.fi-sidebar-group-items > li.fi-sidebar-item.fi-active > .fi-sidebar-item-btn .fi-sidebar-item-label {
    font-weight: 600;
}
/* 子菜单项：略小于主菜单，强化层级 */
.fi-sidebar-sub-group-items > li > .fi-sidebar-item-btn .fi-sidebar-item-label {
    font-size: 14px;
}

/* ---- 各菜单项磁贴映射 ---- */
.fi-sidebar-item a[href$="hscfxy.com/admin"]::before { background-image: url('/icons/menu/dashboard.png'); }
.fi-sidebar-item a[href*="admissions-dashboard"]::before { background-image: url('/icons/menu/admissions-dashboard.png'); }
.fi-sidebar-item a[href*="admissions-leads"]::before { background-image: url('/icons/menu/admissions-leads.png'); }
.fi-sidebar-item a[href*="admissions-strategy"]::before { background-image: url('/icons/menu/admissions-strategy.png'); }
.fi-sidebar-item a[href*="admissions-ai-chat"]::before { background-image: url('/icons/menu/admissions-ai.png'); }
.fi-sidebar-item a[href*="admin/settings"]::before { background-image: url('/icons/menu/academic-settings.png'); }
.fi-sidebar-item a[href$="/admin/courses"]::before { background-image: url('/icons/menu/academic-courses.png'); }
.fi-sidebar-item a[href*="admin/students"]::before { background-image: url('/icons/menu/students.png'); }
.fi-sidebar-item a[href$="/admin/enrollments"]::before { background-image: url('/icons/menu/enrollments.png'); }
.fi-sidebar-item a[href*="status_id"]::before { background-image: url('/icons/menu/pending-enrollments.png'); }
.fi-sidebar-item a[href*="scholarship"]::before { background-image: url('/icons/menu/scholarships.png'); }
.fi-sidebar-item a[href*="attendance-monitor"]::before { background-image: url('/icons/menu/attendance.png'); }
.fi-sidebar-item a[href*="employment-dashboard"]::before { background-image: url('/icons/menu/emp-dashboard.png'); }
.fi-sidebar-item a[href*="employment-profiles"]::before { background-image: url('/icons/menu/emp-profiles.png'); }
.fi-sidebar-item a[href*="employment-companies"]::before { background-image: url('/icons/menu/emp-companies.png'); }
.fi-sidebar-item a[href*="employment-jobs"]::before { background-image: url('/icons/menu/emp-jobs.png'); }
.fi-sidebar-item a[href*="employment-recommendations"]::before { background-image: url('/icons/menu/emp-recommendations.png'); }
.fi-sidebar-item a[href$="ai/ai-agents"]::before { background-image: url('/icons/menu/ai-agents.png'); }
.fi-sidebar-item a[href$="ai/ai-tools"]::before { background-image: url('/icons/menu/ai-tools.png'); }
.fi-sidebar-item a[href$="ai/ai-workflows"]::before { background-image: url('/icons/menu/ai-workflows.png'); }
.fi-sidebar-item a[href$="ai/ai-models"]::before { background-image: url('/icons/menu/ai-models.png'); }
.fi-sidebar-item a[href$="ai/ai-acls"]::before { background-image: url('/icons/menu/ai-acls.png'); }
.fi-sidebar-item a[href*="ai-knowledge"]::before { background-image: url('/icons/menu/ai-knowledge.png'); }
.fi-sidebar-item a[href$="ai/ai-mcps"]::before { background-image: url('/icons/menu/ai-mcps.png'); }
.fi-sidebar-item a[href$="ai/ai-a2as"]::before { background-image: url('/icons/menu/ai-a2as.png'); }
.fi-sidebar-item a[href*="ai-chat-page"]::before { background-image: url('/icons/menu/ai-chat.png'); }
.fi-sidebar-item a[href*="ai-run-logs"]::before { background-image: url('/icons/menu/ai-runlogs.png'); }
.fi-sidebar-item a[href*="admin/system-settings"]::before { background-image: url('/icons/menu/system-settings.png'); }
.fi-sidebar-item a[href$="admin/external-courses"]::before { background-image: url('/icons/menu/external-courses.png'); }
.fi-sidebar-item a[href$="admin/partners"]::before { background-image: url('/icons/menu/partners.png'); }
.fi-sidebar-item a[href$="admin/external-report"]::before { background-image: url('/icons/menu/external-report.png'); }
.fi-sidebar-item a[href*="external-summary"]::before { background-image: url('/icons/menu/external-summary.png'); }

/* 师资管理 / 数据中心（无 URL 占位项，按组内位置定位） */
.fi-sidebar-group:has(button[aria-label="教务管理"]) ul.fi-sidebar-group-items li:nth-child(8) a::before { background-image: url('/icons/menu/teachers.png'); }
.fi-sidebar-group:has(button[aria-label="教务管理"]) ul.fi-sidebar-group-items li:nth-child(9) a::before { background-image: url('/icons/menu/data-center.png'); }

/* ---- 各分组头图标映射 ---- */
.fi-sidebar-group:has(button[aria-label="招生获客"]) .fi-sidebar-group-btn::before { background-image: url('/icons/menu/g-admissions.png'); }
.fi-sidebar-group:has(button[aria-label="教务管理"]) .fi-sidebar-group-btn::before { background-image: url('/icons/menu/g-academic.png'); }
.fi-sidebar-group:has(button[aria-label="就业管理"]) .fi-sidebar-group-btn::before { background-image: url('/icons/menu/g-employment.png'); }
.fi-sidebar-group:has(button[aria-label="AI 智能体"]) .fi-sidebar-group-btn::before { background-image: url('/icons/menu/g-ai.png'); }
.fi-sidebar-group:has(button[aria-label="系统设置"]) .fi-sidebar-group-btn::before { background-image: url('/icons/menu/g-system.png'); }
.fi-sidebar-group:has(button[aria-label="考证课程"]) .fi-sidebar-group-btn::before { background-image: url('/icons/menu/g-courses.png'); }

/* ---- 折叠状态（图标居中） ---- */
.fi-sidebar.fi-main-sidebar:not(.fi-sidebar-open) .fi-sidebar-item-btn::before {
    left: 50%;
    transform: translate(-50%, -50%);
}
.fi-sidebar.fi-main-sidebar:not(.fi-sidebar-open) .fi-sidebar-group-btn::before {
    left: 50%;
    transform: translate(-50%, -50%);
}

/* ============================================================
   jwxt admin theme —

/* ============================================================
   jwxt admin theme —

/* ============================================================
   jwxt admin theme —

/* ============================================================
   jwxt admin theme — 第二轮改版追加
   A. 弹窗板块   B. 内容区/表格/表单   C. 子菜单磁贴图标映射
   选择器基于 Filament v5 浏览器实测类名（fi-modal / fi-ta / fi-input 体系）
   ============================================================ */

/* ============ A. 弹窗板块：玻璃拟态 + 顶部光带 + 光泽立体 ============ */
.fi-modal-close-overlay {
    background: rgba(20, 35, 75, .45) !important;
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}

.fi-modal-window {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(120, 160, 235, .35);
    border-radius: 18px;
    background:
        radial-gradient(130% 70% at 50% -12%, rgba(47, 107, 255, .10), rgba(255, 255, 255, 0) 55%),
        linear-gradient(180deg, #ffffff 0%, #f6f9ff 100%);
    box-shadow:
        0 30px 60px -30px rgba(37, 70, 150, .45),
        0 10px 26px -16px rgba(37, 70, 150, .30),
        inset 0 1px 0 #ffffff;
}

.fi-modal-window::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    z-index: 20;
    background: linear-gradient(90deg, #2f6bff, #6d28d9 50%, #f0a63c);
}

.fi-modal-open .fi-modal-window {
    animation: jwxtModalIn .2s ease-out;
}
@keyframes jwxtModalIn {
    from { transform: scale(.96) translateY(8px); opacity: 0; }
    to   { transform: scale(1) translateY(0); opacity: 1; }
}

.fi-modal-header {
    border-bottom: 1px solid rgba(47, 107, 255, .12);
}

.fi-modal-heading {
    background: linear-gradient(90deg, #1b3a78, #2f6bff);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    font-weight: 800 !important;
    letter-spacing: .01em;
}

.fi-modal-content {
    color: #33415e;
}

.fi-modal-footer {
    border-top: 1px solid rgba(47, 107, 255, .12);
    background: linear-gradient(180deg, rgba(248, 251, 255, .95), rgba(244, 248, 255, .72));
}

.fi-modal-close-btn {
    border-radius: 9999px !important;
    transition: background .15s ease, box-shadow .15s ease;
}
.fi-modal-close-btn:hover {
    background: rgba(47, 107, 255, .10) !important;
    box-shadow: 0 0 0 4px rgba(47, 107, 255, .10);
}

/* slide-over 侧滑弹窗同玻璃（右侧圆角） */
.fi-modal-slide-over .fi-modal-window {
    border-radius: 18px 0 0 18px;
}

/* 下拉/用户菜单/通知面板玻璃化 */
.fi-dropdown-panel,
.fi-user-menu,
.fi-notification-panel {
    border: 1px solid rgba(120, 160, 235, .30) !important;
    border-radius: 14px !important;
    background: rgba(255, 255, 255, .96) !important;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    box-shadow: 0 24px 48px -24px rgba(37, 70, 150, .4), inset 0 1px 0 #fff !important;
}

/* ============ B. 内容区 / 表格 / 表单：光泽立体卡片 ============ */
.fi-ta-ctn,
.fi-wi,
.fi-section {
    position: relative;
    border: 1px solid rgba(255, 255, 255, .95);
    border-radius: 16px;
    background:
        radial-gradient(130% 60% at 50% -12%, rgba(47, 107, 255, .05), rgba(255, 255, 255, 0) 60%),
        rgba(255, 255, 255, .86);
    box-shadow:
        0 20px 44px -26px rgba(47, 107, 255, .28),
        0 6px 16px -12px rgba(90, 120, 180, .16),
        inset 0 1px 0 #ffffff;
}
.fi-ta-ctn { overflow: hidden; }

/* 表格表头：浅蓝底 + 深色加粗 */
.fi-ta thead th.fi-ta-header-cell {
    background: linear-gradient(180deg, rgba(47, 107, 255, .07), rgba(47, 107, 255, .02));
    color: #2c3f63 !important;
    font-weight: 700 !important;
    border-bottom: 1px solid rgba(47, 107, 255, .14);
}

/* 行 hover + 斑马纹 + 选中 */
.fi-ta tbody tr.fi-ta-row { transition: background .12s ease; }
.fi-ta tbody tr.fi-ta-row:hover { background: rgba(47, 107, 255, .06); }
.fi-ta tbody tr.fi-ta-row:nth-child(even) { background: rgba(47, 107, 255, .018); }
.fi-ta tbody tr.fi-ta-row:nth-child(even):hover { background: rgba(47, 107, 255, .06); }
.fi-ta tbody tr.fi-ta-row-selected {
    background: rgba(47, 107, 255, .10) !important;
    box-shadow: inset 3px 0 0 #2f6bff;
}

/* 表单控件：圆角 + 聚焦蓝光 */
.fi-input,
.fi-select,
.fi-textarea {
    border-radius: 10px;
    border-color: rgba(90, 120, 180, .40);
    background-color: rgba(255, 255, 255, .90);
    transition: border-color .15s ease, box-shadow .15s ease;
}
.fi-input:focus,
.fi-select:focus,
.fi-textarea:focus {
    border-color: #2f6bff;
    box-shadow: 0 0 0 3px rgba(47, 107, 255, .16);
}

/* 字段 label */
.fi-field-wrapper > label,
.fi-field-label,
.fi-fo-field-label {
    color: #33415e;
    font-weight: 600;
}

/* 按钮圆角补光 */
.fi-btn { border-radius: 10px; font-weight: 600; }

/* 页面标题微调 */
.fi-header-heading { letter-spacing: .01em; color: #1b2b4d; }

/* ============ C. 子菜单磁贴图标映射（19 项，!important 压过 nth-child 占位规则） ============ */
.fi-sidebar-item a[href*="certificate-centers"]::before { background-image: url('/icons/menu/cert-center.png') !important; }
.fi-sidebar-item a[href*="points-rules"]::before { background-image: url('/icons/menu/points-rules.png') !important; }
.fi-sidebar-item a[href*="points-records"]::before { background-image: url('/icons/menu/points-records.png') !important; }
.fi-sidebar-item a[href*="points-overview"]::before { background-image: url('/icons/menu/points-overview.png') !important; }
.fi-sidebar-item a[href*="calendar-combined"]::before { background-image: url('/icons/menu/calendar-combined.png') !important; }
.fi-sidebar-item a[href*="/events"]::before { background-image: url('/icons/menu/events.png') !important; }
.fi-sidebar-item a[href*="hr-dashboard"]::before { background-image: url('/icons/menu/hr-dashboard.png') !important; }
.fi-sidebar-item a[href*="/leaves"]::before { background-image: url('/icons/menu/leaves.png') !important; }
.fi-sidebar-item a[href*="internal-report"]::before { background-image: url('/icons/menu/internal-report.png') !important; }
.fi-sidebar-item a[href*="levels-and-rhythms-report"]::before { background-image: url('/icons/menu/levels-rhythms-report.png') !important; }
.fi-sidebar-item a[href*="courses-report"]::before { background-image: url('/icons/menu/courses-report.png') !important; }
.fi-sidebar-item a[href*="attendance-report"]::before { background-image: url('/icons/menu/attendance-report.png') !important; }
.fi-sidebar-item a[href*="attendance-by-level-and-rhythm-report"]::before { background-image: url('/icons/menu/attendance-by-level-rhythm.png') !important; }
.fi-sidebar-item a[href*="attendance-for-course-report"]::before { background-image: url('/icons/menu/attendance-by-course.png') !important; }
.fi-sidebar-item a[href*="partnerships-report"]::before { background-image: url('/icons/menu/partnerships-report.png') !important; }
.fi-sidebar-item a[href*="gender-report"]::before { background-image: url('/icons/menu/gender-report.png') !important; }
.fi-sidebar-item a[href*="wecom-settings"]::before { background-image: url('/icons/menu/wecom-settings.png') !important; }
.fi-sidebar-item a[href*="wecom-bindings"]::before { background-image: url('/icons/menu/wecom-bindings.png') !important; }
.fi-sidebar-item a[href*="wecom-messages"]::before { background-image: url('/icons/menu/wecom-messages.png') !important; }



/* AI custom icon menus: hide CSS ::before bg icon, render <img> as 34px system tile */
.fi-sidebar-item-btn:has(> img.fi-icon)::before { display: none; }
.fi-sidebar-item-btn:has(> img.fi-icon) > img.fi-icon {
    position: absolute; left: 10px; top: 50%; transform: translateY(-50%);
    width: 34px; height: 34px; border-radius: 10px; object-fit: cover;
    box-shadow: 0 6px 14px -6px rgba(47,107,255,.45), inset 0 0 0 1px rgba(255,255,255,.45);
}
.fi-sidebar-item.fi-active .fi-sidebar-item-btn:has(> img.fi-icon) > img.fi-icon {
    box-shadow: 0 0 0 2px rgba(255,255,255,.9), 0 8px 18px -8px rgba(47,107,255,.7);
}
.fi-sidebar.fi-main-sidebar:not(.fi-sidebar-open) .fi-sidebar-item-btn:has(> img.fi-icon) > img.fi-icon {
    left: 50%; transform: translate(-50%, -50%);
}
