.vp-collab-wrap{
  max-width: 860px;
  margin: 24px auto;
  padding: 16px;
  border: 1px solid #e6e6e6;
  border-radius: 14px;
  background: #fff;
  font-family: inherit;
}
.vp-collab-progress{
  height: 8px;
  background: #f1f1f1;
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 16px;
}
.vp-collab-progress-bar{
  height: 8px;
  width: 0%;
  background: #111;
  border-radius: 999px;
  transition: width .2s ease;
}
.vp-step h3{
  margin: 8px 0 18px 0;
  font-size: 18px;
}
.vp-field{
  margin-bottom: 14px;
}
.vp-field label{
  display: block;
  font-weight: 600;
  margin-bottom: 6px;
}
.vp-req{ color:#d00; margin-right:4px; }
.vp-field input[type="text"],
.vp-field input[type="number"],
.vp-field select,
.vp-field textarea{
  width: 100%;
  border: 1px solid #ddd;
  border-radius: 10px;
  padding: 10px 12px;
  outline: none;
}
.vp-field input:focus,
.vp-field textarea:focus,
.vp-field select:focus{
  border-color: #111;
}
.vp-help{ color:#666; font-size: 12px; }
.vp-actions{
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin-top: 16px;
}
.vp-btn{
  border: 0;
  background: #111;
  color:#fff;
  padding: 10px 14px;
  border-radius: 12px;
  cursor: pointer;
  font-weight: 600;
}
.vp-btn.vp-prev{ background:#444; }
.vp-btn:disabled{ opacity:.6; cursor:not-allowed; }

.vp-terms{
  margin-top: 10px;
  padding: 12px;
  border: 1px solid #eee;
  border-radius: 12px;
  background: #fafafa;
}
.vp-terms-title{
  font-weight: 700;
  margin-bottom: 10px;
}
.vp-terms-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 10px;
}
@media (max-width: 820px){
  .vp-terms-grid{ grid-template-columns: 1fr; }
}
.vp-term-card{
  background:#fff;
  border:1px solid #eee;
  border-radius: 12px;
  padding: 12px;
}
.vp-term-title{
  font-weight: 800;
  margin-bottom: 8px;
}
.vp-term-row{
  display:flex;
  gap: 8px;
  justify-content: space-between;
  padding: 6px 0;
  border-bottom: 1px dashed #eee;
}
.vp-term-row:last-child{ border-bottom:0; }
.vp-term-off{ color:#b00; font-weight: 700; }
.vp-terms-note{ color:#666; font-size:12px; margin-top:10px; }

.vp-contract{ margin-top: 14px; }
.vp-contract-title{ font-weight: 800; margin-bottom: 8px; }
.vp-contract-box{
  max-height: 500px;
  overflow: auto;
  border: 1px solid #eee;
  border-radius: 12px;
  padding: 12px;
  background: #fff;
  line-height: 1.9;
}
.vp-contract-box h4{
  margin: 12px 0 6px;
  font-size: 14px;
}
.vp-contract-box p{
  margin: 0 0 10px 0;
}
.vp-checkbox{
  display:flex;
  gap: 8px;
  align-items:flex-start;
  margin-top: 10px;
  font-weight: 600;
}
.vp-messages{ margin-top: 12px; }
.vp-msg{
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid #eee;
}
.vp-msg-error{ background:#fff2f2; border-color:#ffd1d1; color:#8a0000; }
.vp-msg-success{ background:#f3fff1; border-color:#d1ffd1; color:#0d6b00; }

.vp-success{
  margin-top: 12px;
  padding: 14px;
  border: 1px solid #d1ffd1;
  background: #f3fff1;
  border-radius: 14px;
}
.vp-success-title{ font-weight: 900; margin-bottom: 6px; }
.vp-success-code{ font-size: 16px; }


.vp-jdate-row{display:flex; gap:10px; flex-wrap:wrap;}
.vp-jdate-row select{min-width:120px; padding:10px 12px; border:1px solid #ddd; border-radius:12px;}

/* --- User requested brand styles --- */
button.vp-btn.vp-prev{
  color: #fff;
  background: #0040ff;
  border-radius: 15px;
  border: none;
}
button.vp-btn.vp-next{
  color: #fff;
  background: #0040ff;
  border-radius: 15px;
  border: none;
}
button.vp-btn.vp-submit{
  color: #fff;
  background: #009b08;
  border-radius: 15px;
  border: none;
}
.vp-collab-progress-bar{ background: #0040ff; }
.vp-term-card{ background: #eaf0ff; }
