/* 注册登录流程共享样式（爱亦文） */
*{margin:0;padding:0;box-sizing:border-box}
body.auth-flow{min-height:100vh;position:relative;overflow-x:hidden;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
.bg-art{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 12%;z-index:0;transform-origin:center;animation:heroSway 6s ease-in-out infinite}
@keyframes heroSway{0%,100%{transform:scale(1.02) translateY(0)}50%{transform:scale(1.05) translateY(-6px)}}
.bg-art.reacting{animation:reactBounce .95s ease !important}
@keyframes reactBounce{0%{transform:scale(1.04)}35%{transform:scale(1.065) rotate(1.4deg)}70%{transform:scale(1.045) rotate(-1.2deg)}100%{transform:scale(1.04)}}
.veil{position:fixed;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.10),rgba(0,0,0,0) 30%);z-index:1}
.layer{position:relative;z-index:2;min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:22px 16px calc(30px + env(safe-area-inset-bottom))}
.brand{background:#fffdf7;border:3px solid #4a3327;border-radius:22px;padding:13px 34px;text-align:center;box-shadow:0 5px 0 #4a3327,0 12px 26px rgba(0,0,0,.22);margin-bottom:10px}
.brand b{font-size:25px;color:#4a3626;letter-spacing:1px}
.brand span{display:block;font-size:11.5px;color:#8a7a68;letter-spacing:4px;margin-top:3px}
.bubble-say{position:relative;background:#fff;border-radius:22px;padding:16px 20px;width:min(92vw,460px);font-size:16.5px;line-height:1.65;color:#222;box-shadow:0 10px 28px rgba(0,0,0,.2);margin-bottom:22px}
.bubble-say::after{content:'';position:absolute;bottom:-9px;left:calc(15% + 8px);width:26px;height:26px;background:#fff;border-radius:5px;transform:rotate(45deg)}
.bubble-say.top-right::before{left:auto;right:24px}
.btn-green{display:block;width:100%;padding:14px;border-radius:18px;border:3px solid #eafbe7;
  background:linear-gradient(180deg,#8fd97e 0%,#57c04f 45%,#2e9e33 100%);
  color:#fff;font-size:19px;font-weight:800;letter-spacing:8px;text-indent:8px;
  text-shadow:0 2px 0 rgba(0,0,0,.22);
  box-shadow:0 5px 0 #256d29,0 9px 18px rgba(0,0,0,.25),inset 0 3px 6px rgba(255,255,255,.5);cursor:pointer}
.btn-green:active{transform:translateY(3px);box-shadow:0 2px 0 #256d29,0 5px 10px rgba(0,0,0,.2),inset 0 3px 6px rgba(255,255,255,.5)}
.btn-green:disabled{filter:grayscale(.75);opacity:.65;cursor:not-allowed}
.btn-white{display:block;width:100%;padding:13px;border-radius:18px;border:3px solid #ffffff;
  background:linear-gradient(180deg,#ffffff 0%,#d8ecfd 100%);color:#1a73e8;font-size:16.5px;font-weight:800;
  box-shadow:0 5px 0 rgba(125,165,205,.55),0 9px 18px rgba(0,0,0,.18),inset 0 3px 6px rgba(255,255,255,.85);cursor:pointer}
.btn-white:active{transform:translateY(3px);box-shadow:0 2px 0 rgba(125,165,205,.55),inset 0 3px 6px rgba(255,255,255,.85)}
.btn-gold{display:inline-block;padding:12px 34px;border-radius:999px;border:3px solid #fff7dd;
  background:linear-gradient(180deg,#ffd977 0%,#f7b93c 55%,#eb9c22 100%);color:#6b4a18;font-size:16px;font-weight:800;
  box-shadow:0 5px 0 #c78a24,0 9px 18px rgba(0,0,0,.22),inset 0 3px 6px rgba(255,255,255,.6);cursor:pointer}
.foot-btns{width:100%;max-width:360px;margin-top:14px;display:flex;flex-direction:column;gap:12px}
.card{width:min(88vw,360px);background:#fdf6ec;border-radius:22px;padding:20px 22px;box-shadow:0 12px 30px rgba(0,0,0,.22)}
.card h2{text-align:center;color:#e7549f;font-size:20px;margin-bottom:14px;letter-spacing:3px}
.f-label{font-size:13px;font-weight:700;color:#5a4632;margin:10px 0 6px}
.f-input{width:100%;padding:13px 16px;border:1.5px solid #e3d7c5;border-radius:16px;background:#fff;font-size:15px;color:#333}
.f-input:focus{outline:none;border-color:#e7549f}
.f-hint{font-size:12px;color:#9a8a76;margin-top:5px}
.ckbox{display:flex;gap:10px;align-items:flex-start;text-align:left;cursor:pointer;margin-bottom:10px}
.ckbox input{display:none}
.ckbox .box{flex:0 0 auto;width:22px;height:22px;border-radius:7px;border:2px solid #cfc4b4;background:#fff;position:relative;margin-top:1px}
.ckbox input:checked+.box{background:#4caf50;border-color:#3d8b40}
.ckbox input:checked+.box::after{content:'✓';color:#fff;font-weight:800;font-size:14px;position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.ckbox .txt{font-size:12.5px;color:#5a4632;line-height:1.6}
.ckbox .txt a{color:#1a73e8;text-decoration:none}
.link-plain{display:block;text-align:center;color:#8a4a4a;font-size:13.5px;font-weight:700;margin-top:12px;text-decoration:underline}
.tts-btn{display:inline-block;margin-left:8px;padding:2px 9px;border-radius:999px;background:#f3e8d8;font-size:12.5px;cursor:pointer;user-select:none;vertical-align:middle}
.tts-btn:active{transform:scale(.9)}
.gender-pick{display:flex;gap:14px;align-items:center;margin-left:8px}
.gbtn{width:44px;height:44px;border-radius:50%;border:2.5px solid #d8d0c2;background:#fff;font-size:19px;cursor:pointer;color:#999}
.gbtn.on-m{border-color:#4a90d9;color:#4a90d9;background:#eaf3fc}
.gbtn.on-f{border-color:#e7549f;color:#e7549f;background:#fdeef5}
.back-link{position:absolute;top:18px;left:18px;color:#8a7a68;font-size:14px;text-decoration:none;z-index:5}
.dob-row{display:flex;gap:10px;align-items:flex-end}
.dob-row .cell{flex:1}
.dob-row .f-input{text-align:center}
.policy-body{max-width:720px;margin:0 auto;padding:30px 22px 60px}
.policy-body h1{color:#4a3626;font-size:30px;margin:14px 0 20px}
.policy-body h3{color:#5a4632;font-size:17px;margin:22px 0 8px}
.policy-body p,.policy-body li{color:#5a5248;font-size:14.5px;line-height:1.9;margin-bottom:8px}
.policy-notice{background:#fdeef5;border-radius:14px;padding:14px 16px;margin:18px 0}
.policy-notice b{color:#8a4a4a}
