:root{--gold:#be830e;--gold-dark:#8f6209;--black:#000;--ink:#1a1a1a;--grey:#767676;--rule:#ebebeb;--tint:#faf6ef}*{box-sizing:border-box}body{color:var(--ink);background:#fff;margin:0;font-family:Public Sans,system-ui,-apple-system,sans-serif;line-height:1.6}nav{background:var(--black);border-bottom:4px solid var(--gold)}.nav-inner{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem 1.5rem;max-width:68rem;margin:0 auto;padding:.9rem 1.5rem;display:flex}.wordmark{color:#fff;letter-spacing:.08em;text-transform:uppercase;font-size:1.05rem;font-weight:700}.nav-links{gap:1.25rem;display:flex}nav a{color:#fff;border-bottom:2px solid #0000;text-decoration:none}nav a:hover,nav a:focus-visible{border-bottom-color:var(--gold)}main{max-width:68rem;margin:0 auto;padding:2rem 1.5rem 4rem}h1{margin:.5rem 0 .75rem;font-size:clamp(2rem,5vw,2.75rem);line-height:1.15}h2{border-bottom:3px solid var(--gold);margin-top:2.5rem;padding-bottom:.4rem;font-size:1.4rem}h3{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;margin:1.25rem 0 .5rem;font-size:1.05rem;display:flex}.lede{max-width:48rem;font-size:1.05rem}a{color:#0b4ea2}#error{background:var(--tint);border-left:5px solid var(--gold);margin:1rem 0;padding:.75rem 1rem;font-weight:600}.session-group{margin-bottom:1.25rem}.session-group ul{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.session-group li{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;padding:.6rem 0;display:flex}.cap{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:700}.cap-note,.note{color:var(--grey);font-size:.9rem;font-weight:400}.note{border-top:1px solid var(--rule);max-width:48rem;margin-top:2.5rem;padding-top:1rem}#search{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1.25rem;margin:1.25rem 0;display:flex}.field{flex-direction:column;gap:.25rem;margin:0;display:flex}.field:first-child{flex:18rem}label{letter-spacing:.04em;text-transform:uppercase;color:var(--grey);font-size:.8rem;font-weight:700}input,select{font:inherit;border:1px solid var(--grey);color:var(--ink);background:#fff;padding:.45rem .6rem}button{font:inherit;border:1px solid var(--gold-dark);background:var(--gold);color:var(--black);cursor:pointer;padding:.45rem 1.1rem;font-weight:700}button:hover:not(:disabled){background:var(--gold-dark);color:#fff}button:disabled{background:var(--rule);color:var(--grey);cursor:not-allowed;border-color:#ccc}button.ghost{border-color:var(--grey);color:var(--ink);background:#fff;padding:.3rem .8rem;font-weight:600}button.ghost:hover{background:var(--black);border-color:var(--black);color:#fff}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}#result-count{font-weight:600}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:52rem}th,td{text-align:left;border-bottom:1px solid var(--rule);vertical-align:top;padding:.55rem .7rem}thead th{background:var(--black);color:#fff;letter-spacing:.04em;text-transform:uppercase;border-bottom:none;font-size:.8rem}tbody tr:nth-child(2n){background:#fafafa}.places{font-variant-numeric:tabular-nums;white-space:nowrap}.chip{background:var(--tint);border:1px solid var(--gold);white-space:nowrap;margin:0 .25rem .25rem 0;padding:.1rem .5rem;font-size:.8rem;display:inline-block}.chip--none{border-color:var(--rule);color:var(--grey);background:#fff}.chip--blocked{border-color:var(--black);color:var(--black);background:#fff;font-weight:700}#used-code{background:var(--tint);border-left:5px solid var(--black);margin:1rem 0;padding:.75rem 1rem}#completed{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}#completed li{border:1px solid var(--rule);align-items:center;gap:.5rem;padding:.25rem .5rem;display:flex}#completed form,#add-completed{margin:0}#add-completed{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1.25rem;margin-bottom:1rem;display:flex}.requisites{max-width:20rem}.requisites summary{cursor:pointer}.requisites p{margin:.4rem 0 0;font-size:.85rem}.code-entry{min-width:9rem;padding:.3rem .4rem;font-size:.85rem}form.enrol{flex-wrap:wrap;align-items:center;gap:.4rem;margin:0;display:flex}form.enrol select{padding:.3rem .4rem;font-size:.85rem}
