:root{--blue:#3269ae;--blue-dark:#224c80;--ink:#263346;--muted:#6d7580;--paper:#fff;--side:#f5f6fa;--line:#e6e9ef;--soft:#f8f9fb;--link:#234f85;--green:#2e735d;--gold:#795b21;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;color:var(--ink);background:var(--paper);font:15px/1.65 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}button,a,select,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #d39439;outline-offset:4px}button{color:inherit}h1,h2,h3,p{margin-top:0}h1{font:normal clamp(34px,3.2vw,49px)/1.16 var(--serif);letter-spacing:-1.1px;margin:16px 0 18px;color:var(--ink)}h1 em{font-style:normal;color:var(--blue)}h2{font:normal 27px/1.25 var(--serif);letter-spacing:-.35px}h3{font-size:16px;line-height:1.5;margin-bottom:7px}p{margin-bottom:13px}small{font-size:12px}.eyebrow,.nav-label{font-size:10px;letter-spacing:1.65px;font-weight:700;color:var(--muted)}.muted,.subtle{color:var(--muted)}.lead{font-size:16px;color:var(--muted);margin-bottom:0}.sidebar{position:fixed;width:246px;inset:0 auto 0 0;background:var(--side);border-right:1px solid var(--line);display:flex;flex-direction:column;overflow-y:auto;z-index:30}.brand{display:block;background:var(--blue);color:white;padding:23px 25px 22px}.brand:hover{text-decoration:none;background:var(--blue-dark)}.brand-code{font-weight:750;font-size:27px;letter-spacing:-.8px;display:flex;justify-content:space-between;align-items:center;line-height:1.1}.brand-mark{font-size:23px;font-weight:400;opacity:.6}.brand-sub{font-size:8px;letter-spacing:2.2px;display:block;margin-top:10px;opacity:.8}.semester{display:flex;align-items:center;gap:8px;padding:23px 25px 18px;font-size:12px;color:var(--muted)}.status-dot{display:inline-block;background:#4b8a75;width:6px;height:6px;border-radius:50%;flex-shrink:0}.semester-draft{margin-left:auto;font-size:8px;letter-spacing:.7px;border:1px solid var(--line);padding:1px 5px;border-radius:3px}.sidebar nav{padding:0 13px}.sidebar nav a{display:block;padding:8px 12px;font-size:13px;margin:2px 0;border-radius:4px}.sidebar nav a[aria-current=page]{background:#e5ecf6;font-weight:650;color:#224f86}.tool-nav{margin:23px 25px 0;border-top:1px solid var(--line);padding-top:18px}.tool-nav .nav-label{display:block;margin-bottom:10px;font-size:9px}.tool-nav a{display:flex;justify-content:space-between;margin:9px 0;font-size:13px}.tool-nav a span{color:#8492a4}.course-switch{display:block;margin:21px 24px;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.course-switch:hover{text-decoration:none}.course-switch strong{font-size:20px;display:flex;justify-content:space-between;line-height:1.6}.course-switch small{color:var(--muted);font-size:11px}.course-switch .nav-label{font-size:8px}.sidebar-bottom{margin-top:auto;padding:10px 25px 20px}.sidebar-bottom>a{display:block;font-size:11px;margin:7px 0}.theme-toggle{margin-top:13px;border:1px solid var(--line);border-radius:5px;background:var(--paper);padding:5px 12px;font-size:11px}.workspace{margin-left:246px}.topbar{height:71px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 45px;gap:20px}.search-open{border:0;background:transparent;display:flex;align-items:center;gap:11px;color:var(--muted);font-size:12px;padding:8px 0}.search-open>span{font-size:25px}.search-open kbd{border:1px solid var(--line);padding:0 6px;border-radius:3px;margin-left:38px;font-size:10px}.quick-links{display:flex;gap:27px;font-size:11px}.quick-links span{color:#9ba6b5;margin-left:4px}main{max-width:1210px;margin:auto;padding:43px 48px 0;min-height:90vh}.page-intro{max-width:860px}.course-meta{font-size:12px;display:flex;gap:14px;margin:20px 0 29px;color:var(--muted);flex-wrap:wrap}.meta-separator{color:#c6cbd3}.upcoming{position:relative;border:1px solid #dce5f0;background:linear-gradient(105deg,#f3f7fc,#fbfcfe);border-radius:6px;padding:19px 25px 23px;margin-top:28px}.upcoming-label{display:flex;align-items:center;gap:9px;color:#5b7495;font-size:9px;font-weight:700;letter-spacing:1.7px;margin-bottom:14px}.upcoming-main{display:flex;gap:26px;align-items:center}.event-date{font:normal 42px/1 var(--serif);border-right:1px solid #dbe3ed;padding-right:25px;min-width:110px;color:var(--blue-dark)}.event-date small{display:block;font:700 8px/1.7 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;letter-spacing:1px;margin-top:9px}.upcoming h2{font:650 17px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;margin-bottom:3px}.upcoming p{font-size:12px;margin-bottom:7px;color:var(--muted)}.upcoming a{font-size:11px;font-weight:650}.upcoming a span{margin-left:7px}.outline-label{position:absolute;right:21px;top:18px;border:1px solid #dbe3ed;color:#73849b;font-size:8px;letter-spacing:1px;padding:1px 7px;border-radius:3px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:31px 0 15px}.section-heading h2{margin:0;font-size:25px}.section-heading .eyebrow{font-size:8px}.announcement{display:flex;gap:23px;padding:21px 0 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.announcement-date{flex-shrink:0;color:#8b95a3;font-size:9px;letter-spacing:1.3px;border-right:1px solid var(--line);padding-right:23px;margin-top:3px;line-height:1.9}.announcement-date strong{font-size:14px;font-weight:500;letter-spacing:0}.announcement h3{font-size:14px;margin-bottom:6px}.announcement p{font-size:12px;max-width:730px;margin-bottom:5px}.announcement .subtle{font-size:11px}.schedule-title{margin-top:36px}.section-heading p{font-size:12px;color:var(--muted);margin:5px 0 0}.text-link{font-size:11px;white-space:nowrap}.schedule-controls{display:flex;align-items:center;gap:10px;font-size:11px;margin-bottom:22px}.schedule-controls select{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:4px;padding:5px 24px 5px 8px;font-size:11px}.schedule-controls>.muted{margin-left:auto;font-size:10px}.week{margin-bottom:27px;border:1px solid var(--line);border-radius:5px;overflow:hidden}.week-heading{padding:16px 20px;background:var(--soft);display:flex;justify-content:space-between;align-items:center;gap:14px}.week-heading .eyebrow{font-size:8px;color:var(--blue)}.week-heading h3{margin:2px 0 0;font:normal 21px/1.4 var(--serif)}.week-heading>.muted{font-size:11px;white-space:nowrap}.schedule-row{display:grid;grid-template-columns:96px 89px 1fr;gap:14px;align-items:start;padding:17px 20px;border-top:1px solid var(--line);font-size:12px}.schedule-row time{color:var(--muted);font-size:11px;line-height:1.9}.tag{display:inline-block;width:max-content;max-width:100%;font-size:8px;letter-spacing:.65px;font-weight:750;padding:3px 7px;border-radius:3px}.blue{color:#315f96;background:#e9f0fa}.gold{color:var(--gold);background:#f6efd9}.green{color:var(--green);background:#e6f2ec}.schedule-row small{display:block;margin-top:4px;font-size:10px;color:var(--muted)}.availability{font-size:10px;color:var(--muted);display:inline-block;margin-left:7px}.week-note{font-size:11px;padding:11px 20px;background:#fff8e9;color:#78551b;border-top:1px solid var(--line)}footer{border-top:1px solid var(--line);padding:25px 0 30px;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:10px;color:var(--muted);margin-top:50px}footer strong{font-size:12px;color:var(--ink);margin-right:13px}footer span{display:inline-block}.text-panel{margin:32px 0;padding-bottom:22px;border-bottom:1px solid var(--line)}.text-panel h2{font-size:25px}.text-panel p,.text-panel li{max-width:800px;font-size:14px}.text-panel h3{margin-top:22px}.notice{padding:16px 20px;background:var(--soft);border-left:3px solid var(--blue);font-size:13px;margin:28px 0;color:var(--muted)}.button-link{display:inline-block;border:1px solid var(--line);padding:9px 15px;border-radius:4px;font-size:12px}.rhythm{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.rhythm h3{margin:10px 0}.rhythm p{font-size:12px}.spaced li{margin:15px 0}.table-scroll{overflow:auto;margin:25px 0}table{border-collapse:collapse;width:100%;font-size:12px}caption{text-align:left;margin-bottom:15px;font:normal 23px var(--serif)}th,td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line)}th{background:var(--soft);font-weight:650;white-space:nowrap}.resource-list{margin-top:32px}.resource{display:flex;gap:23px;align-items:center;padding:25px 0;border-bottom:1px solid var(--line)}.resource:hover{text-decoration:none}.resource h2{font-size:23px;margin-bottom:7px}.resource p{margin:0;color:var(--muted);font-size:13px}.resource .availability{margin:8px 0 0}.resource-symbol{display:grid;place-items:center;width:54px;height:54px;flex-shrink:0;border:1px solid var(--line);border-radius:5px;background:var(--soft);color:var(--blue);font:normal 25px var(--serif)}.week-pagination{display:flex;justify-content:space-between;margin:35px 0;font-size:13px}.mobile-bar{display:none}.skip-link{position:fixed;top:-100px;left:20px;padding:10px;background:var(--paper);z-index:100}.skip-link:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}dialog{border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);width:min(600px,92vw);padding:25px;box-shadow:0 25px 80px #0003;max-height:80vh}dialog::backdrop{background:#16283f88;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center}.dialog-heading h2{font-size:23px;margin-bottom:15px}.search-close{border:0;background:transparent;padding:6px}#search-input{width:100%;padding:12px;border:1px solid var(--line);border-radius:4px;background:var(--soft);color:var(--ink)}#search-results{margin-top:14px;max-height:50vh;overflow:auto}#search-results a{display:block;padding:12px;border-bottom:1px solid var(--line)}#search-results a small{display:block;color:var(--muted);font-size:10px}#search-results p{font-size:13px;color:var(--muted);padding:12px}[data-theme=dark]{--ink:#e2e8f1;--muted:#a7b2c2;--paper:#161e2a;--side:#111926;--line:#303b4b;--soft:#1c2736;--link:#a3c8fb;--blue:#9fc2f3;--blue-dark:#d2e3fb}[data-theme=dark] .brand{background:#285b9b}[data-theme=dark] .sidebar nav a[aria-current=page]{background:#263b56;color:#c6ddfc}[data-theme=dark] .upcoming{background:#1d2b3e;border-color:var(--line)}[data-theme=dark] .upcoming-label{color:#b1c9e6}[data-theme=dark] .outline-label{color:#b1c9e6;border-color:#52637b}[data-theme=dark] .week-note{background:#332b1a;color:#edcf95}
@media(min-width:1600px){main{padding-top:55px}.topbar{padding-left:max(48px,calc((100vw - 246px - 1114px)/2))}}@media(max-width:1100px){.sidebar{width:218px}.workspace{margin-left:218px}main{padding:32px 28px 0}.topbar{padding:0 28px}.quick-links{gap:16px}.search-open kbd{margin-left:10px}.upcoming-main{gap:19px}.rhythm{gap:16px}.schedule-row{grid-template-columns:77px 83px 1fr;gap:10px}.availability{display:block;margin-left:0}}@media(max-width:760px){html{scroll-padding-top:76px}.mobile-bar{height:59px;display:flex;align-items:center;justify-content:space-between;background:var(--blue);padding:0 20px;color:#fff;position:sticky;top:0;z-index:40}.mobile-bar>a{color:#fff;font-size:21px;font-weight:750}.menu-toggle{background:transparent;border:1px solid #ffffff60;padding:3px 11px;border-radius:4px;font-size:12px;color:#fff}.sidebar{top:59px;transform:translateX(-100%);width:260px;box-shadow:10px 0 30px #0002;transition:transform .2s}.sidebar.is-open{transform:translateX(0)}.sidebar .brand{display:none}.workspace{margin-left:0}.topbar{height:59px;padding:0 20px;gap:10px}.quick-links{gap:13px;font-size:10px}.quick-links span{display:none}.search-open{font-size:11px;gap:6px}.search-open kbd{display:none}main{padding:29px 20px 0}h1{font-size:35px;letter-spacing:-.8px}.eyebrow{font-size:8px}.lead{font-size:14px}.course-meta{font-size:11px;gap:8px}.upcoming{padding:16px}.upcoming-main{gap:16px;align-items:flex-start}.event-date{min-width:70px;padding-right:14px;font-size:37px}.event-date small{font-size:7px}.upcoming h2{font-size:15px}.outline-label{font-size:7px;right:15px;top:15px}.section-heading .eyebrow{display:none}.announcement{gap:14px}.announcement-date{padding-right:14px}.section-heading h2{font-size:24px}.section-heading{align-items:flex-end}.text-link{font-size:10px}.schedule-controls{flex-wrap:wrap}.schedule-controls>.muted{margin-left:0;width:100%}.week-heading{padding:14px}.week-heading h3{font-size:19px}.week-heading>.muted{font-size:10px}.schedule-row{padding:14px;grid-template-columns:75px 1fr;gap:7px}.schedule-row>div{grid-column:1/-1;margin-top:4px}.schedule-row .tag{justify-self:end}.schedule-row small{font-size:11px}.rhythm{grid-template-columns:1fr}.rhythm>div{border-bottom:1px solid var(--line);padding-bottom:10px}.resource{gap:15px}.resource h2{font-size:21px}footer{flex-direction:column;align-items:flex-start;gap:12px}footer span{display:block;margin-top:4px}[data-theme=dark] .mobile-bar{background:#285b9b}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.sidebar{transition:none}}
.sidebar-bottom .career-link{font-size:13px;font-weight:650;padding-bottom:13px;margin-bottom:13px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}

.university-logo{display:flex;justify-content:center;align-items:center;background:#fff;padding:14px 20px;flex-shrink:0;border-bottom:1px solid var(--line)}.university-logo img{display:block;width:160px;max-width:100%;height:auto}

.sidebar-bottom .university-logo{margin-top:18px;padding:10px;border:0;border-radius:3px}.sidebar-bottom .university-logo img{width:120px}
