/* 仅 html.hub-phone（手机）生效；电脑端不变 */

/* —— 游戏大厅：关闭悬停与按键波纹 —— */
html.hub-phone .hub-shock-layer,
html.hub-phone .hub-shock-mount,
html.hub-phone .hub-shock-origin {
  display: none !important;
  visibility: hidden !important;
}

html.hub-phone .btn:hover,
html.hub-phone .tab:hover,
html.hub-phone .tier-card:hover,
html.hub-phone .game-card:hover,
html.hub-phone .game-folder-card:hover,
html.hub-phone .btn-approve:hover,
html.hub-phone .btn-save-tier:hover,
html.hub-phone .btn-danger:hover,
html.hub-phone .server-card:hover,
html.hub-phone .talk-send:hover,
html.hub-phone .talk-del:hover,
html.hub-phone .hub-hero-play:hover,
html.hub-phone .coin-redeem-btn:hover,
html.hub-phone .coin-rank-item:hover,
html.hub-phone .btn-ghost:hover,
html.hub-phone .btn-primary:hover,
html.hub-phone .download-card:hover,
html.hub-phone .btn-download:hover,
html.hub-phone .box-card:hover,
html.hub-phone .hub-blindbox-feature:hover,
html.hub-phone .hub-nav-bar .hub-home-btn:hover,
html.hub-phone .hub-nav-bar .hub-help-btn:hover,
html.hub-phone .hub-help-close:hover,
html.hub-phone .hub-capsule-bar a:hover,
html.hub-phone .hub-capsule-bar button:hover,
html.hub-phone .cpsite-top a:hover,
html.hub-phone .cpsite-top button:hover,
html.hub-phone .ignite-trigger:hover,
html.hub-phone .staff-line:hover,
html.hub-phone .user-list li:hover,
html.hub-phone .order-list li:hover,
html.hub-phone .admin-table tbody tr:hover,
html.hub-phone .btn-save-coins:hover,
html.hub-phone .btn-save-diamonds:hover,
html.hub-phone .btn-save-pwd:hover,
html.hub-phone .btn-admin-lock:hover,
html.hub-phone .btn-admin-force-talk:hover,
html.hub-phone .talk-attach:hover,
html.hub-phone .hub-attach-btn:hover,
html.hub-phone .game-folder-card:hover::before,
html.hub-phone .game-folder-card:hover::after,
html.hub-phone .game-card:hover::before {
  transform: none !important;
  box-shadow: none !important;
  filter: none !important;
  border-color: inherit !important;
  background: inherit !important;
  color: inherit !important;
  opacity: inherit !important;
}

html.hub-phone .hub-pressed,
html.hub-phone .game-card.hub-pressed,
html.hub-phone .game-folder-card.hub-pressed,
html.hub-phone .game-folder-card:active,
html.hub-phone .box-card.hub-pressed,
html.hub-phone .hub-blindbox-feature.hub-pressed,
html.hub-phone .talk-new-toast.hub-pressed,
html.hub-phone button.hub-pressed {
  transform: none !important;
  box-shadow: none !important;
  filter: none !important;
}

/* —— ZSH 游戏大厅 —— */
html.hub-phone .app {
  max-width: 100%;
  padding: 0.75rem;
  padding-left: max(0.75rem, env(safe-area-inset-left));
  padding-right: max(0.75rem, env(safe-area-inset-right));
}

html.hub-phone .games-grid {
  grid-template-columns: 1fr;
  gap: 0.85rem;
}

html.hub-phone .games-folder-grid {
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem;
}

html.hub-phone .game-folder-card {
  padding: 1rem 0.75rem;
}

html.hub-phone .header-actions {
  flex-wrap: wrap;
  gap: 0.35rem;
}

html.hub-phone .top {
  margin-bottom: 1.25rem;
}

html.hub-phone .auth-card,
html.hub-phone .talk-card,
html.hub-phone #feedbackModal .fb-card {
  width: min(96vw, 520px);
  margin-left: auto;
  margin-right: auto;
}

/* —— 配机站 NEXUS（hub + config-pc） —— */
html.hub-phone.nexus-page,
html.hub-phone body.nexus-page {
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-text-size-adjust: 100%;
}

html.hub-phone .nexus-wrapper {
  height: auto !important;
  min-height: calc(100dvh - var(--hub-top-pad, 52px));
  overflow-y: auto;
  scroll-snap-type: none;
}

html.hub-phone .nexus-wrapper section.form-section {
  min-height: auto;
  align-items: flex-start;
  padding-bottom: 24px;
}

html.hub-phone .nexus-wrapper section.result-section {
  min-height: auto;
  align-items: flex-start;
  padding-top: 20px;
  padding-bottom: 40px;
}

html.hub-phone .nexus-wrapper section {
  height: auto !important;
  min-height: calc(100dvh - var(--hub-top-pad, 52px));
  padding: 12px;
  align-items: flex-start;
  padding-top: 16px;
}

