
        body { animation: pageFadeIn 0.5s ease; }
        
        @keyframes fadeUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:none} }
        @keyframes floatSlow { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
        @keyframes pulse-ring { 0%{transform:scale(0.95);opacity:1} 100%{transform:scale(1.3);opacity:0} }
        @keyframes shimmer { 0%{background-position:-200% 0} 100%{background-position:200% 0} }

        .container { max-width: 1160px; margin: 0 auto; padding: 0 24px; }

        /* ===== Hero 鍖哄煙 ===== */
        .hero-section {
            display: flex; align-items: center; gap: 36px;
            background: var(--glass-bg); backdrop-filter: var(--glass-blur);
            border: 1px solid var(--glass-border); border-radius: var(--radius-xl);
            padding: 40px 44px; margin: 24px auto;
            position: relative; overflow: hidden;
            animation: fadeUp 0.6s ease;
        }
        .hero-section::before {
            content:''; position:absolute; top:-40%; right:-10%;
            width:420px; height:420px;
            background: radial-gradient(circle, rgba(102,126,234,0.10), transparent 70%);
            pointer-events:none;
        }
        .hero-section > * { position:relative; z-index:1; }
        .hero-content { flex:1; min-width: 0; }
        .hero-greeting { font-size:14px; font-weight:500; color:var(--text-muted); margin-bottom:6px; }
        .hero-title { font-size:32px; font-weight:800; line-height:1.2; margin-bottom:10px;
            background: var(--primary-gradient); -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
        .hero-desc { font-size:14px; color:var(--text-secondary); line-height:1.6; margin-bottom:22px; max-width:480px; }
        .hero-actions { display:flex; gap:12px; flex-wrap:wrap; }

        .btn-hero-primary {
            display:inline-flex; align-items:center; gap:8px; padding:13px 28px;
            background: linear-gradient(135deg,#4F46E5,#6366F1);
            color:#fff; font-size:14px; font-weight:600; border:none; border-radius:12px;
            cursor:pointer; text-decoration:none; transition:all 0.3s;
            box-shadow: 0 6px 24px rgba(79,70,229,0.35);
        }
        .btn-hero-primary:hover { transform:translateY(-2px); box-shadow:0 10px 32px rgba(79,70,229,0.45); }
        [data-theme="day"] .btn-hero-primary { background: linear-gradient(135deg,#3B82F6,#2563EB); box-shadow:0 6px 24px rgba(59,130,246,0.35); }
        [data-theme="day"] .btn-hero-primary:hover { box-shadow:0 10px 32px rgba(59,130,246,0.45); }
        .btn-hero-secondary {
            display:inline-flex; align-items:center; gap:8px; padding:13px 24px;
            background:rgba(255,255,255,0.06); color:var(--text-secondary);
            font-size:14px; font-weight:500; border:1px solid var(--glass-border);
            border-radius:12px; cursor:pointer; text-decoration:none; transition:all 0.3s;
        }
        .btn-hero-secondary:hover { background:rgba(255,255,255,0.1); border-color:rgba(124,58,237,0.25); }

        /* Hero 鍙充晶缁熻鎽樿 */
        .hero-stats {
            display:flex; gap:20px; flex-shrink:0;
        }
        .hero-stat-item { text-align:center; padding:16px 20px;
            background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.05);
            border-radius:14px; min-width:90px; transition:all 0.3s; }
        .hero-stat-item:hover { background:rgba(255,255,255,0.06); border-color:rgba(124,58,237,0.2);
            transform:translateY(-2px); }
        .hero-stat-num { font-size:28px; font-weight:800; color:#e8eafd;
            font-family:var(--font-mono); line-height:1.2;
            text-shadow: 0 1px 4px rgba(0,0,0,0.3); }
        .hero-stat-label { font-size:11px; color:rgba(240,243,255,0.65); margin-top:4px; font-weight:500; letter-spacing:0.3px; }

        /* ===== 缁熻鍗＄墖鍖?===== */
        .stats-row {
            display:grid; grid-template-columns:repeat(4,1fr); gap:14px;
            margin-bottom:24px; animation:fadeUp 0.6s ease 0.1s both;
        }
        @media(max-width:800px){ .stats-row{ grid-template-columns:repeat(2,1fr); } }
        @media(max-width:480px){ .stats-row{ grid-template-columns:1fr 1fr; gap:10px; } }
        .stat-card {
            background:var(--glass-bg); backdrop-filter:var(--glass-blur);
            border:1px solid var(--glass-border); border-radius:var(--radius-md);
            padding:20px; position:relative; overflow:hidden;
            transition:all 0.3s; cursor:default;
        }
        .stat-card:hover { border-color:rgba(124,58,237,0.25); transform:translateY(-3px);
            box-shadow:0 8px 30px rgba(0,0,0,0.15); }
        .stat-icon-wrap {
            width:42px; height:42px; border-radius:12px; display:flex;
            align-items:center; justify-content:center; font-size:17px; margin-bottom:14px;
        }
        .si-blue { background:rgba(79,110,246,0.12); color:#60a5fa; }
        .si-amber { background:rgba(245,158,11,0.12); color:#fbbf24; }
        .si-green { background:rgba(34,197,94,0.10); color:#4ade80; }
        .si-red { background:rgba(239,68,68,0.10); color:#f87171; }
        .si-purple { background:rgba(168,85,247,0.12); color:#c084fc; }
        .stat-num { font-size:26px; font-weight:800; color:#e8eafd;
            font-family:var(--font-mono); line-height:1.1; }
        .stat-label { font-size:12px; color:var(--text-muted); font-weight:500; margin-top:4px; }
        .stat-hint { font-size:11px; color:var(--text-muted); opacity:0.7; margin-top:6px; font-weight:400; letter-spacing:0.2px; }

        /* ===== 涓诲唴瀹瑰弻鏍?===== */
        .main-grid {
            display:grid; grid-template-columns:1fr 380px; gap:18px;
            margin-bottom:24px; animation:fadeUp 0.6s ease 0.2s both;
        }
        @media(max-width:900px){ .main-grid{ grid-template-columns:1fr; } }

        .panel {
            background:var(--glass-bg); backdrop-filter:var(--glass-blur);
            border:1px solid var(--glass-border); border-radius:var(--radius-md);
            overflow:hidden;
        }
        .panel-header {
            display:flex; justify-content:space-between; align-items:center;
            padding:18px 22px 0;
        }
        .panel-title { font-size:15px; font-weight:700; color:var(--text-secondary);
            display:flex; align-items:center; gap:8px; }
        .panel-body { padding:18px 22px 22px; }

        /* 瓒嬪娍鍥捐〃 */
        .chart-wrap { width:100%; height:280px; }

        /* 鏈€杩戣祫鏂欏垪琛?*/
        .material-list { display:flex; flex-direction:column; gap:8px; }
        .material-item {
            display:flex; align-items:center; gap:12px; padding:14px 16px;
            background:rgba(255,255,255,0.02); border:1px solid rgba(255,255,255,0.04);
            border-radius:12px; text-decoration:none; transition:all 0.25s;
        }
        .material-item:hover { background:rgba(255,255,255,0.07); border-color:rgba(124,58,237,0.2);
            transform:translateX(4px); }
        [data-theme="day"] .material-item:hover { background:#fff; border-color:rgba(79,110,246,0.25); }
        .mat-icon {
            width:40px; height:40px; border-radius:11px; display:flex;
            align-items:center; justify-content:center; font-size:17px; flex-shrink:0;
            background:linear-gradient(135deg,rgba(79,110,246,0.15),rgba(99,102,241,0.10));
            color:#8ba4f8;
        }
        .mat-info { flex:1; min-width:0; }
        .mat-name { font-size:13px; font-weight:600; color:#e8eafd;
            white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
        [data-theme="day"] .mat-name { color:#1E293B; }
        .mat-meta { font-size:11px; color:var(--text-muted); margin-top:2px; }
        .mat-status {
            padding:4px 10px; border-radius:6px; font-size:11px; font-weight:500; flex-shrink:0;
        }
        .ms-done { background:rgba(34,197,94,0.08); color:#86efac; border:1px solid rgba(34,197,94,0.12); }
        .ms-busy { background:rgba(124,58,237,0.08); color:#a78bfa; border:1px solid rgba(124,58,237,0.15); }
        .ms-wait { background:rgba(255,255,255,0.03); color:var(--text-muted); border:1px solid rgba(255,255,255,0.05); }

        /* ===== 蹇嵎鍔熻兘鍖?===== */
        .quick-section { margin-bottom:24px; animation:fadeUp 0.6s ease 0.3s both; }
        .quick-title { font-size:15px; font-weight:700; color:var(--text-secondary);
            margin-bottom:14px; display:flex; align-items:center; gap:8px; }
        .quick-grid {
            display:grid; grid-template-columns:repeat(6,1fr); gap:12px;
        }
        @media(max-width:900px){ .quick-grid{ grid-template-columns:repeat(3,1fr); } }
        @media(max-width:520px){ .quick-grid{ grid-template-columns:repeat(2,1fr); } }
        .quick-card {
            display:flex; flex-direction:column; align-items:center; gap:10px;
            padding:24px 14px; text-align:center;
            background:var(--glass-bg); backdrop-filter:var(--glass-blur);
            border:1px solid var(--glass-border); border-radius:var(--radius-md);
            text-decoration:none; transition:all 0.3s cubic-bezier(0.4,0,0.2,1);
            position:relative; overflow:hidden;
        }
        .quick-card:hover { border-color:rgba(124,58,237,0.3); transform:translateY(-4px);
            box-shadow:0 12px 40px rgba(0,0,0,0.2); }
        [data-theme="day"] .quick-card:hover { border-color:rgba(79,110,246,0.25);
            box-shadow:0 8px 30px rgba(100,116,139,0.12); }
        .quick-icon {
            width:50px; height:50px; border-radius:14px; display:flex;
            align-items:center; justify-content:center; font-size:20px; color:#fff;
            position: relative;
        }
        /* 品牌定制 SVG 图标在快捷卡片中的渲染 */
        .quick-icon .kli {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 24px;
            height: 24px;
            color: #fff;
        }
        .quick-icon .kli svg {
            display: block;
            width: 24px;
            height: 24px;
            color: inherit;
            filter: drop-shadow(0 1px 2px rgba(0,0,0,0.1));
            transition: transform 0.3s cubic-bezier(0.34,1.56,0.64,1);
        }
        .quick-card:hover .quick-icon .kli svg {
            transform: scale(1.12);
        }
        .qi-upload { background:linear-gradient(135deg,#4F46E5,#6366F1); box-shadow:0 5px 16px rgba(79,70,229,0.3); }
        .qi-materials { background:linear-gradient(135deg,#d97706,#f59e0b); box-shadow:0 5px 16px rgba(217,119,6,0.3); }
        .qi-preview { background:linear-gradient(135deg,#059669,#34d399); box-shadow:0 5px 16px rgba(5,150,105,0.3); }
        .qi-mistakes { background:linear-gradient(135deg,#ef4444,#f87171); box-shadow:0 5px 16px rgba(239,68,68,0.25); position:relative; }
        .qi-review { background:linear-gradient(135deg,#8b5cf6,#a78bfa); box-shadow:0 5px 16px rgba(139,92,246,0.3); }
        .qi-quiz { background:linear-gradient(135deg,#f59e0b,#fbbf24); box-shadow:0 5px 16px rgba(245,158,11,0.3); }
        [data-theme="day"] .qi-upload { background:linear-gradient(135deg,#3B82F6,#2563EB); box-shadow:0 5px 16px rgba(59,130,246,0.3); }
        [data-theme="day"] .qi-review { background:linear-gradient(135deg,#3B82F6,#2563EB); box-shadow:0 5px 16px rgba(59,130,246,0.3); }
        .quick-name { font-size:13px; font-weight:600; color:#e8eafd; }
        [data-theme="day"] .quick-name { color:#1E293B; }
        .quick-desc { font-size:11px; color:var(--text-muted); }
        /* 日间模式图标容器微调（梯度背景不变，图标白色保持） */
        [data-theme="day"] .quick-icon .kli,
        [data-theme="day"] .quick-icon .kli svg {
            color: #fff !important;
            filter: drop-shadow(0 1px 3px rgba(0,0,0,0.15));
        }
        .badge-dot {
            position:absolute; top:6px; right:6px;
            width:18px; height:18px; background:#ef4444; color:#fff;
            font-size:10px; font-weight:700; border-radius:9px;
            display:flex; align-items:center; justify-content:center;
        }

        /* ===== 绌虹姸鎬佸紩瀵?===== */
        .empty-guide {
            text-align:center; padding:48px 24px;
            background:var(--glass-bg); backdrop-filter:var(--glass-blur);
            border:1px solid var(--glass-border); border-radius:var(--radius-md);
        }
        .empty-guide-icon { font-size:52px; margin-bottom:16px; display:block;
            background:linear-gradient(135deg,#667eea,#764ba2); -webkit-background-clip:text;
            -webkit-text-fill-color:transparent; animation:floatSlow 3s ease-in-out infinite; }
        .empty-guide h3 { font-size:18px; font-weight:700; color:#e8eafd; margin-bottom:8px; }
        [data-theme="day"] .empty-guide h3 { color:#1E293B; }
        .empty-guide p { font-size:13px; color:var(--text-muted); margin-bottom:22px; line-height:1.6; max-width:340px; margin-left:auto; margin-right:auto; }
        .empty-steps { display:inline-flex; flex-direction:column; gap:10px; text-align:left; margin-bottom:24px; }
        .empty-step { display:flex; align-items:center; gap:10px; font-size:13px; color:var(--text-secondary); }
        .empty-step-num { width:24px; height:24px; border-radius:7px; background:rgba(102,126,234,0.15);
            color:#a78bfa; display:flex; align-items:center; justify-content:center;
            font-size:12px; font-weight:700; flex-shrink:0; }

        /* ===== 搴曢儴娲诲姩娴?===== */
        .bottom-section { animation:fadeUp 0.6s ease 0.35s both; }
        .activity-list { max-height:260px; overflow-y:auto; padding-right:4px; }
        .activity-list::-webkit-scrollbar{ width:4px; }
        .activity-list::-webkit-scrollbar-thumb{ background:rgba(255,255,255,0.08); border-radius:4px; }
        .act-item { display:flex; gap:12px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,0.03); }
        .act-item:last-child{ border-bottom:none; }
        .act-icon { width:34px; height:34px; border-radius:10px; display:flex;
            align-items:center; justify-content:center; font-size:13px; flex-shrink:0; }
        .act-body{ flex:1; min-width:0; }
        .act-desc{ font-size:13px; color:#e8eafd; line-height:1.45; }
        .act-time{ font-size:11px; color:var(--text-muted); margin-top:2px; }
        /* JS动态渲染的活动流使用的样式（dashboard-widgets.js输出class名带activity-前缀） */
        .activity-item { display:flex; gap:12px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,0.03); }
        .activity-item:last-child{ border-bottom:none; }
        .activity-icon { width:34px; height:34px; border-radius:10px; display:flex;
            align-items:center; justify-content:center; font-size:13px; flex-shrink:0; }
        .activity-body{ flex:1; min-width:0; }
        .activity-desc{ font-size:13px; color:#e8eafd; line-height:1.45; display:flex; gap:6px; align-items:baseline; }
        .activity-subdesc{ font-size:11px; color:var(--text-secondary); margin-top:2px; opacity:0.75; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
        .activity-time{ font-size:11px; color:var(--text-muted); margin-top:2px; }

        /* ===== 鏃ラ棿妯″紡瑕嗙洊 ===== */
        [data-theme="day"] body { background:#F5F7FB; }
        [data-theme="day"] .hero-section { background:rgba(255, 255, 255, 0.82); border-color:#E2E8F0;
            box-shadow:0 1px 3px rgba(100,116,139,0.04),0 4px 16px rgba(100,116,139,0.06);
            backdrop-filter:blur(40px) saturate(1.4); }
        [data-theme="day"] .hero-greeting { color:var(--day-text-faint); }
        [data-theme="day"] .hero-desc { color:#64748B; }
        [data-theme="day"] .hero-stat-item { background:#F8FAFC; border-color:#E2E8F0; }
        [data-theme="day"] .hero-stat-num { color:#1E293B; }
        [data-theme="day"] .hero-stat-label { color:#64748B; }
        [data-theme="day"] .stat-card, [data-theme="day"] .panel,
        [data-theme="day"] .quick-card { background:rgba(255, 255, 255, 0.82); border-color:#E2E8F0;
            box-shadow:0 1px 3px rgba(100,116,139,0.05); backdrop-filter:blur(40px) saturate(1.4); }
        [data-theme="day"] .stat-num { color:#1E293B; }
        [data-theme="day"] .panel-title, [data-theme="day"] .quick-title,
        [data-theme="day"] .bottom-title { color:#475569; }
        [data-theme="day"] .empty-guide { background:rgba(255, 255, 255, 0.82); border-color:#E2E8F0; backdrop-filter:blur(40px) saturate(1.4); }
        [data-theme="day"] .act-desc { color:#334155; }
        [data-theme="day"] .material-item { background:rgba(255, 255, 255, 0.82); border-color:#E2E8F0; backdrop-filter:blur(40px) saturate(1.4); }
        [data-theme="day"] .mat-icon { background:rgba(79,110,246,0.08); color:#4F6EF6; }
        [data-theme="day"] .mat-meta { color:#94A3B8; }
        [data-theme="day"] .ms-wait { background:rgba(100,116,139,0.04); color:#94A3B8; border-color:rgba(100,116,139,0.08); }

        /* 楠ㄦ灦灞?*/
        .skeleton { background:linear-gradient(90deg,rgba(255,255,255,0.82) 25%,rgba(255,255,255,0.78) 50%,rgba(255,255,255,0.82) 75%);
            background-size:200% 100%; animation:shimmer 1.5s infinite; border-radius:6px; }

        @media(max-width:768px){
            .hero-section{ flex-direction:column; padding:28px 22px; text-align:center; }
            .hero-actions{ justify-content:center; }
            .hero-stats{ justify-content:center; width:100%; }
            .hero-desc{ max-width:100%; }
            .hero-title{ font-size:24px; }
            .chart-wrap{ height:230px; }
        }
    
