/* ============================================================
   GROK PREDICTOR — flow shells
   Access gate, payment flows, modal flow-steps, scan &
   simulator staging, mines board, admin widgets.
   ============================================================ */

/* ── ACCESS GATE / FLOW PANELS (games + scan) ── */
.gate{max-width:520px;margin:var(--s8) auto var(--s8)}
.gate-card{
  background:var(--surface);border:1px solid var(--border-strong);
  border-radius:var(--r-lg);padding:var(--s7) var(--s6);
  box-shadow:var(--sh-2);position:relative;overflow:hidden;
}
.gate-card::before{
  content:'';position:absolute;top:-70px;right:-70px;width:200px;height:200px;
  background:url("assets/gp-reticle.svg") center/contain no-repeat;
  opacity:.06;pointer-events:none;
}
.gate__icon{width:52px;height:52px;border-radius:var(--r-full);background:var(--tint-primary);color:var(--primary);display:flex;align-items:center;justify-content:center;margin-bottom:var(--s4)}
.gate__title{font-family:var(--font-display);font-size:var(--text-xl);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--s2)}
.gate__sub{color:var(--text-2);font-size:var(--text-sm);margin-bottom:var(--s5);line-height:1.6}
.gate__plan{margin-bottom:var(--s5)}
.plan-info{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s4);margin-bottom:var(--s4);display:flex;justify-content:space-between;align-items:center;gap:var(--s3)}
.plan-info__name{font-family:var(--font-display);text-transform:uppercase}
.plan-info__price{color:var(--primary);font-weight:800;font-variant-numeric:tabular-nums}
.flow-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-lg);padding:var(--s6);margin-bottom:var(--s5)}
.flow-body{padding:var(--s2) 0}
.flow-step{display:none}
.flow-step.active{display:block;animation:modalIn var(--dur-med) var(--ease-out)}
.flow-steps{display:flex;gap:var(--s2);margin-bottom:var(--s5);flex-wrap:wrap}
.flow-nav{display:flex;gap:var(--s3);margin-top:var(--s5);flex-wrap:wrap}
.flow-total{display:flex;justify-content:space-between;align-items:center;background:var(--surface-2);border-radius:var(--r-sm);padding:var(--s3) var(--s4);font-weight:700;margin-top:var(--s4)}
.flow-total strong{color:var(--primary);font-variant-numeric:tabular-nums}
.flow-hint{font-size:var(--text-xs);color:var(--text-3);margin-top:var(--s2);line-height:1.5}
.flow-back{margin-top:var(--s3)}
.done-box,.flow-done{text-align:center;padding:var(--s6) 0}
.done-box__icon{width:60px;height:60px;border-radius:var(--r-full);background:var(--tint-primary);color:var(--primary);display:flex;align-items:center;justify-content:center;margin:0 auto var(--s4);font-size:1.8rem}
.done-box h3{font-family:var(--font-display);font-size:var(--text-xl);text-transform:uppercase;margin-bottom:var(--s2)}
.done-box p{color:var(--text-2);font-size:var(--text-sm);max-width:40ch;margin:0 auto var(--s4);line-height:1.6}

/* payment method radio cards */
.paymethod,.net-option{
  display:flex;align-items:center;gap:var(--s3);width:100%;text-align:left;
  background:var(--surface-2);border:1px solid var(--border);
  border-radius:var(--r-md);padding:var(--s4);cursor:pointer;
  transition:border-color var(--dur-fast),background var(--dur-fast);
}
.paymethod:hover,.net-option:hover{border-color:var(--border-strong)}
.paymethod.sel,.net-option.on{border-color:var(--primary);background:var(--tint-primary)}
.paymethod__radio{width:20px;height:20px;border-radius:var(--r-full);border:2px solid var(--border-strong);flex-shrink:0;position:relative;transition:border-color var(--dur-fast)}
.paymethod.sel .paymethod__radio{border-color:var(--primary)}
.paymethod.sel .paymethod__radio::after{content:'';position:absolute;inset:4px;border-radius:var(--r-full);background:var(--primary)}
.paymethod__icon,.net-option__icon{font-size:1.4rem;flex-shrink:0}
.paymethod__body,.net-option__body{flex:1;min-width:0}
.paymethod__name,.net-option__name{font-weight:700;font-size:var(--text-sm)}
.paymethod__sub,.net-option__sub{font-size:var(--text-xs);color:var(--text-2)}
.paymethod__badge,.net-option__badge{font-size:var(--text-xs);font-weight:700;color:var(--accent)}
.net-list{display:flex;flex-direction:column;gap:var(--s2)}
.paymethod__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--s2)}
.paymethod--wide{grid-column:1/-1}

/* wallet display */
.wallet-box{background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:var(--r-md);padding:var(--s4);margin:var(--s3) 0}
.wallet-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) 0}
.wallet-addr{font-family:var(--font-body);font-size:var(--text-sm);word-break:break-all;font-variant-numeric:tabular-nums}

/* ============================================================
   flows, part 2 — fmodal / fstep shells, scan + simulator
   staging, mines board
   ============================================================ */

/* ── FMODAL / FLOW-MODAL shells (customer games + scan) ── */
.fmodal,.flow-modal{
  position:fixed;inset:0;z-index:var(--z-modal);
  display:flex;align-items:center;justify-content:center;padding:var(--s4);
  background:var(--scrim);
  opacity:0;pointer-events:none;transition:opacity var(--dur-med) var(--ease-out);
}
.fmodal.on,.flow-modal.on{display:flex;opacity:1;pointer-events:auto}
.fmodal.on .fm-body,.flow-modal.on .fm-body{transform:none}
.fm-body,.fm-content{
  background:var(--surface);border:1px solid var(--border-strong);
  border-radius:var(--r-lg);width:100%;max-width:560px;
  max-height:calc(100dvh - 40px);overflow-y:auto;
  box-shadow:var(--sh-3);padding:var(--s6);
  transform:translateY(12px) scale(.98);transition:transform var(--dur-med) var(--ease-out);
}
.fm-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s4);padding-bottom:var(--s4);border-bottom:1px solid var(--border)}
.fm-title{font-family:var(--font-display);font-size:var(--text-lg);text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:var(--s2)}
.fm-title .material-symbols-outlined{color:var(--primary)}
.fm-close{width:36px;height:36px;border-radius:var(--r-full);border:1px solid var(--border);color:var(--text-2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fm-close:hover{background:var(--surface-2);color:var(--text)}
.fm-status{margin-bottom:var(--s4)}
.fm-done{text-align:center;padding:var(--s5) 0}

/* fstep (accordion flow steps inside fmodal) */
.fstep{border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;margin-bottom:var(--s3);display:none}
.fstep.on,.fstep.active{display:block;animation:modalIn var(--dur-med) var(--ease-out)}
.fstep__head{padding:var(--s4);background:var(--surface-2);display:flex;align-items:center;gap:var(--s3)}
.fstep__title{font-family:var(--font-display);text-transform:uppercase;font-size:var(--text-base);letter-spacing:.4px}
.fstep__sub{font-size:var(--text-xs);color:var(--text-2)}
.fstep__body{padding:var(--s4);display:flex;flex-direction:column;gap:var(--s3)}
.fstep__foot{padding:var(--s4);border-top:1px solid var(--border);display:flex;gap:var(--s3);flex-wrap:wrap}

/* games landing shells */
.games-wrap{max-width:960px;margin:0 auto;padding:var(--s8) var(--s5)}
.games-hero{text-align:center;margin-bottom:var(--s7);position:relative;padding:var(--s8) 0}
.games-hero::before{
  content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(420px,80vw);height:min(420px,80vw);
  background:url("assets/gp-reticle.svg") center/contain no-repeat;
  opacity:.05;pointer-events:none;
}
.games-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--s5)}

