/* My BioAsia (my.html, 18 Oct 2026): the shell, sign-in, My passes, Account and the "January" cards, from
   my-bioasia-mocks.html (screens 1–5, 7, 8). Tokens and rx-* components from reg-a.css (direction A: deep navy + teal,
   light and dark); the pass itself is pass-view.css. Class names start with ms- or my- so they can't meet site.css. */
:root{--sans:"Inter","Segoe UI",system-ui,sans-serif;--display:"Manrope","Avenir Next","Segoe UI",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,monospace;color-scheme:light}
:root[data-theme="dark"]{color-scheme:dark}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark}}
*{box-sizing:border-box}
html,body{margin:0}
body.my{background:var(--a-paper);color:var(--a-ink);font:400 16px/24px var(--sans);min-height:100vh;-webkit-text-size-adjust:100%}
.my-skip{position:absolute;left:-9999px;top:8px;z-index:10;background:var(--a-surface);color:var(--a-ink);padding:8px 12px;border-radius:var(--r1)}
.my-skip:focus{left:8px}
.ms{min-height:100vh;display:flex;flex-direction:column}

/* top bar */
.ms-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:10px 24px;background:var(--a-hero);color:#fff;min-height:56px}
.ms .ms-brand{display:flex;align-items:center;gap:var(--s3);color:#fff;text-decoration:none;font:700 16px/24px var(--display)}
.ms-brand img{height:28px;width:auto;display:block}
.ms-brand span{padding-left:var(--s3);border-left:1px solid var(--a-hero-line)}
.ms-who{display:inline-flex;align-items:center;gap:var(--s2);font:500 14px/20px var(--sans);color:var(--a-hero-ink-2);min-width:0}
.ms-who .em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px}
.ms-who .av{width:32px;height:32px;border-radius:50%;background:var(--a-accent);color:#fff;display:grid;place-items:center;font:700 13px/1 var(--sans);flex:none}
.ms-who .av svg.i{width:16px;height:16px}
.ms-out{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:var(--r1);color:#fff;font:600 14px/20px var(--sans);border:1px solid var(--a-hero-line)}
.ms-out:hover{background:rgb(255 255 255 / .08)}
.ms-out:focus-visible{outline:2px solid #5EEAD4;outline-offset:2px}
.ms-out svg.i{width:16px;height:16px}

/* signed in: nav + main */
.ms-body{display:grid;grid-template-columns:232px minmax(0,1fr);flex:1}
.ms-nav{border-right:1px solid var(--a-line);background:var(--a-surface);padding:var(--s4) var(--s3);display:flex;flex-direction:column;gap:2px}
.ms-nav a,.ms-nav .soon{white-space:nowrap;display:flex;align-items:center;gap:var(--s3);padding:8px 12px;border-radius:var(--r1);color:var(--a-ink-2);text-decoration:none;font:500 14px/20px var(--sans)}
.ms-nav a:hover{background:var(--a-surface-2);color:var(--a-ink)}
.ms-nav a[aria-current="page"]{background:var(--a-accent-soft);color:var(--a-tag-ink);font-weight:600}
.ms-nav .ct{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--a-primary);color:#fff;font:700 11px/20px var(--sans);text-align:center}
.ms-nav .soon,.ms-nav a.soon{color:var(--a-ink-3)}
.ms-nav .soon .ct,.ms-nav a.soon .ct{background:var(--a-surface-2);color:var(--a-ink-2)}
.ms-nav .sep{margin:var(--s3) 12px var(--s1);font:600 11px/16px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--a-ink-3)}
.ms-nav :focus-visible,.ms-tabbar :focus-visible{outline:2px solid var(--a-focus);outline-offset:2px}
.ms-main{padding:var(--s6);min-width:0;max-width:1180px}
.ms-tabbar{display:none}
.crumb{font:500 14px/20px var(--sans);color:var(--a-ink-3);margin:0 0 var(--s3)}
.crumb a{color:var(--a-accent-text);text-decoration:none;font-weight:600}
.vh{margin:0 0 var(--s5)}
.vh h1{font:800 32px/40px var(--display);letter-spacing:-.02em;margin:0}
.vh p{margin:var(--s1) 0 0;color:var(--a-ink-2);overflow-wrap:anywhere}
.my-load{color:var(--a-ink-2)}

/* signed out: the hero band of register.html / find.html */
.so-hero{background:linear-gradient(180deg,var(--a-hero),var(--a-hero-2));color:#fff;padding:var(--s5) var(--s6) calc(var(--s8) + var(--s3))}
.so-hero .in{max-width:520px;margin:0 auto}
.so-hero h1{font:800 32px/40px var(--display);letter-spacing:-.02em;margin:var(--s3) 0 0;color:#fff}
.so-hero p{margin:var(--s1) 0 0;color:var(--a-hero-ink-2)}
.so-wrap{max-width:520px;width:100%;margin:calc(-1 * var(--s8)) auto var(--s6);padding:0 var(--s4);position:relative}
.panel{background:var(--a-surface);border:1px solid var(--a-line);border-radius:var(--r3);box-shadow:var(--a-shadow);padding:var(--s6)}
.panel h2{margin:0;font:700 24px/32px var(--display);color:var(--a-ink)}
.panel .sub{margin:var(--s1) 0 var(--s4);color:var(--a-ink-2);font-size:14px;line-height:20px;overflow-wrap:anywhere}
.panel .rx-okhead{margin:0 0 var(--s4)}
.panel .rx-okhead h2{font-size:20px;line-height:28px}
.seg{display:inline-flex;border:1px solid var(--a-line-2);border-radius:var(--r1);overflow:hidden;margin:0 0 var(--s4)}
.seg button{all:unset;cursor:pointer;padding:6px 16px;font:600 14px/20px var(--sans);color:var(--a-ink-2)}
.seg button[aria-pressed="true"]{background:var(--a-accent-soft);color:var(--a-tag-ink)}
.seg button:focus-visible{outline:2px solid var(--a-focus);outline-offset:-2px}
.fld{display:flex;flex-direction:column;gap:var(--s1);margin:0 0 var(--s4)}
.fld label{font:600 14px/20px var(--sans)}
.ctl{width:100%;height:var(--a-ctl-h);border:1px solid var(--a-field);border-radius:var(--r1);background:var(--a-surface);padding:0 var(--s4);font:400 16px/24px var(--sans);color:var(--a-ink);appearance:none;-webkit-appearance:none;box-shadow:none;transition:border-color .15s,box-shadow .15s;min-width:0}
.ctl:hover{border-color:var(--a-ink-3)}
.ctl:focus{outline:none;border-color:var(--a-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--a-focus) 25%,transparent)}
.ctl[aria-invalid="true"]{border-color:var(--a-err);box-shadow:0 0 0 3px color-mix(in srgb,var(--a-err) 15%,transparent)}
.ctl.code{font:600 22px/1 var(--mono);letter-spacing:.4em;max-width:220px}
.ctl.code::placeholder{letter-spacing:normal;font:400 16px/24px var(--sans);color:var(--a-ink-3)}
.tel{display:flex;gap:var(--s2)}.tel .cc{width:76px;flex:none;display:flex;align-items:center;justify-content:center;color:var(--a-ink-2);background:var(--a-surface-2)}
.ferr{display:flex;gap:var(--s1);align-items:flex-start;color:var(--a-err);font:500 14px/20px var(--sans);margin:0}
.ferr svg.i{width:16px;height:16px;margin-top:2px}
.wide{width:100%}
.more{margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid var(--a-line);font-size:14px;line-height:20px;color:var(--a-ink-2)}
.more p{margin:0}.more p+p{margin-top:var(--s1)}
.row{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap}
.row.between{justify-content:space-between}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.devcode{margin:var(--s2) 0 0;font-size:14px;color:var(--a-ink-2)}

/* My passes */
.next{display:grid;gap:var(--s2);margin:0 0 var(--s5)}
.next .it{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--a-line);border-radius:var(--r2);background:var(--a-surface)}
.next .it .ic{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--a-accent-soft);color:var(--a-tag-ink)}
.next .it.warn .ic{background:var(--a-warn-soft);color:var(--a-warn)}
.next .it .tx{flex:1;min-width:0}.next .it .tx b{display:block;font:600 16px/24px var(--sans)}.next .it .tx span{font-size:14px;line-height:20px;color:var(--a-ink-2)}
.counts{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:var(--s3);margin:0 0 var(--s5);padding:0}
.counts div{padding:var(--s3) var(--s4);border:1px solid var(--a-line);border-radius:var(--r2);background:var(--a-surface)}
.counts dt{font:600 12px/16px var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--a-ink-3)}
.counts dd{margin:2px 0 0;font:800 24px/32px var(--display)}
.grp{margin:0 0 var(--s5)}
.grp-h{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);margin:0 0 var(--s2);flex-wrap:wrap}
.grp-h h2{margin:0;font:700 20px/28px var(--display)}
.grp-h span{font-size:14px;color:var(--a-ink-2)}
.plist{border:1px solid var(--a-line);border-radius:var(--r2);background:var(--a-surface);overflow:hidden}
.prow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s3);align-items:center;padding:var(--s3) var(--s4)}
.prow+.prow{border-top:1px solid var(--a-line)}
.prow .who{font:600 16px/24px var(--sans);overflow-wrap:anywhere}
.prow .meta{font-size:14px;line-height:20px;color:var(--a-ink-2)}
.prow .meta .ref{font:500 13px/20px var(--mono);color:var(--a-ink-3)}
.prow .top{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap}
.prow .acts{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap;justify-content:flex-end}
.prow.dim .who{color:var(--a-ink-3)}
.empty{padding:var(--s5);color:var(--a-ink-2);margin:0}

