/* Root & body reset via container */
.vmcv2-wrap{
  position:relative;
  min-height:70vh;
  background:linear-gradient(180deg,#f05050 0%,#ea5b8b 40%,#b06df2 100%);
  font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}

/* True full-screen overlay */
.vmcv2-fullbleed{
  position:fixed; inset:0; z-index:999999;
  width:100vw; height:100dvh;
  padding: max(16px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  display:grid; place-items:center; /* vertical + horizontal center */
}
@supports (height: 100svh) {
  .vmcv2-fullbleed{ height:100svh; }
}
body.vmcv2-lock{ overflow:hidden; }

/* Card is centered and can grow */
.vmcv2-card{
  max-width:1100px; width:100%; color:#000;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap: clamp(10px, 2.4vh, 22px);
  text-align:center; padding:0 6px;
}

/* Bigger typography for mobile */
.vmcv2-crest{ height: clamp(60px, 9vh, 90px); margin:0 auto 4px auto; display:block }
.vmcv2-h1{ font-size:clamp(28px, 8.5vw, 56px); font-weight:900; line-height:1.1; margin:0 }
.vmcv2-h2{ font-size:clamp(22px, 6.4vw, 42px); font-weight:800; line-height:1.2; margin:0 }
.vmcv2-text{ font-size:clamp(16px, 4.8vw, 24px); opacity:.95; }

/* Buttons */
.vmcv2-btn{
  background:#ffd400; border:0; border-radius:16px;
  padding: clamp(12px, 2.8vh, 20px) clamp(20px, 7vw, 32px);
  font-weight:900; font-size:clamp(18px,5.2vw,26px); cursor:pointer;
}
.vmcv2-row{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap }
.vmcv2-small-btn{ background:#ffd400; border-radius:12px; padding:10px 16px; display:inline-block; font-weight:700; font-size:clamp(16px, 4.6vw, 20px) }
@media (max-width:560px){ .vmcv2-btn{ width:92%; } .vmcv2-small-btn{ width:46%; text-align:center } }

/* Code boxes */
.vmcv2-codeboxes{ display:flex; gap:10px; justify-content:center; }
.vmcv2-codeboxes input{
  width: clamp(48px, 18vw, 72px);
  height: clamp(56px, 18vw, 84px);
  text-align:center; border:1px solid #ddd; border-radius:12px;
  font-size: clamp(24px, 7vw, 32px);
  -webkit-appearance:none; appearance:none;
}

/* Lists & tally */
.vmcv2-list{ max-width:880px; margin:0 auto; text-align:left }
.vmcv2-item{ border:2px solid transparent; border-radius:16px; padding:16px 18px; background:rgba(255,255,255,.35); margin:12px 0; cursor:pointer; min-height:56px; font-size:clamp(16px,4.8vw,22px) }
.vmcv2-item.selected{ border-color:#111; background:rgba(255,255,255,.7) }
.vmcv2-error{ color:#5a0000; font-weight:700; font-size:clamp(14px, 3.8vw, 18px) }
.vmcv2-tally{ max-width:900px; margin:8px auto 4px auto; background:rgba(255,255,255,.35); border-radius:12px; padding:10px 12px; text-align:left }
.vmcv2-tally-row{ display:flex; justify-content:space-between; padding:8px 4px }
.vmcv2-tally-name,.vmcv2-tally-num{ font-weight:800; font-size:clamp(14px, 4.4vw, 20px) }