/* ── SCAN STAGING ── */
.scan-hero{text-align:center;padding:var(--s8) var(--s5);position:relative}
.scan-hero::before{
  content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(400px,80vw);height:min(400px,80vw);
  background:url("assets/gp-reticle.svg") center/contain no-repeat;
  opacity:.05;pointer-events:none;
}
.scan-title{font-family:var(--font-display);font-size:clamp(2.4rem,7vw,4.5rem);text-transform:uppercase;line-height:1;letter-spacing:1px;margin-bottom:var(--s3)}
.scan-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s5);flex-wrap:wrap}
.scan-stage{margin-bottom:var(--s5)}
.scan-step{display:none}
.scan-step.active{display:block;animation:modalIn var(--dur-med) var(--ease-out)}
.scan-flow{max-width:680px;margin:0 auto;padding:var(--s6) var(--s5)}
.scan-stage--pick{display:flex;flex-direction:column;gap:var(--s3)}
.scan-timer{
  display:flex;align-items:center;gap:var(--s4);
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-md);padding:var(--s5);margin-bottom:var(--s5);flex-wrap:wrap;
}
.scan-timer__ring{
  width:76px;height:76px;flex-shrink:0;border-radius:var(--r-full);
  border:4px solid var(--surface-3);border-top-color:var(--primary);
  display:flex;align-items:center;justify-content:center;
  animation:spin 1.2s linear infinite;
}
.scan-timer__num{font-family:var(--font-display);font-size:var(--text-xl);font-variant-numeric:tabular-nums;animation:none}
.scan-timer__meta{flex:1;min-width:180px}
.scan-done{text-align:center;padding:var(--s6)}
.scan-done__title{font-family:var(--font-display);font-size:var(--text-2xl);text-transform:uppercase;margin-bottom:var(--s2)}
.scan-done__sub{color:var(--text-2);font-size:var(--text-sm)}
.slip-flow{max-width:680px;margin:0 auto;padding:var(--s6) var(--s5) var(--s8)}
.slip-method{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);margin-bottom:var(--s4)}
.slip-dropzone{
  border:1.5px dashed var(--border-strong);border-radius:var(--r-md);
  background:var(--surface-2);padding:var(--s7) var(--s4);
  text-align:center;cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast);
}
.slip-dropzone:hover,.slip-dropzone:focus-visible{border-color:var(--primary);background:var(--tint-primary)}
.slip-dropzone.is-dragging{border-color:var(--primary);background:var(--tint-primary)}
.slip-dropzone.has-file{border-style:solid;border-color:var(--primary)}
.slip-preview{display:none;max-width:100%;height:200px;margin:var(--s3) auto 0;border-radius:var(--r-sm);object-fit:contain;border:1px solid var(--border)}
.slip-preview.is-visible{display:block}
.slip-note{font-size:var(--text-xs);color:var(--text-3);line-height:1.5;margin-top:var(--s2)}
.file-input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}

/* ============================================================
   flows, part 3 — scan simulator staging + mines board
   ============================================================ */

/* ── SIMULATOR STAGE (admin/superadmin scan simulators) ── */
.sim-shell{max-width:960px;margin:0 auto;padding:var(--s6) var(--s5) var(--s8)}
.sim-scrim{position:fixed;inset:0;z-index:var(--z-modal);background:var(--scrim);display:none;align-items:center;justify-content:center;padding:var(--s4)}
.sim-scrim.on{display:flex}
.sim-wrap{
  background:var(--surface);border:1px solid var(--border-strong);
  border-radius:var(--r-lg);width:100%;max-width:720px;
  max-height:calc(100dvh - 40px);overflow-y:auto;
  box-shadow:var(--sh-3);padding:var(--s6);
  transform:translateY(12px) scale(.98);transition:transform var(--dur-med) var(--ease-out);
}
.sim-scrim.on .sim-wrap{transform:none}
.sim-stage{display:none;animation:modalIn var(--dur-med) var(--ease-out)}
.sim-stage.on{display:block}
.sim-title{font-family:var(--font-display);font-size:var(--text-xl);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--s1)}
.sim-sub{color:var(--text-2);font-size:var(--text-sm);margin-bottom:var(--s4);line-height:1.6}
.sim-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s2);margin:var(--s4) 0}
.sim-tile{
  aspect-ratio:1;border-radius:var(--r-sm);background:var(--surface-2);
  border:1px solid var(--border-strong);position:relative;overflow:hidden;
}
.sim-tile__face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:800}
.sim-safe{background:var(--tint-primary) !important;border-color:var(--primary) !important;color:var(--primary)}
.sim-bomb{background:var(--tint-danger) !important;border-color:var(--danger) !important;color:var(--danger)}
.sim-result{
  border-radius:var(--r-md);padding:var(--s4);font-weight:700;font-size:var(--text-sm);
  display:flex;gap:var(--s2);align-items:center;margin-bottom:var(--s3);
  border:1px solid var(--border-strong);
}
.sim-result--win{background:var(--tint-primary);border-color:var(--primary)}
.sim-result--loss{background:var(--tint-danger);border-color:var(--danger)}
.sim-badge{font-size:var(--text-xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:var(--r-sm);background:var(--surface-3);color:var(--text-2)}
.sim-timer{display:flex;align-items:center;gap:var(--s3);font-variant-numeric:tabular-nums;font-weight:700;color:var(--accent)}
.sim-meter{height:8px;background:var(--surface-3);border-radius:var(--r-full);overflow:hidden;margin:var(--s2) 0}
.sim-fill{height:100%;background:var(--primary);border-radius:var(--r-full);transition:width .4s var(--ease-out)}
.sim-dots{display:flex;gap:6px;justify-content:center;margin:var(--s3) 0}
.sim-dot{width:10px;height:10px;border-radius:var(--r-full);background:var(--surface-3);transition:background var(--dur-fast)}
.sim-dot.on{background:var(--primary)}
.sim-prog{height:6px;background:var(--surface-3);border-radius:var(--r-full);overflow:hidden;margin-bottom:var(--s4)}
.sim-prog__fill{height:100%;background:var(--primary);width:0;transition:width .5s var(--ease-out)}
.sim-facts{display:flex;flex-direction:column;gap:var(--s2);margin:var(--s4) 0;font-size:var(--text-sm)}
.sim-meta{font-size:var(--text-xs);color:var(--text-3)}
.sim-fov,.sim-foh{display:flex;gap:var(--s3);justify-content:center;margin-top:var(--s4)}
.sim-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s4);margin-bottom:var(--s3)}
.sim-actions{display:flex;gap:var(--s2);flex-wrap:wrap;justify-content:center;margin-top:var(--s4)}
.sim-action{min-height:44px;padding:10px 20px;border-radius:var(--r-sm);border:1px solid var(--border-strong);font-weight:700;font-size:var(--text-sm)}
.sim-action:hover{background:var(--surface-2);border-color:var(--text-3)}
.sim-cta{text-align:center;margin-top:var(--s4)}
.sim-note{font-size:var(--text-xs);color:var(--text-3);text-align:center;margin-top:var(--s3);line-height:1.5}
.sim-picks{display:flex;gap:var(--s2);flex-wrap:wrap;justify-content:center;margin:var(--s3) 0}
.stage-1.on .sim-wrap{background:var(--surface)}

