*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--primary:#4f46e5;--primary-dark:#3730a3;--primary-light:#ede9fe;--bg:#f1f5f9;--card-bg:#ffffff;--text:#1e293b;--text-secondary:#64748b;--border:#e2e8f0;--success:#16a34a;--success-bg:#f0fdf4;--error:#dc2626;--error-bg:#fef2f2;--warning:#d97706;--warning-bg:#fffbeb;--radius:12px;--shadow:0 1px 3px rgba(0,0,0,0.08),0 1px 2px rgba(0,0,0,0.04)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;padding:calc(16px + env(safe-area-inset-top, 0px)) calc(16px + env(safe-area-inset-right, 0px)) calc(16px + env(safe-area-inset-bottom, 0px)) calc(16px + env(safe-area-inset-left, 0px));overflow-x:hidden;overflow-wrap:break-word;line-break:strict}main{max-width:720px;margin:0 auto;padding-bottom:48px}.app-header{text-align:center;padding:28px 0 20px}.app-logo{font-size:2rem;font-weight:800;color:var(--primary);letter-spacing:-.5px}.app-tagline{color:var(--text-secondary);font-size:.9rem;margin-top:4px}.app-topbar{min-height:44px;margin-bottom:4px}.app-topbar,.app-topbar-left,.app-topbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.app-topbar-right{margin-left:auto}.btn.home-icon-btn{width:44px;min-width:44px;min-height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center}.home-icon-action{display:flex;justify-content:center}.card{background:var(--card-bg);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);padding:20px;margin-bottom:12px}.card [style*=space-between],.card[style*=space-between]{flex-wrap:wrap}.card-clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .1s}.card-clickable:hover{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light);transform:translateY(-1px)}.settings-note{margin:6px 0 0;font-size:.78rem;color:var(--text-secondary)}.course-fab,.mypage-fab,.review-fab,.script-fab{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom, 0px));width:56px;height:56px;border:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;z-index:90;box-shadow:0 4px 14px rgba(0,0,0,.18)}.course-fab{left:max(16px,calc(50% - 360px - 76px));background:var(--card-bg);color:var(--primary);border:1px solid var(--border);text-decoration:none}.course-fab:active{transform:scale(.96)}.script-fab{left:calc(max(16px, calc(50% - 360px - 76px)) + 64px);background:var(--card-bg);color:var(--primary);border:1px solid var(--border);text-decoration:none}.script-fab:active{transform:scale(.96)}.review-fab.with-script{left:calc(max(16px, calc(50% - 360px - 76px)) + 128px)}.mypage-fab-wrap{position:static}.mypage-fab{right:max(16px,calc(50% - 360px - 76px));background:var(--card-bg);color:var(--text-primary);border:1px solid var(--border)}.mypage-fab:active{transform:scale(.96)}.mypage-menu{position:fixed;right:max(16px,calc(50% - 360px - 76px));bottom:calc(80px + env(safe-area-inset-bottom, 0px));z-index:91;min-width:200px;padding:10px;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.18);display:flex;flex-direction:column;gap:8px}.mypage-menu-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.mypage-menu-label{font-size:.9rem;color:var(--text-secondary)}.mypage-menu-item{width:100%}.review-fab{position:fixed;left:calc(max(16px, calc(50% - 360px - 76px)) + 64px);bottom:calc(16px + env(safe-area-inset-bottom, 0px));width:56px;height:56px;border:none;border-radius:50%;background:var(--primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(15,23,42,.22);cursor:pointer;z-index:90}.review-fab:active{transform:scale(.96)}.review-entry{display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer}.review-entry-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 auto;border-radius:50%;background:var(--primary-light);color:var(--primary)}.review-entry-body{display:flex;flex-direction:column;flex:1 1;min-width:0}.review-entry-title{font-weight:700;font-size:.98rem}.review-entry-sub{font-size:.8rem;color:var(--text-secondary);margin-top:2px}.rest-ticket-card{padding:12px 16px}.rest-ticket-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.rest-ticket-label{font-weight:700;font-size:.95rem}.rest-ticket-dots{display:inline-flex;gap:4px;color:var(--primary)}.rest-ticket-dots .is-spent{opacity:.25}.rest-ticket-note{margin:6px 0 0;font-size:.8rem;color:var(--text-secondary)}.notice-login{border:1px solid var(--primary);background:var(--primary-light)}.notice-login-title{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-weight:700;color:var(--primary-dark,var(--primary))}.notice-login-body{margin:0 0 10px;font-size:.9rem;line-height:1.5}.notice-login-actions{display:flex;gap:8px}.notice-login-actions .btn{width:auto;flex:1 1}:where(button,a,summary,[role=button],[role=option],[role=tab],label.btn){-webkit-tap-highlight-color:transparent}:where(button,a,summary,[role=button],[role=option],[role=tab],label.btn):not(:disabled):active{transform:scale(.97);transition:transform .06s ease-out}:where(.card-clickable,.course-list-card,.course-node,.rating-btn,.lang-combo-option,.btn):not(:disabled):active{transform:scale(.99)}@media (prefers-reduced-motion:reduce){:where(button,a,summary,[role=button],[role=option],[role=tab],label.btn):not(:disabled):active{transform:none;filter:brightness(.94)}}.btn{display:block;width:100%;min-height:44px;padding:10px 20px;border-radius:8px;border:none;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s,transform .1s;text-align:center}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.assessment-choice,.audio-btn,.btn,.card-clickable,.choice-btn,.course-choice,.fillblank-choice-btn,.vocab-audio-btn,.vquiz-choice{-webkit-tap-highlight-color:transparent}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--border);color:var(--text)}.btn-secondary:hover:not(:disabled){background:#cbd5e1}.btn-ghost{background:transparent;color:var(--primary);border:2px solid var(--primary)}.btn-ghost:hover:not(:disabled){background:var(--primary-light)}.btn-success{background:var(--success);color:#fff}.input{width:100%;min-height:44px;padding:10px 14px;border-radius:8px;border:2px solid var(--border);font-size:1rem;color:var(--text);background:#fff;transition:border-color .15s}.input:focus{outline:none;border-color:var(--primary)}.input::placeholder{text-align:center}.input::-webkit-input-placeholder{text-align:center}.input::-moz-placeholder{text-align:center}.tag{display:inline-block;padding:3px 10px;border-radius:100px;font-size:.75rem;font-weight:600;margin:2px}.tag-blue{background:var(--primary-light);color:var(--primary)}.tag-gray{background:var(--border);color:var(--text-secondary)}.tag-green{background:var(--success-bg);color:var(--success)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.settings-row{display:flex;align-items:flex-start;gap:10px;margin-top:14px}.settings-row:first-of-type{margin-top:0}.settings-row-icon{flex:none;margin-top:9px;color:var(--text-secondary)}.settings-row-body{flex:1 1;min-width:0}.settings-choices{display:flex;gap:8px;flex-wrap:wrap}.settings-choices .btn{min-height:44px}.settings-row-plain{display:block;padding-left:0}.section-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:8px}.back-btn-icon{min-width:44px;min-height:44px;justify-content:center;padding:0}.back-btn{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary);background:none;border:none;cursor:pointer;font-size:.88rem;padding:8px 0;margin-bottom:8px}.back-btn:hover{color:var(--primary)}.loading-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;gap:16px;color:var(--text-secondary)}.spinner{width:44px;height:44px;border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.alert{padding:12px 16px;border-radius:8px;margin-bottom:12px;font-size:.9rem;display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.alert-error{background:var(--error-bg);color:var(--error);border:1px solid #fca5a5}.alert-info{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.alert-close{background:none;border:none;cursor:pointer;font-size:1.1rem;color:inherit;opacity:.6;flex-shrink:0}.alert-close:hover{opacity:1}.fallback-notice{font-size:.8rem;color:var(--text-secondary);background:#f8fafc;border-left:3px solid #94a3b8;padding:8px 12px;margin-top:8px;border-radius:0 4px 4px 0}.choice-btn{display:block;width:100%;min-height:44px;padding:12px 16px;margin-bottom:8px;border-radius:8px;border:2px solid var(--border);background:#fff;text-align:left;font-size:.95rem;cursor:pointer;transition:border-color .15s,background .15s,transform .1s}.choice-btn:hover:not(:disabled){border-color:var(--primary);background:var(--primary-light)}.choice-btn:active:not(:disabled){transform:scale(.98)}.choice-btn.correct{border-color:var(--success);background:var(--success-bg);color:var(--success);font-weight:600}.choice-btn.incorrect{border-color:var(--error);background:var(--error-bg);color:var(--error)}.choice-btn.unselected-after{opacity:.5}.choice-btn:disabled{cursor:not-allowed}.progress-bar{display:flex;gap:6px;margin-bottom:20px}.progress-dot{height:5px;flex:1 1;border-radius:3px;background:var(--border)}.progress-dot.done{background:var(--success)}.progress-dot.current{background:var(--primary)}.score-circle{text-align:center;padding:24px 0}.score-number{font-size:3.5rem;font-weight:800;color:var(--primary);line-height:1}.score-denom{font-size:1.2rem}.score-denom,.score-label{color:var(--text-secondary)}.score-label{font-size:.9rem;margin-top:4px}.vocab-item{padding:12px 0;border-bottom:1px solid var(--border)}.vocab-item:last-child{border-bottom:none}.vocab-word{font-weight:700;font-size:1.05rem}.vocab-meaning{color:var(--text-secondary);font-size:.9rem}.vocab-native-label{display:inline-block;margin-right:7px;padding:2px 6px;border-radius:6px;background:var(--primary-light);color:var(--primary-dark);font-size:.7rem;font-weight:700;line-height:1.4;vertical-align:1px}.vocab-example{font-style:italic;font-size:.85rem;color:var(--text-secondary);margin-top:3px}.source-item{padding:8px 0;border-bottom:1px solid var(--border);font-size:.85rem}.source-item:last-child{border-bottom:none}.source-title{font-weight:600;color:var(--text)}.source-meta{color:var(--text-secondary);font-size:.78rem;margin-top:2px}.reading-text{font-size:1.1rem;line-height:1.85;color:var(--text)}.translation-text{font-size:.92rem;color:var(--text-secondary);line-height:1.75}.word-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.study-settings-chevron{color:var(--primary);transform:rotate(90deg);transition:transform .15s}.study-settings-toggle.is-open .study-settings-chevron{transform:rotate(-90deg)}.interest-field{display:flex;align-items:center;gap:8px;padding:0 4px 0 12px;border:2px solid var(--border);border-radius:8px;background:#fff}.interest-field:focus-within{border-color:var(--primary)}.interest-field.has-error{border-color:var(--error)}.interest-field-icon{color:var(--text-secondary)}.interest-field-input{flex:1 1;min-width:0;min-height:44px;padding:8px 0;border:none;background:transparent;font-size:1rem;color:var(--text)}.interest-field-input:focus{outline:none}.interest-go{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:44px;height:44px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s}.interest-go.is-ready{background:var(--primary);color:#fff}.interest-go.is-ready:hover{filter:brightness(1.08)}.interest-last{gap:5px;margin-bottom:10px}.example-chip,.interest-last{display:inline-flex;align-items:center}.example-chip{flex:0 0 auto;white-space:nowrap;padding:6px 12px;border-radius:100px;border:1px solid var(--border);background:#fff;font-size:.85rem;cursor:pointer;color:var(--text-secondary);text-align:center;transition:border-color .15s,color .15s;min-height:36px;justify-content:center;position:relative}.example-chip:hover{border-color:var(--primary);color:var(--primary)}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-20{margin-top:20px}.mt-24{margin-top:24px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.screen-title{font-size:1.1rem;font-weight:700;color:var(--text);margin-bottom:4px}.screen-subtitle{font-size:.85rem;color:var(--text-secondary);margin-bottom:16px}.sentence{display:inline}.sentence.active{background:#fef08a;border-radius:3px;padding:1px 0}.sentence.paired{background:#dbeafe;border-radius:3px;padding:1px 0;box-shadow:0 0 0 1px #93c5fd}.sentence.active.paired{background:#fef08a;box-shadow:0 0 0 1px #f59e0b}.sentence.pickable{cursor:pointer}.audio-controls{display:flex;gap:8px;margin:12px 0}.audio-btn{flex:1 1;min-height:44px;padding:10px 16px;border-radius:8px;border:none;background:var(--primary);color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s,transform .1s}.audio-btn:hover{background:var(--primary-dark)}.audio-btn:active{transform:scale(.98)}.audio-btn-outline{background:transparent;color:var(--primary);border:2px solid var(--primary)}.audio-btn-outline:hover{background:var(--primary-light)}.audio-btn-stop{background:#ef4444}.audio-btn-stop:hover{background:#dc2626}.audio-btn-ghost{flex:1 1;min-height:44px;padding:10px 16px;border-radius:8px;border:2px solid var(--border);background:transparent;color:var(--text);font-size:.9rem;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s}.audio-btn-ghost:hover{border-color:var(--primary);color:var(--primary)}.audio-box{background:#f8faff;border:1px solid #c7d2fe;border-radius:var(--radius);padding:16px;margin:12px 0}.audio-box-title{font-weight:700;font-size:.95rem;margin-bottom:10px}.audio-shadow-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.audio-counter{font-size:.82rem;font-weight:600;color:var(--text-secondary)}.audio-dots{display:flex;gap:5px;margin-bottom:12px}.audio-dot{height:4px;flex:1 1;border-radius:2px;background:var(--border)}.audio-dot.done{background:var(--success)}.audio-dot.current{background:var(--primary)}.audio-status-text{font-size:.88rem;color:var(--text-secondary)}.audio-prompt{font-size:.98rem;font-weight:700;color:var(--primary);margin:6px 0 3px}.audio-prompt-sub{font-size:.82rem;color:var(--text-secondary);margin-bottom:10px}.audio-timer-wrap{margin:6px 0}.audio-timer-bar{height:6px;border-radius:3px;background:var(--border);overflow:hidden;margin-bottom:3px}.audio-timer-fill{height:100%;border-radius:3px;background:var(--primary);transition:width .9s linear}.audio-timer-text{font-size:.78rem;color:var(--text-secondary)}.audio-row{display:flex;gap:8px}.audio-speed-label{font-size:.82rem;color:var(--text-secondary);margin:10px 0 6px}.audio-speed-row{display:flex;gap:6px}.audio-speed-btn{flex:1 1;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:8px 4px;border-radius:6px;border:2px solid var(--border);background:#fff;font-size:.82rem;color:var(--text-secondary);cursor:pointer}.audio-speed-btn.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary);font-weight:600}.audio-instructions-list{padding-left:20px;font-size:.88rem;line-height:2}.audio-complete-box{text-align:center}.audio-complete-sub{font-size:.85rem;color:var(--text-secondary);margin:4px 0 0}.audio-unsupported{font-size:.82rem;color:var(--text-secondary);background:#f8fafc;border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin:12px 0}.vocab-audio-btn{background:none;border:none;cursor:pointer;font-size:.9rem;padding:2px 4px;border-radius:4px;color:var(--primary);line-height:1;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.vocab-audio-btn:hover{background:var(--primary-light)}.vocab-audio-btn:active{transform:scale(.92)}.exercise-reading{margin:-6px 0 10px;font-size:.85rem;color:var(--text-secondary)}.exercise-audio-btn{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:#fff;font-size:.85rem;color:var(--primary);cursor:pointer;margin-bottom:12px;transition:background .15s,border-color .15s}.exercise-audio-btn.playing,.exercise-audio-btn:hover{background:var(--primary-light);border-color:var(--primary)}.feedback-box{border-radius:8px;padding:12px 16px;margin-top:12px;font-size:.9rem}.feedback-correct{background:var(--success-bg);color:var(--success);border:1px solid #86efac}.feedback-incorrect{background:var(--error-bg);color:var(--error);border:1px solid #fca5a5}.feedback-explanation{color:var(--text-secondary);margin-top:6px;font-size:.88rem}.flashcard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.flashcard-title{font-size:1rem;font-weight:700;margin:0}.flashcard-progress{font-size:.85rem;color:var(--text-secondary)}.flashcard-dots{display:flex;gap:6px;margin-bottom:16px}.flashcard-dot{width:10px;height:10px;border-radius:50%;background:var(--border);transition:background .2s}.flashcard-dot.done{opacity:.4}.flashcard-dot.current,.flashcard-dot.done{background:var(--primary)}.flashcard-card{perspective:1000px;cursor:pointer;margin-bottom:20px;min-height:200px;position:relative}.flashcard-back,.flashcard-front{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#fff;border:2px solid var(--border);border-radius:16px;padding:28px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transition:transform .45s ease;min-height:200px}.flashcard-back{transform:rotateY(180deg);border-color:var(--primary);background:var(--primary-light)}.flashcard-card.flipped .flashcard-front{transform:rotateY(-180deg)}.flashcard-card.flipped .flashcard-back{transform:rotateY(0deg)}.flashcard-word{font-size:2rem;font-weight:800;color:var(--text-primary);margin:0 0 12px}.flashcard-audio{font-size:1.2rem;margin-bottom:12px}.flashcard-hint{font-size:.78rem;color:var(--text-secondary);margin:0}.flashcard-word-sm{font-size:1rem;font-weight:700;color:var(--primary);margin:0 0 8px}.flashcard-meaning{font-size:1.4rem;font-weight:800;color:var(--text-primary);margin:0 0 10px}.flashcard-example{font-size:.85rem;color:var(--text-secondary);font-style:italic;margin:0;line-height:1.5}.flashcard-actions{display:flex;flex-direction:column;gap:10px;align-items:stretch}.btn-sm{display:inline-block;width:auto;min-height:36px;padding:6px 14px;font-size:.85rem;position:relative}.btn-sm:after,.course-weak-item:after,.example-chip:after,.vocab-tab:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;min-width:44px;height:44px}.vocab-tab-row{display:flex;gap:10px 6px;flex-wrap:wrap;margin-bottom:12px}.vocab-tab{flex:1 0 auto;min-width:80px;padding:7px 10px;font-size:.8rem;font-weight:600;background:var(--card-bg);border:1.5px solid var(--border);border-radius:20px;cursor:pointer;color:var(--text-secondary);transition:all .15s;min-height:36px;display:inline-flex;align-items:center;justify-content:center;position:relative}.vocab-tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.vocab-star-btn{background:none;border:none;cursor:pointer;padding:2px 4px;line-height:1;transition:transform .1s}.vocab-star-btn:hover{transform:scale(1.2)}.vocab-book-audio-btn{background:none;border:none;cursor:pointer;font-size:1rem;padding:2px 4px;opacity:.7;transition:opacity .15s;line-height:1}.vocab-book-audio-btn:hover{opacity:1}.vocab-delete-btn{background:none;border:none;cursor:pointer;font-size:1rem;color:var(--text-secondary);padding:0;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:background .15s,color .15s;line-height:1}.vocab-delete-btn:hover{background:var(--error-bg,#fee2e2);color:var(--error)}.rating-btn{display:flex;align-items:center;gap:8px;width:100%;padding:12px 16px;font-size:1rem;font-weight:600;background:var(--card-bg);border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;transition:background .15s,border-color .15s}.rating-btn:hover{background:var(--primary-light);border-color:var(--primary)}.undo-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#1e293b;color:#f8fafc;border-radius:24px;padding:10px 20px;display:flex;align-items:center;gap:12px;font-size:.9rem;box-shadow:0 4px 20px rgba(0,0,0,.35);z-index:300;animation:slideUp .2s ease;white-space:nowrap}@keyframes slideUp{0%{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.btn-sm.btn-ghost{color:var(--text-secondary)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;z-index:200;padding:calc(16px + env(safe-area-inset-top, 0px)) calc(16px + env(safe-area-inset-right, 0px)) calc(16px + env(safe-area-inset-bottom, 0px)) calc(16px + env(safe-area-inset-left, 0px))}.modal-close-btn,.modal-overlay{align-items:center;justify-content:center}.modal-close-btn{flex:none;width:44px;height:44px;margin:-11px -15px -11px 0;padding:0;display:inline-flex;background:none;border:none;border-radius:8px;cursor:pointer;font-size:1.4rem;line-height:1;color:var(--text-secondary)}.modal-box{background:var(--card-bg);border-radius:var(--radius);box-shadow:0 20px 60px rgba(0,0,0,.3);width:100%;max-width:400px;padding:24px;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto}.fillblank-sentence{font-size:1.15rem;font-weight:600;line-height:1.7;color:var(--text);margin-bottom:12px}.fillblank-hint{font-size:.88rem;color:var(--text-secondary);margin:0}.fillblank-result{margin-top:14px;padding:12px 14px;border-radius:8px;border:1.5px solid var(--border)}.fillblank-result.correct{background:var(--success-bg);border-color:var(--success)}.fillblank-result.incorrect{background:var(--error-bg);border-color:var(--error)}.fillblank-result-label{font-size:.95rem;font-weight:700;margin-bottom:4px}.fillblank-result.correct .fillblank-result-label{color:var(--success)}.fillblank-result.incorrect .fillblank-result-label{color:var(--error)}.fillblank-result-meaning{font-size:.85rem;color:var(--text-secondary);margin:0}.fillblank-choices{display:flex;flex-direction:column;gap:10px;margin-top:8px}.fillblank-choice-btn{width:100%;padding:14px 20px;font-size:1rem;font-weight:600;background:var(--card-bg);border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;color:var(--text);transition:background .15s,border-color .15s,transform .08s}.fillblank-choice-btn:hover{background:var(--primary-light);border-color:var(--primary)}.fillblank-choice-btn:active{transform:scale(.98)}.dictation-play-btn{width:100%}.dictation-textarea{width:100%;min-height:72px;padding:12px 14px;font-size:1rem;font-family:inherit;color:var(--text);background:var(--card-bg);border:1.5px solid var(--border);border-radius:var(--radius);resize:none;outline:none;transition:border-color .15s}.dictation-textarea:focus{border-color:var(--primary)}.dictation-grade{display:flex;align-items:center;gap:12px;padding:12px 0;margin-bottom:12px;border-bottom:1px solid var(--border)}.dictation-diff{font-size:1rem;line-height:1.9;padding:12px;background:var(--bg);border-radius:8px;word-break:break-word}.dw-correct{color:var(--success)}.dw-sub{color:var(--error)}.dw-arrow{font-size:.82em}.dw-arrow,.dw-miss{color:var(--text-secondary)}.dw-miss{text-decoration:line-through;opacity:.7}.dw-extra{color:var(--warning)}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));grid-gap:10px;gap:10px}.badge-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:12px 8px;border-radius:10px;background:var(--bg);border:1.5px solid var(--border)}.badge-card.badge-earned{background:var(--primary-light);border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.12)}.badge-card.badge-locked{opacity:.85}.badge-icon{display:inline-flex;line-height:1;color:var(--primary)}.badge-locked .badge-icon{filter:grayscale(1);opacity:.55}.badge-title{font-size:.72rem;font-weight:700;color:var(--text);line-height:1.2}.badge-locked .badge-title,.badge-status{color:var(--text-secondary)}.badge-status{font-size:.66rem}.badge-status-earned{color:var(--primary);font-weight:700}.badge-progress{width:100%;height:5px;background:var(--border);border-radius:999px;overflow:hidden;margin-top:2px}.badge-progress-fill{height:100%;background:var(--primary);border-radius:999px;transition:width .5s ease}.badge-earned-row{display:flex;flex-wrap:wrap;gap:8px}.badge-earned-chip{align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--card-bg);border:1.5px solid var(--success);font-size:.82rem;font-weight:700}.badge-earned-chip,.badge-earned-chip-icon{display:inline-flex;color:var(--success)}.badge-toast{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom, 0px));left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);flex-wrap:wrap;display:flex;align-items:center;gap:12px;padding:12px 20px;border-radius:16px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#ffffff;box-shadow:0 6px 24px rgba(55,48,163,.4);z-index:320;animation:slideUp .25s ease;white-space:nowrap}.badge-toast-icon{display:inline-flex;line-height:1;color:var(--primary)}.badge-toast-body{display:flex;flex-direction:column;line-height:1.25}.badge-toast-label{font-size:.68rem;opacity:.85;font-weight:600}.badge-toast-title{font-size:.98rem;font-weight:800}.badge-toast-count{font-size:.72rem;opacity:.8;margin-left:4px}.next-theme-list{display:flex;flex-direction:column;gap:8px}.next-theme-chip{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;padding:10px 14px;border-radius:var(--radius);background:var(--card-bg);border:1.5px solid var(--border);font-size:.92rem;font-weight:600;color:var(--text);text-align:left;cursor:pointer;transition:background .15s,border-color .15s}.next-theme-chip:hover{background:var(--primary-light);border-color:var(--primary)}.next-theme-arrow{color:var(--primary);font-weight:800;margin-left:8px}.cal-wrap{display:flex;gap:6px;align-items:flex-start}.cal-weekdays{display:flex;flex-direction:column;gap:3px;padding-top:0}.cal-weekday{height:13px;font-size:.6rem;line-height:13px;color:var(--text-secondary);text-align:right;width:14px}.cal-grid{overflow-x:auto;flex:1 1}.cal-col,.cal-grid{display:flex;gap:3px}.cal-col{flex-direction:column}.cal-cell{width:13px;height:13px;border-radius:3px}.cal-cell,.cal-l0{background:var(--border)}.cal-l1{background:#c7d2fe}.cal-l2{background:#818cf8}.cal-l3{background:var(--primary)}.cal-future{background:transparent}.cal-today{box-shadow:0 0 0 2px var(--primary-dark)}.cal-legend{display:flex;align-items:center;gap:4px;margin-top:10px;font-size:.7rem;color:var(--text-secondary)}.cal-legend .cal-cell{display:inline-block}.speaking-target{font-size:1.15rem;font-weight:600;line-height:1.6;margin:8px 0 12px}.speaking-hint{font-size:.8rem;color:var(--text-secondary);margin-top:8px}.speaking-error{font-size:.9rem;color:var(--error);font-weight:600}.speaking-transcript-label{font-size:.75rem;color:var(--text-secondary);margin:8px 0 4px}.speaking-diff{font-size:1.05rem;line-height:1.9;padding:12px;background:var(--bg);border-radius:8px;word-break:break-word}.speaking-file-label{display:inline-flex;cursor:pointer}.loading-overlay,.speaking-file-label{align-items:center;justify-content:center}.loading-overlay{position:fixed;inset:0;min-height:100vh;min-height:100lvh;z-index:400;display:flex;overflow-y:auto;overscroll-behavior:contain;padding:calc(24px + env(safe-area-inset-top, 0px)) calc(20px + env(safe-area-inset-right, 0px)) calc(24px + env(safe-area-inset-bottom, 0px)) calc(20px + env(safe-area-inset-left, 0px));background:var(--bg);animation:loadingFadeIn .3s ease}@keyframes loadingFadeIn{0%{opacity:0}to{opacity:1}}.loading-card{width:100%;max-width:460px;text-align:center;margin:auto}.loading-title{font-size:1.4rem;font-weight:800;color:var(--text);margin-bottom:4px}.loading-subtitle{font-size:.9rem;color:var(--text-secondary);margin-bottom:20px}.loading-progress-track{height:12px;background:var(--border);border-radius:999px;overflow:hidden}.loading-progress-fill{height:100%;background:var(--primary);border-radius:999px;transition:width .4s ease}.loading-pct{font-size:1.6rem;font-weight:800;color:var(--primary);margin-top:10px}.loading-pct-note{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.loading-joke-area{margin-top:22px;min-height:172px;display:flex;flex-direction:column;justify-content:center}@media (prefers-reduced-motion:reduce){.loading-joke-ja{transition:none}}.loading-joke-lead{font-size:.8rem;color:var(--text-secondary);margin-bottom:10px}.loading-joke{font-size:1.05rem;font-weight:600;line-height:1.6;color:var(--text);opacity:0;transform:translateY(8px);transition:opacity .6s ease,transform .6s ease}.loading-joke.is-visible{opacity:1;transform:translateY(0)}.loading-joke-ja{font-size:.92rem;color:var(--text);margin-top:10px;line-height:1.6;opacity:0;transform:translateY(8px);transition:opacity .6s ease,transform .6s ease}.loading-joke-ja.is-visible{opacity:1;transform:translateY(0)}.loading-joke-hint{font-size:.8rem;color:var(--text-secondary);margin-top:8px;line-height:1.5;opacity:0;transform:translateY(8px);transition:opacity .6s ease,transform .6s ease}.loading-joke-hint.is-visible{opacity:1;transform:translateY(0)}.loading-done{margin-top:22px;font-size:1.05rem;font-weight:700;color:var(--success)}@media (prefers-reduced-motion:reduce){.loading-overlay{animation:none}.loading-joke,.loading-joke-hint,.loading-progress-fill{transition:none}}.vquiz-word{font-size:1.8rem;font-weight:800;margin:6px 0 10px}.vquiz-choices{display:flex;flex-direction:column;gap:8px;margin-top:4px}.vquiz-choice{width:100%;min-height:48px;padding:12px 14px;border-radius:var(--radius);border:1.5px solid var(--border);background:var(--card-bg);font-size:.98rem;font-weight:600;color:var(--text);text-align:left;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.vquiz-choice:hover{border-color:var(--primary)}.vquiz-choice:active:not(:disabled){transform:scale(.98)}.vquiz-choice:disabled{cursor:default}.vquiz-correct{background:var(--success-bg);border-color:var(--success);color:var(--success)}.vquiz-wrong{background:var(--error-bg);border-color:var(--error);color:var(--error)}.vquiz-dim{opacity:.55}.vquiz-example{font-size:.9rem;color:var(--text-secondary);line-height:1.6;margin-top:8px;padding:10px;background:var(--bg);border-radius:8px}.level-box{margin:4px 0 16px}.level-toggle{display:grid;grid-gap:4px;gap:4px;background:var(--bg);border-radius:10px;padding:4px}.level-toggle-wrap .level-btn{font-size:.78rem}.level-btn{min-width:0;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;padding:6px 2px 5px;border:none;border-radius:8px;background:transparent;font-size:.9rem;font-weight:700;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s}.level-bar{width:8px;border-radius:3px;background:var(--border);transition:background .15s}.level-btn.active{background:var(--primary);color:#fff}.level-btn.active .level-bar{background:#fff}.level-btn:hover .level-bar{background:var(--text-secondary)}.level-key{font-size:.78rem;line-height:1}.level-desc{color:var(--text-secondary);margin-top:8px}.level-desc,.level-nudge{font-size:.82rem;text-align:center}.level-nudge{color:var(--primary);font-weight:700;margin-top:6px}.level-nudge-down{color:var(--warning)}.tag-lvl-a1{background:var(--success-bg);color:var(--success)}.tag-lvl-a2{background:var(--primary-light);color:var(--primary)}.tag-lvl-b1{background:#f3e8ff;color:#7e22ce}.tag-lvl-b2{background:#ffe4e6;color:#be123c}.tag-lvl-c1{background:#ccfbf1;color:#0f766e}.tag-lvl-c2{background:#e0e7ff;color:#3730a3}.lang-box{margin:4px 0 12px}.lang-select{display:block;width:100%;min-height:44px;padding:8px 12px;border-radius:8px;border:2px solid var(--border);background:#fff;font-size:1rem;font-weight:600;color:var(--text)}.lang-select:focus{outline:none;border-color:var(--primary)}.icon{display:inline-block;vertical-align:-.16em;flex-shrink:0}.lang-picker{display:block;position:relative}.lang-combo{display:flex;align-items:center;gap:8px;padding:0 4px 0 12px;border:2px solid var(--border);border-radius:8px;background:#fff}.lang-combo:focus-within{border-color:var(--primary)}.lang-combo.is-open{border-color:var(--primary);border-bottom-left-radius:0;border-bottom-right-radius:0}.lang-combo-icon{color:var(--text-secondary)}.lang-combo-input{flex:1 1;min-width:0;min-height:44px;padding:8px 0;border:none;background:transparent;font-size:1rem;font-weight:600;color:var(--text)}.lang-combo-input:focus{outline:none}.lang-combo-arrow{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0;border:none;background:none;color:var(--primary);cursor:pointer}.lang-combo-arrow .icon{transform:rotate(90deg);transition:transform .15s}.lang-combo.is-open .lang-combo-arrow .icon{transform:rotate(-90deg)}.lang-combo-list{position:absolute;z-index:20;left:0;right:0;max-height:46vh;overflow-y:auto;-webkit-overflow-scrolling:touch;margin:0;padding:4px 0;list-style:none;background:#fff;border:2px solid var(--primary);border-top:none;border-radius:0 0 8px 8px;box-shadow:0 8px 20px rgba(15,23,42,.12)}.lang-combo-option{min-height:44px;display:flex;align-items:center;padding:8px 12px;font-size:.95rem;cursor:pointer}.lang-combo-option.is-active{background:var(--primary-light)}.lang-combo-option.is-selected{font-weight:800;color:var(--primary)}.lang-combo-empty{padding:12px;font-size:.85rem;color:var(--text-secondary)}.native-chip-wrap{position:relative}.native-chip{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:4px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:.82rem;font-weight:700;color:var(--text);cursor:pointer}.native-chip:hover{border-color:var(--primary)}.native-pop{position:absolute;top:40px;left:0;width:210px;background:var(--card-bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.14);padding:6px;z-index:101}.native-opt{display:block;width:100%;text-align:left;min-height:40px;padding:8px 10px;border:none;border-radius:8px;background:transparent;font-size:.9rem;color:var(--text);cursor:pointer}.native-opt:hover{background:var(--bg)}.native-opt.active{background:var(--primary-light);color:var(--primary)}.native-pop-hint{font-size:.72rem;color:var(--text-secondary);line-height:1.5;padding:6px 10px 4px;border-top:1px solid var(--border);margin-top:4px}.gender-chip{display:inline-block;padding:2px 8px;border-radius:100px;font-size:.72rem;font-weight:700;white-space:nowrap}.gender-der{background:#dbeafe;color:#1d4ed8}.gender-die{background:#fce7f3;color:#be185d}.gender-das{background:#dcfce7;color:#15803d}.gender-le{background:#dbeafe;color:#1d4ed8}.gender-la{background:#fce7f3;color:#be185d}.gender-el,.gender-il,.gender-o{background:#dbeafe;color:#1d4ed8}.gender-a{background:#fce7f3;color:#be185d}.level-scale{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:.72rem;color:var(--text-secondary)}.level-scale-line{flex:1 1;height:3px;border-radius:2px;background:linear-gradient(to right,var(--success),var(--primary),#be123c)}.source-fresh-badge{display:inline-block;margin-left:6px;padding:1px 6px;font-size:.68rem;font-weight:700;color:#15803d;background:#dcfce7;border-radius:6px;vertical-align:middle}.source-coverage-note{margin-top:8px;font-size:.76rem;color:var(--text-secondary);line-height:1.6}.tag-lvl-hsk1,.tag-lvl-hsk2,.tag-lvl-hsk3{background:#dcfce7;color:#15803d}.tag-lvl-hsk4,.tag-lvl-hsk5,.tag-lvl-hsk6{background:#fef9c3;color:#a16207}.tag-lvl-hsk7,.tag-lvl-hsk8,.tag-lvl-hsk9{background:#fee2e2;color:#b91c1c}.reading-pinyin{color:var(--text-secondary);font-size:.9rem;line-height:1.7;letter-spacing:.01em}.vocab-reading{color:var(--text-secondary);font-size:.82rem}.flashcard-reading{color:var(--text-secondary);font-size:1rem;margin-top:2px}.gender-de{background:#dbeafe;color:#1d4ed8}.gender-het{background:#dcfce7;color:#15803d}.gender-en{background:#dbeafe;color:#1d4ed8}.gender-ei{background:#fce7f3;color:#be185d}.gender-et,.gender-ett{background:#dcfce7;color:#15803d}.chinese-text{line-height:2.3}.chinese-ruby{ruby-position:over;-webkit-ruby-position:before;ruby-align:center;text-align:center;margin:0 1px}.chinese-ruby rt{text-align:center;font-size:.62em;font-weight:400;color:var(--text-secondary);letter-spacing:0;line-height:1.2;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (max-width:640px){.chinese-text{line-height:2.5}.chinese-ruby rt{font-size:.6em}}.interactive-reading-text{line-height:1.95}.clickable-word{cursor:pointer;border-bottom:1px dotted rgba(100,116,139,.6);border-radius:2px;transition:background .12s}.clickable-word:hover{background:rgba(99,102,241,.12)}.clickable-word:active{background:rgba(99,102,241,.26)}.tap-hint{font-size:.76rem;color:var(--text-secondary);margin:0 0 6px}.word-info-popover{position:fixed;z-index:90;max-width:calc(100vw - 16px);background:var(--surface,#fff);border:1px solid var(--border,#e2e8f0);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.14);padding:12px 14px}.wip-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.wip-word{font-weight:800;font-size:1.05rem}.wip-pos{font-size:.72rem;color:var(--text-secondary);background:rgba(100,116,139,.12);padding:1px 7px;border-radius:999px}.wip-level{font-size:.72rem;color:#6366f1;font-weight:700}.wip-save{margin-left:auto;background:none;border:none;cursor:pointer;color:var(--text-secondary);min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.wip-save.is-saved{color:#f59e0b;cursor:default}.wip-speak{margin-left:auto;background:none;border:none;cursor:pointer;color:var(--primary);min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.wip-speak .is-playing{animation:wip-speak-pulse .8s ease-in-out infinite}@keyframes wip-speak-pulse{0%,to{opacity:1}50%{opacity:.45}}.wip-close{margin-left:auto;background:none;border:none;font-size:1.2rem;line-height:1;cursor:pointer;color:var(--text-secondary);min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.wip-speak~.wip-close,.wip-speak~.wip-save{margin-left:0}.wip-meaning{margin:8px 0 0;font-size:.98rem}.wip-lemma{margin:4px 0 0;font-size:.82rem}.wip-breakdown,.wip-lemma{color:var(--text-secondary)}.wip-breakdown{margin:6px 0 0;font-size:.78rem;line-height:1.5;word-break:keep-all}@media (max-width:640px){.clickable-word{padding:0 1px}.word-info-popover{max-width:calc(100vw - 24px)}}.course-main{max-width:720px;margin:0 auto;padding:16px;display:flex;flex-direction:column;min-height:calc(100dvh - 32px)}.course-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.course-header-title{font-weight:800}.course-nav-btn,.sound-toggle{min-width:44px;min-height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center}.sound-toggle{color:var(--text-secondary)}.sound-toggle[aria-pressed=true]{color:var(--text-tertiary,#94a3b8);opacity:.75}.course-loading{text-align:center;color:var(--text-secondary);padding:40px 0}.course-entry{text-align:center;margin:10px 0 4px}.course-entry-link{display:inline-block;padding:10px 18px;min-height:44px;line-height:24px;border-radius:var(--radius);border:1px solid var(--primary-light);background:var(--primary-light);color:var(--primary-dark);font-weight:700;text-decoration:none}.course-entry-link:hover{background:#e0e7ff}.course-home-hero{display:flex;align-items:center;gap:16px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);margin-bottom:14px}.course-home-title{font-weight:800;font-size:1.05rem;margin:0 0 8px}.course-ring-bg{fill:none;stroke:var(--border);stroke-width:5}.course-ring-fg{fill:none;stroke:var(--primary);stroke-width:5;stroke-linecap:round;transform:rotate(-90deg);transform-origin:20px 20px;transition:stroke-dashoffset .5s ease}.course-ring-text{fill:var(--text);font-size:12px;font-weight:800}.course-cards{display:flex;flex-wrap:wrap;gap:8px}.course-card{padding:10px 14px;min-height:44px;border-radius:var(--radius);border:1px solid var(--border);background:var(--card-bg);font-weight:700;color:var(--text)}.course-card-soon,.course-card:disabled{opacity:.5;color:var(--text-secondary)}.course-path-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.course-path-progress{font-size:.84rem;color:var(--text-secondary);font-weight:700}.course-path{list-style:none;margin:0;padding:0}.course-node{margin-bottom:10px}.course-node-btn{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:14px;min-height:44px;border-radius:var(--radius);border:1px solid var(--border);background:var(--card-bg);box-shadow:var(--shadow)}.course-node.locked .course-node-btn{opacity:.55}.course-node.current .course-node-btn{border-color:var(--primary);background:var(--primary-light)}.course-node.done .course-node-mark{color:var(--success)}.course-node-mark{display:inline-flex;align-items:center;justify-content:center;width:24px;flex-shrink:0}.course-node-body{display:flex;flex-direction:column;flex:1 1;min-width:0}.course-node-title{font-weight:700}.course-node-cando{font-size:.78rem;color:var(--text-secondary)}.course-node-stars{display:inline-flex;gap:1px;color:var(--warning)}.course-node.pulse .course-node-mark{animation:coursePulse 1.4s ease-in-out infinite}@keyframes coursePulse{0%,to{transform:scale(1)}50%{transform:scale(1.25)}}.course-node.just-open .course-node-mark{animation:nodeOpen .52s cubic-bezier(.2,1.4,.4,1) .16s both,coursePulse 1.4s ease-in-out .68s infinite}@keyframes nodeOpen{0%{transform:scale(1)}35%{transform:scale(1.35)}70%{transform:scale(.94)}to{transform:scale(1)}}.course-unit-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.course-dots,.course-steps{display:flex;gap:6px}.course-dot,.course-step-dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:background-color .22s ease,transform .22s ease}.course-dot.current,.course-step-dot.active{background:var(--primary);transform:scale(1.5)}.course-dot.done,.course-step-dot.done{background:var(--success);animation:dotFill .28s ease-out}@keyframes dotFill{0%{transform:scale(1)}45%{transform:scale(1.55)}to{transform:scale(1)}}.course-unit-title{font-size:1.15rem;font-weight:800;margin:6px 0 14px}@media (max-width:400px){.course-unit-top{margin-bottom:6px}.course-unit-title{font-size:1.05rem;margin:2px 0 8px}.course-table-wrap{margin:2px 0 10px}}.course-cando{font-weight:700;color:var(--primary-dark);background:var(--primary-light);display:inline-block;padding:6px 12px;border-radius:999px;margin:0 0 12px}.course-est{color:var(--text-secondary);font-weight:600}.course-explanation{line-height:1.9;margin:0 0 14px}.course-next{width:100%;margin-top:12px}.course-example{padding:14px;margin-bottom:10px}.course-example-row{display:flex;align-items:flex-start;gap:8px}.course-example-text{flex:1 1;min-width:0}.course-speak{flex-shrink:0}.course-focus{background:#dbeafe;border-radius:4px;padding:0 2px;font-weight:700}.lesson-feedback-suggest{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 0;font-size:.86rem;color:var(--text-secondary)}.course-weak{margin:10px 0 4px}.course-weak-lead{margin:0 0 6px;font-size:.8rem;color:var(--text-secondary)}.course-weak-list{display:flex;flex-wrap:wrap;gap:10px 6px}.course-weak-item{background:var(--surface,#fff);border:1px solid var(--border);border-radius:999px;padding:7px 13px;font-size:.84rem;color:var(--text);cursor:pointer;min-height:36px;position:relative}.course-weak-item:hover{border-color:var(--primary)}.course-next-peek{background:var(--surface,#fff);border:1px solid var(--border);border-radius:10px;padding:13px 15px;margin:16px auto 0;max-width:420px;text-align:left}.course-next-peek-title{margin:0 0 8px;font-size:.86rem;font-weight:700;color:var(--text-secondary)}.course-next-peek-text{margin:0;font-size:.98rem;line-height:1.6}.course-next-peek-tr{margin:3px 0 0;font-size:.86rem;color:var(--text-secondary)}.course-resume{background:var(--surface,#fff);border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin:0 0 14px}.course-resume-lead{margin:0 0 10px;font-size:.92rem;color:var(--text-secondary)}.course-resume-actions{display:flex;gap:8px;flex-wrap:wrap}.course-resume-actions .btn{flex:1 1 auto;min-width:120px}.course-example-tr{color:var(--text-secondary);margin:4px 0 0}.course-ex-dots{justify-content:center;margin:4px 0}.course-ex-count{font-size:.8rem;color:var(--text-secondary);text-align:center;margin:0 0 8px}.course-ex-nav{display:flex;gap:8px;margin-top:12px}.course-ex-nav .btn{flex:1 1}.course-ex-nav .course-next{margin-top:0}.course-progress-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 4px}.course-progress-row .course-dots{margin:0}.course-progress-row .course-q-count{margin:0;flex-shrink:0}.course-q-count{font-size:.8rem;color:var(--text-secondary);margin:8px 0 4px}.course-q-row{display:flex;align-items:flex-start;gap:8px}.course-q-body{flex:1 1;min-width:0}.course-q-speak{flex-shrink:0;min-width:44px;min-height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center}.course-q-text{font-size:1.15rem;font-weight:700;margin:0 0 14px}.course-q-text:has(+.course-q-tr){margin-bottom:4px}.course-q-tr{font-size:.9rem;font-weight:500;color:var(--text-secondary);margin:0 0 14px}.course-q-interactive .reading-text{font-size:inherit;font-weight:inherit;line-height:1.6;margin:0}.course-q-interactive .tap-hint{display:none}.course-choices{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.course-choices.is-wide{grid-template-columns:1fr;gap:6px}.course-choices.is-wide .course-choice{padding:9px 12px}.course-choices.is-answered .course-choice{min-height:0;padding:8px 10px;font-size:.95rem}.course-choice{padding:12px 14px;min-height:44px;border-radius:var(--radius);border:1px solid var(--border);background:var(--card-bg);font-weight:600;font-size:1rem;text-align:left;transition:transform .1s}.course-choice:active:not(:disabled){transform:scale(.98)}.course-choice.correct{border-color:var(--success);background:var(--success-bg);color:var(--success);animation:choicePop .26s ease-out}.course-choice.wrong{border-color:var(--error);background:var(--error-bg);color:var(--error);animation:choiceShake .3s ease-out}@keyframes choicePop{0%{transform:scale(1)}40%{transform:scale(1.035)}to{transform:scale(1)}}@keyframes choiceShake{0%,to{transform:translateX(0)}18%{transform:translateX(-5px)}38%{transform:translateX(4px)}58%{transform:translateX(-3px)}78%{transform:translateX(2px)}}.course-feedback{margin-top:10px;padding:12px;border-radius:var(--radius);animation:feedbackRise .17s ease-out}@keyframes feedbackRise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.course-feedback.ok{background:var(--success-bg)}.course-feedback.ng{background:var(--error-bg)}.course-feedback-head{font-weight:800;display:flex;align-items:center;gap:8px;margin:0 0 6px}.course-feedback-exp{color:var(--text-secondary);margin:0 0 10px}.lesson-feedback{text-align:left}.lesson-feedback-overall{display:flex;gap:8px;flex-wrap:wrap}.lesson-feedback-overall .btn{min-height:44px}.lesson-feedback-detail{margin-top:14px}.lesson-feedback-detail>p{margin:0 0 7px;color:var(--text-secondary);font-size:.82rem;font-weight:700}.lesson-feedback-options{display:flex;gap:7px;flex-wrap:wrap}.lesson-feedback-options button{min-height:44px;padding:7px 11px;border:1px solid var(--border);border-radius:8px;background:var(--card-bg);color:var(--text);font:inherit;font-size:.82rem;cursor:pointer}.lesson-feedback-options button.selected{border-color:var(--primary);background:var(--primary-light);color:var(--primary);font-weight:700}.lesson-feedback-options button:disabled{cursor:wait;opacity:.65}.lesson-feedback-status{min-height:18px;margin:8px 0 0;color:var(--success);font-size:.78rem}.lesson-feedback-status.error{color:var(--error)}.course-complete,.course-practice-result{text-align:center;padding:20px 0}.course-complete-score,.course-result-score{font-size:1.2rem;font-weight:800;margin:8px 0}.course-complete-actions,.course-result-actions{display:flex;flex-direction:column;gap:8px;max-width:320px;margin:12px auto 0}.course-complete-badge{color:var(--success);line-height:1;position:relative;display:inline-block;animation:completePop .38s cubic-bezier(.2,1.4,.4,1) both}@keyframes completePop{0%{opacity:0;transform:scale(.6)}55%{opacity:1;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes completeRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.course-complete .course-complete-msg{animation:completeRise .26s ease-out 70ms both}.course-complete .course-complete-score{animation:completeRise .26s ease-out .12s both}.course-complete .course-streak{animation:completeRise .26s ease-out .17s both}.course-complete .course-complete-actions{animation:completeRise .26s ease-out .21s both}.course-complete .course-stars>:first-child{animation:starPop .3s ease-out .15s both}.course-complete .course-stars>:nth-child(2){animation:starPop .3s ease-out .22s both}.course-complete .course-stars>:nth-child(3){animation:starPop .3s ease-out .29s both}@keyframes starPop{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.25)}to{opacity:1;transform:scale(1)}}.course-complete-badge.is-trophy:after{content:"";position:absolute;left:50%;top:50%;width:62px;height:62px;border-radius:50%;border:2px solid var(--warning);pointer-events:none;animation:trophyRing .82s ease-out .22s 2 both}@keyframes trophyRing{0%{opacity:.5;transform:translate(-50%,-50%) scale(.35)}to{opacity:0;transform:translate(-50%,-50%) scale(2.4)}}.course-complete-msg{font-weight:800;font-size:1.1rem}.course-stars{display:inline-flex;gap:2px;color:var(--warning);vertical-align:-2px}.course-trophies{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px;color:var(--warning);font-size:.82rem}.course-trophies-label,.course-trophy{font-weight:700}.course-trophy{padding:2px 8px;border:1px solid color-mix(in srgb,var(--warning) 40%,transparent);border-radius:999px;background:color-mix(in srgb,var(--warning) 12%,transparent)}.course-complete-badge.is-trophy{color:var(--warning)}.course-fab-dot{position:absolute;top:6px;right:6px;width:10px;height:10px;border-radius:50%;background:var(--warning);border:2px solid var(--bg)}.course-redo{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:44px;margin:0 0 12px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--warning) 45%,transparent);border-radius:12px;background:color-mix(in srgb,var(--warning) 10%,transparent);color:var(--warning);font-size:.9rem;font-weight:600;cursor:pointer}.course-redo:hover{background:color-mix(in srgb,var(--warning) 16%,transparent)}.course-link,.course-redo-view{display:block}.course-link{margin:12px auto 0;background:none;border:none;color:var(--primary);font-size:.84rem;cursor:pointer;position:relative}.course-link:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;min-width:44px;height:44px}@media (prefers-reduced-motion:reduce){.course-node.pulse .course-node-mark{animation:none}.course-ring-fg{transition:none}.course-choice.correct,.course-choice.wrong,.course-dot.done,.course-feedback,.course-step-dot.done,.course-complete .course-complete-actions,.course-complete .course-complete-msg,.course-complete .course-complete-score,.course-complete .course-stars>:nth-child(n),.course-complete .course-streak,.course-complete-badge{animation:none}.course-complete-badge.is-trophy:after{display:none}.course-node.just-open .course-node-mark{animation:none}.course-dot,.course-step-dot{transition:none}}.course-home-lead{color:var(--text-secondary);margin:0 0 12px}.course-home{min-height:0}.course-home,.course-list{display:flex;flex-direction:column;flex:1 1}.course-list{gap:10px}.course-list-card{display:flex;align-items:center;gap:12px;text-align:left;padding:10px 12px;min-height:44px;flex:1 1;max-height:140px;border-radius:var(--radius);border:1px solid var(--border);background:var(--card-bg);box-shadow:var(--shadow)}.course-list-card.course-card-soon,.course-list-card:disabled{opacity:.5;color:var(--text-secondary);box-shadow:none}.course-list-body{display:flex;flex-direction:column;flex:1 1;min-width:0}.course-list-title{font-weight:800;font-size:clamp(1rem,calc(var(--lv-card-h, 0px) * .22),1.5rem)}.course-list-sub{font-size:clamp(.8rem,calc(var(--lv-card-h, 0px) * .15),1.05rem);color:var(--text-secondary)}.course-list-arrow{font-size:clamp(1rem,calc(var(--lv-card-h, 0px) * .28),1.8rem)}.course-ring{width:clamp(40px,calc(var(--lv-card-h, 0px) * .62),92px);height:clamp(40px,calc(var(--lv-card-h, 0px) * .62),92px);flex-shrink:0}.course-list-arrow{display:inline-flex;align-items:center;color:var(--primary);font-weight:800}.course-zh-btns{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.course-example-note{font-size:.82rem;color:var(--primary-dark);background:var(--primary-light);border-radius:8px;padding:6px 10px;margin:6px 0 0}.course-table-wrap{margin:4px 0 14px}.course-table-title{font-weight:800;font-size:.9rem;margin:0 0 6px;color:var(--text)}.course-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius);border:1px solid var(--border)}.course-table{border-collapse:collapse;width:100%;font-size:.9rem;background:var(--card-bg)}.course-table td,.course-table th{border:1px solid var(--border);padding:8px 10px;text-align:center;white-space:nowrap}.course-table thead th{background:var(--primary-light);color:var(--primary-dark);font-weight:700}.course-table-rowhead{background:var(--bg);color:var(--text-secondary);font-weight:700;text-align:left}.course-table-note{font-size:.8rem;color:var(--text-secondary);margin:6px 0 0}.curio-wrap{display:flex;flex-direction:column;align-items:center;gap:8px}.curio{display:inline-block;line-height:0}.curio-svg{display:block}.curio--small .curio-svg{width:56px;height:56px}.curio--medium .curio-svg{width:88px;height:88px}.curio--large .curio-svg{width:120px;height:120px}.curio-inner{display:inline-block;transform-origin:center bottom;animation:curio-float 3s ease-in-out infinite}.curio--completed .curio-inner{animation:curio-celebrate 1.1s ease-in-out infinite}.curio--correct .curio-inner{animation:curio-hop .7s ease-in-out infinite}.curio--incorrect .curio-inner{animation:curio-tilt 1s ease-in-out infinite}.curio--greeting .curio-inner{animation:curio-greet 1.6s ease-in-out infinite}.curio--sleepy .curio-inner{animation:curio-sleepy 3.6s ease-in-out infinite}@keyframes curio-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5%)}}@keyframes curio-celebrate{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-12%) rotate(-6deg)}75%{transform:translateY(-6%) rotate(6deg)}}@keyframes curio-hop{0%,to{transform:translateY(0)}40%{transform:translateY(-14%)}}@keyframes curio-tilt{0%,to{transform:rotate(0)}30%{transform:rotate(-8deg)}60%{transform:rotate(5deg)}}@keyframes curio-greet{0%,to{transform:rotate(0)}20%{transform:rotate(-4deg)}40%{transform:rotate(4deg)}}@keyframes curio-sleepy{0%,to{transform:translateY(0)}50%{transform:translateY(2%)}}.curio-grain{opacity:.35}.curio--completed .curio-grain,.curio--correct .curio-grain{animation:curio-twinkle 1.2s ease-in-out infinite}@keyframes curio-twinkle{0%,to{opacity:.3}50%{opacity:1}}.curio--sleepy .curio-inner{opacity:.9}.curio-bubble{position:relative;max-width:260px;margin:0;background:var(--primary-light,#e6f7f1);color:var(--text,#223a5e);border:1px solid var(--primary,#4fd1b0);border-radius:14px;padding:8px 14px;font-size:.9rem;font-weight:600;text-align:center;line-height:1.5}.curio-bubble:before{content:"";position:absolute;top:-7px;left:50%;transform:translateX(-50%);border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid var(--primary,#4fd1b0)}@media (prefers-reduced-motion:reduce){.curio-grain,.curio-inner{animation:none!important}}.curio-art{position:relative;display:inline-flex;flex-direction:column;align-items:center;line-height:0}.curio-art-img{display:block;height:auto;max-width:100%;transform-origin:center bottom;animation:curio-art-float 3.6s ease-in-out infinite;will-change:transform;-webkit-user-select:none;-moz-user-select:none;user-select:none}.curio-art-shadow{display:block;width:62%;height:10px;margin-top:-6px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(15,23,42,.35),rgba(15,23,42,0) 70%);transform-origin:center;animation:curio-art-shadow 3.6s ease-in-out infinite}@keyframes curio-art-float{0%,to{transform:translateY(0) rotate(-1.6deg) scale(1)}50%{transform:translateY(-14px) rotate(1.6deg) scale(.99,1.012)}}@keyframes curio-art-shadow{0%,to{transform:scaleX(1);opacity:.3}50%{transform:scaleX(.82);opacity:.16}}@media (prefers-reduced-motion:reduce){.curio-art-img,.curio-art-shadow{animation:none!important}}.curio-exp-stack{position:relative;transform-origin:center bottom}.curio-exp-float{animation:curio-art-float 3.6s ease-in-out infinite;will-change:transform}.curio-exp-img{display:block;height:auto;max-width:100%;transition:opacity .4s ease-in-out;-webkit-user-select:none;-moz-user-select:none;user-select:none}.curio-exp-img:not(:first-child){position:absolute;top:0;left:0}@media (prefers-reduced-motion:reduce){.curio-exp-float{animation:none!important}.curio-exp-img{transition:none!important}}.loading-curio{display:flex;margin:0 auto 10px}.oauth-btns{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.oauth-btn{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.oauth-btn:hover:not(:disabled){background:var(--surface,rgba(127,127,127,.08))}.oauth-btn:disabled{opacity:.6;cursor:default}.oauth-btn-github{background:#24292f;color:#ffffff;border-color:#24292f}.oauth-btn-github:hover:not(:disabled){background:#333b42}.oauth-divider{display:flex;align-items:center;text-align:center;color:var(--text-secondary);font-size:.8rem;margin-bottom:16px}.oauth-divider:after,.oauth-divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.oauth-divider span{padding:0 12px}.course-home-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 12px}.course-home-hint{font-size:.78rem;color:var(--text-secondary)}.course-home-lead-others{margin-top:20px}.course-lang-row{margin-bottom:14px}.course-lang-label{font-size:.85rem;font-weight:700;color:var(--text-secondary)}.course-lang-select{min-height:44px;flex:1 1;max-width:320px}.course-lang-loading{color:var(--text-secondary);padding:16px 0}.course-cond-note{font-size:.8rem;color:var(--text);background:var(--warning-bg);border:1px solid var(--warning);border-radius:10px;padding:8px 12px;margin:0 0 12px;line-height:1.6}.course-list-card.locked{opacity:.7;border-style:dashed}.course-lock-mark{display:inline-flex;align-items:center;justify-content:center;width:54px;flex-shrink:0}.course-rec-badge{display:inline-block;margin-left:8px;font-size:.68rem;font-weight:700;color:var(--primary);background:var(--primary-light);border-radius:999px;padding:1px 8px;vertical-align:middle}.assessment,.assessment-result{max-width:640px;margin:0 auto}.assessment-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.assessment-progress{font-size:.8rem;color:var(--text-secondary);font-weight:700}.assessment-title{font-size:1.1rem;font-weight:800;margin:0 0 8px;color:var(--text)}.assessment-note{font-size:.8rem;color:var(--warning);background:var(--warning-bg);border-radius:10px;padding:8px 12px;margin:0 0 12px}.assessment-progress-track{height:8px;background:var(--border);border-radius:999px;overflow:hidden;margin-bottom:16px}.assessment-progress-fill{height:100%;background:var(--primary);border-radius:999px;transition:width .3s ease}.assessment-q{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:16px}.assessment-question{font-size:1.05rem;font-weight:700;color:var(--text);margin:0 0 14px;line-height:1.6}.assessment-choices{display:flex;flex-direction:column;gap:8px}.assessment-choice{text-align:left;padding:12px 14px;min-height:44px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);font-size:.95rem;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .1s ease}.assessment-choice:hover{border-color:var(--primary)}.assessment-choice:active:not(:disabled){transform:scale(.98)}.assessment-choice.selected{border-color:var(--primary);background:var(--primary-light);font-weight:700}.assessment-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:16px}.result-hero{text-align:center;border-radius:14px;padding:20px;margin-bottom:20px;border:1px solid var(--border)}.result-hero.result-pass{background:var(--success-bg);border-color:var(--success)}.result-hero.result-recommend{background:var(--warning-bg);border-color:var(--warning)}.result-hero.result-fail{background:#fef2f2;border-color:#dc2626}.result-score{font-size:1.6rem;font-weight:800;color:var(--text);margin:0}.result-verdict{font-size:1rem;font-weight:700;margin:4px 0}.result-assessed{font-size:.95rem;color:var(--text);margin:4px 0}.result-unlocked{font-size:.9rem;font-weight:700;color:var(--success);margin:8px 0 0}.result-hint{font-size:.82rem;color:var(--text-secondary);margin:8px 0 0}.result-subtitle{font-size:.95rem;font-weight:800;color:var(--text);margin:0 0 8px}.result-domains,.result-reviews{margin-bottom:20px}.result-domain-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.result-domain{display:flex;align-items:center;gap:10px}.result-domain-name{font-size:.82rem;width:30%;min-width:90px;color:var(--text)}.result-domain-bar{flex:1 1;height:8px;background:var(--border);border-radius:999px;overflow:hidden}.result-domain-fill{display:block;height:100%;background:var(--primary);border-radius:999px}.result-domain-pct{font-size:.78rem;color:var(--text-secondary);width:3rem;text-align:right}.result-review-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.result-review-btn{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:12px 14px;min-height:44px;border:1px solid var(--border);border-radius:10px;background:var(--card-bg);cursor:pointer}.result-review-btn:hover{border-color:var(--primary)}.result-review-level{font-size:.72rem;font-weight:800;color:var(--primary);background:var(--primary-light);border-radius:6px;padding:2px 6px;flex-shrink:0}.result-review-title{flex:1 1;font-size:.9rem;color:var(--text);min-width:0}.result-review-go{font-size:.8rem;color:var(--primary);font-weight:700;flex-shrink:0}@media (max-width:480px){.ladder-card{flex-wrap:wrap}.ladder-actions{width:100%;justify-content:flex-start}}@media not ((hover:hover) and (pointer:fine)){.vocab-audio-btn:hover{background:none}.native-chip:hover{border-color:var(--border)}.btn:hover{filter:none}.course-list-card:hover{border-color:var(--border);box-shadow:none}.choice-btn:hover:not(:disabled){border-color:var(--border);background:var(--card-bg)}.course-choice:hover:not(:disabled){border-color:var(--border)}.clickable-word:hover:not(:active){background:none}}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button:focus:not(:focus-visible){outline:none}.course-load-failed{padding:24px 0;display:grid;grid-gap:12px;gap:12px;color:var(--text-secondary)}.plans-page{max-width:980px}.plans-head{text-align:center;padding:16px 0 8px}.plans-title{font-size:1.6rem;font-weight:800;color:var(--text);letter-spacing:0}.plans-sub{color:var(--text-secondary);font-size:.92rem;margin-top:6px}.cycle-toggle{display:flex;gap:4px;background:var(--border);border-radius:100px;padding:4px;max-width:320px;margin:14px auto 20px}.cycle-opt{flex:1 1;min-height:44px;border:none;border-radius:100px;background:transparent;color:var(--text-secondary);font-size:.9rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .15s,color .15s}.cycle-opt.on{background:#fff;color:var(--primary);box-shadow:var(--shadow)}.cycle-save{font-size:.66rem;font-weight:800;color:var(--success);background:var(--success-bg);border-radius:100px;padding:2px 7px}.plan-cards{display:grid;grid-gap:14px;gap:14px}.plan-card{position:relative;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 20px;min-width:0}.plan-card.recommended{border:2px solid var(--primary);box-shadow:0 4px 16px rgba(79,70,229,.16)}.plan-card.premium{border-color:#99d8cf}.plan-card.current{border-color:var(--success)}.plan-badge{position:absolute;top:-11px;left:20px;background:var(--primary);color:#fff;font-size:.72rem;font-weight:800;padding:3px 12px;border-radius:100px}.plan-badge.premium{background:#0f766e}.plan-current-tag{position:absolute;top:16px;right:16px;background:var(--success-bg);color:var(--success);font-size:.7rem;font-weight:800;padding:3px 10px;border-radius:100px}.plan-name{font-size:1.25rem;font-weight:800;color:var(--text)}.plan-tagline{color:var(--text-secondary);font-size:.85rem;margin-top:2px}.plan-price{margin:14px 0 2px;display:flex;align-items:baseline;gap:2px}.plan-price-main{font-size:2rem;font-weight:800;color:var(--text);letter-spacing:0}.plan-price-unit{font-size:.95rem;color:var(--text-secondary);font-weight:600}.plan-price-note{font-size:.8rem;color:var(--text-secondary);min-height:1.2em}.plan-cta{margin:16px 0 4px}.plan-picked-note{font-size:.76rem;color:var(--success);text-align:center;margin-bottom:6px}.plan-feats{list-style:none;margin-top:10px;display:grid;grid-gap:9px;gap:9px}.plan-feats li{display:flex;gap:8px;font-size:.9rem;color:var(--text);line-height:1.45}.feat-check{color:var(--success);font-weight:800;flex-shrink:0}.plans-trust{text-align:center;font-size:.76rem;color:var(--text-secondary);margin:18px 0 8px}.plans-legal{margin-top:28px}.legal-list{display:grid;grid-template-columns:max-content 1fr;grid-gap:6px 14px;gap:6px 14px;margin:0;font-size:.9rem}.legal-list dt{font-weight:700;color:var(--text-secondary)}.legal-list dd{margin:0}@media (max-width:480px){.legal-list{grid-template-columns:1fr;gap:2px}.legal-list dd{margin-bottom:10px}}.plans-h2{font-size:1.15rem;font-weight:800;color:var(--text);margin:30px 0 12px;text-align:center}.matrix-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--card-bg)}.matrix{width:100%;border-collapse:collapse;font-size:.86rem;min-width:460px}.matrix td,.matrix th{padding:11px 12px;text-align:center;border-bottom:1px solid var(--border)}.matrix thead th{font-weight:800;color:var(--text);background:#f8fafc}.matrix tbody th[scope=row]{text-align:left;font-weight:600;color:var(--text);white-space:nowrap}.matrix tbody tr:last-child td,.matrix tbody tr:last-child th{border-bottom:none}.matrix .matrix-hi{background:var(--primary-light)}.matrix thead th.matrix-hi{color:var(--primary)}.matrix .matrix-premium{background:#f0fdfa}.matrix thead th.matrix-premium{color:#0f766e}.matrix-yes{color:var(--success);font-weight:800}.matrix-no{color:var(--text-secondary)}@media (max-width:480px){.matrix{min-width:620px;font-size:.76rem}.matrix td,.matrix th{padding:10px 6px}.matrix tbody th[scope=row]{white-space:normal;overflow-wrap:anywhere}}@media (min-width:760px){.plan-cards{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.plan-card{padding:22px 18px}}.faq{display:grid;grid-gap:10px;gap:10px}.faq-item{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:4px 16px}.faq-q{cursor:pointer;font-weight:700;color:var(--text);padding:12px 0;font-size:.94rem;list-style:none}.faq-q::-webkit-details-marker{display:none}.faq-q:before{content:"＋";color:var(--primary);font-weight:800;margin-right:8px}.faq-item[open] .faq-q:before{content:"－"}.faq-a{color:var(--text-secondary);font-size:.88rem;padding:0 0 14px;line-height:1.6}.plans-foot{margin:26px 0 8px}.plans-entry{text-align:center;margin:4px 0 10px}.plans-entry-link{display:inline-flex;min-height:44px;align-items:center;color:var(--text-secondary);font-size:.86rem;font-weight:600;text-decoration:none;padding:6px 14px;border-radius:100px}.plans-entry-link:hover{color:var(--primary);background:var(--primary-light)}.usage-meter{margin:14px 0 0;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card-bg)}.usage-foot-notice{margin-top:14px}.usage-meter-slim{display:flex;flex-direction:column;justify-content:center;min-height:44px;text-decoration:none;color:inherit}.usage-slim-main{display:flex;align-items:center;gap:10px}.usage-slim-main .usage-meter-track{flex:1 1;margin-top:0}.usage-slim-count{font-size:.78rem;font-weight:700;color:var(--text-secondary);white-space:nowrap}.usage-slim-name{font-size:.82rem;font-weight:700}.usage-meter-slim .icon{color:var(--primary);flex:none}.usage-slim-detail{display:block;margin-top:6px;font-size:.72rem;color:var(--text-secondary);word-break:keep-all}.usage-meter-slim.is-low .usage-meter-track span{background:#e11d48}.usage-meter-slim.is-low .usage-slim-count{color:#e11d48}.usage-meter-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.82rem}.usage-meter-head a{color:var(--primary);font-weight:700;text-decoration:none;white-space:nowrap}.usage-meter-track{height:5px;margin-top:8px;overflow:hidden;border-radius:4px;background:var(--border)}.usage-meter-track span{display:block;height:100%;border-radius:inherit;background:var(--primary)}.usage-meter p{margin-top:5px}.usage-audio,.usage-meter p{color:var(--text-secondary);font-size:.72rem}.usage-audio{display:flex;flex-wrap:wrap;gap:5px 12px;margin-top:8px}.usage-audio span{white-space:nowrap}.loading-joke-answer{margin-top:2px}.sub-panel{margin:24px 0;padding:16px;border:1px solid var(--border);border-radius:12px}.sub-manage{width:100%;min-height:44px;margin-top:12px}.sub-note{margin-top:8px}.lesson-card{position:relative}.lesson-measure{height:0;overflow:hidden;visibility:hidden;pointer-events:none}.lesson-measure p{margin:0}.lesson-pager{display:flex;align-items:center;justify-content:center;gap:12px;margin:10px 0 2px}.lesson-pager-btn{min-width:44px;min-height:44px;padding:0}.lesson-pager-count{font-size:.85rem;font-weight:700;color:var(--text-secondary);min-width:56px;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.course-streak{display:inline-flex;align-items:center;gap:5px;margin:8px 0 0;font-size:.85rem;font-weight:700;color:var(--text-secondary)}.net-banner{position:-webkit-sticky;position:sticky;top:0;z-index:60;padding:8px 12px}.net-banner .btn{flex-shrink:0}.net-banner{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:8px 14px;font-size:.85rem;font-weight:600;text-align:center}.net-banner-offline{background:var(--bg);color:var(--text-secondary);border-bottom:1px solid var(--border)}.net-banner-update{background:var(--primary-light);color:var(--primary-dark);border-bottom:1px solid var(--primary)}.net-banner .btn{min-height:44px}.course-recap{background:var(--primary-light);color:var(--primary-dark);border-color:var(--primary)}.net-banner-notice{background:var(--bg);color:var(--text);border-bottom:1px solid var(--border)}.script-course-sub{margin:2px 0 14px;font-size:13px;color:var(--text-secondary);text-align:center}.script-unit{display:flex;flex-direction:column;gap:10px}.script-unit-title{margin:0;font-size:18px}.script-unit-cando{margin:0;font-size:13px;color:var(--text-secondary)}.script-unit-explain{margin:6px 0 0;font-size:15px;line-height:1.85}.script-unit-writing{display:flex;gap:8px;align-items:flex-start;margin:4px 0 0;padding:10px 12px;font-size:13.5px;line-height:1.7;background:var(--card-bg);border:1px solid var(--border);border-radius:10px}.script-card{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.script-card-count{margin:0;font-size:12px;color:var(--text-secondary)}.script-card-glyph{margin:2px 0 0;font-size:76px;line-height:1.15;font-weight:400;letter-spacing:.04em;font-family:serif}.script-card-name{margin:0;font-size:19px}.script-card-name-ja{margin:0;font-size:13px;color:var(--text-secondary)}.script-card-sound{margin:8px 0 0;display:flex;gap:10px;align-items:baseline}.script-card-roman{font-size:22px;font-weight:700;color:var(--primary)}.script-card-ipa{font-size:15px;color:var(--text-secondary)}.script-card-sound-ja{margin:0;font-size:13.5px}.script-card-trap{display:flex;gap:7px;align-items:flex-start;text-align:left;margin:10px 0 0;padding:9px 12px;font-size:13.5px;line-height:1.7;background:var(--warn-bg,rgba(200,120,0,.1));border:1px solid var(--warn-border,rgba(200,120,0,.32));border-radius:10px}.script-card-conf{margin:8px 0 0;font-size:12.5px;color:var(--text-secondary)}.script-card-conf-ch{margin-left:6px;font-size:20px;color:var(--text-primary)}.script-card-example{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;justify-content:center;margin:12px 0 0;padding:10px 14px;background:var(--card-bg);border:1px solid var(--border);border-radius:10px}.script-card-ex-text{font-size:22px}.script-card-ex-roman{font-size:14px;color:var(--text-secondary)}.script-card-ex-tr{font-size:13px}.script-card-mnemonic{display:flex;gap:7px;margin:8px 0 0;font-size:13px;color:var(--text-secondary)}.script-card-tools{display:flex;gap:8px;margin:12px 0 0}.script-card-nav{display:flex;gap:10px;justify-content:center;margin:16px 0 0;width:100%}.script-card-nav .btn{flex:1 1;max-width:190px;justify-content:center}.script-trace{width:100%;max-width:300px;margin:12px auto 0;padding:10px;background:var(--card-bg);border:1px solid var(--border);border-radius:12px}.script-trace-head{display:flex;align-items:center;justify-content:space-between}.script-trace-title{margin:0;font-size:13px;color:var(--text-secondary)}.script-trace-canvas{width:100%;aspect-ratio:1/1;display:block;margin:6px 0;border-radius:8px;background:var(--bg);touch-action:none;cursor:crosshair}.script-trace-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.script-trace-count{font-size:12px;color:var(--text-secondary)}.script-q-label{margin:10px 0 0;font-size:13px;color:var(--text-secondary);text-align:center}.script-q-row{display:flex;align-items:center;justify-content:center;gap:8px;margin:4px 0 10px}.script-q-glyph{margin:0;font-size:54px;line-height:1.2;font-family:serif}.script-q-plain{margin:0;font-size:26px;font-weight:700}.script-back{margin:10px auto 0;display:block}@media (max-width:380px){.script-card-glyph{font-size:62px}.script-q-glyph{font-size:44px}}.course-list-card-script .course-list-title{display:inline-flex;align-items:center;gap:6px}.course-list-card-mine{border-color:var(--primary)}.course-list-chip{margin-left:6px;padding:1px 7px;border-radius:999px;font-size:.68rem;font-weight:700;line-height:1.6;color:var(--primary);background:var(--primary-light)}.script-card-forms{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:10px 0 0;padding:10px 8px;background:var(--card-bg);border:1px solid var(--border);border-radius:10px}.script-card-form{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:56px}.script-card-form-glyph{font-size:30px;line-height:1.4;font-family:serif}.script-card-form-label{font-size:11px;color:var(--text-secondary)}