/**
 * 学生端子页面 — 与首页 student-dashboard 同一套配色（--sd-* / data-student-dashboard-theme）
 */

html[data-student-dashboard-theme],
html:not([data-student-dashboard-theme]) {
    --sp-text: var(--sd-text, #2c2825);
    --sp-text-muted: var(--sd-text-muted, #6b6560);
    --sp-border: var(--sd-border, #e3ded6);
    --sp-border-soft: var(--sd-border-soft, #ebe7e0);
    --sp-accent: var(--student-shell-primary, #8b4d3b);
    --sp-accent-hover: var(--primary-dark, #6f3d2f);
    --sp-accent-soft: var(--sd-accent-soft, rgba(139, 77, 59, 0.08));
    --sp-secondary: var(--student-shell-secondary, #2d5c5c);
    --sp-surface: var(--sd-surface, #ffffff);
    --sp-page-bg: var(--student-shell-page-bg, #f3f1ed);
    --sp-radius-lg: 14px;
    --sp-radius-md: 10px;
    --sp-shadow-sm: 0 1px 2px rgba(44, 40, 37, 0.04), 0 2px 8px rgba(44, 40, 37, 0.05);
    --sp-shadow-md: 0 4px 12px rgba(44, 40, 37, 0.07);

  /* 兼容仍引用 variables-v3 的页面 */
    --brand-color: var(--sp-accent);
    --brand-color-hover: var(--sp-accent-hover);
    --brand-color-active: var(--primary-active, var(--sp-accent-hover));
    --brand-contrast: #ffffff;
    --background-color: var(--sp-page-bg);
    --surface-color: var(--sp-surface);
    --border-color: var(--sp-border);
    --text-primary: var(--sp-text);
    --text-secondary: var(--sp-text-muted);
    --focus-ring: color-mix(in srgb, var(--sp-accent) 40%, transparent);
}

@supports not (background: color-mix(in srgb, red, blue)) {
    html[data-student-dashboard-theme],
    html:not([data-student-dashboard-theme]) {
        --focus-ring: rgba(139, 77, 59, 0.35);
    }
}

/* 通用页面容器 */
.student-page,
.profile-container,
.settings-container,
.preview-homework-student-wrap {
    color: var(--sp-text);
}

.student-page,
.preview-homework-student-wrap {
    max-width: 1180px;
    margin: 0 auto;
    padding: 28px 24px 100px;
}

/* 欢迎区 / 页头（对齐首页 student-dashboard__welcome） */
.sp-page-welcome,
.student-page .page-header,
.profile-container > .profile-header,
.settings-container > .settings-header,
.preview-homework-student-wrap .welcome-banner,
.student-page .page-header-card {
    position: relative;
    overflow: hidden;
    background: var(--sp-surface) !important;
    border: 1px solid var(--sp-border) !important;
    border-radius: var(--sp-radius-lg) !important;
    color: var(--sp-text) !important;
    box-shadow: var(--sp-shadow-sm) !important;
    padding: 26px 28px !important;
    margin-bottom: 24px !important;
}

.sp-page-welcome::before,
.student-page .page-header::before,
.profile-container > .profile-header::before,
.settings-container > .settings-header::before,
.preview-homework-student-wrap .welcome-banner::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 5px;
    background: linear-gradient(180deg, var(--student-shell-primary-light, #a67c6a) 0%, var(--sp-accent) 100%);
    border-radius: var(--sp-radius-lg) 0 0 var(--sp-radius-lg);
    pointer-events: none;
}

.student-page .page-header h1,
.settings-header h1,
.profile-name,
.welcome-title {
    color: var(--sp-text) !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
}

.student-page .page-header h1 i,
.settings-header h1 i,
.welcome-title i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-right: 10px;
    vertical-align: middle;
    font-size: 1rem;
    color: #fff !important;
    background: var(--sp-accent) !important;
    border-radius: 10px;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--sp-accent) 30%, transparent);
}

.student-page .page-header p,
.settings-header p,
.welcome-subtitle,
.profile-student-id {
    color: var(--sp-text-muted) !important;
    opacity: 1 !important;
}

/* 资料页头像区：白卡片内居中，去掉紫渐变 */
.profile-container > .profile-header {
    text-align: center;
}

.profile-container > .profile-header::before {
    width: 5px;
}

.profile-avatar {
    border-color: var(--sp-border) !important;
    color: var(--sp-accent) !important;
}

/* 积分 V3 大横幅 → 首页风格 */
.points-header,
.rewards-page-header,
.leaderboard-hero {
    background: var(--sp-surface) !important;
    border: 1px solid var(--sp-border) !important;
    color: var(--sp-text) !important;
    box-shadow: var(--sp-shadow-sm) !important;
    border-radius: var(--sp-radius-lg) !important;
}

.points-header::before,
.rewards-page-header::before {
    display: none;
}

.points-header .main-points,
.points-header .level-badge,
.points-header .rank-info {
    color: var(--sp-text) !important;
}

.points-header .main-points {
    color: var(--sp-accent) !important;
}

.points-header .level-badge {
    background: var(--sp-accent-soft) !important;
    color: var(--sp-accent) !important;
}

/* 筛选 Tab */
.filter-tab.active,
.preview-homework-student-wrap .filter-tabs .btn.active,
.preview-homework-student-wrap .filter-tab.active {
    background: var(--sp-accent-soft) !important;
    border-color: var(--sp-accent) !important;
    color: var(--sp-accent) !important;
}

.filter-tab {
    background: var(--sp-surface) !important;
    border: 1px solid var(--sp-border-soft) !important;
    color: var(--sp-text-muted) !important;
}

.filter-tab:hover {
    border-color: var(--sp-border) !important;
    color: var(--sp-text) !important;
}

/* 卡片 */
.homework-card,
.course-card,
.stat-box,
.stat-card,
.settings-content,
.settings-nav,
.homework-card.preview-homework-student-wrap .homework-card {
    background: var(--sp-surface) !important;
    border: 1px solid var(--sp-border) !important;
    border-radius: var(--sp-radius-md) !important;
    box-shadow: var(--sp-shadow-sm) !important;
}

.homework-card:hover,
.course-card:hover {
    border-color: color-mix(in srgb, var(--sp-accent) 35%, var(--sp-border)) !important;
    box-shadow: var(--sp-shadow-md) !important;
}

.stat-card {
    background: var(--sp-accent-soft) !important;
    border-color: var(--sp-border) !important;
}

.meta-info {
    background: var(--sp-accent-soft) !important;
    border-color: color-mix(in srgb, var(--sp-accent) 25%, transparent) !important;
    color: var(--sp-accent) !important;
}

/* 设置侧栏 */
.settings-nav-item.active {
    background: var(--sp-accent) !important;
    color: #fff !important;
}

.settings-nav-item:hover {
    background: var(--sp-accent-soft) !important;
    color: var(--sp-accent) !important;
}

/* 主按钮 */
.btn-primary,
.student-page .btn-primary,
.settings-container .btn-primary {
    background: var(--sp-accent) !important;
    border-color: var(--sp-accent) !important;
}

.btn-primary:hover {
    background: var(--sp-accent-hover) !important;
    border-color: var(--sp-accent-hover) !important;
}

.btn-outline-primary {
    color: var(--sp-accent) !important;
    border-color: var(--sp-accent) !important;
}

.btn-outline-primary:hover {
    background: var(--sp-accent-soft) !important;
}

.text-primary {
    color: var(--sp-accent) !important;
}

.spinner-border.text-primary {
    color: var(--sp-accent) !important;
}

/* 预习作业 */
.preview-homework-student-wrap .homework-card {
    border-top-color: var(--sp-secondary) !important;
}

.preview-homework-student-wrap .progress-bar {
    background-color: var(--sp-secondary) !important;
}

/* 错题本 */
.btn-export {
    background: var(--sp-accent) !important;
    color: #fff !important;
}

.filter-select:hover,
.filter-select:focus {
    border-color: var(--sp-accent) !important;
}

/* 商城顶栏 */
.rewards-header-bar {
    background: var(--sp-accent) !important;
}

/* 排行榜榜首区 */
.leaderboard-hero {
    background: var(--sp-accent-soft) !important;
}

.leaderboard-hero .hero-score {
    color: var(--sp-accent) !important;
}

/* 作业列表 · 课程分组（原紫色） */
.course-header {
    background: var(--sp-accent-soft) !important;
    border-color: color-mix(in srgb, var(--sp-accent) 22%, transparent) !important;
}

.course-header:hover {
    background: color-mix(in srgb, var(--sp-accent) 14%, var(--sp-surface)) !important;
    border-color: color-mix(in srgb, var(--sp-accent) 35%, transparent) !important;
    box-shadow: var(--sp-shadow-sm) !important;
}

.course-header i:first-child,
.course-header-left i {
    color: var(--sp-accent) !important;
}

/* 积分商城 / 排行榜 · 顶栏渐变 */
.student-page .page-header:has(h1) {
    background: var(--sp-surface) !important;
    color: var(--sp-text) !important;
}

.rewards-v3 .page-header,
.student-page.rewards-page .page-header {
    background: var(--sp-surface) !important;
    color: var(--sp-text) !important;
}

.top-three {
    background: var(--sp-accent-soft) !important;
    border-radius: var(--sp-radius-md) !important;
}

.top-three .rank-avatar,
.leaderboard-card .avatar-circle {
    background: var(--sp-accent) !important;
    color: #fff !important;
}

.tab-btn.active {
    background: var(--sp-accent-soft) !important;
    border-color: var(--sp-accent) !important;
    color: var(--sp-accent) !important;
}

.tab-btn:hover {
    border-color: var(--sp-accent) !important;
    color: var(--sp-accent) !important;
}

.reward-image:not(.has-image) {
    background: linear-gradient(
        135deg,
        color-mix(in srgb, var(--sp-accent) 85%, #fff) 0%,
        color-mix(in srgb, var(--sp-secondary) 70%, #fff) 100%
    ) !important;
}

.reward-card:hover {
    border-color: var(--sp-accent) !important;
}

/* 表单焦点 */
.form-control:focus,
.form-select:focus {
    border-color: var(--sp-accent) !important;
    box-shadow: 0 0 0 3px var(--sp-accent-soft) !important;
}

.form-check-input:checked {
    background-color: var(--sp-accent) !important;
    border-color: var(--sp-accent) !important;
}

/* 设置页主题预览选中态 */
.student-theme-card.is-selected {
    border-color: var(--sp-accent) !important;
    box-shadow: 0 0 0 3px var(--sp-accent-soft) !important;
}

/* 隐藏旧版「V3蓝色系」角标（样式已统一为首页主题） */
.student-page h1 span[style*="info-color"],
.student-page h1 span:empty {
    display: none !important;
}

.sp-hide-v3-label {
    display: none !important;
}