@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap";:root{--primary:#4f46e5;--primary2:#3155d9;--navy:#071d3d;--ink:#10213d;--muted:#728099;--line:#dfe7f2;--bg:#f8faff;--green:#10b981;--orange:#f59e0b;--blue:#2496ed;--purple:#a855f7}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:DM Sans,Arial,sans-serif;font-size:14px}a,a:link,a:visited,a:hover,a:active{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{min-height:100vh;display:grid;grid-template-columns:210px 1fr}aside{background:linear-gradient(180deg,#08234a,#061a35);color:#fff;padding:24px 14px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{font:800 20px Manrope;display:flex;align-items:center;gap:8px;padding:0 8px 22px}.brand span{color:#6f78ff;font-size:20px}.brand i{font-style:normal;color:#6d6cff}.brand.light i{color:#9aa3ff}nav{display:grid;gap:4px}nav a{padding:10px 12px;border-radius:6px;display:flex;gap:10px;align-items:center;color:#d9e4f5;font-size:13px}nav a:hover,nav a.active{background:#3155d9;color:#fff}.side-user{margin-top:auto;border-top:1px solid #1b3557;padding:18px 6px 8px;display:flex;gap:9px;align-items:center}.side-user b{display:block;font-size:12px}.side-user small{display:block;color:#9eb0c8;text-transform:capitalize}.mini-avatar,.header-avatar{display:grid;place-items:center;border-radius:50%;background:#4f46e5;color:#fff;font-weight:700}.mini-avatar{width:30px;height:30px;font-size:10px}.logout{border:0;background:none;color:#aebed3;padding:8px;display:flex;gap:8px;align-items:center;font-size:12px}main{min-width:0}header{height:62px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 28px}.search{width:min(420px,50vw);display:flex;align-items:center;gap:8px;background:#f4f7fb;border-radius:6px;padding:0 11px;color:#8a97aa}.search input{border:0;background:transparent;padding:9px 0;outline:0}.header-actions{display:flex;align-items:center;gap:17px}.header-avatar{width:30px;height:30px}.content{padding:30px 34px;max-width:1280px;margin:auto}.welcome{display:flex;justify-content:space-between;margin-bottom:20px}.welcome h1,.pagehead h1{font:800 24px Manrope;margin:3px 0 4px}.welcome h1 span{font-size:18px}.welcome p,.pagehead p{margin:0;color:var(--muted)}.today{float:right;color:#8a96a8;font-size:12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0 26px}.stats.four{grid-template-columns:repeat(4,1fr)}.stats div,.card,.panel,.rowcard,.notice,.course-tile,.class-row,.assignment-item{background:#fff;border:1px solid var(--line);border-radius:8px}.stats div{padding:16px}.stats b{display:block;font:800 22px Manrope;color:#3155d9}.stats div:nth-child(4) b{color:#ef4444}.stats span,.muted{color:var(--muted);font-size:12px}.section-title{display:flex;justify-content:space-between;align-items:center;margin:23px 0 12px}.section-title h2{font:700 16px Manrope;margin:0}.section-title a{font-size:12px;color:#4f46e5}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.course-tile{padding:16px}.course-icon,.class-icon{width:38px;height:38px;border-radius:7px;display:grid;place-items:center;color:#fff;margin-bottom:12px}.c0{background:#18b981}.c1{background:#a855f7}.c2{background:#f59e0b}.c3{background:#2496ed}.course-tile h3,.class-row h3,.assignment-item h3{font:700 13px Manrope;margin:0 0 4px}.course-tile p,.class-row p,.assignment-item p{margin:0 0 8px;color:var(--muted);font-size:11px}.course-tile small{color:#8793a6}.assignment-list,.class-list,.stack{display:grid;gap:10px}.assignment-item,.class-row{padding:13px 15px;display:flex;align-items:center;gap:13px}.assignment-icon{width:34px;height:34px;border-radius:6px;background:#eaf3ff;color:#2496ed;display:grid;place-items:center}.assignment-item>div:nth-child(2){flex:1}.assignment-item small{color:var(--muted)}.status,.pill,.tag{display:inline-flex;width:max-content;border-radius:999px;background:#eef2ff;color:#3155d9;padding:5px 9px;font-size:11px;font-weight:700;text-transform:capitalize}.status.open{background:#e9fbf3;color:#0b9c6c}.pagehead{display:flex;align-items:end;justify-content:space-between;margin-bottom:22px}.class-row .class-icon{margin:0}.class-copy{flex:1}.class-copy h3{font-size:14px}.class-meta{color:#8491a5;font-size:12px}.outline{border:1px solid #cbd6f0;background:#fff;color:#4f46e5;border-radius:6px;padding:7px 13px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.card{padding:20px}.card h3,.rowcard h3{font:700 16px Manrope;margin:10px 0 6px}.card p,.rowcard p{color:#667085}.card small,.rowcard small{color:#8992a4}.course{min-height:150px}.rowcard{padding:18px 20px;display:flex;justify-content:space-between;gap:20px}.right{display:flex;min-width:160px;flex-direction:column;align-items:flex-end;gap:8px}.panel{padding:20px;margin-bottom:20px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.full{grid-column:1/-1}label{display:grid;gap:6px;font-weight:700;font-size:12px}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #d9e2ef;border-radius:6px;background:#fff;color:var(--ink)}textarea{min-height:88px;resize:vertical}.primary,.secondary{border:0;border-radius:6px;padding:10px 15px;font-weight:700}.primary{background:#4f46e5;color:#fff}.secondary{background:#eef2ff;color:#3155d9}.fit{width:max-content}.drop{border:1.5px dashed #7f9dff;border-radius:7px;padding:28px;margin:15px 0;color:#526079;text-align:center}.drop input{border:0;padding:8px}.drop span{font-weight:400;color:#8992a4;display:block}.success,.error{padding:10px 12px;border-radius:6px;margin:10px 0}.success{background:#ecfdf3;color:#067647}.error{background:#fef3f2;color:#b42318}.filelinks{display:flex;gap:8px;flex-wrap:wrap}.linkbtn{border:1px solid #d9e2f3;background:#fff;border-radius:6px;padding:6px 9px;color:#3155d9}.tag.late{background:#fff3e8;color:#b54708}.tag.graded{background:#ecfdf3;color:#067647}.notice{padding:15px 17px;display:flex;justify-content:space-between;gap:15px}.notice small{color:#8992a4}.profile{display:flex;align-items:center;gap:18px}.avatar{width:58px;height:58px;border-radius:50%;background:#4f46e5;color:#fff;display:grid;place-items:center;font:800 18px Manrope}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px;border-bottom:1px solid #edf0f5}th{font-size:11px;color:#7b8497;background:#f8faff}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:30px;background:#f5f8fc}.login-shell{width:min(850px,100%);min-height:500px;display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:0 20px 50px #182d5214}.login-art{background:linear-gradient(160deg,#082e67,#073d88);color:#fff;padding:34px;display:flex;flex-direction:column;justify-content:space-between}.login-art h1{font:800 25px Manrope;line-height:1.25}.login-art p{color:#d6e3f7;line-height:1.6;max-width:320px}.learning-art{height:170px;margin-top:35px;border-radius:20px;background:#4969d538;display:flex;align-items:center;justify-content:center;gap:20px;color:#91a9ff}.login-card{padding:70px 48px}.login-card h1{font:800 22px Manrope;margin:0 0 4px}.login-card>p{color:#778196;margin:0 0 25px}.login-card label{margin:13px 0}.login-card .primary{width:100%;margin-top:10px}.login-options{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#63708a}.login-options label{display:flex;align-items:center;gap:5px;margin:0}.login-options input{width:auto}.login-options a{color:#4f46e5}.demo{margin-top:18px;background:#f6f8fc;border-radius:7px;padding:11px;color:#687386;font-size:11px}.loading{min-height:100vh;display:grid;place-items:center;font-weight:700;color:#3155d9}@media(max-width:850px){.app{grid-template-columns:1fr}aside{position:relative;height:auto;padding:15px}nav{grid-template-columns:repeat(4,1fr);overflow:auto}nav a{font-size:0;justify-content:center}.side-user{display:none}.logout{margin-top:10px}header{padding:0 16px}.content{padding:22px 16px}.course-grid,.cards,.stats,.stats.four,.formgrid{grid-template-columns:1fr}.rowcard{flex-direction:column}.right{align-items:flex-start}.pagehead{align-items:flex-start;gap:12px;flex-direction:column}.login-shell{grid-template-columns:1fr}.login-art{display:none}.login-card{padding:40px 28px}.class-meta{display:none}}.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.form-title{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.form-title h2{font:700 17px Manrope;margin:0 0 4px}.form-title p{margin:0;color:var(--muted);font-size:12px}.form-actions{display:flex;justify-content:flex-end;margin-top:16px}.create-class{box-shadow:0 8px 24px #182d520d}.class-copy small{display:block;color:#8992a4;font-size:11px;margin-top:5px}.class-stats{display:flex;gap:14px;color:#748197;font-size:11px}.class-stats span{display:flex;align-items:center;gap:5px}.empty-state{text-align:center;padding:42px;color:#738098}.empty-state svg{color:#4f46e5}.empty-state h3{font:700 16px Manrope;color:var(--ink);margin:10px 0 5px}.empty-state p{margin:0 0 15px}.add-class{border-style:dashed;text-align:left;color:var(--ink);cursor:pointer}.add-class>svg{color:#4f46e5;margin-bottom:9px}.add-class p{margin-bottom:0}@media(max-width:850px){.class-stats{display:none}.welcome{align-items:flex-start;gap:14px;flex-direction:column}.form-title{gap:12px}}.row-actions{display:flex;align-items:center;gap:7px}.square{padding:7px;display:grid;place-items:center}.danger{border:1px solid #fecaca;background:#fff;color:#dc2626;border-radius:6px;padding:7px 10px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#071d3d7a;z-index:50;display:grid;place-items:center;padding:20px}.modal{width:min(680px,100%);max-height:85vh;overflow:auto;margin:0}.student-list,.student-picker{display:grid;gap:8px;margin:10px 0 20px}.student-line,.check-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:7px;padding:10px 12px;background:#fff}.student-line small,.check-row small{display:block;color:var(--muted);font-weight:400}.check-row{justify-content:flex-start;cursor:pointer;font-weight:400}.check-row input{width:auto}.student-picker.compact{grid-template-columns:repeat(2,minmax(0,1fr));max-height:220px;overflow:auto}.assign-head{display:flex;justify-content:space-between;gap:15px;margin:5px 0 8px}.assign-head span{font-size:11px;color:var(--muted)}@media(max-width:850px){.row-actions{flex-wrap:wrap}.student-picker.compact{grid-template-columns:1fr}.modal-backdrop{align-items:start}.assign-head{flex-direction:column}}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;background:#f3f6fb;padding:4px;border-radius:7px;margin:0 0 18px}.auth-tabs button{border:0;background:transparent;color:#6b778c;border-radius:5px;padding:8px;font-weight:700}.auth-tabs button.active{background:#fff;color:#3155d9;box-shadow:0 1px 4px #182d521f}.auth-note{font-size:11px!important;line-height:1.5;color:#7b8497!important;margin:14px 0 0!important}.login-card button:disabled{opacity:.65;cursor:not-allowed}.admin-table{overflow:auto}.admin-table td>small{display:block;color:var(--muted);margin-top:4px}.tag.restricted{background:#fef3f2;color:#b42318}.tag.active-user{background:#ecfdf3;color:#067647}.admin-table button:disabled{opacity:.35;cursor:not-allowed}.join-panel{display:grid;grid-template-columns:1fr minmax(180px,280px) auto;align-items:center;gap:12px}.join-panel h3{margin:0 0 4px}.join-panel p{margin:0}.join-panel .success,.join-panel .error{grid-column:1/-1;margin:0}.join-code{display:flex!important;align-items:center;gap:5px}.mini-action{border:0;background:transparent;color:#4f46e5;padding:2px;display:inline-grid}.check-inline{display:flex;align-items:center;gap:8px}.check-inline input{width:auto}.tagline{display:flex;gap:6px;align-items:center}.tag.draft{background:#f2f4f7;color:#667085}.tag.published{background:#ecfdf3;color:#067647}.tag.closed{background:#fff3e8;color:#b54708}.tag.returned{background:#eef2ff;color:#3155d9}@media(max-width:850px){.join-panel{grid-template-columns:1fr}}.notice{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer}.notice.unread{border-left:4px solid #4f46e5;background:#f8f9ff}.notice small{display:block;margin-top:6px}.unread-dot{width:10px;height:10px;border-radius:50%;background:#4f46e5;flex:0 0 auto}.success{padding:12px;border-radius:10px;background:#ecfdf3;color:#166534;margin:12px 0}.standalone{max-width:480px;margin:auto}.auth-back{display:block;text-align:center;margin-top:16px}.auth-link{display:inline-block;margin-top:14px}.grade-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #e8eaf0}.grade-row:last-child{border-bottom:0}.grade-row small{display:block;margin-top:4px;color:#6b7280}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin-bottom:20px}.stat{background:#fff;border:1px solid #e7eaf0;border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:6px}.stat small{color:#697386;font-weight:700}.stat strong{font-size:28px;color:#14213d}.stat span{font-size:12px;color:#7b8495}.table-wrap{overflow:auto}.badge.danger{background:#fee2e2;color:#991b1b}.announcement-form{margin-bottom:22px}.announcement-list{display:grid;gap:12px}.announcement-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:17px;display:flex;gap:14px;align-items:flex-start}.announcement-card.unread-announcement{border-left:4px solid var(--primary);background:#fbfbff}.announcement-card.pinned{box-shadow:0 5px 18px #3155d90f}.announcement-icon{width:38px;height:38px;border-radius:8px;background:#eef2ff;color:var(--primary);display:grid;place-items:center;flex:0 0 auto}.announcement-copy{flex:1;min-width:0}.announcement-copy h3{font:700 16px Manrope;margin:7px 0}.announcement-copy p{white-space:pre-wrap;color:#526079;line-height:1.6;margin:0 0 10px}.announcement-copy small{color:#8992a4}.announcement-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#65728a;font-size:11px;font-weight:700}.announcement-meta .tag{gap:4px;align-items:center}.announcement-card>.danger{opacity:.75}@media(max-width:850px){.announcement-card{padding:14px}.announcement-icon{display:none}}.announcement-actions{display:flex;gap:7px;align-items:center}.announcement-actions .square{opacity:.82}.announcement-actions .square:hover{opacity:1}.announcement-edit-form{margin-bottom:22px;border:1px solid #cfd8ff;box-shadow:0 8px 26px #3155d914}.announcement-edit-form .form-title{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.announcement-edit-form .form-actions{display:flex;justify-content:flex-end;gap:9px}.announcement-edit-form .primary{display:inline-flex;align-items:center;gap:7px}.announcement-card.is-editing{border-color:#8fa4ff;box-shadow:0 0 0 2px #3155d914}@media(max-width:650px){.announcement-actions{flex-direction:column}}.calendar-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin-bottom:14px;padding:12px 15px}.calendar-toolbar h2{font:700 17px Manrope;margin:0;text-align:center}.calendar-nav{display:flex;gap:7px;align-items:center}.calendar-nav button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:7px 10px}.calendar-legend{display:flex;justify-content:flex-end;gap:12px;font-size:11px;color:var(--muted)}.calendar-legend span{display:flex;align-items:center;gap:5px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.assignment{background:#4f46e5}.dot.announcement{background:#0e7490}.dot.event{background:#b45309}.calendar-shell{padding:0;overflow:hidden}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:#f8faff;border-bottom:1px solid var(--line)}.calendar-weekdays b{text-align:center;padding:10px;color:#7b8497;font-size:11px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-day{min-height:112px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;padding:8px;text-align:left;color:var(--ink);overflow:hidden}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#fafbfc;color:#a4abba}.calendar-day.selected{box-shadow:inset 0 0 0 2px #8294ef}.calendar-day.today .day-number{background:#4f46e5;color:#fff}.day-number{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700}.day-events{display:grid;gap:4px;margin-top:5px}.calendar-chip{display:block;border-radius:4px;padding:3px 5px;font-size:9px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-chip.assignment{background:#eef2ff;color:#4338ca}.calendar-chip.announcement{background:#ecfeff;color:#0e7490}.calendar-chip.event{background:#fff7ed;color:#b45309}.day-events small{font-size:9px;color:var(--muted)}.calendar-agenda{margin-top:16px}.agenda-row{display:flex;align-items:flex-start;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.agenda-row:last-child{border-bottom:0}.agenda-icon{width:36px;height:36px;border-radius:8px;display:grid;place-items:center;flex:0 0 auto}.agenda-icon.assignment{background:#eef2ff;color:#4338ca}.agenda-icon.announcement{background:#ecfeff;color:#0e7490}.agenda-icon.event{background:#fff7ed;color:#b45309}.agenda-copy{flex:1;display:grid;gap:4px}.agenda-copy>b{font:700 14px Manrope}.agenda-copy small{display:flex;align-items:center;gap:5px;color:var(--muted)}.agenda-copy p{margin:3px 0 0;color:#526079}.empty-state.compact{padding:24px}.calendar-agenda .form-actions,.modal .form-actions{gap:8px}@media(max-width:850px){.calendar-toolbar{grid-template-columns:1fr auto}.calendar-legend{grid-column:1/-1;justify-content:flex-start}.calendar-day{min-height:82px;padding:5px}.calendar-chip{font-size:0;height:7px;padding:0}.calendar-chip.assignment{background:#4f46e5}.calendar-chip.announcement{background:#0e7490}.calendar-chip.event{background:#b45309}.calendar-weekdays b{padding:8px 2px}.day-number{width:22px;height:22px}.agenda-row{flex-wrap:wrap}}.messages-shell{display:grid;grid-template-columns:320px minmax(0,1fr);min-height:620px;padding:0;overflow:hidden}.conversation-list{border-right:1px solid #e7eaf0;background:#fbfcfe;overflow:auto}.message-search{display:flex;align-items:center;gap:8px;margin:14px;padding:10px 12px;border:1px solid #e1e5ec;border-radius:10px;background:#fff}.message-search input{border:0;outline:0;width:100%;padding:0;background:transparent}.conversation-item{width:100%;display:flex;align-items:center;gap:10px;padding:14px;border:0;border-top:1px solid #eef0f4;background:transparent;text-align:left;cursor:pointer}.conversation-item:hover,.conversation-item.active{background:#eef2ff}.message-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e0e7ff;color:#3730a3;font-weight:800;flex:0 0 auto}.conversation-copy{min-width:0;display:flex;flex-direction:column;gap:3px;flex:1}.conversation-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#667085}.unread-badge{min-width:22px;height:22px;padding:0 6px;border-radius:999px;display:grid;place-items:center;background:#4f46e5;color:#fff;font-size:11px;font-weight:800}.thread-panel{display:flex;flex-direction:column;min-width:0;background:#fff}.thread-head{height:68px;border-bottom:1px solid #e7eaf0;padding:12px 18px;display:flex;align-items:center;gap:10px}.thread-head div{display:flex;flex-direction:column}.thread-head small{color:#667085}.thread-body{flex:1;padding:20px;overflow:auto;max-height:510px;background:#f8fafc}.bubble-row{display:flex;margin:8px 0}.bubble-row.mine{justify-content:flex-end}.message-bubble{max-width:min(72%,620px);background:#fff;border:1px solid #e3e7ee;border-radius:14px 14px 14px 4px;padding:10px 13px;box-shadow:0 1px 2px #1018280a}.bubble-row.mine .message-bubble{background:#4f46e5;color:#fff;border-color:#4f46e5;border-radius:14px 14px 4px}.message-bubble p{margin:0 0 5px;white-space:pre-wrap;overflow-wrap:anywhere}.message-bubble small{opacity:.7;font-size:10px}.message-compose{border-top:1px solid #e7eaf0;padding:14px;display:flex;align-items:flex-end;gap:10px}.message-compose textarea{min-height:48px;max-height:130px;resize:vertical;flex:1}.thread-empty{height:100%;min-height:300px;display:grid;place-items:center;align-content:center;text-align:center;color:#667085}.thread-empty h3{margin:10px 0 3px;color:#1d2939}.thread-empty p{margin:0}.message-empty-small{padding:24px;text-align:center;color:#667085}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:50;display:grid;place-items:center;padding:20px}.new-message-modal{width:min(560px,100%);max-height:80vh;overflow:auto}.contact-picker{display:flex;flex-direction:column;gap:7px}.contact-picker button{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid #e4e7ec;border-radius:10px;background:#fff;text-align:left;cursor:pointer}.contact-picker button:hover{background:#f8f9ff;border-color:#c7d2fe}.contact-picker button span:last-child{display:flex;flex-direction:column}.contact-picker small{color:#667085}@media(max-width:800px){.messages-shell{grid-template-columns:1fr}.conversation-list{max-height:250px;border-right:0;border-bottom:1px solid #e7eaf0}.message-bubble{max-width:88%}}nav a .nav-label{flex:1}.nav-count{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:grid;place-items:center;background:#ef4444;color:#fff;font-size:10px;font-weight:800}.header-bell{position:relative;border:0;background:transparent;color:inherit;display:grid;place-items:center;padding:8px;cursor:pointer;border-radius:9px}.header-bell:hover{background:#f3f4f6}.header-bell span{position:absolute;top:0;right:-3px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;display:grid;place-items:center;background:#ef4444;color:#fff;font-size:9px;font-weight:800;border:2px solid #fff}.gradebook-controls{display:flex;gap:14px;align-items:end}.gradebook-controls label{min-width:240px}.gradebook-controls select{margin-top:4px}.gradebook-stats{grid-template-columns:repeat(5,1fr)}.pagehead .outline{display:inline-flex;align-items:center;gap:7px}.gradebook-panel{padding:0;overflow:hidden}.gradebook-scroll{overflow:auto;max-width:100%}.gradebook-table{min-width:850px}.gradebook-table th{min-width:125px;vertical-align:bottom}.gradebook-table th span,.gradebook-table td.sticky-col b{display:block}.gradebook-table th small,.gradebook-table td.sticky-col small{display:block;color:var(--muted);font-weight:400;margin-top:3px}.gradebook-table .sticky-col{position:sticky;left:0;z-index:2;background:#fff;min-width:190px}.gradebook-table thead .sticky-col{background:#f8faff;z-index:3}.grade-cell{border:0;border-radius:6px;padding:7px 9px;min-width:66px}.graded-cell{background:#ecfdf3;color:#067647}.graded-cell small{margin-left:2px}.ungraded-cell{background:#eef2ff;color:#3155d9;font-weight:700}.grade-status{color:#98a2b3;font-size:11px}.grade-status.missing{display:inline-flex;background:#fef3f2;color:#b42318;border-radius:999px;padding:5px 8px;font-weight:700}.grade-na{color:#98a2b3;font-size:10px}.gradebook-empty{padding:18px}.grade-modal{width:min(600px,100%);margin:0}.grade-modal-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.grade-modal-head h2{font:700 18px Manrope;margin:4px 0}.grade-modal-head p{margin:0;color:var(--muted)}.square{width:34px;height:34px;border:1px solid var(--line);background:#fff;border-radius:7px;display:grid;place-items:center}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.form-actions .primary{display:inline-flex;align-items:center;gap:6px}@media(max-width:850px){.gradebook-controls{display:grid}.gradebook-controls label{min-width:0}.gradebook-stats{grid-template-columns:repeat(2,1fr)}}.assignment-discussion{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.comment-toggle{border:0;background:transparent;color:#4f46e5;font-weight:700;display:inline-flex;align-items:center;gap:6px;padding:5px 0;cursor:pointer}.comment-toggle span{min-width:19px;height:19px;border-radius:999px;background:#eef2ff;display:grid;place-items:center;font-size:10px}.comment-panel{margin-top:8px;background:#f8fafc;border:1px solid #e6eaf0;border-radius:10px;padding:12px}.comment-list{display:grid;gap:12px}.comment-item{display:flex;gap:10px}.comment-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#e0e7ff;color:#3730a3;font-size:12px;font-weight:800;flex:0 0 auto}.comment-avatar.teacher,.comment-avatar.admin{background:#dcfce7;color:#166534}.comment-copy{min-width:0;flex:1}.comment-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.comment-head b{font-size:12px}.comment-head .tag{font-size:8px;padding:2px 5px}.comment-head small{color:var(--muted);font-size:9px}.comment-copy>p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;color:#344054;font-size:12px}.comment-actions{display:flex;gap:9px;margin-top:4px}.comment-actions button{border:0;background:transparent;padding:0;color:#667085;font-size:10px;display:flex;align-items:center;gap:3px;cursor:pointer}.comment-actions button:hover{color:#3155d9}.comment-empty{margin:4px 0}.comment-compose{border-top:1px solid #e6eaf0;margin-top:12px;padding-top:12px}.comment-compose textarea,.comment-edit textarea{width:100%;min-height:70px;resize:vertical}.comment-compose>div,.comment-edit>div{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:7px}.comment-compose small{margin-right:auto;color:var(--muted)}.comment-compose .primary{display:inline-flex;align-items:center;gap:5px}.comment-edit .outline{padding:7px 10px}@media(max-width:650px){.comment-panel{padding:10px}.comment-head small{width:100%}}.rubric-form-head,.rubric-criteria-head,.rubric-grade-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.rubric-form-head h2{font:700 18px Manrope;margin:0 0 16px}.rubric-criteria-head{margin:18px 0 8px}.rubric-criteria-head span,.rubric-grade-head span{color:var(--muted);font-size:12px}.rubric-criteria{display:grid;gap:8px;margin-bottom:10px}.rubric-criterion-edit{display:grid;grid-template-columns:1.1fr 1.8fr 110px 38px;gap:8px;align-items:center}.rubric-actions{display:flex;gap:7px;margin-top:14px}.rubric-actions .outline{display:inline-flex;align-items:center;gap:5px}.rubric-grade{border:1px solid var(--line);border-radius:8px;overflow:hidden}.rubric-grade-head{padding:11px 12px;background:#f8faff;border-bottom:1px solid var(--line)}.rubric-score-row{display:grid;grid-template-columns:1fr 150px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);gap:12px}.rubric-score-row:last-child{border-bottom:0}.rubric-score-row>span:first-child b,.rubric-score-row>span:first-child small{display:block}.rubric-score-row small{color:var(--muted);font-weight:400;margin-top:2px}.rubric-score-row>span:last-child{display:flex;align-items:center;gap:7px}.rubric-score-row input{width:85px}.rubric-score-row em{font-style:normal;color:var(--muted);font-size:11px}@media(max-width:700px){.rubric-criterion-edit{grid-template-columns:1fr 90px 38px}.rubric-criterion-edit input:nth-child(2){grid-column:1/-1;grid-row:2}.rubric-score-row{grid-template-columns:1fr}}.progress-stats{grid-template-columns:repeat(5,1fr)}.analytics-stats{grid-template-columns:repeat(6,1fr)}.analytics-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:16px}.panel h2{font:700 16px Manrope;margin:0 0 14px}.progress-list,.action-list{display:grid;gap:12px}.progress-course{display:grid;grid-template-columns:1fr auto;gap:8px 14px;padding:12px 0;border-bottom:1px solid var(--line)}.progress-course:last-child{border-bottom:0}.progress-course small,.attention-card small,.action-item small,.module-head small,.module-item small{display:block;color:var(--muted);margin-top:3px}.progress-metrics{display:flex;gap:8px;align-items:start}.progress-metrics span{font-size:10px;background:#eef2ff;color:#3730a3;border-radius:999px;padding:4px 7px}.progress-track{grid-column:1/-1;height:7px;background:#eef0f4;border-radius:999px;overflow:hidden}.progress-track i{display:block;height:100%;background:#4f46e5;border-radius:999px}.action-item{display:flex;justify-content:space-between;gap:12px;padding:11px;border:1px solid var(--line);border-radius:9px}.action-item>span{align-self:center;text-transform:capitalize;font-size:10px;font-weight:800;padding:4px 7px;border-radius:999px}.action-item.missing>span{background:#fef3f2;color:#b42318}.action-item.upcoming>span{background:#eff8ff;color:#175cd3}.analytics-table-panel{margin-bottom:16px}.block{display:block}.attention-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.attention-card{border:1px solid var(--line);border-radius:9px;padding:12px;display:flex;justify-content:space-between;gap:10px}.attention-card>div:last-child{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.attention-card span{font-size:9px;background:#f2f4f7;border-radius:999px;padding:4px 6px}.module-list{display:grid;gap:12px}.module-card{padding:0;overflow:hidden}.module-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;gap:12px}.module-toggle{display:flex;align-items:center;gap:10px;border:0;background:transparent;text-align:left;cursor:pointer;min-width:0}.module-toggle>svg{width:16px}.module-toggle>span:last-child{min-width:0}.module-toggle b{display:block;font-size:14px}.module-icon{width:34px;height:34px;border-radius:9px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center}.module-description{margin:0;padding:0 16px 13px 70px;color:var(--muted)}.module-items{border-top:1px solid var(--line);background:#fbfcfe;padding:4px 16px}.module-item{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.module-item:last-child{border-bottom:0}.module-item p{margin:4px 0;white-space:pre-wrap;color:#475467}.module-item a{font-size:11px;color:#3155d9;overflow-wrap:anywhere}.material-icon{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:#eef2ff;color:#4f46e5}.material-icon svg{width:16px}.material-icon.link{background:#ecfdf3;color:#067647}.check{display:flex!important;align-items:center;gap:8px}.check input{width:auto!important}@media(max-width:950px){.progress-stats,.analytics-stats{grid-template-columns:repeat(3,1fr)}.analytics-grid{grid-template-columns:1fr}}@media(max-width:650px){.progress-stats,.analytics-stats{grid-template-columns:repeat(2,1fr)}.attention-grid{grid-template-columns:1fr}.module-head{align-items:flex-start}.module-item{grid-template-columns:32px 1fr}.module-item>.row-actions{grid-column:2}.progress-course{grid-template-columns:1fr}.progress-track{grid-column:1}.progress-metrics{flex-wrap:wrap}}.activity-bars{display:grid;gap:10px}.activity-row{display:grid;grid-template-columns:110px 1fr 45px;gap:12px;align-items:center}.activity-row>div{height:9px;background:#eef2f7;border-radius:999px;overflow:hidden}.activity-row i{display:block;height:100%;background:#4f46e5;border-radius:999px}.import-panel{max-width:820px}.import-panel label{display:grid;gap:7px;margin-bottom:18px;font-weight:600}.import-panel select,.import-panel input[type=file]{padding:11px;border:1px solid #dbe1ea;border-radius:9px;background:#fff}.preview{max-height:330px}.success-box{margin-top:20px;padding:15px;border-radius:10px;background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.install-app{position:fixed;right:20px;bottom:20px;z-index:50;border:0;border-radius:12px;padding:11px 16px;background:#111827;color:#fff;font-weight:700;box-shadow:0 10px 30px #0003;cursor:pointer}.push-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.push-panel p{margin:6px 0}.push-panel button{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}@media(max-width:720px){.push-panel{align-items:flex-start;flex-direction:column}.push-panel button{width:100%;justify-content:center}}.file-preview-modal{width:min(1100px,96vw);height:min(820px,92vh);background:var(--surface,#fff);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 80px #0006}.file-preview-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;border-bottom:1px solid var(--line);background:var(--surface,#fff)}.file-preview-head>div:first-child{display:flex;align-items:center;gap:10px;min-width:0}.file-preview-head b,.file-preview-head small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-preview-head small{color:var(--muted);font-size:10px;margin-top:2px}.file-preview-body{flex:1;min-height:0;background:var(--preview-bg,#eef2f7);display:grid;place-items:center;overflow:auto}.file-preview-body iframe{width:100%;height:100%;border:0;background:#fff}.file-preview-body img{max-width:100%;max-height:100%;object-fit:contain}.file-preview-body video{max-width:100%;max-height:100%}.file-preview-body audio{width:min(600px,90%)}.text-preview{align-self:stretch;justify-self:stretch;margin:0;padding:24px;min-height:100%;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface,#fff);color:var(--ink);font:12px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace}.preview-state{text-align:center;max-width:520px;padding:30px;color:var(--muted)}.preview-state h3{color:var(--ink)}.preview-state .primary,.preview-state.primary{display:inline-flex;gap:7px;align-items:center}.file-action-group{display:inline-flex;gap:4px}.linkbtn{display:inline-flex;align-items:center;gap:5px}:root{--surface:#fff;--surface2:#f8faff;--preview-bg:#eef2f7}:root[data-theme=dark]{color-scheme:dark;--ink:#e7edf7;--muted:#9eabc0;--line:#29364a;--bg:#0b1220;--surface:#111b2c;--surface2:#152136;--preview-bg:#080d16;--navy:#061226}:root[data-theme=dark] header,:root[data-theme=dark] .stats div,:root[data-theme=dark] .card,:root[data-theme=dark] .panel,:root[data-theme=dark] .rowcard,:root[data-theme=dark] .notice,:root[data-theme=dark] .course-tile,:root[data-theme=dark] .class-row,:root[data-theme=dark] .assignment-item,:root[data-theme=dark] .login-shell{background:var(--surface);border-color:var(--line)}:root[data-theme=dark] .search,:root[data-theme=dark] th,:root[data-theme=dark] .comment-panel,:root[data-theme=dark] .module-items,:root[data-theme=dark] .rubric-grade-head{background:var(--surface2)}:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] textarea,:root[data-theme=dark] .outline,:root[data-theme=dark] .square,:root[data-theme=dark] .linkbtn,:root[data-theme=dark] .danger,:root[data-theme=dark] .import-panel select,:root[data-theme=dark] .import-panel input[type=file]{background:#101a2b;color:var(--ink);border-color:#34445e}:root[data-theme=dark] .search input{background:transparent}:root[data-theme=dark] td,:root[data-theme=dark] th,:root[data-theme=dark] .assignment-discussion,:root[data-theme=dark] .comment-compose,:root[data-theme=dark] .module-items,:root[data-theme=dark] .module-item{border-color:var(--line)}:root[data-theme=dark] .gradebook-table .sticky-col{background:var(--surface)}:root[data-theme=dark] .gradebook-table thead .sticky-col{background:var(--surface2)}:root[data-theme=dark] .comment-copy>p,:root[data-theme=dark] .module-item p{color:#c2ccda}:root[data-theme=dark] .progress-track,:root[data-theme=dark] .activity-row>div{background:#263248}:root[data-theme=dark] .secondary,:root[data-theme=dark] .progress-metrics span,:root[data-theme=dark] .module-icon,:root[data-theme=dark] .material-icon{background:#202b52;color:#aeb8ff}:root[data-theme=dark] .login-wrap{background:#080f1b}.theme-toggle,.header-bell{position:relative;border:0;background:transparent;color:var(--ink);width:36px;height:36px;border-radius:8px;display:grid;place-items:center}.theme-toggle:hover,.header-bell:hover{background:var(--surface2)}@media(max-width:650px){.file-preview-modal{width:100%;height:94vh}.file-preview-head{align-items:flex-start}.file-preview-head .outline{font-size:0;padding:8px}.file-preview-head .outline svg{margin:0}}.global-search-wrap{position:relative;flex:1;max-width:620px}.global-search-wrap .search{max-width:none;width:100%}.search-clear{border:0;background:transparent;color:var(--muted,#64748b);display:grid;place-items:center;padding:3px;cursor:pointer}.search-popover{position:absolute;z-index:100;top:calc(100% + 8px);left:0;right:0;background:var(--card,#fff);border:1px solid var(--border,#e2e8f0);border-radius:12px;box-shadow:0 16px 38px #0f172a2e;padding:6px;max-height:430px;overflow:auto}.search-hit,.search-all{width:100%;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.search-hit{display:flex;justify-content:space-between;gap:16px;padding:10px 11px;border-radius:8px}.search-hit:hover,.search-all:hover{background:var(--surface,#f8fafc)}.search-hit span{display:flex;flex-direction:column;min-width:0}.search-hit b,.search-hit small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-hit small{color:var(--muted,#64748b);margin-top:3px}.search-hit em,.result-kind{font-style:normal;text-transform:capitalize;font-size:11px;color:var(--muted,#64748b);background:var(--surface,#f1f5f9);padding:3px 7px;border-radius:999px;align-self:center}.search-state{padding:16px;color:var(--muted,#64748b);text-align:center}.search-all{padding:10px 11px;border-top:1px solid var(--border,#e2e8f0);margin-top:4px;color:var(--primary,#4f46e5);font-weight:700}.search-summary{color:var(--muted,#64748b);margin-bottom:12px}.global-results{display:grid;gap:8px}.global-result{display:flex;align-items:center;gap:12px;width:100%;padding:14px;background:var(--card,#fff);color:inherit;border:1px solid var(--border,#e2e8f0);border-radius:12px;text-align:left;cursor:pointer}.global-result:hover{transform:translateY(-1px);box-shadow:0 7px 18px #0f172a14}.search-type{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--surface,#f1f5f9);color:var(--primary,#4f46e5);flex:0 0 auto}.result-copy{display:flex;flex-direction:column;min-width:0;flex:1}.result-copy small{color:var(--muted,#64748b);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty-state{text-align:center;padding:48px 20px;background:var(--card,#fff);border:1px solid var(--border,#e2e8f0);border-radius:14px;color:var(--muted,#64748b)}.empty-state h3{color:inherit;margin:10px 0 4px}@media(max-width:700px){.global-search-wrap{max-width:none}.search-popover{position:fixed;left:12px;right:12px;top:66px}.result-kind{display:none}}:root{color-scheme:light;--primary:#4338ca;--primary2:#3155d9;--ink:#14213d;--muted:#5f6f86;--line:#cfd9e8;--border:#cfd9e8;--bg:#f4f7fc;--surface:#ffffff;--surface2:#f1f5fb;--card:#ffffff;--field:#ffffff;--field-border:#b9c7da;--placeholder:#7a8799;--focus:#4f46e5;--modal-bg:#ffffff;--modal-ink:#101828;--modal-muted:#526079}body{background:var(--bg);color:var(--ink)}header,.stats div,.card,.panel,.rowcard,.notice,.course-tile,.class-row,.assignment-item{background:var(--surface);border-color:var(--line)}input,select,textarea{background:var(--field);color:var(--ink);border-color:var(--field-border)}input::placeholder,textarea::placeholder{color:var(--placeholder);opacity:1}input:focus,select:focus,textarea:focus{outline:3px solid color-mix(in srgb,var(--focus) 20%,transparent);border-color:var(--focus)}:root[data-theme=dark]{color-scheme:dark;--primary:#8b8cff;--primary2:#9ea5ff;--ink:#f3f7ff;--muted:#b7c3d6;--line:#3c4d66;--border:#3c4d66;--bg:#08111f;--surface:#111d30;--surface2:#18263c;--card:#111d30;--field:#0d192a;--field-border:#536783;--placeholder:#9eacc0;--focus:#a5b4fc;--modal-bg:#142238;--modal-ink:#f8fbff;--modal-muted:#c4d0e1;--preview-bg:#070d17}:root[data-theme=dark] body{background:var(--bg);color:var(--ink)}:root[data-theme=dark] header,:root[data-theme=dark] .stats div,:root[data-theme=dark] .card,:root[data-theme=dark] .panel,:root[data-theme=dark] .rowcard,:root[data-theme=dark] .notice,:root[data-theme=dark] .course-tile,:root[data-theme=dark] .class-row,:root[data-theme=dark] .assignment-item,:root[data-theme=dark] .login-shell,:root[data-theme=dark] .global-result,:root[data-theme=dark] .search-popover{background:var(--surface);border-color:var(--line);color:var(--ink)}:root[data-theme=dark] .search,:root[data-theme=dark] th,:root[data-theme=dark] .comment-panel,:root[data-theme=dark] .module-items,:root[data-theme=dark] .rubric-grade-head,:root[data-theme=dark] .conversation-list,:root[data-theme=dark] .thread-body{background:var(--surface2);color:var(--ink)}:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] textarea,:root[data-theme=dark] .outline,:root[data-theme=dark] .square,:root[data-theme=dark] .linkbtn,:root[data-theme=dark] .danger,:root[data-theme=dark] .message-search{background:var(--field);color:var(--ink);border-color:var(--field-border)}:root[data-theme=dark] input::placeholder,:root[data-theme=dark] textarea::placeholder{color:var(--placeholder)}:root[data-theme=dark] .thread-panel,:root[data-theme=dark] .message-bubble,:root[data-theme=dark] .contact-picker button,:root[data-theme=dark] .student-line,:root[data-theme=dark] .check-row,:root[data-theme=dark] .calendar-day{background:var(--surface);color:var(--ink);border-color:var(--line)}:root[data-theme=dark] .conversation-item:hover,:root[data-theme=dark] .conversation-item.active,:root[data-theme=dark] .contact-picker button:hover{background:#25365a;color:#fff}:root[data-theme=dark] .thread-empty h3,:root[data-theme=dark] .agenda-copy p,:root[data-theme=dark] .card p,:root[data-theme=dark] .rowcard p{color:var(--ink)}:root[data-theme=dark] .conversation-copy small,:root[data-theme=dark] .thread-head small,:root[data-theme=dark] .contact-picker small,:root[data-theme=dark] .thread-empty,:root[data-theme=dark] .message-empty-small{color:var(--muted)}.modal-backdrop{background:#020817b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-backdrop .modal,.modal-backdrop>.panel,.grade-modal,.new-message-modal,.file-preview-modal{background:var(--modal-bg);color:var(--modal-ink);border:1px solid var(--line);box-shadow:0 28px 90px #0208176b}.modal-backdrop h1,.modal-backdrop h2,.modal-backdrop h3,.modal-backdrop h4,.modal-backdrop b,.modal-backdrop strong,.modal-backdrop label,.modal-backdrop p,.modal-backdrop span{color:inherit}.modal-backdrop .muted,.modal-backdrop small,.modal-backdrop .form-title p,.modal-backdrop .grade-modal-head p,.file-preview-head small{color:var(--modal-muted)!important}.modal-backdrop input,.modal-backdrop select,.modal-backdrop textarea{background:var(--field);color:var(--modal-ink);border-color:var(--field-border)}.modal-backdrop input::placeholder,.modal-backdrop textarea::placeholder{color:var(--placeholder)}.modal-backdrop .secondary{background:#e8eaff;color:#312e81}:root[data-theme=dark] .modal-backdrop .secondary{background:#303d70;color:#f1f3ff}.modal-backdrop .outline,.modal-backdrop .square,.file-preview-head .outline,.file-preview-head .square{background:var(--field);color:var(--modal-ink);border-color:var(--field-border)}.modal-backdrop .primary{background:#4f46e5;color:#fff}:root[data-theme=dark] .modal-backdrop .primary{background:#7777f5;color:#fff}.modal-backdrop .error{background:#fff0f0;color:#9f1c1c;border:1px solid #fecaca}:root[data-theme=dark] .modal-backdrop .error{background:#431d25;color:#ffd5d9;border-color:#7f3340}.modal-backdrop .success{background:#ecfdf3;color:#067647;border:1px solid #a7f3d0}:root[data-theme=dark] .modal-backdrop .success{background:#10392d;color:#b8f5d9;border-color:#23644e}.file-preview-head{background:var(--modal-bg);color:var(--modal-ink);border-color:var(--line)}.text-preview{background:var(--modal-bg);color:var(--modal-ink)}:root[data-theme=dark] .status,:root[data-theme=dark] .pill,:root[data-theme=dark] .tag,:root[data-theme=dark] .result-kind,:root[data-theme=dark] .search-hit em{background:#2b3960;color:#dfe4ff}:root[data-theme=dark] .status.open,:root[data-theme=dark] .tag.graded{background:#123d32;color:#a7f3d0}:root[data-theme=dark] .tag.late,:root[data-theme=dark] .grade-status.missing{background:#4a2b17;color:#fed7aa}:root[data-theme=dark] a:not(nav a):not(.primary){color:#b8c0ff}:root[data-theme=dark] .primary{color:#fff}.ai-teacher-page .page-title h1{display:flex;align-items:center;gap:10px}.ai-tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.ai-tool-card{display:flex;gap:12px;text-align:left;align-items:flex-start;padding:16px;border:1px solid var(--border,#d8dee9);border-radius:14px;background:var(--card,#fff);color:var(--text,#172033);cursor:pointer}.ai-tool-card span{display:grid;gap:5px}.ai-tool-card small{color:var(--muted,#667085);line-height:1.35}.ai-tool-card.selected{border-color:#6366f1;box-shadow:0 0 0 2px #6366f124}.ai-tool-card.selected>svg{color:#6366f1}.ai-workspace{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(380px,1.15fr);gap:18px;align-items:start}.ai-prompt-card,.ai-result-card{padding:22px}.ai-prompt-card label{display:grid;gap:7px;margin:14px 0;font-weight:650}.ai-prompt-card input,.ai-prompt-card textarea{width:100%;box-sizing:border-box}.ai-generate{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:16px}.ai-privacy-note,.ai-notice{font-size:12px;color:var(--muted,#667085);line-height:1.5}.ai-result-card{min-height:520px}.ai-result-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.ai-result-head h2{margin:5px 0 0}.ai-label{font-size:11px;font-weight:800;letter-spacing:.09em;color:#6366f1}.ai-summary{font-size:15px;line-height:1.65;padding-bottom:14px;border-bottom:1px solid var(--border,#e5e7eb)}.ai-section{margin:20px 0}.ai-section h3{margin:0 0 9px}.ai-section li{margin:8px 0;line-height:1.55}.ai-raw{white-space:pre-wrap;line-height:1.6}.ai-empty{min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted,#667085)}.ai-empty h3{color:var(--text,#172033);margin:14px 0 5px}.ai-spin{animation:aiPulse 1.2s ease-in-out infinite}@keyframes aiPulse{50%{transform:scale(1.12);opacity:.6}}@media(max-width:900px){.ai-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-workspace{grid-template-columns:1fr}.ai-result-card{min-height:360px}}@media(max-width:560px){.ai-tool-grid{grid-template-columns:1fr}.ai-prompt-card,.ai-result-card{padding:16px}}
