/* ============================================================================
 * V15 · Aurora Noir — AUTH (login / register) full-screen portal
 * ==========================================================================*/
.v15-app.auth { min-height: 100vh; display: flex; flex-direction: column; }

/* HUD bar */
.au-hud { display: flex; align-items: center; justify-content: space-between; padding: calc(12px + var(--v15-safe-t)) var(--v15-s4) 12px; font-family: var(--v15-mono); font-size: 10px; color: var(--v15-txt-3); letter-spacing: 0.5px; }
.au-hud-left { display: inline-flex; align-items: center; gap: 6px; }
.au-hud-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--v15-up); box-shadow: 0 0 8px var(--v15-up); animation: v15-pulse 2.4s ease-in-out infinite; }
.au-hud-right { display: inline-flex; align-items: center; gap: 10px; }
.au-hud-clock { color: var(--v15-a1); font-variant-numeric: tabular-nums; }

.au-wrap { flex: 1; display: flex; flex-direction: column; justify-content: center; padding: var(--v15-s4) var(--v15-s5); }

/* hero */
.au-hero { text-align: center; margin-bottom: var(--v15-s5); }
.au-logo { width: 66px; height: 66px; margin: 0 auto var(--v15-s4); border-radius: 20px; display: flex; align-items: center; justify-content: center; overflow: hidden; font-size: var(--v15-fs-2xl); font-weight: 900; color: #050507; background: var(--v15-aurora); box-shadow: 0 12px 34px rgba(var(--v15-a2-rgb),0.5); animation: v15-float 5s ease-in-out infinite; }
.au-logo img { width: 100%; height: 100%; object-fit: cover; }
.au-tag { display: inline-block; padding: 4px 12px; border-radius: var(--v15-r-pill); font-size: var(--v15-fs-xs); font-weight: 800; color: var(--v15-gold); background: rgba(232,195,107,0.12); border: 1px solid rgba(232,195,107,0.3); }
.au-title { font-size: var(--v15-fs-3xl); font-weight: 800; letter-spacing: -0.6px; margin-top: var(--v15-s3); }
.au-sub { font-size: var(--v15-fs-sm); color: var(--v15-txt-2); margin-top: 6px; }

/* card */
.au-card { background: var(--v15-surface); border: 1px solid var(--v15-line); border-radius: var(--v15-r-xl); padding: var(--v15-s5); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); box-shadow: var(--v15-shadow); position: relative; }
.au-card::before { content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1px; background: var(--v15-aurora); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0.4; pointer-events: none; }
.au-tabs { display: flex; padding: 4px; gap: 2px; background: var(--v15-surface); border: 1px solid var(--v15-line); border-radius: var(--v15-r-md); margin-bottom: var(--v15-s5); }
.au-tab { flex: 1; text-align: center; height: 38px; line-height: 38px; border-radius: var(--v15-r-sm); font-size: var(--v15-fs-sm); font-weight: 800; color: var(--v15-txt-3); transition: color var(--v15-t-mid), background var(--v15-t-mid); }
.au-tab.active { color: #050507; background: var(--v15-aurora); box-shadow: 0 4px 14px rgba(var(--v15-a2-rgb),0.4); }

.au-field { margin-bottom: var(--v15-s4); }
.au-label { font-size: var(--v15-fs-xs); color: var(--v15-txt-3); font-weight: 700; letter-spacing: 0.4px; text-transform: uppercase; margin-bottom: 6px; }
.au-input { display: flex; align-items: center; gap: var(--v15-s2); height: 50px; padding: 0 var(--v15-s4); background: var(--v15-surface-2); border: 1px solid var(--v15-line); border-radius: var(--v15-r-md); transition: border-color var(--v15-t-fast), box-shadow var(--v15-t-mid); }
.au-input:focus-within { border-color: rgba(var(--v15-a1-rgb),0.6); box-shadow: 0 0 0 4px rgba(var(--v15-a1-rgb),0.12); }
.au-input-ic { color: var(--v15-txt-3); flex-shrink: 0; display: flex; }
.au-input:focus-within .au-input-ic { color: var(--v15-a1); }
.au-input-ic i.layui-icon { font-size: 17px; }
.au-input-prefix { color: var(--v15-txt-2); font-weight: 700; flex-shrink: 0; font-variant-numeric: tabular-nums; }
.au-input input { flex: 1; min-width: 0; font-size: var(--v15-fs-md); font-weight: 600; color: var(--v15-txt); background: transparent; }
.au-input input::placeholder { color: var(--v15-txt-4); font-weight: 400; }
.au-eye { flex-shrink: 0; color: var(--v15-txt-3); cursor: pointer; display: flex; }
.au-eye:hover { color: var(--v15-a1); }
.au-eye i.layui-icon { font-size: 17px; }
.au-otp-btn { flex-shrink: 0; padding: 6px 12px; border-radius: var(--v15-r-pill); font-size: var(--v15-fs-xs); font-weight: 800; color: #050507; background: var(--v15-aurora); border: 0; transition: transform var(--v15-t-fast) var(--v15-ease); }
.au-otp-btn:active { transform: scale(0.92); }
.au-otp-btn.disabled { background: var(--v15-surface-3); color: var(--v15-txt-3); pointer-events: none; }

.au-submit { width: 100%; height: 52px; margin-top: var(--v15-s2); border-radius: var(--v15-r-lg); font-size: var(--v15-fs-lg); font-weight: 800; color: #050507; background: var(--v15-aurora); border: 0; display: flex; align-items: center; justify-content: center; gap: 8px; box-shadow: 0 10px 30px rgba(var(--v15-a2-rgb),0.5); position: relative; overflow: hidden; transition: transform var(--v15-t-fast) var(--v15-ease), filter var(--v15-t-fast); }
.au-submit:active { transform: scale(0.98); }
.au-submit:hover { filter: brightness(1.08); }
.au-submit:disabled { opacity: 0.7; }
.au-submit i.layui-icon { font-size: 17px; }
.au-foot { text-align: center; margin-top: var(--v15-s4); font-size: var(--v15-fs-sm); color: var(--v15-txt-3); }
.au-foot a { color: var(--v15-a1); font-weight: 700; }

.au-legal { text-align: center; padding: var(--v15-s4) var(--v15-s5) calc(var(--v15-s5) + var(--v15-safe-b)); font-size: var(--v15-fs-xs); color: var(--v15-txt-4); line-height: 1.6; }
.au-legal a { color: var(--v15-txt-3); }
.au-legal .sep { margin: 0 6px; opacity: 0.5; }
