:root{color:#102033;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f7fbff;font-family:Pretendard,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}a{color:inherit;text-decoration:none}#root{min-height:100vh}:root{--bg:#f7fbff;--surface:#fff;--ink:#102033;--muted:#64748b;--line:#dbe7f3;--blue:#2563eb;--mint:#12b981;--violet:#7c3aed;--amber:#f59e0b;--red:#ef4444;--shadow:0 18px 48px #1e40af1a}.page{width:min(1180px,100% - 40px);margin:0 auto;padding:28px 0 44px}.topbar{justify-content:space-between;align-items:center;gap:18px;margin-bottom:34px;display:flex}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brandMark{color:#fff;background:linear-gradient(135deg,#2563eb,#12b981);border-radius:14px;place-items:center;width:44px;height:44px;display:grid;box-shadow:0 14px 30px #2563eb38}.brandName{flex-direction:column;gap:1px;min-width:0;display:flex}.brandName strong{font-size:20px;font-weight:900}.brandName span{color:var(--muted);font-size:13px;font-weight:700}.topActions{align-items:center;gap:10px;display:flex}.iconBtn,.textBtn,.primaryBtn,.secondaryBtn{cursor:pointer;white-space:nowrap;border:0;justify-content:center;align-items:center;gap:8px;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.iconBtn{color:#334155;background:#ffffffc7;border:1px solid #dbe7f3e6;border-radius:12px;width:42px;height:42px}.textBtn{color:#334155;background:#ffffffc7;border:1px solid #dbe7f3e6;border-radius:12px;height:42px;padding:0 16px;font-weight:800}.textBtn:disabled{cursor:wait;opacity:.72}.userMenu{background:#ffffffd1;border:1px solid #dbe7f3f2;border-radius:16px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;padding:6px 6px 6px 8px;display:grid}.userMenu img,.userMenu>span{border-radius:50%;width:34px;height:34px}.userMenu img{object-fit:cover}.userMenu>span{color:#fff;background:var(--blue);place-items:center;font-size:14px;font-weight:900;display:grid}.userMenu div{gap:1px;min-width:0;display:grid}.userMenu strong,.userMenu small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.userMenu strong{color:var(--ink);font-size:13px;font-weight:900}.userMenu small{color:var(--muted);font-size:11px;font-weight:700}.ghostBtn{color:#475569;cursor:pointer;background:#f1f5f9;border:0;border-radius:11px;height:34px;padding:0 11px;font-size:12px;font-weight:900}.authError{color:#b91c1c;background:#fff1f2;border:1px solid #fecdd3;border-radius:8px;margin:-18px 0 22px;padding:12px 14px;font-size:14px;font-weight:800}.rolePanel{background:#ffffffe6;border:1px solid #dbe7f3f5;border-radius:8px;grid-template-columns:minmax(0,.82fr) minmax(420px,1.18fr);align-items:center;gap:18px;margin:-12px 0 24px;padding:20px;display:grid;box-shadow:0 14px 36px #1e40af14}.roleCopy span{color:#0f766e;margin-bottom:8px;font-size:12px;font-weight:900;display:inline-flex}.roleCopy h2{color:var(--ink);margin:0 0 8px;font-size:24px;font-weight:900;line-height:1.2}.roleCopy p{color:var(--muted);margin:0;font-size:14px;font-weight:700;line-height:1.55}.roleActions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.roleCard{text-align:left;cursor:pointer;border:1px solid var(--line);min-height:128px;color:var(--ink);background:#f8fbff;border-radius:8px;flex-direction:column;justify-content:center;align-items:flex-start;gap:8px;padding:18px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.roleCard:hover{transform:translateY(-1px);box-shadow:0 14px 28px #1e40af14}.roleCard:disabled{cursor:wait;opacity:.7}.roleCard.teacher{border-color:#2563eb47}.roleCard.student{border-color:#12b98152}.roleCard svg{color:var(--blue)}.roleCard.student svg{color:var(--mint)}.roleCard strong{font-size:16px;font-weight:900}.roleCard span{color:var(--muted);font-size:13px;font-weight:700;line-height:1.45}.roleSaving{color:var(--muted);grid-column:1/-1;align-items:center;gap:7px;font-size:13px;font-weight:900;display:inline-flex}.roleSaving svg{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.primaryBtn{color:#fff;background:var(--blue);border-radius:16px;min-height:54px;padding:0 22px;font-size:16px;font-weight:900;box-shadow:0 16px 30px #2563eb47}.primaryBtn:disabled,.joinBox button:disabled{cursor:wait;opacity:.78}.spinIcon{animation:.8s linear infinite spin}.secondaryBtn{color:#0f766e;background:#e6fffb;border:1px solid #b8efe7;border-radius:16px;min-height:54px;padding:0 20px;font-size:16px;font-weight:900}.iconBtn:hover,.textBtn:hover,.primaryBtn:hover,.secondaryBtn:hover{transform:translateY(-1px)}.shell{grid-template-columns:minmax(0,1.02fr) minmax(360px,.78fr);align-items:stretch;gap:24px;display:grid}.hero{grid-template-columns:minmax(0,1fr);gap:20px;min-width:0;display:grid}.heroPanel{min-height:424px;box-shadow:var(--shadow);background:#ffffffdb;border:1px solid #dbe7f3eb;border-radius:8px;padding:34px;position:relative;overflow:hidden}.heroPanel:after{content:"";opacity:.8;background:conic-gradient(from 190deg,#2563eb24,#12b98129,#7c3aed1f,#2563eb24);border-radius:50%;width:320px;height:320px;position:absolute;bottom:-120px;right:-90px}.eyebrow{color:#0f766e;background:#dcfce7;border-radius:999px;align-items:center;gap:8px;height:34px;margin-bottom:18px;padding:0 12px;font-size:13px;font-weight:900;display:inline-flex}h1{letter-spacing:0;max-width:650px;margin:0;font-size:clamp(38px,5vw,68px);font-weight:900;line-height:1.02}.heroCopy{color:#475569;max-width:620px;margin:20px 0 28px;font-size:18px;font-weight:600;line-height:1.72}.heroActions{z-index:2;flex-wrap:wrap;gap:12px;display:flex;position:relative}.joinBox{z-index:2;grid-template-columns:1fr auto;gap:10px;max-width:462px;margin-top:20px;display:grid;position:relative}.joinBox input{border:1px solid var(--line);width:100%;min-height:50px;color:var(--ink);background:#f8fbff;border-radius:14px;outline:none;padding:0 15px;font-weight:800}.joinBox button{color:#fff;cursor:pointer;background:#102033;border:0;border-radius:14px;min-height:50px;padding:0 18px;font-weight:900}.activeRoomPanel{background:#ffffffe6;border:1px solid #dbe7f3f5;border-radius:8px;grid-template-columns:minmax(0,1fr) auto minmax(220px,auto);align-items:center;gap:14px;margin-top:24px;padding:18px;display:grid;box-shadow:0 14px 36px #1e40af14}.activeRoomMain{align-items:center;gap:14px;min-width:0;display:flex}.activeRoomIcon{color:#fff;background:linear-gradient(135deg, var(--blue), var(--mint));border-radius:15px;flex:none;place-items:center;width:48px;height:48px;display:grid}.activeRoomLabel{color:#0f766e;margin-bottom:4px;font-size:12px;font-weight:900;display:inline-flex}.activeRoomMain h2{color:var(--ink);margin:0 0 5px;font-size:19px;font-weight:900}.activeRoomMain p{color:var(--muted);margin:0;font-size:13px;font-weight:700;line-height:1.45}.roomCodeBox{border:1px solid var(--line);background:#f8fbff;border-radius:8px;min-width:178px;padding:12px}.roomCodeBox span{color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:900;display:inline-flex}.roomCodeBox strong{color:var(--ink);letter-spacing:0;margin:5px 0 10px;font-size:28px;font-weight:900;line-height:1;display:block}.roomCodeBox button{color:#fff;background:var(--blue);cursor:pointer;border:0;border-radius:10px;justify-content:center;align-items:center;gap:6px;width:100%;height:34px;font-size:13px;font-weight:900;display:inline-flex}.roomNextBox{color:#0f766e;background:#e6fffb;border:1px solid #b8efe7;border-radius:8px;align-items:center;gap:10px;min-height:78px;padding:14px;font-size:13px;font-weight:900;line-height:1.45;display:flex}.flowStrip{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.flowCard{background:#fffc;border:1px solid #dbe7f3eb;border-radius:8px;min-height:132px;padding:18px}.flowCard i,.lessonIcon{color:#fff;border-radius:10px;place-items:center;width:34px;height:34px;margin-bottom:16px;display:grid}.tone-blue{background:var(--blue)}.tone-mint{background:var(--mint)}.tone-violet{background:var(--violet)}.flowCard strong{margin-bottom:6px;font-size:16px;font-weight:900;display:block}.flowCard span{color:var(--muted);font-size:13px;font-weight:700;line-height:1.5}.classroomPreview{min-width:0;box-shadow:var(--shadow);background:#ffffffeb;border:1px solid #dbe7f3f5;border-radius:8px;overflow:hidden}.previewHeader{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:12px;padding:18px;display:flex}.livePill{color:#0f766e;background:#dcfce7;border-radius:999px;align-items:center;gap:8px;padding:8px 11px;font-size:12px;font-weight:900;display:inline-flex}.liveDot{background:var(--mint);border-radius:50%;width:8px;height:8px}.roomCode{color:var(--muted);font-size:12px;font-weight:900}.videoGrid{background:#f7fbff;grid-template-columns:1.35fr .65fr;gap:10px;padding:16px;display:grid}.teacherTile,.studentTiles>div{background:#dbeafe;border:1px solid #94a3b83d;border-radius:8px;position:relative;overflow:hidden}.teacherTile{background:linear-gradient(135deg,#2563eb24,#12b9812e),#e8f2ff;place-items:center;min-height:218px;display:grid}.teacherAvatar{width:92px;height:92px;color:var(--blue);background:#fff;border-radius:50%;place-items:center;display:grid;box-shadow:0 14px 32px #2563eb29}.tileLabel{color:#fff;background:#0f172ab8;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:900;display:inline-flex;position:absolute;bottom:10px;left:10px}.tileLabel.iconOnly{padding:7px}.studentTiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.studentTiles>div{color:#1e3a8a;background:#eef7ff;place-items:center;min-height:104px;font-weight:900;display:grid}.quizPanel{border:1px solid var(--line);background:#fff;border-radius:8px;margin:0 16px 16px;padding:18px}.quizTop{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.quizTop strong{font-size:15px;font-weight:900}.submitted{color:var(--blue);font-size:13px;font-weight:900}.question{color:#334155;margin:0 0 14px;font-size:14px;font-weight:800;line-height:1.55}.answerBars{gap:9px;display:grid}.barRow{color:#334155;grid-template-columns:38px 1fr 44px;align-items:center;gap:8px;font-size:13px;font-weight:900;display:grid}.barTrack{background:#e2e8f0;border-radius:999px;height:12px;overflow:hidden}.barFill{border-radius:inherit;background:var(--blue);height:100%;display:block}.barRow.correct .barFill{background:var(--mint)}.barRow.warn .barFill{background:var(--amber)}.studentStatus{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}.statusCard{border:1px solid var(--line);background:#f8fbff;border-radius:8px;min-height:76px;padding:12px}.statusCard span{color:var(--muted);font-size:12px;font-weight:800}.statusCard strong{margin-top:5px;font-size:20px;font-weight:900;display:block}.statusCard.good strong{color:var(--mint)}.statusCard.bad strong{color:var(--red)}.statusCard.wait strong{color:var(--amber)}.bottomGrid{grid-template-columns:.9fr 1.1fr;gap:24px;margin-top:24px;display:grid}.panel{background:#ffffffdb;border:1px solid #dbe7f3f0;border-radius:8px;padding:22px}.panelTitle{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.panelTitle h2{margin:0;font-size:18px;font-weight:900}.smallLink{color:var(--blue);font-size:13px;font-weight:900}.lessonList{gap:10px;display:grid}.lessonItem{border:1px solid var(--line);background:#f8fbff;border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:13px;display:grid}.lessonIcon{border-radius:12px;width:40px;height:40px;margin-bottom:0}.lessonMeta strong{margin-bottom:4px;font-size:14px;font-weight:900;display:block}.lessonMeta span,.lessonScore{color:var(--muted);font-size:12px;font-weight:800}.homeworkPreview{grid-template-columns:.8fr 1.2fr;align-items:center;gap:16px;display:grid}.aiCard{background:linear-gradient(135deg,#2563eb1f,#12b98124),#f8fbff;border:1px solid #cfe0f5;border-radius:8px;flex-direction:column;justify-content:space-between;min-height:180px;padding:18px;display:flex}.aiCard i{width:42px;height:42px;color:var(--blue);background:#fff;border-radius:13px;place-items:center;display:grid;box-shadow:0 12px 24px #2563eb1f}.aiCard strong{font-size:17px;font-weight:900;line-height:1.35}.checkList{gap:12px;display:grid}.checkRow{color:#334155;align-items:flex-start;gap:10px;font-size:14px;font-weight:800;line-height:1.5;display:flex}.checkRow i{color:#0f766e;background:#dcfce7;border-radius:999px;flex:none;place-items:center;width:22px;height:22px;margin-top:1px;display:grid}body{background:radial-gradient(circle at 18% 8%, #2563eb1f, transparent 30%), radial-gradient(circle at 88% 12%, #14b8a624, transparent 28%), linear-gradient(180deg, #fbfdff 0%, var(--bg) 48%, #eef7ff 100%)}@media (width<=980px){.shell,.bottomGrid,.homeworkPreview,.activeRoomPanel{grid-template-columns:1fr}}@media (width<=720px){.page{width:min(100% - 24px,1180px);padding-top:18px}.topbar{align-items:flex-start}.topActions{flex-direction:column;align-items:flex-end}.topActions .iconBtn{display:none}.userMenu{grid-template-columns:auto minmax(0,1fr);max-width:184px}.userMenu .ghostBtn{grid-column:1/-1;width:100%}.heroPanel{min-height:auto;padding:24px}.rolePanel,.roleActions{grid-template-columns:1fr}h1{font-size:40px}.heroCopy{font-size:16px}.heroActions,.joinBox,.flowStrip,.videoGrid,.studentStatus{grid-template-columns:1fr}.primaryBtn,.secondaryBtn,.joinBox button{width:100%}.studentTiles{grid-template-columns:repeat(2,minmax(0,1fr))}.barRow{grid-template-columns:32px 1fr 38px}.lessonItem{grid-template-columns:auto 1fr}.lessonScore{grid-column:2}}
