/* Shared course page styles: every canvas/<course>/course.html loads this, then course-site.css.
   One file for every course. Do not put a <style> block in a course page. */
:root{--ink:#26221f;--muted:#6d635f;--plum:#7a5080;--sage-text:#456546;--lav:#f7f4f8;--lav-line:#d9c9e0}
 *{box-sizing:border-box;margin:0;padding:0}
 body{font-family:'Open Sans',Arial,sans-serif;color:#26221f;line-height:1.6;background:#fff}
 h1,h2,h3,.mnum,.ltitle{font-family:'Montserrat',Arial,sans-serif}
 .site-head{max-width:1000px;margin:0 auto;padding:1.4rem 1.5rem 0;background:#fff;font-family:'DM Sans',Arial,sans-serif}
 .site-bar{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;border-bottom:1px solid #d9c9e0}
 .site-nav{display:flex;align-items:center;gap:1.1rem}
 .site-nav a{font-size:0.9rem;font-weight:500;letter-spacing:.02em;line-height:1.1;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent;padding-bottom:.05rem}
 main{max-width:1000px;margin:0 auto;padding:22px 1.5rem 40px}
.tabs{border-bottom:1px solid var(--lav-line,#d9c9e0);margin:1.6rem 0 1.7rem;display:flex;flex-wrap:wrap;gap:.35rem 1.4rem}
.tabs a.tab{border-bottom:2px solid transparent;font-family:'DM Sans',sans-serif;font-size:0.9rem;font-weight:500;letter-spacing:.02em;color:var(--muted,#6d635f);padding:0 0 .05rem;margin-bottom:-1px;text-decoration:none;line-height:1.1}
.tabs a.tab:hover{color:var(--plum,#7a5080);border-bottom-color:var(--plum,#7a5080)}
.tabs a.tab[aria-current="page"]{color:var(--plum,#7a5080);border-bottom-color:var(--plum,#7a5080);font-weight:500}
 .banner{background:#7a5080;color:#fff;padding:24px 28px;border-radius:8px;margin-bottom:22px}
 .banner h1{font-size:30px;font-weight:700;color:#fff;margin:0}
 .banner p{font-size:14px;margin-top:8px;color:#e7dced;font-weight:600;letter-spacing:.03em}
 .timebox{background:#f7f4f8;border-left:5px solid #7a5080;padding:14px 18px;border-radius:0 6px 6px 0;margin-bottom:16px;font-size:15px}
 .timebox p{margin:0 0 8px;font-size:14.6px}.timebox p:last-child{margin:0}
 .timebox b{color:#7a5080;font-family:'Montserrat',Arial,sans-serif}
 .aibox{border:1px solid #d9c9e0;border-radius:7px;padding:16px 20px;margin:0 0 22px;background:#fff}
 .aibox h2{font-size:17px;color:#7a5080;margin:0 0 8px}
 .aibox p,.aibox li{font-size:14.4px;line-height:1.55}
 .aibox p{margin:8px 0}
 .aibox ul{margin:6px 0 10px 20px}
 .aibox blockquote{border-left:3px solid #d9c9e0;padding:4px 12px;margin:8px 0;color:#4a4152;font-size:14px}
 h2.sec{font-size:0.95rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--sage-text);font-weight:700;margin:1.9rem 0 0.6rem}
 .tw{overflow-x:auto;margin:8px 0 14px}
 table{border-collapse:collapse;width:100%;font-size:16px}
 th,td{text-align:left;padding:7px 9px;border-bottom:1px solid #e5dbe8;vertical-align:top}
 th{font-family:'DM Sans',sans-serif;font-size:15px;letter-spacing:.01em;color:#3d3833;background:#f7f4f8}
 details.lesson{border:1px solid #d9c9e0;border-radius:7px;margin:0 0 12px;overflow:hidden}
 details.lesson>summary{list-style:none;cursor:pointer;background:#7a5080;color:#fff;padding:13px 18px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
 details.lesson>summary::-webkit-details-marker{display:none}
 details.lesson>summary::before{content:"\25B8";content:"\25B8" / "";color:#f3edf5;margin-right:6px}
 details.lesson[open]>summary::before{content:"\25BE";content:"\25BE" / ""}
 .mnum{font-weight:700;font-size:14px;letter-spacing:.04em;color:#f3edf5}
 .ltitle{font-weight:600;font-size:16px;color:#fff;flex:1}
 .mwk{font-size:14px;color:#f3edf5;font-weight:600}
 details.lesson>summary:focus-visible{outline:3px solid #26221f;outline-offset:-3px}
 .lbody{padding:16px 20px 20px}
 .lbody p{font-size:15px;line-height:1.62;margin:8px 0;color:#2c2630}
 .lbody h3.modsec{font-size:15.5px;color:#7a5080;margin:20px 0 7px;padding-bottom:4px;border-bottom:1px solid #ece2ee;font-weight:700}
 .lbody ul,.lbody ol{margin:8px 0 12px 20px}
 .lbody li{font-size:14.6px;line-height:1.58;margin:5px 0}
 .lbody ul.obj{list-style:none;margin-left:0}
 .lbody ul.obj li b{color:#7a5080;margin-right:4px}
 .lbody .el{border:1px solid #d9c9e0;border-left:4px solid #7a5080;border-radius:0 6px 6px 0;padding:10px 14px;margin:10px 0;font-size:14.6px;background:#faf7fb}
 .lbody .el>b:first-child{color:#7a5080;font-family:'Montserrat',Arial,sans-serif}
 .lbody .el p{font-size:14.4px;margin:6px 0}
 .lbody .el ol,.lbody .el ul{margin:6px 0 6px 20px}
 .lbody .el li{font-size:14.2px}
 .lbody a{color:#7a5080;font-weight:600;text-decoration:none}.lbody a:hover{text-decoration:underline}
 .aibox a{color:#7a5080;font-weight:600}
 .instrnote{border:1px dashed #6d635f;background:#f4f2f1;border-radius:6px;padding:10px 15px 6px;margin:22px 0 4px;font-size:14px;color:#3d3833;line-height:1.55}
 .instrnote p.inh{margin:0 0 4px;font-family:'Montserrat',Arial,sans-serif;font-weight:700;color:#3d3833;font-size:14px}
 .instrnote>ul{margin:0 0 8px 20px}
 .instrnote li{font-size:14px;margin:4px 0}
 [data-instr]{display:none}
 body.show-instr [data-instr]{display:block}
 .viewbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 18px;font-family:'DM Sans',sans-serif;font-size:15px;color:#26221f}
 .viewbar button{font:inherit;font-weight:600;border:2px solid #7a5080;background:#fff;color:#5f3d64;border-radius:6px;padding:6px 12px;cursor:pointer}
 .viewbar button[aria-pressed="true"]{background:#7a5080;color:#fff}
 caption{text-align:left;font-family:'Montserrat',Arial,sans-serif;font-weight:700;color:#7a5080;font-size:15px;padding:4px 0 6px}
 .lbody p.meas{font-size:14.4px;margin:2px 0 8px;color:#2c2630}
 .lbody .due{font-size:14.2px;background:#f7f4f8;border:2px solid #7a5080;border-radius:6px;padding:9px 13px}
 .lbody .dl{font-size:14px;border:2px solid #7a5080;border-radius:6px;padding:8px 12px;margin:10px 0 2px;background:#fff}
 .lbody .dl b{color:#7a5080}
 .lbody code,.aibox code{font-size:14px;background:#f2edf3;padding:1px 4px;border-radius:3px}
 .sitefoot{position:relative;text-align:left;margin:0 auto;padding:1.6rem 1.5rem 3rem;max-width:1000px;font-family:'DM Sans',sans-serif;font-size:0.875rem;color:#6d635f;line-height:1.7;background:#fff}
 .sitefoot::before{content:"";position:absolute;top:0;left:1.5rem;right:1.5rem;height:1px;background:var(--lav-line)}
 .sitefoot .foot-links{display:flex;flex-wrap:wrap;gap:1.4rem;margin-bottom:0.2rem}
 .sitefoot a{font-size:0.9rem;font-weight:500;letter-spacing:.02em;line-height:1.1;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent;padding-bottom:.05rem}
 .skip-link{position:absolute;left:-9999px;top:0;z-index:99;background:#fff;border:2px solid #7a5080;padding:.6rem 1rem;border-radius:0 0 6px 0}
 .skip-link:focus{left:0}
 :focus-visible{outline:3px solid #7a5080;outline-offset:2px}
 @media(max-width:520px){.banner h1{font-size:24px}.lbody{padding:14px 14px 18px}main{padding:18px 16px 32px}}
 a:link{color:var(--plum)}.site-name:link,.site-nav a:link,.foot-links a:link{color:var(--muted)}
 .site-name,.site-name:visited{font-size:0.9rem;font-weight:500;letter-spacing:.02em;line-height:1.1;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent;padding-bottom:.05rem}
 .site-name:hover,.site-nav a:hover,.foot-links a:hover{color:var(--plum);border-bottom-color:var(--plum);text-decoration:none}
 .lbody .el p.ih{margin:0 0 6px;font-size:14.6px}
 .lbody .el p.ih b{color:#7a5080;font-family:'Montserrat',Arial,sans-serif}
 .lbody ul.due{list-style:none;margin:8px 0 4px;background:#f7f4f8;border:2px solid #7a5080;border-radius:6px;padding:9px 13px}
 .lbody ul.due li{font-size:14.2px;margin:2px 0}
 th[scope=row]{width:150px;background:#f7f4f8}
 .aibox h2{font-size:17px}

/* Classes used by individual courses (merged 25 Oct 2026) */
@media(max-width:620px){.toc ul{columns:1}}
.instrnote>b:first-child{display:block;color:#7a5080;font-family:'Montserrat',Arial,sans-serif;letter-spacing:.02em;margin-bottom:4px}
.instrnote ul{margin:4px 0 0 18px}
.toc ul{list-style:none;margin:0 0 18px;padding:0;columns:2;column-gap:28px}
.toc li{font-size:15px;margin:0 0 6px;break-inside:avoid}
.toc a{color:#5f3d64;font-weight:600}
.mwk-t{color:#6d635f;font-size:14px}
.lbody h4{font-family:'Montserrat',Arial,sans-serif;font-size:15px;color:#5f3d64;margin:16px 0 6px}
.lbody table,.aibox table{font-size:15px}
.lbody p.dlh{margin:10px 0 2px;font-size:15px}
.foot-sup{margin-top:.5rem;font-size:14px}
.sitefoot .foot-sup a{font-size:14px}
table,.lbody table,.aibox table{font-size:15px}
.lbody h3,.aibox h3,main h3{font-family:'Montserrat',Arial,sans-serif;font-size:16px;text-transform:none;letter-spacing:0;color:#7a5080;margin:20px 0 7px;font-weight:700}
.lbody .el li,.lbody .due,.lbody ul.due li,.lbody .dl{font-size:15px}
.sitefoot,.foot-sup,.sitefoot .foot-sup a{font-size:14px}
.site-nav a,.site-name,.sitefoot a{font-size:15px}
.lbody .instrnote{border:1px solid #d9c9e0;border-left:4px solid #7a5080;background:#f7f4f8;border-radius:0 6px 6px 0;padding:11px 15px;margin:2px 0 16px;font-size:14px;color:#4a4152;line-height:1.55}
.lbody .instrnote>b:first-child{display:block;color:#7a5080;font-family:'Montserrat',Arial,sans-serif;letter-spacing:.02em;margin-bottom:4px}
.lbody .instrnote ul{margin:4px 0 0 18px}
.lbody .instrnote li{font-size:14px;margin:4px 0}
.lbody table{font-size:14.4px}
.sitefoot a,.site-nav a,.site-name{font-size:15px}
@media(max-width:520px){.wrap{padding:18px 16px 32px}}
@media(max-width:620px){.jump ul{columns:1}}
.wrap{max-width:1000px;margin:0 auto;padding:22px 30px 40px}
.resnote{border:1px solid #d9c9e0;border-left:4px solid #4e7a58;background:#f2f6f2;border-radius:0 6px 6px 0;padding:12px 16px;margin:0 0 22px;font-size:14px;color:#33402f}
.resnote b{color:#3a5c3f;font-family:'Montserrat',Arial,sans-serif}
ul.out{list-style:none;counter-reset:o;margin:0 0 14px}
ul.out li{position:relative;padding:8px 0 8px 34px;border-bottom:1px solid #efe8f0;font-size:14.6px}
ul.out li:before{content:"C"counter(o);counter-increment:o;position:absolute;left:0;top:8px;background:#7a5080;color:#fff;font:700 14px 'Montserrat';padding:3px 6px;border-radius:4px}
.lbody ol.obj{list-style:none;margin-left:0}
.lbody ol.obj li{padding-left:0}
.lbody .el b{color:#7a5080}
.lbody .el.inter{border-left-color:#4e7a58;background:#f2f6f2}
.lbody .el.sim{border-left-color:#5f3d64;background:#f7f4f8}
.lbody ul.oer{list-style:none;margin:8px 0;padding-left:0}
.lbody ul.oer li{font-size:14.3px;padding:6px 0;border-bottom:1px solid #efe8f0}
.lbody .chip{display:inline-block;font-size:14px;font-weight:700;padding:2px 6px;border-radius:3px;margin-left:6px;font-family:'DM Sans',sans-serif}
.lbody .chip.open{background:#eaf2ea;color:#3a5c3f}
.lbody .chip.link{background:#f7f4f8;color:#7a5080}
.lbody .chip.mine{background:#7a5080;color:#fff}
.lbody a,.after a{color:#7a5080;font-weight:600;text-decoration:none}
.lbody a:hover,.after a:hover{text-decoration:underline}
.instr{background:#f7f4f8;border:1px solid #d9c9e0;border-radius:6px;padding:11px 15px;margin:2px 0 16px;font-size:14px;color:#4a4152;line-height:1.55}
.instr h3{font-family:'Montserrat',Arial,sans-serif;font-size:14px;color:#4a4152;letter-spacing:.02em;margin:0 0 4px}
.instr ul{margin:4px 0 2px 18px}
.instr li{font-size:14px;margin:3px 0}
table.dt{width:100%;border-collapse:collapse;font-size:14px;line-height:1.45}
table.dt th{background:#f7f4f8;color:#7a5080;text-align:left;font-family:'Montserrat',Arial,sans-serif;font-size:14px;padding:7px 9px;border:1px solid #e3d7e7}
table.dt td{padding:7px 9px;border:1px solid #e3d7e7;vertical-align:top}
table.dt tbody th{background:#fff;color:#26221f;font-family:'Open Sans',Arial,sans-serif;font-size:14px;font-weight:600;vertical-align:top}
.due{border:2px solid #7a5080;border-radius:6px;padding:10px 14px;font-size:14.4px;margin:8px 0 4px}
.due b{color:#7a5080}
.after{margin-top:6px}
.after p{font-size:15px;margin:8px 0}
ul li::marker{color:var(--sage-text,#456546)}
.site-name[aria-current="page"],.site-name[aria-current="page"]:visited{color:var(--plum,#7a5080);border-bottom-color:var(--plum,#7a5080)}
.site-nav a[aria-current="page"],.site-nav a[aria-current="page"]:visited{color:var(--plum,#7a5080);border-bottom-color:var(--plum,#7a5080)}
.foot-links a,.foot-links a:visited{text-decoration:none;border-bottom:2px solid transparent;padding-bottom:.05rem}
.foot-links a[aria-current="page"],.foot-links a[aria-current="page"]:visited{color:var(--plum,#7a5080);border-bottom-color:var(--plum,#7a5080);text-decoration:none}
.lbody .chip.todo{background:#fff4e5;color:#6b4300;border:1px solid #d9b98c}
details.lesson>summary h2.ltitle{margin:0;font-size:1.08rem;font-weight:600;color:#fff;flex:1}
details.lesson>summary h2.ltitle .mnum{margin-right:8px}
.banner p,.timebox p,.instr,.instr li,.lbody li,table.dt,table.dt th,table.dt tbody th{font-size:15px}
table.dt caption{text-align:left;font-weight:600;color:#5f3d64;padding:2px 0 6px;font-size:15px}
.lbody a,.after a,.part a,.timebox a,.instr a,.jump a{color:#7a5080;font-weight:600;text-decoration:underline;text-underline-offset:2px}
.lbody h3,.part h3{font-family:'Montserrat',Arial,sans-serif;font-size:16px;color:#4a4152;margin:20px 0 7px;padding-bottom:4px;border-bottom:1px solid #ece2ee;font-weight:700}
.lbody h4,.part h4{font-family:'Montserrat',Arial,sans-serif;font-size:15.5px;color:#26221f;margin:4px 0 6px;font-weight:700}
.lbody .el h4{color:#5f3d64}
.lbody p.meta{font-weight:600;color:#4a4152;margin:0 0 6px}
.lbody p.measures{font-style:normal;border-left:3px solid #7a5080;padding-left:10px}
.small{font-size:14px;color:#4a4152}
.dl ul{margin:4px 0 0 18px}
.part{border:1px solid #d9c9e0;border-radius:7px;padding:0 20px 20px;margin:0 0 18px}
.part p,.part li{font-size:15px;line-height:1.62}
.part ul,.part ol{margin:8px 0 12px 20px}
h2.tbox{background:#7a5080;color:#fff;font-family:'Montserrat',Arial,sans-serif;font-size:22px;font-weight:700;margin:0 -20px 14px;padding:14px 20px;border-radius:6px 6px 0 0}
.jump{border:1px solid #d9c9e0;border-radius:7px;padding:12px 18px;margin:0 0 18px;background:#faf7fb}
.jump ul{list-style:none;margin:6px 0 0 0;padding:0;columns:2;column-gap:28px}
.jump li{font-size:15px;margin:3px 0;break-inside:avoid}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.instructor-zone{margin-top:36px;border-top:4px double #4a4152;padding-top:10px}
.instructor-zone h2{font-family:'Montserrat',Arial,sans-serif;font-size:20px;color:#26221f;margin:10px 0 6px}
.instructor-zone .instr{border-left:5px solid #4a4152}
.instructor-zone h3{font-family:'Montserrat',Arial,sans-serif;font-size:16px;color:#26221f;margin:16px 0 4px}
.instructor-zone h4{font-size:15px;margin:12px 0 4px}
