/* ============================================================
   云舟支付 · 登录 / 注册页样式（yz-auth）
   液态玻璃 · 桌面左介绍右表单 · 移动端单列
   ============================================================ */

:root{
  --ink:#08101f;
  --ink-2:#3a475c;
  --ink-3:#6d7b90;
  --line:rgba(15,35,80,.09);
  --bg:#f6f8fc;
  --blue:#2563eb;
  --blue-deep:#1a4fd6;
  --danger:#e11d48;
  --ok:#0f9d58;

  --glass-hi:rgba(255,255,255,.74);
  --glass-lo:rgba(255,255,255,.36);
  --glass-shadow:0 1px 0 rgba(255,255,255,.9) inset,
                 0 -1px 0 rgba(255,255,255,.34) inset,
                 0 28px 64px -30px rgba(12,30,70,.36),
                 0 10px 24px -16px rgba(12,30,70,.2);

  --radius:24px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --font:-apple-system,BlinkMacSystemFont,"SF Pro SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --mono:"SF Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;min-height:100vh;color:var(--ink);font-family:var(--font);
  font-size:15px;line-height:1.7;background:var(--bg);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin:0}
ul{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input{-webkit-appearance:none;appearance:none}

/* ---------- 背景 ---------- */
.bg-fx{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden;
  background:
    radial-gradient(980px 560px at 10% -6%, rgba(37,99,235,.15), transparent 62%),
    radial-gradient(820px 480px at 94% 2%, rgba(14,165,233,.13), transparent 60%),
    radial-gradient(700px 460px at 46% 104%, rgba(99,102,241,.11), transparent 62%),
    linear-gradient(180deg,#f9fbfe 0%,#f4f7fc 46%,#eef3fa 100%);
}
.bg-fx::before{
  content:"";position:absolute;inset:-30% -10%;
  background:
    radial-gradient(420px 300px at 20% 24%, rgba(56,132,255,.22), transparent 62%),
    radial-gradient(380px 260px at 80% 16%, rgba(0,198,255,.18), transparent 64%),
    radial-gradient(460px 320px at 60% 78%, rgba(120,119,255,.17), transparent 62%);
  filter:blur(30px);
  animation:drift 28s var(--ease) infinite alternate;
}
.bg-fx::after{
  content:"";position:absolute;inset:0;opacity:.28;
  background-image:
    linear-gradient(rgba(15,35,80,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15,35,80,.045) 1px, transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(ellipse 92% 74% at 50% 0%, #000 18%, transparent 78%);
  mask-image:radial-gradient(ellipse 92% 74% at 50% 0%, #000 18%, transparent 78%);
}
@keyframes drift{
  0%{transform:translate3d(-1.5%,-1%,0) scale(1)}
  50%{transform:translate3d(1.5%,1.5%,0) scale(1.05)}
  100%{transform:translate3d(-.5%,.5%,0) scale(1.02)}
}

/* ---------- 玻璃基件 ---------- */
.glass{
  position:relative;isolation:isolate;
  background:linear-gradient(148deg,var(--glass-hi),var(--glass-lo));
  -webkit-backdrop-filter:blur(26px) saturate(190%);
  backdrop-filter:blur(26px) saturate(190%);
  border-radius:var(--radius);
  box-shadow:var(--glass-shadow);
}
.glass::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;
  background:radial-gradient(125% 90% at 18% -10%, rgba(255,255,255,.92), rgba(255,255,255,0) 58%);
  opacity:.9;
}
.glass::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;padding:1px;
  background:linear-gradient(155deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.16) 34%, rgba(255,255,255,.06) 62%, rgba(255,255,255,.82) 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite:exclude;
}

/* ---------- 布局 ---------- */
.auth{
  display:grid;grid-template-columns:1.02fr .98fr;
  min-height:100vh;align-items:center;
  max-width:1320px;margin:0 auto;padding:48px 40px;gap:56px;
}

/* 左：介绍 */
.intro{padding:8px 0 8px 8px}
.brand{display:inline-flex;align-items:center;gap:11px}
.brand-mark{
  width:28px;height:28px;border-radius:10px;position:relative;flex:0 0 auto;
  background:linear-gradient(145deg,#3b82f6 8%,#2563eb 52%,#1e40af 100%);
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 -2px 6px rgba(0,0,0,.16) inset,0 8px 20px -8px rgba(37,99,235,.7);
}
.brand-mark::after{
  content:"";position:absolute;inset:6px;border-radius:3px;
  border:1.8px solid rgba(255,255,255,.94);border-bottom-color:rgba(255,255,255,.28);
}
.brand-name{font-size:17px;font-weight:680;letter-spacing:.01em}

.intro-eyebrow{
  display:inline-flex;align-items:center;gap:8px;margin-top:38px;padding:6px 13px;border-radius:100px;
  font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--blue);
  background:linear-gradient(150deg,rgba(255,255,255,.85),rgba(255,255,255,.45));
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.9);
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 8px 20px -14px rgba(12,30,70,.5);
}
.intro-eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.16)}
.intro h1{
  font-size:clamp(26px,3.1vw,40px);line-height:1.2;letter-spacing:-.028em;font-weight:700;margin-top:20px;
}
.intro h1 em{
  font-style:normal;
  background:linear-gradient(100deg,#1d4ed8,#3b82f6 44%,#22d3ee);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.intro-lead{color:var(--ink-2);font-size:15px;margin-top:16px;max-width:460px}

.points{margin-top:30px;display:grid;gap:16px;max-width:470px}
.point{display:flex;gap:13px;align-items:flex-start}
.point-ico{
  width:30px;height:30px;border-radius:9px;flex:0 0 auto;display:grid;place-items:center;
  font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--blue);
  background:linear-gradient(150deg,rgba(255,255,255,.95),rgba(219,234,254,.8));
  border:1px solid rgba(255,255,255,.95);
  box-shadow:0 1px 0 rgba(255,255,255,.95) inset,0 8px 18px -12px rgba(37,99,235,.7);
}
.point b{display:block;font-size:14.2px;font-weight:630}
.point span{display:block;font-size:13.2px;color:var(--ink-3);margin-top:3px;line-height:1.7}

.intro-stat{
  display:flex;gap:34px;margin-top:36px;padding-top:24px;border-top:1px solid var(--line);max-width:470px;
}
.stat-n{font-size:26px;font-weight:700;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums;
  background:linear-gradient(170deg,#0b1220,#27364d);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat-n small{font-size:.5em;font-weight:600;-webkit-text-fill-color:var(--ink-3);margin-left:2px}
.stat-l{font-size:12px;color:var(--ink-3);margin-top:7px}

.intro-ch{
  display:flex;flex-wrap:wrap;gap:7px;margin-top:26px;max-width:470px;
}
.chip{
  font-size:11.5px;color:var(--ink-2);padding:5px 11px;border-radius:8px;
  background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.9);
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset;
}
.chip i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;vertical-align:.06em}

/* 右：表单 */
.panel{display:flex;justify-content:center}
.card{
  width:100%;max-width:432px;padding:38px 36px 32px;
}
.card-head{text-align:center;margin-bottom:26px}
.card-head h2{font-size:22px;font-weight:680;letter-spacing:-.02em}
.card-head p{font-size:13.2px;color:var(--ink-3);margin-top:8px}

/* 登录方式 tab */
.tabs{
  display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin-bottom:20px;
  border-radius:12px;background:rgba(15,35,80,.05);
}
.tabs a{
  display:block;text-align:center;padding:9px 0;border-radius:9px;font-size:13.4px;font-weight:560;
  color:var(--ink-3);transition:all .22s var(--ease);
}
.tabs a.on{
  color:var(--ink);background:rgba(255,255,255,.92);
  box-shadow:0 1px 0 rgba(255,255,255,.95) inset,0 4px 12px -8px rgba(12,30,70,.5);
}

/* 输入框 */
.field{position:relative;margin-bottom:12px}
.field input{
  width:100%;height:48px;padding:0 16px;border-radius:13px;
  font-size:14.5px;color:var(--ink);
  background:linear-gradient(160deg,rgba(255,255,255,.86),rgba(255,255,255,.52));
  border:1px solid rgba(255,255,255,.95);
  box-shadow:0 1px 0 rgba(255,255,255,.95) inset,0 6px 16px -14px rgba(12,30,70,.5);
  transition:box-shadow .24s var(--ease),border-color .24s var(--ease),background .24s;
  outline:none;
}
.field input::placeholder{color:#9aa6b8}
.field input:focus{
  border-color:rgba(37,99,235,.5);
  background:linear-gradient(160deg,rgba(255,255,255,.98),rgba(255,255,255,.72));
  box-shadow:0 0 0 3px rgba(37,99,235,.12),0 1px 0 rgba(255,255,255,.95) inset;
}
.field input:-webkit-autofill{
  -webkit-box-shadow:0 0 0 1000px #fbfcfe inset;
  -webkit-text-fill-color:var(--ink);
}
/* 带按钮的输入（验证码） */
.field-row{display:flex;gap:9px}
.field-row .field{flex:1;margin-bottom:12px}
.sendcode{
  flex:0 0 auto;height:48px;padding:0 15px;border-radius:13px;font-size:13.2px;font-weight:560;
  color:var(--blue);white-space:nowrap;
  background:linear-gradient(160deg,rgba(255,255,255,.9),rgba(239,246,255,.7));
  border:1px solid rgba(37,99,235,.2);
  box-shadow:0 1px 0 rgba(255,255,255,.95) inset;
  transition:all .2s var(--ease);
}
.sendcode:hover{background:linear-gradient(160deg,#fff,rgba(219,234,254,.8));border-color:rgba(37,99,235,.34)}
.sendcode[data-lock="true"],.sendcode:disabled{color:var(--ink-3);border-color:rgba(15,35,80,.1);background:rgba(255,255,255,.5);cursor:not-allowed}

/* 按钮 */
.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:100%;height:50px;border-radius:14px;font-size:15px;font-weight:580;overflow:hidden;
  transition:transform .2s var(--ease-out),box-shadow .26s var(--ease),background .2s;
}
.btn:active{transform:translateY(1.5px) scale(.992)}
.btn-primary{
  color:#fff;border:1px solid rgba(255,255,255,.24);
  background:linear-gradient(160deg,#3b82f6,#2563eb 55%,#1d4ed8);
  box-shadow:0 1px 0 rgba(255,255,255,.45) inset,0 -2px 8px rgba(6,20,60,.28) inset,0 12px 28px -14px rgba(37,99,235,.75);
}
.btn-primary::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(115deg,transparent 28%,rgba(255,255,255,.42) 46%,transparent 62%);
  transform:translateX(-120%);transition:transform .7s var(--ease);
}
.btn-primary:hover::after{transform:translateX(120%)}
.btn-primary:disabled{opacity:.55;cursor:not-allowed}
.btn[data-lock="true"]{opacity:.6;pointer-events:none}
.btn-ghost{
  color:var(--ink-2);margin-top:10px;
  background:linear-gradient(160deg,rgba(255,255,255,.78),rgba(255,255,255,.42));
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.9);
  box-shadow:0 1px 0 rgba(255,255,255,.95) inset;
}
.btn-ghost:hover{color:var(--ink)}

/* 行内链接 */
.links{display:flex;justify-content:space-between;align-items:center;margin-top:16px;font-size:13.2px}
.links a{color:var(--blue)}
.links a:hover{text-decoration:underline}
.links .muted{color:var(--ink-3)}

/* 分割线 */
.divider{position:relative;text-align:center;margin:24px 0 18px}
.divider::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--line)}
.divider span{position:relative;padding:0 12px;font-size:12px;color:var(--ink-3);background:transparent}