/* ── MINES BOARD ── */
.mhome{max-width:720px;margin:0 auto;padding:var(--s8) var(--s5);text-align:center}
.mhome__title{font-family:var(--font-display);font-size:clamp(2.2rem,6vw,3.5rem);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--s2)}
.mhome__cta{margin-top:var(--s5)}
.mhome-back{margin-top:var(--s3)}
.mwrap{max-width:880px;margin:0 auto;padding:var(--s6) var(--s5) var(--s8)}
.mtop{margin-bottom:var(--s5)}
.mtop__title{font-family:var(--font-display);font-size:var(--text-2xl);text-transform:uppercase;letter-spacing:.5px}
.mtop__sub{color:var(--text-2);font-size:var(--text-sm);margin-top:var(--s1)}
.mplan{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--s3);margin-bottom:var(--s5)}
.mplan-card{
  background:var(--surface-2);border:1px solid var(--border);
  border-radius:var(--r-md);padding:var(--s4);cursor:pointer;text-align:left;
  transition:border-color var(--dur-fast),background var(--dur-fast);
}
.mplan-card:hover{border-color:var(--border-strong)}
.mplan-card--sel{border-color:var(--primary);background:var(--tint-primary)}
.mplan-card__name{font-family:var(--font-display);text-transform:uppercase;font-size:var(--text-base);letter-spacing:.4px;overflow-wrap:break-word;min-width:0;max-width:100%}
.mplan-card__desc{font-size:var(--text-xs);color:var(--text-2);margin-top:2px;overflow-wrap:break-word;max-width:100%}
.mplan-card__price{color:var(--primary);font-weight:800;margin-top:var(--s2);font-variant-numeric:tabular-nums;white-space:nowrap}
.mplan-card__cap,.mplan-card__maxmines,.mplan-card__mins{font-size:var(--text-xs);color:var(--text-3);margin-top:2px}
.mpanel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-lg);padding:var(--s6)}
.mctrls{display:flex;flex-direction:column;gap:var(--s4);margin-bottom:var(--s5)}
.mfield{display:flex;flex-direction:column;gap:var(--s2)}
.mfield__label{font-size:var(--text-xs);font-weight:600;color:var(--text-2)}
.mfield__input{width:100%;min-height:44px;padding:11px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:var(--text-sm);font-variant-numeric:tabular-nums}
.mfield__input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--tint-primary);outline:none}
.mmines{display:flex;gap:var(--s2);flex-wrap:wrap}
.mmines__opt{
  min-width:44px;min-height:44px;border-radius:var(--r-sm);
  border:1px solid var(--border-strong);color:var(--text-2);
  font-weight:700;font-size:var(--text-sm);
  display:flex;align-items:center;justify-content:center;
  transition:all var(--dur-fast);
}
.mmines__opt:hover{border-color:var(--text-3);color:var(--text)}
.mmines__opt.on{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.mpresets{display:flex;gap:var(--s2);flex-wrap:wrap}
.mpreset{min-height:40px;padding:8px 16px;border-radius:var(--r-full);border:1px solid var(--border-strong);color:var(--text-2);font-weight:600;font-size:var(--text-xs)}
.mpreset:hover{color:var(--text);border-color:var(--text-3)}
.mstart__btn{width:100%;min-height:52px;background:var(--primary);color:var(--primary-ink);border-radius:var(--r-md);font-weight:800;font-size:var(--text-base);display:flex;align-items:center;justify-content:center;gap:var(--s2)}
.mstart__btn:hover{filter:brightness(1.06)}
.mstart__note{font-size:var(--text-xs);color:var(--text-3);text-align:center;margin-top:var(--s2);line-height:1.5}
.mlive{margin-top:var(--s5)}
.mstatus{
  display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;
  background:var(--surface-2);border:1px solid var(--border);
  border-radius:var(--r-md);padding:var(--s4) var(--s5);margin-bottom:var(--s4);
}
.mstatus--live{border-color:var(--primary)}
.mstatus--done{border-color:var(--border-strong)}
.mstatus__time{font-family:var(--font-display);font-size:var(--text-xl);font-variant-numeric:tabular-nums;color:var(--accent)}
.mstatus__left{font-size:var(--text-sm);font-weight:600}
.mstatus__done{font-size:var(--text-sm);font-weight:700}
.mstatus__done--win{color:var(--primary)}
.mstatus__done--loss{color:var(--danger)}
.mboard,.mines-board{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s2);margin:0 auto;max-width:520px}
.mtile,.mines-cell{
  aspect-ratio:1;border-radius:var(--r-sm);
  background:var(--surface-2);border:1px solid var(--border-strong);
  position:relative;overflow:hidden;cursor:pointer;
  transition:background var(--dur-fast),transform var(--dur-fast);
  min-height:44px;
}
.mtile:hover,.mines-cell:hover{border-color:var(--text-3)}
.mtile:active,.mines-cell:active{transform:scale(.95)}
.mtile__face,.mtile__front,.mtile__back{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:clamp(1.1rem,4vw,1.6rem);font-weight:800;
}
.mtile__back{transform:rotateY(90deg);transition:transform .28s var(--ease-out)}
.mtile--open .mtile__back{transform:rotateY(0)}
.mtile--open .mtile__front{transform:rotateY(90deg);transition:transform .28s var(--ease-out)}
.mtile--safe{background:var(--tint-primary);border-color:var(--primary);color:var(--primary)}
.mtile--bomb{background:var(--tint-danger);border-color:var(--danger);color:var(--danger)}
.mines-cell.on{background:var(--tint-primary);border-color:var(--primary);color:var(--primary)}
.mines-cell.spin{animation:spin .8s linear infinite}
.mtile:disabled,.mines-cell:disabled{cursor:default}
.mtabs{display:flex;gap:var(--s1);margin-bottom:var(--s4);flex-wrap:wrap}
.mtab{min-height:40px;padding:8px 16px;border-radius:var(--r-sm);font-size:var(--text-sm);font-weight:600;color:var(--text-2);border:1px solid transparent}
.mtab:hover{color:var(--text);background:var(--surface-2)}
.mtab.on{background:var(--primary);color:var(--primary-ink);font-weight:700}
.vm-modal{position:fixed;inset:0;z-index:var(--z-modal);background:var(--scrim);display:none;align-items:center;justify-content:center;padding:var(--s4)}
.vm-modal.vm-show{display:flex}
.vm-card{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-lg);padding:var(--s6);max-width:440px;width:100%;box-shadow:var(--sh-3);text-align:center}
.vm-title{font-family:var(--font-display);font-size:var(--text-xl);text-transform:uppercase;margin-bottom:var(--s3)}
.vm-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s2);margin:var(--s4) 0}
.vm-close{min-height:44px;padding:10px 24px;border-radius:var(--r-sm);border:1px solid var(--border-strong);font-weight:700}
.vm-close:hover{background:var(--surface-2)}
.vm-closed{display:none !important}

