*{margin:0;padding:0;box-sizing:border-box}:root{--dl-green: #10B981;--dl-green-dark: #059669;--dl-green-light: #D1FAE5;--dl-blue: #38BDF8;--dl-blue-dark: #0EA5E9;--dl-blue-light: #E0F2FE;--dl-purple: #FF5722;--dl-purple-dark: #E64A19;--dl-purple-light: #FFE0B2;--dl-orange: #FACC15;--dl-orange-dark: #EAB308;--dl-orange-light: #FEF3C7;--dl-red: #EF4444;--dl-red-dark: #DC2626;--dl-red-light: #FEE2E2;--dl-yellow: #FACC15;--dl-yellow-light: #FEF3C7;--dl-pink: #FF5722;--dl-coral: #FF5722;--dl-coral-light: #FFE0B2;--dl-grape: #10B981;--dl-grape-light: #D1FAE5;--dl-lime: #FACC15;--dl-lime-light: #FEF3C7;--cute-cream: #F5F1E8;--cute-cream-dark: #E8E0D0;--cute-ink: #0A0A0A;--cute-ink-soft: #3C3C3C;--cute-ink-light: #9CA3AF;--cute-shadow: 0 2px 10px rgba(10,10,10,.06);--cute-shadow-hover: 0 8px 24px rgba(10,10,10,.1);--cute-radius: 28px;--cute-radius-sm: 20px;--tech-bg: #F0F4FA;--tech-surface: #FFFFFF;--tech-surface2: #F1F5F9;--tech-border: rgba(59,130,246,.1);--tech-border-bright: rgba(59,130,246,.25);--tech-cyan: #0891B2;--tech-blue: #2563EB;--tech-indigo: #4F46E5;--tech-violet: #7C3AED;--tech-purple: #8B5CF6;--tech-emerald: #059669;--tech-amber: #D97706;--tech-rose: #E11D48;--tech-text: #334155;--tech-text-dim: #64748B;--tech-text-bright: #0F172A;--tech-text-secondary: #64748B;--tech-text-tertiary: #94A3B8;--tech-text-muted: #94A3B8;--tech-green: #059669;--tech-red: #E11D48;--tech-bg-secondary: #F1F5F9;--tech-glow-cyan: 0 0 20px rgba(8,145,178,.1);--tech-glow-blue: 0 0 20px rgba(37,99,235,.1);--primary: #4A6CF7;--primary-light: #EEF2FF;--primary-dark: #3451D1;--success: #22C55E;--success-light: #F0FDF4;--warning: #F59E0B;--warning-light: #FFFBEB;--danger: #EF4444;--danger-light: #FEF2F2;--info: #06B6D4;--info-light: #ECFEFF;--purple: #8B5CF6;--purple-light: #F5F3FF;--gray-50: #F9FAFB;--gray-100: #F3F4F6;--gray-200: #E5E7EB;--gray-300: #D1D5DB;--gray-400: #9CA3AF;--gray-500: #6B7280;--gray-600: #4B5563;--gray-700: #374151;--gray-800: #1F2937;--gray-900: #111827;--radius: 16px;--radius-sm: 12px;--shadow: 0 2px 8px rgba(0,0,0,.06);--shadow-lg: 0 8px 24px rgba(0,0,0,.08)}body{font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:var(--gray-50);color:var(--gray-800);line-height:1.6;-webkit-font-smoothing:antialiased}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh;font-size:18px;color:var(--gray-500)}.home-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;background:linear-gradient(180deg,#89c7ff,#e0f2ff 40%,#fff4d6)}.home-header{text-align:center;margin-bottom:40px}.home-header h1{font-size:32px;color:var(--gray-900);margin-bottom:8px;font-weight:800}.version-tag{display:inline-block;background:var(--dl-green);color:#fff;padding:6px 16px;border-radius:20px;font-size:13px;margin-bottom:12px;font-weight:700;box-shadow:0 3px 0 var(--dl-green-dark)}.home-header .subtitle{color:var(--gray-600);font-size:15px;font-weight:600}.home-cards{display:flex;gap:24px;flex-wrap:wrap;justify-content:center;max-width:800px}.home-section h2{font-size:16px;color:var(--gray-600);margin-bottom:14px;text-align:center;font-weight:700}.home-card{display:flex;align-items:center;gap:14px;background:#fff;border-radius:20px;box-shadow:0 6px #00000014;padding:20px 28px;min-width:280px;cursor:pointer;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s;margin-bottom:12px;border:3px solid transparent}.home-card:hover{transform:translateY(-3px);box-shadow:0 9px #00000014}.home-card:active{transform:translateY(3px);box-shadow:0 3px #00000014}.student-card{border-color:var(--dl-blue)}.parent-card{border-color:var(--tech-violet)}.card-icon{font-size:36px}.card-name{font-size:18px;font-weight:800;color:var(--gray-800)}.card-meta{font-size:13px;color:var(--gray-500)}.card-arrow{font-size:20px;color:var(--gray-300)}.home-features{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:36px}.feature-pill{background:#fffc;color:var(--dl-blue-dark);padding:8px 18px;border-radius:20px;font-size:13px;font-weight:700;border:2px solid var(--dl-blue-light)}.student-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--cute-cream);position:relative}.student-layout:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 15% 20%,rgba(16,185,129,.06) 0%,transparent 25%),radial-gradient(circle at 80% 60%,rgba(250,204,21,.05) 0%,transparent 28%),radial-gradient(circle at 40% 85%,rgba(255,87,34,.03) 0%,transparent 25%);pointer-events:none;z-index:0}.student-nav{background:#fff;padding:0 20px;display:flex;align-items:center;height:64px;position:sticky;top:0;z-index:100;border-bottom:2px solid var(--cute-cream-dark);box-shadow:0 1px 8px #0000000a}.student-nav .nav-title{font-size:18px;font-weight:800;margin-right:auto;color:var(--cute-ink)}.student-nav .nav-links{display:flex;gap:6px}.student-nav .nav-link{text-decoration:none;padding:10px 16px;border-radius:16px;font-size:14px;font-weight:700;transition:all .2s;cursor:pointer;color:var(--cute-ink-soft);border:2px solid transparent}.student-nav .nav-link:hover{background:var(--dl-green-light);color:var(--dl-green-dark);transform:translateY(-1px)}.student-nav .nav-link.active{background:var(--dl-green);color:#fff;border-color:var(--dl-green-dark);box-shadow:0 3px 0 var(--dl-green-dark)}.student-content{flex:1;padding:20px;max-width:900px;margin:0 auto;width:100%;background:transparent;position:relative;z-index:1}.student-layout .card{background:#fff;border-radius:var(--cute-radius);box-shadow:var(--cute-shadow);padding:24px;margin-bottom:16px;border:none}.student-layout .card-title{font-size:17px;font-weight:800;color:var(--cute-ink);margin-bottom:12px}.student-layout .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:14px 28px;border-radius:20px;border:none;cursor:pointer;font-size:15px;font-weight:800;transition:transform .1s,box-shadow .1s,filter .15s;text-decoration:none;font-family:inherit}.student-layout .btn-primary{background:var(--dl-purple);color:#fff;box-shadow:0 4px 0 var(--dl-purple-dark)}.student-layout .btn-primary:hover{filter:brightness(1.08)}.student-layout .btn-primary:active{transform:translateY(4px);box-shadow:0 0 0 var(--dl-purple-dark)}.student-layout .btn-success{background:var(--dl-green);color:#fff;box-shadow:0 4px 0 var(--dl-green-dark)}.student-layout .btn-success:hover{filter:brightness(1.08)}.student-layout .btn-success:active{transform:translateY(4px);box-shadow:0 0 0 var(--dl-green-dark)}.student-layout .btn-warning{background:linear-gradient(135deg,var(--dl-orange),var(--dl-orange-dark));color:#fff;box-shadow:0 4px #d97706}.student-layout .btn-warning:active{transform:translateY(4px);box-shadow:0 0 #d97706}.student-layout .btn-outline{background:#fff;border:2px solid var(--cute-cream-dark);color:var(--cute-ink-soft);box-shadow:0 4px 0 var(--cute-cream-dark)}.student-layout .btn-outline:hover{border-color:var(--dl-green);color:var(--dl-green);box-shadow:0 4px 0 var(--dl-green-light)}.student-layout .btn-outline:active{transform:translateY(4px);box-shadow:0 0 0 var(--cute-cream-dark)}.student-layout .btn-large{padding:18px 36px;font-size:18px;border-radius:24px}.student-layout .btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:0 2px #0000000f}.student-layout .tag{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:700}.student-layout .tag-blue{background:var(--dl-blue-light);color:var(--dl-blue-dark)}.student-layout .tag-green{background:var(--dl-green-light);color:var(--dl-green-dark)}.student-layout .tag-red{background:var(--dl-red-light);color:var(--dl-red-dark)}.student-layout .tag-yellow{background:var(--dl-yellow-light);color:#b8860b}.student-layout .tag-purple{background:var(--dl-purple-light);color:var(--dl-purple-dark)}.student-layout .tag-gray{background:var(--gray-100);color:var(--gray-500)}.student-layout .empty-state{text-align:center;padding:60px 20px;color:var(--gray-400)}.student-layout .empty-state .icon{font-size:56px;margin-bottom:12px}.student-layout .welcome-banner{background:var(--dl-green);color:#fff;border-radius:var(--cute-radius);padding:32px;margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 6px 24px #10b98133;position:relative;overflow:hidden;border:none}.student-layout .welcome-banner:after{content:"";position:absolute;top:-30px;right:-30px;width:120px;height:120px;border-radius:50%;background:#ffffff1f}@keyframes bannerGradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.student-layout .welcome-banner h2{font-size:22px;margin-bottom:4px;font-weight:800}.student-layout .welcome-banner p{opacity:.9;font-size:14px;font-weight:600}.student-layout .welcome-banner .banner-icon{font-size:48px}.student-layout .welcome-banner .banner-illustration{position:relative;z-index:1;filter:drop-shadow(0 4px 8px rgba(0,0,0,.1))}.student-layout .section-title{font-size:18px;font-weight:800;margin:20px 0 12px;display:flex;align-items:center;gap:8px;color:var(--cute-ink)}.student-layout .task-item{display:flex;align-items:center;gap:16px;background:#fff;border-radius:var(--cute-radius);padding:20px 24px;margin-bottom:12px;cursor:pointer;transition:all .2s;border:none;box-shadow:var(--cute-shadow);border-left:6px solid var(--dl-green)}.student-layout .task-item:hover{transform:translateY(-3px);box-shadow:var(--cute-shadow-hover)}.student-layout .task-item:active{transform:translateY(0);box-shadow:var(--cute-shadow)}.student-layout .task-item.task-learn{border-left-color:var(--dl-green)}.student-layout .task-item.task-practice{border-left-color:var(--dl-coral)}.student-layout .task-item.task-review{border-left-color:var(--dl-orange)}.student-layout .task-icon{font-size:28px;width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--dl-green-light);border:none;box-shadow:0 2px 8px #10b98126;transition:transform .2s}.student-layout .task-item:hover .task-icon{transform:scale(1.1) rotate(5deg)}.student-layout .task-item.task-practice .task-icon{background:var(--dl-coral-light);box-shadow:0 2px 8px #ff572226}.student-layout .task-item.task-review .task-icon{background:var(--dl-orange-light);box-shadow:0 2px 8px #fbbf2433}.student-layout .task-info{flex:1}.student-layout .task-name{font-size:15px;font-weight:800;color:var(--cute-ink)}.student-layout .task-meta{font-size:13px;color:var(--cute-ink-light);margin-top:2px;font-weight:600}.student-layout .task-reason{font-size:12px;color:var(--cute-ink-light);margin-top:4px}.student-layout .task-action{color:var(--dl-coral);font-size:20px;font-weight:800;width:36px;height:36px;border-radius:12px;background:var(--dl-coral-light);display:flex;align-items:center;justify-content:center}.student-layout .kp-unit{background:#fff;border-radius:var(--cute-radius);margin-bottom:14px;overflow:hidden;border:none;box-shadow:var(--cute-shadow)}.student-layout .kp-unit-header{padding:16px 20px;background:var(--dl-green-light);cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:800;color:var(--dl-green-dark);transition:background .15s}.student-layout .kp-unit-header:hover{background:linear-gradient(135deg,#b8f0e6,#cff0fc)}.student-layout .kp-unit-header .chevron{transition:transform .2s;font-size:16px}.student-layout .kp-unit-header.expanded .chevron{transform:rotate(90deg)}.student-layout .kp-children{padding:8px 12px}.student-layout .kp-child{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:16px;cursor:pointer;transition:all .15s}.student-layout .kp-child:hover{background:var(--dl-green-light)}.student-layout .kp-child-info{flex:1}.student-layout .kp-child-name{font-size:14px;color:var(--cute-ink-soft);font-weight:700}.student-layout .kp-child-meta{font-size:12px;color:var(--cute-ink-light);font-weight:600}.student-layout .mastery-bar{width:80px;height:8px;background:var(--cute-cream-dark);border-radius:4px;overflow:hidden}.student-layout .mastery-bar-fill{height:100%;border-radius:4px;transition:width .3s}.student-layout .learn-container{max-width:800px;margin:0 auto}.student-layout .learn-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.student-layout .back-btn{background:var(--dl-green-light);border:none;font-size:22px;color:var(--dl-green-dark);cursor:pointer;padding:8px 12px;border-radius:14px;font-weight:800;box-shadow:0 3px 0 var(--dl-green-light)}.student-layout .back-btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--dl-green-light)}.student-layout .learn-title{font-size:24px;font-weight:800;color:var(--cute-ink)}.student-layout .video-placeholder{background:var(--dl-green);border-radius:var(--cute-radius);height:300px;display:flex;align-items:center;justify-content:center;margin-bottom:20px;position:relative;cursor:pointer;border:none;box-shadow:var(--cute-shadow-hover)}.student-layout .video-placeholder .play-btn{width:72px;height:72px;background:#ffffff40;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;color:#fff;transition:all .2s;border:3px solid rgba(255,255,255,.4)}.student-layout .video-placeholder:hover .play-btn{background:#ffffff59;transform:scale(1.1)}.student-layout .video-placeholder .video-label{position:absolute;bottom:16px;left:20px;color:#fffc;font-size:13px;font-weight:600}.student-layout .text-content{background:#fff;border-radius:var(--cute-radius);padding:32px;white-space:pre-wrap;line-height:1.8;color:var(--cute-ink-soft);font-size:15px;border:none;box-shadow:var(--cute-shadow)}.student-layout .text-content h3{color:var(--cute-ink);margin-bottom:8px;font-weight:800}.student-layout .learn-actions{display:flex;gap:12px;justify-content:center;margin-top:24px}.student-layout .practice-container{max-width:700px;margin:0 auto}.student-layout .practice-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.student-layout .practice-progress{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--cute-ink-soft);font-weight:700}.student-layout .progress-bar{width:120px;height:12px;background:var(--cute-cream-dark);border-radius:6px;overflow:hidden}.student-layout .progress-bar-fill{height:100%;background:var(--dl-green);border-radius:6px;transition:width .3s}.student-layout .difficulty-indicator{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700}.student-layout .difficulty-dots{display:flex;gap:4px}.student-layout .difficulty-dot{width:10px;height:10px;border-radius:50%;background:var(--cute-cream-dark)}.student-layout .difficulty-dot.active{background:var(--dl-orange-dark)}.student-layout .question-card{background:#fff;border-radius:var(--cute-radius);padding:32px;margin-bottom:16px;border:none;box-shadow:var(--cute-shadow)}.student-layout .question-number{font-size:13px;color:var(--dl-green);margin-bottom:8px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}.student-layout .question-title{font-size:20px;color:var(--cute-ink);margin-bottom:20px;line-height:1.6;font-weight:700}.student-layout .option-item{display:flex;align-items:center;gap:14px;padding:16px 20px;border:2px solid var(--cute-cream-dark);border-radius:20px;margin-bottom:10px;cursor:pointer;transition:all .15s;background:#fff}.student-layout .option-item:hover{border-color:var(--dl-green);background:var(--dl-green-light)}.student-layout .option-item.selected,.student-layout .option-item.correct{border-color:var(--dl-green);background:var(--dl-green-light);box-shadow:0 3px 0 var(--dl-green-light)}.student-layout .option-item.wrong{border-color:var(--dl-red);background:var(--dl-red-light);box-shadow:0 3px 0 var(--dl-red-light)}.student-layout .option-letter{width:36px;height:36px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;background:var(--cute-cream-dark);color:var(--cute-ink-soft);flex-shrink:0}.student-layout .option-item.selected .option-letter,.student-layout .option-item.correct .option-letter{background:var(--dl-green);color:#fff}.student-layout .option-item.wrong .option-letter{background:var(--dl-red);color:#fff}.student-layout .option-text{font-size:16px;color:var(--cute-ink-soft);font-weight:600}.student-layout .answer-input{width:100%;padding:16px 20px;border:2px solid var(--cute-cream-dark);border-radius:20px;font-size:18px;outline:none;transition:border-color .2s;font-family:inherit;font-weight:700}.student-layout .answer-input:focus{border-color:var(--dl-green)}.student-layout .answer-input.correct{border-color:var(--dl-green);background:var(--dl-green-light)}.student-layout .answer-input.wrong{border-color:var(--dl-red);background:var(--dl-red-light)}.student-layout .practice-actions{display:flex;gap:12px;justify-content:center;margin-top:20px}.student-layout .feedback-card{border-radius:20px;padding:16px 20px;margin-top:16px}.student-layout .feedback-card.correct{background:var(--dl-green-light);border:2px solid var(--dl-green)}.student-layout .feedback-card.wrong{background:var(--dl-red-light);border:2px solid var(--dl-red)}.student-layout .feedback-title{font-weight:800;margin-bottom:8px;font-size:16px}.student-layout .feedback-card.correct .feedback-title{color:var(--dl-green-dark)}.student-layout .feedback-card.wrong .feedback-title{color:var(--dl-red-dark)}.student-layout .feedback-content{font-size:14px;color:var(--cute-ink-soft);line-height:1.6}.student-layout .difficulty-change-alert{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--dl-yellow-light);border-radius:16px;margin-top:12px;font-size:13px;color:#b8860b;font-weight:700}.student-layout .practice-complete{text-align:center;padding:40px 20px}.student-layout .complete-icon{font-size:72px;margin-bottom:16px}.student-layout .complete-title{font-size:24px;font-weight:800;color:var(--gray-900);margin-bottom:8px}.student-layout .complete-stats{display:flex;justify-content:center;gap:24px;margin:20px 0}.student-layout .complete-stat{text-align:center}.student-layout .complete-stat-value{font-size:32px;font-weight:800;color:var(--dl-green)}.student-layout .complete-stat-label{font-size:13px;color:var(--cute-ink-light);font-weight:600}.student-layout .test-container{max-width:800px;margin:0 auto}.student-layout .test-header{background:#fff;border-radius:20px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;position:sticky;top:68px;z-index:50;border:none;box-shadow:var(--cute-shadow)}.student-layout .test-timer{display:flex;align-items:center;gap:6px;font-size:20px;font-weight:800;color:var(--dl-red)}.student-layout .test-timer.warning{animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.6}}.student-layout .answer-sheet{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px}.student-layout .answer-sheet-item{width:40px;height:40px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;background:var(--cute-cream-dark);color:var(--cute-ink-soft);cursor:pointer;transition:all .15s;border:2px solid transparent}.student-layout .answer-sheet-item:hover{background:var(--dl-green-light)}.student-layout .answer-sheet-item.current{background:var(--dl-green);color:#fff;border-color:var(--dl-green-dark);box-shadow:0 3px 0 var(--dl-green-dark)}.student-layout .answer-sheet-item.answered{background:var(--dl-green-light);color:var(--dl-green-dark);border-color:var(--dl-green)}.student-layout .report-container{max-width:800px;margin:0 auto}.student-layout .score-banner{border-radius:var(--cute-radius);padding:36px;text-align:center;margin-bottom:20px;color:#fff;position:relative;overflow:hidden;border:none;box-shadow:var(--cute-shadow-hover)}.student-layout .score-banner.excellent{background:var(--dl-green)}.student-layout .score-banner.good{background:var(--dl-blue)}.student-layout .score-banner.average{background:var(--dl-orange);color:var(--cute-ink)}.student-layout .score-banner.poor{background:var(--dl-red)}.student-layout .score-value{font-size:56px;font-weight:800}.student-layout .score-label{font-size:14px;opacity:.9;margin-top:4px;font-weight:600}.student-layout .score-details{display:flex;justify-content:center;gap:32px;margin-top:16px}.student-layout .score-detail-item{text-align:center}.student-layout .score-detail-value{font-size:22px;font-weight:800}.student-layout .score-detail-label{font-size:12px;opacity:.85}.student-layout .kp-score-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:2px solid var(--cute-cream-dark)}.student-layout .kp-score-item:last-child{border-bottom:none}.student-layout .kp-score-name{flex:1;font-size:14px;color:var(--cute-ink-soft);font-weight:700}.student-layout .kp-score-bar{width:100px;height:10px;background:var(--cute-cream-dark);border-radius:5px;overflow:hidden}.student-layout .kp-score-bar-fill{height:100%;border-radius:5px}.student-layout .kp-score-value{font-size:14px;font-weight:800;width:40px;text-align:right}.student-layout .mistake-stats-row{display:flex;gap:12px;margin-bottom:20px}.student-layout .stat-card{flex:1;background:#fff;border-radius:var(--cute-radius-sm);padding:20px;text-align:center;border:none;box-shadow:var(--cute-shadow)}.student-layout .stat-value{font-size:28px;font-weight:800}.student-layout .stat-label{font-size:12px;color:var(--cute-ink-light);margin-top:4px;font-weight:600}.student-layout .mistake-filter{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.student-layout .filter-chip{padding:8px 16px;border-radius:20px;font-size:13px;cursor:pointer;background:#fff;border:2px solid var(--cute-cream-dark);color:var(--cute-ink-soft);transition:all .15s;font-weight:700}.student-layout .filter-chip:hover{border-color:var(--dl-green)}.student-layout .filter-chip.active{background:var(--dl-green);color:#fff;border-color:var(--dl-green-dark);box-shadow:0 3px 0 var(--dl-green-dark)}.student-layout .mistake-item{background:#fff;border-radius:var(--cute-radius-sm);padding:20px 24px;margin-bottom:10px;border:none;border-left:5px solid var(--dl-red);box-shadow:var(--cute-shadow)}.student-layout .mistake-item.resolved{border-left-color:var(--dl-green);opacity:.7}.student-layout .mistake-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.student-layout .mistake-title{flex:1;font-size:15px;color:var(--cute-ink);font-weight:700}.student-layout .mistake-answer{font-size:13px;color:var(--cute-ink-soft);margin-top:6px;font-weight:600}.student-layout .mistake-correct{color:var(--dl-green-dark);font-weight:700}.student-layout .mistake-wrong{color:var(--dl-red-dark);font-weight:700}.student-layout .mistake-analysis{background:var(--dl-yellow-light);border-radius:16px;padding:14px 18px;margin-top:8px;font-size:13px;color:var(--cute-ink-soft);line-height:1.5}.parent-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--tech-bg);background-image:radial-gradient(ellipse at top left,rgba(37,99,235,.06) 0%,transparent 50%),radial-gradient(ellipse at bottom right,rgba(124,58,237,.05) 0%,transparent 50%)}.parent-nav{background:#fffc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:0 24px;display:flex;align-items:center;height:60px;position:sticky;top:0;z-index:100;border-bottom:1px solid var(--tech-border)}.parent-nav .nav-title{font-size:17px;font-weight:700;margin-right:auto;background:linear-gradient(135deg,var(--tech-cyan),var(--tech-violet));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.parent-nav .nav-links{display:flex;gap:4px}.parent-nav .nav-link{color:var(--tech-text-dim);text-decoration:none;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;transition:all .2s;cursor:pointer;border:1px solid transparent}.parent-nav .nav-link:hover{color:var(--tech-text-bright);background:#00000008}.parent-nav .nav-link.active{color:var(--tech-cyan);background:#22d3ee14;border-color:#22d3ee33}.parent-content{flex:1;padding:24px;max-width:1000px;margin:0 auto;width:100%;color:var(--tech-text)}.parent-layout .card{background:#fffc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:14px;border:1px solid var(--tech-border);padding:20px;margin-bottom:16px;box-shadow:0 2px 12px #0000000a}.parent-layout .card-title{font-size:16px;font-weight:600;color:var(--tech-text-bright);margin-bottom:12px}.parent-layout .section-title{font-size:16px;font-weight:600;color:var(--tech-text-bright);margin:24px 0 12px;display:flex;align-items:center;gap:8px}.parent-layout .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 22px;border-radius:8px;border:none;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s;text-decoration:none;font-family:inherit}.parent-layout .btn-primary{background:linear-gradient(135deg,var(--tech-blue),var(--tech-indigo));color:#fff;box-shadow:0 0 16px #3b82f64d}.parent-layout .btn-primary:hover{box-shadow:0 0 24px #3b82f680;transform:translateY(-1px)}.parent-layout .btn-success{background:linear-gradient(135deg,var(--tech-emerald),#059669);color:#fff;box-shadow:0 0 16px #10b9814d}.parent-layout .btn-warning{background:linear-gradient(135deg,var(--tech-amber),#D97706);color:#fff}.parent-layout .btn-outline{background:transparent;border:1px solid var(--tech-border-bright);color:var(--tech-text)}.parent-layout .btn-outline:hover{background:#00000008;border-color:var(--tech-cyan)}.parent-layout .btn-large{padding:14px 28px;font-size:16px}.parent-layout .btn:disabled{opacity:.4;cursor:not-allowed}.parent-layout .tag{display:inline-block;padding:4px 12px;border-radius:6px;font-size:12px;font-weight:600;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.parent-layout .tag-blue{background:#2563eb1a;color:#2563eb;border:1px solid rgba(37,99,235,.2)}.parent-layout .tag-green{background:#0596691a;color:#059669;border:1px solid rgba(5,150,105,.2)}.parent-layout .tag-red{background:#e11d481a;color:#e11d48;border:1px solid rgba(225,29,72,.2)}.parent-layout .tag-yellow{background:#d977061a;color:#d97706;border:1px solid rgba(217,119,6,.2)}.parent-layout .tag-purple{background:#7c3aed1a;color:#7c3aed;border:1px solid rgba(124,58,237,.2)}.parent-layout .tag-gray{background:#64748b14;color:var(--tech-text-dim);border:1px solid rgba(100,116,139,.15)}.parent-layout .empty-state{text-align:center;padding:60px 20px;color:var(--tech-text-dim)}.parent-layout .empty-state .icon{font-size:48px;margin-bottom:12px}.parent-layout .dashboard-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:20px}@media (max-width: 768px){.parent-layout .dashboard-grid{grid-template-columns:1fr}}.parent-layout .metric-card{background:#fffc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:14px;border:1px solid var(--tech-border);padding:20px;display:flex;align-items:center;gap:16px;transition:border-color .3s,box-shadow .3s;box-shadow:0 2px 8px #00000008}.parent-layout .metric-card:hover{border-color:var(--tech-border-bright);box-shadow:0 4px 16px #2563eb14}.parent-layout .metric-icon{font-size:28px;width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#00000008}.parent-layout .metric-info{flex:1}.parent-layout .metric-value{font-size:28px;font-weight:700;color:var(--tech-text-bright);font-family:SF Mono,Fira Code,Cascadia Code,monospace}.parent-layout .metric-label{font-size:13px;color:var(--tech-text-dim)}.parent-layout .metric-trend{font-size:12px;margin-top:2px;color:var(--tech-text-dim)}.parent-layout .metric-trend.up{color:var(--tech-emerald)}.parent-layout .metric-trend.down{color:var(--tech-rose)}.parent-layout .mastery-section{background:#fffc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:14px;border:1px solid var(--tech-border);padding:20px;margin-bottom:16px;box-shadow:0 2px 8px #00000008}.parent-layout .mastery-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid rgba(0,0,0,.05)}.parent-layout .mastery-row:last-child{border-bottom:none}.parent-layout .mastery-name{flex:1;font-size:14px;color:var(--tech-text)}.parent-layout .mastery-score-text{font-size:16px;font-weight:700;width:50px;text-align:right;font-family:SF Mono,Fira Code,Cascadia Code,monospace;color:var(--tech-text-bright)}.parent-layout .week-chart{display:flex;align-items:flex-end;gap:8px;height:120px;padding:12px 0}.parent-layout .week-bar{flex:1;background:linear-gradient(180deg,var(--tech-cyan),var(--tech-blue));border-radius:4px 4px 0 0;min-height:4px;position:relative;transition:height .3s;box-shadow:0 0 12px #22d3ee33}.parent-layout .week-bar-label{font-size:11px;color:var(--tech-text-dim);text-align:center;margin-top:4px}.parent-layout .test-history-item{display:flex;align-items:center;gap:16px;background:#fffc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:14px;border:1px solid var(--tech-border);padding:16px 20px;margin-bottom:10px;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #00000008}.parent-layout .test-history-item:hover{border-color:var(--tech-border-bright);transform:translate(4px);box-shadow:0 4px 16px #2563eb14}.parent-layout .test-history-score{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;font-family:SF Mono,Fira Code,Cascadia Code,monospace}.parent-layout .test-history-info{flex:1}.parent-layout .test-history-title{font-size:15px;font-weight:600;color:var(--tech-text-bright)}.parent-layout .test-history-meta{font-size:13px;color:var(--tech-text-dim)}.parent-layout .test-history-date{font-size:12px;color:var(--tech-text-dim);opacity:.6}.parent-layout .mistake-stats-row{display:flex;gap:12px;margin-bottom:20px}.parent-layout .stat-card{flex:1;background:#fffc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:14px;border:1px solid var(--tech-border);padding:18px;text-align:center;box-shadow:0 2px 8px #00000008}.parent-layout .stat-value{font-size:28px;font-weight:700;color:var(--tech-text-bright);font-family:SF Mono,Fira Code,Cascadia Code,monospace}.parent-layout .stat-label{font-size:12px;color:var(--tech-text-dim);margin-top:4px}.parent-layout .mistake-filter{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.parent-layout .filter-chip{padding:6px 14px;border-radius:8px;font-size:13px;cursor:pointer;background:#fffc;border:1px solid var(--tech-border);color:var(--tech-text-dim);transition:all .2s;font-weight:500}.parent-layout .filter-chip:hover{color:var(--tech-text-bright);border-color:var(--tech-border-bright)}.parent-layout .filter-chip.active{background:#22d3ee1a;color:var(--tech-cyan);border-color:#22d3ee4d}.parent-layout .mistake-item{background:#fffc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:14px;padding:16px 20px;margin-bottom:10px;border:1px solid var(--tech-border);border-left:3px solid var(--tech-rose);box-shadow:0 2px 8px #00000008}.parent-layout .mistake-item.resolved{border-left-color:var(--tech-emerald);opacity:.6}.parent-layout .mistake-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.parent-layout .mistake-title{flex:1;font-size:15px;color:var(--tech-text-bright);font-weight:600}.parent-layout .mistake-answer{font-size:13px;color:var(--tech-text-dim);margin-top:6px}.parent-layout .mistake-correct{color:var(--tech-emerald);font-weight:600}.parent-layout .mistake-wrong{color:var(--tech-rose)}.parent-layout .mistake-analysis{background:#00000005;border-radius:8px;padding:12px 16px;margin-top:8px;font-size:13px;color:var(--tech-text-dim);line-height:1.5;border:1px solid rgba(0,0,0,.04)}.parent-layout h2{color:var(--tech-text-bright)}.parent-layout h2+p{color:var(--tech-text-dim)}.parent-layout .section-title,.parent-layout strong{color:var(--tech-text-bright)}.parent-layout p{color:var(--tech-text)}@media (max-width: 600px){.student-nav,.parent-nav{padding:0 12px}.student-nav .nav-link,.parent-nav .nav-link{padding:6px 10px;font-size:13px}.student-content,.parent-content{padding:12px}.student-layout .question-card{padding:20px;border-radius:18px}.parent-layout .dashboard-grid{grid-template-columns:1fr}.home-card{min-width:240px}.week-days-grid,.tech-metrics-grid{grid-template-columns:repeat(2,1fr)!important}}.my-plan-page{max-width:720px;margin:0 auto}.today-plan-card{background:#fff;border:none;border-radius:var(--cute-radius);padding:24px;margin-bottom:20px;box-shadow:var(--cute-shadow)}.today-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.today-date{font-size:14px;color:var(--cute-ink-light);margin-top:4px}.today-progress-ring{flex-shrink:0}.progress-circle{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .5s}.progress-inner{width:56px;height:56px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center}.progress-num{font-size:18px;font-weight:800;color:var(--dl-green)}.today-tasks{display:flex;flex-direction:column;gap:12px}.plan-task-card{display:flex;align-items:center;gap:14px;padding:16px;border-radius:var(--cute-radius-sm);background:#fff;border:none;border-left:5px solid var(--dl-green);cursor:pointer;transition:all .2s;box-shadow:var(--cute-shadow)}.plan-task-card:hover{transform:translateY(-2px);box-shadow:var(--cute-shadow-hover)}.plan-task-card.completed{opacity:.6;background:var(--cute-cream)}.plan-task-card.completed .task-name{text-decoration:line-through}.task-checkbox{width:28px;height:28px;border-radius:50%;border:3px solid var(--cute-cream-dark);flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;font-weight:800;color:#fff;transition:all .2s}.plan-task-card.completed .task-checkbox{background:var(--dl-green);border-color:var(--dl-green)}.task-checkbox:hover{border-color:var(--dl-green)}.task-icon-big{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.task-info{flex:1}.task-name{font-size:16px;font-weight:700;color:var(--cute-ink)}.task-meta{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap}.task-type-badge{padding:2px 8px;border-radius:8px;font-size:12px;font-weight:600}.task-duration,.task-layer{font-size:12px;color:var(--cute-ink-light)}.task-go{font-size:20px;color:var(--cute-cream-dark)}.task-done-badge{font-size:12px;font-weight:700;color:var(--dl-green);background:var(--dl-green-light);padding:4px 10px;border-radius:8px}.empty-today{text-align:center;padding:40px 20px;color:var(--cute-ink-light)}.empty-icon{font-size:48px;margin-bottom:12px}.week-progress-card{background:#fff;border-radius:var(--cute-radius);padding:24px;margin-bottom:20px;border:none;box-shadow:var(--cute-shadow)}.week-progress-bar-container{position:relative;height:36px;background:var(--cute-cream-dark);border-radius:18px;overflow:hidden;margin:16px 0}.week-progress-bar{height:100%;background:var(--dl-green);border-radius:18px;transition:width .5s}.week-progress-text{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:14px;font-weight:700;color:var(--cute-ink)}.week-days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:16px}.week-day-card{background:var(--cute-cream);border-radius:16px;padding:10px 6px;text-align:center;border:2px solid transparent;min-height:80px}.week-day-card.is-today{border-color:var(--dl-coral);background:var(--dl-coral-light)}.week-day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.week-day-name{font-size:12px;font-weight:700;color:var(--cute-ink-soft)}.week-day-count{font-size:10px;color:var(--cute-ink-light)}.week-day-tasks{display:flex;flex-direction:column;gap:3px}.week-day-empty{font-size:12px;color:var(--cute-cream-dark)}.week-day-task{display:flex;align-items:center;gap:3px;font-size:10px;padding:2px 4px;border-radius:6px;background:#00000008}.week-day-task.done{opacity:.5;text-decoration:line-through}.week-day-task-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.semester-goal-card{background:var(--cute-cream-dark);border:none;border-radius:var(--cute-radius);padding:24px;margin-bottom:20px;box-shadow:var(--cute-shadow)}.goal-display{text-align:center;padding:16px 0}.goal-score{font-size:32px;font-weight:800;display:flex;justify-content:center;align-items:center;gap:16px}.goal-current{color:var(--dl-coral)}.goal-arrow{color:var(--cute-ink-light);font-size:24px}.goal-target{color:var(--dl-green)}.goal-label{font-size:14px;color:var(--cute-ink-light);margin-top:8px}.celebration-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:9999;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s}.celebration-content{background:#fff;border-radius:24px;padding:40px 60px;text-align:center;animation:bounceIn .5s}.celebration-emoji{font-size:64px;margin-bottom:16px}.celebration-content h2{font-size:28px;color:var(--dl-green);margin-bottom:8px}.celebration-content p{font-size:16px;color:#6b7280}.celebration-stars{font-size:32px;margin-top:12px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes bounceIn{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.plan-manage-page{display:flex;flex-direction:column;gap:20px}.tech-card{background:var(--tech-surface);border-radius:16px;border:1px solid var(--tech-border);padding:24px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 2px 12px #0000000a}.tech-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.tech-card-title{font-size:18px;font-weight:600;color:var(--tech-text-bright);margin:0}.tech-subtitle{font-size:15px;font-weight:600;color:var(--tech-cyan);margin:20px 0 12px}.tech-btn-small{padding:6px 14px;border-radius:8px;font-size:13px;background:#0891b214;color:var(--tech-cyan);border:1px solid rgba(8,145,178,.2);cursor:pointer;transition:all .2s;font-weight:500}.tech-btn-small:hover{background:#0891b226}.tech-btn-primary{padding:10px 20px;border-radius:10px;font-size:14px;font-weight:600;background:linear-gradient(135deg,var(--tech-cyan),var(--tech-blue));color:#fff;border:none;cursor:pointer;transition:all .2s}.tech-btn-cancel{padding:10px 20px;border-radius:10px;font-size:14px;background:transparent;color:var(--tech-text-secondary);border:1px solid var(--tech-border);cursor:pointer}.tech-empty{text-align:center;padding:32px;color:var(--tech-text-secondary);font-size:14px}.tech-loading{padding:40px;text-align:center;color:var(--tech-text-secondary)}.tech-info-box{background:#0596690f;border:1px solid rgba(5,150,105,.15);border-radius:8px;padding:12px 16px;color:#059669;font-size:14px;margin-top:12px}.tech-alert{background:#e11d480f;border:1px solid rgba(225,29,72,.15);border-radius:8px;padding:12px 16px;color:#e11d48;font-size:13px;margin-top:16px}.tech-score{font-family:SF Mono,Fira Code,monospace;font-size:14px;color:var(--tech-cyan);margin-right:12px}.goals-list{display:flex;flex-direction:column;gap:12px}.goal-item{display:flex;justify-content:space-between;align-items:center;padding:16px;border-radius:12px;background:#00000005;border:1px solid var(--tech-border)}.goal-item-semester{font-size:14px;font-weight:600;color:var(--tech-text-bright)}.goal-item-desc{font-size:13px;color:var(--tech-text-secondary);margin:4px 0}.goal-item-scores{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.goal-status{padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600}.goal-status.active{background:#0891b21a;color:var(--tech-cyan)}.goal-status.achieved{background:#0596691a;color:#059669}.goal-status.archived{background:#64748b1a;color:#94a3b8}.plans-list{display:flex;flex-direction:column;gap:10px}.plan-item{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:12px;cursor:pointer;background:#00000005;border:1px solid var(--tech-border);transition:all .2s}.plan-item:hover{border-color:var(--tech-border-bright)}.plan-item.active{border-color:var(--tech-cyan);background:#0891b20a}.plan-item-info{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.plan-item-week{font-family:SF Mono,monospace;font-size:13px;color:var(--tech-text-bright);font-weight:500}.plan-item-status{padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600}.plan-item-status.active{background:#0891b21a;color:var(--tech-cyan)}.plan-item-status.completed{background:#0596691a;color:#059669}.plan-item-status.overdue{background:#e11d481a;color:#e11d48}.plan-item-source{font-size:12px;color:var(--tech-text-secondary)}.plan-item-progress{display:flex;align-items:center;gap:8px;min-width:180px}.tech-progress-bar{flex:1;height:6px;border-radius:3px;background:#0000000f;overflow:hidden}.tech-progress-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--tech-cyan),var(--tech-blue))}.tech-progress-text{font-family:SF Mono,monospace;font-size:12px;color:var(--tech-text-secondary);white-space:nowrap}.plan-detail-section{margin-top:20px}.plan-tasks-grid{display:flex;flex-direction:column;gap:8px}.plan-task-detail{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:10px;background:#00000003;border:1px solid var(--tech-border)}.plan-task-detail.completed{opacity:.5}.plan-task-detail.overdue{border-color:#e11d4833}.plan-task-day{font-size:12px;font-weight:600;color:var(--tech-cyan);min-width:50px}.plan-task-content{flex:1;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.plan-task-type{font-size:13px;color:var(--tech-text)}.plan-task-name{font-size:14px;color:var(--tech-text-bright);font-weight:500}.plan-task-duration{font-size:12px;color:var(--tech-text-secondary)}.plan-task-status{padding:3px 10px;border-radius:6px;font-size:11px;font-weight:600}.plan-task-status.completed{background:#0596691a;color:#059669}.plan-task-status.pending{background:#e11d481a;color:#e11d48}.plan-task-status.overdue{background:#d977061a;color:#d97706}.plan-task-status.skipped{background:#64748b1a;color:#94a3b8}.correction-suggestions{margin-top:20px}.suggestion-card{background:#0891b20a;border:1px solid rgba(8,145,178,.12);border-radius:10px;padding:14px 16px;margin-bottom:10px}.suggestion-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.suggestion-type{font-size:14px;font-weight:600;color:var(--tech-cyan)}.suggestion-reason{font-size:13px;color:var(--tech-text);margin-bottom:4px}.suggestion-action{font-size:12px;color:var(--tech-text-secondary)}.tech-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a4d;z-index:9999;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.tech-modal{background:var(--tech-surface);border-radius:16px;border:1px solid var(--tech-border-bright);padding:28px;max-width:480px;width:90%;box-shadow:0 12px 40px #0000001f}.tech-modal h3{font-size:18px;color:var(--tech-text-bright);margin-bottom:16px}.tech-modal p{color:var(--tech-text);font-size:14px;margin-bottom:12px}.correction-list{padding-left:20px;margin:12px 0}.correction-list li{color:var(--tech-text);font-size:13px;margin-bottom:8px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.tech-form{display:flex;flex-direction:column;gap:14px}.tech-form-row{display:flex;flex-direction:column;gap:4px}.tech-form-row label{font-size:13px;color:var(--tech-text-secondary)}.tech-form-row input,.tech-form-row select,.tech-form-row textarea{background:#00000005;border:1px solid var(--tech-border);border-radius:8px;padding:8px 12px;color:var(--tech-text-bright);font-size:14px;outline:none}.tech-form-row input:focus,.tech-form-row select:focus,.tech-form-row textarea:focus{border-color:var(--tech-cyan)}.weekly-dashboard-page{display:flex;flex-direction:column;gap:20px}.completion-overview{display:flex;align-items:center;gap:32px;padding:12px 0}.completion-ring{width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .5s;flex-shrink:0}.completion-ring-inner{width:92px;height:92px;border-radius:50%;background:var(--tech-surface);display:flex;flex-direction:column;align-items:center;justify-content:center}.completion-rate{font-family:SF Mono,monospace;font-size:24px;font-weight:700;color:var(--tech-cyan)}.completion-label{font-size:11px;color:var(--tech-text-secondary)}.completion-stats{display:flex;gap:24px}.completion-stat-item{text-align:center}.completion-stat-item .stat-value{font-family:SF Mono,monospace;font-size:28px;font-weight:700;color:var(--tech-text-bright);display:block}.completion-stat-item .stat-label{font-size:12px;color:var(--tech-text-secondary);margin-top:2px}.daily-chart{display:flex;gap:8px;height:180px;align-items:flex-end;padding:0 8px;margin:16px 0}.daily-chart-bar{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.daily-bar-container{width:100%;height:140px;display:flex;gap:3px;align-items:flex-end;justify-content:center}.daily-bar-study{width:18px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,var(--tech-cyan),rgba(34,211,238,.4));display:flex;align-items:flex-start;justify-content:center;padding-top:4px;min-height:4px;transition:height .5s}.daily-bar-practice{width:18px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,var(--tech-purple),rgba(139,92,246,.4));display:flex;align-items:flex-start;justify-content:center;padding-top:4px;min-height:4px;transition:height .5s}.daily-bar-value,.daily-bar-accuracy{font-family:SF Mono,monospace;font-size:9px;color:#fff;white-space:nowrap;writing-mode:vertical-rl;text-orientation:upright}.daily-bar-label{font-size:12px;color:var(--tech-text-secondary);margin-top:6px}.daily-bar-sublabel{font-family:SF Mono,monospace;font-size:10px;color:var(--tech-text-secondary);opacity:.6}.chart-legend{display:flex;gap:20px;justify-content:center;margin-top:8px}.legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--tech-text-secondary)}.legend-dot{width:12px;height:12px;border-radius:3px}.legend-dot.study{background:var(--tech-cyan)}.legend-dot.practice{background:var(--tech-purple)}.tech-metrics-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.tech-metric-card{background:var(--tech-surface);border-radius:12px;border:1px solid var(--tech-border);padding:16px;text-align:center;transition:all .2s;box-shadow:0 2px 8px #00000008}.tech-metric-card:hover{border-color:var(--tech-border-bright);box-shadow:0 4px 12px #2563eb14}.tech-metric-card .metric-icon{font-size:20px;margin-bottom:6px}.tech-metric-card .metric-value{font-family:SF Mono,monospace;font-size:22px;font-weight:700;color:var(--tech-text-bright)}.tech-metric-card .metric-label{font-size:11px;color:var(--tech-text-secondary);margin-top:2px}.weak-kp-list{display:flex;flex-direction:column;gap:10px}.weak-kp-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:10px;background:#e11d4808;border:1px solid rgba(225,29,72,.08)}.weak-kp-rank{font-family:SF Mono,monospace;font-size:16px;font-weight:700;color:#e11d48;min-width:28px}.weak-kp-info{flex:1}.weak-kp-name{font-size:14px;font-weight:500;color:var(--tech-text-bright)}.weak-kp-unit{font-size:12px;color:var(--tech-text-secondary)}.weak-kp-stats{display:flex;flex-direction:column;align-items:flex-end}.weak-kp-count{font-family:SF Mono,monospace;font-size:14px;color:#e11d48;font-weight:600}.weak-kp-mistakes{font-size:11px;color:var(--tech-text-secondary)}.weak-kp-advice{font-size:12px;color:var(--tech-text-secondary);max-width:200px;text-align:right}.error-type-chart{display:flex;flex-direction:column;gap:10px}.error-type-row{display:flex;align-items:center;gap:12px}.error-type-label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--tech-text);min-width:100px}.error-type-dot{width:10px;height:10px;border-radius:50%}.error-type-bar-container{flex:1;height:24px;border-radius:6px;background:#0000000a;overflow:hidden}.error-type-bar{height:100%;border-radius:6px;transition:width .5s;display:flex;align-items:center;padding-left:8px}.error-type-count{font-family:SF Mono,monospace;font-size:13px;color:var(--tech-text-bright);min-width:50px}.error-type-percent{font-family:SF Mono,monospace;font-size:12px;color:var(--tech-text-secondary);min-width:40px}.error-type-advice{margin-top:16px;padding:12px 16px;border-radius:8px;background:#7c3aed0d;border:1px solid rgba(124,58,237,.1);color:#7c3aed;font-size:13px}.adjustment-timeline{position:relative;padding-left:24px}.adjustment-timeline:before{content:"";position:absolute;left:7px;top:0;bottom:0;width:2px;background:var(--tech-border)}.adjustment-item{position:relative;margin-bottom:16px;display:flex;gap:12px}.adjustment-dot{position:absolute;left:-22px;top:4px;width:12px;height:12px;border-radius:50%;border:2px solid var(--tech-surface)}.adjustment-content{flex:1}.adjustment-header{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.adjustment-type{font-size:13px;font-weight:600;color:var(--tech-text-bright)}.adjustment-scope{padding:1px 6px;border-radius:4px;font-size:10px;font-weight:600;background:#0891b214;color:var(--tech-cyan)}.adjustment-time{font-family:SF Mono,monospace;font-size:11px;color:var(--tech-text-secondary)}.adjustment-reason{font-size:12px;color:var(--tech-text);margin-top:4px}.adjustment-kp{font-size:11px;color:var(--tech-text-secondary);margin-top:2px}.weekly-tests-list{display:flex;flex-direction:column;gap:10px}.weekly-test-item{display:flex;align-items:center;gap:16px;padding:14px 16px;border-radius:10px;background:#00000005;border:1px solid var(--tech-border)}.weekly-test-info{flex:1}.weekly-test-title{font-size:14px;color:var(--tech-text-bright);display:block}.weekly-test-date{font-family:SF Mono,monospace;font-size:12px;color:var(--tech-text-secondary)}.weekly-test-score{display:flex;align-items:baseline;gap:4px}.score-value{font-family:SF Mono,monospace;font-size:22px;font-weight:700}.score-value.good{color:#059669}.score-value.ok{color:#d97706}.score-value.bad{color:#e11d48}.score-total{font-family:SF Mono,monospace;font-size:14px;color:var(--tech-text-secondary)}.companion-pet-wrapper{position:fixed;bottom:20px;right:20px;z-index:9999;display:flex;flex-direction:column;align-items:flex-end;pointer-events:none}.companion-pet-wrapper>*{pointer-events:auto}.pet-bubble{background:#fff;border-radius:18px 18px 18px 6px;padding:12px 18px;margin-bottom:8px;max-width:260px;box-shadow:0 4px 16px #10b98126;border:2px solid var(--dl-green-light);font-size:14px;font-weight:600;color:var(--cute-ink-soft);line-height:1.5;animation:bubblePop .3s ease;position:relative}.pet-bubble .pet-bubble-tail{position:absolute;bottom:-8px;right:24px;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:10px solid #fff;filter:drop-shadow(0 1px 0 var(--dl-green-light))}@keyframes bubblePop{0%{opacity:0;transform:scale(.7) translateY(10px)}50%{transform:scale(1.05) translateY(-2px)}to{opacity:1;transform:scale(1) translateY(0)}}.pet-body{cursor:pointer;-webkit-user-select:none;user-select:none;animation:petFloat 3s ease-in-out infinite;transition:transform .2s;filter:drop-shadow(0 4px 8px rgba(95,183,168,.2))}.pet-body:hover{transform:scale(1.08)}.pet-body:active{transform:scale(.95)}.pet-body.mood-happy{animation:petBounce .5s ease}.pet-body.mood-petted{animation:petWiggle .4s ease}.pet-body.mood-sleeping{animation:petFloatSlow 5s ease-in-out infinite}.pet-body.mood-encouraging{animation:petFloat 3s ease-in-out infinite}@keyframes petFloat{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}@keyframes petFloatSlow{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes petBounce{0%,to{transform:translateY(0) scale(1)}30%{transform:translateY(-15px) scale(1.1)}50%{transform:translateY(0) scale(.95)}70%{transform:translateY(-8px) scale(1.05)}}@keyframes petWiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}.cat-svg .zzz{animation:zzzFloat 2s ease-in-out infinite}.cat-svg .zzz:nth-of-type(2){animation-delay:.3s}.cat-svg .zzz:nth-of-type(3){animation-delay:.6s}.cat-svg .heart{animation:heartFloat 1.5s ease-in-out infinite}.cat-svg .heart2{animation:heartFloat 1.5s ease-in-out infinite .4s}@keyframes zzzFloat{0%,to{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(-5px)}}@keyframes heartFloat{0%,to{opacity:.6;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-3px) scale(1.2)}}.pet-toggle-btn{width:24px;height:24px;border-radius:50%;background:#fff;border:2px solid var(--dl-green-light);color:var(--cute-ink-soft);font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;margin-top:4px;transition:all .2s;box-shadow:0 2px 6px #00000014}.pet-toggle-btn:hover{transform:scale(1.15);border-color:var(--dl-green);color:var(--dl-green)}.pet-name-tag{background:var(--dl-green);color:#fff;padding:3px 12px;border-radius:10px;font-size:11px;font-weight:700;margin-top:4px;text-align:center;box-shadow:0 2px 0 var(--dl-green-dark)}.companion-pet-wrapper.collapsed{bottom:20px}.companion-pet-wrapper.collapsed .pet-body{animation:none;width:48px;height:48px;border-radius:50%;background:var(--dl-green-light);display:flex;align-items:center;justify-content:center;border:3px solid #fff;box-shadow:0 4px 12px #10b98133}.companion-pet-wrapper.collapsed .pet-collapsed-icon{font-size:24px}.companion-pet-wrapper.collapsed .pet-name-tag{display:none}.companion-pet-wrapper.collapsed .pet-toggle-btn{position:absolute;top:-6px;right:-6px;width:18px;height:18px;font-size:10px;background:var(--dl-green);color:#fff;border-color:#fff}.student-layout .btn{border-radius:20px}.student-layout .btn-primary{background:var(--dl-purple)}.student-layout .btn-success{background:var(--dl-green)}.student-layout .btn-warning{background:var(--dl-orange-dark)}.student-layout .option-btn{border-radius:20px!important;border-width:2px!important}.student-layout .option-btn:hover:not(.disabled){transform:translateY(-2px);box-shadow:0 5px 0 var(--cute-cream-dark)}.student-layout .option-btn.selected{border-color:var(--dl-green)!important;background:var(--dl-green-light)!important}.student-layout .option-btn.correct{border-color:var(--dl-green)!important;background:var(--dl-green-light)!important;animation:correctPulse .5s ease}.student-layout .option-btn.wrong{border-color:var(--dl-red)!important;background:var(--dl-red-light)!important;animation:wrongShake .4s ease}@keyframes correctPulse{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes wrongShake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.student-layout .kp-unit{border-radius:var(--cute-radius)}.student-layout .kp-unit-header{border-radius:var(--cute-radius) var(--cute-radius) 0 0;font-size:16px}.student-layout .practice-progress{background:var(--dl-green);border-radius:10px}.student-layout .test-card{border-radius:24px!important;border-width:3px!important}.student-layout .mistake-item{border-radius:20px!important;border-width:3px!important;border-left-width:6px!important}.student-layout .complete-card{border-radius:28px!important;border-width:4px!important;text-align:center}.student-layout .complete-icon{font-size:64px;animation:completeBounce .6s ease}@keyframes completeBounce{0%{transform:scale(0) rotate(-180deg)}50%{transform:scale(1.3) rotate(10deg)}to{transform:scale(1) rotate(0)}}.student-content>*{position:relative;z-index:1}@media (max-width: 600px){.companion-pet-wrapper{bottom:12px;right:12px}.pet-body svg{width:64px;height:64px}.pet-bubble{max-width:200px;font-size:13px}}.weekly-test-accuracy{font-size:12px;color:var(--tech-text-secondary)}.school-exam-page{max-width:1000px}.se-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.se-stat-card{background:#fff9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--tech-border);border-radius:16px;padding:18px 20px}.se-stat-label{font-size:12px;color:var(--tech-text-secondary);margin-bottom:8px}.se-stat-value{font-size:28px;font-weight:700;color:var(--tech-text-bright);line-height:1.2}.se-stat-sub{font-size:11px;color:var(--tech-text-secondary);margin-top:4px}.se-trend-section{background:#fff6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--tech-border);border-radius:16px;padding:24px;margin-bottom:24px}.se-trend-chart{display:flex;align-items:flex-end;gap:16px;height:200px;padding-top:20px}.se-trend-bar-group{flex:1;display:flex;flex-direction:column;align-items:center;height:100%}.se-trend-bar-wrapper{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:4px;position:relative}.se-trend-bar{width:24px;min-height:4px;border-radius:6px 6px 0 0;display:flex;align-items:flex-start;justify-content:center;transition:height .3s ease}.se-trend-bar.avg-bar{width:12px;background:#94a3b8;opacity:.6;border-radius:4px 4px 0 0}.se-trend-value{font-size:10px;color:#fff;font-weight:600;margin-top:4px}.se-trend-label{font-size:11px;color:var(--tech-text-secondary);margin-top:8px;text-align:center}.se-trend-date{font-size:10px;color:var(--tech-text-muted)}.se-trend-legend{display:flex;gap:20px;margin-top:16px;justify-content:center}.se-trend-legend .legend-item{font-size:12px;color:var(--tech-text-secondary);display:flex;align-items:center;gap:6px}.se-trend-legend .legend-dot{width:10px;height:10px;border-radius:3px;display:inline-block}.se-action-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.se-empty{text-align:center;padding:60px 20px;color:var(--tech-text-secondary)}.se-empty p{font-size:16px;margin-bottom:8px}.se-empty-hint{font-size:13px;color:var(--tech-text-muted)}.se-exam-list{display:flex;flex-direction:column;gap:12px}.se-exam-card{background:#fff9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--tech-border);border-radius:14px;overflow:hidden;transition:box-shadow .2s}.se-exam-card.expanded{box-shadow:0 4px 20px #00000014}.se-exam-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;cursor:pointer;transition:background .15s}.se-exam-header:hover{background:#00000005}.se-exam-info{display:flex;align-items:center;gap:12px}.se-exam-type-badge{font-size:11px;padding:3px 10px;border-radius:10px;font-weight:600}.se-exam-type-badge.type-unit_test{background:#dbeafe;color:#1e40af}.se-exam-type-badge.type-midterm{background:#fef3c7;color:#92400e}.se-exam-type-badge.type-final{background:#fee2e2;color:#991b1b}.se-exam-type-badge.type-quiz{background:#d1fae5;color:#065f46}.se-exam-name{font-size:15px;font-weight:600;color:var(--tech-text-bright)}.se-exam-date{font-size:12px;color:var(--tech-text-muted)}.se-exam-score-area{display:flex;align-items:center;gap:14px}.se-exam-score{font-size:22px;font-weight:700}.se-exam-total{font-size:14px;color:var(--tech-text-muted);font-weight:400}.se-exam-rank{font-size:12px;color:var(--tech-text-secondary)}.se-adaptive-badge{font-size:10px;padding:2px 8px;border-radius:8px;font-weight:600}.se-adaptive-badge.applied{background:#d1fae5;color:#065f46}.se-adaptive-badge.pending{background:#fef3c7;color:#92400e}.se-expand-icon{font-size:11px;color:var(--tech-text-muted)}.se-exam-detail{padding:16px 20px 20px;border-top:1px solid var(--tech-border)}.se-detail-title{font-size:13px;font-weight:600;color:var(--tech-text-bright);margin-bottom:12px}.se-kp-bars{display:flex;flex-direction:column;gap:8px}.se-kp-bar-item{display:flex;align-items:center;gap:12px}.se-kp-name{font-size:13px;color:var(--tech-text-secondary);width:140px;flex-shrink:0}.se-kp-bar-track{flex:1;height:10px;background:#0000000f;border-radius:5px;overflow:hidden}.se-kp-bar-fill{height:100%;border-radius:5px;transition:width .3s ease}.se-kp-score-text{font-size:13px;font-weight:600;color:var(--tech-text-bright);width:80px;text-align:right}.se-kp-rate{font-size:11px;color:var(--tech-text-muted);font-weight:400}.se-comparison-row{display:flex;gap:24px;margin-top:16px;padding:16px;background:#00000005;border-radius:12px}.se-comp-item{display:flex;flex-direction:column;gap:4px}.se-comp-label{font-size:11px;color:var(--tech-text-muted)}.se-comp-value{font-size:18px;font-weight:700;color:var(--tech-text-bright)}.se-remarks{margin-top:12px;padding:10px 14px;background:#fef3c7;border-radius:8px;font-size:13px;color:#92400e}.se-remarks-label{font-weight:600}.se-exam-actions{display:flex;gap:10px;margin-top:16px}.se-btn-danger{color:#ef4444!important}.se-btn-danger:hover{background:#ef44441a!important}.se-weak-section{background:#fff6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--tech-border);border-radius:16px;padding:24px;margin-top:24px}.se-weak-list{display:flex;flex-direction:column;gap:12px}.se-weak-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#00000005;border-radius:10px}.se-weak-name{font-size:14px;font-weight:600;color:var(--tech-text-bright);width:160px;flex-shrink:0}.se-weak-meta{font-size:12px;color:var(--tech-text-secondary);width:200px}.se-weak-bar{flex:1;height:8px;background:#0000000f;border-radius:4px;overflow:hidden}.se-weak-bar-fill{height:100%;border-radius:4px}.se-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.se-modal{background:#fff;border-radius:20px;width:100%;max-width:640px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000026}.se-modal-result{max-width:560px}.se-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #eee}.se-modal-header h3{font-size:18px;font-weight:700;color:#1a1a1a}.se-modal-close{width:32px;height:32px;border:none;background:#0000000d;border-radius:50%;font-size:18px;cursor:pointer;color:#666}.se-modal-close:hover{background:#0000001a}.se-modal-body{flex:1;overflow-y:auto;padding:24px}.se-modal-footer{padding:16px 24px;border-top:1px solid #eee;display:flex;justify-content:flex-end;gap:12px}.se-form-row{display:flex;gap:16px;margin-bottom:16px}.se-form-group{flex:1}.se-form-group label{display:block;font-size:13px;font-weight:600;color:#4a4a4a;margin-bottom:6px}.se-form-group input,.se-form-group select,.se-form-group textarea{width:100%;padding:10px 14px;border:1px solid #ddd;border-radius:10px;font-size:14px;color:#1a1a1a;transition:border-color .2s;font-family:inherit}.se-form-group input:focus,.se-form-group select:focus,.se-form-group textarea:focus{border-color:var(--tech-cyan);outline:none}.se-form-group textarea{resize:vertical}.se-kp-edit-section{margin-top:20px}.se-kp-edit-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.se-kp-edit-header label{font-size:13px;font-weight:600;color:#4a4a4a}.se-kp-edit-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}.se-kp-edit-row input{padding:8px 12px;border:1px solid #ddd;border-radius:8px;font-size:13px}.se-kp-edit-rate{font-size:13px;font-weight:600;color:#10b981;width:40px;text-align:center}.se-kp-remove{width:28px;height:28px;border:none;background:#fee2e2;color:#ef4444;border-radius:50%;font-size:16px;cursor:pointer;line-height:1}.tech-btn{padding:10px 20px;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit}.tech-btn-sm{padding:6px 14px;font-size:12px;background:#0891b21a;color:#0891b2;border-radius:8px}.tech-btn-primary{background:#0891b2;color:#fff}.tech-btn-primary:hover{box-shadow:0 4px 16px #0891b240}.tech-btn-accent{background:#f59e0b;color:#fff}.tech-btn-accent:hover{box-shadow:0 4px 16px #f59e0b40}.tech-btn-ghost{background:transparent;color:#666;border:1px solid #ddd}.tech-btn-ghost:hover{background:#00000008}.tech-btn:disabled{opacity:.4;cursor:not-allowed}.se-result-summary{padding:16px;background:#f0fdfa;border:1px solid #99F6E4;border-radius:12px;font-size:14px;line-height:1.7;color:#134e4a;margin-bottom:20px}.se-result-section{margin-bottom:20px}.se-result-section h4{font-size:14px;font-weight:700;color:#1a1a1a;margin-bottom:10px}.se-result-comparison{display:flex;gap:12px}.se-comp-card{flex:1;padding:14px;background:#00000005;border-radius:10px;text-align:center}.se-comp-card .se-comp-label{font-size:11px;color:#666;margin-bottom:6px;display:block}.se-comp-card .se-comp-value{font-size:22px;font-weight:700;color:#1a1a1a}.se-comp-interpretation{font-size:12px;color:#666;margin-top:10px;line-height:1.5}.se-result-adj{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#00000005;border-radius:8px;margin-bottom:6px;font-size:13px}.se-adj-type{font-weight:700;padding:2px 8px;border-radius:6px;font-size:12px}.se-result-adj.type-weak_point_focus .se-adj-type{background:#fee2e2;color:#991b1b}.se-result-adj.type-difficulty_up .se-adj-type{background:#d1fae5;color:#065f46}.se-result-adj.type-difficulty_down .se-adj-type{background:#fef3c7;color:#92400e}.se-adj-kp{color:#666}.se-adj-action{color:#999;margin-left:auto}.se-rank-msg.level-excellent{color:#10b981;font-weight:600}.se-rank-msg.level-good{color:#0891b2;font-weight:600}.se-rank-msg.level-average{color:#f59e0b}.se-rank-msg.level-needs_improvement{color:#ef4444;font-weight:600}.se-result-task{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#10b9810d;border-radius:8px;margin-bottom:6px;font-size:13px}.se-task-kp{font-weight:600;color:#1a1a1a}.se-task-count{color:#10b981;margin-left:auto}.se-student-section{background:#fff;border-radius:20px;padding:20px;margin-bottom:16px;box-shadow:var(--cute-shadow)}.se-student-title{font-size:18px;font-weight:700;color:var(--cute-ink);margin-bottom:14px;display:flex;align-items:center;gap:8px}.se-student-exam-card{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--cute-cream);border-radius:14px;margin-bottom:10px}.se-student-exam-info{flex:1}.se-student-exam-name{font-size:15px;font-weight:600;color:var(--cute-ink)}.se-student-exam-meta{font-size:12px;color:var(--cute-ink-soft);margin-top:3px}.se-student-exam-score{font-size:24px;font-weight:800;padding:6px 16px;border-radius:12px}.se-student-weak-hint{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fef3c7;border-radius:10px;margin-top:8px;font-size:13px;color:#92400e}.se-student-weak-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.se-student-weak-tag{padding:4px 12px;border-radius:10px;font-size:12px;font-weight:600;background:#fee2e2;color:#dc2626}.lc-incentive-bar{display:flex;align-items:center;gap:0;background:var(--cute-cream);border-radius:var(--cute-radius-sm);padding:14px 20px;margin-bottom:20px;cursor:pointer;box-shadow:var(--cute-shadow);transition:all .2s;border:2px solid transparent}.lc-incentive-bar:hover{transform:translateY(-2px);box-shadow:var(--cute-shadow-hover);border-color:var(--dl-orange)}.lc-incentive-item{display:flex;align-items:center;gap:6px;flex:1;justify-content:center}.lc-incentive-icon{font-size:20px}.lc-incentive-value{font-size:20px;font-weight:800;color:var(--dl-green-dark)}.lc-incentive-label{font-size:12px;color:var(--cute-ink-soft)}.lc-incentive-divider{width:1px;height:28px;background:#0a0a0a14}.lc-incentive-arrow{font-size:13px;color:var(--dl-purple);font-weight:600;padding-left:12px;white-space:nowrap}.badge-wall-page{max-width:720px;margin:0 auto}.bw-overview-bar{display:flex;align-items:center;justify-content:space-around;background:linear-gradient(135deg,var(--dl-green),var(--dl-green-dark));border-radius:var(--cute-radius);padding:20px 24px;margin-bottom:20px;box-shadow:0 4px 16px #10b98140}.bw-overview-item{display:flex;align-items:center;gap:10px}.bw-overview-icon{font-size:28px}.bw-overview-value{font-size:22px;font-weight:800;color:#fff;line-height:1.2}.bw-overview-label{font-size:12px;color:#fffc}.bw-overview-divider{width:1px;height:36px;background:#fff3}.bw-filter-bar{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.bw-filter-btn{padding:8px 16px;border-radius:16px;border:2px solid transparent;background:var(--cute-cream);font-size:13px;font-weight:600;cursor:pointer;color:var(--cute-ink-soft);transition:all .2s}.bw-filter-btn.active{background:var(--dl-green);color:#fff;border-color:var(--dl-green-dark)}.bw-filter-btn:hover:not(.active){background:var(--dl-green-light)}.bw-badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;margin-bottom:24px}.bw-badge-card{background:var(--cute-cream);border-radius:var(--cute-radius-sm);padding:18px 12px;text-align:center;position:relative;transition:all .2s;border:3px solid var(--badge-color, transparent);overflow:hidden}.bw-badge-card.earned{box-shadow:0 4px 16px #00000014}.bw-badge-card.locked{opacity:.7;border-color:#d0d0d0}.bw-badge-card:hover{transform:translateY(-4px)}.bw-badge-glow{position:absolute;top:-20px;left:-20px;right:-20px;height:80px;border-radius:50%;filter:blur(30px);opacity:0;transition:opacity .3s}.bw-badge-glow.show{opacity:.15}.bw-badge-icon-wrap{position:relative;margin-bottom:10px}.bw-badge-icon{width:56px;height:56px;border-radius:50%;margin:0 auto;display:flex;align-items:center;justify-content:center;font-size:28px;border:3px solid}.bw-badge-tier{position:absolute;bottom:-4px;left:50%;transform:translate(-50%);font-size:10px;font-weight:700;color:#fff;padding:2px 8px;border-radius:8px}.bw-badge-name{font-size:14px;font-weight:700;margin-bottom:4px}.bw-badge-desc{font-size:11px;color:var(--cute-ink-soft);margin-bottom:8px;min-height:28px}.bw-badge-earned{font-size:11px;font-weight:600;color:var(--dl-green-dark)}.bw-badge-progress{margin-top:4px}.bw-progress-bar{height:6px;background:#0a0a0a14;border-radius:3px;overflow:hidden;margin-bottom:4px}.bw-progress-fill{height:100%;border-radius:3px;transition:width .3s}.bw-progress-text{font-size:10px;color:var(--cute-ink-soft)}.bw-badge-reward{font-size:10px;color:var(--dl-orange-dark);font-weight:600;margin-top:4px}.bw-encourage{display:flex;align-items:center;gap:14px;background:var(--cute-cream);border-radius:var(--cute-radius-sm);padding:18px 20px;margin-bottom:20px;box-shadow:var(--cute-shadow)}.bw-encourage-icon{font-size:36px}.bw-encourage-title{font-size:13px;font-weight:700;color:var(--dl-green-dark);margin-bottom:2px}.bw-encourage-content{font-size:13px;color:var(--cute-ink-soft);line-height:1.5}.incentive-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.incentive-stat-card{background:#fff;border-radius:14px;padding:18px;display:flex;align-items:center;gap:14px;border:1px solid var(--tech-border);transition:all .2s}.incentive-stat-card:hover{box-shadow:0 4px 16px #0000000f}.incentive-stat-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}.incentive-stat-info{flex:1;min-width:0}.incentive-stat-value{font-size:22px;font-weight:800;color:var(--tech-text);line-height:1.2}.incentive-stat-label{font-size:12px;color:var(--tech-text-secondary)}.incentive-stat-sub{font-size:11px;color:var(--tech-text-tertiary);margin-top:2px}.incentive-dual-panel{display:grid;grid-template-columns:1fr 1fr;gap:20px}.incentive-panel{background:#fff;border-radius:14px;padding:20px;border:1px solid var(--tech-border)}.incentive-panel-title{font-size:15px;font-weight:700;color:var(--tech-text);margin-bottom:14px}.incentive-badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}.incentive-badge-card{background:var(--tech-bg-secondary);border-radius:10px;padding:12px 8px;text-align:center;border:2px solid var(--tech-border);transition:all .2s}.incentive-badge-card.earned{background:#fff}.incentive-badge-card.locked{opacity:.6}.incentive-badge-icon{width:40px;height:40px;border-radius:50%;margin:0 auto 8px;display:flex;align-items:center;justify-content:center;font-size:20px}.incentive-badge-name{font-size:12px;font-weight:700;margin-bottom:2px}.incentive-badge-desc{font-size:10px;color:var(--tech-text-secondary);margin-bottom:6px}.incentive-badge-earned-tag{font-size:10px;font-weight:600}.incentive-badge-progress{display:flex;align-items:center;gap:4px}.incentive-progress-bar{flex:1;height:4px;background:#00000014;border-radius:2px;overflow:hidden}.incentive-progress-fill{height:100%;border-radius:2px}.incentive-progress-text{font-size:10px;font-weight:600}.incentive-leaderboard{display:flex;flex-direction:column;gap:6px}.incentive-leaderboard-row{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--tech-bg-secondary);border-radius:10px;transition:all .2s}.incentive-leaderboard-row.current{background:#6366f114;border:1px solid rgba(99,102,241,.2)}.incentive-rank{width:28px;text-align:center;font-size:16px;font-weight:700}.incentive-name{flex:1;font-size:13px;font-weight:600}.incentive-grade{font-size:11px;color:var(--tech-text-secondary)}.incentive-points{font-size:14px;font-weight:800;color:var(--tech-violet)}.incentive-transactions{display:flex;flex-direction:column;gap:4px}.incentive-tx-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;background:var(--tech-bg-secondary)}.incentive-tx-desc{flex:1;font-size:12px}.incentive-tx-points{font-size:14px;font-weight:800}.incentive-tx-points.positive{color:var(--tech-green)}.incentive-tx-points.negative{color:var(--tech-red)}.incentive-tx-date{font-size:11px;color:var(--tech-text-tertiary)}.incentive-empty{text-align:center;padding:20px;color:var(--tech-text-secondary);font-size:13px}.incentive-near-badges{display:flex;flex-direction:column;gap:6px}.incentive-near-badge{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--tech-bg-secondary);border-radius:8px}.incentive-near-icon{font-size:18px}.incentive-near-name{flex:1;font-size:12px;font-weight:600}.incentive-near-progress{font-size:13px;font-weight:800;color:var(--tech-violet)}.incentive-modal{max-width:640px}.incentive-adaptive-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.incentive-adaptive-item{background:var(--tech-bg-secondary);border-radius:10px;padding:12px;text-align:center}.incentive-adaptive-item .label{display:block;font-size:11px;color:var(--tech-text-secondary);margin-bottom:4px}.incentive-adaptive-item .value{font-size:18px;font-weight:800;color:var(--tech-text)}.incentive-adaptive-none{text-align:center;padding:24px;color:var(--tech-green);font-size:15px;font-weight:600}.incentive-adaptive-list{display:flex;flex-direction:column;gap:12px}.incentive-adaptive-card{background:var(--tech-bg-secondary);border-radius:10px;padding:14px;border-left:4px solid var(--tech-violet)}.incentive-adaptive-rule{font-size:12px;font-weight:800;color:var(--tech-violet);margin-bottom:6px}.incentive-adaptive-type{display:flex;gap:6px;margin-bottom:6px}.incentive-adaptive-reason{font-size:13px;font-weight:600;color:var(--tech-text);margin-bottom:4px}.incentive-adaptive-detail{font-size:12px;color:var(--tech-text-secondary);line-height:1.5}.km-page{max-width:900px;margin:0 auto;padding:20px}.km-overview-bar{display:flex;align-items:center;justify-content:space-between;background:var(--dl-green);color:#fff;border-radius:28px;padding:28px 32px;margin-bottom:20px;box-shadow:0 8px 24px #10b98126}.km-overview-left{display:flex;align-items:center;gap:16px}.km-grade-badge{background:#fff3;padding:6px 14px;border-radius:20px;font-size:14px;font-weight:700}.km-overview-title{font-size:22px;font-weight:800}.km-overview-mastery{display:flex;flex-direction:column;align-items:center;gap:6px}.km-mastery-ring{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center}.km-mastery-inner{width:62px;height:62px;border-radius:50%;background:var(--dl-green);display:flex;align-items:baseline;justify-content:center}.km-mastery-num{font-size:26px;font-weight:800;color:#fff}.km-mastery-unit{font-size:12px;color:#fffc;margin-left:2px}.km-mastery-label{font-size:12px;color:#ffffffe6}.km-stats-bar{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.km-stat-chip{display:flex;align-items:center;gap:6px;padding:10px 16px;border-radius:16px;font-weight:600;font-size:13px}.km-stat-icon{font-size:16px}.km-stat-count{font-size:18px;font-weight:800}.km-stat-label{font-size:12px;opacity:.8}.km-stat-pct{font-size:11px;opacity:.6}.km-units-list{display:flex;flex-direction:column;gap:12px}.km-unit-card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 2px 8px #0000000a}.km-unit-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;cursor:pointer;transition:background .2s}.km-unit-header:hover{background:#00000005}.km-unit-info{display:flex;flex-direction:column;gap:4px}.km-unit-name{font-size:15px;font-weight:700;color:var(--cute-ink)}.km-unit-meta{font-size:12px;color:var(--cute-ink-soft)}.km-unit-right{display:flex;align-items:center;gap:12px}.km-unit-mastery-bar{width:100px;height:8px;background:#f3f4f6;border-radius:4px;overflow:hidden}.km-unit-mastery-fill{height:100%;border-radius:4px;transition:width .3s}.km-unit-score{font-size:16px;font-weight:800;min-width:30px;text-align:right}.km-expand-icon{font-size:14px;color:var(--cute-ink-soft)}.km-kp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;padding:0 20px 20px}.km-kp-card{border:2px solid;border-radius:16px;padding:14px;cursor:pointer;transition:transform .15s}.km-kp-card:hover{transform:translateY(-2px)}.km-kp-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.km-kp-icon{font-size:18px;font-weight:800}.km-kp-score{font-size:20px;font-weight:800}.km-kp-name{font-size:13px;font-weight:600;color:var(--cute-ink);margin-bottom:4px;line-height:1.3}.km-kp-layer{font-size:11px;color:var(--cute-ink-soft);margin-bottom:8px}.km-kp-mini-bar{height:6px;background:#0000000f;border-radius:3px;overflow:hidden;margin-bottom:6px}.km-kp-mini-fill{height:100%;border-radius:3px}.km-kp-detail{font-size:11px;color:var(--cute-ink-soft)}.km-error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:12px}.km-error-icon{font-size:40px}.km-error-text{font-size:15px;color:var(--dl-red);font-weight:600}.km-retry-btn{background:var(--dl-green);color:#fff;border:none;padding:10px 24px;border-radius:16px;font-size:14px;font-weight:600;cursor:pointer}.lr-page{max-width:1000px;margin:0 auto}.lr-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.lr-header-left{display:flex;flex-direction:column;gap:4px}.lr-title{font-size:20px;font-weight:700;color:var(--tech-text-bright);margin:0}.lr-period{font-size:13px;color:var(--tech-text-secondary)}.lr-header-right{display:flex;align-items:center;gap:12px}.lr-tab-group{display:flex;background:#0000000a;border-radius:10px;padding:3px}.lr-tab{border:none;background:none;padding:8px 18px;border-radius:8px;font-size:13px;font-weight:500;color:var(--tech-text-secondary);cursor:pointer;transition:all .2s}.lr-tab.active{background:#fff;color:var(--tech-text-bright);box-shadow:0 1px 3px #00000014}.lr-print-btn{background:var(--tech-violet);color:#fff;border:none;padding:8px 18px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .2s}.lr-print-btn:hover{opacity:.9}.lr-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:28px}.lr-stat-card{background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--tech-border);border-radius:14px;padding:18px}.lr-stat-label{font-size:12px;color:var(--tech-text-secondary);margin-bottom:8px}.lr-stat-value{font-size:28px;font-weight:800;color:var(--tech-text-bright);line-height:1.1}.lr-unit{font-size:14px;font-weight:500;color:var(--tech-text-secondary);margin-left:2px}.lr-stat-sub{font-size:12px;color:var(--tech-text-secondary);margin-top:6px}.lr-trend-badge{font-weight:600;font-size:12px}.lr-section{background:#ffffff80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--tech-border);border-radius:14px;padding:20px;margin-bottom:20px}.lr-section-title{font-size:15px;font-weight:600;color:var(--tech-text-bright);margin:0 0 16px}.lr-chart-container{display:flex;gap:8px;height:180px}.lr-chart-yaxis{display:flex;flex-direction:column;justify-content:space-between;width:36px}.lr-chart-ylabel{font-size:10px;color:var(--tech-text-secondary);text-align:right}.lr-chart-bars{flex:1;display:flex;align-items:flex-end;gap:4px;border-bottom:1px solid var(--tech-border);border-left:1px solid var(--tech-border);padding:0 4px}.lr-chart-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.lr-chart-bars-group{display:flex;gap:2px;width:100%;height:100%;align-items:flex-end;justify-content:center}.lr-chart-bar{width:12px;border-radius:4px 4px 0 0;min-height:2px;transition:height .3s}.lr-bar-practice{background:#6366f1}.lr-bar-test{background:#10b981}.lr-chart-xlabel{font-size:9px;color:var(--tech-text-secondary);margin-top:4px}.lr-chart-legend{display:flex;gap:16px;margin-top:10px}.lr-legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--tech-text-secondary)}.lr-legend-dot{width:10px;height:10px;border-radius:3px}.lr-dual-section{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.lr-test-list{display:flex;flex-direction:column;gap:10px}.lr-test-row{display:flex;align-items:center;gap:12px}.lr-test-info{display:flex;flex-direction:column;min-width:120px}.lr-test-title{font-size:13px;font-weight:600;color:var(--tech-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.lr-test-date{font-size:11px;color:var(--tech-text-secondary)}.lr-test-score-bar{flex:1;height:24px;background:#0000000a;border-radius:6px;position:relative;overflow:hidden}.lr-test-score-fill{height:100%;border-radius:6px;transition:width .3s}.lr-test-score-text{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:11px;font-weight:600;color:var(--tech-text-bright);white-space:nowrap}.lr-empty{font-size:13px;color:var(--tech-text-secondary);text-align:center;padding:20px}.lr-habits-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:20px}.lr-habit-card{background:#00000005;border-radius:10px;padding:14px}.lr-habit-label{font-size:11px;color:var(--tech-text-secondary);margin-bottom:6px}.lr-habit-value{font-size:22px;font-weight:800;color:var(--tech-text-bright)}.lr-habit-sub{font-size:11px;color:var(--tech-text-secondary);margin-top:4px}.lr-hourly-chart{margin-top:16px}.lr-hourly-title{font-size:13px;font-weight:600;color:var(--tech-text);margin-bottom:10px}.lr-hourly-bars{display:flex;align-items:flex-end;gap:2px;height:80px;border-bottom:1px solid var(--tech-border)}.lr-hourly-bar-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;position:relative}.lr-hourly-bar{width:100%;background:var(--tech-violet);border-radius:3px 3px 0 0;min-height:1px;transition:height .3s;opacity:.7}.lr-hourly-label{position:absolute;bottom:-16px;font-size:9px;color:var(--tech-text-secondary)}.lr-error-types{display:flex;flex-direction:column;gap:10px}.lr-error-type-row{display:flex;align-items:center;gap:12px}.lr-error-type-name{font-size:13px;font-weight:600;color:var(--tech-text);min-width:80px}.lr-error-type-bar{flex:1;height:20px;background:#0000000a;border-radius:6px;overflow:hidden}.lr-error-type-fill{height:100%;background:var(--tech-violet);border-radius:6px}.lr-error-type-count{font-size:12px;color:var(--tech-text-secondary);min-width:80px;text-align:right}.lr-error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:12px}.lr-error-icon{font-size:40px}.lr-error-text{font-size:15px;color:var(--tech-red);font-weight:600}.lr-retry-btn{background:var(--tech-violet);color:#fff;border:none;padding:10px 24px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer}@media (max-width: 768px){.lr-stats-grid{grid-template-columns:1fr 1fr}.lr-dual-section{grid-template-columns:1fr}.km-kp-grid,.incentive-stats-grid{grid-template-columns:1fr 1fr}.incentive-dual-panel{grid-template-columns:1fr}.incentive-badge-grid{grid-template-columns:repeat(3,1fr)}.incentive-transactions table{font-size:.85em}.incentive-near-badges{flex-wrap:wrap}.parent-nav{flex-wrap:wrap;gap:4px}.parent-nav a{font-size:.85em;padding:6px 10px}}.toast-container{position:fixed;top:20px;right:20px;z-index:99999;display:flex;flex-direction:column;gap:8px;max-width:380px}.toast-item{display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:14px;font-size:.9rem;font-weight:500;cursor:pointer;animation:toast-slide-in .3s ease-out;box-shadow:0 4px 16px #0000001f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.toast-icon{font-size:1.1rem;flex-shrink:0}.toast-msg{flex:1;line-height:1.4}.toast-info{background:#38bdf8f2;color:#fff}.toast-success{background:#10b981f2;color:#fff}.toast-warning{background:#facc15f2;color:#0a0a0a}.toast-error{background:#ef4444f2;color:#fff}@keyframes toast-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}
