.site-header{background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:100}.header-inner{max-width:1200px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.logo{font-size:1.15rem;font-weight:700;color:#1f2937}.logo:hover{text-decoration:none;color:#2563eb}.nav{display:flex;gap:8px 16px;flex-wrap:wrap}.nav a{font-size:.9rem;color:#4b5563;white-space:nowrap}.nav a:hover{color:#2563eb}.home{max-width:1200px;margin:0 auto;padding:20px}.home h1{font-size:1.6rem;margin-bottom:.5rem}.home .intro{color:#6b7280;margin-bottom:20px}.grade-tabs{display:flex;gap:8px;margin-bottom:20px}.grade-tabs button{padding:8px 20px;border:1px solid #e5e7eb;background:#fff;border-radius:8px;cursor:pointer;font-size:1rem;color:#374151}.grade-tabs button.active{background:#2563eb;color:#fff;border-color:#2563eb;font-weight:600}.subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-bottom:28px}.subject-card{display:block;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:18px;transition:border-color .15s,box-shadow .15s}.subject-card:hover{border-color:#2563eb;box-shadow:0 4px 12px #2563eb14;text-decoration:none}.subject-card h2{margin:0 0 8px;font-size:1.25rem}.subject-card p{margin:0 0 12px;font-size:.9rem;color:#4b5563;line-height:1.5}.subject-card .badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.8rem;background:#f3f4f6;color:#4b5563}.subject-card.empty .badge{background:#fef3c7;color:#92400e}.extra h2{font-size:1.15rem;margin-bottom:12px}.card-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.card-list li{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:14px}.card-list li a{font-size:1.05rem;font-weight:600}.card-list li p{margin:8px 0 0;font-size:.9rem;color:#4b5563;line-height:1.5}.model-viewer .model-switcher{display:flex;align-items:center;gap:8px;margin-bottom:16px}.model-viewer .model-switcher label{font-size:.9rem;color:#374151}.model-viewer .model-switcher select{border:1px solid #e5e7eb;background:#fff;color:#374151;padding:8px 12px;border-radius:8px;font-size:.95rem;cursor:pointer}.model-viewer .model-switcher select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.model-viewer .model-frame{width:100%;max-width:100%;height:900px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.models{max-width:1200px;margin:0 auto;padding:20px}.models .breadcrumb{font-size:.9rem;color:#6b7280;margin-bottom:16px}.models .breadcrumb a{color:#2563eb;text-decoration:none}.models .breadcrumb a:hover{text-decoration:underline}.models .breadcrumb .current{color:#1f2937;font-weight:600}.subject{max-width:1200px;margin:0 auto;padding:20px}.subject h1{font-size:1.6rem;margin-bottom:.5rem}.subject .intro{color:#6b7280;margin-bottom:20px}.subject .back{display:inline-block;margin-bottom:12px;font-size:.95rem}.item-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.item-list li{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:14px}.item-list li a{font-size:1.05rem;font-weight:600}.item-list li p{margin:8px 0 0;font-size:.9rem;color:#4b5563;line-height:1.5}.empty{background:#f3f4f6;border:1px dashed #d1d5db;border-radius:8px;padding:24px;text-align:center;color:#6b7280}.switch{margin-top:24px;color:#6b7280}.switch a{margin-left:12px;font-weight:500}.model-detail{max-width:1200px;margin:0 auto;padding:20px}.model-detail h1{font-size:1.5rem;margin-bottom:.5rem}.model-detail .breadcrumb{font-size:.9rem;color:#6b7280;margin-bottom:16px}.model-detail .breadcrumb a{color:#2563eb;text-decoration:none}.model-detail .breadcrumb a:hover{text-decoration:underline}.listening{max-width:1200px;margin:0 auto;padding:20px}.listening h1{font-size:1.5rem;margin-bottom:.5rem}.listening .intro{color:#6b7280;margin-bottom:18px}.listening .breadcrumb{font-size:.9rem;color:#6b7280;margin-bottom:16px}.listening .breadcrumb a{color:#2563eb;text-decoration:none}.listening .breadcrumb a:hover{text-decoration:underline}.listening .breadcrumb .current{color:#1f2937;font-weight:600}.listening .paper-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.listening .paper-list li{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:14px}.listening .paper-list li a{font-size:1.05rem;font-weight:600;color:#2563eb;text-decoration:none}.listening .paper-list li a:hover{text-decoration:underline}.listening .paper-list li p{margin:8px 0 0;font-size:.9rem;color:#4b5563}.listening .resources{margin-top:32px}.listening .resources h2{font-size:1.2rem;margin-bottom:6px}.listening .resources-intro{color:#6b7280;font-size:.92rem;margin:0 0 14px}.listening .resource-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px}.listening .resource-item a{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px 14px;text-decoration:none;transition:border-color .15s,box-shadow .15s}.listening .resource-item a:hover{border-color:#a5b4fc;box-shadow:0 2px 8px #2563eb14}.listening .resource-tag{flex-shrink:0;font-size:.75rem;color:#2563eb;background:#eef2ff;border-radius:999px;padding:2px 10px;margin-top:2px}.listening .resource-main{display:flex;flex-direction:column;gap:4px}.listening .resource-title{font-size:.98rem;font-weight:600;color:#1f2937}.listening .resource-desc{font-size:.85rem;color:#6b7280;line-height:1.5}.listening-paper{max-width:900px;margin:0 auto;padding:20px}.listening-paper h1{font-size:1.5rem;margin-bottom:1rem}.listening-paper .breadcrumb{font-size:.9rem;color:#6b7280;margin-bottom:16px}.listening-paper .breadcrumb a{color:#2563eb;text-decoration:none}.listening-paper .breadcrumb a:hover{text-decoration:underline}.listening-paper .breadcrumb .current{color:#1f2937;font-weight:600}.listening-paper .audio-box{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px;margin-bottom:24px}.listening-paper .audio-player{width:100%}.listening-paper .audio-note{margin:10px 0 0;font-size:.85rem;color:#6b7280}.listening-paper .tts-player{display:flex;flex-direction:column;gap:10px}.listening-paper .tts-buttons{display:flex;gap:10px;flex-wrap:wrap}.listening-paper .tts-btn{font-size:.95rem;padding:8px 18px;border:1px solid #d1d5db;border-radius:8px;background:#f9fafb;color:#1f2937;cursor:pointer;transition:background .15s,border-color .15s}.listening-paper .tts-btn:hover:not(:disabled){background:#eef2ff;border-color:#a5b4fc}.listening-paper .tts-btn:disabled{opacity:.5;cursor:not-allowed}.listening-paper .tts-btn-primary{background:#2563eb;border-color:#2563eb;color:#fff}.listening-paper .tts-btn-primary:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.listening-paper .tts-status{margin:0;font-size:.88rem;color:#4b5563;line-height:1.5}.listening-paper .section h2 .section-play{float:right;margin-top:-2px;font-size:.85rem;padding:4px 14px}.listening-paper .section{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px;margin-bottom:20px}.listening-paper .section h2{font-size:1.15rem;margin:0 0 6px}.listening-paper .section .score{color:#6b7280;font-size:.85rem;font-weight:400}.listening-paper .section .instruction{color:#6b7280;font-size:.9rem;margin:0 0 14px}.listening-paper .q-item{border-top:1px solid #f3f4f6;padding:12px 0}.listening-paper .q-item:first-child{border-top:none}.listening-paper .q-stem{margin:0 0 8px;font-size:1rem}.listening-paper .q-text p{margin:0 0 8px;line-height:1.6}.listening-paper .q-options{display:flex;flex-direction:column;gap:4px;padding-left:12px}.listening-paper .q-option{font-size:.95rem;color:#374151}.listening-paper .q-reveal{margin-top:8px;display:flex;gap:12px}.listening-paper .q-reveal details{font-size:.9rem}.listening-paper .q-reveal summary{cursor:pointer;color:#2563eb}.listening-paper .q-reveal .transcript,.listening-paper .q-reveal .answer-text{margin:6px 0 0;padding:8px 10px;background:#f3f4f6;border-radius:6px;line-height:1.6}.listening-paper .empty{color:#6b7280}.listening-paper .image-options{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px}.listening-paper .image-option{display:flex;flex-direction:column;align-items:center;gap:6px;width:120px;padding:14px 8px 10px;border:1px solid #e5e7eb;border-radius:10px;background:#fafbfc;transition:border-color .15s,box-shadow .15s}.listening-paper .image-option:hover{border-color:#a5b4fc;box-shadow:0 2px 8px #6366f11f}.listening-paper .image-option-key{font-size:.8rem;font-weight:700;color:#2563eb}.listening-paper .image-option-icon{font-size:2.4rem;line-height:1}.listening-paper .image-option-label{font-size:.8rem;color:#4b5563;text-align:center;line-height:1.3}.listening-paper .tts-help{margin-top:8px;font-size:.85rem}.listening-paper .tts-help summary{cursor:pointer;color:#2563eb}.listening-paper .tts-help ul{margin:8px 0 0;padding-left:18px;color:#6b7280;line-height:1.7}.listening-paper .tts-help code{background:#f3f4f6;padding:1px 5px;border-radius:4px;font-size:.82rem}.listening-paper .tts-btn-test{background:#f0fdf4;border-color:#86efac;color:#166534}.listening-paper .tts-btn-test:hover:not(:disabled){background:#dcfce7;border-color:#4ade80}.listening-paper .tts-diag{margin:4px 0 0;font-size:.8rem;color:#9ca3af}.voa{max-width:900px;margin:0 auto;padding:20px}.voa .breadcrumb{font-size:.9rem;color:#6b7280;margin-bottom:12px}.voa h1{font-size:1.6rem;margin-bottom:.5rem}.voa .intro{color:#6b7280;margin-bottom:20px;line-height:1.6}.voa-empty{background:#f3f4f6;border:1px dashed #d1d5db;border-radius:8px;padding:24px;text-align:center;color:#6b7280}.voa-player{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:18px;margin-bottom:20px}.voa-player h2{font-size:1.15rem;margin:0 0 4px}.voa-date{color:#6b7280;font-size:.9rem;margin:0 0 12px}.voa-player audio{width:100%;display:block}.voa-transcript{margin-top:14px}.voa-transcript .ghost{border:1px solid #d1d5db;background:#fff;color:#374151;border-radius:6px;padding:6px 14px;font-size:.9rem;cursor:pointer;margin-bottom:10px}.voa-transcript p{line-height:1.8;color:#374151;margin:0 0 10px}.voa-history h2{font-size:1.1rem;margin-bottom:10px}.voa-history ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}.voa-history button{width:100%;text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:10px 14px;cursor:pointer;display:flex;gap:12px;align-items:baseline;font-size:.95rem;color:#374151}.voa-history button.active{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb inset}.voa-history .h-date{color:#6b7280;font-size:.85rem;white-space:nowrap}.chemistry{max-width:1200px;margin:0 auto;padding:20px}.chemistry .back{display:inline-block;margin-bottom:12px;font-size:.95rem}.chemistry h1{font-size:1.6rem;margin-bottom:.5rem}.chemistry .intro{color:#6b7280;margin-bottom:20px}.chem-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:16px}.chem-tabs{display:inline-flex;border:1px solid #d1d5db;border-radius:8px;overflow:hidden}.chem-tabs button{border:none;background:#fff;padding:8px 16px;font-size:.95rem;cursor:pointer;color:#374151}.chem-tabs button.active{background:#2563eb;color:#fff}.self-test-toggle{display:inline-flex;align-items:center;gap:6px;font-size:.95rem;color:#374151;cursor:pointer}.chem-finished{background:#ecfdf5;border:1px solid #a7f3d0;color:#047857;border-radius:8px;padding:12px 16px;margin-bottom:16px}.chem-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.chem-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;display:flex;flex-direction:column}.chem-card.done{border-color:#34d399;box-shadow:0 0 0 1px #34d399 inset}.chem-card-img{width:100%;height:auto;display:block}.chem-card-body{padding:14px;display:flex;flex-direction:column;flex:1}.chem-card-body h2{font-size:1.1rem;margin:0 0 10px}.chem-points{margin:0;padding-left:18px;font-size:.92rem;color:#374151;line-height:1.6}.chem-points li+li{margin-top:4px}.chem-formulas{margin-top:10px;display:flex;flex-direction:column;gap:6px}.chem-formulas code{display:block;background:#f3f4f6;border-left:3px solid #2563eb;border-radius:4px;padding:6px 10px;font-size:.9rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap}.blur{filter:blur(5px);-webkit-user-select:none;user-select:none;pointer-events:none}.chem-card-actions{margin-top:14px;display:flex;gap:10px}.chem-card-actions button{border-radius:6px;padding:6px 14px;font-size:.9rem;cursor:pointer}.chem-card-actions .ghost{border:1px solid #d1d5db;background:#fff;color:#374151}.done-btn{border:1px solid #2563eb;background:#fff;color:#2563eb}.done-btn.active{background:#059669;border-color:#059669;color:#fff}*{box-sizing:border-box}body{font-family:system-ui,-apple-system,sans-serif;margin:0;padding:0;background:#f9fafb;color:#1f2937}a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}
