:root{--net-blue:#003262;--net-gold:#fdb515;--net-ink:#102a43;--net-muted:#66788a;--net-line:#d6dee6;--net-paper:#f3f6f8;--net-card:#fff;--net-green:#18745c;--net-red:#a64242}
.formal-site:has(.net-course){background:linear-gradient(180deg,#edf3f8,#f7f8fa 30rem,#f1eee7)}
.formal-site:has(.net-course)>.container-fluid{max-width:1600px;padding-inline:clamp(1rem,3vw,3.5rem)}
.net-course{color:var(--net-ink);padding:2rem 0 5rem}.net-course *{box-sizing:border-box}
.net-hero{display:grid;grid-template-columns:1.5fr .65fr;gap:4rem;align-items:end;min-height:390px;padding:clamp(2rem,5vw,5rem);color:white;background:linear-gradient(120deg,#003262,#0b2947);border-top:5px solid var(--net-gold)}
.net-kicker,.net-section>header p{margin:0 0 .8rem;color:var(--net-gold);font-weight:700;letter-spacing:.17em;font-size:.75rem}
.net-hero h1{margin:0;font-size:clamp(3.5rem,7vw,7rem);line-height:.9;letter-spacing:-.06em}.net-hero>div>p:not(.net-kicker){max-width:760px;margin:2rem 0 0;color:#d9e5ef;line-height:1.8;font-size:1.05rem}
.net-links{display:flex;gap:.7rem;margin-top:1.6rem}.net-links a{padding:.7rem 1rem;color:white;border:1px solid #7990a5;text-decoration:none}.net-links a:hover{color:var(--net-blue);background:var(--net-gold)}
.net-progress{padding:1.5rem;border:1px solid #60788f;background:#ffffff10}.net-progress>span{color:#afc0cf;font-size:.7rem;letter-spacing:.12em}.net-progress>strong{display:block;margin:.35rem 0 1rem;font-size:1.15rem}.net-progress>div{height:7px;background:#ffffff22}.net-progress>div i{display:block;width:0;height:100%;background:var(--net-gold);transition:.3s}.net-progress dl{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem;margin:1.2rem 0;color:#d6e0e8}.net-progress dt{color:#91a7ba}.net-progress dd{margin:0}.net-progress button{padding:0;color:#d6e0e8;background:none;border:0;text-decoration:underline;cursor:pointer}
.net-section{margin-top:clamp(3.5rem,7vw,7rem)}.net-section>header h2{margin:0;font-size:clamp(2rem,4vw,4rem);letter-spacing:-.04em}.net-section>header p{color:var(--net-blue)}
.net-routine{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem}.net-routine article{background:var(--net-card);border:1px solid var(--net-line);box-shadow:0 14px 35px #102a4314}.net-routine article>div{padding:1.25rem;background:var(--net-blue);color:white}.net-routine article>div span{color:var(--net-gold);font-size:.7rem;letter-spacing:.15em}.net-routine h3{margin:.2rem 0 0;font-size:1.5rem}.net-routine ol{list-style:none;margin:0;padding:0}.net-routine li{display:grid;grid-template-columns:110px 1fr;gap:1rem;padding:.85rem 1.1rem;border-top:1px solid var(--net-line)}.net-routine time{color:var(--net-muted);font-size:.78rem}
.net-resources{display:grid;grid-template-columns:repeat(5,1fr);margin-top:1.5rem;border-top:3px solid var(--net-blue);border-left:1px solid var(--net-line)}.net-resources a{position:relative;display:grid;min-height:150px;padding:1.1rem;color:var(--net-ink);background:var(--net-card);border-right:1px solid var(--net-line);border-bottom:1px solid var(--net-line);text-decoration:none}.net-resources span{color:#1c5d99;font-size:.7rem}.net-resources strong{margin-top:1.5rem}.net-resources small{margin-top:.4rem;color:var(--net-muted)}.net-resources i{position:absolute;right:1rem;top:1rem;color:var(--net-gold)}
.net-notice{margin:1.4rem 0 0;padding:1rem 1.2rem;background:#fff4d6;border-left:4px solid var(--net-gold)}.net-week-nav{display:grid;grid-template-columns:repeat(16,1fr);margin-top:1rem}.net-week-nav a{padding:.7rem .25rem;text-align:center;color:var(--net-blue);background:var(--net-card);border:1px solid var(--net-line);border-right:0;text-decoration:none}.net-week-nav a:last-child{border-right:1px solid var(--net-line)}
.net-table-wrap{overflow:auto;background:var(--net-card);box-shadow:0 18px 45px #102a4314}.net-table{width:100%;min-width:1280px;border-collapse:collapse}.net-table th,.net-table td{padding:1rem;vertical-align:top;border:1px solid var(--net-line)}.net-table thead th{color:white;background:var(--net-blue);text-align:left;font-size:.75rem;letter-spacing:.08em}.net-table thead th:nth-child(1){width:13%}.net-table thead th:nth-child(2){width:25%}.net-table thead th:nth-child(3){width:16%}.net-table thead th:nth-child(4){width:15%}.net-table thead th:nth-child(5){width:26%}.net-table thead th:nth-child(6){width:5%}
.net-table tbody>tr>th{background:#edf4f8}.net-table tbody>tr>th span,.net-table tbody>tr>th small{display:block;color:#1c5d99}.net-table tbody>tr>th strong{display:block;margin:.45rem 0}.net-table tbody>tr>th small{color:var(--net-muted)}.net-lecture{padding:.3rem 0;font-weight:700}.net-source{display:inline-block;margin-top:.6rem;color:#1c5d99;font-size:.75rem}.net-task{display:grid;gap:.3rem;padding:.65rem;border-radius:3px}.net-task b{font-size:.72rem}.net-task small{opacity:.75}.net-task.is-discussion{color:#174d70;background:#e6f1f7;border:1px solid #bdd5e4;text-decoration:none}.net-task.is-homework{color:#215e4c;background:#e2f2eb;border:1px solid #b6d8ca}.net-task.is-project{color:#793838;background:#f8e6e3;border:1px solid #e0b9b3}.net-checkpoint td{padding:.7rem 1rem!important;color:white;background:#102a43}.net-checkpoint b{margin-right:1rem;color:var(--net-gold);text-transform:uppercase;font-size:.72rem;letter-spacing:.08em}
.net-check{display:grid;place-items:center}.net-check input{position:absolute;opacity:0}.net-check span{display:grid;place-items:center;width:30px;height:30px;color:transparent;border:2px solid #aebbc7;border-radius:50%;cursor:pointer}.net-check input:checked+span{color:white;background:var(--net-green);border-color:var(--net-green)}.net-table tr.is-complete>td,.net-table tr.is-complete>th{background:#edf8f4}
html[data-theme=dark] .formal-site:has(.net-course){background:#101820}html[data-theme=dark] .net-course{--net-ink:#edf2f6;--net-muted:#a9b6c1;--net-line:#344452;--net-card:#182630;--net-paper:#101820}html[data-theme=dark] .net-notice{background:#332b19}html[data-theme=dark] .net-table tbody>tr>th{background:#20323f}html[data-theme=dark] .net-table tr.is-complete>td,html[data-theme=dark] .net-table tr.is-complete>th{background:#17352d}
@media(max-width:1000px){.net-hero{grid-template-columns:1fr}.net-routine{grid-template-columns:1fr}.net-resources{grid-template-columns:repeat(2,1fr)}.net-week-nav{grid-template-columns:repeat(8,1fr)}}@media(max-width:600px){.net-hero{padding:2rem 1.2rem}.net-hero h1{font-size:3.2rem}.net-resources{grid-template-columns:1fr}.net-week-nav{grid-template-columns:repeat(4,1fr)}}
