:root{--accent:#356bc4;--ink:#243149;--muted:#788aa3}body{background:#eef3fa}a{color:inherit;text-decoration:none}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #75a2e3;outline-offset:3px}button.navitem{border:0;background:transparent;text-align:left;width:100%}.demo-banner{padding:10px 20px;background:#e4ecf8;color:#5e7393;font-size:11px;text-align:center}.app{max-width:1400px;margin:20px auto;min-height:calc(100vh - 76px);height:auto;border-radius:18px;overflow:visible}.sidebar{border-radius:18px 0 0 18px;position:sticky;top:16px;align-self:flex-start;min-height:calc(100vh - 76px)}.brand{display:block}.main{padding-bottom:36px}.topbar{gap:14px}.content{min-width:0}.content h2{line-height:1.2}.menu .navitem:hover{background:#e8f0fc}.content:focus{outline:none}#menu-toggle{display:none;border:1px solid #d8e2f1;border-radius:7px;background:white;color:#5579a8;padding:6px 10px;font-size:18px}.outline,.primary{cursor:pointer;display:inline-flex;text-decoration:none;justify-content:center}.deadline button,.deadline>a{margin-left:auto}.deadline .datebox strong{color:#356bc4}.datebox{min-width:160px}.deadline .topicname{line-height:1.5}.deadline .type{line-height:1.5}.deadline .datebox small{white-space:nowrap}.navtabs{display:flex;gap:22px;border-bottom:1px solid #e0e7f1;padding:18px 0 13px;margin-bottom:23px;flex-wrap:wrap;font-size:13px;color:#8392a9}.navtabs a.active{color:#356bc4;font-weight:600}.month{margin-top:22px}.month>summary{cursor:pointer;font-size:17px;font-weight:600;padding:15px 0;color:#556e90}.lessoncard h3{line-height:1.4}.stages{margin-top:12px;border-top:1px solid #e7edf5}.stage{display:grid;grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:16px;padding:17px 0;border-bottom:1px solid #edf1f6;font-size:12px}.stage:last-child{border-bottom:0;padding-bottom:0}.stage .title{font-size:13px;font-weight:550;color:#647c9e}.stage .meta{font-size:11px;color:#8092a9;line-height:1.7}.due{color:#526884;display:block;font-weight:500}.due.today{display:inline-block;color:#356bc4;background:#edf4ff;border-radius:7px;padding:7px 10px;white-space:nowrap;margin-top:4px}.sectiontag{color:#9478b7;font-size:11px}.breadcrumbs{display:flex;gap:10px;align-items:center;font-size:12px;color:#6a86ac;margin-bottom:22px;flex-wrap:wrap}.files{margin-top:16px}.filerow{gap:14px}.filename{font-size:13px;color:#5d7495}.fileactions{gap:14px}.fileactions a{font-size:12px;color:#557fac}.fileactions .download{font-size:18px;padding:6px;line-height:1}.filemeta{line-height:1.5}.empty{font-size:13px;padding:25px;color:#7d90a9;line-height:1.7}.module{margin-top:20px;padding:23px}.module h3{font-size:17px;color:#617b9e;margin:0 0 12px}.module p{font-size:12px;color:#8192a9;line-height:1.7}.module .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}.module .due{font-size:12px}.forms{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.formitem{border:1px solid #e2e9f4;border-radius:10px;padding:18px}.formitem h4{font-size:14px;font-weight:550;color:#657d9c;margin:0 0 12px}.formitem p{font-size:11px;margin:0 0 14px}.profilelabel{color:#637c9e;line-height:1.7;font-size:13px}.profilelabel small{display:block;color:#8c9ab0;font-size:11px}.info{margin-top:22px;font-size:12px;line-height:1.8;color:#8091aa}.chip{display:inline-block;padding:5px 8px;background:#eee8f7;color:#8871aa;border-radius:5px;font-size:10px}.resultwrapper{overflow-x:auto}.resultrow,.resulthead{min-width:620px}.filters{margin:20px 0;display:flex;gap:8px;flex-wrap:wrap}.filters button{border:1px solid #e0e8f2;background:white;border-radius:7px;padding:8px 12px;font-size:12px;color:#8495ad}.filters button.active{background:#e8f0fd;color:#356bc4;border-color:#bad0ee}.profilecards{max-width:700px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#e0e7f2;border:1px solid #e0e7f2;border-radius:10px;overflow:hidden;margin-top:20px}.cal-head{font-size:11px;text-align:center;padding:12px;background:#f3f7fd;color:#8091aa}.cal-day{background:white;min-height:100px;padding:10px;font-size:11px;color:#8899b1;min-width:0}.cal-day.current{background:#f0f6ff}.cal-event{display:block;background:#f2edf9;color:#80629f;border-radius:5px;padding:7px;margin-top:6px;font-size:10px;line-height:1.5;overflow-wrap:anywhere}.cal-event.due-event{background:#e9f1ff;color:#356bc4}.schedule-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:22px}.schedule-heading h3{font-size:17px;margin:0;color:#607a9b}.schedule-heading button{padding:8px 13px}.summaryresult{margin-top:12px;font-size:12px;color:#7591b4}dialog{border:1px solid #d7e2f1;border-radius:15px;padding:25px;max-width:420px;width:calc(100% - 32px);color:#5b7294}dialog h2{font-size:19px;margin-top:0}dialog p{font-size:13px;line-height:1.8}dialog::backdrop{background:#22355255}@media(max-width:1100px){.app{margin:14px;min-height:calc(100vh - 68px)}.sidebar{flex-basis:180px;padding:24px 14px}.main{padding-left:24px;padding-right:24px}.deadline{flex-wrap:wrap;gap:12px}.deadline .topicname{font-size:13px}.datebox{min-width:150px}.stage{grid-template-columns:90px minmax(0,1fr);gap:10px}.stage>a{grid-column:2;justify-self:start}.due.today{font-size:10px}.resultwrapper{max-width:100%}}@media(max-width:700px){.demo-banner{font-size:10px;padding:8px 12px;line-height:1.6}.app{margin:0;border:0;min-height:calc(100vh - 47px);border-radius:0}.main{padding:0 18px 30px}.topbar{height:65px;font-size:10px}.topbar>span:last-child{margin-left:auto}.content{padding-top:24px}.content h2{font-size:26px;letter-spacing:-.8px}.subtitle{font-size:12px;line-height:1.6}#menu-toggle{display:block}.sidebar{display:none}.app.menu-open .sidebar{display:flex;position:fixed;inset:47px auto 0 0;z-index:10;width:240px;min-height:0;height:calc(100dvh - 47px);box-shadow:12px 0 40px #23375233;border-radius:0}.deadline{padding:17px;display:grid;grid-template-columns:1fr}.deadline>a{margin-left:0;justify-self:start}.deadline .datebox{min-width:0}.lessoncard{padding:17px}.lessoncard h3{font-size:16px}.lessoncard .actions{flex-wrap:wrap}.lessoncard .actions small{margin-left:0}.blocktitle{font-size:15px;gap:8px}.textlink{font-size:11px}.stage{grid-template-columns:1fr;gap:7px}.stage>a{grid-column:1}.stage .title{font-size:13px}.due.today{font-size:10px;padding:7px 8px}.navtabs{gap:16px;font-size:12px}.forms{grid-template-columns:1fr}.filerow{padding:16px;align-items:flex-start;flex-wrap:wrap}.filerow .pdf{flex-shrink:0}.filerow>.fileinfo{flex:1;min-width:0}.fileactions{margin-left:48px;width:calc(100% - 48px)}.filename{overflow-wrap:anywhere}.profile .avatar{flex-shrink:0}.accountrow{padding:16px;gap:12px;flex-wrap:wrap}.profilecourses{flex-wrap:wrap}.calendar{min-width:700px}.calendarwrapper{overflow-x:auto;max-width:100%}.coursefooter{gap:15px;flex-wrap:wrap}.info{font-size:11px}.event{flex-wrap:wrap}.event .outline{margin-left:20px}.module{padding:18px}.profilelabel{font-size:12px}}

/* User correction 8793: lighter typography, separate status/date, preserve prior assignment layout. */
.content h2{font-weight:500}.lessoncard h3,.blocktitle,.month>summary,.filehead,.eventname,.accountname b,.score{font-weight:500}.primary,.outline,.navtabs a.active,.navitem.active,.stage .title,.topicname,.filename{font-weight:500}strong,b{font-weight:500}.stage .meta{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.stage .meta .due{margin:0}.assignmenthead{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;gap:16px}.assignmenthead h3{font-size:20px;font-weight:500;letter-spacing:-.5px;margin:0 0 8px}.assignmenthead p{font-size:12px;color:#8190a4;margin:0}.assignmenthead .badge{margin-top:4px}.documentrow{display:flex;align-items:center;gap:15px;padding:23px 20px}.documenticon{width:39px;height:46px;display:grid;place-items:center;border:1px solid #e2ddef;background:#f8f5fc;color:#9b80bb;border-radius:7px;font-size:9px;font-weight:500;flex-shrink:0}.documentrow .docname{font-size:14px;font-weight:500}.documentrow small{display:block;font-size:11px;color:#939daf;margin-top:6px}.documentrow button{margin-left:auto}.documentrow .outline{font-size:12px;padding:12px 14px}.stepsbox{margin:22px 0 20px;padding:20px;border:1px solid #e5eaf3;border-radius:12px;background:#fff}.stepsbox h3{font-size:14px;font-weight:500;margin:0 0 16px}.stepinstruction{display:flex;align-items:center;gap:11px;font-size:12px;color:#7b8a9f;margin-bottom:13px}.stepinstruction:last-child{margin-bottom:0}.stepinstruction .num{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#f0f4fa;color:#869bb8;font-size:10px;flex-shrink:0}.submitbox{padding:20px;border-radius:12px;background:#eef4fc;display:flex;align-items:center;justify-content:space-between;gap:18px}.submitbox h3{font-size:14px;font-weight:500;margin:0 0 7px}.submitbox p{font-size:11px;color:#8192aa;line-height:1.6;margin:0;max-width:395px}.submitbox .primary{font-size:12px;padding:13px 15px}.statusline{margin-top:21px;padding-top:17px;border-top:1px solid #e4eaf3;color:#94a0b2;font-size:11px;line-height:1.7}.statusline b{font-weight:500;color:#7d8ca3}.theorylink{display:flex;align-items:center;justify-content:space-between;margin-top:26px;padding:17px 0;border-top:1px solid #e5eaf3;font-size:12px;color:#7f90a6;gap:12px}@media(max-width:1100px){.documentrow,.submitbox{flex-wrap:wrap}.documentrow button{margin-left:54px}}@media(max-width:700px){.documentrow{padding:18px;gap:12px}.documentrow button{margin-left:51px}.submitbox{align-items:flex-start;flex-direction:column}.theorylink{flex-wrap:wrap}.stepinstruction{align-items:flex-start;line-height:1.6}}
/* One typography scale: body 400, labels/headings 500. The logo is a graphic exception. */
.subject,.profile,.profile b,.deadline .datebox strong,.deadline .topicname,.navitem.active,.lessoncard .top,.sectionlabel,.sectionTitle,.lessonrow.current,.accountname b,.resultrow .topic,.metric b,.event .eventtype strong,.filehead,.assignmenthead h3,.stepsbox h3,.submitbox h3,.statusline b,.documentrow .docname,.documenticon,.coursepill,.theme .check{font-weight:500}
.pdf,.module h3,.formitem h4,.schedule-heading h3,.dayheading,.event .eventname{font-weight:500}

/* 8807: consistent content width, neutral month labels, separate result kinds. */
.profilecards{max-width:none;width:100%}.resultrow .topic small,.month>summary,.schedule-heading h3{color:#8a96a6}.subject{font-family:inherit;width:100%;color:inherit;cursor:pointer}.society .subject{background:#e5f0ff;border-color:#cfe1fa;color:#4477aa}.society .dot{background:#93bce8}.society .lessoncard .top,.society .chip{color:#6491be}.society .chip{background:#e8f2fd}.navtabs button{font:inherit;font-weight:500;border:0;background:none;color:#8a96a6;padding:0 0 13px;cursor:pointer}.navtabs button.active{color:#356bc4;border-bottom:2px solid #356bc4}#schedule-month{font:inherit;font-size:16px;color:#8a96a6;border:1px solid #e0e7f2;border-radius:8px;padding:9px;background:#fff}.schedule-heading{margin-bottom:18px}

.society .cal-event{background:#e8f2fd;color:#6491be}.society .event .marker{background:#93bce8}

/* 8810: neutral selector; blue society section marker. */
.society .subject{background:#fff;border-color:#e0e7f1;color:inherit}.society .lessoncard .top .dot{background:#72a6df}.stage .meta{min-height:16px}

/* 8813: material colours and equal theory/deadline typography. */
.section-materials .pdf{background:#faf8fd;color:#9a82b7;border-color:#e4ddef}.society .section-materials .pdf{background:#eef5fd;color:#6491be;border-color:#d0e2f5}.society .section-materials .plus{background:#e8f2fd;color:#6491be}.extra-materials .pdf{background:#f4f5f7;border-color:#e0e3e8;color:#8b929c}.stage .meta>.due:not(.today){font-size:11px;font-weight:500;color:#526884;line-height:1.7}.society .documenticon{background:#eef5fd;color:#6491be;border-color:#d0e2f5}
/* 8816: keep result status pills compact inside grid cells. */
.resultrow .badge{justify-self:start;width:fit-content}

/* 8819: lighter spacing for emphasized text; concise lesson context. */
.deadline .datebox strong{font-weight:550;letter-spacing:.15px}
.content h2{letter-spacing:-.5px}.lessoncard h3,.assignmenthead h3{letter-spacing:0}
.blocktitle,.topicname,.filename,.stage .title,.lessoncard .top,.chip,.coursepill,.score,.resultrow .topic,.filehead,.module h3,.formitem h4,.stepsbox h3,.submitbox h3,.docname,.primary,.outline,.navtabs .active,.profile,.subject,strong,b{letter-spacing:.1px}
.lesson-context{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}.lesson-context .chip{margin:0}.lesson-month{font-size:11px;font-weight:400;color:#8a96a6}
/* 8822: month chip adjacent to the section chip, not at the far edge. */
.lesson-context{justify-content:flex-start;gap:10px}.lesson-month{display:inline-flex;align-items:center;border:1px solid #e0e5ed;border-radius:5px;padding:6px 10px;font-size:11px;line-height:1.2;color:#8a96a6;background:#fbfcfe;white-space:nowrap}
/* 8825: equal height for section and month chips (22px). */
.lesson-context .chip{line-height:12px}.lesson-context .lesson-month{font-size:10px;line-height:12px;padding:4px 8px}
/* 8840: equal 5px spacing between both deadline text pairs. */
.deadline .datebox,.deadline>div:nth-child(2){display:flex;flex-direction:column;gap:5px}.deadline .datebox strong,.deadline .datebox small,.deadline .topicname,.deadline .type{display:block;margin:0;line-height:1.5}

/* 8846: compact test deadline and optional tests in the common list. */
.assignmenthead .due{font-size:14px;line-height:1.5}.forms .formitem h4{color:#243149}.optional-label{display:block;font-size:10px;line-height:1.5;font-weight:400;color:#8792a2;margin-top:6px;letter-spacing:0}.forms .optional-test{background:#f8f9fb;border-style:dashed;border-color:#dce2eb}
@media(max-width:700px){.assignmenthead .due.today{font-size:11px;padding:7px 8px}}

/* 8855: browser-saved program month preference. */
.month-preference{margin-top:12px}#month-mode{font:inherit;font-size:12px;color:#526884;border:1px solid #dce5f1;background:#fff;border-radius:8px;padding:10px 12px;max-width:100%}
/* 8864: compact deadline size for tests, including urgent history pill. */
.assignmenthead .due{font-size:12px;line-height:1.5}@media(max-width:700px){.assignmenthead .due.today{font-size:11px}}
/* 8867: individual test cards only, without an outer frame. */
.test-list{margin:16px 0}.test-list .forms{margin-top:0}
/* 8870: white fill for all individual test cards, optional included. */
.test-list .formitem{background:#fff}
/* 8873: test label left, form action right. */
.test-list .formitem{display:flex;align-items:center;justify-content:space-between;gap:14px}.test-info{min-width:0}.test-list .formitem h4{margin:0 0 8px}.test-list .formitem p{margin:0}.test-list .formitem .outline{flex-shrink:0}.optional-label{white-space:normal}@media(max-width:700px){.test-list .formitem{padding:16px;gap:10px}.test-list .formitem .outline{font-size:10px;padding:9px 10px}}
/* 8876: subtle optional-test tint, distinct from white required cards. */
.test-list .formitem.optional-test{background:#f1f5fa}
/* 8879: optional card uses the same solid outline style. */
.test-list .formitem.optional-test{border-style:solid}

/* 8882: shared assignment-based typography and geometry for test/part cards. */
.assignmenthead h3{margin:0 0 8px;line-height:1.3}.assignmenthead .due{font-size:12px;font-weight:400;line-height:1.5;color:#8190a4;margin:0}.assignmenthead .due.today{color:#356bc4;font-weight:500;padding:6px 8px}
.test-list .formitem.workcard,.documentrow.workcard{min-height:92px;padding:23px 20px;gap:15px;align-items:center}
.test-list .workcard h4,.workcard .docname{font-size:14px;font-weight:500;color:#243149;line-height:1.4;letter-spacing:.1px;margin:0}
.test-list .workcard .test-info>p,.workcard small{font-size:11px;font-weight:400;color:#939daf;line-height:1.5;margin:6px 0 0}
.test-list .workcard .outline,.documentrow.workcard .outline{font-size:12px;font-weight:500;padding:12px 14px;line-height:1.2;letter-spacing:.1px}
.stepsbox h3{font-size:14px;line-height:1.4;font-weight:500;margin:0 0 16px}
@media(max-width:700px){.test-list .formitem.workcard,.documentrow.workcard{padding:18px;gap:12px}.assignmenthead .due.today{font-size:11px}.test-list .workcard .outline,.documentrow.workcard .outline{font-size:11px;padding:10px 12px}}
/* 8885: include the second-part panel's outer 1px borders in test card height. */
.test-list .formitem.workcard{min-height:94px}
.test-list .forms{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
