:root{--paper:#f8f7f2;--ink:#242923;--muted:#72766c;--line:#d9dbd0;--blue:#365d76;--green:#e8ecdf}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 Arial,Helvetica,sans-serif}.shell{max-width:1200px;padding:0 42px;margin:auto}a{color:var(--blue);text-underline-offset:3px}button,input,select{font:inherit}button,a,input,select,summary{outline-offset:4px}button{cursor:pointer}header{height:85px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font:bold 20px Georgia,serif;color:var(--ink);text-decoration:none}.brand span{font:11px monospace;letter-spacing:2px;margin-left:12px;color:var(--muted)}nav{display:flex;gap:28px;font-size:12px}nav a{text-decoration:none}.intro{padding:44px 0 26px}.eyebrow,.aside-title,.column-head{font:11px/1.5 monospace;letter-spacing:1.5px;color:var(--muted)}h1{font:normal clamp(38px,5.3vw,64px)/1.1 Georgia,serif;letter-spacing:-2px;margin:15px 0 14px}.dot{color:#70856a}.intro>p{font:21px Georgia,serif;margin:0 0 30px}.intro-bottom{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}#stats{font-family:monospace}.search-area{padding:24px;background:#efefe7;border:1px solid var(--line)}.search-label{font:16px Georgia,serif;display:block;margin-bottom:10px}.search-box{display:flex;align-items:center;background:#fffefa;border:1px solid #aeb3a6;padding:0 14px;gap:12px}.search-box>span{font-size:29px;color:var(--muted)}input{width:100%;height:48px;border:0;background:transparent;color:var(--ink);outline-offset:0}kbd{font:12px monospace;border:1px solid var(--line);padding:1px 7px;color:var(--muted)}.filters{display:grid;grid-template-columns:1fr 1.8fr 1.3fr 1.2fr 1fr;gap:16px;margin-top:18px}.filters label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}select{display:block;width:100%;margin-top:5px;border:0;border-bottom:1px solid #bfc4b7;border-radius:0;background:transparent;color:var(--ink);padding:5px 20px 7px 0;font-size:12px;text-transform:none;letter-spacing:0}.catalogue{display:grid;grid-template-columns:225px 1fr;gap:40px;margin:36px 0 60px}.aside-title{margin-bottom:15px}#themes button{border:0;background:none;padding:10px 9px;width:100%;display:flex;text-align:left;justify-content:space-between;gap:8px;font-size:12px;color:#50584e;border-radius:2px}#themes button span:last-child{font:10px monospace;align-self:center;color:var(--muted)}#themes button.active{background:var(--green);color:#263b27;font-weight:bold}#themes button:hover{background:#eeeee5}.aside-note{color:var(--muted);font:italic 14px/1.6 Georgia,serif;border-top:1px solid var(--line);padding-top:22px;margin-top:24px}.results-head{display:flex;justify-content:space-between;align-items:center}h2{font:normal 26px Georgia,serif;margin:0}.results-head p{font-size:11px;color:var(--muted);margin:6px 0 18px}.text-button{border:0;background:none;color:var(--blue);font-size:11px}#alphabet{display:flex;gap:3px;flex-wrap:wrap;padding:0 0 17px}#alphabet button{background:none;border:0;color:var(--muted);font:11px monospace;padding:4px 6px;min-width:20px}#alphabet button.active{background:var(--ink);color:white}.column-head,.course summary{display:grid;grid-template-columns:90px 1fr 55px;gap:12px}.column-head{padding:11px 8px;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);font-size:9px}.column-head span:last-child{text-align:right}.course{border-bottom:1px solid var(--line)}.course summary{padding:17px 8px;cursor:pointer;list-style:none;align-items:start}.course summary::-webkit-details-marker{display:none}.course summary:hover{background:#efefe7}.code{font:11px/1.7 monospace;color:var(--muted)}.course-title{font:17px/1.3 Georgia,serif;color:var(--blue)}.course-sub{font:11px/1.5 Arial,sans-serif;color:var(--muted);margin-top:5px}.ects{text-align:right;font:12px/1.7 monospace}.ects:after{content:' +';color:var(--muted)}details[open] .ects:after{content:' −'}.course-body{padding:0 18px 24px 110px;font-size:13px;max-width:100%;overflow-wrap:anywhere}.course-body h3{font-size:11px;text-transform:uppercase;letter-spacing:1px;margin:22px 0 7px}.course-body p{white-space:pre-line;margin:0 0 12px}.tags{display:flex;flex-wrap:wrap;gap:7px}.tags span{background:#e9ecdf;padding:3px 7px;font-size:10px}.fallback{color:#8a6b39;font-size:10px}.source{display:inline-block;margin-top:15px}.empty{padding:50px 20px;text-align:center;color:var(--muted)}.pager{display:flex;justify-content:space-between;align-items:center;padding-top:22px;font:11px monospace}.pager button{border:1px solid var(--line);background:none;padding:8px 12px;font-size:11px;color:var(--blue)}button:disabled{opacity:.35;cursor:default}.about{display:grid;grid-template-columns:1fr 1.2fr;gap:100px;border-top:1px solid var(--ink);padding:35px 0 45px}.about h2{margin:12px 0}.about h3{font-size:12px;margin-top:0}.about p{font-size:12px;color:var(--muted)}footer{border-top:1px solid var(--line);padding:20px 0 30px;display:flex;justify-content:space-between;font:10px monospace;color:var(--muted)}@media(max-width:760px){.shell{padding:0 20px}header{height:70px}nav{gap:15px;font-size:10px}.brand span{display:none}.intro{padding-top:30px}h1{letter-spacing:-1px}.intro-bottom{display:block}.intro-bottom span{display:block;margin-top:7px}.filters{grid-template-columns:1fr 1fr;gap:12px}.search-area{padding:18px}.catalogue{display:block}.aside-title{margin-bottom:8px}#themes{display:flex;overflow:auto;padding-bottom:15px;gap:6px}#themes button{width:auto;min-width:max-content;border:1px solid var(--line)}.aside-note{display:none}.results{margin-top:20px}.course summary,.column-head{grid-template-columns:73px 1fr 40px;gap:6px}.course-title{font-size:16px}.course-body{padding-left:12px}.about{grid-template-columns:1fr;gap:22px}footer{gap:14px;flex-wrap:wrap}.course-sub{font-size:10px}}
/* Keep long subject names inside the viewport, including the open menu. */
.filters>*{min-width:0}select{min-width:0;max-width:100%;text-align:left;direction:ltr}select[hidden]{display:none}.subject-field{position:relative;min-width:0}.filter-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}#subject-picker summary{display:flex;justify-content:space-between;gap:8px;list-style:none;cursor:pointer;margin-top:5px;border-bottom:1px solid #bfc4b7;padding:5px 0 7px;font-size:12px;text-align:left}#subject-picker summary::-webkit-details-marker{display:none}#subject-selected{white-space:normal;overflow-wrap:anywhere}.subject-panel{position:absolute;top:100%;left:0;width:420px;max-width:calc(100vw - 80px);z-index:10;background:#fffefa;border:1px solid #aeb3a6;box-shadow:0 8px 20px #24292318;padding:10px}.subject-panel input{height:38px;padding:6px 8px;border:1px solid var(--line);margin-bottom:8px;font-size:13px}#subject-options{max-height:300px;overflow-y:auto;overflow-x:hidden}#subject-options button{display:block;width:100%;border:0;background:none;text-align:left;white-space:normal;overflow-wrap:anywhere;padding:9px 8px;font-size:12px;color:var(--ink)}#subject-options button:hover,#subject-options button:focus-visible,#subject-options button.chosen{background:var(--green)}@media(max-width:760px){.subject-panel{left:auto;right:0;max-width:calc(100vw - 80px)}}

