[hidden]{display:none!important}
body{margin:0}
img{max-width:100%}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Layout: brand band, then a three-pane workbench: site pipeline list | questionnaire + profile | live score panel. Collapses to one column on phones. */
:root{
  --bg:#FAF9F5; --surface:#FFFFFF; --surface-2:#F2F0E8; --ink:#24223A; --muted:#625F78; --line:#E3DFD2;
  --brand:#3D3599; --brand-deep:#2A246C; --gold:#B8963C; --gold-soft:#F3EAD2; --teal:#1F9E93;
  --good:#1E8A5A; --warn:#B7791F; --bad:#B4413C; --good-bg:#E4F3EB; --warn-bg:#FAF0DC; --bad-bg:#F8E3E1;
  --on-brand:#FFFFFF; --on-brand-muted:#CFCCEA; --sel:#ECEAF8;
  --f-display:"Source Serif 4","DejaVu Serif",Georgia,serif;
  --f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#15142A; --surface:#1E1C38; --surface-2:#26244A; --ink:#ECEAF7; --muted:#A9A6C4; --line:#34315C;
  --brand:#8F87F0; --brand-deep:#100F24; --gold:#D9B95E; --gold-soft:#3A3220; --teal:#4FD1C5;
  --good:#5CC995; --warn:#E5B35A; --bad:#EE8A84; --good-bg:#183A2B; --warn-bg:#3B2F17; --bad-bg:#3F1F22;
  --on-brand:#FFFFFF; --on-brand-muted:#B9B5DE; --sel:#2E2B58; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#15142A; --surface:#1E1C38; --surface-2:#26244A; --ink:#ECEAF7; --muted:#A9A6C4; --line:#34315C;
  --brand:#8F87F0; --brand-deep:#100F24; --gold:#D9B95E; --gold-soft:#3A3220; --teal:#4FD1C5;
  --good:#5CC995; --warn:#E5B35A; --bad:#EE8A84; --good-bg:#183A2B; --warn-bg:#3B2F17; --bad-bg:#3F1F22;
  --on-brand:#FFFFFF; --on-brand-muted:#B9B5DE; --sel:#2E2B58; color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.5}
header.band{background:var(--brand-deep);color:var(--on-brand);padding-block:24px 26px;padding-inline:16px;border-bottom:4px solid var(--gold)}
.wrap{max-width:1440px;margin:0 auto}
.mark{font-family:var(--f-display);font-weight:700;letter-spacing:.06em;color:var(--gold);font-size:20px}
.mark span{font-family:var(--f-body);font-weight:400;letter-spacing:0;color:var(--on-brand-muted);font-size:14px;margin-left:10px}
h1{font-family:var(--f-display);font-weight:700;font-size:clamp(26px,4vw,38px);line-height:1.12;margin:14px 0 6px;text-wrap:balance}
.lede{color:var(--on-brand-muted);max-width:68ch;margin:0}
main.wrap{display:grid;grid-template-columns:280px minmax(0,1fr) 340px;gap:24px;padding-block:24px 60px;padding-inline:16px}
@media (max-width:1180px){main.wrap{grid-template-columns:240px minmax(0,1fr)}aside.panel{grid-column:2}}
@media (max-width:820px){main.wrap{grid-template-columns:minmax(0,1fr)}aside.panel{grid-column:1}}
button{font:inherit;cursor:pointer}
.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:8px 14px;font-weight:500}
.btn:hover{border-color:var(--brand)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.btn.small{padding:5px 10px;font-size:13px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn:focus-visible,.seg button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.site-item:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
input[type=text],input[type=email],input[type=search],input[type=number],input[type=date],select,textarea{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%}
textarea{min-height:70px;resize:vertical}
/* site list */
nav.sites{display:flex;flex-direction:column;gap:10px;min-width:0}
nav.sites h2{font-family:var(--f-display);font-size:20px;margin:0}
.list-tools{display:flex;flex-direction:column;gap:8px}
.list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;background:var(--surface);max-height:70vh;overflow:auto}
@media (max-width:820px){.list{max-height:280px}}
.site-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);padding:10px 12px}
.site-item:last-child{border-bottom:0}
.site-item[aria-current="true"]{background:var(--sel)}
.site-item .nm{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-item .meta{grid-column:1;font-size:12px;color:var(--muted)}
.chip{grid-row:1/span 2;grid-column:2;align-self:center;font-family:var(--f-mono);font-size:12px;border-radius:6px;padding:2px 7px;font-variant-numeric:tabular-nums}
.chip.good{background:var(--good-bg);color:var(--good)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.bad{background:var(--bad-bg);color:var(--bad)}.chip.none{background:var(--surface-2);color:var(--muted)}
.list-empty{padding:16px;color:var(--muted);font-size:14px}
.counts{font-size:12px;color:var(--muted)}
/* editor */
.editor{min-width:0}
.ed-head{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:14px}
.ed-head h2{font-family:var(--f-display);font-size:26px;margin:0;min-width:0;overflow-wrap:anywhere}
.saved{font-size:12px;color:var(--muted)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:22px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
label.f{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted);font-weight:500}
.ct{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);font-size:13px;color:var(--muted)}
.ct b{color:var(--ink)}
.ct .src{display:inline-block;font-family:var(--f-mono);font-size:11px;background:var(--gold-soft);color:var(--ink);border-radius:4px;padding:1px 6px;margin-right:6px}
section.cat{margin-bottom:24px}
.cat-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:4px}
.cat-head h3{font-family:var(--f-display);font-size:21px;margin:0}
.pts{font-family:var(--f-mono);font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.q{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 18px;align-items:center;padding:11px 0;border-bottom:1px dashed var(--line)}
.q:last-child{border-bottom:0}
.q .t{font-weight:500}
.q .h{grid-column:1;color:var(--muted);font-size:13px}
.q .ctl{grid-row:1/span 2;grid-column:2}
@media (max-width:560px){.q{grid-template-columns:minmax(0,1fr)}.q .ctl{grid-row:auto;grid-column:1}}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--bg)}
.seg button{border:0;background:transparent;color:var(--muted);padding:6px 12px;font-size:14px;font-weight:500}
.seg button+button{border-left:1px solid var(--line)}
.seg button[aria-pressed="true"]{background:var(--brand);color:var(--on-brand)}
.prof{display:grid;gap:12px}
h3.sec{font-family:var(--f-display);font-size:21px;margin:0 0 4px}
p.hint{font-size:13px;color:var(--muted);margin:0 0 12px}
/* panel */
aside.panel{position:sticky;top:calc(env(safe-area-inset-top,0px) + 16px);align-self:start;display:flex;flex-direction:column;gap:16px;min-width:0}
@media (max-width:1180px){aside.panel{position:static}}
.scorecard,.gaps{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px}
.ring{display:flex;gap:16px;align-items:center}
.ring svg{flex:none}
.score-num{font-family:var(--f-display);font-size:44px;font-weight:700;fill:var(--ink)}
.score-of{font-family:var(--f-mono);font-size:12px;fill:var(--muted)}
.tier{display:inline-block;border-radius:6px;padding:3px 10px;font-weight:600;font-size:13px}
.tier.good{background:var(--good-bg);color:var(--good)}.tier.warn{background:var(--warn-bg);color:var(--warn)}.tier.bad{background:var(--bad-bg);color:var(--bad)}
.tier-copy{color:var(--muted);font-size:13px;margin:8px 0 0}
.bars{display:flex;flex-direction:column;gap:9px;margin-top:16px}
.bar-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;font-size:13px}
.bar-row .track{grid-column:1/-1;height:7px;border-radius:4px;background:var(--surface-2);overflow:hidden}
.bar-row .fill{height:100%;background:var(--brand);border-radius:4px;transition:width .35s ease}
@media (prefers-reduced-motion:reduce){.bar-row .fill{transition:none}}
.gaps h3{font-family:var(--f-display);font-size:20px;margin:0 0 4px}
.gaps .sub{color:var(--muted);font-size:13px;margin:0 0 10px}
.gap{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 12px;padding:10px 0;border-top:1px solid var(--line)}
.gap .lose{grid-row:1/span 3;font-family:var(--f-mono);font-size:12px;color:var(--bad);background:var(--bad-bg);border-radius:5px;padding:2px 6px;height:max-content;font-variant-numeric:tabular-nums}
.gap .gt{font-weight:600;font-size:14px}
.gap .read{font-size:13px;color:var(--muted)}
.gap .fix{font-size:13px}
.gap .fix b{color:var(--teal);font-weight:600}
.empty{color:var(--muted);font-size:14px}
.actions{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.foot{color:var(--muted);font-size:12px;margin-top:8px}
.notice{background:var(--warn-bg);color:var(--ink);border-radius:8px;padding:8px 12px;font-size:13px}
.blank{background:var(--surface);border:1px dashed var(--line);border-radius:14px;padding:40px 24px;text-align:center;color:var(--muted)}
.blank h2{font-family:var(--f-display);color:var(--ink);margin:0 0 6px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 20px);background:var(--ink);color:var(--bg);padding:9px 16px;border-radius:8px;font-size:14px;z-index:5}
textarea.copy{min-height:140px;font:13px var(--f-mono)}
.confirm{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}
/* tabs + sponsor view */
.tabs{display:flex;gap:6px;max-width:1440px;margin:18px auto 0;padding-inline:16px;flex-wrap:wrap}
.tab{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:7px 16px;font-weight:600;font-size:14px}
.tab[aria-selected="true"]{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.tab:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.sp{display:grid;grid-template-columns:360px minmax(0,1fr);gap:24px;padding-block:20px 60px;padding-inline:16px}
@media (max-width:900px){.sp{grid-template-columns:minmax(0,1fr)}}
.sp-side{display:flex;flex-direction:column;gap:16px;min-width:0}
.sp-side .card{margin-bottom:0}
.checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 12px;font-size:14px}
.checks label{display:flex;gap:8px;align-items:flex-start}
.checks input{margin-top:3px;accent-color:var(--brand)}
.reqs{display:flex;flex-direction:column;gap:6px}
.req{display:flex;justify-content:space-between;gap:8px;text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:8px 10px;font-size:14px}
.req[aria-current="true"]{background:var(--sel);border-color:var(--brand)}
.req .n{font-family:var(--f-mono);font-size:12px;color:var(--muted);white-space:nowrap}
.res-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.res-head h2{font-family:var(--f-display);font-size:26px;margin:0}
.banner{background:var(--gold-soft);border:1px solid var(--gold);border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:14px}
.match{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:6px 16px;align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:12px}
@media (max-width:600px){.match{grid-template-columns:60px minmax(0,1fr)}.match .side{grid-column:1/-1}}
.pct{font-family:var(--f-display);font-weight:700;font-size:30px;line-height:1;color:var(--brand);font-variant-numeric:tabular-nums}
.pct small{display:block;font-family:var(--f-body);font-weight:500;font-size:11px;color:var(--muted);margin-top:4px;letter-spacing:.04em;text-transform:uppercase}
.match h4{margin:0;font-size:16px;overflow-wrap:anywhere}
.match .loc{font-size:13px;color:var(--muted)}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tag{font-size:12px;border-radius:5px;padding:2px 8px;background:var(--surface-2);color:var(--ink)}
.tag.ok{background:var(--good-bg);color:var(--good)}.tag.no{background:var(--bad-bg);color:var(--bad)}.tag.hit{background:var(--sel);color:var(--brand)}
.match .side{display:flex;flex-direction:column;gap:8px;min-width:170px}
.match .side select{font-size:13px;padding:6px 8px}
.ctline{font-size:12px;color:var(--muted);margin-top:6px}
/* feasibility autofill */
#af_q{min-height:220px;font-size:14px}
.af-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.filebtn{position:relative;overflow:hidden}
.filebtn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.privacy{font-size:12px;color:var(--muted);background:var(--surface-2);border-radius:8px;padding:8px 10px}
.progress{font-size:14px;color:var(--brand);font-weight:500}
.sumbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.pill{font-size:13px;border-radius:999px;padding:3px 12px;font-weight:600;font-variant-numeric:tabular-nums}
.pill.answered{background:var(--good-bg);color:var(--good)}.pill.confirm{background:var(--warn-bg);color:var(--warn)}.pill.missing{background:var(--bad-bg);color:var(--bad)}
.frow{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:grid;gap:8px;margin-bottom:10px}
.fq{display:flex;gap:10px;font-weight:600;align-items:baseline}
.fq .fn{font-family:var(--f-mono);font-size:12px;color:var(--muted);min-width:2ch;font-variant-numeric:tabular-nums}
.frow textarea{min-height:64px}
.frow.pending textarea{opacity:.55}
.fmeta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.fmeta select{width:auto;font-size:12px;padding:4px 8px;font-weight:600}
.fmeta select.answered{background:var(--good-bg);color:var(--good)}.fmeta select.confirm{background:var(--warn-bg);color:var(--warn)}.fmeta select.missing{background:var(--bad-bg);color:var(--bad)}
.out-actions{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 16px}
/* forecast + performance */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;max-width:1440px;margin:20px auto 0;padding-inline:16px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.tile .l{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.tile .v{font-family:var(--f-display);font-size:30px;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums}
.tile .s{font-size:12px;color:var(--muted)}
.crit{display:grid;grid-template-columns:auto minmax(0,1fr) 110px auto;gap:6px 12px;align-items:center;padding:10px 0;border-bottom:1px dashed var(--line)}
.crit:last-child{border-bottom:0}
@media (max-width:600px){.crit{grid-template-columns:auto minmax(0,1fr)}.crit .pc,.crit .rm{grid-column:2}}
.crit .ck{grid-column:2/-1;font-size:12px;color:var(--muted)}
.crit .left{font-family:var(--f-mono);font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.crit input{padding:6px 8px}
.ctype{font-size:11px;font-weight:600;border-radius:5px;padding:2px 7px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.ctype.inc{background:var(--good-bg);color:var(--good)}.ctype.exc{background:var(--bad-bg);color:var(--bad)}
.funnel{display:flex;flex-direction:column;gap:12px;margin:12px 0}
.fstep{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;font-size:14px}
.fstep b{font-variant-numeric:tabular-nums}
.fstep .bar{grid-column:1/-1;height:12px;background:var(--surface-2);border-radius:6px;overflow:hidden}
.fstep .bar i{display:block;height:100%;background:var(--brand);border-radius:6px;min-width:4px}
.fstep.last .bar i{background:var(--teal)}
.bigrow{display:flex;gap:28px;flex-wrap:wrap;align-items:flex-end;margin-top:6px}
.big{font-family:var(--f-display);font-size:46px;font-weight:700;color:var(--brand);line-height:1;font-variant-numeric:tabular-nums}
.big-l{font-size:13px;color:var(--muted)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.mt{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.mt div{background:var(--surface-2);border-radius:8px;padding:8px 10px}
.mt b{display:block;font-family:var(--f-display);font-size:22px;font-variant-numeric:tabular-nums}
.mt span{font-size:12px;color:var(--muted)}
.req .sub2{display:block;font-size:12px;color:var(--muted);font-weight:400}
.perfline{font-size:12px;color:var(--teal);margin-top:6px;font-weight:500}
/* study radar */
.radar-wrap{max-width:1180px;margin:0 auto;padding-block:20px 60px;padding-inline:16px}
.rd-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:14px 0 18px}
.rc{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:12px;display:flex;flex-direction:column;gap:8px;min-width:0}
.rc-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px;color:var(--muted)}
.rc-top .nct{font-family:var(--f-mono);color:var(--ink)}
.st-nyr{background:var(--gold-soft);color:var(--ink);border-radius:5px;padding:2px 8px;font-weight:600}
.st-rec{background:var(--surface-2);color:var(--ink);border-radius:5px;padding:2px 8px;font-weight:600}
.rc h4{margin:0;font-size:16px;line-height:1.35;overflow-wrap:anywhere}
.rc .loc{font-size:13px;color:var(--muted)}
.tag.tr{background:var(--gold-soft);color:var(--ink)}
.rc-match{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}
.mchip{border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:12px;background:var(--bg)}
.mchip b{color:var(--brand);font-variant-numeric:tabular-nums}
.rc-act{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rc-act select{width:auto;font-size:13px;padding:6px 8px;max-width:100%}
.rc-act a{font-size:13px;color:var(--brand)}
.rc details{font-size:13px}
.rc details summary{cursor:pointer;color:var(--brand);font-weight:500}
.rc details p{margin:8px 0;color:var(--ink)}
.draft{border-top:1px dashed var(--line);padding-top:10px;display:grid;gap:8px}
.draft textarea{min-height:200px;font-size:14px}
/* access */
.rolebar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}
.role{font-size:12px;font-weight:600;border-radius:999px;padding:3px 12px;background:rgba(255,255,255,.12);color:var(--on-brand)}
.rolebar span.saved{color:var(--on-brand-muted)}
.lock{max-width:560px;margin:48px auto;padding-inline:16px}
.lock .card{text-align:left}
.lock h2{font-family:var(--f-display);font-size:26px;margin:0 0 8px}
/* ---------- platform additions ---------- */
.linkbtn{background:transparent;border-color:rgba(255,255,255,.35);color:var(--on-brand)}
.linkbtn:hover{border-color:var(--on-brand)}
.badge{display:inline-block;min-width:1.6em;border-radius:999px;background:var(--gold);color:#1a1730;font-size:12px;padding:0 6px;margin-left:4px;font-variant-numeric:tabular-nums}
.site-banner{max-width:1440px;margin:16px auto 0;padding-inline:16px}
.site-banner .inner{background:var(--gold-soft);border:1px solid var(--gold);border-radius:10px;padding:12px 16px;font-size:14px}
main.wrap.no-nav{grid-template-columns:minmax(0,1fr) 340px}
@media (max-width:1180px){main.wrap.no-nav{grid-template-columns:minmax(0,1fr)}main.wrap.no-nav aside.panel{grid-column:1}}
.toggle{display:flex;gap:10px;align-items:center;font-weight:500;margin-top:8px}
.toggle input{width:18px;height:18px;accent-color:var(--brand)}
/* auth */
.auth{max-width:1080px;margin:40px auto 60px;padding-inline:16px}
.auth-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:40px;align-items:start}
@media (max-width:860px){.auth-grid{grid-template-columns:minmax(0,1fr)}}
.auth-copy h2{font-family:var(--f-display);font-size:24px;margin:0 0 6px}
.auth-copy p{color:var(--muted);margin:0 0 26px;max-width:46ch}
.auth-copy .fine{font-size:13px}
.auth-card{margin:0}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:18px}
.auth-tabs button{border:0;background:var(--surface);color:var(--muted);padding:10px;font-weight:600}
.auth-tabs button[aria-selected="true"]{background:var(--brand);color:var(--on-brand)}
.auth form{display:grid;gap:12px}
.auth input[type=email],.auth input[type=password]{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:9px 10px;width:100%}
.auth input:focus-visible,.auth-tabs button:focus-visible,.rolecard:focus-within{outline:3px solid var(--gold);outline-offset:2px}
.roles{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.roles legend{font-size:13px;color:var(--muted);font-weight:500;margin-bottom:6px}
.rolecard{display:grid;gap:2px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer;background:var(--bg)}
.rolecard input{position:absolute;opacity:0;pointer-events:none}
.rolecard span{font-size:12px;color:var(--muted)}
.rolecard:has(input:checked){border-color:var(--brand);background:var(--sel)}
.check{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--muted)}
.check input{margin-top:3px;accent-color:var(--brand)}
.auth a{color:var(--brand)}
.auth-msg{font-size:14px;margin:12px 0 0;min-height:1.2em}
.auth-msg.err{color:var(--bad)}
.auth-msg.ok{color:var(--good)}
.textlink{background:none;border:0;padding:0;color:var(--brand);font-size:13px;text-decoration:underline;justify-self:start}
.pend{max-width:620px}
.pend h2{font-family:var(--f-display);font-size:26px;margin:0 0 8px}
/* admin */
.ac{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:12px;display:grid;gap:8px}
.ac-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px;color:var(--muted)}
.ac h4{margin:0;font-size:17px}
.ac .who{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.ac .msg{font-size:14px;background:var(--surface-2);border-radius:8px;padding:8px 10px;white-space:pre-wrap}
.ac-act{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ac-act input{max-width:340px}
.rchip{border-radius:5px;padding:2px 8px;font-weight:600;font-size:12px}
.rchip.site{background:var(--sel);color:var(--brand)}.rchip.sponsor{background:var(--gold-soft);color:var(--ink)}.rchip.admin{background:var(--ink);color:var(--bg)}
.schip{border-radius:5px;padding:2px 8px;font-size:12px;font-weight:600}
.schip.pending{background:var(--warn-bg);color:var(--warn)}.schip.approved{background:var(--good-bg);color:var(--good)}.schip.rejected,.schip.suspended{background:var(--bad-bg);color:var(--bad)}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.utable{width:100%;border-collapse:collapse;font-size:14px;min-width:760px}
.utable th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:10px 12px;border-bottom:1px solid var(--line)}
.utable td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.utable tr:last-child td{border-bottom:0}
.utable td .sub{display:block;font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.utable select{width:auto;padding:5px 8px;font-size:13px}

/* ---------- Phase A ---------- */
.ind-head,.ind-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:center}
.ind-head{font-size:12px;color:var(--muted);margin:4px 0 6px}
.ind-row{margin-bottom:8px}
@media (max-width:640px){.ind-head{display:none}.ind-row{grid-template-columns:1fr 1fr;padding-bottom:8px;border-bottom:1px solid var(--line)}.ind-row input[data-k="name"]{grid-column:1/-1}}
.demo{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.ichip{display:inline-flex;align-items:center;gap:6px;font-size:13px;border-radius:999px;padding:4px 12px;background:var(--sel);color:var(--brand);font-weight:500}
.ichip.on{background:var(--good-bg);color:var(--good)}
.rc-int{background:var(--surface-2);border-radius:10px;padding:10px 12px;font-size:13px;display:flex;flex-direction:column;gap:8px}
.int-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.int-row span{font-weight:600;min-width:12ch}
.int-row select{width:auto;font-size:13px;padding:5px 8px;max-width:100%}
.fchip{font-size:12px;border-radius:999px;padding:2px 10px;white-space:nowrap;font-weight:600;background:var(--surface-2);color:var(--muted);align-self:center}
.fchip.new{background:var(--sel);color:var(--brand)}.fchip.in_progress{background:var(--warn-bg);color:var(--warn)}
.fchip.submitted,.fchip.under_review{background:var(--gold-soft);color:var(--ink)}
.fchip.selected{background:var(--good-bg);color:var(--good)}.fchip.not_selected,.fchip.withdrawn{background:var(--bad-bg);color:var(--bad)}
.fq-head .rc-top a.nct{font-family:var(--f-mono);color:var(--brand)}
.steps{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:14px 0 4px}
.steps li{font-size:13px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;color:var(--muted);display:flex;flex-direction:column;min-width:110px}
.steps li span{font-size:11px}
.steps li.done{border-color:var(--good);color:var(--good);background:var(--good-bg)}
.steps li.no{border-color:var(--bad);color:var(--bad);background:var(--bad-bg)}
.steps li.cur{border-color:var(--gold);color:var(--ink);background:var(--gold-soft)}
.fq-decide{display:grid;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.fq-decide select{max-width:260px}
#fq_tools{margin:12px 0 4px;align-items:center}
.inl{display:inline-flex;align-items:center;gap:6px;font-size:14px}
.inl select{width:auto}
.qen{display:block;font-size:13px;color:var(--muted);margin-top:4px;font-style:italic}
.trl{font-size:12px;color:var(--muted)}
.trl textarea{min-height:56px}
.fq-submit{margin-top:6px}
.notice{background:var(--gold-soft);border-radius:8px;padding:10px 12px;font-size:14px;margin:10px 0}
.rt{min-width:0}.t2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#fq_title{font-size:clamp(20px,3vw,26px);line-height:1.25}

/* ---------- Phase B ---------- */
.spseg{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.spseg button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:7px 14px;font-weight:500}
.spseg button[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.selbar{position:sticky;top:8px;z-index:3;display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--gold-soft);border:1px solid var(--gold);border-radius:10px;padding:8px 12px;margin-bottom:12px;font-weight:600}
.match.picked{border-color:var(--brand);box-shadow:0 0 0 2px var(--sel)}
.pick{display:flex;gap:6px;align-items:center;font-size:13px;font-weight:600;color:var(--brand)}
.crit{margin:4px 0 0;padding-left:18px;font-size:13px;color:var(--muted)}
.cda{white-space:pre-wrap;font-family:var(--f-body);font-size:13px;background:var(--surface-2);border-radius:8px;padding:12px;max-height:260px;overflow:auto;margin:8px 0 12px}
.rs-top{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.rs-top h4{margin:0;font-size:17px;flex:1;min-width:12ch}
.rank{font-family:var(--f-mono);color:var(--muted);min-width:2.5ch}
.rs-score{font-family:var(--f-display);font-size:26px;font-weight:700;color:var(--brand);display:flex;align-items:baseline;gap:4px}
.rs-score small{font-family:var(--f-body);font-size:11px;color:var(--muted);font-weight:400}
.rs-mt{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:640px){.rs-mt{grid-template-columns:repeat(2,minmax(0,1fr))}}
.rs-ans{display:grid;gap:8px}.rs-ans p{margin:0;font-size:14px}
.rs-dec{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rs-dec input{flex:1;min-width:200px}
.bg-big{margin:14px 0 10px}.bg-big b{display:block;font-family:var(--f-display);font-size:34px;color:var(--brand)}.bg-big span{font-size:13px;color:var(--muted)}
.bg-total{margin-bottom:14px}
.bg-cat summary{display:flex;justify-content:space-between;gap:10px;cursor:pointer;font-weight:600}
.bg-cat summary b{font-variant-numeric:tabular-nums}
.bg-t input{width:110px;padding:4px 6px}
.bg-t td:last-child{font-variant-numeric:tabular-nums;white-space:nowrap}
.bg-t .sub{display:block;font-size:11px;color:var(--muted)}
.match{grid-template-columns:88px minmax(0,1fr) auto}.match .pct{font-size:26px}
ul.crit{display:block;grid-column:1/-1;width:100%}ul.crit li{display:list-item;margin:2px 0}

/* ---------- Phase C ---------- */
.ot-gen{margin-bottom:14px}
.ot .grid3{margin-top:4px}
.ot textarea{min-height:150px}
#ot_bar{position:static}
#ot_sup .textlink{font-size:12px}

/* ---------- guided workflows (replaces the tab row) ---------- */
#tabbar{display:none!important}
.jy{max-width:1440px;margin:22px auto 0;padding-inline:16px;--thread:var(--gold);--thread-hi:#E9D6A0}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .jy{--thread-hi:#F2E2B0}}
:root[data-theme="dark"] .jy{--thread-hi:#F2E2B0}
.jy svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.jy-glyph{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--sel);color:var(--brand)}
.jy-glyph svg{width:26px;height:26px}
.jy-glyph.sm{width:30px;height:30px;border-radius:8px}
.jy-glyph.sm svg{width:18px;height:18px}

/* chooser */
.jy-home{padding-block:4px 44px}
.jy-hero{position:relative;overflow:hidden;border-radius:22px;background:var(--hero-bg);color:#fff;padding:44px 44px 150px;isolation:isolate;--hero-bg:#2A246C}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .jy-hero{--hero-bg:#221E52}}
:root[data-theme="dark"] .jy-hero{--hero-bg:#221E52}
.jy-silk{position:absolute;left:0;bottom:0;width:200%;height:150px;z-index:-1;pointer-events:none}
.jy-silk path{fill:none;stroke-width:1.6;vector-effect:non-scaling-stroke;animation:jySilk var(--d,26s) linear infinite}
.jy-silk .sa{stroke:#D9B95E;opacity:.85}
.jy-silk .sb{stroke:#9C93F2;opacity:.55}
.jy-silk .sc{stroke:#5FD3C7;opacity:.45}
@keyframes jySilk{to{transform:translateX(-50%)}}
.jy-hero-in{position:relative;max-width:760px;animation:jyRise .7s cubic-bezier(.2,.7,.2,1) both}
@keyframes jyRise{from{opacity:0;transform:translateY(10px)}}
.jy-hello{margin:0 0 10px;color:#CFCBF2;font-size:16px;font-weight:500}
.jy-hero h2{font-family:var(--f-display);font-weight:600;font-size:clamp(32px,5vw,56px);line-height:1.05;letter-spacing:-.02em;margin:0;color:#fff;text-wrap:balance}
.jy-summary{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.jy-due{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(217,185,94,.55);background:color-mix(in srgb,var(--hero-bg) 82%,#D9B95E);color:#F4E3B0;border-radius:999px;padding:8px 16px 8px 12px;font:600 14px var(--f-body);cursor:pointer}
.jy-due:hover{background:color-mix(in srgb,var(--hero-bg) 70%,#D9B95E)}
.jy-due .dot{width:8px;height:8px;border-radius:50%;background:#D9B95E;box-shadow:0 0 0 4px rgba(217,185,94,.25)}
.jy-calm{color:#CFCBF2;font-size:15px}
.jy-util{position:absolute;top:22px;right:22px;display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.06);color:#fff;border-radius:10px;padding:8px 14px;font:600 13.5px var(--f-body);cursor:pointer}
.jy-util:hover{background:rgba(255,255,255,.14)}
.jy-util svg{width:18px;height:18px}
.jy-due:focus-visible,.jy-util:focus-visible{outline:3px solid #D9B95E;outline-offset:2px}
.jy-tiles{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:-84px 22px 0}
.jy-tiles.n3{grid-template-columns:1.25fr 1fr 1fr}
.jy-tile{display:flex;flex-direction:column;gap:10px;padding:22px 20px 20px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 40px -24px rgba(30,24,90,.45);min-width:0;animation:jyRise .6s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i) * 70ms)}
.jy-tile-top{display:flex;justify-content:space-between;align-items:flex-start}
.jy-count{min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:var(--gold);color:#1E1A4D;font-weight:700;font-size:13.5px;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.jy-tile h3{font-family:var(--f-display);font-weight:600;font-size:22px;line-height:1.2;margin:6px 0 0}
.jy-desc{margin:0;color:var(--muted);font-size:14.5px}
.jy-fact{margin:2px 0 0;font-size:13px;font-weight:600;color:var(--teal)}
.jy-open{align-self:flex-start;margin-top:auto;border:0;background:var(--brand);color:var(--on-brand);border-radius:10px;padding:10px 16px;font:600 14px var(--f-body);cursor:pointer}
.jy-tile .jy-fact+.jy-open,.jy-tile .jy-desc+.jy-open{margin-top:auto}
.jy-tile>.jy-open{margin-top:auto}
.jy-tile .jy-fact{margin-top:auto}
.jy-tile .jy-fact~.jy-open{margin-top:10px}
.jy-open:hover{filter:brightness(1.08)}
.jy-open:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.jy-sites{list-style:none;margin:4px 0 0;padding:0;border-top:1px solid var(--line)}
.jy-sites li{border-bottom:1px solid var(--line)}
.jy-sites .empty{padding:10px 0;color:var(--muted);font-size:14px}
.jy-site{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;color:var(--ink);text-align:left;padding:9px 4px;cursor:pointer;font:inherit}
.jy-site .sc{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);
  background:radial-gradient(closest-side,var(--surface) 76%,transparent 78% 100%),conic-gradient(var(--gold) calc(var(--p) * 1%),var(--line) 0)}
.jy-site .tx{flex:1;min-width:0}
.jy-site b{display:block;font-weight:600;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jy-site small{display:block;color:var(--muted);font-size:12.5px}
.jy-site .chev,.jy-chip .chev{width:16px;height:16px;flex:none;stroke:var(--muted);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.jy-site:hover{background:var(--sel)}
.jy-site:focus-visible{outline:3px solid var(--gold);outline-offset:-3px;border-radius:6px}
.jy-more-sites{margin:0;font-size:13px;color:var(--muted)}
.jy-moreblock{margin:30px 22px 0}
.jy-moreblock h3{font-family:var(--f-display);font-weight:600;font-size:19px;margin:0 0 12px}
.jy-more{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.jy-chip{display:flex;align-items:center;gap:12px;width:100%;height:100%;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:12px 14px;text-align:left;cursor:pointer;font:inherit}
.jy-chip .ic{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--sel);color:var(--brand)}
.jy-chip .ic svg{width:19px;height:19px}
.jy-chip .tx{min-width:0}
.jy-chip b{display:block;font-weight:600;font-size:14px}
.jy-chip small{display:block;color:var(--muted);font-size:12.5px}
.jy-chip:hover{border-color:var(--brand)}
.jy-chip:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.jy-goto select{height:38px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:0 10px;font:500 14px var(--f-body);max-width:240px}
.jy-flash{animation:jyFlash 1.6s ease-out}
@keyframes jyFlash{0%,30%{box-shadow:0 0 0 3px var(--gold)}100%{box-shadow:0 0 0 3px transparent}}
@media (max-width:1100px){.jy-tiles,.jy-tiles.n3{grid-template-columns:repeat(2,minmax(0,1fr))}.jy-tiles.n3 .jy-tile.wide{grid-row:span 2}}
@media (max-width:640px){
  .jy-hero{padding:40px 22px 130px;border-radius:18px}
  .jy-tiles,.jy-tiles.n3{grid-template-columns:minmax(0,1fr);margin:-70px 8px 0}
  .jy-tiles.n3 .jy-tile.wide{grid-row:auto}
  .jy-moreblock{margin:26px 8px 0}
  .jy-goto{width:100%}.jy-goto select{max-width:none;width:100%}
}
@media (prefers-reduced-motion: reduce){.jy-silk path,.jy-hero-in,.jy-tile,.jy-flash{animation:none}}

/* step bar */
.jy-bar{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 18px 18px}
.jy-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.jy-homebtn{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--muted);font:600 13.5px var(--f-body);padding:6px 8px 6px 4px;border-radius:8px;cursor:pointer}
.jy-homebtn svg{width:17px;height:17px}
.jy-homebtn:hover{color:var(--brand)}
.jy-homebtn:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.jy-current{display:flex;align-items:center;gap:10px;padding-left:14px;border-left:1px solid var(--line)}
.jy-current b{display:block;font-family:var(--f-display);font-size:20px;font-weight:600;line-height:1.2}
.jy-current small{display:block;color:var(--muted);font-size:13px}
.jy-bar{padding-bottom:14px}
.jy-of{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}
.jy-util-title{display:flex;align-items:center;gap:10px;padding-left:14px;border-left:1px solid var(--line)}
.jy-util-title b{display:block;font-family:var(--f-display);font-size:20px;font-weight:600;line-height:1.2}
.jy-util-title small{color:var(--muted);font-size:13px}
.jy-nav{margin-left:auto;display:flex;gap:8px}
.jy-steps{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr))}
.jy-steps li{position:relative;min-width:0}
.jy-steps li+li::before{content:"";position:absolute;top:17px;left:calc(-50% + 22px);right:calc(50% + 22px);height:2px;border-radius:2px;background:var(--line)}
.jy-steps li.done+li::before{background:linear-gradient(90deg,var(--thread),var(--thread-hi),var(--thread))}
.jy-steps button{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;border:0;background:transparent;color:var(--ink);padding:0 6px;cursor:pointer;text-align:center;font:inherit}
.jy-steps .knot{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:2px solid var(--line);background:var(--surface);color:var(--muted);font-weight:600;font-size:14px;font-variant-numeric:tabular-nums;transition:box-shadow .2s,background .2s}
.jy-steps .knot svg{width:16px;height:16px;stroke:currentColor;stroke-width:2.2;fill:none}
.jy-steps li.done .knot{background:var(--thread);border-color:var(--thread);color:#fff}
.jy-steps li.cur .knot{background:var(--brand);border-color:var(--brand);color:var(--on-brand);box-shadow:0 0 0 5px var(--gold-soft)}
.jy-steps .lbl{font-weight:600;font-size:14.5px;line-height:1.3}
.jy-steps .lbl small{display:block;font-weight:400;font-size:12.5px;color:var(--muted);margin-top:2px}
.jy-steps li.next .lbl{color:var(--muted)}
.jy-steps button:hover .knot{border-color:var(--brand)}
.jy-steps button:focus-visible{outline:none}
.jy-steps button:focus-visible .knot{outline:3px solid var(--gold);outline-offset:3px}
@media (max-width:700px){
  .jy-bar{padding:12px 12px 14px;border-radius:14px}
  .jy-current{border-left:0;padding-left:0;width:100%}
  .jy-util-title{border-left:0;padding-left:0;width:100%}
  .jy-nav{margin-left:0;width:100%;flex-wrap:wrap}
  .jy-nav .btn{flex:1}
  .jy-row{gap:8px}
  .jy-steps .lbl small{display:none}
  .jy-steps .lbl{font-size:13px}
  .jy-steps li+li::before{left:calc(-50% + 20px);right:calc(50% + 20px)}
}
@media (prefers-reduced-motion: reduce){.jy-steps .knot{transition:none}}

/* sponsor workspace: the same numbered thread for its four steps */
.seg.spseg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:0;border-radius:0;background:transparent;overflow:visible;counter-reset:sps;width:100%;margin-bottom:18px}
.seg.spseg button{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;background:transparent;color:var(--muted);padding:0 6px;font-weight:600;font-size:14px;counter-increment:sps;border:0}
.seg.spseg button+button{border-left:0}
.seg.spseg button::before{content:counter(sps);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:2px solid var(--line);background:var(--surface);color:var(--muted);font-size:13.5px;font-variant-numeric:tabular-nums;position:relative;z-index:1}
.seg.spseg button+button::after{content:"";position:absolute;top:16px;left:calc(-50% + 21px);right:calc(50% + 21px);height:2px;background:var(--thread,var(--gold));opacity:.55}
.seg.spseg button[aria-pressed="true"]{background:transparent;color:var(--ink)}
.seg.spseg button[aria-pressed="true"]::before{background:var(--brand);border-color:var(--brand);color:var(--on-brand);box-shadow:0 0 0 5px var(--gold-soft)}
.seg.spseg button:hover::before{border-color:var(--brand)}
.seg.spseg button:focus-visible{outline:none}
.seg.spseg button:focus-visible::before{outline:3px solid var(--gold);outline-offset:3px}
@media (max-width:600px){.seg.spseg button{font-size:12px}}
@media (max-width:700px){
  .jy-bar{display:flex;flex-direction:column}
  .jy-row{display:contents}
  .jy-homebtn{align-self:flex-start;order:0}
  .jy-current,.jy-util-title{order:1;margin-top:4px}
  .jy-steps{order:2;margin-top:14px}
  .jy-nav{order:3;margin-top:14px}
}
/* dark theme: the brand colour is light there, so text on it must be dark to stay readable */
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) :is(.btn.primary,.jy-go,.jy-open,.jy-steps li.cur .knot,.jy-steps li.done .knot,.seg.spseg button[aria-pressed="true"])
  {color:#16143A}
  :root:not([data-theme="light"]) .seg.spseg button[aria-pressed="true"]{color:var(--ink)}
  :root:not([data-theme="light"]) .seg.spseg button[aria-pressed="true"]::before{color:#16143A}}
:root[data-theme="dark"] :is(.btn.primary,.jy-go,.jy-open,.jy-steps li.cur .knot,.jy-steps li.done .knot){color:#16143A}
:root[data-theme="dark"] .seg.spseg button[aria-pressed="true"]::before{color:#16143A}

/* sign-up: role first */
.up-step{display:flex;flex-direction:column;gap:12px}
.up-progress{margin:0;font-size:12.5px;font-weight:600;color:var(--gold)}
.roles.big{grid-template-columns:1fr 1fr;gap:12px}
.roles.big legend{font-family:var(--f-display);font-size:22px;font-weight:600;color:var(--ink);margin-bottom:12px}
.roles.big .rolecard{position:relative;align-content:start;gap:4px;padding:18px 16px 16px;border-radius:14px;border-width:1.5px;transition:border-color .15s,background .15s}
.roles.big .rolecard b{font-size:16.5px;margin-top:6px}
.roles.big .rolecard>span:not(.rc-ic){font-size:13px}
.rc-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--sel);color:var(--brand)}
.rc-ic svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.rc-get{list-style:none;margin:10px 0 0;padding:10px 0 0;border-top:1px solid var(--line);display:grid;gap:5px}
.rc-get li{position:relative;padding-left:20px;font-size:13px;color:var(--ink)}
.rc-get li::before{content:"";position:absolute;left:2px;top:5px;width:9px;height:5px;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}
.roles.big .rolecard:has(input:checked){border-color:var(--brand);background:var(--sel);box-shadow:0 0 0 3px var(--gold-soft)}
.roles.big .rolecard:has(input:checked) .rc-ic{background:var(--brand);color:var(--on-brand)}
.roles.big .rolecard:has(input:checked)::after{content:"";position:absolute;top:14px;right:14px;width:20px;height:20px;border-radius:50%;background:var(--brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat}
.up-next{align-self:stretch;padding:11px 14px}
.up-as{margin:0;font-size:14px;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.up-as span{color:var(--ink);font-weight:600}
@media (max-width:520px){.roles.big{grid-template-columns:1fr}}
.jy-peek{list-style:none;margin:4px 0 0;padding:0;border-top:1px solid var(--line)}
.jy-peek li{padding:9px 0;border-bottom:1px solid var(--line);min-width:0}
.jy-peek b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:600;font-size:13.5px;line-height:1.35}
.jy-peek small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.jy-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:4px 0 0}
.jy-stats div{background:var(--surface-2);border-radius:10px;padding:10px 12px}
.jy-stats dt{font-size:12.5px;color:var(--muted)}
.jy-stats dd{margin:2px 0 0;font-family:var(--f-display);font-size:26px;font-weight:600;font-variant-numeric:tabular-nums}
.roles.big .rolecard,.roles.big .rolecard *{font-family:var(--f-body);line-height:1.35}
.roles.big .rolecard b{font-family:var(--f-display);font-weight:600;color:var(--ink)}
.roles.big .rolecard>span:not(.rc-ic){font-weight:400;color:var(--muted)}
.rc-get li{font-weight:500}

/* language picker (top right of the header) */
.band .wrap{position:relative}
.langpick{position:absolute;top:14px;right:16px;display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:4px 6px 4px 10px;background:rgba(255,255,255,.06);color:#fff}
.langpick svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6}
.langpick select{appearance:none;-webkit-appearance:none;border:0;background:transparent;color:#fff;font:600 13px var(--f-body);padding:2px 18px 2px 0;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5l3 3 3-3' fill='none' stroke='white' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center;background-size:12px}
.langpick select option{color:#24223A;background:#fff}
.langpick:focus-within{outline:3px solid var(--gold);outline-offset:2px}
.langpick:hover{background:rgba(255,255,255,.14)}
[dir="rtl"] .langpick{right:auto;left:16px}
@media (max-width:600px){.langpick{top:10px;right:10px}.band .mark{padding-right:110px}}
/* Arabic: a font with Arabic letters, and right-to-left fixes for one-sided spacing */
:root:lang(ar){--f-body:"Noto Sans Arabic","IBM Plex Sans",system-ui,sans-serif;--f-display:"Noto Sans Arabic","Source Serif 4",Georgia,serif}
[dir="rtl"] .jy-nav{margin-left:0;margin-right:auto}
[dir="rtl"] .jy-current,[dir="rtl"] .jy-util-title{border-left:0;padding-left:0;border-right:1px solid var(--line);padding-right:14px}
[dir="rtl"] .jy-tool .chev,[dir="rtl"] .jy-site .chev,[dir="rtl"] .jy-chip .chev{transform:scaleX(-1)}
[dir="rtl"] .rc-get li{padding-left:0;padding-right:20px}
[dir="rtl"] .rc-get li::before{left:auto;right:2px}
[dir="rtl"] .roles.big .rolecard:has(input:checked)::after{right:auto;left:14px}
[dir="rtl"] .jy-due .dot{margin:0}
.langnote{flex-basis:100%;margin:6px 0 0;padding:8px 12px;border-radius:10px;background:var(--sel);border-inline-start:3px solid var(--brand);font-size:13px;line-height:1.45}
.langnote b{margin-inline-end:6px}
.langnote span:last-child{display:block;color:var(--muted);margin-top:2px}
.langorig{font-size:12px;margin-top:4px}
.psv{margin:14px 0 4px;padding:14px 16px;border-radius:12px;border:1px solid var(--gold);background:var(--gold-soft)}
.psv.done{border-color:var(--good);background:var(--good-bg)}
.psv h4{margin:0 0 6px;font-family:var(--f-display);font-size:17px}
.psv p{margin:0 0 10px;font-size:14px;line-height:1.5}
.psv .psv-when{font-size:16px;font-weight:600}
.psv-row{display:grid;grid-template-columns:1fr 160px;gap:10px;margin-bottom:8px}
.psv-row .f span{font-size:12px;color:var(--muted)}
.psv-slots{list-style:none;padding:0;margin:6px 0 4px;display:flex;flex-direction:column;gap:6px}
.psv-slots li{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 10px;background:var(--surface);border:1px solid var(--line);border-radius:8px;font-size:14px}
.fchip.psv_approved{background:var(--good-bg);color:var(--good)}
.rs .psv{margin:10px 0}
@media(max-width:600px){.psv-row{grid-template-columns:1fr}}
/* Site list */
.sl-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:14px 0 4px}
.sl-stats div{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column}
.sl-stats b{font-family:var(--f-display);font-size:24px;font-variant-numeric:tabular-nums}
.sl-stats span{font-size:12px;color:var(--muted)}
.sl-table{min-width:900px}
.sl-table th.cb,.sl-table td.cb{width:36px;padding-inline:12px 4px}
.sl-table input[type=checkbox]{width:17px;height:17px;accent-color:var(--brand)}
.sl-table tr.picked td{background:var(--sel)}
.sl-table td.n{font-variant-numeric:tabular-nums;font-weight:600;text-align:center}
.sl-table th:nth-child(n+4):nth-child(-n+8){text-align:center}
.sl-table td.n.zero{color:var(--muted);font-weight:400}
.sl-table td.n.warn{color:var(--warn)}.sl-table td.n.gold{color:var(--gold)}.sl-table td.n.good{color:var(--good)}
.sl-name{all:unset;cursor:pointer;display:block;border-radius:6px}
.sl-name:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.sl-name b{display:block}.sl-name:hover b{color:var(--brand)}
.sl-tag{font-size:11px;font-weight:600;border-radius:999px;padding:1px 8px;background:var(--surface-2)}
.sl-tag.listed{background:var(--good-bg);color:var(--good)}.sl-tag.verified{background:var(--sel);color:var(--brand)}
.sl-table .sc{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;font-size:13px;font-weight:700;
  background:radial-gradient(closest-side,var(--surface) 76%,transparent 78% 100%),conic-gradient(var(--brand) calc(var(--p)*1%),var(--line) 0)}
.sl-last{display:flex;flex-direction:column;gap:4px;align-items:flex-start;font-size:13px}
.sl-last .fchip{align-self:flex-start}
.sl-detail td{background:var(--surface-2)}
.sl-piqs{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}
.sl-piqs li{display:flex;align-items:center;gap:10px;justify-content:space-between;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.sl-piqs button{all:unset;cursor:pointer;display:flex;flex-direction:column;min-width:0}
.sl-piqs button:hover .t2{color:var(--brand)}
.sl-piqs .t2{font-weight:600}.sl-piqs .sub{font-size:12px;color:var(--muted)}.sl-piqs .psvline{color:var(--good)}
.sl-panel{scroll-margin-top:72px;border-color:var(--brand);box-shadow:0 6px 24px rgba(61,53,153,.08)}
.sl-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.sl-chip{font-size:12px;font-weight:600;background:var(--sel);color:var(--brand);border-radius:999px;padding:3px 10px}
.rec-banner{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--gold-soft);border:1px solid var(--gold);border-radius:12px;padding:12px 16px;margin-bottom:14px}
.rec-banner p{margin:4px 0 0;font-size:14px}
.tag.rec{background:var(--gold-soft);color:var(--ink);border:1px solid var(--gold);font-size:11px;vertical-align:middle}
/* Site list: private contact list */
.sl-private{display:flex;align-items:center;gap:8px;margin:8px 0 14px}
.lock-ico{width:14px;height:14px;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 7V5a4 4 0 0 1 8 0v2h1v8H3V7zm2 0h4V5a2 2 0 0 0-4 0z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 7V5a4 4 0 0 1 8 0v2h1v8H3V7zm2 0h4V5a2 2 0 0 0-4 0z'/%3E%3C/svg%3E") center/contain no-repeat}
.sl-upload{display:flex;gap:18px;align-items:flex-start;border-style:dashed;border-width:1.5px;border-color:var(--gold);background:linear-gradient(180deg,var(--gold-soft),var(--surface) 70%)}
.sl-up-ico{flex:none;width:52px;height:52px;border-radius:14px;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center}
.sl-up-ico svg{width:28px;height:28px;fill:none;stroke:var(--brand);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sl-up-tx{flex:1;min-width:0}.sl-up-tx h3{margin:0 0 4px;font-family:var(--f-display);font-size:19px}
.sl-up-tx .out-actions{align-items:center}
.sl-result{margin-top:12px;padding:10px 14px;border-radius:10px;background:var(--surface);border:1px solid var(--line);font-size:14px}
.sl-result p{margin:0 0 6px}.sl-result ul{margin:0 0 6px;padding-inline-start:18px}.sl-result li{margin:2px 0}
.sl-bad{color:var(--bad);font-weight:600}
.sl-miss{color:var(--bad);font-size:13px}
.sl-chip.off{background:var(--bad-bg);color:var(--bad);text-decoration:line-through}
.sl-areas{max-width:220px;font-size:13px;color:var(--muted)}
.sl-table tr.fresh td{box-shadow:inset 0 0 0 9999px rgba(184,150,60,.08)}
.sl-edit td{background:var(--surface-2)}
.sl-edit .grid2{margin-bottom:8px}
.sl-attach{display:flex;align-items:center;gap:10px;margin-top:6px}
.sl-preview{margin-top:8px}.sl-preview summary{cursor:pointer;font-weight:600;font-size:14px}
.sl-mail{margin-top:8px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--surface);font-size:14px}
.sl-mail p{margin:0 0 4px}.sl-mail pre{white-space:pre-wrap;font-family:inherit;margin:10px 0 0}
.btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}
@media(max-width:600px){.sl-upload{flex-direction:column}}
.jy-tiles.n5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1300px){.jy-tiles.n5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1100px){.jy-tiles.n5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.jy-tiles.n5{grid-template-columns:minmax(0,1fr)}}
/* PIQ tracker */
.pq-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:start}
.pq-nav{display:flex;flex-direction:column;gap:12px;position:sticky;top:12px}
.pq-list{display:flex;flex-direction:column;gap:6px}
.pq-main .card.blank{text-align:center;padding:40px 20px}
.pq-rubric{margin-top:12px}.pq-rubric summary{cursor:pointer;font-weight:600}
.pq-crit{display:grid;grid-template-columns:minmax(140px,1fr) 90px minmax(200px,2fr);gap:10px;margin-top:8px}
.pq-crit .f span{font-size:12px;color:var(--muted)}
.pq-export{margin:10px 0}
.pq-table{min-width:860px}
.pq-table td,.pq-table th{padding:10px 8px}
.pq-rank{font-family:var(--f-display);font-size:20px;font-weight:700;color:var(--muted);width:36px}
.pq-row.rec .pq-rank{color:var(--good)}
.pq-score{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:92px;padding:6px 8px;border-radius:10px;background:var(--surface-2)}
.pq-score b{font-family:var(--f-display);font-size:24px;line-height:1}.pq-score span{font-size:11px;font-weight:700;margin-top:3px;white-space:nowrap}
.pq-score.rec{background:var(--good-bg);color:var(--good)}.pq-score.con{background:var(--warn-bg);color:var(--warn)}.pq-score.not{background:var(--bad-bg);color:var(--bad)}.pq-score.none{color:var(--muted)}
.pq-crits{display:flex;flex-wrap:wrap;gap:4px;max-width:250px}
.pq-c{display:inline-flex;gap:5px;align-items:center;font-size:11px;border-radius:6px;padding:2px 6px;background:var(--surface-2);color:var(--muted);cursor:help}
.pq-c b{font-size:12px;color:var(--ink)}
.pq-c.s5,.pq-c.s4{background:var(--good-bg)}.pq-c.s5 b,.pq-c.s4 b{color:var(--good)}
.pq-c.s3{background:var(--warn-bg)}.pq-c.s3 b{color:var(--warn)}
.pq-c.s2,.pq-c.s1,.pq-c.s0{background:var(--bad-bg)}.pq-c.s2 b,.pq-c.s1 b,.pq-c.s0 b{color:var(--bad)}
.pq-m{font-size:13px;max-width:160px}
.pq-flags{max-width:200px;min-width:140px}.pq-flags span{display:block;font-size:12px;color:var(--bad);margin-bottom:3px;padding-inline-start:12px;position:relative}
.pq-flags span::before{content:"";position:absolute;inset-inline-start:0;top:6px;width:6px;height:6px;border-radius:50%;background:var(--bad)}
.pq-sum{font-size:14px;margin:0 0 10px;max-width:90ch}
.pq-edit{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.pq-erow .f{display:flex;align-items:center;justify-content:space-between;gap:8px}.pq-erow select{width:70px}
.pq-erow .sub{font-size:12px;color:var(--muted);margin:4px 0 0}
.pq-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px 16px;margin:12px 0}
.pq-metrics dt{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.pq-metrics dd{margin:0;font-size:13px}
.pq-silk{margin-top:10px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 14px}
.pq-silk ul{list-style:none;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:4px}
@media (max-width:900px){.pq-layout{grid-template-columns:minmax(0,1fr)}.pq-nav{position:static}.pq-crit{grid-template-columns:1fr 80px}.pq-crit .pq-g{grid-column:1/-1}}
