/* 台球云管家 - 登录/注册页 */
*{box-sizing:border-box;margin:0;padding:0}
body.auth-page{font-family:"Microsoft YaHei","PingFang SC",sans-serif;background:#f4f6fb;min-height:100vh;display:flex}
.auth-left{flex:1.1;background:linear-gradient(150deg,#0b3b2e 0%,#0e5c42 55%,#127051 100%);color:#fff;padding:56px 60px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.auth-left::after{content:"";position:absolute;right:-120px;bottom:-120px;width:420px;height:420px;border-radius:50%;background:rgba(255,255,255,.06)}
.auth-left::before{content:"";position:absolute;right:60px;top:-90px;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.05)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;margin-bottom:48px}
.brand-mark{width:40px;height:40px;border-radius:11px;background:linear-gradient(135deg,#22c55e,#059669);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:19px;color:#fff;box-shadow:0 6px 16px rgba(16,185,129,.4)}
.brand-name{font-size:17px;font-weight:700;letter-spacing:.5px}
.auth-left h1{font-size:34px;line-height:1.35;letter-spacing:1px;animation:fadeUp .6s ease both}
.auth-left .sub{margin-top:14px;font-size:14.5px;line-height:1.8;opacity:.88;max-width:430px;animation:fadeUp .6s .1s ease both}
.feat{list-style:none;margin-top:34px;display:flex;flex-direction:column;gap:16px}
.feat li{display:flex;flex-direction:column;gap:3px;padding-left:18px;position:relative;animation:fadeUp .6s ease both}
.feat li:nth-child(1){animation-delay:.15s}.feat li:nth-child(2){animation-delay:.25s}.feat li:nth-child(3){animation-delay:.35s}.feat li:nth-child(4){animation-delay:.45s}
.feat li::before{content:"";position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:50%;background:#34d399}
.feat b{font-size:15px}
.feat span{font-size:12.5px;opacity:.72}
.auth-foot{margin-top:auto;font-size:12px;opacity:.6}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.auth-right{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 24px}
.auth-card{width:100%;max-width:400px;background:#fff;border-radius:16px;padding:38px 36px;box-shadow:0 18px 50px rgba(15,23,42,.08);animation:fadeUp .5s ease both}
.auth-card h2{font-size:22px;color:#111827}
.auth-card .tip{color:#8a94a6;font-size:13px;margin:6px 0 20px}
.alert{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:8px;padding:9px 12px;font-size:13px;margin-bottom:14px;animation:shake .3s}
@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.form-item{margin-bottom:14px}
.form-item label{display:block;font-size:13px;color:#4b5563;margin-bottom:6px}
.form-item label b{color:#ef4444}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.input{width:100%;border:1px solid #d7dee9;border-radius:9px;padding:11px 13px;font-size:14px;transition:.2s;font-family:inherit}
.input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.14)}
.btn{border:none;border-radius:9px;padding:11px 18px;font-size:14px;cursor:pointer;transition:.2s;font-family:inherit;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.btn-primary{background:linear-gradient(120deg,#1d4ed8,#2563eb);color:#fff}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(37,99,235,.35)}
.btn-block{width:100%;margin-top:8px}
.auth-links{display:flex;justify-content:space-between;margin-top:18px;font-size:13px}
.auth-links a{color:#2563eb;text-decoration:none}
.auth-links a:hover{text-decoration:underline}
.ok-box{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:14px 16px;font-size:14px;color:#166534;margin-bottom:16px;line-height:1.9}
.demo-tip{margin-top:22px;font-size:12px;color:#a0a8b8;background:#f8fafc;border-radius:8px;padding:8px 12px;text-align:center}
@media (max-width:860px){
  body.auth-page{flex-direction:column}
  .auth-left{padding:36px 28px}
  .auth-left h1{font-size:26px}
  .auth-left .feat{display:none}
}
