:root{color:#252b40;background:#f5f7fd;font-family:Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}html,body{min-height:100%;margin:0}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a{color:#5144bd}h1,h2,h3,p{margin-top:0}h1{font-size:1.45rem}h2{font-size:1.1rem}h3{font-size:1rem}small{color:#69728b;font-size:.75rem}input,textarea{color:#252b40;background:#fff;border:1px solid #d8deed;border-radius:12px;outline:none;width:100%;padding:12px 14px}input:focus,textarea:focus,button:focus-visible{outline-offset:2px;outline:2px solid #5144bd}label{gap:7px;margin:12px 0;font-size:.85rem;font-weight:650;display:grid}.brand{white-space:nowrap;font-size:1.16rem;font-weight:800}.brand span{color:#7368ed}.primary,.secondary,.danger{border:1px solid #0000;border-radius:12px;padding:11px 18px;font-weight:700}.primary{color:#fff;background:#5144bd}.primary:hover{background:#4033a5}.secondary{color:#5144bd;background:#f1efff;border-color:#d9d4ff}.danger{color:#ab3039;background:#fff1f0;border-color:#f0cccf}.textButton{color:#5144bd;background:0 0;border:0;padding:10px 0;font-weight:650}.hint{color:#737d94;font-size:.82rem;line-height:1.5}.empty{color:#7d879b;text-align:center;padding:30px 16px}.holding,.authPage{text-align:center;place-content:center;min-height:100dvh;padding:24px;display:grid}.holding{background:radial-gradient(circle at 0 0,#ebe8ff,#0000 60%),#f5f7fd}.holding h1{margin:24px 0 8px;font-size:clamp(1.8rem,4vw,2.7rem)}.holding p{color:#69728b}.authPage{background:radial-gradient(circle at 0 0,#dcd8ff,#0000 55%),#f5f7fd}.authCard{text-align:left;background:#fff;border:1px solid #e1e5f0;border-radius:24px;width:min(100%,440px);padding:32px;box-shadow:0 24px 65px #30336d18}.authCard h1{margin:28px 0 8px}.authCard p{color:#69728b;line-height:1.5}.authCard .primary{width:100%;margin-top:10px}.notice{color:#166f58!important}.error{color:#af3346!important}.appShell{flex-direction:column;min-width:0;height:100dvh;display:flex}.topBar{background:#fff;border-bottom:1px solid #e2e5ef;justify-content:space-between;align-items:center;height:68px;min-height:68px;padding:0 24px;display:flex}.topActions{color:#6c748a;align-items:center;gap:15px;font-size:.84rem;display:flex}.topActions button{color:#5144bd;background:#fff;border:1px solid #d9deea;border-radius:9px;padding:7px 12px}.columns{flex:1;min-height:0;display:flex}.sidebar{background:#fff;border-right:1px solid #e2e5ef;flex:none;width:360px;overflow:auto}.sideTitle{justify-content:space-between;align-items:center;padding:24px 22px 0;display:flex}.sideTitle h1{margin:0}.sidebar>.hint{padding:0 22px}.sideTitle small{color:#5144bd;background:#f1efff;border-radius:8px;padding:5px 9px}.listItem{text-align:left;color:#252b40;background:0 0;border:0;border-radius:14px;align-items:center;gap:12px;width:calc(100% - 20px);margin:3px 10px;padding:11px;font-weight:650;display:flex}.listItem:hover,.listItem.selected{background:#f0eeff}.listItem span:last-child{min-width:0}.listItem small{margin-top:3px;font-weight:400;display:block}.avatar{color:#5144bd;background:#e8e4ff;border-radius:15px;place-items:center;width:42px;min-width:42px;height:42px;font-size:.8rem;font-weight:800;display:grid}.claimPanel{background:#f9faff;border:1px solid #e0e4ee;border-radius:17px;margin:20px 12px;padding:18px}.claimPanel p{color:#69728b;font-size:.8rem}.claimPanel input{margin-bottom:9px}.conversation{background:#f7f8fd;flex-direction:column;flex:1;min-width:0;display:flex}.chatHeader{background:#fff;border-bottom:1px solid #e1e5f0;align-items:center;gap:12px;padding:17px 23px;display:flex}.chatHeader h2{margin:0}.chatHeader p{color:#707990;margin:4px 0 0;font-size:.78rem}.back{color:#5144bd;background:0 0;border:0;font-size:2rem;display:none}.threadTabs{background:#fff;border-bottom:1px solid #e1e5f0;gap:8px;padding:12px 20px;display:flex;overflow:auto}.threadTabs button,.segmented button{color:#606c84;white-space:nowrap;background:#f5f6fb;border:0;border-radius:10px;padding:9px 14px}.threadTabs .active,.segmented .active{color:#5144bd;background:#e8e4ff;font-weight:750}.welcome{text-align:center;color:#737e97;margin:auto;padding:24px}.welcomeIcon{color:#5144bd;margin-bottom:15px;font-size:3rem}.welcome h2{color:#252b40;font-size:1.5rem}.messageList{flex-direction:column;flex:1;gap:12px;padding:28px clamp(16px,4vw,56px);display:flex;overflow:auto}.message{background:#fff;border:1px solid #e3e6f0;border-radius:16px 16px 16px 4px;align-self:flex-start;max-width:680px;padding:13px 17px;box-shadow:0 3px 12px #252b4009}.message.teacherMessage{background:#e9e6ff;border-color:#d4ceff;border-radius:16px 16px 4px;align-self:flex-end}.message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.message footer{color:#777f94;align-items:center;gap:12px;margin-top:8px;font-size:.72rem;display:flex}.message footer button{color:#5144bd;background:0 0;border:0;font-size:.72rem}.pinned{color:#5144bd;margin-bottom:6px;display:block}.composer{background:#fff;border-top:1px solid #e1e5f0;align-items:flex-end;gap:12px;padding:16px clamp(16px,4vw,56px);display:flex}.composer textarea{resize:vertical;min-height:50px;max-height:160px}.accessPanel{width:100%;max-width:750px;padding:28px clamp(16px,4vw,48px);overflow:auto}.accessPanel>p{color:#68738c;line-height:1.5}.accessPanel .segmented{gap:8px;display:flex}.check{align-items:center;gap:9px;display:flex}.check input{width:auto}.inviteResult{overflow-wrap:anywhere;background:#eef9f3;border:1px solid #c9e7d9;border-radius:13px;margin:18px 0;padding:16px}.inviteResult p{margin:8px 0}.account{background:#fff;border:1px solid #e0e4ef;border-radius:13px;justify-content:space-between;align-items:center;gap:12px;margin:8px 0;padding:12px 15px;display:flex}.account small{margin-top:4px;display:block}.account .danger{padding:8px 11px;font-size:.8rem}.toast{z-index:20;background:#fff;border:1px solid #d9deec;border-radius:12px;min-width:min(90vw,380px);padding:12px 40px 12px 15px;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 14px 38px #22253b24}.toast button{background:0 0;border:0;font-size:1.3rem;position:absolute;top:8px;right:12px}.modalShade{z-index:30;background:#171b34a6;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:22px;width:min(100%,420px);padding:24px;box-shadow:0 24px 70px #0b102755}.modal p{color:#69728b}.pinChoices{grid-template-columns:1fr 1fr;gap:9px;display:grid}.pinChoices button{color:#5144bd;background:#f8f8ff;border:1px solid #dcdff0;border-radius:10px;padding:12px;font-weight:650}@media (max-width:720px){.topBar{height:58px;min-height:58px;padding:0 15px}.topActions span{display:none}.sidebar,.conversation{width:100%}.mobileHidden{display:none}.back{display:block}.messageList{padding:16px}.composer{padding:10px}.composer .primary{padding:12px}.accessPanel{padding:18px}.authCard{padding:24px}}@media (prefers-color-scheme:dark){:root{color:#edf0fb;background:#171b27}.holding,.authPage{background:radial-gradient(circle at 0 0,#32296b,#0000 55%),#171b27}.topBar,.sidebar,.chatHeader,.threadTabs,.composer,.authCard,.modal,.account,.toast{color:#edf0fb;background:#222737;border-color:#394155}.conversation{background:#191e2b}.brand,.sideTitle h1,.chatHeader h2,.welcome h2,.listItem,.message{color:#edf0fb}.listItem:hover,.listItem.selected,.threadTabs .active,.segmented .active{background:#343052}.avatar{color:#c5bbff;background:#343052}.message{background:#282f40;border-color:#394155}.message.teacherMessage{background:#373057;border-color:#605393}.claimPanel,.threadTabs button,.segmented button,.pinChoices button{color:#d1caff;background:#272d3e;border-color:#414960}.notice,.inviteResult{background:#1c3e36;border-color:#376952;color:#a9ebca!important}.account,.modal,.toast{box-shadow:none}input,textarea{color:#edf0fb;background:#1b2030;border-color:#454e65}.topActions button{color:#d1caff;background:#222737;border-color:#454e65}}
.brand{color:#252b40;align-items:center;gap:.58rem;display:inline-flex}.brand svg{flex:none;width:30px;height:30px}.brand strong{color:#5144bd;letter-spacing:.035em;font-weight:800}.topActions button{justify-content:center;align-items:center;gap:6px;display:inline-flex}.holding .brand{justify-self:center}.modalActions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.authCard>.textButton+.textButton{margin-left:18px}@media (prefers-color-scheme:dark){.brand{color:#edf0fb}.brand strong{color:#b1a6ff}}
