:root{--primary-color:#10b981;--primary-dark:#059669;--accent-color:#f59e0b;--background-color:#ffffff;--card-background:#f8fafc;--text-primary:#1e293b;--text-secondary:#64748b;--border-color:#e2e8f0;--success-color:#10b981;--error-color:#ef4444;--warning-color:#f59e0b;--info-color:#3b82f6;--font-family:"Noto Sans SC",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:2.5rem;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-2xl:1rem;--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05);--shadow-xl:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04);--transition-fast:150ms ease-in-out;--transition-normal:200ms ease-in-out;--transition-slow:300ms ease-in-out}.root{color-scheme:light}body{margin:0;font-family:var(--font-family);min-height:100vh;background:var(--background-color);overflow-x:hidden;position:relative;line-height:1.5}body,h1,h2,h3,h4,h5,h6{color:var(--text-primary)}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2;margin:0 0 var(--space-4) 0}h1{font-size:var(--font-size-5xl)}h2{font-size:var(--font-size-4xl)}h3{font-size:var(--font-size-2xl)}p{margin:0 0 var(--space-4) 0;color:var(--text-secondary);line-height:1.6}a{color:var(--primary-color);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-dark)}button{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:600;border:none;border-radius:var(--radius-lg);padding:var(--space-3) var(--space-6);cursor:pointer;transition:all var(--transition-normal);outline:none}button:focus{box-shadow:0 0 0 3px rgba(16,185,129,.3)}input{font-family:var(--font-family);font-size:var(--font-size-base);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);transition:all var(--transition-normal);outline:none;width:100%;box-sizing:border-box}input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(16,185,129,.1)}.card{background:var(--card-background);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:var(--space-6);transition:all var(--transition-normal)}.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.container{max-width:1200px;margin:0 auto;padding:0 var(--space-4)}@media (max-width:768px){:root{--font-size-5xl:2rem;--font-size-4xl:1.75rem;--font-size-2xl:1.25rem}.container{padding:0 var(--space-3)}}@media (max-width:480px){:root{--font-size-5xl:1.75rem;--font-size-4xl:1.5rem;--font-size-2xl:1.125rem}.container{padding:0 var(--space-2)}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:focus{outline:2px solid var(--primary-color);outline-offset:2px}::selection{background-color:rgba(16,185,129,.2);color:var(--text-primary)}main{max-width:800px;margin:20px auto;padding:20px;background:#ffffff;border-radius:16px;box-shadow:0 4px 20px rgba(0,0,0,.08)}.header{justify-content:center;width:100%;max-width:900px;margin:0 auto 10px;padding-top:24px;z-index:10}.level-info{z-index:60;width:100%;text-align:center}.level-info h1{font-size:24px;font-weight:600;margin:0;color:#10b981}.current-level{font-size:1.1em}.teacher-image{position:fixed;top:24px;right:16px;width:190px;height:auto;z-index:50;border-radius:6px}.actions{gap:12px;margin:12px 0 8px}.button{padding:6px 12px;background-color:rgb(26,179,148);border-radius:999px;font-size:14px;line-height:1;transition:all .2s}.button:hover{background-color:rgb(28,132,198)}.card-container{z-index:1;margin:0 auto;padding:6px 10px 80px}.card-container,.card-row{position:relative;max-width:760px}.card-row{gap:5px;margin-bottom:10px;flex-wrap:nowrap;align-items:center;overflow-x:auto;padding:8px 0;width:100%;margin-left:auto;margin-right:auto;min-height:80px}@media (max-width:480px){.card-row{flex-wrap:nowrap;overflow-x:auto;gap:3px;padding:5px 0}}.meld-spacer{width:50px;height:70px;position:relative}.inserted-spacer{background:rgba(255,255,255,.3);border:2px dashed #ffffff;border-radius:6px;cursor:pointer}.inserted-spacer:hover{background:rgba(255,255,255,.5)}.inserted-spacer:after{content:"+";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:24px;color:#ffffff;font-weight:700}.gap-detector{position:absolute;background:transparent;cursor:pointer;z-index:100;border-radius:50%;display:flex;align-items:center;justify-content:center}.gap-detector:hover:after{content:"+";font-size:20px;color:white;font-weight:700}.gap-detector:after{opacity:0;transition:opacity .2s}.insert-indicator{position:fixed;width:3px;background-color:#ff5722;top:0;left:0;z-index:1000;pointer-events:none;border-radius:2px}.drag-ghost{opacity:.7;transform:rotate(5deg)}.card-img.draggable{-webkit-user-select:none;user-select:none;transition:transform .2s ease,opacity .2s}.card-img.draggable:active{transform:scale(1.05)}@media (max-width:480px){.card-slot,.inserted-spacer,.meld-spacer{width:35px;height:50px}.options{gap:28px}.teacher-image{width:120px}.card-container{padding:6px 5px 80px}.card-row{gap:3px}.card-img{width:35px;height:50px}}.drag-ghost{position:fixed;pointer-events:none;z-index:9999;width:60px;height:auto;aspect-ratio:3/4;border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.3);opacity:.9;transform:none!important}.insert-indicator{position:absolute;width:2px;height:80%;background-color:#ff4444;border:1px dashed #fff;z-index:9990;display:none}img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.card-container .card-row{flex-wrap:nowrap!important;overflow-x:auto}.card-container .card-img,.card-container .card-slot,.card-container .meld-spacer,.inserted-spacer{flex:0 0 auto!important;display:block}.inserted-spacer{position:relative}.card-container .card-img,.card-container .card-slot{width:clamp(28px,6.2vw,50px);height:auto;aspect-ratio:3/4}.card-container .meld-spacer{width:clamp(10px,2vw,20px);height:auto;aspect-ratio:1/3}@media (max-width:480px){.card-container .card-row{flex-wrap:nowrap!important;overflow-x:auto;gap:5px}.card-container .card-img,.card-container .card-slot{width:clamp(26px,7vw,38px)}.card-container .meld-spacer{width:clamp(8px,1.6vw,16px)}}.options{gap:16px}.option{text-align:center}@media (max-width:480px){.options{flex-wrap:nowrap!important;overflow-x:auto;gap:14px}}.custom-alert{background-color:rgba(0,0,0,.5)}.alert-content{background-color:white;padding:25px;border-radius:10px;width:80%;max-width:300px}.alert-message{margin-bottom:20px;font-size:1.1em;color:#333}.alert-buttons{justify-content:space-around}.alert-btn{padding:8px 20px;border:none;border-radius:5px;cursor:pointer;font-size:1em}.cancel-btn{background-color:#ccc;color:#333}.confirm-btn{background-color:rgb(26,179,148);color:white}.watermark{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:999;opacity:.2;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:80px;color:white}@media (max-width:480px){.card-img,.meld-spacer{width:35px;height:50px}.options{gap:28px}.teacher-image{width:120px}.card-container{padding:6px 5px 80px}.card-row{gap:3px}}.loading{color:white;background:linear-gradient(135deg,rgba(102,126,234,.2),rgba(118,75,162,.2))}.error,.loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:1.4rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;margin:20px;box-shadow:0 8px 32px rgba(0,0,0,.1)}.error{color:rgba(255,107,107,.95);background:rgba(255,107,107,.1);border:1px solid rgba(255,107,107,.3)}.header{text-align:center;margin-bottom:30px;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.2);position:relative;display:flex;flex-direction:column;align-items:center}.header h1{color:#10b981;font-size:2.2rem;margin:0 0 15px;text-shadow:0 2px 10px rgba(16,185,129,.3);background:linear-gradient(135deg,#10b981,#34d399);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.user-info{position:absolute;top:20px;right:20px;display:flex;align-items:center;gap:15px;background:rgba(255,255,255,.15);padding:8px 16px;border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 12px rgba(0,0,0,.15)}.content{text-align:center;padding:20px}.content p{font-size:1.2rem;color:rgba(255,255,255,.9);margin-bottom:30px}.actions{display:flex;justify-content:center;gap:20px;margin-top:30px}.button{padding:12px 24px;background:linear-gradient(135deg,rgba(255,255,255,.25),rgba(255,255,255,.15));color:white;border:1px solid rgba(255,255,255,.3);border-radius:50px;font-weight:600;cursor:pointer;box-shadow:0 4px 15px rgba(0,0,0,.2);transition:all .3s ease;text-decoration:none;display:inline-block;font-size:16px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.button:hover{background:linear-gradient(135deg,rgba(255,255,255,.3),rgba(255,255,255,.2));transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.25)}.success-message{text-align:center;padding:30px;background:rgba(255,255,255,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 32px rgba(0,0,0,.1)}.success-message h2{color:#4ade80;margin-bottom:15px;background:linear-gradient(135deg,#4ade80,#22c55e);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#0f0f1a,#1a1a2e);padding:20px}.login-container{background:rgba(255,255,255,.05);border-radius:12px;box-shadow:0 15px 35px rgba(0,0,0,.3);padding:40px;width:100%;max-width:400px;text-align:center;border:1px solid rgba(16,185,129,.3)}.login-header h1{color:white;margin-bottom:10px;font-size:2.2rem;background:linear-gradient(135deg,#ffffff,#e0e7ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-header p{color:rgba(255,255,255,.9);margin-bottom:30px;font-size:1.1rem}.login-form{text-align:left}.login-button{width:100%;padding:14px;background:linear-gradient(135deg,rgba(255,255,255,.25),rgba(255,255,255,.15));color:white;border:1px solid rgba(255,255,255,.3);border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:10px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,.25);background:linear-gradient(135deg,rgba(255,255,255,.35),rgba(255,255,255,.25))}.login-button:disabled{opacity:.7;cursor:not-allowed}.error-message{color:rgba(255,107,107,.95);background:rgba(255,107,107,.1);border:1px solid rgba(255,107,107,.3);border-radius:12px;padding:12px;margin-bottom:20px;font-size:14px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.login-footer{margin-top:25px;color:rgba(255,255,255,.9)}.register-link{color:rgba(255,255,255,1);text-decoration:none;font-weight:600;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:2px;transition:all .3s ease}.register-link:hover{border-bottom:1px solid rgba(255,255,255,.8);opacity:.9}.register-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#0f0f1a,#1a1a2e);padding:20px}.register-container{background:rgba(255,255,255,.05);border-radius:12px;box-shadow:0 15px 35px rgba(0,0,0,.3);padding:40px;width:100%;max-width:400px;text-align:center;border:1px solid rgba(16,185,129,.3)}.register-header h1{color:white;margin-bottom:10px;font-size:2.2rem;background:linear-gradient(135deg,#ffffff,#e0e7ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.register-header p{color:rgba(255,255,255,.9);margin-bottom:30px;font-size:1.1rem}.register-form{text-align:left}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:rgba(255,255,255,.95);font-weight:500}.form-group input{width:100%;padding:12px 15px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);border-radius:12px;box-sizing:border-box;transition:all .3s ease;color:white;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.form-group input::placeholder{color:rgba(255,255,255,.6)}.form-group input:focus{outline:none;border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.2);box-shadow:0 0 0 3px rgba(255,255,255,.15)}.register-button{width:100%;padding:14px;background:linear-gradient(135deg,rgba(255,255,255,.25),rgba(255,255,255,.15));color:white;border:1px solid rgba(255,255,255,.3);border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:10px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.register-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,.25);background:linear-gradient(135deg,rgba(255,255,255,.35),rgba(255,255,255,.25))}.register-button:disabled{opacity:.7;cursor:not-allowed}.register-footer{margin-top:25px;color:rgba(255,255,255,.9)}.login-link{color:rgba(255,255,255,1);text-decoration:none;font-weight:600;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:2px;transition:all .3s ease}.login-link:hover{border-bottom:1px solid rgba(255,255,255,.8);opacity:.9}.select-level-page{padding:20px;max-width:1200px;margin:0 auto}.select-level-page .header{text-align:center;margin-bottom:30px;padding:20px 0}.select-level-page .header h1{color:#10b981;font-size:2.5rem;margin-bottom:20px;background:linear-gradient(135deg,#10b981,#34d399);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700}.level-legend{background:rgba(255,255,255,.05);border-radius:12px;padding:24px;margin-bottom:30px;box-shadow:0 8px 32px rgba(0,0,0,.2);border:1px solid rgba(16,185,129,.3)}.level-legend h2{color:#10b981;font-size:1.8rem;margin-top:0;margin-bottom:20px;text-align:center;background:linear-gradient(135deg,#10b981,#34d399);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.legend-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:16px;width:100%;padding:4px 0 10px}.legend-item{display:flex;align-items:center;justify-content:center;gap:10px;color:#065f46;font-weight:600;min-width:0;white-space:nowrap;font-size:.95rem}.legend-color{width:24px;height:24px;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.2);border:1px solid rgba(16,185,129,.3)}.legend-color.level-not-learned{background:rgba(255,255,255,.08)}.legend-color.level-learned{background:linear-gradient(135deg,#10b981,#34d399)}.legend-color.level-mastered{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.legend-color.level-current{background:linear-gradient(135deg,#3b82f6,#60a5fa);border:2px solid rgba(59,130,246,.8);box-shadow:0 0 12px rgba(59,130,246,.5)}.level-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:12px;margin-bottom:30px;background:rgba(255,255,255,.05);padding:24px;box-shadow:0 8px 32px rgba(0,0,0,.2)}.level-grid,.level-item{border-radius:12px;border:1px solid rgba(16,185,129,.3)}.level-item{display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;min-height:0;text-decoration:none;font-weight:800;font-size:1.2rem;letter-spacing:.02em;transition:all .3s ease;box-shadow:0 4px 15px rgba(0,0,0,.2);position:relative;color:#0f172a;text-shadow:0 1px 0 rgba(255,255,255,.35)}.level-item.level-not-learned{background:linear-gradient(180deg,#ffffff,#f0fdf4);color:#047857;border-color:rgba(16,185,129,.28)}.level-item.level-learned{background:linear-gradient(135deg,#a7f3d0,#6ee7b7);color:#064e3b}.level-item.level-mastered{background:linear-gradient(135deg,#fde68a,#fbbf24);color:#78350f}.level-item.active{transform:scale(1.1);box-shadow:0 0 20px rgba(59,130,246,.4);z-index:2;background:linear-gradient(135deg,#93c5fd,#60a5fa);color:#0b3b8f;border-color:rgba(59,130,246,.45)}.level-item.active:after{content:"";position:absolute;top:-6px;right:-6px;width:24px;height:24px;background:linear-gradient(135deg,#3b82f6,#60a5fa);border-radius:50%;border:2px solid rgba(255,255,255,.9);box-shadow:0 2px 10px rgba(59,130,246,.6)}.level-item:hover{transform:scale(1.08);box-shadow:0 0 15px rgba(16,185,129,.3);filter:brightness(.98)}@media (max-width:768px){.level-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:18px}.level-item{font-size:1.05rem}}@media (max-width:480px){.level-legend{padding:20px 16px}.legend-items{gap:10px}.legend-item{gap:6px;font-size:.8rem}.legend-color{width:18px;height:18px;border-radius:6px}.level-grid{gap:10px;padding:16px}.level-item{font-size:.95rem}}.nav-buttons{gap:24px;margin-top:30px}.nav-btn{padding:14px 28px;background:rgba(255,255,255,.15);color:white;border-radius:12px;transition:all .3s ease;border:1px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:16px}.nav-btn:hover{background:rgba(255,255,255,.25);transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.2)}.level-grid::-webkit-scrollbar{display:none}.level-grid{-ms-overflow-style:none;scrollbar-width:none}.alert-btn,.button,.nav-btn{background:linear-gradient(135deg,var(--primary-color) 0,var(--primary-dark) 100%);color:white;border:none;border-radius:var(--radius-lg);padding:var(--space-3) var(--space-6);font-weight:600;cursor:pointer;box-shadow:var(--shadow-md);transition:all var(--transition-normal);text-decoration:none;display:inline-block;font-size:var(--font-size-base)}.alert-btn:hover,.button:hover,.nav-btn:hover{background:linear-gradient(135deg,var(--primary-dark) 0,#047857 100%);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.card-container{background:var(--background-color);border:1px solid rgba(16,185,129,.2);border-radius:var(--radius-xl);padding:var(--space-5) var(--space-4);margin-bottom:var(--space-5);box-shadow:var(--shadow-md);transition:all var(--transition-normal)}.card-row{display:flex;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap}.card-img{width:50px;height:70px;background:white;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.card-img.draggable{cursor:grab}.card-img.draggable:active{cursor:grabbing}.card-img.dragging{opacity:.5}.options{gap:var(--space-4);margin:var(--space-5) 0;flex-wrap:nowrap;overflow-x:auto;padding:var(--space-4);background:var(--card-background);border-radius:var(--radius-xl);border:1px solid rgba(16,185,129,.2)}.option,.options{display:flex;justify-content:center;align-items:center;box-shadow:var(--shadow-md)}.option{flex-direction:column;cursor:pointer;padding:var(--space-3);border-radius:var(--radius-lg);transition:all var(--transition-normal);background:var(--background-color);min-width:80px;flex:0 0 auto;border:1px solid rgba(16,185,129,.3)}@media (max-width:480px){.options{gap:var(--space-3);padding:var(--space-3)}.option{min-width:80px;padding:var(--space-2)}}.option:hover{background:#f0fdf4;transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:rgba(16,185,129,.5)}.option span{font-weight:600;margin-top:var(--space-2);color:var(--text-primary);font-size:var(--font-size-base);text-align:center}.feedback-icon{width:24px;height:24px;margin-bottom:var(--space-2);opacity:.9}.prompt{text-align:center;font-size:var(--font-size-lg);color:var(--text-primary);margin:var(--space-4) 0;font-weight:600;background:#f0fdf4;padding:var(--space-3) var(--space-5);border-radius:var(--radius-xl);border:1px solid rgba(16,185,129,.3);box-shadow:var(--shadow-md)}.actions-bar,.card-container,.explanation,.nav-buttons,.options,.prompt{scroll-margin-top:96px}@media (max-width:480px){.options{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2);overflow:visible}.option{min-width:0;padding:var(--space-2)}.option .card-img{width:30px;height:auto;aspect-ratio:3/4}.option span{font-size:var(--font-size-sm)}.feedback-icon{display:block;width:20px;height:20px}.prompt{font-size:var(--font-size-lg);padding:var(--space-3) var(--space-5)}}.explanation{background:#f0fdf4;border:1px solid rgba(16,185,129,.3);padding:var(--space-4);margin:var(--space-4) 0;border-radius:var(--radius-xl);display:none;box-shadow:var(--shadow-md)}.explanation p{margin:0;color:var(--text-primary);font-weight:500;font-size:var(--font-size-lg);line-height:1.6}.nav-buttons{justify-content:center;gap:var(--space-4);margin-top:var(--space-5);padding:var(--space-4);background:var(--card-background);border-radius:var(--radius-2xl);border:1px solid rgba(16,185,129,.2)}.nav-btn,.nav-buttons{display:flex;box-shadow:var(--shadow-md)}.nav-btn{flex-direction:column;align-items:center;text-decoration:none;padding:var(--space-3) var(--space-5);background:var(--background-color);border-radius:var(--radius-xl);border:1px solid rgba(16,185,129,.3);transition:all var(--transition-normal);color:var(--text-primary);font-weight:600}.nav-btn:hover{background:#f0fdf4;transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:rgba(16,185,129,.5)}.nav-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none;background:#f1f5f9}.nav-icon{width:32px;height:32px;margin-bottom:var(--space-2);opacity:1;filter:invert(1) brightness(.3)}.final-level-alert,.first-level-alert{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(255,140,102,.3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:var(--space-6);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);display:none;z-index:1000;text-align:center;border:1px solid rgba(255,140,102,.4);min-width:200px}.warn-icon{width:50px;height:50px;margin:0 auto var(--space-4);opacity:.9}.warn-text{margin:var(--space-2) 0;color:rgba(255,140,102,.95);font-weight:600;font-size:var(--font-size-lg)}.custom-alert{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:none;justify-content:center;align-items:center;z-index:1000}.alert-content{background:white;padding:var(--space-6);border-radius:var(--radius-xl);text-align:center;box-shadow:var(--shadow-xl);max-width:400px;width:90%}.alert-message{margin-bottom:var(--space-5);color:var(--text-primary);font-size:var(--font-size-lg)}.alert-buttons{display:flex;justify-content:center;gap:var(--space-4)}.cancel-btn{background:linear-gradient(180deg,#90a4ae,#62757f)}.cancel-btn:hover{background:linear-gradient(180deg,#a2b5bd,#72858f)}.confirm-btn{background:linear-gradient(180deg,#8d6e63,#5d4037)}.confirm-btn:hover{background:linear-gradient(180deg,#a1887f,#6d4c41)}.watermark{text-align:center;margin-top:var(--space-10);padding:var(--space-5);color:#a1887f;font-weight:700;font-size:var(--font-size-xl);opacity:.7}.profile-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#0f0f1a,#1a1a2e);padding:20px}.profile-container{background:rgba(255,255,255,.05);border-radius:12px;box-shadow:0 15px 35px rgba(0,0,0,.3);padding:40px;width:100%;max-width:500px;text-align:center;border:1px solid rgba(16,185,129,.3)}.profile-header h1{color:#10b981;margin-bottom:10px;font-size:2.2rem;background:linear-gradient(135deg,#10b981,#34d399);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.user-info-display{background:rgba(255,255,255,.08);padding:20px;border-radius:12px;margin-bottom:25px;text-align:left;border:1px solid rgba(16,185,129,.3);box-shadow:0 4px 15px rgba(0,0,0,.2)}.user-info-display p{margin:8px 0;font-weight:500;color:rgba(255,255,255,.95)}.profile-form{text-align:left}.form-actions{display:flex;gap:12px;margin-top:25px;flex-direction:column}.logout-button{background:linear-gradient(135deg,rgba(231,76,60,.3),rgba(192,57,43,.3))!important;border:1px solid rgba(231,76,60,.4)!important}.logout-button:hover{background:linear-gradient(135deg,rgba(231,76,60,.4),rgba(192,57,43,.4))!important;border:1px solid rgba(231,76,60,.6)!important}.profile-footer{margin-top:25px;color:rgba(255,255,255,.9)}.actions-bar{display:flex;justify-content:center;margin:10px 0}.toggle-progress-btn{padding:8px 16px;background-color:#10b981;color:white;border:none;border-radius:8px;cursor:pointer;font-size:14px;transition:all .3s;box-shadow:0 2px 8px rgba(16,185,129,.3)}.toggle-progress-btn:hover{background-color:#059669;transform:translateY(-2px);box-shadow:0 4px 12px rgba(16,185,129,.4)}.image-display{display:flex;justify-content:center;margin:20px 0;padding:16px;background:#f8fafc;border-radius:12px;border:1px solid rgba(16,185,129,.2);box-shadow:0 2px 12px rgba(0,0,0,.05)}.image-display img{max-width:100%;max-height:300px;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);object-fit:contain}body{background:radial-gradient(circle at top left,rgba(16,185,129,.14),transparent 34rem),linear-gradient(180deg,#f8fafc,#ecfdf5)}.practice-shell,.select-level-page{max-width:1120px;border-radius:8px;border:1px solid rgba(16,185,129,.16);box-shadow:0 24px 70px rgba(15,23,42,.1)}.practice-hero,.select-hero{display:flex;align-items:stretch;justify-content:space-between;gap:var(--space-6);padding:var(--space-6);margin-bottom:var(--space-5);border:1px solid rgba(16,185,129,.18);border-radius:8px;background:linear-gradient(135deg,rgba(5,150,105,.1),rgba(245,158,11,.1)),#ffffff}.eyebrow{margin:0 0 var(--space-2);color:#047857;font-size:var(--font-size-sm);font-weight:800}.practice-hero h1,.select-hero h1{margin:0;color:#0f172a;font-size:clamp(2rem,5vw,3.4rem);letter-spacing:0}.practice-hero h1 span{color:#059669}.practice-subtitle,.select-hero p{max-width:560px;margin:var(--space-3) 0 0;color:#475569}.practice-meter{display:grid;align-content:center;min-width:180px;padding:var(--space-5);border-radius:8px;background:#0f172a;color:white}.practice-meter strong{font-size:var(--font-size-4xl);line-height:1}.practice-meter span{margin-top:var(--space-2);color:rgba(255,255,255,.76);font-weight:700}.meter-track{height:8px;margin-top:var(--space-4);overflow:hidden;border-radius:999px;background:rgba(255,255,255,.18)}.meter-track div{height:100%;border-radius:inherit;background:linear-gradient(90deg,#10b981,#f59e0b)}.practice-shell .card-container{padding:var(--space-6);background:linear-gradient(180deg,#ffffff,#f8fafc);border-radius:8px}.practice-shell .card-row{min-height:86px;padding:var(--space-3);border-radius:8px;background:#f1f5f9}.practice-shell .card-img{border:1px solid rgba(15,23,42,.08);box-shadow:0 8px 18px rgba(15,23,42,.12)}.practice-shell .meld-spacer{min-width:18px;padding:0;border:1px dashed rgba(16,185,129,.45);background:rgba(16,185,129,.08)}.practice-shell .prompt{border-radius:8px;background:#fff7ed;border-color:rgba(245,158,11,.34)}.practice-shell .options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4);border-radius:8px;background:#ffffff}.practice-shell .option{position:relative;min-width:0;border-radius:8px;background:#f8fafc}.practice-shell .option.selected{border-color:#0ea5e9;box-shadow:0 0 0 3px rgba(14,165,233,.18),var(--shadow-md)}.practice-shell .option.is-correct{border-color:#10b981;background:#ecfdf5}.practice-shell .option.is-incorrect{border-color:#ef4444;background:#fef2f2}.feedback-badge{display:grid;place-items:center;width:28px;height:28px;margin-bottom:var(--space-2);border-radius:999px;background:#e2e8f0;color:#334155;font-weight:900}.is-correct .feedback-badge{background:#10b981;color:white}.is-incorrect .feedback-badge{background:#ef4444;color:white}.explanation.visible{display:block;border-radius:8px}.explanation.correct{background:#ecfdf5}.explanation.incorrect{background:#fff7ed;border-color:rgba(245,158,11,.4)}.answer-kicker{margin:0 0 var(--space-1);color:#047857;font-size:var(--font-size-sm);font-weight:800}.practice-shell .nav-btn{border-radius:8px}.practice-shell button.nav-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.practice-shell .nav-btn.primary{background:linear-gradient(135deg,#10b981,#059669);color:#ffffff}.select-hero-action{display:inline-flex;align-items:center;justify-content:center;min-width:150px;padding:var(--space-3) var(--space-5);border-radius:8px;background:#0f172a;color:white;font-weight:800}.select-hero-action:hover{color:white;background:#047857}.level-dashboard{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}.level-dashboard div,.level-empty,.level-toolbar{padding:var(--space-5);border:1px solid rgba(16,185,129,.16);border-radius:8px;background:#ffffff;box-shadow:var(--shadow-sm)}.level-dashboard strong{display:block;color:#0f172a;font-size:var(--font-size-3xl);line-height:1}.level-dashboard span{display:block;margin-top:var(--space-2);color:#64748b;font-weight:700}.level-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:var(--space-4);align-items:end;margin-bottom:var(--space-5)}.level-search span{display:block;margin-bottom:var(--space-2);color:#334155;font-weight:800}.level-filter-group{display:flex;flex-wrap:wrap;gap:var(--space-2)}.level-filter-group button{border-radius:8px;background:#f1f5f9;color:#334155;box-shadow:none}.level-filter-group button.active{background:#10b981;color:#ffffff}.select-level-page .level-grid,.select-level-page .level-legend{border-radius:8px;background:#ffffff;box-shadow:var(--shadow-sm)}.select-level-page .level-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr))}.select-level-page .level-item{border-radius:8px}@media (max-width:768px){.level-toolbar,.practice-hero,.select-hero{grid-template-columns:1fr;flex-direction:column}.level-dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.practice-shell,.select-level-page{margin:10px;padding:var(--space-3)}.practice-shell .options{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-shell .nav-buttons{position:sticky;bottom:8px;z-index:30;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:var(--space-4) 0 0;padding:6px;border-radius:8px;background:rgba(255,255,255,.94);box-shadow:0 10px 28px rgba(15,23,42,.14);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.practice-shell .nav-btn{min-height:44px;padding:6px 4px;border-radius:6px;box-shadow:none;font-size:13px;gap:2px}.practice-shell .nav-icon{width:18px;height:18px;margin-bottom:0}}.auth-kicker{margin:0 0 var(--space-2);color:#10b981;font-size:var(--font-size-sm);font-weight:800}.login-page,.profile-page,.register-page{min-height:calc(100svh - 72px);align-items:flex-start;padding:clamp(16px,4vw,32px);background:radial-gradient(circle at top right,rgba(16,185,129,.18),transparent 18rem),linear-gradient(180deg,#0f172a,#10231f)}.login-container,.profile-container,.register-container{width:min(100%,440px);margin:0 auto;padding:clamp(22px,6vw,36px);border-radius:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);box-shadow:0 22px 60px rgba(0,0,0,.28)}.login-header,.profile-header,.register-header{text-align:left}.login-header h1,.profile-header h1,.register-header h1{margin-bottom:var(--space-2);color:#ffffff;font-size:clamp(2rem,10vw,2.6rem);letter-spacing:0;line-height:1.08;background:none;-webkit-text-fill-color:currentColor}.login-footer,.login-header p,.profile-footer,.register-footer,.register-header p{color:rgba(255,255,255,.74)}.login-form,.profile-form,.register-form{margin-top:var(--space-6)}.form-group{margin-bottom:var(--space-4)}.form-group label{color:rgba(255,255,255,.88);font-size:var(--font-size-sm);font-weight:800}.form-group input{min-height:52px;border-radius:8px;font-size:16px;color:#ffffff;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.18)}.form-group input::placeholder{color:rgba(255,255,255,.5)}.form-group input:focus{border-color:rgba(16,185,129,.8);background:rgba(255,255,255,.16);box-shadow:0 0 0 4px rgba(16,185,129,.18)}.auth-secondary-link,.login-button,.profile-footer .button,.profile-form .button,.register-button{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:52px;border-radius:8px;font-weight:800}.login-button,.profile-form .button,.register-button{background:linear-gradient(135deg,#10b981,#059669);color:#ffffff;border:0}.login-button:disabled,.register-button:disabled{opacity:.62;transform:none}.login-footer,.profile-footer,.register-footer{display:grid;gap:var(--space-3);margin-top:var(--space-5);text-align:center}.auth-secondary-link,.login-link,.register-link{color:#ffffff;font-weight:800}.auth-secondary-link{background:rgba(255,255,255,.1);text-decoration:none}.error-message,.success-message{border-radius:8px}.user-info-display{border-radius:8px;background:rgba(255,255,255,.1)}.form-actions{display:grid;gap:var(--space-3)}.logout-button{background:rgba(239,68,68,.18)!important;color:#fecaca!important;border:1px solid rgba(248,113,113,.28)!important}@media (max-width:560px){body{background:linear-gradient(180deg,#f8fafc,#ecfdf5)}main{width:auto;margin:10px;padding:var(--space-3);border-radius:8px}.login-page,.profile-page,.register-page{min-height:calc(100svh - 58px);padding:12px}.login-container,.profile-container,.register-container{padding:var(--space-5)}.practice-hero,.select-hero{padding:var(--space-4);gap:var(--space-4)}.practice-hero{display:grid}.practice-hero h1{font-size:2.25rem}.practice-subtitle{font-size:var(--font-size-base);line-height:1.45}.practice-meter{min-width:0;padding:var(--space-3) var(--space-4);grid-template-columns:auto 1fr;column-gap:var(--space-3);align-items:center}.practice-meter strong{font-size:var(--font-size-2xl)}.practice-meter span{margin-top:0}.practice-meter .meter-track{grid-column:1/-1;margin-top:var(--space-3)}.actions-bar{margin:8px 0 12px}.toggle-progress-btn{min-height:44px;padding:0 var(--space-4)}.practice-shell .card-container{padding:var(--space-3)}.practice-shell .card-row{justify-content:flex-start;min-height:68px;padding:var(--space-2);scroll-snap-type:x proximity}.practice-shell .card-img{scroll-snap-align:center}.practice-shell .option{min-height:104px;gap:var(--space-2)}.practice-shell .option .card-img{width:38px}.feedback-badge{width:34px;height:34px;margin-bottom:0}.level-dashboard{gap:var(--space-2)}.level-dashboard div{padding:var(--space-3)}.level-dashboard strong{font-size:var(--font-size-2xl)}.level-toolbar{padding:var(--space-4)}.level-filter-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.level-filter-group button,.select-hero-action{min-height:48px}.select-level-page .level-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:var(--space-3)}.select-level-page .level-item{min-height:56px;aspect-ratio:auto;font-size:var(--font-size-base)}}@media (max-width:380px){.practice-shell .options{gap:var(--space-2)}.select-level-page .level-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.UserInfo_userInfo__4aZPV{position:relative}.UserInfo_userDropdown__RsHcu{position:relative;display:inline-block;outline:none}.UserInfo_userMenuButton__aMv4M{background-color:rgba(255,255,255,.14);color:white;padding:8px 12px;border:1px solid rgba(255,255,255,.24);border-radius:8px;cursor:pointer;font-size:14px;display:inline-flex;align-items:center;justify-content:center;line-height:1;outline:none;-webkit-user-select:none;user-select:none;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.UserInfo_userMenuButton__aMv4M:hover{background-color:rgba(255,255,255,.22)}.UserInfo_userDropdownMenu__2b6yH{display:none;position:absolute;right:0;top:100%;background-color:white;min-width:136px;box-shadow:0 8px 16px rgba(0,0,0,.2);z-index:1000;border-radius:8px;overflow:hidden;border:1px solid rgba(15,23,42,.08)}.UserInfo_open__XeXG_ .UserInfo_userDropdownMenu__2b6yH{display:block}.UserInfo_dropdownItem__BMjij{color:#333;padding:12px 16px;text-decoration:none;display:block;width:100%;text-align:left;border:none;background:none;cursor:pointer;font-size:14px}.UserInfo_dropdownItem__BMjij:hover{background-color:#f1f1f1}.UserInfo_authLinks__l1gw6{display:flex;gap:15px}.UserInfo_button__On0Q4{padding:8px 12px;background-color:rgba(255,255,255,.14);color:white;border:1px solid rgba(255,255,255,.24);border-radius:8px;cursor:pointer;font-size:14px;display:inline-flex;align-items:center;justify-content:center;line-height:1;text-decoration:none}.UserInfo_button__On0Q4:hover{background-color:rgba(255,255,255,.22)}@media (max-width:480px){.UserInfo_button__On0Q4,.UserInfo_userMenuButton__aMv4M{width:62px;height:30px;min-height:30px;padding:0;border-radius:999px;font-size:12px;line-height:1}.UserInfo_userMenuButton__aMv4M{max-width:62px}.UserInfo_userDropdownMenu__2b6yH{right:-4px;min-width:132px}.UserInfo_dropdownItem__BMjij{min-height:44px;padding:10px 12px}}