:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,PingFang SC,system-ui,sans-serif;color:#173149;background:#f3f7f8;font-synthesis:none;--navy: #143a61;--navy-2: #0f2f50;--mint: #47bba9;--mint-soft: #e6f7f3;--line: #dce7e9;--muted: #6f8292;--paper: #ffffff;--gold: #e9ae45;--rose: #e47373}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,textarea,input{font:inherit}button{color:inherit}button:focus-visible,textarea:focus-visible{outline:3px solid rgba(71,187,169,.32);outline-offset:2px}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;color:var(--muted);background:#f4f8f8}.auth-loading .brand-mark{margin-bottom:5px}.auth-loading p{margin:0;font-size:13px}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(390px,.88fr) minmax(520px,1.12fr);background:#f7faf9}.login-showcase{min-height:100vh;position:relative;overflow:hidden;padding:48px clamp(38px,5vw,76px);color:#fff;display:flex;flex-direction:column;background:linear-gradient(145deg,#0d2e4d,#123b60 56%,#17546b)}.login-showcase:before{content:"";position:absolute;width:440px;height:440px;border:1px solid rgba(115,225,205,.18);border-radius:50%;right:-190px;top:18%;box-shadow:0 0 0 74px #4bbfac09,0 0 0 148px #4bbfac06}.login-showcase:after{content:"";position:absolute;width:260px;height:260px;background:radial-gradient(circle,rgba(79,202,183,.18),transparent 68%);left:-90px;bottom:-60px}.login-brand{position:relative;z-index:1;display:flex;align-items:center;gap:13px}.login-brand .brand-mark{width:46px;height:46px}.login-brand>div{display:flex;flex-direction:column}.login-brand strong{font-size:21px;letter-spacing:.05em}.login-brand small{color:#9bb5c6;margin-top:3px}.login-message{position:relative;z-index:1;margin:auto 0;max-width:540px}.login-message>span{font-size:11px;color:#6ed2c2;letter-spacing:.2em;font-weight:700}.login-message h1{font-size:clamp(36px,4.1vw,57px);line-height:1.18;letter-spacing:-.035em;margin:20px 0}.login-message p{max-width:500px;margin:0;color:#b7c9d5;font-size:15px;line-height:1.9}.login-trust{position:relative;z-index:1;display:flex;align-items:center;gap:12px;color:#6ed2c2}.login-trust span{display:flex;flex-direction:column}.login-trust strong{color:#e8f2f4;font-size:13px}.login-trust small{margin-top:3px;color:#91aabb;font-size:11px}.login-main{max-width:none;width:100%;min-width:0;margin:0;padding:50px clamp(32px,7vw,100px);display:grid;place-items:center}.login-panel{width:100%;max-width:490px;min-width:0}.mobile-login-brand{display:none;align-items:center;gap:10px;margin-bottom:30px}.mobile-login-brand .brand-mark{width:39px;height:39px}.mobile-login-brand strong{color:var(--navy);font-size:19px}.role-tabs{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:6px;border:1px solid var(--line);background:#eef4f4;border-radius:14px;margin-bottom:35px}.role-tabs button{min-height:46px;border:0;border-radius:9px;background:transparent;color:#718593;display:flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;transition:.2s ease}.role-tabs button:hover{color:#274c65}.role-tabs button.active{color:var(--navy);background:#fff;box-shadow:0 3px 12px #1e435b17;font-weight:600}.login-heading{display:flex;align-items:center;gap:14px;margin-bottom:30px}.login-heading h2{margin:0 0 6px;color:#123956;font-size:27px;letter-spacing:-.02em}.login-heading p{margin:0;color:var(--muted);font-size:13px}.login-role-icon{width:48px;height:48px;flex:0 0 auto;border-radius:13px;display:grid;place-items:center;color:#287f75;background:#e1f5f1}.login-role-icon.teacher{color:#3c6f98;background:#e6eff7}.login-role-icon.admin{color:#685b91;background:#eeeaf8}.login-form{min-width:0;display:flex;flex-direction:column;gap:20px}.login-form label{min-width:0}.login-form label>span{display:block;color:#2b465b;font-size:13px;font-weight:600;margin-bottom:8px}.login-input{width:100%;min-width:0;height:51px;display:flex;align-items:center;gap:10px;padding:0 14px;background:#fff;border:1px solid #cfdddf;border-radius:11px;color:#8395a0;transition:.2s}.login-input:focus-within{border-color:#53ae9f;box-shadow:0 0 0 4px #47bba91f}.login-input input{width:100%;min-width:0;height:100%;border:0;outline:0;color:#17364e;background:transparent}.login-input input::placeholder{color:#9cabb4}.login-input button{width:32px;height:32px;flex:0 0 auto;border:0;background:none;color:#7f919c;display:grid;place-items:center;cursor:pointer}.login-error{margin-top:-6px;padding:10px 12px;color:#aa4646;background:#fff0f0;border:1px solid #f5d1d1;border-radius:9px;font-size:12px}.login-success{margin-top:-6px;padding:10px 12px;display:flex;align-items:center;gap:8px;color:#287f69;background:#eaf8f3;border:1px solid #c6ebdc;border-radius:9px;font-size:12px}.login-submit{height:52px;margin-top:3px;border:0;border-radius:11px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;font-weight:600;box-shadow:0 10px 24px #143a612b;transition:.2s}.login-submit:hover:not(:disabled){background:#1b4b78;transform:translateY(-1px)}.login-submit:disabled{cursor:wait;opacity:.72}.login-help{margin:18px 0 5px;text-align:center;color:#8496a2;font-size:12px}.login-help button{border:0;padding:0;background:none;color:#267f74;font:inherit;font-weight:600;cursor:pointer}.login-help button:hover{text-decoration:underline}.login-support{margin:0 0 20px;text-align:center;color:#9aa8b0;font-size:11px}.login-boundary{display:flex;align-items:flex-start;gap:8px;padding:13px 14px;border-radius:10px;background:#edf7f5;color:#4a766f;font-size:11px;line-height:1.6}.login-boundary svg{flex:0 0 auto;margin-top:1px}.register-page .login-panel{max-width:610px}.register-panel{padding-top:35px}.back-login{border:0;padding:0;margin:0 0 21px;color:#527080;background:none;cursor:pointer;font-size:12px}.back-login:hover{color:#267f74}.register-panel .login-heading,.register-tabs{margin-bottom:22px}.register-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.register-form{gap:15px}.app-shell{min-height:100vh;display:flex}.sidebar{position:fixed;inset:0 auto 0 0;width:262px;background:var(--navy-2);color:#dfeaf2;z-index:30;display:flex;flex-direction:column;box-shadow:10px 0 35px #0f2f5014}.brand{height:78px;padding:0 22px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.09)}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(145deg,#5bd4c0,#33a898);color:#0c3c47}.brand div{display:flex;flex-direction:column;line-height:1.3}.brand strong{color:#fff;font-size:18px;letter-spacing:.03em}.brand small{color:#8fa8bb;font-size:12px;margin-top:3px}.brand>button{display:none;background:none;border:0;color:#a7bbca}.course-card{margin:20px 16px 12px;padding:14px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;border-radius:12px;display:flex;flex-direction:column;gap:7px}.course-card>span{font-size:12px;color:#8fa8bb}.course-card button{border:0;padding:0;background:none;display:flex;justify-content:space-between;align-items:center;color:#fff;text-align:left;cursor:pointer}.course-card small{color:#8fa8bb;font-size:12px}.sidebar nav{padding:8px 12px;overflow-y:auto}.sidebar nav>p{color:#69869c;text-transform:uppercase;font-size:11px;letter-spacing:.13em;margin:10px 12px 8px}.sidebar nav button{width:100%;height:46px;border:0;border-radius:10px;background:transparent;color:#aebfcd;display:flex;align-items:center;gap:12px;padding:0 13px;margin:3px 0;cursor:pointer;transition:.2s ease}.sidebar nav button:hover{background:#ffffff0f;color:#fff}.sidebar nav button.active{color:#fff;background:linear-gradient(90deg,#47bba940,#47bba914);box-shadow:inset 3px 0 var(--mint)}.sidebar nav button em{margin-left:auto;font-style:normal;background:#e7b34e;color:#18334b;border-radius:9px;min-width:21px;height:20px;display:grid;place-items:center;font-size:11px;font-weight:700}.sidebar-status{margin:auto 18px 18px;padding-top:15px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:5px;color:#9fb3c2;font-size:12px}.sidebar-status span{display:flex;align-items:center;gap:8px}.sidebar-status i,.chat-header p i,.healthy i{width:7px;height:7px;border-radius:50%;background:#5bd4a0;box-shadow:0 0 0 4px #5bd4a01f}.sidebar-status small{color:#69869c}.main-shell{width:calc(100% - 262px);margin-left:262px;min-height:100vh}.topbar{height:78px;background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 34px;position:sticky;top:0;z-index:20}.menu-button{display:none;border:0;background:none;padding:8px}.breadcrumb{display:flex;gap:9px;font-size:14px;align-items:center}.breadcrumb>span{color:var(--muted)}.breadcrumb .slash{color:#b7c5cc}.topbar-actions{margin-left:auto;display:flex;gap:11px;align-items:center}.search-button{height:39px;min-width:220px;border:1px solid var(--line);background:#f7fafb;border-radius:10px;display:flex;align-items:center;gap:9px;padding:0 10px;color:#8093a0;cursor:pointer}.search-button kbd{margin-left:auto;background:#fff;border:1px solid #dde6e9;border-radius:5px;padding:2px 5px;font-size:11px}.icon-button{width:39px;height:39px;border-radius:10px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer;position:relative}.icon-button i{position:absolute;right:8px;top:7px;width:7px;height:7px;background:var(--rose);border:2px solid white;border-radius:50%}.role-select{position:relative}.role-select>button{border:0;background:transparent;display:flex;align-items:center;gap:9px;cursor:pointer;padding:3px 5px}.avatar{width:39px;height:39px;display:grid;place-items:center;border-radius:11px;color:#fff;font-weight:600;background:var(--navy)}.avatar.teacher{background:#418f83}.avatar.admin{background:#6b6392}.user-meta{display:flex;flex-direction:column;text-align:left}.user-meta strong{font-size:13px}.user-meta small{font-size:11px;color:var(--muted);margin-top:2px}.role-menu{position:absolute;width:170px;top:52px;right:0;padding:7px;background:#fff;box-shadow:0 12px 35px #143a612e;border:1px solid var(--line);border-radius:12px;z-index:50}.role-menu button{width:100%;border:0;background:none;display:flex;align-items:center;justify-content:space-between;padding:10px;border-radius:7px;cursor:pointer}.role-menu button:hover{background:#f1f7f7}.profile-menu{width:210px}.profile-menu>div{padding:9px 10px 11px;border-bottom:1px solid #edf2f3;display:flex;flex-direction:column}.profile-menu>div strong{font-size:13px}.profile-menu>div small{color:var(--muted);margin-top:3px}.profile-menu button{justify-content:flex-start;gap:9px;margin-top:5px;color:#345d76}.profile-menu button:last-child{color:#a34d4d}main{max-width:1500px;padding:34px 36px 48px;margin:0 auto}.page-stack{display:flex;flex-direction:column;gap:22px}.welcome-row{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.welcome-row h1{margin:4px 0 5px;font-family:inherit;color:#133958;font-size:clamp(28px,3vw,36px);letter-spacing:-.02em}.welcome-row p{color:var(--muted);margin:0;line-height:1.7}.eyebrow{color:#2c9d8c;font-weight:600;font-size:12px;letter-spacing:.08em}.primary-button{border:0;background:var(--navy);color:#fff;border-radius:11px;min-height:43px;padding:0 17px;display:flex;align-items:center;gap:8px;cursor:pointer;box-shadow:0 8px 18px #143a6129;transition:.2s;white-space:nowrap}.primary-button:hover{background:#1d4c79;transform:translateY(-1px)}.secondary-button{border:1px solid #cfdddf;background:#fff;color:#315a70;border-radius:11px;min-height:43px;padding:0 17px;display:flex;align-items:center;gap:8px;cursor:pointer;white-space:nowrap}.secondary-button:hover{border-color:#91beb7;background:#f7fbfa}.secondary-button:disabled{opacity:.65;cursor:wait}.card{background:var(--paper);border:1px solid var(--line);border-radius:16px;box-shadow:0 5px 20px #1e435b0b}.student-hero{padding:25px 27px;display:flex;justify-content:space-between;align-items:center;gap:30px;overflow:hidden;position:relative}.student-hero:after{content:"";position:absolute;width:230px;height:230px;border:42px solid rgba(71,187,169,.06);border-radius:50%;right:-70px;top:-120px;pointer-events:none}.hero-progress{display:flex;align-items:center;gap:26px}.hero-progress h2{margin:10px 0 4px;font-size:21px}.hero-progress p{margin:0;color:var(--muted)}.hero-progress p strong{color:#2b9e8c}.progress-ring{--progress: 259deg;flex:0 0 auto;width:116px;height:116px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--mint) var(--progress),#e4edef 0);position:relative}.progress-ring:after{content:"";width:91px;height:91px;border-radius:50%;background:#fff;position:absolute}.progress-ring div{z-index:1;display:flex;flex-direction:column;align-items:center}.progress-ring strong{color:var(--navy);font-size:25px}.progress-ring span{font-size:11px;color:var(--muted)}.pill{display:inline-flex;border-radius:100px;padding:5px 9px;font-size:11px;font-weight:600}.pill.warning{background:#fff4dc;color:#a56b10}.next-action{min-width:260px;padding:17px 20px;border-radius:13px;background:linear-gradient(135deg,#eef8f6,#f7fbfb);border:1px solid #d8eeea;position:relative;z-index:1}.next-action>span{font-size:11px;color:#359686;text-transform:uppercase;letter-spacing:.08em}.next-action h3{margin:6px 0 2px;font-size:17px}.next-action p{margin:0 0 10px;color:var(--muted);font-size:12px}.next-action button{border:0;background:none;padding:0;color:var(--navy);font-weight:600;display:flex;gap:5px;align-items:center;cursor:pointer}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.metric-card{min-height:127px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:19px;display:flex;gap:14px;align-items:flex-start}.icon-badge{width:42px;height:42px;flex:0 0 auto;border-radius:12px;display:grid;place-items:center}.icon-badge.blue{background:#e9f0f7;color:#356891}.icon-badge.mint{background:var(--mint-soft);color:#279b89}.icon-badge.gold{background:#fff4dc;color:#b47a19}.icon-badge.rose{background:#ffeded;color:#cf5d5d}.metric-card>div:last-child{display:flex;flex-direction:column}.metric-card span{color:var(--muted);font-size:12px}.metric-card strong{font-family:inherit;font-size:27px;color:#173b5b;line-height:1.25}.metric-card strong small{font-family:inherit;font-size:12px;margin-left:3px;font-weight:500}.metric-card p{margin:4px 0 0;font-size:11px;color:#8b9ba7}.metric-card p b{color:#2ba28f}.two-column{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.panel{padding:22px}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.panel-title>div{display:flex;flex-direction:column}.panel-title span{font-size:11px;color:var(--muted)}.panel-title h3{margin:2px 0 0;font-size:17px}.panel-title button{border:0;background:none;color:#358f83;font-size:12px;cursor:pointer}.panel-title em{font-style:normal;background:#fff1da;color:#a86e13;border-radius:100px;padding:5px 9px;font-size:11px}.legend{display:flex;align-items:center;gap:6px}.legend i{width:8px;height:8px;border-radius:2px;background:var(--mint)}.trend-chart{height:185px;display:flex;align-items:end;gap:12px;padding:15px 8px 0;border-bottom:1px solid var(--line);background-image:linear-gradient(to bottom,#edf2f3 1px,transparent 1px);background-size:100% 25%}.chart-col{height:100%;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:5px}.chart-col>span{width:min(34px,65%);min-height:15px;background:linear-gradient(#5cc9b8,#3ca896);border-radius:7px 7px 1px 1px;position:relative;transition:.3s}.chart-col>span i{position:absolute;top:-20px;left:50%;transform:translate(-50%);font-style:normal;font-size:10px;color:#547080}.chart-col small{color:#8a9ba7;font-size:10px}.task-list{display:flex;flex-direction:column}.task-list>button{min-height:56px;border:0;background:none;border-top:1px solid #edf2f3;display:flex;align-items:center;gap:11px;text-align:left;cursor:pointer;padding:9px 2px}.task-list>button:first-child{border-top:0}.task-list button>span:nth-child(2){display:flex;flex-direction:column}.task-list strong{font-size:13px}.task-list small{color:var(--muted);margin-top:3px}.task-list svg:last-child,.task-list em{margin-left:auto}.task-list em{font-style:normal;color:#359688;font-size:11px}.task-check{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;color:#4a8190}.task-check.done{background:var(--mint-soft);color:#299986;border-color:#c7eae4}.assistant-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;height:calc(100vh - 146px);min-height:600px}.chat-card{display:flex;flex-direction:column;min-height:0;overflow:hidden}.chat-header{min-height:79px;padding:14px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.chat-header>div{display:flex;align-items:center;gap:11px}.chat-header h2{margin:0 0 3px;font-size:17px}.chat-header p{margin:0;color:var(--muted);font-size:11px;display:flex;align-items:center;gap:7px}.chat-header button{border:1px solid var(--line);background:#fff;height:36px;padding:0 11px;border-radius:9px;display:flex;align-items:center;gap:7px;color:#547080;font-size:12px;cursor:pointer}.messages{flex:1;overflow-y:auto;padding:28px;display:flex;flex-direction:column;gap:18px;background:linear-gradient(180deg,#fbfdfd,#f8fbfb)}.message{display:flex;align-items:flex-start;gap:10px;max-width:78%}.message>div{padding:12px 15px;border-radius:4px 14px 14px;background:#fff;border:1px solid var(--line);line-height:1.75;font-size:14px;white-space:pre-wrap;box-shadow:0 3px 12px #1d435a0a}.message.user{align-self:flex-end}.message.user>div{background:var(--navy);color:#fff;border:0;border-radius:14px 4px 14px 14px}.agent-avatar{width:33px;height:33px;flex:0 0 auto;border-radius:10px;display:grid;place-items:center;color:#208b7c;background:var(--mint-soft)}.assistant-thinking{display:flex;align-items:center;gap:8px;color:var(--muted)}.markdown-content{min-width:0;white-space:normal;overflow-wrap:anywhere}.markdown-content>:first-child{margin-top:0}.markdown-content>:last-child{margin-bottom:0}.markdown-content p{margin:.55em 0}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{margin:1em 0 .45em;color:#173e55;line-height:1.4}.markdown-content h1{font-size:1.35em}.markdown-content h2{font-size:1.22em}.markdown-content h3{font-size:1.1em}.markdown-content h4{font-size:1em}.markdown-content ul,.markdown-content ol{margin:.55em 0;padding-left:1.55em}.markdown-content li{margin:.2em 0;padding-left:.12em}.markdown-content blockquote{margin:.7em 0;padding:.45em .8em;border-left:3px solid #58ad9f;border-radius:0 7px 7px 0;color:#52717f;background:#f1f8f7}.markdown-content hr{margin:1em 0;border:0;border-top:1px solid #dce7e8}.markdown-content a{color:#167a9b;text-decoration:none;border-bottom:1px solid rgba(22,122,155,.3)}.markdown-content a:hover{border-bottom-color:currentColor}.markdown-content code{padding:.12em .35em;border-radius:5px;color:#ba4a58;background:#f4f0f1;font-family:Cascadia Code,Consolas,monospace;font-size:.9em}.markdown-content pre{max-width:100%;margin:.75em 0;padding:12px 14px;overflow-x:auto;border-radius:9px;color:#e8f1f4;background:#183544;line-height:1.6}.markdown-content pre code{padding:0;color:inherit;background:none;font-size:.88em}.markdown-content table{display:block;width:max-content;min-width:100%;max-width:100%;margin:.75em 0;overflow-x:auto;border-collapse:collapse}.markdown-content th,.markdown-content td{padding:7px 9px;border:1px solid #d7e3e5;text-align:left}.markdown-content th{color:#254f63;background:#edf6f5}.markdown-content input[type=checkbox]{margin-right:6px;accent-color:#2c9585}.agent-explanation .markdown-content{flex:1;font-size:12px;line-height:1.75}.result-answer .markdown-content{min-width:0;font-size:12px;line-height:1.7}.markdown-content .katex{font-size:1.04em}.markdown-content .katex-display{max-width:100%;margin:.8em 0;padding:.3em 0;overflow-x:auto;overflow-y:hidden;text-align:center}.markdown-content .katex-display>.katex{display:inline-block;min-width:max-content;text-align:initial}.markdown-content .katex-error{color:#b14949}.suggestions{padding:5px 20px 10px;display:flex;gap:7px;flex-wrap:wrap}.suggestions button{border:1px solid #cfe4e1;background:#f5fbfa;color:#37746d;border-radius:100px;padding:7px 11px;font-size:11px;cursor:pointer}.chat-input{margin:0 20px;min-height:56px;display:flex;align-items:flex-end;border:1px solid #cbdade;border-radius:13px;background:#fff;padding:8px;gap:8px;box-shadow:0 5px 18px #143a610f}.chat-input>button{width:38px;height:38px;border:0;background:none;display:grid;place-items:center;color:#637d8d;cursor:pointer}.chat-input textarea{flex:1;border:0;outline:0;resize:none;min-height:38px;line-height:38px;color:#23415a}.chat-input .send-button{background:var(--navy);color:#fff;border-radius:9px}.chat-note{text-align:center;color:#95a3ac;font-size:10px;margin:8px}.context-panel{display:flex;flex-direction:column;gap:15px}.context-panel article{padding:19px}.context-panel h3{margin:5px 0 2px}.context-panel>article>p{margin:0 0 15px;color:var(--muted);font-size:12px}.knowledge-row{display:flex;justify-content:space-between;border-top:1px solid #edf2f3;padding:10px 0;font-size:12px}.knowledge-row span{color:var(--muted)}.history{border:0;border-top:1px solid #edf2f3;background:none;padding:12px 0;width:100%;display:flex;align-items:center;text-align:left;gap:9px;cursor:pointer}.history>span{width:31px;height:31px;display:grid;place-items:center;border-radius:8px;background:#edf4f6;color:#55778a}.history div{display:flex;flex-direction:column}.history strong{font-size:12px}.history small{color:var(--muted);margin-top:2px}.teacher-grid,.admin-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.mastery-bars{display:flex;flex-direction:column;gap:15px}.mastery-bars>div{display:grid;grid-template-columns:80px 1fr 38px;align-items:center;gap:12px;font-size:12px}.mastery-bars>div>div{height:8px;background:#edf2f3;border-radius:10px;overflow:hidden}.mastery-bars i{display:block;height:100%;border-radius:inherit}.mastery-bars i.mint{background:var(--mint)}.mastery-bars i.blue{background:#5c8fb8}.mastery-bars i.gold{background:var(--gold)}.mastery-bars i.rose{background:var(--rose)}.mastery-bars strong{text-align:right;font-size:12px}.alerts>button{width:100%;border:0;border-top:1px solid #edf2f3;background:#fff;display:flex;align-items:center;gap:11px;padding:12px 0;text-align:left;cursor:pointer}.alerts>button>span:nth-child(2){display:flex;flex-direction:column;min-width:0}.alerts>button>span:nth-child(2) strong{font-size:12px}.alerts>button>span:nth-child(2) small{color:var(--muted);margin-top:3px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.alerts>button>svg{margin-left:auto}.alerts .icon-badge{width:36px;height:36px;border-radius:9px}.table-wrap{overflow-x:auto}.students-table table{width:100%;border-collapse:collapse;min-width:720px}.students-table th{color:var(--muted);font-weight:500;font-size:11px;text-align:left;border-bottom:1px solid var(--line);padding:10px}.students-table td{border-bottom:1px solid #edf2f3;padding:12px 10px;font-size:12px}.students-table tbody tr:last-child td{border-bottom:0}.students-table td:first-child{display:flex;align-items:center;gap:9px}.table-avatar{width:30px;height:30px;display:grid;place-items:center;color:#315c78;background:#e2eef4;border-radius:9px}.table-avatar.a1{background:#e9f5ee;color:#3b7660}.table-avatar.a2{background:#f5ecdf;color:#8a6734}.status{border-radius:100px;padding:4px 8px;font-size:10px}.status.danger{color:#b04949;background:#ffeded}.status.warn{color:#986511;background:#fff3d9}.students-table td button{border:0;background:none;color:#318c7f;cursor:pointer;font-size:11px}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.module-card{padding:22px;position:relative;overflow:hidden}.module-number{position:absolute;right:17px;top:10px;color:#edf3f3;font-size:42px;font-weight:700}.module-card>span:not(.icon-badge){display:block;color:#379586;font-size:11px;margin-top:18px}.module-card h3{margin:6px 0;font-size:18px}.module-card p{margin:0 0 20px;color:var(--muted);font-size:12px}.module-card button{border:0;background:none;padding:0;display:flex;gap:5px;align-items:center;color:var(--navy);font-weight:600;font-size:12px;cursor:pointer}.empty-state{padding:30px;text-align:center}.empty-state>div{margin:0 auto 10px;width:43px;height:43px;display:grid;place-items:center;background:var(--mint-soft);color:#2b9989;border-radius:12px}.empty-state h3{margin:4px;font-size:15px}.empty-state p{margin:0;color:var(--muted);font-size:12px}.healthy{display:flex;align-items:center;gap:7px;color:#2f907f!important}.service-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-top:1px solid #edf2f3;font-size:12px}.service-row span{display:flex;align-items:center;gap:9px}.service-row i{width:8px;height:8px;border-radius:50%;background:#54bf9a}.service-row i.waiting{background:#e6ae4b}.service-row strong{font-size:11px}.guardrails{display:flex;flex-direction:column;gap:8px}.guardrails p{display:flex;align-items:flex-start;gap:10px;margin:0;padding:10px 0;border-top:1px solid #edf2f3}.guardrails p svg{flex:0 0 auto;color:#3c9a8c;margin-top:2px}.guardrails span{display:flex;flex-direction:column;color:var(--muted);font-size:11px;line-height:1.6}.guardrails strong{color:#23445d;font-size:12px}.sidebar-backdrop{display:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:20px;background:#091d2d91;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.password-modal{position:relative;width:min(440px,100%);padding:32px;border-radius:18px;background:#fff;box-shadow:0 25px 80px #061e304d}.modal-close{position:absolute;right:17px;top:17px;width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:9px;color:#6d808c;background:#f1f5f5;cursor:pointer}.modal-icon{width:47px;height:47px;display:grid;place-items:center;border-radius:13px;color:#287f75;background:#e1f5f1}.password-modal h2{color:#163b58;margin:15px 0 23px}.password-success{text-align:center}.password-success>span{margin:5px auto 13px;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:#e6f7f0;color:#2b927b}.password-success h3{margin:0;color:#173d59}.password-success p{color:var(--muted);font-size:13px;line-height:1.7;margin:8px 0 22px}.account-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.account-summary article{padding:18px 20px;display:flex;align-items:center;justify-content:space-between}.account-summary span{color:var(--muted);font-size:12px}.account-summary strong{color:#173e5b;font-size:25px}.account-summary .pending{border-color:#ead4a9;background:#fffdf7}.account-summary .pending strong{color:#b47b21}.account-table-card{overflow:hidden}.account-table-card .panel-title small{color:var(--muted);font-size:11px}.account-table{min-width:970px}.account-table td:first-child{display:flex;align-items:center;gap:10px}.table-avatar.student{background:#dff3ee;color:#287d70}.table-avatar.teacher{background:#e3edf7;color:#376d98}.table-avatar.admin{background:#eee9f8;color:#67588e}.account-name{display:flex;flex-direction:column}.account-name small{color:var(--muted);font-size:10px;margin-top:3px}.account-table code{color:#395d72;font-family:inherit;font-size:12px}.account-status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:600}.account-status.pending{color:#a56f18;background:#fff1cf}.account-status.active{color:#287e69;background:#e5f6ef}.account-status.disabled{color:#8b6060;background:#f3ebeb}.account-actions{display:flex;align-items:center;gap:7px}.account-actions button{border:0;border-radius:7px;padding:7px 10px;font-size:10px;cursor:pointer}.account-actions button:disabled{opacity:.55;cursor:wait}.account-actions .approve{color:#fff;background:#2d8d7c}.account-actions .disable{color:#995050;background:#f8eaea}.self-tag{color:var(--muted);font-size:10px}.table-loading{min-height:220px;display:flex;align-items:center;justify-content:center;gap:9px;color:var(--muted)}.table-error{margin:0 0 14px;padding:10px 12px;border-radius:9px;color:#a54848;background:#fff0f0;font-size:12px}.mcp-online{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #c8e7df;border-radius:999px;color:#267c6f;background:#eff9f6;font-size:12px;font-weight:600}.mcp-online i{width:8px;height:8px;border-radius:50%;background:#3db58e;box-shadow:0 0 0 4px #3db58e1f}.composer-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:20px;align-items:start}.composer-form{position:sticky;top:100px;padding:22px;display:flex;flex-direction:column;gap:15px}.composer-form label>span{display:block;margin-bottom:7px;color:#38586c;font-size:12px;font-weight:600}.composer-form input:not([type=checkbox]),.composer-form select{width:100%;height:43px;padding:0 11px;border:1px solid #cfdddf;border-radius:9px;outline:0;color:#25465d;background:#fff}.composer-form input:focus,.composer-form select:focus{border-color:#55ad9f;box-shadow:0 0 0 3px #47bba91f}.composer-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.composer-check{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border-radius:9px;background:#f4f8f8}.composer-check input{margin-top:2px}.composer-check span{margin:0!important;font-weight:500!important;line-height:1.5}.composer-submit{width:100%;justify-content:center;margin-top:3px}.composer-submit:disabled{opacity:.68;cursor:wait;transform:none}.composer-boundary{display:flex;align-items:flex-start;gap:8px;margin:0;color:#738891;font-size:10px;line-height:1.6}.composer-boundary svg{flex:0 0 auto;margin-top:1px}.composer-results{min-width:0;display:flex;flex-direction:column;gap:13px}.composer-placeholder{min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:35px;text-align:center;color:#4b7d76}.composer-placeholder h3{margin:12px 0 5px;color:#1d455e}.composer-placeholder p{max-width:460px;margin:0;color:var(--muted);font-size:12px;line-height:1.7}.composer-summary{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-color:#cfe7e1;background:#f9fdfc}.composer-summary.warn{border-color:#ead6ad;background:#fffdf7}.composer-summary span{color:#3b998a;font-size:10px;letter-spacing:.07em}.composer-summary h3{margin:4px 0;font-size:16px}.composer-summary p{margin:0;color:var(--muted);font-size:11px}.composer-summary em{flex:0 0 auto;padding:6px 9px;border-radius:999px;color:#9b6814;background:#fff0cd;font-size:10px;font-style:normal}.composed-question{padding:20px 22px}.composed-question header,.composed-question footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.composed-question header>span{color:#368f82;font-size:11px;font-weight:600}.composed-question header>div{display:flex;align-items:center;gap:7px}.composed-question code{color:#5c7382;font-family:inherit;font-size:10px}.composed-question header em{padding:4px 7px;border-radius:999px;font-size:9px;font-style:normal}.review-draft{color:#9a6818;background:#fff1cf}.review-reviewed{color:#386b94;background:#e8f1f8}.review-published{color:#247c68;background:#e2f5ee}.review-retired{color:#7d6c6c;background:#f1ebeb}.composed-question h3{margin:14px 0 10px;color:#183d58;font-size:15px;line-height:1.75}.question-options{margin:0 0 13px;padding:11px 13px;border-radius:9px;color:#506c7b;background:#f5f8f8;font-size:12px;line-height:1.7}.composed-question footer{padding-top:11px;border-top:1px solid #edf2f3;color:#83949e;font-size:10px}.answer-panel{margin-top:14px;padding:13px 14px;border-left:3px solid #54b9a8;border-radius:6px 10px 10px 6px;background:#eff8f6}.answer-panel strong{display:block;color:#286e64;font-size:11px}.answer-panel p{margin:4px 0 9px;color:#385c68;font-size:12px;line-height:1.65}.answer-panel p:last-child{margin-bottom:0}.practice-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.practice-stat-grid article{padding:16px 18px}.practice-stat-grid span{display:block;color:#728894;font-size:11px}.practice-stat-grid strong{display:block;margin-top:5px;color:#183d58;font-size:25px}.practice-stat-grid small{margin-left:4px;font-size:11px;font-weight:500}.practice-stat-grid .correct strong{color:#278b73}.practice-stat-grid .accuracy strong{color:#286c9d}.practice-options{display:flex;flex-direction:column;gap:8px;margin:12px 0 15px}.practice-options label{display:flex;align-items:center;gap:10px;min-height:44px;padding:9px 12px;border:1px solid #d9e4e5;border-radius:9px;cursor:pointer;transition:.16s ease}.practice-options label:hover,.practice-options label.selected{border-color:#5bb5a6;background:#f1faf8}.practice-options input{accent-color:#268d7e}.practice-options label>span{display:grid;place-items:center;width:24px;height:24px;flex:0 0 auto;border-radius:7px;color:#486b7b;background:#edf3f3;font-size:11px;font-weight:700}.practice-options p{margin:0;color:#365566;font-size:12px;line-height:1.55}.practice-written-answer{display:block;margin:13px 0 15px}.practice-written-answer>span{display:block;margin-bottom:6px;color:#527180;font-size:11px;font-weight:600}.practice-written-answer textarea,.question-agent textarea{width:100%;padding:10px 12px;border:1px solid #d1dfe1;border-radius:9px;outline:0;resize:vertical;color:#294c60;font:inherit;font-size:12px;line-height:1.65;box-sizing:border-box}.practice-written-answer textarea:focus,.question-agent textarea:focus{border-color:#59ae9f;box-shadow:0 0 0 3px #47bba91c}.practice-submit-bar{position:sticky;bottom:14px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 20px;border-color:#b9ded7;box-shadow:0 12px 30px #143a4624}.practice-submit-bar strong{color:#1b485c}.practice-submit-bar p{margin:4px 0 0;color:#718692;font-size:10px}.practice-submit-bar button{flex:0 0 auto}.submission-summary{display:flex;justify-content:space-between;align-items:center;padding:21px 23px;border-color:#bce1d7;background:linear-gradient(135deg,#f1fbf8,#f8fcff)}.submission-summary span{color:#3c8f82;font-size:10px;letter-spacing:.08em}.submission-summary h2{margin:3px 0;color:#1d725f;font-size:31px}.submission-summary p{margin:0;color:#69818e;font-size:11px}.score-ring{display:grid;place-items:center;width:64px;height:64px;border:7px solid #bfe7dd;border-radius:50%;color:#267d6b;background:#fff;font-size:14px;font-weight:700}.composed-question.result-correct{border-color:#bfe2d7}.composed-question.result-wrong{border-color:#ecc8c8}.answer-correct,.answer-wrong{padding:4px 8px;border-radius:999px;font-size:9px!important;font-style:normal}.answer-correct{color:#237a66;background:#e1f5ed}.answer-wrong{color:#a64a4a;background:#fdeaea}.result-answer{display:grid;grid-template-columns:90px 1fr;gap:7px 12px;border-left-color:#6cb9aa}.result-answer strong,.result-answer p{margin:0}.result-answer p{white-space:pre-wrap}.question-agent{margin-top:13px;padding:14px;border-radius:10px;background:#f7f9fc}.question-agent>div:first-child{display:flex;align-items:center;gap:7px;margin-bottom:9px;color:#375d77;font-size:11px}.question-agent textarea{background:#fff}.question-agent>button{margin-top:9px}.question-agent>button:disabled{opacity:.65;cursor:wait}.agent-explanation{display:flex;align-items:flex-start;gap:8px;margin-top:11px;padding:11px 12px;border-radius:8px;color:#315d62;background:#eaf7f4}.agent-explanation svg{flex:0 0 auto;margin-top:3px;color:#2a9583}.agent-explanation p{margin:0;white-space:pre-wrap;font-size:12px;line-height:1.75}.success-banner{padding:12px 15px;border:1px solid #bce4d9;border-radius:10px;color:#257662;background:#eefaf6;font-size:12px}.assignment-state{display:inline-flex;align-items:center;width:max-content;padding:4px 8px;border-radius:999px;color:#647884;background:#edf2f3;font-size:9px;font-style:normal;font-weight:700}.assignment-state.draft{color:#8a691f;background:#fff3d8}.assignment-state.published,.assignment-state.assigned{color:#2a718d;background:#e7f4fa}.assignment-state.grading,.assignment-state.submitted{color:#8e611d;background:#fff1d8}.assignment-state.graded{color:#6c5aa0;background:#f0ebff}.assignment-state.released{color:#247763;background:#e4f6ef}.assignment-shelf{padding:18px 20px}.assignment-shelf .panel-title small{color:var(--muted);font-size:10px}.assignment-shelf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.assignment-shelf-grid>button{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;padding:13px;border:1px solid #dce7e8;border-radius:10px;color:#294b5d;background:#fbfdfd;text-align:left;cursor:pointer}.assignment-shelf-grid>button:hover{border-color:#75bbaf;background:#f4fbf9}.assignment-shelf-grid strong{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12px}.assignment-shelf-grid small{color:var(--muted);font-size:10px}.assignment-shelf-grid em{color:#2c887a;font-size:10px;font-style:normal}.assignment-publish{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px;border-color:#bcded8}.assignment-publish .panel-title,.assignment-publish-actions{grid-column:1/-1}.assignment-publish label{display:flex;flex-direction:column;gap:6px;color:#496978;font-size:10px}.assignment-publish label:nth-of-type(2){grid-column:1/-1}.assignment-publish input,.assignment-publish textarea{width:100%;box-sizing:border-box;padding:10px 11px;border:1px solid #d1dfe1;border-radius:8px;outline:0;color:#294c60;background:#fff;font:inherit;font-size:12px}.assignment-publish input:focus,.assignment-publish textarea:focus{border-color:#59ae9f;box-shadow:0 0 0 3px #47bba91a}.assignment-publish-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:4px}.assignment-publish-actions p{margin:0;color:#6e848f;font-size:10px}.assignment-published-note,.waiting-grade{display:flex;align-items:center;gap:12px;padding:15px 17px;color:#376574;background:#f2f8f8}.assignment-published-note svg,.waiting-grade svg{color:#2f9182}.assignment-published-note p,.waiting-grade p{margin:3px 0 0;color:var(--muted);font-size:10px}.assignment-center-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;align-items:start}.assignment-list,.review-assignment-list,.review-student-list{padding:17px}.assignment-list>button,.review-assignment-list>button,.review-student-list>button{display:flex;flex-direction:column;align-items:flex-start;gap:5px;width:100%;padding:12px 9px;border:0;border-top:1px solid #edf2f3;color:#2d4f61;background:transparent;text-align:left;cursor:pointer}.assignment-list>button.active,.review-assignment-list>button.active,.review-student-list>button.active{margin:0 -7px;width:calc(100% + 14px);padding-left:16px;padding-right:16px;border-radius:9px;border-top-color:transparent;background:#eef8f6}.assignment-list>button strong,.review-assignment-list>button strong,.review-student-list>button strong{font-size:12px}.assignment-list>button small,.review-assignment-list>button small,.review-student-list>button small{color:var(--muted);font-size:10px}.assignment-list>button em,.review-student-list>button em{color:#3f897e;font-size:9px;font-style:normal}.empty-assignments{padding:30px 10px;color:#8a9da7;text-align:center}.assignment-detail{display:flex;flex-direction:column;gap:13px;min-width:0}.assignment-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px}.assignment-detail-head h2{margin:8px 0 5px;font-size:20px}.assignment-detail-head p{margin:0;color:var(--muted);font-size:11px}.assignment-detail-head dl{display:flex;gap:18px;margin:0}.assignment-detail-head dl div{min-width:55px}.assignment-detail-head dt{color:var(--muted);font-size:9px}.assignment-detail-head dd{margin:4px 0 0;color:#224a60;font-size:12px;font-weight:700}.result-release-banner{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-color:#b9ded5;background:linear-gradient(135deg,#effaf6,#f8fcff)}.result-release-banner span{color:#318979;font-size:10px}.result-release-banner h2{margin:3px 0;color:#1f735f}.result-release-banner p{margin:0;color:#637c87;font-size:10px}.result-release-banner svg{color:#3b9b89}.answer-panel .markdown-content{min-width:0;font-size:12px;line-height:1.7}.composed-question.answer-missing{border-color:#e1a0a0;box-shadow:0 0 0 3px #ca4e4e14}.composed-question.answer-missing .practice-written-answer textarea{border-color:#d88787}.answer-required{margin:7px 0 0;color:#b24d4d;font-size:10px;font-weight:600}.review-layout{display:grid;grid-template-columns:220px 220px minmax(0,1fr);gap:14px;align-items:start}.review-assignment-list,.review-student-list{position:sticky;top:92px;max-height:calc(100vh - 120px);overflow-y:auto}.review-detail{display:flex;flex-direction:column;gap:12px;min-width:0}.review-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 19px}.review-toolbar h3{margin:7px 0 3px}.review-toolbar p{margin:0;color:var(--muted);font-size:10px}.grading-answer{padding:18px}.grading-answer header{display:flex;align-items:center;justify-content:space-between;color:#718792;font-size:10px}.grading-answer header code{padding:3px 6px;border-radius:5px;color:#557485;background:#edf3f4}.grading-answer h3{margin:12px 0;color:#24475a;font-size:13px;line-height:1.7}.grading-compare{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grading-compare>div{padding:11px 12px;border-radius:8px;background:#f7f9fa}.grading-compare strong{color:#536f7d;font-size:10px}.grading-compare p{margin:5px 0 0;white-space:pre-wrap;font-size:11px;line-height:1.65}.grading-controls{display:grid;grid-template-columns:120px 1fr;gap:10px;margin-top:11px}.grading-controls label,.grade-submit label{display:flex;flex-direction:column;gap:6px;color:#526f7d;font-size:10px}.grading-controls label>div{display:flex;align-items:center;gap:6px}.grading-controls input,.grading-controls textarea,.grade-submit textarea{width:100%;box-sizing:border-box;padding:9px 10px;border:1px solid #d1dfe1;border-radius:8px;outline:0;color:#294c60;background:#fff;font:inherit;font-size:11px}.grading-controls em{color:var(--muted);white-space:nowrap;font-style:normal}.ai-grade-note{display:flex;align-items:flex-start;gap:7px;margin-top:10px;padding:10px 11px;border-radius:8px;color:#356d64;background:#edf8f5}.ai-grade-note svg{flex:0 0 auto;margin-top:2px}.ai-grade-note p{margin:0;font-size:10px;line-height:1.6}.grade-submit{display:flex;align-items:flex-end;gap:14px;padding:16px 18px}.grade-submit label{flex:1}.grade-submit button{flex:0 0 auto}#dify-chatbot-bubble-button{right:24px!important;bottom:24px!important;background:#1f6b77!important;box-shadow:0 10px 30px #15435640!important}#dify-chatbot-bubble-window{right:24px!important;bottom:92px!important;width:min(420px,calc(100vw - 32px))!important;height:min(720px,calc(100vh - 120px))!important;border-radius:18px!important;box-shadow:0 22px 60px #12344838!important}@media (max-width: 1120px){.metric-grid,.module-grid{grid-template-columns:repeat(2,1fr)}.search-button{min-width:40px;width:40px}.search-button span,.search-button kbd{display:none}.teacher-grid{grid-template-columns:1fr}.account-summary{grid-template-columns:repeat(2,1fr)}.composer-layout{grid-template-columns:290px minmax(0,1fr)}.practice-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 820px){.login-page{grid-template-columns:1fr}.login-showcase{display:none}.login-main{min-height:100vh;padding:38px 24px}.mobile-login-brand{display:flex}.sidebar{transform:translate(-100%);transition:transform .25s ease}.sidebar.open{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:29;border:0;background:#081b2c7a}.brand>button{display:block;margin-left:auto}.main-shell{margin-left:0;width:100%}.menu-button{display:grid;place-items:center;margin-right:8px}.topbar{padding:0 18px}.breadcrumb>span,.breadcrumb .slash{display:none}.user-meta{display:none}main{padding:25px 18px 40px}.two-column,.admin-grid{grid-template-columns:1fr}.student-hero{align-items:stretch;flex-direction:column}.next-action{min-width:0}.assistant-layout{grid-template-columns:1fr;height:auto}.chat-card{min-height:650px}.context-panel{display:grid;grid-template-columns:1fr 1fr}.composer-layout{grid-template-columns:1fr}.composer-form{position:static}.assignment-center-layout,.review-layout{grid-template-columns:1fr}.assignment-list,.review-assignment-list,.review-student-list{position:static;max-height:none}.assignment-shelf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){#dify-chatbot-bubble-button{right:16px!important;bottom:16px!important}#dify-chatbot-bubble-window{right:8px!important;bottom:80px!important;width:calc(100vw - 16px)!important;height:calc(100vh - 96px)!important}.login-main{padding:28px 18px;align-items:start}.role-tabs{margin-bottom:27px}.role-tabs button{flex-direction:column;gap:3px;min-height:55px;font-size:11px}.login-heading{align-items:flex-start}.login-heading h2{font-size:24px}.login-heading p{line-height:1.6}.login-role-icon{width:43px;height:43px}.topbar-actions{gap:5px}.search-button{display:none}.topbar{height:66px}.welcome-row{align-items:flex-start;flex-direction:column;gap:14px}.welcome-row .primary-button{width:100%;justify-content:center}.metric-grid,.module-grid{grid-template-columns:1fr}.metric-card{min-height:105px}.hero-progress{align-items:flex-start}.progress-ring{width:94px;height:94px}.progress-ring:after{width:74px;height:74px}.progress-ring strong{font-size:21px}.hero-progress h2{font-size:18px}.hero-progress p{font-size:12px}.context-panel{grid-template-columns:1fr}.chat-header button{display:none}.messages{padding:18px 13px}.message{max-width:92%}.suggestions{padding:5px 12px 10px}.chat-input{margin:0 12px}.panel{padding:17px}.register-grid,.account-summary{grid-template-columns:1fr}.register-panel{padding-top:20px}.password-modal{padding:27px 20px}.welcome-row .secondary-button{width:100%;justify-content:center}.composer-row{grid-template-columns:1fr}.composer-summary,.composed-question header,.composed-question footer{align-items:flex-start;flex-direction:column}.practice-submit-bar,.submission-summary{align-items:flex-start;flex-direction:column}.practice-submit-bar button{width:100%;justify-content:center}.result-answer,.assignment-shelf-grid,.assignment-publish,.grading-compare,.grading-controls{grid-template-columns:1fr}.assignment-publish label:nth-of-type(2){grid-column:auto}.assignment-publish .panel-title,.assignment-publish-actions{grid-column:auto}.assignment-publish-actions,.assignment-detail-head,.grade-submit,.review-toolbar{align-items:stretch;flex-direction:column}.assignment-detail-head dl{flex-wrap:wrap}.assignment-publish-actions button,.grade-submit button,.review-toolbar button{width:100%;justify-content:center}}
