:root{
  --ink:#150C2B;
  --ink-soft:rgba(21,12,43,0.62);
  --primary:#FF7A00;
  --primary-dark:#E35F00;
  --accent:#7C3AED;
  --cream:#FFF8F3;
  --radius:16px;
  --shadow:0 14px 34px rgba(21,12,43,0.12);
}
*{ box-sizing:border-box; }
body{
  font-family:'Inter',sans-serif;
  background:var(--cream);
  color:var(--ink);
  margin:0;
  display:flex;
  flex-direction:column;
  min-height:100vh;
}
main{ flex:1; }
h1,h2,h3,h4,.font-display{ font-family:'Space Grotesk',sans-serif; }

/* ---------- NAVBAR ---------- */
.site-navbar{ background:#fff; border-bottom:1px solid rgba(124,58,237,0.12); padding:14px 0; }
.navbar-brand{
  font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:1.1rem;
  background:var(--primary); color:var(--ink) !important; padding:8px 18px; border-radius:10px;
  display:inline-flex; align-items:center; gap:6px;
}
.brand-dot{ width:6px; height:6px; border-radius:50%; background:var(--ink); opacity:0.5; }
.btn-primary-site{ background:var(--primary); color:var(--ink); font-weight:700; border:none; border-radius:999px; padding:8px 18px; }
.btn-primary-site:hover{ background:var(--primary-dark); color:var(--ink); }

/* ---------- AUTH PAGES ---------- */
.auth-wrap{ min-height:calc(100vh - 200px); display:flex; align-items:center; justify-content:center; padding:50px 16px; }
.auth-card{ background:#fff; border-radius:24px; box-shadow:var(--shadow); padding:42px; width:100%; max-width:440px; border:1px solid rgba(124,58,237,0.1); }
.auth-card h1{ font-size:1.6rem; margin-bottom:4px; }
.auth-card p.sub{ color:var(--ink-soft); font-size:0.9rem; margin-bottom:24px; }
.form-label{ font-weight:600; font-size:0.85rem; }
.form-control:focus{ border-color:var(--primary); box-shadow:0 0 0 4px rgba(255,45,120,0.15); }
.password-field{ position:relative; }
.password-field .toggle-password{
  position:absolute; right:12px; top:50%; transform:translateY(-50%);
  background:none; border:none; color:var(--ink-soft); cursor:pointer;
}
.btn-site-submit{
  background:var(--primary); color:var(--ink); font-weight:700; border:none; border-radius:12px;
  padding:12px; width:100%; transition:background .2s, transform .2s;
}
.btn-site-submit:hover{ background:var(--primary-dark); transform:translateY(-1px); color:var(--ink); }
.btn-site-submit:disabled{ opacity:0.6; transform:none; }
.auth-switch{ text-align:center; font-size:0.88rem; color:var(--ink-soft); margin-top:20px; }
.auth-switch a{ color:var(--accent); font-weight:600; text-decoration:none; }
.field-error{ color:#DC2626; font-size:0.78rem; margin-top:4px; display:none; }
.is-invalid ~ .field-error, .field-error.show{ display:block; }

/* ---------- FOOTER ---------- */
.site-footer{ background:var(--ink); color:rgba(255,255,255,0.6); padding:22px 0; font-size:0.85rem; margin-top:40px; }

/* ---------- SIMPLE DASHBOARD SHELL (customer/partner) ---------- */
.dash-hero{ background:linear-gradient(135deg, rgba(255,45,120,0.15), rgba(124,58,237,0.08)); border-radius:var(--radius); padding:30px; margin-bottom:24px; }
.dash-card{ background:#fff; border-radius:var(--radius); padding:24px; box-shadow:var(--shadow); border:1px solid rgba(124,58,237,0.1); height:100%; }

/* Mobile-first auth screens */
@media(max-width:767.98px){
  .auth-page,.login-page,.register-page{padding:14px 10px 28px!important}
  .auth-card,.page-register-card{width:100%!important;max-width:100%!important;border-radius:16px!important;padding:20px!important}
  .auth-visual-panel{display:none!important}
  .auth-form-grid,.register-grid{grid-template-columns:1fr!important}
  .auth-actions{flex-direction:column!important}
  .auth-actions .btn,.auth-card button[type=submit]{width:100%!important}
}