/* ── toast stack container ── */
.toast-wrap{position:fixed;bottom:var(--s6);right:var(--s6);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--s2);align-items:flex-end;pointer-events:none}
.toast-wrap .toast{position:static;pointer-events:auto;animation:modalIn var(--dur-med) var(--ease-out)}

/* ── page-level layout helpers shared by consoles ── */
.page-head__tabs{margin-top:var(--s3)}
.search-box{position:relative;margin-bottom:var(--s4)}
.search-box .form-input{padding-left:44px}
.chart-section{margin-bottom:var(--s6)}
.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s5)}
.chart-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s4);flex-wrap:wrap}
.chart-wrap{position:relative;min-height:260px}
.admin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s5);margin-bottom:var(--s5)}
.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.user-stats{display:flex;gap:var(--s4);flex-wrap:wrap;margin:var(--s3) 0}
.mini-stat{display:flex;flex-direction:column;gap:2px}
.mini-stat__val{font-weight:800;font-variant-numeric:tabular-nums}
.mini-stat__lbl{font-size:var(--text-xs);color:var(--text-3)}
.user-modal-info{display:flex;flex-direction:column;gap:var(--s2);font-size:var(--text-sm)}
.topup-form{display:flex;flex-direction:column;gap:var(--s3)}
.balance-box{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s4);text-align:center}
.balance-box__val{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--primary);font-variant-numeric:tabular-nums}
.balance-box__lbl{font-size:var(--text-xs);color:var(--text-2)}

/* superadmin topbar (sb vocabulary) */
.sa-topbar{position:sticky;top:0;z-index:var(--z-nav);background:var(--surface);border-bottom:1px solid var(--border)}
.sa-topbar__inner{display:flex;align-items:center;gap:var(--s3);min-height:64px;padding:8px var(--s5)}
.sa-topbar__logo{display:flex;align-items:center;gap:10px;font-family:var(--font-display);text-transform:uppercase;font-size:1.15rem;letter-spacing:.5px;color:var(--text)}
.sa-chip{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:700;padding:6px 12px;border-radius:var(--r-full);border:1px solid var(--border-strong);color:var(--text-2);white-space:nowrap}
.sa-chip--amber{background:var(--tint-accent);border-color:var(--accent);color:var(--accent)}
.sa-chip--green{background:var(--tint-primary);border-color:var(--primary);color:var(--primary)}
.sa-chip--red{background:var(--tint-danger);border-color:var(--danger);color:var(--danger)}
.sa-chip__label{font-weight:600}
.sa-topbar__spacer{flex:1}
.sa-topbar__toggle{display:none;width:44px;height:44px;border-radius:var(--r-sm);border:1px solid var(--border-strong);align-items:center;justify-content:center;flex-direction:column;gap:5px}
.sa-topbar__toggle span{display:block;width:18px;height:2px;background:currentColor;border-radius:1px}

/* games-access management (gc vocabulary) */
.gc-section{margin-bottom:var(--s6)}
.gc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s3)}
.gc-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s4)}
.gc-card__name{font-weight:700;font-size:var(--text-sm)}
.gc-card__meta{font-size:var(--text-xs);color:var(--text-2);margin-top:2px}
.gc-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) 0;border-bottom:1px solid var(--border)}
.gc-row:last-child{border-bottom:none}

/* ============================================================
   flows, part 4 — legacy compatibility
   Remaining page-specific legacy classes restyled in the new
   identity: scan step rail, mines widget (vm-*), page timer,
   modal BEM internals, misc stat/message bits.
   ============================================================ */

/* ── page timer (mines) ── */
.page-timer{
  position:fixed;top:14px;right:14px;z-index:var(--z-nav);
  display:flex;align-items:center;gap:var(--s2);
  background:var(--surface);border:1px solid var(--border-strong);
  border-radius:var(--r-md);padding:8px 14px;box-shadow:var(--sh-1);
}
.page-timer__icon{color:var(--accent);font-size:1.1rem}
.page-timer__value{font-family:var(--font-display);font-size:var(--text-lg);font-variant-numeric:tabular-nums}
.page-timer__label{font-size:var(--text-xs);color:var(--text-2)}
.page-timer.warning{border-color:var(--danger)}
.page-timer.warning .page-timer__value{color:var(--danger)}

