
/* UI */
.vo-container{max-width:840px;margin:40px auto;padding:24px;background:#fff;border-radius:20px;box-shadow:0 10px 30px rgba(0,0,0,.06)}
.vo-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:20px}
.vo-steps span{display:flex;align-items:center;justify-content:center;min-height:42px;text-align:center;padding:10px 12px;border-radius:12px;background:#f4f5f7;color:#5d6b79;font-weight:700;letter-spacing:.2px}
.vo-steps span.active{background:#121212;color:#fff}
@media (max-width:720px){
  .vo-steps{grid-auto-flow:column;grid-auto-columns:minmax(120px,1fr);grid-template-columns:none;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px;scroll-snap-type:x mandatory}
  .vo-steps span{scroll-snap-align:start;white-space:nowrap;min-height:40px}
}
.vo-form .vo-field{margin-bottom:16px}
.vo-form label{display:block;font-weight:600;margin-bottom:6px;color:#1b1b1f}
.vo-form input[type=text], .vo-form input[type=email], .vo-form input[type=tel], .vo-form input[type=number], .vo-form input[type=date], .vo-form input[type=file], .vo-form select{width:100%;padding:12px 14px;border:1px solid #e3e5e8;border-radius:12px;background:#fafafa;outline:none;transition:.2s}
.vo-form input:focus,.vo-form select:focus{background:#fff;border-color:#c6cad0;box-shadow:0 0 0 4px rgba(0,0,0,.04)}
.vo-two{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:720px){.vo-two{grid-template-columns:1fr}}
.vo-actions{margin-top:20px;display:flex;justify-content:flex-end}
.vo-btn{padding:12px 18px;border:none;border-radius:14px;background:#0f0f10;color:#fff;font-weight:700;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.15)}
.vo-btn:hover{transform:translateY(-1px)}
.vo-agreement{margin:10px 0;background:#f9fafb;border:1px solid #eff1f4;border-radius:12px;padding:10px 14px}
.vo-agreement summary{cursor:pointer;font-weight:700}
.vo-agreement-body{max-height:320px;overflow:auto;padding:10px 0;line-height:1.5}
.vo-signature{display:flex;align-items:center;gap:10px}
#vo-sign{width:100%;max-width:600px;background:#fff;border:1px solid #e3e5e8;border-radius:12px;box-shadow:inset 0 1px 4px rgba(0,0,0,.05)}
.vo-done{text-align:center;padding:40px 10px}.vo-done h2{font-size:24px;margin-bottom:10px}
/* W9 */
.vo-w9-info{background:#f9fafb;border:1px solid #eff1f4;border-radius:14px;padding:14px;margin-bottom:14px}
.vo-w9-help{font-size:13px;color:#5d6b79}
.vo-drop{border:2px dashed #cdd3da;border-radius:16px;padding:28px;text-align:center;background:linear-gradient(180deg,#fbfbfc 0,#f7f8fa 100%)}
.vo-drop.drag{background:#eef3ff;border-color:#96adff}
.vo-drop-inner p{margin:0 0 6px;font-weight:700}
.vo-drop-inner span{text-decoration:underline}
.vo-chosen{font-size:13px;color:#333;margin-top:8px}
/* Admin */
.vo-wrap .vo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:20px}
.vo-card{background:#fff;border:1px solid #eef0f3;border-radius:16px;padding:16px;box-shadow:0 6px 18px rgba(0,0,0,.05)}
.vo-card h2{margin:6px 0 10px;font-size:18px}
.vo-card .vo-truncate{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.vo-card .vo-card-head{display:flex;justify-content:space-between;color:#6a7682;font-size:12px;margin-bottom:4px}
.vo-audit{list-style:none;margin:0;padding:0}
.vo-audit li{padding:6px 0;border-bottom:1px dashed #eef0f3}
.vo-status{background:#f2f6ff;color:#2746b3;padding:2px 8px;border-radius:999px}

/* v3.1.9 - Prevent iOS select clipping & improve mobile spacing */
.vo-form select{
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  box-sizing:border-box;
  width:100%;
  padding:14px 16px;
  border-radius:12px;
  background:#fafafa;
  border:1px solid #e6e9ec;
  line-height:1.4;
}
@media (max-width:720px){
  .vo-container{padding-bottom:48px;}
  .vo-form .vo-two{grid-template-columns:1fr;}
  .vo-form .vo-field input,
  .vo-form .vo-field select{padding:14px 16px;font-size:16px;}
}


/* v3.1.10 mobile select fixes */
.vo-field{overflow:visible}
.vo-form select{
  min-height:48px;
  height:48px;
  background-clip: padding-box;
}
/* iOS tap zoom avoidance */
@supports (-webkit-touch-callout: none) {
  .vo-form .vo-field input,
  .vo-form .vo-field select{ font-size:16px; }
}
