/* 懂学链 · 全局高级感 — 鼠标光斑跟随 + UI 精致化 */
.cursor-glow {
    position: fixed;
    top: 0;
    left: 0;
    width: 460px;
    height: 460px;
    border-radius: 50%;
    background: radial-gradient(circle at center, rgba(26, 60, 110, 0.12), rgba(26, 60, 110, 0.05) 42%, transparent 72%);
    pointer-events: none;
    z-index: 9999;
    opacity: 0;
    transition: opacity 0.4s ease;
    will-change: transform;
}

@media (hover: none) {
    .cursor-glow {
        display: none;
    }
}

/* ---------- 全局 UI 精致化(圆角 / 阴影 / 胶囊 / 滚动条) ---------- */
.btn,
.btn-primary,
.btn-secondary,
.btn-danger,
.btn-ghost,
.btn-outline,
button.primary,
button.secondary,
button.danger {
    border-radius: 999px !important;
}

.card,
.panel,
.stat-card,
.box,
.modal-content,
.form-card,
.info-card,
.alert,
.toast {
    border-radius: 14px !important;
    box-shadow: 0 6px 24px rgba(26, 60, 110, 0.07) !important;
}

input,
select,
textarea {
    border-radius: 10px !important;
}

::selection {
    background: rgba(26, 60, 110, 0.15);
}

::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: rgba(26, 60, 110, 0.22);
    border-radius: 8px;
}

::-webkit-scrollbar-thumb:hover {
    background: rgba(26, 60, 110, 0.4);
}



/* 图标规范:随文字缩放 + 基线对齐 */
.ic{display:inline-block;width:1.1em;height:1.1em;vertical-align:-0.15em;flex-shrink:0}

/* 所有按钮统一 hover 变色反馈 */
button, .btn{transition:filter .2s ease;}
button:hover, .btn:hover, [class*=btn]:hover{filter:brightness(0.93);}

/* 统一成绩行按钮 + 按动图标动画 */
.btn-verify, .btn-qrcode, .btn-appeal, .btn-lineage {
    background: #fff !important;
    color: #1a3c6e !important;
    border: 1px solid rgba(26,60,110,0.25) !important;
    border-radius: 999px !important;
    transition: background .2s, border-color .2s, transform .2s;
}
.btn-verify:hover, .btn-qrcode:hover, .btn-appeal:hover, .btn-lineage:hover {
    background: rgba(26,60,110,0.07) !important;
    border-color: rgba(26,60,110,0.5) !important;
}
.btn-verify .ic, .btn-qrcode .ic, .btn-appeal .ic, .btn-lineage .ic {
    transition: transform .25s ease;
}
.btn-verify:hover .ic, .btn-qrcode:hover .ic, .btn-appeal:hover .ic, .btn-lineage:hover .ic {
    transform: scale(1.18);
}
.btn-verify:active .ic, .btn-qrcode:active .ic, .btn-appeal:active .ic, .btn-lineage:active .ic {
    transform: scale(0.8);
}
/* AI 分析按钮:统一深蓝 + 图标动画 */
.ai-quick-btn {
    background: #1a3c6e !important;
    color: #fff !important;
    border-radius: 999px !important;
    transition: background .2s, transform .2s;
}
.ai-quick-btn:hover { background: #2c5282 !important; }
.ai-quick-btn .ic { transition: transform .25s ease; }
.ai-quick-btn:hover .ic { transform: scale(1.15); }
.ai-quick-btn:active .ic { transform: scale(0.8); }
/* 统一功能按钮组:AI分析 / 导出CSV / 导出成绩单 */
.btn-export-csv, .btn-export-pdf, .btn-ai, .btn-export, .ai-quick-btn {
    background: #1a3c6e !important;
    color: #fff !important;
    border: none !important;
    border-radius: 999px !important;
    transition: background .2s, transform .2s;
}
.btn-export-csv:hover, .btn-export-pdf:hover, .btn-ai:hover, .btn-export:hover, .ai-quick-btn:hover {
    background: #2c5282 !important;
}
.btn-export-csv .ic, .btn-export-pdf .ic, .btn-ai .ic, .ai-quick-btn .ic {
    transition: transform .25s ease;
}
.btn-export-csv:hover .ic, .btn-export-pdf:hover .ic, .btn-ai:hover .ic, .ai-quick-btn:hover .ic {
    transform: scale(1.15);
}
.btn-export-csv:active .ic, .btn-export-pdf:active .ic, .btn-ai:active .ic, .ai-quick-btn:active .ic {
    transform: scale(0.8);
}