/* ── mines widget (vm-*) ── */
.vm-shell{max-width:620px;margin:0 auto;padding:var(--s6) var(--s4) var(--s8)}
.vm-card{
  background:var(--surface);border:1px solid var(--border-strong);
  border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-2);
}
.vm-closed{display:none !important}
.vm-topglow{height:3px;background:var(--primary)}
.vm-header{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s3);
  padding:var(--s4) var(--s5);border-bottom:1px solid var(--border);flex-wrap:wrap;
}
.vm-header-left{display:flex;align-items:center;gap:var(--s2)}
.vm-title{font-family:var(--font-display);font-size:var(--text-lg);text-transform:uppercase;letter-spacing:.5px}
.vm-header-right{display:flex;align-items:center;gap:var(--s2)}
.vm-timer{
  display:flex;align-items:center;gap:6px;
  font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--text-sm);
  background:var(--surface-2);border:1px solid var(--border);
  border-radius:var(--r-sm);padding:8px 12px;
}
.vm-timer .material-symbols-outlined{font-size:1rem;color:var(--accent)}
.vm-logout-btn{
  display:inline-flex;align-items:center;gap:6px;min-height:40px;
  padding:8px 14px;border-radius:var(--r-sm);
  border:1px solid var(--danger);color:var(--danger);font-weight:700;font-size:var(--text-xs);
}
.vm-logout-btn:hover{background:var(--danger);color:var(--danger-ink)}
.vm-btn-icon{
  width:40px;height:40px;border-radius:var(--r-sm);
  border:1px solid var(--border);color:var(--text-2);
  display:inline-flex;align-items:center;justify-content:center;
}
.vm-btn-icon:hover{background:var(--surface-2);color:var(--text)}
.vm-grid-wrap{padding:var(--s5)}
.vm-hud{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);margin-bottom:var(--s4);flex-wrap:wrap}
.vm-pill{
  display:inline-flex;align-items:center;gap:6px;
  font-size:var(--text-xs);font-weight:700;padding:7px 12px;
  border-radius:var(--r-full);border:1px solid var(--border-strong);color:var(--text-2);
}
.vm-pill .material-symbols-outlined{font-size:1rem}
.vm-pill-mult{color:var(--accent);border-color:var(--accent)}
.vm-pill-next{color:var(--primary);border-color:var(--primary)}
.vm-profit-text{font-size:var(--text-sm);font-weight:600;color:var(--text-2)}
.vm-grid-outer{position:relative}
.vm-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s2)}
.vm-flash{position:absolute;inset:0;border-radius:var(--r-md);pointer-events:none;opacity:0;transition:opacity .3s}
.vm-flash.win{opacity:1;box-shadow:inset 0 0 0 2px var(--primary)}
.vm-tile{
  aspect-ratio:1;border-radius:var(--r-sm);min-height:44px;
  background:var(--surface-2);border:1px solid var(--border-strong);
  display:flex;align-items:center;justify-content:center;
  transition:background var(--dur-fast),border-color var(--dur-fast);
}
.vm-tile.hidden:hover{border-color:var(--text-3)}
.vm-tile.diamond{background:var(--tint-primary);border-color:var(--primary)}
.vm-tile.bomb{background:var(--tint-danger);border-color:var(--danger)}
.vm-diamond-icon{font-size:24px;color:var(--primary)}
.vm-tile-shimmer{width:38%;height:38%;border-radius:var(--r-sm);background:var(--surface-3)}
.vm-message-row{padding:0 var(--s5) var(--s4);text-align:center}
.vm-message{font-size:var(--text-sm);color:var(--text-2)}
.vm-controls{display:flex;flex-direction:column;gap:var(--s4);padding:0 var(--s5) var(--s5)}
.vm-mines-box{display:flex;align-items:center;justify-content:center;gap:var(--s4)}
.vm-btn-circle{
  width:44px;height:44px;border-radius:var(--r-full);flex-shrink:0;
  border:1px solid var(--border-strong);color:var(--text);
  display:flex;align-items:center;justify-content:center;
}
.vm-btn-circle:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}
.vm-btn-circle:disabled{opacity:.4;cursor:not-allowed}
.vm-mines-center{text-align:center;min-width:80px}
.vm-mines-num{font-family:var(--font-display);font-size:var(--text-2xl);font-variant-numeric:tabular-nums}
.vm-mines-label,.vm-label-xs{font-size:var(--text-xs);color:var(--text-2);font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.vm-slider{width:100%;accent-color:var(--primary);min-height:44px;cursor:pointer}
.vm-btn-primary{
  min-height:48px;background:var(--primary);color:var(--primary-ink);
  border-radius:var(--r-md);font-weight:800;
  display:flex;align-items:center;justify-content:center;gap:var(--s2);
}
.vm-btn-primary:hover:not(:disabled){filter:brightness(1.06)}
.vm-btn-primary:disabled{opacity:.45;cursor:not-allowed}
.vm-predictor-btn{
  min-height:48px;border:1px solid var(--accent);color:var(--accent);
  border-radius:var(--r-md);font-weight:800;
  display:flex;align-items:center;justify-content:center;gap:var(--s2);
}
.vm-predictor-btn:hover:not(:disabled){background:var(--accent);color:var(--accent-ink)}
.vm-predictor-btn:disabled{opacity:.45;cursor:not-allowed}
.vm-predict-icon.spin{animation:spin .8s linear infinite}
.vm-footer{
  padding:var(--s3) var(--s5);border-top:1px solid var(--border);
  font-size:var(--text-xs);color:var(--text-3);text-align:center;line-height:1.5;
}
.vm-reopen{
  display:none;margin:var(--s5) auto 0;min-height:48px;padding:12px 24px;
  border:1px solid var(--border-strong);border-radius:var(--r-full);
  font-weight:700;align-items:center;gap:var(--s2);color:var(--text);
}
.vm-reopen.vm-show{display:inline-flex}

/* ── modal BEM internals (superadmin) ── */
.modal__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.modal__screenshot{max-width:100%;border-radius:var(--r-sm);border:1px solid var(--border);cursor:zoom-in}
.modal__screenshot-empty{
  padding:var(--s5);text-align:center;color:var(--text-3);font-size:var(--text-sm);
  border:1px dashed var(--border-strong);border-radius:var(--r-sm);
}
.modal__topbar{height:3px;background:var(--primary);border-radius:var(--r-lg) var(--r-lg) 0 0;margin:calc(-1 * var(--s5)) calc(-1 * var(--s5)) var(--s4)}

/* ── sum cards ── */
.sum-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-md);padding:var(--s5);
  display:flex;align-items:flex-start;gap:var(--s3);
}

/* ── misc legacy bits ── */
.btns{display:flex;gap:var(--s2);flex-wrap:wrap}
.filter-group{margin-bottom:var(--s4);display:flex;flex-direction:column;gap:var(--s2)}
.btn__icon{display:inline-flex}
.btn__text{display:inline}
.btn__spinner{width:16px;height:16px;border-radius:50%;border:2.5px solid currentColor;border-top-color:transparent;animation:spin .7s linear infinite;display:none}
.loading .btn__spinner{display:inline-block}
.loading .btn__text{display:none}
.sub{font-size:var(--text-sm);color:var(--text-2)}
.sub-val{font-weight:700;font-variant-numeric:tabular-nums}
.val{font-weight:700;font-variant-numeric:tabular-nums}
.val--big{font-family:var(--font-display);font-size:var(--text-2xl);font-variant-numeric:tabular-nums}
.mgd-lbl,.pcg-lbl{font-size:var(--text-xs);color:var(--text-3);font-weight:600;letter-spacing:.03em}
.mgd-val,.pcg-val{font-size:var(--text-sm);font-weight:600;word-break:break-word}
.msg{font-size:var(--text-sm);color:var(--text-2);line-height:1.6}
.back{display:inline-flex;align-items:center;gap:6px;color:var(--text-2);font-size:var(--text-sm);font-weight:600;min-height:44px}
.back:hover{color:var(--text)}
.hero__icon{color:var(--primary);font-size:1.4rem}
.hero__subtitle{color:var(--text-2);font-size:var(--text-sm)}
.lock-text{font-family:var(--font-display);font-size:var(--text-xl);text-transform:uppercase;letter-spacing:.5px;text-align:center}
.ring{width:18px;height:18px;border-radius:50%;border:2.5px solid var(--border-strong);border-top-color:var(--primary);animation:spin .8s linear infinite;display:inline-block}
.auth-form__error.show{display:flex}

/* pick teams in slip results (scan): styled in gp-components.css pick-card block */

/* ============================================================
   flows, part 5 — game cards + remaining legacy
   Games picker cards, hero/perf layout bits, small buttons,
   responsive utilities, mines widget leftovers.
   ============================================================ */

