@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_5901b7c6-module__ec5Qua__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_5901b7c6-module__ec5Qua__variable{--font-inter:"Inter", "Inter Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f3f6fa;--sheet:#fcfdfe;--ink:#14213d;--ink-soft:#46546f;--rule:#c9d6e4;--rule-strong:#7f93ab;--pen:#b3122f;--gutter:1rem;--measure:66ch}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);min-height:100dvh;color:var(--ink);font-family:var(--font-inter), system-ui, sans-serif;flex-direction:column;margin:0;font-size:1.0625rem;line-height:1.5;display:flex}main{width:100%;max-width:76rem;padding-inline:var(--gutter);flex:1;margin-inline:auto}h1,h2,h3,p,ul{margin:0}h1{letter-spacing:-.02em;text-wrap:balance;font-size:clamp(2rem,7vw,3.25rem);font-weight:800;line-height:1.05}h2{font-size:1.375rem;font-weight:700;line-height:1.2}a{color:inherit;text-underline-offset:.16em;text-decoration-thickness:.08em}:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.skip-link{left:var(--gutter);z-index:10;background:var(--ink);color:var(--sheet);padding:.5rem .75rem;position:absolute;top:-4rem}.skip-link:focus-visible{top:.5rem}.site-header{width:100%;max-width:76rem;padding:.875rem var(--gutter);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1.5rem;margin-inline:auto;display:flex}.site-header nav{flex-wrap:wrap;align-items:baseline;gap:.25rem 1.25rem;display:flex}.site-name{font-weight:800;text-decoration:none}.term-name,.term-list{color:var(--ink-soft)}.term-list{flex-wrap:wrap;gap:.75rem;padding:0;list-style:none;display:flex}.term-list a[aria-current]{color:var(--ink);font-weight:700}.nav-plan{font-weight:700}.site-footer{width:100%;max-width:76rem;padding:2rem var(--gutter) 1.5rem;color:var(--ink-soft);margin-inline:auto;font-size:.9375rem}.site-footer p{max-width:var(--measure)}.home{padding-block:clamp(1.5rem,8vh,5rem) 2rem}.home h1{max-width:18ch}.search{max-width:40rem;margin-top:2rem}.search-label{font-weight:700;display:block}.search-input{border:0;border-bottom:3px solid var(--ink);width:100%;color:var(--ink);font:inherit;background:0 0;border-radius:0;margin-top:.25rem;padding:.5rem 0;font-size:1.5rem;font-weight:700}.search-input::placeholder{color:var(--ink-soft);opacity:1;font-weight:400}.search-input:focus{background:linear-gradient(transparent 55%, var(--marker-1) 55%);outline:none}.search-status{min-height:1.5em;color:var(--ink-soft);margin-top:.5rem}.search-results{padding:0;list-style:none}.search-results a{border-bottom:1px solid var(--rule);flex-wrap:wrap;gap:0 .75rem;padding:.625rem 0;text-decoration:none;display:flex}.search-results a:hover span{text-decoration:underline}.lead{max-width:var(--measure);margin-top:1rem;font-size:1.1875rem}.home-sample{max-width:52rem;margin-top:2.5rem}.home-sample>p{margin-top:.5rem;font-weight:700}.button,.button-quiet{border:2px solid var(--ink);min-height:2.75rem;font:inherit;cursor:pointer;border-radius:3px 9px 4px 8px;padding:.5625rem 1rem;font-weight:700;text-decoration:none;display:inline-block}.button{background:var(--ink);color:var(--sheet)}.button-quiet{color:var(--ink);background:0 0}.button-quiet:hover{background:var(--marker-1)}.course{padding-top:1rem}.course-head h1{letter-spacing:-.03em;font-size:clamp(3.25rem,17vw,7rem);font-weight:800;line-height:.95}.course-title{margin-top:.25rem;font-size:1.375rem;font-weight:600;line-height:1.25}.course-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.copy-link{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.5rem;display:inline-flex}.type-filter{flex-wrap:wrap;gap:.25rem 1rem;margin-top:1.5rem;display:flex}.type-filter a{padding-block:.5rem;text-decoration:none;display:inline-block}.type-filter a:hover{text-decoration:underline}.type-filter a[aria-current]{text-decoration:underline;-webkit-text-decoration-color:var(--marker-1);text-decoration-color:var(--marker-1);text-decoration-skip-ink:none;text-underline-offset:-.28em;font-weight:800;text-decoration-thickness:.55em}.week{--hour:3.25rem;margin:1rem 0 0}.week figcaption{font-weight:700}.week figcaption h2{font:inherit;letter-spacing:inherit}.week-frame{border:1px solid var(--rule-strong);background:var(--sheet);border-radius:3px;margin-top:.5rem;overflow-x:auto}.week-grid{width:100%;min-width:min-content;display:grid}.week-hours{border-right:1px solid var(--rule-strong);color:var(--ink-soft);font-variant-numeric:tabular-nums;padding-top:2rem;font-size:.8125rem}.week-hours span{height:var(--hour);text-align:right;padding:.125rem .375rem 0 0;display:block}.week-day{border-right:1px solid var(--rule);min-width:0}.week-day:last-child{border-right:0}.week-day h3{border-bottom:1px solid var(--rule-strong);text-align:center;height:2rem;padding-top:.25rem;font-size:.9375rem;font-weight:700}.week-day ol{height:calc(var(--hours) * var(--hour));background:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--hour) - 1px), var(--rule) calc(var(--hour) - 1px), var(--rule) var(--hour));margin:0;padding:0;list-style:none;position:relative}.block{top:calc(var(--from) * var(--hour));left:calc(var(--lane) * 100% / var(--lanes));width:calc(100% / var(--lanes) - 2px);height:calc(var(--length) * var(--hour) - 2px);mix-blend-mode:multiply;border-radius:2px 8px 3px 7px/7px 3px 8px 2px;padding:.125rem .25rem;font-size:.8125rem;line-height:1.15;position:absolute;overflow:hidden}.block strong,.block span{display:block}.block strong{font-weight:800}.block-time{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.block[data-state=ghost]{z-index:1;outline:2px dashed var(--ink);outline-offset:-2px}.block[data-state=clash]{z-index:1;outline:2px dashed var(--pen);outline-offset:-2px}.block .block-flag{background:var(--pen);color:#fff;padding-inline:.25rem;font-weight:800;display:inline-block}.week-note{color:var(--ink-soft);margin-top:.5rem}.section-list section{margin-top:2rem}.section-list ul{padding:0;list-style:none}.section-row{border-bottom:1px solid var(--rule);gap:.125rem 1.5rem;padding-block:.75rem;display:grid}.section-id strong{font-size:1.1875rem}.section-id span,.section-dates,.section-rules{color:var(--ink-soft)}.section-meetings>li span{margin-right:.75rem}.section-when{font-weight:700}.section-dates{display:block}.section-seats[data-full]{color:var(--pen);font-weight:700}.section-rules{font-size:.9375rem}.course-facts{gap:.75rem 2rem;margin:2rem 0 0;display:grid}.course-facts dt{color:var(--ink-soft)}.course-facts dd{max-width:var(--measure);margin:0;font-weight:600}.vh{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}button:disabled{border-color:var(--rule-strong);color:var(--ink-soft);cursor:not-allowed}.plan{padding-top:1rem}.plan-head p{color:var(--ink-soft)}.plan-head .plan-status{min-height:1.5em}.plan-status[data-status=offline]{color:var(--pen);font-weight:700}.plan-add{max-width:40rem;margin-top:1.25rem}.plan-results{padding:0;list-style:none}.plan-results button{border:0;border-bottom:1px solid var(--rule);width:100%;min-height:2.75rem;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;padding:.5rem 0}.plan-results button:hover{background:var(--marker-1)}.plan-notice{color:var(--pen);flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:1rem;font-weight:700;display:flex}.plan-notice button{color:var(--ink)}.plan-body{gap:1.5rem;margin-top:1.5rem;display:grid}.plan-count{font-size:1.1875rem;font-weight:700}.plan-controls{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.plan-options{flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;margin-top:.75rem;display:flex}.plan-options select{border:2px solid var(--ink);background:var(--sheet);min-height:2.75rem;color:var(--ink);font:inherit;border-radius:3px;padding-inline:.5rem}.plan-options input{width:1.25rem;height:1.25rem;accent-color:var(--ink);vertical-align:-.2em}.plan-course{padding-block:.75rem;border-left:.5rem solid var(--tone,var(--rule));padding-left:.75rem}.plan-course+.plan-course{margin-top:1.5rem}.plan-course header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;display:flex}.plan-course h2 span{font-weight:400}.plan-course summary{min-height:2.75rem;color:var(--ink-soft);cursor:pointer;padding-block:.625rem}.plan-course h3{color:var(--ink);font-size:1.0625rem;font-weight:700;display:inline}.choices{padding:0;list-style:none}.choice{border-top:1px solid var(--rule);grid-template-columns:auto minmax(0,1fr);gap:0 .75rem;padding-block:.5rem;display:grid}.choice .pin{border:2px solid var(--ink);min-width:2.75rem;min-height:2.75rem;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:3px 9px 4px 8px;grid-row:1/span 3;font-weight:700}.choice .pin[aria-pressed=true]{background:var(--ink);color:var(--sheet)}.choice .pin:hover:not([aria-pressed=true]){background:var(--marker-1)}.choice-seats{color:var(--ink-soft);font-size:.9375rem}.choice-state{font-size:.9375rem;font-weight:700}.choice[data-state=clash] .choice-state,.choice[data-state=group] .choice-state,.choice[data-state=stuck] .choice-state,.choice[data-state=full] .choice-state{color:var(--pen)}@media (min-width:60rem){.plan-body{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start}.plan-week{position:sticky;top:1rem}}@media (min-width:48rem){.week{--hour:3.75rem}.block{font-size:.875rem}.section-row{grid-template-columns:8rem minmax(0,1fr) 11rem;align-items:baseline}.section-rules{grid-column:2/-1}.course-facts{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
.ds-page{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--canvas:#fff;--shell:#f8f6f6;--shell-hover:#f0edee;--line:#e8e4e5;--line-strong:#d3cdcf;--control-edge:#8c8588;--text:#1c1a1b;--text-secondary:#5c5759;--text-tertiary:#6e686a;--burgundy:#9f0d43;--burgundy-hover:#860b38;--burgundy-tint:#f9e9ef;--on-burgundy:#fff;--clash:#b93e0c;--fits:#17703f;--changed:#0b62b8;--ink:var(--text);--ink-soft:var(--text-secondary);--rule:var(--line);--rule-strong:var(--line-strong);--pen:var(--clash);--sheet:var(--canvas);--paper:var(--canvas);--course-blue-fill:#e3effb;--course-blue-text:#0b4a8a;--course-blue-edge:#2f80d8;--course-teal-fill:#ddf3f1;--course-teal-text:#0b5a55;--course-teal-edge:#1ba39a;--course-green-fill:#e4f4e2;--course-green-text:#22601e;--course-green-edge:#4caf50;--course-pink-fill:#fbe6f1;--course-pink-text:#8a1f5c;--course-pink-edge:#db4e9b;--course-orange-fill:#fde9da;--course-orange-text:#8a3a0a;--course-orange-edge:#ec7a2b;--course-violet-fill:#ece8fb;--course-violet-text:#4a2fa0;--course-violet-edge:#7c5ce0;--hour:56px;--hour-axis:36px;--gutter:16px;background:var(--canvas);min-height:100dvh;color:var(--text);font-family:var(--font-inter), "Noto Sans HK", system-ui, sans-serif;font-feature-settings:"tnum" 1;caret-color:var(--burgundy);-webkit-font-smoothing:antialiased;flex-direction:column;flex:1;font-size:15px;line-height:22px;display:flex}@media (prefers-color-scheme:dark){.ds-page{--lightningcss-light: ;--lightningcss-dark:initial;--canvas:#151314;--shell:#1b1819;--shell-hover:#242021;--line:#332e30;--line-strong:#4a4345;--control-edge:#7a7275;--text:#f0edee;--text-secondary:#b5aeb0;--text-tertiary:#b5aeb0;--burgundy:#f0789f;--burgundy-hover:#f59ab7;--burgundy-tint:#3a1a26;--on-burgundy:#151314;--clash:#f0936a;--fits:#6fcf97;--changed:#7ab7f5;--course-blue-fill:color-mix(in srgb, var(--course-blue-edge) 22%, var(--canvas));--course-teal-fill:color-mix(in srgb, var(--course-teal-edge) 22%, var(--canvas));--course-green-fill:color-mix(in srgb, var(--course-green-edge) 22%, var(--canvas));--course-pink-fill:color-mix(in srgb, var(--course-pink-edge) 22%, var(--canvas));--course-orange-fill:color-mix(in srgb, var(--course-orange-edge) 22%, var(--canvas));--course-violet-fill:color-mix(in srgb, var(--course-violet-edge) 22%, var(--canvas));--course-blue-text:var(--text);--course-teal-text:var(--text);--course-green-text:var(--text);--course-pink-text:var(--text);--course-orange-text:var(--text);--course-violet-text:var(--text)}}html:has(.ds-page){background:#fff}html:has(.ds-page) body{background:#fff}@media (prefers-color-scheme:dark){html:has(.ds-page){background:#151314}html:has(.ds-page) body{background:#151314}}.ds-page ::selection{background:var(--burgundy-tint);color:var(--text)}.ds-page :focus-visible{outline:2px solid var(--burgundy);outline-offset:2px}.ds-page a{-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:2px;transition:color .12s ease-out,text-decoration-color .12s ease-out}.ds-page .skip-link{background:var(--burgundy);color:var(--on-burgundy);border-radius:6px;font-weight:500}.ds-page .site-header{max-width:none;padding:8px var(--gutter);border-bottom:1px solid var(--line);background:var(--shell);align-items:center;gap:0 16px;margin:0}.ds-page .site-header nav{flex-wrap:nowrap;align-items:center;gap:0 12px}.ds-page .site-name{letter-spacing:-.006em;border-radius:6px;align-items:center;min-height:44px;font-size:14px;font-weight:600;display:inline-flex}.ds-page .term-name,.ds-page .term-list{color:var(--text-secondary);font-size:12px;line-height:16px}.ds-page .term-list a{align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.ds-page .term-list a[aria-current]{color:var(--text);font-weight:500}.ds-page .nav-plan{min-height:44px;color:var(--text);border-radius:6px;align-items:center;font-size:13px;font-weight:500;line-height:18px;text-decoration:none;transition:background-color .12s ease-out;display:inline-flex}.ds-page .nav-plan:hover{background:var(--shell-hover)}.ds-page main{max-width:none;padding-inline:var(--gutter);margin:0}.ds-page .site-header{order:0}.ds-page main{order:2}.ds-page .site-footer{display:contents}.ds-page .site-footer p{max-width:none;padding:8px var(--gutter);color:var(--text-secondary);font-size:12px;line-height:16px}.ds-page .site-footer p:first-child:not(:last-child){border-bottom:1px solid var(--line);order:1}.ds-page .site-footer p:last-child{border-top:1px solid var(--line);order:3;padding-block:16px}.ds-page .site-footer a{-webkit-text-decoration-color:var(--control-edge);text-decoration-color:var(--control-edge);padding-block:8px}.ds-page .home{gap:24px;padding-block:24px;display:grid}.ds-page .home h1{letter-spacing:-.012em;max-width:none;font-size:22px;font-weight:600;line-height:28px}.ds-page .search{max-width:none;margin:0}.ds-page .search-label{margin-bottom:4px;font-size:15px;font-weight:600;line-height:22px}.ds-page .search-input{border:1px solid var(--control-edge);background:var(--canvas);height:44px;color:var(--text);border-radius:6px;margin:0;padding:0 12px;font-size:16px;font-weight:400;line-height:24px;transition:border-color .12s ease-out}.ds-page .search-input::placeholder{color:var(--text-tertiary);font-weight:400}.ds-page .search-input:hover{border-color:var(--text-secondary)}.ds-page .search-input::-webkit-search-cancel-button{background:var(--text-tertiary);cursor:pointer;-webkit-appearance:none;width:20px;height:20px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 5l10 10M15 5L5 15' stroke='%23000' stroke-width='1.75' stroke-linecap='round'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 5l10 10M15 5L5 15' stroke='%23000' stroke-width='1.75' stroke-linecap='round'/%3E%3C/svg%3E") 50%/contain no-repeat}.ds-page .palette-input::-webkit-search-cancel-button{background:var(--text-tertiary);cursor:pointer;-webkit-appearance:none;width:20px;height:20px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 5l10 10M15 5L5 15' stroke='%23000' stroke-width='1.75' stroke-linecap='round'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 5l10 10M15 5L5 15' stroke='%23000' stroke-width='1.75' stroke-linecap='round'/%3E%3C/svg%3E") 50%/contain no-repeat}.ds-page .search-input:focus{border-color:var(--burgundy);outline:2px solid var(--burgundy);outline-offset:2px;background:var(--canvas)}.ds-page .search-status{min-height:16px;color:var(--text-secondary);margin-top:8px;font-size:12px;line-height:16px}.ds-page .search-status:empty{min-height:0;margin-top:0}.ds-page .search-results{border:1px solid var(--line);border-radius:6px;margin-top:8px;overflow:hidden}.ds-page .search-results li+li{border-top:1px solid var(--line)}.ds-page .search-results a{border:0;grid-template-columns:76px minmax(0,1fr);align-items:baseline;gap:0 12px;min-height:44px;padding:12px;transition:background-color .12s ease-out;display:grid}.ds-page .search-results a:hover{background:var(--shell-hover)}.ds-page .search-results a:hover span{text-decoration:none}.ds-page .search-results a:focus-visible{outline-offset:-2px}.ds-page .search-results strong{font-weight:600}.ds-page .search-results span{color:var(--text-secondary)}.ds-page .home-sample{min-width:0;max-width:none;margin:0}.ds-page .home-sample>p{margin-top:8px;font-weight:500}.ds-page .home-sample>p a{min-height:44px;color:var(--text-secondary);align-items:center;text-decoration:underline;display:inline-flex}.ds-page .home-sample>p a:hover{color:var(--text)}.ds-page .button,.ds-page .button-quiet{border-radius:6px;justify-content:center;align-items:center;min-height:44px;padding:6px 12px;font-size:13px;font-weight:500;line-height:18px;text-decoration:none;transition:background-color .12s ease-out,border-color .12s ease-out;display:inline-flex}.ds-page .button{border:1px solid var(--burgundy);background:var(--burgundy);color:var(--on-burgundy)}.ds-page .button:hover{border-color:var(--burgundy-hover);background:var(--burgundy-hover)}.ds-page .button-quiet{border:1px solid var(--control-edge);background:var(--canvas);color:var(--text)}.ds-page .button-quiet:hover{background:var(--shell-hover)}.ds-page .change-note{grid-column:2/-1;margin-top:4px;font-size:12px;line-height:16px}.ds-page .change-note p{color:var(--changed);font-size:inherit;font-weight:600;line-height:inherit;align-items:center;gap:6px;display:flex}.ds-page .change-note p:before{content:"";background:currentColor;border-radius:999px;flex:none;width:8px;height:8px}.ds-page .change-note ul{margin-top:2px;padding:0;list-style:none}.ds-page .change-note del{color:var(--text-secondary)}.ds-page .change-note ins{color:var(--text);font-weight:500;text-decoration:none}.ds-page .section-change{grid-column:1/-1}.ds-page .course-changes>ul>li{border-bottom:1px solid var(--line);gap:2px 16px;padding-block:12px;display:grid}.ds-page .course-changes .change-note{margin-top:0}.ds-page .block[data-changed]:before{content:"";background:var(--changed);border-radius:999px;width:7px;height:7px;position:absolute;top:4px;right:4px}.ds-page .palette-open{min-width:44px;min-height:44px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:0;font-size:13px;font-weight:500;line-height:18px;transition:background-color .12s ease-out;display:inline-flex}.ds-page .palette-open:hover{background:var(--shell-hover)}.ds-page .palette-open:before{content:"";background:currentColor;flex:none;width:16px;height:16px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='7' cy='7' r='4.5' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3Cpath d='M10.5 10.5L14 14' stroke='%23000' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='7' cy='7' r='4.5' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3Cpath d='M10.5 10.5L14 14' stroke='%23000' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") 50%/contain no-repeat}.ds-page .palette-open-name,.ds-page .palette-open kbd{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ds-page .palette-open kbd{color:var(--text-secondary);font:inherit;font-size:12px}.ds-page .palette{background:var(--canvas);width:100%;max-width:none;height:100dvh;max-height:none;color:var(--text);border:0;margin:0;padding:0}.ds-page .palette::backdrop{background:#1c1a1b66}.ds-page .palette-panel{padding:12px var(--gutter)}.ds-page .palette-row{align-items:center;gap:4px;display:flex}.ds-page .palette-close{min-height:44px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;padding:0 8px;font-size:13px;font-weight:500;line-height:18px}.ds-page .palette-input{border:1px solid var(--control-edge);background:var(--canvas);width:100%;min-width:0;height:44px;color:var(--text);font:inherit;border-radius:6px;flex:1;padding:0 12px;font-size:16px;line-height:24px}.ds-page .palette-input::placeholder{color:var(--text-tertiary)}.ds-page .palette-input:focus{border-color:var(--burgundy);outline:2px solid var(--burgundy);outline-offset:2px}.ds-page .palette-status{color:var(--text-secondary);margin-top:8px;font-size:12px;line-height:16px}.ds-page .palette-status:empty{margin-top:0}.ds-page .palette-results{margin-top:8px;padding:0;list-style:none}.ds-page .palette-results li{min-height:44px;color:var(--text-secondary);cursor:pointer;border-radius:6px;grid-template-columns:76px minmax(0,1fr) auto;align-items:baseline;gap:0 12px;padding:11px 8px;font-size:14px;line-height:20px;display:grid}.ds-page .palette-results li[aria-selected=true]{outline:1px solid var(--control-edge);outline-offset:-1px;background:var(--shell-hover)}.ds-page .palette-results strong{color:var(--text);font-weight:600}.ds-page .palette-units{font-size:12px;line-height:16px}.ds-page .course{max-width:1200px;margin-inline:auto;padding-block:24px}.ds-page .course-head h1{letter-spacing:-.018em;font-size:28px;font-weight:600;line-height:34px}.ds-page .course-title{color:var(--text-secondary);margin-top:2px;font-size:15px;font-weight:400;line-height:22px}.ds-page .freshness{color:var(--text-secondary);margin-top:4px;font-size:12px;line-height:16px}.ds-page .freshness a{-webkit-text-decoration-color:var(--control-edge);text-decoration-color:var(--control-edge)}.ds-page .freshness[data-stale]{color:var(--clash);font-weight:500}.ds-page .freshness[data-stale]:before{content:"";vertical-align:-2px;background:currentColor;width:12px;height:12px;margin-right:4px;display:inline-block;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill-rule='evenodd' d='M6 1l5.5 10h-11zM5.4 5v3h1.2V5zm0 3.8V10h1.2V8.8z'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill-rule='evenodd' d='M6 1l5.5 10h-11zM5.4 5v3h1.2V5zm0 3.8V10h1.2V8.8z'/%3E%3C/svg%3E") 50%/contain no-repeat}.ds-page .course-actions{gap:8px;margin-top:12px}.ds-page .copy-link{color:var(--text-secondary);gap:0;font-size:12px;line-height:16px}.ds-page .copy-link [role=status]:not(:empty){margin-left:8px}.ds-page .type-filter{background:var(--shell-hover);border-radius:6px;flex-wrap:wrap;gap:2px;margin-top:16px;padding:2px;display:inline-flex}.ds-page .type-filter+.type-filter{margin-top:8px}.ds-page .type-filter a{min-height:44px;color:var(--text-secondary);border-radius:4px;align-items:center;padding:0 12px;font-size:13px;font-weight:500;line-height:18px;text-decoration:none;display:inline-flex}.ds-page .type-filter a:hover{color:var(--text);text-decoration:none}.ds-page .type-filter a[aria-current]{background:var(--canvas);box-shadow:inset 0 0 0 1px var(--control-edge);color:var(--text);font-weight:600;text-decoration:none}.ds-page .course .week{margin-top:16px}.ds-page .section-asof,.ds-page .section-rule,.ds-page .plan-asof,.ds-page .plan-rule{color:var(--text-secondary);font-size:12px;line-height:16px}.ds-page .section-rule,.ds-page .plan-rule{max-width:65ch;margin-top:4px}.ds-page .section-asof{margin-top:24px}.ds-page .section-list section{margin-top:32px}.ds-page .section-list>p+section{margin-top:16px}.ds-page .section-list h2{border-bottom:1px solid var(--line);padding-bottom:8px;font-size:15px;font-weight:600;line-height:22px}.ds-page .section-row{border-bottom:1px solid var(--line);gap:4px 16px;padding-block:12px}.ds-page .section-group h3{border-bottom:1px solid var(--line);color:var(--text-secondary);padding-block:12px 4px;font-size:13px;font-weight:600;line-height:18px}.ds-page .section-id,.ds-page .change-who{align-items:baseline;gap:8px;display:flex}.ds-page .section-id strong,.ds-page .change-who strong{font-size:inherit;font-weight:600}.ds-page .section-id span,.ds-page .change-who span{font-size:12px;line-height:16px}.ds-page .section-meetings>li{flex-wrap:wrap;gap:0 12px;display:flex}.ds-page .section-meetings>li span{margin:0}.ds-page .section-when{font-weight:500}.ds-page .section-dates{color:var(--text-secondary);flex-basis:100%;font-size:12px;line-height:16px}.ds-page .section-seats[data-full]{color:var(--text-secondary);font-weight:400}.ds-page .section-rules{color:var(--text-secondary);font-size:12px;line-height:16px}.ds-page .course-facts{gap:12px 32px;margin-top:32px}.ds-page .course-facts dt{color:var(--text-secondary);font-size:12px;line-height:16px}.ds-page .course-facts dd{max-width:none;font-weight:400}.ds-page.ds-bare .home{flex:1;align-content:center;gap:8px;width:min(100%,640px);margin-inline:auto}.ds-page.ds-bare .lead{max-width:none;font-size:inherit;line-height:inherit;margin:0}.ds-page .week{--hour:56px;margin:0}.ds-page .week figcaption{color:var(--text-secondary);font-size:13px;font-weight:500;line-height:18px}.ds-page .week-frame{border:1px solid var(--line);background:var(--canvas);scrollbar-color:var(--line-strong) transparent;scrollbar-width:thin;border-radius:6px;margin-top:8px}.ds-page .course .week-frame:not(:has(.block)){display:none}.ds-page .week-frame:focus-visible{outline-offset:2px}.ds-page .week-hours{z-index:2;border-right:1px solid var(--line);background:var(--canvas);color:var(--text-tertiary);padding-top:32px;font-size:12px;line-height:16px;position:sticky;left:0}.ds-page .week-hours span{padding:2px 6px 0 0}.ds-page .week-day{border-right:1px solid var(--line)}.ds-page .week-day:last-child{border-right:0}.ds-page .week-day h3{border-bottom:1px solid var(--line);height:32px;color:var(--text-secondary);padding-top:7px;font-size:12px;font-weight:500;line-height:16px}.ds-page .week-day ol{background:linear-gradient(to bottom, transparent calc(100% - 1px), var(--line) calc(100% - 1px)) 0 0 / 100% var(--hour);margin-bottom:-1px}.ds-page .block{top:calc(var(--from) * var(--hour) + 1px);left:calc(var(--lane) * 100% / var(--lanes) + 2px);width:calc(100% / var(--lanes) - 4px);height:calc(var(--length) * var(--hour) - 3px);background:var(--event-fill);box-shadow:inset 3px 0 0 var(--event-edge);color:var(--event-text);mix-blend-mode:normal;border-radius:4px;padding:3px 5px 3px 8px;font-size:12px;font-weight:500;line-height:15px}.ds-page .block strong{font-weight:600}.ds-page .block[data-short]{padding-block:2px;line-height:13px}.ds-page .block[data-full]{outline:1px dashed var(--control-edge);outline-offset:-1px;background:var(--canvas);box-shadow:none;color:var(--text-secondary)}.ds-page .tone-1{--event-fill:var(--course-blue-fill);--event-text:var(--course-blue-text);--event-edge:var(--course-blue-edge)}.ds-page .tone-2{--event-fill:var(--course-teal-fill);--event-text:var(--course-teal-text);--event-edge:var(--course-teal-edge)}.ds-page .tone-3{--event-fill:var(--course-green-fill);--event-text:var(--course-green-text);--event-edge:var(--course-green-edge)}.ds-page .tone-4{--event-fill:var(--course-violet-fill);--event-text:var(--course-violet-text);--event-edge:var(--course-violet-edge)}.ds-page .tone-5{--event-fill:var(--course-orange-fill);--event-text:var(--course-orange-text);--event-edge:var(--course-orange-edge)}.ds-page .tone-6{--event-fill:var(--course-pink-fill);--event-text:var(--course-pink-text);--event-edge:var(--course-pink-edge)}.ds-page .week-view,.ds-page .week-day-empty,.ds-page .plan-sheet-handle{display:none}.ds-page .week-note{color:var(--text-secondary);font-size:12px;line-height:16px}.ds-page .plan{--panel:var(--canvas);padding-block:16px 24px}.ds-page .plan-head{flex-wrap:wrap;align-items:baseline;gap:0 12px;display:flex}.ds-page .plan-head h1{letter-spacing:-.012em;flex-basis:100%;font-size:20px;font-weight:600;line-height:28px}.ds-page .plan-head p{color:var(--text-secondary);font-size:13px;line-height:18px}.ds-page .plan-head .plan-status{min-height:18px}.ds-page .plan-head .plan-arrival{color:var(--text);font-weight:500}.ds-page .plan-head .freshness{flex-basis:100%;margin-top:0;font-size:12px;line-height:16px}.ds-page .plan-head .freshness[data-stale]{color:var(--clash)}.ds-page .plan-asof{margin-bottom:4px}.ds-page .plan-rule{max-width:none;margin-bottom:12px}.ds-page .plan-status[data-status=offline]{color:var(--clash);font-weight:500}.ds-page .plan-add{max-width:none;margin-top:16px;position:relative}:is(.ds-page .plan:not(:has(.plan-body)) .plan-add,.ds-page .plan:not(:has(.plan-body))>.lead){width:min(100%,560px);margin-inline:auto}.ds-page .plan:not(:has(.plan-body)) .plan-add{margin-top:24dvh}.ds-page .plan>.lead{max-width:none;color:var(--text-secondary);font-size:inherit;line-height:inherit;margin-top:12px}.ds-page .plan-results{border:1px solid var(--line);background:var(--canvas);border-radius:6px;margin-top:8px;overflow:hidden}.ds-page .plan-results li+li{border-top:1px solid var(--line)}.ds-page .plan-results button{min-height:44px;color:var(--text-secondary);border:0;padding:10px 12px;transition:background-color .12s ease-out}.ds-page .plan-results button:hover{background:var(--shell-hover)}.ds-page .plan-results button:focus-visible{outline-offset:-2px}.ds-page .plan-results strong{color:var(--text);font-weight:600}.ds-page .plan-notice{border:1px solid var(--line-strong);color:var(--text);border-radius:6px;justify-content:space-between;gap:8px 16px;margin-top:12px;padding:8px 12px;font-size:13px;font-weight:400;line-height:18px}.ds-page .plan-notice .button-quiet{padding-block:12px;display:inline-block}.ds-page .plan-body{grid-template-columns:minmax(0,1fr);gap:24px;margin-top:16px}.ds-page .plan-week{position:static}.ds-page .plan-count{font-size:15px;font-weight:600;line-height:22px}.ds-page .plan-count[data-blocked]{color:var(--clash)}.ds-page .plan .week{margin-top:8px}.ds-page .plan-controls{gap:8px;margin-top:12px}.ds-page .button-quiet[aria-disabled=true]{border-color:var(--line-strong);color:var(--text-tertiary);cursor:default;background:0 0}.ds-page .plan-options{color:var(--text-secondary);gap:4px 16px;margin-top:12px;font-size:13px;line-height:18px}.ds-page .plan-options label{align-items:center;gap:8px;min-height:44px;display:inline-flex}.ds-page .plan-options select{border:1px solid var(--control-edge);background:var(--canvas);min-height:44px;color:var(--text);border-radius:6px;padding-inline:8px;font-size:16px}.ds-page .plan-options input{width:18px;height:18px;accent-color:var(--burgundy);vertical-align:baseline}.ds-page .plan-final{border:1px solid var(--line-strong);background:var(--canvas);border-radius:6px;margin-bottom:16px;padding:12px;font-size:13px;line-height:18px}.ds-page .plan-final h2{font-size:15px;font-weight:600;line-height:22px}.ds-page .plan-final>p{color:var(--text-secondary)}.ds-page .plan-final ul{margin-block:8px;padding:0;list-style:none}.ds-page .plan-final li{border-top:1px solid var(--line);gap:8px;padding-block:4px;display:flex}.ds-page .plan-final li strong{font-weight:600}.ds-page .plan-final li span{margin-left:auto;font-weight:500}.ds-page .plan-final-actions{flex-wrap:wrap;gap:8px;display:flex}.ds-page .plan-final .plan-final-said{margin-top:4px;font-size:12px;line-height:16px}.ds-page .plan-alerts{border-top:1px solid var(--line);margin-top:8px;padding-top:12px}.ds-page .plan-alerts label{margin-bottom:8px;font-weight:500;display:block}.ds-page .plan-alerts-row{flex-wrap:wrap;gap:8px;display:flex}.ds-page .plan-alerts-row input{flex:180px;min-width:0}.ds-page .plan-alerts p{overflow-wrap:anywhere;color:var(--text-secondary);margin-top:8px}.ds-page .plan-alerts>p:first-child{color:var(--text);margin-top:0;margin-bottom:8px}.ds-page .plan-alerts>p:first-child:focus{outline:none}.ds-page .plan-alerts .plan-alerts-problem{color:var(--clash);font-weight:500}.ds-page.ds-bare form{margin-top:16px}.ds-page .tone-edge-1{--tone:var(--course-blue-edge)}.ds-page .tone-edge-2{--tone:var(--course-teal-edge)}.ds-page .tone-edge-3{--tone:var(--course-green-edge)}.ds-page .tone-edge-4{--tone:var(--course-violet-edge)}.ds-page .tone-edge-5{--tone:var(--course-orange-edge)}.ds-page .tone-edge-6{--tone:var(--course-pink-edge)}.ds-page .plan-course{border-left:0;padding:0}.ds-page .plan-course+.plan-course{border-top:1px solid var(--line-strong);margin-top:16px;padding-top:16px}.ds-page .plan-course header{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:0 12px;display:grid}.ds-page .plan-course h2{font-size:15px;font-weight:600;line-height:22px}.ds-page .plan-course h2 a{align-items:center;gap:8px;margin-block:-11px;padding-block:11px;text-decoration:none;display:inline-flex}.ds-page .plan-course h2 a:hover{text-decoration:underline;-webkit-text-decoration-color:var(--control-edge);text-decoration-color:var(--control-edge)}.ds-page .plan-course h2 a:before{content:"";background:var(--tone);border-radius:999px;flex:none;width:10px;height:10px}.ds-page .plan-course h2 span{color:var(--text-secondary);font-size:13px;line-height:18px;display:block}.ds-page .plan-course summary{min-height:44px;color:var(--text-secondary);padding-block:13px;font-size:12px;line-height:18px;display:list-item}.ds-page .plan-course summary::marker{color:var(--text-tertiary)}.ds-page .plan-course details[open]>summary{z-index:2;background:var(--panel);position:sticky;top:0}.ds-page .plan-course h3{color:var(--text);font-size:13px;font-weight:600;line-height:18px}.ds-page .choice{border-top:1px solid var(--line);grid-template-columns:44px minmax(0,1fr);gap:0 10px;padding-block:8px}.ds-page .choice p{font-size:13px;line-height:18px}.ds-page .choice strong{font-weight:600}.ds-page .choice .pin{border:1px solid var(--control-edge);background:var(--canvas);width:44px;min-width:0;min-height:44px;color:var(--text);border-radius:6px;font-size:12px;font-weight:500;transition:background-color .12s ease-out,border-color .12s ease-out}.ds-page .choice .pin:hover:not([aria-pressed=true]){background:var(--shell-hover)}.ds-page .choice .pin[aria-pressed=true]{border-color:var(--burgundy);background:var(--burgundy);color:var(--on-burgundy)}.ds-page .choice .choice-seats{color:var(--text-secondary);font-size:12px;line-height:16px}.ds-page .choice .choice-state{color:var(--text-secondary);font-size:13px;font-weight:500;line-height:18px}.ds-page .choice[data-state=fits] .choice-state{color:var(--fits)}.ds-page .choice[data-state=pinned] .choice-state{color:var(--burgundy)}.ds-page .choice[data-state=clash] .choice-state{color:var(--clash)}.ds-page .choice:is([data-state=group],[data-state=stuck],[data-state=full]) p{color:var(--text-secondary)}.ds-page .block[data-state]{z-index:1;background:color-mix(in srgb, var(--event-fill) 55%, var(--canvas))}.ds-page .block[data-state=ghost]{outline:0}.ds-page .week-day ol{--clash-width:max(50% - 4px, 56px)}.ds-page .week-day ol:has(.block[data-state=clash]) .block:not([data-state]){left:calc(var(--lane) * (100% - var(--clash-width) - 4px) / var(--lanes) + 2px);width:calc((100% - var(--clash-width) - 4px) / var(--lanes) - 4px)}.ds-page .block[data-state=clash]{width:var(--clash-width);outline:2px solid var(--clash);outline-offset:-2px;background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--clash) 14%, transparent) 0 2px, transparent 2px 8px), color-mix(in srgb, var(--event-fill) 55%, var(--canvas));left:auto;right:2px}.ds-page .block .block-flag{background:var(--clash);color:var(--canvas);border-radius:2px;padding-inline:4px;font-size:11px;font-weight:600;line-height:14px}.ds-page .block[data-pinned]:after{content:"";background:var(--event-text);width:10px;height:10px;position:absolute;bottom:3px;right:3px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M4 1h4l-.5 4 2 2v1h-3v3L6 12l-.5-1V8h-3V7l2-2z'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M4 1h4l-.5 4 2 2v1h-3v3L6 12l-.5-1V8h-3V7l2-2z'/%3E%3C/svg%3E") 50%/contain no-repeat}@media (max-width:767px){.ds-page .week-view{justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.ds-page .week-view-mode{background:var(--shell-hover);border-radius:6px;gap:2px;padding:2px;display:inline-flex}.ds-page .week-view-mode button{min-height:44px;color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0 12px;font-size:13px;font-weight:500;line-height:18px}.ds-page .week-view-mode button[aria-pressed=true]{background:var(--canvas);box-shadow:inset 0 0 0 1px var(--control-edge);color:var(--text);font-weight:600}.ds-page .week-view-step{align-items:center;gap:4px;display:flex}.ds-page .week-view-step p{text-align:center;min-width:76px;font-size:13px;font-weight:500;line-height:18px}.ds-page .week-view-step button{border:1px solid var(--control-edge);background:var(--canvas);cursor:pointer;border-radius:6px;width:44px;height:44px;position:relative}.ds-page .week-view-step button[aria-disabled=true]{border-color:var(--line-strong);cursor:default}.ds-page .week-view-step button:before{content:"";background:var(--text);position:absolute;inset:13px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M10 3L5 8l5 5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M10 3L5 8l5 5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/contain no-repeat}.ds-page .week-view-step button[aria-disabled=true]:before{background:var(--text-tertiary)}.ds-page .week-view-on:before{transform:scaleX(-1)}.ds-page .week-day:not([data-shown]){display:none}.ds-page .week-day{position:relative}.ds-page .week-day-empty{z-index:1;color:var(--text-secondary);text-align:center;font-size:13px;line-height:18px;display:block;position:absolute;top:56px;left:0;right:0}.ds-page .week-grid{grid-auto-columns:1fr;grid-auto-flow:column;grid-template-columns:var(--hour-axis)!important}.ds-page .week-day{min-width:calc(var(--day-lanes,1) * 52px)}.ds-page .block{padding-inline:6px 3px}.ds-page .week-day h3{text-align:left;padding-left:8px}.ds-page .week-day h3 span{left:calc(var(--hour-axis) + 8px);display:inline-block;position:sticky}.ds-page .plan:not(:has(.plan-body)) .plan-add{margin-top:8dvh}.ds-page .plan-courses{z-index:5;background:var(--canvas);border-radius:10px 10px 0 0;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #1c1a1b1a}.ds-page .plan-body:has(.plan-controls) .plan-courses:not([data-open]){bottom:calc(61px + env(safe-area-inset-bottom))}.ds-page .plan-sheet-handle{width:100%;min-height:48px;padding:16px var(--gutter) 10px;border:0;border-top:1px solid var(--line);color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:10px 10px 0 0;font-size:13px;font-weight:600;line-height:18px;display:block;position:relative}.ds-page .plan-sheet-handle:before{content:"";background:var(--line-strong);border-radius:999px;width:36px;height:4px;position:absolute;top:6px;left:calc(50% - 18px)}.ds-page .plan-sheet{display:none}.ds-page .plan-courses[data-open] .plan-sheet{max-height:44dvh;padding:0 var(--gutter) calc(16px + env(safe-area-inset-bottom));display:block;overflow-y:auto}.ds-page .plan:has(.plan-courses[data-open]) .week{--hour:32px}.ds-page .plan:has(.plan-courses[data-open]) .block[data-short]>span:not(.block-time,.block-flag){display:none}.ds-page:has(.plan-courses[data-open]){padding-bottom:60dvh}.ds-page:has(.plan-sheet-handle){padding-bottom:calc(48px + env(safe-area-inset-bottom))}.ds-page .plan-controls{flex-wrap:nowrap}.ds-page .plan-controls button{flex:auto;padding-inline:6px}html:has(.course-actions){scroll-padding-bottom:72px}.ds-page:has(.course-actions){padding-bottom:calc(61px + env(safe-area-inset-bottom))}.ds-page .course-actions{z-index:4;padding:8px var(--gutter) calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--canvas);margin:0;position:fixed;inset:auto 0 0}}@media (max-width:1279px){html:has(.plan-controls){scroll-padding-bottom:72px}.ds-page:has(.plan-controls){padding-bottom:calc(61px + env(safe-area-inset-bottom))}.ds-page .plan-controls{z-index:4;padding:8px var(--gutter) calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--canvas);margin:0;position:fixed;inset:auto 0 0}}@media (max-width:767px){html:has(.plan-controls){scroll-padding-bottom:120px}.ds-page:has(.plan-controls){padding-bottom:calc(109px + env(safe-area-inset-bottom))}}@media (max-width:359px){.ds-page .home h1{font-size:20px}}@media (max-width:479px){.ds-page .term-name{display:none}}@media (min-width:768px){.ds-page .type-filter+.type-filter{margin-top:16px;margin-left:8px}.ds-page .section-change{grid-column:2/-1}.ds-page .course-changes>ul>li{grid-template-columns:96px minmax(0,1fr);align-items:baseline}.ds-page .palette-open{min-height:32px;padding-inline:8px}.ds-page .palette-open-name{clip-path:none;width:auto;height:auto;position:static;overflow:visible}.ds-page .palette-close{display:none}.ds-page .palette{border:1px solid var(--line);border-radius:10px;width:min(560px,100vw - 48px);height:fit-content;max-height:calc(100dvh - 192px);margin:96px auto auto;box-shadow:0 8px 30px #1c1a1b24}html:has(.plan-course details[open]){scroll-padding-top:52px}.ds-page{--gutter:24px}.ds-page .site-name,.ds-page .nav-plan,.ds-page .term-list a{min-height:32px}.ds-page .nav-plan{padding-inline:8px}.ds-page{font-size:14px;line-height:20px}.ds-page .search-results a{min-height:40px;padding:10px 12px}.ds-page .home-sample>p a,.ds-page .button,.ds-page .button-quiet,.ds-page .type-filter a,.ds-page .choice .pin{min-height:32px}.ds-page .plan-course h2 a{margin-block:-5px;padding-block:5px}.ds-page .plan-notice .button-quiet{padding-block:6px}.ds-page .plan-options label,.ds-page .plan-options select{min-height:32px}.ds-page .plan-options select{font-size:13px}.ds-page .plan-course summary{min-height:32px;padding-block:7px}.ds-page .choice .pin{align-self:start}.ds-page .section-row{grid-template-columns:96px minmax(0,1fr) 136px;align-items:baseline}.ds-page .section-id,.ds-page .change-who{flex-direction:column;gap:0}.ds-page .section-meetings>li{grid-template-columns:168px 116px minmax(0,1fr);display:grid}.ds-page .section-dates{grid-column:1/-1}.ds-page .section-seats{text-align:right}.ds-page .section-rules{flex-wrap:wrap;grid-column:2/-1;display:flex}.ds-page .section-rules li:not(:last-child):after{content:"·";content:"·" / "";margin-inline:6px}.ds-page .course-facts{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1024px){.ds-page{grid-template-columns:220px minmax(0,1fr);display:grid}.ds-page .site-header{border-right:1px solid var(--line);border-bottom:0;flex-flow:column;grid-area:1/1/-1;justify-content:flex-start;align-self:start;align-items:stretch;height:100dvh;padding:12px;position:sticky;top:0}.ds-page .site-name{padding-inline:8px}.ds-page .site-header nav{flex-direction:column;align-items:stretch;gap:12px;margin-top:4px}.ds-page .term-name{padding-inline:8px}.ds-page .term-list{flex-direction:column;gap:2px;padding-inline:8px}.ds-page main{grid-area:1/2;min-width:0}.ds-page .site-footer{z-index:3;width:219px;padding:12px 20px;display:block;position:fixed;bottom:0;left:0}.ds-page .site-footer p,.ds-page .site-footer p:last-child{border:0;padding:0}.ds-page .site-footer p:first-child:not(:last-child){color:var(--text);border:0;margin-bottom:8px}.ds-page .home{max-width:1200px;margin-inline:auto;padding-block:32px}.ds-page .home h1{letter-spacing:-.018em;font-size:28px;line-height:34px}.ds-page .course{padding-block:32px}.ds-page .course-head{grid-template-columns:minmax(0,1fr) auto;align-items:end;column-gap:24px;display:grid}.ds-page .course-head h1,.ds-page .course-title,.ds-page .course-head .freshness{grid-column:1}.ds-page .course-actions{grid-area:1/2/span 3;margin:0}.ds-page .palette-open{justify-content:flex-start}.ds-page .palette-open kbd{clip-path:none;width:auto;height:auto;margin-left:auto;position:static;overflow:visible}.ds-page .plan-controls{left:220px}.ds-page.ds-bare{display:flex}.ds-page.ds-bare .site-footer{display:contents;position:static}.ds-page.ds-bare .site-footer p:last-child{padding:16px var(--gutter);border-top:1px solid var(--line)}}@media (min-width:1280px){.ds-page main:has(.plan-body){padding-inline:0}.ds-page .plan:has(.plan-body){--panel:var(--shell);grid-template-columns:minmax(0,1fr) 320px;min-height:100dvh;padding:0;display:grid}.ds-page .plan:has(.plan-body)>*{grid-column:1;margin-inline:24px}.ds-page .plan:has(.plan-body) .plan-head{align-self:start;padding-top:16px}.ds-page .plan:has(.plan-body) .plan-notice{margin-bottom:8px}.ds-page .plan-courses{border-left:1px solid var(--line);background:var(--shell);grid-column:2}.ds-page .plan:has(.plan-body) .plan-add{border-left:1px solid var(--line);background:var(--shell);grid-column:2}.ds-page .plan:has(.plan-body) .plan-add{grid-row:1;margin:0;padding:16px 16px 12px}.ds-page .plan:has(.plan-body) .search-input{height:36px;font-size:14px}.ds-page .plan:has(.plan-body) .search-status{z-index:6;background:var(--shell);margin:0;padding:0 16px 8px;position:absolute;top:calc(100% - 12px);left:0;right:0}.ds-page .plan:has(.plan-body) .search-status:empty{padding:0}.ds-page .plan:has(.plan-body) .plan-add:not(:has(.plan-results)) .search-status:not(:empty){border:1px solid var(--line);background:var(--canvas);border-radius:6px;padding:8px 12px;left:16px;right:16px;box-shadow:0 8px 30px #1c1a1b24}.ds-page .plan:has(.plan-body) .plan-results{z-index:5;max-height:60dvh;margin:0;position:absolute;top:calc(100% + 12px);left:16px;right:16px;overflow-y:auto;box-shadow:0 8px 30px #1c1a1b24}.ds-page .plan-body{display:contents}.ds-page .plan-courses{grid-row:2/span 40;padding:0 16px 24px}.ds-page .plan-week{grid-area:span 30/1;align-self:start;margin-inline:24px;padding-block:4px 16px;position:sticky;top:0}.ds-page .plan-options{margin-top:8px}.ds-page .plan-week .week-frame{max-height:calc(100dvh - 258px);overflow:auto}.ds-page .plan-week .week-day h3{z-index:3;background:var(--canvas);position:sticky;top:0}.ds-page .section-row{grid-template-columns:120px minmax(0,1fr) 150px}.ds-page .section-meetings>li{grid-template-columns:200px 170px minmax(0,1fr)}}@media (min-width:1440px){.ds-page .plan-week{grid-template-columns:auto minmax(0,1fr);gap:0 16px;display:grid}.ds-page .plan-count,.ds-page .plan-week .week,.ds-page .plan-options{grid-column:1/-1}.ds-page .plan-controls+.plan-options{grid-column:2;justify-content:flex-end;margin-top:12px}.ds-page .plan-week .week-frame{max-height:calc(100dvh - 210px)}}@media (forced-colors:active){.ds-page .week-day ol{forced-color-adjust:none}.ds-page .block{forced-color-adjust:auto;border:1px solid canvastext}.ds-page .block[data-full]{border-style:dashed}.ds-page .block[data-pinned]:after,.ds-page .block[data-changed]:before,.ds-page .change-note p:before,.ds-page .freshness[data-stale]:before{background:canvastext}.ds-page .block[data-state=ghost]{border-style:dashed}.ds-page .choice .pin[aria-pressed=true],.ds-page .week-view-mode button[aria-pressed=true]{color:highlighttext;forced-color-adjust:none;background:highlight}.ds-page .week-view-step button:before,.ds-page .palette-open:before{background:buttontext}.ds-page .palette-results li[aria-selected=true]{color:highlighttext;forced-color-adjust:none;background:highlight}.ds-page .plan-course h2 a:before{forced-color-adjust:none}.ds-page .type-filter a[aria-current]{color:highlighttext;forced-color-adjust:none;background:highlight}}@media (prefers-reduced-motion:reduce){.ds-page *{transition:none!important}}@media (min-width:768px) and (pointer:coarse){.ds-page .site-name,.ds-page .nav-plan,.ds-page .term-list a,.ds-page .button,.ds-page .button-quiet,.ds-page .type-filter a,.ds-page .choice .pin,.ds-page .plan-options label,.ds-page .plan-options select,.ds-page .plan-course summary{min-height:44px}.ds-page .plan-notice .button-quiet{padding-block:12px}}
