/* NeoBox 1.2.3
   Public rail widget intentionally has no custom skin: it uses NeoCMS intro-promo,
   ui-badge and site-btn components. Only the unique homepage game/case lives here. */

.neobox-game {
  position: relative;
  width: 100%;
  min-height: 360px;
  display: grid;
  grid-template-columns: minmax(280px, .82fr) minmax(0, 1.18fr);
  padding: 0 !important;
  overflow: hidden;
  scroll-margin-top: 24px;
  box-shadow: none;
}

/* home-v2 gives all sections generous content padding. NeoBox is itself the
   complete section, so its two internal columns own the spacing. */
.neobox-game.homev2-section {
  padding: 0 !important;
}

.neobox-game * { box-sizing: border-box; }

.neobox-game__stage,
.neobox-game__content {
  position: relative;
  z-index: 2;
}

.neobox-game__stage {
  min-height: 360px;
  display: grid;
  place-items: center;
  overflow: visible;
  padding: 28px;
  isolation: isolate;
}

.neobox-game__stage::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 270px;
  height: 270px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(var(--accent-rgb, 214, 179, 106), .11), rgba(var(--accent-rgb, 214, 179, 106), .035) 46%, transparent 72%);
  pointer-events: none;
  z-index: -1;
}

.neobox-game__orbit {
  position: absolute;
  left: 50%;
  top: 50%;
  border: 1px solid rgba(var(--accent-rgb, 214, 179, 106), .12);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.neobox-game__orbit--one {
  width: 226px;
  height: 226px;
  box-shadow:
    0 0 0 26px rgba(var(--accent-rgb, 214, 179, 106), .025),
    0 0 0 52px rgba(var(--accent-rgb, 214, 179, 106), .015);
}

.neobox-game__orbit--two {
  width: 162px;
  height: 162px;
  border-color: rgba(var(--ui-rgb), .055);
}

.neobox-game__spark {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--accent-light, var(--gold));
  box-shadow: 0 0 14px rgba(var(--accent-rgb, 214, 179, 106), .8);
  pointer-events: none;
}
.neobox-game__spark--one { left: 14%; top: 24%; }
.neobox-game__spark--two { right: 16%; top: 31%; width: 3px; height: 3px; opacity: .65; }
.neobox-game__spark--three { left: 31%; bottom: 18%; width: 2px; height: 2px; opacity: .55; }

.neobox-case {
  position: relative;
  width: 218px;
  height: 188px;
  transform-style: preserve-3d;
  filter: drop-shadow(0 28px 28px rgba(0,0,0,.34));
  transition: transform .55s cubic-bezier(.2,.8,.2,1), opacity .45s ease;
}

