:root{--ink:#1a1a1a;--muted:#5b6070;--line:#e2e4ea;--accent:#0b5fff;--accent-bg:#eef4ff;--clash:#b00020;--clash-bg:#fff4f5;--free:#177a3c;--surface:#fafbfc;--shadow:0 1px 2px #1018280f, 0 1px 3px #10182814}body{color:var(--ink);background:#f1f3f7;margin:0;font-family:system-ui,sans-serif;line-height:1.5}a{color:var(--accent)}.site-header{border-bottom:3px solid var(--accent);background:var(--ink);color:#fff}.site-header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.5rem;max-width:64rem;margin:0 auto;padding:.75rem 1rem;display:flex}.brand{color:#fff;font-size:1.15rem;font-weight:700;text-decoration:none}.site-header nav{gap:1.25rem;display:flex}.site-header nav a{color:#d4d4d8;text-decoration:none}.site-header nav a[aria-current=page]{color:#fff;text-underline-offset:.3em;text-decoration:underline}main{max-width:64rem;margin:0 auto;padding:1.5rem 1rem 3rem}h1{letter-spacing:-.01em;margin:0 0 .25rem;font-size:1.75rem}.lede{color:var(--muted);margin:0 0 1.5rem}section{margin-block:0 1.25rem}h2{margin:0;font-size:1.2rem}.course{color:var(--muted);margin:0 0 .6rem}.activities{grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));align-items:start;gap:0 1.25rem;display:grid}.activity,.week-section{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:10px;padding:1rem}.groups{grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.card{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:.6rem .75rem}.card[data-allocated]{border:2px solid var(--accent);background:var(--accent-bg);padding:calc(.6rem - 1px) calc(.75rem - 1px)}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem;display:flex}.group-name{font-weight:700}.tutor,.when,.free{margin:0;font-size:.9rem}.team{font-style:italic}.tutor{color:var(--muted)}.free{color:var(--free);font-weight:600}.free.full{background:var(--clash-bg);color:var(--clash);border-radius:999px;margin-top:.15rem;padding:0 .4rem;font-size:.75rem;line-height:1.6;display:inline-block}details{margin-top:.35rem;font-size:.85rem}summary{width:fit-content;color:var(--accent);cursor:pointer;font-weight:600}.meetings{color:var(--muted);overflow-wrap:anywhere;margin:.3rem 0;padding:0;list-style:none}.meetings span{display:block}.meetings li+li{margin-top:.3rem}.meeting-type{color:var(--ink);font-weight:600}button{border:1px solid var(--accent);min-height:1.5rem;color:var(--accent);font:inherit;cursor:pointer;background:#fff;border-radius:4px;padding:.2rem .6rem;font-size:.75rem;font-weight:600}button:hover,button:disabled{background:var(--accent);color:#fff}button:disabled{cursor:default}main.prose{box-sizing:border-box;border:1px solid var(--line);width:min(64rem,100% - 2rem);box-shadow:var(--shadow);background:#fff;border-radius:10px;margin-top:1.5rem;padding:1.25rem 1.5rem 1.5rem}.prose h2{margin:1.25rem 0 .4rem}.prose p,.prose ul{margin:0 0 .75rem}.prose ul{padding-inline-start:1.25rem}.week-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin:0 0 .8rem;display:flex}.week-nav a{border:1px solid var(--accent);border-radius:999px;padding:.2rem .7rem;font-size:.9rem;font-weight:600;text-decoration:none}.week-nav a:hover{background:var(--accent);color:#fff}.week-slider{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .8rem;font-size:.9rem;display:flex}.week-slider label{font-weight:600}.week-slider input{min-width:0;accent-color:var(--accent);flex:8rem}.week-slider-ends{color:var(--muted)}.week-slider button{border:1px solid var(--accent);color:var(--accent);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:.2rem .7rem;font-weight:600}.week-range{font-weight:600}.week{grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;display:grid}.day h3{border-bottom:1px solid var(--line);margin:0 0 .4rem;padding-bottom:.25rem;font-size:.95rem}.day ul{margin:0;padding:0;list-style:none}.day li{border:1px solid var(--line);background:var(--surface);overflow-wrap:anywhere;border-left:4px solid #8a8f9c;border-radius:6px;flex-direction:column;margin-bottom:.4rem;padding:.4rem .55rem;font-size:.85rem;display:flex}.day li.choosable{border-left-color:var(--accent);background:var(--accent-bg)}.day li.slot-clash{border-color:var(--clash);border-left-color:var(--clash);background:var(--clash-bg)}.day li.slot-empty{border:1px dashed var(--line);color:var(--muted);background:0 0}.slot-time,.slot-title{font-weight:600}.slot-where,.slot-note{color:var(--muted)}.slot-clash-note{background:var(--clash);color:#fff;border-radius:999px;align-self:flex-start;margin-top:.2rem;padding:0 .4rem;font-size:.75rem;font-weight:600}@media (width<=40rem){.week{grid-template-columns:1fr}}
