@import"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap";.home-page{--primary: #ff5c9d;--accent: #f57f17;--hot-pink: #ff5c9d;--text: #333;--light-bg: #f8faff;--glass: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .3);font-family:Montserrat,sans-serif;color:var(--text);overflow-x:hidden}.home-page .container{width:100%;max-width:1200px;margin:0 auto;padding:0 20px}.home-page nav{position:fixed;top:0;left:0;width:100%;display:flex;justify-content:space-between;align-items:center;padding:18px 30px;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 2px 10px #0000000d;z-index:1000;transition:all .3s ease;box-sizing:border-box}.home-page .logo{display:flex;align-items:center;font-size:24px;font-weight:700}.home-page .logo span:nth-child(1){color:var(--text);margin-right:8px}.home-page .logo span.maths{color:var(--hot-pink)}.home-page .logo-dropdown-wrapper{position:relative;cursor:pointer;-webkit-user-select:none;user-select:none}.home-page .logo-caret{font-size:14px;margin-left:6px;color:var(--hot-pink);transition:transform .2s ease}.home-page .logo-dropdown{position:absolute;top:calc(100% + 10px);left:0;background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000001f;padding:8px;min-width:220px;z-index:2000;border:1px solid rgba(0,0,0,.06);animation:dropdownFadeIn .18s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.home-page .logo-dropdown-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;text-decoration:none;color:#333;font-size:14px;font-weight:500;transition:background .2s ease;white-space:nowrap}.home-page .logo-dropdown-item:hover{background:rgba(255,140,0,.08);color:#e65c00}.home-page .logo-dropdown-icon{font-size:16px}.home-page .nav-links{display:flex;gap:4px}.home-page .nav-links .nav-link{background:none;color:var(--text);font-weight:500;font-size:13px;cursor:pointer;position:relative;padding:8px 12px;border:none;border-radius:20px;transition:all .3s ease;font-family:Montserrat,sans-serif}.home-page .nav-links .nav-link:hover{background-color:#ff5c9d14;color:var(--primary);transform:translateY(-2px)}.home-page .nav-links .nav-link:after{content:"";position:absolute;bottom:2px;left:50%;width:0;height:2px;background:linear-gradient(90deg,var(--primary),var(--accent));transition:all .3s ease;transform:translate(-50%);border-radius:1px}.home-page .nav-links .nav-link:hover:after{width:60%}.home-page .auth-buttons{display:flex;gap:12px;flex-shrink:0}.home-page .btn{padding:10px 22px;border-radius:25px;border:none;font-weight:600;font-size:14px;cursor:pointer;transition:all .3s ease;font-family:Montserrat,sans-serif}.home-page .btn-login{background:linear-gradient(135deg,var(--primary),#ff85b5);color:#fff;box-shadow:0 4px 15px #ff5c9d4d}.home-page .btn-login:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ff5c9d66}.home-page .btn-register{background-color:transparent;border:2px solid var(--primary);color:var(--primary)}.home-page .btn-register:hover{background:var(--primary);color:#fff;transform:translateY(-2px);box-shadow:0 6px 20px #ff5c9d4d}.home-page .hero{min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden;padding-top:80px}.home-page .hero-bg-gradient{position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 20% 50%,rgba(255,92,157,.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(245,127,23,.06) 0%,transparent 50%),radial-gradient(ellipse at 50% 80%,rgba(156,39,176,.05) 0%,transparent 50%),linear-gradient(180deg,#fff 0%,var(--light-bg) 100%);z-index:0}.home-page .hero .container{position:relative;z-index:2}.home-page .hero-content{display:flex;align-items:center;justify-content:space-between;gap:60px}.home-page .hero-text{flex:1;z-index:2}.home-page .hero-badge{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,rgba(255,92,157,.1),rgba(245,127,23,.1));color:var(--primary);padding:8px 18px;border-radius:30px;font-size:13px;font-weight:600;margin-bottom:24px;border:1px solid rgba(255,92,157,.15)}.home-page .hero-text h1{font-size:52px;margin-bottom:24px;line-height:1.15;font-weight:800;background:linear-gradient(135deg,var(--text) 0%,#555 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home-page .hero-text p{font-size:18px;margin-bottom:36px;line-height:1.7;color:#666;max-width:520px}.home-page .btn-cta{padding:16px 36px;font-size:17px;font-weight:700;background:linear-gradient(135deg,var(--hot-pink),#ff85b5);color:#fff;border-radius:50px;border:none;display:inline-flex;align-items:center;gap:10px;cursor:pointer;transition:all .3s ease;box-shadow:0 8px 30px #ff5c9d59;font-family:Montserrat,sans-serif}.home-page .btn-cta:hover{transform:translateY(-3px);box-shadow:0 12px 40px #ff5c9d73}.home-page .btn-cta i{transition:transform .3s ease}.home-page .btn-cta:hover i{transform:translate(4px)}.home-page .hero-image{flex:1;display:flex;justify-content:center;position:relative;z-index:1}.home-page .hero-bubble{width:420px;height:420px;background:linear-gradient(135deg,#e5f0ff,#f0e6ff);border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;box-shadow:0 20px 60px #00000014}.home-page .hero-bubble img{width:78%;height:auto;object-fit:cover;border-radius:40% 60% 70% 30%/40% 50% 60%;z-index:2;position:relative}.home-page .accent-shape{position:absolute;width:180px;height:180px;background:linear-gradient(135deg,#fff3b0,#ffe082);border-radius:40% 60% 70% 30%/40% 50% 60%;z-index:0;opacity:.7}.home-page .accent-shape.top{top:-40px;left:-40px}.home-page .accent-shape.bottom{bottom:-40px;right:-40px}.home-page .floating-element{position:absolute;font-size:22px;color:var(--primary);filter:drop-shadow(0 3px 6px rgba(0,0,0,.08));animation:homeFloat 6s infinite ease-in-out;opacity:.5;z-index:1}.home-page .floating-element:nth-child(1){top:18%;left:5%;animation-delay:0s;font-size:28px}.home-page .floating-element:nth-child(2){top:25%;right:8%;animation-delay:1s;color:var(--accent)}.home-page .floating-element:nth-child(3){bottom:25%;left:8%;animation-delay:2s;color:#9c27b0}.home-page .floating-element:nth-child(4){bottom:15%;right:12%;animation-delay:3s;font-size:20px}.home-page .floating-element:nth-child(5){top:45%;left:2%;animation-delay:4s;color:#4caf50;font-size:18px}.home-page .floating-element:nth-child(6){bottom:40%;right:3%;animation-delay:5s;color:#2196f3;font-size:20px}@keyframes homeFloat{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-18px) rotate(8deg)}}.home-page .stats-section{padding:80px 0;background:linear-gradient(135deg,var(--primary),#ff85b5);position:relative}.home-page .stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px}.home-page .stat-card{text-align:center;padding:30px 20px;border-radius:20px;background:rgba(255,255,255,.15);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);transition:all .3s ease}.home-page .stat-card:hover{background:rgba(255,255,255,.25);transform:translateY(-5px)}.home-page .stat-icon{font-size:32px;color:#fff;margin-bottom:12px}.home-page .stat-number{font-size:36px;font-weight:800;color:#fff;margin-bottom:4px;white-space:nowrap}.home-page .stat-label{font-size:15px;color:#ffffffe6;font-weight:500}.home-page .stats-tagline{text-align:center;margin-top:32px;padding:14px 28px;color:#fff;font-size:16px;font-weight:600;letter-spacing:.3px;display:flex;align-items:center;justify-content:center;gap:10px;background:rgba(255,255,255,.12);border-radius:50px;margin-left:auto;margin-right:auto;border:1px solid rgba(255,255,255,.2);white-space:nowrap}.home-page .stats-tagline i{font-size:18px;color:#fff}.home-page .section{padding:100px 0}.home-page .section-title{text-align:center;margin-bottom:60px}.home-page .section-title h2{font-size:38px;margin-bottom:12px;font-weight:800;position:relative;display:inline-block;color:var(--text)}.home-page .section-title h2:after{content:"";position:absolute;width:60px;height:4px;background:linear-gradient(90deg,var(--primary),var(--accent));bottom:-12px;left:50%;transform:translate(-50%);border-radius:2px}.home-page .section-subtitle{color:#888;font-size:17px;margin-top:20px;font-weight:400}.home-page .features-section{background:var(--light-bg)}.home-page .features-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}.home-page .feature-card{border-radius:24px;padding:2px;background:linear-gradient(135deg,rgba(255,92,157,.2),rgba(245,127,23,.2));transition:all .3s ease}.home-page .feature-card:hover{transform:translateY(-8px);background:linear-gradient(135deg,rgba(255,92,157,.4),rgba(245,127,23,.4));box-shadow:0 20px 40px #00000014}.home-page .feature-card-inner{background:#fff;border-radius:22px;padding:36px 30px;text-align:center;height:100%}.home-page .feature-icon{width:72px;height:72px;border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 20px}.home-page .feature-card h3{margin-bottom:12px;font-size:20px;font-weight:700;color:var(--text)}.home-page .feature-card p{color:#777;line-height:1.6;font-size:15px}.home-page .curriculum-section{background:#fff}.home-page .curriculum-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.home-page .curriculum-card{background:#fff;border-radius:20px;padding:32px 24px;text-align:center;border:1px solid #f0f0f0;transition:all .3s ease;position:relative;overflow:hidden}.home-page .curriculum-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px #00000014;border-color:transparent}.home-page .curriculum-icon{width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:26px;margin:0 auto 18px}.home-page .curriculum-card h3{font-size:17px;font-weight:700;margin-bottom:10px;color:var(--text)}.home-page .curriculum-card p{font-size:14px;color:#888;line-height:1.5}.home-page .how-it-works{background:var(--light-bg)}.home-page .steps-container{display:flex;flex-direction:column;gap:0;max-width:700px;margin:0 auto;position:relative}.home-page .steps-line{position:absolute;left:32px;top:40px;bottom:40px;width:3px;background:linear-gradient(180deg,var(--primary),var(--accent));border-radius:2px;z-index:0}.home-page .step{display:flex;align-items:center;gap:28px;padding:28px 30px;background:#fff;border-radius:20px;box-shadow:0 4px 20px #0000000a;transition:all .3s ease;position:relative;z-index:1;margin-bottom:20px}.home-page .step:last-child{margin-bottom:0}.home-page .step:hover{transform:translate(8px);box-shadow:0 8px 30px #00000014}.home-page .step-number{width:64px;height:64px;min-width:64px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary),#ff85b5);color:#fff;font-size:22px;border-radius:50%;box-shadow:0 6px 20px #ff5c9d4d}.home-page .step-content h3{margin-bottom:6px;font-size:18px;font-weight:700;color:var(--text)}.home-page .step-content p{color:#777;line-height:1.5;font-size:15px}.home-page .for-teachers{background:linear-gradient(135deg,#fff 0%,var(--light-bg) 100%)}.home-page .teachers-content{display:flex;align-items:center;gap:60px}.home-page .teachers-image{flex:1;text-align:center}.home-page .teachers-image img{max-width:100%;border-radius:20px;box-shadow:0 20px 50px #0000001a;transition:all .4s ease}.home-page .teachers-image img:hover{transform:rotate(1deg) scale(1.02);box-shadow:0 25px 60px #0000001f}.home-page .teachers-text{flex:1;text-align:left}.home-page .teachers-text h3{margin-bottom:16px;font-size:26px;font-weight:700;color:var(--text);text-align:left}.home-page .teachers-text>p{color:#666;line-height:1.7;margin-bottom:24px;font-size:16px;text-align:left}.home-page .teachers-text ul{list-style:none;padding:0;margin:0}.home-page .teachers-text li{margin-bottom:14px;display:flex;align-items:flex-start;gap:14px;font-size:15px;line-height:1.5}.home-page .teachers-text li i{color:var(--primary);font-size:17px;margin-top:3px;flex-shrink:0;width:20px;text-align:center}.home-page .about-section{background:#fff}.home-page .mission-quote{text-align:center;max-width:800px;margin:0 auto 70px;padding:50px 40px;background:linear-gradient(135deg,rgba(255,92,157,.04),rgba(245,127,23,.04));border-radius:24px;border:1px solid rgba(255,92,157,.1);position:relative}.home-page .mission-quote i{font-size:36px;color:var(--primary);opacity:.3;margin-bottom:20px;display:block}.home-page .mission-quote blockquote{font-size:28px;font-weight:700;line-height:1.35;color:var(--text);font-style:italic;margin:0;white-space:normal}.home-page .mission-quote blockquote .mission-line2{display:block;margin-top:12px;padding-left:14px}.home-page .mission-label{display:inline-block;margin-top:20px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:var(--primary)}.home-page .about-content{display:flex;align-items:flex-start;gap:60px}.home-page .about-text{flex:1}.home-page .about-text h3{font-size:26px;font-weight:700;margin-bottom:24px;color:var(--text)}.home-page .about-text p{color:#666;line-height:1.8;margin-bottom:18px;font-size:16px}.home-page .about-text p:last-child{margin-bottom:0}.home-page .about-image{flex:0 0 400px;display:flex;align-items:flex-start;justify-content:center}.home-page .about-image img{width:100%;max-width:400px;border-radius:20px;box-shadow:0 20px 50px #0000001a;object-fit:cover;transition:all .4s ease}.home-page .about-image img:hover{transform:rotate(1deg) scale(1.02);box-shadow:0 25px 60px #0000001f}.home-page .contact-section{background:var(--light-bg)}.home-page .contact-content{max-width:680px;margin:0 auto;text-align:center;background:#fff;border-radius:24px;padding:50px 40px;box-shadow:0 8px 40px #0000000f;border:1px solid #f0f0f0}.home-page .contact-icon{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,rgba(255,92,157,.1),rgba(245,127,23,.1));display:flex;align-items:center;justify-content:center;margin:0 auto 24px;font-size:28px;color:var(--primary)}.home-page .contact-intro{font-size:17px;line-height:1.7;color:#555;margin-bottom:28px}.home-page .contact-email{display:inline-flex;align-items:center;gap:10px;padding:14px 32px;background:linear-gradient(135deg,var(--primary),#ff85b5);color:#fff;border-radius:50px;font-size:17px;font-weight:600;text-decoration:none;transition:all .3s ease;box-shadow:0 6px 24px #ff5c9d4d;margin-bottom:28px}.home-page .contact-email:hover{transform:translateY(-3px);box-shadow:0 10px 32px #ff5c9d66}.home-page .contact-note{font-size:14px;line-height:1.6;color:#999;font-style:italic}.home-page footer{background:linear-gradient(135deg,var(--primary),#e14585);color:#fff;padding:60px 0 30px}.home-page .footer-content{display:flex;justify-content:space-between;flex-wrap:wrap;gap:40px;margin-bottom:40px}.home-page .footer-logo{flex:1;min-width:250px}.home-page .footer-logo h2{font-size:24px;margin-bottom:15px}.home-page .footer-logo h2 span{color:var(--accent)}.home-page .footer-logo p{line-height:1.6;margin-bottom:20px;opacity:.9}.home-page .social-links{display:flex;gap:12px}.home-page .social-links a{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.15);border-radius:50%;color:#fff;transition:all .3s ease;text-decoration:none}.home-page .social-links a:hover{background:var(--accent);transform:translateY(-4px)}.home-page .footer-links{flex:1;min-width:180px}.home-page .footer-links h3{font-size:16px;margin-bottom:20px;font-weight:700;position:relative;display:inline-block}.home-page .footer-links h3:after{content:"";position:absolute;width:30px;height:3px;background:var(--accent);bottom:-8px;left:0;border-radius:2px}.home-page .footer-links ul{list-style:none;padding:0;margin:0}.home-page .footer-links li{margin-bottom:10px}.home-page .footer-links a{color:#ffffffd9;text-decoration:none;transition:all .3s ease;font-size:14px}.home-page .footer-links a:hover{color:#fff;padding-left:5px}.home-page .copyright{text-align:center;padding-top:24px;border-top:1px solid rgba(255,255,255,.15);font-size:14px;opacity:.85}.home-page .fade-in{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}.home-page .fade-in.active{opacity:1;transform:translateY(0)}.home-page .slide-in-left{opacity:0;transform:translate(-40px);transition:opacity .6s ease,transform .6s ease}.home-page .slide-in-left.active{opacity:1;transform:translate(0)}.home-page .slide-in-right{opacity:0;transform:translate(40px);transition:opacity .6s ease,transform .6s ease}.home-page .slide-in-right.active{opacity:1;transform:translate(0)}.home-page .scale-in{opacity:0;transform:scale(.9);transition:opacity .6s ease,transform .6s ease}.home-page .scale-in.active{opacity:1;transform:scale(1)}@media (max-width: 992px){.home-page .hero-content{flex-direction:column;text-align:center}.home-page .hero-text p{max-width:100%}.home-page .hero-badge{margin-left:auto;margin-right:auto}.home-page .hero-bubble{width:320px;height:320px}.home-page .stats-grid{grid-template-columns:repeat(2,1fr)}.home-page .teachers-content{flex-direction:column}.home-page .curriculum-grid{grid-template-columns:repeat(2,1fr)}.home-page .about-content{flex-direction:column}.home-page .about-image{flex:none;width:100%;justify-content:center}.home-page .about-image img{max-width:100%}}@media (max-width: 768px){.home-page nav{flex-direction:column;padding:12px 15px;gap:10px}.home-page .nav-links{flex-wrap:wrap;justify-content:center;gap:4px}.home-page .nav-links .nav-link{font-size:13px;padding:6px 10px}.home-page .hero{min-height:auto;padding:120px 0 60px}.home-page .hero-text h1{font-size:36px}.home-page .hero-text p{font-size:16px}.home-page .section{padding:70px 0}.home-page .section-title h2{font-size:30px}.home-page .features-grid{grid-template-columns:1fr}.home-page .footer-content{flex-direction:column}.home-page .mission-quote blockquote{font-size:22px}.home-page .mission-quote{padding:36px 24px}}@media (max-width: 576px){.home-page .hero-bubble{width:240px;height:240px}.home-page .hero-text h1{font-size:30px}.home-page .stats-grid{grid-template-columns:1fr 1fr;gap:16px}.home-page .stat-number{font-size:28px}.home-page .stats-tagline{font-size:13px;padding:12px 20px;white-space:normal}.home-page .mission-quote blockquote{white-space:normal}.home-page .curriculum-grid{grid-template-columns:1fr}.home-page .step{flex-direction:column;text-align:center}.home-page .steps-line{display:none}.home-page .section-title h2{font-size:26px}.home-page .about-text h3{font-size:22px}.home-page .about-image img{max-width:100%}}.jr-page{--jr-primary: #ff8c00;--jr-dark: #e65c00;--jr-light: #ffb347;--jr-bg: #fffaf4;--jr-text: #2d2d2d;--jr-white: #ffffff;font-family:Nunito,Montserrat,sans-serif;color:var(--jr-text);overflow-x:hidden;font-size:18px}.jr-container{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}.jr-nav{position:fixed;top:0;left:0;width:100%;display:flex;justify-content:space-between;align-items:center;padding:16px 30px;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 2px 14px #ff8c001f;z-index:1000;transition:padding .3s ease;box-sizing:border-box}.jr-nav-logo{display:flex;align-items:center;gap:8px;font-size:22px;font-weight:800}.jr-back-link{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:rgba(255,140,0,.1);color:var(--jr-primary);text-decoration:none;font-size:14px;transition:background .2s ease,transform .2s ease;margin-right:4px}.jr-back-link:hover{background:rgba(255,140,0,.2);transform:translate(-2px)}.jr-logo-text{color:var(--jr-text)}.jr-logo-accent{color:var(--jr-primary)}.jr-auth-buttons{display:flex;gap:12px;flex-shrink:0}.jr-btn{padding:11px 26px;border-radius:30px;border:none;font-weight:700;font-size:16px;cursor:pointer;transition:all .3s ease;font-family:inherit}.jr-btn-login{background:linear-gradient(135deg,var(--jr-primary),var(--jr-light));color:#fff;box-shadow:0 4px 16px #ff8c0059}.jr-btn-login:hover{transform:translateY(-2px);box-shadow:0 6px 22px #ff8c0073}.jr-btn-register{background:transparent;border:2.5px solid var(--jr-primary);color:var(--jr-primary)}.jr-btn-register:hover{background:var(--jr-primary);color:#fff;transform:translateY(-2px)}.jr-hero{min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden;padding-top:88px}.jr-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 50%,rgba(255,140,0,.1) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(255,180,71,.08) 0%,transparent 50%),radial-gradient(ellipse at 50% 90%,rgba(230,92,0,.06) 0%,transparent 50%),linear-gradient(180deg,#fff 0%,var(--jr-bg) 100%);z-index:0}.jr-hero .jr-container{position:relative;z-index:2}.jr-hero-content{display:flex;align-items:center;justify-content:space-between;gap:60px}.jr-hero-text{flex:1}.jr-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,140,0,.1);color:var(--jr-dark);border-radius:30px;padding:8px 18px;font-size:15px;font-weight:700;margin-bottom:24px}.jr-hero-text h1{font-size:3.4rem;font-weight:900;line-height:1.15;margin-bottom:22px;color:var(--jr-text)}.jr-highlight{color:var(--jr-primary);position:relative}.jr-hero-text p{font-size:1.25rem;line-height:1.75;color:#555;margin-bottom:36px;max-width:480px}.jr-btn-cta{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,var(--jr-primary),var(--jr-dark));color:#fff;border:none;border-radius:40px;padding:17px 38px;font-size:1.15rem;font-weight:800;cursor:pointer;box-shadow:0 6px 24px #ff8c0066;transition:all .3s ease;letter-spacing:.3px;font-family:inherit}.jr-btn-cta:hover{transform:translateY(-3px);box-shadow:0 10px 32px #ff8c0080}.jr-btn-cta-outline{background:transparent;border:2.5px solid var(--jr-primary);color:var(--jr-primary);box-shadow:none}.jr-btn-cta-outline:hover{background:rgba(255,140,0,.08);box-shadow:none}.jr-hero-image{flex:1;display:flex;justify-content:center}.jr-hero-bubble{position:relative;background:rgba(255,140,0,.06);border-radius:50%;padding:40px;display:flex;align-items:center;justify-content:center;width:340px;height:340px}.jr-hero-bubble img{width:100%;height:100%;object-fit:contain;border-radius:50%;position:relative;z-index:1}.jr-accent-shape{position:absolute;width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--jr-primary),var(--jr-light));opacity:.5}.jr-accent-top{top:-10px;right:20px}.jr-accent-bottom{bottom:-10px;left:20px;width:40px;height:40px}.jr-float{position:absolute;font-size:28px;color:#ff8c002e;pointer-events:none;animation:jrFloat 6s ease-in-out infinite}.jr-float:nth-child(1){top:15%;left:5%;animation-delay:0s;font-size:32px}.jr-float:nth-child(2){top:70%;left:8%;animation-delay:1.2s}.jr-float:nth-child(3){top:20%;right:6%;animation-delay:.6s;font-size:24px}.jr-float:nth-child(4){top:55%;right:10%;animation-delay:2s}.jr-float:nth-child(5){top:82%;right:5%;animation-delay:.3s;font-size:22px}.jr-float:nth-child(6){top:40%;left:15%;animation-delay:1.8s;font-size:20px}@keyframes jrFloat{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-14px) rotate(8deg)}}.jr-stats{background:linear-gradient(135deg,var(--jr-primary),var(--jr-dark));padding:48px 0}.jr-stats-grid{display:flex;justify-content:space-around;flex-wrap:wrap;gap:24px}.jr-stat-card{text-align:center;color:#fff;padding:10px 20px}.jr-stat-icon{font-size:2rem;margin-bottom:8px;opacity:.9}.jr-stat-number{font-size:1.8rem;font-weight:900;line-height:1}.jr-stat-label{font-size:1rem;opacity:.85;margin-top:4px;font-weight:600}.jr-section{padding:80px 0}.jr-section-title{text-align:center;margin-bottom:52px}.jr-section-title h2{font-size:2.4rem;font-weight:900;color:var(--jr-text);margin-bottom:12px}.jr-section-title p{font-size:1.15rem;color:#777;font-weight:600}.jr-topics-section{background:var(--jr-bg)}.jr-topics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px}.jr-topic-card{background:#fff;border-radius:20px;padding:32px 28px;box-shadow:0 4px 20px #ff8c0014;transition:transform .3s ease,box-shadow .3s ease;border:1px solid rgba(255,140,0,.1)}.jr-topic-card:hover{transform:translateY(-6px);box-shadow:0 10px 32px #ff8c0026}.jr-topic-icon{width:64px;height:64px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:1.7rem;margin-bottom:18px}.jr-topic-card h3{font-size:1.25rem;font-weight:800;margin-bottom:10px;color:var(--jr-text)}.jr-topic-card p{font-size:1rem;color:#666;line-height:1.6}.jr-how-section{background:#fff}.jr-steps{position:relative;display:flex;flex-wrap:wrap;gap:36px;justify-content:center}.jr-steps-line{position:absolute;top:38px;left:10%;right:10%;height:3px;background:linear-gradient(90deg,var(--jr-primary),var(--jr-light));border-radius:3px;z-index:0}.jr-step{display:flex;flex-direction:column;align-items:center;text-align:center;flex:1;min-width:160px;max-width:220px;position:relative;z-index:1}.jr-step-num{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--jr-primary),var(--jr-light));color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.6rem;margin-bottom:16px;box-shadow:0 4px 18px #ff8c0059}.jr-step-content h3{font-size:1.15rem;font-weight:800;margin-bottom:8px}.jr-step-content p{font-size:.95rem;color:#666;line-height:1.5}.jr-teachers-section{background:var(--jr-bg)}.jr-teachers-content{display:flex;align-items:center;gap:60px;flex-wrap:wrap}.jr-teachers-img{flex:1;min-width:280px}.jr-teachers-img img{width:100%;border-radius:20px;box-shadow:0 8px 36px #ff8c001f}.jr-teachers-text{flex:1;min-width:280px}.jr-teachers-text h3{font-size:1.8rem;font-weight:900;margin-bottom:16px;color:var(--jr-text)}.jr-teachers-text>p{font-size:1.05rem;color:#666;margin-bottom:24px;line-height:1.7}.jr-teachers-text ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px}.jr-teachers-text ul li{display:flex;align-items:flex-start;gap:14px;font-size:1.05rem;color:#444;line-height:1.55}.jr-teachers-text ul li i{margin-top:3px;color:var(--jr-primary);font-size:1.1rem;flex-shrink:0}.jr-cta-section{padding:80px 0;background:#fff}.jr-cta-box{background:linear-gradient(135deg,var(--jr-primary) 0%,var(--jr-dark) 100%);border-radius:28px;padding:60px 48px;text-align:center;color:#fff;box-shadow:0 12px 48px #ff8c004d}.jr-cta-box h2{font-size:2.2rem;font-weight:900;margin-bottom:14px}.jr-cta-box p{font-size:1.2rem;opacity:.9;margin-bottom:36px;font-weight:600}.jr-cta-buttons{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}.jr-cta-buttons .jr-btn-cta{background:#fff;color:var(--jr-primary);box-shadow:0 4px 18px #00000026}.jr-cta-buttons .jr-btn-cta:hover{background:#fff;box-shadow:0 8px 28px #0003}.jr-cta-buttons .jr-btn-cta-outline{background:transparent;border:2.5px solid rgba(255,255,255,.7);color:#fff;box-shadow:none}.jr-cta-buttons .jr-btn-cta-outline:hover{background:rgba(255,255,255,.15);box-shadow:none}.jr-footer{background:#1a1a1a;color:#ccc;padding:56px 0 24px}.jr-footer-content{display:flex;flex-wrap:wrap;gap:48px;margin-bottom:36px}.jr-footer-logo h2{font-size:1.5rem;font-weight:900;color:#fff;margin-bottom:8px}.jr-footer-logo h2 span{color:var(--jr-primary)}.jr-footer-logo p{font-size:.95rem;color:#aaa;line-height:1.6;max-width:280px}.jr-footer-links h3{font-size:1rem;font-weight:800;color:#fff;margin-bottom:14px;text-transform:uppercase;letter-spacing:.5px}.jr-footer-links ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.jr-footer-links ul li a{color:#aaa;text-decoration:none;font-size:.95rem;transition:color .2s ease}.jr-footer-links ul li a:hover{color:var(--jr-primary)}.jr-copyright{border-top:1px solid rgba(255,255,255,.08);padding-top:20px;text-align:center;font-size:.9rem;color:#666}.jr-fade-in,.jr-slide-left,.jr-slide-right,.jr-scale-in{opacity:0;transition:opacity .7s ease,transform .7s ease}.jr-fade-in{transform:translateY(24px)}.jr-slide-left{transform:translate(-40px)}.jr-slide-right{transform:translate(40px)}.jr-scale-in{transform:scale(.92)}.jr-fade-in.active,.jr-slide-left.active,.jr-slide-right.active,.jr-scale-in.active{opacity:1;transform:none}@media (max-width: 900px){.jr-hero-content{flex-direction:column;gap:40px;text-align:center}.jr-hero-text p{margin:0 auto 32px}.jr-hero-image,.jr-steps-line{display:none}.jr-steps{flex-direction:column;align-items:center}.jr-teachers-content{flex-direction:column}}@media (max-width: 600px){.jr-hero-text h1{font-size:2.4rem}.jr-section-title h2{font-size:1.8rem}.jr-cta-box{padding:40px 24px}.jr-cta-box h2{font-size:1.7rem}.jr-nav-logo{font-size:18px}}:root{--jr-nav-height: 72px}.jr-student-nav{position:fixed;top:0;left:0;right:0;height:var(--jr-nav-height);background:#ffffff;border-bottom:3px solid #ff8c00;box-shadow:0 3px 16px #ff8c0026;display:flex;align-items:center;justify-content:space-between;padding:0 2rem;z-index:500;font-family:Nunito,Montserrat,sans-serif}.jr-student-nav-logo{font-size:1.35rem;font-weight:900;color:#2d2d2d;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;line-height:1}.jr-student-nav-logo span{color:#ff8c00}.jr-student-nav-right{position:relative;display:flex;align-items:center}.jr-student-nav-name{font-size:32px;font-weight:900;color:#fff;background:linear-gradient(135deg,#ff8c00,#ffb347);padding:0 24px;height:52px;width:40vw;display:flex;align-items:center;justify-content:center;border-radius:12px;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;overflow:hidden;box-shadow:0 2px 10px #ff8c004d;transition:background .2s,transform .15s}.jr-student-nav-name:hover{background:linear-gradient(135deg,#e65c00,#ff8c00);transform:translateY(-1px)}.jr-student-nav-menu{position:absolute;top:calc(100% + 10px);right:0;background:#fff;border-radius:12px;box-shadow:0 6px 24px #00000026;padding:14px 16px;min-width:220px;z-index:600;border:1px solid #f0ebe0;animation:jrNavMenuFadeIn .15s ease}@keyframes jrNavMenuFadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.jr-student-nav-menu-label{font-size:.85rem;color:#6b7280;margin:0 0 10px;font-weight:600;word-break:break-all}.jr-student-nav-menu-btn{width:100%;background:#ff8c00;color:#fff;border:none;border-radius:10px;padding:10px 14px;font-size:.95rem;font-weight:700;cursor:pointer;font-family:inherit;transition:background .2s}.jr-student-nav-menu-btn:hover{background:#e65c00}.jr-student-page{padding-top:var(--jr-nav-height);min-height:100vh;background:#fff8ee;font-family:Nunito,Montserrat,sans-serif}@media (max-width: 600px){.jr-student-nav{padding:0 1rem}.jr-student-nav-logo{font-size:1.1rem}.jr-student-nav-name{font-size:22px;height:44px;padding:0 14px}}.jr-dash-container{--jr-primary: #ff8c00;--jr-dark: #e65c00;--jr-light: #ffb347;--jr-amber: #f59e0b;--jr-bg: #fffaf4;--jr-card: #ffffff;--jr-text: #2d2d2d;--jr-muted: #6b7280;--jr-border: #f0ebe0;background-color:var(--jr-bg);min-height:100vh;display:flex;flex-direction:column;font-family:Nunito,Montserrat,sans-serif;font-size:17px;color:var(--jr-text)}.jr-dash-nav{background:var(--jr-card);padding:1rem 2rem;box-shadow:0 2px 14px #ff8c001a;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100;border-bottom:2px solid rgba(255,140,0,.12)}.jr-dash-logo-section{display:flex;flex-direction:column;gap:.1rem}.jr-dash-site-title{font-size:1.6rem;margin:0;font-weight:900;color:var(--jr-text)}.jr-dash-site-title span{color:var(--jr-primary)}.jr-dash-subtitle{font-size:1rem;color:var(--jr-muted);margin:0;font-weight:700}.jr-dash-nav-actions{display:flex;align-items:center;gap:1rem;position:relative}.jr-dash-avatar{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--jr-primary),var(--jr-light));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:1.2rem;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 14px #ff8c0059;-webkit-user-select:none;user-select:none}.jr-dash-avatar:hover{transform:scale(1.08);box-shadow:0 6px 20px #ff8c0073}.jr-dash-user-menu{position:absolute;top:calc(100% + .6rem);right:0;background:var(--jr-card);border-radius:16px;box-shadow:0 8px 32px #0000001f;width:240px;padding:16px;z-index:999;border:1px solid rgba(255,140,0,.1)}.jr-dash-user-email{font-size:.9rem;color:var(--jr-muted);margin:0 0 10px;word-break:break-all;font-weight:600}.jr-dash-logout-btn{display:block;width:100%;padding:.7rem 0;border:none;background:transparent;text-align:left;color:var(--jr-primary);cursor:pointer;font-weight:700;font-size:1rem;font-family:inherit;transition:color .2s ease}.jr-dash-logout-btn:hover{color:var(--jr-dark)}.jr-dash-content{flex:1;padding:2rem;max-width:840px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:1.4rem;box-sizing:border-box}.jr-start-box{background:linear-gradient(135deg,#fff8ee 0%,#fff3e0 100%);border:2px solid rgba(255,140,0,.15);border-radius:24px;padding:2.2rem 1.5rem 1.8rem;text-align:center;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px;transition:all .25s ease;box-shadow:0 4px 22px #ff8c001a}.jr-start-box:hover{transform:translateY(-5px) scale(1.01);box-shadow:0 14px 40px #ff8c002e;border-color:#ff8c0047}.jr-start-box:active{transform:translateY(-1px) scale(.99)}.jr-start-icon{width:90px;height:90px;border-radius:24px;background:linear-gradient(135deg,#ffe0b2,#ffcc80);display:flex;align-items:center;justify-content:center;margin-bottom:6px}.jr-start-svg{width:60px;height:60px}.jr-start-box h3{margin:0;font-size:1.6rem;font-weight:900;color:var(--jr-text)}.jr-start-sub{margin:0;font-size:1rem;font-weight:600;color:var(--jr-muted)}.jr-quick-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}.jr-quick-card{background:var(--jr-card);border:2px solid var(--jr-border);border-radius:20px;padding:1.4rem 1rem;cursor:pointer;transition:all .25s ease;display:flex;flex-direction:column;align-items:center;gap:10px;min-height:110px;justify-content:center;box-shadow:0 3px 14px #0000000a;text-align:center}.jr-quick-card:hover{transform:translateY(-4px);box-shadow:0 10px 30px #ff8c0024;border-color:#ff8c004d}.jr-quick-emoji{font-size:2rem;line-height:1}.jr-quick-card h3{margin:0;font-size:1.05rem;font-weight:800;color:var(--jr-text)}.jr-badge-count{position:absolute;top:10px;right:10px;min-width:26px;height:26px;line-height:26px;text-align:center;font-size:13px;font-weight:900;color:#fff;background:linear-gradient(135deg,var(--jr-primary),var(--jr-dark));border-radius:999px;padding:0 7px;box-shadow:0 2px 8px #ff8c0066}.jr-badge-amber{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 2px 8px #f59e0b66}.jr-no-class{display:flex;flex-direction:column;gap:1rem}.jr-join-box{background:linear-gradient(135deg,#fff8ee,#fff3e0);border:2px solid rgba(255,140,0,.14);border-radius:20px;padding:2rem;text-align:center;cursor:pointer;transition:all .25s ease;box-shadow:0 3px 14px #0000000a;display:flex;flex-direction:column;align-items:center;gap:8px}.jr-join-box:hover{transform:translateY(-3px);box-shadow:0 8px 24px #ff8c0024;border-color:#ff8c0047}.jr-join-box-sm{padding:1.2rem;flex-direction:row;justify-content:center}.jr-join-box-sm h3{font-size:1rem}.jr-join-emoji{font-size:2.4rem}.jr-join-box h3{margin:0;font-size:1.3rem;font-weight:900;color:var(--jr-text)}.jr-join-box p{margin:0;font-size:.95rem;color:var(--jr-muted);font-weight:600}.jr-join-form{background:var(--jr-card);border-radius:20px;padding:1.6rem;box-shadow:0 4px 20px #0000000f;border:1px solid rgba(0,0,0,.04)}.jr-join-form h3{margin:0 0 1.2rem;font-size:1.2rem;font-weight:900;color:var(--jr-text)}.jr-join-form input{width:100%;padding:1rem 1.2rem;border:2px solid #e5e7eb;border-radius:14px;font-family:inherit;font-size:1.1rem;font-weight:700;background:#fafbfc;letter-spacing:2px;transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box}.jr-join-form input:focus{border-color:var(--jr-primary);outline:none;box-shadow:0 0 0 3px #ff8c001f;background:#fff}.jr-error{color:#ef4444;font-size:.95rem;margin:.4rem 0 0;font-weight:700}.jr-form-btns{display:flex;gap:.75rem;margin-top:1.1rem}.jr-form-btns button{padding:.85rem 1.6rem;border:none;border-radius:12px;font-size:1rem;font-weight:800;cursor:pointer;font-family:inherit;transition:all .2s ease}.jr-form-btns button[type=submit]{background:linear-gradient(135deg,var(--jr-primary),var(--jr-dark));color:#fff;box-shadow:0 4px 14px #ff8c004d}.jr-form-btns button[type=submit]:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ff8c0066}.jr-form-btns button[type=button]{background:#f3f4f6;color:var(--jr-muted)}.jr-form-btns button[type=button]:hover{background:#e5e7eb}.jr-classrooms-grid{display:grid;grid-template-columns:1fr;gap:.9rem;margin-bottom:1rem}.jr-classroom-card{background:var(--jr-card);border-radius:18px;padding:1.3rem 1.6rem;display:flex;align-items:center;gap:1rem;box-shadow:0 3px 14px #0000000d;border:2px solid rgba(255,140,0,.1);transition:all .2s ease}.jr-classroom-card:hover{box-shadow:0 6px 22px #ff8c001f;border-color:#ff8c0038}.jr-classroom-icon{font-size:1.8rem;flex-shrink:0}.jr-classroom-card h3{margin:0;font-size:1.1rem;font-weight:800;color:var(--jr-text)}.jr-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:3000;padding:16px}.jr-modal-box{background:#fff;border-radius:24px;width:min(440px,92vw);padding:2.4rem 2rem;text-align:center;box-shadow:0 24px 70px #00000040;display:flex;flex-direction:column;align-items:center;gap:10px;border-top:5px solid var(--jr-primary)}.jr-modal-amber{border-top-color:var(--jr-amber)}.jr-modal-emoji{font-size:3.5rem;line-height:1;margin-bottom:4px}.jr-modal-box h3{margin:0;font-size:1.5rem;font-weight:900;color:var(--jr-text)}.jr-modal-box p{margin:0;font-size:1.05rem;color:var(--jr-muted);font-weight:600;line-height:1.5}.jr-modal-btn{margin-top:10px;width:100%;padding:1rem;border:none;border-radius:14px;font-size:1.1rem;font-weight:900;font-family:inherit;background:linear-gradient(135deg,var(--jr-primary),var(--jr-dark));color:#fff;cursor:pointer;box-shadow:0 4px 16px #ff8c0059;transition:transform .15s ease,box-shadow .15s ease}.jr-modal-btn:hover{transform:translateY(-2px);box-shadow:0 7px 22px #ff8c0073}.jr-modal-btn-amber{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 4px 16px #f59e0b59}.jr-modal-btn-amber:hover{box-shadow:0 7px 22px #f59e0b73}.jr-modal-btn-later{width:100%;padding:.75rem;border:1.5px solid #e5e7eb;border-radius:12px;font-size:1rem;font-weight:700;font-family:inherit;background:#fff;color:var(--jr-muted);cursor:pointer;transition:background .2s ease}.jr-modal-btn-later:hover{background:#f9fafb}@media (max-width: 768px){.jr-dash-nav{flex-direction:column;align-items:flex-start;gap:.75rem;padding:1rem}.jr-dash-content{padding:1rem}}@media (max-width: 540px){.jr-quick-row{grid-template-columns:1fr}.jr-start-box h3{font-size:1.35rem}}.jrt-container{--jr-primary: #ff8c00;--jr-dark: #e65c00;--jr-light: #ffb347;--jr-bg: #fffaf4;--jr-card: #ffffff;--jr-text: #2d2d2d;--jr-muted: #6b7280;--jr-border: #f0ebe0;background:var(--jr-bg);min-height:100vh;display:flex;flex-direction:column;font-family:Nunito,Montserrat,sans-serif;color:var(--jr-text)}.jrt-nav{background:var(--jr-card);padding:1rem 2rem;box-shadow:0 2px 14px #ff8c001a;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100;border-bottom:2px solid rgba(255,140,0,.12);flex-wrap:wrap;gap:.75rem}.jrt-logo-section{display:flex;flex-direction:column;gap:.1rem}.jrt-site-title{font-size:1.5rem;margin:0;font-weight:900;color:var(--jr-text)}.jrt-site-title span{color:var(--jr-primary)}.jrt-branch-switcher{position:relative}.jrt-branch-btn{display:inline-flex;align-items:center;gap:7px;padding:5px 12px 5px 9px;border-radius:20px;border:1.5px solid rgba(255,140,0,.25);background:rgba(255,140,0,.06);font-size:1rem;font-weight:800;font-family:inherit;color:var(--jr-dark);cursor:pointer;transition:all .2s ease}.jrt-branch-btn:hover{border-color:var(--jr-primary);background:rgba(255,140,0,.1)}.jrt-branch-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.jrt-dot-junior{background:var(--jr-primary)}.jrt-dot-main{background:#ff69b4}.jrt-branch-caret{font-size:11px;color:var(--jr-muted);margin-left:1px}.jrt-branch-menu{position:absolute;top:calc(100% + 8px);left:0;background:#fff;border-radius:14px;box-shadow:0 8px 32px #00000021;min-width:230px;z-index:500;overflow:hidden;border:1px solid rgba(255,140,0,.1);animation:jrtBranchIn .15s ease}@keyframes jrtBranchIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.jrt-branch-menu-label{padding:8px 14px 6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#aaa}.jrt-branch-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:none;background:transparent;text-align:left;cursor:pointer;font-family:inherit;transition:background .15s ease}.jrt-branch-item:hover{background:#f8f8f8}.jrt-branch-item-active{background:rgba(255,140,0,.05)}.jrt-branch-item>span:nth-child(2){display:flex;flex-direction:column;gap:1px;flex:1}.jrt-branch-item strong{font-size:.88rem;font-weight:800;color:var(--jr-text)}.jrt-branch-item small{font-size:.75rem;color:var(--jr-muted);font-weight:600}.jrt-branch-check{font-size:.85rem;color:var(--jr-primary);font-weight:900;margin-left:auto}.jrt-subtitle{font-size:.88rem;color:var(--jr-muted);margin:0;font-weight:700}.jrt-nav-actions{display:flex;align-items:center;gap:.4rem;position:relative;flex-wrap:wrap}.jrt-nav-btn{padding:.55rem 1rem;border-radius:10px;border:none;background:transparent;color:var(--jr-text);font-size:.9rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s ease}.jrt-nav-btn:hover{background:rgba(255,140,0,.08);color:var(--jr-primary)}.jrt-nav-btn-active{background:rgba(255,140,0,.1);color:var(--jr-primary)}.jrt-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--jr-primary),var(--jr-light));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:1rem;cursor:pointer;transition:all .2s ease;box-shadow:0 3px 12px #ff8c004d;-webkit-user-select:none;user-select:none;margin-left:.4rem}.jrt-avatar:hover{transform:scale(1.06);box-shadow:0 5px 18px #ff8c0066}.jrt-user-menu{position:absolute;top:calc(100% + .5rem);right:0;background:var(--jr-card);border-radius:14px;box-shadow:0 8px 32px #0000001f;width:240px;padding:16px;z-index:999;border:1px solid rgba(255,140,0,.1)}.jrt-user-email{font-size:.85rem;color:var(--jr-muted);margin:0 0 10px;word-break:break-all;font-weight:600}.jrt-logout-btn{display:block;width:100%;padding:.65rem 0;border:none;background:transparent;text-align:left;color:var(--jr-primary);cursor:pointer;font-weight:700;font-size:.95rem;font-family:inherit;transition:color .2s ease}.jrt-logout-btn:hover{color:var(--jr-dark)}.jrt-breadcrumb{padding:.75rem 2rem;background:var(--jr-card);border-bottom:1px solid var(--jr-border);display:flex;align-items:center;gap:.5rem;font-size:.88rem;color:var(--jr-muted);font-weight:700}.jrt-breadcrumb i{color:var(--jr-primary)}.jrt-content{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box}.jrt-create-section{margin-bottom:1.75rem}.jrt-create-btn{display:inline-flex;align-items:center;gap:8px;padding:.8rem 1.6rem;background:linear-gradient(135deg,var(--jr-primary),var(--jr-dark));color:#fff;border:none;border-radius:14px;font-size:.95rem;font-weight:700;font-family:inherit;cursor:pointer;box-shadow:0 4px 16px #ff8c004d;transition:all .25s ease}.jrt-create-btn:hover{transform:translateY(-2px);box-shadow:0 7px 22px #ff8c0066}.jrt-create-form{background:var(--jr-card);border-radius:18px;padding:1.6rem;margin-top:1rem;box-shadow:0 4px 20px #0000000f;border:1px solid rgba(255,140,0,.08);max-width:480px}.jrt-create-form h3{margin:0 0 1.1rem;font-size:1.1rem;font-weight:800;color:var(--jr-text)}.jrt-create-form input{width:100%;padding:.9rem 1rem;border:2px solid #e5e7eb;border-radius:12px;font-family:inherit;font-size:.95rem;font-weight:600;background:#fafbfc;transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box}.jrt-create-form input:focus{border-color:var(--jr-primary);outline:none;box-shadow:0 0 0 3px #ff8c001f;background:#fff}.jrt-form-btns{display:flex;gap:.75rem;margin-top:1rem}.jrt-form-btns button{padding:.75rem 1.4rem;border:none;border-radius:10px;font-size:.9rem;font-weight:700;font-family:inherit;cursor:pointer;transition:all .2s ease}.jrt-form-btns button[type=submit]{background:linear-gradient(135deg,var(--jr-primary),var(--jr-dark));color:#fff;box-shadow:0 3px 12px #ff8c0047}.jrt-form-btns button[type=submit]:hover{transform:translateY(-1px);box-shadow:0 5px 18px #ff8c0061}.jrt-form-btns button[type=button]{background:#f3f4f6;color:var(--jr-muted)}.jrt-form-btns button[type=button]:hover{background:#e5e7eb}.jrt-classrooms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.jrt-empty-state{grid-column:1 / -1;text-align:center;padding:3rem 2rem;background:var(--jr-card);border-radius:20px;border:2px dashed rgba(255,140,0,.2)}.jrt-empty-icon{font-size:3rem;margin-bottom:.75rem}.jrt-empty-state h3{margin:0 0 .4rem;font-size:1.2rem;font-weight:800}.jrt-empty-state p{margin:0;color:var(--jr-muted);font-size:.95rem;font-weight:600}.jrt-classroom-card{background:var(--jr-card);border-radius:20px;padding:1.6rem;box-shadow:0 4px 20px #0000000d;border:1.5px solid rgba(255,140,0,.1);transition:all .25s ease;display:flex;flex-direction:column;gap:1rem}.jrt-classroom-card:hover{transform:translateY(-4px);box-shadow:0 12px 36px #ff8c001f;border-color:#ff8c0038}.jrt-card-header{display:flex;align-items:flex-start;gap:.9rem}.jrt-card-icon{font-size:2rem;flex-shrink:0;line-height:1;margin-top:2px}.jrt-card-info{flex:1;min-width:0}.jrt-card-info h3{margin:0 0 6px;font-size:1.15rem;font-weight:900;color:var(--jr-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.jrt-code-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(255,140,0,.1);color:var(--jr-dark);border-radius:8px;padding:3px 10px;font-size:.82rem;font-weight:800;letter-spacing:1px}.jrt-card-meta{font-size:.88rem;color:var(--jr-muted);font-weight:600;display:flex;align-items:center;gap:6px}.jrt-card-meta i{color:var(--jr-primary)}.jrt-card-actions{display:flex;flex-direction:column;gap:.5rem}.jrt-action-btn{display:flex;align-items:center;gap:8px;width:100%;padding:.72rem 1rem;border:none;border-radius:11px;font-size:.88rem;font-weight:700;font-family:inherit;cursor:pointer;transition:all .2s ease}.jrt-btn-primary{background:linear-gradient(135deg,var(--jr-primary),var(--jr-dark));color:#fff;box-shadow:0 3px 12px #ff8c0038}.jrt-btn-primary:hover{transform:translateY(-2px);box-shadow:0 5px 18px #ff8c0052}.jrt-card-secondary-actions{display:flex;gap:.5rem;margin-top:.1rem}.jrt-card-secondary-actions .jrt-action-btn{flex:1;justify-content:center}.jrt-btn-secondary{background:#fff8ee;color:var(--jr-dark);border:1.5px solid rgba(255,140,0,.2)}.jrt-btn-secondary:hover{background:#fff0d6;transform:translateY(-1px)}.jrt-btn-danger{background:#fff0f2;color:#e11d48;border:1.5px solid rgba(225,29,72,.14)}.jrt-btn-danger:hover{background:#ffe4ea;transform:translateY(-1px)}.jrt-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.42);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:16px}.jrt-modal{background:var(--jr-card);border-radius:22px;padding:2rem;width:min(440px,92vw);box-shadow:0 24px 70px #0003;display:flex;flex-direction:column;gap:.75rem;border-top:4px solid var(--jr-primary)}.jrt-modal h3{margin:0;font-size:1.2rem;font-weight:900;color:var(--jr-text)}.jrt-modal input{width:100%;padding:.9rem 1rem;border:2px solid #e5e7eb;border-radius:12px;font-family:inherit;font-size:.95rem;font-weight:600;background:#fafbfc;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.jrt-modal input:focus{border-color:var(--jr-primary);outline:none;box-shadow:0 0 0 3px #ff8c001f;background:#fff}.jrt-modal-icon{font-size:2.2rem;text-align:center}.jrt-modal-warning{font-size:.9rem;color:var(--jr-muted);line-height:1.6;font-weight:600;margin:0}.jrt-modal-error{color:#e11d48;font-size:.88rem;font-weight:700;margin:0}.jrt-modal-btns{display:flex;gap:.75rem;margin-top:.5rem}.jrt-modal-save,.jrt-modal-delete,.jrt-modal-cancel{flex:1;padding:.8rem;border:none;border-radius:12px;font-size:.9rem;font-weight:700;font-family:inherit;cursor:pointer;transition:all .2s ease}.jrt-modal-save{background:linear-gradient(135deg,var(--jr-primary),var(--jr-dark));color:#fff;box-shadow:0 3px 12px #ff8c0047}.jrt-modal-save:hover{transform:translateY(-1px);box-shadow:0 5px 18px #ff8c0061}.jrt-modal-delete{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 3px 12px #ef444440}.jrt-modal-delete:hover{transform:translateY(-1px);box-shadow:0 5px 18px #ef444459}.jrt-modal-cancel{background:#f3f4f6;color:var(--jr-muted)}.jrt-modal-cancel:hover{background:#e5e7eb}.jrt-deleting{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:.5rem 0;text-align:center}.jrt-spinner{width:40px;height:40px;border:4px solid #f0ebe0;border-top:4px solid var(--jr-primary);border-radius:50%;animation:jrtSpin .8s linear infinite;margin-bottom:.4rem}@keyframes jrtSpin{to{transform:rotate(360deg)}}.jrt-deleting-title{margin:0;font-size:1rem;font-weight:800;color:var(--jr-text)}.jrt-deleting-sub{margin:0;font-size:.9rem;color:var(--jr-muted);font-weight:600}.jrt-deleting-note{margin:0;font-size:.8rem;color:#aaa;font-weight:600}@media (max-width: 768px){.jrt-nav{padding:1rem}.jrt-nav-actions{width:100%;justify-content:flex-start}.jrt-content{padding:1rem}.jrt-breadcrumb{padding:.75rem 1rem}.jrt-classrooms-grid{grid-template-columns:1fr;gap:1rem}}.ms-container{max-width:1060px;margin:0 auto;padding:32px 32px 72px;font-family:Montserrat,sans-serif;min-height:100vh;box-sizing:border-box}.ms-back-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border:1.5px solid #e5e7eb;border-radius:12px;background:#fff;color:#555;font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:600;cursor:pointer;box-shadow:0 2px 6px #0000000a;transition:all .2s ease;margin-bottom:28px}.ms-back-btn:hover{background:#f9fafb;border-color:#d1d5db;transform:translateY(-1px);box-shadow:0 4px 10px #00000012}.ms-header{text-align:center;margin-bottom:32px}.ms-title{font-family:Montserrat,sans-serif;font-size:2.1rem;font-weight:800;color:#1f2937;margin:0 0 8px;letter-spacing:-.02em}.ms-subtitle{font-family:Montserrat,sans-serif;font-size:1rem;color:#9ca3af;font-weight:500;margin:0}.ms-subtitle strong{color:#6b7280}.ms-actions{display:flex;gap:10px;margin-bottom:28px;flex-wrap:wrap;align-items:center}.ms-btn-pink{padding:10px 20px;border-radius:12px;border:none;background:#ff69b4;color:#fff;font-family:Montserrat,sans-serif;font-size:.88rem;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 3px 10px #ff69b440}.ms-btn-pink:hover{background:#e85aa0;transform:translateY(-1px);box-shadow:0 5px 14px #ff69b459}.ms-btn-teal{padding:10px 20px;border-radius:12px;border:1.5px solid #e5e7eb;background:#fff;color:#374151;font-family:Montserrat,sans-serif;font-size:.88rem;font-weight:600;cursor:pointer;transition:all .2s ease}.ms-btn-teal:hover{background:#f9fafb;border-color:#d1d5db;transform:translateY(-1px)}.ms-btn-gray{padding:10px 20px;border-radius:12px;border:1.5px solid #e5e7eb;background:#fff;color:#6b7280;font-family:Montserrat,sans-serif;font-size:.88rem;font-weight:600;cursor:pointer;transition:all .2s ease}.ms-btn-gray:hover{background:#f9fafb}.ms-topbar{display:flex;align-items:center;gap:16px;margin-bottom:28px;flex-wrap:wrap}.ms-code{font-size:.9rem;font-weight:600;color:#9ca3af}.ms-btn-print{padding:10px 20px;border-radius:12px;border:1.5px solid #e5e7eb;background:#fff;color:#374151;font-family:Montserrat,sans-serif;font-size:.88rem;font-weight:600;cursor:pointer;transition:all .2s ease}.ms-btn-print:hover{background:#f9fafb;border-color:#d1d5db}.ms-btn-outline{padding:9px 16px;border:1.5px solid #e5e7eb;border-radius:12px;background:#fff;color:#555;font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.ms-btn-outline:hover{background:#f9fafb}.ms-subtitle-section{font-family:Montserrat,sans-serif;font-size:1rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.06em;margin:0 0 14px}.ms-table{width:100%;border-collapse:collapse;font-family:Montserrat,sans-serif;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 2px 12px #0000000f;border:1.5px solid #f3f4f6}.ms-table thead{background:#ff69b4}.ms-table thead th{padding:14px 16px;font-family:Montserrat,sans-serif;font-weight:700;font-size:.85rem;text-align:left;color:#fff;border-right:1px solid rgba(255,255,255,.2);white-space:nowrap}.ms-table thead th:last-child{border-right:none}.ms-table tbody td{padding:14px 16px;border-bottom:1px solid #f3f4f6;font-size:.9rem;color:#374151;vertical-align:middle}.ms-table tbody tr:last-child td{border-bottom:none}.ms-table tbody tr:hover td{background:#fdf8ff}.row-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ms-btn-action{border:none;border-radius:10px;padding:7px 14px;font-family:Montserrat,sans-serif;font-weight:700;cursor:pointer;transition:all .2s ease;font-size:.8rem;white-space:nowrap}.ms-btn-action.login{background:#f3f4f6;color:#374151;border:1.5px solid #e5e7eb}.ms-btn-action.login:hover{background:#e5e7eb;transform:translateY(-1px)}.ms-btn-action.delete{background:#fef2f2;color:#ef4444;border:1.5px solid #fecaca}.ms-btn-action.delete:hover{background:#ef4444;color:#fff;transform:translateY(-1px)}.ms-btn-action.remove{background:#fff7ed;color:#f97316;border:1.5px solid #fed7aa}.ms-btn-action.remove:hover{background:#f97316;color:#fff;transform:translateY(-1px)}.ms-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px}.ms-modal{background:#fff;border-radius:20px;width:100%;max-width:440px;box-shadow:0 24px 70px #00000038;border:1px solid rgba(0,0,0,.06);overflow:hidden;animation:msZoomIn .22s ease}@keyframes msZoomIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.ms-modal-top{padding:18px 22px 14px;border-bottom:1px solid #f3f4f6}.ms-modal-top h3{font-family:Montserrat,sans-serif;font-size:1rem;font-weight:700;color:#1f2937;margin:0}.ms-modal-body{padding:18px 22px}.ms-modal-body p{font-family:Montserrat,sans-serif;font-size:.92rem;color:#4b5563;margin:0 0 10px;line-height:1.5}.ms-help.small{font-family:Montserrat,sans-serif;font-size:.82rem;color:#9ca3af;padding:0 22px 4px}.ms-modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px 18px;border-top:1px solid #f3f4f6}.ms-modal-input{width:100%;padding:11px 14px;border:1.5px solid #e5e7eb;border-radius:12px;font-family:Montserrat,sans-serif;font-size:.9rem;color:#1f2937;outline:none;box-sizing:border-box;margin-bottom:12px;transition:border-color .2s ease,box-shadow .2s ease}.ms-modal-input:focus{border-color:#ff69b4;box-shadow:0 0 0 3px #ff69b41f}.ms-accounts{margin-top:4px}.ms-year-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:12px}.ms-year-btn{padding:9px 4px;border-radius:10px;border:1.5px solid #e5e7eb;text-align:center;background:#fff;color:#374151;font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.ms-year-btn:hover{background:#f9fafb;border-color:#d1d5db}.ms-year-btn.active{background:#ff69b4;color:#fff;border-color:#ff69b4;box-shadow:0 2px 8px #ff69b44d}.ms-year-btn.other.active{background:#8b5cf6;border-color:#8b5cf6}.ms-other-input{width:100%;padding:10px 14px;border:1.5px solid #e5e7eb;border-radius:12px;font-family:Montserrat,sans-serif;font-size:.88rem;color:#1f2937;outline:none;box-sizing:border-box;margin-bottom:12px;transition:border-color .2s,box-shadow .2s}.ms-other-input:focus{border-color:#ff69b4;box-shadow:0 0 0 3px #ff69b41f}.ms-branch-notice{display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:10px;font-family:Montserrat,sans-serif;font-size:.8rem;font-weight:500;margin-top:10px;white-space:nowrap;overflow:hidden}.ms-branch-primary{background:rgba(255,105,180,.08);border:1.5px solid rgba(255,105,180,.2);color:#be185d}.ms-branch-dot{width:8px;height:8px;border-radius:50%;background:#ff69b4;flex-shrink:0}.ms-preview-table{width:100%;border-collapse:collapse;font-family:Montserrat,sans-serif;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 10px #0000000d;border:1.5px solid #f3f4f6;margin-top:12px}.ms-preview-table thead{background:#f9fafb}.ms-preview-table thead th{padding:11px 14px;font-size:.8rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;border-bottom:1.5px solid #f3f4f6;text-align:left}.ms-preview-table tbody td{padding:11px 14px;font-size:.88rem;color:#374151;border-bottom:1px solid #f9fafb}.ms-preview-table tbody tr:last-child td{border-bottom:none}.ms-preview-table .status-created{color:#22c55e;font-weight:700}.ms-preview-table .status-error{color:#ef4444;font-weight:700}.ms-preview-table .status-pending{color:#f59e0b;font-weight:600}.ms-form-card{background:#fff;border-radius:18px;padding:24px;border:1.5px solid #f3f4f6;box-shadow:0 2px 10px #0000000a}.ms-form-card h3{font-family:Montserrat,sans-serif;font-size:1rem;font-weight:700;color:#1f2937;margin:0 0 6px}.ms-form-card p{font-family:Montserrat,sans-serif;font-size:.85rem;color:#9ca3af;margin:0 0 16px}.ms-textarea{width:100%;padding:12px 14px;border:1.5px solid #e5e7eb;border-radius:12px;font-family:Montserrat,sans-serif;font-size:.9rem;color:#1f2937;resize:vertical;outline:none;box-sizing:border-box;min-height:140px;transition:border-color .2s,box-shadow .2s}.ms-textarea:focus{border-color:#ff69b4;box-shadow:0 0 0 3px #ff69b41f}.ms-success{background:rgba(34,197,94,.08);border:1.5px solid rgba(34,197,94,.25);color:#15803d;border-radius:12px;padding:12px 16px;font-family:Montserrat,sans-serif;font-size:.88rem;font-weight:600;margin-bottom:16px}.ms-error{background:rgba(239,68,68,.06);border:1.5px solid rgba(239,68,68,.2);color:#dc2626;border-radius:12px;padding:12px 16px;font-family:Montserrat,sans-serif;font-size:.88rem;font-weight:600;margin-bottom:16px}.ms-creating-overlay{margin-top:14px;padding:20px;background:rgba(255,105,180,.06);border:1.5px solid rgba(255,105,180,.2);border-radius:14px;text-align:center}.ms-spinner{width:32px;height:32px;border:3px solid #f3f4f6;border-top-color:#ff69b4;border-radius:50%;animation:msSpin .7s linear infinite;margin:0 auto 12px}@keyframes msSpin{to{transform:rotate(360deg)}}.ms-creating-text{font-family:Montserrat,sans-serif;font-size:.9rem;font-weight:700;color:#1f2937;margin:0 0 6px}.ms-creating-subtext{font-family:Montserrat,sans-serif;font-size:.8rem;color:#9ca3af;margin:0}.ms-empty{text-align:center;color:#9ca3af;font-family:Montserrat,sans-serif;font-size:.95rem;padding:3rem 0}.print-cards{display:none}.student-card{width:100%;max-width:320px;border:2px solid #ff69b4;border-radius:16px;overflow:hidden;background:#fff;page-break-inside:avoid;box-sizing:border-box}.card-logo{background:linear-gradient(135deg,#ff69b4 0%,#ff9dd5 100%);color:#fff;text-align:center;padding:12px;font-family:Montserrat,sans-serif;font-size:16px;font-weight:700;letter-spacing:.5px}.card-body{display:flex;padding:16px;gap:12px}.card-info{flex:1}.card-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0}.card-label{font-family:Montserrat,sans-serif;font-size:11px;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.5px}.card-value{font-family:Montserrat,sans-serif;font-size:13px;font-weight:600;color:#1f2937}.card-value.highlight{color:#ff69b4;font-weight:700}.card-divider{height:1px;background:#f3f4f6;margin:6px 0}.card-qr{display:flex;flex-direction:column;align-items:center;gap:4px}.qr-label{font-family:Montserrat,sans-serif;font-size:10px;color:#9ca3af;font-weight:600}.card-footer{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:#fdf8ff;border-top:1px solid #f3f4f6;font-family:Montserrat,sans-serif;font-size:11px;color:#9ca3af;font-weight:600}.screen-only{display:block}.print-cards{display:none!important}.ms-accounts-screen{display:block}@media print{.ms-back-btn,.ms-header,.ms-actions,.ms-accounts-screen,.ms-subtitle-section,.screen-only{display:none!important}.print-cards{display:grid!important;grid-template-columns:repeat(2,1fr);gap:16px;padding:16px}}@media (max-width: 768px){.ms-container{padding:24px 20px 60px}.ms-title{font-size:1.6rem}.ms-table thead th,.ms-table tbody td{padding:10px 12px;font-size:.82rem}.row-actions{flex-direction:column;gap:6px}}.jms-wrapper{--ms-pink: #ff8c00;--ms-pink-hover: #e65c00}.jms-wrapper .ms-btn-outline{color:#ff8c00;border-color:#ff8c00}.jms-wrapper .ms-btn-outline:hover{background:#fff8ee}.jms-wrapper .ms-btn-pink{background:#ff8c00}.jms-wrapper .ms-btn-pink:hover{background:#e65c00}.jms-wrapper .ms-btn-action.delete{background:#ff8c00}.jms-wrapper .ms-btn-action.delete:hover{background:#e65c00}.jms-wrapper .card-logo{background:linear-gradient(135deg,#ff8c00 0%,#ffb347 100%)}.jms-wrapper .card-value.highlight{color:#ff8c00}.jms-wrapper .student-card{border-color:#ff8c00}.jr-print-cards,.jr-print-only{display:none}@media print{.jr-print-only{display:block!important}@page{size:A4 portrait;margin:8mm}.jr-print-cards{display:grid!important;grid-template-columns:repeat(2,1fr);gap:6mm;width:100%;box-sizing:border-box}.jr-student-card{display:flex;flex-direction:column;align-items:stretch;border:2px solid #ff8c00;border-radius:10px;overflow:hidden;box-sizing:border-box;break-inside:avoid;page-break-inside:avoid}.jr-card-logo{flex:0 0 14mm;display:flex;align-items:center;justify-content:center;background:#ff8c00!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color:#fff;font-weight:900;font-size:20px;letter-spacing:.3px;text-align:center;font-family:Nunito,Montserrat,sans-serif}.jr-card-qr-block{flex:0 0 72mm;display:flex;align-items:center;justify-content:center;padding:4mm 4mm 0;background:#fff;box-sizing:border-box}.jr-card-qr-block svg,.jr-card-qr-block canvas{display:block;width:100%!important;height:100%!important;max-width:64mm;max-height:64mm}.jr-card-name{flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:40px;font-weight:900;color:#1a1a1a;text-align:center;padding:3mm 8mm 0;background:#fff;font-family:Nunito,Montserrat,sans-serif;line-height:1.15}.jr-card-creds{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;padding:0 8mm;background:#fff8ee;border-top:1px solid #ffe0b2;box-sizing:border-box;margin-top:3mm}.jr-cred-row{font-size:14px;color:#333;display:flex;gap:5px}.jr-cred-label{font-weight:600;color:#888}.jr-cred-value{font-weight:900;color:#ff8c00;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}.jms-branch-badge{display:inline-block;background:linear-gradient(135deg,#ff8c00,#e65c00);color:#fff;font-size:.65rem;font-weight:700;padding:2px 8px;border-radius:20px;letter-spacing:.4px;text-transform:uppercase;vertical-align:middle;margin-left:8px}.tr-container{max-width:1100px;margin:0 auto;padding:80px 2rem 2rem;position:relative}.tr-inner{text-align:center}.tr-title{font-size:2.4rem;font-weight:800;margin:0 0 .35rem;color:#333;font-family:Montserrat,sans-serif}.tr-subtitle{color:#666;margin-bottom:2.2rem;font-size:1.05rem;font-family:Montserrat,sans-serif}.tr-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:1.25rem;align-items:stretch;justify-items:center}.tr-card{--ring: rgba(255,105,180,.25);position:relative;display:grid;grid-template-rows:auto 1fr auto;gap:.5rem;width:100%;max-width:320px;padding:1.4rem 1.2rem;border:2px solid #eef0f2;border-radius:18px;background:#fff;box-shadow:0 8px 24px #0000000f;cursor:pointer;text-align:left;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;overflow:hidden}.tr-card:before{content:"";position:absolute;top:-120%;right:-120%;bottom:-120%;left:-120%;background:radial-gradient(120px 120px at var(--mx, 50%) var(--my, 50%),rgba(255,255,255,.3),transparent 60%);opacity:0;transition:opacity .25s ease;pointer-events:none}.tr-card:hover{transform:translateY(-8px) scale(1.01);box-shadow:0 18px 36px #0000001f;border-color:var(--ring)}.tr-card:hover:before{opacity:1}.tr-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-size:30px;font-weight:700;-webkit-user-select:none;user-select:none;margin-bottom:.25rem;background:#fff0f6;border:2px solid #ffe3f0}.tr-card-title{font-size:1.35rem;font-weight:800;margin:0 0 .25rem;color:#222;font-family:Montserrat,sans-serif}.tr-card-desc{margin:0;color:#5f6368;line-height:1.35;min-height:2.6em;font-family:Montserrat,sans-serif}.tr-arrow{justify-self:end;font-size:1.4rem;transform:translate(-8px);opacity:0;transition:transform .25s ease,opacity .25s ease}.tr-card:hover .tr-arrow{transform:translate(0);opacity:1}.tr-badge{position:absolute;top:10px;right:10px;background:#eef2ff;color:#4f46e5;border:1px solid #dbe3ff;font-size:.72rem;font-weight:700;padding:.2rem .5rem;border-radius:999px}.accent-pink{--ring: rgba(255,105,180,.28)}.accent-pink .tr-icon{background:#fff0f6;border-color:#ffd1e6}.accent-blue{--ring: rgba(49,130,206,.25)}.accent-blue .tr-icon{background:#ebf8ff;border-color:#cfefff}.accent-purple{--ring: rgba(128,90,213,.25)}.accent-purple .tr-icon{background:#f5efff;border-color:#e6dbff}.tr-card:hover{will-change:transform}.tr-card:hover,.tr-card:focus{outline:none}.tr-card:hover:before{animation:none}.tr-card:focus-visible{box-shadow:0 0 0 4px #ff69b42e}@media (max-width: 980px){.tr-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}}@media (max-width: 640px){.tr-grid{grid-template-columns:1fr}}.tr-placeholder{margin:2rem auto 0;max-width:720px;padding:1.25rem 1rem;border-radius:12px;background:#fff;border:2px dashed #ffd5e7;color:#9b4a6c;font-weight:600;box-shadow:0 6px 18px #0000000a}.accent-orange{--ring: rgba(221,107,32,.25)}.accent-orange .tr-icon{background:#fff7e6;border-color:#ffe3bf}.accent-green{--ring: rgba(56,161,105,.25)}.accent-green .tr-icon{background:#e7f8ec;border-color:#c9f1d9}.tr-filterbar{display:flex;gap:14px;align-items:center;margin:10px 0 20px}.tr-search{flex:1;max-width:420px;height:44px;border:2px solid #e0e0e0;border-radius:10px;padding:0 12px;font-size:1rem}.tr-chips{display:flex;gap:8px;flex-wrap:wrap}.tr-chip{height:36px;padding:0 12px;border-radius:999px;border:2px solid #eee;background:#fff;cursor:pointer}.tr-chip.active{border-color:#ff69b4;color:#ff69b4}.tr-grid.tr-grid-3{grid-template-columns:repeat(3,minmax(260px,1fr))}@media (max-width:1100px){.tr-grid.tr-grid-3{grid-template-columns:repeat(2,minmax(260px,1fr))}}@media (max-width:720px){.tr-grid.tr-grid-3{grid-template-columns:1fr}}.lesson-card{display:flex;flex-direction:column;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 8px 20px #0000000f;transition:transform .2s,box-shadow .2s}.lesson-card:hover{transform:translateY(-6px);box-shadow:0 14px 30px #0000001f}.lesson-thumb{height:140px;position:relative;display:flex;align-items:flex-end;padding:14px}.lesson-thumb-badge{position:absolute;top:12px;left:12px;background:#fff;border-radius:999px;padding:8px 10px;border:2px solid #eee}.lesson-thumb-title{font-weight:800;font-size:1.1rem}.lesson-body{padding:12px}.lesson-title{font-weight:800}.lesson-meta{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap}.lesson-year{font-size:.85rem;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:999px;padding:2px 8px}.lesson-tags{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}.lesson-tag{font-size:.8rem;background:#fff7fb;border:1px solid #ffd6ea;border-radius:6px;padding:2px 6px}.lesson-actions{display:flex;gap:8px;padding:12px}.res-table{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 8px 20px #0000000f}.res-head,.res-row{display:grid;grid-template-columns:2fr 1fr 1fr 2fr;gap:8px;padding:10px 12px}.res-head{background:#f8fafc;font-weight:800;color:#444;border-bottom:1px solid #eef2f7}.res-row:not(:last-child){border-bottom:1px solid #f3f4f6}.login-page{--primary: #ff5c9d;--accent: #f57f17;--hot-pink: #ff5c9d;--text: #333;--light-bg: #f8faff;--card-bg: #ffffff;--shadow: rgba(0, 0, 0, .06);display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#f8faff 0%,#fff0f5 50%,#f8faff 100%);font-family:Montserrat,sans-serif;color:var(--text);padding:20px}.login-page .login-container{background:var(--card-bg);padding:48px 40px;border-radius:24px;box-shadow:0 12px 48px #00000014;text-align:center;width:100%;max-width:980px;position:relative}.login-page .back-btn{position:fixed;top:16px;right:16px;background:var(--card-bg);border:1px solid #e8e8e8;padding:10px 18px;border-radius:12px;cursor:pointer;font-size:14px;font-weight:500;color:var(--text);transition:all .2s ease;box-shadow:0 2px 8px #0000000f;font-family:Montserrat,sans-serif}.login-page .back-btn:hover{background:#f5f5f5;transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.login-page .login-title{font-size:28px;margin-bottom:36px;color:var(--primary);font-weight:700;line-height:1.3}.login-page .login-title p{margin:0 0 4px}.login-page .login-boxes{display:flex;gap:28px;justify-content:center;flex-wrap:nowrap}.login-page .login-box{background:linear-gradient(135deg,#fafbff 0%,#fff5f8 100%);padding:32px 28px;border-radius:20px;width:calc(50% - 14px);min-width:440px;border:1px solid rgba(255,92,157,.08);box-shadow:0 4px 20px #0000000a;transition:all .3s ease}.login-page .login-box:hover{transform:translateY(-4px);box-shadow:0 12px 32px #00000014}.login-page .login-box h2{margin-bottom:16px;font-size:22px;color:var(--text);font-weight:700}.login-page .login-icon{display:block;font-size:32px;margin-bottom:16px}.login-page .or-divider{display:flex;align-items:center;gap:12px;margin:14px 0;color:#aaa;font-weight:600;font-size:13px;letter-spacing:.05em}.login-page .or-divider:before,.login-page .or-divider:after{content:"";flex:1;height:1px;background:#e5e7eb}.login-page .google-login-btn{background:linear-gradient(135deg,var(--primary),#ff85b5);border:none;color:#fff;padding:12px 24px;border-radius:14px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;font-family:Montserrat,sans-serif;width:100%;box-shadow:0 4px 16px #ff5c9d40}.login-page .google-login-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ff5c9d59}.login-page .student-box .google-login-btn{background:linear-gradient(135deg,#10b981,#34d399);box-shadow:0 4px 16px #10b98140}.login-page .student-box .google-login-btn:hover{box-shadow:0 6px 20px #10b98159}.login-page .teacher-box .google-login-btn{background:linear-gradient(135deg,#f59e0b,#fbbf24);box-shadow:0 4px 16px #f59e0b40}.login-page .teacher-box .google-login-btn:hover{box-shadow:0 6px 20px #f59e0b59}.login-page .auth-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:16px 24px;border:0;border-radius:16px;font-weight:700;font-size:17px;color:#fff;cursor:pointer;transition:all .25s ease;font-family:Montserrat,sans-serif;white-space:nowrap;box-shadow:0 6px 20px #00000014}.login-page .auth-btn:hover{transform:translateY(-2px);box-shadow:0 8px 28px #0000001f}.login-page .auth-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-page .auth-btn-pink{background:linear-gradient(135deg,var(--hot-pink),#ff85b5);box-shadow:0 6px 20px #ff5c9d4d}.login-page .auth-btn-green{background:linear-gradient(135deg,#10b981,#34d399);box-shadow:0 6px 20px #10b9814d}.login-page .auth-btn-orange{background:linear-gradient(135deg,#f59e0b,#fbbf24);box-shadow:0 6px 20px #f59e0b4d}.login-page .auth-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #ff5c9d59}.login-page .auth-btn-green:focus-visible{box-shadow:0 0 0 3px #10b98159}.login-page .auth-btn-orange:focus-visible{box-shadow:0 0 0 3px #f59e0b59}.login-page .auth-btn-block,.login-page .btn-block{width:100%}.login-page .auth-btn-sm{padding:10px 14px;border-radius:12px;font-size:15px}.login-page .auth-btn .icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px}.login-page .auth-btn .icon svg{width:18px;height:18px;display:block}.login-page form{width:100%;max-width:400px;margin:0 auto}.login-page form div{margin-bottom:15px}.login-page label{display:block;margin-bottom:6px;color:var(--text);font-weight:600;font-size:14px}.login-page input{width:100%;padding:12px 14px;border:1.5px solid #e5e7eb;border-radius:12px;font-size:15px;font-family:Montserrat,sans-serif;transition:all .2s ease;background:#fafbfc;color:var(--text);box-sizing:border-box}.login-page input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #ff5c9d1a;background:#fff}.login-page .error-message{color:#ef4444;margin-bottom:10px;text-align:center;font-size:14px;font-weight:500}.login-page .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.login-page .success-modal{background-color:#fff;padding:36px;border-radius:20px;text-align:center;max-width:420px;width:90%;box-shadow:0 20px 60px #00000026}.login-page .success-modal h2{color:var(--primary);margin-bottom:20px;font-size:22px;font-weight:700}.login-page .success-modal p{margin-bottom:20px;color:#666;line-height:1.6}.login-page .success-modal .google-login-btn{margin-top:10px}.login-page .dob-container{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;justify-content:center;margin-bottom:20px}.login-page .dob-field{flex:1;min-width:100px}.login-page .dob-container div{display:flex;flex-direction:column;align-items:center}.login-page .structure-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}@media (max-width: 1024px){.login-page .login-container{max-width:820px}.login-page .login-boxes{gap:20px}.login-page .login-box{min-width:360px}.login-page .auth-btn{font-size:16px;padding:14px 20px}}@media (max-width: 820px){.login-page .login-container{max-width:720px}.login-page .login-boxes{flex-wrap:wrap}.login-page .login-box{min-width:calc(50% - 12px)}.login-page .auth-btn{font-size:15px;padding:14px 18px}}@media (max-width: 768px){.login-page .login-container{max-width:560px;padding:32px 24px}.login-page .login-box{min-width:100%}.login-page .login-boxes{gap:16px}.login-page .auth-btn{font-size:15px;padding:13px 16px}}@media (max-width: 600px){.login-page .dob-container{flex-direction:column}.login-page .structure-grid{grid-template-columns:1fr}}@media (max-width: 480px){.login-page .login-container{max-width:94vw;padding:24px 16px}.login-page .login-title{font-size:clamp(22px,7vw,28px);line-height:1.25}.login-page .auth-btn{font-size:14px;padding:12px 14px;white-space:normal;line-height:1.2}}.login-page .login-icon-img{display:block;width:120px;height:120px;object-fit:cover;border-radius:16px;margin:0 auto 16px;box-shadow:0 4px 12px #00000014}@media (max-width: 360px){.login-page .auth-btn{font-size:13px;padding:11px 12px}}:root{--brand-primary: #1e88e5;--text-body: #333;--text-heading: #111;--bg-soft: #fafafa;--border-soft: #e0e0e0;--radius: 6px;--max-width: 840px}.terms-wrapper{margin:0 auto;padding:3rem 1rem 4rem;max-width:var(--max-width);color:var(--text-body);line-height:1.6;background:var(--bg-soft);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:0 4px 12px #0000000d}.terms-wrapper h1{color:var(--brand-primary);font-size:2rem;margin-bottom:.25rem;text-align:center}.terms-wrapper h2{color:var(--text-heading);margin:2rem 0 .5rem;font-size:1.25rem}.version{text-align:center;font-size:.9rem;margin-bottom:2rem;color:#666}.terms-wrapper ul{padding-left:1.25rem}.terms-wrapper li{margin:.5rem 0}.terms-wrapper a{color:var(--brand-primary);text-decoration:none}.terms-wrapper a:hover{text-decoration:underline}.terms-wrapper table{width:100%;border-collapse:collapse;margin-top:1rem;font-size:.9rem}.terms-wrapper th,.terms-wrapper td{border:1px solid var(--border-soft);padding:.5rem .75rem;text-align:left}.terms-wrapper th{background:#f0f4f8;font-weight:600}@media (max-width: 500px){.terms-wrapper{padding:2rem 1rem}.terms-wrapper h1{font-size:1.5rem}}.back-link{text-align:center;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--border-soft);font-size:.95rem}.back-link a{color:var(--brand-primary);text-decoration:none;margin:0 .5rem}.back-link a:hover{text-decoration:underline}.contact-list{list-style:none;padding-left:0}.contact-list li{margin:.4rem 0}.student-dashboard-container{--primary-color: #2E7D32;--primary-hover: #286A2C;--secondary-color: #F57F17;--secondary-hover: #E65100;--accent-color: #fff0e6;--accent-hover: #ffe6d9;--accent-light: #FFFDE7;--pink-color: #ffe9f0;--pink-hover: #ffd1e0;--hot-pink-color: #ff69b4;--hot-pink-hover: #ff5c9d;--bg-color: #f5f5f0;--card-bg: #ffffff;--text-color: #333333;--text-muted: #666666;--border-color: #f0f0f0;--shadow-color: rgba(0, 0, 0, .05);--nav-h: 72px;background-color:var(--bg-color);min-height:100vh;display:flex;flex-direction:column;font-family:Montserrat,sans-serif}.student-dashboard-container .hot-pink-text{color:var(--hot-pink-color)}.student-dashboard-container .student-dashboard-nav{background-color:var(--card-bg);padding:1rem 2rem;box-shadow:0 2px 12px #0000000f;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(0,0,0,.04)}.student-dashboard-container .student-logo-section{display:flex;flex-direction:column;gap:.15rem}.student-dashboard-container .student-site-title{font-size:1.5rem;margin:0;color:var(--text-color);font-weight:600;letter-spacing:-.02em}.student-dashboard-container .student-dashboard-subtitle{font-size:.85rem;color:var(--text-muted);margin:0;font-weight:500}.student-dashboard-container .student-nav-actions{display:flex;align-items:center;gap:1.5rem;position:relative}.student-dashboard-container .student-user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#ff69b4,#ff5c9d);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;cursor:pointer;font-size:1rem;transition:all .2s ease;box-shadow:0 3px 12px #ff69b44d}.student-dashboard-container .student-user-avatar:hover{transform:scale(1.05);box-shadow:0 5px 16px #ff69b466}.student-dashboard-container .student-user-menu{position:absolute;top:calc(100% + .5rem);right:0;background-color:var(--card-bg);border-radius:14px;box-shadow:0 8px 32px #0000001f;width:240px;overflow:hidden;z-index:999;border:1px solid rgba(0,0,0,.06);padding:16px}.student-dashboard-container .student-user-email{font-size:.85rem;color:var(--text-muted);margin:0 0 8px;word-break:break-all;font-weight:500}.student-dashboard-container .student-logout-button{display:block;width:100%;padding:.65rem 0;border:none;background-color:transparent;text-align:left;color:var(--hot-pink-color);cursor:pointer;transition:all .2s ease;font-weight:600;font-size:.9rem;font-family:Montserrat,sans-serif}.student-dashboard-container .student-logout-button:hover{color:var(--hot-pink-hover)}.student-dashboard-container .student-dashboard-content{flex:1;padding:2rem;max-width:800px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:1.25rem;box-sizing:border-box}.student-dashboard-container .start-learning-box{background:linear-gradient(135deg,#fff5f8 0%,#fff0f5 100%);color:#2d3748;padding:2rem 1.5rem 1.6rem;border-radius:22px;box-shadow:0 4px 20px #e62a6d14,0 1px 4px #0000000a;cursor:pointer;transition:all .25s ease;text-align:center;border:1.5px solid rgba(230,42,109,.1);margin-top:.5rem;display:flex;flex-direction:column;align-items:center;gap:6px}.student-dashboard-container .start-learning-box:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 12px 36px #e62a6d26,0 4px 12px #e62a6d14;border-color:#e62a6d33}.student-dashboard-container .start-learning-box:active{transform:translateY(-1px) scale(.99);box-shadow:0 4px 16px #e62a6d1a}.student-dashboard-container .start-learning-icon{width:80px;height:80px;border-radius:22px;background:linear-gradient(135deg,#fce4ec,#fdd5e0);display:flex;align-items:center;justify-content:center;margin-bottom:4px}.student-dashboard-container .start-learning-svg{width:54px;height:54px}.student-dashboard-container .start-learning-box h3{margin:0;font-size:1.4rem;font-weight:900;letter-spacing:.02em;color:#2d3748}.student-dashboard-container .start-learning-sub{margin:0;font-size:.85rem;font-weight:600;color:#7b8794}.student-dashboard-container .no-class-section{display:flex;flex-direction:column;gap:1rem}.student-dashboard-container .join-class-box{background:linear-gradient(135deg,#fffef5,#fff8e1);color:var(--text-color);padding:1.5rem;border-radius:16px;border:1.5px solid rgba(245,127,23,.12);box-shadow:0 4px 16px #0000000a;cursor:pointer;transition:all .25s ease;text-align:center;font-weight:500}.student-dashboard-container .join-class-box:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000014;border-color:#f57f1740}.student-dashboard-container .join-class-form{background-color:var(--card-bg);border-radius:16px;padding:1.5rem;box-shadow:0 4px 20px #0000000f;border:1px solid rgba(0,0,0,.04)}.student-dashboard-container .join-class-form h3{margin-top:0;margin-bottom:1rem;color:var(--text-color);font-weight:600}.student-dashboard-container .join-class-form input{width:100%;padding:.85rem 1rem;border:1.5px solid #e5e7eb;border-radius:12px;margin-bottom:.5rem;background-color:#fafbfc;transition:all .2s ease;font-family:Montserrat,sans-serif;font-size:.95rem;box-sizing:border-box}.student-dashboard-container .join-class-form input:focus{border-color:var(--hot-pink-color);outline:none;box-shadow:0 0 0 3px #ff69b41a;background:#fff}.student-dashboard-container .error-message{color:#ef4444;font-size:.9rem;margin-bottom:.5rem;font-weight:500}.student-dashboard-container .form-buttons{display:flex;gap:.75rem;margin-top:1rem}.student-dashboard-container .form-buttons button{padding:.7rem 1.4rem;border:none;border-radius:10px;cursor:pointer;font-weight:600;transition:all .2s ease;font-family:Montserrat,sans-serif;font-size:.9rem}.student-dashboard-container .form-buttons button[type=submit]{background:linear-gradient(135deg,#2E7D32,#43a047);color:#fff;box-shadow:0 3px 12px #2e7d3240}.student-dashboard-container .form-buttons button[type=submit]:hover{transform:translateY(-1px);box-shadow:0 5px 16px #2e7d3259}.student-dashboard-container .form-buttons button[type=button]{background-color:#f5f5f5;color:var(--text-muted)}.student-dashboard-container .form-buttons button[type=button]:hover{background-color:#eee}.student-dashboard-container .student-classrooms-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:1rem}.student-dashboard-container .student-classroom-card{background-color:var(--card-bg);border-radius:16px;padding:1.5rem;box-shadow:0 4px 16px #0000000d;display:flex;flex-direction:column;gap:.4rem;border:1px solid rgba(0,0,0,.04);transition:all .2s ease}.student-dashboard-container .student-classroom-card:hover{box-shadow:0 6px 24px #00000014}.student-dashboard-container .student-classroom-card h3{margin-top:0;margin-bottom:.3rem;color:var(--text-color);font-weight:600;font-size:1.05rem}.student-dashboard-container .student-classroom-card p{margin:0;color:var(--text-muted);font-size:.9rem;font-weight:500}.student-dashboard-container .leave-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:999}.student-dashboard-container .leave-modal-content{background-color:var(--card-bg);padding:2rem;border-radius:20px;box-shadow:0 20px 60px #00000026;width:90%;max-width:420px}.student-dashboard-container .leave-modal-content h3{margin-top:0;margin-bottom:1rem;font-size:1.2rem;color:var(--text-color);font-weight:700}.student-dashboard-container .leave-modal-content p{color:var(--text-muted);line-height:1.6}.student-dashboard-container .leave-modal-buttons{display:flex;gap:.75rem;margin-top:1.5rem}.student-dashboard-container .confirm-leave-btn,.student-dashboard-container .discard-leave-btn{padding:.7rem 1.4rem;border:none;border-radius:10px;font-weight:600;cursor:pointer;font-family:Montserrat,sans-serif;font-size:.9rem;transition:all .2s ease}.student-dashboard-container .confirm-leave-btn{background:linear-gradient(135deg,#ff69b4,#ff5c9d);color:#fff;box-shadow:0 3px 12px #ff69b440}.student-dashboard-container .confirm-leave-btn:hover{transform:translateY(-1px);box-shadow:0 5px 16px #ff69b459}.student-dashboard-container .discard-leave-btn{background-color:#f5f5f5;color:var(--text-muted)}.student-dashboard-container .discard-leave-btn:hover{background-color:#eee}.student-dashboard-container .quick-actions-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}.student-dashboard-container .quick-action.half{background-color:var(--card-bg);border:1.5px solid var(--border-color);border-radius:16px;box-shadow:0 4px 16px #0000000a;padding:1.25rem 1.5rem;cursor:pointer;transition:all .25s ease;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:88px}.student-dashboard-container .quick-action.half:hover{transform:translateY(-3px);box-shadow:0 8px 28px #00000014;border-color:#ff69b440}.student-dashboard-container .quick-action.half h3{margin:.1rem 0 .25rem;font-size:1.05rem;font-weight:600;color:var(--text-color)}.student-dashboard-container .quick-action.half p{margin:0;font-size:.9rem;color:var(--text-muted);font-weight:500}@media (max-width: 820px){.student-dashboard-container{--nav-h: 96px}}@media (max-width: 768px){.student-dashboard-container .student-dashboard-nav{flex-direction:column;gap:1rem;align-items:flex-start;padding:1rem}.student-dashboard-container .student-dashboard-content{padding:1rem}}@media (max-width: 600px){.student-dashboard-container{--nav-h: 112px}}@media (max-width: 560px){.student-dashboard-container .quick-actions-row{grid-template-columns:1fr}}.searchable-dropdown{position:relative;width:100%}.searchable-dropdown__input{width:100%;padding:12px 14px;border:1.5px solid #e5e7eb;border-radius:12px;font-size:15px;font-family:Montserrat,sans-serif;transition:all .2s ease;background:#fafbfc;color:#333;box-sizing:border-box}.searchable-dropdown__input:focus{outline:none;border-color:#ff5c9d;box-shadow:0 0 0 3px #ff5c9d1a;background:#fff}.searchable-dropdown__list{position:absolute;top:100%;left:0;right:0;max-height:220px;overflow-y:auto;background:#fff;border:1.5px solid #e5e7eb;border-top:none;border-radius:0 0 12px 12px;list-style:none;margin:0;padding:0;z-index:100;box-shadow:0 8px 24px #0000001a}.searchable-dropdown__item{padding:10px 14px;font-size:14px;font-family:Montserrat,sans-serif;cursor:pointer;color:#333;transition:background .15s ease;text-align:left}.searchable-dropdown__item:hover,.searchable-dropdown__item--active{background:#fff0f5;color:#ff5c9d}.searchable-dropdown__item--empty{color:#999;cursor:default;font-style:italic}.searchable-dropdown__item--empty:hover{background:transparent;color:#999}.dashboard-container .hot-pink-text{color:#ff69b4}.dashboard-container{--primary-color: #2E7D32;--primary-hover: #286A2C;--primary-light: #E8F5E9;--secondary-color: #F57F17;--secondary-hover: #E65100;--accent-color: #fff0e6;--accent-hover: #ffe6d9;--accent-light: #FFFDE7;--pink-color: #ffe9f0;--pink-hover: #ffd1e0;--hot-pink-color: #ff69b4;--hot-pink-hover: #ff5c9d;--bg-color: #f5f5f0;--card-bg: #ffffff;--text-color: #333333;--text-muted: #666666;--border-color: #f0f0f0;--shadow-color: rgba(0, 0, 0, .05);background-color:var(--bg-color);min-height:100vh;display:flex;flex-direction:column;font-family:Montserrat,sans-serif}.dashboard-container .dashboard-nav{background-color:var(--card-bg);padding:1rem 2rem;box-shadow:0 2px 12px #0000000f;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(0,0,0,.04)}.dashboard-container .logo-section{display:flex;flex-direction:column;gap:.15rem}.dashboard-container .site-title{font-size:1.5rem;margin:0;color:var(--text-color);font-weight:700;letter-spacing:-.02em}.dashboard-container .dashboard-subtitle{font-size:.85rem;color:var(--text-muted);margin:0;font-weight:500}.dashboard-container .branch-switcher{position:relative}.dashboard-container .branch-switcher-btn{display:inline-flex;align-items:center;gap:7px;padding:5px 12px 5px 9px;border-radius:20px;border:1.5px solid rgba(0,0,0,.08);background:#fff;font-size:1rem;font-weight:700;font-family:Montserrat,sans-serif;color:var(--text-color);cursor:pointer;transition:all .2s ease;box-shadow:0 1px 4px #0000000f}.dashboard-container .branch-switcher-btn:hover{border-color:var(--hot-pink-color);box-shadow:0 2px 10px #ff69b41f}.dashboard-container .branch-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.dashboard-container .branch-dot-main{background:var(--hot-pink-color)}.dashboard-container .branch-dot-junior{background:#ff8c00}.dashboard-container .branch-caret{font-size:11px;color:var(--text-muted);margin-left:1px}.dashboard-container .branch-menu{position:absolute;top:calc(100% + 8px);left:0;background:#fff;border-radius:14px;box-shadow:0 8px 32px #00000021;min-width:220px;z-index:500;overflow:hidden;border:1px solid rgba(0,0,0,.06);animation:branchFadeIn .15s ease}@keyframes branchFadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.dashboard-container .branch-menu-label{padding:8px 14px 6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#aaa}.dashboard-container .branch-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:none;background:transparent;text-align:left;cursor:pointer;font-family:Montserrat,sans-serif;transition:background .15s ease}.dashboard-container .branch-menu-item:hover{background:#f8f8f8}.dashboard-container .branch-menu-item-active{background:rgba(255,105,180,.05)}.dashboard-container .branch-menu-item-junior:hover{background:rgba(255,140,0,.05)}.dashboard-container .branch-menu-item>span:nth-child(2){display:flex;flex-direction:column;gap:1px;flex:1}.dashboard-container .branch-menu-item strong{font-size:.88rem;font-weight:700;color:var(--text-color)}.dashboard-container .branch-menu-item small{font-size:.75rem;color:var(--text-muted);font-weight:500}.dashboard-container .branch-check{font-size:.85rem;color:var(--hot-pink-color);font-weight:700;margin-left:auto}.dashboard-container .nav-actions{display:flex;align-items:center;gap:.5rem;position:relative}.dashboard-container .nav-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border-radius:10px;transition:all .2s ease;cursor:pointer;background-color:transparent;border:none;color:var(--text-color);font-weight:500;font-size:.88rem;font-family:Montserrat,sans-serif}.dashboard-container .nav-btn:hover{background-color:#ff69b40f;color:var(--hot-pink-color)}.dashboard-container .user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#ff69b4,#ff5c9d);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;cursor:pointer;font-size:1rem;transition:all .2s ease;box-shadow:0 3px 12px #ff69b44d}.dashboard-container .user-avatar:hover{transform:scale(1.05);box-shadow:0 5px 16px #ff69b466}.dashboard-container .user-menu{position:absolute;top:calc(100% + .5rem);right:0;background-color:var(--card-bg);border-radius:14px;box-shadow:0 8px 32px #0000001f;width:240px;overflow:hidden;z-index:200;border:1px solid rgba(0,0,0,.06);padding:16px}.dashboard-container .user-email{font-size:.85rem;color:var(--text-muted);margin:0 0 8px;word-break:break-all;font-weight:500}.dashboard-container .logout-button{display:flex;align-items:center;gap:.5rem;width:100%;padding:.65rem 0;border:none;background-color:transparent;color:var(--hot-pink-color);cursor:pointer;transition:all .2s ease;font-weight:600;font-size:.9rem;font-family:Montserrat,sans-serif}.dashboard-container .logout-button:hover{color:var(--hot-pink-hover)}.dashboard-container .breadcrumb{padding:.85rem 2rem;background-color:var(--card-bg);border-bottom:1px solid var(--border-color);font-size:.85rem;color:var(--text-muted);display:flex;align-items:center;gap:.4rem;font-weight:500}.dashboard-container .dashboard-content{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}.dashboard-container .create-class-section{margin-bottom:1.5rem}.dashboard-container .create-class-btn{padding:.75rem 1.5rem;background:linear-gradient(135deg,#ff69b4,#ff5c9d);color:#fff;border:none;border-radius:12px;cursor:pointer;transition:all .25s ease;font-weight:600;font-size:.95rem;font-family:Montserrat,sans-serif;box-shadow:0 4px 16px #ff69b44d}.dashboard-container .create-class-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px #ff69b466}.dashboard-container .create-class-form{background-color:var(--card-bg);border-radius:16px;box-shadow:0 4px 20px #0000000f;padding:1.5rem;margin-top:1rem;border:1px solid rgba(0,0,0,.04)}.dashboard-container .create-class-form h3{margin-top:0;margin-bottom:1rem;color:var(--text-color);font-weight:600;font-size:1.1rem}.dashboard-container .create-class-form input{width:100%;padding:.85rem 1rem;border:1.5px solid #e5e7eb;border-radius:12px;margin-bottom:1rem;background-color:#fafbfc;transition:all .2s ease;font-family:Montserrat,sans-serif;font-size:.95rem;box-sizing:border-box}.dashboard-container .create-class-form input:focus{border-color:var(--hot-pink-color);outline:none;box-shadow:0 0 0 3px #ff69b41a;background:#fff}.dashboard-container .form-buttons{display:flex;gap:.75rem}.dashboard-container .form-buttons button{padding:.7rem 1.4rem;border:none;border-radius:10px;cursor:pointer;transition:all .2s ease;font-weight:500;font-family:Montserrat,sans-serif;font-size:.9rem}.dashboard-container .form-buttons button[type=submit]{background:linear-gradient(135deg,#2E7D32,#43a047);color:#fff;box-shadow:0 3px 12px #2e7d3240}.dashboard-container .form-buttons button[type=submit]:hover{transform:translateY(-1px);box-shadow:0 5px 16px #2e7d3259}.dashboard-container .form-buttons button[type=button]{background-color:#f5f5f5;color:var(--text-muted)}.dashboard-container .form-buttons button[type=button]:hover{background-color:#eee}.dashboard-container .classrooms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.dashboard-container .classroom-card{background-color:var(--card-bg);border-radius:18px;box-shadow:0 4px 20px #0000000d;padding:1.8rem;transition:all .3s ease;border:1px solid rgba(0,0,0,.04)}.dashboard-container .classroom-card:hover{transform:translateY(-4px);box-shadow:0 12px 36px #00000017}.dashboard-container .classroom-card h3{font-size:1.2rem;margin:0 0 .6rem;color:var(--text-color);font-weight:600}.dashboard-container .classroom-card p{margin:.2rem 0 1rem;color:var(--text-muted);font-size:.9rem;font-weight:500}.dashboard-container .classroom-actions{display:flex;flex-direction:column;gap:.5rem}.dashboard-container .view-progress-btn{padding:.7rem;background:linear-gradient(135deg,#ff69b4,#ff5c9d);color:#fff;border:none;border-radius:10px;cursor:pointer;transition:all .2s ease;font-weight:500;font-family:Montserrat,sans-serif;font-size:.88rem;box-shadow:0 3px 12px #ff69b433}.dashboard-container .view-progress-btn:hover{transform:translateY(-2px);box-shadow:0 5px 16px #ff69b44d}.dashboard-container .create-students-btn{padding:.7rem;background:linear-gradient(135deg,#F57F17,#f59e0b);color:#fff;border:none;border-radius:10px;cursor:pointer;transition:all .2s ease;font-weight:500;font-family:Montserrat,sans-serif;font-size:.88rem;box-shadow:0 3px 12px #f57f1733}.dashboard-container .create-students-btn:hover{transform:translateY(-2px);box-shadow:0 5px 16px #f57f174d}.dashboard-container .edit-delete-row{display:flex;gap:8px}.dashboard-container .edit-btn,.dashboard-container .delete-btn{flex:1;padding:.7rem;border-radius:10px;cursor:pointer;transition:all .2s ease;font-weight:500;font-family:Montserrat,sans-serif;font-size:.88rem}.dashboard-container .edit-btn{background:linear-gradient(135deg,#F57F17,#f59e0b);color:#fff;border:none;box-shadow:0 3px 12px #f57f1733}.dashboard-container .edit-btn:hover{transform:translateY(-2px);box-shadow:0 5px 16px #f57f174d}.dashboard-container .delete-btn{background:#fff0f3;color:#e11d48;border:1px solid rgba(225,29,72,.2)}.dashboard-container .delete-btn:hover{background:#ffe4e9;transform:translateY(-2px)}.dashboard-container .students-view{display:flex;flex-direction:column;gap:1.5rem}.dashboard-container .back-to-classes-btn{padding:.6rem 1rem;background-color:#f5f5f5;border:none;border-radius:10px;color:var(--text-color);font-weight:500;cursor:pointer;transition:all .2s ease;font-family:Montserrat,sans-serif}.dashboard-container .back-to-classes-btn:hover{background-color:#eee}.dashboard-container .students-list{list-style:none;padding:0;margin:0}.dashboard-container .students-list li{background-color:var(--card-bg);border-radius:10px;padding:.85rem 1rem;margin-bottom:.5rem;box-shadow:0 2px 8px #0000000a;border:1px solid rgba(0,0,0,.04);font-weight:500}.dashboard-container .modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:999}.dashboard-container .modal-content{background-color:var(--card-bg);padding:2rem;border-radius:20px;box-shadow:0 20px 60px #00000026;width:90%;max-width:420px;position:relative}.dashboard-container .modal-content h3{margin-top:0;margin-bottom:1rem;color:var(--text-color);font-weight:600;font-size:1.2rem}.dashboard-container .modal-content input{width:100%;padding:.85rem 1rem;border:1.5px solid #e5e7eb;border-radius:12px;font-family:Montserrat,sans-serif;font-size:.95rem;transition:all .2s ease;background:#fafbfc;box-sizing:border-box}.dashboard-container .modal-content input:focus{border-color:var(--hot-pink-color);outline:none;box-shadow:0 0 0 3px #ff69b41a;background:#fff}.dashboard-container .modal-buttons{display:flex;gap:.75rem;margin-top:1.5rem}.dashboard-container .modal-buttons button{padding:.7rem 1.4rem;border:none;border-radius:10px;cursor:pointer;font-weight:500;transition:all .2s ease;font-family:Montserrat,sans-serif;font-size:.9rem}.dashboard-container .modal-buttons button:first-child{background:linear-gradient(135deg,#ff69b4,#ff5c9d);color:#fff;box-shadow:0 3px 12px #ff69b440}.dashboard-container .modal-buttons button:first-child:hover{transform:translateY(-1px);box-shadow:0 5px 16px #ff69b459}.dashboard-container .modal-buttons button:last-child{background-color:#f5f5f5;color:var(--text-muted)}.dashboard-container .modal-buttons button:last-child:hover{background-color:#eee}@media (max-width: 768px){.dashboard-container .dashboard-nav{flex-direction:column;gap:1rem;align-items:flex-start;padding:1rem}.dashboard-container .nav-actions{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:.4rem}.dashboard-container .nav-btn{padding:.45rem .75rem;font-size:.82rem}.dashboard-container .classrooms-grid{grid-template-columns:1fr;gap:1rem}.dashboard-container .dashboard-content{padding:1rem}.dashboard-container .breadcrumb{padding:.85rem 1rem}}:root{--primary-color: #2E7D32;--primary-hover: #286A2C;--primary-light: #E8F5E9;--secondary-color: #F57F17;--secondary-hover: #E65100;--accent-light: #FFFDE7;--pink-color: #ffe9f0;--pink-hover: #ffd1e0;--hot-pink-color: #ff69b4;--hot-pink-hover: #ff5c9d;--bg-color: #f7f7f2;--card-bg: #ffffff;--text-color: #333333;--text-muted: #666666;--border-color: #f0f0f0;--shadow-color: rgba(0, 0, 0, .05)}.teams-page{background:var(--bg-color);min-height:100vh;font-family:Poppins,sans-serif}.teams-nav{background:var(--card-bg);padding:1rem 2rem;box-shadow:0 2px 8px var(--shadow-color);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100}.teams-logo{display:flex;flex-direction:column;gap:.2rem}.teams-nav-actions{display:flex;align-items:center;gap:1rem}.nav-btn{display:inline-flex;align-items:center;padding:.5rem 1rem;border-radius:8px;transition:all .2s ease;cursor:pointer;background:transparent;border:none;color:var(--text-color);font-weight:600}.teams-breadcrumb{padding:1rem 2rem;background:var(--card-bg);border-bottom:1px solid var(--border-color);color:var(--text-muted);font-size:.9rem}.teams-content{padding:2rem;max-width:1200px;margin:0 auto}.teams-actions{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.teams-card{background:var(--card-bg);border-radius:14px;box-shadow:0 4px 16px var(--shadow-color);padding:1.4rem;border:1px solid rgba(0,0,0,.04)}.teams-card h3{margin:0 0 .4rem;color:var(--text-color)}.section-title{margin:1.8rem 0 .8rem}.join-row{display:flex;gap:.6rem;margin-top:.8rem}.input{width:100%;padding:.8rem;border:1px solid var(--border-color);border-radius:10px;background:rgba(0,0,0,.02);outline:none}.input:focus{border-color:var(--hot-pink-color)}.btn-primary,.btn-secondary,.btn,.btn-dark{padding:.7rem 1.1rem;border:none;border-radius:10px;cursor:pointer;font-weight:700;transition:transform .15s ease,background-color .15s ease}.btn{background:var(--accent-light);color:var(--secondary-color)}.btn-dark{background:#222;color:#fff}.btn-dark:hover{background:#111;transform:translateY(-2px)}.btn-primary:disabled,.btn-secondary:disabled,.btn:disabled,.btn-dark:disabled{opacity:.6;cursor:not-allowed;transform:none}.teams-list-wrap{margin-top:1.2rem}.teams-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.team-card{background:var(--card-bg);border-radius:15px;box-shadow:0 4px 18px var(--shadow-color);padding:1.2rem;border:1px solid rgba(0,0,0,.04);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.team-card:hover{transform:translateY(-4px);box-shadow:0 10px 26px #00000014}.team-card-top{display:flex;justify-content:space-between;gap:.8rem;align-items:flex-start}.team-name{font-size:1.05rem;font-weight:800;color:var(--text-color);display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.team-code{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap;border:1px solid rgba(0,0,0,.06)}.pill-btn{padding:5px 10px;border-radius:999px;border:1px solid rgba(0,0,0,.08);background:rgba(255,105,180,.1);cursor:pointer;font-weight:800;color:#b4235b}.btn-danger{padding:.7rem 1.1rem;border:none;border-radius:10px;cursor:pointer;font-weight:700;transition:transform .15s ease,background-color .15s ease;background:#ffd1e0;color:#333}.btn-danger:disabled{opacity:.6;cursor:not-allowed;transform:none}.team-card-bottom{margin-top:1rem;display:flex;justify-content:flex-end}.team-card-bottom--split{margin-top:1rem;display:flex;justify-content:space-between;gap:.6rem;flex-wrap:wrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:999}.modal-content{background:var(--card-bg);padding:1.6rem;border-radius:14px;width:92%;max-width:420px;box-shadow:0 10px 30px #0000002e}.modal-buttons{display:flex;gap:.8rem;margin-top:1rem;justify-content:flex-end}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%);background:#111;color:#fff;padding:10px 14px;border-radius:999px;font-weight:800;box-shadow:0 10px 25px #0003;z-index:9999}@media (max-width: 900px){.teams-actions{grid-template-columns:1fr}.teams-nav,.teams-content{padding:1rem}}:root{--primary-color: #2E7D32;--primary-hover: #286A2C;--secondary-color: #F57F17;--secondary-hover: #E65100;--hot-pink-color: #ff69b4;--hot-pink-hover: #ff5c9d;--bg-color: #f7f7f2;--card-bg: #ffffff;--text-color: #333333;--text-muted: #666666;--border-color: #f0f0f0;--shadow-color: rgba(0, 0, 0, .05)}.hot-pink-text{color:var(--hot-pink-color)}.muted{color:var(--text-muted)}.small{font-size:12px}.teamdetail-page{background:var(--bg-color);min-height:100vh;font-family:Poppins,sans-serif}.teamdetail-nav{background:var(--card-bg);padding:1rem 2rem;box-shadow:0 2px 8px var(--shadow-color);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100}.teamdetail-logo{display:flex;flex-direction:column;gap:.2rem}.site-title{font-size:1.5rem;margin:0;color:var(--text-color);font-weight:700}.dashboard-subtitle{font-size:.9rem;color:var(--text-muted);margin:0}.teamdetail-nav-actions{display:flex;align-items:center;gap:1rem}.nav-btn{display:inline-flex;align-items:center;padding:.5rem 1rem;border-radius:8px;transition:all .2s ease;cursor:pointer;background:transparent;border:none;color:var(--text-color);font-weight:700}.nav-btn:hover{background:rgba(0,0,0,.03)}.nav-btn.is-active{background:rgba(255,105,180,.12)}.teamdetail-breadcrumb{padding:1rem 2rem;background:var(--card-bg);border-bottom:1px solid var(--border-color);color:var(--text-muted);font-size:.9rem}.teamdetail-content{padding:2rem;max-width:1200px;margin:0 auto}.card{background:var(--card-bg);border-radius:14px;box-shadow:0 4px 16px var(--shadow-color);padding:1.4rem;border:1px solid rgba(0,0,0,.04);margin-bottom:1rem}.team-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.team-title{font-size:1.2rem;font-weight:900;color:var(--text-color);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap;border:1px solid rgba(0,0,0,.06)}.pill.leader{background:#eaf7ef;border-color:#cfeedd;color:#0f5132}.pill.code{background:#f3f4ff;border-color:#0000000f;color:#353a8b}.pill-btn{padding:7px 12px;border-radius:999px;border:1px solid rgba(0,0,0,.08);background:rgba(255,105,180,.1);cursor:pointer;font-weight:900;color:#b4235b}.pill-btn:hover{background:rgba(255,105,180,.18);border-color:#ff69b44d}.pill-btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary,.btn-secondary,.btn,.btn-danger,.btn.ghost{padding:.7rem 1rem;border:none;border-radius:10px;cursor:pointer;font-weight:900;transition:transform .15s ease,background-color .15s ease}.btn-primary{background:var(--hot-pink-color);color:#fff}.btn-primary:hover{background:var(--hot-pink-hover);transform:translateY(-2px)}.btn-secondary{background:var(--secondary-color);color:#fff}.btn-secondary:hover{background:var(--secondary-hover);transform:translateY(-2px)}.btn{background:#fffde7;color:#e65100}.btn:hover{background:#ffe6d9;transform:translateY(-2px)}.btn-danger{background:#ffd1e0;color:#333}.btn-danger:hover{background:#ffb8d0;transform:translateY(-2px)}.btn.ghost{background:transparent;border:1px solid rgba(0,0,0,.1);color:#333}.btn.ghost:hover{background:rgba(0,0,0,.03);transform:translateY(-2px)}.btn-primary:disabled,.btn-secondary:disabled,.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.section{margin-top:1rem}.section-title{margin:0 0 .8rem}.teachers-wrap{display:flex;flex-direction:column;gap:1rem}.teacher-block{background:var(--card-bg);border-radius:14px;padding:1.1rem;border:1px solid rgba(0,0,0,.05);box-shadow:0 2px 10px #0000000a}.teacher-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:.8rem}.teacher-name{font-weight:900;color:var(--text-color);display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.rooms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.room-card{background:#fff;border-radius:14px;padding:1rem;border:1px solid rgba(0,0,0,.06);box-shadow:0 2px 12px #0000000a}.room-name{font-weight:900;color:var(--text-color);font-size:1.05rem}.room-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.9rem}.room-divider{height:1px;background:rgba(0,0,0,.06);margin:.9rem 0}.assess-row{display:flex;justify-content:space-between;gap:1rem;align-items:center}.assess-title{font-weight:900;color:var(--text-color);font-size:.95rem}.assess-stats{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.35rem}.stat-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid rgba(0,0,0,.06);white-space:nowrap;background:#f3f4f6;border-color:#e5e7eb;color:#374151}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%);background:#111;color:#fff;padding:10px 14px;border-radius:999px;font-weight:900;box-shadow:0 10px 25px #0003;z-index:9999}@media (max-width: 900px){.teamdetail-nav,.teamdetail-content{padding:1rem}}.td-accordion-head{cursor:pointer;-webkit-user-select:none;user-select:none}.td-teacher-name{display:flex;align-items:center;gap:8px}.td-teacher-meta{display:flex;align-items:center;gap:10px}.td-chevron{font-weight:900;opacity:.65}.td-accordion-body{padding-top:10px}.td-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.35);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:flex-start;padding:64px 16px 24px;z-index:9999}.td-modal{width:min(860px,94vw);max-height:78vh;overflow:auto;background:#fff;border-radius:18px;border:1px solid rgba(0,0,0,.1);box-shadow:0 18px 50px #0000002e;padding:18px}@media (max-width: 600px){.td-modal-backdrop{padding:52px 12px 18px}.td-modal{width:96vw;max-height:82vh;padding:14px}}.td-modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.td-modal-title{font-weight:900;font-size:18px}.td-modal-controls{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.td-modal-search{flex:1 1 260px;min-width:220px;padding:10px 12px;border-radius:12px;border:1px solid rgba(0,0,0,.12);outline:none}.td-modal-select{padding:10px 12px;border-radius:12px;border:1px solid rgba(0,0,0,.12);background:white}.td-modal-list{display:grid;gap:12px;padding-bottom:4px}.td-assess-item{display:flex;justify-content:space-between;gap:14px;padding:14px;border-radius:16px;border:1px solid rgba(0,0,0,.1);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;background:#fff}.td-assess-item:hover{transform:translateY(-1px);box-shadow:0 10px 22px #00000014}.td-assess-left{min-width:0}.td-assess-title{font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:520px}.td-assess-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.td-assess-stats{display:flex;gap:6px;flex-wrap:wrap}.td-tag{display:inline-block;padding:3px 8px;border-radius:999px;border:1px solid rgba(0,0,0,.1);margin-right:8px;font-size:12px;font-weight:800}.stat-pill--assigned{background:#f2f2f2;border:1px solid #e2e2e2;color:#555}.stat-pill--submitted{background:#fff2e6;border:1px solid #ffd8b5;color:#ad5a00}.stat-pill--completed{background:#eaf7ef;border:1px solid #cfeedd;color:#0f5132}.td-members-list{display:flex;flex-wrap:wrap;gap:8px}.td-member-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;border:1px solid rgba(0,0,0,.1);background:#fff}.td-member-name{font-weight:800}.td-member-actions{display:inline-flex;gap:6px;margin-left:8px}.td-mini-btn{border:1px solid rgba(0,0,0,.12);background:#fff;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:800;cursor:pointer}.td-mini-btn:hover{transform:translateY(-1px)}.td-mini-btn.danger{border-color:#b4235b40;color:#b4235b}.td-mini-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.modal-wide{width:92%;max-width:920px}.teacher-head-btn{width:100%;text-align:left;background:white;border:1px solid rgba(0,0,0,.06);border-radius:12px;padding:12px 14px;display:flex;justify-content:space-between;gap:12px;cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}.teacher-head-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0000000f}.teacher-body{padding:12px 6px 2px}.member-list{display:grid;gap:10px}.member-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border:1px solid rgba(0,0,0,.06);border-radius:12px;background:white}.member-name{font-weight:800}.pill.member{background:rgba(0,0,0,.03);border-color:#0000000f;color:#0009}.assess-list{display:grid;gap:10px}.assess-item{border:1px solid rgba(0,0,0,.06);border-radius:14px;overflow:hidden;background:white}.assess-item-head{width:100%;text-align:left;padding:12px 14px;background:white;border:none;display:flex;justify-content:space-between;gap:12px;cursor:pointer}.assess-item-head:hover{background:rgba(0,0,0,.02)}.assess-item-title{font-weight:900}.assess-item-body{padding:12px 14px 14px;border-top:1px solid rgba(0,0,0,.06);background:rgba(0,0,0,.01)}.stat-assigned{background:#f3f4f6;border-color:#e5e7eb;color:#374151}.stat-submitted{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.stat-completed{background:#eaf7ef;border-color:#cfeedd;color:#0f5132}.assess-students{display:grid;gap:8px;margin-top:6px}.assess-student-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;background:white;border:1px solid rgba(0,0,0,.06);border-radius:12px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.assess-student-row:hover{transform:translateY(-1px);box-shadow:0 10px 22px #0000000f}.assess-student-name{font-weight:800}.assess-student-right{display:flex;align-items:center;gap:10px}.status-pill{padding:4px 10px;border-radius:999px;font-size:12px;font-weight:900;border:1px solid rgba(0,0,0,.06)}.status-assigned{background:#f3f4f6;border-color:#e5e7eb;color:#374151}.status-submitted{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.status-completed{background:#eaf7ef;border-color:#cfeedd;color:#0f5132}.main-container{min-height:100vh;background-color:#f5f5f0;padding:2rem;font-family:Montserrat,sans-serif}.main-container .back-button{background:#fff;border:1px solid #e8e8e8;padding:10px 18px;cursor:pointer;color:#555;font-size:14px;font-weight:500;border-radius:12px;transition:all .2s ease;box-shadow:0 2px 8px #0000000a;font-family:Montserrat,sans-serif}.main-container .back-button:hover{background:#f5f5f5;transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.main-content{max-width:1200px;margin:0 auto;padding:2rem;text-align:center}.main-title{font-size:2.5rem;color:#333;margin-bottom:.5rem;font-weight:800;letter-spacing:-.02em}.subtitle{color:#666;margin-bottom:3rem;font-weight:500}.card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;max-width:900px;margin:0 auto}.card{background:white;border-radius:20px;padding:2rem;text-align:center;box-shadow:0 4px 16px #0000000d;display:flex;flex-direction:column;align-items:center;gap:1rem;transition:all .3s ease;position:relative;overflow:hidden;border:1px solid rgba(0,0,0,.04);cursor:pointer}.card:hover{transform:translateY(-6px);box-shadow:0 12px 32px #0000001a}.card:before{content:"";position:absolute;width:100%;height:100%;background:radial-gradient(circle at center,rgba(255,255,255,.8) 0%,rgba(255,255,255,0) 70%);top:-150%;left:-150%;transition:all .5s ease}.card:hover:before{top:-50%;left:-50%}.card:hover .card-icon{transform:scale(1.1) rotate(5deg)}.card-icon{width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;margin-bottom:.5rem;transition:transform .3s ease}.n-icon{background-color:#e8faf1;color:#4ade80}.a-icon{background-color:#f0f7ff;color:#3b82f6}.t-icon{background-color:#fff7d6;color:#f59e0b}.f-icon,.four-icon{background-color:#ffe5ec;color:#e11d48}.r-icon{background-color:#f2e8ff;color:#8b5cf6}.m-icon{background-color:#e7f0ff;color:#2563eb}.card h2{font-size:1.3rem;color:#333;margin:0;font-weight:700}.card p{color:#888;margin:0;font-size:.9rem;font-weight:500}@media (max-width: 600px){.card-grid{grid-template-columns:1fr}.main-title{font-size:2rem}}html,body{margin:0;padding:0;background-color:#faf7f2;font-family:Montserrat,sans-serif}.addition .operation-icon{background-color:#e7f8ec;color:#38a169}.subtraction .operation-icon{background-color:#ffefef;color:#e53e3e}.multiplication .operation-icon{background-color:#fff7e6;color:#dd6b20}.division .operation-icon{background-color:#ebf8ff;color:#3182ce}.bedmas .operation-icon{background-color:#f7ebff;color:#805ad5}.mixed .operation-icon{background-color:#ecfdf5;color:#2f855a}.container{max-width:800px;margin:0 auto;padding:80px 20px 40px;font-family:Montserrat,sans-serif}h1{font-size:2.8rem;color:#333;margin-bottom:1rem;font-weight:800;text-align:center;letter-spacing:-.02em}.highlight{color:#ff69b4;position:relative;display:inline-block}.highlight:after{content:"";position:absolute;width:100%;height:8px;background:rgba(255,105,180,.2);bottom:5px;left:0;z-index:-1;border-radius:4px}.subtitle{font-size:1.2rem;color:#666;margin-bottom:2rem;text-align:center;font-weight:500}.stages-grid{display:grid;grid-template-columns:1fr;max-width:700px;margin:0 auto;gap:1.5rem}.stage-card{border-radius:20px;padding:2rem;text-align:left;transition:all .3s ease;box-shadow:0 4px 16px #0000000f;display:flex;flex-direction:column;align-items:flex-start;overflow:hidden;position:relative;font-family:Montserrat,sans-serif;border:1px solid rgba(0,0,0,.04)}.stage-card:before{content:"";position:absolute;width:120px;height:120px;background:rgba(255,255,255,.1);border-radius:50%;top:-60px;right:-60px}.stage-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px #0000001a}.stage-card{background:#FFEBEE}.stage-card:nth-child(2){background:#FFF3E0}.stage-card:nth-child(3){background:#E8F5E9}.stage-card:nth-child(4){background:#E3F2FD}.stage-header{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:1.5rem}.stage-header--clickable{cursor:pointer;-webkit-user-select:none;user-select:none;margin-bottom:0;align-items:flex-start}.stage-header-left{flex:1;min-width:0}.stage-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.stage-chevron{font-size:1.4rem;color:#999;transition:transform .25s ease;display:inline-block}.stage-chevron--open{transform:rotate(180deg)}.stage-description-inline{font-size:.9rem;color:#888;font-weight:500;margin-top:2px}.stage-card--open .stage-header--clickable{margin-bottom:1rem}.stage-title{font-size:1.8rem;font-weight:800;color:#333;letter-spacing:-.01em}.progress-badge{background-color:#fff6;padding:.5rem 1rem;border-radius:20px;font-size:.85rem;font-weight:700;color:#555}.stage-description{font-size:1.05rem;color:#666;margin-bottom:1.5rem;font-weight:500}.levels-container{width:100%}.level-btn{background-color:#ffffffd9;border:none;padding:1rem 1.2rem;border-radius:16px;font-size:1.05rem;font-weight:600;cursor:pointer;transition:all .3s ease;width:100%;text-align:left;display:flex;flex-direction:column;box-shadow:0 2px 8px #0000000a;color:#444;position:relative;overflow:hidden;margin-bottom:.8rem;font-family:Montserrat,sans-serif}.level-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00000014;background-color:#fffffff2}.level-title-line{display:flex;justify-content:space-between;align-items:center;margin-bottom:.3rem}.level-id{font-weight:800;font-size:1.15rem;color:#333}.check-icon{color:#10b981;font-weight:700}.level-description{font-size:.95rem;color:#666;margin-bottom:.2rem;font-weight:500}.working-on-text{color:#f59e0b;font-size:.85rem;font-weight:700;margin-top:.3rem}.level-btn:after{content:"";position:absolute;left:0;top:0;height:100%;width:8px;border-radius:4px 0 0 4px}.level-btn.completed:after{background:#10b981;width:12px}.level-btn.working-on:after{background:#f59e0b;width:12px}.self-test-section{margin-top:.75rem;padding:.85rem 0 .25rem;border-top:1.5px dashed rgba(0,0,0,.12)}.stage-card--open .self-test-section{margin-top:0}.self-test-unlock-label{font-family:Montserrat,sans-serif;font-size:.78rem;font-weight:700;color:#92400e;letter-spacing:.02em;text-transform:uppercase;display:flex;align-items:center;gap:.35rem;margin-bottom:.75rem;opacity:.85}.self-test-btns{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.self-test-btn{display:inline-flex;align-items:center;gap:.45rem;padding:.6rem 1.1rem;background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff;border:none;border-radius:12px;font-family:Montserrat,sans-serif;font-weight:700;font-size:.88rem;cursor:pointer;box-shadow:0 4px 14px #f9731647;transition:transform .18s ease,box-shadow .18s ease}.self-test-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #f9731661}.self-test-btn:disabled{opacity:.65;cursor:not-allowed}.self-test-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 5px;border-radius:10px;background:rgba(255,255,255,.28);font-size:.78rem;font-weight:800}.self-test-result-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.1rem;background:rgba(255,255,255,.82);color:#92400e;border:1.5px solid rgba(245,158,11,.4);border-radius:12px;font-family:Montserrat,sans-serif;font-weight:600;font-size:.88rem;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.self-test-result-btn:hover{background:rgba(255,255,255,.97);border-color:#f59e0b;transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b2e}.back-button{position:fixed;top:20px;left:20px;background:#fff;border:1px solid #e8e8e8;border-radius:12px;padding:10px 18px;font-size:14px;cursor:pointer;box-shadow:0 2px 8px #0000000a;display:flex;align-items:center;color:#555;transition:all .2s ease;font-weight:600;z-index:100;font-family:Montserrat,sans-serif}@media (max-width: 768px){.container{padding:70px 10px 30px}h1{font-size:2.2rem}.stage-title{font-size:1.5rem}.stage-header--clickable{flex-direction:column;gap:6px}.stage-header-right{width:100%;justify-content:space-between}.level-btn{padding:.8rem 1rem}}.multiplication-container{min-height:100vh;background-color:#f5f5f0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:2rem;font-family:Montserrat,sans-serif}.guide-button{display:inline-flex;align-items:center;padding:.8rem 1.5rem;border:none;border-radius:14px;cursor:pointer;transition:all .3s ease;margin-bottom:3rem;color:#fff;font-size:1.15rem;font-weight:700;font-family:Montserrat,sans-serif}.guide-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0000001f}.multiplication .guide-button{background:linear-gradient(135deg,#FF69B4,#ff8fc7);box-shadow:0 4px 16px #ff69b44d}.multiplication .guide-button:hover{background:linear-gradient(135deg,#ff79bc,#ff9fd0);box-shadow:0 6px 20px #ff69b466}.guide-button svg{margin-right:.5rem;width:20px;height:20px}.energy-container{display:flex;align-items:center;width:100%;margin:1rem 0 1.5rem}.energy-bar{flex-grow:1;height:12px;background:rgba(255,255,255,.5);border-radius:6px;overflow:hidden;position:relative;box-shadow:inset 0 1px 3px #00000026}.energy-fill{height:100%;width:0%;border-radius:6px;transition:width .5s ease}.multiplication .energy-fill{background:linear-gradient(90deg,#FF69B4,#ff8fc7)}.celebration-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:1000;opacity:0;visibility:hidden;transition:opacity .5s ease,visibility .5s ease}.celebration-modal.show{opacity:1;visibility:visible;animation:modalFadeIn .5s ease forwards}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.celebration-content{background:linear-gradient(135deg,#fff,#fafafa);padding:2rem;border-radius:24px;box-shadow:0 20px 60px #00000026,0 0 20px #ff69b433;text-align:center;max-width:500px;width:90%;position:relative;overflow:hidden;animation:contentPop .5s ease forwards;border:1px solid rgba(255,255,255,.8);font-family:Montserrat,sans-serif}@keyframes contentPop{0%{transform:scale(.8)}50%{transform:scale(1.05)}to{transform:scale(1)}}.celebration-content h2{color:#ff69b4;font-size:2.2rem;margin-bottom:.8rem;font-weight:800;text-shadow:2px 2px 4px rgba(0,0,0,.05);animation:titleBounce 1s ease infinite alternate}@keyframes titleBounce{0%{transform:translateY(0)}to{transform:translateY(-5px)}}.celebration-content p{color:#555;font-size:1.1rem;margin-bottom:1.5rem;line-height:1.5;font-weight:500}.button-group{display:flex;justify-content:center;gap:15px;margin-top:20px}.celebration-btn{padding:12px 25px;border:none;border-radius:50px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden;box-shadow:0 4px 16px #0000001a;font-family:Montserrat,sans-serif}.celebration-btn:hover{transform:translateY(-3px);box-shadow:0 6px 20px #00000026}.celebration-btn:active{transform:translateY(-1px)}.continue-btn{background:linear-gradient(135deg,#ff69b4,#ff8cc6);color:#fff}.continue-btn:hover{background:linear-gradient(135deg,#ff5baa,#ff7dbd)}.next-btn,.next-stage-btn{background:linear-gradient(135deg,#10b981,#34d399);color:#fff}.next-btn:hover,.next-stage-btn:hover{background:linear-gradient(135deg,#059669,#2dd4bf)}.confetti{position:fixed;width:15px;height:15px;background-color:#ff69b4;opacity:.8;border-radius:50%;animation:fall 3s ease-in-out forwards;z-index:1001;pointer-events:none}.confetti.square{border-radius:2px;width:10px;height:10px}.confetti.rect{border-radius:0;width:8px;height:16px;transform-origin:center}@keyframes fall{0%{transform:translateY(-100px) rotate(0);opacity:1}25%{opacity:1;transform:translateY(25vh) rotate(90deg) scale(1.2)}50%{transform:translateY(50vh) rotate(180deg) scale(1);opacity:.8}75%{transform:translateY(75vh) rotate(270deg) scale(.8);opacity:.6}to{transform:translateY(100vh) rotate(360deg) scale(.5);opacity:0}}.celebration-content:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(to right,rgba(255,255,255,0) 0%,rgba(255,255,255,.3) 50%,rgba(255,255,255,0) 100%);transform:rotate(30deg);animation:shimmer 4s infinite;pointer-events:none;z-index:-1}@keyframes shimmer{0%{transform:translate(-100%) rotate(30deg)}to{transform:translate(100%) rotate(30deg)}}.streak-display{width:100%;max-width:600px;margin:1rem auto 0;background:linear-gradient(45deg,#ff69b4,#ff8fc7);color:#fff;padding:.5rem 1rem;border-radius:50px;font-weight:600;box-shadow:0 2px 8px #ff69b466;transition:all .3s ease;z-index:10;text-align:center}.structure-card{background:#fff;border-radius:20px;padding:2rem;text-align:center;box-shadow:0 4px 6px #0000000d;display:flex;flex-direction:column;align-items:center;transition:all .3s ease;position:relative;overflow:hidden;cursor:pointer}.phase1 .structure-icon{background-color:#e7f8ec;color:#38a169}.phase2 .structure-icon{background-color:#ffefef;color:#e53e3e}.phase3 .structure-icon{background-color:#fff7e6;color:#dd6b20}.structure-name{font-size:1.2rem;font-weight:600;margin-bottom:.5rem;color:#333}.wh-toggle-btn{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:1000;display:flex;align-items:center;gap:8px;padding:14px 22px;background:linear-gradient(135deg,#ff69b4,#ff8fc7);color:#fff;border:none;border-radius:36px;font-size:1.05rem;font-weight:800;cursor:pointer;box-shadow:0 4px 20px #ff69b466,0 0 0 3px #ff69b426;transition:all .25s ease;font-family:Nunito,Montserrat,sans-serif;white-space:nowrap;animation:wh-pulse 2.5s ease-in-out infinite}@keyframes wh-pulse{0%,to{box-shadow:0 4px 20px #ff69b466,0 0 0 3px #ff69b426}50%{box-shadow:0 4px 24px #ff69b48c,0 0 0 6px #ff69b41a}}.wh-toggle-btn:hover{transform:translateY(-50%) scale(1.08);box-shadow:0 6px 24px #ff69b480;animation:none}.wh-toggle-btn.wh-toggle-open{right:420px;background:linear-gradient(135deg,#e74c3c,#ff6b6b);color:#fff;box-shadow:0 4px 16px #e74c3c59;animation:none;padding:12px 20px}.wh-toggle-btn.wh-toggle-open:hover{box-shadow:0 6px 20px #e74c3c80}.wh-toggle-icon{font-size:1.3rem;line-height:1}.wh-toggle-label{font-size:.95rem}.wh-panel{position:fixed;right:-430px;top:0;width:410px;height:100vh;background:#fffaf5;box-shadow:-4px 0 28px #0000001f;z-index:999;transition:right .35s cubic-bezier(.4,0,.2,1);overflow:hidden;display:flex;flex-direction:column;font-family:Nunito,Montserrat,sans-serif}.wh-panel-open{right:0}.wh-panel-inner{display:flex;flex-direction:column;height:100%}.wh-header{display:flex;align-items:center;gap:10px;padding:16px 20px;background:linear-gradient(135deg,#ff69b4,#ff8fc7);color:#fff;flex-shrink:0}.wh-header-icon{font-size:1.5rem}.wh-header-title{font-weight:800;font-size:1.25rem;flex:1}.wh-warning{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#fff3cd;border-bottom:1px solid #f0d78c;font-size:.95rem;font-weight:700;color:#856404;flex-shrink:0}.wh-warning-icon{font-size:1.15rem}.wh-body{flex:1;overflow-y:auto;padding:14px 20px 28px}.wh-tips{margin-bottom:14px}.wh-tip{background:#e8f5e9;border-radius:8px;padding:10px 14px;font-size:.95rem;font-weight:600;color:#2e7d32;margin-bottom:8px}.wh-section{margin-bottom:16px}.wh-section-title{font-weight:800;font-size:1.05rem;color:#ff69b4;margin-bottom:8px;padding-bottom:5px;border-bottom:2px solid #ffe0ef}.wh-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}.wh-row{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:6px;background:#fff;border:1px solid #f0f0f0;transition:background .15s}.wh-row:hover{background:#fff0f6}.wh-num{font-weight:800;font-size:1rem;color:#333;min-width:55px;text-align:right}.wh-word{font-size:.95rem;color:#555;font-weight:600}@media (max-width: 768px){.wh-panel{width:320px;right:-340px}.wh-panel-open{right:0}.wh-toggle-btn{right:10px;padding:10px 14px;font-size:.9rem}.wh-toggle-btn.wh-toggle-open{right:330px}.wh-toggle-label{display:none}.wh-grid{grid-template-columns:1fr}.wh-num{font-size:.95rem}.wh-word{font-size:.9rem}}@media (max-width: 480px){.wh-panel{width:280px;right:-300px}.wh-toggle-btn.wh-toggle-open{right:290px}}.back-button{position:absolute;top:20px;left:20px;background:#fff;border:1px solid #e8e8e8;padding:10px 18px;cursor:pointer;color:#555;font-size:14px;font-weight:500;text-decoration:none;display:inline-block;border-radius:12px;transition:all .2s ease;box-shadow:0 2px 8px #0000000a;font-family:Montserrat,sans-serif}.back-button:hover{background:#f5f5f5;transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.container{max-width:750px;margin:80px auto 0;padding:2rem;text-align:center;position:relative;font-family:Montserrat,sans-serif}.container h1{font-size:2.5rem;margin-bottom:.5rem;font-weight:800;letter-spacing:-.02em}.subtitle{color:#666;margin-bottom:3rem;font-size:1.1rem;font-weight:500}.operations-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;max-width:900px;margin:0 auto}.operation-card{background:#fff;border-radius:20px;padding:2rem;text-align:center;box-shadow:0 4px 16px #0000000d;display:flex;flex-direction:column;align-items:center;transition:all .3s ease;position:relative;overflow:hidden;cursor:pointer;border:1px solid rgba(0,0,0,.04)}.operation-card:hover{transform:translateY(-6px);box-shadow:0 12px 32px #0000001a}.operation-icon{width:64px;height:64px;border-radius:16px;font-size:28px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;transition:transform .3s ease}.operation-name{font-size:1.2rem;font-weight:700;margin-bottom:.5rem;color:#333}.operation-description{color:#888;font-size:.9rem;margin:0;font-weight:500}.input-box{display:block;margin:1rem auto;width:200px;height:60px;font-size:2rem;text-align:center;border:2.5px solid #e0e0e0;border-radius:14px;transition:all .3s ease;font-family:Montserrat,sans-serif;font-weight:600;background:#fafbfc}.check-button{display:block;margin:.5rem auto 1rem;padding:.7rem 1.6rem;font-size:1.1rem;font-weight:700;border:none;border-radius:12px;background:linear-gradient(135deg,#ff69b4,#ff5c9d);color:#fff;cursor:pointer;transition:all .25s ease;font-family:Montserrat,sans-serif;box-shadow:0 4px 16px #ff69b44d}.instruction-text{font-size:1.25rem;font-weight:700;color:#333;margin-bottom:1rem}.choice-group{display:flex;justify-content:center;gap:1.5rem;margin-bottom:1rem}.choice-card{border:2px solid #e0e0e0;border-radius:14px;padding:1rem;cursor:pointer;transition:all .25s ease;display:flex;flex-direction:column;align-items:center;background:#fff}.choice-card:hover{transform:translateY(-4px);box-shadow:0 6px 20px #00000014}.choice-card.selected{border-color:#ff69b4;box-shadow:0 0 0 3px #ff69b433}.choice-card span{margin-top:.5rem;font-weight:700;color:#333}.cards-container{display:flex;justify-content:center;width:100%;max-width:600px;margin:0 auto 1rem;gap:1rem}.number-card{background:#fff;border:2px solid #e0e0e0;border-radius:12px;padding:1.5rem;width:3.5rem;height:3.5rem;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;box-shadow:0 2px 8px #0000000f;cursor:grab;transition:all .2s ease}.number-card:active{cursor:grabbing}.number-card:hover{transform:translateY(-4px);box-shadow:0 6px 16px #0000001a}.part-whole-container{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:1rem}.square-box{width:4.5rem;padding:.5rem;border:2px solid #333;border-radius:10px;background:#fff;text-align:center}.whole-box{width:6rem;padding:1rem .75rem;font-size:1.5rem}.part-row{display:flex;gap:1rem}.part-box{width:4.5rem;padding:.5rem;font-size:1.25rem}.square-box .label{font-size:.75rem;color:#666;margin-bottom:.25rem}.square-box .value,.square-box .part-input{font-size:1.25rem;font-weight:700;width:100%}.part-whole-container:before{top:1.5rem;left:calc(50% - 1.5rem)}.part-whole-container:after{top:1.5rem;left:calc(50% + 1.5rem)}.frac-input{display:inline-flex;flex-direction:column;align-items:center;margin:1rem auto}.frac-bar{width:100%;height:2px;background:#333;margin:2px 0}.frac-num,.frac-den{width:4.5rem;font-size:1.3rem;text-align:center;border:2px solid #e0e0e0;border-radius:8px;font-family:Montserrat,sans-serif;font-weight:600}.frac-num:focus,.frac-den:focus{outline:none;border-color:#ff69b4;box-shadow:0 0 0 3px #ff69b426}svg text{-webkit-user-select:none;user-select:none}.simplify-hint{font-size:.9rem;color:#666;-webkit-user-select:none;user-select:none;margin-left:4px}@media (max-width: 600px){.operations-grid{grid-template-columns:1fr}.part-row{flex-direction:column}}.operation-container{background-color:#f5f5f0;display:flex;flex-direction:column;align-items:center;padding:2rem;font-family:Montserrat,sans-serif}.game-container{width:100%;margin-top:3rem;text-align:center;position:relative}.back-button{align-self:flex-start;display:inline-flex;align-items:center;padding:10px 18px;background:#fff;border:1px solid #e8e8e8;border-radius:12px;cursor:pointer;box-shadow:0 2px 8px #0000000a;transition:all .2s ease;margin-bottom:2rem;color:#555;font-weight:500;font-size:14px;text-decoration:none;font-family:Montserrat,sans-serif}.back-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000014;background:#f5f5f5}.stage-box{background:#fff;border-radius:16px;padding:1rem 2rem;box-shadow:0 4px 16px #0000000f;margin-bottom:1rem;display:inline-block;border:1px solid rgba(0,0,0,.04)}.stage-box span{font-size:1.5rem;font-weight:700;color:#ff69b4}.problem-box{background:#fff;border-radius:20px;padding:2.5rem;box-shadow:0 8px 28px #00000014;margin-bottom:2rem;transform-origin:center;transition:all .3s ease;max-width:600px;margin-left:auto;margin-right:auto;border:1px solid rgba(0,0,0,.04)}.problem{font-size:2.5rem;font-weight:800;color:#333;margin-bottom:1rem}.multiplication,.addition-hint{font-size:2rem;font-weight:600;color:#333;margin-top:.5rem}.input-box{width:200px;height:60px;font-size:2rem;text-align:center;border:2.5px solid #e0e0e0;border-radius:14px;margin-top:1rem;margin-bottom:1rem;transition:all .3s ease;font-family:Montserrat,sans-serif;font-weight:600;background:#fafbfc}.input-box:focus{outline:none;border-color:#ff69b4;box-shadow:0 0 0 4px #ff69b426;background:#fff}.check-button{display:inline-block;padding:.7rem 1.6rem;font-size:1.1rem;font-weight:700;border:none;border-radius:12px;background:linear-gradient(135deg,#ff69b4,#ff5c9d);color:#fff;cursor:pointer;transition:all .25s ease;font-family:Montserrat,sans-serif;box-shadow:0 4px 16px #ff69b44d}.check-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ff69b466}.timer-button{display:inline-flex;align-items:center;gap:.4rem;padding:.75rem 1.6rem;font-size:1.25rem;font-weight:700;border:none;border-radius:50px;background:linear-gradient(135deg,#ff69b4,#ff8fc7);color:#fff;cursor:pointer;box-shadow:0 4px 16px #ff69b459;transition:all .25s ease;font-family:Montserrat,sans-serif}.timer-button:hover{transform:translateY(-3px);box-shadow:0 6px 20px #ff69b473}.timer-button:active{transform:translateY(0);box-shadow:0 3px 8px #ff69b44d}.message{font-size:1.2rem;font-weight:600;height:1.5rem;margin-top:1rem;opacity:0;transition:opacity .3s ease}.message.correct{color:#10b981;opacity:1}.message.incorrect{color:#ef4444;opacity:1}@keyframes correctPulse{0%{transform:scale(1)}50%{transform:scale(1.05);background-color:#10b98114}to{transform:scale(1)}}.streak-goal-hint{text-align:center;font-size:.85rem;font-weight:600;color:#b0b0b0;margin:.8rem auto .3rem;letter-spacing:.02em}.streak-display{width:100%;max-width:600px;margin:.4rem auto 0;padding:.6rem 1rem;border-radius:50px;font-weight:700;color:#fff;text-align:center;background:linear-gradient(135deg,#ff69b4,#ff8fc7);box-shadow:0 4px 16px #ff69b44d;transition:all .3s ease;z-index:10}.streak-display.streak-1,.streak-display.streak-2,.streak-display.streak-3,.streak-display.streak-4,.streak-display.streak-5,.streak-display.streak-6,.streak-display.streak-7,.streak-display.streak-8,.streak-display.streak-9,.streak-display.streak-10,.streak-display.streak-11,.streak-display.streak-12,.streak-display.streak-13,.streak-display.streak-14,.streak-display.streak-15,.streak-display.streak-16,.streak-display.streak-17,.streak-display.streak-18,.streak-display.streak-19{background:linear-gradient(135deg,#10b981,#34d399);box-shadow:0 4px 16px #10b9814d}.streak-display.streak-20{background:linear-gradient(135deg,#f59e0b,#fbbf24);box-shadow:0 4px 16px #f59e0b4d}.confetti{position:fixed;width:15px;height:15px;background:#ff69b4;opacity:.8;border-radius:50%;animation:fall 3s ease-in-out forwards;z-index:1001}.celebration-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:100;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.celebration-content{background:#fff;border-radius:24px;padding:2.5rem 3rem;text-align:center;box-shadow:0 20px 60px #00000026;font-family:Montserrat,sans-serif}.celebration-btn{margin:.5rem .75rem;padding:.7rem 1.6rem;font-size:1.05rem;font-weight:700;border:none;border-radius:12px;cursor:pointer;transition:all .25s ease;font-family:Montserrat,sans-serif}.continue-btn{background:linear-gradient(135deg,#10b981,#34d399);color:#fff;box-shadow:0 4px 16px #10b9814d}.next-stage-btn{background:linear-gradient(135deg,#3b82f6,#60a5fa);color:#fff;box-shadow:0 4px 16px #3b82f64d}.celebration-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000026}@media (max-width: 768px){.game-container{padding:70px 10px 30px;margin-top:2rem}.stage-box{font-size:.9rem;padding:.5rem 1rem}.problem-box{width:90%;padding:1.5rem;max-width:90%}.streak-display{max-width:90%}}.back-button{position:absolute;top:20px;left:20px;background:none;border:none;padding:8px 16px;cursor:pointer;color:#666;font-size:14px;text-decoration:none;display:inline-block;border-radius:8px;transition:background-color .2s ease}.container{max-width:1200px;margin:80px auto 0;padding:2rem;text-align:center;position:relative}.operations-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;max-width:900px;margin:0 auto}.operation-card{background:#fff;border-radius:20px;padding:2rem;text-align:center;box-shadow:0 4px 6px #0000000d;display:flex;flex-direction:column;align-items:center;transition:all .3s ease;position:relative;overflow:hidden;cursor:pointer}.operation-card:hover{transform:translateY(-10px);box-shadow:0 15px 30px #00000026}.operation-card:before{content:"";position:absolute;width:100%;height:100%;background:radial-gradient(circle at center,rgba(255,255,255,.8) 0%,rgba(255,255,255,0) 70%);top:-150%;left:-150%;transition:all .5s ease}.operation-card:hover:before{top:-50%;left:-50%}.operation-icon{width:60px;height:60px;border-radius:50%;font-size:28px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;transition:transform .2s ease}.operation-card:hover .operation-icon{transform:scale(1.1) rotate(5deg)}.length .operation-icon{background-color:#ebf8ff;color:#3182ce}.mass .operation-icon{background-color:#e7f8ec;color:#38a169}.capacity .operation-icon{background-color:#fff7e6;color:#dd6b20}.time .operation-icon{background-color:#ffefef;color:#e53e3e}.angle .operation-icon{background-color:#f7ebff;color:#805ad5}.operation-name{font-size:1.2rem;font-weight:600;margin-bottom:.5rem;color:#333}.operation-description{color:#666;font-size:.95rem;margin:0}@media (max-width: 600px){.operations-grid{grid-template-columns:1fr}}.operation-container{background-color:#faf7f2;display:flex;flex-direction:column;align-items:center;padding:2rem}.game-container{width:100%;max-width:none;margin:0;padding:0;text-align:center;position:relative;background:transparent;margin-top:3rem}.back-button{align-self:flex-start;display:inline-flex;align-items:center;padding:.5rem 1rem;background-color:#fff;border:none;border-radius:8px;cursor:pointer;box-shadow:0 2px 4px #0000001a;transition:all .2s ease;margin-bottom:2rem;text-decoration:none;color:#333}.back-button:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0003}.stage-box{background:white;border-radius:15px;padding:1rem 2rem;box-shadow:0 4px 8px #0000001a;margin-bottom:1rem;display:inline-block}.stage-box span{font-size:1.5rem;font-weight:600;color:#ff69b4}.problem-box{background:white;border-radius:20px;padding:2.5rem;box-shadow:0 8px 16px #0000001a;margin-bottom:2rem;transform-origin:center;transition:all .3s ease;position:relative;width:auto;max-width:600px;margin-left:auto;margin-right:auto}.problem{font-size:2.5rem;color:#333;margin-bottom:1rem;font-weight:700}.multiplication,.addition-hint{font-size:2rem;color:#333;margin-top:.5rem;font-weight:500}.input-box{width:200px;height:60px;font-size:2rem;text-align:center;border:3px solid #e0e0e0;border-radius:10px;margin-top:1rem;margin-bottom:1rem;transition:all .3s ease}.input-box:focus{outline:none;border-color:#ff69b4;box-shadow:0 0 8px #ff69b466}.check-button{display:inline-block;padding:.6rem 1.2rem;font-size:1.2rem;font-weight:500;border:none;border-radius:8px;background-color:#ff69b4;color:#fff;cursor:pointer;transition:all .2s ease}.check-button:hover{transform:translateY(-2px);box-shadow:0 4px 8px #ff69b44d}.btn-group{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:1rem}.choice-btn{padding:.6rem 1.2rem;font-size:1rem;font-weight:500;border:2px solid #e0e0e0;background-color:#fff;color:#333;border-radius:8px;cursor:pointer;text-transform:capitalize;transition:all .2s ease}.choice-btn:hover{background-color:#ff69b4;color:#fff;border-color:#ff69b4;transform:translateY(-2px);box-shadow:0 4px 8px #ff69b44d}.message{font-size:1.2rem;margin-top:1rem;font-weight:500;opacity:0;transition:opacity .3s ease;height:1.5rem}.message.correct{color:#2ecc71;opacity:1}.message.incorrect{color:#e74c3c;opacity:1}.correct-animation{animation:correctPulse .6s ease}.incorrect-animation{animation:incorrectShake .5s ease}@keyframes correctPulse{0%{transform:scale(1)}50%{transform:scale(1.05);background-color:#2ecc711a}to{transform:scale(1)}}@keyframes incorrectShake{0%,to{transform:translate(0)}20%,60%{transform:translate(-10px)}40%,80%{transform:translate(10px)}}.streak-display{width:100%;max-width:600px;margin:1rem auto 0;background:linear-gradient(45deg,#ff69b4,#ff8fc7);color:#fff;padding:.5rem 1rem;border-radius:50px;font-weight:600;box-shadow:0 2px 8px #ff69b466;text-align:center;transition:all .3s ease;z-index:10}.streak-animation{animation:streakPulse .5s ease}@keyframes streakPulse{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.confetti{position:fixed;width:15px;height:15px;background-color:#ff69b4;opacity:.8;border-radius:50%;animation:fall 3s ease-in-out forwards;z-index:1001}.confetti.square{border-radius:0;width:8px;height:8px}.confetti.rect{border-radius:0;width:8px;height:16px}@keyframes fall{0%{transform:translateY(0) rotate(0);opacity:.8}20%{opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.celebration-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:100;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.celebration-modal.show{opacity:1;visibility:visible}.bars-row{display:flex;justify-content:center;align-items:flex-end;gap:2rem;margin-bottom:1.25rem}.bar-col{display:flex;flex-direction:column;align-items:center;gap:.4rem}.bar-letter{font-size:1rem;font-weight:700;color:#475569;order:2}.ll-bar{width:44px;border-radius:6px 6px 0 0;transition:filter .15s ease}.ll-bar--clickable{cursor:pointer;box-shadow:0 2px 8px #00000026}.ll-bar--clickable:hover{filter:brightness(1.12);box-shadow:0 4px 14px #00000038;transform:scaleY(1.03);transform-origin:bottom}.ll-bar--selected{box-shadow:0 0 0 3px #ff69b466;filter:brightness(1.05)}.grid-wrap{display:flex;flex-direction:column;align-items:center;margin-bottom:1rem}.grid-top-label{font-weight:700;font-size:.9rem;color:#334155;margin:.1rem 0}.grid-row{display:flex;align-items:center;gap:.4rem}.grid-side-label{font-weight:700;font-size:.9rem;color:#334155;writing-mode:vertical-rl;transform:rotate(180deg)}.grid-cells{display:grid;border:2px solid #334155}.grid-cell{box-sizing:border-box;border:1px solid #94a3b8;background:#f0f9ff}.grid-cells--perimeter .grid-cell{background:#fff}.grid-cells--perimeter .grid-cell:nth-child(1){background:#bfdbfe}.ll-question{margin:1rem 0 .5rem;font-weight:600;font-size:1.35rem;line-height:1.35;color:#1e293b}.ll-hint{font-size:.9rem;color:#64748b;background:#f8fafc;border-left:3px solid #94a3b8;padding:.3rem .75rem;border-radius:4px;margin:0 0 .75rem;text-align:left}.input-row{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:.75rem}.unit-label{font-size:1.1rem;font-weight:600;color:#475569}.text-choice-btn{padding:.65rem 1.4rem;font-size:1rem;font-weight:600;border:2px solid #e2e8f0;background:#fff;color:#334155;border-radius:10px;cursor:pointer;transition:all .18s ease;min-width:80px;text-align:center}.text-choice-btn:hover{background:#ff69b4;color:#fff;border-color:#ff69b4;transform:translateY(-2px);box-shadow:0 4px 10px #ff69b44d}.two-rects-row{display:flex;justify-content:center;align-items:flex-end;gap:2.5rem;margin-bottom:.75rem;flex-wrap:wrap}.two-rect-item{display:flex;flex-direction:column;align-items:center;gap:.3rem}.two-rect-label{font-size:1.1rem;font-weight:700;color:#334155}.streak-display.streak-1,.streak-display.streak-2,.streak-display.streak-3,.streak-display.streak-4{background:linear-gradient(45deg,#2ecc71,#4cd137);box-shadow:0 2px 8px #2ecc7166}.streak-display.streak-5{background:linear-gradient(45deg,#f1c40f,#fbc531);box-shadow:0 2px 8px #f1c40f66}.celebration-content{background:white;border-radius:20px;padding:2.5rem;text-align:center;max-width:400px;width:90%;box-shadow:0 20px 60px #0000004d}.celebration-content h2{font-size:2rem;color:#ff69b4;margin-bottom:1rem}.celebration-content p{font-size:1.1rem;color:#555;margin-bottom:1.5rem}.celebration-btn{padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border:none;border-radius:10px;cursor:pointer;transition:all .2s ease}.continue-btn{background:#ff69b4;color:#fff}.next-stage-btn{background:#f0f0f0;color:#333}.continue-btn:hover,.next-stage-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.button-group{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}@media (max-width: 768px){.game-container{padding:70px 10px 30px;margin-top:2rem}.stage-box{font-size:.9rem;padding:8px 15px}.problem-box{width:90%;padding:1.5rem;max-width:90%}.streak-display{max-width:90%}}.objects-row{display:flex;justify-content:center;align-items:stretch;gap:1.5rem;margin-bottom:1.25rem;flex-wrap:wrap}.object-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.25rem 1.5rem;background:#fff;border:3px solid #e2e8f0;border-radius:16px;min-width:120px;transition:all .2s ease}.object-card--clickable{cursor:pointer;box-shadow:0 2px 8px #00000014}.object-card--clickable:hover{border-color:#ff69b4;background:#fff0f6;transform:translateY(-4px);box-shadow:0 6px 16px #ff69b440}.object-card--selected{border-color:#ff69b4;box-shadow:0 0 0 3px #ff69b433;background:#fff0f6}.object-emoji{font-size:3rem;line-height:1}.object-name{font-size:1rem;font-weight:600;color:#334155;text-transform:capitalize;text-align:center}.balance-wrap{display:flex;justify-content:center;margin-bottom:1rem}.balance-wrap svg{display:block}.scale-display{display:flex;flex-direction:column;align-items:center;margin-bottom:1rem}.scale-reading{font-size:2.5rem;font-weight:700;color:#0f172a;background:#f0fdf4;border:3px solid #86efac;border-radius:12px;padding:.75rem 2rem;font-family:Courier New,monospace;letter-spacing:2px}.scale-label{font-size:.85rem;color:#64748b;margin-top:.35rem}.mass-cards-row{display:flex;justify-content:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.mass-card{background:#f8fafc;border:2px solid #cbd5e1;border-radius:10px;padding:.75rem 1.25rem;font-size:1.15rem;font-weight:600;color:#1e293b}@media (max-width: 768px){.objects-row{gap:1rem}.object-card{min-width:100px;padding:1rem}.object-emoji{font-size:2.4rem}.scale-reading{font-size:2rem;padding:.5rem 1.5rem}}body{margin:0;font-family:Montserrat,sans-serif;background-color:#faf7f2;color:#333}.back-button{position:absolute;top:20px;left:20px;background:none;border:none;padding:8px 16px;cursor:pointer;color:#666;font-size:14px;text-decoration:none;border-radius:8px;transition:background-color .2s ease}.back-button:hover{background-color:#0000000d}.container{max-width:750px;margin:80px auto 0;padding:2rem;text-align:center;position:relative}.container h1{font-size:2.5rem;margin-bottom:.5rem;font-weight:700}.highlight{color:#ff69b4}.subtitle{color:#666;margin-bottom:3rem;font-size:1.1rem}.structure-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;max-width:900px;margin:0 auto}.structure-card{background:#fff;border-radius:20px;padding:2rem;text-align:center;box-shadow:0 4px 6px #0000000d;display:flex;flex-direction:column;align-items:center;transition:all .3s ease;overflow:hidden;cursor:pointer}.structure-card:hover{transform:translateY(-10px);box-shadow:0 15px 30px #00000026}.structure-card:before{content:"";position:absolute;width:100%;height:100%;background:radial-gradient(circle at center,rgba(255,255,255,.8) 0%,rgba(255,255,255,0) 70%);top:-150%;left:-150%;transition:all .5s ease}.structure-card:hover:before{top:-50%;left:-50%}.structure-icon{width:60px;height:60px;border-radius:50%;font-size:28px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;transition:transform .2s ease}.structure-card:hover .structure-icon{transform:scale(1.1) rotate(5deg)}.decimalpv .structure-icon{background-color:#ecfeff;color:#2f855a;font-size:32px}.phase1 .structure-icon{background-color:#e0f7ff;color:#0ea5e9}.phase2 .structure-icon{background-color:#fff9e5;color:#f59e0b}.phase3 .structure-icon{background-color:#f5e8ff;color:#9333ea}.structure-name{font-size:1.2rem;font-weight:600;margin-bottom:.5rem}.structure-description{color:#666;font-size:.95rem;margin:0}@media (max-width: 600px){.structure-grid{grid-template-columns:1fr}}.inline-fraction{display:inline-flex;flex-direction:column;align-items:center;line-height:1}.inline-fraction .bar{width:100%;height:2px;background:#000;margin:2px 0}.sp-container{max-width:1060px;margin:0 auto;padding:32px 32px 72px;font-family:Montserrat,sans-serif;min-height:100vh;box-sizing:border-box}.sp-back-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border:1.5px solid #e5e7eb;border-radius:12px;background:#fff;color:#555;font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:600;cursor:pointer;box-shadow:0 2px 6px #0000000a;transition:all .2s ease;margin-bottom:28px}.sp-back-btn:hover{background:#f9fafb;border-color:#d1d5db;transform:translateY(-1px);box-shadow:0 4px 10px #00000012}.sp-header{text-align:center;margin-bottom:36px}.sp-avatar-lg{width:64px;height:64px;border-radius:50%;background:#ff69b4;color:#fff;display:flex;align-items:center;justify-content:center;font-family:Montserrat,sans-serif;font-size:1.3rem;font-weight:700;margin:0 auto 14px;box-shadow:0 4px 14px #ff69b459}.sp-title{font-family:Montserrat,sans-serif;font-size:2.1rem;font-weight:800;color:#1f2937;margin:0 0 8px;letter-spacing:-.02em}.sp-subtitle{font-family:Montserrat,sans-serif;font-size:1rem;color:#9ca3af;margin:0;font-weight:500}.sp-subtitle strong{color:#6b7280}.sp-search-wrapper{display:flex;justify-content:center;margin-bottom:20px}.sp-search-bar{position:relative;width:100%;max-width:500px}.sp-search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:silver;font-size:.85rem;pointer-events:none}.sp-search-input{width:100%;padding:12px 16px 12px 42px;border-radius:14px;border:1.5px solid #e8e8e8;background:#fff;font-family:Montserrat,sans-serif;font-size:.9rem;color:#333;outline:none;box-shadow:0 2px 8px #0000000a;transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box}.sp-search-input:focus{border-color:#ffb3d9;box-shadow:0 0 0 3px #ff69b41a}.sp-search-input::placeholder{color:#d1d5db}.sp-student-list{display:flex;flex-direction:column;gap:12px;max-width:860px;margin:0 auto;width:100%}.sp-student-card{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:16px;padding:14px 22px;box-shadow:0 2px 10px #0000000a;border:1.5px solid #f3f4f6;transition:all .2s ease}.sp-student-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000012;border-color:#ffe4f0}.sp-student-info{display:flex;align-items:center;gap:14px;min-width:0;flex:1}.sp-avatar{width:44px;height:44px;border-radius:50%;background:#ff69b4;color:#fff;display:flex;align-items:center;justify-content:center;font-family:Montserrat,sans-serif;font-size:.82rem;font-weight:700;flex-shrink:0;letter-spacing:.5px}.sp-student-name{font-family:Montserrat,sans-serif;font-size:1rem;font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-student-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.sp-btn-edit{width:36px;height:36px;border-radius:10px;border:1.5px solid #f0e0e8;background:#fff;color:#ff69b4;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease}.sp-btn-edit:hover{background:#fff0f5;border-color:#ff69b4}.sp-btn-recent{position:relative;padding:9px 16px;border-radius:10px;border:1.5px solid #ffb3d9;background:#fff;color:#ff69b4;font-family:Montserrat,sans-serif;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.sp-btn-recent:hover{background:#fff0f5;border-color:#ff69b4}.sp-badge{position:absolute;top:-7px;right:-7px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:700;font-family:Montserrat,sans-serif;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #ef444459}.sp-btn-progress{padding:9px 18px;border-radius:10px;border:none;background:#ff69b4;color:#fff;font-family:Montserrat,sans-serif;font-size:.82rem;font-weight:700;cursor:pointer;transition:all .2s ease;white-space:nowrap}.sp-btn-progress:hover{background:#e85aa0;transform:translateY(-1px);box-shadow:0 4px 12px #ff69b44d}.sp-empty{text-align:center;color:#9ca3af;font-family:Montserrat,sans-serif;font-size:.95rem;padding:3rem 0}.sp-areas-grid{display:flex;flex-direction:column;gap:14px;max-width:720px;margin:0 auto}.sp-area-card{display:flex;align-items:center;gap:20px;padding:22px 26px;border-radius:18px;border:1.5px solid #f3f4f6;background:#fff;cursor:pointer;text-align:left;box-shadow:0 2px 8px #0000000a;transition:all .2s ease}.sp-area-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000017;border-color:var(--area-color, #ff69b4)}.sp-area-icon{width:56px;height:56px;border-radius:16px;background:var(--area-bg, #fff0f6);display:flex;align-items:center;justify-content:center;flex-shrink:0}.sp-area-icon i{font-size:1.4rem;color:var(--area-color, #ff69b4)}.sp-area-text{flex:1;min-width:0}.sp-area-label{font-family:Montserrat,sans-serif;font-size:1.1rem;font-weight:700;color:#1f2937;margin-bottom:4px}.sp-area-desc{font-family:Montserrat,sans-serif;font-size:.85rem;color:#9ca3af;font-weight:500}.sp-area-arrow{font-size:.75rem;color:#d1d5db;flex-shrink:0;transition:color .2s ease,transform .2s ease}.sp-area-card:hover .sp-area-arrow{color:var(--area-color, #ff69b4);transform:translate(3px)}.sp-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px}.sp-modal{background:#fff;border-radius:20px;width:100%;max-width:480px;box-shadow:0 24px 70px #00000040;border:1px solid rgba(0,0,0,.06);display:flex;flex-direction:column;overflow:hidden;animation:spZoomIn .22s ease}.sp-modal--wide{max-width:860px;max-height:90vh}@keyframes spZoomIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.sp-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 14px;border-bottom:1px solid #f3f4f6}.sp-modal-title{font-family:Montserrat,sans-serif;font-size:1rem;font-weight:700;color:#1f2937}.sp-modal-close{width:32px;height:32px;border:1.5px solid #e5e7eb;border-radius:8px;background:#fff;color:#6b7280;font-size:1.1rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}.sp-modal-close:hover{background:#f9fafb;color:#374151}.sp-modal-body{padding:20px 22px;flex:1}.sp-modal-input{width:100%;padding:11px 14px;border:1.5px solid #e5e7eb;border-radius:12px;font-family:Montserrat,sans-serif;font-size:.9rem;color:#1f2937;outline:none;box-sizing:border-box;margin-bottom:12px;transition:border-color .2s ease,box-shadow .2s ease}.sp-modal-input:focus{border-color:#ff69b4;box-shadow:0 0 0 3px #ff69b41f}.sp-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px 18px;border-top:1px solid #f3f4f6}.sp-modal-btn{padding:10px 20px;border-radius:12px;font-family:Montserrat,sans-serif;font-size:.88rem;font-weight:700;cursor:pointer;transition:all .2s ease}.sp-modal-btn--primary{background:#ff69b4;color:#fff;border:none;box-shadow:0 3px 10px #ff69b44d}.sp-modal-btn--primary:hover{background:#e85aa0;transform:translateY(-1px)}.sp-modal-btn--ghost{background:#fff;color:#555;border:1.5px solid #e5e7eb}.sp-modal-btn--ghost:hover{background:#f9fafb}.sp-recent-section{margin-bottom:28px}.sp-recent-heading{font-family:Montserrat,sans-serif;font-size:.9rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.06em;margin:0 0 12px}.sp-recent-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.sp-recent-col{border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px}.sp-recent-col--can{background:rgba(46,125,50,.06);border:1.5px solid rgba(46,125,50,.15)}.sp-recent-col--work{background:rgba(245,127,23,.06);border:1.5px solid rgba(245,127,23,.15)}.sp-recent-col-title{font-family:Montserrat,sans-serif;font-size:.82rem;font-weight:700;margin-bottom:6px;display:flex;align-items:center;gap:6px}.sp-recent-col--can .sp-recent-col-title{color:#2e7d32}.sp-recent-col--work .sp-recent-col-title{color:#e65100}.rn-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.rn-empty{color:#9ca3af;font-size:.92rem;font-family:Montserrat,sans-serif;margin:8px 0}.rn-item{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:14px 16px;border-radius:12px;background:#fff;border:1px solid rgba(0,0,0,.07);box-shadow:0 1px 4px #0000000d}.rn-left{flex:1 1 160px;display:flex;align-items:center;gap:10px;min-height:36px}.rn-icon{flex:0 0 auto;font-weight:700;opacity:.9;font-size:1rem}.rn-icon.tick{color:#2e7d32}.rn-icon.arrow{color:#ef6c00}.rn-label{font-family:Montserrat,sans-serif;font-size:.92rem;line-height:1.4;color:#1f2937}.rn-actions{flex:0 0 auto;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.btn-remove{padding:7px 14px;border-radius:9999px;border:2px solid;background:transparent;font-weight:700;font-family:Montserrat,sans-serif;font-size:.8rem;white-space:nowrap;cursor:pointer;transition:all .15s ease}.btn-remove.green{color:#2e7d32;border-color:#a5d6a7}.btn-remove.orange{color:#ef6c00;border-color:#ffcc80}.btn-remove.green:hover{background:#2e7d32;color:#fff;border-color:#2e7d32}.btn-remove.orange:hover{background:#ef6c00;color:#fff;border-color:#ef6c00}.pill-year{padding:6px 13px;border-radius:9999px;border:0;background:#1b5e20;color:#fff;font-family:Montserrat,sans-serif;font-size:.8rem;font-weight:600;white-space:nowrap;cursor:pointer;transition:filter .12s ease,box-shadow .12s ease}.pill-year:hover{filter:brightness(1.08);box-shadow:0 3px 8px #0000001a}.student-progress-container,.student-progress-container .area-box h3,.student-progress-container .ops-box h3,.student-progress-container .can-do-box h3,.student-progress-container .working-on-box h3,.student-progress-container .rn-label,.student-progress-container .item-title,.student-progress-container .modal-content h2,.student-progress-container .modal-content input,.student-progress-container .students-table th,.student-progress-container .students-table td,.student-progress-container .sp-class-code,.student-progress-container .sp-search-input,.student-progress-container .sp-avatar,.student-progress-container .sp-student-name,.student-progress-container .sp-btn-recent,.student-progress-container .sp-btn-progress,.student-progress-container .sp-empty{font-family:Montserrat,sans-serif}.student-progress-container{display:flex;flex-direction:column;gap:1.2rem;padding:2rem;width:100%;min-height:100vh;position:relative;box-sizing:border-box;background-color:#faf7f2}.student-progress-container .btn{background:#fff;color:#555;padding:10px 18px;border:1.5px solid #e5e7eb;border-radius:12px;cursor:pointer;font-weight:600;font-size:14px;box-shadow:0 2px 8px #0000000a;transition:all .2s ease;font-family:Montserrat,sans-serif;display:inline-flex;align-items:center;justify-content:center}.student-progress-container .btn:hover{background:#f9fafb;transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.student-progress-container .btn-outline{background:#fff;color:#ff69b4;border:1.5px solid #ff69b4}.student-progress-container .btn-outline:hover{background:#fff0f5}.student-progress-container .learning-area-boxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin:2rem 0}.student-progress-container .area-box{background:#fff;border-radius:20px;padding:2rem;box-shadow:0 4px 16px #0000000d;text-align:center;cursor:pointer;transition:all .3s ease;border:1px solid rgba(0,0,0,.04)}.student-progress-container .area-box:hover{transform:translateY(-6px);box-shadow:0 12px 32px #0000001a}.student-progress-container .area-box h3{font-size:1.3rem;margin-bottom:1rem;font-weight:700}.student-progress-container .area-box.number-knowledge{border-top:5px solid #3b82f6}.student-progress-container .area-box.times-table{border-top:5px solid #f59e0b}.student-progress-container .area-box.four-operations{border-top:5px solid #ef4444}.student-progress-container .area-box.measurement{border-top:5px solid #10b981}.student-progress-container .area-box.rational-numbers{border-top:5px solid #8b5cf6}.student-progress-container .times-table-boxes,.student-progress-container .can-do-workingon-boxes{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:2rem 0}.student-progress-container .can-do-box{background:rgba(46,125,50,.08);border-left:5px solid #2e7d32;padding:1.5rem;border-radius:16px}.student-progress-container .can-do-box h3{color:#2e7d32;font-size:1.1rem;margin-top:0}.student-progress-container .working-on-box{background:rgba(245,127,23,.08);border-left:5px solid #f57f17;padding:1.5rem;border-radius:16px}.student-progress-container .working-on-box h3{color:#f57f17;font-size:1.1rem;margin-top:0}.student-progress-container .can-do-box ul,.student-progress-container .working-on-box ul{list-style:none;margin:0;padding:0}.student-progress-container .can-do-box li,.student-progress-container .working-on-box li{background:#fff;border-radius:10px;padding:1rem;margin-bottom:.8rem;box-shadow:0 2px 8px #0000000d;font-size:.95rem;color:#333;display:flex;align-items:center;justify-content:space-between}.student-progress-container .rn-list{list-style:none;margin:0;padding:0}.student-progress-container .working-on-box .rn-list>li:before,.student-progress-container .working-on-box .rn-list>li::marker{content:none!important}.student-progress-container .rn-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:0 1px #0000000a}.student-progress-container .rn-left{display:flex;align-items:center;gap:10px;min-height:42px}.student-progress-container .rn-icon{flex:0 0 auto;font-weight:700;opacity:.9}.student-progress-container .rn-icon.tick{color:#2e7d32}.student-progress-container .rn-icon.arrow{color:#ef6c00}.student-progress-container .rn-actions{display:flex;align-items:center;gap:10px;justify-content:flex-end}.student-progress-container .pill-year{padding:6px 12px;border-radius:9999px;border:0;background:#1b5e20;color:#fff;font-family:Montserrat,sans-serif;font-weight:600;font-size:.8rem;white-space:nowrap;cursor:pointer;transition:filter .12s ease}.student-progress-container .pill-year:hover{filter:brightness(1.08)}.student-progress-container .four-ops-boxes{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin:2rem 0}.student-progress-container .ops-box{background:#fff;border-radius:20px;padding:2rem;box-shadow:0 4px 16px #0000000d;text-align:center;cursor:pointer;transition:all .3s ease;border:1px solid rgba(0,0,0,.04)}.student-progress-container .ops-box:hover{transform:translateY(-6px);box-shadow:0 12px 32px #0000001a}.student-progress-container .ops-box h3{font-size:1.2rem;margin-bottom:1rem;font-weight:700}.student-progress-container .ops-box.addition{border-top:5px solid #4caf50}.student-progress-container .ops-box.subtraction{border-top:5px solid #2196f3}.student-progress-container .ops-box.multiplication{border-top:5px solid #ef4444}.student-progress-container .ops-box.division{border-top:5px solid #f59e0b}.student-progress-container .ops-box.bedmas{border-top:5px solid #8b5cf6}.student-progress-container .ops-box.word-problems{border-top:5px solid #607d8b}.student-progress-container .ops-box.length{border-top:5px solid #03a9f4}.student-progress-container .ops-box.mass{border-top:5px solid #2e7d32}.student-progress-container .ops-box.capacity{border-top:5px solid #f59e0b}.student-progress-container .ops-box.time{border-top:5px solid #e91e63}.student-progress-container .ops-box.angle{border-top:5px solid #673ab7}.student-progress-container .section-title{font-family:Montserrat,sans-serif;font-size:1.7rem;font-weight:800;color:#1f2937;margin:0;text-align:center}.student-progress-container .modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.45);display:flex;justify-content:center;align-items:center;z-index:1000}.student-progress-container .modal-content{background:#fff;padding:2rem;border-radius:20px;box-shadow:0 24px 70px #00000040;width:90%;max-width:500px}.student-progress-container .modal-content h2{color:#1f2937;margin-top:0;margin-bottom:1.5rem;font-family:Montserrat,sans-serif}.student-progress-container .modal-content input{width:100%;padding:.8rem;margin-bottom:1rem;border:1.5px solid #e5e7eb;border-radius:12px;font-size:1rem;font-family:Montserrat,sans-serif;box-sizing:border-box;outline:none;transition:border-color .2s,box-shadow .2s}.student-progress-container .modal-content input:focus{border-color:#ff69b4;box-shadow:0 0 0 3px #ff69b41f}.student-progress-container .modal-buttons{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem}.student-progress-container .progress-chart-container{background:#fff;border-radius:20px;padding:2rem;box-shadow:0 4px 16px #0000000d;margin:2rem 0}.student-progress-container .pill{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 12px;border-radius:9999px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.student-progress-container .pill-green{background:#155e2e;color:#fff}.student-progress-container .btn-outline-orange{border:1px solid #ffb36a;color:#c46800;background:#fff;border-radius:9999px;padding:6px 12px;cursor:pointer;font-family:Montserrat,sans-serif;font-weight:600}.student-progress-container .btn-outline-orange:hover{background:rgba(255,149,0,.08);border-color:#ff8a00}.student-progress-container .btn-remove{padding:6px 12px;border-radius:9999px;border:2px solid;background:transparent;font-weight:700;font-family:Montserrat,sans-serif;white-space:nowrap;cursor:pointer;transition:all .15s ease}.student-progress-container .btn-remove.green{color:#2e7d32;border-color:#a5d6a7}.student-progress-container .btn-remove.orange{color:#ef6c00;border-color:#ffcc80}.student-progress-container .btn-remove.green:hover{background:#2e7d32;color:#fff;border-color:#2e7d32}.student-progress-container .btn-remove.orange:hover{background:#ef6c00;color:#fff;border-color:#ef6c00}.student-progress-container .progress-item{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:16px 18px;border-radius:12px;background:#fff;box-shadow:0 1px #0000000a}.student-progress-container .can-do-box li.progress-item,.student-progress-container .working-on-box li.progress-item{display:grid!important;grid-template-columns:28px minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:16px 18px}.student-progress-container .can-do-box li.progress-item:before,.student-progress-container .working-on-box li.progress-item:before{content:none!important}@media (max-width: 768px){.sp-student-card{flex-direction:column;align-items:flex-start;gap:12px;padding:14px 16px}.sp-student-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.sp-recent-grid,.student-progress-container .times-table-boxes,.student-progress-container .can-do-workingon-boxes{grid-template-columns:1fr}.student-progress-container .four-ops-boxes{grid-template-columns:repeat(2,1fr)}.student-progress-container .learning-area-boxes{grid-template-columns:1fr}}@media (max-width: 480px){.sp-container{padding:16px 14px 40px}.sp-title{font-size:1.4rem}.sp-student-name{font-size:.9rem}.sp-btn-recent,.sp-btn-progress{font-size:.78rem;padding:8px 12px}.student-progress-container .four-ops-boxes{grid-template-columns:1fr}}.sp-top-actions{display:flex;justify-content:flex-end;margin-bottom:20px}.sp-btn-secondary{padding:10px 20px;border-radius:12px;border:1.5px solid #e5e7eb;background:#fff;color:#6b7280;font-family:Montserrat,sans-serif;font-size:.88rem;font-weight:600;cursor:pointer;transition:all .2s ease}.sp-btn-secondary:hover{background:#f9fafb;color:#374151}.sp-ops-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;max-width:920px;margin:0 auto}.sp-ops-card{background:#fff;border-radius:20px;padding:36px 24px 28px;border:1.5px solid #f3f4f6;border-top:4px solid var(--sp-card-color, #ff69b4);box-shadow:0 2px 10px #0000000d;cursor:pointer;text-align:center;transition:all .2s ease}.sp-ops-card:hover{transform:translateY(-5px);box-shadow:0 14px 32px #0000001c}.sp-ops-card-icon{font-size:2rem;margin-bottom:14px;color:var(--sp-card-color, #ff69b4)}.sp-ops-card-label{font-family:Montserrat,sans-serif;font-size:1.1rem;font-weight:700;color:#1f2937;margin-bottom:5px}.sp-ops-card-sub{font-family:Montserrat,sans-serif;font-size:.82rem;color:#9ca3af;font-weight:500}.sp-progress-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:8px}.sp-progress-box{border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:12px;min-height:260px}.sp-progress-box--can{background:rgba(46,125,50,.05);border:1.5px solid rgba(46,125,50,.2)}.sp-progress-box--work{background:rgba(245,127,23,.05);border:1.5px solid rgba(245,127,23,.2)}.sp-progress-heading{display:flex;align-items:center;gap:8px;font-family:Montserrat,sans-serif;font-size:1rem;font-weight:800;margin-bottom:6px;padding-bottom:12px;border-bottom:1.5px solid rgba(0,0,0,.07)}.sp-progress-box--can .sp-progress-heading{color:#2e7d32}.sp-progress-box--work .sp-progress-heading{color:#e65100}.sp-progress-count{font-size:.78rem;font-weight:500;color:#9ca3af;margin-left:2px}@media (max-width: 768px){.sp-container{padding:24px 20px 60px}.sp-ops-grid{grid-template-columns:repeat(2,1fr);gap:14px}.sp-ops-card{padding:28px 18px 22px}.sp-progress-box{min-height:auto;padding:18px}}@media (max-width: 640px){.sp-progress-grid{grid-template-columns:1fr}}@media (max-width: 380px){.sp-ops-grid{grid-template-columns:1fr}.sp-title{font-size:1.6rem}}.progress-overview-container{max-width:1400px;margin:0 auto;padding:32px 24px 72px;font-family:Montserrat,sans-serif;min-height:100vh;box-sizing:border-box}.progress-overview-container .back-button{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border:1.5px solid #e5e7eb;border-radius:12px;background:#fff;color:#555;font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:600;cursor:pointer;box-shadow:0 2px 6px #0000000a;transition:all .2s ease;margin-bottom:28px}.progress-overview-container .back-button:hover{background:#f9fafb;border-color:#d1d5db;transform:translateY(-1px);box-shadow:0 4px 10px #00000012}.progress-overview-container .po-header{text-align:center;margin-bottom:36px}.progress-overview-container h1{font-family:Montserrat,sans-serif;font-size:2.1rem;font-weight:800;color:#1f2937;margin:0 0 36px;letter-spacing:-.02em;text-align:center}.progress-overview-container .po-subtitle{font-family:Montserrat,sans-serif;font-size:1rem;color:#9ca3af;font-weight:500;margin:0}.progress-overview-container .learning-areas-boxes{display:flex;flex-direction:column;gap:14px;max-width:720px;margin:0 auto}.progress-overview-container .area-box{display:flex;align-items:center;gap:20px;padding:22px 26px;border-radius:18px;border:1.5px solid #f3f4f6;background:#fff;cursor:pointer;text-align:left;box-shadow:0 2px 8px #0000000a;transition:all .2s ease;width:100%;box-sizing:border-box}.progress-overview-container .area-box:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000017;border-color:var(--area-accent, #ff69b4)}.progress-overview-container .area-box-icon{width:56px;height:56px;border-radius:16px;background:var(--area-bg, #fff0f6);display:flex;align-items:center;justify-content:center;flex-shrink:0}.progress-overview-container .area-box-icon i{font-size:1.4rem;color:var(--area-accent, #ff69b4)}.progress-overview-container .area-box-text{flex:1;min-width:0}.progress-overview-container .area-box h3{font-family:Montserrat,sans-serif;font-size:1.1rem;font-weight:700;color:#1f2937;margin:0 0 4px}.progress-overview-container .area-box-desc{font-family:Montserrat,sans-serif;font-size:.85rem;color:#9ca3af;font-weight:500}.progress-overview-container .area-box-arrow{font-size:.75rem;color:#d1d5db;flex-shrink:0;transition:color .2s ease,transform .2s ease}.progress-overview-container .area-box:hover .area-box-arrow{color:var(--area-accent, #ff69b4);transform:translate(3px)}.progress-overview-container .four-ops-boxes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;max-width:920px;margin:0 auto}.progress-overview-container .ops-box{background:#fff;border-radius:20px;padding:36px 24px 28px;border:1.5px solid #f3f4f6;border-top:4px solid var(--op-color, #ff69b4);box-shadow:0 2px 10px #0000000d;cursor:pointer;text-align:center;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;gap:10px}.progress-overview-container .ops-box:hover{transform:translateY(-5px);box-shadow:0 14px 32px #0000001c}.progress-overview-container .ops-box .ops-icon{height:2.8rem;display:flex;align-items:center;justify-content:center}.progress-overview-container .ops-box .ops-icon i{font-size:2rem;color:var(--op-color, #ff69b4);line-height:1}.progress-overview-container .ops-box h3{font-family:Montserrat,sans-serif;font-size:1.05rem;font-weight:700;color:#1f2937;margin:0;white-space:nowrap}.progress-overview-container .ops-box .ops-sub{font-family:Montserrat,sans-serif;font-size:.82rem;color:#9ca3af;font-weight:500}.progress-overview-container .ops-box.addition{--op-color: #22c55e}.progress-overview-container .ops-box.subtraction{--op-color: #3b82f6}.progress-overview-container .ops-box.multiplication{--op-color: #ef4444}.progress-overview-container .ops-box.division{--op-color: #f59e0b}.progress-overview-container .ops-box.bedmas{--op-color: #8b5cf6}.progress-overview-container .ops-box.word-problems{--op-color: #607d8b}.progress-overview-container .ops-box.length{--op-color: #03a9f4}.progress-overview-container .ops-box.mass{--op-color: #2e7d32}.progress-overview-container .ops-box.capacity{--op-color: #f59e0b}.progress-overview-container .ops-box.time{--op-color: #e91e63}.progress-overview-container .ops-box.angle{--op-color: #673ab7}.progress-overview-container .table-scroll-wrapper{width:100%;overflow-x:auto;margin-top:20px;background:#fff;border-radius:18px;box-shadow:0 2px 12px #0000000f;border:1.5px solid #f3f4f6}.progress-overview-container table{border-collapse:collapse;margin:0;width:100%;font-family:Montserrat,sans-serif}.progress-overview-container table thead{background:#ff69b4}.progress-overview-container table thead th{padding:14px 16px;font-family:Montserrat,sans-serif;font-weight:700;font-size:.85rem;text-align:center;color:#fff;border-right:1px solid rgba(255,255,255,.2);letter-spacing:.01em}.progress-overview-container table thead th:last-child{border-right:none}.progress-overview-container table tbody td{border:1px solid #f3f4f6;padding:12px 14px;text-align:center;vertical-align:top;font-size:.88rem;color:#374151;transition:background-color .15s ease;min-width:140px}.progress-overview-container table tbody td:hover{background-color:#fdf8ff}.progress-overview-container .name-btn{display:block;width:100%;padding:8px 12px;margin:0 0 6px;background:#fff;border:1.5px solid #e5e7eb;border-left:4px solid currentColor;border-radius:10px;color:inherit;font-family:Montserrat,sans-serif;font-size:.82rem;font-weight:600;text-align:left;line-height:1.35;cursor:pointer;box-shadow:0 1px 3px #0000000a;transition:all .15s ease}.progress-overview-container .name-btn:hover{background:#f9fafb;transform:translateY(-1px);box-shadow:0 3px 8px #00000012}@media (max-width: 768px){.progress-overview-container{padding:24px 20px 60px}.progress-overview-container h1{font-size:1.6rem}.progress-overview-container .four-ops-boxes{grid-template-columns:repeat(2,1fr);gap:14px}.progress-overview-container .ops-box{padding:28px 18px 22px}}@media (max-width: 480px){.progress-overview-container .four-ops-boxes{grid-template-columns:1fr}.progress-overview-container table thead th,.progress-overview-container table tbody td{font-size:.78rem;padding:8px 10px}}.amodal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:999999}.amodal{position:relative;z-index:1000000;width:900px;height:600px;max-width:92vw;max-height:92vh;background:#fff;border-radius:16px;box-shadow:0 20px 40px #0003;overflow:hidden;display:flex;flex-direction:column;font-family:Montserrat,sans-serif}.amodal-header,.amodal-footer{padding:12px 16px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f1f1f1}.amodal-footer{border-top:1px solid #f1f1f1;border-bottom:none}.amodal-title{font-weight:700;font-family:Montserrat,sans-serif}.amodal-body{padding:12px 16px;flex:1;overflow:hidden}.amodal-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;height:100%}.amodal-col{display:flex;flex-direction:column;min-height:0}.col-title{font-weight:700;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;font-family:Montserrat,sans-serif}.list{display:flex;flex-direction:column;gap:8px}.list.scroll{flex:1;min-height:0;overflow:auto}.row{display:flex;align-items:center;gap:10px;border:2px solid #eee;padding:10px;border-radius:12px;background:#fff;text-align:left;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.row:hover{border-color:#ff69b4}.row.active{border-color:#ff69b4;box-shadow:0 0 0 3px #ff69b433}.row.chk{cursor:pointer}.row-title{font-weight:600;font-family:Montserrat,sans-serif}.row-sub{color:#777;font-size:.9rem;font-family:Montserrat,sans-serif}.empty{color:#777}.btn{background:#ff69b4;border:none;color:#fff;border-radius:12px;height:48px;padding:0 16px;cursor:pointer;font-family:Montserrat,sans-serif;font-weight:700}.btn.ghost{background:#fff;color:#444;border:2px solid #eee}.students-title .count{color:#888;font-weight:600;margin-left:6px}.students-title .sel{color:#444;font-size:.95rem}.row.chk input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:22px;height:22px;border:2px solid #f3c6da;border-radius:6px;background:#fff;position:relative;transition:background .12s ease,border-color .12s ease,transform .06s ease}.row.chk input[type=checkbox]:active{transform:scale(.98)}.row.chk input[type=checkbox]:after{content:"";position:absolute;top:50%;left:50%;width:12px;height:7px;border-left:3px solid transparent;border-bottom:3px solid transparent;transform:translate(-50%,-58%) rotate(-45deg);opacity:0;transition:opacity .12s ease,transform .12s ease}.row.chk input[type=checkbox]:checked{background:#ff69b4;border-color:#ff69b4}.row.chk input[type=checkbox]:checked:after{border-left-color:#fff;border-bottom-color:#fff;opacity:1;transform:translate(-50%,-58%) rotate(-45deg)}.all-toggle{background:#fff7fb;border-style:dashed;border-color:#ffd6ea}.all-toggle:hover{border-color:#ffc2de}.all-badge{margin-left:8px;font-size:.72rem;font-weight:800;padding:2px 6px;border-radius:999px;color:#a33c63;background:#ffe3f1;border:1px solid #ffd1e6}.row.chk.dim{opacity:.6}.stu-search{width:100%;box-sizing:border-box;height:44px;border:2px solid #eee;border-radius:10px;padding:0 12px;font-size:1rem;margin:2px 0 10px;font-family:Montserrat,sans-serif}.row:focus-visible{outline:3px solid rgba(255,105,180,.35)}@media (max-width: 1024px){.amodal{width:92vw;height:92vh}.amodal-cols{grid-template-columns:1fr}}:root{--sp-bg:#fff7fa;--sp-surface:#fff;--sp-bubble:#ffe6f0;--sp-text:#333;--sp-sub:#666;--sp-muted:#999;--sp-border:#f0dbe4;--sp-accent:#ff69b4;--sp-accent-600:#ec4f9d;--sp-good:#22c55e;--sp-warn:#f59e0b;--sp-green-bg:#f0fff4;--sp-amber-bg:#fffaf0}.sp-wrap{max-width:980px;margin:28px auto 36px;padding:0 16px 80px;background:linear-gradient(180deg,var(--sp-bg),#fff)}.sp-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.sp-crumb{font-weight:700;color:#b14d6e;letter-spacing:.2px}.sp-progress{height:10px;background:#ffe9f2;border-radius:999px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffd1e5;margin-bottom:16px}.sp-progress-bar{height:100%;width:0;background:linear-gradient(90deg,var(--sp-accent),var(--sp-accent-600));border-radius:999px;transition:width .35s ease}.sp-frame{min-height:420px}.sp-card{background:var(--sp-surface);border:1px solid var(--sp-border);border-radius:18px;padding:28px 24px;box-shadow:0 10px 26px #d6588614}.sp-card+.sp-card{margin-top:14px}.sp-title{font-size:2.4rem;margin:0 0 14px;color:#ba4c6c;font-weight:800}.sp-title.center{text-align:center}.sp-bubble{background:var(--sp-bubble);border:1px solid #ffd6e6;border-radius:16px;padding:16px}.sp-walt{font-size:1.35rem;line-height:1.75;color:var(--sp-text)}.sp-list{margin:6px 0 0 18px;color:var(--sp-text)}.sp-list li{margin:12px 0}.sp-note,.sp-sub{color:var(--sp-sub);margin-top:8px}.sp-steps{counter-reset:step}.sp-steps li{position:relative;list-style:none;margin:12px 0;padding-left:36px}.sp-steps li:before{counter-increment:step;content:counter(step);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:999px;display:grid;place-items:center;background:#ffd8ea;border:1px solid #ffc2de;color:#a43660;font-weight:800;font-size:.95rem}.sp-mini{margin-top:16px}.sp-mini-row{display:flex;gap:10px;align-items:center;margin-top:10px;flex-wrap:wrap}.sp-input{height:58px;min-width:220px;padding:0 12px;border:2px solid #f3c6da;border-radius:12px;font-size:1.2rem;background:#fff}.sp-input:focus{outline:none;border-color:var(--sp-accent);box-shadow:0 0 0 4px #ff69b426}.sp-mini-q{font-weight:700;font-size:1.1rem}.sp-options{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}.choice-pill{background:#fff;border:2px solid #f3c6da;border-radius:16px;padding:12px 16px;font-weight:700;cursor:pointer;min-width:190px}.choice-pill:hover{border-color:var(--sp-accent);transform:translateY(-1px)}.choice-pill:active{transform:translateY(0)}.sp-streakrow{display:flex;align-items:center;gap:12px;margin-top:12px}.sp-stem{margin-top:6px;color:#4b2b39;font-size:1.25rem}.sp-msg{margin-top:8px;font-weight:700}.sp-streak{margin-top:4px;font-weight:700}.sp-hint{color:#7a5a66;margin-top:6px}.qp-lights{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 10px}.qp-light{display:flex;align-items:center;gap:8px;padding:10px 12px;border:2px solid #ffe2ef;border-radius:999px;font-weight:700;background:#fff}.qp-light .dot{width:10px;height:10px;border-radius:999px;background:var(--sp-warn)}.qp-light.green{border-color:#bbf7d0;background:var(--sp-green-bg)}.qp-light.green .dot{background:var(--sp-good)}.qp-light.amber{border-color:#ffe8b3;background:var(--sp-amber-bg)}.sp-gate{margin-top:10px;color:#b45309;font-weight:700}.dots{display:flex;gap:6px;align-items:center}.light{width:14px;height:14px;border-radius:999px;border:2px solid #e7c2d2;background:transparent}.light.off{background:transparent}.light.green{background:var(--sp-good);border-color:#b0f1c6}.light.amber{background:var(--sp-warn);border-color:#ffd89a}.light.sm{width:12px;height:12px}.light.md{width:14px;height:14px}.light.lg{width:18px;height:18px}.qc-lights{display:flex;gap:6px;margin-left:auto}.sp-finish{display:flex;flex-direction:column;align-items:center;text-align:center}.sp-cele{font-size:56px;margin-top:10px}.sp-barrow{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;align-items:center;overflow-x:visible;padding:10px 6px}.sp-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.skill-card{border:2px solid #eee;border-radius:12px;padding:14px;background:#fff}.skill-card.done{background:#f7fff9;border-color:#d2f2de}.skill-title{font-weight:800;margin-bottom:8px}.skill-q{margin-bottom:6px}.skill-done{color:#2e7d32;font-weight:800}.sp-nav{position:sticky;bottom:0;-webkit-backdrop-filter:saturate(1.2) blur(6px);backdrop-filter:saturate(1.2) blur(6px);background:rgba(255,247,250,.85);border:1px solid #ffe0ef;border-radius:14px;padding:10px 12px;margin-top:16px;display:flex;justify-content:space-between;align-items:center;gap:10px;box-shadow:0 8px 30px #d6588614}.sp-i{color:#90536a;font-weight:700}.sp-wrap .btn{background:var(--sp-accent);border:none;color:#fff;border-radius:12px;height:44px;padding:0 16px;cursor:pointer;font-weight:800;letter-spacing:.2px;transition:transform .1s ease,box-shadow .2s ease,opacity .2s ease}.sp-wrap .btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px #ff69b447}.sp-wrap .btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.sp-wrap .btn.ghost{background:#fff;color:#a33c63;border:2px solid #ffd4e6}.sp-wrap .btn.outline{background:#fff;color:var(--sp-accent);border:2px solid var(--sp-accent)}.sp-wrap .btn.complete{background:linear-gradient(90deg,#ff68b4,#ff86c6);border:none}@media (max-width:840px){.sp-grid-2{grid-template-columns:1fr}}@media (max-width:640px){.qp-lights{grid-template-columns:1fr}}.sp-wrap{font-size:1.05rem}.psp-wrap{max-width:1020px;margin:28px auto 0;padding:0 16px;background:linear-gradient(180deg,#fff7fa,#fff);font-family:Montserrat,sans-serif;display:flex;flex-direction:column;height:calc(100vh - 56px)}.psp-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-shrink:0}.psp-crumb{font-weight:700;color:#b14d6e;letter-spacing:.2px}.psp-progress{height:8px;background:#ffe9f2;border-radius:999px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffd1e5;margin-bottom:12px;flex-shrink:0}.psp-progress-bar{height:100%;width:0;background:linear-gradient(90deg,#ff69b4,#ec4f9d);border-radius:999px;transition:width .35s ease}.psp-frame{flex:1;overflow-y:auto;padding-bottom:16px;min-height:0}.psp-nav{display:flex;justify-content:space-between;align-items:center;padding:10px 0;flex-shrink:0;border-top:1px solid #f0dbe4}.psp-i{font-weight:700;color:#b14d6e;font-size:.95rem}.psp-thumbstrip{flex-shrink:0;display:flex;gap:8px;padding:8px 0 12px;overflow-x:auto;border-top:1px solid #f0dbe4}.psp-thumbstrip::-webkit-scrollbar{height:6px}.psp-thumbstrip::-webkit-scrollbar-thumb{background:#f3c6da;border-radius:999px}.psp-thumb{flex-shrink:0;width:80px;height:52px;border:2px solid #f0dbe4;border-radius:10px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:border-color .2s,transform .15s;font-size:.65rem;color:#999;text-align:center;padding:2px 4px;overflow:hidden}.psp-thumb:hover{border-color:#ff69b4;transform:translateY(-2px)}.psp-thumb.active{border-color:#ec4f9d;background:#ffe6f0;color:#b14d6e;font-weight:700;box-shadow:0 2px 8px #ec4f9d2e}.psp-thumb-num{font-size:.7rem;font-weight:800;color:inherit}.psp-thumb-label{font-size:.55rem;line-height:1.2;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:72px}.psp-save-status{display:flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;padding:4px 12px;border-radius:999px;transition:all .3s ease}.psp-save-status.saving{color:#b45309;background:#fff7ed;border:1px solid #fed7aa}.psp-save-status.saved{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.psp-save-status.idle{color:#999;background:transparent;border:1px solid transparent}.psp-save-status.error{color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5}.psp-unsaved-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:9999}.psp-unsaved-modal{background:#fff;border-radius:16px;padding:28px 32px;max-width:400px;width:90%;box-shadow:0 20px 60px #00000040;text-align:center;font-family:Montserrat,sans-serif}.psp-unsaved-modal h3{margin:0 0 8px;color:#b14d6e;font-size:1.2rem}.psp-unsaved-modal p{color:#666;margin:0 0 20px;font-size:.95rem;line-height:1.5}.psp-unsaved-modal .psp-modal-btns{display:flex;gap:10px;justify-content:center}.psp-unsaved-modal .psp-modal-btns button{padding:10px 20px;border-radius:12px;border:none;font-weight:700;font-size:.95rem;cursor:pointer;font-family:Montserrat,sans-serif}.psp-unsaved-modal .psp-modal-btns .psp-stay{background:#ff69b4;color:#fff}.psp-unsaved-modal .psp-modal-btns .psp-leave{background:#f3f4f6;color:#374151}.psp-wrap .sp-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.psp-wrap .skill-card{border:2px solid #eee;border-radius:12px;padding:14px;background:#fff}.psp-wrap .skill-card.done{background:#f7fff9;border-color:#d2f2de}.psp-wrap .skill-title{font-weight:800;margin-bottom:8px;display:flex;align-items:center;gap:8px}.psp-wrap .skill-q{margin-bottom:6px}.psp-wrap .skill-done{color:#2e7d32;font-weight:800}.psp-wrap .qc-lights{display:flex;gap:6px;margin-left:auto}@media (max-width:780px){.psp-wrap .sp-grid-2{grid-template-columns:1fr}}.psp-print-container{display:none}.psp-print-btn{display:inline-flex;align-items:center}@media print{.psp-wrap{height:auto;overflow:visible}.psp-wrap .psp-topbar,.psp-wrap .psp-progress,.psp-wrap .psp-nav,.psp-wrap .psp-thumbstrip,.psp-wrap .psp-frame{display:none}.psp-wrap .psp-print-container{display:block}.psp-print-page{page-break-after:always;padding:24px 32px;box-sizing:border-box;min-height:100vh;display:flex;flex-direction:column;justify-content:center}.psp-print-page:last-child{page-break-after:auto}.psp-print-page-num{text-align:right;font-size:11px;color:#999;font-weight:700;margin-bottom:12px;font-family:Montserrat,sans-serif}.psp-wrap .sp-card,.psp-wrap .sp-bubble{box-shadow:none;border:1px solid #eee}}.pr-wrap{max-width:1100px;margin:0 auto;padding:24px 20px 60px;font-family:Montserrat,sans-serif}.pr-back{display:inline-flex;align-items:center;gap:6px;background:none;border:none;font-family:Montserrat,sans-serif;font-size:.92rem;font-weight:700;color:#888;cursor:pointer;margin-bottom:10px;padding:4px 0}.pr-back:hover{color:#b14d6e}.pr-heading{font-family:Montserrat,sans-serif;font-size:2.4rem;font-weight:800;color:#333;margin:0 0 20px}.pr-class-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.pr-class-btn{padding:10px 20px;border-radius:12px;border:2px solid #f3c6da;background:#fff;font-family:Montserrat,sans-serif;font-weight:700;font-size:.95rem;color:#555;cursor:pointer;transition:all .15s}.pr-class-btn:hover{background:#fff0f5;border-color:#ff69b4}.pr-class-btn.active{background:#ff69b4;color:#fff;border-color:#ff69b4}.pr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.pr-card{background:#fff;border:2px solid #f3e8ee;border-radius:16px;padding:18px 20px;cursor:pointer;transition:all .18s;position:relative}.pr-card:hover{border-color:#ff69b4;box-shadow:0 4px 20px #ff69b41f;transform:translateY(-2px)}.pr-card-name{font-size:1.1rem;font-weight:800;color:#2d2d2d;margin:0 0 8px}.pr-card-status{display:inline-block;padding:4px 10px;border-radius:999px;font-weight:700;font-size:.72rem;border:1px solid;letter-spacing:.2px;margin-bottom:8px}.pr-card-status.completed{background:#ecfdf5;color:#166534;border-color:#bbf7d0}.pr-card-status.in_progress{background:#fff7ed;color:#9a3412;border-color:#fed7aa}.pr-card-status.assigned{background:#f3f4f6;color:#374151;border-color:#e5e7eb}.pr-card-progress{display:flex;align-items:center;gap:8px;margin-bottom:6px}.pr-card-progress-bar-bg{flex:1;height:8px;border-radius:8px;background:#f3e8ee;overflow:hidden}.pr-card-progress-bar-fill{height:100%;border-radius:8px;background:linear-gradient(90deg,#ff69b4,#ff85c8);transition:width .3s}.pr-card-progress-label{font-size:.78rem;font-weight:700;color:#888;white-space:nowrap}.pr-card-slides{font-size:.82rem;font-weight:600;color:#777;margin-bottom:6px}.pr-card-prior{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.pr-prior-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:8px;font-size:.7rem;font-weight:700;border:1px solid}.pr-prior-chip.can{background:#f0fdf4;color:#16a34a;border-color:#bbf7d0}.pr-prior-chip.need{background:#fff7ed;color:#ea580c;border-color:#fed7aa}.pr-card-prior-pending{font-size:.72rem;font-weight:600;color:#9ca3af;margin-top:6px;font-style:italic}.pr-card-time{font-size:.75rem;color:#aaa;margin-top:6px}.pr-hover-preview{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);width:260px;background:#fff;border:2px solid #f3c6da;border-radius:14px;padding:14px 16px;box-shadow:0 8px 30px #0000001f;z-index:100;pointer-events:none}.pr-hover-preview:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #f3c6da}.pr-hover-title{font-size:.82rem;font-weight:800;color:#b14d6e;margin-bottom:4px}.pr-hover-type{font-size:.72rem;color:#888;font-weight:600;text-transform:capitalize;margin-bottom:6px}.pr-hover-data{font-size:.72rem;color:#555;line-height:1.5;max-height:120px;overflow:hidden}.pr-empty{text-align:center;color:#aaa;padding:40px;font-size:1rem;font-weight:600}.pr-loading{text-align:center;color:#aaa;padding:40px;font-size:1rem}.pr-detail-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.pr-detail-name{font-family:Montserrat,sans-serif;font-size:1.4rem;font-weight:800;color:#2d2d2d}.pr-remove-btn{position:absolute;top:10px;right:10px;background:none;border:1px solid #e5e7eb;border-radius:8px;padding:4px 10px;font-family:Montserrat,sans-serif;font-size:.72rem;font-weight:700;color:#aaa;cursor:pointer;opacity:0;transition:all .15s}.pr-card:hover .pr-remove-btn{opacity:1}.pr-remove-btn:hover{background:#fff1f2;border-color:#fecaca;color:#b91c1c}.pr-remove-all-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border:1.5px solid #fecaca;border-radius:10px;background:#fff;font-family:Montserrat,sans-serif;font-size:.82rem;font-weight:700;color:#b91c1c;cursor:pointer;transition:all .15s}.pr-remove-all-btn:hover{background:#fef2f2;box-shadow:0 2px 8px #b91c1c1f}.pr-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:3000}.pr-modal{width:min(440px,92vw);background:#fff;border-radius:20px;padding:36px 32px 30px;text-align:center;box-shadow:0 24px 60px #0000004d}.pr-modal-icon{width:56px;height:56px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px}.pr-modal-icon.danger{background:linear-gradient(135deg,#ef4444,#f87171);box-shadow:0 6px 20px #ef44444d}.pr-modal-title{margin:0 0 8px;font-size:1.25rem;font-weight:800;font-family:Montserrat,sans-serif;color:#1f2937}.pr-modal-text{margin:0 0 22px;font-size:.92rem;color:#6b7280;font-family:Montserrat,sans-serif;line-height:1.55}.pr-modal-actions{display:flex;gap:10px;justify-content:center}.pr-modal-btn{padding:10px 28px;border-radius:12px;border:none;font-weight:700;font-size:.92rem;font-family:Montserrat,sans-serif;cursor:pointer;transition:all .15s}.pr-modal-btn.cancel{background:#f3f4f6;color:#6b7280}.pr-modal-btn.cancel:hover{background:#e5e7eb}.pr-modal-btn.danger{background:linear-gradient(135deg,#ef4444,#f87171);color:#fff;box-shadow:0 4px 14px #ef44444d}.pr-modal-btn.danger:hover{box-shadow:0 6px 20px #ef444466}.pr-spinner{width:36px;height:36px;border:4px solid #f3f4f6;border-top:4px solid #ef4444;border-radius:50%;animation:pr-spin .8s linear infinite;margin:0 auto 1rem}@keyframes pr-spin{to{transform:rotate(360deg)}}.pr-chip-tip-wrap{position:relative;cursor:default}.pr-chip-tooltip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#1e293b;color:#f1f5f9;border-radius:10px;padding:10px 14px;min-width:220px;max-width:300px;font-size:.82rem;line-height:1.5;white-space:normal;box-shadow:0 8px 24px #00000040;z-index:100;pointer-events:none}.pr-chip-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#1e293b}.pr-chip-tip-wrap:hover .pr-chip-tooltip{display:flex;flex-direction:column;gap:4px}.pr-chip-tooltip strong{font-weight:800;margin-bottom:4px;font-size:.85rem;color:#fff}.pr-chip-tooltip-q{padding:3px 0;border-top:1px solid rgba(255,255,255,.12);font-size:.82rem}.pr-chip-tooltip-q:first-of-type{border-top:none}.pr-pc-toggle-btn{background:#f0f5ff;color:#3b5998;border:1px solid #c7d6f0;border-radius:10px;padding:8px 16px;font-weight:700;font-size:.82rem;cursor:pointer;font-family:Montserrat,sans-serif;transition:background .15s}.pr-pc-toggle-btn:hover{background:#dbe6f8}.pr-card-prior-section{margin-top:6px}.pr-pc-fold-btn{display:flex;align-items:center;gap:6px;background:none;border:none;padding:4px 0;cursor:pointer;font-family:Montserrat,sans-serif;font-size:.78rem;font-weight:700;color:#7c5b8a}.pr-pc-fold-btn:hover{color:#5b2e7c}.pr-pc-arrow{display:inline-block;transition:transform .2s ease;font-size:.85rem}.pr-pc-arrow.open{transform:rotate(90deg)}.pr-pc-summary{font-weight:600;color:#999;font-size:.72rem;margin-left:4px}:root{--asm-text: #111827;--asm-muted: #5f6368;--asm-border: #e5e7eb;--asm-card-border: #eef0f2;--asm-shadow-1: 0 8px 24px rgba(0,0,0,.06);--asm-shadow-2: 0 16px 40px rgba(0,0,0,.08);--asm-soft-shadow: 0 2px 0 rgba(0,0,0,.02), 0 8px 20px rgba(0,0,0,.04);--asm-ring: rgba(255,105,180,.28);--asm-pink-1: #ff7acb;--asm-pink-2: #ff4fa3}.asm-container{max-width:1100px;margin:0 auto;padding:80px 2rem 2rem;position:relative}.asm-inner{text-align:center}.asm-title{font-size:2.4rem;font-weight:800;margin:0 0 .35rem;color:#333}.asm-subtitle{color:#666;margin-bottom:2.2rem;font-size:1.05rem}.asm-back{position:absolute;top:18px;left:24px;height:44px;padding:0 14px;border-radius:12px;background:#fff;border:2px solid var(--asm-border);color:var(--asm-text);font-weight:800;cursor:pointer;box-shadow:var(--asm-soft-shadow)}.asm-back:hover{border-color:#e0e0e0}.asm-grid{display:grid;gap:1.25rem;align-items:stretch;justify-items:center}.asm-grid.asm-grid-4{grid-template-columns:repeat(4,minmax(220px,1fr))}@media (max-width:1100px){.asm-grid.asm-grid-4{grid-template-columns:repeat(2,minmax(220px,1fr))}}@media (max-width:720px){.asm-grid.asm-grid-4{grid-template-columns:1fr}}.asm-card{--ring: var(--asm-ring);position:relative;display:grid;grid-template-rows:auto 1fr auto;gap:.5rem;width:100%;max-width:320px;padding:1.4rem 1.2rem;border:2px solid var(--asm-card-border);border-radius:18px;background:#fff;box-shadow:var(--asm-shadow-1);cursor:pointer;text-align:left;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;overflow:hidden}.asm-card:hover{transform:translateY(-8px) scale(1.01);box-shadow:var(--asm-shadow-2);border-color:var(--ring)}.asm-card:before{content:"";position:absolute;top:-120%;right:-120%;bottom:-120%;left:-120%;background:radial-gradient(120px 120px at var(--mx, 50%) var(--my, 50%),rgba(255,255,255,.3),transparent 60%);opacity:0;transition:opacity .25s ease;pointer-events:none}.asm-card:hover:before{opacity:1}.asm-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-size:30px;font-weight:700;-webkit-user-select:none;user-select:none;margin-bottom:.25rem;background:#fff0f6;border:2px solid #ffe3f0}.asm-card-title{font-size:1.35rem;font-weight:800;margin:0 0 .25rem;color:#222;font-family:Montserrat,sans-serif}.asm-card-desc{margin:0;color:var(--asm-muted);line-height:1.35;min-height:2.6em;font-family:Montserrat,sans-serif}.asm-arrow{justify-self:end;font-size:1.4rem;transform:translate(-8px);opacity:0;transition:transform .25s ease,opacity .25s ease}.asm-card:hover .asm-arrow{transform:translate(0);opacity:1}.asm-badge{position:absolute;top:10px;right:10px;background:#eef2ff;color:#4f46e5;border:1px solid #dbe3ff;font-size:.72rem;font-weight:700;padding:.2rem .5rem;border-radius:999px}.asm-accent-pink{--ring: rgba(255,105,180,.28)}.asm-accent-blue{--ring: rgba(49,130,206,.25)}.asm-accent-purple{--ring: rgba(128,90,213,.25)}.asm-accent-orange{--ring: rgba(221,107,32,.25)}.asm-accent-green{--ring: rgba(56,161,105,.25)}.asm-btn{height:44px;padding:0 16px;border-radius:12px;font-weight:800;cursor:pointer}.asm-btn--primary{border:2px solid transparent;color:#fff;background:linear-gradient(135deg,var(--asm-pink-1),var(--asm-pink-2));box-shadow:var(--asm-soft-shadow)}.asm-btn--primary:hover{filter:brightness(1.05)}.asm-btn--ghost{background:#fff;color:var(--asm-text);border:2px solid var(--asm-border);box-shadow:var(--asm-soft-shadow)}.asm-btn--outline{background:#fff;color:var(--asm-text);border:2px solid var(--asm-text)}.asm-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.35);display:grid;place-items:center;z-index:9999;padding:16px}.asm-modal{width:min(520px,100%);background:#fff;border-radius:18px;border:2px solid var(--asm-border);box-shadow:var(--asm-shadow-2);padding:18px 18px 16px}.asm-modal-title{margin:0 0 6px;font-size:1.25rem;font-weight:800;color:var(--asm-text);font-family:Montserrat,sans-serif}.asm-modal-desc{margin:0 0 14px;color:var(--asm-muted);line-height:1.35;font-family:Montserrat,sans-serif}.asm-modal-actions{display:grid;gap:10px}.asm-modal-btn{height:44px;border-radius:12px;font-weight:700;cursor:pointer;border:2px solid transparent;font-family:Montserrat,sans-serif}.asm-modal-btn.primary{color:#fff;background:linear-gradient(135deg,var(--asm-pink-1),var(--asm-pink-2));box-shadow:var(--asm-soft-shadow)}.asm-modal-btn.primary:hover{filter:brightness(1.05)}.asm-modal-btn.ghost{background:#fff;color:var(--asm-text);border:2px solid var(--asm-border);box-shadow:var(--asm-soft-shadow)}.asm-modal-footnote{margin-top:12px;font-size:12px;color:var(--asm-muted)}:root{--ar-text: #111827;--ar-muted: #5f6368;--ar-border: #e5e7eb;--ar-card-border: #eef0f2;--ar-shadow-1: 0 8px 24px rgba(0,0,0,.06);--ar-shadow-2: 0 14px 30px rgba(0,0,0,.12);--ar-soft-shadow: 0 2px 0 rgba(0,0,0,.02), 0 8px 20px rgba(0,0,0,.04);--ar-pink-base:#ff69b4}.ar-container{max-width:1100px;margin:0 auto;padding:80px 2rem 2rem;position:relative}.ar-inner{text-align:center}.ar-title{font-size:2.4rem;font-weight:800;margin:0 0 .35rem;color:#333;font-family:Montserrat,sans-serif}.ar-subtitle{color:#666;margin-bottom:2.2rem;font-size:1.05rem;font-family:Montserrat,sans-serif}.ar-back{position:absolute;top:18px;left:24px;height:44px;padding:0 14px;border-radius:12px;background:#fff;border:2px solid var(--ar-border);color:var(--ar-text);font-weight:800;cursor:pointer;box-shadow:var(--ar-soft-shadow)}.ar-back:hover{border-color:#e0e0e0}.ar-filterbar{display:flex;gap:14px;align-items:center;margin:10px 0 20px}.ar-search{flex:1;max-width:420px;height:44px;border:2px solid var(--ar-border);border-radius:12px;padding:0 12px;font-size:1rem;box-shadow:var(--ar-soft-shadow)}.ar-grid{display:grid;gap:1.25rem;align-items:stretch;justify-items:center}.ar-grid.ar-grid-3{grid-template-columns:repeat(3,minmax(260px,1fr))}@media (max-width:1100px){.ar-grid.ar-grid-3{grid-template-columns:repeat(2,minmax(260px,1fr))}}@media (max-width:720px){.ar-grid.ar-grid-3{grid-template-columns:1fr}}.ar-lesson-card{display:flex;flex-direction:column;background:#fff;border-radius:18px;overflow:hidden;box-shadow:var(--ar-shadow-1);border:2px solid var(--ar-card-border);transition:transform .2s,box-shadow .2s,border-color .2s}.ar-lesson-card:hover{transform:translateY(-6px);box-shadow:var(--ar-shadow-2);border-color:#f1f3f5}.ar-lesson-thumb{height:140px;position:relative;display:flex;align-items:flex-end;justify-content:center;padding:14px}.ar-lesson-thumb-badge{position:absolute;top:12px;left:12px;background:#fff;border-radius:999px;padding:8px 10px;border:2px solid #eee}.ar-lesson-thumb-title{font-weight:800;font-size:1.1rem}.ar-lesson-body{padding:12px}.ar-lesson-title{font-weight:800;font-family:Montserrat,sans-serif}.ar-lesson-tags{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}.ar-lesson-tag{font-size:.8rem;background:#fff7fb;border:1px solid #ffd6ea;border-radius:6px;padding:2px 6px}.ar-lesson-actions{display:flex;gap:12px;padding:12px}.ar-btn{height:44px;padding:0 16px;border-radius:12px;font-weight:700;cursor:pointer;transition:filter .15s ease,transform .02s ease;box-shadow:var(--ar-soft-shadow);font-family:Montserrat,sans-serif}.ar-btn:active{transform:translateY(1px)}.ar-btn--ghost{background:#fff;color:var(--ar-text);border:2px solid var(--ar-border)}.ar-btn--ghost:hover{border-color:#e0e0e0}.ar-btn--primary{background:var(--ar-pink-base);color:#fff;border:2px solid var(--ar-pink-base)}.ar-btn--primary:hover{filter:brightness(1.03)}.ar-btn--primary:disabled{opacity:.6;cursor:not-allowed;filter:none}.ar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(17,24,39,.5);display:grid;place-items:center;z-index:70}.ar-modal{width:980px;height:680px;max-width:92vw;max-height:92vh;display:flex;flex-direction:column;background:#fff;border-radius:16px;box-shadow:0 20px 48px #00000047}.ar-modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #eef2f7}.ar-modal-title{font-weight:900}.ar-modal-body{overflow:auto;padding:12px 16px}.ar-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:#111827;color:#fff;border-radius:12px;padding:12px 16px;box-shadow:0 12px 28px #00000040;z-index:80;font-weight:800;letter-spacing:.2px}.ar-lesson-actions .ar-btn{font-weight:500;letter-spacing:.1px}:root{--rr-green:#16a34a;--rr-green-bg:#ecfdf5;--rr-green-bd:#bbf7d0;--rr-green-dark:#065f46;--rr-orange:#f59e0b;--rr-orange-bg:#fff7ed;--rr-orange-bd:#fed7aa;--rr-orange-dark:#92400e;--rr-gray:#6b7280;--rr-gray-bg:#f9fafb;--rr-border:#eee;--rr-header-bg:#fcfcfd;--rr-title:#111827;--rr-danger:#b91c1c}.rr-container{max-width:1200px;margin:20px auto;padding:0 16px;font-family:Montserrat,sans-serif}.rr-back{margin-bottom:12px}.rr-heading{display:flex;align-items:baseline;gap:10px;margin-bottom:6px;color:var(--rr-title)}.rr-sub{font-size:13px;color:#6b7280}.rr-box{background:#fff;border:1px solid var(--rr-border);border-radius:12px;padding:12px 14px}.rr-card{background:#fff;border:1px solid var(--rr-border);border-radius:14px;padding:14px 16px}.rr-muted{color:#777}.rr-header-list{display:grid;gap:10px}.rr-header-item{border:1px solid var(--rr-border);border-radius:10px;padding:10px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff}.rr-header-item--active{border:2px solid #ff69b4}.rr-header-right{display:flex;align-items:center;gap:10px}.rr-remove-btn{border:1px solid #fecaca;background:#fff;color:var(--rr-danger);border-radius:10px;padding:8px 12px;font-weight:800;cursor:pointer;font-family:Montserrat,sans-serif}.rr-legend{display:flex;gap:14px;font-size:12px;color:#555;align-items:center;flex-wrap:wrap}.rr-chip-swatch{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px}.rr-chip-green{background:var(--rr-green)}.rr-chip-orange{background:var(--rr-orange)}.rr-chip-gray{background:#e5e7eb;border:1px solid #d1d5db}.rr-heatmap{border:1px solid var(--rr-border);border-radius:12px;overflow:auto;box-shadow:0 1px 6px #0000000a}.rr-grid{display:grid;align-items:stretch}.rr-corner{position:sticky;left:0;top:0;zIndex:3;background:var(--rr-header-bg);border-right:1px solid var(--rr-border);border-bottom:1px solid var(--rr-border);padding:10px 12px;font-weight:800}.rr-xhead{position:sticky;top:0;z-index:2;writing-mode:vertical-rl;transform:rotate(180deg);text-align:center;font-size:12px;color:#374151;padding:8px 0;background:var(--rr-header-bg);border-bottom:1px solid var(--rr-border);border-right:1px solid var(--rr-border);font-weight:700}.rr-yhead{position:sticky;left:0;z-index:1;background:#fff;padding:10px 12px;border-right:1px solid var(--rr-border);border-bottom:1px solid var(--rr-border);font-weight:700;color:var(--rr-title)}.rr-cell{display:grid;place-items:center;height:38px;font-size:12px;font-weight:800;border-right:1px solid var(--rr-border);border-bottom:1px solid var(--rr-border);color:var(--rr-gray);background:var(--rr-gray-bg)}.rr-cell--can{background:var(--rr-green-bg);border-color:var(--rr-green-bd);color:var(--rr-green-dark)}.rr-cell--need{background:var(--rr-orange-bg);border-color:var(--rr-orange-bd);color:var(--rr-orange-dark)}.rr-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--rr-border);border-radius:12px;overflow:hidden}.rr-thead th{padding:12px 10px;font-size:13px;text-align:left;background:var(--rr-header-bg);border-bottom:1px solid var(--rr-border)}.rr-row{border-bottom:1px solid #f3f3f3}.rr-cell-pad{padding:12px 10px}.rr-student{font-weight:800;color:var(--rr-title)}.rr-num-green{color:var(--rr-green-dark);font-weight:800}.rr-num-orange{color:var(--rr-orange-dark);font-weight:800}.rr-chip{font-size:12px;padding:6px 10px;border-radius:999px;font-weight:700;display:inline-block}.rr-chip--completed{background:var(--rr-green-bg);border:1px solid var(--rr-green-bd);color:var(--rr-green-dark)}.rr-chip--need{background:var(--rr-orange-bg);border:1px solid var(--rr-orange-bd);color:var(--rr-orange-dark)}.rr-chip--progress{background:#f3f4f6;border:1px solid #d1d5db;color:#6b7280}.rr-chip--assigned{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.rr-chip--practiced{background:#fff0f6;border:1px solid #ffd1e0;color:#b4235b}.rr-btn-dark{background:#111827;color:#fff;border:none;padding:8px 12px;border-radius:10px;font-weight:800;cursor:pointer;font-family:Montserrat,sans-serif}.rr-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:3000}.rr-modal{width:min(560px,92vw);background:#fff;border-radius:16px;padding:20px;box-shadow:0 24px 60px #00000059}.rr-modal-actions{display:flex;justify-content:flex-end;gap:8px}.rr-year-board{background:#fff;border:1px solid var(--rr-border);border-radius:12px;padding:12px;box-shadow:0 1px 6px #0000000a;margin-bottom:12px}.rr-year-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:12px}@media (max-width: 900px){.rr-year-grid{grid-template-columns:repeat(4,minmax(110px,1fr))}}@media (max-width: 640px){.rr-year-grid{grid-template-columns:repeat(3,minmax(100px,1fr))}}.rr-year-cell{display:flex;align-items:center;justify-content:center;padding:10px 12px;border-radius:12px;font-weight:800;text-align:center;box-shadow:0 1px #0000000a;border:1px solid var(--rr-cell-bd, #f0f0f0);background:var(--rr-cell-bg, #fff);color:var(--rr-cell-fg, #111827)}.rr-year-cell.is-can{--rr-cell-bg:#eafaf0;--rr-cell-bd:#cde8d7;--rr-cell-fg:#1e7d3b}.rr-year-cell.is-need{--rr-cell-bg:#fff7e9;--rr-cell-bd:#ffe1bc;--rr-cell-fg:#9c5b10}.rr-yhead-btn{all:unset;cursor:pointer;font-weight:600;color:var(--rr-title)}.rr-yhead-btn:hover{text-decoration:underline}.rr-hoverinfo{margin:6px 0 2px;font-size:13px;color:#555}.rr-badge-name{display:inline-block;margin:2px 6px 2px 0;padding:2px 8px;border-radius:999px;background:#fff3e0;color:#b45309;font-size:12px}.rr-name-cloud{display:flex;flex-wrap:wrap}.rr-table--list th,.rr-table--list td{border-bottom:1px solid #ececec}.rr-table--list tbody tr:last-child td{border-bottom:none}.rr-table--list th+th,.rr-table--list td+td{border-left:1px solid #f3f3f3}.rr-badge-name--success{background:#e7f7ee;color:#166534;border:1px solid #b7ebc8}.rr-header-date{white-space:nowrap}.rr-searchbar{display:flex;gap:8px;align-items:center;margin:0 0 10px}.rr-search-input{flex:1;min-width:220px;height:36px;border-radius:10px;border:1px solid #eee;padding:0 10px;font-size:14px;font-family:Montserrat,sans-serif}.rr-container .rn-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.rr-container .rn-list .rn-item+.rn-item{margin-top:2px}.pv-xhead{position:sticky;top:0;background:var(--rr-header-bg);border-bottom:1px solid var(--rr-border);border-right:1px solid var(--rr-border);text-align:center;padding:8px 6px}.pv-xattempt{font-weight:650;color:var(--rr-title);line-height:1.1}.pv-xdate{font-size:12px;color:#6b7280;line-height:1.1;margin-top:2px}.pv-xpct{font-size:12px;color:#111827;font-weight:800;line-height:1.1;margin-top:2px}.rn-item.is-flash{background:#fff0f6;border-color:#ff69b4!important;box-shadow:0 8px 18px #ff69b440}.pill-completed{margin-right:8px;font-size:12px;padding:3px 8px;border-radius:999px;background:#ffe4ef;border:1px solid #ffb3cf;color:#b0125a;font-weight:800}.flash-pink{background:#fff0f6!important;box-shadow:0 0 0 2px #ff69b4 inset,0 6px 16px #ff69b440;animation:flashPink .9s ease-in-out 0s 2}@keyframes flashPink{0%{box-shadow:0 0 #ff69b499,0 6px 16px #ff69b440}to{box-shadow:0 0 0 12px #ff69b400,0 6px 16px #ff69b440}}.pill.pink{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;background:#ffe3ef;color:#b91c52;border:1px solid #ffc2d9}.rn-item{transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background .14s ease}.rn-item:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0000001a;border-color:#0000000f}.rr-header-actions{display:flex;align-items:center;gap:8px}.rr-action-btn{border:1px solid #e5e7eb;background:#fff;color:#374151;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s cubic-bezier(.25,.8,.25,1);box-shadow:0 1px 2px #0000000d;font-family:Montserrat,sans-serif}.rr-action-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;border-color:#d1d5db;color:#111827}.rr-action-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #0000000d}.rr-action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.rr-btn-danger{color:#b91c1c;border-color:#fecaca;background:#fffafa}.rr-btn-danger:hover:not(:disabled){background:#fef2f2;border-color:#f87171;color:#991b1b}.rr-btn-add{color:#047857;border-color:#a7f3d0;background:#f0fdf4}.rr-btn-add:hover:not(:disabled){background:#dcfce7;border-color:#34d399;color:#065f46}.rr-modal-search{width:100%;box-sizing:border-box;padding:10px 12px;margin-bottom:12px;border:2px solid #e5e7eb;border-radius:10px;font-size:14px;outline:none;transition:border-color .2s}.rr-modal-search:focus{border-color:#ff69b4}.rr-modal-item{display:flex;align-items:center;gap:10px;padding:10px;border-radius:8px;cursor:pointer;transition:background .15s;border-bottom:1px solid #f3f4f6}.rr-modal-item:hover{background-color:#f9fafb}.rr-modal-item.selected{background-color:#fff0f6}.rr-modal-header-area{margin-bottom:16px}.rr-modal-search{width:100%;box-sizing:border-box;padding:12px 14px;border:2px solid #e5e7eb;border-radius:12px;font-size:14px;outline:none;transition:border-color .2s;background:#f9fafb;font-family:Montserrat,sans-serif}.rr-modal-search:focus{border-color:#ff69b4;background:#fff}.rr-modal-list{max-height:320px;overflow-y:auto;padding-right:4px}.rr-modal-list::-webkit-scrollbar{width:6px}.rr-modal-list::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:10px}.rr-modal-list::-webkit-scrollbar-track{background:transparent}.rr-modal-row{display:flex;align-items:center;gap:12px;padding:10px 14px;margin-bottom:8px;border:1.5px solid #f3f4f6;border-radius:12px;background:#fff;cursor:pointer;transition:all .2s cubic-bezier(.25,.8,.25,1)}.rr-modal-row:hover{background:#fafafa;border-color:#e5e7eb;transform:translateY(-1px)}.rr-modal-row.selected{background:#fff0f6;border-color:#ff69b4;box-shadow:0 2px 8px #ff69b426}.rr-modal-row.selected-danger{background:#fef2f2;border-color:#fca5a5;box-shadow:0 2px 8px #ef444426}.rr-chk{width:18px;height:18px;accent-color:#ff69b4;cursor:pointer}.rr-chk-danger{accent-color:#ef4444}.rr-select-all{margin-bottom:12px;border-color:#ffebf5;background:#fff9fc}.rr-select-all .rr-name{font-weight:700;color:#be185d}.rr-name{font-weight:600;color:#374151;font-size:14px}.rr-sub-text{margin-left:auto;font-size:12px;color:#9ca3af}.rr-modal-footer{margin-top:20px;display:flex;justify-content:flex-end;gap:10px;padding-top:16px;border-top:1px solid #f3f4f6}.rr-btn-primary{background:#ff69b4;color:#fff;border:none;padding:10px 20px;border-radius:10px;font-weight:700;font-size:14px;cursor:pointer;transition:transform .1s;box-shadow:0 4px 12px #ff69b44d;font-family:Montserrat,sans-serif}.rr-btn-primary:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.05)}.rr-btn-primary:disabled{background:#fbcfe8;box-shadow:none;cursor:not-allowed}.rr-btn-danger-lg{background:#ef4444;color:#fff;border:none;padding:10px 20px;border-radius:10px;font-weight:700;font-size:14px;cursor:pointer;box-shadow:0 4px 12px #ef44444d;transition:transform .1s;font-family:Montserrat,sans-serif}.rr-btn-danger-lg:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.05)}.rr-container .can-do-box{background-color:#2e7d3214;border-left:5px solid #2E7D32;padding:1.5rem;border-radius:16px;transition:transform .3s ease,box-shadow .3s ease;animation:sp-slideInLeft .5s ease-in-out}.rr-container .can-do-box h3{color:#2e7d32;font-size:1.1rem;margin-top:0;font-family:Nunito,sans-serif}.rr-container .working-on-box{background-color:#f57f1714;border-left:5px solid #F57F17;padding:1.5rem;border-radius:16px;transition:transform .3s ease,box-shadow .3s ease;animation:sp-slideInRight .5s ease-in-out}.rr-container .working-on-box h3{color:#f57f17;font-size:1.1rem;margin-top:0;font-family:Nunito,sans-serif}@keyframes sp-slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes sp-slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.rr-container .rn-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:0 1px #0000000a}.rr-container .rn-item.is-can{border-color:#d7ead9;background:#f8fdf8}.rr-container .rn-item.is-work{border-color:#f5d6b8;background:#fffaf5}.rr-container .rn-left{display:flex;align-items:center;gap:10px;min-height:42px}.rr-container .rn-icon{flex:0 0 auto;font-weight:700;opacity:.9}.rr-container .rn-icon.tick{color:#2e7d32}.rr-container .rn-icon.arrow{color:#ef6c00}.rr-container .rn-label{line-height:1.3;color:#173123;font-family:Nunito,sans-serif}.rr-container .rn-actions{display:flex;align-items:center;gap:10px;justify-content:flex-end}.rr-container .pill-year{padding:6px 12px;border-radius:9999px;border:0;background:#1b5e20;color:#fff;font-weight:600;white-space:nowrap;cursor:pointer;transition:filter .12s ease,box-shadow .12s ease}.rr-container .pill-year:hover{filter:brightness(1.05);box-shadow:0 3px 10px #00000014}.rr-container .rn-empty{color:#999;font-style:italic;margin:8px 0}.rr-batch-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:2px solid #eee}.rr-batch-tab{font-family:Montserrat,sans-serif;font-size:13px;font-weight:700;padding:8px 18px;border:1px solid #eee;border-bottom:none;border-radius:8px 8px 0 0;background:#f9fafb;color:#9ca3af;cursor:pointer;margin-bottom:-2px;transition:background .12s,color .12s}.rr-batch-tab:hover:not(.active){background:#f3f4f6;color:#374151}.rr-batch-tab.active{background:#fff;color:#ff69b4;border-color:#eee;border-bottom-color:#fff;z-index:1}.rr-batch-badge{display:inline-block;font-size:11px;font-weight:700;padding:2px 7px;border-radius:6px;background:#f5f3ff;color:#7c3aed;margin-top:3px}.admin-layout{--admin-pink: #e91e8c;--admin-pink-hover: #c4177a;--admin-danger: #e11d48;--admin-danger-bg: #fff0f3;--admin-sidebar-bg: #1e1b2e;--admin-sidebar-text: #c8c5d8;--admin-sidebar-active: #e91e8c;--admin-bg: #f5f4f8;--admin-card-bg: #ffffff;--admin-text: #1a1a2e;--admin-muted: #666;--admin-border: #e0e0e0;--admin-shadow: 0 4px 16px rgba(0, 0, 0, .06);--admin-font: "Montserrat", sans-serif;display:flex;min-height:100vh;font-family:var(--admin-font);background:var(--admin-bg)}.admin-sidebar{width:240px;min-height:100vh;background:var(--admin-sidebar-bg);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;flex-shrink:0}.admin-sidebar-logo{padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.08)}.admin-sidebar-logo h2{margin:0 0 .25rem;font-size:1.15rem;color:#fff;font-weight:700}.admin-sidebar-logo h2 span{color:var(--admin-pink)}.admin-sidebar-logo p{margin:0;font-size:.72rem;color:var(--admin-sidebar-text);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.admin-nav{flex:1;padding:1rem .75rem;display:flex;flex-direction:column;gap:.3rem}.admin-nav-item{display:flex;align-items:center;gap:.6rem;width:100%;padding:.7rem 1rem;background:transparent;border:none;border-radius:10px;color:var(--admin-sidebar-text);font-family:var(--admin-font);font-size:.9rem;font-weight:500;cursor:pointer;text-align:left;transition:all .2s ease}.admin-nav-item:hover{background:rgba(255,255,255,.07);color:#fff}.admin-nav-item.active{background:rgba(233,30,140,.18);color:var(--admin-pink);font-weight:600}.admin-sidebar-footer{padding:1rem 1.25rem;border-top:1px solid rgba(255,255,255,.08)}.admin-sidebar-email{font-size:.78rem;color:var(--admin-sidebar-text);margin:0 0 .6rem;word-break:break-all}.admin-logout-btn{background:transparent;border:1px solid rgba(233,30,140,.4);color:var(--admin-pink);border-radius:8px;padding:.5rem .9rem;font-family:var(--admin-font);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s;width:100%}.admin-logout-btn:hover{background:rgba(233,30,140,.12)}.admin-main{flex:1;display:flex;flex-direction:column;min-width:0}.admin-header{background:var(--admin-card-bg);padding:1.2rem 2rem;border-bottom:1px solid var(--admin-border);box-shadow:0 2px 8px #0000000a;position:sticky;top:0;z-index:50}.admin-header-title{margin:0;font-size:1.25rem;font-weight:700;color:var(--admin-text)}.admin-content{flex:1;padding:2rem;overflow-y:auto}.admin-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.25rem}.admin-stat-card{background:var(--admin-card-bg);border-radius:16px;padding:1.5rem;box-shadow:var(--admin-shadow);border:1px solid rgba(0,0,0,.04);transition:transform .2s ease,box-shadow .2s ease}.admin-stat-card:hover{transform:translateY(-3px);box-shadow:0 8px 28px #00000017}.admin-stat-value{font-size:2.4rem;font-weight:700;color:var(--admin-pink);line-height:1;margin-bottom:.5rem}.admin-stat-label{font-size:.82rem;color:var(--admin-muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.admin-tabs{display:flex;gap:.5rem;margin-bottom:1.25rem}.admin-tab{padding:.6rem 1.2rem;border-radius:10px;border:1.5px solid var(--admin-border);background:#fff;color:var(--admin-muted);font-family:var(--admin-font);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.admin-tab.active{background:var(--admin-pink);border-color:var(--admin-pink);color:#fff;box-shadow:0 3px 12px #e91e8c40}.admin-tab:hover:not(.active){border-color:var(--admin-pink);color:var(--admin-pink)}.admin-search-bar{margin-bottom:1rem}.admin-search-input{width:100%;max-width:420px;padding:.75rem 1rem;border:1.5px solid var(--admin-border);border-radius:10px;font-family:var(--admin-font);font-size:.9rem;background:#fff;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.admin-search-input:focus{outline:none;border-color:var(--admin-pink);box-shadow:0 0 0 3px #e91e8c1a}.admin-table-wrapper{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;background:var(--admin-card-bg);border-radius:12px;overflow:hidden;box-shadow:var(--admin-shadow)}.admin-table th{background:#f5f4f8;font-weight:600;font-size:.82rem;padding:.85rem 1rem;text-align:left;color:var(--admin-text);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--admin-border);white-space:nowrap}.admin-table td{padding:.85rem 1rem;border-bottom:1px solid var(--admin-border);color:var(--admin-text);font-size:.9rem}.admin-table tbody tr:hover{background:#faf9fb}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table td.admin-no-results{text-align:center;color:var(--admin-muted);padding:2rem}.admin-btn-danger-sm{background:var(--admin-danger-bg);color:var(--admin-danger);border:1px solid rgba(225,29,72,.2);border-radius:8px;padding:.4rem .9rem;font-family:var(--admin-font);font-size:.82rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.admin-btn-danger-sm:hover{background:#ffe4e9}.admin-btn-gray{background:#f5f5f5;color:var(--admin-muted);border:none;border-radius:10px;padding:.65rem 1.2rem;font-family:var(--admin-font);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}.admin-btn-gray:hover{background:#e8e8e8}.admin-btn-danger{background:var(--admin-danger);color:#fff;border:none;border-radius:10px;padding:.65rem 1.2rem;font-family:var(--admin-font);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 3px 10px #e11d4840}.admin-btn-danger:hover{background:#be123c}.admin-btn-danger:disabled,.admin-btn-gray:disabled{opacity:.5;cursor:not-allowed}.admin-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:999}.admin-modal{background:var(--admin-card-bg);border-radius:18px;width:90%;max-width:420px;padding:2rem;box-shadow:0 16px 48px #0000002e}.admin-modal h3{margin:0 0 1rem;font-size:1.1rem;font-weight:700;color:var(--admin-text)}.admin-modal p{margin:.4rem 0;color:var(--admin-muted);font-size:.92rem;line-height:1.5}.admin-modal-warning{color:var(--admin-danger)!important;font-size:.82rem!important;margin-top:.5rem!important}.admin-modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.admin-loading{padding:2rem;text-align:center;color:var(--admin-muted);font-size:.9rem}.admin-error{padding:1rem;background:var(--admin-danger-bg);border:1px solid rgba(225,29,72,.2);border-radius:10px;color:var(--admin-danger);font-size:.9rem;margin-bottom:1rem}.admin-login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e1b2e 0%,#2d2a45 50%,#1e1b2e 100%);font-family:Montserrat,sans-serif;padding:20px}.admin-login-card{background:#fff;border-radius:24px;padding:3rem 2.5rem;width:100%;max-width:420px;box-shadow:0 20px 60px #0000004d;text-align:center}.admin-login-logo{margin-bottom:2rem}.admin-login-logo h1{margin:0 0 .3rem;font-size:1.6rem;font-weight:700;color:#1a1a2e}.admin-login-logo h1 span{color:#e91e8c}.admin-login-subtitle{margin:0;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#e91e8c}.admin-login-error{background:#fff0f3;border:1px solid rgba(225,29,72,.25);border-radius:10px;padding:.75rem 1rem;color:#e11d48;font-size:.88rem;margin-bottom:1.25rem;text-align:left}.admin-login-btn{display:flex;align-items:center;justify-content:center;gap:.65rem;width:100%;padding:.9rem 1.5rem;background:linear-gradient(135deg,#e91e8c,#ff6b9d);color:#fff;border:none;border-radius:14px;font-family:Montserrat,sans-serif;font-size:1rem;font-weight:700;cursor:pointer;transition:all .25s ease;box-shadow:0 6px 20px #e91e8c4d;margin-bottom:1.25rem}.admin-login-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 28px #e91e8c66}.admin-login-btn:disabled{opacity:.65;cursor:not-allowed;transform:none}.admin-login-btn svg{flex-shrink:0}.admin-login-note{font-size:.78rem;color:#999;margin:0;line-height:1.5}.admin-controls-row{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.admin-filter-tabs{display:flex;gap:.3rem}.admin-filter-tab{padding:.5rem 1rem;border-radius:8px;border:1.5px solid var(--admin-border);background:#fff;color:var(--admin-muted);font-family:var(--admin-font);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.admin-filter-tab.active{background:var(--admin-pink);border-color:var(--admin-pink);color:#fff}.admin-filter-tab:hover:not(.active){border-color:var(--admin-pink);color:var(--admin-pink)}.admin-th-btn{display:inline-flex;align-items:center;gap:.3rem;background:none;border:none;padding:0;font-family:var(--admin-font);font-size:.78rem;font-weight:700;color:var(--admin-muted);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;white-space:nowrap}.admin-th-btn:hover{color:var(--admin-pink)}.admin-sort-icon{font-size:.7rem;transition:color .15s}.admin-sort-icon.active{color:var(--admin-pink)}.admin-sort-icon.dim{color:#ccc}.admin-col-filter{padding:.5rem .75rem;border:1.5px solid var(--admin-border);border-radius:8px;background:#fff;font-family:var(--admin-font);font-size:.85rem;color:var(--admin-dark);cursor:pointer;outline:none;transition:border-color .2s}.admin-col-filter:focus{border-color:var(--admin-pink)}.admin-expand-btn{background:none;border:none;cursor:pointer;color:var(--admin-muted);font-size:.65rem;padding:.2rem .3rem;line-height:1;transition:color .15s}.admin-expand-btn:hover{color:var(--admin-pink)}.admin-subrow>td{padding:0;background:#ede9f7;border-bottom:2px solid #d4ccee}.admin-subtable-wrap{padding:.6rem 1rem .75rem 0}.admin-subtable{width:100%;border-collapse:collapse;font-size:.82rem;table-layout:fixed}.admin-subtable col.col-name{width:30%}.admin-subtable col.col-yearlevels{width:22%}.admin-subtable col.col-code{width:18%}.admin-subtable col.col-students{width:14%}.admin-subtable col.col-status{width:16%}.admin-subtable th{text-align:left;padding:.3rem .75rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--admin-muted);border-bottom:1px solid var(--admin-border);background:none}.admin-subtable td{padding:.35rem .75rem;border-bottom:1px solid #f0f0f0;color:var(--admin-dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-subtable tbody tr:last-child td{border-bottom:none}.admin-result-count{font-size:.82rem;color:var(--admin-muted);margin:0 0 .75rem}.admin-row-muted td{opacity:.55}.admin-actions-cell{display:flex;gap:.4rem;align-items:center}.admin-code{font-family:monospace;background:#f0eef8;color:#5b21b6;padding:.2rem .5rem;border-radius:6px;font-size:.88rem;letter-spacing:.05em}.admin-badge{display:inline-block;padding:.25rem .65rem;border-radius:20px;font-size:.75rem;font-weight:700;white-space:nowrap}.badge-green{background:#dcfce7;color:#166534}.badge-grey{background:#f3f4f6;color:#6b7280}.badge-blue{background:#dbeafe;color:#1e40af}.admin-btn-sm{border-radius:8px;padding:.38rem .8rem;font-family:var(--admin-font);font-size:.82rem;font-weight:600;cursor:pointer;border:none;transition:all .2s;white-space:nowrap}.admin-btn-green-sm{background:#dcfce7;color:#166534;border:1px solid rgba(22,101,52,.2)}.admin-btn-green-sm:hover{background:#bbf7d0}.admin-btn-grey-sm{background:#f3f4f6;color:#374151;border:1px solid #e5e7eb}.admin-btn-grey-sm:hover{background:#e5e7eb}.admin-btn-blue-sm{background:#dbeafe;color:#1e40af;border:1px solid rgba(30,64,175,.2)}.admin-btn-blue-sm:hover{background:#bfdbfe}.admin-completion-wrap{display:flex;align-items:center;gap:.5rem;min-width:120px}.admin-completion-bar-bg{flex:1;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.admin-completion-bar-fill{height:100%;background:var(--admin-pink);border-radius:4px;transition:width .3s ease}.admin-completion-pct{font-size:.8rem;font-weight:600;color:var(--admin-muted);min-width:35px}.admin-section-block{margin-top:2rem}.admin-section-heading{font-size:1rem;font-weight:700;color:var(--admin-text);margin:0 0 .25rem;padding-bottom:.6rem;border-bottom:2px solid #f0eef8}.admin-section-subtext{font-size:.82rem;color:var(--admin-muted);margin:0 0 1.25rem}.admin-empty-text{color:var(--admin-muted);font-size:.9rem;padding:1rem 0}.admin-subsection-label{font-size:.82rem;font-weight:700;color:var(--admin-muted);text-transform:uppercase;letter-spacing:.05em;margin:1rem 0 .5rem}.admin-week-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:1rem}.admin-week-card{background:var(--admin-card-bg);border-radius:12px;padding:1.25rem;box-shadow:var(--admin-shadow);border:1px solid rgba(0,0,0,.04);text-align:center}.admin-week-value{font-size:1.8rem;font-weight:700;color:var(--admin-pink);line-height:1;margin-bottom:.4rem}.admin-week-label{font-size:.78rem;color:var(--admin-muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.admin-topic-list{display:flex;flex-direction:column;gap:.65rem}.admin-topic-row{display:flex;align-items:center;gap:.75rem}.admin-topic-name{width:200px;flex-shrink:0;font-size:.88rem;color:var(--admin-text);font-weight:500}.admin-topic-bar-wrap{flex:1;height:10px;background:#f0eef8;border-radius:5px;overflow:hidden}.admin-topic-bar-fill{height:100%;border-radius:5px;transition:width .4s ease}.admin-topic-count{width:50px;text-align:right;font-size:.85rem;font-weight:600;color:var(--admin-muted)}.admin-integrity{display:flex;flex-direction:column;gap:1rem}.admin-integrity-card{background:var(--admin-card-bg);border-radius:14px;border:1px solid var(--admin-border);overflow:hidden;box-shadow:var(--admin-shadow)}.admin-integrity-header{padding:1.25rem 1.5rem;cursor:pointer}.admin-integrity-header:hover{background:#faf9fb}.admin-integrity-title{display:flex;align-items:center;gap:.6rem;font-size:1rem;font-weight:700;color:var(--admin-text);margin-bottom:.3rem}.admin-integrity-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.dot-ok{background:#22c55e}.dot-warn{background:#f59e0b}.admin-integrity-count{margin-left:auto;font-size:.82rem;color:var(--admin-muted);font-weight:600}.admin-integrity-desc{font-size:.85rem;color:var(--admin-muted);margin:0 0 .5rem}.admin-integrity-toggle{background:none;border:1px solid var(--admin-border);border-radius:8px;padding:.3rem .75rem;font-family:var(--admin-font);font-size:.8rem;color:var(--admin-muted);cursor:pointer;transition:all .2s}.admin-integrity-toggle:hover{border-color:var(--admin-pink);color:var(--admin-pink)}.admin-integrity-body{padding:0 1.5rem 1.5rem;border-top:1px solid var(--admin-border)}.admin-ok-text{color:#166534;font-size:.9rem;padding:1rem 0 0;font-weight:500}.admin-duplicate-group{margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--admin-border)}.admin-duplicate-group:first-child{margin-top:.5rem;border-top:none}.admin-duplicate-label{font-size:.88rem;margin:0 0 .5rem;color:var(--admin-text)}.admin-password-value{font-family:monospace;background:#fef9c3;color:#854d0e;padding:.2rem .5rem;border-radius:6px;font-size:.88rem;border:1px solid #fde68a}.admin-email-copy-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:1.25rem;flex-wrap:wrap}.admin-email-copy-desc{margin:0;font-size:.92rem;color:var(--admin-muted);line-height:1.6;max-width:520px}.admin-email-copy-btn{background:linear-gradient(135deg,#e91e8c,#ff6b9d);color:#fff;border:none;border-radius:12px;padding:.75rem 1.4rem;font-family:var(--admin-font);font-size:.95rem;font-weight:700;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all .25s ease;box-shadow:0 4px 14px #e91e8c4d}.admin-email-copy-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #e91e8c66}.admin-email-copy-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.admin-email-preview{background:#f5f4f8;border:1px dashed #c8c5d8;border-radius:10px;padding:.85rem 1rem;margin-bottom:1.25rem}.admin-email-preview-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--admin-muted);display:block;margin-bottom:.4rem}.admin-email-preview-text{margin:0;font-size:.85rem;color:var(--admin-text);word-break:break-all;line-height:1.6}.admin-email-layout{display:grid;grid-template-columns:1fr 320px;gap:1.5rem;align-items:start}.admin-email-compose{display:flex;flex-direction:column;gap:1.25rem}.admin-email-field{display:flex;flex-direction:column;gap:.4rem}.admin-email-label{font-size:.82rem;font-weight:700;color:var(--admin-text);text-transform:uppercase;letter-spacing:.05em}.admin-email-input{padding:.75rem 1rem;border:1.5px solid var(--admin-border);border-radius:10px;font-family:var(--admin-font);font-size:.95rem;background:#fff;transition:border-color .2s,box-shadow .2s;box-sizing:border-box;width:100%}.admin-email-input:focus{outline:none;border-color:var(--admin-pink);box-shadow:0 0 0 3px #e91e8c1a}.admin-email-textarea{padding:.85rem 1rem;border:1.5px solid var(--admin-border);border-radius:10px;font-family:var(--admin-font);font-size:.95rem;background:#fff;resize:vertical;min-height:240px;line-height:1.6;transition:border-color .2s,box-shadow .2s;box-sizing:border-box;width:100%}.admin-email-textarea:focus{outline:none;border-color:var(--admin-pink);box-shadow:0 0 0 3px #e91e8c1a}.admin-email-meta{display:flex;gap:1.5rem;font-size:.85rem;color:var(--admin-muted);padding:.75rem 1rem;background:#f5f4f8;border-radius:10px;flex-wrap:wrap}.admin-email-from strong,.admin-email-to strong{color:var(--admin-text)}.admin-email-success{padding:.85rem 1rem;background:#dcfce7;border:1px solid rgba(22,101,52,.2);border-radius:10px;color:#166534;font-size:.9rem;font-weight:500}.admin-email-send-btn{background:linear-gradient(135deg,#e91e8c,#ff6b9d);color:#fff;border:none;border-radius:12px;padding:.9rem 1.5rem;font-family:var(--admin-font);font-size:1rem;font-weight:700;cursor:pointer;transition:all .25s ease;box-shadow:0 4px 14px #e91e8c4d;align-self:flex-start}.admin-email-send-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #e91e8c66}.admin-email-send-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.admin-email-recipients{background:var(--admin-card-bg);border-radius:14px;border:1px solid var(--admin-border);box-shadow:var(--admin-shadow);overflow:hidden;position:sticky;top:80px}.admin-email-recipients-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--admin-border)}.admin-email-recipients-title{margin:0;font-size:.9rem;font-weight:700;color:var(--admin-text)}.admin-email-select-all{background:none;border:none;font-family:var(--admin-font);font-size:.8rem;color:var(--admin-pink);cursor:pointer;font-weight:600;padding:0}.admin-email-select-all:hover{text-decoration:underline}.admin-email-recipient-list{max-height:480px;overflow-y:auto;padding:.5rem 0}.admin-email-recipient-row{display:flex;align-items:center;gap:.75rem;padding:.6rem 1.25rem;cursor:pointer;transition:background .15s}.admin-email-recipient-row:hover{background:#faf9fb}.admin-email-checkbox{width:16px;height:16px;accent-color:var(--admin-pink);flex-shrink:0;cursor:pointer}.admin-email-recipient-info{display:flex;flex-direction:column;gap:.1rem;min-width:0}.admin-email-recipient-name{font-size:.88rem;font-weight:600;color:var(--admin-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-email-recipient-email{font-size:.78rem;color:var(--admin-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 900px){.admin-email-layout{grid-template-columns:1fr}.admin-email-recipients{position:static}}@media (max-width: 900px){.admin-layout{flex-direction:column}.admin-sidebar{width:100%;min-height:auto;height:auto;position:relative;flex-direction:row;flex-wrap:wrap;align-items:center}.admin-sidebar-logo{flex:1;border-bottom:none;border-right:1px solid rgba(255,255,255,.08);padding:1rem 1.5rem}.admin-nav{flex-direction:row;padding:.5rem;gap:.3rem;flex:2}.admin-sidebar-footer{width:100%;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:1rem;padding:.75rem 1.25rem}.admin-sidebar-email{margin:0;flex:1}.admin-logout-btn{width:auto}.admin-content{padding:1rem}}@media (max-width: 600px){.admin-stats-grid{grid-template-columns:repeat(2,1fr)}.admin-search-input{max-width:100%}}.admin-back-btn{display:inline-flex;align-items:center;gap:.4rem;background:none;border:1.5px solid var(--admin-border);border-radius:8px;padding:.45rem 1rem;font-family:var(--admin-font);font-size:.85rem;font-weight:600;color:var(--admin-muted);cursor:pointer;margin-bottom:1.25rem;transition:all .2s}.admin-back-btn:hover{border-color:var(--admin-pink);color:var(--admin-pink)}.admin-detail-header{margin-bottom:1.5rem}.admin-detail-title{font-size:1.3rem;font-weight:700;color:var(--admin-dark);margin:0 0 .3rem}.admin-detail-meta{font-size:.88rem;color:var(--admin-muted);margin:0}.admin-assessment-group{margin-bottom:2rem}.admin-assessment-group-header{display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;background:#ede9f7;border-radius:8px 8px 0 0;flex-wrap:wrap}.admin-group-classname{font-size:.95rem;font-weight:700;color:#000}.admin-group-divider{color:#0000004d;font-size:.85rem}.admin-group-teacher{font-size:.85rem;color:#000}.admin-group-school{font-size:.82rem;color:#0000008c;font-style:italic}.admin-attempt-table{border-radius:0 0 8px 8px;overflow:hidden}.admin-attempt-table th{text-align:center}.admin-attempt-table th:first-child{text-align:left}.admin-overall-row td{background:#f5f3ff;border-bottom:2px solid #ddd8f5}.admin-attempt-cell{text-align:center;vertical-align:middle}.admin-attempt-cell.attempt-high{background:#dcfce7}.admin-attempt-cell.attempt-mid{background:#fef9c3}.admin-attempt-cell.attempt-low{background:#fee2e2}.admin-attempt-cell.attempt-none{background:#f3f4f6;color:#aaa}.admin-attempt-pct{font-weight:700;font-size:.95rem;display:block}.admin-attempt-diff{font-size:.72rem;font-weight:600;display:block;margin-top:.1rem}.diff-pos{color:#16a34a}.diff-neg{color:#dc2626}.admin-attempt-na{font-size:.75rem;color:#bbb}