/* ── games section + cards (games.html) ── */
.games-section{padding:var(--s6) 0 var(--s8)}
#gamesGrid,.games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s5)}
.game-card{
  background:var(--surface);border:0;
  border-radius:var(--r-lg);overflow:hidden;cursor:pointer;
  box-shadow:0 14px 34px rgba(0,0,0,.5);
  transition:transform var(--dur-fast),box-shadow var(--dur-fast);
}
.game-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(0,0,0,.55),0 0 0 2px var(--primary),0 0 24px rgba(225,6,0,.35)}
.game-card__poster{position:relative;aspect-ratio:16/10;background:var(--surface-2);overflow:hidden}
.game-card__img{width:100%;height:100%;object-fit:cover;display:block}
.game-card__overlay{position:absolute;inset:0;background:rgba(11,18,13,.32)}
.game-card__tags{
  position:absolute;top:var(--s3);left:var(--s3);right:var(--s3);
  display:flex;justify-content:space-between;align-items:flex-start;
}
.gc-badges-left{display:flex;gap:var(--s2);align-items:center}
.gc-badge{
  font-size:var(--text-xs);font-weight:800;letter-spacing:.06em;
  padding:5px 10px;border-radius:var(--r-full);color:var(--accent-ink);
}
.gc-badge--new{background:var(--primary)}
.gc-badge--hot{background:var(--accent)}
.gc-live{
  display:inline-flex;align-items:center;gap:6px;
  font-size:var(--text-xs);font-weight:800;letter-spacing:.06em;color:var(--accent);
}
.gc-live-dot{width:8px;height:8px;border-radius:var(--r-full);background:var(--accent);animation:pulse 1.6s infinite}
.gc-stat{text-align:right;background:rgba(11,18,13,.6);border-radius:var(--r-sm);padding:6px 10px;backdrop-filter:blur(4px)}
.gc-stat__val{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text)}
.gc-stat__lbl{font-size:var(--text-xs);color:var(--text-2)}
.game-card__info{padding:var(--s4) var(--s5) var(--s5);position:relative;border-top:1px solid var(--border)}
.gc-matchup{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s4);margin-bottom:var(--s4)}
.gc-match-teams{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);margin-bottom:var(--s3)}
.gc-team{font-weight:700;font-size:var(--text-sm);flex:1}
.gc-team:last-child{text-align:right}
.gc-vs{font-size:var(--text-xs);color:var(--text-3);font-weight:800}
.gc-prob-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2)}
.gc-prob{background:var(--surface-3);border-radius:var(--r-sm);padding:var(--s2) var(--s3);text-align:center}
.gc-prob.lead{border:1px solid var(--primary)}
.gc-prob__lbl{font-size:var(--text-xs);color:var(--text-2);margin-bottom:2px}
.gc-prob__val{font-weight:800;font-variant-numeric:tabular-nums}
.gc-prob.lead .gc-prob__val{color:var(--primary)}
.game-card__name{font-family:var(--font-display);font-size:var(--text-xl);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--s2)}
.game-card__meta-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s2)}
.gc-players{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--text-2)}
.gc-players .material-symbols-outlined{font-size:1rem}
.gc-cta{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--primary);color:var(--primary-ink);
  font-weight:800;font-size:var(--text-sm);
  padding:10px 18px;border-radius:var(--r-md);min-height:44px;
}
.gc-cta .material-symbols-outlined{font-size:1.1rem}

/* ── landing bits ── */
.hero__left{max-width:640px}
.perf-chart-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-md);padding:var(--s5);
}

/* ── small buttons (admin consoles) ── */
.btn-sm,.btn-view,.btn-approve,.btn-reject{
  min-height:40px;padding:8px 14px;border-radius:var(--r-sm);
  font-size:var(--text-xs);font-weight:700;border:1px solid var(--border-strong);
  display:inline-flex;align-items:center;gap:6px;color:var(--text);
}
.btn-sm:hover{border-color:var(--text-3)}
.btn-approve{border-color:var(--primary);color:var(--primary)}
.btn-approve:hover{background:var(--primary);color:var(--primary-ink)}
.btn-reject{border-color:var(--danger);color:var(--danger)}
.btn-reject:hover{background:var(--danger);color:var(--danger-ink)}

/* ── responsive utility ── */
.desktop-only{display:initial}
@media (max-width:860px){.desktop-only{display:none !important}}

/* ── mines widget leftovers ── */
.vm-green-border{border-color:var(--primary) !important;color:var(--primary) !important}
.vm-lock-overlay{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(11,18,13,.72);border-radius:var(--r-md);z-index:5;
  font-weight:700;color:var(--text-2);text-align:center;padding:var(--s4);
}
.vm-row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--s2)}

/* keep the fixed support FAB from covering bottom controls on small screens */
@media (max-width:560px){
  .vm-controls{padding-bottom:76px}
}

/* ============================================================
   PAYMENT FORMS v4 — pform system (games.html / scan.html)
   Sectioned layout: destination card → numbered sections →
   warning → actions. All hooks/ids preserved.
   ============================================================ */
.pform__title{
  font-family:var(--font-display);font-weight:800;font-size:1.5rem;
  text-transform:uppercase;letter-spacing:.02em;line-height:1.15;
  margin-bottom:8px;color:var(--text);
  display:flex;align-items:center;gap:10px;
}
.pform__title::before{
  content:'';width:4px;height:1.4em;border-radius:2px;
  background:linear-gradient(180deg,var(--primary),rgba(225,6,0,.3));
  flex-shrink:0;
}
.pform__lede{color:var(--text-2);font-size:.86rem;line-height:1.65;margin-bottom:20px}
.pform__lede strong{color:var(--text)}

/* destination card — where to send the money */
.dest-card{
  background:linear-gradient(180deg,var(--surface-2),var(--surface));
  border:1px solid var(--border-strong);
  border-radius:var(--r-lg);padding:var(--s5);margin-bottom:var(--s5);
  box-shadow:0 12px 32px rgba(0,0,0,.35);
  position:relative;overflow:hidden;
}
.dest-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--primary),transparent);
}
.dest-card__label{
  font-size:.72rem;font-weight:800;color:var(--text-3);
  text-transform:uppercase;letter-spacing:.12em;margin-bottom:12px;
  display:flex;align-items:center;gap:10px;
}
.dest-card__label::after{content:'';flex:1;height:1px;background:var(--border-strong)}
.pay-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:9px 0;border-bottom:1px dashed var(--border);
  font-size:.85rem;
}
.pay-row:last-of-type{border-bottom:none}
.pay-row span{color:var(--text-2);font-weight:500;flex-shrink:0}
.pay-row strong{
  color:var(--text);font-weight:700;text-align:right;
  overflow-wrap:anywhere;min-width:0;
}
.dest-card__amount{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s3);
  background:linear-gradient(135deg,var(--tint-primary),rgba(225,6,0,.06));
  border:1px solid var(--primary);
  border-radius:var(--r-md);padding:14px 16px;margin-top:14px;
  box-shadow:0 0 24px rgba(225,6,0,.12);
}
.dest-card__amount span{font-size:.78rem;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.08em}
.dest-card__amount strong{
  font-family:var(--font-display);font-weight:800;font-size:1.6rem;color:var(--primary);
  font-variant-numeric:tabular-nums;letter-spacing:.02em;white-space:nowrap;
  text-shadow:0 0 20px rgba(225,6,0,.3);
  overflow:hidden;text-overflow:ellipsis;max-width:100%;
}

/* numbered form sections */
.pform__sec{margin-bottom:var(--s5)}
.pform__sec-head{
  display:flex;align-items:center;gap:10px;margin-bottom:var(--s3);
  font-weight:800;font-size:.95rem;color:var(--text);
}
.pform__num{
  width:28px;height:28px;border-radius:50%;flex-shrink:0;
  background:var(--primary);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:.8rem;font-weight:800;
  box-shadow:0 0 12px rgba(225,6,0,.45);
}
.pform__sec-sub{font-size:.78rem;color:var(--text-3);margin:-4px 0 var(--s3) 38px}

