/* Shared public subject discovery. Search inputs remain borderless. */
.ve-subject-picker { --subject-ink:#071a3d; --subject-muted:#65718a; --subject-accent:#b61946; position:relative; min-width:0; }
.ve-subject-picker [hidden] { display:none!important; }
.ve-subject-picker__control { display:flex; align-items:center; gap:8px; min-width:0; padding:0 6px 0 12px; border-radius:10px; background:#f5f7fb; transition:background-color 160ms; }
.ve-subject-picker__search-icon { flex:none; color:#7e8ba3; }
.ve-public-site .ve-subject-picker input[data-subject-query] { flex:1; width:100%; min-width:0; min-height:48px; padding:8px 0; border:0; border-radius:0; background:transparent; box-shadow:none; font-size:15px; }
.ve-public-site .ve-subject-picker .ve-subject-picker__control input[data-subject-query]:focus { background:transparent; }
.ve-subject-picker__control:focus-within { background:#fff0f5; }
.ve-subject-picker.is-open .ve-subject-picker__search-icon { color:var(--subject-accent); }
.ve-subject-picker.is-selected input[data-subject-query] { color:#071a3d; font-weight:700; }
.ve-public-site .ve-subject-picker :is(.ve-subject-picker__clear,.ve-subject-picker__toggle) { display:grid; place-items:center; flex-shrink:0; width:44px; height:44px; padding:0; border:0; border-radius:8px; background:transparent; color:#65718a; font-size:22px; cursor:pointer; }
.ve-public-site .ve-subject-picker :is(.ve-subject-picker__clear,.ve-subject-picker__toggle):hover { background:#fff0f5; color:#ac1740; }
.ve-subject-picker__toggle svg { transition:transform 160ms; }
.ve-subject-picker.is-open .ve-subject-picker__toggle svg { transform:rotate(180deg); }
.ve-subject-picker__panel { position:absolute; top:calc(100% + 10px); left:0; right:auto; z-index:40; width:min(680px,calc(100vw - 80px)); padding:0; border:1px solid #e5e9f1; border-radius:16px; background:#fff; box-shadow:0 24px 64px #071a3d26,0 4px 12px #071a3d08; color:var(--subject-ink); text-align:left; animation:ve-subject-reveal 160ms ease-out; }
.ve-subject-picker__heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; border-radius:16px 16px 0 0; background:linear-gradient(115deg,#f6f8fc,#fff8fb); }
.ve-subject-picker__heading > div { display:flex; align-items:baseline; flex-wrap:wrap; gap:2px 10px; }
.ve-subject-picker__heading strong { display:block; font-size:14px; font-weight:800; line-height:1.5; color:var(--subject-ink); }
.ve-subject-picker__heading span:not(.ve-subject-picker__badge) { display:block; color:var(--subject-muted); font-size:11px; line-height:1.5; }
.ve-subject-picker__badge { flex:none; padding:5px 8px; border-radius:6px; background:#fff; color:#52617c; font-size:10px; font-weight:800; letter-spacing:.2px; }
.ve-subject-picker__options { max-height:304px; margin:10px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#cbd3e1 transparent; scroll-padding:8px; }
.ve-subject-picker__options.is-discovery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:10px; }
.ve-subject-picker__group { min-width:0; padding:0 4px 4px; border-radius:10px; }
.ve-subject-picker__group[data-kind="Study Area"] { background:#f5f7fb; }
.ve-subject-picker__group + .ve-subject-picker__group { margin-top:8px; }
.ve-subject-picker__options.is-discovery .ve-subject-picker__group { margin-top:0; }
.ve-subject-picker__group-title { padding:9px 8px 7px; color:#65718a; font-size:10px; font-weight:800; line-height:1.4; letter-spacing:1px; text-transform:uppercase; }
.ve-subject-picker__option { display:flex; align-items:center; gap:10px; min-height:46px; padding:6px 8px; border-radius:9px; cursor:pointer; transition:background-color 120ms; }
.ve-subject-picker__option-icon { display:grid; place-items:center; flex:0 0 30px; height:30px; border-radius:8px; background:#fff0f5; color:var(--subject-accent); }
.ve-subject-picker__option-icon svg { width:16px; height:16px; }
.ve-subject-picker__group[data-kind="Study Area"] .ve-subject-picker__option-icon { background:#e8eef7; color:#31577f; }
.ve-subject-picker__option-copy { flex:1; min-width:0; }
.ve-subject-picker__option strong { display:block; color:var(--subject-ink); font-size:13px; font-weight:700; line-height:1.4; }
.ve-subject-picker__option small { display:block; margin-top:1px; color:var(--subject-muted); font-size:11px; line-height:1.35; }
.ve-subject-picker__option :is(strong,small) { overflow-wrap:anywhere; }
.ve-subject-picker__option:hover,.ve-subject-picker__option[aria-selected="true"] { background:#fcebf2; }
.ve-subject-picker__option:is(:hover,[aria-selected="true"]) .ve-subject-picker__option-icon { background:#b61946; color:#fff; }
.ve-subject-picker__mark { flex:none; width:16px; color:#a1adc0; font-size:15px; text-align:center; }
.ve-subject-picker__option:is(:hover,[aria-selected="true"],.is-chosen) .ve-subject-picker__mark { color:var(--subject-accent); }
.ve-subject-picker__footer { display:flex; align-items:center; flex-wrap:wrap; gap:0 8px; padding:3px 12px; border-top:1px solid #edf0f5; background:#fcfdff; border-radius:0 0 16px 16px; }
.ve-public-site .ve-subject-picker__footer button { min-height:44px; padding:6px; border:0; border-radius:6px; background:transparent; color:var(--subject-accent); font-size:11px; font-weight:800; text-align:left; cursor:pointer; }
.ve-subject-picker__footer button:hover { background:#fff0f5; }
.ve-subject-picker__keyboard { display:flex; align-items:center; gap:4px; margin-left:auto; color:#7b879b; font-size:10px; }
.ve-subject-picker__keyboard kbd { display:inline-grid; place-items:center; min-width:18px; height:20px; margin:0; padding:0 3px; border:1px solid #e2e7ef; border-radius:4px; background:#fff; color:#64718a; font:inherit; }
.ve-subject-picker__panel.is-browsing .ve-subject-picker__keyboard { display:none; }
.ve-subject-picker__empty { padding:20px 12px; color:#566078; font-size:13px; line-height:1.7; }
.ve-public-site .ve-subject-picker__status { margin:0; color:#ac1740; font-size:12px; line-height:1.6; }
.ve-public-site .ve-subject-picker__status.is-loading { position:absolute; width:1px; height:1px; padding:0; margin:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.ve-subject-picker__status:not(:empty) { margin-top:6px; }
.ve-public-site .ve-subject-picker__status button { min-height:44px; padding:4px 8px; border:0; border-radius:6px; background:#fff0f5; color:#ac1740; font-weight:800; cursor:pointer; }
.ve-public-site .ve-subject-picker :is(button,[role="listbox"]):focus-visible { outline:3px solid #ac1740; outline-offset:3px; }
.ve-subject-picker:focus-within > label { color:#ac1740; }
.ve-public-site .home-page .ve-hero .ve-explorer-field select:focus { background-color:transparent; }
.ve-subject-picker__loading { display:flex; align-items:center; justify-content:center; gap:10px; min-height:168px; color:var(--subject-muted); font-size:13px; }
.ve-subject-picker__loading::before { content:""; width:17px; height:17px; border:2px solid #f2dce5; border-top-color:var(--subject-accent); border-radius:50%; animation:ve-subject-spin 700ms linear infinite; }
.ve-subject-picker__level-error { color:#ac1740; font-size:12px; line-height:1.6; }
.ve-finder-course-query { margin-top:20px; }
.ve-search-errors { margin-bottom:20px; padding:16px 20px; border-radius:12px; background:#fff0f5; color:#ac1740; font-size:14px; }
.ve-filter-chips { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 20px; }

/* The study-level companion keeps the native select as its submitted value. */
.ve-level-picker { position:relative; min-width:0; }
.ve-level-picker [hidden] { display:none!important; }
.ve-public-site .ve-level-picker select.ve-level-picker__native { position:absolute; top:0; left:0; width:1px; height:1px; min-height:1px; padding:0; margin:0; border:0; opacity:0; clip-path:inset(50%); pointer-events:none; }
.ve-public-site .ve-level-picker__trigger { display:flex; align-items:center; gap:10px; width:100%; min-height:48px; padding:8px 12px; border:0; border-radius:10px; background:#f5f7fb; color:#65718a; font:inherit; font-size:15px; text-align:left; cursor:pointer; box-shadow:none; transition:background-color 160ms,color 160ms; }
.ve-public-site .ve-level-picker__trigger:is(:hover,:focus-visible),.ve-level-picker.is-open .ve-level-picker__trigger { background:#fff0f5; }
/* Keep the entire home search field hovered while crossing its label and controls. */
.home-page [data-explorer-panel="courses"] > .ve-explorer-field:hover:not(:focus-within),
.home-page [data-explorer-panel="courses"] > .ve-explorer-field:hover .ve-level-picker__trigger { background:#fff0f5; }
.ve-public-site .ve-level-picker .ve-level-picker__trigger:focus-visible { outline:none; box-shadow:none; }
.ve-level-picker__leading { position:relative; display:grid; place-items:center; flex:none; width:20px; height:20px; color:#7e8ba3; }
.ve-level-picker__leading svg { width:20px; height:20px; }
.ve-level-picker__value { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; line-height:1.5; }
.ve-level-picker.is-selected .ve-level-picker__value { color:#071a3d; font-weight:700; }
.ve-level-picker:is(.is-open,.is-selected) .ve-level-picker__leading,.ve-level-picker__trigger:focus-visible .ve-level-picker__leading { color:#b61946; }
.ve-level-picker__chevron { flex:none; width:7px; height:7px; margin:0 4px 4px 6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); transition:transform 160ms; }
.ve-level-picker.is-open .ve-level-picker__chevron { transform:rotate(225deg); margin-top:6px; }
.ve-level-picker__trigger:disabled { color:#8590a4; cursor:wait; }
.ve-level-picker__trigger[aria-invalid="true"] { color:#ac1740; background:#fff0f5; }
.ve-level-picker__panel { position:absolute; top:calc(100% + 12px); right:0; z-index:45; width:100%; border:1px solid #e5e9f1; border-radius:16px; background:#fff; box-shadow:0 24px 64px #071a3d26,0 4px 12px #071a3d08; color:#071a3d; text-align:left; animation:ve-subject-reveal 160ms ease-out; }
.home-page .ve-level-picker__panel { min-width:320px; }
.ve-level-picker__heading { padding:14px 16px; border-radius:16px 16px 0 0; background:linear-gradient(115deg,#f6f8fc,#fff8fb); }
.ve-level-picker__heading strong { display:block; color:#071a3d; font-size:14px; font-weight:800; line-height:1.5; }
.ve-level-picker__heading span { display:block; margin-top:2px; color:#65718a; font-size:11px; line-height:1.5; overflow-wrap:anywhere; }
.ve-level-picker__options { max-height:320px; margin:8px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#cbd3e1 transparent; }
.ve-level-picker__option { display:flex; align-items:center; gap:12px; min-height:58px; padding:9px 10px; border-radius:10px; cursor:pointer; transition:background-color 120ms; }
.ve-level-picker__option-icon { display:grid; place-items:center; flex:0 0 34px; height:34px; border-radius:9px; background:#eef2f9; color:#31577f; }
.ve-level-picker__option-icon svg { width:19px; height:19px; }
.ve-level-picker__option-copy { flex:1; min-width:0; }
.ve-level-picker__option strong { display:block; color:#071a3d; font-size:13px; font-weight:700; line-height:1.45; overflow-wrap:anywhere; }
.ve-level-picker__option small { display:block; margin-top:2px; color:#65718a; font-size:11px; line-height:1.4; overflow-wrap:anywhere; }
.ve-level-picker__mark { display:grid; place-items:center; flex:none; width:18px; height:18px; border-radius:50%; color:#b61946; font-size:12px; font-weight:800; }
.ve-level-picker__option:is(:hover,.is-active,[aria-selected="true"]) { background:#fff0f5; }
.ve-level-picker__option:is(:hover,.is-active,[aria-selected="true"]) .ve-level-picker__option-icon { background:#b61946; color:#fff; }
.ve-level-picker__option[aria-selected="true"] .ve-level-picker__mark { background:#f5dce5; }
.ve-level-picker.is-loading .ve-level-picker__leading svg { opacity:0; }
.ve-level-picker.is-loading .ve-level-picker__leading::after { content:""; position:absolute; width:17px; height:17px; border:2px solid #f2dce5; border-top-color:#b61946; border-radius:50%; animation:ve-subject-spin 700ms linear infinite; }
.ve-explorer-field:has(.ve-level-picker.is-open) > label { color:#ac1740; }
@keyframes ve-subject-reveal { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:translateY(0); } }
@keyframes ve-subject-spin { to { transform:rotate(360deg); } }
@media (max-width:767px) {
  .home-page .ve-level-picker__panel { min-width:0; }
  .ve-level-picker__panel { top:calc(100% + 8px); }
  .ve-public-site .ve-level-picker__trigger { font-size:16px; padding-inline:8px; }
  .ve-level-picker__heading { padding:12px; }
  .ve-level-picker__heading strong { font-size:13px; }
  .ve-level-picker__options { max-height:280px; margin:6px; }
  .ve-level-picker__option { gap:8px; min-height:56px; padding:8px 6px; }
  .ve-level-picker__option-icon { flex-basis:30px; height:30px; }
  .ve-subject-picker__panel { top:calc(100% + 8px); right:0; width:auto; }
  .ve-subject-picker__options { max-height:272px; margin:6px; }
  .ve-subject-picker__options.is-discovery { display:block; }
  .ve-subject-picker__options.is-discovery .ve-subject-picker__group + .ve-subject-picker__group { margin-top:8px; }
  .ve-subject-picker__heading { padding:12px; }
  .ve-subject-picker__heading strong { font-size:13px; }
  .ve-subject-picker__heading span:not(.ve-subject-picker__badge) { display:none; }
  .ve-subject-picker__badge,.ve-subject-picker__keyboard { display:none; }
  .ve-subject-picker__option { gap:8px; min-height:48px; padding:7px 6px; }
  .ve-subject-picker__option strong { font-size:13px; }
  .ve-subject-picker__option-icon { flex-basis:28px; height:28px; }
  .ve-subject-picker__control { gap:5px; padding-inline:8px 4px; }
  .ve-public-site .ve-subject-picker input[data-subject-query] { font-size:16px; }
  .ve-subject-picker__search-icon { width:17px; height:17px; }
}
@media (max-width:639px) {
  .ve-uk-search__filters { grid-template-columns:minmax(0,1fr); }
  .ve-uk-search__filters .ve-uk-button { width:100%; }
}
@media (prefers-reduced-motion:reduce) {
  .ve-subject-picker *, .ve-subject-picker__panel, .ve-subject-picker__loading::before { animation:none!important; transition:none!important; }
  .ve-level-picker *, .ve-level-picker__leading::after { animation:none!important; transition:none!important; }
}

/* The university picker shares the subject and level visual language. */
.ve-university-picker { position:relative; min-width:0; color:#091b40; }
.ve-university-picker [hidden] { display:none!important; }
.ve-university-picker__control { display:flex; align-items:center; gap:8px; min-width:0; padding:0 4px 0 12px; border-radius:10px; background:#f5f7fb; }
.ve-university-picker__control > svg { flex:none; color:#7e8ba3; }
.ve-public-site .ve-university-picker input[data-university-query] { flex:1; min-width:0; width:100%; min-height:48px; padding:8px 0; border:0; border-radius:0; outline:none; box-shadow:none; background:transparent; color:#65718a; font-size:15px; }
.ve-public-site .ve-university-picker input[data-university-query]:focus { background:transparent; box-shadow:none; outline:none; }
.ve-university-picker__control:focus-within { background:#fff0f5; }
.ve-university-picker.is-selected input[data-university-query] { color:#091b40; font-weight:700; }
.ve-university-picker.is-open .ve-university-picker__control > svg { color:#b61946; }
.ve-public-site .ve-university-picker__control button { display:grid; place-items:center; flex:none; width:44px; min-height:44px; padding:0; border:0; border-radius:8px; background:transparent; color:#65718a; font-size:22px; cursor:pointer; }
.ve-university-picker.is-open [data-university-toggle] svg { transform:rotate(180deg); }
.ve-university-picker__panel { position:absolute; z-index:45; top:calc(100% + 10px); left:0; width:max(100%,420px); max-width:calc(100vw - 64px); border:1px solid #e5e9f1; border-radius:16px; background:#fff; box-shadow:0 24px 64px #071a3d26,0 4px 12px #071a3d08; text-align:left; }
.ve-university-picker__heading { border-radius:16px 16px 0 0; padding:14px 16px; background:linear-gradient(115deg,#f6f8fc,#fff8fb); }
.ve-university-picker__heading strong { display:block; color:#091b40; font-size:14px; }
.ve-university-picker__heading span { display:block; color:#65718a; margin-top:3px; font-size:11px; }
.ve-university-picker__options { margin:8px; max-height:340px; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; font-size:13px; }
.ve-university-picker__option { display:flex; align-items:center; gap:12px; padding:10px; border-radius:10px; min-height:64px; cursor:pointer; }
.ve-university-picker__option:is(:hover,.is-active,[aria-selected="true"]) { background:#fff0f5; }
.ve-university-picker__option > span:nth-child(2) { flex:1; min-width:0; }
.ve-university-picker__option strong { display:block; font-size:13px; line-height:1.5; color:#091b40; overflow-wrap:anywhere; }
.ve-university-picker__option small { display:block; margin-top:3px; font-size:11px; line-height:1.4; color:#65718a; overflow-wrap:anywhere; }
.ve-university-picker__logo { position:relative; display:grid; place-items:center; width:38px; height:38px; flex:none; border-radius:9px; background:#edf2f9; color:#31577f; font-size:14px; font-weight:800; overflow:hidden; }
.ve-university-picker__logo img { position:absolute; inset:0; padding:4px; width:100%; height:100%; object-fit:contain; background:#fff; }
.ve-university-picker__mark { flex:none; color:#a7143e; }
.ve-university-picker__footer { padding:12px 18px; border-top:1px solid #e9edf4; font-size:11px; color:#65718a; }
.ve-university-picker__empty { padding:16px; color:#65718a; font-size:13px; line-height:1.6; }
.ve-university-picker__status { color:#a7143e; font-size:12px; line-height:1.6; margin:6px 0 0; }
.ve-university-picker__status:empty { margin:0; }
.ve-public-site .ve-university-picker button:focus-visible { outline:2px solid #b61946; outline-offset:2px; }
@media(max-width:767px) {
  .ve-university-picker__panel { width:100%; max-width:100%; }
  .ve-public-site .ve-university-picker input[data-university-query] { font-size:16px; }
  .ve-university-picker__heading span { display:none; }
  .ve-university-picker__options { max-height:280px; margin:6px; }
  .ve-university-picker__option { gap:8px; padding:9px 7px; }
}
.ve-university-picker__profile{display:inline-flex;align-items:center;min-height:44px;font-size:12px;font-weight:700;color:#a7143e;text-decoration:underline;text-underline-offset:4px}.ve-university-picker__profile[hidden]{display:none!important}