/* pass detail */
.banner{display:flex;gap:var(--s3);align-items:flex-start;padding:var(--s3) var(--s4);border-radius:var(--r2);background:var(--a-accent-soft);color:var(--a-ink);margin:0 0 var(--s4);font-size:14px;line-height:20px}
.banner svg.i{color:var(--a-tag-ink);margin-top:2px}
.banner b{display:block;font-size:16px;line-height:24px}
#pass .rx-panel{padding:var(--s5)}
/* a narrower main column than registration.html's page: badge and stack one above the other a little earlier */
@media (max-width:1180px){#pass .rx-two{grid-template-columns:minmax(0,1fr)}}
/* the own pass, badge first (pass-view.js layout 'pass'; Sree, 20 Oct 2026): status over the badge and the key facts,
   side by side on a wide screen; on a phone status, badge, facts, so the QR is in the top half of the screen */
.pv-first{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);grid-template-areas:"bd hd" "bd sum";grid-template-rows:auto 1fr;column-gap:var(--s6);row-gap:var(--s3);align-items:start;margin:0 0 var(--s5)}
.pv-first .pv-hd{grid-area:hd;min-width:0}
.pv-first .pv-hd .rx-tag{margin:0 0 var(--s2)}
.pv-first .pv-hd h2{margin:0;font:700 24px/32px var(--display);overflow-wrap:anywhere}
.pv-first .pv-bd{grid-area:bd;min-width:0}
.pv-first .pv-bd .rx-bdg.big{margin:0}
.pv-first .pv-sum{grid-area:sum;min-width:0;display:grid;gap:var(--s4);align-content:start}
.pv-first .pv-sum .rx-mut{margin:0}
.pv-first .rx-facts{grid-template-columns:repeat(2,minmax(0,1fr));margin:0}
.pv-first .rx-btns{margin:0}
.pv-rest{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4);align-items:start}
@media (max-width:1180px){.pv-rest{grid-template-columns:minmax(0,1fr)}.pv-rest .pv-col{display:contents}}
@media (max-width:760px){
  .pv-first{grid-template-columns:minmax(0,1fr);grid-template-areas:"hd" "bd" "sum";row-gap:var(--s4)}
  .pv-first .pv-hd{display:flex;flex-direction:column;align-items:flex-start}
  .pv-first .pv-hd .rx-tag{margin:0 0 var(--s1)}
  .pv-first .pv-hd h2{font-size:20px;line-height:28px}
  .pv-first .pv-bd .rx-bdg.big{margin:0 auto}
  .pv-first .rx-btns .rbtn{width:100%}
}
@media (max-width:640px){.pv-first .rx-facts{grid-template-columns:minmax(0,1fr)}}