html.hub-phone .control-hub {
  padding: 22px 16px;
  border-radius: 28px;
}

html.hub-phone .title-aura {
  margin-bottom: 28px;
}

html.hub-phone .title-aura h1 {
  font-size: clamp(1.6rem, 8vw, 2.4rem);
  letter-spacing: -2px;
}

html.hub-phone .title-aura p {
  font-size: 0.75rem;
}

html.hub-phone .input-cluster {
  grid-template-columns: 1fr !important;
  gap: 14px;
  margin-bottom: 24px;
}

html.hub-phone .field label {
  font-size: 0.62rem;
  margin-bottom: 8px;
}

html.hub-phone input,
html.hub-phone select {
  padding: 14px;
  font-size: 16px;
  border-radius: 14px;
}

html.hub-phone .ignite-trigger {
  font-size: 0.95rem;
  letter-spacing: 4px;
  padding: 18px 12px;
}

html.hub-phone .result-matrix {
  padding: 24px 18px;
  border-left-width: 10px;
  border-radius: 22px;
}

html.hub-phone .price-massive {
  font-size: clamp(2.5rem, 14vw, 4rem);
}

html.hub-phone .node-grid {
  grid-template-columns: 1fr;
  gap: 18px;
}

html.hub-phone .hub-capsule-bar,
html.hub-phone .cpsite-top-left {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

html.hub-phone .cpsite-top {
  flex-wrap: wrap;
  gap: 6px;
  padding: 8px 10px;
  padding-top: max(8px, env(safe-area-inset-top));
}

html.hub-phone .cpsite-auth {
  position: fixed;
  top: 52px;
  left: 0;
  right: 0;
  z-index: 199;
  padding: 6px 8px 8px;
}

html.hub-phone .cpsite-auth input {
  width: min(42vw, 160px);
  font-size: 16px;
}

html.hub-phone body.nexus-page {
  --hub-top-pad: 108px;
  padding-top: 52px;
}

html.hub-phone #constellation-bg {
  width: 100vw;
  height: 100dvh;
}

/* —— 配机站手机：保留触控粒子波 + 按键反馈，仍关闭悬停 —— */
html.hub-phone body.nexus-page .cpsite-top a,
html.hub-phone body.nexus-page .cpsite-top button,
html.hub-phone body.nexus-page .hub-capsule-bar a,
html.hub-phone body.nexus-page .hub-capsule-bar button,
html.hub-phone body.nexus-page .cpsite-auth button,
html.hub-phone body.nexus-page .ignite-trigger,
html.hub-phone body.nexus-page .pc-pay-card button {
  position: relative;
  overflow: hidden;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

html.hub-phone body.nexus-page .nexus-pressed,
html.hub-phone body.nexus-page button.nexus-pressed,
html.hub-phone body.nexus-page .ignite-trigger.nexus-pressed,
html.hub-phone body.nexus-page .cpsite-top a.nexus-pressed,
html.hub-phone body.nexus-page .hub-capsule-bar a.nexus-pressed {
  transform: translateY(2px) scale(0.97) !important;
  filter: brightness(1.12) !important;
  box-shadow: 0 0 18px rgba(0, 242, 255, 0.35) !important;
}

html.hub-phone body.nexus-page .nexus-shock-mount {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  border-radius: inherit;
  z-index: 12;
}

html.hub-phone body.nexus-page .nexus-shock-layer {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  border-radius: inherit;
  z-index: 8;
}

html.hub-phone body.nexus-page .nexus-shock-origin {
  position: absolute;
  width: 0;
  height: 0;
  transform: scale(0);
  animation: nexusShockGrow 0.88s cubic-bezier(0.12, 0.82, 0.22, 1) forwards;
}

html.hub-phone body.nexus-page .nexus-shock-fill {
  position: absolute;
  left: calc(var(--max-r) * -1);
  top: calc(var(--max-r) * -1);
  width: calc(var(--max-r) * 2);
  height: calc(var(--max-r) * 2);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.28) 0%, rgba(0, 242, 255, 0.22) 38%, transparent 74%);
  opacity: 0.85;
  animation: nexusShockFillFade 0.88s ease-out forwards;
}

html.hub-phone body.nexus-page .nexus-shock-ring {
  position: absolute;
  left: calc(var(--max-r) * -1);
  top: calc(var(--max-r) * -1);
  width: calc(var(--max-r) * 2);
  height: calc(var(--max-r) * 2);
  border-radius: 50%;
  border: 2.5px solid rgba(130, 245, 255, 0.95);
  box-shadow: 0 0 12px rgba(0, 242, 255, 0.8);
  animation: nexusShockRingFade 0.88s ease-out forwards;
}

@keyframes nexusShockGrow {
  to { transform: scale(1); }
}

@keyframes nexusShockFillFade {
  0% { opacity: 0.85; }
  100% { opacity: 0; }
}

@keyframes nexusShockRingFade {
  0% { opacity: 1; transform: scale(0.2); }
  100% { opacity: 0; transform: scale(1); }
}