/* upload dropzone */
.upzone{
  border:2px dashed var(--border-strong);border-radius:var(--r-md);
  padding:28px 16px;text-align:center;cursor:pointer;background:var(--surface-2);
  transition:border-color var(--dur-fast),background var(--dur-fast),box-shadow var(--dur-fast);
  min-height:132px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
}
.upzone:hover,.upzone:focus-visible{border-color:var(--primary);background:var(--tint-primary)}
.upzone__icon{font-size:2.2rem;color:var(--text-3);line-height:1}
.upzone:hover .upzone__icon,.upzone:focus-visible .upzone__icon{color:var(--primary)}
.upzone__label{font-size:.75rem;color:var(--text-2);font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.upzone__hint{font-size:.74rem;color:var(--text-3)}
.upzone__preview{
  max-width:100%;max-height:150px;border-radius:var(--r-sm);margin-top:8px;
  object-fit:contain;border:1px solid var(--border-strong);display:none;
}
.upzone.has-file{border-style:solid;border-color:var(--primary);background:var(--tint-primary)}
.upzone.has-file .upzone__preview{display:block}
.upzone.has-file .upzone__label,.upzone.has-file .upzone__hint,.upzone.has-file .upzone__icon{display:none}
.upzone__stat{font-size:.76rem;color:var(--text-3);margin-top:8px;min-height:1.1rem}

/* warning card */
.warn-card{
  display:flex;gap:10px;align-items:flex-start;
  background:var(--tint-danger);border:1px solid var(--danger);
  border-radius:var(--r-md);padding:12px 14px;margin-bottom:var(--s4);
}
.warn-card .material-symbols-outlined{color:var(--danger);font-size:1.25rem;line-height:1.2;flex-shrink:0}
.warn-card p{font-size:.76rem;line-height:1.55;color:var(--text-2);margin:0}
.warn-card strong{color:var(--danger)}

/* form actions */
.form-actions{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.form-actions .sbtn{width:100%;min-height:52px;font-size:.95rem}

/* payment form helpers */
.mono-strong{font-family:var(--font-mono);letter-spacing:1px}
.dest-card .pay-row strong{color:var(--text);font-weight:600}
.dest-card .pay-row .addr-strong{font-size:.78rem;word-break:break-all;flex:1;text-align:right}

/* ── Games access gate (V5 restyle) ────────────────────────────────────── */
.ga-wrap{
  min-height:calc(100vh - 68px);
  display:flex;align-items:flex-start;justify-content:center;
  padding:52px 20px 72px;position:relative;
}
.ga-shell{width:100%;max-width:760px;position:relative}
.ga-topbar{display:flex;align-items:center;gap:10px;margin-bottom:40px}

/* intro hero */
.ga-hero{text-align:center;margin-bottom:32px}
.ga-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.82rem;font-weight:600;letter-spacing:0;
  color:var(--primary);background:rgba(225,6,0,.08);
  border:1px solid var(--border-strong);border-radius:var(--r-full);
  padding:8px 16px;margin-bottom:18px;
}
.ga-eyebrow .material-symbols-outlined{font-size:1rem}
.ga-hero h2{
  font-family:var(--font-display);font-weight:700;
  font-size:clamp(1.75rem,4.6vw,2.6rem);letter-spacing:-.01em;line-height:1.12;
  color:var(--text);margin:0 0 12px;
}
.ga-lede{color:var(--text-2);font-size:.92rem;line-height:1.65;max-width:540px;margin:0 auto}
.ga-lede strong{color:var(--text)}

/* perks */
.ga-perks{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 36px;padding:0;list-style:none}
.ga-perk{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);
  padding:16px 14px;display:flex;gap:12px;align-items:flex-start;text-align:left;
}
.ga-perk .material-symbols-outlined{color:var(--primary);font-size:1.45rem;flex-shrink:0;line-height:1.2}
.ga-perk strong{display:block;font-size:.85rem;font-weight:700;margin-bottom:3px}
.ga-perk span{font-size:.76rem;color:var(--text-2);line-height:1.55}

