
body.gskin{
  background:linear-gradient(165deg,#ffd9e8 0%,#ffb7d5 42%,#ff9ec4 100%) !important;
  background-attachment:fixed !important;
  min-height:100vh;
}
body.gskin #app{ background:transparent !important; }

/* ---------- 容器：380px 居中，竖直居中 ---------- */
body.gskin .login-wrap{
  max-width:380px !important;
  padding:24px 20px !important;
  min-height:100vh;
  min-height:100dvh;
  display:flex !important;
  flex-direction:column;
  justify-content:center;
  font-size:14px;
  color:#8a6b80;
  background:transparent !important;
}

/* ---------- 品牌区 ---------- */
body.gskin .login-wrap .brand{ text-align:center; margin-bottom:30px; background:transparent !important; }
body.gskin .login-wrap .brand .logo{ display:none !important; }          /* 参考站无独立logo块 */
body.gskin .login-wrap .brand h1{
  font-size:31px !important;
  font-weight:800 !important;
  color:#fff !important;
  letter-spacing:3px;
  text-indent:3px;
  text-shadow:0 2px 12px rgba(180,60,110,.25);
  line-height:1.12;
}
body.gskin .login-wrap .brand h1::before{ content:"🌷 "; }
body.gskin .login-wrap .brand p{
  font-size:13px !important;
  color:rgba(255,255,255,.85) !important;
  letter-spacing:.3px;
  margin-top:9px !important;
  font-weight:400 !important;
}

/* ---------- 白色卡片 ---------- */
body.gskin .login-wrap form.van-form{
  background:rgba(255,255,255,.95) !important;
  border-radius:20px !important;
  padding:32px 30px 22px !important;
  max-width:340px !important;
  width:100%;
  box-shadow:0 18px 44px rgba(214,85,140,.22) !important;
  margin:0 auto !important;
}
body.gskin .login-wrap .van-cell-group--inset{
  background:transparent !important;
  padding:0 !important;
  margin:0 !important;
  border-radius:0 !important;
}

/* ---------- 表单行：无边框，仅底部细线（v1.6.35 风格） ---------- */
body.gskin .login-wrap .van-cell{
  background:transparent !important;
  border-radius:0 !important;
  padding:0 !important;
  border-bottom:1px solid #ffd9e8;
}
body.gskin .login-wrap .van-cell::after{ display:none !important; }   /* 去掉vant默认hairline */
body.gskin .login-wrap .van-field__label{
  flex:0 0 76px !important;
  width:76px !important;
  font-size:16.5px !important;
  color:#5b4655 !important;
  letter-spacing:.5px;
  white-space:nowrap !important;   /* 「确认密码」四字不折行 */
}
body.gskin .login-wrap .van-field__control{
  font-size:16.5px !important;
  color:#3d2f38 !important;
  padding:14px 0 !important;
}
body.gskin .login-wrap .van-field__control::placeholder{
  color:#dcb8c9 !important;
  font-size:16.5px !important;
}

/* ---------- 樱花粉胶囊主按钮（只管整宽主按钮，不动验证码小按钮） ---------- */
body.gskin .login-wrap .van-button--block{
  width:100% !important;
  margin-top:26px !important;
  padding:14px 20px !important;
  border:0 !important;
  border-radius:999px !important;
  background:linear-gradient(180deg,#ff9ec4 0%,#f57fae 100%) !important;
  color:#fff !important;
  font-size:17px !important;
  font-weight:600 !important;
  letter-spacing:2px;
  text-indent:2px;
  min-height:48px !important;
  box-shadow:0 6px 18px rgba(245,127,174,.38) !important;
  transition:transform .12s ease, filter .12s ease;
}
body.gskin .login-wrap .van-button--block:active{
  transform:translateY(1px);
  box-shadow:0 3px 10px rgba(245,127,174,.34) !important;
}
/* 验证码等小按钮：统一成粉色系但不抢戏 */
body.gskin .login-wrap .van-button:not(.van-button--block){
  border-radius:999px !important;
  background:linear-gradient(180deg,#ffb7d5 0%,#ff9ec4 100%) !important;
  border:0 !important;
  color:#fff !important;
}

/* ---------- 底部链接 ---------- */
body.gskin .login-wrap a{
  color:#e0518e !important;
  font-weight:600 !important;
  text-decoration:none !important;
}
body.gskin .login-wrap a:active{ opacity:.7; }

/* ---------- 错误提示 ---------- */
body.gskin .login-wrap .van-field__error-message,
body.gskin .login-wrap [class*="error"]{ color:#d6337f !important; }

/* ============================================================
   🌸 樱花飘落特效（纯装饰）
   ============================================================ */
#petal-layer{ position:fixed; inset:0; pointer-events:none; overflow:hidden; z-index:0; }
#petal-layer .petal{
  position:absolute; top:-4vh;
  background:linear-gradient(135deg,#ffe3ef 0%,#ffc3dc 55%,#ff9ec4 100%);
  border-radius:150% 0 150% 0;
  opacity:.85;
  animation-name:ggp-fall, ggp-sway;
  animation-duration:var(--dur,9s), var(--dur,9s);
  animation-iteration-count:infinite, infinite;
  animation-timing-function:linear, ease-in-out;
  will-change:transform;
}
#petal-layer .petal.g-p2{ background:linear-gradient(135deg,#fff0f6 0%,#ffd6e7 60%,#ffb7d5 100%); }
#petal-layer .petal.g-p3{ background:linear-gradient(135deg,#ffd6e7 0%,#ff9ec4 100%); }
@keyframes ggp-fall{
  0%  { transform:translate3d(0,-6vh,0) rotate(0deg); }
  100%{ transform:translate3d(var(--drift,6vw),108vh,0) rotate(540deg); }
}
@keyframes ggp-sway{
  0%,100%{ margin-left:0; }
  50%    { margin-left:var(--sway,3vw); }
}
@media (prefers-reduced-motion:reduce){
  #petal-layer{ display:none; }
}

/* ============================================================
   ★ 像素级对齐参考源码（我的花园世界 v1.13.16 · login.php）
   基准：375×667 / 390×844
   参考数值：wrap padding 40/23/32 + 垂直居中；brand mb30；
   h1 31px/1.12（无外边距）；p 13px/mt9；卡片 padding 32/30/22、
   radius 20、宽 = 屏宽-46；字段行 54；label 64/17px；
   input 16.5/padding 14；按钮 mt26、高 53；底部链接 mt22/14px
   ============================================================ */

/* --- 品牌区：清掉原站给 h1/p 的外边距（否则整体被推低 12px） --- */
body.gskin .login-wrap .brand h1{ margin:0 !important; }
body.gskin .login-wrap .brand p{ margin:9px 0 0 !important; line-height:1.4 !important; }

/* --- 卡片 --- */
body.gskin .login-wrap form.van-form{
  padding:32px 30px 22px !important;
  max-width:340px !important;
}
/* 按钮外层是 <div style="margin:16px">：清零，让按钮与输入框同宽 */
body.gskin .login-wrap form.van-form > div[style]{ margin:0 !important; }

/* --- 字段行：54px，文字垂直居中 --- */
body.gskin .login-wrap .van-cell{
  min-height:54px !important;
  height:54px !important;
  align-items:center !important;
}
body.gskin .login-wrap .van-field__label{
  display:flex !important;
  align-items:center !important;
  height:54px !important;
  line-height:54px !important;
  font-size:17px !important;
}
body.gskin .login-wrap .van-field__label > label{
  font-size:17px !important;
  color:#5b4655 !important;
  line-height:1.2 !important;
}
body.gskin .login-wrap .van-field__value{ display:flex !important; align-items:center !important; }
body.gskin .login-wrap .van-field__control{
  font-size:16.5px !important;
  padding:14px 0 !important;
  height:auto !important;
  line-height:1.35 !important;
}
body.gskin .login-wrap .van-field__control::placeholder{ font-size:16.5px !important; }

/* 登录页 label 宽 64（与参考一致）；注册页「确认密码」四字留 76 */
body.gskin-login .login-wrap .van-field__label{ flex:0 0 64px !important; width:64px !important; }
body.gskin-register .login-wrap .van-field__label{ flex:0 0 86px !important; width:86px !important; }

/* --- 主按钮：高度 53（padding 14 + 行高 25），与参考一致 --- */
body.gskin .login-wrap .van-button--block{
  margin:26px 0 0 !important;
  height:auto !important;
  min-height:0 !important;
  padding:14px 20px !important;
  line-height:1.47 !important;
  font-size:17px !important;
}
body.gskin .login-wrap .van-button--block .van-button__content{ line-height:inherit !important; }
body.gskin .login-wrap .van-button--block .van-button__text{ line-height:inherit !important; }

/* --- 底部「还没有账号？立即注册」 --- */
body.gskin .login-wrap .switch-mode{
  margin-top:22px !important;
  padding:0 !important;
  height:auto !important;
  text-align:center !important;
  font-size:14px !important;
  line-height:1.4 !important;
  color:#8a6b80 !important;
  letter-spacing:.1px;
}

/* ============================================================
   手机端：与参考源码 @media(max-width:640px) 完全一致
   整屏 100dvh 垂直居中 + 左右 23px 内边距
   ============================================================ */
@media(max-width:640px){
  body.gskin .login-wrap{
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:stretch !important;
    max-width:380px !important;
    margin:0 auto !important;
    padding:calc(40px + env(safe-area-inset-top)) 23px calc(32px + env(safe-area-inset-bottom)) !important;
    min-height:100vh;
    min-height:100dvh;
  }
  body.gskin .login-wrap .brand{
    width:100% !important;
    padding-top:0 !important;
    margin-bottom:30px !important;
  }
  body.gskin .login-wrap form.van-form{
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
  }
}

/* 超窄屏（≤360px）与参考同步微缩 */
@media(max-width:360px){
  body.gskin .login-wrap{
    padding:calc(32px + env(safe-area-inset-top)) 18px calc(26px + env(safe-area-inset-bottom)) !important;
  }
  body.gskin .login-wrap .brand{ margin-bottom:22px !important; }
  body.gskin .login-wrap .brand h1{ font-size:29px !important; letter-spacing:1px; }
  body.gskin .login-wrap .brand p{ font-size:13.5px !important; margin-top:7px !important; }
  body.gskin .login-wrap form.van-form{ padding:20px 22px 16px !important; border-radius:18px !important; }
  body.gskin .login-wrap .van-cell{ min-height:48px !important; height:48px !important; }
  body.gskin .login-wrap .van-field__label{ height:48px !important; line-height:48px !important; }
  body.gskin .login-wrap .van-field__control{ padding:12px 0 !important; font-size:16px !important; }
  body.gskin .login-wrap .van-button--block{ margin-top:20px !important; padding:11px 18px !important; font-size:16.5px !important; }
  body.gskin .login-wrap .switch-mode{ margin-top:16px !important; font-size:13.5px !important; white-space:nowrap !important; }
}

/* --- 参考源码的「记住密码」行（纯前端，仅本机保存，不影响登录逻辑） --- */
body.gskin .login-wrap .gskin-remember{
  display:flex;
  align-items:center;
  margin-top:16px;
  font-size:14.5px;
  line-height:22px;
  color:#8a6b80;
  cursor:pointer;
  user-select:none;
  -webkit-user-select:none;
}
body.gskin .login-wrap .gskin-remember input{
  appearance:none;
  -webkit-appearance:none;
  width:20px;height:20px;flex:0 0 auto;
  margin:0 8px 0 0;
  border:1.5px solid #f0b4cf;
  border-radius:6px;
  background:#fff;
  position:relative;
  cursor:pointer;
  transition:background .12s ease,border-color .12s ease;
}
body.gskin .login-wrap .gskin-remember input:checked{
  background:linear-gradient(180deg,#ff9ec4,#f57fae);
  border-color:#f57fae;
}
body.gskin .login-wrap .gskin-remember input:checked::after{
  content:"";
  position:absolute;left:5.5px;top:2px;
  width:5px;height:10px;
  border:solid #fff;border-width:0 2px 2px 0;
  transform:rotate(45deg);
}

/* 去掉 vant 给 label 的右间距，输入框起点与参考一致（label 右缘即输入框起点） */
body.gskin .login-wrap .van-field__label{
  margin-right:0 !important;
  padding-right:0 !important;
}
body.gskin .login-wrap .van-field__body{ width:100% !important; }

/* 底部链接行补足 4px 上下留白，行高与参考 footer(29px) 一致 */
body.gskin .login-wrap .switch-mode{ padding:4px 0 !important; line-height:1.5 !important; }

/* 底部链接后半段（立即注册）与参考同色同字重 */
body.gskin .login-wrap .switch-mode .gskin-sw-link{
  color:#e0518e;
  font-weight:600;
  padding:0 1px;
}
body.gskin .login-wrap .switch-mode .gskin-sw-pre{ font-weight:400; }
