/* MCH·OMOP Live: Data Landscape and Regulatory Roadmap.
   Loads after assets/css/styles.css and uses its tokens. Everything here is scoped to #ls. */
#ls{font-family:var(--sans);font-size:15px;line-height:1.5}
#ls .wrap{max-width:1280px;padding:0 20px 28px}
#ls h1,#ls h2,#ls h3{font-family:var(--serif);font-weight:600;line-height:1.2;margin:0}
#ls h1{font-size:clamp(1.7rem,2.6vw,2.2rem);letter-spacing:-.015em}
#ls h2{font-size:1.45rem;margin:0 0 6px}
#ls h3{font-size:1.1rem;margin:14px 0 4px}
#ls p{margin:0 0 10px;max-width:92ch}
#ls a{text-decoration:underline;text-underline-offset:2px}
#ls a.btn{text-decoration:none}
#ls button,#ls input,#ls select,#ls textarea{font-family:var(--sans);font-size:15px}
#ls .btn{font-size:14px}
body.embed .site-head,body.embed .site-foot,body.embed .skip{display:none}
:root{
  --line:var(--rule); --card:#fff; --paper:var(--bg); --wash:var(--accent-tint); --accent-ink:#fff;
  --pe:#a8324a; --gdm:#9a6b1e; --ptb:#2e7d5b; --ns:#2f5f9e; --x:#6b6577; --warn-bg:#fdf5e6;
}
button,input,select,textarea{font:inherit;color:inherit}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* masthead */
.ls-mast{display:grid;grid-template-columns:1fr minmax(240px,360px);gap:14px 24px;align-items:end;padding:18px 0 12px;border-bottom:1px solid var(--rule)}
.ls-mast p{margin:6px 0 0;color:var(--muted);max-width:78ch}
.gsearch{display:flex;gap:6px}
.gsearch input{flex:1;min-width:0;padding:9px 11px;border:1px solid var(--rule);border-radius:4px;background:#fff}
#ls .btn[aria-pressed="true"]{background:var(--accent-dark);color:#fff;border-color:var(--accent-dark)}
#ls .btn.sm{padding:5px 10px;font-size:12.5px}

/* jump bar */
.ls-jump{position:sticky;top:66px;z-index:20;background:var(--paper);display:flex;gap:4px;overflow-x:auto;padding:8px 0;border-bottom:1px solid var(--line);scrollbar-width:thin}
.ls-jump button{flex:0 0 auto;padding:6px 8px;border:1px solid transparent;border-radius:4px;background:none;cursor:pointer;font-size:13.5px;color:var(--muted);white-space:nowrap}
.ls-jump button:hover{background:var(--wash);color:var(--ink)}
.ls-jump button[aria-current="step"]{background:var(--accent);color:#fff;font-weight:600}
.ls-jump .ls-count{display:inline-block;min-width:1.4em;margin-left:4px;padding:0 5px;border-radius:9px;background:#e6b800;color:#1d1d1d;font-size:.78rem;font-weight:700;text-align:center}

/* topic bar */
.topicbar{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.topicbar .lead{font-size:.88rem;color:var(--muted);margin-right:2px}
.ls-chip{color:var(--ink);display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 8px;border:1.5px solid var(--line);border-radius:999px;background:#fff;cursor:pointer;font-size:.88rem}
.ls-chip .sw{width:10px;height:10px;border-radius:2px;background:var(--x)}
.ls-chip[aria-pressed="true"]{border-color:var(--accent);background:var(--accent);color:#fff}
.ls-chip.pe .sw{background:var(--pe)}.ls-chip.gdm .sw{background:var(--gdm)}.ls-chip.ptb .sw{background:var(--ptb)}.ls-chip.ns .sw{background:var(--ns)}
.chk{display:inline-flex;gap:6px;align-items:center;font-size:.88rem;color:var(--muted)}

/* stage */
.ls-stage{padding:16px 0 4px}
.ls-stage[hidden]{display:none}
.ls-stagehead{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;align-items:baseline;margin-bottom:8px}
.ls-stagehead p{color:var(--muted);margin:0}
.pager{display:flex;justify-content:space-between;gap:10px;margin-top:18px;padding-top:12px;border-top:1px solid var(--line)}

/* timeline */
.tl{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:12px 14px 8px;margin:12px 0}
.tl svg{display:block;width:100%;height:auto}
.tl .band{cursor:pointer}
.tl .band rect{transition:opacity .15s}
.tl .band.off rect{opacity:.22}
.tl .band:focus-visible rect{stroke:#e6b800;stroke-width:3}
.tl text{font-family:var(--sans);fill:var(--ink)}
.tlnotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:6px 18px;margin-top:6px;font-size:.86rem;color:var(--muted)}
.tlnotes b{color:var(--ink)}

/* role picker */
.roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin:10px 0}
.roles button{color:var(--ink);text-align:left;padding:11px 13px;border:1.5px solid var(--line);border-radius:6px;background:#fff;cursor:pointer}
.roles button strong{display:block;font-family:var(--serif);font-size:1.05rem}
.roles button span{font-size:.86rem;color:var(--muted)}
.roles button[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 4px 0 0 var(--accent)}
.path{counter-reset:step;list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.path li{counter-increment:step;display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px 10px}
.path li::before{content:counter(step);display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;font-size:.85rem}
.path li span{font-size:.92rem}

/* layout for catalog */
.cat{display:grid;grid-template-columns:250px 1fr;gap:18px;align-items:start}
.rail{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:10px 12px;font-size:.89rem}
.rail fieldset{border:0;margin:0 0 8px;padding:0}
.rail legend{font-weight:700;padding:0;margin-bottom:3px;font-size:.88rem}
.rail label{display:flex;gap:7px;align-items:flex-start;padding:2px 0;cursor:pointer;line-height:1.3}
.rail input[type=checkbox]{margin-top:3px}
.rail .n{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}
.rail details{border-top:1px solid var(--line);padding-top:6px;margin-top:6px}
.rail summary{cursor:pointer;font-weight:700;font-size:.88rem}
.listbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}
.listbar input[type=search]{flex:1 1 240px;padding:8px 10px;border:1.5px solid var(--line);border-radius:4px;background:#fff}
.listbar select{padding:7px 8px;border:1.5px solid var(--line);border-radius:4px;background:#fff}
.found{font-size:.88rem;color:var(--muted)}

/* rows */
.rows{display:grid;gap:5px}
.row{background:var(--card);border:1px solid var(--line);border-radius:6px;border-left:4px solid var(--x)}
.row.t-pe{border-left-color:var(--pe)}.row.t-gdm{border-left-color:var(--gdm)}.row.t-ptb{border-left-color:var(--ptb)}.row.t-ns{border-left-color:var(--ns)}
.row > button.head{color:var(--ink);display:grid;grid-template-columns:1fr auto;gap:4px 12px;width:100%;text-align:left;background:none;border:0;padding:9px 12px;cursor:pointer}
.row .nm{font-weight:650;font-size:.98rem}
.row .meta{grid-column:1;font-size:.84rem;color:var(--muted)}
.row .ls-tags{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end;align-self:start}
.ls-tag{display:inline-block;padding:1px 7px;border-radius:3px;font-size:.76rem;border:1px solid currentColor;white-space:nowrap}
.ls-tag.pe{color:var(--pe)}.ls-tag.gdm{color:var(--gdm)}.ls-tag.ptb{color:var(--ptb)}.ls-tag.ns{color:var(--ns)}.ls-tag.x{color:var(--x)}
.ls-tag.fill{background:var(--accent);color:#fff;border-color:var(--accent)}
.row .body{padding:2px 12px 12px;border-top:1px dashed var(--line)}
.row .body[hidden]{display:none}
.row .body p{margin:8px 0}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:6px 18px;margin:8px 0;font-size:.89rem}
.facts div b{display:block;font-size:.8rem;color:var(--muted);font-weight:600}
.status{background:var(--warn-bg);border-left:4px solid var(--warn);padding:7px 10px;font-size:.89rem;margin:8px 0;border-radius:0 4px 4px 0}
.links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.checked{font-size:.8rem;color:var(--muted);margin-top:8px}
.note{width:100%;min-height:54px;margin-top:8px;padding:7px 9px;border:1.5px solid var(--line);border-radius:4px;background:#fff}
.more{margin-top:10px}
.empty{background:#fff;border:1px dashed var(--line);border-radius:6px;padding:16px;color:var(--muted)}

/* roadmap */
.phases{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}
.phases button{color:var(--ink);display:flex;gap:8px;align-items:center;padding:7px 11px;border:1.5px solid var(--line);border-radius:6px;background:#fff;cursor:pointer;text-align:left;font-size:.9rem}
.phases button i{font-style:normal;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--wash);font-weight:700;font-size:.8rem}
.phases button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent);color:#fff}
.phases button[aria-pressed="true"] i{background:#fff;color:var(--ink)}
.phasebox{background:var(--wash);border-radius:6px;padding:10px 14px;margin-bottom:10px}
.phasebox h3{margin-top:0}
.phasebox p{margin:0}

/* map */
.mapgrid{display:grid;grid-template-columns:1fr 320px;gap:14px}
#map{height:520px;border:1px solid var(--line);border-radius:6px;background:#dfe8ec}
.places{max-height:520px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:6px;padding:4px 10px}
.places details{border-bottom:1px solid var(--line);padding:5px 0}
.places summary{cursor:pointer;font-weight:600;font-size:.92rem}
.places ul{margin:4px 0 4px 2px;padding-left:16px;font-size:.88rem}
.places li{margin:2px 0}
.linkbtn{background:none;border:0;padding:0;color:var(--accent);text-decoration:underline;cursor:pointer;text-align:left;font-size:inherit}
.leaflet-popup-content{font-family:var(--sans);font-size:13px;margin:10px 12px}
.leaflet-popup-content ul{margin:4px 0 0;padding-left:16px;max-height:220px;overflow:auto}

/* literature */
.lit{display:grid;grid-template-columns:340px 1fr;gap:18px;align-items:start}
.panel{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:12px 14px}
.panel label.f{display:block;font-weight:600;font-size:.88rem;margin:8px 0 3px}
.panel input[type=text],.panel input[type=number],.panel select{width:100%;padding:7px 9px;border:1.5px solid var(--line);border-radius:4px;background:#fff}
.yrs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lenses{display:flex;flex-wrap:wrap;gap:5px}
.lenses .ls-chip{font-size:.83rem;padding:3px 9px}
.qbox{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.8rem;background:var(--wash);border-radius:4px;padding:8px;word-break:break-word;margin:8px 0;max-height:120px;overflow:auto}
.hit{background:#fff;border:1px solid var(--line);border-radius:6px;padding:9px 12px;margin-bottom:5px}
.hit h4{margin:0 0 2px;font-size:.98rem;font-family:var(--sans);font-weight:650}
.hit .by{font-size:.86rem;color:var(--muted)}
.hit .links{margin-top:5px}
details.fold{background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px 12px;margin-top:10px}
details.fold > summary{cursor:pointer;font-weight:650}

/* coverage */
.matrix{border-collapse:collapse;width:100%;background:#fff;border:1px solid var(--line);font-size:.9rem}
.matrix th,.matrix td{border:1px solid var(--line);padding:6px 8px;text-align:center}
.matrix th[scope=row]{text-align:left;font-weight:600}
.matrix td button{width:100%;border:0;border-radius:4px;padding:6px 0;cursor:pointer;font-weight:700;font-variant-numeric:tabular-nums}
.matrix td button:hover{outline:2px solid var(--ink)}
.scroll{overflow-x:auto}
.gaps{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:8px;margin-top:8px}
.gap{background:#fff;border:1px solid var(--line);border-radius:6px;padding:10px 12px}
.gap h3{margin:0 0 4px}
.gap p{margin:0 0 6px;font-size:.92rem}

/* shortlist and about */
.two{display:grid;grid-template-columns:1fr 340px;gap:18px;align-items:start}
.sites{columns:2;column-gap:26px;font-size:.9rem;padding-left:18px;margin:6px 0}
.gloss{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:3px 22px;font-size:.89rem;margin:8px 0}
.gloss dt{font-weight:700;display:inline}
.gloss dd{display:inline;margin:0}
.gloss div{padding:2px 0}
.toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);background:var(--accent);color:#fff;padding:9px 15px;border-radius:5px;font-size:.9rem;z-index:50}
.toast[hidden]{display:none}

@media (max-width:900px){
  .ls-mast{grid-template-columns:1fr}
  .cat,.lit,.two,.mapgrid{grid-template-columns:1fr}
  .rail{order:-1}
  .sites{columns:1}
  #map{height:380px}
  .row > button.head{grid-template-columns:1fr}
  .row .ls-tags{justify-content:flex-start}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{
  body{background:#fff;font-size:11.5pt}
  .ls-jump,.topicbar,.pager,.rail,.listbar,.gsearch,.links .btn.addbtn,.note,.more,.phases,#map,.toast,.noprint{display:none!important}
  .cat,.lit,.two,.mapgrid{grid-template-columns:1fr}
  .row .body[hidden]{display:block!important}
  .row{break-inside:avoid}
  a{color:#000}
  .links a::after{content:" (" attr(href) ")";font-size:9pt;word-break:break-all}
}

body.embed .ls-jump{top:0}
#ls.compact .ls-mast{padding:12px 0 8px;align-items:center}
#ls.compact .ls-mast p{display:none}
#ls.compact h1{font-size:1.25rem}
.tl svg{max-height:230px}