/* Keep long programme names inside the viewport, including the open menu. */
.filters>*{min-width:0}select{min-width:0;max-width:100%;text-align:left;direction:ltr}select[hidden]{display:none}.programme-field{position:relative;min-width:0}.filter-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}#programme-picker summary{display:flex;justify-content:space-between;gap:8px;list-style:none;cursor:pointer;margin-top:5px;border-bottom:1px solid #bfc4b7;padding:5px 0 7px;font-size:12px;text-align:left}#programme-picker summary::-webkit-details-marker{display:none}#programme-selected{white-space:normal;overflow-wrap:anywhere}.programme-panel{position:absolute;top:100%;left:0;width:420px;max-width:calc(100vw - 80px);z-index:10;background:#fffefa;border:1px solid #aeb3a6;box-shadow:0 8px 20px #24292318;padding:10px}.programme-panel input{height:38px;padding:6px 8px;border:1px solid var(--line);margin-bottom:8px;font-size:13px}#programme-options{max-height:300px;overflow-y:auto;overflow-x:hidden}#programme-options button{display:block;width:100%;border:0;background:none;text-align:left;white-space:normal;overflow-wrap:anywhere;padding:9px 8px;font-size:12px;color:var(--ink)}#programme-options button:hover,#programme-options button:focus-visible,#programme-options button.chosen{background:var(--green)}@media(max-width:760px){.programme-panel{left:auto;right:0;max-width:calc(100vw - 80px)}}

.filters{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1.8fr)}@media(max-width:760px){.filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

.brand{display:flex;align-items:center;gap:10px}.tmc-mark{display:block;width:46px;height:46px}.brand .brand-place{margin:0;font:10px monospace;letter-spacing:2px}.result-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:flex-end}#share-status{font-size:10px;color:var(--muted)}@media(max-width:760px){.tmc-mark{width:38px;height:38px}.result-actions{gap:5px;max-width:125px}.brand .brand-place{display:inline}}

.picker-close{display:block;margin:0 0 8px auto;border:0;background:transparent;color:var(--blue);font-size:12px;padding:5px 8px}
@media(max-width:760px){
.subject-field:has(details[open]),.programme-field:has(details[open]){grid-column:1/-1}
.subject-panel,.programme-panel{position:static;inset:auto;width:100%;max-width:100%;margin-top:8px;box-shadow:none;padding:12px}
.subject-panel input,.programme-panel input{font-size:16px;height:44px}
#subject-options,#programme-options{max-height:45vh;max-height:45svh;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
#subject-options button,#programme-options button{min-height:44px;font-size:14px;padding:12px 8px}
#subject-picker summary,#programme-picker summary{min-height:44px;align-items:center}
.picker-close{min-height:40px}
}