/* 快捷登录 */
.oauth{display:flex;justify-content:center;gap:12px}
.oauth button{
  width:46px;height:46px;border-radius:13px;display:grid;place-items:center;
  background:linear-gradient(160deg,rgba(255,255,255,.9),rgba(255,255,255,.5));
  border:1px solid rgba(255,255,255,.95);
  box-shadow:0 1px 0 rgba(255,255,255,.95) inset,0 8px 18px -14px rgba(12,30,70,.5);
  transition:transform .2s var(--ease-out),box-shadow .24s;
}
.oauth button:hover{transform:translateY(-2px);box-shadow:0 1px 0 rgba(255,255,255,.98) inset,0 14px 24px -16px rgba(12,30,70,.6)}
.oauth svg{width:22px;height:22px}

/* 验证码容器（极验） */
.captcha-wrap{margin:6px 0 4px}
#captcha{min-height:0}
#captcha_wait{display:none;padding:12px 0}
.loading{display:flex;gap:6px;justify-content:center}
.loading-dot{width:7px;height:7px;border-radius:50%;background:var(--blue);opacity:.3;animation:blink 1s infinite}
.loading-dot:nth-child(2){animation-delay:.15s}
.loading-dot:nth-child(3){animation-delay:.3s}
.loading-dot:nth-child(4){animation-delay:.45s}
@keyframes blink{0%,100%{opacity:.25;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}

/* 提示条 */
.notice{
  display:flex;gap:10px;padding:13px 15px;border-radius:12px;margin-bottom:16px;
  font-size:13px;line-height:1.7;color:var(--ink-2);
  background:linear-gradient(150deg,rgba(255,255,255,.8),rgba(255,255,255,.42));
  border:1px solid rgba(255,255,255,.92);
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset;
}
.notice b{color:var(--ink)}
.notice.warn{background:linear-gradient(150deg,rgba(255,251,235,.9),rgba(255,247,224,.6));border-color:rgba(245,158,11,.26)}
.notice.warn .ico{color:#b45309}

/* 注册页补充块 */
.sub-head{
  display:flex;align-items:center;gap:8px;margin:24px 0 12px;
  font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:600;
}
.sub-head::after{content:"";flex:1;height:1px;background:var(--line)}

.steps-mini{display:grid;gap:10px;margin-bottom:4px}
.steps-mini li{display:flex;gap:10px;font-size:13.2px;color:var(--ink-2);line-height:1.68}
.steps-mini .n{
  flex:0 0 auto;width:20px;height:20px;border-radius:6px;display:grid;place-items:center;
  font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--blue);
  background:rgba(37,99,235,.09);border:1px solid rgba(37,99,235,.16);margin-top:2px;
}

/* 免责协议勾选 */
.agree{
  display:flex;gap:10px;align-items:flex-start;margin:18px 0 6px;font-size:13px;color:var(--ink-2);line-height:1.7;
}
.agree input[type="checkbox"]{
  flex:0 0 auto;width:17px;height:17px;margin-top:2px;border-radius:5px;cursor:pointer;
  border:1.5px solid rgba(15,35,80,.22);background:#fff;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset;position:relative;transition:all .18s var(--ease);
}
.agree input[type="checkbox"]:checked{
  background:var(--blue);border-color:var(--blue);
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5l3 3 6-6'/%3E%3C/svg%3E");
  background-size:13px;background-repeat:no-repeat;background-position:center;
}
.agree label{cursor:pointer}
.agree a{color:var(--blue);text-decoration:underline}

/* 免责协议展开 */
.terms{margin-top:12px;border-radius:13px;overflow:hidden;
  background:linear-gradient(150deg,rgba(255,255,255,.72),rgba(255,255,255,.4));
  border:1px solid rgba(255,255,255,.9);box-shadow:0 1px 0 rgba(255,255,255,.9) inset}
.terms summary{
  padding:12px 15px;font-size:13px;font-weight:560;color:var(--ink-2);cursor:pointer;list-style:none;
  display:flex;align-items:center;justify-content:space-between;
}
.terms summary::-webkit-details-marker{display:none}
.terms summary::after{content:"展开";font-size:11.5px;color:var(--blue);font-weight:500}
.terms[open] summary::after{content:"收起"}
.terms-body{
  max-height:250px;overflow-y:auto;padding:0 15px 15px;font-size:12.6px;color:var(--ink-3);line-height:1.78;
}
.terms-body h4{font-size:12.8px;color:var(--ink-2);margin:12px 0 4px;font-weight:620}
.terms-body h4:first-child{margin-top:0}
.terms-body p{margin:0 0 6px}
.terms-body::-webkit-scrollbar{width:5px}
.terms-body::-webkit-scrollbar-thumb{background:rgba(15,35,80,.14);border-radius:3px}

/* 页脚 */
.auth-foot{text-align:center;margin-top:22px;font-size:12px;color:var(--ink-3)}
.auth-foot a{color:var(--ink-3)}
.auth-foot a:hover{color:var(--blue)}

/* ---------- 移动端 ---------- */
@media (max-width:980px){
  .auth{grid-template-columns:1fr;gap:0;padding:0;max-width:none;min-height:100vh;align-items:flex-start}
  .intro{display:none}
  .panel{
    width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;
    padding:32px 18px 40px;
  }
  .card{
    max-width:460px;padding:30px 24px 26px;border-radius:22px;
  }
  .mobile-brand{display:flex !important}
}
@media (min-width:981px){
  .mobile-brand{display:none !important}
}
@media (max-width:768px){
  body{font-size:14.5px}
  .card-head{margin-bottom:22px}
  .card-head h2{font-size:20px}
  .field input,.sendcode{height:46px}
  .btn{height:48px}
  .terms-body{max-height:200px}
}
/* 移动端顶部品牌条 */
.mobile-brand{
  display:none;align-items:center;justify-content:center;gap:10px;margin-bottom:24px;
}
.mobile-brand .brand-mark{width:26px;height:26px;border-radius:9px}

/* 无 JS 兜底 */
.nojs{padding:16px;margin-bottom:16px;border-radius:12px;background:#fff3f4;color:#b91c1c;font-size:13px}

/* 减少动效 */
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
  .bg-fx::before{animation:none}
}
