/* VP3 Auth Pages — signin.html & signup.html — Two-Column Dark/Light */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700;900&family=IBM+Plex+Mono:wght@400;600;700&family=Archivo+Black&family=JetBrains+Mono:wght@400;600;700;800&display=swap');
*{margin:0;padding:0;box-sizing:border-box}
:root{--auth-dark:#0a0e1a;--auth-dark2:#111827;--auth-ac:#6366f1;--auth-gn:#22c55e;--auth-mono:'JetBrains Mono','IBM Plex Mono',monospace;--auth-hd:'Archivo Black',sans-serif;--auth-bd:'DM Sans',sans-serif}
body.vp3-auth{font-family:var(--auth-bd);background:var(--auth-dark);color:#111;min-height:100vh;display:flex;flex-direction:column}

/* ── Nav ── */
.auth-nav{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--auth-dark);border-bottom:1px solid rgba(255,255,255,.06)}
.auth-logo{font-family:var(--auth-mono);font-size:20px;font-weight:900;color:#fff;text-decoration:none;letter-spacing:-0.5px}
.auth-logo b{color:#fff}
.auth-nav-link{font-size:12px;color:rgba(255,255,255,.4);text-decoration:none;transition:color .2s}
.auth-nav-link:hover{color:#fff}

/* ── Two-Column Layout ── */
.auth-main{flex:1;display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 53px)}

/* Left panel — dark branding */
.auth-brand{background:var(--auth-dark);display:flex;align-items:center;justify-content:center;padding:48px;position:relative;overflow:hidden}
.auth-brand::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.03) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}
.auth-brand::after{content:"";position:absolute;top:30%;left:50%;transform:translate(-50%,-50%);width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(99,102,241,.1) 0%,transparent 60%);filter:blur(60px);pointer-events:none}
.auth-brand-inner{position:relative;z-index:1;max-width:380px}
.auth-brand-logo{font-family:var(--auth-mono);font-size:48px;font-weight:900;color:#fff;margin-bottom:24px;letter-spacing:-.04em}
.auth-brand-logo span{color:var(--auth-ac)}
.auth-brand-h2{font-family:var(--auth-hd);font-size:24px;color:#fff;text-transform:uppercase;letter-spacing:.02em;line-height:1.15;margin-bottom:16px}
.auth-brand-sub{font-size:14px;color:rgba(255,255,255,.4);line-height:1.75;margin-bottom:40px}
.auth-brand-features{display:flex;flex-direction:column;gap:14px}
.auth-brand-feat{display:flex;align-items:center;gap:12px;font-size:13px;color:rgba(255,255,255,.55)}
.auth-brand-feat-ico{width:32px;height:32px;border-radius:8px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:rgba(255,255,255,.4)}

/* Right panel — form */
.auth-form-panel{background:#fff;display:flex;align-items:center;justify-content:center;padding:48px 40px;overflow-y:auto}
.auth-card{width:100%;max-width:420px}
.auth-card h1{font-size:24px;font-weight:900;margin-bottom:8px;color:#000;font-family:var(--auth-hd)}
.auth-subtitle{font-size:13px;color:#666;margin-bottom:24px;line-height:1.5}
.auth-status{font-size:12px;padding:8px 12px;border-radius:8px;margin-bottom:16px;display:none}
.auth-status.error{display:block;background:#fef2f2;color:#dc2626;border:1px solid #fecaca}
.auth-status.success{display:block;background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}
.auth-status.info{display:block;background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe}
.auth-form{display:flex;flex-direction:column;gap:16px}
.auth-field{display:flex;flex-direction:column;gap:6px}
.auth-field label{font-size:11px;font-weight:700;color:#555;text-transform:uppercase;letter-spacing:0.5px;font-family:var(--auth-mono)}
.auth-field input,.auth-field select{padding:12px 14px;background:#fafafa;border:1px solid #e5e5e5;border-radius:10px;color:#111;font-size:14px;outline:none;transition:border-color .2s;width:100%;font-family:var(--auth-bd)}
.auth-field input:focus,.auth-field select:focus{border-color:var(--auth-ac);background:#fff;box-shadow:0 0 0 3px rgba(99,102,241,.08)}
.auth-field input::placeholder{color:#bbb}
.auth-row{display:flex;gap:12px}
.auth-row .auth-field{flex:1}
.auth-btn{padding:14px;border:none;border-radius:10px;font-size:14px;font-weight:800;cursor:pointer;transition:all .2s;width:100%;font-family:var(--auth-hd);text-transform:uppercase;letter-spacing:.03em}
.auth-btn-primary{background:var(--auth-dark);color:#fff}
.auth-btn-primary:hover{opacity:.85;transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,0,0,.15)}
.auth-btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none}
.auth-footer-text{text-align:center;font-size:12px;color:#888;margin-top:20px}
.auth-footer-text a{color:var(--auth-ac);text-decoration:none;font-weight:700}
.auth-footer-text a:hover{text-decoration:underline}
.auth-page-footer{text-align:center;font-size:11px;color:#999;padding:16px}
.auth-divider{display:flex;align-items:center;gap:12px;margin:8px 0;color:#999;font-size:11px;font-family:var(--auth-mono)}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:#e5e5e5}
#passwordStrength{height:3px;border-radius:2px;margin-top:4px;transition:all .3s}
#strengthText{font-size:10px;margin-top:2px;font-family:var(--auth-mono)}
#usernameStatus{min-height:20px;margin-top:4px}
.auth-hint{font-size:10px;color:#999;margin-top:2px;font-family:var(--auth-mono)}
.agent-preview{display:flex;align-items:center;gap:12px;padding:14px;background:#fafafa;border:1px solid #e5e5e5;border-radius:12px}
.agent-dot{width:36px;height:36px;border-radius:50%;background:var(--auth-dark);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:900;flex-shrink:0}
.agent-info{flex:1}
.agent-name{font-size:13px;font-weight:700;color:#111}
.agent-role{font-size:10px;color:#888;font-family:var(--auth-mono)}
.auth-expand{margin-top:4px}
.auth-expand-toggle{display:flex;align-items:center;gap:6px;background:none;border:none;color:#666;font-size:12px;cursor:pointer;padding:4px 0}
.auth-expand-toggle:hover{color:#000}
.auth-expand-toggle .arrow{font-size:8px;transition:transform .2s}
.auth-expand-toggle.open .arrow{transform:rotate(90deg)}
.auth-expand-body{display:none;margin-top:12px;display:flex;flex-direction:column;gap:12px}
.auth-expand-body:not(.open){display:none}
.auth-expand-body.open{display:flex}

/* ── Mobile: stack columns ── */
@media(max-width:768px){
  .auth-main{grid-template-columns:1fr}
  .auth-brand{display:none}
  .auth-form-panel{padding:32px 20px;min-height:calc(100vh - 53px)}
  .auth-nav{background:var(--auth-dark)}
}
