*{margin:0;padding:0;box-sizing:border-box;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{background:#f7f7f8;background-attachment:fixed;min-height:100vh;min-height:100dvh;display:block;padding:12px 16px 32px;overflow-y:auto;overflow-x:hidden}body,html{height:100%;overflow-y:auto}#app{width:100%;max-width:960px;margin:0 auto;background:rgba(255,255,255,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:20px;padding:24px 24px 24px;box-shadow:0 2px 16px rgba(0,0,0,.06);border:1px solid #e4e4e7;overflow:visible}.phase-container{animation:fadeIn .4s ease;overflow:visible}@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.game-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1.5px solid #e4e4e7}.logo{display:flex;align-items:center;gap:10px}.logo i{font-size:1.5rem;color:#4f46e5;background:#eef2ff;padding:8px 10px;border-radius:12px}.logo h1{font-size:1.4rem;font-weight:700;color:#18181b;letter-spacing:-.3px}.badge{background:#4f46e5;color:#fff;font-size:.65rem;font-weight:700;padding:4px 14px;border-radius:20px;letter-spacing:.5px}.level-badge{background:#4f46e5;padding:6px 18px;border-radius:12px;color:#fff;font-weight:700;font-size:.85rem;display:flex;align-items:center;gap:8px}.level-badge i{color:#e0e7ff}.level-num{background:rgba(255,255,255,.2);padding:0 10px;border-radius:30px;font-size:.8rem}.subject-nav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.subj-btn{background:#ffffff;border:1.5px solid #e4e4e7;padding:6px 14px;border-radius:12px;font-weight:600;font-size:.8rem;color:#18181b;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:6px}.subj-btn:hover{background:#eef2ff;border-color:#4f46e5}.subj-btn:active{background:#e0e7ff}.subj-btn.active{background:#4f46e5;color:#fff;border-color:#4f46e5}.subj-btn.active i{color:#fff}.settings-panel{background:#fff;padding:20px 24px;border-radius:14px;margin-bottom:16px;border:1px solid #e4e4e7;box-shadow:0 2px 16px rgba(0,0,0,.06)}.settings-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.setting-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.setting-group label{font-weight:600;color:#18181b;font-size:.85rem}input[type=number],input[type=password],input[type=search],input[type=text],select,textarea{height:40px;border-radius:10px;border:1.5px solid #e4e4e7;padding:0 14px;font-size:15px;font-family:inherit;color:#18181b;background:#fff;outline:0;transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box}input[type=number]::placeholder,input[type=password]::placeholder,input[type=search]::placeholder,input[type=text]::placeholder,textarea::placeholder{color:#a1a1aa;font-style:normal}input[type=number]:hover,input[type=password]:hover,input[type=search]:hover,input[type=text]:hover,select:hover,textarea:hover{border-color:#d4d4d8}input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=text]:focus,select:focus,textarea:focus{border-color:#4f46e5;box-shadow:0 0 0 3px rgba(79,70,229,.12)}input:disabled,select:disabled,textarea:disabled{background:#f4f4f5;color:#bfbfbf;cursor:not-allowed}textarea{min-height:80px;padding:12px 14px;resize:vertical;height:auto}select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23777'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.setting-group select{min-width:80px}.setting-group input{flex:1;min-width:100px}.progress-area{background:#f4f4f5;border-radius:10px;height:8px;margin-bottom:16px;overflow:hidden}.progress-fill{height:100%;width:0%;background:#4f46e5;border-radius:10px;transition:width .5s ease}.game-info-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;background:#fff;padding:12px 20px;border-radius:14px;margin-bottom:16px;border:1px solid #e4e4e7;box-shadow:0 2px 12px rgba(0,0,0,.04)}.info-item{display:flex;align-items:center;gap:6px;font-size:.85rem;color:#52525b}.info-item i{color:#4f46e5}.info-item strong{color:#18181b;font-weight:700}.btn-small{padding:8px 16px;border-radius:12px;font-size:.8rem;border:1.5px solid #e4e4e7;background:#fff;cursor:pointer;font-weight:600;color:#18181b;transition:all .2s ease}.btn-small:hover{background:#ffffff;border-color:#4f46e5;transform:translateY(-1px);box-shadow:0 4px 12px rgba(79,70,229,.1)}.waiting-container{display:flex!important;align-items:center;justify-content:center;min-height:200px;padding:24px}.waiting-content{text-align:center;max-width:560px;width:100%;padding:24px;display:flex;flex-direction:column;align-items:center}.waiting-icon{font-size:3rem;color:#4f46e5;margin-bottom:16px;animation:floatUpDown 2s ease-in-out infinite}@keyframes floatUpDown{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulse-waiting{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.05)}}.waiting-content h2{font-size:1.5rem;color:#18181b;margin-bottom:4px;font-weight:700}.waiting-content p{font-size:.9rem;color:#52525b;margin:4px 0 12px 0}.waiting-content p strong{color:#18181b}.waiting-tips{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:12px;padding-top:16px;border-top:1.5px dashed #e4e4e7}.waiting-tips span{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:#18181b;background:#fff;padding:8px 18px;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.04);border:1px solid #e4e4e7;font-weight:500;width:fit-content;max-width:100%}.phase-title{font-size:1rem;font-weight:700;color:#18181b;margin-bottom:16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-bottom:8px;border-bottom:1.5px solid #f4f4f5}.phase-title i{color:#4f46e5;font-size:1rem}.phase-sub{font-size:.75rem;font-weight:500;color:#52525b;background:#f4f4f5;padding:3px 12px;border-radius:30px}.phase-progress{font-size:.75rem;font-weight:600;color:#52525b;background:#f4f4f5;padding:3px 14px;border-radius:30px;margin-left:auto}.word-display{text-align:center;padding:24px;background:#fff;border-radius:14px;border:1px solid #e4e4e7;box-shadow:0 2px 16px rgba(0,0,0,.06);margin-bottom:16px;position:relative}.word-en{font-size:2.25rem;font-weight:800;color:#18181b;letter-spacing:-.5px}.word-phonetic{font-size:.9rem;color:#a1a1aa;margin:4px 0 8px;font-family:'SF Pro Rounded','Segoe UI',-apple-system,sans-serif;font-weight:500}.word-ch{font-size:1.1rem;color:#18181b;background:#ffffff;padding:4px 20px;border-radius:12px;display:inline-block;font-weight:600;border:1px solid #f4f4f5}.word-description{font-size:.9rem;color:#52525b;background:#fafafa;padding:8px 18px;border-radius:12px;margin:10px auto 8px;display:inline-block;max-width:90%;border:1px solid #f4f4f5;font-weight:500}.btn-speak{background:#4f46e5;color:#fff;border:none;border-radius:12px;padding:6px 16px;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;gap:6px;margin-top:8px;transition:all .2s;font-weight:600}.btn-speak:hover{background:#4338ca;transform:translateY(-1px)}.btn-speak.playing{animation:pulse .8s ease infinite}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}.letter-input-area{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;padding:8px 0 14px;min-height:52px}.letter-slot{width:38px;height:44px;border-bottom:3px solid #e4e4e7;display:flex;align-items:flex-end;justify-content:center;font-size:1.5rem;font-weight:700;color:#18181b;background:0 0;transition:all .2s}.letter-slot.filled{border-bottom-color:#4f46e5}.letter-slot.active{border-bottom-color:#4f46e5;border-bottom-width:4px}.letter-slot.correct{border-bottom-color:#4f46e5;color:#18181b}.letter-slot.wrong{border-bottom-color:#ef4444;color:#ef4444;animation:shake .3s ease}.letter-slot.hint{border-bottom-color:#818cf8;color:#10b981}@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.prep-controls{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:4px}.prep-counter{font-weight:700;color:#4f46e5;font-size:.85rem;background:#eef2ff;padding:4px 16px;border-radius:12px;border:1px solid #e0e7ff}.prep-status{text-align:center;margin-top:10px;font-weight:600;color:#a1a1aa;font-size:.9rem;min-height:1.5em}.prep-status.success{color:#10b981}.prep-status.error{color:#ef4444}.btn{background:#fff;border:1.5px solid #e4e4e7;padding:10px 22px;border-radius:12px;font-weight:700;color:#18181b;transition:all .2s cubic-bezier(.4,0,.2,1);cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-size:.85rem;height:44px;box-shadow:0 1px 4px rgba(0,0,0,.04)}.btn:hover{background:#eef2ff;border-color:#4f46e5;transform:translateY(-1px);box-shadow:0 4px 12px rgba(79,70,229,.1)}.btn:active{background:#e0e7ff;transform:scale(.97)}.btn-primary{background:#4f46e5;color:#fff;border-color:#4f46e5}.btn-primary:hover{background:#4338ca;border-color:#4338ca}.btn-primary:active{background:#3730a3}.btn-primary i{color:rgba(255,255,255,.85)}.btn-secondary{background:#fff;border-color:#e4e4e7;color:#18181b}.btn-secondary:hover{background:#f4f4f5;border-color:#d4d4d8}.game-stats{display:flex;justify-content:center;gap:16px 24px;background:#fff;padding:12px 20px;border-radius:14px;margin-bottom:16px;font-weight:600;color:#18181b;font-size:.85rem;flex-wrap:wrap;border:1px solid #e4e4e7;box-shadow:0 2px 12px rgba(0,0,0,.04)}.game-stats i{color:#4f46e5;margin-right:3px}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.flip-card{perspective:600px;aspect-ratio:4/3;cursor:pointer}.flip-card-inner{position:relative;width:100%;height:100%;transition:transform .35s ease;transform-style:preserve-3d}.flip-card.flipped .flip-card-inner,.flip-card.matched .flip-card-inner{transform:rotateY(180deg)}.flip-card.matched{opacity:.3;pointer-events:none;transform:scale(.9);transition:all .4s ease}.flip-card-back,.flip-card-front{position:absolute;width:100%;height:100%;backface-visibility:hidden;border-radius:14px;display:flex;align-items:center;justify-content:center;padding:8px;text-align:center;font-weight:700;font-size:.85rem;border:none}.flip-card-front{background:#4f46e5;color:#fff;font-size:1.5rem;transform:rotateY(0);box-shadow:0 4px 12px rgba(79,70,229,.2)}.flip-card-back{background:#fff;transform:rotateY(180deg);flex-direction:column;gap:4px;box-shadow:0 2px 12px rgba(0,0,0,.06);border:1px solid #e4e4e7}.flip-card-back .card-en{font-size:.95rem;color:#18181b;font-weight:800}.flip-card-back .card-ch{font-size:.85rem;color:#4f46e5;background:#eef2ff;padding:3px 12px;border-radius:12px;font-weight:600}.game-controls{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:4px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(24,24,27,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.modal-content{background:#fff;border-radius:20px;padding:28px 32px 24px;max-width:380px;width:100%;text-align:center;box-shadow:0 8px 32px rgba(0,0,0,.1);animation:popIn .4s cubic-bezier(.4,0,.2,1);border:1px solid #e4e4e7}@keyframes popIn{0%{transform:scale(.8) translateY(20px);opacity:0}60%{transform:scale(1.02);opacity:1}100%{transform:scale(1) translateY(0);opacity:1}}.modal-icon{font-size:3rem;margin-bottom:4px}.modal-content h2{font-size:1.4rem;color:#18181b;margin-bottom:4px}.modal-content p{color:#52525b;font-size:.95rem;margin-bottom:16px}.modal-content .btn{font-size:.95rem;padding:10px 28px;height:44px}.footer-stats{display:flex;justify-content:space-between;margin-top:12px;color:#71717a;font-weight:500;border-top:1.5px solid #e4e4e7;padding-top:10px;font-size:.82rem;flex-wrap:wrap;gap:8px}.footer-stats i{color:#a1a1aa;margin-right:3px}.modal-large{max-width:620px!important;padding:24px 28px 20px!important;border-radius:20px!important}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;border-bottom:1.5px solid #f4f4f5;padding-bottom:10px}.modal-header h2{font-size:1.2rem;color:#18181b;display:flex;align-items:center;gap:10px}.modal-close{background:0 0;border:none;font-size:1.5rem;cursor:pointer;color:#a1a1aa;padding:0 8px}.modal-close:hover{color:#4f46e5}.modal-body{max-height:420px;overflow-y:auto;margin-bottom:12px;padding:0 4px}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:#f4f4f5;border-radius:10px}.modal-body::-webkit-scrollbar-thumb{background:#d4d4d8;border-radius:10px}.word-list-grid{display:table;width:100%;border-collapse:collapse}.word-list-item{display:table-row;border-bottom:1px dashed #e4e4e7}.word-list-item:last-child{border-bottom:none}.word-list-item .wl-en{display:table-cell;padding:8px 12px 8px 4px;font-weight:600;color:#18181b;width:40%;vertical-align:middle}.word-list-item .wl-ch{display:table-cell;padding:8px 12px;color:#52525b;width:35%;vertical-align:middle}.word-list-item .wl-status{display:table-cell;padding:8px 4px 8px 12px;font-size:.75rem;color:#a1a1aa;width:25%;text-align:right;vertical-align:middle}.word-list-item.done .wl-en{color:#4f46e5}.word-list-item.done .wl-status{color:#10b981}.modal-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1.5px solid #e4e4e7;font-size:.85rem;color:#52525b}.modal-footer .btn{font-size:.85rem;padding:8px 20px}#userModal .modal-content{max-width:420px!important;padding:28px 32px 24px!important}.user-item{padding:8px 18px;border-radius:12px;border:1.5px solid #e4e4e7;background:#fff;cursor:pointer;font-weight:500;color:#18181b;transition:all .2s;font-size:.9rem}.user-item:hover{background:#4f46e5;color:#fff;border-color:#4f46e5}.user-item.active{background:#4f46e5;color:#fff;border-color:#4f46e5}#newUserName:focus{border-color:#4f46e5;box-shadow:0 0 0 3px rgba(79,70,229,.1)}@media (max-width:768px){body{padding:8px}#app{padding:16px 14px 16px;border-radius:14px}.logo h1{font-size:1.1rem}.word-en{font-size:1.6rem}.letter-slot{width:32px;height:38px;font-size:1.3rem}.card-grid{grid-template-columns:repeat(4,1fr);gap:8px}.flip-card-front{font-size:1.3rem}.word-list-grid{display:block}.word-list-item{display:flex;flex-wrap:wrap;padding:6px 0;gap:2px}.word-list-item .wl-en{display:inline;width:auto;padding:0}.word-list-item .wl-ch{display:inline;width:auto;padding:0 8px}.word-list-item .wl-status{display:inline;width:auto;padding:0;text-align:left}.settings-row{gap:8px 12px}.setting-group input{min-width:80px}.modal-large{max-width:95%!important;padding:16px 16px 14px!important}#userModal .modal-content{padding:20px 16px 18px!important;max-width:95%!important}.user-item{font-size:.85rem;padding:6px 14px}}@media (max-width:480px){body{padding:4px}#app{padding:12px 10px 14px;border-radius:14px}.logo h1{font-size:.9rem}.logo i{font-size:1.1rem;padding:6px 8px}.word-en{font-size:1.2rem}.letter-slot{width:26px;height:32px;font-size:1.1rem;border-bottom-width:2px}.card-grid{grid-template-columns:repeat(3,1fr);gap:5px}.flip-card-front{font-size:1rem}.flip-card-back .card-en{font-size:.65rem}.flip-card-back .card-ch{font-size:.6rem}.game-stats{font-size:.65rem;gap:6px 10px;padding:4px 10px}.subj-btn{font-size:.6rem;padding:3px 10px}.btn{font-size:.7rem;padding:5px 12px;height:36px}.waiting-container{min-height:150px;padding:16px 10px}.waiting-icon{font-size:2.4rem}.waiting-content h2{font-size:1.1rem}.waiting-content p{font-size:.8rem}.waiting-tips span{font-size:.65rem;padding:3px 10px}.modal-content{padding:16px 14px 14px;border-radius:14px;max-width:300px}.modal-icon{font-size:2.2rem}.modal-content h2{font-size:1.1rem}.word-list-grid{display:block}.word-list-item{display:flex;flex-wrap:wrap;padding:4px 0;gap:2px}.word-list-item .wl-en{display:inline;width:auto;padding:0}.word-list-item .wl-ch{display:inline;width:auto;padding:0 6px}.word-list-item .wl-status{display:inline;width:auto;padding:0;text-align:left}.modal-large{max-width:98%!important;padding:12px 12px 10px!important}#userModal .modal-content{padding:16px 12px 14px!important;max-width:98%!important}#newUserName{font-size:.8rem;padding:8px 12px}}@media (max-width:375px){.card-grid{grid-template-columns:repeat(2,1fr)}.letter-slot{width:22px;height:28px;font-size:.95rem}.word-en{font-size:1rem}}@media (min-width:1200px){#app{padding:32px 36px 28px;border-radius:20px;max-width:960px}.card-grid{grid-template-columns:repeat(4,1fr);gap:14px}.game-stats{gap:24px 36px;font-size:.9rem;justify-content:center}.game-info-bar{gap:12px 24px;justify-content:center}.word-en{font-size:2.5rem}.footer-stats{font-size:.85rem}}@media (min-width:1600px){#app{padding:36px 48px 32px;border-radius:24px;max-width:960px}.card-grid{gap:16px}.game-header{margin-bottom:24px;padding-bottom:16px}.phase-title{font-size:1.1rem}}@media (max-height:500px) and (orientation:landscape){body{padding:4px}#app{padding:10px 16px 12px;max-width:100%;margin:0 auto}.game-header{margin-bottom:8px;padding-bottom:8px}.logo i{font-size:1rem;padding:4px 6px}.logo h1{font-size:.9rem}.word-display{padding:12px 12px 10px;margin-bottom:8px}.word-en{font-size:1.2rem}.word-phonetic{font-size:.7rem}.word-ch{font-size:.85rem;padding:3px 12px}.letter-slot{width:28px;height:32px;font-size:1rem}.letter-input-area{padding:4px 0 8px;min-height:40px;gap:4px}.prep-controls{gap:6px}.btn{padding:5px 12px;font-size:.65rem;height:34px}.card-grid{gap:5px;grid-template-columns:repeat(4,1fr)}.flip-card-front{font-size:1rem}.game-stats{font-size:.6rem;padding:4px 10px;gap:6px 12px;margin-bottom:8px}.footer-stats{font-size:.8rem;padding-top:6px;margin-top:8px}.phase-title{font-size:1rem;margin-bottom:6px;padding-bottom:4px}.settings-panel{padding:8px 12px;margin-bottom:8px}.setting-group label{font-size:.6rem}.setting-group select{font-size:.6rem;padding:3px 8px}.subj-btn{font-size:.55rem;padding:3px 8px}.progress-area{height:4px;margin-bottom:8px}}.levels-layout{display:grid;grid-template-columns:280px 1fr;gap:24px;align-items:start}@media (max-width:640px){.levels-layout{grid-template-columns:1fr;gap:16px}}.settings-actions{text-align:center;margin-top:24px;display:flex;gap:12px;justify-content:center;padding-top:4px}.level-grid-container{margin-top:8px}#phaseWaiting .waiting-content{max-width:560px;margin:0 auto;padding:0}#backToSelectionBtn{background:0 0;border:1.5px solid #d4d4d8;color:#71717a;margin-top:24px;align-self:flex-start}#backToSelectionBtn:hover{background:rgba(0,0,0,.03);border-color:#b0a8a0;color:#52525b}.header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1.5px solid #e4e4e7}.header-left{display:flex;align-items:center;gap:14px}.header-center{flex:1;display:flex;justify-content:center}.header-right{display:flex;align-items:center;gap:8px}.header-info{display:flex;align-items:center;gap:6px;font-size:.85rem;color:#52525b;font-weight:500}.header-sep{color:#d4d4d8;font-weight:300}.header-btn{background:#fff;border:1.5px solid #e4e4e7;border-radius:12px;padding:8px 16px;cursor:pointer;font-weight:600;font-size:.82rem;color:#18181b;display:inline-flex;align-items:center;gap:6px;transition:all .2s ease;height:44px}.header-btn:hover{background:#ffffff;border-color:#4f46e5;transform:translateY(-1px);box-shadow:0 4px 12px rgba(79,70,229,.1)}.lang-selector{position:relative}.lang-btn{background:#fff;border:1.5px solid #e4e4e7;border-radius:12px;padding:8px 14px;cursor:pointer;font-weight:600;font-size:.82rem;color:#18181b;display:inline-flex;align-items:center;gap:6px;transition:all 70ms linear;height:44px}.lang-btn:hover{background:#ffffff}.lang-dropdown{display:none;position:absolute;top:calc(100% + 4px);right:0;background:#fff;border:1.5px solid #e4e4e7;border-radius:12px;padding:6px 0;z-index:100;min-width:120px;box-shadow:0 4px 16px rgba(0,0,0,.08)}.lang-dropdown.show{display:block}.lang-option{padding:8px 18px;cursor:pointer;font-size:.85rem;color:#18181b;font-weight:500;transition:background .1s}.lang-option:hover{background:#ffffff}.lang-option.active{color:#4f46e5;font-weight:700}.lang-switch{display:flex;align-items:center;gap:4px}.lang-link{background:#fff;border:1.5px solid #e4e4e7;border-radius:12px;padding:8px 14px;font-size:.82rem;font-weight:600;color:#18181b;text-decoration:none;height:44px;display:inline-flex;align-items:center;transition:all .2s ease}.lang-link:hover{background:#ffffff;border-color:#4f46e5;transform:translateY(-1px);box-shadow:0 4px 12px rgba(79,70,229,.1)}.lang-link.active{background:#4f46e5;color:#fff;border-color:#4f46e5}.footer{display:flex;justify-content:space-between;margin-top:16px;color:#71717a;font-weight:500;border-top:1.5px solid #e4e4e7;padding-top:12px;font-size:.82rem;flex-wrap:wrap;gap:8px}.footer-item{display:flex;align-items:center;gap:6px}.footer-item i{color:#a1a1aa}.footer-item .stat-label{color:#a1a1aa;font-size:.8rem;font-weight:500}.footer-item .stat-value{color:#18181b;font-size:.9rem;font-weight:700;background:#f4f4f5;padding:2px 10px;border-radius:30px;min-width:36px;text-align:center}.info-progress{display:flex;align-items:center;gap:4px}.modal{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(24,24,27,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:1000;padding:24px}.modal.show{display:flex}.close-btn{background:0 0;border:none;font-size:1.5rem;cursor:pointer;color:#a1a1aa;padding:4px 8px;border-radius:8px;line-height:1;transition:background .1s}.close-btn:hover{background:#f4f4f5}.vl-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;border-bottom:1.5px solid #f4f4f5;margin-bottom:4px}.vl-header h2{font-size:1.1rem;color:#18181b}.vl-header h2 i{color:#4f46e5;margin-right:6px}.vocab-list-item{display:flex;flex-wrap:wrap;gap:4px 10px;padding:10px 12px;border-bottom:1px solid #f4f4f5;align-items:baseline}.vocab-list-item:last-child{border-bottom:none}.vl-en{font-weight:700;color:#18181b;font-size:.95rem;min-width:120px}.vl-phonetic{color:#a1a1aa;font-size:.8rem;font-style:italic}.vl-trans{color:#4f46e5;font-size:.85rem;background:#eef2ff;padding:2px 10px;border-radius:30px}.vl-explain{color:#52525b;font-size:.8rem;width:100%;margin-top:2px}.btn-danger{background:#4f46e5;color:#fff;border-color:#4f46e5}.btn-danger:hover{background:#4338ca}.btn-danger:active{transform:scale(.97)}.btn-sm{padding:6px 16px;border-radius:12px;font-size:.8rem;border:1.5px solid #e4e4e7;background:#fff;cursor:pointer;font-weight:600;color:#18181b;transition:all .2s ease;height:36px}.btn-sm:hover{background:#ffffff;border-color:#4f46e5;transform:translateY(-1px)}.subject-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:12px}.grade-card{background:linear-gradient(135deg,#fff,#f0f4ff);border-radius:14px;padding:24px 16px;cursor:pointer;transition:all .2s;border:1px solid #dde6ff;box-shadow:0 2px 12px rgba(108,140,255,.10);display:flex;flex-direction:column;align-items:center;gap:8px;min-height:140px;text-align:center}.grade-card:hover{transform:translateY(-3px);border-color:#6c8cff}.gc-icon{font-size:2rem;color:#6c8cff;margin-bottom:4px}.gc-name{font-size:1.2rem;font-weight:700;color:#18181b}.gc-name-en{font-size:.85rem;color:#71717a}@media (max-width:768px){.subject-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.subject-grid{grid-template-columns:1fr}}.subject-card{background:#fff;border-radius:14px;padding:20px 16px;cursor:pointer;transition:all .2s;border:1px solid #e4e4e7;box-shadow:0 2px 12px rgba(0,0,0,.04);display:flex;flex-direction:column;gap:6px;min-height:160px}.subject-card:hover{transform:translateY(-2px);box-shadow:0 4px 20px rgba(0,0,0,.08);border-color:#4f46e5}.subject-card:active{transform:scale(.97)}.sc-icon{font-size:1.8rem;margin-bottom:4px}.sc-name{font-size:1.15rem;font-weight:700;color:#18181b}.sc-name-en{font-size:.8rem;color:#a1a1aa;font-weight:500}.sc-stats{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.8rem;color:#52525b;margin-top:6px}.sc-stats span{display:inline-flex;align-items:center;gap:3px}.sc-stats .num{font-weight:700;color:#4f46e5}.sc-progress-bar{height:6px;background:#f4f4f5;border-radius:6px;margin-top:8px;overflow:hidden}.sc-progress-fill{height:100%;border-radius:6px;background:#4f46e5;transition:width .4s ease}.ss-header{margin-bottom:12px}.ss-header h2{font-size:1.5rem;font-weight:700;color:#18181b}.ss-header p{font-size:.9rem;color:#52525b;margin-top:4px}.sc-header{font-size:1rem;font-weight:700;color:#18181b;margin-bottom:16px;display:flex;align-items:center;gap:10px;padding-bottom:8px;border-bottom:1.5px solid #f4f4f5}.settings-container{background:#fff;padding:16px 18px;border-radius:14px;border:1px solid #e4e4e7;box-shadow:0 2px 12px rgba(0,0,0,.04)}.settings-container .settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 4px;border-bottom:1px solid #f4f4f5}.settings-container .settings-row:last-of-type{border-bottom:none}.settings-container .settings-row>span:first-child{font-weight:600;color:#18181b;font-size:.85rem;white-space:nowrap;flex-shrink:0}.settings-container select,.settings-row select{min-width:100px}.settings-row input[type=text]{flex:1;min-width:100px}#settingsCompletedValue,#settingsScoreValue{font-weight:700;font-size:1.1rem;color:#4f46e5;min-width:24px;text-align:right}.level-grid-container{margin-top:8px;overflow-x:auto}.level-grid-title{font-weight:700;color:#18181b;margin-bottom:12px;display:flex;align-items:center;gap:8px;font-size:.95rem}.level-grid-title i{color:#4f46e5}.level-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:10px;max-width:560px;margin:0 auto}.level-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:16px 8px;border-radius:14px;border:1.5px solid #e4e4e7;background:#fff;cursor:pointer;font-weight:600;font-size:.95rem;color:#18181b;transition:all .15s ease;min-height:76px;box-shadow:0 1px 4px rgba(0,0,0,.03)}.level-btn:hover{background:#ffffff;border-color:#4f46e5;transform:translateY(-2px);box-shadow:0 4px 16px rgba(79,70,229,.1)}.level-btn .level-num-label{font-size:1.1rem;font-weight:700}.level-btn .level-icon{font-size:.85rem}.level-btn.completed{background:#ecfdf5;border-color:#10b981;color:#10b981;position:relative;box-shadow:0 2px 8px rgba(78,205,196,.1)}.level-btn.completed::before{content:"✓";position:absolute;top:4px;right:6px;font-size:.65rem;font-weight:700;color:#10b981;line-height:1}.level-btn.completed .level-icon{color:#10b981}.level-btn.completed:hover{background:#ecfdf5;border-color:#10b981}.level-btn.current{background:#4f46e5;border-color:#4f46e5;color:#fff;box-shadow:0 3px 10px rgba(79,70,229,.25)}.level-btn.current .level-icon{color:#fff}.level-btn.current:hover{background:#4338ca;border-color:#4338ca;transform:translateY(-1px)}.level-btn.locked{background:#fafaf8;border-color:#e4e4e7;color:#71717a;cursor:not-allowed}.level-btn.locked:hover{background:#fafaf8;border-color:#e4e4e7;transform:none}.level-btn.locked .fa-lock{color:#71717a}.phase{display:none}.phase.show{display:block}.phase-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:8px;border-bottom:1.5px solid #f4f4f5}.phase-header h2{font-size:1rem;font-weight:700;color:#18181b}.phase-counter{font-weight:700;color:#4f46e5;font-size:.85rem;background:#eef2ff;padding:4px 16px;border-radius:12px;border:1px solid #e0e7ff}.phase-nav{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:12px}.prep-input-area{display:flex;flex-direction:column;align-items:center;gap:12px;padding:8px 0;min-height:52px}.prep-progress{text-align:center;font-weight:600;color:#a1a1aa;font-size:.85rem;margin-top:8px}.fill-letters-container{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;padding:8px 0 14px;min-height:52px}.fill-slots-container{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;padding:8px 0}.fill-undo-row{display:flex;justify-content:center;padding:4px 0}.fill-undo-btn{height:44px;padding:0 18px;font-size:.9rem;font-weight:600;border:1.5px solid #e4e4e7;border-radius:12px;background:#ffffff;color:#52525b;cursor:pointer;transition:all .2s}.fill-undo-btn:hover{background:#e0e7ff;color:#4f46e5;border-color:#4f46e5}.fill-undo-btn:active{transform:scale(.96)}.fill-undo-btn:disabled{opacity:.35;cursor:not-allowed;background:#ffffff;color:#d4d4d8;border-color:#e4e4e7}.game-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.game-stats-row{display:flex;justify-content:center;gap:16px 24px;background:#fff;padding:12px 20px;border-radius:14px;margin-bottom:16px;font-weight:600;color:#18181b;font-size:.85rem;flex-wrap:wrap;border:1px solid #e4e4e7;box-shadow:0 2px 12px rgba(0,0,0,.04)}.complete-header{margin-bottom:16px}.complete-header h2{font-size:1.2rem;font-weight:700;color:#18181b;text-align:center}.complete-stats{margin:12px 0}.cs-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f4f4f5;font-size:.85rem;color:#18181b}.cs-row:last-child{border-bottom:none}.complete-actions{display:flex;gap:10px;justify-content:center;margin-top:20px;flex-wrap:wrap}.user-list{margin:12px 0;max-height:200px;overflow-y:auto}.user-input-row{display:flex;gap:8px;align-items:center;margin:10px 0}.user-actions{margin-top:8px}.user-input-row input{flex:1}.progress-bar-wrapper{background:#f4f4f5;border-radius:10px;height:8px;overflow:hidden;flex:1;max-width:300px}.progress-bar-wrapper .progress-fill{height:100%;border-radius:10px;background:#4f46e5;transition:width .5s ease}.prep-input-row{display:flex;align-items:center;gap:10px;width:100%;max-width:540px;margin:0 auto}.prep-input-row .prep-text-input{flex:1;text-align:center;letter-spacing:2px;font-weight:600}.prep-submit-btn{width:100px;height:44px;flex-shrink:0;background:#4f46e5;color:#fff;border:none;border-radius:12px;font-size:.9rem;font-weight:700;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center}.prep-submit-btn:hover{background:#4338ca;transform:translateY(-1px)}.prep-submit-btn:active{transform:scale(.97)}.prep-skip-btn-wrapper{display:flex;justify-content:center;margin-top:8px}.prep-skip-btn-wrapper .btn{width:100px}.btn-hint{background:#6366f1;color:#fff;border:none;padding:8px 16px;border-radius:10px;font-size:.9rem;font-weight:700;cursor:pointer;transition:all .2s;width:100px}.btn-hint:hover{background:#4338ca;transform:translateY(-1px)}.btn-hint:active{background:#3730a3;transform:translateY(0)}.btn-hint:disabled{opacity:.45;cursor:not-allowed;transform:none}.hint-box{background:#fafafa;border:1.5px solid #6366f1;border-radius:12px;padding:14px 18px;margin:12px auto 0;max-width:480px;text-align:center;font-size:1rem;color:#52525b;line-height:1.6;animation:hintFadeIn .35s ease}@keyframes hintFadeIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.hint-box .hint-label{font-weight:700;color:#4338ca}.hint-box .hint-word{font-weight:800;font-size:1.15rem;color:#3730a3}.hint-box .hint-def{color:#71717a;margin-top:4px}.fill-slot{width:44px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:700;background:#ffffff;border:1.5px solid #e4e4e7;border-radius:10px;transition:all .3s}.fill-slot.empty{color:#4f46e5;background:#eef2ff}.fill-letter-btn{width:44px;height:48px;font-size:1.2rem;font-weight:700;border:1.5px solid #e4e4e7;border-radius:10px;background:#fff;cursor:pointer;transition:all .2s;color:#18181b}.fill-letter-btn:hover{background:#ffffff;border-color:#4f46e5}.fill-letter-btn:active{background:#e0e7ff}.store-header{display:flex;align-items:center;justify-content:space-between;padding:12px 0;margin-bottom:16px;border-bottom:1.5px solid #e4e4e7}.store-header h1{font-size:1.2rem;margin:0;font-weight:700;color:#18181b}.btn-back{display:inline-flex;align-items:center;gap:6px;background:0 0;border:none;color:#52525b;font-size:.9rem;cursor:pointer;padding:6px 12px;border-radius:8px;transition:all .2s ease;font-family:inherit}.btn-back:hover{color:#4f46e5;background:#eef2ff}.btn-back i{font-size:.85rem}.store-points-display{display:flex;align-items:center;gap:6px;background:#eef2ff;padding:6px 16px;border-radius:12px;font-weight:700;font-size:.95rem;color:#4f46e5;border:1px solid #e0e7ff}.points-icon{font-size:1rem}.store-main{padding:0;max-width:800px;margin:0 auto}.store-section-title{font-size:1.05rem;font-weight:700;color:#18181b;margin:22px 0 12px;padding-left:4px}.skin-grid{margin-bottom:26px}.store-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.store-card{background:#fff;border-radius:14px;padding:22px 16px;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.06);display:flex;flex-direction:column;align-items:center;gap:10px;border:1px solid #f4f4f5;transition:transform .2s,box-shadow .2s}.store-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.08)}.store-card-icon{font-size:2.4rem}.store-card-icon img{display:block;margin:0 auto}.store-card-name{font-size:.9rem;color:#18181b;font-weight:600}.store-card-desc{font-size:.78rem;color:#71717a;line-height:1.45;min-height:2.2em;word-break:break-word}.store-card-cost{font-size:.85rem;color:#4f46e5;font-weight:700}.btn-redeem{background:#4f46e5;color:#fff;border:none;padding:8px 22px;border-radius:12px;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .2s;text-align:center}.btn-redeem:hover{background:#4338ca;transform:translateY(-1px)}.btn-redeem:active{transform:scale(.97)}.btn-redeem.disabled{background:#e4e4e7;color:#a1a1aa;cursor:not-allowed;transform:none}.btn-redeem.disabled:hover{background:#e4e4e7;transform:none}.store-empty{text-align:center;padding:40px;color:#a1a1aa;font-size:.9rem}.store-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:1000}.store-modal{background:#fff;border-radius:14px;padding:24px;min-width:280px;max-width:360px;box-shadow:0 8px 30px rgba(0,0,0,.15)}.store-modal h3{margin:0 0 12px;font-size:1.1rem;color:#18181b}.store-modal p{color:#52525b;font-size:.9rem;margin:0 0 20px}.store-modal input[type=password]{width:100%;margin-bottom:16px}.store-modal-actions{display:flex;gap:10px;justify-content:flex-end}.btn-secondary{background:#eee;border:none;padding:8px 20px;border-radius:10px;cursor:pointer;font-size:.85rem;color:#71717a}.btn-primary{background:#4f46e5;color:#fff;border:none;padding:8px 20px;border-radius:10px;cursor:pointer;font-size:.85rem;font-weight:700}.store-history{max-width:800px;margin:0 auto;padding:0 0 20px}.history-toggle{color:#52525b;font-size:.85rem;padding:12px 0;border-bottom:1px solid #e4e4e7;cursor:pointer;font-weight:600;user-select:none;transition:color .2s}.history-toggle:hover{color:#4f46e5}.history-list{padding-top:8px}.history-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border-radius:10px;margin-bottom:6px;font-size:.85rem;color:#71717a;border:1px solid #f4f4f5}.history-icon{font-size:1rem}.history-name{flex:1;font-weight:500}.history-cost{color:#4f46e5;font-weight:700}.history-time{color:#a1a1aa;font-size:.75rem}.history-empty{text-align:center;color:#a1a1aa;padding:20px;font-size:.85rem}.store-footer{text-align:center;padding:16px 0;margin-top:20px;border-top:1px solid #f4f4f5}.admin-link{color:#a1a1aa;font-size:.75rem;text-decoration:none;transition:color .2s}.admin-link:hover{color:#4f46e5}.admin-login{max-width:380px;margin:80px auto;text-align:center;padding:48px 36px;background:#fff;border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.1),0 2px 8px rgba(0,0,0,.06)}.admin-login h1{font-size:1.5rem;font-weight:700;color:#4f46e5;margin:0 0 28px;letter-spacing:.5px}.admin-login-form{display:flex;flex-direction:column;gap:16px}.admin-login-form input{text-align:center;border:1.5px solid #d4d4d8;border-radius:8px;height:44px;font-size:15px;transition:border-color .2s ease,box-shadow .2s ease}.admin-login-form input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px rgba(79,70,229,.12)}.admin-login-form input::placeholder{color:#a1a1aa}#loginBtn{background:#4f46e5;color:#fff;border:none;border-radius:8px;height:44px;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s ease}#loginBtn:hover{background:#4338ca;transform:translateY(-1px);box-shadow:0 4px 12px rgba(79,70,229,.2)}#loginBtn:active{background:#3730a3;transform:scale(.97)}#loginError{margin-top:12px;font-size:.85rem}.admin-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#fff;border-bottom:1px solid #e4e4e7;border-radius:12px 12px 0 0}.admin-header h2{font-size:1.2rem;margin:0;color:#18181b}.admin-header-right{display:flex;gap:8px}.admin-header .btn-small{background:#ffffff;border:1.5px solid #e4e4e7;padding:6px 14px;border-radius:8px;cursor:pointer;font-size:.8rem;font-weight:600;color:#18181b;transition:all .2s ease}.admin-header .btn-small:hover{background:#eef2ff;border-color:#4f46e5;transform:translateY(-1px)}.admin-main{max-width:700px;margin:0 auto;padding:24px 20px 48px}.admin-form-section{background:#fff;border-radius:12px;padding:24px;margin-bottom:20px;box-shadow:0 2px 16px rgba(0,0,0,.06);border:1px solid #f4f4f5}.admin-form-section h3{font-size:1rem;font-weight:700;margin:0 0 20px;color:#18181b}.admin-form-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.admin-form-row>label{font-size:.9rem;font-weight:600;color:#18181b;min-width:80px;display:flex;align-items:center;gap:8px;cursor:pointer}#itemIcon,#itemName,.admin-form-row input[type=number],.admin-form-row input[type=text]{flex:1;border:1.5px solid #d4d4d8;border-radius:8px;height:40px}#itemIcon:focus,#itemName:focus,.admin-form-row input[type=number]:focus,.admin-form-row input[type=text]:focus{border-color:#4f46e5;box-shadow:0 0 0 3px rgba(79,70,229,.12)}.admin-form-row input[type=checkbox]{width:16px;height:16px;accent-color:#4f46e5;cursor:pointer;margin:0;flex-shrink:0}.admin-form-actions{display:flex;gap:10px;margin-top:20px}.admin-list-section{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 16px rgba(0,0,0,.06);border:1px solid #f4f4f5}.admin-list-section h3{font-size:1rem;font-weight:700;margin:0 0 16px;color:#18181b}.admin-table{width:100%;border-collapse:collapse;font-size:.85rem}.admin-table td,.admin-table th{padding:10px 8px;text-align:left;border-bottom:1px solid #e4e4e7}.admin-table th{color:#a1a1aa;font-weight:600;font-size:.75rem}.admin-table td{color:#71717a}.btn-edit{background:#ffffff;border:1px solid #e4e4e7;padding:4px 10px;border-radius:6px;cursor:pointer;font-size:.75rem;color:#71717a}.btn-edit:hover{background:#eef2ff;border-color:#4f46e5}.btn-delete{background:#fef2f2;border:1px solid #fecaca;padding:4px 10px;border-radius:6px;cursor:pointer;font-size:.75rem;color:#e74c3c}.btn-delete:hover{background:#fee2e2}.guide-container{max-width:720px;margin:0 auto;padding:20px 0 40px}.guide-subtitle{text-align:center;font-size:.95rem;color:#52525b;margin-bottom:28px;line-height:1.6}.guide-steps{display:flex;flex-direction:column;gap:16px}.guide-step{display:flex;align-items:flex-start;gap:16px;background:#fff;border-radius:14px;padding:20px 24px;border:1px solid #e4e4e7;box-shadow:0 2px 12px rgba(0,0,0,.04);transition:transform .2s ease,box-shadow .2s ease}.guide-step:hover{transform:translateY(-2px);box-shadow:0 4px 20px rgba(0,0,0,.08)}.guide-step-num{flex-shrink:0;width:42px;height:42px;border-radius:50%;background:#4f46e5;color:#fff;font-size:1.1rem;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(79,70,229,.25)}.guide-step-body{flex:1}.guide-step-body h3{font-size:1.05rem;font-weight:700;color:#18181b;margin:0 0 6px}.guide-step-body p{font-size:.9rem;color:#52525b;margin:0;line-height:1.6}.guide-cta{text-align:center;margin-top:32px}.guide-cta .btn{font-size:1rem;padding:12px 36px;height:48px}@media (max-width:768px){.guide-container{padding:12px 8px 32px}.guide-step{padding:16px 18px;gap:12px}.guide-step-num{width:36px;height:36px;font-size:.95rem}.guide-step-body h3{font-size:.95rem}.guide-step-body p{font-size:.82rem}.guide-subtitle{font-size:.85rem;margin-bottom:20px}}@media (max-width:480px){.guide-step{padding:14px 14px;gap:10px}.guide-step-num{width:30px;height:30px;font-size:.85rem}.guide-step-body h3{font-size:.88rem}.guide-step-body p{font-size:.78rem}.guide-cta .btn{padding:10px 28px;font-size:.9rem}}.page-content{max-width:720px;margin:0 auto;padding:20px 0 40px}.page-header{text-align:center;margin-bottom:32px;padding-bottom:20px;border-bottom:1.5px solid #e4e4e7}.page-header h1{font-size:1.6rem;font-weight:700;color:#18181b;margin:0 0 8px}.page-updated{font-size:.82rem;color:#a1a1aa;margin:0}.page-section{margin-bottom:24px}.page-section h2{font-size:1.1rem;font-weight:700;color:#18181b;margin:0 0 8px}.page-section p{font-size:.92rem;color:#71717a;line-height:1.7;margin:0}.page-section a{color:#4f46e5;text-decoration:none}.page-section a:hover{text-decoration:underline}.page-email{margin-top:12px;font-size:1rem}.page-footer{max-width:960px;margin:40px auto 0;padding:24px 0 8px;text-align:center;border-top:1px solid #e4e4e7}.page-footer-links{display:flex;justify-content:center;align-items:center;gap:12px;font-size:.82rem}.page-footer-links a{color:#71717a;text-decoration:none;transition:color .2s}.page-footer-links a:hover{color:#4f46e5}.footer-sep{color:#d4d4d8}@media (max-width:768px){.page-content{padding:12px 8px 32px}.page-header h1{font-size:1.35rem}.page-section h2{font-size:1rem}.page-section p{font-size:.85rem}}.coming-soon-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:40px 20px}.coming-soon-icon{font-size:64px;color:#a1a1aa;margin-bottom:24px;animation:float 3s ease-in-out infinite}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.coming-soon-page h1{font-size:2rem;color:#18181b;margin-bottom:12px;font-weight:700}.coming-soon-page p{font-size:1.05rem;color:#71717a;margin-bottom:32px;line-height:1.6}.letter-phase{max-width:600px;margin:0 auto;padding:0 16px;text-align:center}.letter-word-display{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;padding:20px 0;min-height:72px;align-items:center}.letter-word-slot{width:48px;height:52px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700;color:#18181b;background:#ffffff;border:2px solid #e4e4e7;border-radius:10px;transition:all .25s ease;cursor:default;position:relative}.letter-word-slot::after{content:'';position:absolute;bottom:8px;left:12px;right:12px;height:3px;background:#e4e4e7;border-radius:1px}.letter-word-slot.filled{border-color:#4f46e5;background:#eef2ff;color:#4f46e5;cursor:pointer}.letter-word-slot.filled::after{background:#4f46e5}.letter-word-slot.filled:hover{background:#e0e7ff;border-color:#4338ca}.letter-candidates{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;padding:16px 0}.letter-candidate-btn{width:52px;height:52px;font-size:1.3rem;font-weight:700;color:#fff;background:#4f46e5;border:none;border-radius:12px;cursor:pointer;transition:all .2s ease;box-shadow:0 3px 8px rgba(79,70,229,.25)}.letter-candidate-btn:hover{transform:translateY(-2px);box-shadow:0 5px 14px rgba(79,70,229,.35);background:#4338ca}.letter-candidate-btn:active{transform:translateY(0);box-shadow:0 1px 4px rgba(79,70,229,.2)}.letter-candidate-btn.used{background:#d4d4d8;color:#a1a1aa;cursor:not-allowed;box-shadow:none;pointer-events:none}.letter-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;padding:12px 0}.letter-actions .btn{padding:10px 22px;font-size:.95rem;font-weight:600;border-radius:12px;transition:all .2s}@media (max-width:640px){.letter-word-slot{width:40px;height:44px;font-size:1.2rem}.letter-candidate-btn{width:44px;height:44px;font-size:1.1rem;border-radius:10px}.letter-actions .btn{padding:8px 16px;font-size:.85rem}}@media (max-width:400px){.letter-word-slot{width:34px;height:38px;font-size:1rem;border-radius:8px}.letter-word-slot::after{bottom:6px;left:8px;right:8px;height:2px}.letter-candidate-btn{width:38px;height:38px;font-size:1rem;border-radius:8px}.letter-word-display{gap:5px;padding:12px 0}.letter-candidates{gap:6px;padding:10px 0}}.vocab-preview{margin:32px auto 0;max-width:720px;padding:20px 24px;background:rgba(250,250,250,.6);border:1px solid #e4e4e7;border-radius:12px}.vocab-preview-title{font-size:1.1rem;font-weight:600;color:#71717a;margin-bottom:4px}.vocab-preview-subtitle{font-size:.85rem;color:#71717a;margin-bottom:12px}.vocab-preview-list{display:grid;grid-template-columns:1fr;gap:6px}.vocab-preview-item{display:flex;align-items:baseline;gap:10px;padding:6px 10px;background:rgba(255,255,255,.7);border-radius:6px}.vocab-preview-en{font-family:Menlo,'SF Mono',Consolas,monospace;font-size:.95rem;font-weight:600;color:#52525b;min-width:120px}.vocab-preview-ch{font-size:.9rem;color:#71717a}.vocab-preview-sep{color:#a1a1aa;margin:0 2px}.auth-form{display:flex;flex-direction:column}.auth-label{display:block;font-size:.85rem;font-weight:600;color:#18181b;margin-bottom:6px}.auth-input{width:100%;height:44px;border-radius:10px;border:1.5px solid #e4e4e7;padding:0 14px;font-size:15px;font-family:inherit;color:#18181b;background:#fff;outline:0;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease}.auth-input::placeholder{color:#a1a1aa}.auth-input:hover{border-color:#d4d4d8}.auth-input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px rgba(79,70,229,.12)}.auth-submit{width:100%;height:44px;margin-top:20px;border:none;border-radius:12px;background:#4f46e5;color:#fff;font-size:.95rem;font-weight:700;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px rgba(79,70,229,.2)}.auth-submit:hover{background:#4338ca;transform:translateY(-1px);box-shadow:0 6px 16px rgba(79,70,229,.28)}.auth-submit:active{background:#3730a3;transform:scale(.98)}.auth-submit:disabled{background:#c7d2fe;cursor:not-allowed;box-shadow:none}.auth-tab{transition:all .2s ease}.auth-message.error{display:block;background:#fdecec;color:#ef4444;border:1px solid #f5c6c6}.auth-message.success{display:block;background:#eaf7ec;color:#3c9a4a;border:1px solid #bfe3c6}
.store-tabs{display:flex;gap:8px;justify-content:center;margin:0 auto 20px;max-width:520px;background:#fff;padding:6px;border-radius:14px;border:1px solid #e4e4e7;box-shadow:0 2px 8px rgba(0,0,0,.04)}.store-tab{flex:1;padding:10px 16px;border:none;border-radius:10px;background:transparent;font-size:.9rem;font-weight:600;color:#71717a;cursor:pointer;transition:all .2s}.store-tab:hover{background:#eef2ff;color:#4f46e5}.store-tab.active{background:#4f46e5;color:#fff;box-shadow:0 2px 6px rgba(79,70,229,.35)}.store-tab-panel{max-width:800px;margin:0 auto}

/* 应用题挑战阶段 */
.problem-example{margin-top:8px;padding:14px 18px;background:#FFF8F0;border:1.5px solid #FFE3D6;border-radius:14px;font-size:1.05rem;font-weight:600;color:#333;line-height:1.6;max-width:680px;width:100%;text-align:center}
.problem-options{display:flex;flex-direction:column;gap:12px;max-width:520px;margin:20px auto 8px;width:100%;padding:0 8px}
.problem-option{width:100%;padding:14px 18px;font-size:1rem;font-weight:600;color:#333;background:#fff;border:1.5px solid #E8E0D8;border-radius:12px;cursor:pointer;transition:all .2s;text-align:left;line-height:1.5}
.problem-option:hover{border-color:#FF6B4A;background:#FFF2EB}
.problem-option:disabled{cursor:default}
.problem-option.correct{border-color:#4ECDC4;background:#F0FFFB;color:#1b7a6d}
.problem-option.wrong{border-color:#e07070;background:#fde8e8;color:#c0392b}
.pwd-field{position:relative;width:100%}.pwd-field .auth-input{padding-right:44px}.pwd-toggle{position:absolute;right:4px;top:50%;transform:translateY(-60%);border:none;background:transparent;color:#a1a1aa;font-size:1.05rem;cursor:pointer;padding:10px 12px;line-height:1}.pwd-toggle:hover{color:#4f46e5}#forgotModal{display:none;position:fixed;inset:0;background:rgba(24,24,27,.45);z-index:1000;align-items:center;justify-content:center;padding:16px}

/* ===== 语言下拉菜单（15 个模板共用） ===== */
.lang-dropdown{position:relative;display:inline-flex;border:none;background:transparent;padding:0;box-shadow:none;min-width:0}
.lang-dropdown::after{content:'';position:absolute;top:100%;left:-6px;right:-6px;height:10px;z-index:1299}
.lang-btn{height:44px;display:inline-flex;align-items:center;gap:7px;background:#fff;border:1.5px solid #e4e4e7;border-radius:12px;padding:0 14px;font-size:.82rem;font-weight:600;color:#18181b;cursor:pointer;transition:all .2s ease;font-family:inherit}
.lang-btn:hover{border-color:#4f46e5;color:#4f46e5}
.lang-btn .fa-globe{font-size:.9rem}
.lang-caret{font-size:.55rem;transition:transform .2s ease}
.lang-dropdown:hover .lang-caret,.lang-dropdown:focus-within .lang-caret{transform:rotate(180deg)}
.lang-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:150px;background:#fff;border:1px solid #e4e4e7;border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,.12);padding:6px;display:none;flex-direction:column;gap:2px;z-index:1300}
.lang-dropdown:hover .lang-menu,.lang-dropdown:focus-within .lang-menu{display:flex}
.lang-menu .lang-link{display:flex;align-items:center;height:38px;border:none;border-radius:9px;padding:0 12px;font-size:.88rem;color:#18181b;box-shadow:none;transform:none}
.lang-menu .lang-link:hover{background:#f4f4f5;border-color:transparent;transform:none;box-shadow:none}
.lang-menu .lang-link.active{background:#eef2ff;color:#4f46e5;border-color:transparent}

/* ===== 词了个词：en 徽标（替换原羊图标）===== */
.en-badge{display:inline-flex;align-items:center;justify-content:center;width:21px;height:16px;border-radius:5px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;font-size:10px;font-weight:900;letter-spacing:.3px;font-style:normal;line-height:1;box-shadow:0 2px 6px rgba(79,70,229,.35);vertical-align:-2px}
.en-mark{font-size:.95rem;font-weight:900;letter-spacing:.5px;font-style:normal;color:#fff}
