:root{
  /* Science Live palette — matched to the platform.sciencelive4all.org / sciencelive4all.org
     design tokens (primary pink, navy foreground, chart green/orange/slate, destructive red). */
  --navy:#0c2c59; --navy2:#193967; --ink:#15294a; --mut:#505960;
  --magenta:#be2e78; --magenta-soft:#f7e6ef;
  /* "verified/confirmed" rides on navy (no green) — the ✅ glyph carries the positive cue.
     --verified* keep the old --green* names only so existing rules need no churn. */
  --green:#1f4d8f; --green-soft:#eaf0f9;
  --line:#e2e5ea; --bg:#fafbfc; --card:#fff;
}
*{box-sizing:border-box}
body{margin:0;font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}
.wrap{max-width:1080px;margin:0 auto;padding:0 22px}
/* underline inline links so they're distinguishable by more than colour (WCAG) */
a{color:var(--magenta);text-decoration:underline}
/* …except chip/button-styled links, which are distinguishable by their box */
.onp,.treplicate a,.ochip{text-decoration:none}
a.ochip:hover{filter:brightness(0.96)}
button{font:inherit}
/* visible keyboard-focus ring on every interactive control (mouse focus stays clean) */
:focus-visible{outline:2px solid var(--magenta);outline-offset:2px}

