@import"https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800&display=swap";.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb)}.loading-screen .spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.loading-screen p{color:#fff;font-size:1rem}@keyframes spin{to{transform:rotate(360deg)}}:root{font-family:Nunito,SF Pro Rounded,SF Pro Text,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.6;font-weight:500;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;color:#1e293b;background:radial-gradient(ellipse 80% 50% at 20% -20%,rgba(120,119,198,.15) 0%,transparent 50%),radial-gradient(ellipse 60% 40% at 80% 100%,rgba(255,182,193,.2) 0%,transparent 50%),radial-gradient(ellipse 50% 50% at 50% 50%,rgba(147,197,253,.1) 0%,transparent 70%),linear-gradient(180deg,#faf5ff,#f0f9ff,#fff1f2);background-attachment:fixed}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.vocabulary-page{max-width:860px;margin:0 auto;padding:38px 22px 64px;color:#19362e}.vocabulary-page button,.vocabulary-page input{font:inherit}.vocabulary-page button{cursor:pointer}.vocabulary-page button:disabled{cursor:default;opacity:.55}.vocabulary-page .vocabulary-heading{margin-bottom:30px}.vocabulary-page .vocabulary-heading .eyebrow{color:#70877c;font-size:11px;letter-spacing:2px;font-weight:700}.vocabulary-page .vocabulary-heading h1{font-size:clamp(26px,5vw,38px);margin:12px 0;letter-spacing:-1px}.vocabulary-page .vocabulary-heading p{color:#71827a}.vocabulary-page .learning-overview{display:grid;grid-template-columns:repeat(3,1fr);background:#eaf1eb;border:1px solid #dbe5dc;border-radius:18px;padding:24px 8px}.vocabulary-page .learning-overview div{padding:0 18px;border-right:1px solid #d2ded5}.vocabulary-page .learning-overview div:last-child{border:0}.vocabulary-page .learning-overview span{display:block;color:#62786b;font-size:12px}.vocabulary-page .learning-overview strong{display:block;font-size:34px;margin-top:6px;font-weight:650}.vocabulary-page .learning-overview small{font-size:12px;margin-left:6px;font-weight:400}.vocabulary-page .learning-tabs{display:flex;align-items:center;gap:24px;margin:30px 0 20px}.vocabulary-page .learning-tabs button{border:0;background:transparent;padding:10px 0;color:#748279;border-bottom:2px solid transparent}.vocabulary-page .learning-tabs button.selected{color:#245c42;border-color:#245c42;font-weight:650}.vocabulary-page .learning-tabs a{margin-left:auto;font-size:13px;color:#64766a;display:flex;align-items:center;text-decoration:none}.vocabulary-page .today-panel,.vocabulary-page .flashcard-panel,.vocabulary-page .practice-panel{background:#fff;border:1px solid #e1e8e2;border-radius:22px;padding:32px;box-shadow:0 8px 30px #223c2c06}.vocabulary-page .unit-badge{display:inline-flex;align-items:center;gap:7px;color:#477455;background:#eef5eb;border-radius:7px;padding:6px 9px;font-size:12px}.vocabulary-page .today-panel h2{margin:22px 0 10px;font-size:27px}.vocabulary-page .today-panel>p{color:#78867d;line-height:1.7}.vocabulary-page .learning-note{display:flex;gap:12px;color:#718176;font-size:13px;align-items:center;margin:28px 0;padding:18px;background:#f7f8f4;border-radius:12px}.vocabulary-page .learning-note svg{flex-shrink:0}.vocabulary-page .learn-primary{display:flex;gap:10px;justify-content:center;align-items:center;width:100%;border:0;background:#2c6047;color:#fff;border-radius:11px;padding:16px;font-weight:600}.vocabulary-page .text-button{background:none;border:0;color:#6f8175;padding:12px 0}.vocabulary-page .today-panel>.text-button{width:100%;margin-top:8px;font-size:13px}.vocabulary-page .recent-learning{margin-top:30px}.vocabulary-page .recent-learning h3{font-size:15px}.vocabulary-page .recent-learning>div{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #e3e9e3;font-size:12px;color:#78867c}.vocabulary-page .recent-learning p{font-size:13px;color:#8a958d}.vocabulary-page .other-practice{display:flex;align-items:center;margin-top:28px;color:#87918a;font-size:13px;text-decoration:none}.vocabulary-page .practice-top{display:flex;justify-content:space-between;align-items:center;color:#7c8c80;font-size:13px}.vocabulary-page .word-progress{height:5px;background:#e8eee7;border-radius:9px;overflow:hidden;margin:8px 0 32px}.vocabulary-page .word-progress span{display:block;height:100%;background:#568968;transition:width .2s}.vocabulary-page .practice-label{display:block;color:#879486;font-size:12px}.vocabulary-page .practice-meaning{margin:30px 0;text-align:center;font-size:28px}.vocabulary-page form label{font-size:13px;color:#6e8071}.vocabulary-page form input{width:100%;box-sizing:border-box;background:#f9fbf7;border:1px solid #c9d8c9;border-radius:10px;padding:16px;margin:10px 0 24px;color:#21422c;outline-color:#609773;font-size:22px}.vocabulary-page .answer-feedback{padding:18px;margin:0 0 24px;border-radius:10px}.vocabulary-page .answer-feedback.correct{background:#edf6ea}.vocabulary-page .answer-feedback.incorrect{background:#fff3e2;color:#855f25}.vocabulary-page .answer-feedback p{display:flex;align-items:center;gap:6px;margin-bottom:0}.vocabulary-page .answer-feedback button{background:none;border:0;color:inherit;display:inline-flex}.vocabulary-page .complete-panel{text-align:center;padding:32px 0}.vocabulary-page .complete-panel svg{color:#4f8b5e}.vocabulary-page .complete-panel p{color:#7b897b;line-height:1.8;margin-bottom:28px}.vocabulary-page .flashcard-panel{text-align:center}.vocabulary-page .flashcard-panel h2{margin:36px 0 8px;font-size:40px}.vocabulary-page .flashcard-panel .phonetic{color:#8b968b}.vocabulary-page .flashcard-panel .speak-button{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:0;border-radius:20px;background:#edf3e9;color:#507256}.vocabulary-page .flashcard-panel .flashcard-meaning{min-height:70px;display:grid;place-items:center;padding:22px 0}.vocabulary-page .flashcard-panel .flashcard-actions{display:flex;gap:15px}.vocabulary-page .flashcard-panel .flashcard-actions button{flex:1;background:#f4f6f0;border:1px solid #dde5d8;color:#47724e;padding:12px;border-radius:8px}.vocabulary-page .flashcard-panel .muted{font-size:12px;color:#8a9587;line-height:1.8;margin-top:22px}.vocabulary-page .vocabulary-error{padding:15px;background:#fff0e9;color:#a05135;border-radius:10px;margin-bottom:20px;font-size:13px}.vocabulary-page .vocabulary-error button{background:transparent;border:0;color:inherit;text-decoration:underline;margin-left:10px}@media(max-width:500px){.vocabulary-page{padding:26px 16px 48px}.vocabulary-page .today-panel,.vocabulary-page .practice-panel,.vocabulary-page .flashcard-panel{padding:24px 20px}.vocabulary-page .learning-overview{padding:20px 0}.vocabulary-page .learning-overview div{padding:0 12px}.vocabulary-page .learning-overview strong{font-size:29px}.vocabulary-page .learning-tabs{gap:20px}}#root{width:100%}.app-shell{min-height:100vh;width:min(1400px,100% - 3rem);margin:0 auto;padding:calc(64px + 1.5rem) 0 3rem;animation:fadeInUp .5s ease-out}.primary-btn,.ghost-btn{border:none;border-radius:10px;font-size:1rem;font-weight:700;padding:.875rem 1.5rem;cursor:pointer;transition:all .25s ease;position:relative;overflow:hidden}.primary-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 8px 24px #6366f11f,0 4px 12px #667eea66}.primary-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.primary-btn:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 16px 48px #6366f129,0 8px 24px #667eea80}.primary-btn:hover:before{left:100%}.primary-btn:active{transform:translateY(-1px) scale(.98)}.ghost-btn{background:#fffc;color:#475569;border:2px solid rgba(99,102,241,.2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ghost-btn:hover{background:#fffffff2;border-color:#6366f1;color:#6366f1;transform:translateY(-2px);box-shadow:0 2px 8px #6366f114}@media(max-width:640px){.app-shell{width:calc(100% - 1.5rem);padding:calc(64px + 1rem) 0 2rem}}.app-header{position:fixed;top:0;left:0;right:0;height:64px;background:#ffffffd9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.9);box-shadow:0 2px 20px #6366f114;display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;z-index:1000}.header-left{display:flex;align-items:center;gap:.75rem;cursor:pointer;transition:all .15s ease}.header-left:hover{opacity:.85}.header-left:hover .logo{transform:scale(1.05)}.header-left .logo{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:10px;overflow:hidden;transition:transform .15s ease;box-shadow:0 2px 8px #6366f133}.header-left .logo img{width:100%;height:100%;object-fit:cover}.header-left .brand{display:flex;flex-direction:column;gap:0}.header-left .app-title{font-size:1.3rem;font-weight:800;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;letter-spacing:-.02em;line-height:1.2}.header-left .app-slogan{font-size:.7rem;color:#94a3b8;font-weight:500;letter-spacing:.02em}.header-right{display:flex;align-items:center;gap:1rem}.user-badge{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:#f1f5f9;border-radius:999px;transition:all .15s ease}.user-badge:hover{background:#e6edf4}.user-badge .user-avatar{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff}.user-badge .user-info{display:flex;flex-direction:column;gap:.1rem}.user-badge .user-name{font-size:.9rem;font-weight:700;color:#1e293b;line-height:1.2}.user-badge .user-role{font-size:.75rem;color:#64748b;line-height:1.2}.logout-btn{display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border:2px solid #e2e8f0;background:#fff;border-radius:10px;font-size:.85rem;font-weight:600;color:#64748b;cursor:pointer;transition:all .15s ease}.logout-btn:hover{border-color:#ef4444;color:#ef4444;background:#ef44440d}@media(max-width:640px){.app-header{padding:0 1rem}.header-left .logo{width:36px;height:36px}.header-left .app-slogan{display:none}.header-left .app-title{font-size:1.1rem}.user-info{display:none!important}.user-badge{padding:.5rem}.logout-btn{padding:.4rem .75rem;font-size:.8rem}}
