/**
 * 强制绑定手机号弹窗样式（手机端全屏优先，PC端居中）
 */
.ry-bind-overlay {
  position: fixed; inset: 0; z-index: 99999;
  background: rgba(15, 23, 42, 0.55);
  display: flex; align-items: center; justify-content: center;
  padding: 16px;
  animation: ryBindFade 0.2s ease;
}
.ry-bind-modal {
  background: #fff; border-radius: 16px;
  width: 100%; max-width: 420px;
  max-height: 92vh; overflow-y: auto;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
}
.ry-bind-head { text-align: center; padding: 28px 28px 8px; }
.ry-bind-logo img { height: 36px; }
.ry-bind-head h3 { margin: 14px 0 6px; font-size: 20px; color: #1f2937; }
.ry-bind-sub { color: #6b7280; font-size: 14px; margin: 0; }
.ry-bind-body { padding: 14px 28px 28px; }
.ry-bind-label {
  display: block; font-size: 13px; color: #374151;
  margin: 14px 0 6px; font-weight: 500;
}
.ry-bind-row { display: flex; gap: 10px; align-items: stretch; }
.ry-bind-input {
  flex: 1; min-width: 0; height: 48px;
  border: 1px solid #d1d5db; border-radius: 10px;
  padding: 0 14px; font-size: 16px; color: #111827;
  background: #f9fafb; outline: none;
  transition: border-color 0.15s, background 0.15s;
}
.ry-bind-input:focus { border-color: #4f46e5; background: #fff; }
.ry-code-btn {
  flex-shrink: 0; height: 48px; padding: 0 14px;
  border: 1px solid #4f46e5; background: #fff; color: #4f46e5;
  border-radius: 10px; font-size: 14px; font-weight: 600;
  white-space: nowrap; cursor: pointer;
}
.ry-code-btn:disabled { opacity: 0.6; cursor: not-allowed; }
.ry-captcha-img {
  flex-shrink: 0; height: 48px; width: 118px;
  border-radius: 10px; cursor: pointer;
  border: 1px solid #d1d5db; background: #f9fafb; object-fit: cover;
}
.ry-bind-confirm {
  width: 100%; height: 48px; margin-top: 22px;
  border: none; border-radius: 10px;
  background: linear-gradient(135deg, #6366f1, #4f46e5);
  color: #fff; font-size: 16px; font-weight: 600; cursor: pointer;
}
.ry-bind-confirm:disabled { opacity: 0.7; cursor: not-allowed; }
.ry-bind-foot { text-align: center; margin-top: 16px; }
.ry-bind-foot a { color: #6b7280; font-size: 14px; text-decoration: none; }

.ry-toast {
  position: fixed; left: 50%; top: 40%;
  transform: translate(-50%, -50%) scale(0.9);
  background: rgba(17, 24, 39, 0.92); color: #fff;
  padding: 12px 20px; border-radius: 10px;
  font-size: 14px; z-index: 100000;
  max-width: 80%; text-align: center;
  opacity: 0; transition: opacity 0.2s, transform 0.2s;
  pointer-events: none;
}
.ry-toast-show { opacity: 1; transform: translate(-50%, -50%) scale(1); }

@keyframes ryBindFade { from { opacity: 0; } to { opacity: 1; } }

/* ===== 手机端：全屏，重点适配 ===== */
@media (max-width: 560px) {
  .ry-bind-overlay { padding: 0; }
  .ry-bind-modal {
    max-width: 100%; width: 100%; height: 100%; max-height: 100%;
    border-radius: 0; display: flex; flex-direction: column;
  }
  .ry-bind-head { padding: 42px 24px 8px; }
  .ry-bind-body { padding: 14px 24px 24px; flex: 1; }
  .ry-bind-confirm { margin-top: 28px; }
}
