:root,[data-theme=light]{--calendar-icon-invert: 0;--bg: #ffffff;--bg2: #ffffff;--text: #1c1c2e;--text2: #9295a6;--text-muted: #b0b3c0;--accent: #6c5ce7;--accent2: #a29bfe;--accent-bg: rgba(108,92,231,.12);--success: #00b894;--success-bg: rgba(0,184,148,.08);--danger: #ff6b6b;--danger-bg: rgba(255,107,107,.08);--warning: #d97706;--border: #d0cfda;--input: #ededf4;--card-shadow: 0 1px 3px rgba(28,28,46,.07), 0 6px 16px rgba(28,28,46,.06);--r: 14px;--r-sm: 10px;--font: -apple-system, "Pretendard", "Noto Sans KR", system-ui, sans-serif;--font-scale: 1}[data-theme=dark]{--calendar-icon-invert: 1;--bg: #0a0a14;--bg2: #1e1e30;--text: #d8d8e4;--text2: #8a8ca0;--text-muted: #62647a;--accent: #8b84e6;--accent2: #5f53c4;--accent-bg: rgba(139,132,230,.14);--success: #3cc9a3;--success-bg: rgba(60,201,163,.08);--danger: #e05a5a;--danger-bg: rgba(224,90,90,.08);--warning: #f0c040;--border: #24243a;--input: #1e1e30;--card-shadow: 0 1px 3px rgba(0,0,0,.2), 0 6px 16px rgba(0,0,0,.15)}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;background:var(--bg);-webkit-text-size-adjust:100%;text-size-adjust:100%}body,#root{height:100%;font-family:var(--font);font-size:calc(15px * var(--font-scale));background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow-x:hidden}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:16px;color:var(--text2)}.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{display:inline-flex;align-items:center;justify-content:center;animation:spin .8s linear infinite;will-change:transform;transform-origin:50% 50%}svg.spin{transform-box:fill-box;transform-origin:center}.spin-wrap{display:inline-flex;align-items:center;justify-content:center;animation:spin .8s linear infinite;will-change:transform}@keyframes slideUp{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideDown{0%{transform:translateY(-40px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.screen{position:fixed;inset:0;display:flex;flex-direction:column;max-width:800px;margin:0 auto;width:100%}.header{display:flex;align-items:center;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top));gap:12px;background:var(--bg2);border-bottom:1px solid var(--border);min-height:56px;position:sticky;top:0;z-index:100}.android-app .header{padding-top:calc(12px + var(--status-bar-height, 28px))}.header-left{display:flex;align-items:center;gap:8px}.header-right{display:flex;align-items:center;gap:4px;margin-left:auto}.header-title{flex:1;font-size:17px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-title{font-size:20px;font-weight:800;letter-spacing:-1px;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.icon-btn{background:none;border:none;color:var(--text2);cursor:pointer;padding:8px;border-radius:var(--r-sm);display:flex;align-items:center;transition:all .15s}.icon-btn:hover,.icon-btn.active{color:var(--accent);background:var(--accent-bg)}.icon-btn-sm{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:8px;display:flex;align-items:center;transition:color .15s,background .15s,opacity .15s}.icon-btn-sm:hover{color:var(--text);background:var(--accent-bg)}.icon-btn-sm.danger:hover{color:var(--danger);background:var(--danger-bg)}.icon-btn-sm:disabled:not(.generating){opacity:.25;cursor:not-allowed;pointer-events:none}.btn-primary{background:#6c5ce714;color:var(--accent);border:1.5px solid var(--accent);padding:10px 20px;border-radius:var(--r-sm);font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .15s;font-family:var(--font);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.btn-primary:hover{background:var(--accent);color:#fff}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:transparent;color:var(--text2);border:1.5px solid var(--border);padding:10px 20px;border-radius:var(--r-sm);font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .15s;font-family:var(--font)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.btn-full{width:100%}.btn-sm{padding:6px 12px;font-size:13px}.btn-next{background:var(--accent);color:#fff;border:none;padding:14px 28px;border-radius:var(--r);font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;margin:24px auto 0;transition:all .15s;font-family:var(--font)}.btn-next:hover{opacity:.9}.action-bar{display:flex;flex-wrap:wrap;align-items:center;padding:12px 16px 4px;flex-shrink:0;gap:8px}.action-bar-home{display:grid;grid-template-columns:1fr 1fr}.action-bar-home .btn-action{justify-content:center;width:100%;padding:13px 24px}.home-action-cards{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;padding:12px 16px 0;box-sizing:border-box}.home-action-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:18px 12px;background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--r);cursor:pointer;transition:all .15s;box-shadow:var(--card-shadow);color:var(--text)}.home-action-card:hover{border-color:var(--accent);color:var(--accent)}.home-quick-test-btn{background:var(--accent);border-color:var(--accent);color:#fff}.home-quick-test-btn:hover{opacity:.9;color:#fff;border-color:var(--accent)}.home-quick-test-btn:active{transform:scale(.97)}.home-quick-test-sub{font-size:10px;font-weight:600;color:#ffffffb8;letter-spacing:.3px}.quick-test-type-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.quick-test-type-btn{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 4px;background:var(--bg2);border:1.5px solid var(--border);border-radius:12px;cursor:pointer;font-size:10.5px;font-weight:600;color:var(--text2);font-family:var(--font);transition:all .15s}.quick-test-type-btn.active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.quick-test-book-list{display:flex;flex-direction:column;gap:8px;max-height:240px;overflow-y:auto;margin-bottom:12px}.quick-test-book-btn{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg2);border:1.5px solid var(--border);border-radius:12px;cursor:pointer;text-align:left;font-family:var(--font);transition:border-color .15s;width:100%}.quick-test-book-btn:hover{border-color:var(--accent)}.quick-test-book-name{flex:1;font-size:15px;font-weight:600;color:var(--text)}.quick-test-book-count{font-size:12px;color:var(--text2);flex-shrink:0}.home-action-title{font-size:15px;font-weight:700}.home-action-desc{font-size:11.5px;color:var(--text2);text-align:center;line-height:1.4}.action-bar-wordbook{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:stretch}.action-bar-wordbook .btn-action{justify-content:center}.action-bar-wordbook .action-bar-search{flex:unset;align-self:auto}.action-bar-search{display:flex;align-items:center;align-self:stretch;flex:1;min-width:80px;background:transparent;border:1.5px solid var(--accent);border-radius:20px;padding:0 10px;gap:6px}.action-bar-search-icon{color:var(--accent);flex-shrink:0}.action-bar-search-input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-size:13px;padding:6px 0;min-width:0}.action-bar-search-input::placeholder{color:var(--text-muted, #aaa)}.action-bar-search-clear{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;display:flex;align-items:center;flex-shrink:0}.btn-action{display:flex;align-items:center;gap:6px;padding:7px 14px;background:var(--bg2);color:var(--text2);border:1.5px solid var(--border);border-radius:20px;font-size:13px;font-weight:600;cursor:pointer;overflow:hidden;transition:all .15s;font-family:var(--font)}.btn-action span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.btn-action:hover{border-color:var(--accent);color:var(--accent)}.btn-action.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-action.success{background:var(--success);color:#fff;border-color:var(--success)}.btn-action.warning{background:var(--warning);color:#1c1c2e;border-color:var(--warning)}.btn-action:disabled{opacity:.4;cursor:not-allowed}.content{flex:1;min-height:0;overflow-y:auto;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom))}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-muted);gap:12px;text-align:center}.empty-state .sub{font-size:13px}.empty-state svg{color:var(--text-muted);opacity:.5}.empty-flow-wrap{display:flex;flex-direction:column;padding:20px 16px 32px;gap:0}.empty-flow-header{font-size:13px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.04em;margin:0 0 14px 2px}.empty-flow-step{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;background:var(--bg2);border:1.5px solid var(--border);border-radius:14px}.empty-flow-step.featured{background:var(--bg2);border-color:var(--accent)}.empty-flow-icon{flex-shrink:0;width:40px;height:40px;border-radius:10px;background:var(--bg3);display:flex;align-items:center;justify-content:center;color:var(--text2)}.empty-flow-step.featured .empty-flow-icon{background:var(--accent);color:#fff}.empty-flow-body{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.empty-flow-title{display:flex;align-items:center;gap:7px;font-size:15px;font-weight:800;color:var(--text);flex-wrap:wrap}.empty-flow-step.featured .empty-flow-title{color:var(--accent)}.empty-flow-badge{font-size:10px;font-weight:700;background:var(--accent);color:#fff;border-radius:5px;padding:2px 6px;letter-spacing:.02em;flex-shrink:0}.empty-flow-desc{font-size:13px;color:var(--text);line-height:1.6;margin:0;opacity:.75}.empty-flow-top-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.empty-flow-top-row .empty-flow-step{flex-direction:column;gap:8px}.empty-flow-top-row .empty-flow-icon{width:36px;height:36px}.empty-flow-merge-svg{width:100%;height:36px;display:block;margin:0}.empty-flow-connector{text-align:center;font-size:18px;color:var(--accent);opacity:.5;line-height:1;padding:4px 0}.empty-hint-wrap{display:flex;align-items:center;justify-content:center;padding:48px 24px}.empty-hint-text{font-size:14px;color:var(--text2);opacity:.5;text-align:center;margin:0;line-height:1.7}.input{width:100%;padding:10px 12px;background:var(--input);border:1.5px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:14px;font-family:var(--font);outline:none;transition:border-color .2s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-muted)}.input-inline{background:transparent;border:none;border-bottom:1.5px solid var(--accent);border-radius:0;padding:4px 0}.input-sm{padding:6px 10px;font-size:13px;margin-bottom:6px}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-start;justify-content:center;z-index:200;padding:56px 16px 0;overflow-y:auto}.modal{background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:24px;width:100%;max-width:800px;display:flex;flex-direction:column;gap:14px;animation:slideDown .25s ease;box-shadow:0 4px 20px #0000001a;margin-bottom:40px}.modal h3{font-size:18px;font-weight:700}.modal .input:focus{scroll-margin-bottom:200px}.create-confirm-table{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:10px;overflow:hidden;margin:14px 0 6px}.create-confirm-row{display:flex;align-items:center;padding:11px 14px;gap:10px;border-bottom:1px solid var(--border)}.create-confirm-row:last-child{border-bottom:none}.create-confirm-label{font-size:13px;color:var(--text2);font-weight:600;min-width:76px;flex-shrink:0}.create-confirm-value{font-size:14px;font-weight:600;color:var(--text);word-break:break-all}.confirm-cursor{display:inline-block;color:var(--accent);font-weight:300;animation:blink-cursor .5s step-end infinite;margin-left:1px}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}.book-list{display:flex;flex-direction:column;gap:10px}.book-card{display:flex;align-items:center;padding:22px 20px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);cursor:pointer;transition:all .15s;gap:12px;box-shadow:var(--card-shadow);min-height:76px}.book-card:hover{border-color:var(--accent);transform:scale(.99)}.book-card-add{justify-content:center;border:2px dashed var(--border);color:var(--text2);min-height:64px;cursor:pointer}.book-card-add:hover{border-color:var(--accent);color:var(--accent);transform:scale(.99)}.book-card-empty-hint{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px;color:var(--text2);font-size:14px}.book-card{position:relative;overflow:hidden}.book-card:after{content:"";position:absolute;top:0;left:55px;right:60px;height:100%;background-image:var(--preview-img);background-size:cover;background-position:center;-webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.11) 35%,rgba(0,0,0,.11) 65%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.11) 35%,rgba(0,0,0,.11) 65%,transparent 100%);pointer-events:none;z-index:0}.book-card>*{position:relative;z-index:1}.book-flags-badge{display:flex;align-items:center;flex-shrink:0}.flag-circle{width:30px;height:30px;border-radius:50%;border:2px solid var(--bg2);display:flex;align-items:center;justify-content:center;font-size:28px;overflow:hidden;position:relative;z-index:1;line-height:1}.flag-circle.flag-code{font-size:9px;font-weight:700;letter-spacing:-.5px;background:var(--surface2);color:var(--text2)}.flag-circle.overlap{margin-left:-8px;z-index:2}.book-flags{font-size:16px;letter-spacing:2px}.book-info{flex:1;min-width:0}.book-name{font-size:14px;font-weight:700;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-info-row{display:flex;align-items:center;gap:6px;margin-top:6px}.book-count-badge{font-size:11px;font-weight:600;color:var(--text);background:var(--accent-bg);border-radius:4px;padding:2px 7px;white-space:nowrap}.book-date-badge{font-size:11px;font-weight:400;color:var(--text2);border-radius:4px;padding:2px 4px;white-space:nowrap}.book-exam-badge{font-size:11px;font-weight:600;color:var(--primary);background:#6366f12e;border-radius:4px;padding:2px 7px;white-space:nowrap}.book-image-style-badge{font-size:11px;font-weight:600;color:var(--text2);background:var(--accent-bg);border-radius:4px;padding:2px 7px;white-space:nowrap}.book-plan-badge{display:inline-flex;align-items:center;justify-content:center;background:#6366f12e;color:var(--primary);border-radius:4px;padding:2px 5px}.book-actions{display:flex;gap:2px;flex-shrink:0}.word-list{display:flex;flex-direction:column;gap:8px}.word-card{display:flex;align-items:flex-start;padding:16px;background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--r);gap:10px;transition:all .15s;box-shadow:var(--card-shadow)}.word-card.selected{border-color:var(--accent);background:var(--accent-bg)}.word-card-wrapper.playing>.word-card{border-color:var(--success);background:var(--success-bg)}.word-card-wrapper:has(.word-image).playing>.word-image{border-color:var(--success)}.word-select{cursor:pointer;padding-top:2px}.checkbox{width:20px;height:20px;border:2px solid var(--text2);border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s;opacity:.5}.checkbox.checked{background:var(--accent);border-color:var(--accent);color:#fff}.word-content{flex:1;min-width:0}.word-main{display:flex;align-items:center;gap:8px;margin-bottom:4px}.word-text{font-size:calc(20px * var(--font-scale));font-weight:700;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.image-style-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:4px}.image-style-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 10px;background:var(--input);border:1.5px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:all .15s;font-family:var(--font);min-width:56px}.image-style-btn:hover{border-color:var(--accent)}.image-style-btn.active{border-color:var(--accent);background:var(--accent-bg)}.is-icon{font-size:18px}.is-label{font-size:10px;font-weight:600;color:var(--text2);white-space:nowrap}.image-style-btn.active .is-label{color:var(--accent)}.word-card-wrapper{display:flex;flex-direction:column}.word-image{width:100%;border-radius:var(--r) var(--r) 0 0;overflow:hidden;background:var(--border)}.word-image img{width:100%;aspect-ratio:16 / 9;object-fit:cover;display:block;opacity:0;transition:opacity .2s ease}.word-image img.loaded{opacity:1}.word-image.regenerating:after{content:"";position:absolute;inset:0;background:#00000073;animation:img-regen-blink 1s ease-in-out infinite;pointer-events:none;z-index:1}@keyframes img-regen-blink{0%,to{opacity:0}50%{opacity:1}}.word-card-wrapper:has(.word-image){border-radius:var(--r);box-shadow:var(--card-shadow)}.word-card-wrapper:has(.word-image) .word-image{border:1.5px solid var(--border);border-bottom:none;border-radius:var(--r) var(--r) 0 0}.word-card-wrapper:has(.word-image) .word-card{border-top:none;border-radius:0 0 var(--r) var(--r);box-shadow:none}.word-image{position:relative}.word-image-actions{position:absolute;top:8px;right:8px;display:flex;gap:4px}.img-action-btn{width:26px;height:26px;border-radius:50%;background:#0000001a;border:none;color:#ffffff4d;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.img-action-btn:active{background:#00000080;color:#fffc}.img-action-btn:disabled{opacity:.4}.icon-btn-sm.generating{color:var(--accent);background:var(--accent-bg)}.word-pos{font-size:10px;font-weight:700;color:var(--accent);background:var(--accent-bg);padding:1px 6px;border-radius:4px;flex-shrink:0}.word-pronunciation{font-size:12px;color:var(--text2);font-family:Noto Sans,monospace;margin-bottom:2px}.word-stars{font-size:11px;letter-spacing:-1px;color:var(--warning);flex-shrink:0}.word-meaning{font-size:calc(14px * var(--font-scale));color:var(--text);margin-bottom:4px;line-height:1.5;font-weight:500}.word-example{font-size:calc(13px * var(--font-scale));color:var(--text);font-style:italic;margin-bottom:4px;line-height:1.5;opacity:.8}.word-meta{font-size:calc(12px * var(--font-scale));color:var(--text);line-height:1.5;opacity:.7}.meta-label{font-weight:700;color:var(--accent);margin-right:2px}.word-actions{display:flex;flex-direction:column;gap:2px;flex-shrink:0}.word-edit{display:flex;flex-direction:column;gap:6px;flex:1}.word-edit-actions{display:flex;gap:4px}.badge-ai{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:6px;letter-spacing:.3px}.sort-btn{display:flex!important;align-items:center;gap:3px;font-size:11px;font-weight:700;padding:4px 8px!important}.sort-label{color:var(--accent);font-size:11px}.add-word-modal{max-height:80vh;overflow-y:auto}.add-word-search{display:flex;gap:8px}.add-word-search .input{flex:1}.add-word-list{display:flex;flex-wrap:wrap;gap:6px;max-height:200px;overflow-y:auto;padding:4px 0;-webkit-overflow-scrolling:touch}.lookup-results{-webkit-overflow-scrolling:touch}.add-word-chip{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--input);border:1.5px solid var(--border);border-radius:8px;font-size:13px;transition:all .15s}.add-word-chip.selected{border-color:var(--accent);background:var(--accent-bg)}.add-word-chip.generated{border-left:3px solid var(--success)}.add-word-check{cursor:pointer}.add-word-text{font-weight:600;cursor:pointer}.add-word-meaning{font-size:11px;color:var(--text2);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.add-word-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex;border-radius:4px;transition:all .15s}.add-word-remove:hover{color:var(--danger);background:var(--danger-bg)}.lookup-results{display:flex;flex-wrap:wrap;gap:6px;padding:8px 0}.lookup-item{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--input);border:1.5px solid var(--border);border-radius:20px;cursor:pointer;font-family:var(--font);font-size:13px;transition:all .15s;color:var(--text)}.lookup-item:hover:not(:disabled){border-color:var(--accent);background:var(--accent-bg)}.lookup-item.exists{opacity:.4;cursor:default}.lookup-word{font-weight:700;color:var(--accent)}.lookup-brief{color:var(--text2);font-size:12px}.lookup-tag{font-size:10px;font-weight:700;color:var(--success);background:var(--success-bg);padding:1px 6px;border-radius:4px}.btn-wordlist-open{display:flex;align-items:center;gap:8px;width:100%;padding:16px;background:var(--accent-bg);border:2px solid var(--accent);border-radius:12px;color:var(--accent);font-size:14px;font-weight:700;font-family:var(--font);cursor:pointer;transition:all .15s;margin-top:4px;box-shadow:0 2px 8px var(--accent-shadow, rgba(99,102,241,.12))}.btn-wordlist-open:hover:not(:disabled){background:var(--accent);color:#fff}.btn-wordlist-open:hover:not(:disabled) svg{stroke:#fff}.btn-wordlist-open:disabled{opacity:.4;cursor:not-allowed}.btn-wordlist-open svg:last-child{transition:transform .2s}.btn-wordlist-open.open svg:last-child{transform:rotate(180deg)}.wordlist-inline{display:flex;flex-direction:column;border:1.5px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:8px;max-height:55vh}.wordlist-inline-toolbar{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--border)}.wordlist-inline-toolbar .wordlist-search{flex:1;margin:0}.wordlist-modal{max-height:88vh;display:flex;flex-direction:column;padding:0;overflow:hidden}.wordlist-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.wordlist-modal-title{font-size:15px;font-weight:800;margin:0;flex:1;display:flex;flex-direction:column;gap:2px}.wordlist-freq-badge{font-size:10px;font-weight:500;color:var(--primary);opacity:.8}.wordlist-sel-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--accent);color:#fff;font-size:12px;font-weight:700}.wordlist-search{width:100%;padding:10px 12px;background:var(--input);border:none;border-bottom:1px solid var(--border);color:var(--text);font-size:14px;font-family:var(--font);outline:none;flex-shrink:0}.wordlist-search:focus{border-bottom-color:var(--accent)}.wordlist-search::placeholder{color:var(--text-muted)}.wordlist-filter-row{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.wordlist-filter-box{flex:1;display:flex;align-items:center;gap:6px;background:var(--input);border:1.5px solid var(--border);border-radius:8px;padding:6px 10px}.wordlist-filter-icon{color:var(--text2);flex-shrink:0}.wordlist-filter-input{flex:1;background:none;border:none;outline:none;font-size:13px;color:var(--text);font-family:var(--font)}.wordlist-select-count{font-size:12px;font-weight:700;color:var(--accent);white-space:nowrap;flex-shrink:0}.wordlist-items{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:8px 0}.wordlist-group-header{position:sticky;top:0;z-index:1;background:var(--bg);padding:4px 16px 2px;font-size:11px;font-weight:700;color:var(--accent);letter-spacing:.05em}.wordlist-state{display:flex;align-items:center;justify-content:center;padding:40px 16px;color:var(--text2);font-size:14px}.wordlist-item{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;transition:background .12s;font-size:14px;border-bottom:1px solid var(--border-faint, rgba(128,128,128,.08))}.wordlist-item:hover:not(.in-wordbook):not(.maxed){background:var(--accent-bg)}.wordlist-item.selected{background:var(--accent-bg)}.wordlist-item.in-wordbook{opacity:.38;cursor:default}.wordlist-item.maxed{opacity:.5;cursor:not-allowed}.wordlist-item-word{font-weight:600;flex:1}.wordlist-checkbox{width:18px;height:18px;border-radius:4px;border:1.5px solid var(--border);background:var(--bg2);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:transparent;transition:background .15s,border-color .15s}.wordlist-checkbox.checked{background:var(--accent);border-color:var(--accent);color:#fff}.wordlist-checkbox.done{background:var(--success);border-color:var(--success);color:#fff}.wordlist-checkbox.skipped{background:#888;border-color:#888;color:#fff}.wordlist-item.plan-skipped{opacity:.5}.wordlist-item.plan-skipped .wordlist-item-word{text-decoration:line-through}.wordlist-more-hint{padding:12px 16px;font-size:12px;color:var(--text2);text-align:center;border-top:1px solid var(--border)}.wordlist-actions{display:flex;gap:10px;padding:12px 16px 16px;border-top:1px solid var(--border);flex-shrink:0}.wordlist-btn-cancel{flex:0 0 auto;padding:0 18px;height:46px;border-radius:12px;border:1.5px solid var(--border);background:transparent;color:var(--text2);font-size:14px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all .15s}.wordlist-btn-cancel:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.wordlist-btn-cancel:disabled{opacity:.4;cursor:not-allowed}.wordlist-btn-generate{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;height:46px;border-radius:12px;border:none;background:var(--accent);color:#fff;font-size:14px;font-weight:700;font-family:var(--font);cursor:pointer;transition:opacity .15s;overflow:hidden;min-width:0}.wordlist-btn-generate svg{flex-shrink:0}.wordlist-btn-generate:disabled{opacity:.38;cursor:not-allowed}.wordlist-btn-generate:hover:not(:disabled){opacity:.88}.wordlist-load-more{display:block;width:100%;padding:12px;background:none;border:none;border-top:1px solid var(--border);color:var(--accent);font-size:13px;font-weight:600;font-family:var(--font);cursor:pointer;text-align:center}.wordlist-load-more:hover{background:var(--accent-bg)}.wordbook-pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding:16px 0 8px}.pagination-btn{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:20px;line-height:1;width:36px;height:36px;cursor:pointer;display:flex;align-items:center;justify-content:center}.pagination-btn:disabled{opacity:.3;cursor:default}.pagination-btn:not(:disabled):hover{background:var(--accent-bg)}.pagination-info{font-size:14px;color:var(--text-secondary)}.wordlist-index-bar{display:flex;gap:4px;padding:8px 12px;overflow-x:scroll;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x;border-bottom:1px solid var(--border);flex-shrink:0;scrollbar-width:none;-ms-overflow-style:none}.wordlist-index-bar::-webkit-scrollbar{display:none}.wordlist-index-btn{flex-shrink:0;min-width:28px;height:28px;padding:0 6px;border-radius:6px;border:1.5px solid var(--border);background:var(--bg3);color:var(--text2);font-size:12px;font-weight:700;font-family:var(--font);cursor:pointer;transition:all .12s}.wordlist-index-btn:hover{border-color:var(--accent);color:var(--accent)}.wordlist-index-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.wordlist-tab-bar{display:flex;border-bottom:1px solid var(--border);flex-shrink:0}.wordlist-tab-btn{flex:1;padding:10px 0;background:none;border:none;font-size:13px;font-weight:600;font-family:var(--font);color:var(--text2);cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;display:flex;align-items:center;justify-content:center;gap:5px}.wordlist-tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.wordlist-tab-btn:hover:not(.active){color:var(--text)}.plan-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.plan-date-row{padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.plan-date-btn{display:flex;align-items:center;gap:12px;background:var(--accent-bg);border:1.5px solid var(--accent);border-radius:12px;padding:12px 14px;cursor:pointer;position:relative;overflow:hidden;transition:opacity .15s}.plan-date-btn:active{opacity:.75}.plan-date-btn-icon{color:var(--accent);flex-shrink:0}.plan-date-btn-body{flex:1;display:flex;flex-direction:column;gap:2px}.plan-date-btn-label{font-size:11px;font-weight:600;color:var(--accent);opacity:.75;text-transform:uppercase;letter-spacing:.04em}.plan-date-btn-value{font-size:20px;font-weight:700;color:var(--accent);line-height:1.2}.plan-date-btn-value.empty{font-size:16px;opacity:.4;letter-spacing:.1em}.plan-date-btn-chevron{color:var(--accent);opacity:.6;flex-shrink:0}.plan-date-input-hidden{position:absolute;opacity:0;width:100%;height:100%;top:0;left:0;cursor:pointer}.plan-summary-row{padding:10px 16px 6px;flex-shrink:0}.plan-summary{font-size:14px;font-weight:700;color:var(--text)}.plan-warning{font-size:12px;color:var(--warning, #f59e0b);margin-top:4px}.plan-toggle-item{display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid var(--border);transition:background .15s}.plan-toggle-item:active{background:var(--accent-bg)}.plan-toggle-item.done{cursor:default}.plan-toggle-item.done .wordlist-item-word{opacity:.45}.plan-checkbox{width:18px;height:18px;border-radius:5px;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,border-color .15s}.plan-checkbox.cb-learn{background:var(--accent);border-color:var(--accent);color:#fff}.plan-checkbox.cb-known{background:transparent;border-color:var(--border);color:transparent}.plan-checkbox.cb-done{background:var(--success);border-color:var(--success);color:#fff}.plan-checkbox.cb-skipped{background:var(--input);border-color:var(--border);color:var(--text2)}.plan-toggle-item .wordlist-item-word{flex:1}.plan-toggle-badge{font-size:11px;font-weight:600;padding:3px 9px;border-radius:20px;white-space:nowrap;flex-shrink:0}.badge-learn,.badge-known,.badge-done,.badge-skipped{font-size:11px;font-weight:600}.badge-learn{background:var(--accent-bg);color:var(--accent)}.badge-known{background:var(--input);color:var(--text2)}.badge-done{background:#00b89438;color:#007a62}.badge-skipped{background:#8080802e;color:var(--text2)}.plan-hint{font-size:13px;color:var(--text2);padding:32px 16px;text-align:center}@keyframes plan-guide-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.plan-guide{padding:16px 18px 12px;display:flex;flex-direction:column;gap:14px}.plan-guide-title{font-size:15px;font-weight:700;color:var(--text);margin:0;animation:plan-guide-in .35s ease both;min-height:1.4em}.plan-guide-diagram{display:flex;align-items:center;justify-content:center;gap:0;padding:4px 0 2px}.plan-guide-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.plan-guide-list li{font-size:14px;color:var(--text);padding-left:18px;position:relative;line-height:1.5;min-height:1.5em}.plan-guide-list li:before{content:"•";position:absolute;left:4px;color:var(--accent)}.plan-guide-cta{font-size:15px;color:var(--accent);font-weight:700;min-height:1.4em;margin:0;padding-top:2px}.plan-folders{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:6px 0}.plan-folder-item{display:flex;align-items:center;padding:13px 16px;cursor:pointer;border-bottom:1px solid var(--border-faint, rgba(128,128,128,.08));transition:background .12s}.plan-folder-item:hover{background:var(--accent-bg)}.plan-folder-item.today{background:var(--accent-bg);border-left:3px solid var(--accent)}.plan-folder-item.today .plan-folder-name{color:var(--accent);font-weight:700}.plan-folder-done-btn{width:24px;height:24px;border-radius:6px;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;color:transparent;flex-shrink:0;margin-right:10px;transition:background .15s,border-color .15s}.plan-folder-done-btn:hover{border-color:var(--success);color:var(--success)}.plan-folder-done-btn.done{background:var(--success);border-color:var(--success);color:#fff;cursor:default}.plan-folder-icon{width:32px;height:32px;border-radius:8px;background:var(--accent-bg);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-right:12px}.plan-folder-name{flex:1;font-size:14px;font-weight:700;color:var(--text)}.plan-folder-meta{font-size:12px;color:var(--text2);margin-right:8px}.plan-folder-arrow{color:var(--text-muted)}.plan-back-row{display:flex;align-items:center;gap:6px;padding:10px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.plan-back-btn{display:flex;align-items:center;gap:4px;background:none;border:none;font-size:14px;font-weight:700;color:var(--accent);cursor:pointer;font-family:var(--font);padding:2px 0}.plan-back-btn:hover{opacity:.8}.plan-folder-detail-title{font-size:14px;font-weight:800;color:var(--text)}.plan-folder-detail-meta{font-size:12px;color:var(--text2);margin-left:4px}.plan-folder-hint{font-size:12px;color:var(--text)}.crop-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.crop-area{flex:1;position:relative;overflow:hidden;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;cursor:crosshair;background:#000}.crop-image{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none;touch-action:none;-webkit-user-drag:none}.crop-overlay{position:absolute;background:#0000008c;pointer-events:none}.crop-top{top:0;left:0;width:100%}.crop-bottom{left:0;width:100%}.crop-left{left:0}.crop-selection{position:absolute;border:2px solid var(--accent);box-shadow:0 0 0 1px #ffffff4d;pointer-events:none}.crop-selection:before,.crop-selection:after{content:"";position:absolute;background:var(--accent);border-radius:2px}.crop-selection:before{width:100%;height:1px;top:33.33%;left:0;box-shadow:0 0 0 0 transparent,0 33.33% 0 0 var(--accent)}.crop-hint{display:flex;align-items:center;justify-content:center;gap:6px;padding:12px;font-size:13px;color:var(--text2);background:var(--bg2);border-top:1px solid var(--border)}.scan-book-list{display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow-y:auto}.scan-book-item{display:flex;align-items:center;gap:10px;padding:14px;background:var(--input);border:1.5px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:all .15s;font-family:var(--font);font-size:14px;font-weight:500;color:var(--text);width:100%;text-align:left}.scan-book-item:hover{border-color:var(--accent);background:var(--accent-bg)}.scan-book-item svg{color:var(--accent);flex-shrink:0}.scan-book-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scan-book-count{font-size:12px;color:var(--text2);flex-shrink:0}.progress-section{padding:14px 16px;background:var(--bg2);border-bottom:1px solid var(--border)}.progress-info{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--accent);margin-bottom:8px}.progress-info svg{animation:pulse 1.5s infinite}.progress-percent{margin-left:auto;font-size:14px;font-weight:800}.progress-track{width:100%;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:4px;transition:width .4s ease;position:relative}.progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 1.5s infinite}@keyframes loading-msg-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.loading-hint-msg{margin:8px 0 0;font-size:12px;color:var(--text2);text-align:center;animation:loading-msg-fade .4s ease}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.disabled-list{pointer-events:none;opacity:.5}.word-card.generated{border-left:3px solid var(--accent)}.flash-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px 16px 24px}.flash-card{perspective:900px;min-height:130px;cursor:pointer;-webkit-user-select:none;user-select:none}.flash-card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .38s cubic-bezier(.4,0,.2,1)}.flash-card.flipped .flash-card-inner{transform:rotateY(180deg)}.flash-card-front,.flash-card-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:12px;padding:14px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:130px}.flash-card-front{background:var(--bg2);border:1.5px solid var(--border)}.flash-card-back{background:var(--accent-bg);border:1.5px solid var(--accent);transform:rotateY(180deg)}.flash-word{font-size:17px;font-weight:700;color:var(--text);text-align:center;word-break:break-all}.flash-pron{font-size:11px;color:var(--text3);text-align:center}.flash-meaning{font-size:12px;color:var(--text);text-align:center;line-height:1.45;margin:0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.flash-example{font-size:11px;color:var(--text3);text-align:center;font-style:italic;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.flash-tts{position:absolute;bottom:6px;right:6px;opacity:.5}.flash-tts:hover{opacity:1}.word-compact-row{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--bg2);border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s}.word-compact-row:first-child{border-top-left-radius:var(--r-sm);border-top-right-radius:var(--r-sm)}.word-compact-row:last-child{border-bottom-left-radius:var(--r-sm);border-bottom-right-radius:var(--r-sm);border-bottom:none}.word-compact-row:active{background:var(--accent-bg)}.word-compact-row.playing{background:var(--success-bg)}.word-compact-row.selected{background:var(--accent-bg)}.word-compact-check{align-self:stretch;flex-shrink:0;display:flex;align-items:center;justify-content:center;margin:-9px 0 -9px -12px;padding:9px 8px 9px 12px}.word-compact-check-circle{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--accent);pointer-events:none;transition:background .12s,border-color .12s}.word-compact-check.checked .word-compact-check-circle{background:var(--accent-bg);border-color:var(--accent)}.word-compact-left{display:flex;align-items:center;gap:5px;min-width:90px;flex-shrink:0}.word-compact-text{font-size:calc(14px * var(--font-scale));font-weight:600;color:var(--text)}.word-compact-meaning{flex:1;font-size:calc(12px * var(--font-scale));color:var(--text2);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.compact-word-modal{max-height:80vh;overflow-y:auto}.compact-modal-word{font-size:1.2rem;font-weight:700;margin:0}.compact-word-body{padding:4px 0 0;display:flex;flex-direction:column;gap:8px}.compact-modal-img{width:100%;border-radius:var(--r-sm);object-fit:cover;aspect-ratio:16 / 9}.manual-add{display:flex;gap:8px;padding:0 16px 8px}.error-msg{background:var(--danger-bg);border:1.5px solid rgba(255,107,107,.25);color:var(--danger);padding:10px 14px;border-radius:var(--r-sm);font-size:13px;margin:12px 16px;font-weight:500}.auth-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;background:var(--bg)}.auth-light{background:#e4e3ec!important}.auth-container{max-width:480px;width:100%;text-align:center}.auth-logo{margin-bottom:20px}.logo-icon{width:80px;height:80px;margin:0 auto 18px;border-radius:22px;overflow:hidden;box-shadow:0 8px 32px #00000026}.logo-icon svg{width:80px;height:80px;display:block}.auth-logo h1{font-size:26px;font-weight:800;margin-bottom:4px;letter-spacing:-.5px}.auth-tagline{color:#4b5563;font-size:14px;font-weight:500;margin-top:4px}.auth-desc{color:#9ca3af;font-size:12px;font-weight:400;margin-top:6px;line-height:1.6}.auth-subtitle{color:var(--text2);font-size:14px;font-weight:500}.auth-feats{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;text-align:left}.auth-feat-item{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #d0cfda;border-radius:14px;padding:12px 14px;box-shadow:0 1px 3px #1c1c2e12,0 6px 16px #1c1c2e0f}.auth-feat-badge{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.auth-feat-badge-red{background:#fff1f1;color:#a60000}.auth-feat-badge-blue{background:#eff6ff;color:#2563eb}.auth-feat-badge-green{background:#f0fdf4;color:#16a34a}.auth-feat-badge-purple{background:#f5f3ff;color:#7c3aed}.auth-feat-text{font-size:14px;font-weight:600;color:#111827;line-height:1.35;display:flex;flex-direction:column;gap:2px}.auth-feat-sub{font-size:11px;font-weight:400;color:#6b7280}.auth-feat-item-gallery{flex-direction:column;align-items:stretch;gap:10px}.auth-feat-top{display:flex;align-items:center;gap:12px}.auth-feat-imgs{display:flex;flex-wrap:wrap;gap:5px;padding:2px 4px}.auth-feat-img{width:calc(33.33% - 4px);aspect-ratio:4/3;object-fit:cover;border-radius:4px;border:2px solid #fff;box-shadow:0 2px 6px #0000002e}.auth-lang-card{background:#fff;border:1px solid #d0cfda;border-radius:14px;padding:12px 16px;margin-bottom:16px;box-shadow:0 1px 3px #1c1c2e12,0 6px 16px #1c1c2e0f}.auth-lang-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.auth-lang-pair{display:flex;align-items:center;gap:8px;font-size:13px;color:#111827;font-weight:500;flex-wrap:wrap}.auth-lang-chip{background:#f3f4f6;padding:4px 10px;border-radius:20px;font-size:13px;white-space:nowrap}.auth-lang-edit-btn{background:none;border:1px solid #d1d5db;color:#6b7280;font-size:12px;font-weight:500;cursor:pointer;padding:4px 10px;border-radius:20px;font-family:var(--font);flex-shrink:0}.auth-lang-edit-btn:hover{border-color:var(--accent);color:var(--accent)}.btn-auth-start{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:16px;background:#a60000;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;transition:background .15s,box-shadow .15s;font-family:var(--font);box-shadow:0 4px 14px #a600004d}.btn-auth-start:hover{background:#8a0000;box-shadow:0 6px 18px #a6000066}.btn-auth-start:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.auth-google-note{font-size:12px;color:#9ca3af;text-align:center;margin:8px 0 16px}.auth-divider{display:flex;align-items:center;gap:10px;margin:12px 0;color:#9ca3af;font-size:13px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#e5e7eb}.btn-auth-email{width:100%;padding:13px;background:#fff;border:1.5px solid #d1d5db;border-radius:12px;font-size:15px;font-weight:600;color:#374151;cursor:pointer;transition:background .15s}.btn-auth-email:hover{background:#f9fafb}.auth-email-form{display:flex;flex-direction:column;gap:10px;width:100%}.auth-back-btn{background:none;border:none;color:#6b7280;font-size:14px;cursor:pointer;text-align:left;padding:0}.auth-email-tabs{display:flex;border:1.5px solid #d1d5db;border-radius:10px;overflow:hidden}.auth-tab{flex:1;padding:10px;background:#fff;border:none;font-size:14px;font-weight:500;color:#6b7280;cursor:pointer}.auth-tab.active{background:#a60000;color:#fff;font-weight:600}.auth-input{width:100%;padding:12px 14px;border:1.5px solid #d1d5db;border-radius:10px;font-size:15px;outline:none;box-sizing:border-box}.auth-input:focus{border-color:#a60000}.auth-forgot-btn{background:none;border:none;color:#a60000;font-size:13px;cursor:pointer;text-align:center;padding:0}.auth-reset-sent{font-size:13px;color:#059669;text-align:center;margin:4px 0}.auth-free-info{background:#fff;border:1px solid #d0cfda;border-radius:14px;padding:12px 16px;text-align:center;box-shadow:0 1px 3px #1c1c2e12,0 6px 16px #1c1c2e0f;position:relative}.auth-free-event-badge{display:inline-block;background:linear-gradient(135deg,#a60000,#e53e3e);color:#fff;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:3px 10px;border-radius:20px;margin-bottom:6px;box-shadow:0 2px 6px #a6000059}.auth-free-title{font-size:12px;font-weight:600;color:#6b7280;margin-bottom:4px}.auth-free-detail{font-size:12px;color:#9ca3af;line-height:1.6}.auth-free-accent{color:#a60000;font-weight:600}.auth-error{background:#fff1f1;border:1.5px solid rgba(255,107,107,.25);color:#dc2626;padding:10px 14px;border-radius:var(--r-sm);font-size:13px;font-weight:500;margin-bottom:16px}.auth-light-select{background:#fff!important;color:#111827!important;border:1.5px solid #d1d5db!important}.auth-light-swap{background:#f3f4f6!important;color:#374151!important;border:1.5px solid #d1d5db!important}.btn-google{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px;background:var(--bg2);color:var(--text);border:1.5px solid var(--border);border-radius:var(--r-sm);font-size:15px;font-weight:600;cursor:pointer;transition:all .15s;font-family:var(--font);box-shadow:var(--card-shadow)}.btn-google:hover{border-color:var(--accent)}.btn-google:disabled{opacity:.5;cursor:not-allowed}.lang-onboard{display:flex;align-items:flex-end;gap:8px;margin-top:24px}.lang-onboard .lang-selector{flex:1;text-align:left}.lang-change-link{background:none;border:none;color:var(--text2);font-size:18px;font-weight:500;cursor:pointer;margin-top:16px;font-family:var(--font);padding:8px}.lang-change-link:hover{color:var(--accent)}.scan-content{display:flex;flex-direction:column;align-items:center;padding-top:20px}.scan-loading{display:flex;flex-direction:column;align-items:center;gap:16px;padding:60px 20px;color:var(--text2)}.scan-preview{width:100%;max-height:200px;overflow:hidden;border-radius:var(--r);margin-bottom:20px}.scan-preview img{width:100%;height:200px;object-fit:cover}.scan-options{display:flex;flex-direction:column;gap:12px;width:100%}.scan-option-card{background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--r);padding:24px;cursor:pointer;text-align:center;transition:all .15s;color:var(--text);display:flex;flex-direction:column;align-items:center;gap:10px;box-shadow:var(--card-shadow)}.scan-option-card:hover{border-color:var(--accent)}.scan-option-card svg{color:var(--accent)}.scan-option-card h3{font-size:16px;font-weight:700}.scan-option-card p{font-size:13px;color:var(--text2);line-height:1.5}.ttype-content{padding:16px 16px 32px;display:flex;flex-direction:column;gap:12px}.ttype-hero{width:100%;border-radius:22px;background:linear-gradient(135deg,#4f46e5,#7c3aed);border:none;padding:22px 20px 22px 24px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;text-align:left;position:relative;overflow:hidden;min-height:148px;box-shadow:0 10px 28px #4f46e561;transition:transform .15s,box-shadow .15s;font-family:var(--font)}.ttype-hero:before{content:"";position:absolute;top:-50px;right:-30px;width:130px;height:130px;border-radius:50%;background:#ffffff12;pointer-events:none}.ttype-hero:after{content:"";position:absolute;bottom:-40px;left:30px;width:90px;height:90px;border-radius:50%;background:#ffffff0d;pointer-events:none}.ttype-hero:active{transform:scale(.98);box-shadow:0 4px 14px #4f46e547}.ttype-hero-text{display:flex;flex-direction:column;gap:6px;flex:1;z-index:1}.ttype-hero-badge{display:inline-flex;align-items:center;gap:4px;background:#ffffff38;color:#fff;font-size:11px;font-weight:700;padding:4px 10px;border-radius:20px;letter-spacing:.4px;width:fit-content}.ttype-hero-title{font-size:22px;font-weight:800;color:#fff;line-height:1.2;font-family:var(--font)}.ttype-hero-desc{font-size:13px;color:#ffffffc7;line-height:1.45;font-family:var(--font);max-width:180px}.ttype-hero-icon{flex-shrink:0;margin-left:8px;z-index:1;filter:drop-shadow(0 4px 8px rgba(0,0,0,.15))}.ttype-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ttype-mini{border-radius:18px;background:var(--bg2);border:1.5px solid var(--border);padding:16px 14px 18px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;cursor:pointer;text-align:left;transition:transform .13s,border-color .13s,box-shadow .13s;font-family:var(--font);box-shadow:0 2px 8px #0000000a}.ttype-mini:active{transform:scale(.96);box-shadow:none}.ttype-mini-icon{width:44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ttype-mini-title{font-size:14px;font-weight:700;color:var(--text);line-height:1.2;display:block}.ttype-mini-desc{font-size:11.5px;color:var(--text2);line-height:1.45;display:block}.test-type-select{display:flex;flex-direction:column;gap:14px;padding-top:20px}.test-type-card{background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--r);padding:28px 20px;cursor:pointer;text-align:center;transition:all .15s;color:var(--text);box-shadow:var(--card-shadow)}.test-type-card:hover{border-color:var(--accent)}.test-type-card h3{font-size:18px;font-weight:700;margin-bottom:8px}.test-type-card p{font-size:14px;color:var(--text2);line-height:1.5}.score-badge{background:var(--accent-bg);color:var(--accent);padding:4px 10px;border-radius:20px;font-size:11px;font-weight:700}.test-content{display:flex;flex-direction:column;align-items:center;padding-top:20px}.test-question{width:100%;text-align:center}.question-word{font-size:calc(36px * var(--font-scale));font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:12px}.question-prompt{font-size:15px;color:var(--text2);margin-bottom:24px;font-weight:500}.question-sentence{font-size:calc(18px * var(--font-scale));line-height:1.7;color:var(--text);margin-bottom:12px;padding:16px;background:var(--bg2);border-radius:var(--r);border:1px solid var(--border)}.question-meaning{font-size:20px;font-weight:700;margin-bottom:12px}.word-order-meaning{color:var(--text2);font-style:italic}.hint-text{font-size:14px;color:var(--text2);margin-bottom:20px}.options-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}.options-single-col{grid-template-columns:1fr}.options-single-col .option-btn{text-align:left;display:flex;align-items:flex-start;gap:8px;line-height:1.5}.sentence-num{font-weight:700;color:var(--accent);flex-shrink:0;font-size:15px}.option-btn{padding:16px 12px;background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--r);color:var(--text);font-size:calc(14px * var(--font-scale));font-weight:500;cursor:pointer;transition:all .15s;font-family:var(--font)}.option-btn:hover:not(:disabled){border-color:var(--accent)}.option-btn.correct{background:var(--success-bg);border-color:var(--success);color:var(--success);font-weight:600}.option-btn.wrong{background:var(--danger-bg);border-color:var(--danger);color:var(--danger);font-weight:600}.fill-input-row{display:flex;gap:8px;width:100%;max-width:360px;margin:0 auto}.answer-feedback{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;padding:12px;border-radius:var(--r-sm);font-size:15px;font-weight:600}.answer-feedback.correct{background:var(--success-bg);color:var(--success)}.answer-feedback.wrong{background:var(--danger-bg);color:var(--danger)}.result-summary{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 20px;text-align:center}.result-score{display:flex;align-items:baseline;gap:4px;margin-top:8px}.score-number{font-size:48px;font-weight:800}.score-divider,.score-total{font-size:28px;color:var(--text-muted)}.result-percentage{font-size:20px;font-weight:700}.result-info{font-size:14px;color:var(--text2);margin-top:4px;font-weight:500}.wrong-answers{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:16px;margin-bottom:20px;box-shadow:var(--card-shadow)}.wrong-answers h3{font-size:15px;font-weight:700;margin-bottom:12px;color:var(--danger)}.wrong-item{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px}.wrong-item:last-child{border-bottom:none}.wrong-word{font-weight:700;color:var(--text);font-size:14px}.wrong-user{color:var(--danger);font-weight:500}.wrong-correct{color:var(--success);font-weight:500}.result-actions{display:flex;gap:10px;justify-content:center}.settings-section{margin-bottom:28px}.settings-section h3{font-size:16px;font-weight:700;margin-bottom:8px}.settings-desc{font-size:13px;color:var(--text2);margin-bottom:12px;line-height:1.5}.exam-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.exam-type-btn{padding:10px;background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--r-sm);color:var(--text2);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s;font-family:var(--font)}.exam-type-btn:hover{border-color:var(--accent)}.exam-type-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.info-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border);font-size:14px}.info-label{color:var(--text2);font-weight:500}.info-value{color:var(--text);font-weight:600}.version-text{text-align:center;font-size:12px;color:var(--text-muted);font-weight:500}.font-size-control{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--r);box-shadow:var(--card-shadow)}.font-size-btn{width:40px;height:40px;border:1.5px solid var(--border);border-radius:50%;background:var(--bg);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.font-size-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.font-size-btn:active{transform:scale(.92)}.font-size-value{font-size:18px;font-weight:800;color:var(--accent);min-width:50px;text-align:center}.font-size-reset{background:none;border:none;color:var(--text-muted);font-size:12px;font-weight:600;cursor:pointer;padding:4px 8px;font-family:var(--font)}.font-size-reset:hover{color:var(--accent)}.lang-selector-row{display:flex;align-items:flex-end;gap:8px}.lang-selector{flex:1;display:flex;flex-direction:column;gap:4px}.lang-label{font-size:12px;font-weight:600;color:var(--text2)}.lang-select{width:100%;padding:10px 30px 10px 12px;background:var(--input);border:1.5px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:14px;font-family:var(--font);font-weight:500;outline:none;cursor:pointer;transition:border-color .2s;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239295a6' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.lang-select:focus{border-color:var(--accent)}.lang-swap-btn{width:40px;height:40px;border:1.5px solid var(--border);border-radius:50%;background:var(--bg2);color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;margin-bottom:2px}.lang-swap-btn:hover{background:var(--accent-bg);border-color:var(--accent);transform:rotate(180deg)}.theme-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--r);cursor:pointer;transition:all .15s;box-shadow:var(--card-shadow)}.theme-toggle-row:hover{border-color:var(--accent)}.theme-toggle-label{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:var(--text)}.theme-toggle-label svg{color:var(--accent)}.theme-switch{width:44px;height:24px;background:var(--border);border-radius:12px;position:relative;transition:background .2s}.theme-switch.on{background:var(--accent)}.theme-switch-knob{width:18px;height:18px;background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;transition:transform .2s;box-shadow:0 1px 3px #00000026}.theme-switch.on .theme-switch-knob{transform:translate(20px)}.color-picker-row{display:flex;gap:10px;flex-wrap:wrap}.color-swatch{width:36px;height:36px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:all .15s;outline:none;box-shadow:0 2px 6px #0000001a}.color-swatch:hover{transform:scale(1.15)}.color-swatch.active{border-color:var(--text);box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--text)}.color-swatch.custom.rainbow{background:conic-gradient(red,#f80,#ff0,#0c0,#08f,#80f,#f0f,red)!important}.custom-color-panel{margin-top:12px;padding:14px;background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--r);animation:slideUp .2s ease}.custom-color-input-row{display:flex;align-items:center;gap:8px}.native-color-input{width:36px;height:36px;border:none;border-radius:8px;cursor:pointer;padding:0;background:none;-webkit-appearance:none}.native-color-input::-webkit-color-swatch-wrapper{padding:0}.native-color-input::-webkit-color-swatch{border:2px solid var(--border);border-radius:8px}.usage-bar{position:relative;display:flex;align-items:center;padding:8px 16px;background:var(--bg2);border-bottom:1px solid var(--border)}.usage-donuts{display:grid;grid-template-columns:1fr 1fr 1fr;width:100%}.usage-donut-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.usage-donut-label{font-size:10px;font-weight:600;color:var(--text2);white-space:nowrap}.usage-donut-count{font-size:9px;color:var(--text2);white-space:nowrap}.quota-upgrade{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:4px;padding:4px 10px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;border:none;border-radius:12px;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;font-family:var(--font)}.quota-upgrade-bottom{position:static;transform:none;width:100%;justify-content:center;margin-top:8px;padding:10px;border-radius:12px;font-size:13px}.premium-btn{color:var(--warning)!important}.premium-btn:hover{background:#fdcb6e1f!important}.expired-banner{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#fd96441f;border-bottom:1px solid rgba(253,150,68,.3);flex-shrink:0}.expired-banner-text{flex:1;font-size:12px;color:#fd9644;line-height:1.4}.expired-banner-btn{flex-shrink:0;padding:5px 12px;border-radius:20px;background:#fd9644;color:#fff;font-size:12px;font-weight:700;border:none;cursor:pointer;white-space:nowrap}.paywall-hero{text-align:center;padding:32px 20px 24px}.paywall-icon{width:80px;height:80px;margin:0 auto 16px;background:linear-gradient(135deg,var(--accent),var(--accent2));border-radius:22px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 32px #6c5ce740}.paywall-icon svg{color:#fff}.paywall-hero h2{font-size:22px;font-weight:800;margin-bottom:8px}.paywall-price{margin-top:8px}.price-amount{font-size:32px;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.price-period{font-size:15px;color:var(--text2);font-weight:500}.paywall-comparison{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.plan-card{background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--r);padding:20px;box-shadow:var(--card-shadow);position:relative}.plan-card.premium{border-color:var(--accent)}.plan-card.current{border-color:var(--success);box-shadow:0 0 0 2px #00b89426}.plan-card.current h3{color:var(--success)}.plan-badge{position:absolute;top:-10px;right:16px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;padding:3px 12px;border-radius:10px;font-size:11px;font-weight:700}.plan-badge.current-badge{background:linear-gradient(135deg,var(--success),#00cec9)}.plan-cancel-badge{color:var(--danger);font-weight:600}.plan-expire-text{font-size:12px;color:var(--success);font-weight:600;margin-bottom:10px}.plan-name-row{display:flex;align-items:baseline;gap:6px;margin-bottom:4px}.plan-name-row h3{margin-bottom:0}.plan-reset-text{font-size:10px;color:var(--text-muted);opacity:.55;font-weight:400;letter-spacing:.01em}.btn-current{background:#00b8941a;color:var(--success);border:1.5px solid var(--success);cursor:default;opacity:.85}.plan-card h3{font-size:16px;font-weight:700;margin-bottom:4px}.plan-price-text{font-size:14px;color:var(--text2);margin-bottom:12px}.plan-card.premium h3{color:var(--accent)}.plan-features{list-style:none;display:flex;flex-direction:column;gap:8px}.plan-features li{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--text)}.plan-features li svg{flex-shrink:0;color:var(--success)}.plan-features li.disabled{color:var(--text-muted)}.plan-features li.disabled svg{color:var(--text-muted)}.btn-subscribe{padding:16px;font-size:16px;font-weight:700;border-radius:var(--r);margin-top:16px;background:#6c5ce714;color:var(--accent);border:1.5px solid var(--accent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.btn-subscribe:hover{background:var(--accent);color:#fff}.paywall-note{text-align:center;font-size:12px;color:var(--text-muted);margin-top:12px;font-weight:500}.paywall-footer-btns{display:flex;justify-content:flex-end;gap:16px;margin-top:8px}.paywall-manage-btn,.paywall-restore-btn{font-size:12px;color:var(--text-muted);background:none;border:none;cursor:pointer;padding:4px 0;text-decoration:underline}.paywall-manage-btn{color:var(--accent);font-weight:600;font-size:13px}.plan-upgrade-note{font-size:11px;color:var(--text-muted);text-align:center;margin:6px 0 0;line-height:1.5}.paywall-refund-btn{display:block;width:100%;text-align:center;font-size:12px;color:var(--text-muted);background:none;border:none;cursor:pointer;padding:8px 0 4px;text-decoration:underline}.refund-modal{max-height:80vh;display:flex;flex-direction:column;width:92%;max-width:480px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.modal-header h3{margin:0;font-size:16px}.refund-modal-body{overflow-y:auto;font-size:13px;line-height:1.8;color:var(--text)}.refund-modal-body p{margin:0 0 2px}.stats-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.stat-item{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:16px 8px;text-align:center;box-shadow:var(--card-shadow)}.stat-num{font-size:24px;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-lbl{font-size:11px;color:var(--text2);font-weight:600;margin-top:2px}.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:16px;box-shadow:var(--card-shadow)}.mastery-bar-container{width:100%}.mastery-bar{height:12px;background:var(--border);border-radius:6px;overflow:hidden}.mastery-fill{height:100%;background:linear-gradient(90deg,var(--success),#2ecc71);border-radius:6px;transition:width .5s}.mastery-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--text2);font-weight:600;margin-top:6px}.bar-chart{display:flex;align-items:flex-end;gap:6px;height:120px}.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%}.bar-value{font-size:10px;font-weight:700;color:var(--accent);margin-bottom:4px;min-height:14px}.bar-track{flex:1;width:100%;display:flex;align-items:flex-end}.bar-fill{width:100%;background:linear-gradient(180deg,var(--accent),var(--accent2));border-radius:4px 4px 0 0;min-height:2px;transition:height .4s}.bar-label{font-size:10px;color:var(--text-muted);margin-top:4px;white-space:nowrap}.test-history{display:flex;flex-direction:column;gap:8px}.test-history-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}.test-history-item:last-child{border-bottom:none}.test-history-info{flex:1;min-width:0}.test-history-name{font-size:13px;font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.test-history-meta{font-size:11px;color:var(--text-muted)}.test-history-score{display:flex;align-items:center;gap:8px;flex-shrink:0;width:100px}.mini-bar{flex:1;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.mini-fill{height:100%;border-radius:3px;transition:width .3s}.test-history-percent{font-size:13px;font-weight:700;min-width:36px;text-align:right}.exam-prep-intro{text-align:center;padding:24px 0}.exam-prep-icon{width:64px;height:64px;margin:0 auto 14px;background:var(--accent-bg);border-radius:16px;display:flex;align-items:center;justify-content:center}.exam-prep-icon svg{color:var(--accent)}.exam-prep-intro h3{font-size:17px;font-weight:700;margin-bottom:6px}.exam-prep-intro p{font-size:13px;color:var(--text2);line-height:1.5}.loading-steps{display:flex;flex-direction:column;gap:10px;margin-top:20px;width:100%;max-width:260px}.loading-step{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-muted);font-weight:500;transition:all .3s}.loading-step.active{color:var(--accent);font-weight:600}.loading-step.done{color:var(--success)}.step-dot{width:10px;height:10px;border-radius:50%;background:var(--border);flex-shrink:0;transition:all .3s}.loading-step.active .step-dot{background:var(--accent);animation:pulse 1s infinite}.loading-step.done .step-dot{background:var(--success)}.loading-step-stat{margin-left:auto;font-size:12px;font-weight:600;color:var(--success)}.loading-step-drop{color:var(--danger)}.exam-prep-textarea{resize:vertical;min-height:120px;line-height:1.6}.exam-btn-bar{flex-shrink:0;padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--border)}.exam-section-tabs{display:flex;gap:4px;padding:10px 16px;background:var(--bg2);border-bottom:1px solid var(--border)}.exam-section-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:var(--r-sm);font-size:11px;font-weight:600;color:var(--text-muted);transition:all .15s}.exam-section-tab.active{background:var(--accent-bg);color:var(--accent)}.exam-section-tab.done{color:var(--success)}.exam-section-tab.clickable{cursor:pointer}.exam-section-tab.clickable:hover{background:var(--accent-bg)}.tab-icon{font-size:13px;font-weight:800;font-family:monospace}.tab-label{white-space:nowrap}.selected-opt{border-color:var(--accent);background:var(--accent-bg)}.passage-collapsible{border:1px solid var(--border);border-radius:var(--r-sm);margin-bottom:16px;overflow:hidden}.passage-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:10px 14px;background:var(--surface2);border:none;cursor:pointer;color:var(--text2);font-size:calc(13px * var(--font-scale, 1));font-weight:500;text-align:left}.passage-toggle:hover{background:var(--border)}.passage-toggle span{flex:1}.passage-chevron{transition:transform .2s;flex-shrink:0}.passage-chevron.open{transform:rotate(180deg)}.passage-panel{background:var(--surface);border-top:1px solid var(--border);padding:12px 14px}.passage-panel-text{font-size:calc(13px * var(--font-scale, 1) * var(--passage-zoom, 1));color:var(--text2);line-height:1.7;white-space:pre-wrap;margin:0}.passage-sentences{font-size:calc(13px * var(--font-scale, 1) * var(--passage-zoom, 1));color:var(--text);line-height:1.85}.passage-sentence{display:inline;position:relative}.passage-translate-hint{font-size:calc(11px * var(--font-scale, 1) * var(--passage-zoom, 1));color:var(--accent);margin:0 0 8px;opacity:.75}.passage-sentence.translatable{cursor:pointer}.sentence-translate-btn{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);opacity:.35;cursor:pointer;margin:0 7px;vertical-align:middle;flex-shrink:0;-webkit-user-select:none;user-select:none;transition:opacity .15s}.sentence-translate-btn:hover,.sentence-translate-btn.active{opacity:1}@keyframes _hl-show{0%{opacity:.98}to{opacity:1}}.passage-sentence.active{background:#ffd700d9;color:#1c1c2e;border-radius:3px;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:_hl-show 1ms forwards}.translation-bubble{display:block;position:relative;background:var(--accent);color:#fff;border-radius:10px;padding:8px 12px;margin:6px 0 8px;font-size:calc(12px * var(--font-scale, 1) * var(--passage-zoom, 1));line-height:1.6;cursor:pointer;box-shadow:0 2px 8px #0000002e;z-index:10}.translation-bubble:before{content:"";position:absolute;top:-7px;left:16px;border:7px solid transparent;border-bottom-color:var(--accent);border-top:0}.ann-span{cursor:pointer;border-radius:2px;transition:background .15s}.ann-span.ann-grammar{border-bottom:2px solid var(--accent)}.ann-span.ann-vocabulary{border-bottom:2px dotted #00b894}.ann-span.ann-blank{cursor:pointer}.ann-blank-paren{opacity:.5;font-weight:400}.ann-span.ann-exam{background:#fd79a84d;border-radius:3px;padding:0 1px}.ann-span.ann-active{background:color-mix(in srgb,var(--accent) 12%,transparent)}.ann-span.ann-exam.ann-active{background:#fd79a88c}.ann-bubble{display:flex;flex-direction:column;gap:4px;min-width:200px;max-width:280px;background:#1e1e30;color:#e8e8f0;border-radius:10px;padding:10px 12px;font-size:calc(11.5px * var(--font-scale, 1) * var(--passage-zoom, 1));line-height:1.6;box-shadow:0 4px 16px #00000047;z-index:20;white-space:normal}.ann-bubble-type{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:1px 6px;border-radius:4px;align-self:flex-start}.ann-type-grammar{background:var(--accent);color:#fff}.ann-type-vocabulary{background:#00b894;color:#fff}.ann-type-blank{background:#fdcb6e;color:#1c1c2e}.ann-type-exam{background:#fd79a8;color:#fff}.ann-bubble-text{color:#c8c8da}.ann-bubble-synonyms{color:#00b894;font-style:italic}.ann-bubble-close{position:absolute;top:6px;right:8px;cursor:pointer;font-size:11px;color:#666;line-height:1}.exam-explanation{margin-top:12px;padding:12px 20px;background:var(--accent-bg);border-radius:var(--r-sm);font-size:13px;color:var(--text);line-height:1.6;text-align:left}.word-order-meaning{font-size:14px;color:var(--text2);background:var(--surface2);border-radius:var(--r-sm);padding:8px 12px;margin-bottom:12px;font-style:italic}.word-order-built{min-height:48px;border:2px dashed var(--accent);border-radius:var(--r-sm);padding:10px 12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px;background:var(--accent-bg)}.word-order-placeholder{font-size:13px;color:var(--text2)}.word-order-pool{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.word-chip{padding:6px 14px;border-radius:20px;font-size:14px;font-weight:600;border:1.5px solid var(--border);background:var(--bg2);color:var(--text);cursor:pointer;transition:all .15s}.word-chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.word-chip.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.word-chip:disabled{opacity:.6;cursor:default}.error-spot-label{display:inline-block;font-weight:800;color:var(--accent);font-size:12px;margin:0 1px;font-family:monospace}.exam-type-selector{margin-top:16px}.exam-type-chips{display:flex;flex-wrap:wrap;gap:8px}.exam-type-chip{padding:6px 12px;border-radius:20px;border:1.5px solid var(--border);background:var(--bg2);color:var(--text2);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;display:flex;align-items:center}.exam-type-chip.selected{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}.dialog-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}.dialog-box{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:28px 24px 20px;width:100%;max-width:400px;text-align:center;animation:slideDown .2s ease;box-shadow:0 8px 32px #00000026}.dialog-icon{margin-bottom:12px}.dialog-message{font-size:calc(15px * var(--font-scale));font-weight:500;color:var(--text);line-height:1.6;margin-bottom:20px;white-space:pre-line}.dialog-actions{display:flex;gap:8px}.dialog-btn{flex:1;padding:12px;border-radius:var(--r-sm);font-size:15px;font-weight:600;cursor:pointer;font-family:var(--font);transition:all .15s;border:none}.dialog-btn.ok{background:#6c5ce714;color:var(--accent);border:1.5px solid var(--accent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-btn.ok:hover{background:var(--accent);color:#fff}.dialog-btn.cancel{background:#ffffff0d;color:var(--text2);border:1.5px solid var(--border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-btn.cancel:hover{border-color:var(--text2)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}@media(max-width:800px){.content{padding:12px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.home-action-cards{padding:12px 12px 0;grid-template-columns:1fr 1fr 1fr}}@keyframes tutorial-btn-pulse{0%,to{outline-color:var(--accent);outline-offset:2px}50%{outline-color:#6c5ce773;outline-offset:4px}}.tutorial-highlight{outline:2px solid var(--accent);outline-offset:2px;animation:tutorial-btn-pulse 2.2s ease-in-out infinite}.tutorial-icon-accent{color:var(--accent)}.btn-action-accent{color:var(--accent);border-color:var(--accent)}.btn-action-accent svg{color:var(--accent)}@keyframes btn-blink{0%,to{opacity:1}50%{opacity:.35}}.btn-action-blink,.btn-pulse{animation:btn-blink 1.1s ease-in-out infinite}@keyframes icon-hint-blink{0%,to{color:var(--accent);opacity:1}50%{color:var(--accent);opacity:.3}}.icon-btn-sm.btn-action-blink{animation:icon-hint-blink 1.1s ease-in-out infinite;color:var(--accent)}.plan-today-hint{display:flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--accent) 12%,transparent);border:1.5px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:12px;padding:10px 14px;margin:0 16px 10px;cursor:pointer;font-size:13px;color:var(--accent);font-weight:500}@keyframes plan-dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.plan-today-hint-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0;animation:plan-dot-pulse 1.2s ease-in-out infinite}.plan-today-card-dot{position:absolute;top:10px;left:10px;width:10px;height:10px;border-radius:50%;background:var(--accent);animation:plan-dot-pulse 1.2s ease-in-out infinite;z-index:2}@keyframes test-hint-glow{0%,to{color:var(--accent);filter:drop-shadow(0 0 3px var(--accent))}50%{color:var(--text2);filter:none}}.test-hint-btn svg{animation:test-hint-glow 1.2s ease-in-out infinite}.tutorial-banner{margin:8px 16px 0;padding:12px 14px;background:var(--accent-bg);border:1px solid rgba(108,92,231,.25);border-radius:12px;animation:slideDown .2s ease}.tutorial-banner-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.tutorial-banner-step{font-size:10px;font-weight:600;color:var(--text2);letter-spacing:.2px}.tutorial-banner-close{background:none;border:none;color:var(--text2);cursor:pointer;padding:2px;display:flex;align-items:center}.tutorial-banner-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:2px}.tutorial-banner-desc{font-size:13px;color:var(--text-secondary);line-height:1.5}.tutorial-banner-extra{color:var(--accent);font-weight:700}.tutorial-banner-btn{margin-top:10px;width:100%}.tutorial-banner .btn-secondary{color:var(--text);border-color:var(--accent)}.tutorial-banner .btn-secondary:hover{color:var(--accent)}.tutorial-banner-actions{display:flex;flex-direction:column;gap:6px}.youtube-modal-overlay{align-items:center;padding:16px}.youtube-modal{position:relative;width:min(360px,90vw);background:#000;border-radius:12px;overflow:hidden}.youtube-modal-close{position:absolute;top:8px;right:8px;z-index:10;background:#0009;border:none;color:#fff;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer}.youtube-modal-iframe-wrap{position:relative;padding-bottom:177.78%;height:0}.youtube-modal-iframe-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:none}.fc-content{display:flex;flex-direction:column;overflow:hidden;padding:0}.fc-setup{display:flex;flex-direction:column;align-items:center;padding:40px 24px 32px;gap:28px}.fc-setup-emoji{font-size:64px;line-height:1}.fc-setup-title{font-size:20px;font-weight:700;color:var(--text);margin-bottom:6px}.fc-setup-sub{font-size:14px;color:var(--text3)}.fc-section-label{font-size:12px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}.fc-mode-options{display:flex;gap:8px;width:100%}.fc-mode-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px 6px;border-radius:12px;border:2px solid var(--border);background:var(--bg2);color:var(--text2);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;line-height:1.2}.fc-mode-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.fc-mode-hint{font-size:12px;color:var(--accent);margin-top:8px;padding:6px 10px;background:var(--accent-bg);border-radius:8px;text-align:center}.fc-chunk-options{display:flex;gap:10px;flex-wrap:wrap}.fc-chunk-btn{padding:10px 22px;border-radius:50px;border:2px solid var(--border);background:var(--bg2);color:var(--text2);font-size:15px;font-weight:600;cursor:pointer;transition:all .15s}.fc-chunk-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.fc-start-btn{padding:14px 52px;border-radius:50px;background:var(--accent);color:#fff;font-size:18px;font-weight:700;border:none;cursor:pointer;box-shadow:0 4px 20px #0000002e;transition:transform .1s}.fc-start-btn:active{transform:scale(.97)}.fc-sound-btn{width:100%;display:flex;align-items:center;gap:14px;padding:16px 18px;background:var(--bg2);border:2px solid var(--border);border-radius:14px;cursor:pointer;transition:border-color .18s,background .18s;text-align:left}.fc-sound-btn.active{border-color:var(--accent);background:var(--accent-bg)}.fc-sound-btn:active{transform:scale(.98)}.fc-sound-icon{color:var(--text3);flex-shrink:0;display:flex;align-items:center}.fc-sound-btn.active .fc-sound-icon{color:var(--accent)}.fc-sound-text{flex:1;display:flex;flex-direction:column;gap:3px}.fc-sound-title{font-size:16px;font-weight:700;color:var(--text)}.fc-sound-sub{font-size:12px;color:var(--text3)}.fc-sound-pill{flex-shrink:0;font-size:12px;font-weight:700;padding:4px 12px;border-radius:50px;background:var(--bg3, rgba(0,0,0,.06));color:var(--text3);letter-spacing:.5px}.fc-sound-pill.on{background:var(--accent);color:#fff}.fc-progress-row{padding:12px 20px 0}.fc-progress-track{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.fc-progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .4s ease}.fc-progress-text{display:flex;justify-content:space-between;font-size:12px;color:var(--text3);margin-top:5px}.fc-card-area{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:12px 20px;perspective:1200px;overflow:hidden}.fc-card{width:100%;max-width:400px;height:min(430px,100%);position:relative;transform-style:preserve-3d;transition:transform .44s cubic-bezier(.4,0,.2,1);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none}.fc-card.flipped{transform:rotateY(180deg)}.fc-face{position:absolute;inset:0;border-radius:22px;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;box-shadow:0 20px 60px #00000026,0 6px 20px #0000001a,0 1px 4px #0000000f}.fc-front{background:var(--bg2);border:1.5px solid var(--border);display:flex;flex-direction:column}.fc-back{background:var(--bg2);border:2px solid var(--accent);transform:rotateY(180deg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 24px;gap:18px;background:linear-gradient(160deg,var(--accent-bg) 0%,var(--bg2) 60%)}.fc-image-area{flex:0 0 56%;overflow:hidden;border-bottom:1px solid var(--border)}.fc-image{width:100%;height:100%;object-fit:cover;display:block}.fc-image-empty{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 6%,var(--bg)) 0%,var(--bg2) 100%)}.fc-image-monogram{font-size:96px;font-weight:900;color:var(--accent);opacity:.12;line-height:1;font-style:italic;letter-spacing:-4px}.fc-front-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 20px 10px;gap:6px}.fc-word{font-size:32px;font-weight:800;color:var(--text);text-align:center;line-height:1.2;letter-spacing:-.5px}.fc-pos-tag{font-size:12px;color:var(--accent);font-weight:700;background:var(--accent-bg);padding:2px 10px;border-radius:50px}.fc-pron{font-size:13px;color:var(--text3);font-style:italic}.fc-tap-hint{font-size:11px;color:var(--text3);opacity:.6;margin-top:2px}.fc-back-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}.fc-back-word{font-size:17px;font-weight:700;color:var(--accent)}.fc-meaning{font-size:28px;font-weight:800;color:var(--text);text-align:center;line-height:1.35}.fc-example{font-size:13px;color:var(--text2);text-align:center;line-height:1.65;font-style:italic;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.fc-indicator{position:absolute;top:18px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:5px;font-size:18px;font-weight:800;border-radius:8px;padding:8px 18px;border:2.5px solid;pointer-events:none;z-index:10;transition:opacity .06s}.fc-indicator-know{color:#22c55e;border-color:#22c55e;background:#22c55e1f}.fc-indicator-no{color:#ef4444;border-color:#ef4444;background:#ef44441f}.fc-actions{display:flex;gap:16px;padding:10px 24px 28px;justify-content:center;position:relative;z-index:2;flex-shrink:0}.fc-btn{flex:1;max-width:150px;height:52px;border-radius:50px;border:2px solid;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;transition:transform .1s,box-shadow .1s}.fc-btn:active{transform:scale(.95)}.fc-btn-no{background:#ef444414;color:#ef4444;border-color:#ef444459}.fc-btn-yes{background:#22c55e14;color:#22c55e;border-color:#22c55e59}.fc-btn-no:hover{background:#ef444424}.fc-btn-yes:hover{background:#22c55e24}.test-type-flashcard{border-color:var(--accent);background:linear-gradient(135deg,var(--accent-bg) 0%,transparent 60%)}.test-type-flashcard h3{color:var(--accent)}.fc-result{display:flex;flex-direction:column;align-items:center;padding:32px 20px 40px;gap:22px;overflow-y:auto}.fc-result-trophy{font-size:64px;line-height:1}.fc-result-title{font-size:24px;font-weight:800;color:var(--text)}.fc-result-stats{display:flex;align-items:center;gap:0;background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--r);padding:16px 24px;width:100%;max-width:340px}.fc-stat-box{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}.fc-stat-num{font-size:26px;font-weight:800;color:var(--accent)}.fc-stat-label{font-size:11px;color:var(--text3);font-weight:600}.fc-stat-divider{width:1px;height:40px;background:var(--border);margin:0 4px}.fc-result-cloud{display:flex;flex-wrap:wrap;gap:6px 8px;justify-content:center;width:100%;padding:8px 4px;line-height:1.8}.fc-cloud-word{display:inline-block;transition:all .3s}.fc-back-btn{padding:12px 32px;border-radius:50px;background:var(--bg2);border:1.5px solid var(--border);color:var(--text2);font-size:15px;font-weight:600;cursor:pointer;margin-top:4px}.fc-back-btn:hover{border-color:var(--accent);color:var(--accent)}.test-type-maze{border-color:#27ae60;background:linear-gradient(135deg,#27ae6014,#2ecc710a)}.test-type-maze h3{color:#27ae60}.module-head{display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;font-family:Consolas,SF Mono,Courier New,monospace;font-size:clamp(.72rem,2.5vw,.9rem);line-height:1.4}.module-prompt{color:#3fb950;font-weight:700}.module-id{color:#484f58}.module-code{color:#58a6ff;font-weight:600;letter-spacing:.5px}.module-sep{color:#30363d;font-size:.78rem}.module-name{color:#e6edf3;font-family:-apple-system,BlinkMacSystemFont,sans-serif;font-weight:600}.module-dp{color:#8b949e;margin-right:4px}.maze-start-screen .module-head{justify-content:flex-start;margin-bottom:16px}.start-log-lines{text-align:left;margin-bottom:16px}.start-log-line{font-family:Consolas,SF Mono,Courier New,monospace;font-size:.82rem;color:#c9d1d9;line-height:1.8}.collapsible-leaderboard{width:100%;max-width:280px;margin:8px auto}.collapsible-lb-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;text-align:center;color:gold;font-weight:700;font-size:.9em;padding:6px;background:#0000004d;border-radius:8px}.collapsible-lb-toggle .collapse-arrow{font-size:.75em;margin-left:4px;opacity:.6}.collapsible-leaderboard.collapsed .collapsible-lb-body{display:none}.collapsible-wrong-toggle{cursor:pointer;-webkit-user-select:none;user-select:none}.collapsible-wrong-toggle .collapse-arrow{font-size:.75em;margin-left:4px;opacity:.6}.collapsible-wrong.collapsed .collapsible-wrong-body{display:none}.collapsible-wrong:not(.collapsed) .collapsible-wrong-body{max-height:150px;overflow-y:auto}.maze-game-wrapper{position:relative;width:100%;height:100%;overflow:hidden;background:#0d1117}.maze-canvas{position:absolute;top:0;left:0;width:100%!important;height:100%!important;outline:none}.maze-level-display{position:absolute;top:calc(10px + env(safe-area-inset-top,0px));right:15px;font-family:monospace;font-size:14px;color:#fff;background:#00000080;padding:4px 10px;border-radius:6px;z-index:15}.maze-timer{font-family:monospace;padding:4px 12px;background:#00000080;border-radius:8px;text-align:center;margin-top:5px;font-size:16px;font-weight:600;color:#fff}.maze-timer.warning{color:#f44;animation:timerPulse .5s infinite}@keyframes timerPulse{0%,to{opacity:1}50%{opacity:.5}}.maze-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000000d9;z-index:20}.maze-overlay-content{width:100%;max-height:85%;overflow:hidden;display:flex;flex-direction:column;align-items:center}.maze-start-screen,.maze-clear-screen{text-align:center;padding:24px 32px;background:#141e32f2;border-radius:16px;border:2px solid rgba(100,150,255,.3);width:90%;max-width:400px;box-sizing:border-box}.maze-start-btn{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;border:none;padding:12px 40px;font-size:1rem;font-weight:600;border-radius:10px;cursor:pointer;transition:transform .2s}.maze-start-btn:hover{transform:translateY(-2px)}.maze-start-btn:active{transform:translateY(0)}.maze-btn{padding:8px 18px;font-size:.85rem;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:transform .2s}.maze-btn.primary{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff}.maze-btn.secondary{background:#ffffff1a;color:#c9d1d9;border:1px solid rgba(255,255,255,.2)}.maze-btn:hover{transform:translateY(-2px)}.maze-result-screen{text-align:center;padding:20px 24px;background:#000000f2;border-radius:14px;border:2px solid rgba(100,150,255,.3);width:92%;max-width:480px;max-height:92dvh;display:flex;flex-direction:column;overflow-y:auto}.maze-result-header h2{font-size:1.3rem;color:gold;margin:0 0 8px}.maze-result-stats{color:#a0a0b0;font-size:.85rem;margin:4px 0}.maze-map-container{margin:12px 0;padding:12px;background:#0000004d;border-radius:8px;flex-shrink:1;min-height:0;overflow:hidden}.maze-map-canvas{max-width:100%;height:auto;border-radius:4px}.maze-map-legend{display:flex;justify-content:center;gap:16px;margin-top:10px;font-size:.75rem;color:#a0a0b0}.legend-item{display:flex;align-items:center;gap:4px}.legend-dot{width:10px;height:10px;border-radius:50%}.legend-dot.start{background:#68f}.legend-dot.exit{background:#fff;border:1px solid #cccccc}.legend-dot.correct{background:#0f8}.legend-dot.wrong{background:#f46}.legend-dot.player{background:#fc0;border:1px solid #ff9900}.maze-wrong-words{margin:16px 0;text-align:left;flex-shrink:0}.maze-wrong-words h3{font-size:.95rem;color:#ff6b6b;margin:0 0 8px;flex-shrink:0}.wrong-words-list{display:flex;flex-direction:column;gap:6px}.wrong-word-item{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:#ff64641a;border-radius:6px;border-left:3px solid #ff6b6b}.wrong-word-en{font-weight:600;font-size:.9rem;color:#fff}.wrong-word-kr{color:#a0a0b0;font-size:.8rem}.maze-result-buttons{display:flex;gap:14px;justify-content:center;margin-top:16px;flex-shrink:0}.maze-compass{position:absolute;top:calc(10px + env(safe-area-inset-top,0px));left:15px;width:60px;height:60px;z-index:15;pointer-events:none}.maze-compass-ring{width:100%;height:100%;border-radius:50%;border:3px solid rgba(255,215,0,.8);background:#0009;display:flex;align-items:center;justify-content:center;position:relative;box-shadow:0 2px 10px #00000080,inset 0 0 15px #ffd70033}.maze-compass-needle{position:absolute;width:8px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;transition:transform .3s ease}.needle-north{font-size:16px;background:linear-gradient(to bottom,#fff 0% 15%,#f44 30% 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 3px #ff0000)}.needle-south{color:#888;font-size:12px}.maze-compass-label{position:absolute;bottom:-18px;font-size:12px;color:gold;text-shadow:0 1px 3px rgba(0,0,0,.8)}.maze-rearview{position:absolute;top:calc(10px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);z-index:15;pointer-events:none}.maze-rearview canvas{border-radius:8px;border:2px solid rgba(100,100,100,.6);background:#0000004d;box-shadow:0 2px 8px #0006}.android-app .maze-level-display,.android-app .maze-compass,.android-app .maze-rearview{top:calc(10px + var(--status-bar-height, 28px))}.maze-direction-panel{position:absolute;bottom:calc(30px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);display:flex;gap:20px;align-items:center;z-index:20;animation:fadeInUp .3s ease}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.maze-dir-btn{width:70px;height:70px;border-radius:50%;border:4px solid #555;background:#fffffff2;font-size:28px;cursor:pointer;transition:all .15s ease;box-shadow:0 4px 15px #0000004d;display:flex;align-items:center;justify-content:center}.maze-dir-btn:hover{transform:scale(1.1);box-shadow:0 6px 20px #0006}.maze-dir-btn:active{transform:scale(.95)}.onboarding-screen{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;z-index:1000;overflow-y:auto;padding:env(safe-area-inset-top,0) 0 env(safe-area-inset-bottom,0)}.onboarding-progress{display:flex;align-items:center;gap:0;padding:24px 0 0;flex-shrink:0}.onb-dot{width:10px;height:10px;border-radius:50%;background:var(--border);transition:background .3s}.onb-dot.active{background:var(--accent)}.onb-line{width:48px;height:3px;background:var(--border);border-radius:2px;transition:background .3s}.onb-line.active{background:var(--accent)}.onboarding-body{width:100%;max-width:480px;padding:24px 24px 40px;display:flex;flex-direction:column;gap:0;flex:1}.onb-brand{display:flex;flex-direction:column;align-items:center;text-align:center;padding:16px 0 24px}.onb-app-name{font-size:26px;font-weight:800;color:var(--accent);margin-top:8px}.onb-welcome{font-size:14px;color:var(--text2);margin-top:6px;line-height:1.5}.onb-step-title{font-size:18px;font-weight:700;color:var(--text);margin-bottom:20px;text-align:center}.onb-colors{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}.onb-color-btn{border-radius:18px;border:none;cursor:pointer;height:78px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:0 10px 10px;position:relative;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 4px 16px #00000021}.onb-color-btn:active{transform:scale(.94)}.onb-color-btn.active{transform:scale(1.05);box-shadow:0 0 0 2.5px var(--bg),0 0 0 5px var(--c),0 8px 22px #0000002e}.onb-swatch-check{position:absolute;top:9px;right:9px;width:22px;height:22px;border-radius:50%;background:#ffffff47;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center}.onb-swatch-name{font-size:11.5px;font-weight:700;color:#ffffffed;text-shadow:0 1px 4px rgba(0,0,0,.28);letter-spacing:.2px}.onb-theme-toggle{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-radius:14px;background:var(--input);border:1px solid var(--border);cursor:pointer;margin-bottom:16px;-webkit-user-select:none;user-select:none}.onb-theme-label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--text)}.onb-btn{width:100%;padding:16px;border:none;border-radius:var(--r);background:var(--accent);color:#fff;font-size:17px;font-weight:700;cursor:pointer;transition:opacity .15s,transform .1s;margin-top:auto}.onb-btn:hover{opacity:.92}.onb-btn:active{transform:scale(.98)}.onb-btn:disabled{opacity:.55;cursor:not-allowed}.onb-settings-note{font-size:12px;color:var(--text3, var(--text2));text-align:center;margin:0 0 10px;opacity:.7}.onb-back-btn{background:none;border:none;color:var(--text2);font-size:14px;cursor:pointer;padding:0;display:inline-flex;align-items:center;margin-bottom:12px;align-self:flex-start}.onb-back-btn:hover{color:var(--text)}.onb-section{margin-bottom:22px}.onb-section-label{font-size:13px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.onb-lang-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.onb-lang-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--bg2);cursor:pointer;transition:border-color .15s,background .15s}.onb-lang-btn.active{border-color:var(--accent);background:var(--accent-bg)}.onb-lang-flag{font-size:22px;line-height:1}.onb-lang-name{font-size:11px;font-weight:500;color:var(--text);text-align:center;line-height:1.2;word-break:break-word}.onb-lang-badge{display:inline-flex;align-items:center;gap:10px;padding:10px 20px;border-radius:16px;background:var(--accent-bg);border:1.5px solid var(--accent);font-size:17px;font-weight:700;color:var(--accent);margin-bottom:20px;align-self:center}.onb-lang-badge span:first-child{font-size:26px;line-height:1}.onb-style-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px}.onb-style-btn{border:none;background:none;cursor:pointer;padding:0}.onb-style-preview{width:100%;aspect-ratio:1;border-radius:16px;overflow:hidden;position:relative;transition:transform .18s ease,box-shadow .18s ease;box-shadow:0 3px 10px #00000024}.onb-style-img{width:100%;height:100%;object-fit:cover;display:block}.onb-style-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#00000094);padding:16px 6px 7px;display:flex;align-items:flex-end;justify-content:center}.onb-style-label{font-size:10.5px;font-weight:700;color:#fffffff2;text-align:center;text-shadow:0 1px 3px rgba(0,0,0,.35)}.onb-style-btn:active .onb-style-preview{transform:scale(.94)}.onb-style-btn.active .onb-style-preview{box-shadow:0 0 0 2.5px var(--bg),0 0 0 5px var(--accent),0 5px 16px #0003;transform:scale(1.04)}.onb-style-check{position:absolute;top:7px;right:7px;width:22px;height:22px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #00000040}.onboarding-body .exam-type-btn{padding:14px 8px;border-radius:14px;font-size:13px;font-weight:600}.maze-dir-left{border-color:#e74c3c;color:#e74c3c}.maze-dir-left:hover{background:#e74c3c33}.maze-dir-right{border-color:#3498db;color:#3498db}.maze-dir-right:hover{background:#3498db33}.maze-dir-go{width:90px;height:90px;font-size:24px;font-weight:700;border-color:#27ae60;color:#fff;background:linear-gradient(135deg,#27ae60,#2ecc71)}.maze-dir-go:hover{background:linear-gradient(135deg,#219a52,#27ae60);transform:scale(1.15)}.maze-dir-go:disabled{background:#999;border-color:#777;cursor:not-allowed}.maze-dir-go:disabled:hover{transform:none}@media(max-width:768px){.maze-direction-panel{bottom:calc(20px + env(safe-area-inset-bottom,0px));gap:15px}.maze-dir-btn{width:55px;height:55px;font-size:22px}.maze-dir-go{width:70px;height:70px;font-size:20px}}.wordguess-content{display:flex;flex-direction:column;align-items:center;gap:16px;padding:16px}.wordguess-battle-hud{display:flex;align-items:flex-end;justify-content:space-between;width:100%;gap:8px}.battle-fighter{display:flex;flex-direction:column;align-items:flex-start;gap:6px;flex:1}.battle-fighter.enemy{align-items:flex-end}.battle-hp-track{width:100%;height:10px;background:var(--input);border-radius:10px;overflow:hidden}.battle-hp-fill{height:100%;border-radius:10px;background:var(--success);transition:width .3s ease,background .3s ease}.enemy-track{direction:rtl}.enemy-fill{background:var(--danger);transition:width .3s ease}.battle-avatar{display:flex;align-items:center;justify-content:center}.battle-vs-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:6px;flex-shrink:0}@keyframes wg-hit-left{0%{transform:translate(0) scale(1)}25%{transform:translate(-10px) scale(.92)}55%{transform:translate(5px) scale(.96)}80%{transform:translate(-3px)}to{transform:translate(0) scale(1)}}@keyframes wg-hit-right{0%{transform:translate(0) scale(1)}25%{transform:translate(10px) scale(.92)}55%{transform:translate(-5px) scale(.96)}80%{transform:translate(3px)}to{transform:translate(0) scale(1)}}.battle-avatar.player-hit{animation:wg-hit-left .38s ease}.battle-avatar.enemy-hit{animation:wg-hit-right .38s ease}@keyframes soul-rise{0%{transform:translate(-50%) translateY(0) scale(1);opacity:1}30%{transform:translate(-50%) translateY(-24px) scale(1.1);opacity:.95}70%{transform:translate(-50%) translateY(-60px) scale(.85);opacity:.6}to{transform:translate(-50%) translateY(-90px) scale(.5);opacity:0}}.soul-rising{position:absolute;bottom:100%;left:30%;pointer-events:none;animation:soul-rise 2.2s cubic-bezier(.4,0,.2,1) forwards;animation-delay:.3s;opacity:0}.wordguess-meaning-hint{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--text);text-align:center;padding:10px 16px;background:var(--bg2);border-radius:12px;width:100%;box-sizing:border-box;line-height:1.4;box-shadow:var(--card-shadow);border-left:4px solid #f59e0b;animation:plan-guide-in .25s ease both}.wordguess-hint-label{font-size:18px;flex-shrink:0}.wordguess-lives{display:flex;gap:8px;background:var(--bg2);padding:8px 16px;border-radius:40px;box-shadow:var(--card-shadow)}.wordguess-heart{display:flex;align-items:center;color:var(--danger);transition:color .2s,transform .25s}.wordguess-heart.lost{color:var(--border);transform:scale(.75)}.wordguess-word{display:flex;flex-wrap:nowrap;justify-content:center;gap:4px;align-items:center;width:100%;overflow:hidden;padding:4px 0}.wordguess-cell{flex-shrink:0;width:40px;height:44px;border:2px solid var(--border);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;color:var(--text);background:var(--bg2);transition:background .2s,color .2s,border-color .2s,transform .15s}.wordguess-cell.revealed{background:var(--accent);color:#fff;border-color:var(--accent);transform:scale(1.05)}.wordguess-gap{width:10px;flex-shrink:0}.wordguess-hint{font-size:12px;color:var(--text-muted);letter-spacing:.5px}.wordguess-keyboard{width:100%;max-width:420px;display:flex;flex-direction:column;gap:6px}.wordguess-syllable-grid{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:6px}.wordguess-row{display:flex;justify-content:center;gap:5px}.wordguess-key{min-width:32px;height:42px;padding:0 4px;border-radius:8px;border:1.5px solid var(--border);background:var(--bg2);color:var(--text);font-size:14px;font-weight:700;cursor:pointer;transition:background .12s,color .12s,border-color .12s,transform .1s;flex-shrink:0;box-shadow:0 2px 0 var(--border)}.wordguess-key:not(:disabled):active{transform:translateY(2px);box-shadow:none}.wordguess-key:not(:disabled):hover{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.wordguess-key.correct{background:var(--success);border-color:var(--success);box-shadow:0 2px #00896a;color:#fff}.wordguess-key.wrong{background:var(--input);border-color:transparent;color:var(--text-muted);box-shadow:none;opacity:.5}.wordguess-key.predisabled{background:var(--bg);border-color:transparent;color:var(--border);opacity:.3;cursor:default;box-shadow:none}.wordguess-key:disabled{cursor:default}.wordguess-result{display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 24px;background:var(--bg2);border-radius:var(--r);box-shadow:var(--card-shadow);width:100%;max-width:380px;animation:plan-guide-in .3s ease both}.wordguess-result.won{border-top:4px solid var(--success)}.wordguess-result.lost{border-top:4px solid var(--danger)}.wordguess-result-emoji{display:flex;align-items:center;justify-content:center}.wordguess-result.won .wordguess-result-emoji{color:var(--success)}.wordguess-result.lost .wordguess-result-emoji{color:var(--danger)}.wordguess-result-word{font-size:26px;font-weight:800;color:var(--text);letter-spacing:2px}.wordguess-result-meaning{font-size:15px;color:var(--text2);text-align:center;line-height:1.5}.wordguess-result-actions{display:flex;gap:10px;margin-top:8px;width:100%}
