.gpsn-signup {
  background: #0b2a4a;
  color: #fff;
  border-radius: 12px;
  padding: 1.1rem 1.3rem;
  margin: 1.4rem 0 .4rem;
  text-align: center;
  box-shadow: 0 6px 18px rgba(11, 42, 74, .25);
}
.gpsn-footer .gpsn-signup,
footer .gpsn-signup {
  background: #123a63;
  border: 1px solid #1e4a7e;
}
.gpsn-signup-title {
  margin: 0 0 .5rem;
  color: #fff;
  font-size: 1.05rem;
  letter-spacing: .3px;
}
.gpsn-signup-form {
  display: flex;
  gap: .5rem;
  justify-content: center;
  flex-wrap: wrap;
}
.gpsn-signup-email {
  flex: 1 1 260px;
  max-width: 420px;
  padding: .65rem .9rem;
  border: 1px solid #c8d4e0;
  border-radius: 50px;
  font-size: 1rem;
  color: #0b2a4a;
}
.gpsn-signup-btn {
  background: #dd3333;
  color: #fff;
  border: 0;
  border-radius: 50px;
  padding: .65rem 1.6rem;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  letter-spacing: .3px;
  text-transform: uppercase;
  box-shadow: 0 4px 12px rgba(221, 51, 51, .28);
  transition: transform .15s, box-shadow .15s;
}
.gpsn-signup-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(221, 51, 51, .35); }
.gpsn-signup-msg {
  min-height: 1.2em;
  margin: .45rem 0 0;
  font-size: .95rem;
  font-weight: 600;
}
.gpsn-signup-msg.ok { color: #7ee2a8; }
.gpsn-signup-msg.err { color: #ff9d9d; }

/* ---------------- Client template editor ---------------- */
.gpsn-cedit {
  max-width: 720px;
  margin: 1.5rem auto;
  background: #fff;
  border: 1px solid var(--gps-border, #e3e7ec);
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(11, 42, 74, .10);
  padding: 1.8rem 2rem;
}
.gpsn-cedit-h {
  margin: 0 0 .3rem;
  color: #0b2a4a;
  font-size: 1.5rem;
  letter-spacing: .3px;
}
.gpsn-cedit-sub {
  margin: 0 0 1.3rem;
  color: #6c7a8a;
  font-size: .98rem;
}
.gpsn-cedit-ok {
  background: #e4f6ec;
  border: 1px solid #7ee2a8;
  color: #14532d;
  border-radius: 8px;
  padding: .8rem 1rem;
  margin-bottom: 1.1rem;
  font-weight: 600;
}
.gpsn-cedit-err {
  background: #fdecec;
  border: 1px solid #ff9d9d;
  color: #8c1d1d;
  border-radius: 8px;
  padding: .8rem 1rem;
  margin-bottom: 1.1rem;
  font-weight: 600;
}
.gpsn-cedit-label {
  display: block;
  margin: 0 0 .35rem;
  font-weight: 700;
  color: #0b2a4a;
}
.gpsn-cedit-input,
.gpsn-cedit-textarea {
  width: 100%;
  border: 1px solid #c8d4e0;
  border-radius: 8px;
  padding: .7rem .9rem;
  font-size: 1rem;
  font-family: inherit;
  color: #33404d;
  background: #fff;
  box-sizing: border-box;
}
.gpsn-cedit-input { margin-bottom: 1.1rem; }
.gpsn-cedit-textarea { margin-bottom: 1.3rem; resize: vertical; min-height: 180px; }
.gpsn-cedit-input:focus,
.gpsn-cedit-textarea:focus {
  outline: none;
  border-color: #1e73bf;
  box-shadow: 0 0 0 3px rgba(30, 115, 191, .15);
}
.gpsn-cedit-btn {
  background: #dd3333;
  color: #fff;
  border: 0;
  border-radius: 50px;
  padding: .8rem 2rem;
  font-size: 1.05rem;
  font-weight: 700;
  cursor: pointer;
  letter-spacing: .4px;
  text-transform: uppercase;
  box-shadow: 0 4px 14px rgba(221, 51, 51, .3);
  transition: transform .15s, box-shadow .15s, background .15s;
}
.gpsn-cedit-btn:hover { background: #0b2a4a; transform: translateY(-2px); box-shadow: 0 6px 18px rgba(221, 51, 51, .35); }

@media (max-width: 560px) {
  .gpsn-cedit { padding: 1.2rem 1rem; }
}

@media (max-width: 560px) {
  .gpsn-signup-form { flex-direction: column; align-items: stretch; }
  .gpsn-signup-email { max-width: none; }
  .gpsn-signup-btn { width: 100%; }
}