:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--bg: #f4f5f7;--surface: #ffffff;--surface-soft: #f8f9fb;--border: #e7e9ee;--border-strong: #d8dbe2;--ink: #1b2330;--text: #4b515d;--muted: #8b919c;--accent: #3f5aa6;--accent-hover: #344a86;--accent-soft: #eef1f8;--green: #3f8f5f;--radius: 10px;--radius-sm: 7px;--shadow: 0 1px 2px rgba(20, 28, 45, .04), 0 1px 3px rgba(20, 28, 45, .06);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}body{font-family:var(--font);background-color:var(--bg);color:var(--text);margin:0;padding:0;display:block;min-height:100vh;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.App{width:100%;background:var(--surface);min-height:100vh;box-sizing:border-box}h1,h2,h3,h4,h5{color:var(--ink);margin:0;letter-spacing:-.01em;font-weight:650}p{margin:0;color:var(--text)}button{background-color:var(--accent);color:#fff;border:1px solid transparent;padding:9px 18px;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:550;font-family:var(--font);transition:background-color .15s ease,border-color .15s ease,color .15s ease}button:hover{background-color:var(--accent-hover)}button.btn-ghost{background:transparent;color:var(--text);border-color:var(--border-strong)}button.btn-ghost:hover{background:var(--surface-soft);color:var(--ink)}.LandingPage header{display:flex;justify-content:space-between;align-items:center;padding:20px 48px;border-bottom:1px solid var(--border)}.LandingPage header h1{font-size:19px;font-weight:700;letter-spacing:-.02em}.LandingPage .hero{text-align:left;padding:84px 48px 64px;max-width:760px;background:var(--surface)}.LandingPage .hero .eyebrow{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}.LandingPage .hero h2{font-size:46px;line-height:1.08;font-weight:700;letter-spacing:-.025em;margin-bottom:22px;text-align:left}.LandingPage .hero p{font-size:18px;line-height:1.6;max-width:640px}.LandingPage .offerings{padding:8px 48px 88px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.LandingPage .offerings h3{grid-column:1 / -1;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);text-align:left;padding-bottom:18px;border-bottom:1px solid var(--border);margin-bottom:8px}.LandingPage .offering{flex:none;padding:28px 24px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left;transition:border-color .15s ease,box-shadow .15s ease}.LandingPage .offering:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.LandingPage .offering h4{font-size:17px;margin-bottom:8px}.LandingPage .offering p{font-size:14.5px;line-height:1.55}.LandingPage .offering .num{font-size:13px;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums;margin-bottom:16px}form{display:flex;flex-direction:column;gap:1rem;padding:2rem;max-width:380px;margin:3rem auto}input[type=text],input[type=password],input[type=number]{width:100%;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--font);font-size:14px;box-sizing:border-box;outline:none;transition:border-color .15s ease,box-shadow .15s ease}input[type=text]:focus,input[type=password]:focus,input[type=number]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}ul{list-style:none;padding:0;margin:0}li{background:transparent;padding:11px 12px;border-radius:var(--radius-sm);margin-bottom:2px;text-align:left;color:var(--ink);transition:background .13s ease}.AdminPage,.FactoringGame{padding:2rem}.message{font-weight:600;min-height:1.5em}.correct{color:var(--green)}.incorrect{color:#c0453b}.StudentPage{padding:40px 44px 64px}.StudentPage .student-inner{max-width:720px;margin:0 auto}.StudentPage .student-topbar{display:flex;align-items:flex-end;justify-content:space-between}.StudentPage .student-topbar h1{font-size:27px;font-weight:680}.StudentPage .student-sub{font-size:14.5px;color:var(--muted);margin:6px 0 30px}.session-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px 22px 8px;margin-bottom:22px;box-shadow:var(--shadow)}.session-card .session-head{display:flex;align-items:center;gap:12px;padding-bottom:16px;margin-bottom:6px;border-bottom:1px solid var(--border)}.session-card .session-head h4{font-size:17px}.session-card .session-head .pill{font-size:12px;font-weight:550;color:var(--muted);background:var(--surface-soft);border:1px solid var(--border);border-radius:999px;padding:3px 10px;margin-left:auto;white-space:nowrap}.module-group{padding:14px 0 18px}.module-group .group-label{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.module-list{display:flex;flex-direction:column;gap:2px;list-style:none;padding:0;margin:0}.module-row{display:flex;align-items:center;gap:12px;padding:11px 12px;margin:0;border-radius:var(--radius-sm);cursor:pointer;color:var(--ink);font-size:15px;font-weight:500;background:transparent;transition:background .13s ease}.module-row:hover{background:var(--accent-soft)}.module-row .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none;opacity:.85}.module-row.quiz .dot{background:var(--green)}.module-row .chev{margin-left:auto;color:var(--muted);font-size:16px;opacity:0;transform:translate(-4px);transition:all .13s ease}.module-row:hover .chev{opacity:1;transform:translate(0)}.StudentPage .student-foot{margin-top:28px;padding-top:22px;border-top:1px solid var(--border)}.AiHelper{width:380px;border-left:1px solid var(--border)!important;background-color:var(--surface)!important;padding:0!important}.AiHelper h3{font-size:15px;padding:20px 22px;margin:0;border-bottom:1px solid var(--border)}.AiHelper input{border:1px solid var(--border-strong)!important;border-radius:var(--radius-sm)!important;padding:10px 12px!important}.AiHelper input:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft);outline:none}@media(max-width:900px){.LandingPage header{padding:16px 24px}.LandingPage .hero{padding:56px 24px 40px}.LandingPage .hero h2{font-size:36px}.LandingPage .offerings{grid-template-columns:1fr;padding:8px 24px 56px}.StudentPage{padding:24px 20px 48px}}.AdminPage{padding:2rem;background-color:#f9f9f9;min-height:100vh}.AdminPage h1{color:#333;text-align:center;margin-bottom:2rem}.tabs{display:flex;justify-content:center;margin-bottom:2rem}.tab-button{background:none;border:none;padding:1rem 2rem;font-size:1.1rem;cursor:pointer;color:#666;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .3s}.tab-button:hover{color:#1877f2}.tab-button.active{color:#1877f2;border-bottom:2px solid #1877f2;font-weight:700}.tab-content{display:none}.tab-content.active{display:block;animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.create-session,.create-student{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem;display:flex;gap:1rem;align-items:center;max-width:600px;margin-left:auto;margin-right:auto}.create-student{flex-direction:column;align-items:stretch}.create-session input[type=text],.create-student input[type=text],.create-student input[type=password]{flex-grow:1;padding:.75rem;border:1px solid #ddd;border-radius:4px}.create-session button,.create-student button{background-color:#1877f2;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;transition:background-color .3s}.create-session button:hover,.create-student button:hover{background-color:#166fe5}.sessions-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.session-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.session-card h4{color:#1877f2;margin-top:0;border-bottom:1px solid #eee;padding-bottom:.5rem}.modules-section,.students-section{display:flex;flex-direction:column;gap:.5rem}.modules-section ul,.students-section ul{list-style:none;padding:0;margin:0}.modules-section li,.students-section li{background-color:#f0f2f5;padding:.5rem 1rem;border-radius:4px;margin-bottom:.5rem;display:flex;justify-content:space-between;align-items:center}.session-card select{padding:.5rem;border-radius:4px;border:1px solid #ddd}.session-card button{background-color:#e4e6eb;color:#333;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:background-color .3s}.session-card button:hover{background-color:#dcdfe4}.students-section li button{background-color:transparent;color:#f44336;padding:.25rem;border-radius:50%;line-height:1}.students-section li button:hover{background-color:#fdecea}.AdminPage>button{display:block;margin:2rem auto 0;background-color:#f44336;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer}.AdminPage>button:hover{background-color:#d32f2f}
