.levelup-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(45,74,111,.7);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:overlay-fade-in .3s ease-out}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}.levelup-modal{position:relative;background:linear-gradient(180deg,#fffcf7 0%,#fef6ee 100%);border-radius:24px;padding:40px 32px 32px;max-width:320px;width:90%;text-align:center;box-shadow:0 8px 32px #2d4a6f40,0 2px 8px #2d4a6f1a,inset 0 1px #fffc;border:1px solid rgba(45,74,111,.1);animation:modal-pop .4s cubic-bezier(.175,.885,.32,1.275);overflow:hidden}@keyframes modal-pop{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.confetti-container{position:absolute;top:0;left:0;right:0;height:200px;overflow:hidden;pointer-events:none}.confetti{position:absolute;width:10px;height:10px;top:-10px;left:50%;opacity:0;animation:confetti-fall 2s ease-out forwards;animation-delay:var(--delay)}.confetti-0{background:#e07a5f;left:10%}.confetti-1{background:#f2a541;left:25%;border-radius:50%}.confetti-2{background:#87a878;left:40%}.confetti-3{background:#7eb8c9;left:55%;border-radius:50%}.confetti-4{background:#9580b8;left:70%}.confetti-5{background:#c9a87c;left:85%;border-radius:50%}@keyframes confetti-fall{0%{transform:translate(0) translateY(0) rotate(0);opacity:1}to{transform:translate(var(--x-end)) translateY(250px) rotate(var(--rotation));opacity:0}}.levelup-title{font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:32px;font-weight:400;color:var(--dashboard-gold-dark, #d4892a);margin-bottom:28px;display:flex;align-items:center;justify-content:center;gap:8px;opacity:0;transform:translateY(-20px) scale(.8);transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.levelup-title.visible{opacity:1;transform:translateY(0) scale(1)}.levelup-sparkle{font-size:24px;animation:sparkle-pulse 1s ease-in-out infinite alternate}@keyframes sparkle-pulse{0%{transform:scale(1) rotate(-5deg)}to{transform:scale(1.2) rotate(5deg)}}.levelup-levels{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:24px;opacity:0;transform:translateY(20px);transition:all .4s ease-out .2s}.levelup-levels.visible{opacity:1;transform:translateY(0)}.levelup-prev,.levelup-new{display:flex;flex-direction:column;align-items:center;gap:8px}.levelup-icon{display:flex;align-items:center;justify-content:center;border-radius:50%}.levelup-icon.small{width:48px;height:48px;font-size:24px;opacity:.7}.levelup-icon.large{width:80px;height:80px;font-size:44px;animation:icon-bounce .6s cubic-bezier(.175,.885,.32,1.275) .5s}@keyframes icon-bounce{0%{transform:scale(1)}30%{transform:scale(1.2)}50%{transform:scale(.95)}70%{transform:scale(1.1)}to{transform:scale(1)}}.levelup-icon.large.rainbow{background:linear-gradient(145deg,#e07a5f 0%,#f2a541 20%,#87a878 40%,#7eb8c9 60%,#9580b8 80%,#e07a5f 100%);background-size:200% 200%;animation:icon-bounce .6s cubic-bezier(.175,.885,.32,1.275) .5s,rainbow-shift 3s ease-in-out infinite;box-shadow:0 4px #d4892a,0 8px 24px #f2a54180}.levelup-icon span{line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.levelup-arrow{font-size:28px;color:var(--dashboard-text-secondary, #6b7280);animation:arrow-pulse 1s ease-in-out infinite}@keyframes arrow-pulse{0%,to{transform:translate(0);opacity:.6}50%{transform:translate(4px);opacity:1}}.levelup-level-name{font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:14px;color:var(--dashboard-text-secondary, #6b7280)}.levelup-level-name.highlight{font-size:18px;color:var(--dashboard-navy, #2d4a6f)}.levelup-subtitle{font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:16px;color:var(--dashboard-text-secondary, #6b7280);margin:0 0 24px;opacity:0;transform:translateY(10px);transition:all .4s ease-out .4s}.levelup-subtitle.visible{opacity:1;transform:translateY(0)}.levelup-button{display:inline-flex;align-items:center;justify-content:center;padding:14px 32px;min-height:48px;background:linear-gradient(145deg,var(--dashboard-gold-light, #fcd89d) 0%,var(--dashboard-gold, #f2a541) 100%);color:#78350f;font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:18px;font-weight:400;border:none;border-radius:16px;cursor:pointer;box-shadow:0 4px 0 var(--dashboard-gold-dark, #d4892a),0 6px 12px #f2a5414d;transition:all .15s ease;opacity:0;transform:translateY(20px)}.levelup-button.visible{opacity:1;transform:translateY(0);transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.levelup-button:hover{background:linear-gradient(145deg,#fde4b0 0%,var(--dashboard-gold-light, #fcd89d) 100%);transform:translateY(-2px)}.levelup-button:active{transform:translateY(2px);box-shadow:0 1px 0 var(--dashboard-gold-dark, #d4892a)}.time-night .levelup-modal{background:linear-gradient(180deg,#f8f5fc 0%,#ede5f5 100%)}.time-night .levelup-title{color:#9580b8}.time-night .levelup-level-name.highlight{color:#4a4060}.time-evening .levelup-modal{background:linear-gradient(180deg,#fffaf8 0%,#fef2ed 100%)}.time-evening .levelup-title{color:#c65d42}.time-evening .levelup-level-name.highlight{color:#5c4035}html[data-theme=dark] .levelup-modal-overlay{background:rgba(0,0,0,.7)}html[data-theme=dark] .levelup-modal,html[data-theme=dark] .time-night .levelup-modal,html[data-theme=dark] .time-evening .levelup-modal{background:linear-gradient(180deg,var(--dashboard-bg-card) 0%,#1c1410 100%);border-color:var(--dashboard-border);box-shadow:0 8px 32px #00000080}html[data-theme=dark] .levelup-level-name.highlight,html[data-theme=dark] .time-night .levelup-level-name.highlight,html[data-theme=dark] .time-evening .levelup-level-name.highlight{color:var(--dashboard-text)}.student-dashboard{min-height:100vh;background:var(--dashboard-bg, #fef9f3);padding:0;position:relative;transition:background 1s ease-out;overflow-x:hidden}.student-dashboard.time-morning{background:linear-gradient(180deg,#fef9f3 0%,#fff5e6 30%,#ffe8cc 70%,#ffd9a3 100%)}.student-dashboard.time-afternoon{background:linear-gradient(180deg,#fffcf7 0%,#fef9f3 40%,#fdf6ed 70%,#fcf3e8 100%)}.student-dashboard.time-evening{background:linear-gradient(180deg,#fef6f0 0%,#fce8dc 35%,#f8d4c4 70%,#efc4b0 100%)}.student-dashboard.time-night{background:linear-gradient(180deg,#f5f0f8 0%,#e8e0ef 35%,#ddd5e8 70%,#d4cce0 100%)}.student-dashboard:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:var(--paper-texture);opacity:.03;pointer-events:none;z-index:0}.dashboard-content{padding:12px;position:relative;z-index:1}.sticky-header-wrapper{position:sticky;top:0;z-index:100;background:rgba(254,249,243,.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.time-morning .sticky-header-wrapper{background:rgba(254,249,243,.85)}.time-afternoon .sticky-header-wrapper{background:rgba(255,252,247,.85)}.time-evening .sticky-header-wrapper{background:rgba(254,246,240,.85)}.time-night .sticky-header-wrapper{background:rgba(245,240,248,.85)}.hero-stats{margin-bottom:20px}.hero-stat-card{position:relative;display:flex;align-items:center;justify-content:center;padding:20px 20px 60px;min-height:100px;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border-radius:16px;box-shadow:0 4px 16px #0596694d}.hero-stat-number{font-size:64px;font-weight:800;color:#fff;line-height:1;text-shadow:0 2px 8px rgba(0,0,0,.15)}.hero-stat-card>.coin-icon{width:44px;height:44px;font-size:22px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fef3c7 0%,#fbbf24 50%,#f59e0b 100%);color:#92400e;font-weight:800;border-radius:50%;box-shadow:0 2px 8px #0003;margin-left:10px;border:2px solid rgba(255,255,255,.3)}@media (max-width: 480px){.hero-stat-card{padding:16px 16px 52px}.hero-stat-number{font-size:52px}.hero-stat-card>.coin-icon{width:38px;height:38px;font-size:18px;margin-left:8px}}.profile-section{display:flex;align-items:center;gap:12px;padding:14px 16px!important;margin-bottom:8px!important}.profile-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex-shrink:0}.profile-details{flex:1;min-width:0}.profile-name{margin:0;font-size:17px;font-weight:600;color:#1a1a1a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-streak{display:flex;align-items:center;gap:6px;flex-shrink:0}.streak-icon{width:20px;height:20px;object-fit:contain}.streak-number{font-size:20px;font-weight:800;color:#ff6b35;line-height:1;text-shadow:none}.profile-menu-wrapper{position:relative;flex-shrink:0}.profile-menu-button{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:rgba(0,0,0,.05);border:none;border-radius:10px;color:#374151;cursor:pointer;transition:all .2s ease}.profile-menu-button:hover{background:rgba(0,0,0,.1)}.profile-menu-dropdown{position:absolute;top:100%;right:0;margin-top:8px;background:white;border-radius:12px;box-shadow:0 4px 20px #00000026;border:1px solid #e2e8f0;min-width:160px;z-index:100;overflow:hidden}.menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;background:none;border:none;font-size:15px;font-weight:500;color:#374151;cursor:pointer;transition:background .2s;text-align:left}.menu-item:hover{background:#f3f4f6}.menu-item.logout{color:#ef4444}.menu-item.logout:hover{background:#fef2f2}.dashboard-section{background:transparent;margin:0 0 16px;padding:0;border-radius:0;box-shadow:none}.section-title{margin:0;font-size:16px;font-weight:600;color:#6b7280}.section-title-btn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 4px;margin-bottom:12px;background:none;border:none;cursor:pointer;font-size:16px;font-weight:600;color:#6b7280;text-align:left}.history-toggle{font-size:14px;font-weight:500;color:#3b82f6}.section-header{display:flex;align-items:center;gap:12px;margin:0 4px 12px}.todo-tabs{display:flex;gap:6px}.todo-tab{display:flex;align-items:center;gap:6px;padding:10px 16px;min-height:44px;background:white;border:1px solid #e2e8f0;border-radius:22px;font-size:14px;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s}.todo-tab:hover{border-color:#cbd5e1;background:#f8fafc}.todo-tab.active{border-color:#3b82f6;border-width:2px;color:#3b82f6;font-weight:600}.todo-tab-count{display:flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:#ef4444;color:#fff;border-radius:9px;font-size:11px;font-weight:600}.assignments-list{display:flex;flex-direction:column;gap:12px}.assignment-card{display:block;padding:16px 18px;min-height:48px;background:white;border-radius:12px;border:1px solid #e2e8f0;transition:all .2s;text-decoration:none;color:inherit}.assignment-card:hover{border-color:#cbd5e1;box-shadow:0 2px 8px #00000014}.assignment-card.completed{background:#f0fdf4;border-color:#10b981}.assignment-card.pending{background:#fffbeb;border-color:#f59e0b}.assignment-card.failed{background:#fef2f2;border-color:#ef4444}.assignment-line-1{display:flex;align-items:center;gap:8px;margin-bottom:4px}.assignment-primary{font-size:17px;font-weight:600;color:#111827}.assignment-date{font-size:15px;color:#6b7280;flex:1;text-align:right}.assignment-dates{display:flex;flex-direction:column;align-items:flex-end;flex:1;font-size:13px;color:#6b7280;gap:2px}.late-badge{display:inline-block;margin-left:6px;padding:2px 6px;background:#fef2f2;color:#dc2626;border-radius:4px;font-size:12px;font-weight:600}.assignment-line-2{display:flex;align-items:center;min-height:20px}.assignment-secondary{font-size:15px;color:#9ca3af}.topic-badge,.review-badge-inline{display:none}.due-date-inline{font-size:14px;color:#6b7280;font-weight:500}.assignment-icon{font-size:32px}.assignment-details h3{margin:0 0 4px;font-size:16px;font-weight:600;color:#1a1a1a}.assignment-meta{margin:0;font-size:14px;color:#6b7280;display:flex;align-items:center;gap:8px}.review-badge{display:inline-block;padding:2px 8px;background:#fef3c7;color:#b45309;border-radius:4px;font-size:11px;font-weight:600}.assignment-status{display:flex;align-items:center}.status-badge{padding:4px 10px;border-radius:6px;font-size:13px;font-weight:600;white-space:nowrap}.status-badge.completed{background:#10b981;color:#fff}.status-badge.pending{background:#f59e0b;color:#fff}.status-badge.failed{background:#ef4444;color:#fff}.feedback-list{display:flex;flex-direction:column;gap:12px}.feedback-card{padding:16px 18px;min-height:48px;background:white;border-radius:12px;border:1px solid #e2e8f0;text-decoration:none;color:inherit;display:block;transition:all .2s ease;cursor:pointer}.feedback-card:hover{border-color:#cbd5e1;box-shadow:0 2px 8px #00000014}.feedback-card.passed{background:#f0fdf4;border-color:#10b981}.feedback-card.failed{background:#fef2f2;border-color:#ef4444}.feedback-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.feedback-icon{font-size:20px}.feedback-header h3{margin:0;font-size:16px;font-weight:600;color:#111827}.feedback-text{margin:6px 0 0;font-size:15px;color:#6b7280;line-height:1.4}.feedback-date{margin:4px 0 0;font-size:14px;color:#9ca3af}.upcoming-list{display:flex;flex-direction:column;gap:12px}.upcoming-item{display:flex;align-items:center;gap:12px;padding:16px 18px;min-height:48px;background:white;border-radius:12px;border:1px solid #e2e8f0}.upcoming-date{padding:8px 12px;background:#3b82f6;color:#fff;border-radius:8px;font-size:13px;font-weight:600;text-align:center;min-width:60px}.upcoming-info{flex:1}.upcoming-info h4{margin:0 0 4px;font-size:16px;font-weight:600;color:#111827}.upcoming-class{margin:0;font-size:14px;color:#6b7280}.review-badge-small{font-size:16px}.empty-state{text-align:center;padding:40px 16px;color:var(--dashboard-text-secondary, #6b7280);background:var(--dashboard-bg-card, #fffcf7);border-radius:12px;border:1px solid var(--dashboard-border, rgba(45, 74, 111, .1))}.empty-state p{margin:0;font-size:16px}.empty-state.illustrated{border:none;background:linear-gradient(180deg,var(--dashboard-bg-card, #fffcf7) 0%,#fef6ee 100%);box-shadow:0 2px 12px #2d4a6f0f,inset 0 1px #fffc;padding:32px 24px 40px}.empty-state.illustrated .empty-illustration{position:relative;height:80px;margin-bottom:12px;display:flex;align-items:center;justify-content:center}.empty-state.illustrated .empty-illustration.small{height:60px}.empty-state.illustrated .empty-mascot{font-size:48px;line-height:1;filter:drop-shadow(0 4px 8px rgba(0,0,0,.1));animation:mascot-idle 3s ease-in-out infinite}.empty-state.illustrated .empty-mascot img{display:block;border-radius:50%}.empty-state.illustrated .empty-mascot.reading{animation:mascot-read 2s ease-in-out infinite}.empty-state.illustrated .empty-mascot.exploring{animation:mascot-explore 2.5s ease-in-out infinite}@keyframes mascot-idle{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes mascot-read{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-4px) rotate(2deg)}}@keyframes mascot-explore{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-8px) rotate(-5deg)}75%{transform:translate(8px) rotate(5deg)}}.empty-state.illustrated .empty-title{font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:18px;color:var(--dashboard-navy, #2d4a6f);margin:0 0 6px}.empty-state.illustrated .empty-subtitle{font-family:var(--font-body, sans-serif);font-size:13px;color:var(--dashboard-text-secondary, #6b7280);margin:0}.empty-state.empty-state--small.illustrated{padding:24px 16px 28px}.empty-state.empty-state--small.illustrated .empty-illustration{height:60px}.empty-state.empty-state--large.illustrated{padding:48px 24px 56px;margin:16px 0}.empty-state.empty-state--large.illustrated .empty-mascot{font-size:56px}.empty-state.empty-state--large.illustrated .empty-title{font-size:20px}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;color:#374151}.spinner{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@media (max-width: 767px){.profile-section{padding:12px 14px!important;margin-bottom:12px!important;background:white;border-radius:12px;border:1px solid #e2e8f0}.profile-avatar{width:44px;height:44px;font-size:17px}.profile-name{font-size:16px}.streak-icon{width:20px;height:20px}.streak-number{font-size:20px}.profile-menu-button{width:44px;height:44px}}@media (min-width: 768px) and (max-width: 1366px){.dashboard-content{padding:16px 24px;max-width:720px;margin:0 auto}.dashboard-section{margin:0 0 20px}.profile-section{padding:16px 20px!important;border-radius:12px;background:white;border:1px solid #e2e8f0}.section-title{font-size:16px}.assignment-card{padding:16px 20px}.assignment-title-text{font-size:17px}}@media (min-width: 1367px){.dashboard-content{padding:20px;max-width:720px;margin:0 auto}.dashboard-section{margin:0 0 20px}.profile-section{padding:16px 20px!important;border-radius:12px;background:white;border:1px solid #e2e8f0}.section-title{font-size:16px}.assignment-card{padding:16px 20px}.assignment-title-text{font-size:17px}}.cartoons-section{margin-bottom:20px}.cartoons-series{background:white;border-radius:12px;border:1px solid #e2e8f0;padding:14px;margin-top:12px}.cartoons-series-title{font-size:14px;font-weight:600;color:#6b7280;margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.cartoons-scroll-container{overflow:visible;margin:0 -4px}.cartoons-scroll{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:4px}.cartoons-scroll::-webkit-scrollbar{display:none}.cartoon-card{flex-shrink:0;width:100px;border-radius:10px;overflow:hidden;background:#f8fafc;border:1px solid #e2e8f0;scroll-snap-align:start;transition:transform .2s,box-shadow .2s,border-color .2s}.cartoon-card.unlocked{cursor:pointer}.cartoon-card.unlocked:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f;border-color:#3b82f6}.cartoon-card.unlocked:active{transform:translateY(0)}.cartoon-card.locked{cursor:not-allowed;opacity:.6}.cartoon-card.locked .cartoon-thumb{filter:grayscale(100%)}.cartoon-thumb-container{position:relative;width:100%;aspect-ratio:16 / 9;background:#e2e8f0}.cartoon-thumb{width:100%;height:100%;object-fit:cover}.cartoon-lock-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.4);color:#fff}.cartoon-lock-overlay svg{width:20px;height:20px}.cartoon-label{padding:6px 8px;text-align:center;background:white}.cartoon-episode{font-size:13px;font-weight:600;color:#374151}@media (max-width: 480px){.cartoons-series{padding:12px}.cartoon-card{width:90px}.cartoon-episode{font-size:12px}}.performances-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.performance-card{display:block;border-radius:12px;overflow:hidden;background:white;border:1px solid #e2e8f0;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s,border-color .2s}.performance-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f;border-color:#3b82f6}.performance-card:active{transform:translateY(0)}.performance-thumbnail{position:relative;width:100%;aspect-ratio:16 / 9;background:#1a1a1a;overflow:hidden}.performance-thumbnail img{width:100%;height:100%;object-fit:cover}.performance-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:32px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.performance-play-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;background:rgba(0,0,0,.6);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;padding-left:3px;transition:background .2s,transform .2s}.performance-card:hover .performance-play-icon{background:rgba(59,130,246,.9);transform:translate(-50%,-50%) scale(1.1)}.performance-info{padding:10px 12px}.performance-title{display:block;font-size:14px;font-weight:600;color:#111827;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.performance-date{display:block;font-size:12px;color:#9ca3af}@media (max-width: 480px){.performances-grid{grid-template-columns:repeat(2,1fr);gap:10px}.performance-play-icon{width:36px;height:36px;font-size:14px}.performance-info{padding:8px 10px}.performance-title{font-size:13px}}.feedback-toggle-section{margin-top:24px;padding-top:16px;border-top:1px solid #e2e8f0}.feedback-toggle-label{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:white;border-radius:10px;border:1px solid #e2e8f0;cursor:pointer;font-size:14px;color:#6b7280;transition:border-color .2s}.feedback-toggle-label:hover{border-color:#cbd5e1}.feedback-toggle-label input[type=checkbox]{width:18px;height:18px;accent-color:#3b82f6;cursor:pointer}.lesson-preview-container{min-height:100vh;background:#f8fafc}.lesson-preview-header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:white;border-bottom:1px solid #e2e8f0;position:sticky;top:0;z-index:100}.lesson-preview-back-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#f3f4f6;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;color:#374151;transition:background .15s}.lesson-preview-back-btn:hover{background:#e5e7eb}.lesson-preview-back-btn:active{background:#d1d5db}html[data-theme=dark] .student-dashboard,html[data-theme=dark] .student-dashboard.time-morning,html[data-theme=dark] .student-dashboard.time-afternoon,html[data-theme=dark] .student-dashboard.time-evening,html[data-theme=dark] .student-dashboard.time-night{background:var(--dashboard-bg)}html[data-theme=dark] .sticky-header-wrapper,html[data-theme=dark] .time-morning .sticky-header-wrapper,html[data-theme=dark] .time-afternoon .sticky-header-wrapper,html[data-theme=dark] .time-evening .sticky-header-wrapper,html[data-theme=dark] .time-night .sticky-header-wrapper{background:rgba(28,20,16,.9)}html[data-theme=dark] .profile-name{color:var(--dashboard-text)}html[data-theme=dark] .profile-menu-button{background:rgba(255,255,255,.06);color:var(--dashboard-text-secondary)}html[data-theme=dark] .profile-menu-button:hover{background:rgba(255,255,255,.1)}html[data-theme=dark] .profile-menu-dropdown{background:var(--dashboard-bg-card);border-color:var(--dashboard-border);box-shadow:0 4px 20px #0006}html[data-theme=dark] .menu-item{color:var(--dashboard-text)}html[data-theme=dark] .menu-item:hover{background:rgba(255,255,255,.06)}html[data-theme=dark] .section-title,html[data-theme=dark] .section-title-btn{color:var(--dashboard-text-secondary)}html[data-theme=dark] .todo-tab{background:var(--dashboard-bg-card);border-color:var(--dashboard-border);color:var(--dashboard-text-secondary)}html[data-theme=dark] .todo-tab:hover{border-color:#c8b4a033;background:rgba(255,255,255,.04)}html[data-theme=dark] .todo-tab.active{border-color:var(--dashboard-primary);color:var(--dashboard-primary)}html[data-theme=dark] .assignment-card{background:var(--dashboard-bg-card);border-color:var(--dashboard-border)}html[data-theme=dark] .assignment-card:hover{border-color:#c8b4a033}html[data-theme=dark] .assignment-card.completed{background:rgba(157,189,142,.1);border-color:var(--dashboard-success)}html[data-theme=dark] .assignment-card.pending{background:rgba(242,165,65,.1);border-color:var(--dashboard-gold)}html[data-theme=dark] .assignment-card.failed{background:rgba(239,68,68,.1);border-color:#ef4444}html[data-theme=dark] .assignment-primary{color:var(--dashboard-text)}html[data-theme=dark] .assignment-date,html[data-theme=dark] .assignment-dates,html[data-theme=dark] .assignment-secondary,html[data-theme=dark] .due-date-inline{color:var(--dashboard-text-secondary)}html[data-theme=dark] .feedback-card{background:var(--dashboard-bg-card);border-color:var(--dashboard-border)}html[data-theme=dark] .feedback-card.passed{background:rgba(157,189,142,.1);border-color:var(--dashboard-success)}html[data-theme=dark] .feedback-card.failed{background:rgba(239,68,68,.1);border-color:#ef4444}html[data-theme=dark] .feedback-header h3{color:var(--dashboard-text)}html[data-theme=dark] .feedback-text{color:var(--dashboard-text-secondary)}html[data-theme=dark] .feedback-date{color:var(--dashboard-text-muted)}html[data-theme=dark] .upcoming-item{background:var(--dashboard-bg-card);border-color:var(--dashboard-border)}html[data-theme=dark] .upcoming-info h4{color:var(--dashboard-text)}html[data-theme=dark] .upcoming-class{color:var(--dashboard-text-secondary)}html[data-theme=dark] .empty-state.illustrated{background:linear-gradient(180deg,var(--dashboard-bg-card) 0%,rgba(42,32,26,.8) 100%);box-shadow:0 2px 12px #0003}html[data-theme=dark] .loading-container,html[data-theme=dark] .error-container{color:var(--dashboard-text)}html[data-theme=dark] .spinner{border-color:#c8b4a033;border-top-color:var(--dashboard-primary)}@media (max-width: 767px){html[data-theme=dark] .profile-section{background:var(--dashboard-bg-card);border-color:var(--dashboard-border)}}@media (min-width: 768px) and (max-width: 1366px){html[data-theme=dark] .profile-section{background:var(--dashboard-bg-card);border-color:var(--dashboard-border)}}@media (min-width: 1367px){html[data-theme=dark] .profile-section{background:var(--dashboard-bg-card);border-color:var(--dashboard-border)}}html[data-theme=dark] .cartoons-series{background:var(--dashboard-bg-card);border-color:var(--dashboard-border)}html[data-theme=dark] .cartoon-card{background:#1c1410;border-color:var(--dashboard-border)}html[data-theme=dark] .cartoon-label{background:var(--dashboard-bg-card)}html[data-theme=dark] .cartoon-episode{color:var(--dashboard-text)}html[data-theme=dark] .cartoons-series-title{color:var(--dashboard-text-secondary)}html[data-theme=dark] .performance-card{background:var(--dashboard-bg-card);border-color:var(--dashboard-border)}html[data-theme=dark] .performance-title{color:var(--dashboard-text)}html[data-theme=dark] .performance-date{color:var(--dashboard-text-muted)}html[data-theme=dark] .performance-info{background:var(--dashboard-bg-card)}html[data-theme=dark] .feedback-toggle-section{border-top-color:var(--dashboard-border)}html[data-theme=dark] .feedback-toggle-label{background:var(--dashboard-bg-card);border-color:var(--dashboard-border);color:var(--dashboard-text-secondary)}html[data-theme=dark] .lesson-preview-container{background:var(--dashboard-bg)}html[data-theme=dark] .lesson-preview-header{background:var(--dashboard-bg-card);border-bottom-color:var(--dashboard-border)}html[data-theme=dark] .lesson-preview-back-btn{background:rgba(255,255,255,.06);color:var(--dashboard-text)}html[data-theme=dark] .lesson-preview-back-btn:hover{background:rgba(255,255,255,.1)}html[data-theme=dark] .history-toggle{color:var(--dashboard-primary)}@media (min-width: 768px){.fab-column{right:max(16px,calc(50% - 344px))}}.history-sheet.level-sheet{max-height:70vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.history-sheet .history-container{padding-bottom:16px}@keyframes lamb-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes dot-fade{0%,80%,to{opacity:.3}40%{opacity:1}}.lamb-loader{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%);animation:loader-fade-in .15s ease-out}@keyframes loader-fade-in{0%{opacity:0}to{opacity:1}}.lamb-loader-content{display:flex;flex-direction:column;align-items:center;gap:16px}.lamb-logo{width:80px;height:80px;animation:lamb-bounce 1.2s ease-in-out infinite}.lamb-message{font-size:18px;color:#64748b;font-weight:500}.lamb-dots{display:flex;gap:8px}.lamb-dots .dot{width:8px;height:8px;background:#667eea;border-radius:50%;animation:dot-fade 1.4s ease-in-out infinite}.lamb-dots .dot:nth-child(1){animation-delay:0s}.lamb-dots .dot:nth-child(2){animation-delay:.2s}.lamb-dots .dot:nth-child(3){animation-delay:.4s}html[data-theme=dark] .lamb-loader{background:linear-gradient(135deg,#1c1410 0%,#2a201a 100%)}html[data-theme=dark] .lamb-message{color:var(--dashboard-text-secondary)}.a2hs-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:10000;animation:a2hs-fadeIn .2s ease-out}@keyframes a2hs-fadeIn{0%{opacity:0}to{opacity:1}}.a2hs-content{background:white;border-radius:12px;max-width:400px;width:90%;max-height:90vh;overflow:auto;box-shadow:0 10px 40px #0003;animation:a2hs-slideUp .3s ease-out}@keyframes a2hs-slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.a2hs-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #eee}.a2hs-header h2{margin:0;font-size:20px;color:#333}.a2hs-close{background:none;border:none;font-size:28px;color:#999;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.a2hs-close:hover{background:#f5f5f5;color:#333}.a2hs-body{padding:32px 24px;text-align:center}.a2hs-icon{font-size:48px;margin-bottom:16px}.a2hs-message{margin:0 0 8px;font-size:16px;font-weight:500;color:#333}.a2hs-submessage{margin:0;font-size:14px;color:#666}.a2hs-steps{text-align:left;margin-top:16px;background:#f8f9fa;border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:14px}.a2hs-step{display:flex;align-items:center;gap:8px;font-size:15px;color:#333}.a2hs-step-num{font-size:16px;flex-shrink:0}.a2hs-step strong{color:var(--dashboard-primary, #58CC02);font-weight:600}.a2hs-arrow-topright{font-size:18px;margin-left:4px;animation:a2hs-bounceArrow 2s infinite}@keyframes a2hs-bounceArrow{0%,to{transform:translate(0)}50%{transform:translate(3px,-3px)}}.a2hs-footer{padding:20px 24px;border-top:1px solid #eee;display:flex;justify-content:center}.a2hs-btn-ok{padding:10px 32px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none;background:var(--dashboard-primary, #58CC02);color:#fff}.a2hs-btn-ok:hover{opacity:.9}html[data-theme=dark] .a2hs-overlay{background:rgba(0,0,0,.6)}html[data-theme=dark] .a2hs-content{background:var(--dashboard-bg-card);box-shadow:0 10px 40px #0006}html[data-theme=dark] .a2hs-header{border-bottom-color:var(--dashboard-border)}html[data-theme=dark] .a2hs-header h2{color:var(--dashboard-text)}html[data-theme=dark] .a2hs-close{color:var(--dashboard-text-muted)}html[data-theme=dark] .a2hs-close:hover{background:rgba(255,255,255,.1);color:var(--dashboard-text)}html[data-theme=dark] .a2hs-message{color:var(--dashboard-text)}html[data-theme=dark] .a2hs-submessage{color:var(--dashboard-text-secondary)}html[data-theme=dark] .a2hs-steps{background:rgba(255,255,255,.05)}html[data-theme=dark] .a2hs-step{color:var(--dashboard-text)}html[data-theme=dark] .a2hs-footer{border-top-color:var(--dashboard-border)}.answer-mask{white-space:nowrap;letter-spacing:.32em;word-spacing:.55em;margin-right:-.32em;font-variant-ligatures:none}.confetti-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden;z-index:9999}.confetti-piece{position:absolute;top:-20px;left:var(--left);width:var(--size);height:var(--size);background-color:var(--color);border-radius:2px;opacity:0;animation:confetti-fall var(--duration) ease-out var(--delay) forwards}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0) rotate(var(--rotation))}to{opacity:0;transform:translateY(100vh) rotate(calc(var(--rotation) + 360deg))}}.todo-container{display:flex;flex-direction:column;padding:0 0 80px}.todo-container.compact{padding-bottom:0}.todo-list{display:flex;flex-direction:column;gap:12px;padding:16px 4px 0}.daily-list-title{margin:4px 4px 10px;font-family:var(--font-body, system-ui, -apple-system, sans-serif);font-size:15px;font-weight:600;color:var(--dashboard-text-secondary, #6b7280)}.todo-card{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px 20px;border-radius:16px;background:var(--dashboard-bg-card, #fffcf7);border:1px solid var(--dashboard-border, rgba(45, 74, 111, .1));box-shadow:0 1px 3px #2d4a6f0f;text-decoration:none;color:inherit;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.todo-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #2d4a6f1a}.todo-card:active{transform:scale(.98) translateY(0)}.todo-card--locked{position:relative;filter:grayscale(.85);opacity:.55;box-shadow:none;background:var(--dashboard-bg-card, #fffcf7);border-color:var(--dashboard-border, rgba(45, 74, 111, .12))}.todo-card--locked:hover{transform:none;box-shadow:none}.todo-card-lock{position:absolute;top:8px;right:10px;font-size:14px;line-height:1;filter:grayscale(1)}.todo-card.overdue{background:linear-gradient(135deg,#fff5f5 0%,#ffe8e8 100%);border-color:#e57373}.todo-card.overdue .todo-card-title{color:#c62828}.todo-card.extra-assignment .todo-card-title:before{content:"";display:inline-block;width:10px;height:10px;background:var(--dashboard-primary, #e07a5f);border-radius:50%;margin-right:8px;vertical-align:middle;box-shadow:0 0 0 2px #e07a5f33;animation:dot-pulse 2s ease-in-out infinite}@keyframes dot-pulse{0%,to{box-shadow:0 0 0 2px #e07a5f33;transform:scale(1)}50%{box-shadow:0 0 0 4px #e07a5f26;transform:scale(1.1)}}.todo-card.quiz-assignment{background:linear-gradient(135deg,#faf5ff 0%,#f3e8ff 100%);border-color:#c084fc}.todo-card.quiz-assignment .todo-card-title:before{content:"👑";margin-right:6px;font-size:14px}html[data-theme=dark] .todo-card.quiz-assignment{background:rgba(168,85,247,.08);border-color:#a855f766}.todo-card-thumb{flex:0 0 84px;height:48px;margin-right:14px;border-radius:10px;overflow:hidden;background:var(--dashboard-border, rgba(45, 74, 111, .1))}.todo-card-thumb img{display:block;width:100%;height:100%;object-fit:cover}.todo-card-late{flex:none;margin-left:12px;font-size:13px;color:var(--dashboard-text-muted, #9ca3af);white-space:nowrap}.todo-card-tag{font-size:12px;font-weight:600;line-height:1.4;padding:0 7px;border-radius:999px;white-space:nowrap}.todo-card-tag--new{color:#2f855a;background:#e6f4ea}.todo-card-tag--memo{color:#6b46c1;background:#efe9fb}.todo-card-tag--whole{color:#2b6cb0;background:#e6f0fa}.todo-card-tag--redo{color:#c05621;background:#fdf0e3}.todo-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.todo-card-title{font-family:var(--font-body, system-ui, -apple-system, sans-serif);font-size:18px;font-weight:600;color:var(--dashboard-navy, #2d4a6f)}.todo-card-secondary{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--dashboard-text-secondary, #6b7280)}.secondary-dot{color:var(--dashboard-text-muted, #9ca3af);font-size:8px}.daily-empty{text-align:center;padding:48px 20px;color:var(--dashboard-text-secondary, #6b7280);font-size:17px;font-family:var(--font-display, "ZCOOL KuaiLe", cursive);background:var(--dashboard-bg-card, #fffcf7);border-radius:16px;border:1px dashed var(--dashboard-border, rgba(45, 74, 111, .15));margin:16px 0}.daily-empty.illustrated{padding:40px 24px 48px;border:none;background:linear-gradient(180deg,var(--dashboard-bg-card, #fffcf7) 0%,#fef6ee 100%);box-shadow:0 2px 12px #2d4a6f0f,inset 0 1px #fffc}.empty-illustration{position:relative;height:100px;margin-bottom:16px}.empty-mascot{font-size:56px;line-height:1}.daily-empty .empty-title{font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:20px;color:var(--dashboard-navy, #2d4a6f);margin:0 0 8px}.todo-container.compact .todo-list{padding:8px 4px 0;gap:8px}.todo-container.compact .todo-card{padding:10px 14px}.todo-container.compact .todo-card-title{font-size:14px}.todo-container.compact .todo-card-secondary{font-size:11px;gap:4px}.todo-container.compact .daily-empty{padding:24px 16px;margin:8px 4px}.todo-container.compact .daily-empty .empty-illustration{height:60px;margin-bottom:8px}.todo-container.compact .daily-empty .empty-mascot{font-size:36px}.todo-container.compact .daily-empty .empty-title{font-size:14px;margin-bottom:4px}@media (max-width: 480px){.todo-card{padding:14px 16px}.todo-card-title{font-size:16px}.todo-card-secondary{font-size:13px}}html[data-theme=dark] .todo-card{background:var(--dashboard-bg-card);border-color:var(--dashboard-border);box-shadow:0 1px 3px #00000026}html[data-theme=dark] .todo-card:hover{box-shadow:0 4px 12px #0003}html[data-theme=dark] .todo-card-title{color:var(--dashboard-text)}html[data-theme=dark] .todo-card.overdue{background:rgba(239,68,68,.08);border-color:#ef444466}html[data-theme=dark] .todo-card.overdue .todo-card-title{color:#f87171}html[data-theme=dark] .daily-empty.illustrated{background:linear-gradient(180deg,var(--dashboard-bg-card) 0%,rgba(42,32,26,.8) 100%);box-shadow:0 2px 12px #0003}html[data-theme=dark] .daily-empty .empty-title{color:var(--dashboard-text)}.calendar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(45,74,111,.4);z-index:1000;display:flex;align-items:flex-end;justify-content:center;animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.calendar-overlay__content{position:relative;width:100%;max-width:500px;max-height:85vh;overflow-y:auto;background:var(--dashboard-bg-card, #fffcf7);border-radius:20px 20px 0 0;padding:24px 16px;box-shadow:0 -4px 24px #2d4a6f26;animation:sheet-up .3s ease}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.calendar-overlay__close{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;border:none;background:var(--dashboard-bg-surface, #f3f0eb);color:var(--dashboard-text-secondary, #6b7280);font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease;z-index:1}.calendar-overlay__close:hover{background:var(--dashboard-border, rgba(45, 74, 111, .15))}html[data-theme=dark] .calendar-overlay{background:rgba(0,0,0,.6)}html[data-theme=dark] .calendar-overlay__content{background:var(--dashboard-bg-card);box-shadow:0 16px 48px #0006}html[data-theme=dark] .calendar-overlay__close{background:var(--dashboard-bg-surface);color:var(--dashboard-text-secondary)}.level-animal-icon{display:flex;align-items:flex-end;justify-content:center}.level-animal-icon canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges}.level-animal-icon-fallback{font-size:26px;line-height:1}.dragon-flyby{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;overflow:hidden;pointer-events:none}.dragon-stage{position:absolute;top:12%;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:.5rem;will-change:transform}.dragon-stage.is-here{animation:dragon-arrive 1.6s cubic-bezier(.22,.61,.36,1) forwards}.dragon-stage.is-leaving{animation:dragon-leave 1.5s cubic-bezier(.55,0,.9,.5) forwards}.dragon-flyby img{width:150px;height:auto;image-rendering:pixelated;filter:drop-shadow(0 10px 18px rgba(0,0,0,.35))}.dragon-bubble{position:relative;margin:0;max-width:min(20rem,82vw);padding:.7rem 1rem;border-radius:6px;background:#1E1729;border:2px solid #B14FE8;box-shadow:0 8px 24px #00000052;color:#e7e2cb;font-size:17px;line-height:1.45;font-weight:600;text-align:center;text-wrap:balance;opacity:0;animation:dragon-speak 1.6s ease .5s forwards}.is-leaving .dragon-bubble{animation:dragon-hush .4s ease forwards}.dragon-bubble:after{content:"";position:absolute;top:100%;left:50%;margin-left:-8px;border:8px solid transparent;border-top-color:#b14fe8}@media (min-width: 768px){.dragon-flyby img{width:220px}.dragon-bubble{font-size:19px;max-width:26rem}}@keyframes dragon-arrive{0%{transform:translate(115vw) scale(.85)}to{transform:translate(0) scale(1)}}@keyframes dragon-leave{0%{transform:translate(0) scale(1)}to{transform:translate(-145vw) scale(.85)}}@keyframes dragon-speak{0%{opacity:0}to{opacity:1}}@keyframes dragon-hush{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.dragon-stage.is-here{animation:dragon-appear .4s ease forwards}.dragon-stage.is-leaving{animation:dragon-hush .4s ease forwards}}@keyframes dragon-appear{0%{opacity:0}to{opacity:1}}.dragon-dismiss{display:block;margin:.6rem auto 0;padding:.5rem 1.5rem;min-height:44px;border:2px solid #B14FE8;border-radius:6px;background:#B14FE8;color:#14101c;font-family:inherit;font-size:16px;font-weight:700;cursor:pointer;pointer-events:auto}.dragon-dismiss:focus-visible{outline:3px solid #E7E2CB;outline-offset:2px}.dt-card{display:flex;align-items:center;gap:14px;width:100%;min-height:72px;margin:16px 4px 0;padding:14px 20px;box-sizing:border-box;border-radius:16px;background:linear-gradient(135deg,#eef6ff 0%,#e3efff 100%);border:1px solid #b9d6f5;box-shadow:0 1px 3px #2d4a6f0f;text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease}.dt-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #2d4a6f1a}.dt-card:active{transform:scale(.98) translateY(0)}.dt-card-icon{flex:0 0 auto;min-width:44px;height:44px;display:flex;align-items:center;justify-content:center}.dt-card-info{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.dt-card-title{font-size:17px;font-weight:700;color:#1d4e89}.dt-card-secondary{font-size:14px;color:#4a6a8f}.dt-card-go{flex:0 0 auto;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:14px;color:#1d4e89;background:rgba(255,255,255,.75);border-radius:50%}.dt-card-coins{flex:0 0 auto;display:flex;align-items:center;font-family:var(--font-body, system-ui, -apple-system, sans-serif);font-size:17px;font-weight:700;color:#1d4e89;white-space:nowrap}html[data-theme=dark] .dt-card-coins{color:var(--dashboard-gold, #f2a541)}.dt-card-placeholder{height:72px;margin:16px 4px 0}html[data-theme=dark] .dt-card{background:linear-gradient(135deg,#1e2a3a 0%,#1a2432 100%);border-color:#2f4560}html[data-theme=dark] .dt-card-title{color:#8fc3ff}html[data-theme=dark] .dt-card-secondary{color:#9bb0c7}html[data-theme=dark] .dt-card-go{color:#8fc3ff;background:rgba(255,255,255,.08)}.dt-card--listening{--skill: #4FA3E0;--skill-bg: #E1F0FB;--skill-deep: #2F82C0}.dt-card--readwrite{--skill: #49B67A;--skill-bg: #E2F4E8;--skill-deep: #2F9660}.dt-card--speaking{--skill: #FF8A65;--skill-bg: #FFE9DF;--skill-deep: #E0623D}.dt-card--listening,.dt-card--readwrite,.dt-card--speaking{position:relative;overflow:hidden;padding-right:96px;background:#fff;border-color:var(--skill-bg)}.dt-card--listening .dt-card-title,.dt-card--readwrite .dt-card-title,.dt-card--speaking .dt-card-title{color:var(--skill-deep)}.dt-card-peek{position:absolute;right:-8px;top:50%;width:80px;height:80px;border-radius:24px;background:var(--skill-bg);color:var(--skill-deep);display:flex;align-items:center;justify-content:center;transform:translateY(-50%) rotate(-12deg);pointer-events:none}html[data-theme=dark] .dt-card--listening{--skill-bg: #1d3347;--skill-deep: #8fc3ff}html[data-theme=dark] .dt-card--readwrite{--skill-bg: #1d3a2a;--skill-deep: #86d6a6}html[data-theme=dark] .dt-card--speaking{--skill-bg: #3f2a22;--skill-deep: #ffb59c}html[data-theme=dark] .dt-card--listening,html[data-theme=dark] .dt-card--readwrite,html[data-theme=dark] .dt-card--speaking{background:var(--dashboard-bg-card, #1a2432);border-color:var(--skill-bg)}html[data-theme=dark] .dt-card--listening .dt-card-title,html[data-theme=dark] .dt-card--readwrite .dt-card-title,html[data-theme=dark] .dt-card--speaking .dt-card-title{color:var(--skill-deep)}.dt-card-readonly{cursor:default}.birth-ym-picker{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.birth-ym-picker select{min-height:44px;padding:0 10px;font-size:16px;border-radius:10px;border:1px solid var(--dashboard-border, rgba(45, 74, 111, .2));background:var(--dashboard-bg-card, #fffcf7);color:var(--dashboard-navy, #2d4a6f)}.birth-ym-picker__save{min-height:44px;padding:0 18px;font-size:15px;font-weight:600;border:0;border-radius:10px;background:var(--dashboard-primary, #e07a5f);color:#fff;cursor:pointer}.birth-ym-picker__save:disabled{opacity:.6;cursor:default}.birth-ym-picker__cancel{min-height:44px;padding:0 12px;font-size:15px;border:0;background:none;color:var(--dashboard-text-secondary, #6b7280);cursor:pointer}.birth-ym-picker--compact .birth-ym-picker__cancel{min-height:36px;font-size:14px}.birth-ym-picker__error{flex-basis:100%;font-size:13px;color:#c53030}.birth-ym-picker--compact select,.birth-ym-picker--compact .birth-ym-picker__save{min-height:36px;font-size:14px}.birth-ym-section__head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.birth-ym-section__edit{margin-left:auto;min-height:36px;padding:0 12px;font-size:14px;border:1px solid var(--dashboard-border, rgba(45, 74, 111, .2));border-radius:10px;background:transparent;color:var(--dashboard-navy, #2d4a6f);cursor:pointer}.birth-ym-section__value{margin:0;font-size:16px;font-weight:600;color:var(--dashboard-navy, #2d4a6f)}.birth-ym-section__why{margin:10px 0 0;font-size:13px;line-height:1.5;color:var(--dashboard-text-secondary, #6b7280)}.birth-ym-prompt{margin-bottom:14px;padding:16px 18px;border-radius:16px;background:var(--dashboard-bg-card, #fffcf7);border:1px dashed var(--dashboard-border, rgba(45, 74, 111, .25))}.birth-ym-prompt__title{margin:0 0 6px;font-size:17px;font-weight:700;color:var(--dashboard-navy, #2d4a6f)}.birth-ym-prompt__body{margin:0 0 12px;font-size:14px;line-height:1.5;color:var(--dashboard-text-secondary, #6b7280)}.birth-ym-prompt__later{margin-top:8px;min-height:36px;padding:0;font-size:14px;border:0;background:none;color:var(--dashboard-text-muted, #9ca3af);cursor:pointer}.hw-locked-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(20,16,14,.6)}.hw-locked-card{background:#fff;border-radius:20px;padding:32px 24px 20px;max-width:340px;width:100%;text-align:center;box-shadow:0 10px 40px #0000002e}.hw-locked-icon{font-size:56px;line-height:1;margin-bottom:12px}.hw-locked-title{font-size:20px;font-weight:600;color:#92400e;margin:0 0 10px}.hw-locked-body{font-size:16px;line-height:1.6;color:#78716c;margin:0 0 24px}.hw-locked-btn{display:block;width:100%;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;min-height:48px;padding:14px 24px}.hw-locked-btn--primary{background:#f59e0b;color:#fff}.hw-locked-btn--ghost{margin-top:8px;background:transparent;color:#a8a29e;font-weight:500;min-height:44px}.cl-card{display:flex;align-items:center;gap:14px;width:100%;min-height:72px;margin:16px 4px 0;padding:14px 20px;box-sizing:border-box;border-radius:16px;background:linear-gradient(135deg,#fff5ea 0%,#ffedd9 100%);border:1px solid #f5cfa0;box-shadow:0 1px 3px #6f4a2d0f;text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease}.cl-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #6f4a2d1a}.cl-card:active{transform:scale(.98) translateY(0)}.cl-card-icon{flex:0 0 auto;width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:26px;line-height:1;background:#ffffff;border-radius:50%}.cl-card-info{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.cl-card-title{font-size:17px;font-weight:700;color:#8a4a1d}.cl-card-secondary{font-size:14px;color:#a06a3a}.cl-card-go{flex:0 0 auto;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:14px;color:#8a4a1d;background:rgba(255,255,255,.75);border-radius:50%}.cl-card-placeholder{height:72px;margin:16px 4px 0}html[data-theme=dark] .cl-card{background:linear-gradient(135deg,#2e2013 0%,#261a10 100%);border-color:#5a3f22}html[data-theme=dark] .cl-card-icon{background:#3a2a18}html[data-theme=dark] .cl-card-title{color:#f0b87a}html[data-theme=dark] .cl-card-secondary{color:#d19a5c}html[data-theme=dark] .cl-card-go{color:#f0b87a;background:rgba(255,255,255,.08)}.level-sprite{position:relative;width:100%;height:124px;display:flex;align-items:flex-end;justify-content:center;padding:0 0 4px;border:0;background:none;cursor:pointer;overflow:hidden;-webkit-tap-highlight-color:transparent}.level-sprite:focus-visible{outline:3px solid var(--dashboard-gold, #f6c453);outline-offset:2px;border-radius:12px}.level-sprite-actor{display:block;will-change:transform}.level-sprite-actor canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges}.level-sprite-fallback{display:block;font-size:56px;line-height:112px}.level-sprite-say{position:absolute;top:2px;left:50%;transform:translate(-50%);font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:18px;color:#2b2440;background:#fffdf6;border:2px solid #2b2440;border-radius:12px;padding:0 10px;white-space:nowrap;pointer-events:none;animation:level-sprite-say-pop .25s ease-out}@keyframes level-sprite-say-pop{0%{opacity:0;transform:translate(-50%,6px) scale(.85)}to{opacity:1;transform:translate(-50%) scale(1)}}@media (prefers-reduced-motion: reduce){.level-sprite-say{animation:none}}.level-closeup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(20,24,34,.62);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1500;animation:level-closeup-fade .18s ease-out}@keyframes level-closeup-fade{0%{opacity:0}to{opacity:1}}.level-closeup-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:320px;padding:32px 24px 26px;border-radius:24px;background:var(--dashboard-bg-card, #fffcf7);box-shadow:0 18px 48px #14182252;animation:level-closeup-pop .24s cubic-bezier(.34,1.56,.64,1)}@keyframes level-closeup-pop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.level-closeup-card.variant-mythic{background:var(--tier-mythic-surface)}.level-closeup-card.variant-legendary{background:var(--tier-legendary-surface)}.level-closeup-close{position:absolute;top:10px;right:10px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--dashboard-text-secondary, #6b7280);cursor:pointer;border-radius:50%}.level-closeup-close:active{background:rgba(128,128,128,.2)}.level-closeup-icon{width:160px;height:160px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--tier-locked-surface);animation:level-closeup-float 3s ease-in-out infinite}@keyframes level-closeup-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.level-closeup-icon span{font-size:96px;line-height:1;filter:drop-shadow(0 4px 8px rgba(0,0,0,.18))}.level-closeup-icon.rainbow{background:var(--tier-rainbow-gradient);background-size:200% 200%;animation:level-closeup-float 3s ease-in-out infinite,rainbow-shift 3s ease-in-out infinite;box-shadow:0 6px #d4892a,0 12px 32px #f2a54180}.level-closeup-icon.mythic{background:var(--tier-mythic-gradient);background-size:200% 200%;animation:level-closeup-float 3s ease-in-out infinite,rainbow-shift 4s ease-in-out infinite;box-shadow:0 6px 0 var(--tier-mythic-dark),0 12px 32px #f0b42980}.level-closeup-icon.legendary{background:var(--tier-legendary-gradient);background-size:200% 200%;animation:level-closeup-float 3s ease-in-out infinite,rainbow-shift 4s ease-in-out infinite;box-shadow:0 6px 0 var(--tier-legendary-dark),0 12px 32px #e0313180}.level-closeup-icon.locked{background:var(--tier-locked-surface);box-shadow:none;animation:none}.level-closeup-icon.locked span{filter:grayscale(1) brightness(.72);opacity:.75}.level-closeup-info{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.level-closeup-name{font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:26px;color:var(--dashboard-navy, #2d4a6f)}.level-closeup-name-en{font-size:15px;color:var(--dashboard-text-secondary, #6b7280)}.level-closeup-lv{font-size:14px;color:var(--dashboard-text-muted, #9ca3af)}.level-closeup-status{font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:15px;padding:7px 18px;border-radius:999px}.level-closeup-status.unlocked{background:var(--dashboard-success-light, rgba(135, 168, 120, .18));color:var(--dashboard-success-dark, #4f7042)}.level-closeup-status.locked{background:var(--tier-locked-surface);color:var(--dashboard-text-secondary, #6b7280)}.level-closeup-card.variant-mythic .level-closeup-name,.level-closeup-card.variant-mythic .level-closeup-name-en{color:var(--tier-mythic-ink)}.level-closeup-card.variant-legendary .level-closeup-name,.level-closeup-card.variant-legendary .level-closeup-name-en{color:var(--tier-legendary-ink)}@media (max-width: 480px){.level-closeup-icon{width:140px;height:140px}.level-closeup-icon span{font-size:84px}}@media (prefers-reduced-motion: reduce){.level-closeup-overlay,.level-closeup-card,.level-closeup-icon{animation:none}}:root{--tier-rainbow-gradient: linear-gradient( 145deg, #e07a5f 0%, #f2a541 20%, #87a878 40%, #7eb8c9 60%, #9580b8 80%, #e07a5f 100% );--tier-mythic-gradient: linear-gradient(145deg, #fff1b8 0%, #f0b429 45%, #d99a00 70%, #ffe08a 100%);--tier-legendary-gradient: linear-gradient(145deg, #ffb3b3 0%, #e03131 45%, #b31414 70%, #ff8787 100%);--tier-mythic-dark: #b8860b;--tier-legendary-dark: #9a1414;--tier-mythic-surface: linear-gradient(135deg, #fffaeb 0%, #ffeab0 100%);--tier-legendary-surface: linear-gradient(135deg, #fff5f5 0%, #ffd2d2 100%);--tier-mythic-ink: #8a6200;--tier-legendary-ink: #8f1d1d;--tier-locked-surface: #e8e4de}html[data-theme=dark]{--tier-mythic-surface: linear-gradient(135deg, #3a2e17 0%, #4c3b17 100%);--tier-legendary-surface: linear-gradient(135deg, #3a1c1c 0%, #4c1e1e 100%);--tier-mythic-ink: #ffd98a;--tier-legendary-ink: #ffb0b0;--tier-locked-surface: #3a322c}@keyframes rainbow-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.mobile-student-top-bar{display:flex;max-width:720px;margin:0 auto;height:56px;padding:8px 16px;background:transparent;justify-content:space-between;align-items:center;gap:12px}.top-bar-avatar{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.top-bar-avatar.clickable{cursor:pointer;border-radius:12px;padding:4px 8px 4px 4px;margin:-4px -8px -4px -4px;transition:background .2s}.top-bar-avatar.clickable:active{background:rgba(45,74,111,.08)}.top-bar-avatar .avatar-circle{width:36px;height:36px;border-radius:50%;font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0}.top-bar-avatar .avatar-circle .level-animal-icon canvas{max-width:30px;max-height:26px;width:auto;height:auto}.top-bar-avatar .avatar-circle .level-animal-icon-fallback{font-size:24px}.top-bar-avatar .avatar-circle.rainbow{background:var(--tier-rainbow-gradient);background-size:200% 200%;animation:rainbow-shift 3s ease-in-out infinite;box-shadow:0 2px #d4892a,0 3px 6px #f2a54166}.top-bar-avatar .avatar-circle.mythic{background:var(--tier-mythic-gradient);background-size:200% 200%;animation:rainbow-shift 4s ease-in-out infinite;box-shadow:0 2px 0 var(--tier-mythic-dark),0 3px 6px #f0b42973}.top-bar-avatar .avatar-circle.legendary{background:var(--tier-legendary-gradient);background-size:200% 200%;animation:rainbow-shift 4s ease-in-out infinite;box-shadow:0 2px 0 var(--tier-legendary-dark),0 3px 6px #e0313173}.top-bar-avatar .avatar-name{font-family:var(--font-body, system-ui, -apple-system, sans-serif);font-size:15px;font-weight:600;color:var(--dashboard-navy, #2d4a6f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-bar-level{display:flex;align-items:center;gap:6px;padding:0;background:none;border:none;cursor:pointer}.top-bar-level:active{opacity:.8}.top-bar-level.readonly{cursor:default}.top-bar-level.readonly:active{opacity:1}.level-badge-compact{display:flex;align-items:center;gap:6px}.level-badge-compact .trophy-icon{color:var(--dashboard-gold, #f2a541)}@keyframes level-icon-bounce{0%{transform:scale(1) rotate(0)}30%{transform:scale(1.4) rotate(-15deg)}50%{transform:scale(1.2) rotate(10deg)}70%{transform:scale(1.1) rotate(-5deg)}to{transform:scale(1) rotate(0)}}.top-bar-level.receiving{animation:level-glow .5s ease-out}@keyframes level-glow{0%{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 12px rgba(242,165,65,.6))}to{filter:drop-shadow(0 0 0 transparent)}}.top-bar-actions{display:flex;align-items:center;gap:0}.top-bar-btn{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;color:#9ca3af;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:color .15s}.top-bar-btn:active{color:#6b7280}.top-bar-btn.active{color:#1e3a5f}.top-bar-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;background:var(--dashboard-gold, #f2a541);color:#78350f;font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:10px;font-weight:600;border-radius:8px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #f2a54166;pointer-events:none}.mobile-student-nav-container{display:block;position:fixed;bottom:0;left:0;right:0;z-index:1000;background:linear-gradient(180deg,#f5efe6 0%,#ebe4d8 100%);box-shadow:0 -2px 8px #2d4a6f14,inset 0 1px #fff9;border-top:1px solid rgba(45,74,111,.1)}.mobile-student-nav{display:flex;align-items:stretch;justify-content:space-around;max-width:720px;margin:0 auto;padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom))}.mobile-student-nav .nav-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:1;min-width:0;height:56px;padding:6px 4px;border:none;background:transparent;color:var(--dashboard-navy, #2d4a6f);cursor:pointer;border-radius:12px;transition:all .2s ease}.mobile-student-nav .nav-icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.mobile-student-nav .nav-badge{position:absolute;top:-6px;right:-10px;min-width:18px;height:18px;padding:0 5px;background:var(--dashboard-primary, #e07a5f);color:#fff;font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:11px;font-weight:400;border-radius:9px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #e07a5f66;border:2px solid #f5efe6}.time-evening .mobile-student-nav .nav-badge{border-color:#f8e8e0}.time-night .mobile-student-nav .nav-badge{border-color:#e8e0ef}.mobile-student-nav .nav-btn svg{stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.mobile-student-nav .nav-btn:nth-child(1) svg{transform:rotate(-2deg)}.mobile-student-nav .nav-btn:nth-child(2) svg{transform:rotate(1.5deg)}.mobile-student-nav .nav-btn:nth-child(3) svg{transform:rotate(-1deg)}.mobile-student-nav .nav-btn:nth-child(4) svg{transform:rotate(2deg)}.mobile-student-nav .nav-btn:hover svg{transform:rotate(0) scale(1.15);animation:icon-wobble .4s ease-out}@keyframes icon-wobble{0%{transform:rotate(0) scale(1)}25%{transform:rotate(-8deg) scale(1.15)}50%{transform:rotate(5deg) scale(1.12)}75%{transform:rotate(-3deg) scale(1.18)}to{transform:rotate(0) scale(1.15)}}.mobile-student-nav .nav-btn.active svg{transform:rotate(0) scale(1.1);filter:drop-shadow(0 2px 4px rgba(224,122,95,.3))}.mobile-student-nav .nav-btn span{font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:12px;font-weight:400;white-space:nowrap}.mobile-student-nav .nav-btn:hover{background:rgba(45,74,111,.08)}.mobile-student-nav .nav-btn.active{color:var(--dashboard-primary, #e07a5f);background:rgba(224,122,95,.12);box-shadow:0 2px 8px #e07a5f26}.mobile-student-nav-container.teacher-view{position:relative;margin-top:16px}.time-morning .mobile-student-nav-container{background:linear-gradient(180deg,#f5efe6 0%,#ebe4d8 100%);border-top-color:#2d4a6f1a}.time-afternoon .mobile-student-nav-container{background:linear-gradient(180deg,#faf6f0 0%,#f5efe6 100%);border-top-color:#2d4a6f14}.time-evening .mobile-student-nav-container{background:linear-gradient(180deg,#f8e8e0 0%,#f0d8cc 100%);border-top-color:#b464501f;box-shadow:0 -2px 8px #b4645014,inset 0 1px #ffffff80}.time-evening .mobile-student-nav .nav-btn{color:#5c4035}.time-evening .mobile-student-nav .nav-btn.active{color:var(--dashboard-primary, #e07a5f);background:rgba(224,122,95,.15)}.time-night .mobile-student-nav-container{background:linear-gradient(180deg,#e8e0ef 0%,#ddd5e8 100%);border-top-color:#64508c1f;box-shadow:0 -2px 8px #64508c1a,inset 0 1px #fff6}.time-night .mobile-student-nav .nav-btn{color:#4a4060}.time-night .mobile-student-nav .nav-btn:hover{background:rgba(100,80,140,.1)}.time-night .mobile-student-nav .nav-btn.active{color:#8b6fad;background:rgba(139,111,173,.15);box-shadow:0 2px 8px #8b6fad33}.time-night .mobile-student-nav .nav-btn.active svg{filter:drop-shadow(0 2px 4px rgba(139,111,173,.3))}.time-night .top-bar-avatar .avatar-name{color:#4a4060}.time-evening .top-bar-avatar .avatar-name{color:#5c4035}.time-night .level-badge-compact .level-text,.time-night .level-badge-compact .xp-number{color:#4a4060}.time-night .level-badge-compact .xp-label{color:#9580b8}.time-night .level-badge-compact .level-progress{background:rgba(100,80,140,.15)}.time-evening .level-badge-compact .level-text,.time-evening .level-badge-compact .xp-number{color:#5c4035}.time-evening .level-badge-compact .xp-label{color:#c65d42}.level-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.3);z-index:1100;display:flex;align-items:flex-end;justify-content:center;animation:review-fade-in .2s ease}@keyframes level-sheet-fade-in{0%{opacity:0}to{opacity:1}}.level-sheet{position:relative;background:linear-gradient(180deg,#faf6f0 0%,#f5efe6 100%);border-radius:16px 16px 0 0;width:100%;max-width:400px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 -4px 24px #00000026;animation:level-sheet-up .3s cubic-bezier(.34,1.56,.64,1)}@keyframes level-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.level-sheet-handle{width:36px;height:4px;border-radius:2px;background:rgba(45,74,111,.2);margin:10px auto 4px;flex-shrink:0}.level-sheet-hero{display:flex;flex-direction:column;align-items:center;padding:12px 20px 16px;gap:6px;border-bottom:1px solid rgba(45,74,111,.08)}.level-sheet-hero-icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px}.level-sheet-hero-icon.rainbow{background:var(--tier-rainbow-gradient);background-size:200% 200%;animation:rainbow-shift 3s ease-in-out infinite}.level-sheet-hero-icon.mythic{background:var(--tier-mythic-gradient);background-size:200% 200%;animation:rainbow-shift 4s ease-in-out infinite}.level-sheet-hero-icon.legendary{background:var(--tier-legendary-gradient);background-size:200% 200%;animation:rainbow-shift 4s ease-in-out infinite}.level-sheet-hero-info{display:flex;align-items:baseline;gap:6px}.level-sheet-hero-name{font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:20px;color:var(--dashboard-navy, #2d4a6f)}.level-sheet-hero-lv{font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:14px;color:var(--dashboard-gold-dark, #d4892a)}.level-sheet-progress-bar{width:70%;height:6px;border-radius:3px;background:rgba(45,74,111,.1);overflow:hidden}.level-sheet-progress-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--dashboard-gold, #f2a541),var(--dashboard-primary, #e07a5f));transition:width .4s ease}.level-sheet-progress-text{display:flex;flex-direction:column;align-items:center;gap:1px;color:var(--dashboard-navy, #2d4a6f)}.level-sheet-progress-total{font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:14px;color:var(--dashboard-gold-dark, #d4892a)}.level-sheet-progress-hint{font-size:11px;opacity:.6}.level-sheet-list{flex:1;overflow-y:auto;padding:8px 16px}.level-sheet-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;transition:background .15s}.level-sheet-row.zoomable,.level-sheet-hero-icon.zoomable{cursor:pointer;-webkit-tap-highlight-color:transparent}.level-sheet-row.zoomable{min-height:44px}.level-sheet-row.zoomable:active{transform:scale(.98)}.level-sheet-hero-icon.zoomable:active{filter:brightness(1.06)}.level-sheet-row.zoomable:focus-visible,.level-sheet-hero-icon.zoomable:focus-visible{outline:3px solid var(--dashboard-gold, #f2a541);outline-offset:2px}.level-sheet-row.current{background:rgba(224,122,95,.1)}.level-sheet-row.shown:not(.current){box-shadow:inset 0 0 0 2px #e07a5f73}.level-sheet-row.locked{opacity:.45}.level-sheet-row-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.level-sheet-row-icon.rainbow{background:var(--tier-rainbow-gradient);background-size:200% 200%;animation:rainbow-shift 3s ease-in-out infinite}.level-sheet-row-icon.mythic{background:var(--tier-mythic-gradient);background-size:200% 200%;animation:rainbow-shift 4s ease-in-out infinite}.level-sheet-row-icon.legendary{background:var(--tier-legendary-gradient);background-size:200% 200%;animation:rainbow-shift 4s ease-in-out infinite}.level-sheet-row.variant-mythic:not(.locked){background:var(--tier-mythic-surface)}.level-sheet-row.variant-legendary:not(.locked){background:var(--tier-legendary-surface)}.level-sheet-row.variant-mythic:not(.locked) .level-sheet-row-name,.level-sheet-row.variant-mythic:not(.locked) .level-sheet-row-points{color:var(--tier-mythic-ink)}.level-sheet-row.variant-legendary:not(.locked) .level-sheet-row-name,.level-sheet-row.variant-legendary:not(.locked) .level-sheet-row-points{color:var(--tier-legendary-ink)}.level-sheet-row-name{font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:15px;color:var(--dashboard-navy, #2d4a6f);flex:1;min-width:0}.level-sheet-row-points{font-size:12px;color:var(--dashboard-navy, #2d4a6f);opacity:.5;white-space:nowrap}.level-sheet-row-status{font-size:13px;width:32px;text-align:center;flex-shrink:0}.level-sheet-row.current .level-sheet-row-status{color:var(--dashboard-primary, #e07a5f);font-weight:600;font-size:12px}.level-sheet-row.unlocked .level-sheet-row-status{color:#87a878}.time-evening .level-sheet{background:linear-gradient(180deg,#f8e8e0 0%,#f0d8cc 100%)}.time-evening .level-sheet-handle{background:rgba(180,100,80,.2)}.time-evening .level-sheet-hero-name,.time-evening .level-sheet-row-name{color:#5c4035}.time-night .level-sheet{background:linear-gradient(180deg,#e8e0ef 0%,#ddd5e8 100%)}.time-night .level-sheet-handle{background:rgba(100,80,140,.2)}.time-night .level-sheet-hero-name,.time-night .level-sheet-row-name{color:#4a4060}.time-night .level-sheet-hero-lv{color:#9580b8}.leaderboard-header{display:flex;flex-direction:column;align-items:center;padding:8px 20px 12px;gap:2px;border-bottom:1px solid rgba(45,74,111,.08)}.leaderboard-class-name{font-size:12px;color:var(--dashboard-navy, #2d4a6f);opacity:.5}.leaderboard-title{font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:20px;color:var(--dashboard-navy, #2d4a6f)}.leaderboard-list{flex:1;overflow-y:auto;padding:8px 12px}.leaderboard-loading,.leaderboard-empty{text-align:center;padding:32px 0;color:var(--dashboard-navy, #2d4a6f);opacity:.5;font-size:14px}.leaderboard-class-card{padding:10px 12px;border-radius:10px;margin-bottom:4px}.leaderboard-class-card.my-class{background:rgba(242,165,65,.12)}.leaderboard-class-header{display:flex;align-items:center;gap:10px}.leaderboard-rank{width:28px;text-align:center;font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:15px;color:var(--dashboard-navy, #2d4a6f);flex-shrink:0}.leaderboard-rank.gold{font-size:20px}.leaderboard-name{flex:1;min-width:0;font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:15px;color:var(--dashboard-navy, #2d4a6f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leaderboard-score{font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:16px;color:var(--dashboard-gold-dark, #d4892a);flex-shrink:0;min-width:32px;text-align:right}.leaderboard-students-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 8px;margin-top:6px;padding-left:28px}.leaderboard-student-cell{display:flex;align-items:center;gap:4px;padding:3px 6px;border-radius:6px;min-width:0}.leaderboard-student-cell.current{background:rgba(242,165,65,.15)}.leaderboard-student-icon{font-size:14px;flex-shrink:0}.leaderboard-student-name{font-size:12px;color:var(--dashboard-navy, #2d4a6f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.leaderboard-student-score{font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:11px;color:var(--dashboard-gold-dark, #d4892a);flex-shrink:0}.time-evening .leaderboard-title,.time-evening .leaderboard-name,.time-evening .leaderboard-student-name{color:#5c4035}.time-night .leaderboard-title,.time-night .leaderboard-name,.time-night .leaderboard-student-name{color:#4a4060}.time-night .leaderboard-score,.time-night .leaderboard-student-score{color:#9580b8}html[data-theme=dark] .mobile-student-nav-container,html[data-theme=dark] .time-morning .mobile-student-nav-container,html[data-theme=dark] .time-afternoon .mobile-student-nav-container,html[data-theme=dark] .time-evening .mobile-student-nav-container,html[data-theme=dark] .time-night .mobile-student-nav-container{background:linear-gradient(180deg,#2a201a 0%,#221a14 100%);border-top-color:#c8b4a01a;box-shadow:0 -2px 8px #0000004d,inset 0 1px #ffffff0a}html[data-theme=dark] .mobile-student-nav .nav-btn,html[data-theme=dark] .time-evening .mobile-student-nav .nav-btn,html[data-theme=dark] .time-night .mobile-student-nav .nav-btn{color:var(--dashboard-text-secondary)}html[data-theme=dark] .mobile-student-nav .nav-btn:hover,html[data-theme=dark] .time-night .mobile-student-nav .nav-btn:hover{background:rgba(255,255,255,.06)}html[data-theme=dark] .mobile-student-nav .nav-btn.active,html[data-theme=dark] .time-evening .mobile-student-nav .nav-btn.active,html[data-theme=dark] .time-night .mobile-student-nav .nav-btn.active{color:var(--dashboard-primary);background:rgba(232,146,122,.12);box-shadow:0 2px 8px #e8927a26}html[data-theme=dark] .mobile-student-nav .nav-btn.active svg,html[data-theme=dark] .time-night .mobile-student-nav .nav-btn.active svg{filter:drop-shadow(0 2px 4px rgba(232,146,122,.3))}html[data-theme=dark] .mobile-student-nav .nav-badge,html[data-theme=dark] .time-evening .mobile-student-nav .nav-badge,html[data-theme=dark] .time-night .mobile-student-nav .nav-badge{border-color:#221a14}html[data-theme=dark] .top-bar-avatar .avatar-name,html[data-theme=dark] .time-night .top-bar-avatar .avatar-name,html[data-theme=dark] .time-evening .top-bar-avatar .avatar-name{color:var(--dashboard-text)}html[data-theme=dark] .top-bar-btn{color:var(--dashboard-text-muted)}html[data-theme=dark] .top-bar-btn:active{color:var(--dashboard-text-secondary)}html[data-theme=dark] .level-badge-compact .xp-number,html[data-theme=dark] .time-night .level-badge-compact .xp-number,html[data-theme=dark] .time-evening .level-badge-compact .xp-number{color:var(--dashboard-text)}html[data-theme=dark] .level-badge-compact .xp-label,html[data-theme=dark] .time-night .level-badge-compact .xp-label,html[data-theme=dark] .time-evening .level-badge-compact .xp-label{color:var(--dashboard-gold)}html[data-theme=dark] .level-sheet-overlay{background:rgba(0,0,0,.5)}html[data-theme=dark] .level-sheet,html[data-theme=dark] .time-evening .level-sheet,html[data-theme=dark] .time-night .level-sheet{background:linear-gradient(180deg,#2a201a 0%,#221a14 100%);box-shadow:0 -4px 24px #0006}html[data-theme=dark] .level-sheet-handle{background:rgba(255,255,255,.15)}html[data-theme=dark] .level-sheet-hero{border-bottom-color:var(--dashboard-border)}html[data-theme=dark] .level-sheet-hero-name,html[data-theme=dark] .time-night .level-sheet-hero-name,html[data-theme=dark] .time-evening .level-sheet-hero-name{color:var(--dashboard-text)}html[data-theme=dark] .level-sheet-hero-lv,html[data-theme=dark] .time-night .level-sheet-hero-lv{color:var(--dashboard-gold)}html[data-theme=dark] .level-sheet-progress-bar{background:rgba(255,255,255,.1)}html[data-theme=dark] .level-sheet-progress-text{color:var(--dashboard-text-muted)}html[data-theme=dark] .level-sheet-row-name,html[data-theme=dark] .time-night .level-sheet-row-name,html[data-theme=dark] .time-evening .level-sheet-row-name{color:var(--dashboard-text)}html[data-theme=dark] .level-sheet-row-points{color:var(--dashboard-text-muted)}html[data-theme=dark] .level-sheet-row.current{background:rgba(232,146,122,.12)}html[data-theme=dark] .leaderboard-header{border-bottom-color:var(--dashboard-border)}html[data-theme=dark] .leaderboard-class-name{color:var(--dashboard-text-muted)}html[data-theme=dark] .leaderboard-title,html[data-theme=dark] .time-night .leaderboard-title,html[data-theme=dark] .time-evening .leaderboard-title{color:var(--dashboard-text)}html[data-theme=dark] .leaderboard-rank{color:var(--dashboard-text-secondary)}html[data-theme=dark] .leaderboard-name,html[data-theme=dark] .time-night .leaderboard-name,html[data-theme=dark] .time-evening .leaderboard-name{color:var(--dashboard-text)}html[data-theme=dark] .leaderboard-score,html[data-theme=dark] .time-night .leaderboard-score{color:var(--dashboard-gold)}html[data-theme=dark] .leaderboard-class-card.my-class{background:rgba(242,165,65,.1)}html[data-theme=dark] .leaderboard-student-cell.current{background:rgba(242,165,65,.12)}html[data-theme=dark] .leaderboard-student-name,html[data-theme=dark] .time-night .leaderboard-student-name,html[data-theme=dark] .time-evening .leaderboard-student-name{color:var(--dashboard-text)}html[data-theme=dark] .leaderboard-student-score{color:var(--dashboard-gold)}.coin-info-box{position:absolute;top:10px;right:12px;z-index:1;display:flex;flex-direction:column;align-items:flex-end}.coin-info-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:none;background:none;cursor:pointer;color:var(--dashboard-navy, #2d4a6f);opacity:.4;border-radius:50%;transition:opacity .15s,background .15s}.coin-info-toggle:active{opacity:.7;background:rgba(45,74,111,.06)}.coin-info-box.expanded .coin-info-toggle{opacity:.6}.coin-info-content{min-width:160px;background:rgb(255,248,235);border-radius:8px;padding:10px 12px;margin-top:2px;box-shadow:0 2px 8px #0000001f}.coin-info-title{font-size:13px;font-weight:600;color:var(--dashboard-navy, #2d4a6f);margin-bottom:6px}.coin-info-rows{display:flex;flex-direction:column;gap:4px}.coin-info-rows span{font-size:12px;color:var(--dashboard-navy, #2d4a6f)}.time-evening .coin-info-toggle,.time-evening .coin-info-title,.time-evening .coin-info-rows span{color:#5c4035}.time-night .coin-info-toggle,.time-night .coin-info-title,.time-night .coin-info-rows span{color:#4a4060}html[data-theme=dark] .coin-info-toggle,html[data-theme=dark] .time-night .coin-info-toggle,html[data-theme=dark] .time-evening .coin-info-toggle{color:var(--dashboard-text-muted)}html[data-theme=dark] .coin-info-content{background:rgb(50,40,25)}html[data-theme=dark] .coin-info-title,html[data-theme=dark] .time-night .coin-info-title,html[data-theme=dark] .time-evening .coin-info-title{color:var(--dashboard-text)}html[data-theme=dark] .coin-info-rows span,html[data-theme=dark] .time-night .coin-info-rows span,html[data-theme=dark] .time-evening .coin-info-rows span{color:var(--dashboard-text-secondary)}.marked-transcript{font-size:16px;line-height:1.7;color:#1f2937}.marked-transcript .mt-text{margin:0}.mt-highlight{background:#fef08a;border-radius:3px;padding:0 2px}.mt-strike{text-decoration:line-through;text-decoration-color:#dc2626;text-decoration-thickness:2px;color:#6b7280}.mt-fix{color:#047857;font-weight:600}.mt-commented{border-bottom:2px dotted #2563eb}.mt-number{color:#2563eb;font-weight:600;margin:0 1px}.mt-comments{list-style:none;margin:8px 0 0;padding:8px 10px;background:#eff6ff;border-radius:8px;font-size:15px}.mt-comment-item{display:flex;gap:6px;align-items:baseline}.mt-comment-item+.mt-comment-item{margin-top:4px}.mt-comment-words{color:#4b5563}.teacher-note-markup{flex-basis:100%;margin-top:4px}.review-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.5);display:flex;align-items:flex-end;justify-content:center;z-index:1000;animation:review-fade-in .2s ease}@keyframes review-fade-in{0%{opacity:0}to{opacity:1}}.review-modal{background:#fff;border-radius:16px 16px 0 0;width:100%;max-width:400px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 -4px 24px #00000026;animation:review-sheet-up .3s ease}@keyframes review-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.review-modal-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px 8px 16px;border-bottom:1px solid #eee;flex-shrink:0}.review-modal-title{margin:0;font-size:15px;font-weight:600;color:#333}.review-metrics{display:flex;justify-content:center;align-items:stretch;margin-bottom:20px}.review-metric{display:flex;flex-direction:column;align-items:center;gap:2px;padding:0 32px}.review-metric.passed{border-right:1px solid #e5e7eb}.review-metric .metric-number{font-size:40px;font-weight:700;line-height:1}.review-metric .metric-label{font-size:12px;font-weight:500;color:#9ca3af;text-transform:uppercase}.review-metric.passed .metric-number{color:#16a34a}.review-metric.failed .metric-number{color:#dc2626}.review-modal-close{background:none;border:none;font-size:20px;cursor:pointer;color:#999;padding:4px;line-height:1;min-height:32px;min-width:32px;display:flex;align-items:center;justify-content:center}.review-modal-close:hover{color:#333}.review-modal-content{flex:1;overflow-y:auto;padding:20px}.review-details{border-top:1px solid #eee;padding-top:16px}.review-details-title{font-size:14px;font-weight:600;color:#666;margin-bottom:12px}.review-list{display:flex;flex-direction:column;gap:12px}.review-item{padding:12px;border-radius:8px;background:#f9fafb}.review-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;flex-wrap:wrap;gap:8px}.review-item-label{font-size:14px;font-weight:600;color:#333}.review-icon{font-weight:700}.review-icon.passed{color:#16a34a}.review-icon.failed{color:#dc2626}.review-item-text{font-size:15px;color:#333;font-style:italic;margin-bottom:8px}.review-item-feedback{font-size:14px;color:#555}.feedback-label{color:#888;margin-right:4px}.feedback-text{color:#333}.review-audio-btn{display:flex;align-items:center;gap:6px;margin-top:10px;padding:8px 12px;background:#f5f5f5;border:1px solid #ddd;border-radius:6px;font-size:13px;color:#555;cursor:pointer;min-height:44px;transition:background-color .2s}.review-audio-btn:hover{background:#e8e8e8}.review-audio-btn.playing{background:#e3f2fd;border-color:#2196f3;color:#1976d2}.review-modal-footer{padding:16px 20px;border-top:1px solid #eee;flex-shrink:0}.review-dismiss-btn{width:100%;padding:14px 24px;background:#4caf50;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;min-height:48px;transition:background-color .2s}.review-dismiss-btn:hover{background:#43a047}.review-dismiss-btn:active{background:#388e3c}.review-history-content{display:flex;flex-direction:column;gap:16px;touch-action:pan-y;-webkit-user-select:none;user-select:none}.review-day-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid #e5e7eb;margin-bottom:8px}.review-nav-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;color:#333;transition:all .15s ease}.review-nav-btn:hover:not(:disabled){background:#e8e8e8}.review-nav-btn:active:not(:disabled){background:#ddd;transform:scale(.95)}.review-nav-btn:disabled{opacity:.3;cursor:not-allowed}.review-day-indicator{display:flex;flex-direction:column;align-items:center;gap:2px}.review-day-date{font-size:18px;font-weight:700;color:#333}.review-day-count{font-size:12px;color:#9ca3af}.review-day-content{min-height:150px}.review-swipe-hint{text-align:center;font-size:12px;color:#9ca3af;padding:12px 0 4px}@media (min-width: 769px){.review-swipe-hint{display:none}}.review-empty-state{text-align:center;padding:40px 20px;color:#9ca3af;font-size:15px}html[data-theme=dark] .review-modal-overlay{background:rgba(0,0,0,.6)}html[data-theme=dark] .review-modal{background:var(--dashboard-bg-card);box-shadow:0 4px 24px #0006}html[data-theme=dark] .review-modal-header{border-bottom-color:var(--dashboard-border)}html[data-theme=dark] .review-modal-title{color:var(--dashboard-text)}html[data-theme=dark] .review-modal-close{color:var(--dashboard-text-muted)}html[data-theme=dark] .review-modal-close:hover{color:var(--dashboard-text)}html[data-theme=dark] .review-metric .metric-label{color:var(--dashboard-text-muted)}html[data-theme=dark] .review-metric.passed{border-right-color:var(--dashboard-border)}html[data-theme=dark] .review-details{border-top-color:var(--dashboard-border)}html[data-theme=dark] .review-details-title{color:var(--dashboard-text-muted)}html[data-theme=dark] .review-item{background:rgba(255,255,255,.05)}html[data-theme=dark] .review-item-label{color:var(--dashboard-text)}html[data-theme=dark] .review-item-text,html[data-theme=dark] .review-item-feedback{color:var(--dashboard-text-secondary)}html[data-theme=dark] .feedback-label{color:var(--dashboard-text-muted)}html[data-theme=dark] .feedback-text{color:var(--dashboard-text)}html[data-theme=dark] .review-audio-btn{background:rgba(255,255,255,.05);border-color:var(--dashboard-border);color:var(--dashboard-text-secondary)}html[data-theme=dark] .review-audio-btn:hover{background:rgba(255,255,255,.1)}html[data-theme=dark] .review-audio-btn.playing{background:rgba(33,150,243,.15);border-color:#2196f3;color:#64b5f6}html[data-theme=dark] .review-modal-footer{border-top-color:var(--dashboard-border)}html[data-theme=dark] .review-day-nav{border-bottom-color:var(--dashboard-border)}html[data-theme=dark] .review-nav-btn{background:rgba(255,255,255,.05);border-color:var(--dashboard-border);color:var(--dashboard-text)}html[data-theme=dark] .review-nav-btn:hover:not(:disabled){background:rgba(255,255,255,.1)}html[data-theme=dark] .review-nav-btn:active:not(:disabled){background:rgba(255,255,255,.15)}html[data-theme=dark] .review-day-date{color:var(--dashboard-text)}html[data-theme=dark] .review-day-count,html[data-theme=dark] .review-swipe-hint,html[data-theme=dark] .review-empty-state{color:var(--dashboard-text-muted)}@media (max-width: 480px){.review-modal{max-height:90vh}.review-modal-header h3{font-size:16px}.review-summary-item{padding:10px 14px;font-size:15px}.review-item-header{flex-direction:column;align-items:flex-start}}.review-points-hero{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px}.review-points-hero .level-sprite{width:170px;flex:none}.review-points-figures{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.review-points-accuracy{font-size:14px;color:var(--dashboard-text-secondary, #6b7280)}.review-points-total{font-size:44px;font-weight:700;line-height:1;color:var(--dashboard-gold-dark, #d4892a)}.review-awards{display:flex;flex-direction:column;gap:6px;margin:4px 0 12px}.review-award-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;background:rgba(45,74,111,.05);font-size:15px}.review-award-row.perfect{background:var(--dashboard-success-light, #d4e5c9)}.review-award-pending{opacity:.75}.review-award-lesson{font-family:var(--font-display, "ZCOOL KuaiLe", cursive);color:var(--dashboard-navy, #2d4a6f);white-space:nowrap}.review-award-note{flex:1;min-width:0;color:var(--dashboard-text-secondary, #6b7280);font-size:14px}.review-award-points{font-weight:700;font-size:17px;color:var(--dashboard-gold-dark, #d4892a);white-space:nowrap}.review-award-row.perfect .review-award-points{color:var(--dashboard-success-dark, #6b8a5e)}.review-award-items{margin:6px 0 4px 14px}.review-award-items .review-item{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px}.review-award-items .review-item-header{margin-bottom:0}.review-award-items .review-item-text,.review-award-items .review-item-feedback{flex:1 1 0;min-width:0;margin-top:0}.review-award-items .review-audio-btn{flex-basis:100%}.review-award-lost{font-weight:600;font-size:14px;color:var(--dashboard-primary, #e07a5f)}html[data-theme=dark] .review-award-row{background:rgba(200,180,160,.08)}html[data-theme=dark] .review-award-lesson{color:var(--dashboard-text)}.review-item-markup{margin-top:6px;display:flex;flex-direction:column;gap:4px}.account-switcher-section{padding:20px;margin-bottom:16px;background:var(--dashboard-bg-card, #fffcf7);border-radius:16px;border:1px solid var(--dashboard-border, rgba(45, 74, 111, .1))}.account-switcher-title{font-size:16px;font-weight:500;color:var(--dashboard-navy, #2d4a6f);margin:0 0 12px}.account-switcher-list{display:flex;flex-direction:column;gap:8px}.account-switcher-item{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 12px;background:transparent;border:2px solid var(--dashboard-border, rgba(45, 74, 111, .1));border-radius:12px;cursor:pointer;transition:background .2s,border-color .2s,transform .15s;width:100%;text-align:left;font-family:inherit}.account-switcher-item:hover{background:rgba(45,74,111,.04)}.account-switcher-item:active{transform:scale(.98)}.account-switcher-item.active{border-color:var(--dashboard-success, #87a878);background:rgba(135,168,120,.08)}.account-switcher-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:16px;font-weight:400;flex-shrink:0}.account-switcher-name{flex:1;font-family:var(--font-display, "ZCOOL KuaiLe", cursive);font-size:16px;color:var(--dashboard-navy, #2d4a6f)}.account-switcher-badge{font-size:12px;font-weight:600;color:var(--dashboard-success, #87a878);background:rgba(135,168,120,.15);padding:2px 8px;border-radius:8px}html[data-theme=dark] .account-switcher-item:hover{background:rgba(255,255,255,.04)}html[data-theme=dark] .account-switcher-item.active{background:rgba(157,189,142,.08)}.settings-page{background:transparent;padding:0}.settings-content-inner{padding:4px 16px 16px}.settings-sheet{max-height:60vh}.settings-section{padding:16px;margin-bottom:16px;background:var(--dashboard-bg-card, #fffcf7);border-radius:16px;border:1px solid var(--dashboard-border, rgba(45, 74, 111, .1))}.logout-section{display:flex;justify-content:center;background:transparent;border:none;padding:0}.logout-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 24px;background:transparent;border:1px solid rgba(224,122,95,.25);border-radius:12px;color:var(--dashboard-primary, #e07a5f);font-size:15px;font-weight:500;cursor:pointer;transition:background .2s}.logout-btn:hover{background:rgba(224,122,95,.08)}.logout-btn:active{transform:scale(.98)}.settings-theme-row{display:flex;flex-direction:column;gap:10px}.settings-theme-label{font-size:15px;font-weight:500;color:var(--dashboard-navy, #2d4a6f)}.settings-theme-toggle{display:flex;gap:4px;background:rgba(45,74,111,.06);border-radius:12px;padding:4px}.settings-theme-btn{flex:1;padding:8px 0;border:none;border-radius:8px;background:transparent;font-size:14px;color:var(--dashboard-navy, #2d4a6f);cursor:pointer;transition:background .2s,color .2s;text-align:center}.settings-theme-btn--active{background:var(--dashboard-bg-card, white);box-shadow:0 1px 3px #0000001a;font-weight:600}.settings-install-row{display:flex;align-items:center;justify-content:space-between}.settings-install-info{display:flex;align-items:center;gap:8px}.settings-install-icon{color:var(--dashboard-navy, #2d4a6f)}.settings-install-label{font-size:15px;font-weight:500;color:var(--dashboard-navy, #2d4a6f)}.settings-install-btn{padding:8px 20px;border:none;border-radius:8px;background:var(--dashboard-primary, #58CC02);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s,transform .1s}.settings-install-btn:hover{background:#4cb801}.settings-install-btn:active{transform:scale(.97)}html[data-theme=dark] .settings-section{background:var(--dashboard-bg-card);border-color:var(--dashboard-border)}html[data-theme=dark] .settings-theme-toggle{background:rgba(200,180,160,.1)}html[data-theme=dark] .settings-theme-btn{color:var(--dashboard-text)}html[data-theme=dark] .settings-theme-btn--active{background:rgba(200,180,160,.2);box-shadow:0 1px 3px #0000004d}html[data-theme=dark] .logout-btn{border-color:#e07a5f4d}html[data-theme=dark] .settings-install-icon,html[data-theme=dark] .settings-install-label{color:var(--dashboard-text)}.settings-login__head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.settings-login__why{margin-left:auto;font-size:12px;color:var(--dashboard-text-muted, #6b7f97)}.settings-login__note{margin:0 0 10px;font-size:14px;line-height:1.5;color:var(--dashboard-navy, #2d4a6f)}.settings-login__row{display:flex;align-items:center;gap:10px;min-height:40px}.settings-login__row+.settings-login__row{border-top:1px solid var(--dashboard-border, #e6ebf1);margin-top:6px;padding-top:6px}.settings-login__label{flex:0 0 52px;font-size:14px;color:var(--dashboard-text-muted, #6b7f97)}.settings-login__value{flex:1;min-width:0;font-size:16px;font-weight:600;letter-spacing:.04em;font-variant-numeric:tabular-nums;color:var(--dashboard-navy, #2d4a6f);word-break:break-all}.settings-login__muted{flex:1;font-size:13px;font-weight:400;color:var(--dashboard-text-muted, #6b7f97)}.settings-login__eye{display:inline-grid;place-items:center;width:40px;height:40px;border:none;border-radius:10px;background:transparent;color:var(--dashboard-navy, #2d4a6f);cursor:pointer}.settings-login__eye:active{background:var(--dashboard-border, #e6ebf1)}.settings-login__link{border:none;background:transparent;color:var(--dashboard-primary, #58CC02);font-size:14px;font-weight:600;cursor:pointer;padding:6px 4px}.settings-login__edit{display:flex;flex-direction:column;gap:8px;margin-top:6px}.settings-login__input{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--dashboard-border, #d9e1ea);border-radius:10px;font-size:16px;letter-spacing:.04em;background:var(--dashboard-card, #fff);color:var(--dashboard-navy, #2d4a6f)}.settings-login__actions{display:flex;align-items:center;gap:10px}.settings-login__error{margin:0;font-size:13px;color:#c0392b}html[data-theme=dark] .settings-login__value,html[data-theme=dark] .settings-login__note,html[data-theme=dark] .settings-login__eye{color:var(--dashboard-text)}.settings-support__form{display:flex;flex-direction:column;gap:8px}.settings-support__label{font-size:14px;color:var(--dashboard-text-muted, #6b7f97)}.settings-support__text{width:100%;min-height:84px;padding:10px 12px;border:1px solid var(--dashboard-border, #d9e1ea);border-radius:10px;font:inherit;font-size:16px;line-height:1.4;resize:vertical;background:var(--dashboard-card, #fff);color:var(--dashboard-navy, #2d4a6f)}.settings-support__hint{font-size:12px;color:var(--dashboard-text-muted, #6b7f97)}.settings-support__done{text-align:center;padding:6px 0 2px}.settings-support__done-big{margin:0;font-size:20px;font-weight:800;color:var(--dashboard-navy, #2d4a6f)}.settings-support__done-sub{margin:2px 0 6px;font-size:14px;color:var(--dashboard-text-muted, #6b7f97)}html[data-theme=dark] .settings-support__done-big,html[data-theme=dark] .settings-support__text{color:var(--dashboard-text)}.settings-support__threads{list-style:none;margin:14px 0 0;padding:12px 0 0;border-top:1px solid var(--dashboard-border, #e6ebf1);display:flex;flex-direction:column;gap:12px}.settings-support__thread{display:flex;flex-direction:column;gap:6px}.settings-support__bubble{max-width:92%;padding:8px 12px;border-radius:14px;font-size:14px;line-height:1.45}.settings-support__bubble p{margin:2px 0 0;white-space:pre-wrap;word-break:break-word}.settings-support__bubble--me{align-self:flex-end;background:var(--dashboard-border, #e6ebf1);color:var(--dashboard-navy, #2d4a6f);border-bottom-right-radius:4px}.settings-support__bubble--them{align-self:flex-start;background:#E8F7DA;color:#1e2b3c;border-bottom-left-radius:4px}.settings-support__meta{display:block;font-size:11px;color:var(--dashboard-text-muted, #6b7f97)}.settings-support__pending{align-self:flex-start;font-size:12px;color:var(--dashboard-text-muted, #6b7f97)}html[data-theme=dark] .settings-support__bubble--me{color:var(--dashboard-text)}html[data-theme=dark] .settings-support__bubble--them{background:#24402A;color:var(--dashboard-text)}.settings-wecom__row{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-wecom__info{display:flex;align-items:center;gap:10px;min-width:0}.settings-wecom__icon{color:#07c160;flex:none}.settings-wecom__label{font-size:15px;font-weight:600}.settings-wecom__hint{font-size:12.5px;color:#6b7280;margin-top:2px}.settings-wecom__qr{width:96px;height:96px;border-radius:10px;border:1px solid #e5e7eb;background:#fff;flex:none}.video-message-list{display:flex;flex-direction:column;gap:12px;padding:16px 4px 0}.video-message-card{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:16px 20px;border-radius:16px;border:1px solid rgba(224,122,95,.35);background:linear-gradient(135deg,#fff1e8 0%,#ffe3d3 100%);box-shadow:0 2px 8px #e07a5f26;text-align:left;color:inherit;cursor:pointer;font-family:inherit;transition:transform .15s ease,box-shadow .15s ease}.video-message-card:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 14px #e07a5f38}.video-message-card:active:not(:disabled){transform:scale(.98) translateY(0)}.video-message-card:disabled{cursor:default;opacity:.75}.video-message-card.kept{background:var(--dashboard-bg-card, #fffcf7);border-color:#2d4a6f1f;box-shadow:0 1px 3px #2d4a6f0f}.video-message-card.kept .video-message-card-title{color:var(--dashboard-text, #2d4a6f);font-weight:500}.video-message-card.kept .video-message-card-play{background:rgba(45,74,111,.35);animation:none}.video-message-card-info{min-width:0}.video-message-card-title{font-size:17px;font-weight:600;color:#b3543a}.video-message-card-secondary{margin-top:4px;font-size:14px;color:#8a6a5c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.video-message-card-play{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:48px;height:48px;border-radius:50%;background:var(--dashboard-primary, #e07a5f);color:#fff;box-shadow:0 0 #e07a5f80;animation:video-message-pulse 2.2s ease-in-out infinite}@keyframes video-message-pulse{0%,to{box-shadow:0 0 #e07a5f73}50%{box-shadow:0 0 0 8px #e07a5f00}}@media (prefers-reduced-motion: reduce){.video-message-card-play{animation:none}}.video-message-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(20,16,14,.85)}.video-message-dialog{position:relative;display:flex;flex-direction:column;gap:12px;width:100%;max-width:560px;max-height:100%;overflow-y:auto;padding:20px;border-radius:20px;background:var(--dashboard-bg-card, #fffcf7);box-shadow:0 12px 40px #0000004d}.video-message-close{position:absolute;top:12px;right:12px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:rgba(45,74,111,.08);color:var(--dashboard-text, #2d4a6f);cursor:pointer}.video-message-heading{margin:0;padding-right:44px;font-size:18px;font-weight:700;color:var(--dashboard-text, #2d4a6f)}.video-message-title{margin:0;font-size:15px;line-height:1.5;color:var(--dashboard-text-secondary, #6b7f96);overflow-wrap:anywhere}.video-message-video{width:100%;max-height:60vh;border-radius:12px;background:#000}.video-message-error{padding:32px 16px;border-radius:12px;background:rgba(45,74,111,.06);text-align:center;font-size:15px;color:var(--dashboard-text-secondary, #6b7f96)}.video-message-done{display:flex;align-items:center;justify-content:center;width:100%;min-height:64px;border-radius:14px;background:rgba(45,74,111,.08);color:var(--dashboard-text-secondary, #6b7f96);font-size:15px;font-weight:600}.video-message-choices{display:flex;gap:12px}.video-message-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:1;min-height:64px;padding:8px 12px;border:none;border-radius:14px;font-family:inherit;cursor:pointer;transition:transform .12s ease}.video-message-choice:active:not(:disabled){transform:scale(.97)}.video-message-choice:disabled{opacity:.6;cursor:default}.video-message-choice.keep{background:rgba(45,74,111,.1);color:var(--dashboard-text, #2d4a6f)}.video-message-choice.delete{background:var(--dashboard-primary, #e07a5f);color:#fff}.video-message-choice-label{font-size:17px;font-weight:700}.video-message-choice-hint{font-size:12px;opacity:.75}.settings-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.3);z-index:1100;display:flex;align-items:flex-end;justify-content:center;animation:settings-sheet-fade-in .2s ease}@keyframes settings-sheet-fade-in{0%{opacity:0}to{opacity:1}}.settings-sheet-shell{position:relative;background:linear-gradient(180deg,#faf6f0 0%,#f5efe6 100%);border-radius:16px 16px 0 0;width:100%;max-width:400px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 -4px 24px #00000026;animation:settings-sheet-up .3s cubic-bezier(.34,1.56,.64,1)}@keyframes settings-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.settings-sheet-grabber{width:36px;height:4px;border-radius:2px;background:rgba(45,74,111,.2);margin:10px auto 4px;flex-shrink:0}.settings-sheet-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:env(safe-area-inset-bottom,0px)}html[data-theme=dark] .settings-sheet-overlay{background:rgba(0,0,0,.5)}html[data-theme=dark] .settings-sheet-shell{background:linear-gradient(180deg,#2a201a 0%,#221a14 100%);box-shadow:0 -4px 24px #0006}html[data-theme=dark] .settings-sheet-grabber{background:rgba(255,255,255,.15)}.paywall-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;justify-content:center;align-items:center;z-index:10000;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.paywall-content{background:white;border-radius:16px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d;animation:paywall-slide-up .3s ease-out}@keyframes paywall-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.paywall-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb}.paywall-header h2{margin:0;font-size:20px;color:#1f2937;font-weight:600}.paywall-close{background:none;border:none;font-size:28px;color:#9ca3af;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.paywall-close:hover{background:#f3f4f6;color:#374151}.paywall-body{padding:24px}.paywall-icon{font-size:64px;text-align:center;margin-bottom:16px}.paywall-title-mobile,.paywall-title-desktop{text-align:center;margin:0 0 20px;font-size:24px;color:#1f2937;font-weight:600}.paywall-message{text-align:center;font-size:16px;color:#4b5563;margin-bottom:24px;line-height:1.6}.paywall-product-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:20px;margin-bottom:20px}.paywall-product-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.paywall-product-header h3{margin:0;font-size:18px;color:#1f2937;font-weight:600}.paywall-price{font-size:24px;font-weight:700;color:#dc2626}.paywall-product-desc{margin:0 0 16px;font-size:14px;color:#6b7280}.paywall-btn-wechat{width:100%;background:#07C160;color:#fff;border:none;border-radius:8px;padding:14px 24px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .2s;box-shadow:0 2px 8px #07c1604d}.paywall-btn-wechat:hover{background:#06AD56}.paywall-btn-wechat:active{transform:scale(.98)}.paywall-wechat-icon{font-size:20px}.paywall-hint{text-align:center;font-size:12px;color:#9ca3af;margin:8px 0 0}.paywall-poster-container{margin:20px 0;text-align:center}.paywall-poster{max-width:100%;height:auto;border-radius:12px;box-shadow:0 4px 12px #0000001a}.paywall-instructions{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:16px;margin:20px 0}.paywall-instructions h3{margin:0 0 12px;font-size:16px;color:#0369a1;font-weight:600}.paywall-instructions ol{margin:0;padding-left:20px}.paywall-instructions li{margin:8px 0;font-size:14px;color:#374151;line-height:1.6}.paywall-instructions li strong{color:#1f2937}.paywall-btn-copy{width:100%;background:#3b82f6;color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s;margin-bottom:12px}.paywall-btn-copy:hover{background:#2563eb}.paywall-btn-copy:active{transform:scale(.98)}.paywall-copy-success{text-align:center;color:#059669;font-size:14px;margin:8px 0;font-weight:500}.paywall-link-display{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:12px;margin:16px 0}.paywall-link-label{font-size:12px;color:#6b7280;margin:0 0 8px}.paywall-link{font-size:12px;color:#3b82f6;word-break:break-all;margin:0;font-family:monospace}.paywall-link-clickable{text-decoration:none;cursor:pointer}.paywall-link-clickable:hover{text-decoration:underline}.paywall-info{text-align:center;padding:12px;background:#fef3c7;border-radius:8px;margin-top:16px}.paywall-info p{margin:0;font-size:13px;color:#92400e}.paywall-footer{padding:16px 24px;border-top:1px solid #e5e7eb;text-align:center}.paywall-btn-cancel{background:#f3f4f6;color:#6b7280;border:none;border-radius:8px;padding:10px 24px;font-size:14px;cursor:pointer;transition:background .2s}.paywall-btn-cancel:hover{background:#e5e7eb;color:#374151}@media (max-width: 640px){.paywall-overlay{padding:0}.paywall-content{max-width:100%;max-height:100vh;border-radius:16px 16px 0 0;margin-top:auto}.paywall-header{padding:16px 20px}.paywall-body{padding:20px}.paywall-icon{font-size:48px;margin-bottom:12px}.paywall-title-mobile,.paywall-title-desktop{font-size:20px;margin-bottom:16px}.paywall-poster{max-width:100%;border-radius:8px}.paywall-instructions{padding:12px}.paywall-instructions h3{font-size:14px}.paywall-instructions li{font-size:13px;margin:6px 0}.paywall-btn-wechat,.paywall-btn-copy{padding:12px 20px;font-size:15px}}@media (min-width: 641px){.paywall-body-desktop{padding:32px}.paywall-poster{max-width:400px}}.paywall-content{-webkit-overflow-scrolling:touch}.paywall-btn-wechat:focus,.paywall-btn-copy:focus,.paywall-btn-cancel:focus,.paywall-close:focus{outline:2px solid #3b82f6;outline-offset:2px}html[data-theme=dark] .paywall-content{background:var(--dashboard-bg-card);box-shadow:0 10px 40px #0006}html[data-theme=dark] .paywall-header{border-bottom-color:var(--dashboard-border)}html[data-theme=dark] .paywall-header h2{color:var(--dashboard-text)}html[data-theme=dark] .paywall-close{color:var(--dashboard-text-muted)}html[data-theme=dark] .paywall-close:hover{background:rgba(255,255,255,.1);color:var(--dashboard-text)}html[data-theme=dark] .paywall-title-mobile,html[data-theme=dark] .paywall-title-desktop{color:var(--dashboard-text)}html[data-theme=dark] .paywall-message{color:var(--dashboard-text-secondary)}html[data-theme=dark] .paywall-product-card{background:rgba(255,255,255,.05);border-color:var(--dashboard-border)}html[data-theme=dark] .paywall-product-header h3{color:var(--dashboard-text)}html[data-theme=dark] .paywall-product-desc,html[data-theme=dark] .paywall-hint{color:var(--dashboard-text-muted)}html[data-theme=dark] .paywall-instructions{background:rgba(14,165,233,.1);border-color:#0ea5e94d}html[data-theme=dark] .paywall-instructions h3{color:#38bdf8}html[data-theme=dark] .paywall-instructions li{color:var(--dashboard-text-secondary)}html[data-theme=dark] .paywall-instructions li strong{color:var(--dashboard-text)}html[data-theme=dark] .paywall-link-display{background:rgba(255,255,255,.05);border-color:var(--dashboard-border)}html[data-theme=dark] .paywall-link-label{color:var(--dashboard-text-muted)}html[data-theme=dark] .paywall-info{background:rgba(251,191,36,.15)}html[data-theme=dark] .paywall-info p{color:#fbbf24}html[data-theme=dark] .paywall-footer{border-top-color:var(--dashboard-border)}html[data-theme=dark] .paywall-btn-cancel{background:rgba(255,255,255,.1);color:var(--dashboard-text-secondary)}html[data-theme=dark] .paywall-btn-cancel:hover{background:rgba(255,255,255,.15);color:var(--dashboard-text)}.signin-prompt-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.signin-prompt-content{background:white;border-radius:12px;padding:0;max-width:400px;width:90%;max-height:90vh;overflow:auto;box-shadow:0 10px 40px #0003;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.signin-prompt-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #eee}.signin-prompt-header h2{margin:0;font-size:20px;color:#333}.signin-prompt-close{background:none;border:none;font-size:28px;color:#999;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.signin-prompt-close:hover{background:#f5f5f5;color:#333}.signin-prompt-body{padding:32px 24px;text-align:center}.signin-prompt-icon{font-size:48px;margin-bottom:16px}.signin-prompt-message{margin:0 0 24px;font-size:16px;color:#666;line-height:1.5}.signin-prompt-instruction{background:#f8f9fa;border-radius:8px;padding:16px;margin-top:16px}.signin-prompt-instruction p{margin:0;font-size:14px;color:#333}.signin-prompt-instruction strong{color:#4caf50;font-weight:600}.signin-prompt-arrow{font-size:24px;margin-top:8px;animation:bounceArrow 2s infinite}@keyframes bounceArrow{0%,to{transform:translate(0)}25%{transform:translate(3px,-3px)}50%{transform:translate(0)}75%{transform:translate(3px,-3px)}}.signin-prompt-footer{padding:20px 24px;border-top:1px solid #eee;display:flex;justify-content:center}.signin-prompt-btn-ok{padding:10px 32px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none;background:#4CAF50;color:#fff}.signin-prompt-btn-ok:hover{background:#45a049}html[data-theme=dark] .signin-prompt-overlay{background:rgba(0,0,0,.6)}html[data-theme=dark] .signin-prompt-content{background:var(--dashboard-bg-card);box-shadow:0 10px 40px #0006}html[data-theme=dark] .signin-prompt-header{border-bottom-color:var(--dashboard-border)}html[data-theme=dark] .signin-prompt-header h2{color:var(--dashboard-text)}html[data-theme=dark] .signin-prompt-close{color:var(--dashboard-text-muted)}html[data-theme=dark] .signin-prompt-close:hover{background:rgba(255,255,255,.1);color:var(--dashboard-text)}html[data-theme=dark] .signin-prompt-message{color:var(--dashboard-text-secondary)}html[data-theme=dark] .signin-prompt-instruction{background:rgba(255,255,255,.05)}html[data-theme=dark] .signin-prompt-instruction p{color:var(--dashboard-text)}html[data-theme=dark] .signin-prompt-footer{border-top-color:var(--dashboard-border)}@media (max-width: 480px){.signin-prompt-content{width:95%;margin:20px}.signin-prompt-header{padding:16px 20px}.signin-prompt-body{padding:24px 20px}.signin-prompt-footer{padding:16px 20px}}:root{--font-display: "ZCOOL KuaiLe", "Comic Neue", cursive;--font-body: "Noto Sans SC", "PingFang SC", -apple-system, BlinkMacSystemFont, sans-serif;--dashboard-bg: #fef9f3;--dashboard-bg-card: #fffcf7;--dashboard-primary: #e07a5f;--dashboard-primary-dark: #c65d42;--dashboard-primary-light: #f4a89a;--dashboard-navy: #2d4a6f;--dashboard-navy-light: #4a6a8f;--dashboard-gold: #f2a541;--dashboard-gold-light: #fcd89d;--dashboard-gold-dark: #d4892a;--dashboard-success: #87a878;--dashboard-success-light: #d4e5c9;--dashboard-success-dark: #6b8a5e;--mastery-1: #c9a87c;--mastery-1-shadow: #a8896c;--mastery-2: #87a878;--mastery-2-shadow: #6b8a5e;--mastery-3: #7eb8c9;--mastery-3-shadow: #5a9aae;--mastery-4: #e07a5f;--mastery-4-shadow: #c65d42;--dashboard-text: #3d3d3d;--dashboard-text-secondary: #6b7280;--dashboard-text-muted: #9ca3af;--dashboard-shadow: 0 2px 8px rgba(45, 74, 111, .08);--dashboard-shadow-hover: 0 4px 16px rgba(45, 74, 111, .12);--dashboard-border: rgba(45, 74, 111, .1);--paper-texture: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E")}html[data-theme=dark]{--dashboard-bg: #1c1410;--dashboard-bg-card: #2a201a;--dashboard-primary: #e8927a;--dashboard-primary-dark: #d4785e;--dashboard-primary-light: #f4a89a;--dashboard-navy: #c4b8a8;--dashboard-navy-light: #d4c8b8;--dashboard-gold: #f2a541;--dashboard-gold-light: #5c4520;--dashboard-gold-dark: #f0a030;--dashboard-success: #9dbd8e;--dashboard-success-light: #2a3a22;--dashboard-success-dark: #7ea06e;--mastery-1: #c9a87c;--mastery-1-shadow: #a8896c;--mastery-2: #9dbd8e;--mastery-2-shadow: #7ea06e;--mastery-3: #7eb8c9;--mastery-3-shadow: #5a9aae;--mastery-4: #e8927a;--mastery-4-shadow: #d4785e;--dashboard-text: #e8ddd0;--dashboard-text-secondary: #b0a494;--dashboard-text-muted: #8a7e70;--dashboard-shadow: 0 2px 8px rgba(0, 0, 0, .3);--dashboard-shadow-hover: 0 4px 16px rgba(0, 0, 0, .4);--dashboard-border: rgba(200, 180, 160, .12);--paper-texture: none;color-scheme:dark}*{margin:0;padding:0;box-sizing:border-box}html{height:-webkit-fill-available}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--dashboard-bg, #fef9f3);color:var(--dashboard-text, #3d3d3d);min-height:100vh;min-height:-webkit-fill-available}#root{min-height:100vh;min-height:-webkit-fill-available}.container{max-width:1200px;margin:0 auto;padding:0 1rem}.qr-page>.container{padding-bottom:60px}.header{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:2rem 0;margin-bottom:2rem}.header h1{font-size:2.5rem;font-weight:700;text-align:center;margin-bottom:.5rem}.header p{text-align:center;opacity:.9;font-size:1.1rem}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e2e8f0;margin-bottom:8px}.clickable{cursor:pointer;border-radius:6px;transition:background-color .2s}.header-left{display:flex;align-items:center;gap:8px}.header-right{display:flex;align-items:center}.filter-bar{padding:12px 0;background:transparent;border-bottom:1px solid #e2e8f0;margin-bottom:1rem}.filter-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.results-count-compact{display:flex;align-items:center;min-width:40px}.count-number{background:#3b82f6;color:#fff;padding:6px 12px;border-radius:20px;font-weight:700;font-size:14px}.needs-attention-compact{margin-right:auto}.filter-icons-row{display:flex;gap:8px;align-items:center}.filter-icon-group{position:relative}.filter-icon-btn{width:36px;height:36px;border-radius:8px;border:1.5px solid #e2e8f0;background:white;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;position:relative;color:#64748b}.filter-icon-btn:hover{background:#f1f5f9;border-color:#cbd5e1;color:#475569}.filter-icon-btn:active{background:#e2e8f0}.filter-indicator{position:absolute;top:2px;right:2px;color:#3b82f6;font-size:12px;line-height:1}.filter-dropdown{position:absolute;top:calc(100% + 4px);right:0;background:white;border:1.5px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;z-index:100;min-width:180px;padding:8px}.filter-dropdown .filter-select,.filter-dropdown .filter-date{width:100%;min-width:unset;border:1px solid #e2e8f0;padding:6px 10px;font-size:13px}.filter-group{display:flex;align-items:center;gap:8px;position:relative}.filter-icon{color:#64748b}.filter-select,.filter-date{padding:8px 12px;border-radius:8px;border:1.5px solid #e2e8f0;background-color:#fff;font-size:14px;font-weight:500;color:#1e293b;cursor:pointer;outline:none;min-width:120px}.clear-btn{padding:6px 12px;border-radius:6px;border:none;background-color:#ef4444;color:#fff;font-size:13px;font-weight:500;cursor:pointer;outline:none}.results-count{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:14px;color:#64748b}.count-badge{background:#64748b;color:#fff;padding:4px 10px;border-radius:12px;font-weight:600;font-size:13px}@media (max-width: 768px){.filter-bar{padding:10px 16px}.filter-row{gap:12px}.count-number{padding:4px 10px;font-size:13px}.filter-icon-btn{width:32px;height:32px}.filter-dropdown{min-width:160px}.filter-select,.filter-date{min-width:100px;font-size:13px}}.modern-header{background:linear-gradient(135deg,#4f46e5 0%,#06b6d4 100%);color:#fff;padding:3rem 0;margin-bottom:2rem;position:relative;overflow:hidden}.modern-header:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="50" cy="50" r="1" fill="white" opacity="0.1"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>');pointer-events:none}.header-content{display:flex;align-items:center;justify-content:space-between;gap:2rem;position:relative;z-index:1}.header-text{flex:1}.modern-title{font-size:2.75rem;font-weight:800;margin-bottom:.75rem;background:linear-gradient(45deg,#ffffff,#e0f2fe);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;line-height:1.1}.modern-subtitle{font-size:1.25rem;opacity:.9;font-weight:400;line-height:1.5}.header-icon{display:flex;align-items:center;justify-content:center}.header-icon-svg{opacity:.8;filter:drop-shadow(0 4px 8px rgba(0,0,0,.1))}@media (max-width: 768px){.header-content{flex-direction:column;text-align:center}.modern-title{font-size:2.25rem}.modern-subtitle{font-size:1.1rem}}.empty-state{min-height:20vh;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:800px;margin:0 auto}.empty-icon{display:inline-flex;align-items:center;justify-content:center;width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,#e0f2fe 0%,#f0f9ff 100%);color:#0ea5e9;margin-bottom:2rem}.empty-title{font-size:2rem;font-weight:700;color:#1e293b;margin-bottom:1rem}.empty-description{font-size:1.125rem;color:#64748b;margin-bottom:3rem;line-height:1.6}.getting-started{background:#f8fafc;border-radius:16px;padding:2.5rem;margin-top:2rem;border:1px solid #e2e8f0}.guide-title{font-size:1.5rem;font-weight:600;color:#1e293b;margin-bottom:2rem;text-align:center}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:3rem}.step-card{background:white;border-radius:12px;padding:1.5rem;border:1px solid #e2e8f0;transition:all .2s ease;box-shadow:0 1px 3px #0000001a}.step-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026;border-color:#3b82f6}.step-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:12px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;margin-bottom:1rem}.step-title{font-size:1.125rem;font-weight:600;color:#1e293b;margin-bottom:.5rem}.step-description{color:#64748b;line-height:1.5;font-size:.9rem}.demo-section{background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-radius:12px;padding:2rem;border:2px dashed #0ea5e9}.demo-text{color:#0c4a6e;margin-bottom:1.5rem;font-size:1rem}.demo-qr{display:flex;justify-content:center}.demo-link{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;background:white;border-radius:12px;text-decoration:none;color:#0ea5e9;transition:all .2s ease;border:2px solid #0ea5e9}.demo-link:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0ea5e933;background:#0ea5e9;color:#fff}.demo-label{font-weight:600;font-size:.9rem}.reset-filters-btn{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;border-radius:8px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:1rem}.reset-filters-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.teacher-feedback{margin-top:1rem}.feedback-divider{height:2px;background:linear-gradient(90deg,#e2e8f0 0%,#3b82f6 50%,#e2e8f0 100%);margin:1.5rem 0 1rem;border-radius:1px}.feedback-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.audio-item-card-modern{background:white;border-radius:16px;padding:0;margin-bottom:2rem;box-shadow:0 2px 8px #00000014,0 1px 4px #0000000f;border:2px solid #e2e8f0;overflow:hidden;transition:all .3s ease}.audio-item-card-modern:hover{box-shadow:0 4px 6px #0000000d,0 10px 25px #00000014;transform:translateY(-2px)}.card-header-modern{padding:1.25rem 1.5rem;background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center}.submission-type-badge{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:1rem;color:#334155}.sentence-tag{background:#e0e7ff;color:#4338ca;padding:.125rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.pass-fail-controls-modern{display:flex;gap:.75rem}.rating-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:2px solid;border-radius:8px;cursor:pointer;transition:all .3s ease;position:relative}.rating-pass{background:#f0fdf4;border-color:#22c55e;color:#16a34a}.rating-pass:hover{background:#dcfce7;transform:translateY(-1px)}.rating-pass.active{background:#22c55e;color:#fff;box-shadow:0 4px 12px #22c55e4d;transform:scale(1.05);border-color:#22c55e}.rating-pass.active:after{content:"✓";position:absolute;top:-8px;right:-8px;background:#059669;color:#fff;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;border:2px solid white}.rating-fail{background:#fef2f2;border-color:#f97316;color:#ea580c}.rating-fail:hover{background:#fed7aa;transform:translateY(-1px)}.rating-fail.active{background:#f97316;color:#fff;box-shadow:0 4px 12px #f973164d;transform:scale(1.05);border-color:#f97316}.rating-fail.active:after{content:"!";position:absolute;top:-8px;right:-8px;background:#dc2626;color:#fff;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;border:2px solid white}.rating-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.audio-section-modern{padding:1.5rem;background:white}.audio-player-modern{width:100%;border-radius:12px;outline:none;margin-bottom:1rem}.submission-meta{display:flex;align-items:center;gap:1rem}.meta-item{display:flex;align-items:center;gap:.5rem;color:#64748b;font-size:.875rem}.feedback-section-modern{border-top:1px solid #e2e8f0;background:#fafafa}.feedback-section-modern.feedback-pass{background:linear-gradient(135deg,#f0fdf4 0%,#f7fee7 100%);border-top-color:#22c55e}.feedback-section-modern.feedback-fail{background:linear-gradient(135deg,#fef2f2 0%,#fff7ed 100%);border-top-color:#f97316}.feedback-section-modern.feedback-pending{background:linear-gradient(135deg,#fafafa 0%,#f1f5f9 100%)}.feedback-form-modern{padding:1.5rem}.existing-feedback-modern{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1rem;margin-bottom:1rem}.existing-feedback-modern p{margin:0;color:#374151;font-size:.9rem;line-height:1.5}.feedback-form-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.form-title{font-size:1.1rem;font-weight:600;color:#334155}.success-indicator{display:flex;align-items:center;gap:.25rem;color:#22c55e;font-size:.875rem;font-weight:500;margin-left:auto}.feedback-textarea-modern{width:100%;padding:.875rem;border:2px solid #e2e8f0;border-radius:12px;font-size:.9rem;line-height:1.5;resize:vertical;transition:border-color .2s ease;font-family:inherit;min-height:80px}.feedback-textarea-modern:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.feedback-actions-modern{display:flex;gap:.75rem;margin-top:1rem}.submit-feedback-btn-modern{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);color:#fff;border:none;border-radius:10px;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #3b82f64d}.submit-feedback-btn-modern:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #3b82f666}.submit-feedback-btn-modern:disabled{background:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.cancel-feedback-btn-modern{padding:.875rem 1.5rem;background:#f8fafc;color:#64748b;border:2px solid #e2e8f0;border-radius:10px;font-weight:600;cursor:pointer;transition:all .2s ease}.cancel-feedback-btn-modern:hover{background:#f1f5f9;border-color:#cbd5e1}.feedback-display-modern{padding:1.5rem}.feedback-header-modern{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.feedback-title{font-size:1.1rem;font-weight:600;color:#334155}.feedback-content-modern{background:white;border:1px solid #e2e8f0;border-radius:12px;padding:1.25rem;margin-bottom:1rem}.feedback-content-modern p{margin:0;line-height:1.6;color:#374151}.feedback-empty-modern{margin-bottom:1rem}.empty-state{text-align:center;padding:1rem .75rem;color:#64748b}.empty-icon{font-size:1.25rem;margin-bottom:.25rem}.empty-state p{font-weight:500;margin:.25rem 0;color:#374151;font-size:.9rem}.empty-state span{font-size:.8rem;color:#64748b}.add-feedback-btn-modern{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:1rem;background:white;border:2px dashed #cbd5e1;border-radius:12px;color:#64748b;font-weight:600;cursor:pointer;transition:all .2s ease}.add-feedback-btn-modern:hover{border-color:#3b82f6;color:#3b82f6;background:#f8fafc}.add-feedback-btn-modern.urgent{border-color:#f97316;color:#ea580c;background:#fff7ed;animation:pulse-urgent-modern 2s infinite}@keyframes pulse-urgent-modern{0%,to{box-shadow:0 0 #f973164d}50%{box-shadow:0 0 0 8px #f9731600}}.loading-spinner{width:18px;height:18px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.feedback-readonly{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1rem;margin-bottom:1rem}.feedback-readonly p{margin:0;color:#374151;line-height:1.5}.feedback-submitted-note{display:flex;align-items:center;gap:.5rem;color:#059669;font-size:.875rem;font-weight:500;padding:.5rem;background:#f0fdf4;border-radius:6px;border:1px solid #bbf7d0}.save-feedback-btn.primary-action{background:linear-gradient(135deg,#059669 0%,#047857 100%);color:#fff;font-weight:600;font-size:1rem;padding:.75rem 1.5rem;border-radius:8px;border:none;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #0596694d}.save-feedback-btn.primary-action:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #05966966}.save-feedback-btn.primary-action:disabled{background:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.edit-feedback-btn.urgent-feedback{background:linear-gradient(135deg,#dc2626 0%,#b91c1c 100%);color:#fff;font-weight:600;animation:pulse-urgent 2s infinite;box-shadow:0 4px 12px #dc26264d}@keyframes pulse-urgent{0%,to{transform:scale(1);box-shadow:0 4px 12px #dc26264d}50%{transform:scale(1.02);box-shadow:0 6px 20px #dc262666}}.feedback-title{font-size:1rem;font-weight:600;color:#3b82f6;margin:0;display:flex;align-items:center;gap:.5rem}.feedback-status{padding:.375rem .75rem;border-radius:20px;font-size:.875rem;font-weight:600;display:flex;align-items:center;gap:.25rem}.feedback-status.pass{background:#dcfce7;color:#166534}.feedback-status.fail{background:#fed7aa;color:#9a3412}.feedback-content{background:#f8fafc;border-radius:8px;padding:1rem;border:3px solid #e2e8f0;transition:border-color .2s ease}.feedback-content.feedback-pass{border-color:#166534;background:#f0fdf4}.feedback-content.feedback-fail{border-color:#ea580c;background:#fff7ed}.feedback-text{font-size:.95rem;color:#374151;line-height:1.5;margin:0 0 .75rem;font-style:italic}.feedback-time{font-size:.8rem;color:#64748b;text-align:right}.feedback-time span{background:rgba(59,130,246,.1);padding:.25rem .5rem;border-radius:4px}.vocab-step{padding:0}.vocab-container{max-width:800px;margin:0 auto;padding:0}.vocab-header{text-align:center;margin:1rem 0 2rem}.vocab-title{font-size:1.75rem;font-weight:700;color:#1e293b;margin-bottom:.5rem}.vocab-instructions{color:#64748b}.vocab-recording-tip{color:#f97316;font-size:.875rem;margin:.5rem 0 0;font-weight:500}.vocab-audio-section{margin-bottom:2rem;text-align:center}.audio-tip{color:#64748b;font-size:.875rem;margin:0 0 .5rem;text-align:center}.vocab-submissions-section{margin-bottom:2rem}.submissions-title{font-size:1.125rem;font-weight:600;color:#1e293b;margin-bottom:1rem}.vocab-submission-item{border-left:4px solid #e5e7eb;padding-left:1rem;margin-bottom:1.5rem;position:relative}.vocab-submission-item:last-child{margin-bottom:0}.vocab-submission-item:has(.feedback-pass){border-left-color:#10b981}.vocab-submission-item:has(.feedback-fail){border-left-color:#ef4444}.vocab-submission-item:has(.feedback-pending){border-left-color:#f59e0b}.vocab-card{background:white;border-radius:12px;border:1px solid #e2e8f0;margin-bottom:1.5rem;overflow:hidden;box-shadow:0 1px 3px #0000001a;transition:all .2s ease}.vocab-card:hover{box-shadow:0 4px 12px #00000026}.vocab-card .card-header{background:#f8fafc;padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between}.vocab-card .card-title{font-size:1.125rem;font-weight:600;color:#1e293b;margin:0;display:flex;align-items:center;gap:.5rem}.vocab-card .card-content{padding:1.25rem}.original-audio-card{border-color:#3b82f6}.original-audio-card .card-header{background:linear-gradient(135deg,#eff6ff 0%,#dbeafe 100%);border-bottom-color:#3b82f6}.audio-tip{margin-top:.75rem;color:#64748b;font-size:.875rem;font-style:italic}.submission-card{min-height:160px}.submission-time{font-size:.75rem;color:#64748b;background:white;padding:.25rem .5rem;border-radius:6px}.submission-audio{display:flex;flex-direction:column;gap:1rem}.resubmit-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.25rem;background:linear-gradient(135deg,#fb923c 0%,#f97316 100%);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.resubmit-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #fb923c4d}.record-tip{margin-top:.75rem;color:#64748b;font-size:.875rem;text-align:center}.record-tip-small{font-size:.8rem;color:#fff;margin:.25rem 0 0;text-align:center}.retry-record-btn span{font-size:1rem;font-weight:600}.loading-state{text-align:center;color:#64748b;padding:2rem}.feedback-card{border-width:3px}.feedback-card.feedback-pass{border-color:#166534;background:#f0fdf4}.feedback-card.feedback-fail{border-color:#ea580c;background:#fff7ed}.feedback-card .card-header{background:transparent}.feedback-card.feedback-pass .card-header{background:#dcfce7;border-bottom-color:#166534}.feedback-card.feedback-fail .card-header{background:#fed7aa;border-bottom-color:#ea580c}.feedback-card .feedback-text{font-size:1rem;line-height:1.6;color:#374151;margin:0}.feedback-action{margin-top:1rem;padding-top:1rem;border-top:1px dashed #cbd5e1}.retry-message{color:#ea580c;font-size:.875rem;font-weight:500;margin:0}.recording-submission{border:1px solid #e2e8f0;border-radius:8px;padding:1rem;margin-bottom:1rem;background:#fafafa}.recording-submission:last-child{margin-bottom:0}.submission-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.submission-number{font-weight:600;color:#374151;font-size:.875rem}.submission-time{font-size:.75rem;color:#64748b;background:white;padding:.25rem .5rem;border-radius:4px}.feedback-status-small{font-size:1.25rem}.submission-audio{margin-bottom:.75rem}.inline-feedback{margin-top:.75rem;padding:.875rem;border-radius:6px;border:2px solid #e2e8f0}.inline-feedback.feedback-pass{border-color:#166534;background:#f0fdf4}.inline-feedback.feedback-fail{border-color:#ea580c;background:#fff7ed}.inline-feedback.sentence-feedback{border:none;padding:.5rem 0}.inline-feedback.sentence-feedback.feedback-pass,.inline-feedback.sentence-feedback.feedback-fail{background:transparent}.feedback-header-inline{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.feedback-title-inline{font-size:.875rem;font-weight:600;color:#3b82f6}.inline-feedback .feedback-text{font-size:.875rem;line-height:1.5;color:#374151;margin:0;font-style:italic}.resubmit-section{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed #cbd5e1;text-align:center}@media (max-width: 768px){.vocab-container{padding:0}.vocab-header{margin:.5rem 0 1rem}.vocab-card{margin-bottom:1rem}.vocab-card .card-header{padding:.875rem 1rem}.vocab-card .card-content{padding:1rem}}.sentence-feedback{margin-top:1rem}.sentence-feedback .feedback-divider{margin:1rem 0 .75rem}.sentence-feedback .feedback-content.feedback-pass{border-color:#166534;background:#f0fdf4}.sentence-feedback .feedback-content.feedback-fail{border-color:#ea580c;background:#fff7ed}.sentence-feedback .feedback-title{color:#8b5cf6}.feedback-feed{max-width:800px;margin:0 auto}.feedback-day{margin-bottom:2.5rem}.day-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding:.75rem 0;border-bottom:2px solid #e2e8f0}.day-title{font-size:1.25rem;font-weight:600;color:#1e293b;margin:0}.day-count{background:#f1f5f9;color:#475569;padding:.375rem .75rem;border-radius:20px;font-size:.875rem;font-weight:500}.feedback-list{display:flex;flex-direction:column;gap:1rem}.feedback-card{display:block;text-decoration:none;background:white;border:1px solid #e2e8f0;border-radius:12px;padding:1.25rem;transition:all .2s ease;box-shadow:0 1px 3px #0000001a}.feedback-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000026;border-color:#3b82f6}.feedback-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.feedback-lesson{display:flex;align-items:center;gap:.75rem}.lesson-badge{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600}.lesson-type{color:#64748b;font-size:.875rem;font-weight:500}.feedback-badge{padding:.25rem .625rem;border-radius:20px;font-size:.75rem;font-weight:600;display:flex;align-items:center;gap:.25rem}.feedback-badge.pass{background:#dcfce7;color:#166534}.feedback-badge.fail{background:#fed7aa;color:#9a3412}.feedback-preview{margin-bottom:1rem}.feedback-text-preview{color:#374151;line-height:1.6;margin:0;font-style:italic;background:#f8fafc;padding:.875rem;border-radius:8px;border-left:4px solid #3b82f6}.feedback-card-footer{display:flex;align-items:center;justify-content:space-between;font-size:.875rem}.feedback-time{color:#64748b;background:#f1f5f9;padding:.25rem .5rem;border-radius:6px}.view-details{display:flex;align-items:center;gap:.375rem;color:#3b82f6;font-weight:500;transition:color .2s ease}.feedback-card:hover .view-details{color:#1d4ed8}@media (max-width: 768px){.feedback-card{padding:1rem}.feedback-card-header{flex-direction:column;align-items:flex-start;gap:.5rem}.feedback-lesson{width:100%}.day-header{flex-direction:column;align-items:flex-start;gap:.5rem}.day-title{font-size:1.125rem}}@media (max-width: 768px){.empty-title{font-size:1.5rem}.empty-description{font-size:1rem}.getting-started{padding:1.5rem}.steps-grid{grid-template-columns:1fr;gap:1rem}.step-card{padding:1rem}.demo-section{padding:1.5rem}}.homework-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem}.homework-card{background:white;border-radius:12px;padding:1.5rem;box-shadow:0 4px 6px -1px #0000001a;transition:all .3s ease;border:1px solid #e2e8f0}.homework-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px -3px #0000001a}.homework-card h3{color:#1e293b;font-size:1.25rem;font-weight:600;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.homework-number{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem}.file-list{list-style:none;margin-top:1rem}.file-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;margin-bottom:.5rem;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0;transition:all .2s ease}.file-item:hover{background:#f1f5f9;border-color:#cbd5e1}.file-icon{width:20px;height:20px;color:#64748b}.file-info{flex:1}.file-name{font-weight:500;color:#1e293b;margin-bottom:.25rem}.file-status{font-size:.875rem;color:#64748b}.status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.status-submitted{background:#dcfce7;color:#166534}.status-pending{background:#fef3c7;color:#92400e}.status-completed{background:#dbeafe;color:#1e40af}.homework-detail{background:white;border-radius:12px;padding:2rem;box-shadow:0 4px 6px -1px #0000001a;margin-bottom:2rem}.back-button{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#64748b;color:#fff;text-decoration:none;border-radius:8px;font-weight:500;transition:all .2s ease;margin-bottom:1.5rem}.back-button:hover{background:#475569;transform:translateY(-1px)}.file-section{margin-bottom:2rem;padding:1.5rem;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.file-section h4{color:#1e293b;font-size:1.125rem;font-weight:600;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.audio-player{width:100%;margin-top:1rem}.text-content{background:white;padding:1rem;border-radius:6px;border:1px solid #e2e8f0;white-space:pre-wrap;line-height:1.6;color:#374151}.loading{text-align:center;padding:2rem;color:#64748b}.error{text-align:center;padding:2rem;color:#dc2626;background:#fef2f2;border-radius:8px;margin:1rem 0}.performance-showcase{margin-bottom:3rem}.main-video-section{background:white;border-radius:12px;padding:2rem;box-shadow:0 4px 6px -1px #0000001a;margin-bottom:2rem}.video-container{position:relative;width:100%;height:400px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:12px;overflow:hidden;margin-bottom:1.5rem}.video-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#fff;text-align:center}.video-placeholder p{margin:1rem 0 .5rem;font-size:1.25rem;font-weight:600}.video-placeholder small{opacity:.8}.video-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.8));padding:2rem;color:#fff;pointer-events:none}.performance-info h2{font-size:1.5rem;margin-bottom:.5rem}.student-info{display:flex;gap:1rem;margin-bottom:1rem}.student-name{font-weight:600;font-size:1.1rem}.student-age{opacity:.9}.performance-description{line-height:1.6;opacity:.95}.performance-stats{display:flex;gap:2rem;margin-bottom:2rem;padding:1rem;background:#f8fafc;border-radius:8px}.stat-item{display:flex;align-items:center;gap:.5rem;font-weight:500}.share-section{text-align:center}.share-section h3{margin-bottom:1rem;color:#1e293b}.share-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.share-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease;color:#fff}.share-btn.facebook{background:#1877f2}.share-btn.twitter{background:#1da1f2}.share-btn.wechat{background:#07c160}.share-btn.native{background:#64748b}.share-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.other-performances{background:white;border-radius:12px;padding:2rem;box-shadow:0 4px 6px -1px #0000001a}.other-performances h3{margin-bottom:1.5rem;color:#1e293b}.performance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.performance-card{border:2px solid #e2e8f0;border-radius:8px;overflow:hidden;cursor:pointer;transition:all .3s ease}.performance-card:hover{border-color:#3b82f6;transform:translateY(-2px);box-shadow:0 8px 25px #0000001a}.performance-card.active{border-color:#3b82f6;background:#f0f9ff}.performance-thumbnail{position:relative;height:160px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);display:flex;align-items:center;justify-content:center}.thumbnail-placeholder{color:#fff;text-align:center}.duration{position:absolute;bottom:.5rem;right:.5rem;background:rgba(0,0,0,.7);color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.75rem}.performance-details{padding:1rem}.performance-details h4{margin-bottom:.5rem;color:#1e293b}.performance-details .student-name{color:#64748b;font-size:.875rem;margin-bottom:.25rem}.performance-details .topic{color:#3b82f6;font-size:.875rem;margin-bottom:.75rem}.performance-meta{display:flex;gap:1rem;font-size:.75rem;color:#64748b}.program-info{background:white;border-radius:12px;padding:2rem;box-shadow:0 4px 6px -1px #0000001a;margin-bottom:2rem}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem}.info-card{text-align:center;padding:1.5rem}.info-icon{margin-bottom:1rem}.info-card h3{margin-bottom:1rem;color:#1e293b}.info-card p{color:#64748b;line-height:1.6}.contact-section{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border-radius:12px;padding:3rem 2rem;margin-bottom:2rem}.contact-content{display:grid;grid-template-columns:2fr 1fr;gap:3rem;align-items:center}.contact-info h2{margin-bottom:1rem;font-size:1.75rem}.contact-info p{margin-bottom:2rem;opacity:.9;line-height:1.6}.contact-methods{display:flex;flex-direction:column;gap:1rem}.contact-method{display:flex;align-items:center;gap:1rem;padding:1rem;background:rgba(255,255,255,.1);border-radius:8px}.contact-method h4{margin-bottom:.25rem}.contact-method p{margin:0;opacity:.8;font-size:.875rem}.wechat-qr{text-align:center}.qr-container{margin-bottom:1rem}.qr-placeholder{width:200px;height:200px;background:white;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto;color:#07c160}.qr-placeholder p{margin:.5rem 0 .25rem;color:#1e293b;font-weight:600}.qr-placeholder small{color:#64748b;font-size:.75rem}.qr-description{opacity:.9;line-height:1.5}@media (max-width: 768px){.homework-grid{grid-template-columns:1fr}.header h1{font-size:2rem}.container{padding:0 .5rem}.video-container{height:300px}.performance-stats{flex-direction:column;gap:1rem}.share-buttons{flex-direction:column}.performance-grid,.info-grid{grid-template-columns:1fr}.contact-content{grid-template-columns:1fr;gap:2rem}.qr-placeholder{width:150px;height:150px}}.qr-page{min-height:100vh;background:#f8fafc}.qr-header{background:var(--course-theme-gradient, linear-gradient(135deg, #667eea 0%, #764ba2 100%));color:#fff;padding:.5rem 0;margin-bottom:.5rem}.header-content{display:flex;justify-content:space-between;align-items:flex-start}.lesson-info h1{font-size:1.25rem;margin-bottom:.125rem}.lesson-info .topic{font-size:.875rem;opacity:.9;margin-bottom:.125rem}.lesson-info .student-info{font-size:.8rem;opacity:.8}.header-actions .home-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:rgba(255,255,255,.2);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s ease}.header-actions .home-btn:hover{background:rgba(255,255,255,.3)}.progress-steps{display:flex;justify-content:space-between;margin-bottom:2rem;background:white;padding:1.5rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a}.step-indicator{display:flex;flex-direction:column;align-items:center;gap:.5rem;cursor:pointer;padding:1rem;border-radius:8px;transition:all .2s ease;flex:1;max-width:150px}.step-indicator:hover{background:#f8fafc}.step-indicator.active{background:#f0f9ff;border:2px solid #3b82f6}.step-indicator.completed{background:#f0fdf4;border:2px solid #10b981}.step-indicator.failed{background:#fff7ed;border:2px solid #f97316}.step-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#f1f5f9}.step-indicator.active .step-icon{background:#dbeafe}.step-indicator.completed .step-icon{background:#dcfce7}.step-indicator.failed .step-icon{background:#fed7aa}.step-label{text-align:center}.step-number{display:block;font-size:.75rem;color:#64748b;font-weight:600}.step-title{display:block;font-size:.875rem;font-weight:500;color:#1e293b;margin-top:.25rem}.main-content{background:transparent;border-radius:12px;padding:2rem;box-shadow:none;margin-bottom:2rem}.step-content:not(.vocab-step):not(.video-step):not(.combined-step){display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}.step-content.video-step{display:block;grid-template-columns:none;margin:0;padding:0}.step-content.combined-step,.step-content.vocab-step{display:block!important;grid-template-columns:none!important}.video-container,.audio-container,.homework-container{width:100%;height:300px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;text-align:center}.video-placeholder,.audio-placeholder,.homework-placeholder{display:flex;flex-direction:column;align-items:center;gap:1rem}.video-placeholder p,.audio-placeholder p,.homework-placeholder p{font-size:1.25rem;font-weight:600;margin:0}.video-placeholder small,.audio-placeholder small,.homework-placeholder small{opacity:.8}.step-info h3{color:#1e293b;font-size:1.5rem;margin-bottom:1rem}.step-info p{color:#64748b;line-height:1.6;margin-bottom:1.5rem}.complete-btn,.play-btn,.record-btn,.submit-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease;color:#fff}.complete-btn{background:#10b981}.play-btn{background:#3b82f6}.play-btn.playing{background:#64748b}.record-btn{background:#ef4444}.submit-btn{background:#10b981}.submit-btn:disabled{background:#9ca3af;cursor:not-allowed;opacity:.6}.complete-btn:hover,.play-btn:hover,.record-btn:hover,.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.vocab-words{margin-bottom:1.5rem}.vocab-words h4{color:#1e293b;margin-bottom:.75rem}.sentence-bubbles{margin-bottom:1.5rem}.sentence-bubbles h4{color:#1e293b;margin-bottom:.75rem}.word-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.word-item{background:#e0e7ff;border-radius:16px;padding:.5em 1em;font-size:1em;color:#3730a3;box-shadow:0 1px 2px #0000000a;display:inline-block}.sentence-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.sentence-bubble{background:#e0e7ff;border-radius:16px;padding:.5em 1em;font-size:1em;color:#3730a3;box-shadow:0 1px 2px #0000000a;display:inline-block}.sentence-info{margin-bottom:1.5rem}.homework-instructions{margin-bottom:1.5rem;padding:1rem;background:#f8fafc;border-radius:8px;border-left:4px solid #3b82f6}.homework-instructions h4{color:#1e293b;margin-bottom:.5rem}.homework-actions{display:flex;gap:1rem}.step-navigation{position:fixed;bottom:0;left:0;right:0;background:#f8f9fa;border-top:1px solid #e9ecef;padding:8px 20px;padding-bottom:calc(8px + env(safe-area-inset-bottom));z-index:1000;box-shadow:0 -2px 10px #0000000d}.step-navigation-inner{width:100%;max-width:800px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:0 1rem}@media (max-width: 768px){.step-navigation-inner{max-width:100%;padding:0}}.nav-btn{width:44px;height:44px;border-radius:50%;background:white;border:1px solid #d1d5db;display:flex;align-items:center;justify-content:center;color:#374151;cursor:pointer;transition:all .2s ease;padding:0}.nav-btn:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.nav-btn:disabled{opacity:.5;background:#f3f4f6;cursor:not-allowed}.bottom-nav-steps{display:flex;gap:8px;flex:1;justify-content:center}.bottom-step-btn{width:44px;height:44px;border-radius:50%;background:white;border:1px solid #e5e7eb;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.bottom-step-btn.active{border-color:#3b82f6;background:#eff6ff}.bottom-step-btn.completed{border-color:#10b981;background:#f0fdf4}.bottom-step-btn.failed{border-color:#ef4444;background:#fef2f2}.step-counter{font-weight:500;color:#64748b}.completion-message{text-align:center;background:white;padding:3rem 2rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;margin-bottom:2rem}.completion-message h2{color:#1e293b;margin:1rem 0}.completion-message p{color:#64748b;margin-bottom:2rem}.completion-message .home-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#3b82f6;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;text-decoration:none;transition:all .2s ease}.completion-message .home-btn:hover{background:#2563eb;transform:translateY(-2px)}@media (max-width: 768px){.header-content{flex-direction:column;gap:1rem}.progress-steps{display:none}.step-indicator{flex-direction:column;align-items:center;gap:.5rem;padding:.5rem;background:none;border:none;flex:1}.step-indicator .step-label .step-number{display:none}.step-indicator .step-label .step-title{font-size:.875rem;font-weight:500;text-align:center;color:#6b7280;margin-top:.25rem}.step-indicator.active .step-label .step-title{color:#3b82f6;font-weight:600}.step-indicator.completed .step-label .step-title{color:#10b981;font-weight:600}.step-content{grid-template-columns:1fr}.video-container,.audio-container,.homework-container{height:200px}.homework-actions{flex-direction:column}.step-navigation{position:fixed;bottom:0;left:0;right:0;background:#f8f9fa;border-top:1px solid #e9ecef;padding:12px 20px;padding-bottom:calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;z-index:100;margin:0}.step-navigation .nav-btn{width:44px;height:44px;border-radius:50%;background:white;border:1px solid #d1d5db;display:flex;align-items:center;justify-content:center;color:#374151}.step-navigation .nav-btn:disabled{opacity:.5;background:#f3f4f6}.bottom-nav-steps{display:flex;gap:8px;flex:1;justify-content:center}.bottom-step-btn{width:44px;height:44px;border-radius:50%;background:white;border:1px solid #e5e7eb;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.bottom-step-btn.active{border-color:#3b82f6;background:#eff6ff}.bottom-step-btn.completed{border-color:#10b981;background:#f0fdf4}}@media (min-width: 769px){.progress-steps{display:none}.main-content{background:transparent!important;border-radius:0!important;padding:.5rem .75rem!important;box-shadow:none!important;margin-bottom:1rem!important}.qr-page{padding-bottom:120px}}@media screen and (max-width: 1024px){.main-content{padding:.5rem .75rem!important}}@media (max-width: 768px){.submission-header{flex-direction:row;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:.5rem}.submission-info{flex:1;min-width:0;gap:.5rem;flex-direction:row!important;align-items:center!important}.submission-number{flex-shrink:0}.submission-time{flex-shrink:0;padding:.125rem .375rem;font-size:.7rem}.feedback-status-small{display:none}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:white;border-radius:12px;width:90%;max-width:600px;max-height:90vh;overflow:auto;box-shadow:0 25px 50px -12px #00000040}.export-modal{max-width:700px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h3{font-size:1.25rem;font-weight:600;color:#1f2937}.modal-close{background:none;border:none;color:#6b7280;cursor:pointer;padding:.25rem;border-radius:4px;transition:color .2s}.modal-close:hover{color:#374151;background:#f3f4f6}.modal-body{padding:1.5rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#374151}.lesson-select{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:8px;font-size:1rem;background:white;cursor:pointer}.lesson-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.preview-section{margin-top:1.5rem}.preview-section h4{margin-bottom:.75rem;color:#374151;font-weight:500}.export-preview{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1rem;max-height:200px;overflow-y:auto}.export-preview pre{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;line-height:1.5;color:#374151;white-space:pre-wrap;word-wrap:break-word}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1.5rem;border-top:1px solid #e5e7eb;background:#f9fafb;border-bottom-left-radius:12px;border-bottom-right-radius:12px}.btn-secondary{background:white;border:1px solid #d1d5db;color:#374151;padding:.75rem 1.5rem;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:#f9fafb;border-color:#9ca3af}.btn-primary{background:#3b82f6;border:1px solid #3b82f6;color:#fff;padding:.75rem 1.5rem;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.5rem}.btn-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.btn-primary:disabled{background:#9ca3af;border-color:#9ca3af;cursor:not-allowed}.btn-primary.success{background:#10b981;border-color:#10b981}.btn-primary.success:hover{background:#059669;border-color:#059669}.panel-header{padding:1.5rem;border-bottom:1px solid #e2e8f0;background:#f8fafc}.panel-header h2{margin-bottom:1rem;color:#1e293b}.controls{display:flex;gap:1rem;align-items:center}.search-box{position:relative;flex:1}.search-box input{width:100%;padding:.75rem .75rem .75rem 2.5rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.875rem;outline:none}.search-box svg{position:absolute;left:.75rem;top:50%;transform:translateY(-50%)}.status-filter{padding:.75rem;border:1px solid #e2e8f0;border-radius:8px;background:white;font-size:.875rem;outline:none}.submission-item{padding:1rem 0;border-bottom:1px solid #e5e7eb;cursor:pointer;transition:all .2s ease}.submission-item:hover{background:rgba(248,250,252,.5)}.submission-item.selected{background:#f0f9ff;border-left:4px solid #3b82f6}.submission-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.student-info h3{color:#1e293b;font-size:1.125rem;margin-bottom:.25rem}.student-details{color:#64748b;font-size:.875rem}.status-reviewed{background:#dbeafe;color:#1e40af}.submission-content{display:flex;flex-direction:column;gap:.75rem}.lesson-info{display:flex;align-items:center;gap:.5rem;color:#64748b;font-size:.875rem}.submission-meta{display:flex;gap:1rem}.meta-item{display:flex;align-items:center;gap:.25rem;color:#64748b;font-size:.75rem}.feedback-preview{display:flex;align-items:center;gap:.25rem;color:#10b981;font-size:.75rem;font-weight:500}.review-container{width:100%}.review-panel{background:transparent;height:100%;display:flex;flex-direction:column}.review-content{padding:0;display:flex;flex-direction:column;flex:1}.review-header{display:flex;justify-content:space-between;align-items:center;padding:0;background:transparent;border-bottom:none;margin-bottom:0;flex-shrink:0}.review-header h2{color:#1e293b;margin:0;font-size:1.5rem;font-weight:600}.close-btn{background:transparent;border:1px solid #e2e8f0;font-size:1.25rem;color:#64748b;cursor:pointer;padding:.5rem .75rem;border-radius:8px;transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:36px;height:36px}.close-btn:hover{background:#f8fafc;border-color:#cbd5e1;color:#334155}.student-details-card{display:flex;align-items:center;gap:1.25rem;padding:1rem 0;background:transparent;border-bottom:1px solid #e2e8f0;margin-bottom:1rem}.student-avatar{width:56px;height:56px;background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);border-radius:16px;display:flex;align-items:center;justify-content:center;font-weight:600;color:#fff;font-size:1.25rem;box-shadow:0 4px 12px #3b82f64d}.student-details-card h3{color:#1e293b;margin-bottom:.25rem;font-size:1.125rem;font-weight:600}.student-details-card p{color:#64748b;font-size:.875rem;margin:.25rem 0}.audio-player-section{padding:1rem 0;height:auto;overflow:visible}.audio-player-section h3{color:#1e293b;margin-bottom:1.5rem;font-size:1.375rem;font-weight:600}.audio-player{display:flex;align-items:center;gap:1rem;padding:.5rem;margin:.5rem;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.audio-controls .play-btn{width:48px;height:48px;border-radius:50%;background:#3b82f6;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.audio-controls .play-btn:hover{background:#2563eb;transform:scale(1.05)}.audio-info{flex:1}.audio-progress{display:flex;flex-direction:column;gap:.5rem}.progress-bar{width:100%;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:#3b82f6;transition:width .3s ease}.time-display{display:flex;justify-content:space-between;font-size:.75rem;color:#64748b}.rating-section{margin-bottom:2rem}.rating-section h3{color:#1e293b;margin-bottom:1rem}.star-rating{display:flex;gap:.5rem}.star-btn{background:none;border:none;cursor:pointer;padding:.25rem;border-radius:4px;transition:all .2s ease}.star-btn:hover,.star-btn.active{background:#fef3c7}.feedback-section{margin-bottom:2rem}.feedback-section h3{color:#1e293b;margin-bottom:1rem}.feedback-textarea{width:100%;padding:1rem;border:1px solid #e2e8f0;border-radius:8px;font-family:inherit;font-size:.875rem;line-height:1.5;resize:vertical;outline:none;transition:border-color .2s ease}.feedback-textarea:focus{border-color:#3b82f6}.feedback-actions{margin-top:1rem}.submit-feedback-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#10b981;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease}.submit-feedback-btn:hover:not(:disabled){background:#059669;transform:translateY(-2px)}.submit-feedback-btn:disabled{opacity:.5;cursor:not-allowed}.previous-feedback{padding:1.5rem;background:#f0fdf4;border-radius:8px;border-left:4px solid #10b981}.previous-feedback h3{color:#1e293b;margin-bottom:1rem}.feedback-content p{color:#374151;line-height:1.6;margin-bottom:1rem}.feedback-rating{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#64748b}.no-selection{display:flex;flex-direction:column;align-items:center;justify-content:center;height:400px;text-align:center;color:#64748b}.no-selection h3{margin:1rem 0 .5rem;color:#1e293b}.no-selection p{max-width:300px;line-height:1.6}@media (max-width: 1024px){.teacher-layout{grid-template-columns:1fr}}@media (max-width: 768px){.controls{flex-direction:column;align-items:stretch}.submission-meta{flex-direction:column;gap:.5rem}.audio-player{flex-direction:column;gap:1rem}.star-rating{justify-content:center}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:2rem}.auth-content{background:white;padding:3rem;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a;text-align:center;max-width:400px;width:100%}.auth-content h2{color:#1e293b;margin-bottom:1rem}.auth-content p{color:#64748b;margin-bottom:2rem}.auth-prompt{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.auth-prompt-content{background:white;padding:2rem;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a;text-align:center;max-width:400px;width:90%}.auth-prompt-content h3{color:#1e293b;margin-bottom:1rem}.auth-prompt-content p{color:#64748b;margin-bottom:2rem}.auth-prompt-actions{display:flex;gap:1rem;justify-content:center}.auth-btn{padding:.75rem 1.5rem;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease}.auth-btn.primary{background:#3b82f6;color:#fff}.auth-btn.primary:hover{background:#2563eb;transform:translateY(-2px)}.auth-btn.secondary{background:#f1f5f9;color:#64748b}.auth-btn.secondary:hover{background:#e2e8f0;transform:translateY(-2px)}.user-info{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#f0f9ff;border-radius:8px;margin-bottom:1rem;color:#1e40af;font-size:.875rem}.loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:#64748b;font-size:1.1rem}.recording-section{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:16px;padding:2rem 1.5rem;margin:1.5rem 0;box-shadow:0 4px 16px #7c3aed14;color:#fff;min-width:260px;max-width:400px}.recording-section h4{color:#fff;font-size:1.2rem;margin-bottom:1rem;font-weight:600}.recording-section button{background:#fff;color:#7c3aed;border:none;border-radius:8px;padding:1.5rem 2rem;margin:.5rem .25rem;font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s;box-shadow:0 2px 8px #7c3aed14}.recording-section button:hover{background:#ede9fe;color:#5b21b6}.recording-section audio{margin:1rem 0 .5rem;width:100%;max-width:320px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #7c3aed14}.homework-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;border-radius:12px;color:#fff;text-align:center;position:relative}.homework-container .recording-section{margin:0;box-shadow:none;background:transparent;padding:0;max-width:100%}.homework-container .homework-placeholder{display:none}.recording-indicator{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.1rem;font-weight:500;color:#ef4444}.recording-dot{width:14px;height:14px;border-radius:50%;background:#ef4444;box-shadow:0 0 #ef4444b3;animation:pulse-dot 1.2s infinite}@keyframes pulse-dot{0%{box-shadow:0 0 #ef4444b3}70%{box-shadow:0 0 0 10px #ef444400}to{box-shadow:0 0 #ef444400}}.size-6{width:1.5rem;height:1.5rem}.recording-section .submit-btn-green{background-color:#22c55e;color:#fff;border:none;padding:.5em 1.2em;border-radius:6px;font-weight:600;cursor:pointer;transition:background .2s;margin-left:.5em}.recording-section .submit-btn-green:hover{background-color:#16a34a}.recording-section .re-record-btn{background:#f3f4f6;color:#374151;border:1px solid #d1d5db;padding:.5em 1.2em;border-radius:6px;font-weight:600;cursor:pointer;transition:background .2s}.recording-section .re-record-btn:hover{background:#e5e7eb}.success-message{background:#d1fae5;color:#065f46;border:1px solid #10b981;border-radius:6px;padding:.75em 1.2em;margin:1em 0 150px;display:flex;align-items:center;gap:.5em;font-weight:600;font-size:1.1em;justify-content:center}.auth-header-btn{display:flex;align-items:flex-start;flex-shrink:0}.sign-in-btn{background:#fff;color:#334155;border:1.5px solid #e0e7ef;border-radius:999px;padding:.6rem 1.8rem;font-weight:700;font-size:1.08rem;letter-spacing:.01em;box-shadow:0 2px 8px #1e293b0f;cursor:pointer;transition:background .18s,box-shadow .18s,color .18s,border .18s,transform .1s;outline:none;margin-left:.5rem}.sign-in-btn:hover,.sign-in-btn:focus{background:#f1f5ff;color:#2563eb;border:1.5px solid #bcd0fa;box-shadow:0 4px 16px #1e293b21;transform:translateY(-2px) scale(1.03)}.auth-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(30,41,59,.25);display:flex;align-items:center;justify-content:center;z-index:1000}.auth-modal{background:#fff;border-radius:16px;box-shadow:0 4px 32px #0000002e;padding:2rem 2.5rem 1.5rem;position:relative;min-width:340px;max-width:95vw}.auth-modal-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem}.auth-modal-tab{flex:1;background:#f1f5f9;border:none;border-radius:6px;padding:.75rem 0;font-weight:600;color:#64748b;font-size:1rem;cursor:pointer;transition:background .2s,color .2s}.auth-modal-tab.active{background:#3b82f6;color:#fff}.auth-modal-content{min-height:340px}.auth-modal-close{position:absolute;top:.5rem;right:1rem;background:none;border:none;font-size:2rem;color:#64748b;cursor:pointer}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(500px,1fr));gap:2rem;max-width:1400px;margin:0 auto}.gallery-item{cursor:pointer;border:1px solid #ddd;border-radius:12px}.gallery-item:hover{transform:translateY(-5px);box-shadow:0 4px 8px #00000026}.gallery-thumbnail{width:100%;height:auto;display:block;aspect-ratio:16/9}.gallery-duration{position:absolute;bottom:12px;right:12px;background:rgba(0,0,0,.7);color:#fff;padding:4px 8px;border-radius:4px;font-size:1em}.gallery-topic{padding:1rem;text-align:center;font-weight:700;font-size:1.2em}.highlights-gallery{margin:2rem 0;border-radius:12px}.youtube-style-container{width:100%;margin:0;padding:0}.video-wrapper{position:relative;width:100%;background:#000;border-radius:0;overflow:hidden;margin:0 0 24px;aspect-ratio:16/9;min-height:300px;max-height:80vh}.video-wrapper video{width:100%!important;height:100%!important;object-fit:contain;max-width:none!important;display:block}.sentences-video-section .video-wrapper{max-width:800px!important;margin:0 auto!important}.songs-sticky-video{position:relative;background:white;z-index:10;margin-bottom:16px}@media (min-width: 1024px){.qr-page .container.sentences-tab-active{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.qr-page .container.sentences-tab-active .songs-sticky-video.active{position:sticky;top:16px;margin-bottom:0}.qr-page .container.sentences-tab-active .songs-sticky-video:not(.active){display:none!important}.qr-page .container.sentences-tab-active .main-content{padding:1rem .5rem}}@media (max-width: 1023px){.songs-sticky-video.active{position:sticky;top:0;padding-bottom:16px;box-shadow:0 4px 6px #0000001a}}@media (max-width: 640px){.songs-sticky-video.active{padding-bottom:12px}}@media (max-width: 768px){.step-content.video-step{margin:0}.video-wrapper{border-radius:8px;aspect-ratio:16/9;height:auto;min-height:200px;max-height:60vh}.video-wrapper video{width:100%!important;height:100%!important;object-fit:contain}.qr-header .container{padding:0 1rem}}.modern-vocab-combined{display:none}.vocab-header{margin-bottom:2rem;text-align:center}.vocab-title{font-size:1.5rem;font-weight:600;color:#1e293b;margin:0}.vocab-audio-section{margin-bottom:2rem}.modern-audio-player{width:100%;max-width:500px;height:54px;border-radius:12px;outline:none}.previous-submission{text-align:center}.previous-audio{margin-top:12px;display:flex;justify-content:center}.previous-submission audio{width:100%;max-width:500px;min-width:280px;height:54px;border-radius:12px;outline:none}.vocab-divider{height:1px;background:linear-gradient(to right,transparent,#f1f5f9,transparent);margin:1.5rem 0}.vocab-recording-section{margin-top:0}.recording-header{text-align:center;margin-bottom:1.5rem}.recording-title{font-size:1.25rem;font-weight:600;color:#1e293b;margin:0 0 .5rem}.recording-subtitle{font-size:.875rem;color:#64748b;margin:0}.recording-interface{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.record-start{display:flex;justify-content:center}.record-button{width:60px;height:60px;border-radius:50%;border:none;background:#ef4444;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.record-button:hover{background:#dc2626}.countdown-display{text-align:center;margin:2rem 0}.countdown-number{font-size:4rem;font-weight:700;color:#ef4444;animation:countdown-pulse .4s ease-in-out}@keyframes countdown-pulse{0%{transform:scale(.8);opacity:.5}50%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:1}}.record-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center}.mic-icon{width:24px;height:24px}.record-text{font-size:1rem;font-weight:500}.recording-active{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.recording-indicator-modern{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:#fef2f2;border:1px solid #fecaca;border-radius:12px}.recording-pulse{width:12px;height:12px;background:#ef4444;border-radius:50%;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.recording-text{font-size:.875rem;font-weight:500;color:#ef4444}.stop-record-btn{padding:.75rem 1.5rem;background:#64748b;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s ease}.stop-record-btn:hover{background:#475569;transform:translateY(-1px)}.recording-preview{width:100%;max-width:500px;display:flex;flex-direction:column;gap:1.5rem}.preview-player{display:flex;justify-content:center}.preview-audio{width:100%;height:54px;border-radius:12px;outline:none}.preview-actions{display:flex;gap:1rem;justify-content:center}.modern-re-record-btn{padding:.75rem 1.5rem;background:#f8fafc;color:#64748b;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s ease}.modern-re-record-btn:hover{background:#f1f5f9;color:#475569;border-color:#cbd5e1;transform:translateY(-1px)}.modern-submit-btn{padding:.75rem 1.5rem;background:linear-gradient(135deg,#10b981 0%,#059669 100%);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s ease;box-shadow:0 2px 8px #10b9814d}.modern-submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.modern-submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.sentences-step-container{display:flex;flex-direction:column;position:relative}.sentences-video-section{flex-shrink:0}.sentences-video-section.sticky-video{position:sticky;top:0;z-index:100;background:#ffffff;border-bottom:1px solid #e2e8f0;padding:.5rem 0;margin-bottom:1rem;box-shadow:0 2px 4px #0000001a}.video-status{text-align:center;padding:.5rem 0}.playing-indicator{background:#3b82f6;color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.875rem;font-weight:500}.sentences-content{flex:1;background:#ffffff;border-radius:16px;padding:1rem;box-shadow:0 1px 3px #0000001a;border:1px solid #f1f5f9}.sentences-header{text-align:center;margin-bottom:2rem}.sentences-header h2{font-size:1.75rem;font-weight:700;color:#1e293b;margin:0 0 .5rem}.sentences-header p{color:#64748b;font-size:1rem;margin:0}.sentences-list{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.sentence-item{background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;padding:1.5rem;transition:all .3s ease;cursor:pointer}.sentence-item:hover{border-color:#cbd5e1;transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.sentence-item.playing{border-color:#3b82f6;background:#eff6ff;box-shadow:0 0 0 3px #3b82f61a}.sentence-item.recording{border-color:#ef4444;background:#fef2f2;box-shadow:0 0 0 3px #ef44441a}.sentence-item.completed{border-color:#10b981;background:#f0fdf4}.sentence-item.completed:hover{border-color:#059669}.sentence-item.failed{border-color:#f97316;background:#fff7ed}.sentence-item.failed:hover{border-color:#ea580c}.sentence-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.sentence-number{background:#3b82f6;color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.875rem;font-weight:600}.sentence-item.playing .sentence-number{background:#3b82f6}.sentence-item.completed .sentence-number{background:#10b981}.sentence-item.failed .sentence-number{background:#f97316}.sentence-item.recording .sentence-number{background:#ef4444}.sentence-text{font-size:1.125rem;font-weight:500;color:#1e293b;margin-bottom:1rem;line-height:1.6}.sentence-controls{display:flex;justify-content:space-between;align-items:center}.sentence-item .sentence-controls:has(.review-actions){justify-content:center!important;flex-direction:column!important;align-items:center!important;gap:1rem!important}.sentence-item .sentence-controls:has(.review-actions) .sentence-info{order:-1;text-align:center}.sentence-item .sentence-controls:has(.review-actions) .sentence-actions{width:100%!important;justify-content:center!important}.sentence-info .time-limit{color:#64748b;font-size:.875rem}.sentence-actions{display:flex;align-items:center;gap:1rem}.review-controls{display:flex;flex-direction:column;gap:1rem;width:100%;padding:1rem;align-items:center!important;text-align:center!important}.sentence-record-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease}.sentence-record-btn:hover{background:#2563eb;transform:translateY(-1px)}.recording-controls{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;width:100%}.recording-status{display:flex;flex-direction:column;gap:.5rem}.recording-indicator{display:flex;align-items:center;gap:.5rem;color:#ef4444;font-weight:600}.recording-dot{width:12px;height:12px;background:#ef4444;border-radius:50%;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.progress-container{display:flex;flex-direction:column;gap:.5rem;width:100%}.progress-bar{width:100%;height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#10b981,#ef4444);border-radius:4px;transition:width .1s ease}.time-display{display:flex;justify-content:center;align-items:center;font-size:.875rem}.time-remaining{color:#ef4444;font-weight:600;font-size:1rem}.recording-timer{background:#ef4444;color:#fff;padding:.5rem 1rem;border-radius:6px;font-weight:600;font-size:.875rem}.stop-recording-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#64748b;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease}.stop-recording-btn:hover{background:#475569}.sentence-completed{display:flex;align-items:center;gap:.75rem;color:#10b981;font-weight:500}.sentence-completed .completion-status{display:flex;align-items:center;gap:.5rem}.cdn-audio-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background:linear-gradient(135deg,#10b981 0%,#059669 100%);color:#fff;border:none;border-radius:8px;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #10b98133}.cdn-audio-btn:hover{background:linear-gradient(135deg,#059669 0%,#047857 100%);transform:translateY(-1px);box-shadow:0 4px 8px #10b9814d}.cdn-audio-btn.playing{background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);box-shadow:0 2px 4px #ef444433}.cdn-audio-btn.playing:hover{background:linear-gradient(135deg,#dc2626 0%,#b91c1c 100%);box-shadow:0 4px 8px #ef44444d}.replay-btn{padding:.375rem .75rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease}.replay-btn:hover{background:#2563eb;transform:translateY(-1px)}.review-controls{display:flex;flex-direction:column;gap:1rem;width:100%;padding:1rem;background:#f8fafc;border:2px solid #e2e8f0;border-radius:8px}.playback-status{display:flex;justify-content:center;margin-bottom:1rem}.simultaneous-playback{background:#f0f9ff;border:1px solid #0ea5e9;padding:.75rem 1rem;border-radius:8px}.play-indicator{display:flex;align-items:center;gap:.5rem;color:#0ea5e9;font-weight:600}.play-dot{width:10px;height:10px;background:#0ea5e9;border-radius:50%;animation:pulse 1s ease-in-out infinite}.review-actions{display:flex!important;flex-direction:row!important;gap:1rem!important;justify-content:center!important;align-items:center!important;width:100%!important;margin:0 auto!important;text-align:center!important;clear:both!important;position:relative!important}.review-actions .submit-btn,.review-actions .rerecord-btn,.review-actions .replay-btn{min-width:110px!important;padding:.75rem 1.5rem!important;border:none!important;border-radius:12px!important;font-weight:600!important;font-size:.9rem!important;cursor:pointer!important;transition:all .3s cubic-bezier(.4,0,.2,1)!important;box-shadow:0 4px 12px #00000026!important;position:relative!important;overflow:hidden!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:.5rem!important;text-transform:none!important;letter-spacing:.025em!important}.review-actions .submit-btn:before,.review-actions .rerecord-btn:before,.review-actions .replay-btn:before{content:""!important;position:absolute!important;top:0!important;left:-100%!important;width:100%!important;height:100%!important;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent)!important;transition:left .5s!important}.review-actions .submit-btn:hover:before,.review-actions .rerecord-btn:hover:before,.review-actions .replay-btn:hover:before{left:100%!important}.review-actions .submit-btn{background:linear-gradient(135deg,#22c55e,#16a34a)!important;color:#fff!important;border:2px solid rgba(255,255,255,.2)!important;text-shadow:0 1px 2px rgba(0,0,0,.1)!important}.review-actions .submit-btn:hover{background:linear-gradient(135deg,#16a34a,#15803d)!important;transform:translateY(-2px) scale(1.02)!important;box-shadow:0 8px 25px #22c55e66!important;border-color:#ffffff4d!important}.review-actions .submit-btn:active{transform:translateY(-1px) scale(1.01)!important;box-shadow:0 4px 15px #22c55e4d!important}.review-actions .rerecord-btn{background:linear-gradient(135deg,#6366f1,#4f46e5)!important;color:#fff!important;border:2px solid rgba(255,255,255,.2)!important;text-shadow:0 1px 2px rgba(0,0,0,.1)!important}.review-actions .rerecord-btn:hover{background:linear-gradient(135deg,#4f46e5,#4338ca)!important;transform:translateY(-2px) scale(1.02)!important;box-shadow:0 8px 25px #6366f166!important;border-color:#ffffff4d!important}.review-actions .rerecord-btn:active{transform:translateY(-1px) scale(1.01)!important;box-shadow:0 4px 15px #6366f14d!important}.review-actions .replay-btn{background:linear-gradient(135deg,#f59e0b,#d97706)!important;color:#fff!important;border:2px solid rgba(255,255,255,.2)!important;text-shadow:0 1px 2px rgba(0,0,0,.1)!important}.review-actions .replay-btn:hover{background:linear-gradient(135deg,#d97706,#b45309)!important;transform:translateY(-2px) scale(1.02)!important;box-shadow:0 8px 25px #f59e0b66!important;border-color:#ffffff4d!important}.review-actions .replay-btn:active{transform:translateY(-1px) scale(1.01)!important;box-shadow:0 4px 15px #f59e0b4d!important}.sentences-submit-section{text-align:center;padding:2rem 0}.sentences-complete-section{text-align:center;padding:2rem 0;background:#f0fdf4;border-radius:12px;margin:1rem 0}.sentences-complete-section .completion-message{display:flex;flex-direction:column;align-items:center;gap:.5rem}.sentences-complete-section .success-icon{font-size:2rem}.sentences-complete-section h3{color:#166534;font-size:1.25rem;margin:0}.sentences-complete-section p{color:#15803d;margin:0;font-size:.95rem}.sentences-submit-btn{display:inline-flex;align-items:center;gap:.5rem;padding:1rem 2rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:12px;font-size:1.125rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #10b9814d}.sentences-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #10b98166}.sentences-submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}@media (max-width: 770px){.modern-vocab-combined{padding:1.5rem;margin-bottom:1rem}.modern-record-btn{padding:1.25rem 1.5rem}.sentences-step-container{min-height:auto;padding-bottom:150px}.sentences-video-section video,.sentences-video-section #course{width:100%!important;max-width:100%!important;min-width:100%!important;background:transparent!important;object-fit:cover!important;object-position:center!important}.sentences-video-section .video-wrapper{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;background:transparent!important}.sentences-video-section.sticky-video{padding:.25rem 0;margin-bottom:.5rem;width:100%!important;max-width:100%!important;background:white!important}.sentences-video-section,.sentences-video-section.sticky-video,#sentences-video-container{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.sentences-video-section .video-wrapper{width:100%!important;max-width:100%!important;aspect-ratio:16/9!important;overflow:hidden!important;border-radius:8px!important;margin:0!important;padding:0!important;box-sizing:border-box!important;position:relative!important}.sentences-video-section video{width:100%!important;height:100%!important;max-width:100%!important;object-fit:contain!important;border-radius:8px!important;background:#000!important;display:block!important;margin:0!important;padding:0!important;box-sizing:border-box!important;position:absolute!important;top:0!important;left:0!important}.sentences-content{padding:1rem .75rem;border-radius:12px;margin:0 .5rem}.sentences-header{margin-bottom:1rem}.sentences-header h2{font-size:1.5rem}.sentences-list{gap:1rem;margin-bottom:1rem}.sentence-item{padding:1rem .75rem;border-radius:8px}.sentence-text{font-size:1rem;margin-bottom:.75rem}.sentence-controls{flex-direction:column;align-items:flex-start;gap:.75rem}.sentence-actions{width:100%;justify-content:flex-start}.recording-controls{flex-direction:column;align-items:flex-start;gap:.75rem;width:100%}.recording-status{width:100%}.time-display{flex-wrap:wrap;gap:.25rem}.sentence-completed{flex-wrap:wrap;gap:.5rem}.review-controls{padding:.75rem;gap:.75rem}.progress-container{gap:.25rem}.progress-bar{height:6px}.review-actions{flex-direction:row!important;gap:.875rem!important;flex-wrap:wrap!important;justify-content:center!important;width:100%!important;text-align:center!important}.review-actions .submit-btn,.review-actions .rerecord-btn,.review-actions .replay-btn{min-width:100px!important;width:auto!important;flex:0 0 auto!important;padding:.625rem 1.25rem!important;font-size:.875rem!important}.sentence-record-btn,.stop-recording-btn{padding:.625rem 1rem;font-size:.875rem}.video-status{padding:.25rem 0}.playing-indicator{font-size:.75rem;padding:.25rem .5rem}}@media (min-width: 771px){.sentence-item.recording .sentence-controls{flex-direction:column!important;align-items:center!important;gap:1rem!important}.sentence-item.recording .sentence-actions{width:100%!important;justify-content:center!important}.sentence-item.recording .recording-controls,.sentence-item.recording .recording-status{width:100%!important;align-items:center!important}.sentence-item.recording .progress-container{width:100%!important;max-width:400px!important}.sentence-item.recording .sentence-info{text-align:center;order:-1}}@media (max-width: 480px){.sentences-video-section video{width:100%!important;height:100%!important;object-fit:contain!important;background:#000!important}.sentences-video-section .video-wrapper{aspect-ratio:16/9!important;width:100%!important;overflow:hidden!important;position:relative!important}.sentences-content{padding:.75rem .5rem;margin:0 .25rem}.sentence-item{padding:.75rem .5rem}.sentences-header h2{font-size:1.25rem}.sentence-text{font-size:.95rem}}@media (max-width: 768px) and (orientation: landscape){.sentences-video-section video{width:100%!important;height:100%!important;object-fit:contain!important;background:#000!important}.sentences-video-section .video-wrapper{aspect-ratio:16/9!important;width:100%!important;overflow:hidden!important;position:relative!important}}.preview-actions{flex-direction:column}.modern-re-record-btn,.modern-submit-btn{width:100%}.sentence-redo-btn.orange{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #f59e0b33}.sentence-redo-btn.orange:hover{background:linear-gradient(135deg,#d97706 0%,#b45309 100%);transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b4d}.sentence-redo-btn.orange:active{transform:translateY(0)}.sentence-completed.failed .completion-status{color:#f59e0b}.sentence-completed.failed{background:rgba(245,158,11,.05);border:1px solid rgba(245,158,11,.2);border-radius:8px;padding:.75rem}.feedback-count{background:rgba(59,130,246,.1);color:#3b82f6;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600}.feedback-submission-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid rgba(0,0,0,.05)}.submission-info{display:flex;align-items:center;gap:.75rem}.submission-number{font-size:.875rem;font-weight:600;color:#64748b}.feedback-status-small{padding:.125rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600;display:flex;align-items:center;gap:.25rem}.feedback-status-small.pass{background:#dcfce7;color:#166534}.feedback-status-small.fail{background:#fed7aa;color:#9a3412}.feedback-status-small.pending{background:#e0f2fe;color:#0369a1}.feedback-content.feedback-pending{border-color:#0ea5e9;background:#f0f9ff}.pending-text{font-style:italic;color:#0369a1}.submission-audio{margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(0,0,0,.05)}.audio-playback-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .875rem;background:#f8fafc;color:#374151;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.audio-playback-btn:hover{background:#f1f5f9;border-color:#cbd5e1;transform:translateY(-1px)}.audio-playback-btn.playing{background:linear-gradient(135deg,#3b82f6 0%,#1d4ed8 100%);color:#fff;border-color:#3b82f6}.audio-playback-btn.playing:hover{background:linear-gradient(135deg,#1d4ed8 0%,#1e40af 100%)}.play-button{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:#f8fafc;color:#374151;border:1px solid #e2e8f0;border-radius:6px;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 2px #0000000d}.play-button:hover{background:#f1f5f9;border-color:#cbd5e1;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.play-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.play-button.playing{background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);color:#fff;border-color:#ef4444;box-shadow:0 2px 4px #ef444433}.play-button.playing:hover{background:linear-gradient(135deg,#dc2626 0%,#b91c1c 100%);box-shadow:0 4px 8px #ef44444d}.play-button.playing:disabled{opacity:.8}
