:root{--navy-950: #0B132B;--navy-900: #141B34;--navy-800: #1B2440;--navy-700: #26314F;--line: #34405f;--cyan: #22E8F5;--blue: #4C7CF0;--white: #F3F6FB;--muted: #94A3C4;--amber: #F0B858;--red: #E56767;--green: #5FCB8A;--font-display: "Space Grotesk", "Inter", sans-serif;--font-body: "Inter", sans-serif;--header-bg: rgba(11, 19, 43, .85);--btn-primary-hover: #6BE3F0;--mark-opacity: .06;--shadow-card: 0 1px 2px rgba(0, 0, 0, .2), 0 12px 28px rgba(0, 0, 0, .28);--shadow-float: 0 8px 24px rgba(0, 0, 0, .35);--glow-cyan: 0 0 0 1px rgba(34, 232, 245, .18), 0 0 24px rgba(34, 232, 245, .08)}[data-theme=light]{--navy-950: #FFFFFF;--navy-900: #F5F7FB;--navy-800: #EDF1F8;--navy-700: #E3E9F3;--line: #D7DEEA;--cyan: #0E93AC;--blue: #2F5FD1;--white: #101828;--muted: #5B6B85;--amber: #966317;--red: #C4362E;--green: #157A52;--header-bg: rgba(255, 255, 255, .85);--btn-primary-hover: #0BA6C2;--mark-opacity: .08;--shadow-card: 0 1px 2px rgba(16, 24, 40, .04), 0 2px 8px rgba(16, 24, 40, .06);--shadow-float: 0 4px 16px rgba(16, 24, 40, .12), 0 2px 6px rgba(16, 24, 40, .08);--glow-cyan: 0 0 0 1px rgba(14, 147, 172, .12), 0 0 16px rgba(14, 147, 172, .06)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--navy-950);color:var(--white);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.infinity-mark{position:absolute;opacity:var(--mark-opacity);pointer-events:none;stroke:var(--cyan);fill:none}.page{max-width:1120px;margin:0 auto;padding:0 24px}.site-header{border-bottom:1px solid var(--line);background:var(--header-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20}.site-header .page{display:flex;align-items:center;justify-content:space-between;height:64px}.brand{font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}.brand-logo{height:30px;width:30px;object-fit:contain;display:block}.nav-links{display:flex;gap:28px;font-size:14px;color:var(--muted)}.nav-links a:hover{color:var(--white)}.auth-links{display:flex;gap:12px;align-items:center;font-size:14px}.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:10px;font-size:15px;font-weight:600;letter-spacing:.01em;border:1px solid transparent;transition:transform .15s ease,background .15s ease,box-shadow .15s ease}.btn:active{transform:scale(.98)}.btn-primary{background:var(--cyan);color:var(--navy-950);box-shadow:var(--shadow-card)}.btn-primary:hover{background:var(--btn-primary-hover)}.btn-ghost{border-color:var(--line);color:var(--white)}.btn-ghost:hover{border-color:var(--cyan)}.btn-text{color:var(--muted)}.btn-text:hover{color:var(--white)}.hero{padding:88px 0 72px;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}.hero-eyebrow{color:var(--cyan);font-size:14px;font-weight:600;margin-bottom:18px}.hero h1{font-family:var(--font-display);font-size:52px;line-height:1.08;font-weight:700;max-width:680px;margin:0 0 22px;letter-spacing:-.02em}.hero p{font-size:17px;color:var(--muted);max-width:520px;line-height:1.6;margin:0 0 32px}.hero-actions{display:flex;gap:14px}.stat-row{display:flex;gap:48px;margin-top:64px;padding-top:32px;border-top:1px solid var(--line)}.stat-row .stat-num{font-family:var(--font-display);font-size:28px;font-weight:700}.stat-row .stat-label{font-size:13px;color:var(--muted);margin-top:4px}section.block{padding:64px 0}.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:32px}.section-head h2{font-family:var(--font-display);font-size:26px;margin:0}.section-head p{color:var(--muted);font-size:14px;margin:6px 0 0}.grid{display:grid;gap:22px}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}.card{background:linear-gradient(180deg,var(--navy-800) 0%,var(--navy-900) 100%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:var(--shadow-card);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.card:hover{border-color:var(--cyan);box-shadow:var(--shadow-card),var(--glow-cyan);transform:translateY(-2px)}.card-tier-label{font-size:12px;color:var(--muted);margin-bottom:10px}.class-card{display:flex;flex-direction:column;gap:6px}.class-card .class-num{font-family:var(--font-display);font-size:22px;font-weight:700}.subject-card h3{font-family:var(--font-display);font-size:20px;letter-spacing:.01em;margin:12px 0 4px}.subject-card .meta{color:var(--muted);font-size:13.5px;display:flex;gap:14px;margin-bottom:16px}.subject-icon{width:52px;height:52px;border-radius:12px;background:var(--navy-700);display:flex;align-items:center;justify-content:center;font-size:24px;box-shadow:inset 0 0 0 1px #ffffff0a}.subject-icon svg{width:26px;height:26px}.chapter-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 20px;border:1px solid var(--line);border-radius:10px;margin-bottom:10px}.chapter-row:hover{border-color:var(--cyan)}.chapter-title{font-weight:600;font-size:15px}.chapter-sub{color:var(--muted);font-size:13px;margin-top:2px}.chip-row{display:flex;gap:8px;flex-wrap:wrap}@media (max-width: 480px){.chapter-row{flex-direction:column;align-items:flex-start}.chip-row{width:100%}}.chip{font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:6px 10px}.chip:hover{color:var(--white);border-color:var(--cyan)}.chip-active{color:var(--navy-950);background:var(--cyan);border-color:var(--cyan);font-weight:600}.flip-card{perspective:1200px;height:260px;cursor:pointer;-webkit-user-select:none;user-select:none}.flip-card-inner{position:relative;width:100%;height:100%;transition:transform .5s;transform-style:preserve-3d}.flip-card-inner.is-flipped{transform:rotateY(180deg)}.flip-card-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px;border-radius:14px;border:1px solid var(--line);background:var(--navy-900);font-family:var(--font-display);font-size:19px;line-height:1.5}.flip-card-back{transform:rotateY(180deg);background:var(--navy-800);border-color:var(--cyan);font-family:var(--font-body);font-size:16px;font-weight:400;color:var(--white)}.flip-hint{margin-top:18px;font-family:var(--font-body);font-size:12px;color:var(--muted)}.video-shell{background:#000;border-radius:10px;overflow:hidden;aspect-ratio:16/9;margin-bottom:20px}.video-shell iframe{width:100%;height:100%;border:0}.progress-track{height:6px;background:var(--navy-700);border-radius:4px;overflow:hidden;margin:10px 0}.progress-fill{height:100%;background:var(--cyan)}.mcq-question{font-family:var(--font-display);font-size:20px;margin-bottom:24px;line-height:1.4}.option-row{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid var(--line);border-radius:10px;margin-bottom:10px;font-size:15px}.option-row:hover{border-color:var(--cyan)}.option-row.selected{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 10%,transparent)}.option-row.correct{border-color:var(--green);background:color-mix(in srgb,var(--green) 10%,transparent)}.option-row.incorrect{border-color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent)}.option-letter{width:26px;height:26px;border-radius:6px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--muted)}.badge{display:inline-block;font-size:12px;padding:4px 10px;border-radius:6px}.badge-easy{background:color-mix(in srgb,var(--green) 14%,transparent);color:var(--green)}.badge-medium{background:color-mix(in srgb,var(--amber) 14%,transparent);color:var(--amber)}.badge-hard{background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--red)}.breadcrumb{font-size:13px;color:var(--muted);margin-bottom:20px}.breadcrumb a:hover{color:var(--cyan)}.footer{border-top:1px solid var(--line);padding:32px 0;color:var(--muted);font-size:13px}@media (max-width: 860px){.hero h1{font-size:36px}.grid-3,.grid-4,.grid-2{grid-template-columns:1fr 1fr}.nav-links{display:none}.stat-row{gap:28px;flex-wrap:wrap}}@media (max-width: 560px){.grid-3,.grid-4,.grid-2{grid-template-columns:1fr}}.app-shell{display:flex;min-height:100vh}.app-sidebar{width:220px;flex-shrink:0;border-right:1px solid var(--line);padding:24px 16px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.app-sidebar-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:var(--muted);text-decoration:none;font-size:14px}.app-sidebar-link:hover{background:var(--navy-800);color:var(--white)}.app-sidebar-link.active{background:var(--navy-800);color:var(--cyan);font-weight:600}.app-main{flex:1;min-width:0}.app-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 28px;border-bottom:1px solid var(--line)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 16px;background:radial-gradient(circle at 50% 0%,rgba(34,232,245,.12),transparent 55%),var(--navy-950)}.auth-card{width:100%;max-width:400px;background:#141b34bf;border:1px solid var(--line);border-radius:24px;padding:32px 28px 28px;box-shadow:0 20px 60px #0006;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.auth-hero{display:flex;justify-content:center;margin-bottom:8px}.auth-logo-glow{width:104px;height:104px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,rgba(34,232,245,.25),transparent 70%);box-shadow:0 0 40px #22e8f559,0 0 80px #22e8f526;animation:authGlowPulse 3s ease-in-out infinite}.auth-logo-img{width:80px;height:80px;object-fit:contain}@keyframes authGlowPulse{0%,to{box-shadow:0 0 40px #22e8f559,0 0 80px #22e8f526}50%{box-shadow:0 0 55px #22e8f580,0 0 100px #22e8f540}}.auth-title{font-family:var(--font-display);font-size:22px;font-weight:700;text-align:center;margin:18px 0 4px;color:var(--white)}.auth-subtitle{text-align:center;color:var(--muted);font-size:13px;margin:0 0 22px;line-height:1.5}.auth-pill-input{width:100%;padding:14px 18px;margin-bottom:14px;background:var(--navy-900);border:1px solid var(--line);border-radius:999px;color:var(--white);font-size:14px;transition:border-color .15s,box-shadow .15s}.auth-pill-input:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px #22e8f526}.auth-social-row{display:flex;gap:10px;margin-bottom:18px}.auth-social-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border-radius:999px;background:var(--navy-800);border:1px solid var(--line);color:var(--white);font-size:13.5px;font-weight:600;cursor:pointer;transition:border-color .15s}.auth-social-btn:hover{border-color:var(--cyan)}.auth-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11.5px;margin:4px 0 18px;text-transform:uppercase;letter-spacing:.05em}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--line)}.auth-submit-btn{width:100%;padding:15px;border-radius:999px;border:none;background:linear-gradient(135deg,var(--cyan),var(--blue));color:var(--navy-950);font-weight:700;font-size:14.5px;cursor:pointer;box-shadow:0 8px 24px #22e8f540;transition:opacity .15s}.auth-submit-btn:hover{opacity:.92}.auth-submit-btn:disabled{opacity:.5;cursor:not-allowed}.auth-footer-link{text-align:center;font-size:13px;color:var(--muted);margin-top:18px}.auth-footer-link a{color:var(--cyan);font-weight:600}.auth-status{text-align:center;font-size:13px;color:var(--amber);margin-top:14px}.auth-otp-row{display:flex;gap:8px;justify-content:center;margin:22px 0 10px}.auth-otp-digit{width:44px;height:54px;text-align:center;font-size:22px;font-weight:700;background:var(--navy-900);border:1px solid var(--line);border-radius:12px;color:var(--white)}.auth-otp-digit:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px #22e8f526}.search-input{width:100%;padding:10px 14px;background:var(--navy-900);border:1px solid var(--line);border-radius:8px;color:var(--white);font-size:13.5px;font-family:inherit}.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--navy-800);border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:var(--shadow-float);z-index:30}.search-result-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 14px;background:none;border:none;border-bottom:1px solid var(--line);color:var(--white);cursor:pointer;font-family:inherit}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:var(--navy-700)}.avatar-circle{width:36px;height:36px;border-radius:50%;background:var(--navy-800);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:16px;flex-shrink:0}.app-bottom-nav{display:none}@media (max-width: 860px){.app-sidebar{display:none}.app-topbar{padding:16px}.app-bottom-nav{display:flex;justify-content:space-around;align-items:center;position:fixed;bottom:0;left:0;right:0;background:var(--navy-900);border-top:1px solid var(--line);padding:8px 0 max(8px,env(safe-area-inset-bottom));z-index:50}.app-bottom-nav-link{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--muted);text-decoration:none;font-size:10.5px;flex:1}.app-bottom-nav-link.active{color:var(--cyan)}}.protected-content{user-select:none;-webkit-user-select:none;-moz-user-select:none}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-text-fill-color:var(--white)!important;-webkit-box-shadow:0 0 0px 1000px var(--navy-900) inset!important;box-shadow:0 0 0 1000px var(--navy-900) inset!important;caret-color:var(--white);transition:background-color 9999s ease-in-out 0s}:root{color-scheme:dark}[data-theme=light]{color-scheme:light}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.kpi-card{background:var(--navy-900);border:1px solid var(--line);border-radius:12px;padding:18px}.kpi-card .kpi-label{color:var(--muted);font-size:12px;margin-bottom:6px}.kpi-card .kpi-value{font-family:var(--font-display);font-size:26px}.student-table{border:1px solid var(--line);border-radius:12px;overflow:hidden}.student-row-head,.student-row{display:grid;grid-template-columns:1.8fr 1.2fr .8fr .8fr .8fr .9fr .6fr;gap:10px;align-items:center;padding:12px 16px}.student-row-head{background:var(--navy-800);color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}.student-row{border-top:1px solid var(--line);font-size:13.5px}.student-row:hover{background:var(--navy-800)}.pill{display:inline-block;padding:2px 10px;border-radius:20px;font-size:11.5px;font-weight:600}.pill-high{background:color-mix(in srgb,var(--green) 16%,transparent);color:var(--green)}.pill-moderate{background:color-mix(in srgb,var(--amber) 16%,transparent);color:var(--amber)}.pill-low{background:color-mix(in srgb,var(--red) 16%,transparent);color:var(--red)}@media (max-width: 860px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.student-row-head{display:none}.student-row{grid-template-columns:1fr;gap:4px;border:1px solid var(--line);border-radius:10px;margin:10px;padding:14px}.student-row>div:before{content:attr(data-label);display:inline-block;min-width:110px;color:var(--muted);font-size:11px}}
