:root{--colour-bg:oklch(98.5% .003 90);--colour-text:oklch(25% .01 90);--colour-text-muted:oklch(45% .01 90);--colour-link:oklch(48% .16 250);--colour-link-hover:oklch(38% .16 250);--colour-gold:oklch(62% .14 75);--colour-gold-light:oklch(92% .04 80);--colour-blocking:oklch(52% .19 25);--colour-warning:oklch(55% .12 75);--colour-rule:oklch(87% .01 90);--colour-header-bg:oklch(22% .01 90);--colour-header-text:oklch(95% 0 0);--colour-surface:oklch(98% .005 90);--colour-input-border:oklch(78% .01 90);--colour-btn-bg:oklch(22% .01 90);--colour-btn-text:oklch(98% 0 0);--colour-btn-hover:oklch(35% .01 90)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--colour-bg:oklch(18% .01 260);--colour-text:oklch(88% .01 90);--colour-text-muted:oklch(65% .01 90);--colour-link:oklch(68% .14 250);--colour-link-hover:oklch(76% .14 250);--colour-gold:oklch(72% .12 75);--colour-gold-light:oklch(28% .04 80);--colour-blocking:oklch(72% .16 25);--colour-warning:oklch(78% .11 75);--colour-rule:oklch(32% .01 260);--colour-header-bg:oklch(14% .01 260);--colour-header-text:oklch(92% 0 0);--colour-surface:oklch(22% .01 260);--colour-input-border:oklch(38% .01 260);--colour-btn-bg:oklch(88% .01 90);--colour-btn-text:oklch(18% 0 0);--colour-btn-hover:oklch(78% .01 90)}}:root[data-theme=dark]{--colour-bg:oklch(18% .01 260);--colour-text:oklch(88% .01 90);--colour-text-muted:oklch(65% .01 90);--colour-link:oklch(68% .14 250);--colour-link-hover:oklch(76% .14 250);--colour-gold:oklch(72% .12 75);--colour-gold-light:oklch(28% .04 80);--colour-blocking:oklch(72% .16 25);--colour-warning:oklch(78% .11 75);--colour-rule:oklch(32% .01 260);--colour-header-bg:oklch(14% .01 260);--colour-header-text:oklch(92% 0 0);--colour-surface:oklch(22% .01 260);--colour-input-border:oklch(38% .01 260);--colour-btn-bg:oklch(88% .01 90);--colour-btn-text:oklch(18% 0 0);--colour-btn-hover:oklch(78% .01 90)}*,:before,:after{box-sizing:border-box}body{color:var(--colour-text);background:var(--colour-bg);margin:0;padding:0;font-family:system-ui,-apple-system,sans-serif;font-size:1rem;line-height:1.6}.site-header{background:var(--colour-header-bg);border-bottom:3px solid var(--colour-gold);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex}.site-header .site-title{color:var(--colour-header-text);letter-spacing:.02em;font-size:1.125rem;font-weight:600;text-decoration:none}.site-nav{gap:.25rem;display:flex}.site-nav a{color:var(--colour-header-text);border-radius:3px;align-items:center;min-height:44px;padding:.4rem .75rem;font-size:.875rem;text-decoration:none;transition:background-color .15s;display:inline-flex}@media (prefers-reduced-motion:reduce){.site-nav a{transition:none}}.site-nav a:hover,.site-nav a:focus-visible{background:var(--colour-btn-hover)}.site-nav a[aria-current=page]{border-bottom:2px solid var(--colour-gold)}main{max-width:56rem;margin:0 auto;padding:1.5rem}a{color:var(--colour-link)}a:hover,a:focus-visible{color:var(--colour-link-hover)}h1{border-bottom:2px solid var(--colour-gold);margin:.5rem 0 .75rem;padding-bottom:.5rem;font-size:1.75rem;font-weight:600}h2{border-bottom:1px solid var(--colour-rule);margin:2rem 0 .75rem;padding-bottom:.375rem;font-size:1.25rem;font-weight:600}h3{margin:1.25rem 0 .5rem;font-size:1.0625rem;font-weight:600}p{margin:0 0 .75rem}.intro-box{background:var(--colour-gold-light);border-left:3px solid var(--colour-gold);border-radius:0 4px 4px 0;margin-bottom:1.5rem;padding:1rem 1.25rem}.intro-box p{margin:0 0 .5rem}.intro-box p:last-child{margin-bottom:0}form{flex-wrap:wrap;align-items:center;gap:.5rem;margin-block:1rem;display:flex}input{min-width:10rem;font:inherit;border:1px solid var(--colour-input-border);background:var(--colour-bg);color:var(--colour-text);border-radius:3px;flex:1;padding:.5rem .75rem}input:focus-visible{outline:2px solid var(--colour-link);outline-offset:1px}select{min-height:44px;font:inherit;border:1px solid var(--colour-input-border);background:var(--colour-bg);color:var(--colour-text);border-radius:3px;padding:.5rem .75rem}select:focus-visible{outline:2px solid var(--colour-link);outline-offset:1px}button{font:inherit;background:var(--colour-btn-bg);min-width:44px;min-height:44px;color:var(--colour-btn-text);cursor:pointer;border:1px solid #0000;border-radius:3px;padding:.5rem 1.25rem;font-weight:500;transition:background-color .15s}@media (prefers-reduced-motion:reduce){button{transition:none}}button:hover,button:focus-visible{background:var(--colour-btn-hover)}button:focus-visible{outline:2px solid var(--colour-link);outline-offset:2px}.remove-button{color:var(--colour-blocking);border:1px solid var(--colour-blocking);background:0 0;min-height:44px;padding:.3rem .75rem;font-size:.8125rem}.remove-button:hover,.remove-button:focus-visible{background:var(--colour-blocking);color:var(--colour-btn-text)}[data-severity=blocking]{border-left:3px solid var(--colour-blocking);padding-left:.6rem}[data-severity=warning]{border-left:3px solid var(--colour-warning);padding-left:.6rem}[data-status=unmet],[data-status=exceeded]{font-weight:600}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--colour-rule);text-align:left;vertical-align:top;overflow-wrap:anywhere;padding:.5rem .625rem}thead th{background:var(--colour-surface);text-transform:uppercase;letter-spacing:.04em;color:var(--colour-text-muted);border-bottom:2px solid var(--colour-gold);font-size:.8125rem;font-weight:600}tbody th{font-weight:600}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.catalogue-table{min-width:40rem;font-size:.8125rem}.catalogue-table th,.catalogue-table td{padding:.3rem .25rem}.catalogue-table thead th,.catalogue-table tbody th{white-space:nowrap}.catalogue-table td:nth-child(2){min-width:3.5rem}.catalogue-table abbr{text-decoration-style:dotted}.course-row th,.course-row td{border-bottom:none}.requisite-row td{border-bottom:1px solid var(--colour-rule);padding-block:0 .6rem}.requisite-row summary{cursor:pointer;min-height:44px;color:var(--colour-link);align-items:center;padding-inline:.5rem;font-size:.8125rem;display:flex}.requisite-row summary:before{content:"▸ "}.requisite-row details[open] summary:before{content:"▾ "}.requisite-row p{color:var(--colour-text);margin:.5rem 0 0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.catalogue-add-form{flex-wrap:nowrap;align-items:center;gap:.25rem;margin-block:0;display:flex}.catalogue-term-select{min-height:44px;padding:.2rem;font-size:.75rem}.catalogue-add-button{min-width:44px;min-height:44px;padding:0;font-size:1rem;font-weight:600}.progress-summary{background:var(--colour-surface);border:1px solid var(--colour-rule);border-radius:4px;margin-bottom:1rem;padding:1rem 1.25rem;font-size:1.125rem}.progress-summary strong{color:var(--colour-gold)}ul{padding-left:1.25rem}li{margin-bottom:.375rem}.site-footer{border-top:1px solid var(--colour-rule);text-align:center;color:var(--colour-text-muted);margin-top:3rem;padding:1rem 1.5rem;font-size:.8125rem}
