/* self-hosted faces: Archivo (grotesque UI voice, Inter substitute role)
   + B612 Mono (numbers, board) + Share Tech Mono (ticket print) */
@font-face{
  font-family:"Archivo";font-style:normal;font-weight:100 900;font-stretch:62% 125%;
  font-display:swap;src:url(/fonts/archivo-var-latin.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212;
}
@font-face{
  font-family:"Archivo";font-style:normal;font-weight:100 900;font-stretch:62% 125%;
  font-display:swap;src:url(/fonts/archivo-var-latin-ext.woff2) format("woff2");
  unicode-range:U+0100-02AF,U+1E00-1EFF,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Share Tech Mono";font-style:normal;font-weight:400;
  font-display:swap;src:url(/fonts/sharetechmono-400.woff2) format("woff2");
}
@font-face{
  font-family:"B612 Mono";font-style:normal;font-weight:400;
  font-display:swap;src:url(/fonts/b612mono-400.woff2) format("woff2");
}
@font-face{
  font-family:"B612 Mono";font-style:normal;font-weight:700;
  font-display:swap;src:url(/fonts/b612mono-700.woff2) format("woff2");
}

/* ============================================================
   RICHEST QUEUE: design system v7 "the pipeline"
   Built on Relate's PRODUCT UI (styles.refero.design/style/
   337ade6a; relate.so), not its marketing page. The whole site
   is the app: a white surface floating on a pale gulf frame,
   a quiet left sidebar, a compact top bar with a search-tool
   voice, and the market itself as a pipeline of columns whose
   cards are the tickets. Column headers carry a status dot,
   a count and a money total; cards are white, 10px radius,
   hairline plus feather shadow, dense 12px padding.
   One saturated accent (orange) does the talking. Blue frames
   the app, green marks earned/live, everything else is ink on
   white. The approved objects survive where they belong: the
   boarding pass prints in the case dialog, the specimen slot
   and My Entry; the dark split-flap board is the /departures/
   view. Density law (outbid.lol): many cards per screen.
   ============================================================ */

/* ---------- tokens ---------- */
:root{
  /* app surfaces */
  --frame:#DCE9F5;          /* the page behind the app */
  --card:#FFFFFF;           /* the app surface and its cards */
  --fog:#F2F6FA;            /* hovers, active nav, input wells */
  --ink:#14293A;
  --muted:#3E5A6D;
  --faint:#647C8E;
  --hairline:#E2EAF1;
  --hairline-strong:#C3D4E2;

  /* the one saturated accent + status hues */
  --accent:#E8641F;
  --accent-deep:#C24E12;
  --green:#2E7D4F;
  --blue:#3D7EB8;
  --slate:#5E7A8D;
  --powder:#8FBBD8;

  /* column tints */
  --tint-ft:#FBE5CE;
  --tint-ga:#DDECf8;
  --tint-dep:#DDF0E3;
  --tint-pot:#E6EDF3;

  /* the physical objects keep their approved palette */
  --stock:#F5F9FB;
  --stock-2:#E9F1F7;
  --stock-line:#C4D7E3;
  --stock-ink:#14293A;
  --stock-muted:#56707F;
  --tink:#14283A;          /* ticket band navy */
  --tyellow:#F5A868;       /* ticket band lettering, warm orange */
  --tred:#F0834A;          /* board movement orange */
  --tred-deep:#D95F10;     /* commercial orange */
  --tgreen:#3BD470;        /* board live green */

  /* type */
  --font-ui:"Archivo",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --font-mono:"B612 Mono","SFMono-Regular",Menlo,monospace;
  --font-ticket:"Share Tech Mono","SFMono-Regular",Menlo,monospace;
  --fs-body:.8125rem;
  --fs-small:.75rem;
  --fs-mono:.6875rem;
  --fs-mono-xs:.59375rem;

  --r-card:10px;
  --r-inner:8px;
  --r-outer:16px;
  --r-pill:999px;
  --shadow-1:rgba(11,34,52,.07) 0 1px 2px,rgba(11,34,52,.05) 0 2px 8px -2px;
  --shadow-2:rgba(11,34,52,.08) 0 .4px 1.8px -1.4px,rgba(11,34,52,.07) 0 1.4px 6.9px -2.8px,rgba(11,34,52,.05) 0 6px 30px -4px;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--frame);
  color:var(--ink);
  font-family:var(--font-ui);
  font-size:var(--fs-body);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,p,figure{margin:0}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
img{max-width:100%;display:block}
::selection{background:var(--ink);color:#fff}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

h1{font-size:1.375rem;line-height:1.15;font-weight:600;letter-spacing:-.02em;text-wrap:balance}
h2{font-size:1.0625rem;line-height:1.2;font-weight:600;letter-spacing:-.015em;text-wrap:balance}
h3{font-size:.875rem;line-height:1.25;font-weight:600}
.hl{color:var(--accent)}

html{scrollbar-color:var(--hairline-strong) transparent}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--hairline-strong);border:3px solid #fff;border-radius:5px}
input,textarea,select{caret-color:var(--ink)}
b,strong{font-variant-numeric:tabular-nums}

.k,
.kicker{
  font-family:var(--font-ui);
  font-size:.625rem;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.k{color:var(--faint)}
.kicker{color:var(--faint);display:block;margin-bottom:.5rem}
.kicker .dim{color:var(--faint)}

[id]{scroll-margin-top:4rem}

/* ============================================================
   THE APP FRAME: white surface on the gulf frame, sidebar left
   ============================================================ */
.app{
  display:flex;align-items:stretch;
  background:var(--card);
  margin:14px;
  border-radius:22px;
  box-shadow:var(--shadow-2);
  min-height:calc(100vh - 28px);
  overflow:clip;
}

/* ---------- sidebar ---------- */
.app-side{
  flex:0 0 212px;
  display:flex;flex-direction:column;gap:2px;
  padding:16px 12px 14px;
  border-right:1px solid var(--hairline);
  min-width:0;
}
.side-brand{
  display:flex;align-items:center;gap:.5rem;
  padding:4px 8px 14px;
}
.rq-mark{width:22px;height:22px;display:block;flex-shrink:0}
.rq-mark path{stroke:var(--ink)}
.rq-mark circle{fill:var(--accent)}
.side-brand span{font-weight:600;font-size:.875rem;letter-spacing:-.015em;white-space:nowrap}
.side-nav{display:flex;flex-direction:column;gap:1px}
.side-nav a{
  display:flex;align-items:center;gap:.5625rem;
  font-size:.8125rem;font-weight:500;color:var(--muted);
  padding:.4375rem .5625rem;border-radius:var(--r-inner);
  white-space:nowrap;
}
.side-nav a svg{width:15px;height:15px;flex-shrink:0;opacity:.75}
.side-nav a:hover{background:var(--fog);color:var(--ink)}
.side-nav a[aria-current="page"]{background:var(--fog);color:var(--ink);font-weight:600}
.side-nav a[aria-current="page"] svg{opacity:1;color:var(--accent)}
.side-label{
  margin:14px 8px 4px;
  font-size:.59375rem;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--faint);
}
.side-nav--sub a{font-size:.75rem;padding:.34375rem .5625rem}
.side-stats{
  margin-top:auto;padding:10px 8px 0;
  border-top:1px solid var(--hairline);
  display:grid;gap:.375rem;
  font-family:var(--font-mono);font-size:.625rem;
  letter-spacing:.03em;text-transform:uppercase;color:var(--faint);
}
.side-stats b{color:var(--ink);font-weight:700}
.side-stats span:last-child b{color:var(--accent-deep)}

/* ---------- main pane + top bar ---------- */
.app-main{flex:1;min-width:0;display:flex;flex-direction:column}
.app-top{
  display:flex;align-items:center;gap:1rem;
  min-height:58px;
  padding:10px 22px;
  border-bottom:1px solid var(--hairline);
  flex-wrap:wrap;
}
.top-title{display:flex;align-items:baseline;gap:.5625rem;min-width:0}
.top-title h1{font-size:.9375rem;letter-spacing:-.01em;white-space:nowrap}
.top-title .top-count{font-family:var(--font-mono);font-size:.75rem;color:var(--faint);font-variant-numeric:tabular-nums}
.top-line{
  color:var(--faint);font-size:.75rem;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.top-line b{color:var(--ink);font-weight:600}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:.5rem;flex-shrink:0}
.top-ghost{
  display:inline-flex;align-items:center;gap:.375rem;
  font-size:.75rem;font-weight:500;color:var(--muted);
  background:var(--fog);border-radius:var(--r-inner);
  padding:.40625rem .75rem;white-space:nowrap;
}
.top-ghost:hover{color:var(--ink);background:#E9F0F6}
.rq-cta,
.top-primary{
  display:inline-flex;align-items:center;gap:.375rem;
  font-size:.75rem;font-weight:600;color:var(--accent-deep);
  background:var(--card);border:1px solid var(--accent);
  border-radius:var(--r-pill);
  padding:.40625rem .9375rem;white-space:nowrap;
  box-shadow:var(--shadow-1);
  transition:background .12s ease,color .12s ease;
}
.rq-cta:hover,.top-primary:hover{background:var(--accent);color:#fff}

/* ---------- body + toolbar ---------- */
.app-body{padding:14px 22px 26px;min-width:0}
.app-toolbar{
  display:flex;align-items:center;gap:.5rem 1rem;flex-wrap:wrap;
  padding-bottom:12px;
}
.tool-search{position:relative;flex:0 1 300px;min-width:170px}
.tool-search input{
  margin:0;width:100%;
  background:var(--card);border:1px solid var(--hairline-strong);border-radius:var(--r-card);
  font-size:.75rem;padding:.46875rem .75rem .46875rem 1.875rem;
}
.tool-search svg{
  position:absolute;left:.625rem;top:50%;transform:translateY(-50%);
  width:13px;height:13px;color:var(--faint);pointer-events:none;
}
.tool-chips{
  display:flex;align-items:center;gap:.25rem 1rem;flex-wrap:wrap;
  font-family:var(--font-mono);font-size:.625rem;letter-spacing:.04em;
  text-transform:uppercase;color:var(--faint);
}
.tool-chips b{color:var(--ink);font-weight:700}
.tool-chips .live{color:var(--green)}
.tool-chips .live::before{
  content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--green);margin-right:.375rem;vertical-align:1px;
}
.tool-chips .pot b{color:var(--accent-deep)}
.tool-right{margin-left:auto;display:flex;align-items:center;gap:.5rem}

/* resume-purchase notice (checkout-recovery.js) */
#reservation-home{
  border:1px solid var(--hairline);border-left:3px solid var(--accent);
  border-radius:var(--r-inner);background:var(--card);box-shadow:var(--shadow-1);
  padding:.75rem .875rem;margin:0 0 12px;
  font-size:var(--fs-small);color:var(--ink);
}
#reservation-home button{
  font-family:var(--font-ui);font-size:.6875rem;font-weight:600;
  border:1px solid var(--hairline-strong);border-radius:var(--r-pill);color:var(--ink);
  padding:.3125rem .75rem;margin:.375rem .5rem 0 0;
}
#reservation-home button:hover{border-color:var(--accent);color:var(--accent-deep)}

/* ---------- app footer ---------- */
.app-foot{
  margin-top:auto;
  display:flex;justify-content:space-between;align-items:center;gap:.375rem 1.5rem;flex-wrap:wrap;
  padding:12px 22px;
  border-top:1px solid var(--hairline);
  font-size:.6875rem;font-weight:500;color:var(--faint);
}
.app-foot nav{display:flex;flex-wrap:wrap;gap:.25rem .875rem}
.app-foot a{color:var(--muted)}
.app-foot a:hover{color:var(--accent)}

/* ---------- mobile: sidebar folds into a top bar ---------- */
@media (max-width:900px){
  .app{display:block;margin:0;border-radius:0;min-height:100vh}
  .app-side{
    flex:none;flex-direction:row;align-items:center;gap:.25rem;
    padding:8px 10px;border-right:0;border-bottom:1px solid var(--hairline);
    overflow-x:auto;scrollbar-width:none;
    position:sticky;top:0;z-index:40;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);
  }
  .app-side::-webkit-scrollbar{display:none}
  .side-brand{padding:0 .5rem 0 0}
  .side-brand span{display:none}
  .side-nav{flex-direction:row;gap:2px}
  .side-nav a{padding:.34375rem .5625rem}
  .side-nav a svg{display:none}
  .side-label{display:none}
  .side-nav--sub{display:none}
  .side-stats{display:none}
  .app-top{min-height:0;padding:10px 12px;gap:.5rem 1rem}
  .top-line{display:none}
  .app-body{padding:12px 12px 22px}
  .app-foot{padding:12px}
}

/* ============================================================
   THE PIPELINE: columns of ticket cards (Relate's board)
   ============================================================ */
