/* ===== AUTH / ONBOARDING SHELL ===== */
.ad-auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0F172A 0%,#123049 55%,#0E3D5C 100%);padding:40px 16px;position:relative;overflow:hidden}
.ad-auth-page::before{content:'';position:absolute;top:-120px;left:-100px;width:380px;height:380px;background:radial-gradient(circle,rgba(15,112,169,.28),transparent 70%);pointer-events:none}
.ad-auth-page::after{content:'';position:absolute;bottom:-140px;right:-100px;width:420px;height:420px;background:radial-gradient(circle,rgba(59,130,246,.18),transparent 70%);pointer-events:none}

.ad-auth-card{width:100%;max-width:560px;background:var(--surface);border-radius:22px;box-shadow:0 20px 60px rgba(0,0,0,.3);overflow:hidden;position:relative;z-index:1}

.ad-auth-brand{display:flex;flex-direction:column;align-items:center;gap:6px;padding:28px 32px 0;text-align:center}
.ad-auth-logo-img{height:40px;width:auto}
.ad-auth-brand b{font-size:16px;font-weight:800;color:var(--t1);letter-spacing:-.2px}
.ad-auth-brand span{display:block;font-size:10.5px;font-weight:600;color:var(--t3);letter-spacing:.3px}

/* stepper */
.ad-stepper{display:flex;align-items:flex-start;padding:26px 32px 6px}
.ad-step-node{display:flex;flex-direction:column;align-items:center;gap:7px;flex:1;position:relative}
.ad-step-node::before{content:'';position:absolute;top:14px;left:-50%;width:100%;height:2px;background:var(--border);z-index:0}
.ad-step-node:first-child::before{display:none}
.ad-step-node.done::before{background:var(--purple)}
.ad-step-circle{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;border:2px solid var(--border);color:var(--t3);background:#fff;z-index:1;transition:all .2s ease}
.ad-step-node.active .ad-step-circle{border-color:var(--purple);color:var(--purple);box-shadow:0 0 0 4px rgba(15,112,169,.12)}
.ad-step-node.done .ad-step-circle{background:var(--purple);border-color:var(--purple);color:#fff}
.ad-step-label{font-size:10px;font-weight:700;color:var(--t3);text-align:center;letter-spacing:.2px}
.ad-step-node.active .ad-step-label,.ad-step-node.done .ad-step-label{color:var(--t1)}

.ad-auth-body{padding:12px 32px 32px}
.ad-auth-panel{display:none}
.ad-auth-panel.active{display:block;animation:adFadeIn .25s ease}
@keyframes adFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

.ad-auth-title{font-size:19px;font-weight:800;color:var(--t1);margin:0 0 4px}
.ad-auth-sub{font-size:12.5px;font-weight:500;color:var(--t3);line-height:1.6;margin:0 0 22px}
.ad-auth-sub b{color:var(--t1)}

.ad-pw-wrap{position:relative}
.ad-pw-wrap input{padding-right:42px}
.ad-pw-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--t3);font-size:15px;cursor:pointer}
.ad-pw-toggle:hover{color:var(--t2)}

.ad-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:480px){.ad-form-row{grid-template-columns:1fr}}

.ad-check-row{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;color:var(--t2);font-weight:500;margin-bottom:12px;cursor:pointer;line-height:1.5}
.ad-check-row input{margin-top:3px;width:15px;height:15px;accent-color:var(--purple);flex-shrink:0}
.ad-check-row a{color:var(--purple);font-weight:700}
.ad-check-row a:hover{text-decoration:underline}

.ad-auth-footnote{text-align:center;font-size:12.5px;font-weight:500;color:var(--t3);margin-top:18px}
.ad-auth-footnote a{color:var(--purple);font-weight:700}
.ad-auth-footnote a:hover{text-decoration:underline}

.ad-auth-icon-hero{width:76px;height:76px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;margin:6px auto 20px}
.ad-auth-center{text-align:center}

.ad-field-hint{font-size:11px;font-weight:600;color:var(--t3);margin-top:5px}
.ad-field-hint.err{color:var(--red)}
.ad-field-hint.ok{color:var(--green)}

@media(max-width:576px){
  .ad-auth-brand,.ad-auth-body,.ad-stepper{padding-left:20px;padding-right:20px}
  .ad-step-label{display:none}
}
