:root{
  --ink:#0f172a;
  --soft:#505a7a;
  --lav:#6a7eff;
  --lav2:#97a3ff;
  --bd:rgba(106,126,255,.18);
  --surface:#ffffffcc;
  --surface2:#ffffffee;
  --max:880px;
}

/* Background */
body{
  margin:0;
  font-family:Inter,system-ui;
  background:
    radial-gradient(820px 260px at 50% -140px, rgba(106,126,255,.14), transparent),
    linear-gradient(180deg,#f6f7ff,#ffffff);
  color:var(--ink);
}

/* Container */
.qp-wrap{
  width:min(var(--max),100%);
  margin:auto;
  padding:26px 20px 60px;
}

/* HERO – Cam Panel */
.qp-hero{
  padding:24px 0 14px;
}
.qp-hero-inner{
  padding:20px 24px;
  border-radius:20px;
  background:linear-gradient(180deg,var(--surface2),var(--surface));
  border:1px solid var(--bd);
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  box-shadow:0 6px 22px rgba(106,126,255,.10);
}
.qp-hero h1{
  margin:0;
  display:flex;
  align-items:center;
  gap:10px;
  font-size:clamp(24px,4vw,30px);
  font-weight:900;
  background:linear-gradient(90deg,var(--lav),var(--lav2));
  -webkit-background-clip:text;
  color:transparent;
}
.qp-hero p{
  margin:6px 0 0;
  font-size:.95rem;
  color:var(--soft);
  max-width:520px;
  line-height:1.45;
}

/* Cards */
.q-card{
  margin-top:20px;
  background:var(--surface2);
  border:1px solid var(--bd);
  border-radius:18px;
  padding:22px 24px;
  box-shadow:0 6px 18px rgba(15,23,42,.06);
}

.q-card h2{
  margin:0 0 14px;
  font-size:1.1rem;
  font-weight:800;
  color:var(--ink);
}

/* Form */
.q-form{ display:grid; gap:16px; }
.q-form label{
  font-weight:700;
  font-size:.93rem;
  color:var(--ink);
}
.q-form input,
.q-form textarea{
  width:100%;
  padding:11px 14px;
  border-radius:12px;
  border:1px solid rgba(106,126,255,.22);
  background:#fff;
  font-size:.95rem;
  color:var(--ink);
  box-shadow:inset 0 1px 0 #fff;
}
.q-form input:focus,
.q-form textarea:focus{
  outline:3px solid rgba(106,126,255,.22);
}

/* Button */
.q-btn{
  display:inline-block;
  padding:12px 18px;
  font-weight:800;
  border-radius:14px;
  background:linear-gradient(180deg,var(--lav),var(--lav2));
  color:#fff;
  text-decoration:none;
  border:0;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(106,126,255,.22);
  transition:.15s ease;
}
.q-btn:hover{
  transform:translateY(-2px);
}

/* Alerts */
.alert{
  margin-top:12px;
  padding:12px 14px;
  border-radius:14px;
  font-weight:700;
  display:flex;
  gap:10px;
  align-items:flex-start;
}
.alert.success{
  background:#ecfdf5;
  color:#065f46;
  border:1px solid #a7f3d0;
}
.alert.error{
  background:#fef2f2;
  color:#7f1d1d;
  border:1px solid #fecaca;
}
.alert.info{
  background:#eff6ff;
  color:#1e40af;
  border:1px solid #bfdbfe;
}

/* Muted text */
.muted{ color:#6a759f; font-size:.92rem; }
.hint{ color:#5c6490; font-size:.87rem; }