.pipe{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;align-items:start;
}
@media (max-width:1220px){.pipe{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:680px){.pipe{grid-template-columns:1fr}}
.pipe-col{min-width:0}
.pipe-head{
  display:flex;align-items:center;gap:.5rem;
  padding:.5rem .75rem;
  border-radius:var(--r-inner);
  font-size:.8125rem;font-weight:600;letter-spacing:-.005em;
  white-space:nowrap;min-width:0;
}
.pipe-head .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.pipe-head .ph-count{font-family:var(--font-mono);font-size:.6875rem;font-weight:400;color:var(--faint)}
.pipe-head .ph-total{
  margin-left:auto;font-family:var(--font-mono);font-size:.71875rem;font-weight:700;
  font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;
}
.pipe-head--ft{background:var(--tint-ft)}
.pipe-head--ft .dot{background:var(--accent)}
.pipe-head--ft .ph-total{color:var(--accent-deep)}
.pipe-head--ga{background:var(--tint-ga)}
.pipe-head--ga .dot{background:var(--blue)}
.pipe-head--ga .ph-total{color:var(--blue)}
.pipe-head--dep{background:var(--tint-dep)}
.pipe-head--dep .dot{background:var(--green)}
.pipe-head--dep .ph-total{color:var(--green)}
.pipe-head--pot{background:var(--tint-pot)}
.pipe-head--pot .dot{background:var(--slate)}
.pipe-head--pot .ph-total{color:var(--slate)}
.pipe-cards{display:grid;gap:10px;margin-top:10px}
.pipe-list{display:contents}
.pipe-note{
  color:var(--faint);font-size:.6875rem;line-height:1.45;
  padding:0 2px;
}
.col-foot{
  display:block;padding:.125rem 2px .25rem;
  font-size:.75rem;font-weight:600;color:var(--accent-deep);
}
.col-foot:hover{text-decoration:underline;text-underline-offset:3px}
.col-foot.mut{color:var(--faint)}

/* ---------- the deal card: a ticket as Relate draws one ---------- */
.deal{
  display:block;width:100%;text-align:left;min-width:0;
  background:var(--card);
  border:1px solid var(--hairline);
  border-radius:var(--r-card);
  box-shadow:var(--shadow-1);
  padding:.6875rem .8125rem .625rem;
  cursor:pointer;
  transition:box-shadow .12s ease,border-color .12s ease;
}
.deal:hover{box-shadow:var(--shadow-2);border-color:var(--hairline-strong)}
.deal-head{display:flex;align-items:center;gap:.5rem;min-width:0}
.deal-logo{
  position:relative;flex-shrink:0;
  width:20px;height:20px;border-radius:6px;
  display:grid;place-items:center;overflow:hidden;
  background:var(--fog);
}
.deal-logo i{font-style:normal;font-weight:600;font-size:.6875rem;color:var(--bc,var(--muted))}
.deal-logo img{position:absolute;inset:2px;width:calc(100% - 4px);height:calc(100% - 4px);object-fit:contain}
.deal-head strong{
  font-size:.84375rem;font-weight:600;letter-spacing:-.005em;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.deal-tag{
  margin-left:auto;flex-shrink:0;
  font-family:var(--font-mono);font-size:.625rem;font-weight:700;color:var(--faint);
  font-variant-numeric:tabular-nums;
}
.deal-tag.is-paid{color:var(--accent-deep)}
.deal-tag.is-earned{color:var(--green)}
.deal-value{
  margin-top:.25rem;
  font-size:.78125rem;font-weight:500;color:var(--ink);
  font-variant-numeric:tabular-nums;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.deal-value b{font-family:var(--font-mono);font-weight:700;font-size:.75rem}
.deal-value .up{color:var(--accent-deep)}
.deal-note{
  margin-top:.375rem;
  color:var(--muted);font-size:.71875rem;line-height:1.45;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.deal-foot{
  margin-top:.5rem;
  display:flex;align-items:center;gap:.5rem;
  font-size:.65625rem;color:var(--faint);min-width:0;
}
.deal-foot .who{
  display:inline-flex;align-items:center;gap:.375rem;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.deal-foot .who b{font-family:var(--font-mono);font-weight:400;color:var(--muted)}
.deal-foot .ago{margin-left:auto;flex-shrink:0;font-family:var(--font-mono);font-size:.625rem}
.deal-foot .vote{margin:0;flex-shrink:0}

/* vote pill inside deal cards */
.deal .vote{
  display:inline-flex;align-items:center;gap:.3125rem;
  border:1px solid var(--hairline-strong);border-radius:var(--r-pill);
  font-family:var(--font-mono);font-size:.71875rem;font-weight:700;
  color:var(--muted);padding:.1875rem .5625rem;background:var(--card);
}
.deal .vote:hover{border-color:var(--accent);color:var(--accent-deep)}
.deal .vote.voted,.deal .vote[disabled]{color:var(--faint);border-color:var(--hairline);cursor:default}

/* a specimen listing card: same card, watermarked */
.deal.is-example{position:relative}
.deal.is-example::after{
  content:"Specimen";position:absolute;left:50%;top:50%;
  transform:translate(-50%,-50%) rotate(-14deg);
  font-weight:600;font-size:1.125rem;
  letter-spacing:.28em;text-transform:uppercase;white-space:nowrap;
  color:rgba(20,41,58,.12);pointer-events:none;
}

/* ticket facts printed on the card: labelled analytics + the barcode */
.deal-stats{
  margin-top:.5rem;
  display:grid;grid-template-columns:1.25fr 1.35fr .8fr 1fr;gap:.375rem;
  border-top:1px solid var(--hairline);padding-top:.4375rem;
}
.deal-stats small{
  display:block;font-size:.5625rem;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--faint);
}
.deal-stats b{
  display:flex;align-items:center;gap:.34375rem;
  font-family:var(--font-mono);font-size:.84375rem;font-weight:700;
  margin-top:.25rem;white-space:nowrap;font-variant-numeric:tabular-nums;
  color:var(--ink);
}
.deal-stats b em{font-style:normal;font-size:.65625rem}
.mini-gauge{display:inline-block;width:2.5rem;height:7px;border-radius:4px;background:var(--fog);box-shadow:inset 0 0 0 1px var(--hairline);overflow:hidden;flex-shrink:0}
.mini-gauge > i{display:block;height:100%;background:var(--green);border-radius:3px}
.deal-stats .vote{margin-top:.1875rem}

/* signal hierarchy: hot momentum, top earned ranks, top paid positions
   read at a glance, inside the brand palette */
.stat-mom.mom-hot{color:var(--green)}
.stat-mom.mom-hot .mini-gauge > i{background:var(--green)}
.stat-mom.mom-mid{color:var(--blue)}
.stat-mom.mom-mid .mini-gauge > i{background:var(--blue)}
.stat-mom.mom-low{color:var(--faint)}
.stat-mom.mom-low .mini-gauge > i{background:var(--hairline-strong)}
.stat-mom.mom-none{color:var(--faint)}
.stat-mom.mom-none .mini-gauge > i{background:transparent}
.deal-stats b.rank-top{
  background:var(--green);color:#fff;
  border-radius:var(--r-pill);padding:.125rem .4375rem;
  align-self:start;width:fit-content;
}
.deal-stats b.rank-top em{color:#D9F2E2!important}
.deal-tag.is-paid.is-top{
  background:var(--accent);color:#fff;
  border-radius:var(--r-pill);padding:.1875rem .5rem;
  font-size:.578125rem;letter-spacing:.04em;
}
.deal.signal-positive{border-color:rgba(46,125,79,.5);box-shadow:var(--shadow-1),inset 3px 0 0 rgba(46,125,79,.55)}
.deal.signal-strong{
  border-color:rgba(46,125,79,.65);
  background:linear-gradient(180deg,#F5FBF7,#fff 55%);
  box-shadow:var(--shadow-1),inset 3px 0 0 var(--green);
}
.deal-code{margin-top:.5rem}
.deal-code svg.pass-code{display:block;width:100%;height:9px;color:var(--ink);opacity:.5}
.deal-code > span{
  display:block;margin-top:.1875rem;
  font-family:var(--font-ticket);font-size:.5rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--faint);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* the premium Fast Track card: the standard ticket card plus the navy
   Priority band with orange lettering, after the printed pass */
.deal-band{
  display:flex;align-items:center;justify-content:space-between;gap:.5rem;
  margin:-.6875rem -.8125rem .5625rem;
  padding:.34375rem .8125rem;
  border-radius:calc(var(--r-card) - 1px) calc(var(--r-card) - 1px) 0 0;
  background:linear-gradient(180deg,#1B3450,var(--tink));
  color:var(--tyellow);
  font-size:.5625rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  text-shadow:0 1px 1px rgba(0,0,0,.25);
  box-shadow:inset 0 -1px 0 rgba(0,0,0,.3);
}
.deal-band b{
  font-family:var(--font-mono);font-weight:700;font-size:.625rem;color:#fff;
  letter-spacing:.05em;font-variant-numeric:tabular-nums;white-space:nowrap;
}
.deal--ft{border-color:#33506B}
.deal--ft:hover{border-color:var(--tink)}

/* the paid #1 card: the MAIN listing. Double width in any grid, larger
   print, heavier orange edge on top of the premium band */
.deal--one{
  border:2px solid var(--accent);
  background:linear-gradient(180deg,#FFF6EE,#fff 60%);
  box-shadow:var(--shadow-2),inset 4px 0 0 var(--accent);
  padding:.875rem 1rem .75rem;
}
.deal--one:hover{border-color:var(--accent)}
.deal-grid .deal--one,.pipe-list .deal--one{grid-column:span 2}
@media (max-width:560px){.deal-grid .deal--one,.pipe-list .deal--one{grid-column:auto}}
.deal--one .deal-band{
  margin:-.875rem -1rem .625rem;
  border-radius:calc(var(--r-card) - 2px) calc(var(--r-card) - 2px) 0 0;
  padding:.4375rem 1rem;
  font-size:.625rem;
}
.deal--one .deal-band b{font-size:.71875rem}
.deal--one .deal-logo{width:26px;height:26px;border-radius:7px}
.deal--one .deal-logo i{font-size:.8125rem}
.deal--one .deal-head strong{font-size:1.0625rem}
.deal--one .deal-value{font-size:.875rem;margin-top:.3125rem}
.deal--one .deal-value b{font-size:.84375rem}
.deal--one .deal-note{font-size:.78125rem}
.deal--one .deal-tag.is-paid.is-top{font-size:.65625rem;padding:.25rem .625rem}
/* paid #1 stays orange even when its earned signal is strong */
.deal.deal--one.signal-strong,.deal.deal--one.signal-positive{
  border-color:var(--accent);
  background:linear-gradient(180deg,#FFF6EE,#fff 60%);
  box-shadow:var(--shadow-2),inset 4px 0 0 var(--accent);
}
.deal-visit{
  display:inline-flex;align-items:center;
  background:var(--accent);color:#fff;border-radius:var(--r-pill);
  font-size:.65625rem;font-weight:600;
  padding:.28125rem .6875rem;flex-shrink:0;
}
.deal-visit:hover{background:var(--accent-deep)}

/* open position card */
.deal--open{
  border-style:dashed;border-color:var(--hairline-strong);box-shadow:none;
  color:var(--muted);
}
.deal--open:hover{border-color:var(--accent);box-shadow:none}
.deal--open .deal-head strong{color:var(--muted);font-weight:500}

/* quiet info card completing an empty run */
.deal--info{cursor:pointer}
.deal--info .deal-note,.deal--open .deal-note{-webkit-line-clamp:3}
.deal--info .deal-head strong{color:var(--muted)}
.deal--info:hover .deal-head strong{color:var(--ink)}
.pot-bar[hidden]{display:none}

/* CTA card at the top of the GA column */
.deal--cta{
  border-style:dashed;border-color:var(--accent);box-shadow:none;
  color:var(--accent-deep);
  display:flex;align-items:center;gap:.5rem;
  font-size:.8125rem;font-weight:600;
  padding:.71875rem .8125rem;
}
.deal--cta:hover{background:var(--tint-ft);box-shadow:none}
.deal--cta small{font-weight:500;color:var(--faint);margin-left:auto;font-size:.6875rem}

/* departures cards: rank + momentum gauge, cannot be bought */
.deal--dep .deal-head strong{max-width:12rem}
.deal-gauge{
  margin-top:.4375rem;
  display:flex;align-items:center;gap:.5rem;
}
.deal-gauge .mom-gauge{
  max-width:none;flex:1;height:6px;border-radius:4px;border:0;
  background:var(--fog);
}
.deal-gauge .mom-gauge i{background:var(--green);border-radius:4px}
.deal-gauge b{font-family:var(--font-mono);font-size:.71875rem;font-variant-numeric:tabular-nums}
.deal-moves{
  margin-top:.375rem;
  display:flex;gap:.875rem;
  font-family:var(--font-mono);font-size:.625rem;color:var(--faint);
}
.deal-moves .departures-up{color:var(--green)}
.deal-moves .departures-down{color:var(--accent-deep)}

/* pot column figure card */
.deal--pot{cursor:default}
.deal--pot:hover{box-shadow:var(--shadow-1);border-color:var(--hairline)}
.deal--pot .pot-sum{
  font-family:var(--font-mono);font-size:1.375rem;font-weight:700;
  letter-spacing:-.02em;color:var(--accent-deep);font-variant-numeric:tabular-nums;
}
.pot-bar{
  display:flex;gap:2px;height:8px;margin-top:.5rem;
  border-radius:4px;overflow:hidden;background:var(--fog);
}
.pot-bar i{display:block;height:100%;min-width:3px}
.pot-bar .seg-ga{background:var(--powder)}
.pot-bar .seg-ft{background:var(--accent)}
.pot-legend{
  display:flex;gap:1rem;flex-wrap:wrap;margin-top:.4375rem;
  font-size:.65625rem;font-weight:500;color:var(--muted);
}
.pot-legend .sw{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:.3125rem;vertical-align:-1px}
.pot-legend .sw.ga{background:var(--powder)}
.pot-legend .sw.ft{background:var(--accent)}
.pot-legend b{color:var(--ink);font-weight:700;margin-left:.25rem;font-variant-numeric:tabular-nums}

/* the specimen slot in the GA column: the printed object itself */
.deal--spec{padding:.5rem;cursor:default;background:var(--fog)}
.deal--spec:hover{box-shadow:var(--shadow-1);border-color:var(--hairline)}
.deal--spec .pass{font-size:.6875rem}
.deal--spec figcaption{
  padding:.4375rem .25rem 0;
  font-size:.625rem;font-weight:500;color:var(--faint);
}

/* a full-width deal grid (queue page directory view). Every slot is the
   same fixed size, occupied or open */
.deal-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;align-items:stretch;
}
@media (max-width:1220px){.deal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.deal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.deal-grid{grid-template-columns:1fr}}
.deal-grid .deal{height:100%;min-height:15.5rem}

/* movement atoms shared with the board */
.move-up{color:var(--tgreen)!important}
.move-down{color:var(--tred)!important}
.move-flat{color:#59616B}
.departures-up{color:var(--green)}
.departures-down{color:var(--tred-deep)}
.mom-gauge{
  display:inline-block;vertical-align:middle;
  width:100%;max-width:3.25rem;height:8px;
  border:1px solid #383C43;background:#050607;overflow:hidden;border-radius:1px;
}
.mom-gauge i{display:block;height:100%;background:var(--powder)}

/* ============================================================
   SECTION FURNITURE inside the app body (sub-pages)
   ============================================================ */
.wrap{min-width:0}
main.wrap{padding:16px 22px 26px;max-width:1080px}
@media (max-width:900px){main.wrap{padding:12px 12px 22px}}
.band{background:transparent}
.section{padding-block:1rem 1.25rem}
.section + .section{border-top:1px solid var(--hairline)}
.section-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem 2.5rem;flex-wrap:wrap;
  margin-bottom:.875rem;
}
.section-head p{color:var(--muted);margin:0;max-width:68ch;font-size:var(--fs-small)}
.section-head p strong{color:var(--ink)}
.section-head .kicker{flex-basis:100%;margin-bottom:.25rem}
.lede{color:var(--muted)}
.lede strong{color:var(--ink)}
.statline{
  display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;
  font-family:var(--font-mono);font-size:.625rem;letter-spacing:.04em;
  text-transform:uppercase;color:var(--faint);
}
.statline b{color:var(--ink);font-weight:700}
.statline .live{color:var(--green)}
.statline a{text-decoration:underline;text-underline-offset:3px}

.page-head{padding-block:.375rem 0}
.page-head .kicker{margin-bottom:.375rem}
.page-head h1{font-size:1.375rem;max-width:30ch}
.page-head .lede{margin-top:.5rem;max-width:60ch;font-size:var(--fs-small)}
.page-head .lede strong{color:var(--ink)}

/* buttons for content areas: pills */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--font-ui);font-size:.78125rem;font-weight:600;
  padding:.53125rem 1.25rem;border-radius:var(--r-pill);
  border:1px solid transparent;
  box-shadow:var(--shadow-1);
  transition:background .12s ease,border-color .12s ease;
}
.btn-yellow{background:var(--accent);color:#fff}
.btn-yellow:hover{background:var(--accent-deep)}
.btn-red,.btn-orange{background:var(--ink);color:#fff}
.btn-red:hover,.btn-orange:hover{background:#0E1E2C}
.btn-ghost{border-color:var(--hairline-strong);color:var(--ink);background:var(--card)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent-deep)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.textlink{
  font-family:var(--font-ui);font-size:.78125rem;font-weight:600;
  color:var(--accent-deep);
}
.textlink:hover{color:var(--accent);text-decoration:underline;text-underline-offset:4px}
.textlink.mut{color:var(--muted)}
.home-bottom-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.875rem;margin-top:.875rem}

/* reading pages: text column + sticky signage rail */
.with-rail{display:grid;grid-template-columns:minmax(0,1fr) 15.5rem;column-gap:clamp(1.5rem,4vw,3.5rem);grid-auto-flow:row dense}
.with-rail > *{grid-column:1/-1}
.with-rail > .prose,.with-rail > .page-links{grid-column:1}
.with-rail > .rail{grid-column:2;grid-row:span 2;align-self:stretch}
.rail-sign{
  position:sticky;top:4.5rem;
  background:var(--card);color:var(--ink);
  border:1px solid var(--hairline);
  border-radius:var(--r-outer);box-shadow:var(--shadow-1);
  padding:1rem 1.0625rem 1.125rem;
  display:grid;gap:.6875rem;
}
.rail-sign > b{font-size:.875rem;font-weight:600}
.rail-sign dl{margin:0;display:grid;gap:.5rem}
.rail-sign dl div{display:grid;gap:.125rem;border-top:1px solid var(--hairline);padding-top:.5rem}
.rail-sign dt{font-size:.578125rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--faint)}
.rail-sign dd{margin:0;font-family:var(--font-mono);font-size:.71875rem;color:var(--ink)}
.rail-sign .btn{width:100%}
.rail-sign .textlink{justify-self:start}
@media (max-width:900px){
  .with-rail{grid-template-columns:1fr}
  .with-rail > .rail{grid-column:1;grid-row:auto;margin-top:1.25rem}
  .rail-sign{position:static}
}

/* prose pages */
.prose{max-width:44rem;padding-block:1rem .75rem;font-size:var(--fs-small);line-height:1.6}
.prose h2{margin:1.5rem 0 .5rem;font-size:.9375rem}
.prose h2:first-child{margin-top:0}
.prose p{color:var(--muted);margin-bottom:.75rem}
.prose p strong{color:var(--ink)}
.prose a{color:var(--accent-deep);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--hairline-strong)}
.prose a:hover{color:var(--accent)}
.prose ul,.prose ol{color:var(--muted);padding-left:1.125rem;margin:0 0 .75rem}
.prose li{margin-bottom:.25rem}
.prose .note{
  border:1px solid var(--hairline);
  border-radius:var(--r-inner);background:var(--fog);
  padding:.75rem .875rem;margin:1.25rem 0;
}
.prose .note b{
  display:block;font-size:.625rem;font-weight:600;
  letter-spacing:.08em;color:var(--accent-deep);margin-bottom:.25rem;text-transform:uppercase;
}
.prose .note p{margin:0;font-size:var(--fs-small)}
.prose .legal-note{font-size:.6875rem;color:var(--faint);margin-top:1.5rem}
.page-links{display:flex;flex-wrap:wrap;gap:.75rem 1.375rem;padding-block:1rem}

/* boarding flow (how it works) */
.flow{
  list-style:none;margin:1.125rem 0 .5rem;padding:0;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  background:var(--card);color:var(--ink);
  border:1px solid var(--hairline);
  border-radius:var(--r-outer);box-shadow:var(--shadow-1);
  counter-reset:leg;overflow:hidden;
}
.flow li{counter-increment:leg;padding:.875rem .9375rem 1rem;border-left:1px solid var(--hairline)}
.flow li:first-child{border-left:0}
.flow li::before{
  content:counter(leg,decimal-leading-zero);
  display:inline-grid;place-items:center;
  min-width:1.5rem;height:1.5rem;padding-inline:.1875rem;
  border:1px solid var(--hairline-strong);border-radius:50%;
  font-family:var(--font-mono);font-size:.625rem;color:var(--accent-deep);
  margin-bottom:.5rem;
}
.flow b{display:block;font-size:.8125rem;font-weight:600;margin-bottom:.25rem}
.flow span{display:block;color:var(--muted);font-size:.71875rem;line-height:1.5}
@media (max-width:960px){.flow{grid-template-columns:repeat(2,minmax(0,1fr))}
  .flow li:nth-child(n+3){border-top:1px solid var(--hairline)}
  .flow li:nth-child(odd){border-left:0}
}
@media (max-width:560px){
  .flow{grid-template-columns:1fr}
  .flow li{border-left:0;border-top:1px solid var(--hairline)}
  .flow li:first-child{border-top:0}
}

/* ============================================================
   QUEUE PAGE tools
   ============================================================ */
.queue-panel .section-head{margin-bottom:.75rem}
.queue-panel .section-head h2,.queue-divider h2{font-size:1rem}
.queue-panel .section-head p,.queue-divider p{font-size:var(--fs-small);color:var(--muted);max-width:78ch}
.first-class-panel{padding-top:.25rem}
.queue-divider{padding:1.125rem 0 .5rem}
.queue-tools{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;
  padding-block:.375rem .75rem;
}
.tabbar{display:inline-flex;background:var(--fog);border-radius:var(--r-pill);overflow:hidden;padding:3px;gap:3px}
.queue-tabs{margin-bottom:14px;background:rgba(255,255,255,.7);box-shadow:var(--shadow-1)}
.queue-tabs button{font-size:.78125rem;padding:.4375rem 1.125rem;display:inline-flex;align-items:center;gap:.4375rem}
.queue-tabs button.active{background:var(--accent);color:#fff}
#tab-ft.active{background:var(--accent);color:#fff}
#tab-ga.active{background:var(--blue);color:#fff}
.queue-tabs .tab-count{
  font-family:var(--font-mono);font-size:.59375rem;font-weight:700;
  font-variant-numeric:tabular-nums;
  background:rgba(20,41,58,.09);color:inherit;
  border-radius:var(--r-pill);padding:.09375rem .40625rem;
}
.queue-tabs button.active .tab-count{background:rgba(255,255,255,.24);color:#fff}
.tabbar button{
  font-size:.71875rem;font-weight:500;
  color:var(--muted);padding:.34375rem .9375rem;border-radius:var(--r-pill);
}
.tabbar button.active{background:var(--card);color:var(--ink);font-weight:600;box-shadow:var(--shadow-1)}
.pager{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  margin-top:.875rem;padding-top:.75rem;border-top:1px solid var(--hairline);
}
.pager button{
  font-size:.71875rem;font-weight:600;
  border:1px solid var(--hairline-strong);border-radius:var(--r-pill);
  padding:.375rem .9375rem;color:var(--ink);background:var(--card);
}
.pager button:hover:not([disabled]){border-color:var(--accent);color:var(--accent-deep)}
.pager button[disabled]{opacity:.35;cursor:not-allowed}
.pager .k{color:var(--faint)}
.queue-range{font-family:var(--font-mono);font-size:.625rem;color:var(--faint);letter-spacing:.04em}
.ft-bar{
  display:flex;gap:.5rem 1.5rem;flex-wrap:wrap;align-items:center;
  background:var(--fog);border-radius:var(--r-inner);
  padding:.5625rem .8125rem;margin-bottom:.75rem;
  font-family:var(--font-mono);font-size:.625rem;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);
}
.ft-bar b{color:var(--ink);font-weight:700}
.ft-bar .red{color:var(--accent-deep)}
.queue-empty{
  border:2px dashed var(--hairline-strong);border-radius:var(--r-outer);
  padding:1.5rem 1.25rem;text-align:center;color:var(--muted);font-size:var(--fs-small);
}
.queue-empty .k{display:block;color:var(--faint);margin-bottom:.5rem}

/* ============================================================
   DEPARTURE BOARD: the approved dark hardware (/departures/)
   ============================================================ */
.board{
  position:relative;
  background:#040507;
  border:5px solid #171A20;
  outline:1px solid #2A2E36;
  border-radius:6px;
  overflow:hidden;
  font-family:var(--font-mono);
  color:#F5F3EC;
  box-shadow:
    inset 0 0 0 1px rgba(0,0,0,.65),
    inset 0 0 48px rgba(0,0,0,.55),
    0 3px 10px rgba(23,48,63,.22),
    0 14px 36px rgba(23,48,63,.14);
}
.board::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(112deg,transparent 42%,rgba(255,255,255,.045) 47%,rgba(255,255,255,.015) 52%,transparent 56%);
}
.board-head{
  display:flex;align-items:center;gap:.625rem;
  padding:.5rem .875rem;
  border-bottom:1px solid #1A1D22;
}
.board-plane{
  display:grid;place-items:center;width:1.5rem;height:1.5rem;
  background:var(--accent);color:#fff;border-radius:3px;
}
.board-plane svg{width:12px;height:12px}
.board-head strong{
  font-family:var(--font-ui);font-weight:800;font-stretch:115%;
  font-size:.9375rem;letter-spacing:.2em;text-transform:uppercase;
  color:#F2F4F6;
}
.board-head-right{
  margin-left:auto;display:flex;align-items:center;gap:.75rem;
  font-family:var(--font-mono);font-size:var(--fs-mono-xs);
  letter-spacing:.09em;text-transform:uppercase;color:#A9AEB6;
}
.board-head-right .live{
  color:var(--tgreen);display:inline-flex;align-items:center;gap:.375rem;
}
.board-head-right .live::before{
  content:"";width:6px;height:6px;border-radius:50%;background:var(--tgreen);
  box-shadow:0 0 6px var(--tgreen);
  animation:pulse 2.4s infinite;
}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
@media (prefers-reduced-motion:no-preference){
  .board-rows.is-booting .board-row{animation:rowlight .55s cubic-bezier(.16,1,.3,1) both}
  .board-rows.is-booting .board-row:nth-child(1){animation-delay:.05s}
  .board-rows.is-booting .board-row:nth-child(2){animation-delay:.13s}
  .board-rows.is-booting .board-row:nth-child(3){animation-delay:.21s}
  .board-rows.is-booting .board-row:nth-child(4){animation-delay:.29s}
  .board-rows.is-booting .board-row:nth-child(5){animation-delay:.37s}
  .board-rows.is-booting .board-row:nth-child(6){animation-delay:.45s}
  .board-rows.is-booting .board-row:nth-child(7){animation-delay:.53s}
  .board-rows.is-booting .board-row:nth-child(8){animation-delay:.61s}
  .board-rows.is-booting .board-row:nth-child(9){animation-delay:.69s}
  .board-rows.is-booting .board-row:nth-child(10){animation-delay:.77s}
  .board-note .blink{animation:waitblink 2.4s step-end infinite}
  .board-row .st.blink{animation:waitblink 2.4s step-end infinite}
}
@keyframes rowlight{from{opacity:0;filter:brightness(2.4)}55%{opacity:1;filter:brightness(1.7)}to{opacity:1;filter:brightness(1)}}
@keyframes waitblink{0%,100%{opacity:1}50%{opacity:.3}}

.board-note{
  display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;
  padding:.375rem .875rem;
  background:#07080B;
  border-bottom:1px solid #1A1D22;
  font-size:var(--fs-mono-xs);letter-spacing:.1em;text-transform:uppercase;color:#A9AEB6;
}
.board-note b{color:var(--powder);font-weight:500;text-shadow:0 0 8px rgba(143,187,216,.4)}
.board-scroll{overflow-x:auto}
.board-cols,.board-row{
  display:grid;
  grid-template-columns:2rem minmax(0,1fr) auto auto auto 5.5rem;
  gap:.875rem;align-items:center;
  padding-inline:.75rem;
}
.board-cols{
  padding-block:.4375rem .3125rem;
  font-family:var(--font-ui);font-weight:800;font-size:.5625rem;
  letter-spacing:.13em;text-transform:uppercase;
  color:#E8EAEE;
}
.board-rows{display:grid;gap:4px;padding:6px 7px 7px}
.board-row{
  padding-block:.5625rem;
  font-size:.8125rem;font-weight:700;
  border-radius:3px;
  background:linear-gradient(180deg,#2B2F37,#1F232A);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),inset 0 -1px 0 rgba(0,0,0,.5),0 1px 3px rgba(0,0,0,.6);
  text-transform:uppercase;
  text-align:left;width:100%;
}
.board-row .pos,.board-row .who,.board-row .num{color:#EDEFF2}
.board-row .pos{font-size:.78125rem}
.board-row .who{display:flex;align-items:center;gap:.5rem;min-width:0}
.board .who small{
  display:block;font-size:.53125rem;letter-spacing:.1em;color:#8A93A0;
  text-transform:uppercase;font-weight:400;
}
.board .who .who-name{min-width:0;display:grid;gap:3px}
.flapline{display:inline-flex;align-items:center;gap:2px;overflow:hidden;letter-spacing:0;min-width:0}
/* mounting caps flanking every flap group, as on the physical board */
.flapline::before,.flapline::after{
  content:"";flex:0 0 3px;height:1.15em;border-radius:1px;
  background:linear-gradient(180deg,#3A404B,#20242B);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 1px rgba(0,0,0,.55);
}
.fc{
  position:relative;
  display:inline-grid;place-items:center;flex-shrink:0;
  width:1.3ch;height:1.55em;border-radius:2px;
  font-size:1.25rem;
  background:linear-gradient(180deg,#282D36 0 50%,#161A20 50% 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 0 0 1px rgba(0,0,0,.55),
    inset 0 -1px 0 rgba(0,0,0,.7),
    0 1px 2px rgba(0,0,0,.7);
  font-style:normal;font-weight:700;
  /* owner-mandated: flap lettering is classic board yellow, the one
     place yellow exists in the product */
  color:#FFD84D;
  text-shadow:0 1px 0 rgba(0,0,0,.55),0 0 10px rgba(255,205,60,.22);
  overflow:hidden;
}
.fc::after{
  content:"";position:absolute;left:0;right:0;top:50%;
  height:2px;background:rgba(0,0,0,.68);
  box-shadow:0 1px 0 rgba(255,255,255,.07);
  pointer-events:none;
}
.fc.sp,.board-row.is-front .fc.sp,.board-row.is-open .fc.sp{color:transparent;text-shadow:none}
/* the category sub-line is a second, smaller run of flap modules */
/* the category continues on the same run in white lettering */
.fc.fc-alt{color:#EDF1F5;text-shadow:0 1px 0 rgba(0,0,0,.55)}
.fc.fc-alt.sp,.fc.sp{color:transparent}
.board-row.is-open .fc{color:#454B54;text-shadow:none}
.board-row.is-front .fc{color:#FFC08A;text-shadow:0 0 9px rgba(240,131,74,.45)}

.plate{
  display:grid;place-items:center;flex-shrink:0;
  min-width:1.5rem;height:1.125rem;padding-inline:.1875rem;
  background:#E9EAEC;border-radius:2px;
  box-shadow:inset 0 -1px 0 rgba(0,0,0,.25),0 1px 1px rgba(0,0,0,.5);
}
.plate-logo{position:relative;display:grid;place-items:center;width:100%;height:100%}
.plate-logo i{font-style:normal;font-family:var(--font-ui);font-weight:800;font-size:.5625rem;color:#15171A}
.plate-logo img{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:2px}

.board-row .num{justify-self:end;font-variant-numeric:tabular-nums;font-size:.78125rem;color:#F5F6F8}
.board-row .st{font-size:var(--fs-mono-xs);letter-spacing:.1em;justify-self:start}
.board-row .st.now{
  background:var(--tgreen);color:#03310F;font-weight:700;
  padding:.125rem .4375rem;border-radius:2px;justify-self:start;
  text-shadow:none;box-shadow:0 0 10px rgba(59,212,112,.5);
}
.board-row .st.ft{
  background:var(--tred-deep);color:#fff;font-weight:700;
  padding:.125rem .4375rem;border-radius:2px;
  box-shadow:0 0 9px rgba(255,75,51,.3);text-shadow:none;
}
.board-row .st.open{color:#454B54}
.board-row .st.gone{
  background:var(--tred-deep);color:#fff;font-weight:700;
  padding:.125rem .4375rem;border-radius:2px;justify-self:start;text-shadow:none;
}
.board-row.is-front{background:linear-gradient(180deg,#35302B,#221D19)}
.board-row.is-open{padding-block:.3125rem;color:#3F434B}
.board-row.is-open .who{color:#3F434B;font-weight:400;text-shadow:none}
.board-row.is-open .num{color:#3F434B;text-shadow:none}
.board-row.is-open .st{color:#33373D}
.board-rows.is-empty .board-row:nth-child(n+6){display:none}
.board-foot{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;
  padding:.5rem .875rem;
  border-top:1px solid #1A1D22;
  background:#0B0D10;
  font-size:var(--fs-mono-xs);letter-spacing:.08em;text-transform:uppercase;color:#A9AEB6;
}
.board-foot .k{color:#99A0AB}
.board-foot a{color:var(--powder);text-decoration:none}
.board-foot a:hover{text-decoration:underline;text-underline-offset:3px}
.board .mom-cell{display:inline-flex;align-items:center;gap:.375rem;min-width:0}

/* the top of the earned board is the point of the board: rank #1 sits
   on a lit green-tinted row, ranks 2 and 3 carry the green position */
.board-row.is-top1{
  background:linear-gradient(180deg,#2A3A31,#1D2922);
  box-shadow:inset 0 1px 0 rgba(120,220,160,.14),inset 0 -1px 0 rgba(0,0,0,.5),0 1px 3px rgba(0,0,0,.6);
}
.board-row.is-top1 .fc.sp{color:transparent;text-shadow:none}
.board-row.is-top3 .pos .fc{
  color:var(--tgreen);
  text-shadow:0 0 8px rgba(59,212,112,.5);
}

/* movement and status flaps carry their own lamp colors, even on the
   lit top row */
.board-row .fl-up .fc{color:var(--tgreen);text-shadow:0 0 8px rgba(59,212,112,.42)}
.board-row .fl-down .fc{color:#FF9078;text-shadow:0 0 8px rgba(255,75,51,.38)}
.board-row .fl-flat .fc{color:#7A828E;text-shadow:none}

/* earned departures board: RANK THING MOMENTUM 24H 7D 30D PROD CONF */
.board--earned .board-cols,
.board--earned .board-row{
  grid-template-columns:3.1rem minmax(8rem,1fr) 7rem 4.4rem 4.4rem 4.4rem 3.4rem 5.6rem;
  gap:.5625rem;
}
.board--earned .board-row .num{justify-self:start}
.board--earned .board-row{cursor:pointer}
.board--earned .board-row:hover{filter:brightness(1.18)}
/* an empty board is still a complete board: a lit status plate over a
   full run of blank-flap rows */
.departures-empty{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.5625rem .875rem;
  border-radius:3px;
  background:linear-gradient(180deg,#2B2F37,#1F232A);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),inset 0 -1px 0 rgba(0,0,0,.5),0 1px 3px rgba(0,0,0,.6);
  font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:.14em;
  color:var(--powder);text-shadow:0 0 8px rgba(143,187,216,.35);
  text-transform:uppercase;text-align:center;
}
.departures-empty span::after{
  content:"";display:inline-block;vertical-align:-1px;
  width:.4375rem;height:.6875rem;margin-left:.4375rem;
  background:var(--powder);box-shadow:0 0 8px rgba(143,187,216,.5);
}
@media (prefers-reduced-motion:no-preference){
  .departures-empty span::after{animation:waitblink 1.6s step-end infinite}
}
.board-row.is-ghost{padding-block:.5rem}
.board-row.is-ghost .fc{
  background:linear-gradient(180deg,#1B1F25 0 50%,#111419 50% 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),inset 0 -1px 0 rgba(0,0,0,.6),0 1px 2px rgba(0,0,0,.5);
}
.board-row.is-ghost .who small{color:#3F434B}
.board-row.is-ghost .pos .fc{color:#9A8748;text-shadow:none}
.board-row.is-ghost .mom-gauge{opacity:.6}
.board-row.is-ghost .mom-cell b{color:#3F434B}
.board--home .board-cols,
.board--home .board-row{
  grid-template-columns:3.1rem minmax(8rem,1fr) 7rem 4.4rem 4.4rem 3.4rem;
  gap:.6875rem;
}
.board--home .board-row .num{justify-self:start}
.board--home .board-row{cursor:pointer}
.board--home .board-row:hover{filter:brightness(1.18)}

@media (max-width:700px){
  :is(.board--earned,.board--home) .board-cols{display:none}
  :is(.board--earned,.board--home) .board-row{
    display:flex;flex-wrap:wrap;align-items:center;
    gap:.1875rem .6875rem;padding:.375rem .5625rem .4375rem;
  }
  :is(.board--earned,.board--home) .board-row::before{content:"";flex-basis:100%;order:1;height:0}
  :is(.board--earned,.board--home) .board-row > *{order:0}
  :is(.board--earned,.board--home) .board-row .who{flex:1 1 auto}
  :is(.board--earned,.board--home) .board-row .mom-cell{margin-left:auto}
  :is(.board--earned,.board--home) .board-row .num,
  :is(.board--earned,.board--home) .board-row .st{order:2;flex:0 0 auto;font-size:.625rem}
  :is(.board--earned,.board--home) .board-row .num::before,
  :is(.board--earned,.board--home) .board-row .st::before{
    color:#6F7883;font-size:.5rem;letter-spacing:.08em;margin-right:.25rem;font-weight:400;
  }
  .board--earned .board-row span:nth-of-type(4)::before{content:"24H"}
  .board--earned .board-row span:nth-of-type(5)::before{content:"7D"}
  .board--earned .board-row span:nth-of-type(6)::before{content:"30D"}
  .board--earned .board-row span:nth-of-type(7)::before{content:"PROD"}
  .board--earned .board-row .st::before{content:"CONF"}
  .board--home .board-row span:nth-of-type(4)::before{content:"24H"}
  .board--home .board-row span:nth-of-type(5)::before{content:"7D"}
  .board--home .board-row span:nth-of-type(6)::before{content:"PROD"}
  .fc{font-size:.625rem;height:1.4em}
  .board .mom-cell .mom-gauge{max-width:2.5rem}
}

/* departed index (discovery page): preserved */
.board--missed{margin-top:1.25rem}
.board--missed .board-cols,
.board--missed .board-row{grid-template-columns:auto minmax(0,1fr) auto}
.board--missed .board-head strong{letter-spacing:.18em}
.board--missed .board-head .board-plane{background:var(--tred-deep);color:#fff;transform:scaleX(-1)}
.board--missed .board-head-right{font-family:var(--font-ui);font-weight:600;letter-spacing:.09em;color:var(--powder)}
@media (max-width:760px){
  .board--missed .board-cols,.board--missed .board-row{gap:.5rem}
  .board--missed .fc{font-size:.5625rem;height:1.5em}
  .board--missed .st{font-size:.5rem;letter-spacing:.07em}
  .plate{min-width:1.375rem;height:1rem;padding-inline:.125rem}
  .plate-logo i{font-size:.5rem}
  .plate-logo img{width:11px;height:11px}
  .board-note{display:grid;gap:.1875rem}
  .board-head strong{font-size:.71875rem;letter-spacing:.15em}
  .board-rows{padding:4px 5px 6px;gap:2px}
}

.departures-key{
  display:flex;gap:.5rem 1.125rem;flex-wrap:wrap;
  margin:.5rem 0 .75rem;
  font-family:var(--font-mono);font-size:var(--fs-mono-xs);
  letter-spacing:.05em;text-transform:uppercase;color:var(--faint);
}
.departures-key b{color:var(--ink)}
.dep-explain{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;
  margin-top:1rem;
}
@media (max-width:1000px){.dep-explain{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.dep-explain{grid-template-columns:1fr}}
.dep-explain article{
  background:var(--card);border:1px solid var(--hairline);
  border-radius:var(--r-card);box-shadow:var(--shadow-1);
  padding:.8125rem .9375rem;
}
.dep-explain h3{font-size:.8125rem;margin-bottom:.375rem}
.dep-explain p{color:var(--muted);font-size:.71875rem;line-height:1.5}

/* ============================================================
   THE BOARDING PASS: the approved printed object, sized in em.
   It appears where a ticket is inspected: the case dialog, the
   specimen slot, My Entry. Fast Track adds only the navy band
   and the orange position zone.
   ============================================================ */
.pass{
  --cut:3.8125em;
  font-size:1rem;
  position:relative;
  display:grid;grid-template-columns:5.375em minmax(0,1fr) var(--cut);
  background:
    repeating-linear-gradient(45deg,rgba(20,41,58,.028) 0 1px,transparent 1px 7px),
    linear-gradient(180deg,#F7FAFC,#EBF2F7);
  color:var(--stock-ink);
  filter:drop-shadow(0 1px 2px rgba(18,44,64,.28)) drop-shadow(0 4px 10px rgba(18,44,64,.13));
  border-radius:3px;
  cursor:pointer;
  overflow:hidden;
  -webkit-mask:
    radial-gradient(circle 6px at calc(100% - var(--cut)) 0,transparent 96%,#000) top/100% 51% no-repeat,
    radial-gradient(circle 6px at calc(100% - var(--cut)) 100%,transparent 96%,#000) bottom/100% 51% no-repeat;
  mask:
    radial-gradient(circle 6px at calc(100% - var(--cut)) 0,transparent 96%,#000) top/100% 51% no-repeat,
    radial-gradient(circle 6px at calc(100% - var(--cut)) 100%,transparent 96%,#000) bottom/100% 51% no-repeat;
}
.pass-brand{
  position:relative;display:grid;place-items:center;overflow:hidden;
  color:var(--stock-ink);
  border-right:1px solid var(--stock-line);
}
.pass-brand::after{
  content:"";position:absolute;left:50%;bottom:.375em;transform:translateX(-50%);
  width:1.1875em;height:2px;background:var(--bc,var(--stock-ink));
}
.brand-logo{position:relative;display:grid;place-items:center;width:100%;height:100%}
.brand-logo i{font-style:normal;font-family:var(--font-ui);font-weight:600;font-size:1.375em}
.brand-logo img{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:78%;height:66%;max-width:4.1875em;max-height:3.625em;object-fit:contain;border-radius:0}
.pass-main{min-width:0;padding:.4375em .625em .40625em;display:flex;flex-direction:column;gap:.40625em}
.pass-head{display:flex;align-items:flex-start;gap:.40625em;min-width:0}
.pass-logo{
  width:1.375em;height:1.375em;flex-shrink:0;border-radius:2px;
  background:var(--stock-ink);color:var(--stock);
  display:grid;place-items:center;overflow:hidden;
  font-size:.625em;font-weight:600;
  position:relative;
}
.pass-logo i{font-style:normal}
.pass-logo img{position:absolute;inset:2px;width:calc(100% - 4px);height:calc(100% - 4px);object-fit:contain}
.pass-id{min-width:0;flex:1}
.pass-id strong{
  display:block;font-size:.8125em;font-weight:600;letter-spacing:-.01em;line-height:1.15;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.pass-id small{
  color:var(--stock-muted);font-size:.578125em;line-height:1.3;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.pass-pill{display:none}
.pass-meta{display:none}
.pass-chip{
  align-self:flex-start;flex-shrink:0;
  font-family:var(--font-mono);font-size:.453125em;letter-spacing:.12em;
  border:1px solid var(--stock-ink);border-radius:2px;
  padding:.0625em .25em;
}
.pass-fields{
  margin-top:auto;
  display:grid;grid-template-columns:1.4fr 1fr .8fr;gap:.5em;
  border-top:1px solid var(--stock-line);padding-top:.34375em;
}
.pass-fields small{
  display:block;font-family:var(--font-ui);font-weight:600;font-size:.453125em;
  letter-spacing:.12em;text-transform:uppercase;color:var(--stock-muted);
}
.pass-fields b{
  display:block;font-family:var(--font-ticket);font-size:.671875em;font-weight:400;
  letter-spacing:.02em;margin-top:.0625em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.codeblock{margin-top:.34375em}
svg.pass-code{
  display:block;width:100%;height:.75em;
  color:var(--stock-ink);opacity:.88;
}
.codeblock span{
  display:block;margin-top:.15625em;
  font-family:var(--font-ticket);font-size:.453125em;
  letter-spacing:.34em;text-transform:uppercase;color:var(--stock-muted);
  white-space:nowrap;overflow:hidden;
}
.pass-stub{
  position:relative;border-left:0;
  background:
    repeating-linear-gradient(45deg,rgba(20,41,58,.025) 0 1px,transparent 1px 7px),
    linear-gradient(180deg,#EAF1F6,#E1EBF2);
  padding:.34375em .40625em;
  display:flex;flex-direction:column;align-items:stretch;gap:.1875em;
  text-align:center;
}
.pass-stub small{
  display:block;font-family:var(--font-ui);font-weight:600;font-size:.453125em;
  letter-spacing:.1em;text-transform:uppercase;color:var(--stock-muted);
}
.pass-stub b{display:block;font-family:var(--font-ticket);font-size:.703125em;font-weight:400}
.pass-stub .no{display:none}
.pass .vote{
  margin-top:auto;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--stock-ink);border-radius:2px;
  font-family:var(--font-mono);font-size:.5625em;font-weight:700;
  padding:.1875em 0;
  background:var(--stock-ink);color:var(--stock);
}
.pass .vote:hover{background:#000}
.pass .vote.voted,.pass .vote[disabled]{background:transparent;color:var(--stock-muted);border-color:var(--stock-line);cursor:default}
.pass.is-example .pass-chip{color:var(--stock-muted);border-color:var(--stock-line)}
.pass-stub::before,.ftpass-stub::before{
  content:"";position:absolute;left:-2px;top:5px;bottom:5px;width:4px;
  background-image:radial-gradient(circle 1.5px,#9DB6C6 92%,transparent);
  background-size:4px 9px;background-repeat:repeat-y;background-position:center top;
}
.zone{
  flex-shrink:0;align-self:flex-start;
  display:grid;justify-items:center;
  border:1px solid var(--stock-ink);border-radius:2px;
  padding:.15625em .34375em;min-width:2em;
  text-align:center;line-height:1;background:transparent;
}
.zone small{
  font-family:var(--font-ui);font-weight:600;font-size:.359375em;
  letter-spacing:.16em;text-transform:uppercase;color:var(--stock-muted);
}
.zone b{
  font-family:var(--font-ticket);font-weight:400;font-size:.859375em;
  color:var(--stock-ink);margin-top:.078125em;font-variant-numeric:tabular-nums;
}
.zone i{
  font-style:normal;font-family:var(--font-ui);font-weight:600;font-size:.359375em;
  letter-spacing:.14em;text-transform:uppercase;color:var(--accent-deep);margin-top:.125em;
}
.zone--ft{border-color:var(--accent-deep)}
.zone--ft b{color:var(--accent-deep)}
.zone.is-dim{border-color:var(--stock-line)}
.zone.is-dim b,.zone.is-dim i{color:var(--stock-muted)}
.pass.is-example::after{
  content:"Specimen";position:absolute;left:50%;top:50%;
  transform:translate(-50%,-50%) rotate(-16deg);
  font-family:var(--font-ui);font-weight:600;font-size:1.1875em;
  letter-spacing:.3em;text-transform:uppercase;white-space:nowrap;
  color:rgba(20,41,58,.10);pointer-events:none;
}
.pass-band{
  display:flex;align-items:center;justify-content:space-between;gap:.8125em;
  background:var(--tink);color:var(--tyellow);
  padding:.40625em .8125em;
  font-family:var(--font-ui);font-weight:600;font-size:.59375em;
  letter-spacing:.14em;text-transform:uppercase;
  text-shadow:0 1px 1px rgba(0,0,0,.25);
}
.pass-band b{font-family:var(--font-ticket);font-weight:400;font-size:1.26em;font-variant-numeric:tabular-nums;color:#fff;letter-spacing:.02em}
.pass.pass--priority{display:block;cursor:default}
.pass--priority .pass-body{
  display:grid;grid-template-columns:5.375em minmax(0,1fr) var(--cut);
  align-items:stretch;
}
.pass--priority .pass-body[hidden]{display:none}
.pass--priority[role="button"],.pass--priority .pass-body[role="button"]{cursor:pointer}
.stub-visit{
  display:inline-block;
  background:var(--accent);color:#fff;border:0;border-radius:999px;cursor:pointer;
  font-family:var(--font-ui);font-weight:600;font-size:.625em;
  padding:.4375em .8125em;text-decoration:none;
}
.stub-visit:hover{background:var(--accent-deep);text-decoration:none}
.stub-line{
  font-family:var(--font-mono);font-size:.53125em;letter-spacing:.06em;
  text-transform:uppercase;color:var(--stock-muted);
}
.stub-line em{font-style:normal;color:var(--stock-ink);font-weight:700}
:is(.pass-solo,.entry-dialog-body) .pass{width:100%}
.pass-solo{max-width:26rem}
.specimen-note{
  margin-top:.5rem;max-width:26rem;
  font-size:.6875rem;font-weight:500;color:var(--faint);
}
.pass.signal-positive{outline:1px solid rgba(46,125,79,.55);outline-offset:2px}
.pass.signal-strong{
  outline:2px solid rgba(46,125,79,.7);outline-offset:2px;
  box-shadow:0 0 12px rgba(46,125,79,.18);
}
.deal.signal-positive{border-color:rgba(46,125,79,.5)}
.deal.signal-strong{border-color:rgba(46,125,79,.7);box-shadow:var(--shadow-1),0 0 10px rgba(46,125,79,.15)}
@media (max-width:640px){
  .pass{font-size:.9375rem}
  .zone--ft i{display:none}
}

/* ============================================================
   DIALOGS + FORMS
   ============================================================ */
dialog{
  border:0;border-radius:var(--r-outer);padding:0;
  background:var(--card);color:var(--ink);
  width:min(94vw,560px);
  box-shadow:0 18px 50px rgba(15,34,49,.3);
}
dialog::backdrop{background:rgba(14,29,40,.55);backdrop-filter:blur(2px)}
.dlg-head{
  display:flex;align-items:flex-start;gap:.75rem;
  padding:1rem 1.125rem .75rem;border-bottom:1px solid var(--hairline);
}
.dlg-head h2{font-size:1rem}
.dlg-close{
  margin-left:auto;flex-shrink:0;
  width:28px;height:28px;border:1px solid var(--hairline-strong);border-radius:50%;
  color:var(--muted);font-size:.9375rem;line-height:1;
}
.dlg-close:hover{color:var(--accent-deep);border-color:var(--accent)}
.dlg-body{padding:.875rem 1.125rem 1.125rem}

.entry-dialog-body{padding:0}
.entry-dialog-head{display:flex;align-items:flex-start;gap:.6875rem;padding:1rem 1.125rem .75rem}
.entry-dialog-head .pass-logo{width:36px;height:36px}
.entry-dialog-head h2{font-size:1rem;margin-top:.125rem}
.dialog-ticket-line{display:flex;align-items:center;gap:.5625rem}
.ticket-no{font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:.13em;color:var(--accent-deep)}
.example-label{
  font-size:.5625rem;font-weight:600;letter-spacing:.09em;
  border:1px solid var(--hairline-strong);border-radius:var(--r-pill);
  color:var(--muted);padding:.09375rem .40625rem;text-transform:uppercase;
}
.entry-tag{
  font-size:.625rem;font-weight:500;letter-spacing:.05em;
  border:1px solid var(--hairline-strong);border-radius:var(--r-pill);
  color:var(--muted);padding:.125rem .5rem;margin-right:.25rem;
}
.entry-close{
  margin-left:auto;flex-shrink:0;
  width:28px;height:28px;border:1px solid var(--hairline-strong);border-radius:50%;
  color:var(--muted);font-size:.9375rem;line-height:1;
}
.entry-close:hover{color:var(--accent-deep);border-color:var(--accent)}
.entry-dialog-body .pass{margin:0 1.125rem}
.entry-lede{padding:0 1.125rem;color:var(--ink)}
.entry-facts{
  display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;
  padding:.625rem 1.125rem;margin-top:.75rem;
  border-block:1px solid var(--hairline);
  font-size:.6875rem;font-weight:500;color:var(--faint);
}
.entry-facts b{color:var(--ink);margin-right:.25rem}
:is(#entry-dialog,#departure-dialog) section{padding:.625rem 1.125rem 0}
:is(#entry-dialog,#departure-dialog) section small{
  display:block;font-size:.625rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin-bottom:.25rem;
}
:is(#entry-dialog,#departure-dialog) section p{color:var(--muted);font-size:var(--fs-small)}
.entry-dialog-foot{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  padding:.75rem 1.125rem .875rem;margin-top:.875rem;
  border-top:1px solid var(--hairline);
  font-size:.6875rem;font-weight:500;color:var(--faint);
}
.card-visit{
  font-size:.75rem;font-weight:600;
  color:var(--accent-deep);
}
.card-visit:hover{text-decoration:underline;text-underline-offset:4px;color:var(--accent)}

form label{
  display:block;margin-bottom:.75rem;
  font-size:.625rem;font-weight:600;
  letter-spacing:.07em;text-transform:uppercase;color:var(--muted);
}
form label span{color:var(--faint);text-transform:none;letter-spacing:.01em;font-weight:400}
form label small{display:block;margin-top:.25rem;font-weight:400;letter-spacing:.01em;text-transform:none;color:var(--faint);font-size:.6875rem}
input,textarea,select{
  display:block;width:100%;margin-top:.3125rem;
  background:var(--card);color:var(--ink);
  border:1px solid var(--hairline-strong);border-radius:10px;
  font-family:var(--font-ui);font-size:var(--fs-small);
  padding:.53125rem .6875rem;
}
input:focus,textarea:focus,select:focus{
  outline:0;border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(232,100,31,.16);
}
textarea{resize:vertical;line-height:1.5}
fieldset{
  border:1px solid var(--hairline);border-radius:var(--r-inner);
  margin:0 0 .75rem;padding:.625rem .75rem;
}
fieldset legend{
  font-size:.625rem;font-weight:600;
  letter-spacing:.07em;color:var(--muted);padding-inline:.25rem;text-transform:uppercase;
}
fieldset label{margin-bottom:.625rem}
fieldset input[type="radio"],fieldset input[type="checkbox"]{width:auto;margin:0;accent-color:var(--accent)}
.field-note{font-size:.6875rem;color:var(--faint);margin:.5rem 0 0}
.payment-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.875rem}
@media (max-width:520px){.payment-actions{grid-template-columns:1fr}}
.payment-actions .confirm{
  background:var(--accent);color:#fff;
  font-size:.75rem;font-weight:600;
  padding:.625rem .75rem;border-radius:var(--r-pill);
}
.payment-actions .confirm:hover{background:var(--accent-deep)}
.payment-actions .confirm[disabled]{opacity:.45;cursor:not-allowed}
.payment-actions .base-pay,.payment-actions button:not(.confirm){
  border:1px solid var(--hairline-strong);color:var(--ink);background:var(--card);
  font-size:.75rem;font-weight:600;
  padding:.625rem .75rem;border-radius:var(--r-pill);
}
.payment-actions .base-pay:hover,.payment-actions button:not(.confirm):hover{border-color:var(--accent);color:var(--accent-deep)}
#reservation-timer{margin-top:.625rem;font-size:var(--fs-small);color:var(--accent-deep)}

.purchase-review .dlg-body{font-size:var(--fs-small)}
.review-list{margin:.5rem 0;display:grid}
.review-list > div{
  display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:.75rem;
  padding:.375rem 0;border-bottom:1px solid var(--hairline);
}
.review-list dt{font-size:.625rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);align-self:center}
.review-list dd{margin:0;color:var(--ink)}
.legal-accept{
  display:flex!important;gap:.5rem;align-items:flex-start;
  font-size:.6875rem!important;line-height:1.45!important;letter-spacing:.01em!important;
  text-transform:none!important;color:var(--muted)!important;font-weight:400!important;
  margin-top:.75rem;
}
.legal-accept input{width:auto;margin-top:.125rem}
.legal-accept a{color:var(--accent-deep);text-decoration:underline;text-underline-offset:2px}

/* ============================================================
   PANELS: shared cards
   ============================================================ */
.panel,
.watch-figures article,.watch-table,.viz-card,
.record-grid > div,.record-grid article,.press-facts > div,.spend-row,
.stats-page-grid > div,.success-details > div,.matrix-sign{
  border:1px solid var(--hairline);border-radius:var(--r-card);background:var(--card);box-shadow:var(--shadow-1);
}

/* ============================================================
   MARKET WATCH
   ============================================================ */
.watch-figures{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.625rem;padding-block:1rem}
@media (max-width:900px){.watch-figures{grid-template-columns:repeat(2,minmax(0,1fr))}}
.watch-figures article{padding:.6875rem .75rem .625rem}
.watch-figures span{display:block;font-size:.578125rem;font-weight:600;letter-spacing:.08em;color:var(--faint);text-transform:uppercase}
.watch-figures strong{display:block;font-family:var(--font-mono);font-size:1rem;font-weight:700;margin-top:.3125rem;font-variant-numeric:tabular-nums}
.watch-figures small{display:block;color:var(--muted);font-size:.6875rem;margin-top:.1875rem}
.watch-table-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}
.watch-table-head input{width:min(100%,300px);margin-top:0}
.watch-table{overflow-x:auto}
.watch-row{
  display:grid;
  grid-template-columns:minmax(9.5rem,1.6fr) minmax(6.5rem,1fr) 5.5rem 6.25rem 5.5rem 5.5rem 5.25rem;
  gap:.875rem;align-items:center;
  padding:.375rem .75rem;
  min-width:50rem;
  font-family:var(--font-mono);font-size:var(--fs-mono-xs);
  border-bottom:1px solid var(--hairline);
  font-variant-numeric:tabular-nums;color:var(--ink);
}
.watch-row:last-child{border-bottom:0}
.watch-columns{
  font-family:var(--font-ui);font-size:.578125rem;font-weight:600;letter-spacing:.08em;color:var(--faint);text-transform:uppercase;
  border-bottom:1px solid var(--hairline-strong);
  background:var(--fog);
}
a.watch-row:hover{background:var(--fog)}
.watch-row strong{display:block;color:var(--ink);font-weight:700;letter-spacing:.02em}
.watch-row small{display:block;color:var(--faint);font-size:.546875rem}
#watch-more{margin-top:.875rem}

/* ============================================================
   MY ENTRY: the performance console
   ============================================================ */
.entry-tabs{display:flex;flex-wrap:wrap;gap:.3125rem;margin-bottom:.8125rem}
.entry-tabs button{
  font-size:.6875rem;font-weight:500;
  border:1px solid var(--hairline-strong);border-radius:var(--r-pill);
  color:var(--muted);padding:.3125rem .75rem;background:var(--card);
}
.entry-tabs button.active{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}
.owner-status.owner-status--wide{grid-template-columns:repeat(6,1fr)}
.owner-status.owner-status--wide > div{border-bottom:0}
.owner-status.owner-status--wide > div:nth-child(3n){border-right:1px solid var(--hairline)}
.owner-status.owner-status--wide > div:last-child{border-right:0}
@media (max-width:880px){
  .owner-status.owner-status--wide{grid-template-columns:repeat(3,1fr)}
  .owner-status.owner-status--wide > div{border-bottom:1px solid var(--hairline)}
  .owner-status.owner-status--wide > div:nth-child(3n){border-right:0}
  .owner-status.owner-status--wide > div:nth-last-child(-n+3){border-bottom:0}
}
.owner-duo{display:grid;grid-template-columns:1fr 1fr;gap:.875rem;align-items:start;margin-bottom:.875rem}
@media (max-width:880px){.owner-duo{grid-template-columns:1fr}}
.owner-panel{
  border:1px solid var(--hairline);border-radius:var(--r-outer);background:var(--card);box-shadow:var(--shadow-1);
  padding:.875rem 1rem;min-width:0;
}
.owner-panel .k{display:block;margin-bottom:.6875rem}
.owner-panel .owner-earned{border:0;box-shadow:none;padding:0;margin-bottom:.6875rem}
.owner-panel .rebuy-status{margin-bottom:.6875rem}
.owner-panel:has(.owner-earned:not([hidden])) #owner-earned-note{display:none}
.owner-edit{
  border:1px solid var(--hairline);border-radius:var(--r-outer);background:var(--card);box-shadow:var(--shadow-1);
  padding:0;margin-bottom:.25rem;
}
.owner-edit summary{
  cursor:pointer;list-style:none;
  padding:.75rem 1rem;
  font-size:.8125rem;font-weight:600;color:var(--ink);
}
.owner-edit summary::-webkit-details-marker{display:none}
.owner-edit summary::before{content:"+";display:inline-block;margin-right:.5rem;color:var(--accent-deep);font-weight:600}
.owner-edit[open] summary::before{content:"-"}
.owner-edit[open] summary{border-bottom:1px solid var(--hairline)}
.owner-edit form{padding:1rem 1rem .5rem}
.owner-layout{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:.875rem;align-items:start}
@media (max-width:980px){
  .owner-layout{grid-template-columns:1fr}
  .owner-layout > .owner-card{order:2}
  .owner-layout > .owner-side{order:1}
}
.owner-card{
  border:1px solid var(--hairline);border-radius:var(--r-outer);background:var(--card);box-shadow:var(--shadow-1);
  padding:1rem;
}
.owner-side{display:grid;gap:.875rem;min-width:0}
.owner-status{
  display:grid;grid-template-columns:repeat(3,1fr);
  border:1px solid var(--hairline);border-radius:var(--r-outer);background:var(--card);box-shadow:var(--shadow-1);
  overflow:hidden;margin-bottom:.875rem;
}
.owner-status > div{
  padding:.5rem .6875rem;
  border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
}
.owner-status > div:nth-child(3n){border-right:0}
.owner-status > div:nth-last-child(-n+3){border-bottom:0}
.owner-status span{display:block;font-size:.546875rem;font-weight:600;letter-spacing:.07em;color:var(--faint);text-transform:uppercase}
.owner-status strong{display:block;font-family:var(--font-mono);font-size:.875rem;margin-top:.1875rem;font-variant-numeric:tabular-nums}
.owner-earned{
  border:1px solid var(--hairline);border-radius:var(--r-inner);background:var(--card);
  padding:.6875rem .75rem;margin-bottom:.8125rem;
}
.owner-earned small{font-size:.546875rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);display:block;margin-bottom:.1875rem}
.owner-earned b{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.owner-momentum-line{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.625rem;align-items:end}
.owner-momentum-line .mom-gauge{max-width:none;border:0;background:var(--fog);border-radius:4px}
.owner-momentum-line .mom-gauge i{background:var(--powder);border-radius:4px}
.owner-movement{
  display:grid;grid-template-columns:repeat(3,1fr);gap:.625rem;
  border-top:1px dashed var(--hairline);padding-top:.5rem;margin-top:.5rem;
  font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--faint);
}
.owner-movement .move-up{color:var(--green)!important}
.owner-movement .move-down{color:var(--accent-deep)!important}
.rebuy-status{
  border:1px solid var(--hairline);border-left:3px solid var(--accent);
  border-radius:var(--r-inner);background:var(--card);
  padding:.5625rem .6875rem;margin-bottom:.8125rem;font-size:var(--fs-small);
}
.rebuy-status:empty{display:none}
.rebuy-status strong{display:block;font-size:.625rem;font-weight:600;letter-spacing:.08em;color:var(--accent-deep);margin-bottom:.1875rem;text-transform:uppercase}
.rebuy-status span{color:var(--muted);font-size:.71875rem;line-height:1.45;display:block}
.owner-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 .75rem}
@media (max-width:560px){.owner-grid{grid-template-columns:1fr}}
.tracking-fields{margin-block:.75rem}
.owner-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}
.owner-button{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--ink);color:#fff;
  font-size:.71875rem;font-weight:600;
  padding:.5rem 1.0625rem;border-radius:var(--r-pill);
}
.owner-button:hover{background:#0E1E2C}
.owner-button.secondary{background:var(--card);color:var(--ink);border:1px solid var(--hairline-strong)}
.owner-button.secondary:hover{border-color:var(--accent);color:var(--accent-deep)}
.owner-button.rebuy{background:var(--accent);color:#fff}
.owner-button.rebuy:hover{background:var(--accent-deep)}
#owner-message{margin-top:.8125rem;font-size:var(--fs-small);color:var(--green)}
#owner-message.error{color:var(--accent-deep)}
.owner-empty{
  border:2px dashed var(--hairline-strong);border-radius:var(--r-outer);
  padding:1.375rem 1.125rem;max-width:40rem;
}
.owner-empty h2{font-size:1rem;margin-bottom:.5rem}
.owner-empty p{color:var(--muted);margin-bottom:.8125rem;font-size:var(--fs-small)}
.owner-section-head{padding:.5rem 0 .625rem;border-top:1px solid var(--hairline);margin-top:1rem}
.owner-section-head .kicker{margin-bottom:.125rem;color:var(--accent-deep)}
.owner-section-head h2{font-size:1rem}
.owner-section-head p{font-size:var(--fs-small);color:var(--muted);margin-top:.25rem}

/* Fast Track ROI report: printed on ticket stock */
.ft-report-list{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:900px){.ft-report-list{grid-template-columns:1fr}}
.ft-report{
  background:var(--stock);color:var(--stock-ink);border-radius:3px;
  padding:.6875rem .8125rem;
  filter:drop-shadow(0 1px 2px rgba(18,44,64,.22));
}
.ft-report small{font-size:.5rem;text-transform:uppercase;letter-spacing:.1em;color:var(--stock-muted);display:block;font-weight:600}
.ft-report b,.ft-report strong{font-family:var(--font-ticket);font-weight:400;font-variant-numeric:tabular-nums}
.ft-report-head{
  display:grid;grid-template-columns:minmax(0,1.6fr) 1fr 1fr auto;gap:.625rem;align-items:center;
  border-bottom:1px solid var(--stock-line);padding-bottom:.5rem;
}
.ft-report-head strong{font-size:.84375rem}
.ft-report-state{
  font-family:var(--font-mono);font-size:.5625rem;font-weight:700;letter-spacing:.11em;
  color:var(--accent-deep);border:1px solid var(--accent-deep);border-radius:2px;padding:.1875rem .375rem;
  justify-self:end;
}
.ft-report-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem .625rem;
  padding-block:.5rem;
}
.ft-report-grid b{font-size:.78125rem}
.ft-exposure{border-top:1px dashed var(--stock-line);padding-top:.5rem}
.ft-exposure-grid{display:flex;flex-wrap:wrap;gap:.375rem .875rem;margin-top:.25rem}
.ft-exposure-grid span{display:grid;font-family:var(--font-mono);font-size:.5625rem;color:var(--stock-muted)}
.ft-exposure-grid b{font-size:.6875rem;color:var(--stock-ink)}
.ft-exposure-grid em{font-style:normal}
.ft-report footer{
  display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;
  border-top:1px solid var(--stock-line);padding-top:.4375rem;margin-top:.25rem;
  font-family:var(--font-mono);font-size:.53125rem;letter-spacing:.05em;text-transform:uppercase;color:var(--stock-muted);
}
@media (max-width:640px){
  .ft-report-head{grid-template-columns:1fr 1fr}
  .ft-report-grid{grid-template-columns:1fr 1fr}
}

/* evidence dialog: momentum ticket extension */
.momentum-ticket{
  background:var(--stock);color:var(--stock-ink);border-radius:3px;
  padding:.6875rem .8125rem;margin:.75rem 1.125rem 0;
}
.momentum-ticket small{font-size:.5rem;text-transform:uppercase;letter-spacing:.1em;color:var(--stock-muted);display:block;font-weight:600;margin-bottom:.125rem}
.momentum-ticket b{font-family:var(--font-ticket);font-weight:400;font-variant-numeric:tabular-nums;font-size:.84375rem}
.momentum-ticket-top{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.625rem;align-items:end}
.momentum-ticket-top .mom-gauge{max-width:none;border-color:var(--stock-line);background:#DCE8F0;vertical-align:baseline}
.momentum-ticket-top .mom-gauge i{background:#D97F3E}
.momentum-components,.momentum-windows{
  display:grid;grid-template-columns:repeat(3,1fr);gap:.625rem;
  border-top:1px solid var(--stock-line);padding-top:.4375rem;margin-top:.4375rem;
}
.momentum-windows{font-family:var(--font-mono);font-size:var(--fs-mono-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--stock-muted)}
.momentum-windows .move-up{color:var(--green)!important}
.momentum-windows .move-down{color:var(--accent-deep)!important}
.product-signal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.375rem;margin-top:.375rem}
.product-signal-grid span{padding:.4375rem .5rem;border:1px solid var(--hairline);border-radius:var(--r-inner);background:var(--fog)}
.product-signal-grid small{display:block;font-size:.546875rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--faint)}
.product-signal-grid b{font-family:var(--font-mono);font-size:.78125rem;font-variant-numeric:tabular-nums}
.evidence-list{display:grid;gap:.25rem;font-family:var(--font-mono);font-size:var(--fs-mono-xs);color:var(--muted)}
.evidence-list b{color:var(--ink)}
@media (max-width:640px){.product-signal-grid{grid-template-columns:repeat(2,1fr)}}

/* ============================================================
   STATS / RECORDS / SUCCESS / MISC PAGES
   ============================================================ */
.stats-page-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.625rem;
  padding-block:1rem;
}
.stats-page-grid > div{padding:.625rem .6875rem}
.stats-page-grid strong{display:block;font-family:var(--font-mono);font-size:.9375rem;font-weight:700;font-variant-numeric:tabular-nums}
.stats-page-grid span{display:block;color:var(--faint);font-size:.65625rem;margin-top:.1875rem}
.stats-page-grid .pot-stat{box-shadow:var(--shadow-1),inset 3px 0 0 var(--accent)}
.viz-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding-block:.5rem 1rem}
@media (max-width:900px){.viz-grid{grid-template-columns:1fr}}
.viz-card{padding:.8125rem .875rem}
.viz-wide,.viz-full{grid-column:1/-1}
.viz-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}
.viz-heading h2{font-size:.875rem}
.viz-heading p{color:var(--faint);font-size:.6875rem;margin-top:.1875rem}
.viz-heading strong{font-family:var(--font-mono);font-size:1rem;font-variant-numeric:tabular-nums}
.viz-empty{color:var(--faint);font-size:var(--fs-small);padding:.5rem 0}
.data-canvas{width:100%;height:auto}
.bar-viz{display:grid;gap:.3125rem}
.activity-feed{display:grid;gap:.25rem;font-size:var(--fs-small);color:var(--muted)}
.pot-question{color:var(--faint);font-size:var(--fs-small);margin-top:.625rem}
.stat-callouts{padding-block:.625rem}
.stat-callouts h2{margin-bottom:.5rem}
.stat-callouts p{color:var(--muted);margin-bottom:.3125rem;font-size:var(--fs-small)}
.record-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.625rem;padding-block:.75rem}
.record-grid > div,.record-grid article{padding:.625rem .6875rem}
.record-grid span{display:block;font-size:.578125rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--faint)}
.record-grid strong{display:block;font-size:.84375rem;font-weight:600;margin-top:.3125rem}
.record-grid small{display:block;color:var(--muted);font-size:.65625rem;margin-top:.125rem}
.spend-leaderboard{display:grid;gap:.3125rem;padding-block:.3125rem}
.spend-row{
  display:grid;grid-template-columns:2rem minmax(0,1fr) auto;gap:.75rem;align-items:center;
  padding:.4375rem .6875rem;
}
.spend-row > b{font-family:var(--font-mono);color:var(--faint)}
.spend-row span strong{display:block;font-size:var(--fs-small)}
.spend-row span small{display:block;color:var(--faint);font-size:.65625rem}
.spend-row > strong{font-family:var(--font-mono);color:var(--accent-deep)}
.bar-row{display:grid;grid-template-columns:minmax(0,1fr);gap:.15625rem}
.bar-meta{display:flex;justify-content:space-between;gap:.75rem;font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:.05em;color:var(--muted)}
.bar-track{height:7px;background:var(--fog);border-radius:4px;overflow:hidden}
.bar-track > *{display:block;height:100%;background:var(--powder)}
.activity-row{display:flex;justify-content:space-between;gap:.75rem;border-bottom:1px solid var(--hairline);padding-block:.3125rem}
.activity-row:last-child{border-bottom:0}
.reign-timeline{display:grid;gap:.3125rem}
.reign-row{display:grid;gap:.15625rem}
.reign-label{font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:.05em;color:var(--muted)}
.reign-track{height:7px;background:var(--fog);border-radius:4px;overflow:hidden}
.reign-track > *{display:block;height:100%;background:var(--tred-deep)}
.press-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.625rem;margin:1rem 0}
.press-facts > div{padding:.625rem .6875rem}
.press-facts strong{display:block;font-family:var(--font-mono);font-size:.9375rem;font-variant-numeric:tabular-nums}
.press-facts span{display:block;color:var(--faint);font-size:.65625rem;margin-top:.1875rem}
.contact-form{max-width:30rem;margin-block:1rem}
.contact-form .hp{position:absolute;left:-9999px}
.contact-form .confirm{
  background:var(--accent);color:#fff;
  font-size:.75rem;font-weight:600;
  padding:.5625rem 1.25rem;border-radius:var(--r-pill);
}
.contact-form .confirm:hover{background:var(--accent-deep)}
.form-status{margin-top:.625rem;font-size:var(--fs-small);color:var(--green)}
.form-status.error{color:var(--accent-deep)}
.matrix-instruments{display:grid;gap:.625rem;margin:1rem 0;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr))}
.matrix-sign{padding:.625rem .6875rem;font-family:var(--font-mono)}
.matrix-sign > span{display:block;font-size:var(--fs-mono-xs);letter-spacing:.13em;color:var(--faint);text-transform:uppercase;margin-bottom:.5rem}
.domain-main{display:flex;align-items:baseline;gap:.625rem;flex-wrap:wrap}
.domain-main strong{font-size:.875rem;color:var(--ink)}
.domain-main b{font-size:1rem;font-variant-numeric:tabular-nums}
.domain-main em{font-style:normal;font-size:var(--fs-mono-xs);letter-spacing:.11em;color:var(--green)}
.domain-movers{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.375rem}
.domain-movers i{font-style:normal;font-size:var(--fs-mono-xs);color:var(--muted)}
.matrix-sign small{display:block;margin-top:.5rem;font-size:var(--fs-mono-xs);letter-spacing:.07em;color:var(--faint)}
.matrix-sign small a{color:var(--muted)}
.leaderboard-section{padding-block:.875rem}
.leaderboard-section h2{margin-bottom:.375rem}
.leaderboard-section > p{color:var(--muted);max-width:62ch;margin-bottom:.625rem;font-size:var(--fs-small)}
.success-details{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.625rem;
  padding-block:.875rem;max-width:34rem;
}
.success-details > div{padding:.625rem .6875rem}
.success-details strong{display:block;font-family:var(--font-mono);font-size:.84375rem}
.success-details span{display:block;color:var(--faint);font-size:.65625rem;margin-top:.1875rem}
.success-share{
  background:var(--ink);color:#fff;
  font-size:.75rem;font-weight:600;
  padding:.5625rem 1.25rem;border-radius:var(--r-pill);
}
.success-share:hover{background:#0E1E2C}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:1.125rem clamp(1.5rem,4vw,3.5rem)}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.split .kicker.green{color:var(--green)}
.split-copy p{color:var(--muted);margin-top:.625rem;max-width:56ch;font-size:var(--fs-small)}
.split-copy p strong{color:var(--ink)}
.split-copy p a{color:var(--accent-deep);text-decoration:underline;text-underline-offset:3px}
.split-links{display:flex;flex-wrap:wrap;gap:.625rem 1.25rem;margin-top:.875rem}
.narrow{max-width:44rem}
.wrap-wide{max-width:none}

/* ============================================================
   HOMEPAGE: the Relate landing pattern. A top nav bar, a hero
   that summarises the product over the sky wash, then the real
   app UI floating below it: the Fast Track board first (paid
   always leads), the dark Departures board, then General
   Admission as its own separate section, then The Pot.
   ============================================================ */
body.mk{background:#D5E6F3}
.mk-header{
  position:sticky;top:0;z-index:40;
  background:rgba(251,253,255,.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--hairline);
}
.mk-header-in{
  max-width:1200px;margin:0 auto;padding-inline:clamp(.875rem,3vw,1.75rem);
  display:flex;align-items:center;gap:1.25rem;height:54px;
}
.mk-brand{display:flex;align-items:center;gap:.5rem;flex-shrink:0}
.mk-brand span{font-weight:600;font-size:.875rem;letter-spacing:-.015em;white-space:nowrap}
.mk-nav{display:flex;align-items:center;gap:1.125rem;margin:0 auto}
.mk-nav a{font-size:.8125rem;font-weight:500;color:var(--ink);padding:.3125rem .25rem}
.mk-nav a:hover{color:var(--accent)}
.mk-nav a[aria-current="page"]{color:var(--accent);font-weight:600}
.mk-stats{
  display:flex;gap:1rem;align-items:center;
  font-family:var(--font-mono);font-size:.625rem;
  letter-spacing:.03em;text-transform:uppercase;color:var(--faint);
  white-space:nowrap;
}
.mk-stats b{color:var(--ink);font-weight:700}
.mk-stats span:last-child b{color:var(--accent-deep)}
@media (max-width:1240px){.mk-stats span:first-child{display:none}}
@media (max-width:1080px){.mk-stats{display:none}}
.mk-right{display:flex;align-items:center;gap:.875rem;flex-shrink:0}
.mk-login{font-size:.8125rem;font-weight:500;color:var(--ink)}
.mk-login:hover{color:var(--accent)}
.mk-login[aria-current="page"]{color:var(--accent);font-weight:600}
.mk-cta.rq-cta{background:var(--accent);color:#fff;border-color:var(--accent)}
.mk-cta.rq-cta:hover{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}
.mk-strip{display:none}
@media (max-width:760px){
  .mk-nav{display:none}
  .mk-right{margin-left:auto}
  .mk-strip{
    display:flex;overflow-x:auto;scrollbar-width:none;
    border-top:1px solid var(--hairline);
  }
  .mk-strip::-webkit-scrollbar{display:none}
  .mk-strip a{
    font-size:.75rem;font-weight:500;color:var(--muted);
    white-space:nowrap;padding:.5rem .75rem;
  }
  .mk-strip a:first-child{padding-left:clamp(.875rem,3vw,1.75rem)}
  .mk-strip a[aria-current="page"]{color:var(--accent);font-weight:600}
}

/* inner pages: the landing framework. The same header, then a slim sky
   band carrying the page title (the landing hero's language), then the
   content floating on the blue ground. */
.app--page{
  display:block;background:transparent;box-shadow:none;border:0;
  margin:0;border-radius:0;min-height:0;overflow:visible;
}
.app--page .app-main{display:block}
.app--page .app-top{
  border-bottom:0;min-height:0;
  background:
    linear-gradient(180deg,rgba(255,255,255,.45),rgba(255,255,255,0) 45%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.32) 0 1px,transparent 1px 52px),
    repeating-linear-gradient(0deg,rgba(255,255,255,.32) 0 1px,transparent 1px 52px),
    linear-gradient(180deg,#E2EFF9 0%,#BCD9EE 60%,#A5CCE7 100%);
  border-bottom-left-radius:28px;border-bottom-right-radius:28px;
  padding:1.75rem max(clamp(.875rem,3vw,1.75rem),calc((100% - 1200px)/2)) 1.875rem;
}
.app--page .top-title h1{font-size:1.75rem;letter-spacing:-.028em}
.app--page .top-title .top-count{font-size:.875rem}
.app--page .top-line{font-size:.8125rem;white-space:normal;max-width:44ch}
.app--page .app-body{
  max-width:1232px;margin:0 auto;
  padding:18px clamp(.875rem,3vw,1.75rem) 26px;
}
.app--page main.wrap{
  max-width:1100px;margin:18px auto 0;
  background:var(--card);border-radius:var(--r-outer);box-shadow:var(--shadow-1);
  padding:22px clamp(1rem,3vw,1.75rem) 28px;
}
.app--page main.wrap-wide{
  max-width:1232px;background:transparent;box-shadow:none;border-radius:0;
  padding:18px clamp(.875rem,3vw,1.75rem) 26px;margin-top:0;
}
.app--page .app-foot{
  border-top:1px solid var(--hairline-strong);margin-top:1.5rem;
  max-width:1232px;margin-inline:auto;
  padding:1rem clamp(.875rem,3vw,1.75rem) 1.125rem;
}
@media (max-width:900px){
  .app--page .app-top{padding:1.25rem .875rem 1.375rem;border-radius:0 0 20px 20px}
  .app--page main.wrap{margin:12px .5rem 0;padding:16px .875rem 22px}
}

.hero{
  background:
    linear-gradient(180deg,rgba(255,255,255,.5),rgba(255,255,255,0) 40%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.32) 0 1px,transparent 1px 52px),
    repeating-linear-gradient(0deg,rgba(255,255,255,.32) 0 1px,transparent 1px 52px),
    linear-gradient(180deg,#E2EFF9 0%,#BCD9EE 55%,#96C2E3 100%);
  border-bottom-left-radius:28px;border-bottom-right-radius:28px;
  padding-bottom:5.5rem;
}
.hero-in{
  max-width:1200px;margin:0 auto;padding:clamp(1.75rem,4vw,3.25rem) clamp(.875rem,3vw,1.75rem) 0;
  display:flex;flex-direction:column;align-items:center;text-align:center;
}
.hero-badge{
  display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem 1.25rem;
  font-family:var(--font-mono);font-size:.625rem;letter-spacing:.05em;
  text-transform:uppercase;color:var(--muted);
  margin-bottom:.9375rem;
}
.hero-badge b{color:var(--ink);font-weight:700}
.hero-badge .live{color:var(--green)}
.hero-badge .live::before{
  content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--green);margin-right:.375rem;vertical-align:1px;
}
.hero-in h1{font-size:clamp(2.125rem,4.4vw,3.375rem);line-height:1.06;letter-spacing:-.03em;max-width:none}
@media (max-width:640px){.hero-in h1 br{display:none}}
.hero-sub{color:var(--muted);margin-top:.8125rem;font-size:.9375rem;line-height:1.55;max-width:60ch}
.hero-sub strong{color:var(--ink)}
.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.625rem;margin-top:1.125rem}
.hero .btn-ghost{border-color:rgba(255,255,255,.9);background:rgba(255,255,255,.78)}
.hero .btn-ghost:hover{border-color:var(--accent)}
.hero #reservation-home{margin-top:.9375rem;text-align:left}
@media (max-width:560px){.hero{padding-bottom:4.25rem}}

/* the floating app window: the Fast Track board, paid always leads */
.stage{max-width:1160px;margin:-4.25rem auto 0;padding-inline:clamp(.875rem,3vw,1.75rem)}
.app-window{
  background:var(--card);
  border:1px solid var(--hairline);
  border-radius:var(--r-outer);
  box-shadow:var(--shadow-2),0 24px 60px -18px rgba(11,34,52,.25);
  overflow:hidden;
}
.win-top{
  display:flex;align-items:center;gap:.625rem;flex-wrap:wrap;
  padding:.625rem .9375rem;
  border-bottom:1px solid var(--hairline);
  background:var(--tint-ft);
  font-size:.8125rem;font-weight:600;
}
.win-top .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0}
.win-top .ph-count{font-family:var(--font-mono);font-size:.6875rem;font-weight:400;color:var(--faint)}
.win-top .win-note{font-size:.6875rem;font-weight:500;color:var(--muted)}
.win-top .win-right{margin-left:auto;display:flex;align-items:center;gap:.625rem}
.win-top .win-price{font-family:var(--font-mono);font-size:.71875rem;font-weight:700;color:var(--accent-deep)}
.win-body{padding:.875rem .9375rem}
.win-body .deal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:900px){.win-body .deal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.win-body .deal-grid{grid-template-columns:1fr}}
.win-foot{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;
  padding:.625rem .9375rem;
  border-top:1px solid var(--hairline);
  font-size:.6875rem;color:var(--faint);
}
.win-foot a{font-size:.75rem;font-weight:600;color:var(--accent-deep)}
.win-foot a:hover{text-decoration:underline;text-underline-offset:3px}

/* home sections */
.home-sec{max-width:1160px;margin:0 auto;padding:clamp(1.75rem,3.4vw,2.75rem) clamp(.875rem,3vw,1.75rem) 0}
.home-sec-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:.625rem 1.5rem;flex-wrap:wrap;
  margin-bottom:.875rem;
}
.home-sec-head h2{font-size:1.5rem;margin-top:.3125rem;letter-spacing:-.01em}
.home-sec-head .k{display:block;color:var(--green)}
.home-sec-lead{max-width:66ch}
.home-sec-lead p{color:#31506A;font-size:.8125rem;line-height:1.55;margin-top:.5rem}
.home-sec-lead p strong{color:var(--ink)}
.home-sec-meta{
  display:flex;gap:.25rem 1.125rem;align-items:center;flex-wrap:wrap;
  font-size:.6875rem;font-weight:500;color:var(--faint);
}
.home-sec-meta b{color:var(--ink)}
.home-sec-meta a{color:var(--accent-deep);font-weight:600}
.home-sec-meta a:hover{text-decoration:underline;text-underline-offset:3px}

/* queue page: GA divider row carries the printed specimen */
.ga-divider-row{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,25rem);
  gap:.75rem 2.5rem;align-items:center;
  padding-top:.375rem;
}
@media (max-width:900px){.ga-divider-row{grid-template-columns:1fr}}
.ga-divider-row .pass{font-size:.9375rem}
.ga-divider-row .queue-tools{padding-block:.25rem .375rem}

/* GA: its own section, never beside Fast Track */
.ga-sec{
  display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);
  gap:1.25rem clamp(1.75rem,4.5vw,4rem);align-items:center;
}
@media (max-width:900px){.ga-sec{grid-template-columns:1fr}}
.ga-sec-copy .k{display:block;margin-bottom:.5rem}
.ga-sec-copy h2{font-size:1.375rem}
.ga-sec-copy p{color:var(--muted);font-size:var(--fs-small);margin-top:.5625rem;max-width:54ch}
.ga-sec-copy p strong{color:var(--ink)}
.ga-sec-copy .statline{margin-top:.75rem}
.ga-sec .pass-solo{justify-self:center;width:100%;max-width:27rem}
.ga-sec .pass{font-size:1.0625rem}

/* the pot strip */
.pot-strip{
  max-width:1160px;margin:clamp(1.75rem,3.4vw,2.75rem) auto 0;
  padding-inline:clamp(.875rem,3vw,1.75rem);
}
.pot-strip-in{
  background:var(--card);border:1px solid var(--hairline);
  border-radius:var(--r-outer);box-shadow:var(--shadow-1);
  padding:1rem 1.25rem 1.125rem;
  display:grid;grid-template-columns:auto minmax(15rem,1.1fr) minmax(14rem,1fr);
  gap:.875rem 2.25rem;align-items:center;
}
@media (max-width:900px){.pot-strip-in{grid-template-columns:1fr}}
.pot-strip .k{display:block;margin-bottom:.25rem}
.pot-strip .pot-sum{
  font-family:var(--font-mono);font-size:1.75rem;font-weight:700;
  letter-spacing:-.02em;color:var(--accent-deep);font-variant-numeric:tabular-nums;
}
.pot-fig .pot-cut{
  display:block;margin-top:.25rem;
  font-size:.65625rem;font-weight:500;color:var(--faint);
}
.pot-figures{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;
  margin-top:.5625rem;border-top:1px solid var(--hairline);padding-top:.5rem;
}
.pot-figures small{
  display:block;font-size:.5rem;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint);
}
.pot-figures b{
  display:block;margin-top:.1875rem;
  font-family:var(--font-mono);font-size:.71875rem;font-weight:700;
  font-variant-numeric:tabular-nums;color:var(--ink);
}
.pot-copy{display:grid;gap:.4375rem;justify-items:start}
.pot-strip p{color:var(--muted);font-size:var(--fs-small);max-width:56ch}
.pot-strip .textlink{white-space:nowrap}

.mk-footer{
  border-top:1px solid var(--hairline-strong);
  margin-top:clamp(1.75rem,3.5vw,3rem);
}
.mk-footer-in{
  max-width:1200px;margin:0 auto;padding:1rem clamp(.875rem,3vw,1.75rem) 1.125rem;
  display:flex;justify-content:space-between;align-items:center;gap:.375rem 1.5rem;flex-wrap:wrap;
  font-size:.6875rem;font-weight:500;color:var(--faint);
}
.mk-footer-in nav{display:flex;flex-wrap:wrap;gap:.25rem .875rem}
.mk-footer-in a{color:var(--muted)}
.mk-footer-in a:hover{color:var(--accent)}
.admin-page{padding-block:1rem}
.admin-auth{max-width:26rem;padding-block:1rem}
.admin-toolbar{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.admin-status{font-family:var(--font-mono);font-size:var(--fs-mono-xs);color:var(--faint);margin:.5rem 0}