header{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;padding:40px 0 32px}
header h1{margin:0;font-size:38px;letter-spacing:-.5px}
header .tag{margin:.5rem 0 .2rem;font-size:20px;font-weight:600;color:#fff}
header .sub{margin:0;color:#aebfdc;font-size:14px}

.search{display:flex;gap:10px;margin:26px 0 6px;flex-wrap:wrap}
#topic{flex:1;min-width:240px;padding:13px 16px;border:1.5px solid var(--line);border-radius:10px;font-size:16px;background:#fff}
#topic:focus{border-color:var(--magenta)}
#go{padding:13px 26px;border:0;border-radius:10px;background:var(--magenta);color:#fff;font-size:16px;font-weight:600;cursor:pointer}
#go:hover{background:#a32a6a}
#go:disabled{opacity:.5;cursor:default}
.chips{display:flex;gap:8px;flex-wrap:wrap;width:100%}
.chip{padding:5px 12px;border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--mut);font-size:13px;cursor:pointer}
.chip:hover{border-color:var(--magenta);color:var(--magenta)}

.status{color:var(--mut);min-height:22px;margin:10px 0}

.vv.contra{color:#be2727}
.grid{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;margin-bottom:18px;align-items:start}
@media(max-width:820px){.grid{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin-bottom:18px}
.card h2{margin:0 0 4px;font-size:17px;color:var(--navy)}
.hint{margin:.2rem 0 14px;font-size:13px;color:var(--mut)}
.hint .open{color:var(--magenta)} .hint .verified{color:var(--green)}
.pill{display:inline-block;background:var(--navy);color:#fff;font-size:12px;border-radius:20px;padding:1px 9px;vertical-align:middle}
.chartbox{position:relative;margin-top:10px}
.gaphead{font-size:15px;color:var(--ink);margin-bottom:12px}
.gaphead b{font-size:22px;color:var(--navy);font-weight:800}
.gapsub{color:var(--mut);font-size:13px}
.gapnone{color:var(--magenta);font-weight:600;font-size:13px}
.gapbar{display:flex;height:28px;border-radius:8px;overflow:hidden;background:#eef2f9;border:1px solid var(--line)}
.gapseg{display:block;height:100%;min-width:7px}
.gapseg:not(:last-child){border-right:1.5px solid #fff}
.gapkey{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:14px}
.gapkeyi{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--mut);background:none;border:0;padding:0;cursor:pointer}
.gapkeyi:hover{color:var(--navy2)}
.gapkeyi i{width:11px;height:11px;border-radius:3px;display:inline-block}
.gapkeyi b{color:var(--navy2);font-weight:700}

.tfilters{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 14px}
.tfilters:empty{display:none}
.tfilter{border:1px solid var(--line);background:#fff;border-radius:20px;padding:5px 12px;font-size:12.5px;font-weight:600;color:var(--mut);cursor:pointer;display:inline-flex;align-items:center;gap:6px;line-height:1.4}
.tfilter span{background:#eef2f9;color:var(--navy2);border-radius:10px;padding:0 7px;font-size:11px;font-weight:700}
.tfilter:hover{border-color:var(--magenta);color:var(--navy2)}
.tfilter.on{border-color:var(--navy2);background:var(--navy);color:#fff}
.tfilter.on span{background:rgba(255,255,255,.22);color:#fff}
.targets{display:flex;flex-direction:column;gap:10px}
.tpager{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px;font-size:13px;color:var(--mut)}
.tpager:empty{display:none}
.tpager button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 16px;cursor:pointer;color:var(--navy2);font-size:13px;font-weight:600}
.tpager button:hover:not(:disabled){border-color:var(--magenta);color:var(--magenta)}
.tpager button:disabled{opacity:.4;cursor:default}
.target{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:10px}
.target.verified{background:var(--green-soft);border-color:#cbd9f0}
.score{width:54px;height:54px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;color:#fff;background:var(--magenta);flex-direction:column;line-height:1}
.score small{font-size:8px;font-weight:600;letter-spacing:.4px}
.target.verified .score{background:var(--green)}
.t-main b{font-size:15px;color:var(--ink)}
.t-meta{font-size:12.5px;color:var(--mut);margin-top:3px}
.badge{display:inline-block;font-size:11px;font-weight:700;padding:1px 7px;border-radius:5px;margin-right:6px}
.badge.open{background:var(--magenta-soft);color:#a32a6a}
.badge.verified{background:#e7eefb;color:var(--green)}
.badge.cls{background:#eef2f9;color:var(--navy2)}
.badge.yr{background:#eef2f9;color:var(--mut)}
.badge.imp{background:#e7edf6;color:var(--navy2)}
.badge.mok{background:var(--green-soft);color:var(--green)}
.badge.munk{background:#fdecc8;color:#8a5804}
.score .unv{font-size:7.5px;font-weight:700;letter-spacing:.2px;opacity:.95}
.badge.st-ready{background:var(--magenta);color:#fff}
.badge.st-val{background:#e7eefb;color:var(--green)}
.badge.st-con{background:#fdecc8;color:#8a5804}
.badge.st-needs{background:#eef2f9;color:var(--mut)}
.badge.st-dorm{background:#f0f1f4;color:#5d6470}
.badge.st-ref{background:#ffe4e3;color:#be2727}
.ic{display:inline-block;vertical-align:-2px}
.badge .ic{margin-right:3px}
.tfair .ic,.fairline .ic,.fairrecs .ic{margin-right:2px}
.tclaim{font-size:12.5px;color:var(--ink);margin-top:6px;line-height:1.5}
.claimlbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--green)}
.claimq{font-style:italic}
.badge.ctype{background:#e7edf6;color:var(--navy2);text-transform:capitalize}
.tverdict{font-size:12px;color:var(--mut);margin-top:4px}
.onp{display:inline-block;min-width:18px;text-align:center;border:1px solid var(--line);border-radius:4px;padding:0 6px;margin:0 2px;font-weight:700;font-size:11px;line-height:1.6}
.onp:hover{text-decoration:none}
/* white body so the chip is visible on tinted (verified) cards; verdict lives in border+text+hover */
.onp.v-ok{border-color:#9db6df;color:var(--green);background:#fff}
.onp.v-ok:hover{background:var(--green);color:#fff;border-color:var(--green)}
.onp.v-part{border-color:#f0c06a;color:#8a5804;background:#fff}
.onp.v-part:hover{background:#8a5804;color:#fff;border-color:#f59e09}
.onp.v-con{border-color:#eaa6a0;color:#be2727;background:#fff}
.onp.v-con:hover{background:#be2727;color:#fff;border-color:#d64545}
.onp.v-other{border-color:var(--line);color:var(--mut);background:#fff}
.tresolved{font-size:12px;color:var(--green);margin-top:4px}
.tresolved a{font-weight:600}
.tfair{font-size:12px;color:var(--mut);margin-top:3px}
.tfair b{color:var(--navy2)}
.treplicate{margin-top:7px}
.treplicate a{font-size:12px;font-weight:700;background:var(--magenta-soft);color:#a32a6a;padding:4px 11px;border-radius:7px;display:inline-block}
.treplicate a:hover{background:var(--magenta);color:#fff;text-decoration:none}
.tool{font-size:12px;color:var(--mut)}
.tool .swh{color:var(--green);font-weight:600}
.t-right{text-align:right;font-size:12px;color:var(--mut);white-space:nowrap}

#verified{font-size:13.5px}
.vlist{list-style:none;margin:0;padding:0}
.vlist li{padding:9px 0;border-bottom:1px solid var(--line)}
.vlist li:last-child{border:0}
.vt{color:var(--ink);font-weight:600;display:block;margin-bottom:2px}
.vv{color:var(--green);font-weight:700;font-size:12px}
.vv.partial{color:#8a5804}
#verified a{font-size:12px}
.vlist li.match{background:var(--green-soft);margin:0 -8px 10px;padding:12px 13px;border-radius:8px;border:0}
.nodelabel{display:block;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--green);margin-bottom:3px}
.ochips{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0}
.ochip{font-size:11px;background:#e7edf6;color:var(--navy2);border-radius:5px;padding:1px 7px;white-space:nowrap}
.ochip.oa{background:#e7edf6;color:var(--navy2);text-transform:capitalize}
.ochip.sdg{background:#fff1d3;color:#735a10}
.ochip.type{background:var(--navy);color:#fff;text-transform:capitalize}
.ochip.cites{background:transparent;color:var(--mut);padding-left:0}
.vclaim{font-size:12.5px;color:var(--ink);margin:7px 0 4px;line-height:1.5}
.vline{font-size:12.5px;color:var(--mut);margin-top:5px}
.vrepl{font-size:12.5px;margin-top:8px;padding-top:8px;border-top:1px dashed #cbd9f0;color:var(--ink)}
.vrepl.muted{color:var(--mut);border-top-color:var(--line)}
.vrepl a{font-weight:600}
.fairline{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:12px;color:var(--mut);margin-top:6px}
.fairscore{font-weight:700;color:var(--navy2)}
.fairrecs{display:flex;flex-wrap:wrap;align-items:center;gap:3px 10px;font-size:11.5px;margin-top:5px}
.fairrecs b{color:var(--navy2);font-size:12px}
.fairrecs .rok{color:var(--green)}
.fairrecs .rno{color:#8a5804}
.fairbar{display:inline-block;width:64px;height:7px;border-radius:4px;background:#e4e9f2;overflow:hidden}
.fairbar i{display:block;height:100%;background:var(--green)}
.swhok{color:var(--green);font-weight:600}
.swhno{color:#8a5804}
.ochip.wait{background:#fdecc8;color:#8a5804}
.vnone{color:#a32a6a;background:var(--magenta-soft);padding:12px 14px;border-radius:8px;font-size:13.5px}
.vmore-stat{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--mut)}

footer{border-top:1px solid var(--line);margin-top:30px;padding:20px 0;color:var(--mut);font-size:13px;background:#fff}
footer .wrap{display:flex;flex-direction:column;gap:12px}
footer .foot-links{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;width:100%}
.svc{font-size:13.5px;color:var(--ink)}
.svc a{font-weight:600}