/* account */
.stack{display:grid;gap:var(--s4);min-width:0}
.acct{max-width:760px}
.acct .my-everywhere{margin-top:var(--s2)}
.acct .my-everywhere .rx-link{font-size:14px}
.sess.net>div{flex:1 1 0}
.my-upd-note{margin:0 0 var(--s3)}
.my-data{margin:var(--s2) 0 0;font-size:14px;line-height:20px;color:var(--a-ink-2)}
.my-data a{color:var(--a-accent-text);font-weight:600}
.kv{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--s2) var(--s4);align-items:center;font-size:14px;line-height:20px;margin:0}
.kv dt{color:var(--a-ink-2)}.kv dd{margin:0;overflow-wrap:anywhere}
.sess{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) 0;border-top:1px solid var(--a-line);font-size:14px;line-height:20px;flex-wrap:wrap}
.sess>div{min-width:0}
.sess b{display:block;font-size:16px;line-height:24px}
.sess .mut{color:var(--a-ink-2)}
.tog{all:unset;cursor:pointer;width:40px;height:24px;border-radius:999px;background:var(--a-line-2);position:relative;flex:none;transition:background .15s}
.tog::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s}
.tog[aria-checked="true"]{background:var(--a-accent)}
.tog[aria-checked="true"]::after{left:19px}
.tog:focus-visible{outline:2px solid var(--a-focus);outline-offset:2px}
.tog:disabled{opacity:.6;cursor:wait}
.stepup{margin-top:var(--s3);padding:var(--s4);border:1px solid var(--a-line);border-radius:var(--r2);background:var(--a-surface-2)}
.stepup p{margin:0 0 var(--s3);font-size:14px;line-height:20px}
.stepup .row .ctl{max-width:200px}
.okmsg{margin:var(--s3) 0 0;color:var(--a-ok);font:600 14px/20px var(--sans)}
.rx-card .ferr{margin-top:var(--s2)}