/* region selection */
.ga-region-label{text-align:center;font-size:.85rem;font-weight:700;color:var(--text-2);margin-bottom:14px}
.ga-countries{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 22px;padding:0;list-style:none}
.ga-countries--two{grid-template-columns:repeat(2,1fr)}
.ga-country{
  display:flex;flex-direction:column;align-items:flex-start;text-align:left;
  background:var(--surface);border:2px solid var(--border);border-radius:var(--r-lg);
  padding:22px 18px 20px;cursor:pointer;width:100%;min-height:210px;
  font-family:var(--font-body);color:var(--text);
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.ga-country:hover{border-color:var(--primary);box-shadow:0 0 0 4px rgba(225,6,0,.12),0 14px 34px rgba(0,0,0,.45);transform:translateY(-2px)}
.ga-country:active{transform:translateY(0)}
.ga-country:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
.ga-country .flag-badge{margin-bottom:14px}
.ga-country__name{font-size:1rem;font-weight:800}
.ga-country__method{font-size:.76rem;color:var(--text-3);margin-top:2px;line-height:1.45}
.ga-country__price{
  font-family:var(--font-display);font-weight:700;font-size:1.65rem;color:var(--primary);
  margin-top:auto;padding-top:14px;font-variant-numeric:tabular-nums;
}
.ga-country__per{font-size:.7rem;color:var(--text-3);margin-top:1px}
.ga-alt{text-align:center}
.ga-alt a{font-size:.8rem;color:var(--text-3);text-decoration:underline;text-underline-offset:3px}
.ga-alt a:hover{color:var(--text)}
.ga-restore{margin-top:12px;text-align:center}
.ga-restore__toggle{background:none;border:none;cursor:pointer;font:inherit;font-size:.8rem;color:var(--text-3);text-decoration:underline;text-underline-offset:3px;padding:0}
.ga-restore__toggle:hover{color:var(--text)}
.ga-restore__form{margin-top:12px;text-align:left}
.ga-restore__hint{font-size:.8rem;color:var(--text-3);margin:0 0 10px}
.ga-restore__msg{font-size:.8rem;min-height:1rem;margin:10px 0 0;color:#e5484d}

/* pay-step header */
.ga-stephead{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:12px}
.ga-back{
  display:inline-flex;align-items:center;gap:8px;min-height:44px;
  background:none;border:0;cursor:pointer;padding:10px 6px;margin-left:-6px;
  color:var(--text-2);font:600 .86rem var(--font-body);
}
.ga-back:hover{color:var(--text)}
.ga-back .material-symbols-outlined{font-size:1.15rem}
.ga-step{font-size:.74rem;font-weight:700;color:var(--text-2);letter-spacing:.06em}

/* status messages — brighter and larger for readability (overrides inline styles) */
#gaStatusArea p,#ghStatusArea p,#ngStatusArea p,#wwStatusArea p{
  font-size:.82rem !important;color:var(--text-2) !important;font-weight:600 !important;
}
.ga-paycard{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:26px 22px}
@media(max-width:560px){.ga-paycard{padding:20px 16px}}

/* status screens */
.ga-status{
  text-align:center;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:44px 28px;max-width:560px;margin:0 auto;
}
.ga-status__ring{
  width:88px;height:88px;border-radius:50%;margin:0 auto 20px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(225,6,0,.09);border:1px solid var(--border-strong);
  box-shadow:0 0 44px rgba(225,6,0,.22);
}
.ga-status__ring .material-symbols-outlined{font-size:2.5rem}
.ga-status__ring.is-ok .material-symbols-outlined{color:var(--primary)}
.ga-status__ring.is-warn .material-symbols-outlined{color:var(--yellow)}
.ga-status__ring.is-err .material-symbols-outlined{color:var(--danger)}
.ga-status h3{font-family:var(--font-display);font-size:1.45rem;font-weight:700;margin:0 0 10px;color:var(--text)}
.ga-status p{color:var(--text-2);font-size:.88rem;line-height:1.65;max-width:420px;margin:0 auto 22px}
.ga-status p strong{color:var(--text)}
.ga-status .sbtn{max-width:300px;margin:0 auto}

@media(max-width:680px){
  .ga-perks{grid-template-columns:1fr}
  .ga-countries{grid-template-columns:1fr}
  .ga-country{min-height:0;flex-direction:row;align-items:center;gap:14px;padding:16px}
  .ga-country .flag-badge{margin-bottom:0;flex-shrink:0}
  .ga-country__body{flex:1;min-width:0}
  .ga-country__price{margin-top:0;padding-top:0;text-align:right;font-size:1.35rem}
  .ga-country__per{text-align:right}
  .ga-topbar{margin-bottom:28px}
  .ga-wrap{padding:36px 16px 56px}
}
.ga-country__pricewrap{margin-top:auto;padding-top:14px;display:flex;flex-direction:column}
@media(max-width:680px){
  .ga-country__pricewrap{margin-top:0;padding-top:0;flex-shrink:0}
}
.ga-country__body{display:flex;flex-direction:column;min-width:0}

/* ═══════════════════════════════════════════════════════════════
   PLANS FLOW — session plan wizard (games.html + scan.html)
   Shares the game-access gate design language: sentence-case
   eyebrow pills, step headers, option cards, status rings.
   ═══════════════════════════════════════════════════════════════ */
#flowBody .plan-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 22px;padding:0;list-style:none}
#flowBody .plan-card{
  position:relative;display:flex;flex-direction:column;align-items:flex-start;text-align:left;
  background:var(--surface);border:2px solid var(--border);border-radius:var(--r-lg);
  padding:22px 18px 20px;cursor:pointer;width:100%;min-height:44px;
  font-family:var(--font-body);color:var(--text);
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
#flowBody .plan-card:hover{border-color:var(--primary);box-shadow:0 0 0 4px rgba(225,6,0,.12),0 14px 34px rgba(0,0,0,.45);transform:translateY(-2px)}
#flowBody .plan-card:active{transform:translateY(0)}
#flowBody .plan-card:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
#flowBody .plan-card.sel{border-color:var(--primary);box-shadow:0 0 0 4px rgba(225,6,0,.16),0 14px 34px rgba(0,0,0,.45)}
#flowBody .plan-card.sel::after{
  content:'✓';position:absolute;top:12px;right:12px;width:26px;height:26px;border-radius:50%;
  background:var(--primary);color:#fff;font-weight:800;font-size:.85rem;line-height:1;
  display:flex;align-items:center;justify-content:center;box-shadow:0 0 12px rgba(225,6,0,.55);
}
#flowBody .plan-card__badge{
  position:absolute;top:12px;left:12px;font-size:.68rem;font-weight:800;letter-spacing:.04em;
  color:#fff;background:var(--primary);border-radius:var(--r-full);padding:5px 11px;
  box-shadow:0 0 12px rgba(225,6,0,.45);
}
#flowBody .plan-card__icon{
  width:44px;height:44px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;
  background:var(--tint-primary);color:var(--primary);margin-bottom:14px;
}
#flowBody .plan-card__icon .material-symbols-outlined{font-size:1.5rem}
#flowBody .plan-card__name{font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:.01em;overflow-wrap:break-word;min-width:0;max-width:100%}
#flowBody .plan-card__price{
  font-family:var(--font-display);font-weight:700;font-size:1.7rem;color:var(--primary);
  margin-top:6px;font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
#flowBody .plan-card__per{font-size:.7rem;color:var(--text-3);margin-top:1px;overflow-wrap:break-word;max-width:100%}
#flowBody .plan-card__features{list-style:none;margin:14px 0 0;padding:14px 0 0;border-top:1px solid var(--border);width:100%;min-width:0;overflow:hidden}
#flowBody .plan-card__features li{font-size:.76rem;color:var(--text-2);line-height:1.5;padding:3px 0 3px 22px;position:relative;overflow-wrap:break-word;word-break:break-word;max-width:100%}
#flowBody .plan-card__features li::before{content:'✓';position:absolute;left:2px;color:var(--primary);font-weight:800;font-size:.72rem}

/* plan step note (e.g. pricing region) */
#flowBody .plan-note{text-align:center;font-size:.78rem;color:var(--text-3);margin:-8px 0 18px}

/* verdict banners inside confirmation steps */
.verdict{display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 16px;border-radius:var(--r-md);font-size:.82rem;font-weight:700;text-align:center;margin-bottom:14px}
.verdict .material-symbols-outlined{font-size:1.3rem;flex-shrink:0}
.verdict--ok{background:rgba(28,122,68,.1);color:var(--green);border:1.5px solid rgba(28,122,68,.32)}
.verdict--bad{background:rgba(226,58,41,.09);color:var(--red);border:1.5px solid rgba(226,58,41,.32)}

@media(max-width:680px){
  #flowBody .plan-cards{grid-template-columns:1fr}
  #flowBody .plan-card{flex-direction:row;align-items:center;gap:14px;padding:16px;flex-wrap:wrap;min-width:0;overflow:hidden}
  #flowBody .plan-card__icon{margin-bottom:0;flex-shrink:0}
  #flowBody .plan-card__body{flex:1;min-width:0;overflow:hidden}
  #flowBody .plan-card__price{margin-top:0;font-size:1.35rem;text-align:right;flex-shrink:0}
  #flowBody .plan-card__features{flex-basis:100%;margin-top:10px;padding-top:10px;min-width:0}
  #flowBody .plan-card.sel::after{top:10px;right:10px}
  #flowBody .plan-card__badge{top:10px;left:10px}
}
/* selected state for country cards reused in the plans flow */
.ga-country.sel{border-color:var(--primary);box-shadow:0 0 0 4px rgba(225,6,0,.16),0 14px 34px rgba(0,0,0,.45)}

/* ── compact page heroes (scan, simulators) — override marketing hero padding ── */
.page .hero{padding:var(--s6) 0 var(--s5);text-align:center}
.page .hero__eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);margin-bottom:8px}
.page .hero__title{font-family:var(--font-display);font-size:1.5rem;font-weight:800;margin:8px 0}
.page .hero__subtitle{max-width:560px;margin:0 auto}
@media(max-width:560px){
  .page .hero{padding:var(--s5) 0 var(--s4)}
  .page .hero__title{font-size:1.3rem}
}
