*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--brand: #7c3aed;--brand-deep: #5b21b6;--brand-ink: #3b0f77;--tint: #f3efff;--tint-2: #ece5ff;--ink: #17141f;--ink-2: #48434f;--ink-3: #837e8f;--bg: #faf9fd;--card: #ffffff;--line: #eae7f2;--line-2: #dcd7ea;--green: #16a34a;--amber: #d97706;--red: #dc2626;--shadow-s: 0 1px 2px rgba(23,20,31,.06), 0 4px 12px -4px rgba(23,20,31,.08);--shadow: 0 1px 2px rgba(23,20,31,.05), 0 16px 40px -16px rgba(23,20,31,.18);--r: 14px;--r-l: 20px}html,body{height:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,sans-serif;background:var(--bg);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}::selection{background:var(--tint-2);color:var(--brand-ink)}.topbar{position:sticky;top:0;z-index:50;background:#ffffffe0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.topbar-in{max-width:1020px;margin:0 auto;padding:0 20px;height:60px;display:flex;align-items:center;gap:12px}.topbar .logo{display:inline-flex;align-items:center;gap:9px;font-size:17.5px;font-weight:700;letter-spacing:-.03em;color:var(--ink);text-decoration:none}.topbar .logo .sub{color:var(--brand);font-weight:600}.topbar .spacer{flex:1}.demo-flag{background:var(--amber);color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-radius:100px;padding:3px 10px}.page{max-width:1020px;margin:0 auto;padding:28px 20px 80px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.page-head h1{font-size:24px;font-weight:800;letter-spacing:-.02em}.page-head .sub{color:var(--ink-3);font-size:13.5px;margin-top:2px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-s)}.card-pad{padding:22px 24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--brand);color:#fff;border:none;border-radius:11px;font-size:14px;font-weight:600;padding:11px 18px;transition:background .15s,transform .1s,opacity .15s}.btn:hover{background:var(--brand-deep)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:default}.btn.ghost{background:#fff;color:var(--ink-2);border:1.5px solid var(--line-2)}.btn.ghost:hover{background:var(--tint);color:var(--brand-ink);border-color:var(--brand)}.btn.soft{background:var(--tint);color:var(--brand-deep)}.btn.soft:hover{background:var(--tint-2)}.btn.danger{background:#fff;color:var(--red);border:1.5px solid var(--line-2)}.btn.danger:hover{border-color:var(--red);background:#fef2f2}.btn.sm{padding:7px 13px;font-size:13px;border-radius:9px}.btn.lg{padding:14px 26px;font-size:15px;border-radius:13px}.link-btn{background:none;border:none;color:var(--brand);font-size:13px;font-weight:600;padding:0}.link-btn:hover{color:var(--brand-deep)}.input,.textarea,.select{width:100%;background:#fff;border:1.5px solid var(--line-2);border-radius:11px;padding:11px 14px;font-size:14px;color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}.input:focus,.textarea:focus,.select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--tint)}.textarea{min-height:150px;resize:vertical;line-height:1.6}.field-label{display:block;font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);margin:0 0 7px}.field-hint{font-size:12.5px;color:var(--ink-3);margin-top:6px}.chip{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--line-2);background:#fff;color:var(--ink-2);border-radius:100px;padding:7px 14px;font-size:13px;font-weight:600;transition:all .15s;cursor:pointer}.chip:hover{border-color:var(--brand);color:var(--brand-ink)}.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}.chip .reco{background:#ffffff38;border-radius:100px;font-size:9.5px;font-weight:800;letter-spacing:.05em;padding:2px 7px;text-transform:uppercase}.chip:not(.on) .reco{background:var(--tint);color:var(--brand-deep)}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.seg{display:inline-flex;background:#fff;border:1.5px solid var(--line-2);border-radius:12px;padding:3px;gap:2px}.seg button{border:none;background:none;font-size:13px;font-weight:700;color:var(--ink-3);padding:8px 15px;border-radius:9px;transition:all .15s}.seg button.on{background:var(--brand);color:#fff;box-shadow:var(--shadow-s)}.badge{display:inline-flex;align-items:center;gap:5px;background:var(--tint);color:var(--brand-deep);border-radius:7px;font-size:11px;font-weight:700;padding:3px 9px}.badge.green{background:#f0fdf4;color:var(--green)}.badge.amber{background:#fffbeb;color:var(--amber)}.badge.gray{background:#f3f2f7;color:var(--ink-3)}.muted{color:var(--ink-3);font-size:13.5px}.err{color:var(--red);font-size:13px;margin-top:10px}.login-wrap{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:400px;max-width:100%;background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:36px}.login-card .mark{margin-bottom:18px}.login-card h1{font-size:22px;font-weight:800;letter-spacing:-.02em;margin-bottom:4px}.login-card .lead{color:var(--ink-3);font-size:13.5px;margin-bottom:22px}.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.class-card{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-s);padding:20px 22px;transition:transform .15s,border-color .15s;cursor:pointer}.class-card:hover{transform:translateY(-2px);border-color:var(--brand)}.class-card .name{font-size:16px;font-weight:700;letter-spacing:-.01em;margin-bottom:4px}.class-card .meta{color:var(--ink-3);font-size:12.5px;display:flex;gap:10px;flex-wrap:wrap}.class-card .stats{display:flex;gap:18px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.class-card .stat b{display:block;font-size:18px;font-weight:800;letter-spacing:-.02em}.class-card .stat span{font-size:11px;color:var(--ink-3)}.hello{text-align:center;padding:46px 24px}.hello .art{width:64px;height:64px;border-radius:18px;background:var(--tint);color:var(--brand);display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px}.hello h2{font-size:20px;font-weight:800;letter-spacing:-.02em;margin-bottom:8px}.hello p{color:var(--ink-2);font-size:14px;max-width:440px;margin:0 auto 20px}.hello-steps{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:24px}.hello-step{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:100px;padding:7px 15px;font-size:12.5px;font-weight:600;color:var(--ink-2)}.hello-step i{font-style:normal;width:18px;height:18px;border-radius:50%;background:var(--brand);color:#fff;font-size:10.5px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.class-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.code-pill{display:inline-flex;align-items:center;gap:9px;background:var(--tint);border:1px dashed var(--brand);color:var(--brand-ink);border-radius:12px;padding:8px 14px;font-size:13px;font-weight:600}.code-pill b{font-size:15px;letter-spacing:2.5px}.next-card{background:linear-gradient(135deg,var(--brand) 0%,var(--brand-deep) 100%);color:#fff;border-radius:var(--r-l);padding:20px 24px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;box-shadow:var(--shadow);margin-bottom:22px}.next-card .k{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;opacity:.75;margin-bottom:3px}.next-card .t{font-size:16.5px;font-weight:700;letter-spacing:-.01em}.next-card .d{font-size:13px;opacity:.88;margin-top:3px;max-width:520px}.next-card .grow{flex:1;min-width:240px}.next-card .btn{background:#fff;color:var(--brand-ink)}.next-card .btn:hover{background:var(--tint)}.section{margin-top:26px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-head h2{font-size:15.5px;font-weight:800;letter-spacing:-.01em}.a-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:15px 18px}.a-row+.a-row{border-top:1px solid var(--line)}.a-row .t{font-size:14.5px;font-weight:700}.a-row .m{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:5px}.a-row .actions{display:flex;gap:12px;align-items:center;flex-shrink:0;padding-top:2px}.task-list{border-top:1px solid var(--line);margin-top:12px;padding:6px 0 2px}.task-item{display:flex;align-items:flex-start;gap:10px;padding:8px 2px;font-size:13px}.task-item+.task-item{border-top:1px dashed var(--line)}.task-item .tt{flex-shrink:0;width:96px}.task-item .tx{flex:1;color:var(--ink-2)}.heat-row{display:flex;align-items:center;gap:12px;padding:10px 18px}.heat-row+.heat-row{border-top:1px solid var(--line)}.heat-row .lbl{width:180px;font-size:13.5px;font-weight:600}.heat-row .track{flex:1;height:8px;border-radius:4px;background:#f1eff6;overflow:hidden}.heat-row .fill{display:block;height:100%;border-radius:4px}.heat-row .pct{width:76px;text-align:right;font-size:12.5px;color:var(--ink-3)}.member-row{display:flex;align-items:center;gap:10px;padding:10px 18px;font-size:13.5px}.member-row+.member-row{border-top:1px solid var(--line)}.member-row .em{flex:1}.studio-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#17141f80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:4vh 16px;overflow-y:auto}.studio{width:720px;max-width:100%;background:var(--card);border-radius:24px;box-shadow:var(--shadow);overflow:hidden;margin-bottom:6vh}.studio-head{display:flex;align-items:center;gap:14px;padding:18px 24px;border-bottom:1px solid var(--line)}.studio-head h2{font-size:16px;font-weight:800;letter-spacing:-.01em;flex:1}.studio-close{width:30px;height:30px;border-radius:50%;border:none;background:var(--bg);color:var(--ink-3);font-size:15px}.studio-body{padding:22px 24px 26px}.studio-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;border-top:1px solid var(--line);background:var(--bg)}.steps{display:flex;align-items:center;gap:8px}.step-dot{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--ink-3)}.step-dot i{font-style:normal;width:22px;height:22px;border-radius:50%;background:#efedf5;color:var(--ink-3);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;transition:all .2s}.step-dot.on{color:var(--brand-ink)}.step-dot.on i{background:var(--brand);color:#fff}.step-dot.done i{background:var(--tint-2);color:var(--brand-deep)}.step-line{width:26px;height:1.5px;background:var(--line-2)}.step-dot .cap{display:none}@media (min-width: 560px){.step-dot .cap{display:inline}}.src-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}@media (max-width: 540px){.src-cards{grid-template-columns:1fr}}.src-card{text-align:left;background:#fff;border:1.5px solid var(--line-2);border-radius:16px;padding:16px 18px;transition:all .15s;cursor:pointer}.src-card:hover{border-color:var(--brand)}.src-card.on{border-color:var(--brand);background:var(--tint);box-shadow:0 0 0 3px var(--tint)}.src-card .ic{width:34px;height:34px;border-radius:10px;background:var(--tint);color:var(--brand);display:flex;align-items:center;justify-content:center;margin-bottom:10px}.src-card.on .ic{background:#fff}.src-card .t{font-size:14px;font-weight:700;margin-bottom:3px}.src-card .d{font-size:12.5px;color:var(--ink-3);line-height:1.5}.gen-status{text-align:center;padding:40px 20px}.gen-status .spin{width:42px;height:42px;border:3.5px solid var(--tint-2);border-top-color:var(--brand);border-radius:50%;margin:0 auto 18px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.gen-status .t{font-size:15px;font-weight:700;margin-bottom:5px}.gen-status .d{font-size:13px;color:var(--ink-3)}.preview-lesson{background:var(--tint);border:1px solid var(--tint-2);border-radius:14px;padding:14px 16px;margin-bottom:14px}.preview-lesson .k{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-deep);margin-bottom:5px}.preview-lesson .r{font-size:13.5px;color:var(--brand-ink);line-height:1.6}.ptask{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px 14px}.ptask+.ptask{margin-top:8px}.ptask .n{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--bg);color:var(--ink-3);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-top:1px}.ptask .bd{flex:1;min-width:0}.ptask .tx{font-size:13px;color:var(--ink-2);line-height:1.55;overflow-wrap:anywhere}.ptask .rm{border:none;background:none;color:var(--ink-3);font-size:15px;padding:2px 4px}.ptask .rm:hover{color:var(--red)}.done-view{text-align:center;padding:36px 20px 22px}.done-view .ok{width:60px;height:60px;border-radius:50%;background:#f0fdf4;color:var(--green);display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px}.done-view h3{font-size:19px;font-weight:800;letter-spacing:-.02em;margin-bottom:7px}.done-view p{color:var(--ink-2);font-size:14px;max-width:400px;margin:0 auto 20px}@media (max-width: 640px){.page{padding:20px 14px 60px}.a-row{flex-direction:column}.a-row .actions{padding-top:8px}.heat-row .lbl{width:120px}}
