/* CS336-style course layout: the same typography and simple sections, with a Huaxi red accent.
   Bootstrap is replaced by a small local stylesheet; Roboto is self-hosted. */
@font-face{font-family:Roboto;font-style:normal;font-weight:100 900;font-display:swap;src:url('./fonts/roboto-latin.woff2') format('woff2')}
:root{--huaxi-red:#870025;--huaxi-red-dark:#6c001d;--huaxi-red-light:#f1dce2}
*{box-sizing:border-box}
html{scroll-padding-top:70px}
body{margin:0;padding-top:70px;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-weight:300;line-height:1.42857143;color:#333;background:#fff}
a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus-visible,button:focus-visible,.table-scroll:focus-visible{outline:2px solid #337ab7;outline-offset:3px}
p{margin:0 0 10px}strong,b{font-weight:700}h1,h2,h3{font-family:inherit;line-height:1.1;color:inherit;margin-top:20px;margin-bottom:10px}h1{font-size:30px;font-weight:300}h2{font-size:25px;font-weight:700;color:var(--huaxi-red)}h3{font-size:20px;font-weight:700}ul{margin-top:0;margin-bottom:10px;padding-left:40px}li{line-height:1.42857143}
.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.navbar{position:fixed;top:0;right:0;left:0;z-index:1000;min-height:50px;background:var(--huaxi-red);border-bottom:1px solid var(--huaxi-red-dark)}.navbar-inner{display:flex;align-items:center;min-height:50px}.navbar-brand{padding:15px 0;font-size:18px;font-weight:700;line-height:20px;color:#ecf0f1;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--huaxi-red-light);text-decoration:none}.nav-links{display:flex;justify-content:flex-end;gap:45px;list-style:none;padding:0;margin:0 0 0 auto}.nav-links a{display:block;padding:15px 0;line-height:20px;color:#ecf0f1}.nav-links a:hover,.nav-links a:focus{color:var(--huaxi-red-light);text-decoration:none}.nav-toggle{display:none}
#header{text-align:center;margin-top:20px;margin-bottom:30px}#header h1{margin-top:20px}.term-line{font-size:20px;font-weight:700;margin-top:10px;margin-bottom:10px}.sec{margin-bottom:10px;padding-top:10px;padding-bottom:10px}.sechighlight{background:#f7f6f1}.module-list li,.reading-list li{margin-top:5px}.schedule-notice{font-size:14px}.logistics+.schedule-notice{margin-top:12px}.table-scroll{width:100%;overflow-x:auto;overscroll-behavior-x:contain}.table{width:100%;max-width:100%;min-width:800px;margin-bottom:10px;border-spacing:0;border-collapse:collapse;background:transparent}.table th{text-align:left;font-weight:700}.table th,.table td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table thead th{vertical-align:bottom;border-bottom:2px solid #ddd;border-top:0;background:#f5f5f5}.col-number{width:5%}.col-week{width:12%}.col-date{width:19%}.col-description{width:35%}.col-materials{width:29%}.table tr:target{background:#f7f6f1}.table td:first-child,.table td:nth-child(2){font-variant-numeric:tabular-nums}.session-topic{display:block;font-size:14px;color:#666;margin-top:2px}.materials{display:flex;flex-wrap:wrap;gap:4px 10px}.material.pending{color:#6b6b6b;cursor:default}.date-tentative{color:var(--huaxi-red)}.tentative-label{display:block;color:var(--huaxi-red);font-size:14px}.materials-note{font-size:14px;color:#666}.mobile-table-hint{display:none}.site-footer{height:110px;padding-top:35px;text-align:center;font-size:14px;color:#666}.site-footer p{margin:0}.site-footer a{display:inline-block;margin-top:5px}.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}.skip-link{position:fixed;left:12px;top:-100px;z-index:1100;padding:8px 12px;background:#fff}.skip-link:focus{top:8px}
@media(min-width:768px){.container{width:750px}.nav-links{gap:24px}.navbar-brand{margin-right:35px}}
@media(min-width:992px){.container{width:970px}.nav-links{gap:36px}}
@media(min-width:1200px){.container{width:1170px}.nav-links{gap:48px}}
@media(max-width:767px){body{padding-top:0}.navbar{position:static}.navbar-inner{flex-wrap:wrap}.navbar-brand{margin-right:auto}.nav-links{width:100%;justify-content:space-between;gap:8px;flex-wrap:wrap}.nav-links a{font-size:14px;padding:10px 0}.js body{padding-top:70px}.js .navbar{position:fixed}.js .nav-toggle{display:block;margin:8px 0 8px 15px;padding:9px 10px;border:1px solid var(--huaxi-red-dark);border-radius:4px;background:transparent;cursor:pointer}.nav-toggle span{display:block;width:22px;height:2px;background:#ecf0f1}.nav-toggle span+span{margin-top:4px}.js .nav-links{display:none}.js .nav-links.is-open{display:block;width:100%;border-top:1px solid var(--huaxi-red-light);padding:8px 0}.js .nav-links a{padding:8px 0;font-size:16px}#header{margin-top:10px;margin-bottom:20px}#header h1{font-size:28px;line-height:1.2}.term-line{font-size:20px}.sec{padding-top:10px;padding-bottom:10px}.mobile-table-hint{display:block;font-size:14px;color:#666;margin-bottom:8px}.table{font-size:15px}h2{margin-top:20px}.site-footer{height:100px}}
@media print{body{padding-top:0;font-size:12px}.navbar,.skip-link,.mobile-table-hint,.site-footer a{display:none}.container{width:100%;padding:0}.table-scroll{overflow:visible}.table{min-width:0;font-size:11px}thead{display:table-header-group}tr{break-inside:avoid}.sechighlight{background:#fff}h2{color:#333}.sec{break-inside:avoid}#schedule{break-inside:auto}.site-footer{height:auto;padding-top:20px}}
/* Session readings use ordinary lists, as on the reference course site. */
.session-readings{padding-left:40px;margin-top:0;margin-bottom:20px}.session-readings li{margin-bottom:14px}.reading-citation{display:block;font-size:14px;margin-top:3px}.pdf-unavailable{font-size:14px;color:#666}.pdf-download{display:inline-block;margin-top:4px}.pdf-unavailable{display:block;margin-top:4px}
.session-core-topics{display:block;margin-top:5px;font-size:14px;color:#666}