.neobox-case__body {
  position: absolute;
  left: 8px;
  right: 8px;
  bottom: 0;
  height: 127px;
  overflow: hidden;
  border: 1px solid var(--border-strong, var(--border));
  border-radius: 17px 17px 23px 23px;
  background: linear-gradient(145deg, var(--gray-control-hover, #24272b), var(--gray-control, #121416) 45%, var(--panel-bg-strong, #08090b));
  box-shadow: inset 0 0 0 5px rgba(0,0,0,.16), inset 0 1px rgba(var(--ui-rgb), .07);
}

.neobox-case__body::before,
.neobox-case__body::after {
  content: "";
  position: absolute;
  top: 8px;
  bottom: 8px;
  width: 20px;
  border: 1px solid rgba(var(--accent-rgb, 214, 179, 106), .34);
  background: linear-gradient(90deg, var(--accent-dark, #9a6d24), var(--accent-light, #e5ca87), var(--accent-dark, #9a6d24));
  opacity: .78;
}
.neobox-case__body::before { left: 10px; border-radius: 8px 4px 4px 8px; }
.neobox-case__body::after { right: 10px; border-radius: 4px 8px 8px 4px; }

.neobox-case__band {
  position: absolute;
  left: 0;
  right: 0;
  top: 19px;
  height: 15px;
  background: var(--gold-gradient, linear-gradient(135deg, var(--accent-color), var(--accent-dark)));
  box-shadow: 0 0 18px rgba(var(--accent-rgb, 214, 179, 106), .26);
}

.neobox-case__face {
  position: absolute;
  left: 50%;
  top: 49%;
  width: 90px;
  height: 69px;
  display: grid;
  place-items: center;
  transform: translate(-50%, -40%);
  border: 1px solid rgba(var(--accent-rgb, 214, 179, 106), .22);
  border-radius: 12px;
  background: var(--gray-panel, var(--panel-bg));
  box-shadow: inset 0 0 0 4px rgba(var(--ui-rgb), .025);
}

.neobox-case__face::before {
  content: "";
  position: absolute;
  inset: 6px;
  border: 1px solid rgba(var(--ui-rgb), .055);
  border-radius: 8px;
}

.neobox-case__face i {
  position: relative;
  z-index: 2;
  color: var(--accent-light, var(--gold));
  font-size: 31px;
}

.neobox-case__lid {
  position: absolute;
  left: 0;
  right: 0;
  top: 20px;
  height: 70px;
  z-index: 4;
  overflow: visible;
  transform-origin: 18% 100%;
  border: 1px solid var(--border-strong, var(--border));
  border-radius: 18px 18px 12px 12px;
  background: linear-gradient(155deg, var(--gray-control-hover, #292c31), var(--gray-control, #15171a) 58%, var(--panel-bg-strong, #0d0e10));
  box-shadow: inset 0 1px rgba(var(--ui-rgb), .08), 0 11px 22px rgba(0,0,0,.20);
  transition: transform .72s cubic-bezier(.19,.8,.22,1.1), top .72s ease;
}

.neobox-case__lid::before,
.neobox-case__lid::after {
  content: "";
  position: absolute;
  top: 8px;
  bottom: 8px;
  width: 22px;
  border: 1px solid rgba(var(--accent-rgb, 214, 179, 106), .34);
  border-radius: 7px;
  background: linear-gradient(90deg, var(--accent-dark, #9a6d24), var(--accent-light, #e5ca87), var(--accent-dark, #9a6d24));
}
.neobox-case__lid::before { left: 12px; }
.neobox-case__lid::after { right: 12px; }

.neobox-case__lid-panel {
  position: absolute;
  left: 46px;
  right: 46px;
  top: 11px;
  bottom: 11px;
  border: 1px solid rgba(var(--ui-rgb), .055);
  border-radius: 9px;
  background: rgba(var(--ui-rgb), .02);
}

.neobox-case__lock {
  position: absolute;
  z-index: 5;
  left: 50%;
  bottom: -18px;
  width: 48px;
  height: 53px;
  display: grid;
  place-items: center;
  transform: translateX(-50%);
  border: 1px solid rgba(var(--accent-rgb, 214, 179, 106), .42);
  border-radius: 7px 7px 10px 10px;
  background: var(--gold-gradient, linear-gradient(135deg, var(--accent-color), var(--accent-dark)));
  color: #111;
}

.neobox-case__light {
  position: absolute;
  z-index: 1;
  left: 50%;
  top: 73px;
  width: 174px;
  height: 48px;
  transform: translateX(-50%) scaleX(.85);
  border-radius: 50%;
  background: var(--accent-color, var(--gold));
  filter: blur(25px);
  opacity: .20;
  transition: opacity .5s ease, transform .5s ease;
}

.neobox-game.is-opening .neobox-case { animation: neoboxCaseShake .72s ease both; }
.neobox-game.is-opening .neobox-case__light { opacity: .7; transform: translateX(-50%) scale(1.15); }
.neobox-game.is-revealed .neobox-case__lid { top: -10px; transform: translateY(-24px) rotate(-15deg); }
.neobox-game.is-revealed .neobox-case__light { opacity: .9; transform: translateX(-50%) scale(1.4); }
.neobox-game.is-revealed .neobox-case { transform: translateY(32px) scale(.84); opacity: .38; }

.neobox-game__prize {
  position: absolute;
  z-index: 8;
  min-width: 164px;
  min-height: 108px;
  padding: 17px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(var(--accent-rgb, 214, 179, 106), .28);
  border-radius: var(--radius-md, 12px);
  background: var(--gray-panel, var(--panel-bg));
  box-shadow: 0 20px 55px rgba(0,0,0,.30);
  animation: neoboxPrizeIn .45s cubic-bezier(.18,.8,.24,1.16) both;
}
.neobox-game__prize[hidden] { display: none !important; }
.neobox-game__prize span { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.neobox-game__prize strong { margin: 5px 0 2px; color: var(--accent-light, var(--gold)); font-size: 34px; line-height: 1; font-weight: 900; }
.neobox-game__prize b { color: var(--text); font-size: 11px; letter-spacing: .04em; }

.neobox-game__content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 17px;
  padding: 34px 36px 32px 12px;
}

.neobox-game__topline,
.neobox-game__rewards {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.neobox-game__topline { justify-content: space-between; }
.neobox-game__title { margin-top: 5px !important; }
.neobox-game__subtitle { max-width: 620px; margin-top: 9px !important; }
.neobox-game__reward { min-height: 30px; }
.neobox-game__button { width: 100%; min-height: 48px; }

.neobox-game__action {
  display: grid;
  gap: 8px;
}

.neobox-game__meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.neobox-game__info-card {
  min-width: 0;
  min-height: 54px;
  padding: 9px 11px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  border: 0;
  border-radius: var(--radius-sm, 10px);
  background: rgba(var(--ui-rgb), .025);
}

.neobox-game__info-icon,
.neobox-game__status-dot {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: rgba(var(--accent-rgb, 214, 179, 106), .08);
  color: var(--accent-light, var(--gold));
}

.neobox-game__status-dot::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--muted);
  opacity: .55;
}

.neobox-game__status.is-ready .neobox-game__status-dot::before {
  background: var(--accent-color, var(--gold));
  box-shadow: 0 0 10px rgba(var(--accent-rgb, 214, 179, 106), .45);
  opacity: 1;
}

.neobox-game__info-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.neobox-game__info-copy small {
  color: var(--muted);
  font-size: 8px;
  line-height: 1.2;
}

.neobox-game__info-copy b {
  min-width: 0;
  overflow: hidden;
  color: var(--text);
  font-size: 10px;
  line-height: 1.25;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.neobox-game__status.is-ready .neobox-game__info-copy b,
.neobox-game__last .neobox-game__info-copy b {
  color: var(--accent-light, var(--gold));
}

.neobox-game__info-value {
  max-width: 132px;
  color: var(--muted);
  font-size: 8px;
  line-height: 1.2;
  text-align: right;
  white-space: nowrap;
}

.neobox-result {
  min-height: 54px;
  padding: 9px 10px;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  border: 0;
  border-radius: var(--radius-sm, 10px);
  background: rgba(var(--accent-rgb, 214, 179, 106), .055);
}

.neobox-result[hidden] {
  display: none !important;
}

.neobox-result__icon {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: rgba(var(--accent-rgb, 214, 179, 106), .1);
  color: var(--accent-light, var(--gold));
}

.neobox-result__copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.neobox-result__copy b {
  color: var(--text);
  font-size: 10px;
  line-height: 1.25;
}

.neobox-result__copy span {
  color: var(--muted);
  font-size: 8px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.neobox-copy-btn {
  min-height: 32px;
  padding-inline: 10px;
}

.neobox-copy-btn[hidden] {
  display: none !important;
}

@keyframes neoboxCaseShake {
  0%,100% { transform: translateX(0) rotate(0); }
  18% { transform: translateX(-4px) rotate(-1deg); }
  36% { transform: translateX(4px) rotate(1deg); }
  54% { transform: translateX(-3px) rotate(-.8deg); }
  72% { transform: translateX(3px) rotate(.8deg); }
}
@keyframes neoboxPrizeIn {
  from { opacity: 0; transform: translateY(28px) scale(.82); }
  to { opacity: 1; transform: translateY(-18px) scale(1); }
}

@media (max-width: 900px) {
  .neobox-game { min-height: 320px; grid-template-columns: 235px minmax(0,1fr); }
  .neobox-game__stage { min-height: 320px; padding: 18px; }
  .neobox-case { transform: scale(.84); }
  .neobox-game__orbit--one { transform: translate(-50%,-50%) scale(.8); }
  .neobox-game__orbit--two { transform: translate(-50%,-50%) scale(.8); }
  .neobox-game__content { padding: 28px 24px 27px 4px; }
}

@media (max-width: 700px) {
  .neobox-game { display: block; min-height: 0; }
  .neobox-game__stage { min-height: 238px; padding: 18px 18px 0; }
  .neobox-game__orbit--one { transform: translate(-50%,-50%) scale(.66); }
  .neobox-game__orbit--two { transform: translate(-50%,-50%) scale(.66); }
  .neobox-case { transform: scale(.72); }
  .neobox-game__content { padding: 14px 16px 18px; gap: 13px; }
  .neobox-game__topline { justify-content: flex-start; }
  .neobox-game__meta { grid-template-columns: 1fr; }
  .neobox-result { grid-template-columns: 30px minmax(0,1fr); }
  .neobox-copy-btn { grid-column: 1 / -1; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .neobox-case,
  .neobox-case__lid,
  .neobox-case__light,
  .neobox-game__prize { animation: none !important; transition: none !important; }
}

/* NeoBox admin-only layout. Base controls/cards are inherited from admin.css. */
.neobox-admin__eyebrow{display:flex;align-items:center;gap:7px;margin-bottom:6px;color:var(--accent-2);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.14em}.neobox-admin__sum{padding:7px 10px;border:1px solid var(--line);border-radius:9px;color:var(--muted);font-size:10px}.neobox-admin__stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-top:18px}.neobox-admin-stat{padding:15px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.018)}.neobox-admin-stat span,.neobox-admin-stat b{display:block}.neobox-admin-stat span{margin-bottom:7px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.neobox-admin-stat b{font-size:20px}.neobox-admin__placements{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:16px 0 20px}.neobox-admin-placement{position:relative;cursor:pointer}.neobox-admin-placement input{position:absolute;opacity:0;pointer-events:none}.neobox-admin-placement>span{min-height:76px;padding:12px;display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto;column-gap:9px;align-items:center;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.015);transition:border-color .15s ease,background .15s ease}.neobox-admin-placement i{grid-row:1/3;width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:rgba(var(--accent-rgb),.08);color:var(--accent-2)}.neobox-admin-placement b{font-size:11px}.neobox-admin-placement small{color:var(--muted);font-size:8px}.neobox-admin-placement input:checked+span{border-color:rgba(var(--accent-rgb),.34);background:rgba(var(--accent-rgb),.06);box-shadow:inset 2px 0 0 var(--accent-2)}.neobox-admin__hint{margin:8px 0 0}.neobox-admin__rewards{display:grid;gap:8px;margin-top:18px}.neobox-admin-reward{display:grid;grid-template-columns:minmax(0,1fr) 138px;gap:14px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.014)}.neobox-admin-reward.is-unavailable{opacity:.58}.neobox-admin-reward__main{display:flex;align-items:center;gap:12px;min-width:0}.neobox-admin-reward__badge{width:42px;height:42px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;background:rgba(var(--accent-rgb),.1);color:var(--accent-2);font-weight:900}.neobox-admin-reward__copy{min-width:0}.neobox-admin-reward__code{font-weight:800;font-size:13px}.neobox-admin-reward__meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px;color:var(--muted);font-size:9px}.neobox-admin-reward__chance label{display:block;margin-bottom:5px;color:var(--muted);font-size:9px}.neobox-admin-reward__chance-wrap{position:relative}.neobox-admin-reward__chance input{width:100%;padding-right:28px}.neobox-admin-reward__chance-wrap span{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:10px;pointer-events:none}.neobox-admin__chancebar{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:13px;margin:16px 0}.neobox-admin__chancebar>span{font-size:10px;color:var(--muted)}.neobox-admin__chancebar b{color:var(--text)}.neobox-admin__chancebar>div{height:7px;border-radius:99px;background:rgba(255,255,255,.05);overflow:hidden}.neobox-admin__chancebar i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent-2),var(--accent))}.neobox-admin__message{margin-top:12px;padding:10px 12px;border-radius:10px;font-size:10px}.neobox-admin__message.is-ok{border:1px solid rgba(52,211,153,.18);background:rgba(52,211,153,.08);color:#6ee7b7}.neobox-admin__message.is-error{border:1px solid rgba(248,113,113,.18);background:rgba(248,113,113,.08);color:#fca5a5}.neobox-admin__history{display:grid;gap:1px;margin-top:12px}.neobox-admin-history-row{display:grid;grid-template-columns:minmax(0,1fr) 150px 150px;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.neobox-admin-history-row:first-child{border-top:0}.neobox-admin-history-row__user{font-size:11px;font-weight:700}.neobox-admin-history-row__date{margin-top:3px;color:var(--muted);font-size:9px}.neobox-admin-history-row__result{color:var(--muted);font-size:10px}.neobox-admin-history-row__result.is-win{color:#6ee7b7}.neobox-admin-history-row__code{font-family:monospace;color:var(--accent-2);font-size:10px}@media(max-width:900px){.neobox-admin__stats{grid-template-columns:repeat(2,minmax(0,1fr))}.neobox-admin__placements{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.neobox-admin-reward{grid-template-columns:1fr}.neobox-admin__placements{grid-template-columns:1fr}.neobox-admin-history-row{grid-template-columns:1fr auto}.neobox-admin-history-row__code{grid-column:1/-1}}

/* NeoBox CTA/test layout. Button colors come entirely from native NeoCMS site-btn styles. */
.neobox-game__buttons {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.neobox-game__buttons > .neobox-game__button {
  flex: 1 1 220px;
}
.neobox-game__test {
  flex: 0 0 auto;
}
@media (max-width: 620px) {
  .neobox-game__buttons { align-items: stretch; flex-direction: column; }
  .neobox-game__buttons > .site-btn { width: 100%; flex-basis: auto; }
}


/* NeoBox 1.2 admin reward editor */
.neobox-admin-reward__fields {
  flex: 1 1 auto;
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(150px, 1fr));
  gap: 12px;
}
.neobox-admin-reward__fields label { display: grid; gap: 6px; color: var(--muted); font-size: 11px; }
.neobox-admin-reward__input-wrap { display: flex; align-items: center; gap: 7px; }
.neobox-admin-reward__input-wrap input { width: 100%; min-width: 0; }
.neobox-admin-reward__badge { display: grid; place-items: center; width: 42px; height: 42px; border-radius: var(--radius-sm, 8px); background: var(--gray-control); color: var(--accent-color, var(--gold)); }
.neobox-admin-reward__remove { flex: 0 0 auto; }
@media (max-width: 700px) {
  .neobox-admin-reward__fields { grid-template-columns: 1fr; }
}

/* NeoBox 1.2.1 admin reset controls: base button/card styles come from admin.css. */
.neobox-admin__stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.neobox-admin-history-row__user small { margin-left: 4px; color: var(--muted); font-size: 9px; font-weight: 500; }
.neobox-admin-history-row [data-neobox-reset-user] { min-height: 28px; margin-top: 6px; padding-inline: 8px; font-size: 9px; }
@media (max-width: 900px) { .neobox-admin__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
