/* AdNeed platform stylesheet — tokens and patterns per adneed-style-guide.html.
   Applies ONLY to AdNeed's own surfaces (dashboard, admin, marketing, auth) —
   never forced onto individual business portfolios. */
:root{
  --navy-900:#0F1B2E; --navy-700:#1B2C45;
  --orange-500:#E8491D; --amber-400:#F5A623; --blue-500:#1CA8DD; --blue-700:#1478A8;
  --bg:#FAFAFA; --surface:#FFFFFF; --border:#E7E9EE;
  --text:#0F1B2E; --text-muted:#6B7280;
  --success:#1F9D55; --warning:#E8A317; --error:#D64545;
  --grad: linear-gradient(135deg, var(--amber-400), var(--orange-500));
}
*{box-sizing:border-box;}
body{margin:0; background:var(--bg); color:var(--text); font-family:'Manrope',sans-serif;}
h1,h2,h3{font-family:'Sora',sans-serif; margin:0;}

.auth-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px;}
.auth-card{background:var(--surface); border:1px solid var(--border); border-radius:20px;
  box-shadow:0 1px 2px rgba(15,27,46,.06), 0 8px 24px rgba(15,27,46,.04);
  padding:36px 32px; width:100%; max-width:400px;}
.auth-logo{display:block; margin:0 auto 20px; height:56px; border-radius:50%; object-fit:cover; aspect-ratio:1/1;}
.auth-card h1{font-size:22px; font-weight:700; text-align:center; margin-bottom:6px;}
.auth-card p.sub{color:var(--text-muted); font-size:14px; text-align:center; margin:0 0 24px;}

label{display:block; font-size:12px; font-weight:600; color:var(--text-muted);
  text-transform:uppercase; letter-spacing:.5px; margin-bottom:6px;}
.field{margin-bottom:16px;}
.input-row{position:relative;}
input[type=text], input[type=email], input[type=password], input[type=tel]{
  width:100%; padding:12px 14px; border-radius:12px; border:1.5px solid var(--border);
  font-family:'Manrope',sans-serif; font-size:14px; background:var(--surface); color:var(--text);
}
input:focus{outline:none; border-color:var(--orange-500);}
.input-icon{position:absolute; left:12px; top:50%; transform:translateY(-50%); width:18px; height:18px;}
.input-with-icon{padding-left:40px !important;}
.input-prefix{position:absolute; left:38px; top:50%; transform:translateY(-50%); color:var(--text-muted, #666); font-weight:600; pointer-events:none;}
.input-with-prefix{padding-left:70px !important;}

.btn{font-family:'Sora',sans-serif; font-weight:600; font-size:14px; padding:13px 24px;
  border-radius:12px; border:none; cursor:pointer; width:100%; margin-bottom:10px;
  transition:transform .15s ease, box-shadow .15s ease; display:flex; align-items:center;
  justify-content:center; gap:10px;}
.btn:hover{transform:translateY(-1px);}
.btn:disabled{opacity:.6; cursor:not-allowed; transform:none;}
.btn-primary{background:var(--grad); color:#fff; box-shadow:0 6px 18px rgba(232,73,29,.25);}
.btn-secondary{background:transparent; color:var(--navy-900); border:1.5px solid var(--navy-900);}
.btn-google{background:var(--surface); color:var(--text); border:1.5px solid var(--border);}

.divider{display:flex; align-items:center; gap:12px; margin:18px 0; color:var(--text-muted); font-size:12px;}
.divider::before, .divider::after{content:''; flex:1; height:1px; background:var(--border);}

.auth-footer{text-align:center; font-size:13px; color:var(--text-muted); margin-top:18px;}
.auth-footer a{color:var(--orange-500); font-weight:600; text-decoration:none;}

.alert{border-radius:12px; padding:12px 14px; font-size:13px; margin-bottom:16px;}
.alert-error{background:#FDECEC; color:var(--error); border:1px solid #F5C6C6;}
.alert-success{background:#E9F7EF; color:var(--success); border:1px solid #C3E9D0;}
.alert-info{background:#EAF6FB; color:var(--blue-700); border:1px solid #C7E8F3;}

.spinner{width:16px; height:16px; border:2px solid rgba(255,255,255,.4); border-top-color:#fff;
  border-radius:50%; animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
