:root {
  --ink: #173343;
  --muted: #526675;
  --accent: #116c63;
  --line: #dbe4e9;
  --surface: #ffffff;
  font-family:
    system-ui,
    -apple-system,
    sans-serif;
  color: #173343;
  background: #f3f6f8;
  font-size: 15px;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
}
header {
  background: #102f40;
  color: white;
  padding: 22px 5%;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
}
.brand {
  font-size: 24px;
  font-weight: 800;
  letter-spacing: 2px;
}
.brand span {
  font-size: 11px;
  display: block;
  letter-spacing: 3px;
  color: #8dd4c8;
}
main {
  max-width: 1440px;
  margin: auto;
  padding: 32px 4%;
}
.eyebrow {
  font-size: 11px;
  letter-spacing: 2px;
  color: #187b71;
  font-weight: 700;
}
h1 {
  font-size: clamp(26px, 4vw, 40px);
  margin: 10px 0;
}
p,
small {
  line-height: 1.6;
  color: #5b6e79;
}
h2 {
  font-size: 19px;
  margin: 0 0 8px;
}
.intro {
  margin-bottom: 28px;
}
.filters {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  align-items: end;
  margin: 20px 0;
}

* { box-sizing:border-box; }
label { display:flex; flex-direction:column; gap:10px; font-size:13px; }
input,select { padding:10px; border:1px solid #cbd1dc; border-radius:7px; width:100%; background:white; color:inherit; font:inherit; }
button { border:0; padding:12px 16px; background:#315fdb; color:white; cursor:pointer; font:inherit; min-height:44px; }
button:disabled { opacity:.45; cursor:default; }
.secondary { background:#fff; border:1px solid #cbd1dc; color:#334155; }
:focus-visible { outline:3px solid #2563eb; outline-offset:3px; }
.skip-link { position:absolute; top:-100px; }
.skip-link:focus { top:10px; }
footer { margin-top:32px; padding:24px 0; font-size:12px; color:#64748b; }
[hidden] { display:none!important; }
/* Clinical trials: local Linear/Geist-inspired component system. */
.trials-app { --ink:#1b242b; --muted:#5d6972; --accent:#315fdb; --line:#e2e5eb; background:#f7f8fa; color:var(--ink); }
.trials-app main { max-width:1580px; padding:40px 4%; }
.trials-header { background:#fff; color:var(--ink); border-bottom:1px solid var(--line); padding:18px 4%; gap:24px; }
.trials-brand { font-size:20px; font-weight:800; text-decoration:none; color:var(--ink); white-space:nowrap; }
.trials-brand span { font-size:13px; font-weight:500; color:var(--muted); margin-left:12px; }
.trials-header nav { display:flex; gap:8px; flex:1; }
.trials-header nav a { color:var(--muted); padding:9px 14px; text-decoration:none; font-size:13px; border-radius:6px; }
.trials-header nav a[aria-current] { background:#eef2fc; color:#2549a2; }
.private-badge { border:1px solid var(--line); border-radius:5px; padding:6px 10px; font-size:11px; color:var(--muted); }
.trials-intro { display:flex; justify-content:space-between; gap:24px; align-items:center; margin:8px 0 30px; }
.trials-intro h1 { font-size:clamp(26px,2.7vw,39px); line-height:1.22; letter-spacing:-1.2px; font-weight:650; }
.trials-app .eyebrow { color:#5b67a0; font-size:10px; letter-spacing:1.5px; }
.source-link { color:#3156b6; font-size:13px; font-weight:600; white-space:nowrap; }
.trial-metrics { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); border-radius:12px; background:white; overflow:hidden; margin-bottom:28px; }
.trial-metrics article { padding:22px 26px; border-right:1px solid var(--line); }
.trial-metrics article:last-child { border:0; }
.trial-metrics span,.trial-metrics small { display:block; font-size:12px; color:var(--muted); }
.trial-metrics strong { display:block; font-size:36px; font-weight:650; margin:9px 0; letter-spacing:-1px; font-variant-numeric:tabular-nums; }
.trial-metrics .metric-accent { background:#f3f6ff; }
.metric-accent strong { color:#315fdb; }
.trial-filters { border:1px solid var(--line); background:#fff; border-radius:12px; padding:24px; }
.trial-filters h2 { font-size:16px; margin-bottom:20px; }
.trial-search-row { display:grid; grid-template-columns:minmax(240px,1fr) minmax(220px,320px) auto; align-items:end; gap:16px; }
.trial-filter-row { display:flex; flex-wrap:wrap; align-items:end; gap:16px; margin-top:16px; }
.trial-filter-row label { min-width:180px; }
.trial-search-notes { display:grid; gap:0; margin-top:0; }
.trial-search-notes .helper { margin:0; color:var(--muted); font-size:12px; line-height:1.5; }
.trials-app input,.trials-app select { border-color:#cbd1dc; font-size:14px; min-height:44px; }
.trials-app button { border-radius:7px; font-size:13px; }
.trial-search-row button { min-width:135px; }
.recruitment-note { font-size:12px; line-height:1.5; margin-bottom:0; padding-top:12px; border-top:1px solid var(--line); }
.results-heading { display:block; margin:30px 0 14px; }
.results-heading h2 { font-size:20px; }
.results-heading p { font-size:13px; margin:5px 0; }
.applied-filters { display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:12px; color:#526174; margin-top:12px; }
.applied-filter { display:inline-block; background:#edf2fa; border:1px solid #dce4f0; padding:7px 10px; border-radius:6px; overflow-wrap:anywhere; }
.trial-workspace { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,1fr); align-items:start; gap:24px; }
.trial-list-panel { min-width:0; }
.trial-card { border:1px solid var(--line); border-radius:10px; background:#fff; padding:22px; margin-bottom:12px; transition:border-color .15s; }
.trial-card:hover { border-color:#9caed3; }
.trial-card-top,.trial-card-meta,.trial-card-bottom { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; }
.trial-code { font-size:11px; font-family:inherit; color:#626e7e; }
.trial-phase { font-size:11px; color:#687384; }
.trial-card h3 { margin:13px 0 8px; font-size:17px; line-height:1.4; }
.trial-title-button { background:none!important; color:var(--ink); padding:0; text-align:left; font-size:17px!important; font-weight:600; line-height:1.45; min-height:0; }
.trial-conditions { font-size:12px; margin:8px 0 14px; }
.trial-card-meta { justify-content:flex-start; font-size:11px; color:var(--muted); }
.trial-badge { display:inline-block; padding:5px 8px; background:#f0f2f5; border-radius:5px; font-size:11px; color:#576371; }
.trial-badge.recruiting { background:#eaf5ee; color:#216341; }
.trial-locations { font-size:12px; margin:12px 0; }
.trial-card-bottom { border-top:1px solid #edf0f4; padding-top:10px; font-size:11px; color:var(--muted); }
.trial-open { background:none!important; color:#3156b6; padding:4px 0; min-height:36px; }
.trial-paging { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:10px 0 24px; font-size:12px; }
.trial-map-panel { position:sticky; top:20px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:22px; }
.map-heading { display:flex; gap:12px; justify-content:space-between; align-items:center; }
.map-heading h2 { font-size:17px; }
.map-controls { display:flex; gap:5px; }
.map-controls button { width:36px; min-height:36px; padding:5px; font-size:18px; }
.map-help,#map-caption { font-size:12px; }
.trials-app #research-map { background:#f3f6fb; border-radius:9px; border:1px solid #e7ecf4; overflow:hidden; }
.trials-app #research-map svg { width:100%; max-height:none; display:block; aspect-ratio:1; touch-action:none; cursor:grab; }
.greece-region { fill:#dce4ef; stroke:#fff; stroke-width:1.2; }
.city-marker { cursor:pointer; }
.city-marker circle { fill:#315fdb; stroke:#fff; stroke-width:2.5; }
.city-marker text { fill:white; font-size:13px; font-weight:700; pointer-events:none; }
.city-marker:focus circle,.city-marker:hover circle { fill:#173b9c; stroke:#10234d; }
.map-cities { display:flex; gap:7px; flex-wrap:wrap; max-height:180px; overflow:auto; }
.city-chip { background:#f0f3f9; color:#35496c; border:1px solid #e0e6f0; min-height:34px; padding:6px 9px; font-size:11px!important; }
.catalogue-source { border:1px solid var(--line); border-radius:9px; background:#fff; padding:18px 22px; }
.catalogue-source summary { color:#394b65; font-size:13px; font-weight:600; }
.catalogue-source p { font-size:13px; max-width:100ch; }
.status-breakdown { display:flex; flex-wrap:wrap; gap:10px; font-size:12px; }
.status-breakdown span { background:#f1f4f8; padding:8px; border-radius:5px; }
.trial-dialog { border:1px solid var(--line); border-radius:14px; padding:28px; width:min(900px,94vw); max-height:90vh; overflow:auto; color:var(--ink); }
.trial-dialog::backdrop { background:#14243c80; }
.dialog-toolbar { display:flex; justify-content:space-between; align-items:center; position:sticky; top:-28px; background:white; padding:12px 0; z-index:2; }
.trial-dialog h2 { font-size:24px; line-height:1.4; margin:14px 0; }
.trial-dialog h3 { margin-top:28px; }
.trial-dialog .trial-criteria { font-family:inherit; font-size:15px; line-height:1.7; background:#f7f8fa; padding:18px; border-radius:8px; }
.trial-sites { list-style:none; padding:0; }
.trial-sites li { display:flex; gap:8px; flex-wrap:wrap; align-items:center; padding:14px 0; border-bottom:1px solid var(--line); font-size:13px; }
.trial-sites strong { flex:1 1 300px; }
#research-trials[aria-busy="true"] { opacity:.45; pointer-events:none; }
@media(max-width:1000px){.trial-workspace{grid-template-columns:minmax(0,1fr) minmax(0,.9fr)}.map-heading{flex-wrap:wrap}.trial-search-row{grid-template-columns:1fr 1fr}.trial-search-row button{grid-column:1/-1}.trials-brand span,.private-badge{display:none}}
@media(max-width:760px){.trials-app main{padding:24px 4%}.trials-header{padding:12px 4%;gap:12px}.trials-header nav{justify-content:flex-end}.trials-header nav a{padding:9px;font-size:12px}.trials-intro{display:block}.trials-intro h1 br{display:none}.trials-intro .source-link{display:inline-block;margin:8px 0}.trial-metrics{grid-template-columns:1fr}.trial-metrics article{padding:16px 20px;border-right:0;border-bottom:1px solid var(--line)}.trial-metrics strong{font-size:30px}.trial-search-row{grid-template-columns:1fr}.trial-filter-row label{flex:1;min-width:130px}.trial-filters{padding:18px}.trial-workspace{display:flex;flex-direction:column}.trial-map-panel{order:-1;position:static;width:100%;padding:16px}.trial-list-panel{width:100%}.trials-app #research-map svg{max-height:410px}.map-cities{max-height:100px}.results-heading{display:block}.applied-filters{display:block;text-align:left;max-width:none}.trial-card{padding:18px}.trial-dialog{padding:20px}.dialog-toolbar{top:-20px}.trial-paging{flex-wrap:wrap}}

/* Keep the working area visible without a marketing-sized hero. */
.trials-app main { padding-top:24px; }
.trials-intro { margin:0 0 20px; }
.trials-intro h1 { font-size:clamp(25px,2.4vw,34px); }
.trials-intro p { margin-bottom:8px; }
.trial-metrics { margin-bottom:20px; }
.trial-metrics article { padding:16px 22px; }
.trial-metrics strong { font-size:30px; margin:6px 0; }
.trial-filters { padding:18px 22px; }
.trial-filters h2 { margin-bottom:12px; }
.results-heading { margin-top:22px; }

.trial-query { position:relative; min-width:0; }
.trial-query > label { display:block; margin-bottom:10px; line-height:1.5; }
.trial-suggestions { position:absolute; top:calc(100% + 8px); left:0; right:0; z-index:20; list-style:none; margin:0; padding:5px; max-height:320px; overflow:auto; background:white; border:1px solid #bcc9df; border-radius:9px; box-shadow:0 12px 30px #152d4920; }
.trial-suggestions[hidden] { display:none; }
.trial-suggestions li { padding:7px 10px; border-radius:5px; cursor:pointer; display:flex; flex-direction:column; gap:4px; overflow-wrap:anywhere; font-size:13px; }
.trial-suggestions li:hover,.trial-suggestions li[aria-selected="true"] { background:#eaf0ff; color:#203e87; }
.trial-suggestions li { font-weight:700; }
.trial-suggestions small { color:var(--muted); font-size:11px; font-weight:700; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.prototype-badge { margin-left:auto; border:1px solid var(--line); border-radius:5px; padding:6px 10px; font-size:11px; color:var(--muted); }
.trial-dialog .trial-criteria { white-space:pre-wrap; overflow-wrap:anywhere; min-width:0; max-width:100%; box-sizing:border-box; }
.criteria-source { font-size:13px; }
.criteria-source a { font-weight:700; }

/* Primary search affordance: stronger contrast without changing autocomplete layout. */
.trial-search-input { position:relative; }
.trial-search-icon { position:absolute; width:22px; height:22px; left:16px; top:50%; transform:translateY(-50%); fill:none; stroke:#315be8; stroke-width:2; stroke-linecap:round; pointer-events:none; }
.trials-app #research-q { min-height:54px; border:2px solid #7494ef; border-radius:10px; padding:13px 14px 13px 48px; background:#f2f6ff; font-size:16px; font-weight:500; box-shadow:0 2px 8px #315be810; transition:border-color .15s,box-shadow .15s,background .15s; }
.trials-app #research-q::placeholder { color:#53698e; opacity:1; font-weight:400; }
.trials-app #research-q:hover { border-color:#315be8; }
.trials-app #research-q:focus { outline:none; border-color:#315be8; background:#fff; box-shadow:0 0 0 4px #315be824; }
.trial-search-row > label select,.trial-search-row > button { min-height:54px; }
@media(prefers-reduced-motion:reduce) { .trials-app #research-q { transition:none; } }

/* Compact results summary aligned with the contents of the surrounding cards. */
.results-heading { display:flex; flex-wrap:wrap; align-items:baseline; column-gap:12px; row-gap:6px; margin:14px 0 10px; padding-inline:24px; }
.results-heading h2 { margin:0; font-size:19px; }
.results-heading p { margin:0; }
.results-heading .applied-filters { display:flex; flex-basis:100%; gap:6px; margin-top:0; min-width:0; }
.results-heading .applied-filter { padding:4px 8px; max-width:100%; overflow-wrap:anywhere; }
@media(max-width:760px) { .results-heading { padding-inline:18px; } }

.trial-documents { display:flex; flex-wrap:wrap; gap:6px; margin:10px 0 4px; }
.trial-document { display:inline-flex; align-items:center; gap:7px; max-width:100%; padding:6px 9px; border:1px solid #dce4f0; border-radius:7px; background:#f7f9ff; color:#284fa9; font-size:12px; text-decoration:none; }
.trial-document:hover { border-color:#7494ef; background:#edf2ff; text-decoration:underline; }
.trial-document span:last-child { overflow-wrap:anywhere; }
.pdf-icon { flex:none; font-size:9px; font-weight:750; letter-spacing:.3px; color:#a52d36; background:#fff; border:1px solid #dbaab0; border-radius:3px; padding:5px 3px; line-height:1; }

/* Map is visible alongside search, rather than below the filters. */
.trial-discovery { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(340px,.9fr); grid-template-rows:auto auto 1fr; column-gap:24px; align-items:start; }
.trial-discovery > .trial-filters { grid-column:1; grid-row:1; min-width:0; }
.trial-discovery > .results-heading { grid-column:1; grid-row:2; min-width:0; }
.trial-discovery > .trial-list-panel { grid-column:1; grid-row:3; }
.trial-discovery > .trial-map-panel { grid-column:2; grid-row:1 / span 3; min-width:0; }
.trial-discovery .trial-search-row { grid-template-columns:minmax(0,1fr) auto; }
.trial-discovery .trial-query { grid-column:1 / -1; }
.trial-discovery .trial-search-row > button { grid-column:auto; }
.trial-discovery .trial-filter-row { gap:12px; }
.trial-discovery .trial-filter-row label { flex:1; min-width:140px; }
@media(max-width:1050px) {
 .trial-discovery { grid-template-columns:minmax(0,1fr); grid-template-rows:auto; }
 .trial-discovery > .trial-map-panel { grid-column:1; grid-row:2; position:static; margin-top:16px; }
 .trial-discovery > .results-heading { grid-row:3; }
 .trial-discovery > .trial-list-panel { grid-row:4; }
 .trial-discovery #research-map svg { max-height:410px; }
}
@media(max-width:480px) { .trial-discovery .trial-search-row { grid-template-columns:minmax(0,1fr); } }

.centres-badge { display:inline-flex; align-items:center; gap:5px; background:#eaf0ff; color:#3156a6; border-radius:4px; padding:5px 8px; font-size:11px; line-height:1.3; }
.centres-badge svg { width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

/* Native, keyboard-accessible availability choices. */
.availability-field { border:0; padding:0; margin:0; min-width:0; }
.availability-field legend { font-size:13px; margin-bottom:8px; padding:0; }
.availability-options { display:flex; flex-wrap:wrap; gap:4px; padding:4px; border:1px solid #dbe2ee; border-radius:10px; background:#f3f5fa; }
.availability-options label { position:relative; flex:1 1 auto; cursor:pointer; }
.trials-app .availability-options input { position:absolute; width:1px; height:1px; min-height:0; opacity:0; padding:0; margin:0; }
.availability-options span { display:flex; align-items:center; justify-content:center; gap:7px; padding:10px 9px; min-height:42px; border:1px solid transparent; border-radius:7px; font-size:13px; color:#526675; white-space:nowrap; }
.availability-options span::before { content:""; width:12px; height:12px; border:1.5px solid #8a97ae; border-radius:50%; box-sizing:border-box; flex-shrink:0; }
.availability-options input:checked + span { background:white; color:#284dba; border-color:#c5d2f8; box-shadow:0 1px 3px #17334312; font-weight:600; }
.availability-options input:checked + span::before { border:4px solid #315ce8; }
.availability-options input:focus-visible + span { outline:2px solid #315ce8; outline-offset:2px; }
.availability-options label:hover span { background:#eaf0ff; }
@media(max-width:650px) { .trial-discovery .availability-field { grid-column:1/-1; } }

.documents-filter { display:flex; align-items:center; gap:8px; margin-top:14px; font-size:14px; cursor:pointer; }
.trials-app .documents-filter input { width:17px; height:17px; min-height:0; margin:0; accent-color:#315ce8; }
