:root{--gold:#be830e;--gold-tint:#f5edde;--gold-text:#8a5c10;--ink:#1a1a1a;--ink-soft:#55524b;--black:#111;--border:#ddd;--page-max:100rem;--side-pad:clamp(1rem, 4vw, 3rem)}*{box-sizing:border-box}body{color:var(--ink);background:#fff;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6}main{max-width:var(--page-max);padding:2rem var(--side-pad) 4rem;margin:0 auto}h1{border-block-end:3px solid var(--gold);padding-block-end:.4rem;display:inline-block}a{color:var(--gold-text)}.site-header{background:var(--black);border-block-end:3px solid var(--gold)}.header-inner{max-width:var(--page-max);padding:1.1rem var(--side-pad) 0;text-align:center;flex-direction:column;align-items:center;gap:.6rem;margin:0 auto;display:flex}.header-inner .brand{color:#fff;letter-spacing:.02em;font-size:1.3rem;font-weight:800;text-decoration:none}.primary-nav{border-block-start:1px solid #ffffff26;flex-wrap:wrap;justify-content:center;gap:2.5rem;width:100%;padding-block:.7rem .9rem;display:flex}.primary-nav a{color:#fff;border-radius:.25rem;padding:.35rem 1rem;font-size:1.05rem;font-weight:700;text-decoration:none}.primary-nav a:hover,.primary-nav a:focus-visible{color:var(--black);background:var(--gold)}.banner{border-radius:.25rem;margin-block-end:1.25rem;padding:.7rem 1rem;font-weight:600}.banner-error{color:#7a1410;background:#fdecea;border:1px solid #e3a29c}form{flex-wrap:wrap;align-items:center;gap:.5rem;margin-block:1rem;display:flex}input{min-width:12rem;font:inherit;flex:1;padding:.4rem .6rem}button{font:inherit;border:1px solid var(--black);background:var(--black);color:#fff;cursor:pointer;border-radius:.25rem;padding:.45rem 1.1rem;font-weight:600}button:hover,button:focus-visible{background:var(--gold);border-color:var(--gold);color:var(--black)}button.button-secondary{color:var(--ink);background:#fff;border-color:#999}button.button-secondary:hover,button.button-secondary:focus-visible{background:var(--gold-tint);border-color:var(--gold);color:var(--ink)}.cta-row{flex-wrap:wrap;gap:.75rem;margin-block:1.25rem;display:flex}.button{background:var(--black);color:#fff;border:1px solid var(--black);border-radius:.25rem;padding:.55rem 1.2rem;font-weight:600;text-decoration:none;display:inline-block}.button:hover,.button:focus-visible{background:var(--gold);border-color:var(--gold);color:var(--black)}.button-secondary{color:var(--ink);background:#fff;border-color:#999}.button-secondary:hover,.button-secondary:focus-visible{background:var(--gold-tint);border-color:var(--gold)}.enrolment-count{color:var(--ink-soft);font-size:.9rem}button.button-enrolled,.button-enrolled{color:#fff;background:#1257c2;border-color:#1257c2}button.button-enrolled:hover,button.button-enrolled:focus-visible,.button-enrolled:hover,.button-enrolled:focus-visible{color:#fff;background:#0d3f96;border-color:#0d3f96}.course-list{gap:.85rem;padding:0;list-style:none;display:grid}.course-card{border-inline-start:6px solid;border-block-end:1px solid var(--border);background:#fff;border-radius:.25rem;align-items:center;gap:1.5rem;padding:1.1rem 1.5rem;display:flex;position:relative}.course-card-link{min-width:0;color:inherit;flex:1;grid-template-columns:minmax(9rem,13rem) 1fr;align-items:center;gap:1.5rem;text-decoration:none;display:grid;position:static}.course-card-link:after{content:"";position:absolute;inset:0}.course-card-link:hover .course-card-title,.course-card-link:focus-visible .course-card-title{color:var(--gold-text);text-decoration:underline}.course-card-heading{gap:.15rem;display:grid}.course-card-code{color:var(--ink);margin:0;font-size:1.05rem;font-weight:800}.course-card-title{color:var(--ink-soft);border:none;margin:0;font-size:.85rem;font-weight:600;display:block}.course-card-summary{color:var(--ink);margin:0;font-size:.92rem}.course-card-action{z-index:1;flex:none;margin:0;position:relative}@media (width<=40rem){.course-card{flex-direction:column;align-items:stretch}.course-card-link{grid-template-columns:1fr}}.course-facts{background:var(--gold-tint);border-radius:.25rem;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1rem;margin-block:1.25rem;padding:1rem 1.25rem;display:grid}.course-facts h2{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);border:none;margin:0 0 .2rem;font-size:.8rem;display:block}.course-facts p{margin:0}.assessment-list{gap:.6rem;padding:0;list-style:none;display:grid}.assessment-list li{border-block-end:1px solid var(--border);grid-template-columns:minmax(10rem,16rem) 3.5rem 1fr;align-items:baseline;gap:1rem;padding:.5rem 0;display:grid}.assessment-name{font-weight:700}.assessment-weight{color:var(--gold-text);font-weight:700}.assessment-description{color:var(--ink-soft)}@media (width<=40rem){.assessment-list li{grid-template-columns:1fr;gap:.15rem}}.timetable-layout{grid-template-columns:minmax(22rem,30rem) 1fr;align-items:start;gap:1.5rem;display:grid}@media (width<=70rem){.timetable-layout{grid-template-columns:1fr}}.course-panel{align-content:start;gap:.6rem;display:grid}.course-block{background:var(--gold-tint);border-inline-start:5px solid;border-radius:.25rem;padding:.6rem .8rem}.course-block h2{border:none;margin:0 0 .3rem;font-size:.95rem;line-height:1.3;display:block}.course-block>form{margin:.4rem 0 0}.course-block button.button-secondary{padding:.25rem .7rem;font-size:.78rem}.session-row{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.4rem;margin:.3rem 0;font-size:.8rem;display:flex;overflow:hidden}.swatch{border-radius:50%;flex:none;width:.7rem;height:.7rem;display:inline-block}.tutorial-options{gap:.25rem;margin:.3rem 0;padding:0;list-style:none;display:grid}.tutorial-option form{border:1px solid var(--border);background:#fff;border-radius:.2rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;margin:0;padding:.3rem .5rem;font-size:.8rem}.tutorial-option-label{flex:auto;min-width:10rem}.tutorial-option button{flex:none;padding:.2rem .65rem;font-size:.78rem}.current-pick{color:#1f7a3d;flex:none;font-size:.75rem}.grid-wrap{overflow-x:auto}.timetable-grid{grid-template-columns:2.75rem repeat(5,minmax(7.5rem,1fr));grid-template-rows:auto var(--grid-height);min-width:40rem;display:grid}.day-head{text-align:center;border-block-end:3px solid var(--gold);padding-block:.5rem;font-weight:700}.time-axis{position:relative}.hour-mark{color:var(--ink-soft);text-align:end;padding-inline-end:.4rem;font-size:.7rem;position:absolute;inset-inline:0;transform:translateY(-.6em)}.day-col{background-image:repeating-linear-gradient(#f0f0f0 0 1px,#0000 1px 60px);border-inline-start:1px solid #e6e6e6;position:relative}.block{box-sizing:border-box;color:#fff;border-radius:.2rem;padding:.2rem .4rem;font-size:.72rem;line-height:1.2;position:absolute;overflow:hidden}.block.conflict{box-shadow:inset 0 0 0 2px #b3261e}.clash-flag{font-weight:700;display:block}.preview{border:2px dashed var(--gold);box-sizing:border-box;pointer-events:none;background:#be830e40;position:absolute;inset-inline:0}.preview.conflict{background:#b3261e40;border-color:#b3261e}