/* coming in January */
.soon-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}
.soon-c{border:1px dashed var(--a-line-2);border-radius:var(--r2);padding:var(--s5);background:var(--a-surface)}
.soon-c .ic{width:40px;height:40px;border-radius:var(--r1);display:grid;place-items:center;background:var(--a-surface-2);color:var(--a-ink-2);margin-bottom:var(--s3)}
.soon-c h3{margin:0;font:700 20px/28px var(--display)}
.soon-c p{margin:var(--s1) 0 0;font-size:14px;line-height:20px;color:var(--a-ink-2)}

/* tablet */
@media (max-width:900px){.ms-body{grid-template-columns:200px minmax(0,1fr)}.ms-nav{padding:var(--s4) var(--s2)}.ms-nav a,.ms-nav .soon{padding:8px 10px;gap:10px}.ms-main{padding:var(--s5)}}
/* phone: one column, a tab bar at the bottom */
@media (max-width:640px){
  .ms-top{padding:8px 16px}
  .ms-brand img{height:24px}
  .ms-who .em{display:none}
  .ms-out span{display:none}
  .ms-body{grid-template-columns:minmax(0,1fr)}
  .ms-nav{display:none}
  .ms-main{padding:var(--s4) var(--s4) calc(var(--s8) + var(--s4))}
  .ms-tabbar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:5;border-top:1px solid var(--a-line);background:var(--a-surface);padding:6px 4px calc(10px + env(safe-area-inset-bottom))}
  .ms-tabbar a,.ms-tabbar .soon{display:flex;flex-direction:column;align-items:center;gap:2px;font:600 11px/14px var(--sans);color:var(--a-ink-3);text-decoration:none;position:relative;padding:2px 0}
  .ms-tabbar a[aria-current="page"]{color:var(--a-tag-ink)}
  .ms-tabbar .soon{opacity:.7}
  .vh h1{font-size:24px;line-height:32px}
  .so-hero{padding:var(--s4) var(--s4) calc(var(--s8) + var(--s3))}
  .so-hero .rx-pills{gap:0;flex-wrap:nowrap;white-space:nowrap;overflow:hidden}
  .so-hero h1{font-size:24px;line-height:32px}
  .so-wrap{padding:0 var(--s3)}
  .panel{padding:var(--s5) var(--s4);border-radius:var(--r2)}
  .counts{gap:var(--s2)}.counts[style*="--n:4"]{grid-template-columns:repeat(2,minmax(0,1fr))}
  .counts div{padding:var(--s2) var(--s3)}.counts dt{font-size:11px;letter-spacing:.02em}
  .counts dd{font-size:20px;line-height:28px}
  .prow{grid-template-columns:minmax(0,1fr)}
  .prow .acts{justify-content:stretch}.prow .acts .rbtn{flex:1}
  .next .it{flex-wrap:wrap}.next .it .rbtn{width:100%}
  #pass .rx-panel{padding:var(--s4) var(--s3)}
  .soon-g{grid-template-columns:minmax(0,1fr)}
  .kv{grid-template-columns:minmax(0,1fr)}.kv dt{margin-top:var(--s2)}
  .sess .rbtn{width:100%}
}
@media print{.ms-top,.ms-nav,.ms-tabbar,.banner,.crumb,.noprint{display:none!important}.ms-body{display:block}.ms-main{padding:0}#pass .rx-panel{border:0;box-shadow:none;padding:0}}
/* hints with a link in them read as one sentence (reg-a.css makes .rx-hint a flex row for its icon) */
.acct .rx-hint,.vh+.rx-hint{display:block}
.acct .rx-hint:has(svg.i){display:flex}

/* ---------- synced with the old sample (20 Oct 2026; my-bioasia-sync-mocks.html sections 2-8) ---------- */
.rbtn.xs{height:32px;padding:0 var(--s3);font-size:13px;gap:6px}
.rbtn.xs svg.i{width:16px;height:16px}
.vh-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Home: hero with the badge's QR + countdown */
.hm-top{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--s4);margin:0 0 var(--s4)}
.hm-hero{background:linear-gradient(160deg,var(--a-hero),var(--a-hero-2));color:#fff;border:1px solid var(--a-line);border-radius:var(--r3);padding:var(--s5);display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--s5);align-items:center;align-content:center;min-width:0}
.hm-hero>div{min-width:0}
.hm-hero .rx-pills{grid-column:1;grid-row:2}
.hm-hero .hm-qr,.hm-hero .hm-pay{grid-column:2;grid-row:1/span 2}
.hm-hero .k{font:500 13px/20px var(--sans);color:var(--a-hero-ink-2)}
.hm-hero .k .ref{font:500 12px/20px var(--mono)}
.hm-hero h1{font:800 32px/40px var(--display);letter-spacing:-.02em;margin:var(--s1) 0 0;color:#fff;overflow-wrap:anywhere}
.hm-hero p{margin:var(--s1) 0 var(--s3);color:var(--a-hero-ink-2);font-size:14px;line-height:20px}
.hm-qr{flex:none;display:grid;justify-items:center;gap:4px;background:#fff;border-radius:var(--r2);padding:10px 10px 6px;text-decoration:none}
.hm-qr .q{width:96px;height:96px}.hm-qr .q svg{width:100%;height:100%;display:block}
.hm-qr small{font:700 10px/14px var(--sans);letter-spacing:.12em;color:#0B1F3A}
.hm-qr:focus-visible{outline:2px solid #5EEAD4;outline-offset:3px}
.hm-pay.rbtn.pri{background:#fff;color:#0B1F3A}
.hm-cd{border:1px solid var(--a-line);border-radius:var(--r3);background:var(--a-surface);padding:var(--s5);display:flex;flex-direction:column;gap:var(--s2);min-width:0}
.hm-cd .ey{font:600 12px/16px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--a-ink-3)}
.hm-cd .n{font:800 40px/44px var(--display);letter-spacing:-.02em}
.hm-cd .n small{font:700 18px/24px var(--display);color:var(--a-ink-2);margin-left:6px}
.hm-cd p{margin:0;font-size:14px;line-height:20px;color:var(--a-ink-2)}
.hm-cd>.rbtn{align-self:flex-start;margin-top:auto}
.calb{display:flex;gap:var(--s2);flex-wrap:wrap}
.calb[hidden]{display:none}
.counts dd small{font:500 13px/20px var(--sans);color:var(--a-ink-2);margin-left:4px}
.hm-cols{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s4);align-items:start}
.hm-cols.one{grid-template-columns:minmax(0,1fr);max-width:760px}
.hm-cols .rx-card h2{display:flex;align-items:center;gap:var(--s2)}
.hm-inst{display:flex;gap:var(--s3);align-items:flex-start}
.hm-inst .ic{width:40px;height:40px;border-radius:var(--r1);display:grid;place-items:center;background:var(--a-accent-soft);color:var(--a-tag-ink);flex:none}
.hm-inst h2{font-size:18px;line-height:24px}
/* Get ready */
.prog{height:8px;border-radius:999px;background:var(--a-surface-2);overflow:hidden;margin:var(--s2) 0 var(--s1)}
.prog i{display:block;height:100%;background:var(--a-accent);border-radius:999px}
.gr{list-style:none;margin:var(--s3) 0 0;padding:0}
.gr li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:var(--s3);align-items:center;padding:var(--s3) 0;border-top:1px solid var(--a-line);font-size:14px;line-height:20px}
.gr li .t b{display:block;font:600 15px/22px var(--sans);color:var(--a-ink)}
.gr li .t span{color:var(--a-ink-2);overflow-wrap:anywhere}
.gr .tick{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--a-line-2);color:transparent}
.gr .tick svg{width:16px;height:16px}
.gr li.done .tick{background:var(--a-ok);border-color:var(--a-ok);color:#fff}
.gr li.done .t b{color:var(--a-ink-2);font-weight:500}
.gr li.wait .tick{border-color:var(--a-warn);color:var(--a-warn)}
/* Your access */
.acc{display:grid;gap:var(--s2);margin-top:var(--s3)}
.acc .d{border:1px solid var(--a-line);border-radius:var(--r1);padding:var(--s2) var(--s3);min-width:0;display:grid;grid-template-columns:84px minmax(0,1fr);gap:var(--s3);align-items:start}
.acc .d.on{border-color:var(--a-accent);background:color-mix(in srgb,var(--a-accent-soft) 60%,transparent)}
.acc .d h4{margin:0;font:700 13px/18px var(--sans);display:flex;flex-direction:column}
.acc .d h4 span{font:500 12px/18px var(--mono);color:var(--a-ink-3)}
.acc ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:2px var(--s3);font-size:13px;line-height:18px;color:var(--a-ink-2)}
.acc li{display:flex;gap:6px;align-items:flex-start}.acc li svg{width:14px;height:14px;margin-top:2px;color:var(--a-ok);flex:none}
.acc li.inv svg{color:var(--a-tag-ink)}
.acc.off{opacity:.6}.acc.off .d.on{border-color:var(--a-line);background:none}
.acc-all{margin:var(--s3) 0 0;font-size:13px;line-height:18px;color:var(--a-ink-2)}
.acc-all .rx-link{font-size:13px}
/* Programme */
.dtabs{display:flex;gap:var(--s2);flex-wrap:wrap;margin:0 0 var(--s3)}
.dtabs>*{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-direction:column;padding:6px 14px;border:1px solid var(--a-line-2);border-radius:var(--r1);font:600 14px/20px var(--sans);color:var(--a-ink-2);background:var(--a-surface)}
.dtabs>* small{font:500 12px/16px var(--sans);color:var(--a-ink-3)}
.dtabs>[aria-selected="true"]{background:var(--a-accent-soft);border-color:var(--a-accent);color:var(--a-tag-ink)}
.dtabs>:focus-visible{outline:2px solid var(--a-focus);outline-offset:2px}
.filt{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap;margin:0 0 var(--s4);font-size:14px;color:var(--a-ink-2)}
.filt .lbl{display:inline-flex;gap:var(--s2);align-items:center;color:var(--a-ink);font-weight:600}
.ses{border:1px solid var(--a-line);border-radius:var(--r2);background:var(--a-surface);overflow:hidden}
.ses .r{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:var(--s3);align-items:center;padding:var(--s3) var(--s4)}
.ses .r+.r{border-top:1px solid var(--a-line)}
.ses .tm{font:500 13px/20px var(--mono);color:var(--a-ink-2)}
.ses .ti b{display:block;font:600 15px/22px var(--sans);overflow-wrap:anywhere}
.ses .ti .m{display:flex;gap:var(--s1) var(--s2);flex-wrap:wrap;align-items:center;font-size:13px;line-height:18px;color:var(--a-ink-2);margin-top:2px}
.ses .ti .wh{display:inline-flex;gap:4px;align-items:center}.ses .ti .wh svg{width:14px;height:14px}
.ses .st{display:inline-flex;padding:1px 8px;border-radius:999px;border:1px solid var(--a-line-2);font:600 12px/16px var(--sans);color:var(--a-ink)}
.ses .rt{display:flex;gap:var(--s2);align-items:center;justify-content:flex-end;flex-wrap:wrap}
.ses .r.brk{background:var(--a-surface-2);padding-top:6px;padding-bottom:6px}
.ses .r.brk .ti b{font-weight:500;color:var(--a-ink-2);font-size:14px}
.ses .r.dim .ti b{color:var(--a-ink-3)}
.ses-h{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);margin:var(--s5) 0 var(--s2);flex-wrap:wrap}
.ses-h h2{margin:0;font:700 20px/28px var(--display)}.ses-h span{font-size:14px;color:var(--a-ink-2)}
.pg-none{margin:0 0 var(--s3)}
.empty-p{color:var(--a-ink-2);margin:var(--s3) 0}
/* Travel & documents (pass-view.js layout 'docs') */
.pv-dochead{padding:var(--s5);margin:0 0 var(--s4)}
.pv-docs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4);align-items:start}
.pv-col{display:grid;gap:var(--s4);min-width:0}
.pv-o{min-width:0;display:grid}
.pv-docs .rx-card h2{margin:0 0 var(--s1)}
.pv-docs .row.between{flex-wrap:nowrap;align-items:flex-start}
.pv-docs .rx-bdg{max-width:300px;margin:0 auto}
.pv-venue{display:grid;gap:var(--s2);font-size:14px;line-height:20px;color:var(--a-ink-2)}
.pv-venue>div{display:flex;gap:var(--s2);align-items:flex-start}.pv-venue svg{color:var(--a-accent-text);margin-top:2px;flex:none}
.pv-venue b{color:var(--a-ink)}
.pv-docs [data-pv-icsok]{margin-top:var(--s2)}
.kv.two{grid-template-columns:auto minmax(0,1fr)}
/* offline badge */
.off-main{max-width:420px;margin:0 auto;padding:var(--s4)}
.off-badge .rx-bdg{max-width:300px;margin:0 auto}
/* the phone's tab bar: 5 (or 4) tabs; "More" opens a sheet */
.ms-tabbar button{all:unset;cursor:pointer}
.ms-sheet-bg{position:fixed;inset:0;z-index:20;background:rgb(8 18 33 / .45);display:flex;align-items:flex-end}
.ms-sheet{width:100%;background:var(--a-surface);border-radius:var(--r3) var(--r3) 0 0;padding:var(--s3) var(--s3) calc(var(--s3) + env(safe-area-inset-bottom));box-shadow:0 -8px 24px rgb(16 24 40 / .12)}
.ms-sheet .grab{width:36px;height:4px;border-radius:2px;background:var(--a-line-2);margin:0 auto var(--s3)}
.ms-sheet a,.ms-sheet .soon,.ms-sheet button{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;gap:var(--s3);padding:12px 8px;color:var(--a-ink);text-decoration:none;font:500 15px/20px var(--sans);border-radius:var(--r1);cursor:pointer}
.ms-sheet svg.i{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ms-sheet .soon,.ms-sheet a.soon{color:var(--a-ink-3);cursor:default}
.ms-sheet a.soon{cursor:pointer}
.ms-sheet .ct{margin-left:auto;padding:0 8px;border-radius:999px;background:var(--a-surface-2);color:var(--a-ink-2);font:700 11px/20px var(--sans)}
.ms-sheet .sp{font:600 11px/16px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--a-ink-3);padding:var(--s2) 8px 2px}
.ms-sheet .out{color:var(--a-err);border-top:1px solid var(--a-line);margin-top:var(--s2)}
.ms-sheet :focus-visible{outline:2px solid var(--a-focus);outline-offset:-2px}
@media (max-width:1100px){.hm-top{grid-template-columns:minmax(0,1fr)}.hm-cols{grid-template-columns:minmax(0,1fr)}}
@media (max-width:1180px){.pv-docs{grid-template-columns:minmax(0,1fr)}.pv-col{display:contents}}
@media (max-width:640px){
  .ms-tabbar{grid-template-columns:repeat(var(--n,5),minmax(0,1fr))}
  .ms-tabbar a,.ms-tabbar button{display:flex;flex-direction:column;align-items:center;gap:2px;font:600 11px/14px var(--sans);color:var(--a-ink-3);text-decoration:none;position:relative;padding:2px 0;min-width:0}
  .ms-tabbar [aria-current="page"],.ms-tabbar [aria-expanded="true"]{color:var(--a-tag-ink)}
  .ms-tabbar .ct{position:absolute;top:-4px;left:calc(50% + 6px);min-width:16px;height:16px;border-radius:999px;background:var(--a-primary);color:#fff;font:700 10px/16px var(--sans);text-align:center;padding:0 4px}
  .hm-hero{padding:var(--s4);column-gap:var(--s3);align-items:start}
  .hm-hero h1{font-size:24px;line-height:32px}
  .hm-hero .k .ref{display:block}
  .hm-hero .rx-pills{grid-column:1/-1;grid-row:2;margin-top:var(--s1);gap:0;flex-wrap:nowrap;white-space:nowrap;overflow:hidden}
  .hm-hero .rx-pills li{padding:0;gap:0;border:0;background:none!important;color:var(--a-hero-ink-2);font-weight:500}
  .hm-hero .rx-pills li .i{display:none}
  .hm-hero .rx-pills li+li::before{content:"·";margin:0 var(--s2);opacity:.7}
  .hm-hero .rx-pills li:nth-child(3){display:none}
  .hm-hero .hm-qr{grid-row:1}
  .hm-hero .hm-pay{grid-column:1/-1;grid-row:3;margin-top:var(--s3);width:100%}
  .hm-qr{padding:6px 6px 4px}.hm-qr .q{width:64px;height:64px}
  .hm-cd{padding:var(--s4);flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:var(--s3)}
  .hm-cd .ey{width:100%}.hm-cd .n{font-size:32px;line-height:36px}.hm-cd p{flex:1 1 160px}
  .hm-cd>.rbtn{width:100%;margin-top:var(--s2)}
  .gr li{grid-template-columns:24px minmax(0,1fr)}
  .gr .tick{width:24px;height:24px}
  .gr li .act{grid-column:2;justify-self:start}
  .ses .r{grid-template-columns:minmax(0,1fr);gap:var(--s1)}
  .ses .rt{justify-content:flex-start}
  .ses .r.brk{grid-template-columns:auto minmax(0,1fr)}.ses .r.brk .rt{grid-column:1/-1}
  .dtabs>*{padding:4px 10px;font-size:13px}
  .pv-docs .rx-btns .rbtn{width:100%}
  .pv-dochead{padding:var(--s4) var(--s3)}
}
