@import url('/fonts.css');
:root{--bg:#f7f8fa;--ink:#20252a;--muted:#8a9099;--line:#eaedf0;--purple:#8070db;--green:#bfdacb;--shadow:0 8px 32px #1e293b04}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;letter-spacing:-.25px}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer;transition:background .18s,transform .18s,box-shadow .18s}button:active{transform:scale(.96)}button:disabled{opacity:.5;cursor:wait}button{border:0;color:inherit;background:transparent}a{color:var(--purple)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:-1px}h2{font-size:23px;font-weight:600}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:650;color:var(--muted)}.logo{display:inline-flex;align-items:center;justify-content:center;background:#c9ddce;color:#293e34;width:36px;height:36px;border-radius:11px;font-size:29px;font-weight:700;letter-spacing:-3px;padding-right:4px}.wordmark{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:650;letter-spacing:-1px}.subtle{font-size:16px;font-weight:400;opacity:.45}.primary{padding:12px 17px;border-radius:9px;background:#8978df;color:white;font-weight:550;box-shadow:0 4px 8px #8978df15}.primary:hover{background:#7765d2;box-shadow:0 5px 15px #8978df35}.outline{border:1px solid #e2e5e9;padding:11px 14px;border-radius:8px;background:white;color:#656a74;font-weight:500}.outline:hover{background:#f2f0f9}.small{padding:5px 10px;font-size:11px}.icon{font-size:20px;min-width:28px;min-height:28px;border-radius:6px;color:#9296a0}.icon:hover{background:#f1eff8;color:#7563ca}.text-btn{color:#8978ce;font-size:12px;font-weight:550}.wide{width:100%;display:flex;justify-content:space-between}.muted,.fine{color:var(--muted)}.fine{font-size:11px;line-height:1.7}.pill{font-size:10px;letter-spacing:1px;padding:8px 11px;border:1px solid #e7e3f5;border-radius:20px;color:#8b7cb8;background:#faf9fd}.auth{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;padding:28px;gap:20px;background:white}.auth-copy{background:#f0f3ef;border-radius:24px;min-height:740px;padding:36px 46px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.auth h1{font-size:clamp(40px,4.6vw,70px);font-weight:550;line-height:1.08;margin:18px 0 24px;letter-spacing:-3.5px}.auth h1 span{color:#8875d3}.intro{font-size:16px;line-height:1.8;color:#7f887e}.auth-form{align-self:center;max-width:360px;width:100%;margin:0 auto;padding:40px 20px}.auth-form h2{font-size:32px;margin:28px 0 14px}.auth-form>p{color:#91949b;line-height:1.7}form label{display:block;color:#6c737c;font-size:12px;font-weight:600;margin:22px 0 9px}input,select{border:1px solid #e0e4e9;border-radius:8px;background:white;padding:12px 13px;width:100%;color:#343a43}input::placeholder{color:#aeb3bc}form .primary{margin-top:22px}.auth-form .text-btn{margin-top:18px;width:100%;text-align:center}.privacy-note{display:flex;gap:12px;border-top:1px solid var(--line);margin-top:35px;padding-top:23px;font-size:11px;line-height:1.7;color:#a1a6ad}.error{color:#b36161!important;font-size:12px;margin-top:12px}.hero-art{height:220px;position:relative;max-width:450px;margin-top:25px}.orb{position:absolute;width:230px;height:230px;right:10px;top:5px;background:#dfe7db;border-radius:50%}.art-card{position:absolute;transform:rotate(-7deg);left:15px;top:45px;background:#fffdf9;width:270px;border-radius:15px;padding:26px;box-shadow:0 20px 40px #5b6a5914}.art-card>span{font-size:9px;color:#919487;letter-spacing:1.5px}.art-card strong{display:block;margin:12px 0 20px;font-size:26px;font-weight:500}.art-line{height:5px;background:#ebeae5;width:70%;border-radius:5px;margin:8px 0}.art-line.short{width:45%}.art-card i{position:absolute;right:25px;bottom:30px;background:#dbe9dc;border-radius:50%;padding:8px 12px;color:#6e8a70;font-style:normal}.floating{position:absolute;font-size:75px;color:#c0b4e4;right:25px;top:15px;transform:rotate(10deg)}.sidebar{position:fixed;inset:0 auto 0 0;width:235px;background:#fff;border-right:1px solid var(--line);padding:32px 22px;display:flex;flex-direction:column}.sidebar .wordmark{margin:0 10px 42px}.side-label{font-size:9px;letter-spacing:1.6px;font-weight:650;color:#a6abb3;margin:0 12px 15px}.nav{display:flex;align-items:center;gap:13px;width:100%;border-radius:8px;padding:12px;margin:3px 0;color:#8c929b;text-align:left;font-size:16px}.nav span{font-size:12px;font-weight:500;flex:1}.nav small{font-size:10px;background:#e8e3f7;padding:2px 6px;border-radius:5px;color:#9b8bc6}.nav.active{color:#8a76d1;background:#f1eefb}.nav:hover{background:#f6f5fa}.side-divider{border-bottom:1px solid var(--line);margin:24px 12px}.classes-head{display:flex;align-items:baseline;justify-content:space-between}.class-filter{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;color:#828994;font-size:11px;text-align:left;border-radius:7px}.class-filter.off{opacity:.35}.class-filter:hover{background:#f7f8fa}.dot{display:inline-block;width:8px;height:8px;flex-shrink:0;border-radius:3px;background:var(--course)}.p0{--course:#9d8ad5;--tint:#f0eafa;--text:#8572b2}.p1{--course:#e1aa78;--tint:#fbf0e6;--text:#bd906b}.p2{--course:#8eb9a5;--tint:#eaf4ef;--text:#709a85}.p3{--course:#8eafd7;--tint:#eaf0fa;--text:#7c96bc}.p4{--course:#d68f9c;--tint:#faedf0;--text:#b67c88}.p5{--course:#c9bb79;--tint:#f6f3e5;--text:#a49662}.sidebar-bottom{margin-top:auto;padding-top:20px}.quiet-card{background:#f6f8f3;border:1px solid #eef1e9;border-radius:12px;padding:18px 18px 19px;margin:8px 7px 22px;color:#7b8f78}.quiet-card>span{font-size:28px;display:block;margin-bottom:8px}.quiet-card strong{font-size:11px;font-weight:550}.quiet-card p{font-size:10px;color:#9ba597;line-height:1.7;margin-top:8px}.sidebar-bottom .nav{padding:9px 12px}.profile{display:flex;align-items:center;gap:10px;padding-top:20px;margin:15px 7px 0;border-top:1px solid var(--line)}.profile>span:first-child{background:#eee9df;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:11px;color:#9a8c6e}.profile strong{display:block;font-size:11px;font-weight:550}.profile small{font-size:9px;color:#a4a8ae}.online{width:6px;height:6px;border-radius:50%;background:#99ba9b;margin-left:auto}main{margin-left:235px;padding:38px 36px 20px;max-width:1900px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;gap:15px}header h1{font-size:26px;font-weight:550;margin-top:10px;letter-spacing:-1px}.header-actions{display:flex;gap:10px}.header-actions button{font-size:11px}.summary{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--line);border-radius:12px;padding:21px 7px;margin-bottom:26px;box-shadow:var(--shadow)}.summary>div{display:flex;align-items:center;gap:14px;padding:0 24px;border-right:1px solid var(--line)}.summary>div:last-child{border:0}.stat-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;font-size:20px}.lavender{background:#f1edfa;color:#9b87ce}.peach{background:#fcf1e8;color:#d3a27c}.mint{background:#edf4ef;color:#93b19c}.summary small{display:block;font-size:10px;color:#a4a7af;margin-bottom:7px}.summary strong{font-size:24px;font-weight:550;letter-spacing:-1px}.summary em{font-size:11px;font-weight:400;font-style:normal;letter-spacing:-.2px;color:#a1a5ae;margin-left:4px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:26px}.calendar-card{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow);align-self:start}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;padding:22px 23px 18px;gap:10px}.month-title{display:flex;align-items:center;gap:14px}.month-title h2{font-size:20px;letter-spacing:-.7px;white-space:nowrap}.arrows{display:flex;gap:1px}.view-switch{display:flex;background:#f5f5f8;padding:3px;border-radius:7px}.view-switch button{font-size:10px;color:#a0a3ac;padding:6px 11px;border-radius:5px}.view-switch .selected{background:white;color:#8e7bc6;box-shadow:0 1px 4px #1219290c}.search-line{border-top:1px solid #f3f4f6;display:flex;align-items:center;gap:8px;padding:8px 23px;color:#c1c5cc}.search-line input{border:0;font-size:10px;padding:6px 0;box-shadow:none;outline:none}.keycap{font-size:10px;border:1px solid #e9ebef;border-radius:3px;padding:0 5px}.day-headings,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.day-headings{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fcfcfd}.day-headings span{padding:12px 0;font-size:9px;letter-spacing:.6px;color:#a2a7af;text-align:center}.day{min-height:112px;border-right:1px solid #edf0f3;border-bottom:1px solid #edf0f3;padding:8px 5px 6px;overflow:hidden}.day:nth-child(7n){border-right:0}.day.other{background:#fcfcfd}.day.other .day-number{color:#d0d4d9}.day.today{background:#fcfbff}.day-number{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;font-size:10px;margin-bottom:8px;color:#9b9faa}.today .day-number{background:#9b8bd4;color:white}.event-chip{display:block;width:100%;padding:6px 5px;margin:4px 0;border-radius:4px;background:var(--tint,#f3f1f9);color:var(--text,#8b80a8);text-align:left;font-size:9px;font-weight:500;border-left:2px solid var(--course,#aa9bd1);line-height:1.35;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.event-chip:hover{filter:brightness(.97);transform:translateY(-1px)}.event-chip.done{text-decoration:line-through;opacity:.45}.event-chip span{font-size:8px;opacity:.8;display:block;font-weight:400;margin-top:2px}.more{font-size:9px;color:#a9a2bb;margin:4px}.calendar-footer{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;color:#a8adb5;font-size:9px}.calendar-footer .text-btn{font-size:10px}.panel-head{display:flex;align-items:center;justify-content:space-between}.panel-head .eyebrow{font-size:9px;margin:3px 0 10px}.panel-head h2{font-size:22px;letter-spacing:-.7px}.tiny-star{font-size:23px;color:#bdacd5;margin-left:12px}.badge{background:#eeeaf8;color:#a393c7;font-size:10px;padding:3px 7px;border-radius:5px}.panel-intro{font-size:10px;color:#a1a6b0;margin:12px 0 21px}.radar-item{border:1px solid #e6e9ee;background:white;border-radius:10px;padding:15px;margin-bottom:12px;transition:transform .25s,opacity .25s;position:relative}.radar-item.leaving,.task.leaving{transform:translateX(30px) scale(.96);opacity:0}.item-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px;gap:10px}.type-badge{font-size:8px;font-weight:550;border-radius:4px;padding:4px 6px;background:var(--tint);color:var(--text);letter-spacing:.4px}.due-label{font-size:8px;color:#b4a5a0}.radar-title{font-size:12px;font-weight:550;text-align:left;padding:0;margin:0 0 6px;line-height:1.5}.course-label{font-size:9px;color:#a1a5ad;display:flex;align-items:center;gap:5px}.radar-bottom{margin-top:16px;padding-top:11px;border-top:1px solid #f0f1f4;display:flex;justify-content:space-between;font-size:9px;align-items:center;color:#a3a7af}.dismiss{display:flex;align-items:center;gap:5px;font-size:9px;color:#a4a8b1}.dismiss:hover{color:#8a76c7}.check-circle{display:grid;place-items:center;width:15px;height:15px;border:1px solid #d8dbe1;border-radius:50%;font-size:9px}.grades-head{margin:26px 0 14px}.grades-head h3{font-size:15px;font-weight:550;letter-spacing:-.4px}.grades-head>span{font-size:8px;letter-spacing:.7px}.grade-alert{padding:13px 15px;background:#faf3ed;border:1px solid #eee5da;border-radius:9px;margin-bottom:10px}.grade-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.grade-row strong{font-size:11px;font-weight:500}.grade-row>span{color:#b49a75;font-size:15px}.grade-alert small{font-size:9px;color:#b4a38f;display:block;margin-top:7px}.grade-track{height:3px;background:#eee3d6;border-radius:4px;margin-top:12px}.grade-track>div{height:100%;background:#d4b48d;border-radius:4px}.focus-note{text-align:center;padding:20px 0;color:#9aa394}.focus-note>span{font-size:29px}.focus-note p{font-size:11px;line-height:1.9;margin-top:10px;color:#a5aba1}.focus-note strong{font-weight:500;color:#818b7d}footer{display:flex;justify-content:space-between;margin-top:25px;font-size:8px;color:#b4bac2;letter-spacing:1.1px}.banner{display:flex;gap:12px;align-items:center;padding:12px 15px;background:#eeebf8;color:#8d7fb3;font-size:9px;border-radius:9px;margin-bottom:20px;font-weight:600}.banner span{font-weight:400;flex:1}.banner button{font-size:10px}.empty{padding:35px 20px;text-align:center;font-size:12px;color:#969da7;line-height:1.9}.empty strong{display:block;font-size:16px;color:#758270;font-weight:500;margin-bottom:6px}.task{display:flex;align-items:center;padding:18px 22px;border-top:1px solid var(--line);gap:14px;transition:.25s}.task-text{flex:1}.task-title{font-weight:500;font-size:12px;text-align:left;margin-bottom:6px}.task .dismiss{font-size:12px}.task.done .task-title{text-decoration:line-through;opacity:.45}.task-time{font-size:10px;color:#adb0b7;white-space:nowrap}.agenda-heading{font-size:11px;color:#8a7cb2;background:#f9f8fc;padding:12px 22px;border-top:1px solid var(--line);font-weight:500}.grade-card{padding:23px;border-top:1px solid var(--line)}.grade-card h3{font-size:15px;letter-spacing:-.3px}.grade-card .grade-row>span{font-size:25px}.grade-card p{color:#9fa5ad;font-size:11px;margin-top:9px}dialog{padding:32px;border:1px solid #e5e5ed;border-radius:18px;width:460px;max-width:calc(100vw - 30px);box-shadow:0 30px 120px #18253526;max-height:90vh;color:var(--ink)}dialog::backdrop{background:#26302942;backdrop-filter:blur(5px)}dialog h2{margin:12px 0}dialog>p:not(.eyebrow){color:#989ea8;font-size:12px;line-height:1.7}.close{position:absolute;right:15px;top:12px}.connection-host{background:#f5f3fb;padding:14px;color:#9a89c3;font-size:12px;border-radius:8px;margin:22px 0 5px}.setting-details{border-top:1px solid var(--line);margin:22px 0;padding-top:10px}.setting-details p{font-size:10px;color:#a0a5af;line-height:1.7;margin:10px 0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.detail-meta{display:flex;gap:12px;align-items:center;font-size:12px;color:#9b9fa7;margin:20px 0}.detail-actions{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap}.detail-actions a{text-decoration:none;font-size:12px}.detail-note{background:#f8f7fc;border-radius:8px;padding:15px;color:#a098b4;font-size:11px;line-height:1.8}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);border:1px solid #e0e3e9;background:#fff;box-shadow:0 8px 30px #23302d15;padding:15px 20px;border-radius:10px;font-size:12px;z-index:20;max-width:90vw;animation:rise .25s ease}#toast button{color:#917ac9;margin-left:20px;font-weight:600}@keyframes rise{from{opacity:0;bottom:15px}to{opacity:1;bottom:26px}}@media(min-width:1600px){.day{min-height:145px}.workspace{grid-template-columns:minmax(0,1fr) 300px}}@media(max-width:1200px){.sidebar{width:205px;padding:28px 16px}main{margin-left:205px;padding:30px 23px}.workspace{grid-template-columns:minmax(0,1fr) 235px;gap:18px}.summary>div{padding:0 15px}.summary em{font-size:10px}.month-title{gap:5px}.calendar-toolbar{padding:18px 13px}.month-title h2{font-size:17px}.view-switch button{padding:6px 7px}.day{min-height:100px}.event-chip{font-size:8px}header h1{font-size:23px}.header-actions .outline span{display:none}.stat-icon{width:33px;height:33px}.summary{padding:18px 4px}}@media(max-width:1000px){.workspace{grid-template-columns:minmax(0,1fr)}.right-panel{display:grid;grid-template-columns:1fr 1fr;gap:12px}.panel-head,.panel-intro{grid-column:1/-1}#radar,#gradeAlerts{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.grades-head{margin-top:10px}.focus-note{grid-column:1/-1}.summary em{display:block;font-size:9px;letter-spacing:0}.day{min-height:110px}}@media(max-width:700px){.sidebar{position:static;width:auto;padding:20px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .wordmark{margin:0 0 17px}.sidebar nav{display:flex;gap:8px}.sidebar nav .nav{padding:10px;justify-content:center}.sidebar nav .nav span{flex:0}.side-label,.side-divider,.classes-head,#classFilters,.quiet-card,.profile{display:none}.sidebar-bottom{display:flex;padding:0;margin-top:5px;gap:10px}.sidebar-bottom .nav{width:auto;padding:6px 8px;font-size:12px}.sidebar-bottom .nav span{font-size:9px}.sidebar-bottom .nav:first-of-type{flex:1}main{margin:0;padding:23px 13px}header{align-items:flex-start;margin-bottom:20px}header h1{font-size:21px;max-width:220px}.header-actions{flex-direction:column;gap:6px}.header-actions button{padding:8px 10px;font-size:10px}.header-actions .outline{display:none}.summary{margin-bottom:18px;gap:0}.summary>div{gap:8px;padding:0 9px}.stat-icon{display:none}.summary small{font-size:8px}.summary strong{font-size:21px}.summary em{font-size:8px}.calendar-toolbar{padding:16px 10px}.month-title h2{font-size:16px}.month-title{gap:2px}.month-title .icon{min-width:22px}.calendar-toolbar .small{padding:5px;font-size:9px}.day{min-height:95px;padding:5px 2px}.event-chip{font-size:8px;padding:5px 3px}.event-chip span{display:none}.day-number{font-size:10px}.search-line{padding:8px 12px}.banner{flex-wrap:wrap}.banner span{min-width:70%;font-size:9px}.right-panel{padding:10px 6px}#radar,#gradeAlerts{gap:8px}.radar-item{padding:12px}.item-top{gap:3px}.due-label{font-size:7px}.radar-title{font-size:11px}footer{font-size:7px;letter-spacing:.3px}.auth{display:block;padding:14px}.auth-copy{min-height:340px;padding:25px}.auth h1{font-size:40px;letter-spacing:-2px;margin:15px 0}.auth-copy .eyebrow{margin-top:35px;font-size:8px}.intro{font-size:12px}.hero-art,.auth-copy>.fine{display:none}.auth-form{padding:40px 10px;max-width:360px}.task{padding:15px 12px;gap:8px}.task-time{font-size:9px}.task-title{font-size:11px}.task .dismiss{font-size:9px}.task .dismiss .dismiss-label{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.sidebar{overflow-y:auto}.sidebar-bottom{flex-shrink:0}@media(min-width:701px) and (max-height:950px){.quiet-card{display:none}.sidebar .wordmark{margin-bottom:25px}.side-divider{margin:17px 12px}.sidebar-bottom{padding-top:12px}.class-filter{padding-top:9px;padding-bottom:9px}.profile{padding-top:13px;margin-top:10px}}.auth .logo{letter-spacing:0;padding:0;font-size:24px}
.gpa-shortcut{text-align:left;padding:0}.gpa-shortcut:hover{color:#8b78cb}.gpa-panel{padding:24px;background:linear-gradient(120deg,#f7f5fc,#f4f8f2);border-top:1px solid var(--line)}.gpa-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.gpa-heading .eyebrow{font-size:8px}.gpa-live{font-size:8px;letter-spacing:.6px;color:#93a08b}.gpa-panel h2{font-size:23px;margin:15px 0 22px}.gpa-totals{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px}.gpa-totals strong{display:block;font-weight:500;font-size:40px;letter-spacing:-2px;color:#8573ba;line-height:1.2}.gpa-totals span{font-size:10px;color:#9a9ea8;display:block;margin-top:7px}.gpa-totals>div+div{border-left:1px solid #e5e3ed;padding-left:20px}.gpa-count strong{color:#91a28b}.gpa-explainer{font-size:10px;color:#9aa0a7;line-height:1.8;margin-top:22px;max-width:560px}.gpa-method{font-size:10px;color:#9994a6;line-height:1.8;margin-top:15px}.gpa-method summary{cursor:pointer;color:#9583be;font-weight:550}.gpa-method p{margin:10px 0}.gpa-method a{font-size:10px}.gpa-controls{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:18px}.gpa-controls label{display:flex;gap:7px;align-items:center;color:#a0a5ae;font-size:10px}.gpa-controls input[type=checkbox]{width:13px;height:13px;accent-color:#a28bce;cursor:pointer}.gpa-controls input[type=number]{width:62px;font-size:11px;padding:6px 8px}.gpa-credits{margin-left:auto}@media(max-width:700px){.gpa-panel{padding:20px 15px}.gpa-heading{flex-wrap:wrap;gap:7px}.gpa-totals{gap:10px}.gpa-totals strong{font-size:33px}.gpa-totals span{font-size:9px}.gpa-totals>div+div{padding-left:13px}.gpa-controls{gap:12px}.gpa-controls label{font-size:9px}.gpa-credits{margin-left:0}.gpa-explainer{font-size:9px}}
.agenda-filters{padding:15px 20px;border-top:1px solid var(--line);background:#fcfbfe}.agenda-filter-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.agenda-filter-top .eyebrow{font-size:8px;white-space:nowrap}.period-switch{display:flex;gap:3px;border:1px solid #eeebf4;background:#f4f1f9;border-radius:8px;padding:3px}.period-switch button{font-size:10px;color:#a094b7;padding:7px 11px;white-space:nowrap;border-radius:5px}.period-switch button:hover{background:#ebe5f5}.period-switch button[aria-pressed=true]{background:#fff;color:#8871be;box-shadow:0 1px 4px #3f255718}.agenda-filter-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;color:#a4a3ae;font-size:9px;line-height:1.6}.agenda-filter-options>div{display:flex;gap:12px}.agenda-filter-options label{display:flex;gap:5px;align-items:center;white-space:nowrap}.agenda-filter-options input{width:12px;height:12px;accent-color:#9b86ca;margin:0;cursor:pointer}@media(max-width:1200px){.agenda-filter-top{flex-wrap:wrap}.agenda-filter-options{flex-wrap:wrap}.agenda-filter-options>div{gap:15px}}@media(max-width:700px){.agenda-filters{padding:14px 12px}.agenda-filter-top .eyebrow{display:none}.period-switch{width:100%}.period-switch button{flex:1;padding:8px;font-size:10px}.agenda-filter-options{gap:8px;font-size:9px}.agenda-filter-options>div{justify-content:space-between;width:100%}}
.score-gold{--score:#ac7e21;--score-bg:#fff8dc;--score-border:#e9d08a}.score-green{--score:#448d64;--score-bg:#edf8f0;--score-border:#bdddc7}.score-red{--score:#c46066;--score-bg:#fdf0f0;--score-border:#edc2c5}.score-flagged{--score:#9e5a82;--score-bg:#f8eaf3;--score-border:#ddafcc}.score-neutral{--score:#9298a3;--score-bg:#f5f6f8;--score-border:#e0e3e8}.score-chip{display:inline-flex;align-items:center;justify-content:center;min-width:67px;border-radius:8px;padding:8px 10px;background:var(--score-bg);border:1px solid var(--score-border);color:var(--score);font-size:12px;font-weight:650;white-space:nowrap}.score-chip.score-gold{background:linear-gradient(120deg,#fff9e7,#f8e5a5,#fff7dc);box-shadow:0 2px 9px #b9871d0d}.published-grade{padding:6px 11px;border-radius:9px;background:var(--score-bg);color:var(--score)!important;font-size:24px;font-weight:550;border:1px solid var(--score-border);min-width:50px}.course-open{font-size:inherit;font-weight:inherit;text-align:left;padding:0;line-height:1.5}.course-open:hover{color:#8c75bc}.course-open>span{color:#b9abc9;font-size:12px}.grade-card{border-left:3px solid var(--score-border,#eceaf3)}.grade-alert[class*=score-]{background:var(--score-bg);border-color:var(--score-border)}.grade-alert .grade-row>span{color:var(--score);white-space:nowrap}.grade-alert small{color:var(--score);opacity:.75}.grade-alert .grade-track>div{background:var(--score)}.course-dialog{width:1000px;padding:0;max-height:90vh;border-radius:18px}.course-dialog>.close{z-index:2;right:15px;top:14px}.course-hero{padding:30px 32px 22px;background:linear-gradient(120deg,#f7f5fb,#f4f7f3)}.course-title-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:14px}.course-title-row h2{font-size:26px;margin:0 0 10px;line-height:1.3;padding-right:25px}.course-title-row p{font-size:11px;color:#9699a6}.course-overall{padding:12px 20px;background:var(--score-bg);border:1px solid var(--score-border);border-radius:13px;min-width:95px;text-align:center;color:var(--score)}.course-overall strong{font-size:38px;font-weight:550;letter-spacing:-1.5px}.course-overall span{display:block;font-size:9px;margin-top:3px;white-space:nowrap}.course-stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:27px;gap:20px}.course-stats>div+div{border-left:1px solid #e6e7e8;padding-left:20px}.course-stats strong{display:block;font-size:25px;font-weight:500;color:var(--score,#8b7ba5);letter-spacing:-1px}.course-stats span{display:block;font-size:10px;color:#a0a4ad;margin-top:5px}.score-legend{display:flex;flex-wrap:wrap;gap:10px 17px;align-items:center;padding:17px 30px;border-bottom:1px solid var(--line);font-size:10px}.score-legend span[class*=score-]{color:var(--score);font-weight:550}.score-legend>span:last-child{color:#aaa6b2;font-size:9px;flex-basis:100%;line-height:1.8}.course-notice{padding:14px 30px;color:#ac8a72;font-size:11px;background:#fff9f0}.grade-context{padding:18px 30px;border-bottom:1px solid var(--line);color:#9b95a7;font-size:10px;line-height:1.8}.grade-context summary{cursor:pointer;color:#917cba;font-weight:550;font-size:11px}.grade-context>p{margin-top:12px}.grade-context h3{font-size:13px;letter-spacing:-.3px;margin:18px 0 12px;color:#797482}.category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}.category-card{padding:12px;border:1px solid var(--line);border-radius:9px;background:#fafafa}.category-card>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.category-card strong{color:#85808c;font-size:11px;font-weight:500}.category-card .score-chip{padding:3px 6px;min-width:45px;font-size:10px}.category-card p{font-size:9px;margin-top:7px}.scale-bands{display:flex;flex-wrap:wrap;gap:8px}.scale-bands span{background:#f5f3f9;padding:6px 9px;border-radius:5px;font-size:10px;color:#a092b5}.scale-bands strong{color:#87749e}.gradebook-toolbar{display:flex;align-items:center;gap:10px;padding:18px 25px;background:white;position:sticky;top:0;z-index:1;border-bottom:1px solid var(--line);flex-wrap:wrap}.gradebook-toolbar input{flex:2;min-width:170px;font-size:11px;padding:9px 11px}.gradebook-toolbar select{flex:1;width:auto;min-width:125px;font-size:10px;padding:9px 8px}.gradebook-count{font-size:9px;padding:10px 30px;color:#aaa6b2;border-bottom:1px solid var(--line);background:#fbfbfd}.gradebook-row{display:flex;align-items:center;gap:17px;width:100%;padding:17px 29px;text-align:left;border-bottom:1px solid var(--line);border-left:3px solid var(--score-border)}.gradebook-row:hover{background:var(--score-bg)}.gradebook-name{flex:1;min-width:0}.gradebook-name strong{display:block;color:#5e626c;font-size:12px;font-weight:500;line-height:1.7}.gradebook-name small{display:block;font-size:9px;color:#aaa8b2;margin-top:4px;line-height:1.7}.gradebook-status{font-size:9px;color:var(--score,#a1a3aa);width:84px;text-align:center;flex-shrink:0}.gradebook-points{font-size:11px;color:#a1a1aa;white-space:nowrap;width:80px;text-align:right}.gradebook-arrow{font-size:14px;color:#b6acbf}.course-footer{padding:18px 29px;display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;font-size:9px;color:#aaa4b1}.course-footer>div{display:flex;gap:18px;align-items:center}.course-footer a{font-size:10px;text-decoration:none}.course-footer button{font-size:10px}.assignment-score{display:flex;gap:12px;align-items:center;margin:18px 0 8px}.assignment-score>span:last-child{font-size:12px;color:#aaa3b2}.feedback-section{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.feedback-section h3{font-size:13px;font-weight:550;letter-spacing:-.3px;margin-bottom:15px}.plain-copy{white-space:pre-wrap;overflow-wrap:anywhere;color:#8d8a96;font-size:11px;line-height:1.9}.feedback-comment{border:1px solid var(--line);padding:13px;border-radius:8px;margin:10px 0;background:#fcfbfe}.feedback-comment strong{font-size:11px;color:#8e7fa4;font-weight:500}.feedback-comment small{font-size:9px;color:#b2aaba;margin-left:12px}.feedback-comment p{margin-top:9px}.submission-facts{display:flex;flex-wrap:wrap;gap:8px;font-size:9px;color:#a292af;margin-top:18px}.submission-facts span{padding:6px 8px;background:#f5f2f8;border-radius:5px}.rubric-row{border:1px solid var(--line);padding:12px;border-radius:8px;margin:9px 0}.rubric-row strong{font-size:11px;color:#92889c;font-weight:550}.rubric-row span{float:right;font-size:11px;color:#a393b0}.rubric-row p{font-size:10px;line-height:1.8;color:#aaa2b1;margin-top:8px}@media(max-width:700px){.course-dialog{width:calc(100vw - 18px);max-width:none}.course-hero{padding:28px 20px 20px}.course-title-row{gap:10px}.course-title-row h2{font-size:20px;padding-right:0}.course-overall{min-width:70px;padding:9px 12px}.course-overall strong{font-size:29px}.course-overall span{font-size:8px;white-space:normal}.course-stats{gap:10px}.course-stats>div+div{padding-left:10px}.course-stats strong{font-size:23px}.course-stats span{font-size:9px}.score-legend{padding:15px 20px;gap:8px 14px}.grade-context{padding:16px 20px}.category-grid{grid-template-columns:1fr}.gradebook-toolbar{padding:14px;gap:7px}.gradebook-toolbar input{flex-basis:100%}.gradebook-toolbar select{min-width:90px;font-size:9px}.gradebook-row{padding:15px 13px;gap:10px;flex-wrap:wrap}.gradebook-name{flex-basis:calc(100% - 100px)}.gradebook-status{width:75px;font-size:8px}.gradebook-points{width:auto;margin-left:auto;font-size:10px}.gradebook-row .score-chip{min-width:62px;font-size:11px;padding:6px 8px}.gradebook-arrow{display:none}.gradebook-count{padding:10px 17px}.course-footer{padding:17px;line-height:1.8}.course-title-row p{font-size:10px;line-height:1.8}}
.published-grade.score-gold,.course-overall.score-gold{background:linear-gradient(120deg,#fff8de,#f3d88c,#fff6d5);box-shadow:0 3px 13px #c99b2c14;border-color:#e5c56e}
.course-dialog>.close{position:sticky;float:right;top:10px;right:10px;margin:8px 10px -38px 0;background:#fff;box-shadow:0 1px 5px #3f255711;z-index:3}.course-dialog .gradebook-toolbar{padding-right:52px}
.grades-intro{padding:24px;border-top:1px solid var(--line);background:#faf9fc}.grades-intro h2{font-size:22px;margin:12px 0}.grades-intro>p:last-child{font-size:11px;color:#a29aaa;line-height:1.8}.class-progress-line{display:flex;flex-wrap:wrap;gap:10px 15px;align-items:center;margin-top:15px;color:#a8a1af;font-size:10px}.class-progress-line>button{color:#937bb5;font-size:10px;margin-left:auto;padding:0}.gpa-class-settings{font-size:9px;color:#aaa1b4;margin-top:15px}.gpa-class-settings summary{cursor:pointer}.gpa-calculator-expand{border-top:1px solid var(--line)}.gpa-calculator-expand>summary{padding:19px 24px;color:#8a78a4;font-size:13px;font-weight:550;cursor:pointer;list-style-position:inside}.gpa-calculator-expand>summary span{float:right;color:#aaa0b6;font-size:10px;font-weight:400;line-height:1.8}.grade-drivers{padding:23px 30px;border-bottom:1px solid var(--line);background:#fdfcfe}.grade-drivers h3{font-size:17px;letter-spacing:-.5px;font-weight:550}.grade-drivers h4{font-size:12px;font-weight:550;margin:22px 0 9px;color:#8d7b9d}.grade-drivers>p{font-size:10px;line-height:1.8;color:#a59aad;margin-top:10px}.driver-categories{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px}.driver-category{display:flex;flex-wrap:wrap;justify-content:space-between;gap:9px;background:var(--score-bg);border:1px solid var(--score-border);padding:13px;border-radius:9px;color:var(--score)}.driver-category>strong{font-size:11px;font-weight:550}.driver-category>span{font-size:13px;font-weight:600}.driver-category>small{flex-basis:100%;font-size:9px;opacity:.75}.driver-gap{width:100%;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:13px 0;text-align:left;border-bottom:1px solid #f0ecf3}.driver-gap:hover strong{color:#8f76ae}.driver-gap strong{display:block;font-size:11px;font-weight:500;line-height:1.7;color:#81768c}.driver-gap small{display:block;font-size:9px;color:#b2a6bb;margin-top:4px}.driver-gap>b{font-size:10px;color:#a67b98;white-space:nowrap;font-weight:550}.driver-clear{font-size:11px;color:#a18a5e;padding:15px 0}@media(max-width:700px){.class-progress-line{font-size:9px;gap:10px}.class-progress-line>button{margin-left:0;flex-basis:100%;text-align:left;margin-top:4px}.gpa-calculator-expand>summary span{float:none;display:block;margin:8px 0 0 13px}.grade-drivers{padding:22px 20px}.driver-categories{grid-template-columns:1fr}.driver-gap>b{white-space:normal;text-align:right;font-size:9px;min-width:70px}.grade-drivers h3{font-size:16px}}
.saved-connection{margin:18px 0;padding:18px;border-radius:10px;background:#edf6ef;border:1px solid #d3e5d7;color:#7a9b80}.saved-connection strong{display:block;font-size:13px;font-weight:550}.saved-connection p{font-size:11px;line-height:1.8;margin:10px 0;color:#90a995}.saved-connection button{font-size:10px;margin-top:4px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.assistant-panel{max-width:1080px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden;box-shadow:var(--shadow)}.assistant-heading{display:flex;align-items:center;justify-content:space-between;padding:25px 28px;border-bottom:1px solid var(--line);gap:15px;background:linear-gradient(120deg,#faf8fe,#f7faf5)}.assistant-heading-copy{display:flex;gap:17px;align-items:center}.assistant-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#eee8f8;color:#aa94ca;font-size:29px;flex-shrink:0}.assistant-heading .eyebrow{font-size:8px;letter-spacing:1.3px}.assistant-heading h2{margin:9px 0 6px;font-size:25px}.assistant-heading p:last-child{font-size:11px;color:#a49aaa;line-height:1.7}.assistant-context{display:flex;gap:10px;align-items:center;padding:13px 28px;border-bottom:1px solid var(--line);background:#fcfbfd}.assistant-context label{font-size:10px;color:#a59baf;white-space:nowrap}.assistant-context select{width:auto;min-width:180px;max-width:300px;padding:7px 9px;font-size:10px;color:#9582ac;background:white;border-color:#e9e3f0}.assistant-context>span{font-size:9px;color:#aaa1b3;margin-left:auto}.assistant-messages{min-height:330px;max-height:520px;overflow-y:auto;padding:25px 30px;scroll-behavior:smooth}.assistant-welcome{padding:12px 10px 25px;text-align:center;max-width:610px;margin:auto}.assistant-welcome-mark{font-size:46px;color:#c8b5df;margin:8px auto 16px}.assistant-welcome h3{font-size:24px;font-weight:500;letter-spacing:-.8px;color:#887393}.assistant-welcome p{font-size:12px;line-height:1.9;color:#b0a4b8;margin:14px auto 23px;max-width:380px}.assistant-prompts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.assistant-prompt{display:flex;align-items:center;justify-content:space-between;gap:15px;text-align:left;border:1px solid #e9e2f0;background:#fdfcfe;padding:15px;border-radius:9px;font-size:11px;color:#9d8aa9;line-height:1.8}.assistant-prompt:hover{background:#f6f1fb;border-color:#d7c5e6;transform:translateY(-1px)}.assistant-prompt>span{color:#bba9cb;font-size:15px}.assistant-composer{padding:17px 24px 19px;border-top:1px solid var(--line);background:#fcfbfe}.assistant-composer textarea{width:100%;resize:vertical;min-height:65px;max-height:180px;border:1px solid #e6dff0;border-radius:10px;padding:13px 15px;font:inherit;font-size:12px;line-height:1.8;color:#7b6a8d;background:#fff;outline-offset:3px}.assistant-composer textarea::placeholder{color:#bbb0c6}.composer-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:10px}.composer-bottom>span{font-size:9px;color:#b0a4bb;line-height:1.8}.composer-bottom .primary{padding:9px 18px;font-size:11px;margin:0;flex-shrink:0}.assistant-error{margin:0 24px 14px;padding:12px 15px;border-radius:8px;border:1px solid #edcfd3;background:#fff5f6;color:#bc8c94;font-size:11px;line-height:1.8}.chat-message{display:flex;gap:12px;margin:7px 0 26px;align-items:flex-start}.chat-avatar{width:30px;height:30px;border-radius:9px;background:#f0eaf7;color:#ae95c4;font-size:21px;display:grid;place-items:center;flex-shrink:0}.chat-user .chat-avatar{background:#edf3ed;color:#97a391;font-size:9px}.chat-body{min-width:0;max-width:860px;flex:1}.chat-author{display:block;font-size:10px;font-weight:550;color:#ab99ba;margin:5px 0 10px}.chat-copy{font-size:12px;line-height:1.95;color:#8f809d;white-space:pre-wrap;overflow-wrap:anywhere}.chat-copy strong{font-weight:600;color:#7d698f}.chat-user .chat-copy{background:#f6f8f3;border:1px solid #eaf0e4;color:#8e9a85;border-radius:10px;padding:12px 15px;display:inline-block;max-width:100%}.assistant-sources{margin-top:13px;border-top:1px solid #f0eaf5;padding-top:10px;color:#b5a6bf;font-size:9px}.assistant-sources summary{cursor:pointer}.assistant-sources a{display:inline-block;color:#a894bb;text-decoration:none;padding:6px 9px;margin:8px 5px 0 0;border:1px solid #ede6f4;border-radius:5px;background:#fcfaff;line-height:1.8}.assistant-thinking{display:flex;align-items:center;gap:5px;padding:6px 0 12px}.assistant-thinking>span{width:5px;height:5px;border-radius:50%;background:#c4afd9;animation:assistantPulse 1.3s infinite}.assistant-thinking>span:nth-child(2){animation-delay:.15s}.assistant-thinking>span:nth-child(3){animation-delay:.3s}.assistant-thinking small{font-size:10px;color:#c1b4cc;margin-left:8px}@keyframes assistantPulse{0%,70%,100%{opacity:.35;transform:translateY(0)}35%{opacity:1;transform:translateY(-4px)}}@media(max-width:700px){.assistant-heading{padding:22px 17px;align-items:flex-start}.assistant-heading-copy{gap:12px}.assistant-mark{width:38px;height:38px;font-size:25px}.assistant-heading h2{font-size:22px}.assistant-heading .eyebrow{font-size:7px;letter-spacing:.9px}.assistant-heading .small{font-size:9px;white-space:nowrap}.assistant-heading p:last-child{font-size:10px}.assistant-context{padding:12px 17px;flex-wrap:wrap}.assistant-context select{max-width:calc(100% - 65px);min-width:0;flex:1}.assistant-context>span{flex-basis:100%;margin:0;font-size:8px}.assistant-messages{padding:20px 17px;min-height:300px;max-height:500px}.assistant-welcome{padding:5px 0 15px}.assistant-welcome h3{font-size:22px}.assistant-welcome p{font-size:11px}.assistant-prompts{grid-template-columns:1fr}.assistant-prompt{padding:11px 13px;font-size:10px}.assistant-composer{padding:15px}.composer-bottom>span{font-size:8px}.chat-message{gap:9px}.chat-copy{font-size:11px}.assistant-thinking small{font-size:9px}.assistant-thinking{flex-wrap:wrap}.assistant-error{margin:0 15px 12px}.chat-avatar{width:25px;height:25px;font-size:18px}}
