:root{
  --gold:#C9A84C;--gold-light:#E8C96A;--gold-dark:#9A7A2E;
  --bg:#0A0A0F;--surface:#111118;--surface2:#1A1A24;--surface3:#22222F;
  --border:rgba(201,168,76,0.15);--text:#F0EDE6;--text-muted:#7A7A8A;
  --success:#2ECC71;--error:#E74C3C;--warning:#F39C12;
}
*{margin:0;padding:0;box-sizing:border-box}
body{
  font-family:'Cairo',sans-serif;background:var(--bg);color:var(--text);
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  padding:24px;overflow-x:hidden;direction:rtl;
}
body::before{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(ellipse 80% 50% at 20% 10%,rgba(201,168,76,0.06) 0%,transparent 60%),
    radial-gradient(ellipse 60% 40% at 80% 90%,rgba(201,168,76,0.04) 0%,transparent 50%);
}
.auth-card{
  position:relative;z-index:1;width:100%;max-width:440px;
  background:var(--surface);border:1px solid var(--border);border-radius:20px;
  padding:40px 36px;
  box-shadow:0 24px 64px rgba(0,0,0,0.5),0 0 0 1px rgba(201,168,76,0.08);
}
.auth-logo{text-align:center;margin-bottom:28px}
.auth-logo img{height:56px;filter:drop-shadow(0 0 12px rgba(201,168,76,0.3));margin-bottom:14px}
.auth-brand{font-size:18px;font-weight:700;color:var(--gold);letter-spacing:0.5px}
.auth-sub{font-size:11px;color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;margin-top:4px}
.auth-title{font-size:22px;font-weight:700;color:var(--text);text-align:center;margin-bottom:8px}
.auth-desc{font-size:13px;color:var(--text-muted);text-align:center;margin-bottom:28px;line-height:1.7}
.auth-desc strong{color:var(--gold)}
.field{margin-bottom:18px}
.field-label{font-size:12px;color:var(--text-muted);margin-bottom:8px;letter-spacing:0.5px;display:block}
.field-input{
  width:100%;background:var(--surface2);border:1px solid var(--border);
  color:var(--text);padding:12px 16px;border-radius:10px;
  font-family:'Cairo',sans-serif;font-size:14px;outline:none;
  transition:border-color 0.2s,background 0.2s;direction:rtl;
}
.field-input:focus{border-color:var(--gold);background:var(--surface3)}
.field-input.otp{
  font-family:'JetBrains Mono',monospace;font-size:28px;text-align:center;
  letter-spacing:14px;padding:18px 16px;
}
.btn-primary{
  width:100%;background:linear-gradient(135deg,var(--gold-dark),var(--gold));
  color:#0A0A0F;border:none;padding:14px;border-radius:10px;
  font-family:'Cairo',sans-serif;font-size:15px;font-weight:700;cursor:pointer;
  transition:transform 0.15s,box-shadow 0.2s;display:flex;align-items:center;
  justify-content:center;gap:10px;margin-top:8px;
}
.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 24px rgba(201,168,76,0.3)}
.btn-primary:disabled{opacity:0.5;cursor:not-allowed}
.btn-secondary{
  background:transparent;color:var(--text-muted);border:none;padding:10px;
  font-family:'Cairo',sans-serif;font-size:13px;cursor:pointer;margin-top:12px;
  width:100%;transition:color 0.2s;
}
.btn-secondary:hover{color:var(--gold)}
.spinner{
  width:16px;height:16px;border:2px solid rgba(0,0,0,0.3);
  border-top-color:#000;border-radius:50%;animation:spin 0.8s linear infinite;display:none;
}
.btn-primary.loading .spinner{display:block}
.btn-primary.loading .btn-text{opacity:0.7}
@keyframes spin{to{transform:rotate(360deg)}}
.alert{
  padding:12px 16px;border-radius:10px;font-size:13px;margin-bottom:18px;
  display:none;line-height:1.6;
}
.alert.visible{display:block}
.alert.error{background:rgba(231,76,60,0.1);border:1px solid rgba(231,76,60,0.3);color:#F5B7B1}
.alert.success{background:rgba(46,204,113,0.1);border:1px solid rgba(46,204,113,0.3);color:#ABEBC6}
.alert.info{background:rgba(52,152,219,0.1);border:1px solid rgba(52,152,219,0.3);color:#AED6F1}
.countdown-otp{
  text-align:center;margin-top:14px;font-size:12px;color:var(--text-muted);
  font-family:'JetBrains Mono',monospace;
}
.countdown-otp strong{color:var(--gold)}
.auth-footer{text-align:center;margin-top:24px;font-size:11px;color:var(--text-muted)}
.g-recaptcha{margin:14px 0;display:flex;justify-content:center}

@media(max-width:480px){
  .auth-card{padding:28px 20px}
  .field-input.otp{font-size:22px;letter-spacing:10px}
}
