:root{
  --c-ink:#0F172A; --c-ink-soft:#1E293B; --c-accent:#2563EB; --c-accent-hover:#1D4ED8;
  --c-bg:#F8FAFC; --c-surface:#FFFFFF; --c-border:#E2E8F0; --c-border-strong:#CBD5E1;
  --c-text:#1E293B; --c-muted:#475569; --c-code-bg:#EEF2F8;
  --c-amber-bg:#FEF3E2; --c-amber-ink:#92400E; --c-amber-border:#FCD9A8;
  --c-sans:ui-sans-serif,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --c-mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
}
body.evo2-home,body.evo2-doc-body{background:var(--c-bg);color:var(--c-text);font-family:var(--c-sans);}
.evo2-wrap{max-width:1000px;margin:0 auto;padding:1.5rem 1.25rem 3rem;}
.evo2-wrap *{box-sizing:border-box;}

/* hide Datasette's default dark nav bar on the branded landing & about pages */
body.evo2-home header, body.evo2-doc-body header{display:none !important;}
.evo2-masthead{background:transparent;padding:.5rem 0 .9rem;border-bottom:1px solid var(--c-border);margin-bottom:1.6rem;}
.evo2-brand{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;}
.evo2-logo{display:inline-flex;align-items:center;justify-content:center;flex:0 0 46px;width:46px;height:50px;background:#EFF6FF;border-radius:10px;}
/* Keep the DNA mark blue in every link state, including previously visited Home. */
a.evo2-logo:link,a.evo2-logo:visited,a.evo2-logo:hover,a.evo2-logo:focus,a.evo2-logo:active{color:#2563EB;}
a.evo2-logo svg{stroke:#2563EB;}
.evo2-wordmark{font-weight:700;font-size:1.18rem;color:var(--c-ink);letter-spacing:-.01em;}
.evo2-nav{margin-left:auto;display:flex;flex-wrap:wrap;gap:.55rem 1.2rem;align-items:center;}
.evo2-nav a{font-size:.85rem;font-weight:600;color:var(--c-accent);text-decoration:none;white-space:nowrap;}
.evo2-nav a:hover{text-decoration:underline;}
.evo2-tagrow{display:flex;align-items:baseline;justify-content:space-between;gap:1.2rem;margin-top:.7rem;flex-wrap:wrap;}
.evo2-tagline{margin:0;color:var(--c-muted);font-size:1rem;line-height:1.5;max-width:72ch;}
.evo2-release{flex:none;font-family:var(--c-mono);font-size:.72rem;color:var(--c-muted);border:1px solid var(--c-border);border-radius:6px;padding:.22rem .55rem;background:var(--c-surface);white-space:nowrap;}
.evo2-release-link{margin:-.8rem 0 1.3rem;font-size:.8rem;text-align:right;}
.evo2-workflow-cta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:1.2rem 1.4rem;background:#EFF6FF;border:1px solid #BFDBFE;border-radius:12px;}
.evo2-workflow-cta strong{font-size:1.02rem;}
.evo2-workflow-cta p{font-size:.87rem;color:var(--c-muted);margin:.35rem 0 0;}
.evo2-workflow-cta>a{display:inline-flex;align-items:center;gap:.8rem;padding:.75rem 1rem;background:#2563EB;color:#fff;border-radius:8px;text-decoration:none;font-weight:600;}
.evo2-workflow-cta>a:hover{background:#1D4ED8;}

.evo2-hero{margin:0 0 1.75rem;}
.evo2-hero h1{font-size:clamp(1.75rem,4vw,2.4rem);line-height:1.14;font-weight:700;color:var(--c-ink);margin:0 0 .55rem;letter-spacing:-.02em;}
.evo2-sub{font-size:1.05rem;line-height:1.6;color:var(--c-text);margin:0;max-width:64ch;}

.evo2-search{display:grid;grid-template-columns:repeat(auto-fit,minmax(225px,1fr));gap:1rem;margin:0 0 2.25rem;}
.evo2-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;padding:1.1rem 1.2rem;display:flex;flex-direction:column;transition:box-shadow .15s ease,border-color .15s ease;}
.evo2-card:hover,.evo2-card:focus-within{box-shadow:0 1px 3px rgba(15,23,42,.07);border-color:var(--c-border-strong);}
.evo2-card-title{font-size:.96rem;font-weight:700;color:var(--c-ink);margin-bottom:.6rem;}
.evo2-card label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--c-muted);display:block;margin-bottom:.3rem;min-height:2.3em;line-height:1.2;}
.evo2-card input{width:100%;min-height:42px;font-family:var(--c-mono);font-size:.95rem;color:var(--c-ink);background:#fff;border:1px solid var(--c-border-strong);border-radius:8px;padding:.45rem .6rem;}
.evo2-card input::placeholder{color:#94A3B8;}
.evo2-region{display:flex;flex-wrap:wrap;gap:.5rem;}
.evo2-region>div{min-width:0;}
.evo2-region label{min-height:0;}
.evo2-region>div:first-child{flex:0 0 4rem;}
.evo2-region>div:nth-child(2){flex:1 1 8rem;}
.evo2-region>div:nth-child(3){flex:1 1 100%;}
.evo2-region input{padding:.45rem .5rem;}
.evo2-help{font-size:.82rem;color:var(--c-muted);margin:.45rem 0 .8rem;flex:1 0 auto;}
.evo2-card button{margin-top:auto;align-self:flex-start;min-height:40px;background:var(--c-accent);color:#fff;border:1px solid var(--c-accent);border-radius:8px;font-size:.9rem;font-weight:600;padding:.5rem 1.1rem;cursor:pointer;transition:background .15s ease;}
.evo2-card button:hover{background:var(--c-accent-hover);border-color:var(--c-accent-hover);}
.evo2-card button:active{transform:translateY(1px);}

.evo2-section{background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;padding:1.3rem 1.45rem;margin:0 0 2rem;}
.evo2-section h2{margin:0 0 .8rem;font-size:1.18rem;font-weight:700;color:var(--c-ink);letter-spacing:-.01em;}
.evo2-section p{margin:.4rem 0;font-size:.96rem;line-height:1.62;color:var(--c-text);}
code,.evo2-mono{font-family:var(--c-mono);font-size:.85rem;background:var(--c-code-bg);color:var(--c-ink);padding:.1rem .35rem;border-radius:4px;}

.evo2-note-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:1.5rem;align-items:center;}
.evo2-legend{margin:0;}
.evo2-legend-bar{display:flex;height:16px;border-radius:5px;overflow:hidden;border:1px solid var(--c-border);}
.evo2-legend-bar span{flex:1;}
.evo2-legend-labels{display:flex;justify-content:space-between;margin-top:.5rem;font-size:.72rem;line-height:1.25;color:var(--c-muted);}
.evo2-legend-labels span:first-child{text-align:left;}
.evo2-legend-labels span:last-child{text-align:right;}

.evo2-matrix{width:100%;border-collapse:collapse;margin:.4rem 0 1rem;font-size:.85rem;}
.evo2-matrix th,.evo2-matrix td{border:1px solid var(--c-border);padding:.5rem .65rem;text-align:left;}
.evo2-matrix thead th{background:#F1F5F9;color:var(--c-ink);font-weight:700;}
.evo2-matrix tbody th{background:#F8FAFC;color:var(--c-ink);font-weight:600;font-family:var(--c-mono);font-size:.8rem;}
.evo2-matrix td{font-family:var(--c-mono);font-size:.78rem;color:var(--c-accent);}
.evo2-defs{list-style:none;padding:0;margin:.6rem 0 0;}
.evo2-defs li{font-size:.92rem;line-height:1.55;color:var(--c-text);padding:.32rem 0;border-bottom:1px solid var(--c-border);}
.evo2-defs li:last-child{border-bottom:0;}
.evo2-defs strong{color:var(--c-ink);}

.evo2-examples{margin:0 0 2rem;}
.evo2-examples h2,.evo2-browse h2,.evo2-access h2{font-size:1.18rem;font-weight:700;color:var(--c-ink);margin:0 0 .85rem;letter-spacing:-.01em;}
.evo2-ex-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:.85rem;}
.evo2-ex{display:flex;flex-direction:column;gap:.3rem;background:var(--c-surface);border:1px solid var(--c-border);border-radius:10px;padding:.9rem 1rem;text-decoration:none;transition:box-shadow .15s ease,border-color .15s ease;}
.evo2-ex:hover{box-shadow:0 1px 3px rgba(15,23,42,.07);border-color:var(--c-border-strong);}
.evo2-ex-title{font-family:var(--c-mono);font-size:.95rem;font-weight:600;color:var(--c-accent);}
.evo2-ex-desc{font-size:.85rem;color:var(--c-text);line-height:1.4;}
.evo2-ex-url{font-family:var(--c-mono);font-size:.72rem;color:var(--c-muted);}

.evo2-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.85rem;margin:0 0 .5rem;}
.evo2-stat{background:var(--c-surface);border:1px solid var(--c-border);border-radius:10px;padding:1rem;text-align:center;}
.evo2-stat-n{display:block;font-size:1.5rem;font-weight:700;color:var(--c-ink);font-family:var(--c-mono);}
.evo2-stat-l{display:block;font-size:.8rem;color:var(--c-muted);margin-top:.25rem;}
.evo2-stats-sub{font-size:.82rem;color:var(--c-muted);text-align:center;margin:.4rem 0 2rem;}

.evo2-browse{margin:0 0 2rem;}
.evo2-pills{display:flex;flex-wrap:wrap;gap:.5rem;}
.evo2-pills a{font-size:.85rem;color:var(--c-accent);background:var(--c-surface);border:1px solid var(--c-border);border-radius:999px;padding:.4rem .9rem;text-decoration:none;transition:background .15s ease,border-color .15s ease;}
.evo2-pills a:hover{background:#EEF2F8;border-color:var(--c-border-strong);}
.evo2-pill-strong{font-weight:600;color:#fff !important;background:var(--c-accent) !important;border-color:var(--c-accent) !important;}
.evo2-pill-strong:hover{background:var(--c-accent-hover) !important;}

.evo2-access{margin:0 0 2rem;}
.evo2-access-list{list-style:none;padding:0;margin:0;}
.evo2-access-list li{font-size:.95rem;line-height:1.7;color:var(--c-text);border-bottom:1px solid var(--c-border);padding:.55rem 0;}
.evo2-access-list li:last-child{border-bottom:0;}
.evo2-access-list a{color:var(--c-accent);font-weight:600;text-decoration:none;}
.evo2-access-list a:hover{text-decoration:underline;}

.evo2-foot{border-top:1px solid var(--c-border);padding-top:1.25rem;margin-top:1rem;background:transparent !important;color:var(--c-text);}
.evo2-foot p,.evo2-foot-meta,.evo2-cite,.evo2-foot-links{color:var(--c-muted) !important;}
.evo2-disclaimer{background:var(--c-amber-bg);color:var(--c-amber-ink);border:1px solid var(--c-amber-border);border-radius:8px;padding:.7rem .9rem;font-size:.9rem;line-height:1.5;margin:0 0 1rem;}
.evo2-foot-meta,.evo2-cite{font-size:.85rem;color:var(--c-muted);line-height:1.6;margin:.5rem 0;}
.evo2-foot a{color:var(--c-accent) !important;text-decoration:none;}
.evo2-foot a:hover{text-decoration:underline;}
.evo2-foot-links{font-size:.85rem;color:var(--c-muted);margin:.85rem 0 0;}

/* /about feature-scheme page */
.evo2-doc h1{font-size:1.7rem;color:var(--c-ink);font-weight:700;letter-spacing:-.02em;margin:0 0 .4rem;}
.evo2-doc h2{font-size:1.2rem;color:var(--c-ink);font-weight:700;margin:2rem 0 .6rem;border-bottom:1px solid var(--c-border);padding-bottom:.35rem;}
.evo2-doc h3{font-size:1rem;color:var(--c-ink);font-weight:600;margin:1.4rem 0 .4rem;}
.evo2-doc p,.evo2-doc li{font-size:.96rem;line-height:1.65;color:var(--c-text);}
.evo2-doc table{width:100%;border-collapse:collapse;margin:.6rem 0 1rem;font-size:.88rem;}
.evo2-doc th,.evo2-doc td{border:1px solid var(--c-border);padding:.45rem .65rem;text-align:left;vertical-align:top;}
.evo2-doc thead th{background:#F1F5F9;color:var(--c-ink);font-weight:700;}
.evo2-doc td:first-child{font-family:var(--c-mono);font-size:.8rem;color:var(--c-accent);white-space:nowrap;}
.evo2-doc a{color:var(--c-accent);text-decoration:none;}
.evo2-doc a:hover{text-decoration:underline;}
.evo2-back{display:inline-block;margin:0 0 1rem;font-size:.85rem;color:var(--c-accent);text-decoration:none;font-weight:600;}

/* region viewer */
.evo2-viewer-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.7rem;background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;padding:1rem 1.2rem;margin:0 0 1.2rem;}
.vf-field{display:flex;flex-direction:column;}
.vf-field label{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--c-muted);margin-bottom:.25rem;width:auto;max-width:none;}
.vf-field select{min-height:40px;max-width:100%;font-size:.9rem;color:var(--c-ink);border:1px solid var(--c-border-strong);border-radius:8px;padding:.4rem .6rem;background:var(--c-surface);}
.vf-field input{min-height:40px;font-family:var(--c-mono);font-size:.92rem;color:var(--c-ink);border:1px solid var(--c-border-strong);border-radius:8px;padding:.4rem .6rem;width:9rem;}
.vf-chr input{width:4rem;}
.evo2-or{color:var(--c-muted);font-size:.85rem;padding-bottom:.6rem;}
.evo2-viewer-form button{min-height:40px;background:var(--c-accent);color:#fff;border:1px solid var(--c-accent);border-radius:8px;font-size:.9rem;font-weight:600;padding:.5rem 1.3rem;cursor:pointer;}
.evo2-viewer-form button:hover{background:var(--c-accent-hover);}
.evo2-viewer-form input:focus{outline:2px solid var(--c-accent);outline-offset:1px;border-color:var(--c-accent);}
.evo2-chart{background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;padding:.5rem;margin-bottom:1.2rem;}
.evo2-chart-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.2rem;}

a:focus-visible,button:focus-visible,input:focus-visible,.evo2-ex:focus-visible,.evo2-pills a:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;}
.evo2-card input:focus{outline:2px solid var(--c-accent);outline-offset:1px;border-color:var(--c-accent);}

@media (max-width:600px){
  .evo2-note-grid{grid-template-columns:1fr;}
  .evo2-nav{margin-left:0;width:100%;}
  .evo2-search{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){*{transition:none !important;}}

/* ---- shared module bar (replaces the per-page ad-hoc navs) ---------------- */
.evo2-modulebar{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin:.75rem 0 0;padding:.45rem 0 0;border-top:1px solid var(--c-border);}
.evo2-modulebar-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#94A3B8;margin-right:.35rem;}
.evo2-modulebar a{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:600;color:var(--c-muted);text-decoration:none;border:1px solid var(--c-border);border-radius:999px;padding:.26rem .7rem;background:var(--c-surface);}
.evo2-modulebar a b{font-family:var(--c-mono);font-size:.72rem;color:var(--c-accent);}
.evo2-modulebar a:hover{border-color:var(--c-border-strong);background:#EEF2F8;}
.evo2-modulebar a.is-active{background:var(--c-accent);border-color:var(--c-accent);color:#fff;}
.evo2-modulebar a.is-active b{color:#fff;opacity:.8;}
.evo2-nav a[aria-current="page"]{color:var(--c-ink);text-decoration:underline;}

/* ---- tab strip (was duplicated inline in four page templates) ------------- */
.evo2-tabs{display:flex;gap:.4rem;margin:.4rem 0 1rem;flex-wrap:wrap}
.evo2-tab{padding:.5rem .9rem;border:1px solid var(--c-border);background:#fff;border-radius:8px;cursor:pointer;font-size:.92rem;color:var(--c-muted)}
.evo2-tab.is-active{background:var(--c-accent);border-color:var(--c-accent);color:#fff;font-weight:600}
.evo2-tab:hover:not(.is-active){border-color:var(--c-border-strong);background:#F1F5F9}

/* ---- variant report ------------------------------------------------------- */
.vr-head{background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;padding:1.1rem 1.3rem;margin:0 0 1.1rem;}
.vr-title{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap;margin:0 0 .5rem;}
.vr-rsid{font-family:var(--c-mono);font-size:1.5rem;font-weight:700;color:var(--c-ink);letter-spacing:-.01em;}
.vr-alleles{font-family:var(--c-mono);font-size:1rem;color:var(--c-muted);}
.vr-facts{display:flex;flex-wrap:wrap;gap:.4rem;}
.vr-fact{font-size:.8rem;color:var(--c-text);background:#F1F5F9;border:1px solid var(--c-border);border-radius:6px;padding:.2rem .55rem;}
.vr-fact b{color:#64748B;font-weight:600;text-transform:uppercase;font-size:.68rem;letter-spacing:.05em;margin-right:.3rem;}
.vr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.1rem;margin:0 0 1.1rem;align-items:start;}
.vr-panel{background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;padding:1.05rem 1.2rem;}
.vr-panel h2{margin:0 0 .2rem;font-size:1.02rem;font-weight:700;color:var(--c-ink);}
.vr-panel .vr-sub{margin:0 0 .8rem;font-size:.8rem;color:var(--c-muted);line-height:1.45;}
.vr-hero-score{display:flex;align-items:baseline;gap:.6rem;margin:.2rem 0 .1rem;}
.vr-delta{font-family:var(--c-mono);font-size:2rem;font-weight:700;letter-spacing:-.02em;}
.vr-delta.is-neg{color:#15803D;} .vr-delta.is-pos{color:#B91C1C;}
.vr-delta-unit{font-size:.8rem;color:var(--c-muted);}
.vr-readout{font-size:.93rem;line-height:1.6;color:var(--c-text);margin:.55rem 0 0;}
.vr-readout b{color:var(--c-ink);}
.vr-meter{margin:.9rem 0 .2rem;}
.vr-meter-track{position:relative;height:10px;border-radius:5px;background:linear-gradient(90deg,#DCFCE7,#F1F5F9 50%,#FEE2E2);border:1px solid var(--c-border);}
.vr-meter-zero{position:absolute;top:-3px;bottom:-3px;left:50%;width:1px;background:var(--c-border-strong);}
.vr-meter-pin{position:absolute;top:-4px;width:3px;height:18px;border-radius:2px;background:var(--c-accent);transform:translateX(-1.5px);}
.vr-meter-labels{display:flex;justify-content:space-between;font-size:.7rem;color:var(--c-muted);margin-top:.4rem;}
.vr-bars{list-style:none;margin:.2rem 0 0;padding:0;}
.vr-bars li{display:grid;grid-template-columns:9.5rem 1fr 3.6rem;align-items:center;gap:.55rem;padding:.2rem 0;font-size:.82rem;}
.vr-bars .vr-bar-l{color:var(--c-muted);}
.vr-bars .vr-bar-t{height:7px;border-radius:4px;background:#EEF2F8;overflow:hidden;}
.vr-bars .vr-bar-f{height:100%;background:var(--c-accent);opacity:.65;}
.vr-bars .vr-bar-v{font-family:var(--c-mono);font-size:.78rem;text-align:right;color:var(--c-ink);}
.vr-tbl{width:100%;border-collapse:collapse;font-size:.84rem;}
.vr-tbl th,.vr-tbl td{border-bottom:1px solid var(--c-border);padding:.42rem .5rem;text-align:left;vertical-align:top;}
.vr-tbl thead th{background:#F8FAFC;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:#64748B;font-weight:600;white-space:nowrap;}
.vr-tbl td.n{font-family:var(--c-mono);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
.vr-tbl tr.is-rec td{background:#EFF6FF;}
.vr-tag{display:inline-block;font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.1rem .38rem;border-radius:4px;background:var(--c-accent);color:#fff;margin-left:.35rem;}
.vr-gws{display:inline-block;font-family:var(--c-mono);font-size:.7rem;padding:.08rem .35rem;border-radius:4px;background:#FEE2E2;color:#991B1B;font-weight:600;}
.vr-cohort{font-family:var(--c-mono);font-size:.72rem;font-weight:600;padding:.1rem .4rem;border-radius:4px;background:#E0E7FF;color:#3730A3;}
.vr-count{display:flex;gap:1.4rem;flex-wrap:wrap;margin:0 0 .8rem;}
.vr-count div{min-width:5rem;}
.vr-count .n{display:block;font-family:var(--c-mono);font-size:1.35rem;font-weight:700;color:var(--c-ink);}
.vr-count .l{display:block;font-size:.74rem;color:var(--c-muted);line-height:1.3;}
.vr-links{display:flex;flex-wrap:wrap;gap:.45rem;}
.vr-links a{font-size:.82rem;color:var(--c-accent);background:var(--c-surface);border:1px solid var(--c-border);border-radius:999px;padding:.32rem .8rem;text-decoration:none;}
.vr-links a:hover{background:#EEF2F8;border-color:var(--c-border-strong);}
.vr-links a small{color:var(--c-muted);}
.evo2-caution{background:var(--c-amber-bg);color:var(--c-amber-ink);border:1px solid var(--c-amber-border);border-radius:10px;padding:.8rem 1rem;font-size:.87rem;line-height:1.55;margin:0 0 1.1rem;}
.evo2-caution b{display:block;margin-bottom:.15rem;}
.vr-empty{font-size:.88rem;color:var(--c-muted);line-height:1.55;}

/* ---- co-localization: trait picker + summary card ------------------------ */
.c-traitbar{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin:.3rem 0}
.c-traitbar select,.c-traitbar input{padding:.45rem .5rem;border:1px solid var(--c-border-strong);border-radius:7px;font-size:.9rem}
.c-traitbar button,#c-go{cursor:pointer}
.c-traitbar button{padding:.45rem .8rem;border:1px solid var(--c-border-strong);background:#fff;border-radius:7px;font-size:.88rem;color:var(--c-accent);font-weight:600}
.c-traitbar button:hover{background:#EEF2F8}
.c-chips{display:flex;gap:.4rem;flex-wrap:wrap;margin:.3rem 0}
.c-chip{display:inline-flex;align-items:center;gap:.4rem;background:#EEF2FF;border:1px solid #C7D2FE;color:#3730A3;border-radius:14px;padding:.2rem .6rem;font-size:.82rem}
.c-chip button{border:none;background:none;color:#6366F1;cursor:pointer;font-size:1rem;line-height:1;padding:0}
.evo2-export{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;margin:.3rem 0;font-size:.82rem;color:var(--c-muted)}
.evo2-export button{font-size:.8rem;padding:.32rem .6rem;border:1px solid var(--c-border-strong);background:#fff;border-radius:6px;cursor:pointer;color:var(--c-accent-hover)}
.cs-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;padding:1rem 1.2rem;margin:0 0 .9rem;border-left:4px solid var(--c-border-strong);}
.cs-card.is-strong{border-left-color:#B91C1C}
.cs-card.is-mid{border-left-color:#B45309}
.cs-card.is-weak{border-left-color:#64748B}
.cs-card.is-none{border-left-color:#CBD5E1}
.cs-head{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-bottom:.35rem}
.cs-head h2{margin:0;font-size:1rem;font-weight:700;color:var(--c-ink)}
.cs-tier{font-family:var(--c-mono);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.15rem .45rem;border-radius:4px;background:#F1F5F9;color:#334155;white-space:nowrap}
.is-strong .cs-tier{background:#FEE2E2;color:#991B1B}
.is-mid .cs-tier{background:#FEF3E2;color:#92400E}
.cs-detail{margin:0 0 .6rem;font-size:.9rem;line-height:1.55;color:var(--c-text)}
.cs-facts{list-style:none;padding:0;margin:0 0 .7rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.15rem .9rem}
.cs-facts li{font-size:.85rem;color:var(--c-muted);line-height:1.5}
.cs-facts b{font-family:var(--c-mono);color:var(--c-ink)}
.cs-tbl{width:100%;border-collapse:collapse;font-size:.82rem;margin:.2rem 0}
.cs-tbl th,.cs-tbl td{border-bottom:1px solid var(--c-border);padding:.36rem .5rem;text-align:left;white-space:nowrap}
.cs-tbl thead th{background:#F8FAFC;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:#64748B;font-weight:600}
.cs-tbl td.n{font-family:var(--c-mono);text-align:right;font-variant-numeric:tabular-nums}
.cs-tbl a{color:var(--c-accent);font-family:var(--c-mono);text-decoration:none}
.cs-tbl a:hover{text-decoration:underline}
.cs-gws{font-family:var(--c-mono);font-size:.68rem;padding:.05rem .3rem;border-radius:3px;background:#FEE2E2;color:#991B1B;font-weight:700}
.cs-note{margin:.35rem 0 0;font-size:.84rem;color:var(--c-muted)}

/* ---- GWAS / heritability: cross-biobank comparison ----------------------- */
.gw-searchbar{display:flex;gap:.8rem;flex-wrap:wrap;align-items:flex-end;background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;padding:1rem 1.2rem;margin:0 0 .8rem}
.gw-searchbar input,.gw-searchbar select{min-height:40px;font-size:.95rem;color:var(--c-ink);border:1px solid var(--c-border-strong);border-radius:8px;padding:.4rem .6rem;width:100%}
.gw-verdict{margin:.2rem 0 .5rem;font-size:.95rem;line-height:1.6;color:var(--c-text)}
.gw-best{list-style:none;padding:0;margin:0 0 1rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.3rem .9rem}
.gw-best li{font-size:.85rem;color:var(--c-text)}
.gw-best b{font-family:var(--c-mono)}
.gw-ctbl{width:100%;border-collapse:collapse;font-size:.84rem;background:var(--c-surface)}
.gw-ctbl th,.gw-ctbl td{border-bottom:1px solid var(--c-border);padding:.45rem .55rem;text-align:left;vertical-align:top}
.gw-ctbl thead th{background:#F8FAFC;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:#64748B;font-weight:600;white-space:nowrap}
.gw-ctbl td.n{font-family:var(--c-mono);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.gw-ctbl tr.gw-miss td{color:var(--c-muted);font-style:italic}
.gw-ctbl a{color:var(--c-accent);text-decoration:none;font-weight:600}
.gw-ctbl a:hover{text-decoration:underline}

/* ---- home-page figures --------------------------------------------------- */
.evo2-figsec{margin:0 0 2rem}
.evo2-figsec>h2{font-size:1.18rem;font-weight:700;color:var(--c-ink);margin:0 0 .85rem;letter-spacing:-.01em}
.evo2-fig{margin:0;background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;padding:1.1rem 1.2rem .9rem;overflow-x:auto}
.evo2-fig svg{display:block;width:100%;min-width:640px;height:auto}
.evo2-fig figcaption{margin-top:.9rem;padding-top:.75rem;border-top:1px solid var(--c-border);font-size:.86rem;line-height:1.6;color:var(--c-muted);max-width:80ch}
.fa-box{fill:#F8FAFC;stroke:#CBD5E1;stroke-width:1}
.fa-boxacc{fill:#EFF6FF;stroke:#93B4E8}
.fa-dash{fill:none;stroke:#CBD5E1;stroke-dasharray:3 3}
.evo2-fig text{font-family:var(--c-sans);fill:var(--c-text)}
.fa-step{font-family:var(--c-mono);font-size:11px;fill:#94A3B8;text-transform:uppercase;letter-spacing:.06em}
.fa-h{font-size:12.5px;font-weight:600;fill:var(--c-ink)}
.fa-h2{font-size:11.5px;fill:var(--c-text)}
.fa-s{font-size:10.5px;fill:var(--c-muted)}
.fa-m{font-family:var(--c-mono);font-size:11.5px;fill:var(--c-text)}
.fa-b{font-weight:700}
.fa-acc{fill:var(--c-accent)}
.fa-neg{fill:#15803D}
.fa-pos{fill:#B91C1C}
.fa-ln{stroke:#64748B;stroke-width:1.4;fill:none}
.fa-dashln{stroke:#94A3B8;stroke-width:1.2;stroke-dasharray:4 3}
.evo2-cando{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;margin-top:1rem}
.evo2-can,.evo2-cant{background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;padding:.95rem 1.15rem;border-top:3px solid #15803D}
.evo2-cant{border-top-color:#B91C1C}
.evo2-can h3,.evo2-cant h3{margin:0 0 .5rem;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#15803D}
.evo2-cant h3{color:#B91C1C}
.evo2-can ul,.evo2-cant ul{margin:0;padding-left:1.1rem}
.evo2-can li,.evo2-cant li{font-size:.88rem;line-height:1.55;color:var(--c-text);margin-bottom:.3rem}

/* ---- module cards (were inline on the home page) ------------------------- */
.evo2-modules{display:flex;gap:1rem;flex-wrap:wrap;margin:1.1rem 0 0}
.evo2-modcard{flex:1 1 280px;display:block;text-decoration:none;border:1px solid var(--c-border);border-left:4px solid var(--c-accent);border-radius:10px;padding:1rem 1.1rem;background:var(--c-surface);transition:box-shadow .15s,transform .15s}
.evo2-modcard:hover{box-shadow:0 6px 22px rgba(37,99,235,.12);transform:translateY(-1px)}
.evo2-modtag{display:inline-block;font-family:var(--c-mono);font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:var(--c-accent);font-weight:700}
.evo2-modtitle{display:block;font-size:1.08rem;font-weight:700;color:var(--c-ink);margin:.15rem 0 .35rem}
.evo2-moddesc{display:block;font-size:.9rem;color:var(--c-muted);line-height:1.45}
.vf-hint{font-family:var(--c-mono);font-size:.62rem;text-transform:none;letter-spacing:0;color:var(--c-accent);background:#EFF6FF;border-radius:4px;padding:.05rem .3rem;margin-left:.3rem}

/* ---- link decoration: Datasette's app.css styles a:link / a:visited, which is
   more specific than a bare class selector, so our card and pill links need the
   same specificity to stay undecorated ------------------------------------- */
a.evo2-modcard,a.evo2-modcard:link,a.evo2-modcard:visited,
a.evo2-ex,a.evo2-ex:link,a.evo2-ex:visited,
.evo2-modulebar a:link,.evo2-modulebar a:visited,
.evo2-nav a:link,.evo2-nav a:visited,
.evo2-pills a:link,.evo2-pills a:visited,
.vr-links a:link,.vr-links a:visited,
.evo2-access-list a:link,.evo2-access-list a:visited,
.evo2-foot a:link,.evo2-foot a:visited,
a.evo2-back:link,a.evo2-back:visited,
a.evo2-wordmark:link,a.evo2-wordmark:visited{text-decoration:none}
.evo2-nav a:hover,.evo2-access-list a:hover,.evo2-foot a:hover,a.evo2-back:hover{text-decoration:underline}
a.evo2-wordmark{color:var(--c-ink)}

/* four module cards read better as 2x2 than 3+1 in a 1000px column */
@media (min-width:720px){.evo2-modcard{flex:1 1 calc(50% - .5rem)}}

/* the annotation rows carry long mono strings; let them wrap instead of pushing
   the percentile column out of the panel */
.vr-tbl td{overflow-wrap:anywhere}
.vr-tbl th:nth-child(2),.vr-tbl td:nth-child(2){width:32%}
.vr-tbl th:nth-child(3),.vr-tbl td:nth-child(3){width:22%}
.gw-annot{display:inline-flex;border:1px solid var(--c-border-strong);border-radius:8px;overflow:hidden}
.gw-annot button{border:0;background:#fff;color:var(--c-muted);font-size:.88rem;padding:.45rem .8rem;cursor:pointer;min-height:40px}
.gw-annot button+button{border-left:1px solid var(--c-border)}
.gw-annot button.is-active{background:var(--c-accent);color:#fff;font-weight:600}
.gw-annot button:disabled{opacity:.4;cursor:not-allowed}

/* ---- worked-examples page ------------------------------------------------ */
.gd-step{display:grid;grid-template-columns:2.6rem 1fr;gap:1rem;background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;padding:1.2rem 1.35rem;margin:0 0 1.1rem}
.gd-num{font-family:var(--c-mono);font-size:1.3rem;font-weight:700;color:var(--c-accent);line-height:1;padding-top:.2rem}
.gd-step h2{margin:0 0 .5rem;font-size:1.05rem;font-weight:700;color:var(--c-ink);border:0;padding:0}
.gd-step ol{margin:.6rem 0 0;padding-left:1.2rem}
.gd-step li{margin-bottom:.5rem;line-height:1.6}
.gd-caveat{background:var(--c-amber-bg);color:var(--c-amber-ink);border:1px solid var(--c-amber-border);border-radius:8px;padding:.6rem .8rem;font-size:.88rem;line-height:1.55;margin:.8rem 0 0}
