:root{--color-primary: #1899d6;--color-primary-dark: #1478a7;--color-primary-light: #ddf4ff;--color-primary-hover: #1480b8;--color-success: #58cc02;--color-success-dark: #46a302;--color-success-light: #d7ffb8;--color-success-bg: #eaffd8;--color-error: #ff4b4b;--color-error-dark: #e63e3e;--color-error-light: #ffdfe0;--color-error-bg: #fff0f0;--color-secondary: #1cb0f6;--color-warning: #ffc800;--color-warning-dark: #e0b000;--color-bg: #f0f2f5;--color-bg-warm: #faf9f7;--color-panel: #ffffff;--color-text: #3c3c3c;--color-text-secondary: #777777;--color-muted: #afafaf;--color-border: #e5e5e5;--color-border-hover: #cdcdcd;--color-divider: #f0f0f0;--gradient-primary: linear-gradient(135deg, #1cb0f6 0%, #1899d6 100%);--gradient-success: linear-gradient(135deg, #7fdb33 0%, #58cc02 100%);--gradient-error: linear-gradient(135deg, #ff6b6b 0%, #ff4b4b 100%);--gradient-warm: linear-gradient(180deg, #faf9f7 0%, #f0f2f5 100%);--gradient-fanfare: linear-gradient(180deg, #eaffd8 0%, #f0f2f5 60%);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .06);--shadow: 0 2px 8px rgba(0, 0, 0, .08), 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1), 0 2px 4px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12), 0 4px 8px rgba(0, 0, 0, .06);--shadow-success: 0 4px 14px rgba(88, 204, 2, .3);--shadow-error: 0 4px 14px rgba(255, 75, 75, .3);--shadow-primary: 0 4px 14px rgba(24, 153, 214, .3);--radius-xs: 4px;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-pill: 9999px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 15px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 22px;--font-size-2xl: 28px;--font-size-3xl: 36px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.7;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--transition-fast: .15s ease;--transition: .2s ease;--transition-slow: .3s ease;--transition-spring: .4s cubic-bezier(.34, 1.56, .64, 1);--transition-bounce: .5s cubic-bezier(.68, -.55, .265, 1.55);--color-level-purple: #ce82ff;--color-level-orange: #ff9600;--color-level-a2-text: #3c3c3c;--color-skeleton-shine: #f5f5f5;--color-success-glow: rgba(88, 204, 2, .15);--color-error-glow: rgba(255, 75, 75, .15);--max-width: 800px;--header-height: 60px;--progress-bar-height: 52px;--btn-bottom-border: 4px}[data-theme=dark]{--color-bg: #111827;--color-bg-warm: #1a2332;--color-panel: #1e293b;--color-text: #e8eaf0;--color-text-secondary: #94a3b8;--color-muted: #64748b;--color-border: #2d3748;--color-border-hover: #4a5568;--color-divider: #243044;--color-success-bg: #14311a;--color-success-light: #1a3d20;--color-error-bg: #2d1515;--color-error-light: #361a1a;--color-primary-light: #0c2a3d;--gradient-warm: linear-gradient(180deg, #1a2332 0%, #111827 100%);--gradient-fanfare: linear-gradient(180deg, #14311a 0%, #111827 60%);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow: 0 2px 8px rgba(0, 0, 0, .4), 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5), 0 2px 4px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .6), 0 4px 8px rgba(0, 0, 0, .3);--color-success-glow: rgba(88, 204, 2, .25);--color-error-glow: rgba(255, 75, 75, .25);--color-success-dark: #6ee72a;--color-error-dark: #ff7b7b;--color-level-a2-text: #1a1a1a;--color-skeleton-shine: #2d3748}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background:var(--gradient-warm);color:var(--color-text);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden;transition:background-color var(--transition),color var(--transition)}a{text-decoration:none;color:inherit}button{cursor:pointer;border:none;background:none;font:inherit;color:inherit}img{max-width:100%;height:auto;display:block}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-4)}.page{min-height:100vh;display:flex;flex-direction:column}.page-content{flex:1;padding:var(--space-6) var(--space-4);max-width:var(--max-width);margin:0 auto;width:100%}.card{background:var(--color-panel);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-4);border:1px solid var(--color-border);transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition);position:relative;overflow:hidden}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-border-hover)}.card:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-3) var(--space-6);border-radius:var(--radius);font-weight:var(--font-weight-bold);font-size:var(--font-size-base);letter-spacing:.5px;text-transform:uppercase;transition:all var(--transition-fast);border:none;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 var(--btn-bottom-border) 0 var(--color-primary-dark)}.btn-primary:hover{background:var(--color-primary-hover);filter:brightness(1.05)}.btn-primary:active{box-shadow:0 1px 0 var(--color-primary-dark);transform:translateY(3px)}.btn-success{background:var(--color-success);color:#fff;box-shadow:0 var(--btn-bottom-border) 0 var(--color-success-dark)}.btn-success:hover{filter:brightness(1.05)}.btn-success:active{box-shadow:0 1px 0 var(--color-success-dark);transform:translateY(3px)}.btn-error{background:var(--color-error);color:#fff;box-shadow:0 var(--btn-bottom-border) 0 var(--color-error-dark)}.btn-error:hover{filter:brightness(1.05)}.btn-error:active{box-shadow:0 1px 0 var(--color-error-dark);transform:translateY(3px)}.btn-block{width:100%;max-width:400px}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none;filter:none}.level-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-extrabold);color:#fff;letter-spacing:.5px;text-transform:uppercase;box-shadow:var(--shadow-xs)}.level-badge.a1{background:#58cc02}.level-badge.a2{background:#ffc800;color:var(--color-level-a2-text)}.level-badge.b1{background:#1cb0f6}.level-badge.b2{background:var(--color-level-purple)}.level-badge.c1{background:var(--color-level-orange)}.level-badge.c2{background:#ff4b4b}.app-header{height:var(--header-height);background:var(--color-panel);border-bottom:1px solid var(--color-border);display:flex;align-items:center;padding:0 var(--space-4);gap:var(--space-3);position:sticky;top:0;z-index:100;box-shadow:var(--shadow-xs)}.app-header__back{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);font-size:18px;color:var(--color-text);transition:background var(--transition-fast),color var(--transition-fast)}.app-header__back:hover{background:var(--color-bg);color:var(--color-primary)}.app-header__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header__theme-toggle{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);font-size:18px;color:var(--color-text-secondary);transition:background var(--transition-fast),color var(--transition-fast);flex-shrink:0}.app-header__theme-toggle:hover{background:var(--color-bg);color:var(--color-primary)}.app-header__logout{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);font-size:18px;color:var(--color-text-secondary);transition:background var(--transition-fast),color var(--transition-fast);flex-shrink:0}.app-header__logout:hover{background:var(--color-bg);color:var(--color-danger, #e53935)}.progress-bar-wrapper{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-panel);border-bottom:1px solid var(--color-border);z-index:100;flex-shrink:0}.progress-bar-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);font-size:16px;color:var(--color-muted);transition:all var(--transition-fast)}.progress-bar-close:hover{background:var(--color-error-light);color:var(--color-error)}.progress-bar-track{flex:1;height:16px;background:var(--color-border);border-radius:var(--radius-pill);overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:var(--gradient-success);border-radius:var(--radius-pill);transition:width .5s cubic-bezier(.34,1.56,.64,1);position:relative;min-width:16px}.progress-bar-fill:after{content:"";position:absolute;top:3px;left:8px;right:8px;height:4px;background:#fff6;border-radius:var(--radius-pill)}.progress-bar-pct{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-secondary);min-width:36px;text-align:right}.course-card{cursor:pointer;display:flex;gap:var(--space-4);align-items:center}.course-card__image{width:64px;height:64px;border-radius:var(--radius-sm);object-fit:cover;background:var(--color-border);flex-shrink:0}.course-card__body{flex:1;min-width:0}.course-card__meta{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.course-card__category{font-size:var(--font-size-sm);color:var(--color-muted)}.course-card__title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text)}.course-card__subtitle{font-size:var(--font-size-sm);color:var(--color-muted);margin-top:2px}.course-card__arrow{font-size:20px;color:var(--color-muted);transition:transform var(--transition),color var(--transition);flex-shrink:0}.card:hover .course-card__arrow{transform:translate(4px);color:var(--color-primary)}.skill-card__avatar{width:48px;height:48px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.skill-card__avatar--placeholder{width:48px;height:48px;border-radius:var(--radius-sm);background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;font-weight:var(--font-weight-bold);flex-shrink:0}.card-list{display:flex;flex-direction:column;gap:var(--space-2)}.module-section{margin-bottom:var(--space-6)}.module-section__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-3);color:var(--color-text);padding-left:var(--space-1)}.course-meta{margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.course-meta__info{font-size:var(--font-size-sm);color:var(--color-muted)}.image-error-fallback{background:var(--color-border);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);color:var(--color-muted)}.auth-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:var(--space-3);color:var(--color-muted);font-size:var(--font-size-md);text-align:center;padding:var(--space-4)}.auth-screen h2{font-size:var(--font-size-xl, 1.5rem);font-weight:var(--font-weight-bold);color:var(--color-text)}.auth-screen p{color:var(--color-muted);max-width:400px}.auth-error{color:var(--color-error)}.auth-error svg{color:var(--color-error)}.auth-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-4)}.login-card{background:var(--color-panel);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border);padding:var(--space-8, 2rem) var(--space-6, 1.5rem);max-width:380px;width:100%;text-align:center;display:flex;flex-direction:column;gap:var(--space-3)}.login-icon{color:var(--color-primary);margin-bottom:var(--space-1)}.login-card h2{font-size:var(--font-size-xl, 1.5rem);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0}.login-card p{font-size:var(--font-size-sm);color:var(--color-muted);margin:0}.login-input{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-text);background:var(--color-bg);transition:border-color var(--transition-fast);outline:none}.login-input:focus{border-color:var(--color-primary)}.login-error{font-size:var(--font-size-sm);color:var(--color-error);font-weight:var(--font-weight-semibold)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-16) var(--space-4);color:var(--color-muted);font-size:var(--font-size-md)}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-16) var(--space-4);color:var(--color-error);font-size:var(--font-size-md);text-align:center}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-16) var(--space-4);color:var(--color-muted);font-size:var(--font-size-md);text-align:center}.spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto}.skeleton{background:linear-gradient(90deg,var(--color-border) 25%,var(--color-skeleton-shine) 37%,var(--color-border) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--radius-sm)}.skeleton-card{height:80px;border-radius:var(--radius-lg);margin-bottom:var(--space-2)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.95)}to{transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes wrongShake{0%,to{transform:translate(0)}15%{transform:translate(-8px)}30%{transform:translate(8px)}45%{transform:translate(-6px)}60%{transform:translate(6px)}75%{transform:translate(-3px)}90%{transform:translate(3px)}}@keyframes correctFlash{0%{background-color:transparent}50%{background-color:var(--color-success-bg)}to{background-color:transparent}}@keyframes confetti-fall{0%{transform:translateY(-100vh) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes spin{to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn .3s ease forwards}.animate-fade-in-up{animation:fadeInUp .4s ease forwards}.animate-scale-in{animation:scaleIn .3s var(--transition-spring) forwards}.animate-bounce-in{animation:bounceIn .6s ease forwards}.animate-shake{animation:wrongShake .5s ease}.animate-slide-up{animation:slideUp .3s ease forwards}.challenge-screen{display:flex;flex-direction:column;flex:1;min-height:0}.challenge-container{display:flex;flex-direction:column;height:100vh;height:100dvh}.challenge-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);max-width:var(--max-width);margin:0 auto;width:100%;animation:fadeInUp .35s ease forwards;overflow-y:auto;min-height:0}.challenge-prompt{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);text-align:center;margin-bottom:var(--space-8);color:var(--color-text);line-height:var(--line-height-tight);animation:fadeInDown .3s ease forwards}.options-grid{display:flex;flex-direction:column;gap:var(--space-3);width:100%;max-width:500px}.option-btn{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--color-panel);border:2px solid var(--color-border);border-bottom-width:4px;border-radius:var(--radius);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text);text-align:left;transition:all var(--transition);cursor:pointer;animation:fadeInUp .3s ease forwards;opacity:0}.option-btn:nth-child(1){animation-delay:.05s}.option-btn:nth-child(2){animation-delay:.1s}.option-btn:nth-child(3){animation-delay:.15s}.option-btn:nth-child(4){animation-delay:.2s}.option-btn:hover{border-color:var(--color-primary);background:var(--color-primary-light);transform:translateY(-1px)}.option-btn:active{transform:translateY(1px);border-bottom-width:2px}.option-btn.selected{border-color:var(--color-primary);background:var(--color-primary-light);box-shadow:var(--shadow-primary)}.option-btn.correct{border-color:var(--color-success);background:var(--color-success-bg);box-shadow:var(--shadow-success)}.option-btn.wrong{border-color:var(--color-error);background:var(--color-error-bg);animation:wrongShake .5s ease}.option-number{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);background:var(--color-bg);border:2px solid var(--color-border);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-secondary);flex-shrink:0;transition:all var(--transition)}.option-btn.selected .option-number{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.option-btn.correct .option-number{background:var(--color-success);border-color:var(--color-success);color:#fff}.option-btn.wrong .option-number{background:var(--color-error);border-color:var(--color-error);color:#fff}.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);width:100%;max-width:500px}.challenge-card{display:flex;flex-direction:column;align-items:center;padding:var(--space-3);background:var(--color-panel);border:2px solid var(--color-border);border-bottom-width:4px;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition);animation:scaleIn .3s ease forwards;opacity:0}.challenge-card:nth-child(1){animation-delay:.05s}.challenge-card:nth-child(2){animation-delay:.1s}.challenge-card:nth-child(3){animation-delay:.15s}.challenge-card:hover{border-color:var(--color-primary);transform:translateY(-4px);box-shadow:var(--shadow-md)}.challenge-card:active{transform:translateY(0);border-bottom-width:2px}.challenge-card.selected{border-color:var(--color-primary);background:var(--color-primary-light);box-shadow:var(--shadow-primary)}.challenge-card.correct{border-color:var(--color-success);background:var(--color-success-bg);box-shadow:var(--shadow-success);animation:pulse .4s ease}.challenge-card.wrong{border-color:var(--color-error);background:var(--color-error-bg);animation:wrongShake .5s ease}.challenge-card img{width:120px;height:120px;object-fit:cover;border-radius:var(--radius);margin-bottom:var(--space-2);transition:transform var(--transition)}.challenge-card:hover img{transform:scale(1.05)}.challenge-card .card-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:center;color:var(--color-text)}.card-image-placeholder{width:120px;height:120px;background:var(--gradient-primary);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:36px;color:#fff;font-weight:var(--font-weight-bold);margin-bottom:var(--space-2)}.short-input-layout{display:flex;gap:var(--space-6);align-items:flex-start;width:100%;max-width:600px;animation:fadeInUp .3s ease forwards}.short-input-form{flex:1}.short-input-image{width:150px;height:150px;object-fit:cover;border-radius:var(--radius-lg);flex-shrink:0;box-shadow:var(--shadow);transition:transform var(--transition)}.short-input-image:hover{transform:scale(1.03)}.text-input{width:100%;padding:var(--space-4);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);border:2px solid var(--color-border);border-bottom-width:4px;border-radius:var(--radius);outline:none;background:var(--color-panel);color:var(--color-text);transition:border-color var(--transition),box-shadow var(--transition),background var(--transition)}.text-input::placeholder{color:var(--color-muted);font-weight:var(--font-weight-normal)}.text-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.text-input.correct{border-color:var(--color-success);background:var(--color-success-bg);box-shadow:0 0 0 3px var(--color-success-glow)}.text-input.wrong{border-color:var(--color-error);background:var(--color-error-bg);box-shadow:0 0 0 3px var(--color-error-glow);animation:wrongShake .5s ease}.listening-layout{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);width:100%;max-width:500px;animation:fadeInUp .3s ease forwards}.audio-play-btn{width:88px;height:88px;border-radius:50%;background:var(--gradient-primary);color:#fff;font-size:36px;display:flex;align-items:center;justify-content:center;transition:all var(--transition);box-shadow:var(--shadow-primary);cursor:pointer;border:none;position:relative}.audio-play-btn:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:3px solid var(--color-primary-light);animation:pulse 2s ease infinite}.audio-play-btn:hover{transform:scale(1.08);box-shadow:var(--shadow-lg)}.audio-play-btn:active{transform:scale(.95)}.audio-play-btn--small{width:48px;height:48px;font-size:22px}.audio-play-btn--small:before{display:none}.listening-meaning{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-style:italic;animation:fadeIn .3s ease}.chips-area{width:100%;max-width:600px;animation:fadeInUp .3s ease forwards}.chips-answer-zone{min-height:64px;padding:var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-5);display:flex;flex-wrap:wrap;gap:var(--space-2);background:var(--color-bg);transition:all var(--transition)}.chips-placeholder{color:var(--color-muted);font-size:var(--font-size-sm);padding:var(--space-2)}.chips-answer-zone.correct{border-color:var(--color-success);background:var(--color-success-bg);box-shadow:var(--shadow-success)}.chips-answer-zone.wrong{border-color:var(--color-error);background:var(--color-error-bg);animation:wrongShake .5s ease}.chips-source{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center;padding-top:var(--space-2)}.chip{padding:var(--space-2) var(--space-4);background:var(--color-panel);border:2px solid var(--color-border);border-bottom-width:4px;border-radius:var(--radius-pill);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text);cursor:pointer;transition:all var(--transition);-webkit-user-select:none;user-select:none}.chip:hover{border-color:var(--color-primary);background:var(--color-primary-light);transform:translateY(-2px)}.chip:active{transform:translateY(1px);border-bottom-width:2px}.chip.used{opacity:.25;pointer-events:none;border-style:dashed;background:transparent;border-bottom-width:2px}.chip.in-answer{background:var(--color-primary-light);border-color:var(--color-primary);cursor:grab}.chip.in-answer:active{cursor:grabbing}.chip.dragging{opacity:.5;transform:scale(1.05);box-shadow:var(--shadow-md)}.challenge-panel{padding:var(--space-5) var(--space-4);border-top:2px solid var(--color-border);display:flex;flex-direction:column;align-items:center;gap:var(--space-3);background:var(--color-panel);animation:slideUp .25s ease forwards;flex-shrink:0}.challenge-panel.correct{background:var(--color-success-light);border-color:var(--color-success)}.challenge-panel.wrong{background:var(--color-error-light);border-color:var(--color-error)}.panel-content{display:flex;align-items:center;gap:var(--space-3);width:100%;max-width:var(--max-width)}.panel-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:var(--font-weight-bold);flex-shrink:0;animation:bounceIn .4s ease forwards}.challenge-panel.correct .panel-icon{background:var(--color-success);color:#fff}.challenge-panel.wrong .panel-icon{background:var(--color-error);color:#fff}.panel-text{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.challenge-panel.correct .panel-text{color:var(--color-success-dark)}.challenge-panel.wrong .panel-text{color:var(--color-error-dark)}.panel-answer{font-size:var(--font-size-sm);color:var(--color-error-dark);margin-top:2px;font-weight:var(--font-weight-medium)}.panel-actions{width:100%;max-width:var(--max-width);display:flex;justify-content:center}.virtual-keyboard{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:center;margin-top:var(--space-3);animation:fadeIn .3s ease .2s forwards;opacity:0}.vk-key{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:2px solid var(--color-border);border-bottom-width:3px;border-radius:var(--radius-sm);background:var(--color-panel);color:var(--color-text);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);cursor:pointer}.vk-key:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary-dark);transform:translateY(-1px)}.vk-key:active{transform:translateY(1px);border-bottom-width:1px}.fanfare-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;text-align:center;gap:var(--space-6);background:var(--gradient-fanfare);position:relative;overflow:hidden;padding:var(--space-8) var(--space-4)}.fanfare-icon{font-size:80px;animation:bounceIn .6s ease forwards,float 3s ease-in-out .6s infinite}.fanfare-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-extrabold);color:var(--color-success);animation:fadeInUp .5s ease .2s forwards;opacity:0}.fanfare-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-md);animation:fadeInUp .5s ease .3s forwards;opacity:0}.fanfare-stats{display:flex;gap:var(--space-10);font-size:var(--font-size-lg);animation:fadeInUp .5s ease .4s forwards;opacity:0}.stat-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.stat-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-extrabold);line-height:1}.stat-value--correct{color:var(--color-success)}.stat-value--wrong{color:var(--color-error)}.stat-label{font-size:var(--font-size-sm);color:var(--color-muted);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.5px}.fanfare-action{max-width:300px;width:100%;margin-top:var(--space-4);animation:fadeInUp .5s ease .5s forwards;opacity:0}.confetti{position:absolute;width:8px;height:8px;border-radius:2px;animation:confetti-fall 3s linear forwards;pointer-events:none}.exercise-metrics{display:flex;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);background:var(--color-panel);border-bottom:1px solid var(--color-border);flex-shrink:0;animation:fadeIn .3s ease forwards}.exercise-metrics__item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);transition:background var(--transition-fast)}.exercise-metrics__icon{font-size:16px;flex-shrink:0}.exercise-metrics__data{display:flex;align-items:baseline;gap:var(--space-1)}.exercise-metrics__value{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);line-height:1}.exercise-metrics__label{font-size:var(--font-size-xs);color:var(--color-muted);font-weight:var(--font-weight-medium)}.exercise-metrics__divider{width:1px;height:20px;background:var(--color-border);flex-shrink:0}.exercise-metrics__item--remaining .exercise-metrics__icon,.exercise-metrics__item--remaining .exercise-metrics__value{color:var(--color-primary)}.exercise-metrics__item--correct .exercise-metrics__icon,.exercise-metrics__item--correct .exercise-metrics__value{color:var(--color-success)}.exercise-metrics__item--wrong .exercise-metrics__icon,.exercise-metrics__item--wrong .exercise-metrics__value{color:var(--color-error)}.exercise-metrics__item--time .exercise-metrics__icon{color:var(--color-warning-dark)}.exercise-metrics__item--time .exercise-metrics__value{color:var(--color-text);font-variant-numeric:tabular-nums}@media (max-width: 600px){.exercise-metrics{gap:0;padding:var(--space-2) var(--space-2)}.exercise-metrics__item{padding:var(--space-1) var(--space-2);gap:var(--space-1)}.exercise-metrics__label{display:none}.exercise-metrics__value{font-size:var(--font-size-sm)}.exercise-metrics__icon{font-size:14px}.exercise-metrics__divider{height:16px}.cards-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.challenge-card img{width:100px;height:100px}.card-image-placeholder{width:100px;height:100px;font-size:32px}.short-input-layout{flex-direction:column-reverse;align-items:center}.short-input-image{width:120px;height:120px}.challenge-prompt{font-size:var(--font-size-lg);margin-bottom:var(--space-6)}.challenge-body{padding:var(--space-6) var(--space-4)}.fanfare-stats{gap:var(--space-8)}.stat-value{font-size:var(--font-size-2xl)}.audio-play-btn{width:72px;height:72px;font-size:28px}.option-btn{padding:var(--space-3) var(--space-4);font-size:var(--font-size-base)}.chip{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm)}}@media (max-width: 380px){.cards-grid{grid-template-columns:1fr 1fr}.challenge-card img{width:80px;height:80px}.card-image-placeholder{width:80px;height:80px;font-size:28px}.fanfare-icon{font-size:60px}}
