*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{color:#1a1a2e;background:#f0f4f8;min-height:100vh;font-family:Segoe UI,system-ui,-apple-system,sans-serif}button{font-family:inherit}a{color:inherit}.page-loading{text-align:center;color:#999;padding:80px 20px;font-size:.9rem}.auth-wrap{flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.auth-card{text-align:center;background:#fff;border-radius:24px;width:100%;max-width:420px;padding:44px 32px;box-shadow:0 8px 40px #0000001a}.auth-logo{color:#fff;background:linear-gradient(135deg,#1a237e,#5c6bc0);border-radius:22px;justify-content:center;align-items:center;width:84px;height:84px;margin:0 auto 16px;font-size:2.4rem;font-weight:800;display:flex}.auth-title{color:#1a1a2e;margin-bottom:6px;font-size:1.7rem;font-weight:800}.auth-sub{color:#888;margin-bottom:28px;font-size:.95rem;line-height:1.5}.input-group{text-align:left;margin-bottom:16px}.input-group label{color:#555;margin-bottom:6px;font-size:.85rem;font-weight:700;display:block}.input-field{color:#1a1a2e;background:#fff;border:2px solid #e0e0e0;border-radius:12px;outline:none;width:100%;padding:14px 16px;font-family:inherit;font-size:1rem;transition:border-color .2s}.input-field:focus{border-color:#5c6bc0}.phone-row{gap:8px;display:flex}.phone-prefix{color:#555;background:#f5f5f5;border:2px solid #e0e0e0;border-radius:12px;flex-shrink:0;padding:14px;font-size:1rem;font-weight:700}.btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#1a237e,#5c6bc0);border:none;border-radius:12px;width:100%;margin-top:4px;padding:16px;font-size:1.05rem;font-weight:700;transition:opacity .2s}.btn-primary:hover{opacity:.9}.btn-primary:disabled{cursor:default;background:#ccc}.btn-ghost{color:#aaa;cursor:pointer;background:0 0;border:none;margin-top:18px;font-size:.85rem}.btn-ghost:hover{color:#555}.form-error{color:#c62828;text-align:left;background:#ffebee;border-radius:10px;margin-top:14px;padding:12px 16px;font-size:.9rem}.form-notice{color:#8a6100;text-align:left;background:#fff7e0;border-radius:10px;margin-bottom:14px;padding:12px 16px;font-size:.9rem;line-height:1.5}.form-hint{color:#aaa;text-align:left;margin-top:8px;font-size:.8rem}.otp-row{justify-content:center;gap:8px;margin-bottom:8px;display:flex}.otp-box{text-align:center;color:#1a1a2e;border:2px solid #e0e0e0;border-radius:12px;outline:none;width:46px;height:56px;font-size:1.4rem;font-weight:800;transition:border-color .2s}.otp-box:focus{border-color:#5c6bc0}.resend-line{color:#888;margin-top:16px;font-size:.85rem}.resend-line button{color:#5c6bc0;cursor:pointer;background:0 0;border:none;font-size:.85rem;font-weight:700}.resend-line button:disabled{color:#bbb;cursor:default}.class-confirm{text-align:left;background:#e8eaf6;border-radius:16px;margin-bottom:18px;padding:18px 20px}.class-confirm .cc-school{color:#1a237e;font-size:1.1rem;font-weight:800}.class-confirm .cc-detail{color:#555;margin-top:4px;font-size:.9rem}.app-page{max-width:1000px;margin:0 auto;padding:20px}.top-bar{color:#fff;background:linear-gradient(135deg,#1a237e,#5c6bc0);border-radius:20px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding:20px 26px;display:flex}.top-bar h1{margin-bottom:3px;font-size:1.4rem;font-weight:800}.top-bar p{opacity:.85;font-size:.88rem}.btn-topbar{color:#fff;cursor:pointer;background:#ffffff26;border:2px solid #fff6;border-radius:100px;padding:9px 18px;font-size:.85rem;font-weight:700;transition:background .2s}.btn-topbar:hover{background:#ffffff40}.section-title{text-transform:uppercase;letter-spacing:1.2px;color:#aaa;margin-bottom:14px;padding-left:4px;font-size:.85rem;font-weight:700}.subjects-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.subject-card{cursor:pointer;background:#fff;border-left:5px solid;border-radius:16px;align-items:center;gap:14px;padding:16px 16px 16px 18px;text-decoration:none;transition:all .2s;display:flex;box-shadow:0 2px 12px #00000012}.subject-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001f}.subject-card.locked{cursor:default;opacity:.72}.subject-card.locked:hover{transform:none;box-shadow:0 2px 12px #00000012}.subject-card.locked .s-arrow{opacity:.6;font-size:1rem}.exam-banner{color:#fff;background:linear-gradient(120deg,#f9a825,#ef6c00);border-radius:16px;align-items:center;gap:12px;margin-bottom:18px;padding:16px 20px;text-decoration:none;transition:transform .2s;display:flex;box-shadow:0 4px 16px #ef6c0040}.exam-banner:hover{transform:translateY(-2px)}.exam-banner .eb-title{font-size:1rem;font-weight:800}.exam-banner .eb-sub{opacity:.92;margin-top:2px;font-size:.82rem}.exam-banner .eb-arrow{opacity:.8;margin-left:auto;font-size:1.4rem}.timetable-header{background:linear-gradient(120deg,#f9a825,#ef6c00)}.day-card{background:#fff;border-radius:16px;margin-bottom:14px;padding:16px 18px;box-shadow:0 2px 12px #0000000f}.day-card.past{opacity:.55}.day-card.today{border:2px solid #ef6c00}.day-head{align-items:center;gap:14px;display:flex}.day-badge{background:#eef1f8;border-radius:12px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:52px;display:flex}.day-card.today .day-badge{background:#ffe6cc}.day-badge .day-num{color:#1a1a2e;font-size:1.25rem;font-weight:800;line-height:1.1}.day-badge .day-month{letter-spacing:1px;color:#888;font-size:.62rem;font-weight:700}.day-name{color:#1a1a2e;font-size:1rem;font-weight:800}.day-preview{color:#888;margin-top:2px;font-size:.8rem}.day-chip{border-radius:100px;flex-shrink:0;padding:4px 12px;font-size:.7rem;font-weight:700}.day-chip.chip-today{color:#fff;background:#ef6c00}.day-chip.chip-done{color:#888;background:#eef1f8}.exam-row{border-top:1px solid #f0f0f5;align-items:center;gap:10px;margin-top:12px;padding-top:12px;display:flex}.exam-subject{color:#1a1a2e;font-size:.92rem;font-weight:700}.exam-note{color:#888;margin-top:1px;font-size:.78rem}.exam-time{color:#e65100;white-space:nowrap;background:#fff3e0;border-radius:100px;padding:4px 12px;font-size:.75rem;font-weight:700}.syllabus-card{background:#fff;border-left:5px solid;border-radius:16px;margin-bottom:16px;padding:4px 16px 4px 18px;box-shadow:0 2px 12px #00000012}.syllabus-card .syllabus-toggle{cursor:pointer;width:100%;font:inherit;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:12px 0;display:flex}.syllabus-card .syllabus-title{color:#1a1a2e;font-size:1rem;font-weight:800}.syllabus-card .syllabus-hint{color:#888;margin-left:auto;font-size:.78rem}.syllabus-card .s-arrow{opacity:.4;font-size:1.1rem}.syllabus-card .md-content{padding-bottom:14px}.notice-banner{border-radius:14px;margin-bottom:18px;padding:14px 18px;font-size:.9rem;line-height:1.55}.notice-banner.trial{color:#5c4302;background:linear-gradient(120deg,#ffd970,#f6b71e);box-shadow:0 4px 14px #f6b71e59}.notice-banner.locked{color:#8c2b22;background:#fdecea}.btn-banner{cursor:pointer;color:#fff;background:#8c2b22;border:none;border-radius:10px;margin-top:10px;padding:9px 16px;font-size:.85rem;font-weight:700;display:block}.btn-banner:disabled{opacity:.6;cursor:default}.btn-banner-link{color:inherit;cursor:pointer;background:0 0;border:none;margin-top:8px;padding:0;font-size:.8rem;font-weight:600;text-decoration:underline;display:block}.notice-banner .pay-error{margin-top:8px;font-weight:700}.subject-card .s-icon{flex-shrink:0;font-size:2rem;line-height:1}.subject-card .s-name{color:#1a1a2e;margin-bottom:3px;font-size:1.05rem;font-weight:800}.subject-card .s-count{border-radius:100px;padding:2px 10px;font-size:.78rem;font-weight:600;display:inline-block}.subject-card .s-arrow{opacity:.25;flex-shrink:0;margin-left:auto;font-size:1.2rem}.empty-state{text-align:center;color:#999;background:#fff;border:1px dashed #ddd;border-radius:16px;padding:40px 24px;font-size:.92rem;line-height:1.6}.subject-header{color:#fff;border-radius:20px;align-items:center;gap:16px;margin-bottom:24px;padding:22px 26px;display:flex}.back-btn{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:100px;flex-shrink:0;padding:8px 18px;font-size:.88rem;font-weight:700;text-decoration:none}.back-btn:hover{background:#ffffff59}.subject-header h2{font-size:1.3rem;font-weight:800}.subject-header p{opacity:.85;margin-top:2px;font-size:.86rem}.topics-list{flex-direction:column;gap:12px;display:flex}.topic-card{cursor:pointer;background:#fff;border-left:5px solid;border-radius:16px;align-items:center;gap:14px;padding:18px 20px;text-decoration:none;transition:all .2s;display:flex;box-shadow:0 2px 12px #00000012}.topic-card:hover{transform:translate(4px);box-shadow:0 6px 24px #0000001f}.topic-title{color:#1a1a2e;margin-bottom:7px;font-size:1.02rem;font-weight:700}.topic-badges{flex-wrap:wrap;gap:7px;display:flex}.topic-badge{color:#666;background:#f0f4f8;border-radius:100px;padding:3px 10px;font-size:.74rem;font-weight:600}.topic-badge.has-test{color:#2e7d32;background:#e8f5e9}.topic-arrow{opacity:.2;flex-shrink:0;margin-left:auto;font-size:1.4rem}.topic-header{color:#fff;z-index:100;align-items:center;gap:14px;padding:18px 22px;display:flex;position:sticky;top:0}.topic-header .header-subject{text-transform:uppercase;letter-spacing:1.5px;opacity:.8;margin-bottom:2px;font-size:.72rem;font-weight:700}.topic-header .header-topic{font-size:1.2rem;font-weight:800}.tab-nav{z-index:99;background:#fff;border-bottom:2px solid #eee;display:flex;position:sticky;top:0}.tab-btn{color:#888;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;flex:1 1 0;min-width:0;margin-bottom:-2px;padding:14px 2px;font-size:.9rem;font-weight:700;transition:all .2s}@media (width<=400px){.tab-btn{font-size:.8rem}}.tab-btn.active{border-bottom-color:currentColor}.tab-content{max-width:900px;margin:0 auto;padding:24px 20px}.note-section{background:#fff;border-left:4px solid #0000;border-radius:16px;margin-bottom:18px;padding:22px;box-shadow:0 2px 12px #0000000f}.source-banner{letter-spacing:.5px;border-radius:20px;margin-bottom:14px;padding:4px 12px;font-size:.72rem;font-weight:700;display:inline-block}.note-section .section-title{margin-bottom:10px;font-size:1.05rem;font-weight:800}.md-content{color:#333;font-size:.95rem;line-height:1.7}.md-content>:first-child{margin-top:0}.md-content>:last-child{margin-bottom:0}.md-content h1,.md-content h2{margin:18px 0 8px;font-size:1.1rem;font-weight:800}.md-content h3{margin:16px 0 6px;font-size:1rem;font-weight:800}.md-content h4,.md-content h5,.md-content h6{margin:14px 0 6px;font-size:.95rem;font-weight:700}.md-content p{margin:8px 0}.md-content ul,.md-content ol{margin:8px 0;padding-left:24px}.md-content li{margin:5px 0}.md-content code{background:#f0f4f8;border-radius:4px;padding:1px 6px;font-size:.85rem}.md-content pre{background:#f0f4f8;border-radius:10px;margin:10px 0;padding:12px 14px;overflow-x:auto}.md-content blockquote{color:#666;border-left:3px solid #ddd;margin:10px 0;padding:2px 14px}.md-content table{border-collapse:collapse;width:100%;margin:10px 0;font-size:.88rem;display:block;overflow-x:auto}.md-content th,.md-content td{text-align:left;border:1px solid #e5e5e5;padding:8px 12px}.md-content th{background:#f0f4f8;font-weight:700}.md-content hr{border:none;border-top:1px solid #eee;margin:14px 0}.flashcards-header{text-align:center;margin-bottom:22px}.flashcards-header h2{font-size:1.15rem;font-weight:800}.flashcards-header p{color:#888;margin-top:4px;font-size:.88rem}.flashcards-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.fc-wrapper{perspective:1000px;cursor:pointer;height:175px}.fc{width:100%;height:100%;transform-style:preserve-3d;transition:transform .45s;position:relative}.fc.flipped{transform:rotateY(180deg)}.fc-face{backface-visibility:hidden;text-align:center;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:16px;display:flex;position:absolute;overflow:hidden}.fc-front{background:#fff;border:2px solid #0000000f;box-shadow:0 2px 12px #00000012}.fc-label{text-transform:uppercase;letter-spacing:1px;opacity:.7;margin-bottom:6px;font-size:.66rem;font-weight:700}.fc-front .fc-text{color:#1a1a2e;font-size:.9rem;font-weight:700;line-height:1.4}.fc-back{color:#fff;transform:rotateY(180deg)}.fc-back .fc-text{font-size:.84rem;font-weight:600;line-height:1.45}.tests-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;display:grid}.test-card{color:inherit;background:#fff;border-left:5px solid;border-radius:16px;padding:22px;text-decoration:none;transition:all .2s;display:block;position:relative;box-shadow:0 2px 12px #00000012}.test-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001f}.test-card .t-title{margin-bottom:5px;font-size:1.02rem;font-weight:800}.test-card .t-sub{color:#888;margin-bottom:10px;font-size:.85rem}.test-card .t-tag{border-radius:100px;padding:4px 12px;font-size:.76rem;font-weight:700;display:inline-block}.score-badge{text-align:center;border:3px solid #fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:52px;height:52px;font-size:.6rem;font-weight:800;line-height:1.2;display:flex;position:absolute;top:-10px;right:-10px;transform:rotate(12deg);box-shadow:0 2px 8px #00000026}.badge-great{color:#2e7d32;background:#e8f5e9;border-color:#2e7d32}.badge-good{color:#f57c00;background:#fff3e0;border-color:#f57c00}.badge-low{color:#c62828;background:#ffebee;border-color:#c62828}.quiz-page{max-width:720px;margin:0 auto;padding:20px}.quiz-header{color:#fff;text-align:center;border-radius:16px;margin-bottom:22px;padding:22px}.quiz-header .back-link{color:#fffc;margin-bottom:8px;font-size:.85rem;text-decoration:none;display:inline-block}.quiz-header h1{margin-bottom:4px;font-size:1.35rem}.quiz-header p{opacity:.9;font-size:.95rem}.diff-badge{letter-spacing:.5px;text-transform:capitalize;background:#fff3;border-radius:100px;margin-top:10px;padding:4px 14px;font-size:.8rem;font-weight:700;display:inline-block}.progress-label{text-align:center;color:#555;margin-bottom:12px;font-size:.88rem}.progress-track{background:#e0e0e0;border-radius:100px;height:10px;margin-bottom:22px;overflow:hidden}.progress-fill{border-radius:100px;height:100%;transition:width .4s}.question-card{background:#fff;border-radius:16px;margin-bottom:18px;padding:26px;box-shadow:0 2px 12px #00000014}.question-number{text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;font-size:.82rem;font-weight:700}.question-text{color:#1a1a2e;margin-bottom:20px;font-size:1.15rem;font-weight:600;line-height:1.5}.options{flex-direction:column;gap:12px;display:flex}.option-btn{color:#333;cursor:pointer;text-align:left;background:#f5f5f5;border:2px solid #e0e0e0;border-radius:12px;padding:15px 18px;font-size:1rem;line-height:1.4;transition:all .15s}.option-btn.selected{font-weight:600}.nav-buttons{gap:12px;margin-top:18px;display:flex}.btn-nav{cursor:pointer;border:none;border-radius:12px;flex:1;padding:15px;font-size:1rem;font-weight:700;transition:all .2s}.btn-nav.prev{color:#555;background:#e8e8e8}.btn-nav.prev:hover{background:#ddd}.btn-nav.next{color:#fff}.btn-nav:disabled{opacity:.4;cursor:default}.btn-submit{cursor:pointer;color:#fff;border:none;border-radius:12px;width:100%;margin-top:10px;padding:17px;font-size:1.05rem;font-weight:700;transition:opacity .2s}.btn-submit:disabled{cursor:default;background:#ccc!important}.results-card{text-align:center;background:#fff;border-radius:20px;margin-bottom:20px;padding:36px 26px;box-shadow:0 4px 20px #0000001a}.score-circle{color:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:140px;height:140px;margin:0 auto 18px;font-weight:700;display:flex}.score-circle .score-num{font-size:2.3rem}.score-circle .score-label{opacity:.85;font-size:.82rem}.score-great{background:linear-gradient(135deg,#2e7d32,#66bb6a)}.score-good{background:linear-gradient(135deg,#f57c00,#ffb74d)}.score-low{background:linear-gradient(135deg,#c62828,#ef9a9a)}.results-title{color:#1a1a2e;margin-bottom:6px;font-size:1.5rem;font-weight:800}.results-sub{color:#666;font-size:.98rem}.saving-msg{color:#888;margin-top:12px;font-size:.88rem}.answer-item{text-align:left;background:#fff;border-left:4px solid;border-radius:12px;margin-bottom:12px;padding:16px;box-shadow:0 2px 8px #0000000f}.answer-item.correct-item{border-left-color:#2e7d32}.answer-item.wrong-item{border-left-color:#e53935}.answer-q{color:#1a1a2e;margin-bottom:6px;font-size:.94rem;font-weight:600}.answer-detail{color:#555;font-size:.88rem}.answer-detail span{font-weight:600}.answer-correct{color:#2e7d32}.answer-wrong{color:#c62828}.btn-back-topic{color:#fff;text-align:center;border-radius:12px;margin-top:18px;padding:15px;font-size:1rem;font-weight:700;text-decoration:none;display:block}.sub-icon{margin-bottom:10px;font-size:2.6rem}.sub-detail{color:#555;text-align:left;background:#f5f7fb;border-radius:14px;margin:18px 0;padding:16px 18px;font-size:.9rem;line-height:1.7}@media (width<=500px){.auth-card{padding:34px 22px}.app-page{padding:12px}.top-bar{padding:16px 18px}.top-bar h1{font-size:1.15rem}.topic-card,.question-card{padding:16px}.tab-content{padding:18px 12px}.question-text{font-size:1.02rem}.otp-box{width:42px;height:52px}}
