.bqi-mv {
  --bqi-border: #d8dee8;
  --bqi-bg: #ffffff;
  --bqi-panel: #f5f7fa;
  --bqi-text: #18212f;
  --bqi-muted: #52606d;
  --bqi-accent: #1f5f8b;
  --bqi-focus: #111827;
  color: var(--bqi-text);
  background: var(--bqi-bg);
  border: 1px solid var(--bqi-border);
  border-radius: 18px;
  padding: clamp(16px, 3vw, 28px);
  width: 100%;
  max-width: 1100px;
  margin: 24px auto;
  font-size: 18px;
  line-height: 1.55;
  box-sizing: border-box;
}
.bqi-mv *, .bqi-mv *::before, .bqi-mv *::after { box-sizing: border-box; }
.bqi-mv h2, .bqi-mv h3 { line-height: 1.2; margin-top: 0; }
.bqi-mv h2 { font-size: clamp(28px, 3vw, 42px); margin-bottom: 8px; }
.bqi-mv h3 { font-size: clamp(22px, 2vw, 30px); }
.bqi-mv--viewport {
  /* App shell: independent from the active theme's content width/grid. */
  position: fixed;
  inset: 0;
  z-index: 99990;
  width: 100vw;
  max-width: 100vw;
  height: 100vh;
  min-height: 0;
  margin: 0;
  left: 0;
  right: 0;
  border: 0;
  border-radius: 0;
  padding: clamp(20px, 2.6vw, 48px);
  overflow-x: hidden;
  overflow-y: auto;
  box-shadow: none;
}
body.admin-bar .bqi-mv--viewport {
  top: 32px;
  height: calc(100vh - 32px);
}
.bqi-mv--embedded { max-width: 1100px; }
.bqi-mv__notice { padding: 12px 14px; background: var(--bqi-panel); border-radius: 12px; color: var(--bqi-muted); }
.bqi-mv__toolbar { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 12px; margin: 18px 0; }
.bqi-mv label { display: grid; gap: 6px; font-weight: 700; }
.bqi-mv select, .bqi-mv button { min-height: 48px; font: inherit; border-radius: 12px; border: 1px solid #aab4c3; }
.bqi-mv select { background: #fff; padding: 8px 12px; }
.bqi-mv button { padding: 10px 16px; background: #fff; color: var(--bqi-text); cursor: pointer; font-weight: 700; }
.bqi-mv button:hover { background: #eef3f7; }
.bqi-mv button:focus-visible, .bqi-mv select:focus-visible { outline: 3px solid var(--bqi-focus); outline-offset: 3px; }
.bqi-mv button[disabled] { opacity: .5; cursor: not-allowed; }
.bqi-mv__actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0; }
.bqi-mv__actions .is-primary { background: var(--bqi-accent); color: white; border-color: var(--bqi-accent); }
.bqi-mv__status { display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); gap: 8px; margin: 12px 0; }
.bqi-mv__status > div { background: var(--bqi-panel); border-radius: 10px; padding: 10px 12px; }
.bqi-mv__stage { position: relative; min-height: clamp(520px, 64vh, 860px); background: #f8fafc; border: 1px solid var(--bqi-border); border-radius: 16px; overflow: hidden; display: grid; place-items: center; }
.bqi-mv__stage canvas { display: block; width: 100%; height: clamp(520px, 64vh, 860px); }
.bqi-mv__overlay { position: absolute; inset: 0; display: grid; place-items: center; padding: 20px; text-align: center; }
.bqi-mv__dot { width: clamp(34px, 3vw, 48px); height: clamp(34px, 3vw, 48px); border-radius: 50%; background: #111827; position: absolute; transform: translate(-50%,-50%); }
/* Tracking dots use an even, fixed raster size and GPU translation to stay crisp while moving. */
.bqi-mv__tracking-dot {
  width: 44px;
  height: 44px;
  left: 0;
  top: 0;
  transform: translate3d(0, 0, 0);
  will-change: transform;
  backface-visibility: hidden;
  -webkit-font-smoothing: antialiased;
}
.bqi-mv__focus { width: 86px; height: 86px; border-radius: 50%; border: 4px solid #111827; display: grid; place-items: center; font-weight: 800; }
.bqi-mv__reading-card { width: min(760px, 92%); text-align: left; background: #fff; border: 1px solid var(--bqi-border); border-radius: 14px; padding: 22px; position: relative; }
.bqi-mv__reading-line { height: 8px; background: #111827; opacity: .16; position: absolute; left: 18px; right: 18px; top: 28%; border-radius: 4px; }
.bqi-mv__search-grid { display: grid; grid-template-columns: repeat(5, minmax(48px, 72px)); gap: 12px; }
.bqi-mv__search-cell { width: 100%; aspect-ratio: 1; min-height: 56px !important; font-size: 30px !important; display: grid; place-items: center; }
.bqi-mv__contrast-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px; }
.bqi-mv__contrast-chip { width: 86px; height: 86px; border-radius: 50%; border: 2px solid #8b95a3; display: grid; place-items: center; font-size: 30px; }
.bqi-mv__targets { position: absolute; inset: 0; }
.bqi-mv__target { position: absolute; width: 50px; height: 50px; border-radius: 50%; border: 3px solid #111827; background: #fff; transform: translate(-50%,-50%); display: grid; place-items: center; font-weight: 900; }
.bqi-mv__target.is-active { background: #111827; color: #fff; }
.bqi-mv__progress { height: 10px; background: #e5e9ef; border-radius: 999px; overflow: hidden; }
.bqi-mv__progress > span { display:block; height:100%; width:0; background: #27364a; transition: width .2s linear; }
.bqi-mv__module-list { display:grid; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); gap:12px; margin-top:16px; }
.bqi-mv__module-list button { text-align:left; padding:12px; }
.bqi-mv__module-list button.is-current { border-width: 2px; border-color:#111827; }
.bqi-mv__reduced { font-size: .92em; color: var(--bqi-muted); }
.bqi-mv.is-fullscreen, .bqi-mv:fullscreen { position: fixed; inset: 0; z-index: 999999; width: 100vw; max-width: none; min-height: 100vh; margin: 0; left: 0; border-radius: 0; overflow: auto; background: var(--bqi-bg); padding: clamp(20px, 2.6vw, 48px); }
.bqi-mv:fullscreen .bqi-mv__stage, .bqi-mv.is-fullscreen .bqi-mv__stage { min-height: calc(100vh - 390px); }
@media (min-width: 1100px) {
  .bqi-mv__toolbar { grid-template-columns: 1.1fr repeat(3, minmax(160px, 1fr)) minmax(220px, 1.2fr); }
  .bqi-mv__module-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@supports (height: 100dvh) {
  .bqi-mv--viewport { height: 100dvh; }
  body.admin-bar .bqi-mv--viewport { height: calc(100dvh - 32px); }
  .bqi-mv.is-fullscreen, .bqi-mv:fullscreen { min-height: 100dvh; }
  .bqi-mv:fullscreen .bqi-mv__stage, .bqi-mv.is-fullscreen .bqi-mv__stage { min-height: calc(100dvh - 390px); }
}
@media (max-width: 640px) {
  .bqi-mv { font-size: 17px; border-radius: 12px; }
  .bqi-mv--viewport { padding: 16px; }
  .bqi-mv__stage, .bqi-mv__stage canvas { min-height: 62svh; height: 62svh; }
  .bqi-mv__search-grid { grid-template-columns: repeat(4, minmax(44px, 1fr)); width: 92%; }
}
@media (prefers-reduced-motion: reduce) {
  .bqi-mv *, .bqi-mv *::before, .bqi-mv *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* WordPress admin-bar compatibility for the laboratory page. */
@media (max-width: 782px) {
  body.admin-bar .bqi-mv--viewport {
    top: 46px;
    height: calc(100vh - 46px);
  }
}
@supports (height: 100dvh) {
  @media (max-width: 782px) {
    body.admin-bar .bqi-mv--viewport { height: calc(100dvh - 46px); }
  }
}
body.admin-bar .bqi-mv--viewport:fullscreen,
body.admin-bar .bqi-mv--viewport.is-fullscreen {
  top: 0;
  height: 100vh;
}
@supports (height: 100dvh) {
  body.admin-bar .bqi-mv--viewport:fullscreen,
  body.admin-bar .bqi-mv--viewport.is-fullscreen { height: 100dvh; }
}


/* v0.2.0 — completion pass for all 16 canonical modules */
.bqi-mv__feedback { min-height: 28px; margin: 2px 0 10px; font-weight: 700; color: var(--bqi-muted); }
.bqi-mv__feedback.is-success { color: #17643a; }
.bqi-mv__challenge { width: min(980px, 94%); display: grid; gap: 22px; place-items: center; }
.bqi-mv__stage-caption { margin: 0; color: var(--bqi-muted); font-size: 1rem; text-align: center; }
.bqi-mv__caption-bottom { position: absolute; bottom: 18px; left: 18px; right: 18px; }
.bqi-mv__funnel { position: absolute; inset: 0; display: grid; place-items: center; overflow: hidden; }
.bqi-mv__funnel-ring { position: absolute; border-style: solid; border-color: #27364a; border-radius: 50%; transform: translateZ(0); }
.bqi-mv__focus-wrap { display: grid; place-items: center; gap: 24px; }
.bqi-mv__focus-pulse { transform-origin: center; will-change: transform; }
.bqi-mv__focus-center { width: 16px; height: 16px; background: #111827; border-radius: 50%; display: block; }
.bqi-mv__smooth-dot { width: 44px; height: 44px; left: 0; top: 0; transform: translate3d(0,0,0); will-change: transform; }
.bqi-mv__center-mark { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); color: #8a94a3; font-size: 28px; font-weight: 800; }
.bqi-mv__reading-card { overflow: hidden; }
.bqi-mv__reading-card p { position: relative; z-index: 2; margin: 0; min-height: 3.2em; padding: .6em .4em; display: flex; align-items: center; }
.bqi-mv__reading-highlight { position: absolute; z-index: 1; left: 12px; right: 12px; top: 22px; height: calc((100% - 44px) / 4); border-radius: 10px; background: rgba(31,95,139,.10); transition: transform .5s ease; }
.bqi-mv__search-grid { grid-template-columns: repeat(5, minmax(54px, 78px)); }
.bqi-mv__search-cell.is-miss, .bqi-mv__contrast-chip.is-miss { outline: 3px solid #9aa5b1; outline-offset: 2px; }
.bqi-mv__contrast-chip { background: #111827; color: #fff; opacity: .88; cursor: pointer; }
.bqi-mv__random-target { font-size: 28px; }
.bqi-mv__peripheral-center { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); }
.bqi-mv__peripheral-target { position: absolute; width: 46px; height: 46px; border-radius: 50%; background: #111827; transform: translate(-50%,-50%) scale(.82); opacity: .08; transition: opacity .18s ease, transform .18s ease; }
.bqi-mv__peripheral-target.is-visible { opacity: .86; transform: translate(-50%,-50%) scale(1); }
.bqi-mv__rest-card { width: min(680px, 92%); text-align: center; display: grid; gap: 14px; place-items: center; }
.bqi-mv__blink-icon, .bqi-mv__rest-icon { font-size: clamp(54px, 7vw, 88px); line-height: 1; }
.bqi-mv__rest-card strong { font-size: clamp(24px, 3vw, 36px); }
@media (max-width: 640px) {
  .bqi-mv__search-grid { grid-template-columns: repeat(4, minmax(48px, 1fr)); width: 100%; }
  .bqi-mv__contrast-chip { width: 68px; height: 68px; }
}

/* v0.3.0 — Session Engine */
.bqi-mv__session-summary {
  margin: 4px 0 18px;
  padding: 12px 14px;
  border: 1px solid var(--bqi-border);
  border-radius: 12px;
  background: #fbfcfe;
  color: var(--bqi-muted);
  font-size: .96em;
}
.bqi-mv__progress-group {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
  margin: 10px 0 4px;
}
.bqi-mv__progress-label {
  display: block;
  margin-bottom: 5px;
  color: var(--bqi-muted);
  font-size: .88em;
  font-weight: 700;
}
.bqi-mv__progress--stage > span { background: #5d718a; }
.bqi-mv__completion-card {
  width: min(720px, 92%);
  padding: clamp(24px, 5vw, 48px);
  border: 1px solid var(--bqi-border);
  border-radius: 18px;
  background: #fff;
  text-align: center;
  font-size: clamp(22px, 2.4vw, 34px);
  font-weight: 800;
  line-height: 1.35;
}
@media (max-width: 720px) {
  .bqi-mv__progress-group { grid-template-columns: 1fr; }
}


/* v0.4.0 — Expansion I: modules 17–24 */
.bqi-mv__discrimination-grid,
.bqi-mv__shape-grid {
  width: min(760px, 94%);
  display: grid;
  grid-template-columns: repeat(4, minmax(60px, 1fr));
  gap: clamp(10px, 1.5vw, 18px);
}
.bqi-mv__color-swatch,
.bqi-mv__shape-cell {
  min-height: 72px !important;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
}
.bqi-mv__color-swatch { border: 3px solid rgba(17,24,39,.22) !important; font-size: 30px !important; color: #fff !important; }
.bqi-mv__shape-cell { font-size: clamp(30px, 4vw, 48px) !important; background: #fff !important; }
.bqi-mv__color-swatch.is-miss,
.bqi-mv__shape-cell.is-miss,
.bqi-mv__figure-item.is-miss,
.bqi-mv__difference-cell.is-miss { outline: 3px solid #6b7280; outline-offset: 2px; }
.bqi-mv__color-swatch.is-correct { outline: 4px solid #fff; outline-offset: -8px; }
.bqi-mv__difference-wrap { width: min(920px, 96%); display: grid; grid-template-columns: 1fr 1fr; gap: clamp(14px, 3vw, 34px); }
.bqi-mv__difference-board { display: grid; grid-template-columns: repeat(var(--bqi-diff-size), minmax(46px, 1fr)); gap: 8px; padding: 14px; background: #fff; border: 1px solid var(--bqi-border); border-radius: 14px; }
.bqi-mv__difference-cell { min-height: 54px !important; display: grid; place-items: center; font-size: clamp(24px, 3vw, 36px) !important; border-radius: 10px !important; }
div.bqi-mv__difference-cell { border: 1px solid #d8dee8; background: #f8fafc; }
.bqi-mv__memory-grid { width: min(620px, 92%); display: grid; grid-template-columns: repeat(4, minmax(58px, 1fr)); gap: 14px; }
.bqi-mv__memory-cell { min-height: 76px !important; aspect-ratio: 1; background: #fff !important; font-size: 34px !important; transition: background .15s ease, transform .15s ease; }
.bqi-mv__memory-cell.is-shown { background: #dcecf7 !important; border-color: #1f5f8b !important; }
.bqi-mv__memory-cell.is-found { background: #e8f5ee !important; }
.bqi-mv__sequence-grid { width: min(520px, 92%); display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.bqi-mv__sequence-cell { min-height: 116px !important; font-size: 34px !important; background: #fff !important; transition: background .15s ease, transform .15s ease; }
.bqi-mv__sequence-cell.is-active-sequence { background: #27364a !important; color: #fff !important; transform: scale(1.03); }
.bqi-mv__sequence-cell.is-user { background: #dcecf7 !important; }
.bqi-mv__figure-ground { position: relative; width: min(880px, 94%); min-height: 420px; border: 1px solid var(--bqi-border); border-radius: 16px; background-image: radial-gradient(circle at 20% 30%, rgba(39,54,74,.08) 0 2px, transparent 3px), radial-gradient(circle at 75% 70%, rgba(39,54,74,.07) 0 2px, transparent 3px); background-size: 34px 34px, 41px 41px; overflow: hidden; }
.bqi-mv__figure-item { position: absolute; width: 50px; height: 50px; min-height: 50px !important; padding: 0 !important; border: 0 !important; background: transparent !important; font-size: 34px !important; color: #5d718a !important; }
.bqi-mv__figure-item.is-target { color: #111827 !important; font-size: 38px !important; }
.bqi-mv__coordination-wrap { width: min(920px, 95%); display: grid; gap: 18px; }
.bqi-mv__coordination-field { position: relative; min-height: 430px; border: 1px solid var(--bqi-border); border-radius: 16px; background: #fff; overflow: hidden; }
.bqi-mv__coordination-target { position: absolute; width: 64px; height: 64px; min-height: 64px !important; padding: 0 !important; border-radius: 50% !important; transform: translate(-50%,-50%); background: #27364a !important; color: #fff !important; font-size: 26px !important; }
.bqi-mv__motion-direction { width: min(920px, 95%); display: grid; gap: 20px; place-items: center; }
.bqi-mv__motion-field { position: relative; width: min(760px, 92%); height: 300px; border: 1px solid var(--bqi-border); border-radius: 16px; background: #fff; overflow: hidden; }
.bqi-mv__motion-dot { position: absolute; left: 50%; top: 50%; width: 44px; height: 44px; border-radius: 50%; background: #111827; transform: translate3d(-50%,-50%,0); transition: transform 1.05s ease-in-out; will-change: transform; }
.bqi-mv__direction-choices { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.bqi-mv__direction-btn { min-width: 132px; }
@media (min-width: 900px) {
  .bqi-mv__discrimination-grid { grid-template-columns: repeat(5, minmax(58px, 1fr)); }
  .bqi-mv__shape-grid { grid-template-columns: repeat(6, minmax(58px, 1fr)); }
}
@media (max-width: 720px) {
  .bqi-mv__difference-wrap { grid-template-columns: 1fr; }
  .bqi-mv__difference-board { gap: 5px; padding: 9px; }
  .bqi-mv__difference-cell { min-height: 46px !important; }
  .bqi-mv__figure-ground, .bqi-mv__coordination-field { min-height: 350px; }
  .bqi-mv__motion-field { height: 260px; }
}
@media (prefers-reduced-motion: reduce) {
  .bqi-mv__motion-dot { transition-duration: .001ms !important; }
}


/* v0.5.0 — Adaptive Progression + Dynamic Variation Engine */
.bqi-mv__adaptive-indicator {
  min-height: 48px;
  border: 1px solid var(--bqi-border);
  border-radius: 12px;
  background: #f8fafc;
  padding: 8px 12px;
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 8px;
  align-content: center;
}
.bqi-mv__adaptive-indicator strong { align-self: center; }
.bqi-mv__adaptive-indicator small { grid-column: 2; color: var(--bqi-muted); line-height: 1.25; }
.bqi-mv__adaptive-dot { color: #17643a; font-size: 14px; align-self: center; }
.bqi-mv__visual-target {
  background: transparent !important;
  border-color: transparent !important;
  display: grid !important;
  place-items: center !important;
}
.bqi-mv__visual-glyph {
  display: inline-grid;
  place-items: center;
  min-width: 1em;
  line-height: 1;
  font-size: clamp(28px, 3vw, 42px);
  font-family: system-ui, "Segoe UI Symbol", "Noto Sans Symbols 2", sans-serif;
  font-weight: 800;
  transform-origin: center;
  user-select: none;
}
.bqi-mv__visual-glyph--light { color: #fff !important; text-shadow: 0 1px 2px rgba(0,0,0,.25); }
.bqi-mv__visual-glyph--compound {
  min-width: 1.8em;
  font-size: clamp(24px, 2.6vw, 36px);
  letter-spacing: .04em;
  white-space: nowrap;
}
.bqi-mv__tracking-dot .bqi-mv__visual-glyph,
.bqi-mv__smooth-dot .bqi-mv__visual-glyph,
.bqi-mv__motion-dot .bqi-mv__visual-glyph { font-size: 38px; }
.bqi-mv__focus-glyph { font-size: 36px; }
.bqi-mv__search-cell .bqi-mv__visual-glyph,
.bqi-mv__shape-cell .bqi-mv__visual-glyph,
.bqi-mv__difference-cell .bqi-mv__visual-glyph,
.bqi-mv__memory-cell .bqi-mv__visual-glyph,
.bqi-mv__sequence-cell .bqi-mv__visual-glyph { font-size: clamp(28px, 3.4vw, 46px); }
.bqi-mv__figure-item .bqi-mv__visual-glyph { font-size: 34px; }
.bqi-mv__figure-item.is-target .bqi-mv__visual-glyph { font-size: 40px; }
.bqi-mv__coordination-target .bqi-mv__visual-glyph { font-size: 32px; }
.bqi-mv__peripheral-target .bqi-mv__visual-glyph { font-size: 32px; }
@media (max-width: 720px) {
  .bqi-mv__adaptive-indicator { grid-column: 1 / -1; }
}

/* v0.6.0 — Visual-Cognitive Integration: modules 25–32 */
.bqi-mv__vc-wrap {
  width: min(1040px, 96%);
  display: grid;
  gap: 18px;
  place-items: center;
}
.bqi-mv__vc-motion-field,
.bqi-mv__vc-prediction-field,
.bqi-mv__vc-peripheral-field {
  position: relative;
  width: min(940px, 96%);
  min-height: 390px;
  border: 1px solid var(--bqi-border);
  border-radius: 18px;
  background: #fff;
  overflow: hidden;
}
.bqi-mv__vc-flash,
.bqi-mv__vc-peripheral-flash {
  position: absolute;
  transform: translate(-50%, -50%) scale(.92);
  opacity: 0;
  font-size: clamp(38px, 5vw, 66px);
  transition: opacity .16s ease, transform .16s ease;
  pointer-events: none;
}
.bqi-mv__vc-flash.is-visible,
.bqi-mv__vc-peripheral-flash.is-visible {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
.bqi-mv__vc-choices {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  width: min(760px, 96%);
}
.bqi-mv__vc-choice {
  min-width: 96px;
  min-height: 72px !important;
  display: grid;
  place-items: center;
  font-size: clamp(30px, 4vw, 46px) !important;
  background: #fff !important;
}
.bqi-mv__vc-choice.is-miss,
.bqi-mv__vc-grid-cell.is-miss,
.bqi-mv__vc-spatial-cell.is-miss,
.bqi-mv__vc-scene-cell.is-miss { outline: 3px solid #6b7280; outline-offset: 2px; }
.bqi-mv__vc-memory-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  min-height: 86px;
}
.bqi-mv__vc-memory-card {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  border: 1px solid var(--bqi-border);
  border-radius: 14px;
  background: #fff;
  font-size: 38px;
}
.bqi-mv__vc-grid {
  width: min(920px, 96%);
  display: grid;
  grid-template-columns: repeat(6, minmax(58px, 1fr));
  gap: 10px;
}
.bqi-mv__vc-grid-cell {
  min-height: 66px !important;
  display: grid;
  place-items: center;
  background: #fff !important;
  font-size: clamp(28px, 3vw, 40px) !important;
}
.bqi-mv__vc-grid-cell.is-found,
.bqi-mv__vc-spatial-cell.is-found,
.bqi-mv__vc-scene-cell.is-found { background: #e8f5ee !important; border-color: #2e7d55 !important; }
.bqi-mv__vc-spatial-grid {
  --bqi-vc-grid: 3;
  width: min(620px, 92%);
  display: grid;
  grid-template-columns: repeat(var(--bqi-vc-grid), minmax(62px, 1fr));
  gap: 12px;
}
.bqi-mv__vc-spatial-cell {
  aspect-ratio: 1;
  min-height: 72px !important;
  display: grid;
  place-items: center;
  background: #fff !important;
  font-size: clamp(30px, 4vw, 46px) !important;
}
.bqi-mv__vc-spatial-cell.is-active-sequence {
  background: #27364a !important;
  color: #fff !important;
  transform: scale(1.02);
}
.bqi-mv__vc-spatial-cell.is-user { background: #dcecf7 !important; }
.bqi-mv__vc-color-sample {
  display: inline-block;
  width: 38px;
  height: 28px;
  vertical-align: middle;
  margin-left: 8px;
  border-radius: 7px;
  border: 2px solid rgba(17,24,39,.25);
}
.bqi-mv__vc-prediction-target {
  position: absolute;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  transform: translate(-50%, -50%);
  transition-property: left, top, opacity;
  transition-timing-function: linear;
  will-change: left, top, opacity;
  font-size: 36px;
  z-index: 2;
}
.bqi-mv__vc-prediction-target.is-occluded { opacity: 0; }
.bqi-mv__vc-occluder {
  position: absolute;
  left: 44%;
  top: 16%;
  width: 16%;
  height: 68%;
  border-radius: 16px;
  background: #dfe5ec;
  border: 1px solid #c8d0da;
  z-index: 3;
}
.bqi-mv__vc-center-target {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 2px solid #27364a;
  color: #27364a;
  background: #fff;
  font-size: 28px;
  font-weight: 800;
}
.bqi-mv__vc-scene-grid {
  width: min(760px, 94%);
  display: grid;
  grid-template-columns: repeat(4, minmax(60px, 1fr));
  gap: 10px;
  transition: opacity .16s ease;
}
.bqi-mv__vc-scene-grid.is-blank { opacity: 0; }
.bqi-mv__vc-scene-cell {
  min-height: 82px !important;
  display: grid;
  place-items: center;
  background: #fff !important;
  font-size: clamp(30px, 4vw, 44px) !important;
}
@media (max-width: 760px) {
  .bqi-mv__vc-grid { grid-template-columns: repeat(4, minmax(52px, 1fr)); }
  .bqi-mv__vc-motion-field,
  .bqi-mv__vc-prediction-field,
  .bqi-mv__vc-peripheral-field { min-height: 320px; }
  .bqi-mv__vc-memory-card { width: 66px; height: 66px; }
}

/* v0.6.1 — Visual-Cognitive UX Hotfix */
.bqi-mv__vc-rule-prompt {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  min-height: 48px;
}
.bqi-mv__vc-color-sample--large {
  width: 64px;
  height: 40px;
  margin-left: 0;
  border-width: 3px;
  box-shadow: 0 0 0 3px #fff, 0 0 0 4px rgba(17,24,39,.18);
}
.bqi-mv__vc-prediction-field--enhanced {
  min-height: 430px;
}
.bqi-mv__vc-occluder--wide {
  left: 43%;
  top: 10%;
  width: 18%;
  height: 80%;
  background: linear-gradient(180deg,#eef2f6,#d8e0e8);
}
.bqi-mv__vc-exit-gate {
  position: absolute;
  right: 4%;
  transform: translateY(-50%);
  width: 58px;
  height: 58px;
  min-height: 58px !important;
  border-radius: 50% !important;
  display: grid;
  place-items: center;
  padding: 0 !important;
  background: #fff !important;
  border: 2px solid #8795a8 !important;
  color: #27364a !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  opacity: .78;
  z-index: 4;
}
.bqi-mv__vc-exit-gate:disabled { opacity: .46; }
.bqi-mv__vc-exit-gate:not(:disabled) { cursor: pointer; opacity: 1; }
.bqi-mv__vc-exit-gate.is-found { background: #e8f5ee !important; border-color: #2e7d55 !important; }
.bqi-mv__vc-exit-gate.is-miss { outline: 3px solid #6b7280; outline-offset: 2px; }
.bqi-mv__vc-exit-gate.is-correct-hint { box-shadow: 0 0 0 4px rgba(46,125,85,.24); border-color: #2e7d55 !important; }
.bqi-mv__vc-dual-field { min-height: 430px; }
.bqi-mv__vc-dual-tracker {
  position: absolute;
  left: 24%;
  top: 50%;
  transform: translate(-50%,-50%);
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #1f2d3d;
  color: #fff;
  font-size: 20px;
  transition-property: left;
  transition-timing-function: ease-in-out;
  will-change: left;
  z-index: 2;
}
.bqi-mv__vc-peripheral-flash--dual {
  font-size: clamp(46px, 5vw, 72px);
}
@media (max-width: 760px) {
  .bqi-mv__vc-prediction-field--enhanced,
  .bqi-mv__vc-dual-field { min-height: 360px; }
  .bqi-mv__vc-exit-gate { width: 50px; height: 50px; min-height: 50px !important; right: 2%; }
}

/* v0.8.0 — Senior Comfort + Accessibility + Session UX */
.bqi-mv {
  font-size: 19px;
  line-height: 1.65;
  --bqi-success: #17643a;
  --bqi-danger: #8b2f2f;
}
.bqi-mv p { max-width: 78ch; }
.bqi-mv select,
.bqi-mv button {
  min-height: 56px;
  font-size: 1em;
  border-width: 2px;
}
.bqi-mv select { padding: 10px 14px; }
.bqi-mv button { padding: 12px 18px; }
.bqi-mv button:focus-visible,
.bqi-mv select:focus-visible,
.bqi-mv__stage:focus-visible {
  outline: 4px solid var(--bqi-focus);
  outline-offset: 4px;
}
.bqi-mv__actions {
  gap: 12px;
  margin: 14px 0 10px;
}
.bqi-mv__actions button {
  min-width: 124px;
  font-weight: 800;
}
.bqi-mv__actions .is-primary {
  box-shadow: 0 0 0 1px rgba(0,0,0,.04);
}
.bqi-mv__end-btn {
  color: var(--bqi-danger) !important;
  border-color: #b47c7c !important;
  background: #fff !important;
}
.bqi-mv__end-btn:not(:disabled):hover { background: #fbf2f2 !important; }
.bqi-mv__status > div {
  padding: 13px 15px;
  border: 1px solid #e1e6ed;
}
.bqi-mv__progress { height: 14px; }
.bqi-mv__progress-label { font-size: .95em; }
.bqi-mv__feedback {
  min-height: 34px;
  padding: 2px 0;
  font-size: 1.02em;
}
.bqi-mv__session-help {
  margin: 6px 0 2px;
  color: var(--bqi-muted);
  font-weight: 650;
}

.bqi-mv__comfort-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 14px;
  margin: 12px 0 4px;
  border: 1px solid var(--bqi-border);
  border-radius: 14px;
  background: #fbfcfe;
}
.bqi-mv__comfort-copy {
  display: grid;
  gap: 2px;
  min-width: 220px;
}
.bqi-mv__comfort-copy span {
  color: var(--bqi-muted);
  font-size: .9em;
}
.bqi-mv__comfort-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}
.bqi-mv__comfort-btn {
  min-height: 50px !important;
  padding: 9px 14px !important;
  background: #fff !important;
}
.bqi-mv__comfort-btn.is-active,
.bqi-mv__comfort-btn[aria-pressed="true"] {
  background: #e6f0f7 !important;
  border-color: var(--bqi-accent) !important;
  box-shadow: inset 0 0 0 1px var(--bqi-accent);
}

/* Automatic focus mode while an activity/session is running. */
.bqi-mv.is-session-active .bqi-mv__app-title,
.bqi-mv.is-session-active .bqi-mv__intro,
.bqi-mv.is-session-active .bqi-mv__toolbar,
.bqi-mv.is-session-active .bqi-mv__session-summary,
.bqi-mv.is-session-active .bqi-mv__catalog-section {
  display: none;
}
.bqi-mv.is-session-active .bqi-mv__comfort-panel {
  margin-top: 0;
  padding: 9px 12px;
}
.bqi-mv.is-session-active .bqi-mv__comfort-copy span { display: none; }
.bqi-mv.is-paused .bqi-mv__stage {
  box-shadow: inset 0 0 0 4px rgba(31,95,139,.12);
}

/* Larger interaction targets across the activity library. */
.bqi-mv__search-cell,
.bqi-mv__vc-grid-cell,
.bqi-mv__vc-spatial-cell,
.bqi-mv__difference-cell,
.bqi-mv__shape-cell,
.bqi-mv__color-swatch {
  min-height: 68px !important;
}
.bqi-mv__target { width: 58px; height: 58px; }
.bqi-mv__coordination-target { width: 72px; height: 72px; min-height: 72px !important; }
.bqi-mv__figure-item { width: 58px; height: 58px; min-height: 58px !important; }
.bqi-mv__vc-choice { min-height: 78px !important; min-width: 106px; }
.bqi-mv__vc-exit-gate { width: 64px; height: 64px; min-height: 64px !important; }
.bqi-mv__memory-cell { min-height: 84px !important; }
.bqi-mv__sequence-cell { min-height: 124px !important; }
.bqi-mv__direction-btn { min-width: 150px; }

/* Optional user comfort preferences, kept locally in the browser. */
.bqi-mv.is-large-text {
  font-size: 22px;
  line-height: 1.72;
}
.bqi-mv.is-large-text select,
.bqi-mv.is-large-text button { min-height: 60px; }
.bqi-mv.is-large-text .bqi-mv__actions button { min-width: 138px; }
.bqi-mv.is-high-contrast {
  --bqi-border: #5f6772;
  --bqi-panel: #f0f2f4;
  --bqi-text: #000000;
  --bqi-muted: #27313c;
  --bqi-accent: #005b8f;
  --bqi-focus: #000000;
}
.bqi-mv.is-high-contrast .bqi-mv__stage,
.bqi-mv.is-high-contrast .bqi-mv__status > div,
.bqi-mv.is-high-contrast .bqi-mv__session-summary,
.bqi-mv.is-high-contrast .bqi-mv__comfort-panel {
  border-width: 2px;
}
.bqi-mv.is-high-contrast .bqi-mv__progress { background: #c7ccd2; }
.bqi-mv.is-high-contrast .bqi-mv__progress > span { background: #000; }

.bqi-mv.is-manual-reduced-motion *,
.bqi-mv.is-manual-reduced-motion *::before,
.bqi-mv.is-manual-reduced-motion *::after {
  animation-duration: .001ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: .001ms !important;
  scroll-behavior: auto !important;
}

.bqi-mv__completion-card {
  display: grid;
  gap: 12px;
  place-items: center;
}
.bqi-mv__completion-card strong {
  font-size: 1.15em;
}
.bqi-mv__completion-card span {
  font-size: .78em;
  font-weight: 650;
  max-width: 42ch;
}
.bqi-mv__completion-card small {
  font-size: .58em;
  font-weight: 500;
  color: var(--bqi-muted);
  max-width: 52ch;
}

@media (max-width: 820px) {
  .bqi-mv { font-size: 18px; }
  .bqi-mv__comfort-panel { align-items: stretch; flex-direction: column; }
  .bqi-mv__comfort-actions { justify-content: stretch; }
  .bqi-mv__comfort-actions button { flex: 1 1 180px; }
  .bqi-mv__actions button { flex: 1 1 140px; }
}
@media (max-width: 640px) {
  .bqi-mv { font-size: 18px; }
  .bqi-mv--viewport { padding: 14px; }
  .bqi-mv__status { grid-template-columns: 1fr 1fr; }
  .bqi-mv__stage, .bqi-mv__stage canvas { min-height: 58svh; height: 58svh; }
  .bqi-mv__comfort-copy span { font-size: .92em; }
}


/* v0.8.1 — Focused Senior App Shell + Responsive Layout Recovery */
.bqi-mv {
  --bqi-control-gap: 12px;
}
.bqi-mv__app-title { margin-bottom: 4px !important; }
.bqi-mv__intro {
  margin: 0 0 10px;
  max-width: 62ch !important;
  color: var(--bqi-muted);
}
.bqi-mv__internal-mode,
.bqi-mv__internal-catalog,
.bqi-mv__catalog-section,
.bqi-mv__adaptive-indicator { display: none !important; }

/* Theme-proof setup: one row for the mode switch and one responsive row for context controls. */
@media (min-width: 1100px) {
  .bqi-mv__toolbar { grid-template-columns: minmax(0, 1fr) !important; }
}
.bqi-mv__toolbar {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: var(--bqi-control-gap) !important;
  margin: 12px 0 !important;
  width: 100%;
  min-width: 0;
}
.bqi-mv__mode-switch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  width: min(620px, 100%);
}
.bqi-mv__mode-btn {
  width: 100%;
  min-width: 0 !important;
  white-space: normal;
}
.bqi-mv__mode-btn.is-active,
.bqi-mv__mode-btn[aria-pressed="true"] {
  background: #e6f0f7 !important;
  border-color: var(--bqi-accent) !important;
  box-shadow: inset 0 0 0 1px var(--bqi-accent);
}
.bqi-mv__config-row {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(160px, 1fr);
  gap: var(--bqi-control-gap);
  width: min(980px, 100%);
  min-width: 0;
}
.bqi-mv__control { min-width: 0; }
.bqi-mv__control[hidden] { display: none !important; }
.bqi-mv__control select {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bqi-mv__session-summary {
  width: fit-content;
  max-width: 100%;
  margin: 2px 0 14px !important;
  padding: 7px 11px !important;
  font-size: .9em !important;
  line-height: 1.3;
}

/* Comfort options stay available without occupying a permanent toolbar row. */
.bqi-mv__comfort-panel {
  display: block !important;
  width: fit-content;
  max-width: 100%;
  margin: 8px 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.bqi-mv__comfort-summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 8px 13px;
  border: 2px solid #aab4c3;
  border-radius: 12px;
  background: #fff;
  font-weight: 800;
}
.bqi-mv__comfort-summary::-webkit-details-marker { display: none; }
.bqi-mv__comfort-summary::before { content: '⚙ '; }
.bqi-mv__comfort-panel[open] .bqi-mv__comfort-summary { border-color: var(--bqi-accent); }
.bqi-mv__comfort-body {
  margin-top: 8px;
  padding: 10px;
  border: 1px solid var(--bqi-border);
  border-radius: 12px;
  background: #fbfcfe;
  display: grid;
  gap: 8px;
  width: min(760px, calc(100vw - 40px));
}
.bqi-mv__comfort-actions {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.bqi-mv__comfort-actions button { min-width: 0 !important; width: 100%; }
.bqi-mv__comfort-body small { color: var(--bqi-muted); }

/* Compact status hierarchy. */
.bqi-mv__status--compact {
  display: grid !important;
  grid-template-columns: minmax(0, 1.5fr) minmax(180px, .8fr) !important;
  gap: 10px !important;
  margin: 8px 0 !important;
}
.bqi-mv__status--compact > div {
  min-width: 0;
  padding: 9px 12px !important;
}
.bqi-mv__progress-group--compact {
  gap: 10px;
  margin: 8px 0 10px !important;
}
.bqi-mv__stage-progress-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}
.bqi-mv__stage-time { color: var(--bqi-muted); font-size: .86em; white-space: nowrap; }
.bqi-mv__run-status {
  min-height: 0;
  margin: 4px 0 0;
  color: var(--bqi-muted);
  font-weight: 800;
}
.bqi-mv__run-status:empty { display: none; }
.bqi-mv.is-session-active .bqi-mv__run-status { color: var(--bqi-success); }
.bqi-mv.is-paused .bqi-mv__run-status { color: var(--bqi-accent); }

/* Action bar cannot overlap: each control owns a grid cell and wraps normally. */
.bqi-mv__actions {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  gap: 10px !important;
  width: 100%;
  align-items: stretch;
}
.bqi-mv__actions button {
  width: 100%;
  min-width: 0 !important;
  max-width: 100%;
  white-space: normal;
  line-height: 1.2;
}
.bqi-mv:not(.is-session-active) .bqi-mv__running-only { display: none !important; }
.bqi-mv.is-session-active .bqi-mv__start-btn { display: none !important; }

/* Focus mode removes configuration but keeps compact comfort access. */
.bqi-mv.is-session-active .bqi-mv__app-title,
.bqi-mv.is-session-active .bqi-mv__intro,
.bqi-mv.is-session-active .bqi-mv__toolbar,
.bqi-mv.is-session-active .bqi-mv__session-summary {
  display: none !important;
}
.bqi-mv.is-session-active .bqi-mv__comfort-panel { margin-top: 0 !important; }

/* Internal activity geometry: prevent clickable Figure/Fundo symbols from stacking. */
.bqi-mv__figure-ground { min-height: 460px; }
.bqi-mv__figure-item { z-index: 1; }
.bqi-mv__figure-item:focus-visible,
.bqi-mv__figure-item:hover { z-index: 3; }

/* Minimal safety disclosure, closed by default. */
.bqi-mv__safety-details {
  margin: 12px 0 0;
  color: var(--bqi-muted);
  font-size: .86em;
}
.bqi-mv__safety-details summary { cursor: pointer; font-weight: 700; width: fit-content; }
.bqi-mv__safety-details p { margin: 6px 0 0; max-width: 70ch; }
.bqi-mv__sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Guard against active-theme width/min-width rules. */
.bqi-mv__setup *,
.bqi-mv__actions * { box-sizing: border-box; }
.bqi-mv__setup > *,
.bqi-mv__config-row > *,
.bqi-mv__status--compact > * { min-width: 0 !important; }

@media (max-width: 820px) {
  .bqi-mv__config-row { grid-template-columns: minmax(0, 1fr); width: 100%; }
  .bqi-mv__status--compact { grid-template-columns: minmax(0, 1fr) !important; }
  .bqi-mv__comfort-actions { grid-template-columns: minmax(0, 1fr); }
  .bqi-mv__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .bqi-mv__mode-switch { grid-template-columns: minmax(0, 1fr); width: 100%; }
  .bqi-mv__actions { grid-template-columns: minmax(0, 1fr); }
  .bqi-mv__comfort-panel,
  .bqi-mv__comfort-summary { width: 100%; }
  .bqi-mv__comfort-summary { justify-content: center; }
  .bqi-mv__session-summary { width: 100%; }
  .bqi-mv__stage-progress-head { align-items: flex-start; flex-direction: column; gap: 0; }
}

/* v0.9.0 — BQIW.5.9 Local Progress + Resume + Daily Continuity */
.bqi-mv__resume-panel {
  display: grid;
  gap: 8px;
  width: min(820px, 100%);
  margin: 10px 0 12px;
  padding: 14px;
  border: 2px solid var(--bqi-accent);
  border-radius: 14px;
  background: #f7fbfe;
}
.bqi-mv__resume-panel[hidden] { display: none !important; }
.bqi-mv__resume-panel > strong { font-size: 1.06em; }
.bqi-mv__resume-summary { color: var(--bqi-muted); font-weight: 700; }
.bqi-mv__resume-panel small { color: var(--bqi-muted); }
.bqi-mv__resume-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 4px;
}
.bqi-mv__resume-actions button { width: 100%; min-width: 0 !important; }
.bqi-mv__resume-actions .is-primary {
  background: var(--bqi-accent);
  border-color: var(--bqi-accent);
  color: #fff;
}
.bqi-mv.is-session-active .bqi-mv__resume-panel { display: none !important; }
.bqi-mv.is-high-contrast .bqi-mv__resume-panel { border-width: 3px; background: var(--bqi-bg); }

.bqi-mv__local-data-box {
  display: grid;
  gap: 8px;
  width: min(720px, 100%);
  margin-top: 10px;
  padding: 10px 0 2px;
}
.bqi-mv__local-data-box small { color: var(--bqi-muted); }
.bqi-mv__clear-local-btn {
  width: fit-content;
  max-width: 100%;
  min-height: 48px !important;
  color: var(--bqi-danger) !important;
  border-color: #b47c7c !important;
  background: #fff !important;
}
.bqi-mv__clear-local-btn:hover { background: #fbf2f2 !important; }

@media (max-width: 520px) {
  .bqi-mv__resume-actions { grid-template-columns: minmax(0, 1fr); }
  .bqi-mv__clear-local-btn { width: 100%; }
}


/* v0.10.0 — BQIW.5.10 Audio & Guidance */
.bqi-mv__audio-panel {
  display: block !important;
  width: fit-content;
  max-width: 100%;
  margin: 8px 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.bqi-mv__audio-summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 8px 13px;
  border: 2px solid #aab4c3;
  border-radius: 12px;
  background: #fff;
  font-weight: 800;
}
.bqi-mv__audio-summary::-webkit-details-marker { display: none; }
.bqi-mv__audio-summary::before { content: '🔊 '; }
.bqi-mv__audio-panel[open] .bqi-mv__audio-summary { border-color: var(--bqi-accent); }
.bqi-mv__audio-body {
  margin-top: 8px;
  padding: 10px;
  border: 1px solid var(--bqi-border);
  border-radius: 12px;
  background: #fbfcfe;
  display: grid;
  gap: 8px;
  width: min(760px, calc(100vw - 40px));
}
.bqi-mv__audio-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.bqi-mv__audio-actions button { min-width: 0 !important; width: 100%; }
.bqi-mv__audio-btn.is-active,
.bqi-mv__audio-btn[aria-pressed="true"] { border-color: var(--bqi-accent); background: #eaf3f9; }
.bqi-mv__audio-body small { color: var(--bqi-muted); }
.bqi-mv.is-session-active .bqi-mv__audio-panel { margin-top: 0 !important; }
.bqi-mv.is-high-contrast .bqi-mv__audio-body { background: var(--bqi-bg); border-width: 2px; }
@media (max-width: 820px) {
  .bqi-mv__audio-actions { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
  .bqi-mv__audio-panel,
  .bqi-mv__audio-summary { width: 100%; }
  .bqi-mv__audio-summary { justify-content: center; }
}

/* v0.10.1 — Natural Voice Selection + Audio UX Clarity */
.bqi-mv__voice-field {
  display: grid;
  gap: 6px;
  font-weight: 700;
}
.bqi-mv__voice-field > span { font-size: 0.95em; }
.bqi-mv__voice-select {
  width: 100%;
  min-height: 46px;
  padding: 8px 10px;
  border: 2px solid #aab4c3;
  border-radius: 10px;
  background: #fff;
  color: var(--bqi-text);
  font: inherit;
}
.bqi-mv__voice-select:focus-visible {
  outline: 3px solid var(--bqi-accent);
  outline-offset: 2px;
}
.bqi-mv__voice-status { display: block; }
.bqi-mv.is-high-contrast .bqi-mv__voice-select {
  background: var(--bqi-bg);
  color: var(--bqi-text);
  border-width: 2px;
}


/* v0.11.0 — BQIW.5.11 Session Polish */
.bqi-mv__pause-card {
  width: min(680px, 92%);
  min-height: 220px;
  padding: clamp(24px, 5vw, 48px);
  border: 2px solid var(--bqi-accent);
  border-radius: 18px;
  background: #fff;
  display: grid;
  gap: 10px;
  place-items: center;
  align-content: center;
  text-align: center;
  box-shadow: 0 12px 32px rgba(17, 24, 39, .08);
}
.bqi-mv__pause-card strong {
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.2;
}
.bqi-mv__pause-card span {
  font-weight: 800;
  color: var(--bqi-text);
}
.bqi-mv__pause-card small {
  max-width: 46ch;
  color: var(--bqi-muted);
  font-size: .92em;
}
.bqi-mv__end-btn.is-confirming {
  color: #fff !important;
  background: var(--bqi-danger) !important;
  border-color: var(--bqi-danger) !important;
}
.bqi-mv__completion-card--polished {
  gap: 16px;
}
.bqi-mv__completion-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  width: 100%;
}
.bqi-mv__completion-meta span {
  width: auto;
  max-width: 100%;
  padding: 6px 10px;
  border: 1px solid var(--bqi-border);
  border-radius: 999px;
  background: #f8fafc;
  color: var(--bqi-text);
  font-size: .62em;
  font-weight: 800;
}
.bqi-mv.is-high-contrast .bqi-mv__pause-card,
.bqi-mv.is-high-contrast .bqi-mv__completion-meta span {
  border-width: 3px;
  background: var(--bqi-bg);
}
@media (max-width: 520px) {
  .bqi-mv__pause-card { min-height: 190px; padding: 22px 16px; }
  .bqi-mv__completion-meta { display: grid; grid-template-columns: 1fr; }
  .bqi-mv__completion-meta span { border-radius: 12px; text-align: center; }
}

/* v0.13.1 — HOTFIX BQIW.5.13.1 Mobile Exercise-First Layout Recovery
   Mobile principle: the exercise owns the screen; controls get out of the way. */

/* Compact setup on phones: accessibility stays available without becoming a wall of controls. */
@media (max-width: 640px) {
  .bqi-mv--viewport {
    padding: 8px 10px 12px !important;
    overscroll-behavior: contain;
  }
  .bqi-mv__app-title { font-size: clamp(24px, 7vw, 30px) !important; margin: 0 0 2px !important; }
  .bqi-mv__intro { font-size: .88em; line-height: 1.35; margin-bottom: 6px !important; }

  .bqi-mv:not(.is-session-active) .bqi-mv__comfort-panel,
  .bqi-mv:not(.is-session-active) .bqi-mv__audio-panel {
    display: inline-block !important;
    width: calc(50% - 8px) !important;
    max-width: none !important;
    margin: 4px 2px !important;
    vertical-align: top;
  }
  .bqi-mv:not(.is-session-active) .bqi-mv__comfort-summary,
  .bqi-mv:not(.is-session-active) .bqi-mv__audio-summary {
    width: 100% !important;
    min-height: 44px !important;
    justify-content: center;
    padding: 6px 8px !important;
    font-size: .88em;
  }

  .bqi-mv__toolbar { gap: 7px !important; margin: 6px 0 !important; }
  .bqi-mv__mode-switch { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 6px; }
  .bqi-mv__mode-btn { min-height: 48px !important; padding: 7px 8px !important; font-size: .92em; line-height: 1.15; }
  .bqi-mv__config-row { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 7px !important; }
  .bqi-mv__control label, .bqi-mv__control { font-size: .9em; }
  .bqi-mv__control select { min-height: 48px !important; padding: 6px 8px !important; }
  .bqi-mv__session-summary { display: none !important; }

  /* Before a run, only Start + Fullscreen need permanent space. Restart is redundant here. */
  .bqi-mv:not(.is-session-active) .bqi-mv__actions {
    grid-template-columns: minmax(0, 1.45fr) minmax(0, .9fr) !important;
    gap: 7px !important;
    margin: 7px 0 !important;
  }
  .bqi-mv:not(.is-session-active) .bqi-mv__reset-btn { display: none !important; }
  .bqi-mv:not(.is-session-active) .bqi-mv__actions button { min-height: 48px !important; padding: 7px 8px !important; }

  /* Preview/status should not push the exercise below the fold before start. */
  .bqi-mv:not(.is-session-active) .bqi-mv__status--compact,
  .bqi-mv:not(.is-session-active) .bqi-mv__progress-group--compact,
  .bqi-mv:not(.is-session-active) .bqi-mv__run-status { display: none !important; }
  .bqi-mv:not(.is-session-active) .bqi-mv__current-title { margin: 7px 0 2px !important; font-size: 1.08em !important; }
  .bqi-mv:not(.is-session-active) .bqi-mv__current-desc { margin: 0 0 5px !important; font-size: .86em; line-height: 1.3; }
  .bqi-mv:not(.is-session-active) .bqi-mv__stage,
  .bqi-mv:not(.is-session-active) .bqi-mv__stage canvas {
    min-height: 46svh !important;
    height: 46svh !important;
  }

  /* Running in portrait: fixed bottom controls + flexible exercise canvas. */
  .bqi-mv--viewport.is-session-active {
    display: grid !important;
    grid-template-columns: minmax(0,1fr);
    grid-auto-rows: max-content;
    align-content: stretch;
    gap: 4px;
    overflow: hidden !important;
    padding: 6px 6px calc(66px + env(safe-area-inset-bottom, 0px)) !important;
  }
  .bqi-mv.is-session-active .bqi-mv__comfort-panel,
  .bqi-mv.is-session-active .bqi-mv__audio-panel,
  .bqi-mv.is-session-active .bqi-mv__safety-details,
  .bqi-mv.is-session-active .bqi-mv__current-desc,
  .bqi-mv.is-session-active .bqi-mv__run-status { display: none !important; }

  .bqi-mv.is-session-active .bqi-mv__current-title {
    font-size: 1.02em !important;
    line-height: 1.15;
    margin: 0 2px !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .bqi-mv.is-session-active .bqi-mv__status--compact {
    grid-template-columns: 1fr 1fr !important;
    gap: 4px !important;
    margin: 0 !important;
    font-size: .78em;
  }
  .bqi-mv.is-session-active .bqi-mv__status--compact > div {
    padding: 3px 6px !important;
    border-radius: 7px;
  }
  .bqi-mv.is-session-active .bqi-mv__progress-group--compact {
    grid-template-columns: 1fr 1fr !important;
    gap: 5px !important;
    margin: 0 !important;
  }
  .bqi-mv.is-session-active .bqi-mv__progress-label,
  .bqi-mv.is-session-active .bqi-mv__stage-time { display: none !important; }
  .bqi-mv.is-session-active .bqi-mv__progress { height: 6px !important; }
  .bqi-mv.is-session-active .bqi-mv__feedback {
    min-height: 0 !important;
    margin: 0 2px !important;
    padding: 0 !important;
    font-size: .82em;
    line-height: 1.2;
    max-height: 2.4em;
    overflow: hidden;
  }

  .bqi-mv--viewport.is-session-active .bqi-mv__stage {
    min-height: 0 !important;
    height: auto !important;
    align-self: stretch;
    border-radius: 10px;
  }
  .bqi-mv--viewport.is-session-active .bqi-mv__stage canvas {
    min-height: 0 !important;
    height: 100% !important;
  }
  .bqi-mv--viewport.is-session-active .bqi-mv__stage {
    grid-row: span 1;
  }
  /* Let the final visible child (stage) consume the remaining grid height. */
  .bqi-mv--viewport.is-session-active { grid-template-rows: auto auto auto auto minmax(0,1fr); }

  .bqi-mv.is-session-active .bqi-mv__actions {
    position: fixed !important;
    z-index: 100050;
    left: 6px;
    right: 6px;
    bottom: max(6px, env(safe-area-inset-bottom, 0px));
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 5px !important;
    border: 1px solid rgba(170,180,195,.9);
    border-radius: 13px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 -3px 14px rgba(17,24,39,.10);
    backdrop-filter: blur(8px);
  }
  .bqi-mv.is-session-active .bqi-mv__actions button {
    flex: 1 1 0 !important;
    min-height: 46px !important;
    padding: 6px 5px !important;
    font-size: .86em !important;
    line-height: 1.05;
  }
  .bqi-mv.is-session-active .bqi-mv__reset-btn,
  .bqi-mv.is-session-active .bqi-mv__fullscreen-btn { display: none !important; }
  .bqi-mv.is-session-active .bqi-mv__end-btn { color: #7a2525 !important; }
}

/* Short-height landscape phones: almost the whole screen belongs to the exercise. */
@media (orientation: landscape) and (max-height: 600px) and (max-width: 1000px) {
  .bqi-mv--viewport {
    padding: 4px 5px 6px !important;
  }
  .bqi-mv--viewport.is-session-active {
    display: block !important;
    overflow: hidden !important;
    padding: 4px 5px calc(58px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .bqi-mv.is-session-active .bqi-mv__current-title,
  .bqi-mv.is-session-active .bqi-mv__current-desc,
  .bqi-mv.is-session-active .bqi-mv__status--compact,
  .bqi-mv.is-session-active .bqi-mv__progress-group--compact,
  .bqi-mv.is-session-active .bqi-mv__run-status,
  .bqi-mv.is-session-active .bqi-mv__comfort-panel,
  .bqi-mv.is-session-active .bqi-mv__audio-panel,
  .bqi-mv.is-session-active .bqi-mv__safety-details { display: none !important; }

  .bqi-mv.is-session-active .bqi-mv__feedback {
    position: absolute;
    z-index: 20;
    top: 7px;
    left: 50%;
    transform: translateX(-50%);
    width: fit-content;
    max-width: 72vw;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 3px 8px !important;
    border-radius: 999px;
    background: rgba(255,255,255,.88);
    font-size: 12px;
    line-height: 1.15;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: none;
  }

  .bqi-mv--viewport.is-session-active .bqi-mv__stage,
  .bqi-mv--viewport.is-session-active .bqi-mv__stage canvas {
    width: 100% !important;
    min-height: 0 !important;
    height: calc(100dvh - 68px - env(safe-area-inset-bottom, 0px)) !important;
    max-height: calc(100dvh - 68px - env(safe-area-inset-bottom, 0px)) !important;
    border-radius: 9px;
  }

  .bqi-mv.is-session-active .bqi-mv__actions {
    left: 5px;
    right: 5px;
    bottom: max(4px, env(safe-area-inset-bottom, 0px));
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 5px !important;
    padding: 4px !important;
  }
  .bqi-mv.is-session-active .bqi-mv__actions button {
    min-height: 44px !important;
    padding: 4px 5px !important;
    font-size: 13px !important;
    line-height: 1;
  }
  .bqi-mv.is-session-active .bqi-mv__reset-btn { display: none !important; }
  .bqi-mv.is-session-active .bqi-mv__fullscreen-btn { display: block !important; }

  /* Recover modules that previously enforced desktop-like vertical geometry. */
  .bqi-mv.is-session-active .bqi-mv__figure-ground,
  .bqi-mv.is-session-active .bqi-mv__coordination-field,
  .bqi-mv.is-session-active .bqi-mv__vc-motion-field,
  .bqi-mv.is-session-active .bqi-mv__vc-prediction-field,
  .bqi-mv.is-session-active .bqi-mv__vc-prediction-field--enhanced,
  .bqi-mv.is-session-active .bqi-mv__vc-peripheral-field,
  .bqi-mv.is-session-active .bqi-mv__vc-dual-field {
    min-height: 0 !important;
    height: calc(100dvh - 92px - env(safe-area-inset-bottom, 0px)) !important;
    max-height: calc(100dvh - 92px - env(safe-area-inset-bottom, 0px)) !important;
  }
  .bqi-mv.is-session-active .bqi-mv__motion-field {
    height: min(62dvh, 250px) !important;
    min-height: 0 !important;
  }
  .bqi-mv.is-session-active .bqi-mv__challenge,
  .bqi-mv.is-session-active .bqi-mv__vc-wrap,
  .bqi-mv.is-session-active .bqi-mv__coordination-wrap,
  .bqi-mv.is-session-active .bqi-mv__motion-direction {
    max-height: 100%;
    gap: 8px !important;
  }
  .bqi-mv.is-session-active .bqi-mv__stage-caption { font-size: 12px; line-height: 1.15; }
  .bqi-mv.is-session-active .bqi-mv__search-grid,
  .bqi-mv.is-session-active .bqi-mv__vc-grid,
  .bqi-mv.is-session-active .bqi-mv__shape-grid,
  .bqi-mv.is-session-active .bqi-mv__discrimination-grid { gap: 6px !important; }
  .bqi-mv.is-session-active .bqi-mv__search-cell,
  .bqi-mv.is-session-active .bqi-mv__vc-grid-cell,
  .bqi-mv.is-session-active .bqi-mv__shape-cell,
  .bqi-mv.is-session-active .bqi-mv__color-swatch,
  .bqi-mv.is-session-active .bqi-mv__difference-cell {
    min-height: 46px !important;
  }
  .bqi-mv.is-session-active .bqi-mv__memory-cell { min-height: 58px !important; }
  .bqi-mv.is-session-active .bqi-mv__sequence-cell { min-height: 70px !important; }
}

/* Fallback for browsers without dynamic viewport units. */
@supports not (height: 100dvh) {
  @media (orientation: landscape) and (max-height: 600px) and (max-width: 1000px) {
    .bqi-mv--viewport.is-session-active .bqi-mv__stage,
    .bqi-mv--viewport.is-session-active .bqi-mv__stage canvas {
      height: calc(100vh - 68px) !important;
      max-height: calc(100vh - 68px) !important;
    }
    .bqi-mv.is-session-active .bqi-mv__figure-ground,
    .bqi-mv.is-session-active .bqi-mv__coordination-field,
    .bqi-mv.is-session-active .bqi-mv__vc-motion-field,
    .bqi-mv.is-session-active .bqi-mv__vc-prediction-field,
    .bqi-mv.is-session-active .bqi-mv__vc-prediction-field--enhanced,
    .bqi-mv.is-session-active .bqi-mv__vc-peripheral-field,
    .bqi-mv.is-session-active .bqi-mv__vc-dual-field {
      height: calc(100vh - 92px) !important;
      max-height: calc(100vh - 92px) !important;
    }
  }
}

/* Opened compact panels reclaim full width so their contents never clip on narrow screens. */
@media (max-width: 640px) {
  .bqi-mv:not(.is-session-active) .bqi-mv__comfort-panel[open],
  .bqi-mv:not(.is-session-active) .bqi-mv__audio-panel[open] {
    display: block !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .bqi-mv__comfort-body,
  .bqi-mv__audio-body { width: 100% !important; max-width: 100% !important; }
}

/* Landscape setup is a launcher, not a preview wall. Start first; exercise gets the viewport next. */
@media (orientation: landscape) and (max-height: 600px) and (max-width: 1000px) {
  .bqi-mv:not(.is-session-active) .bqi-mv__app-title { font-size: 22px !important; margin: 0 0 2px !important; }
  .bqi-mv:not(.is-session-active) .bqi-mv__intro { display: none !important; }
  .bqi-mv:not(.is-session-active) .bqi-mv__comfort-panel,
  .bqi-mv:not(.is-session-active) .bqi-mv__audio-panel {
    display: inline-block !important;
    width: calc(50% - 8px) !important;
    max-width: none !important;
    margin: 2px !important;
    vertical-align: top;
  }
  .bqi-mv:not(.is-session-active) .bqi-mv__comfort-summary,
  .bqi-mv:not(.is-session-active) .bqi-mv__audio-summary {
    width: 100% !important;
    min-height: 40px !important;
    justify-content: center;
    padding: 4px 8px !important;
    font-size: 14px;
  }
  .bqi-mv:not(.is-session-active) .bqi-mv__toolbar { margin: 4px 0 !important; gap: 5px !important; }
  .bqi-mv:not(.is-session-active) .bqi-mv__mode-switch { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 5px; }
  .bqi-mv:not(.is-session-active) .bqi-mv__mode-btn,
  .bqi-mv:not(.is-session-active) .bqi-mv__control select { min-height: 40px !important; padding: 4px 7px !important; font-size: 14px; }
  .bqi-mv:not(.is-session-active) .bqi-mv__config-row { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 5px !important; }
  .bqi-mv:not(.is-session-active) .bqi-mv__session-summary,
  .bqi-mv:not(.is-session-active) .bqi-mv__current-title,
  .bqi-mv:not(.is-session-active) .bqi-mv__current-desc,
  .bqi-mv:not(.is-session-active) .bqi-mv__status--compact,
  .bqi-mv:not(.is-session-active) .bqi-mv__progress-group--compact,
  .bqi-mv:not(.is-session-active) .bqi-mv__run-status,
  .bqi-mv:not(.is-session-active) .bqi-mv__feedback,
  .bqi-mv:not(.is-session-active) .bqi-mv__stage,
  .bqi-mv:not(.is-session-active) .bqi-mv__safety-details { display: none !important; }
  .bqi-mv:not(.is-session-active) .bqi-mv__actions {
    grid-template-columns: minmax(0,1.4fr) minmax(0,.8fr) !important;
    gap: 5px !important;
    margin: 4px 0 !important;
  }
  .bqi-mv:not(.is-session-active) .bqi-mv__reset-btn { display: none !important; }
  .bqi-mv:not(.is-session-active) .bqi-mv__actions button { min-height: 40px !important; padding: 4px 7px !important; font-size: 14px; }
}

/* Logged-in WordPress admin bar should not steal exercise height in mobile landscape. */
@media (orientation: landscape) and (max-height: 600px) and (max-width: 1000px) {
  body.admin-bar .bqi-mv--viewport.is-session-active .bqi-mv__stage,
  body.admin-bar .bqi-mv--viewport.is-session-active .bqi-mv__stage canvas {
    height: calc(100dvh - 114px - env(safe-area-inset-bottom, 0px)) !important;
    max-height: calc(100dvh - 114px - env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* v0.13.2 — HOTFIX BQIW.5.13.2 Mobile Visibility + Density + Scroll + True Fullscreen
   Mobile accessibility principle: objects stay large/high-contrast; dense activities scroll instead of shrinking. */

/* Larger visual objects everywhere, with an extra mobile boost. */
.bqi-mv__visual-glyph { font-size: clamp(34px, 3.6vw, 52px); }
.bqi-mv__visual-glyph--compound { font-size: clamp(30px, 3.2vw, 46px); }
.bqi-mv__tracking-dot .bqi-mv__visual-glyph,
.bqi-mv__smooth-dot .bqi-mv__visual-glyph,
.bqi-mv__motion-dot .bqi-mv__visual-glyph { font-size: 44px; }
.bqi-mv__focus-glyph { font-size: 42px; }
.bqi-mv__figure-item .bqi-mv__visual-glyph { font-size: 40px; }
.bqi-mv__figure-item.is-target .bqi-mv__visual-glyph { font-size: 46px; }
.bqi-mv__coordination-target .bqi-mv__visual-glyph,
.bqi-mv__peripheral-target .bqi-mv__visual-glyph { font-size: 38px; }

@media (max-width: 640px) {
  /* Never shrink dense exercises to fit a phone. Let the stage scroll instead. */
  .bqi-mv--viewport.is-session-active .bqi-mv__stage {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-y pinch-zoom;
    place-items: start center !important;
    scrollbar-gutter: stable;
  }
  .bqi-mv--viewport.is-session-active .bqi-mv__stage > * {
    flex-shrink: 0;
    max-width: 100%;
  }
  .bqi-mv.is-session-active .bqi-mv__challenge,
  .bqi-mv.is-session-active .bqi-mv__vc-wrap,
  .bqi-mv.is-session-active .bqi-mv__coordination-wrap,
  .bqi-mv.is-session-active .bqi-mv__motion-direction,
  .bqi-mv.is-session-active .bqi-mv__rest-card {
    width: 100% !important;
    max-width: 100% !important;
    min-height: max-content;
    padding: 10px 8px 18px;
    margin: 0 auto;
  }

  /* Readable targets for reduced visual acuity on small screens. */
  .bqi-mv__visual-glyph { font-size: clamp(42px, 12vw, 58px) !important; line-height: 1 !important; }
  .bqi-mv__visual-glyph--compound { font-size: clamp(36px, 10vw, 50px) !important; letter-spacing: .03em; }
  .bqi-mv__tracking-dot .bqi-mv__visual-glyph,
  .bqi-mv__smooth-dot .bqi-mv__visual-glyph,
  .bqi-mv__motion-dot .bqi-mv__visual-glyph { font-size: 48px !important; }
  .bqi-mv__focus-glyph { font-size: 48px !important; }
  .bqi-mv__figure-item .bqi-mv__visual-glyph { font-size: 44px !important; }
  .bqi-mv__figure-item.is-target .bqi-mv__visual-glyph { font-size: 52px !important; }
  .bqi-mv__coordination-target .bqi-mv__visual-glyph,
  .bqi-mv__peripheral-target .bqi-mv__visual-glyph { font-size: 42px !important; }
  .bqi-mv__vc-flash,
  .bqi-mv__vc-peripheral-flash,
  .bqi-mv__vc-peripheral-flash--dual { font-size: clamp(52px, 14vw, 74px) !important; }

  /* Dense grids use fewer columns and more rows, preserving target size. */
  .bqi-mv__search-grid,
  .bqi-mv__discrimination-grid,
  .bqi-mv__shape-grid,
  .bqi-mv__vc-grid,
  .bqi-mv__vc-scene-grid {
    width: 100% !important;
    grid-template-columns: repeat(3, minmax(78px, 1fr)) !important;
    gap: 10px !important;
    align-items: stretch;
  }
  .bqi-mv__search-cell,
  .bqi-mv__color-swatch,
  .bqi-mv__shape-cell,
  .bqi-mv__vc-grid-cell,
  .bqi-mv__vc-scene-cell {
    min-height: 82px !important;
    padding: 8px !important;
  }
  .bqi-mv__memory-grid {
    width: 100% !important;
    grid-template-columns: repeat(3, minmax(78px, 1fr)) !important;
    gap: 10px !important;
  }
  .bqi-mv__memory-cell { min-height: 88px !important; }
  .bqi-mv__sequence-grid { width: 100% !important; gap: 12px !important; }
  .bqi-mv__sequence-cell { min-height: 132px !important; }

  /* Comparison boards may grow vertically; keep every square tappable. */
  .bqi-mv__difference-wrap {
    width: 100% !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  .bqi-mv__difference-board { width: 100%; gap: 7px !important; padding: 10px !important; }
  .bqi-mv__difference-cell { min-height: 64px !important; padding: 4px !important; }

  .bqi-mv__figure-ground { width: 100% !important; min-height: 560px !important; }
  .bqi-mv__figure-item { width: 66px !important; height: 66px !important; min-height: 66px !important; }
  .bqi-mv__coordination-field { min-height: 520px !important; }
  .bqi-mv__coordination-target { width: 78px !important; height: 78px !important; min-height: 78px !important; }
  .bqi-mv__target { width: 66px !important; height: 66px !important; }
  .bqi-mv__peripheral-target { width: 58px !important; height: 58px !important; }
  .bqi-mv__vc-choice { min-height: 86px !important; min-width: 118px !important; }
  .bqi-mv__vc-spatial-cell { min-height: 86px !important; }

  /* A visible, touch-friendly scrollbar when content is taller than the exercise surface. */
  .bqi-mv--viewport.is-session-active .bqi-mv__stage::-webkit-scrollbar { width: 10px; }
  .bqi-mv--viewport.is-session-active .bqi-mv__stage::-webkit-scrollbar-thumb {
    background: #64748b;
    border: 2px solid #f8fafc;
    border-radius: 999px;
  }
}

/* Landscape still keeps objects large; density uses width and scrolls vertically if needed. */
@media (orientation: landscape) and (max-height: 600px) and (max-width: 1000px) {
  .bqi-mv--viewport.is-session-active .bqi-mv__stage {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    place-items: start center !important;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y pinch-zoom;
  }
  .bqi-mv.is-session-active .bqi-mv__search-grid,
  .bqi-mv.is-session-active .bqi-mv__discrimination-grid,
  .bqi-mv.is-session-active .bqi-mv__shape-grid,
  .bqi-mv.is-session-active .bqi-mv__vc-grid,
  .bqi-mv.is-session-active .bqi-mv__vc-scene-grid {
    grid-template-columns: repeat(5, minmax(76px, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
  }
  .bqi-mv.is-session-active .bqi-mv__search-cell,
  .bqi-mv.is-session-active .bqi-mv__color-swatch,
  .bqi-mv.is-session-active .bqi-mv__shape-cell,
  .bqi-mv.is-session-active .bqi-mv__vc-grid-cell,
  .bqi-mv.is-session-active .bqi-mv__vc-scene-cell,
  .bqi-mv.is-session-active .bqi-mv__difference-cell {
    min-height: 68px !important;
  }
  .bqi-mv.is-session-active .bqi-mv__visual-glyph { font-size: 42px !important; }
  .bqi-mv.is-session-active .bqi-mv__visual-glyph--compound { font-size: 36px !important; }
  .bqi-mv.is-session-active .bqi-mv__memory-grid { grid-template-columns: repeat(5, minmax(72px,1fr)) !important; width:100% !important; }
  .bqi-mv.is-session-active .bqi-mv__memory-cell { min-height: 72px !important; }
  .bqi-mv.is-session-active .bqi-mv__sequence-cell { min-height: 80px !important; }
}

/* True exercise fullscreen: portrait and landscape use the entire available viewport.
   Works for both native Fullscreen API and the fixed-position fallback. */
@media (max-width: 1000px) {
  .bqi-mv--viewport:fullscreen,
  .bqi-mv--viewport.is-fullscreen {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    width: 100dvw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    background: #fff !important;
    z-index: 2147483000 !important;
  }

  .bqi-mv--viewport.is-session-active:fullscreen .bqi-mv__app-title,
  .bqi-mv--viewport.is-session-active:fullscreen .bqi-mv__intro,
  .bqi-mv--viewport.is-session-active:fullscreen .bqi-mv__comfort-panel,
  .bqi-mv--viewport.is-session-active:fullscreen .bqi-mv__audio-panel,
  .bqi-mv--viewport.is-session-active:fullscreen .bqi-mv__toolbar,
  .bqi-mv--viewport.is-session-active:fullscreen .bqi-mv__session-summary,
  .bqi-mv--viewport.is-session-active:fullscreen .bqi-mv__current-title,
  .bqi-mv--viewport.is-session-active:fullscreen .bqi-mv__current-desc,
  .bqi-mv--viewport.is-session-active:fullscreen .bqi-mv__status--compact,
  .bqi-mv--viewport.is-session-active:fullscreen .bqi-mv__progress-group--compact,
  .bqi-mv--viewport.is-session-active:fullscreen .bqi-mv__run-status,
  .bqi-mv--viewport.is-session-active:fullscreen .bqi-mv__feedback,
  .bqi-mv--viewport.is-session-active:fullscreen .bqi-mv__safety-details,
  .bqi-mv--viewport.is-session-active.is-fullscreen .bqi-mv__app-title,
  .bqi-mv--viewport.is-session-active.is-fullscreen .bqi-mv__intro,
  .bqi-mv--viewport.is-session-active.is-fullscreen .bqi-mv__comfort-panel,
  .bqi-mv--viewport.is-session-active.is-fullscreen .bqi-mv__audio-panel,
  .bqi-mv--viewport.is-session-active.is-fullscreen .bqi-mv__toolbar,
  .bqi-mv--viewport.is-session-active.is-fullscreen .bqi-mv__session-summary,
  .bqi-mv--viewport.is-session-active.is-fullscreen .bqi-mv__current-title,
  .bqi-mv--viewport.is-session-active.is-fullscreen .bqi-mv__current-desc,
  .bqi-mv--viewport.is-session-active.is-fullscreen .bqi-mv__status--compact,
  .bqi-mv--viewport.is-session-active.is-fullscreen .bqi-mv__progress-group--compact,
  .bqi-mv--viewport.is-session-active.is-fullscreen .bqi-mv__run-status,
  .bqi-mv--viewport.is-session-active.is-fullscreen .bqi-mv__feedback,
  .bqi-mv--viewport.is-session-active.is-fullscreen .bqi-mv__safety-details {
    display: none !important;
  }

  .bqi-mv--viewport.is-session-active:fullscreen .bqi-mv__stage,
  .bqi-mv--viewport.is-session-active.is-fullscreen .bqi-mv__stage {
    position: absolute !important;
    inset: 0 0 calc(62px + env(safe-area-inset-bottom, 0px)) 0 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    place-items: start center !important;
    background: #f8fafc !important;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y pinch-zoom;
  }
  .bqi-mv--viewport.is-session-active:fullscreen .bqi-mv__stage canvas,
  .bqi-mv--viewport.is-session-active.is-fullscreen .bqi-mv__stage canvas {
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
  }
  .bqi-mv--viewport.is-session-active:fullscreen .bqi-mv__actions,
  .bqi-mv--viewport.is-session-active.is-fullscreen .bqi-mv__actions {
    left: max(5px, env(safe-area-inset-left, 0px)) !important;
    right: max(5px, env(safe-area-inset-right, 0px)) !important;
    bottom: max(5px, env(safe-area-inset-bottom, 0px)) !important;
  }
  .bqi-mv--viewport.is-session-active:fullscreen .bqi-mv__fullscreen-btn,
  .bqi-mv--viewport.is-session-active.is-fullscreen .bqi-mv__fullscreen-btn {
    display: block !important;
  }
}

@supports not (width: 100dvw) {
  @media (max-width: 1000px) {
    .bqi-mv--viewport:fullscreen,
    .bqi-mv--viewport.is-fullscreen { width: 100vw !important; height: 100vh !important; }
  }
}

@media (max-width: 640px) {
  /* Fullscreen remains directly reachable while an exercise is running. */
  .bqi-mv.is-session-active .bqi-mv__fullscreen-btn { display: block !important; }
  .bqi-mv__tracking-dot,
  .bqi-mv__smooth-dot,
  .bqi-mv__motion-dot { width: 56px !important; height: 56px !important; }
}
@media (max-width: 640px) {
  .bqi-mv__contrast-chip { width: 78px !important; height: 78px !important; font-size: 36px !important; }
  .bqi-mv__figure-ground { min-height: 720px !important; }
  .bqi-mv__figure-item { width: 60px !important; height: 60px !important; min-height: 60px !important; }
}

/* v0.13.3 — HOTFIX Desktop Quick Controls Alignment
   Desktop only: keep the two compact entry controls on one row when closed.
   Mobile rules remain untouched. An opened panel reclaims its own row so
   comfort/audio settings remain readable and never squeeze each other. */
@media (min-width: 821px) {
  .bqi-mv:not(.is-session-active) .bqi-mv__comfort-panel:not([open]),
  .bqi-mv:not(.is-session-active) .bqi-mv__audio-panel:not([open]) {
    display: inline-block !important;
    width: auto !important;
    max-width: max-content !important;
    margin: 8px 8px 8px 0 !important;
    vertical-align: top;
  }

  .bqi-mv:not(.is-session-active) .bqi-mv__comfort-panel[open],
  .bqi-mv:not(.is-session-active) .bqi-mv__audio-panel[open] {
    display: block !important;
    width: fit-content !important;
    max-width: 100% !important;
    margin: 8px 0 !important;
  }
}
