.ms-evisa-wrap { padding: 24px 0; }
.ms-evisa-card{
  max-width: 920px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid #eef2f5;
  border-radius: 14px;
  box-shadow: 0 12px 30px rgba(0,0,0,0.06);
  overflow: hidden;
}

.ms-evisa-header{ padding: 26px 28px 10px; text-align:center; }
.ms-evisa-logo{
  width: 44px; height: 44px; margin: 0 auto 10px;
  border-radius: 12px; background:#eaf7f6; display:flex; align-items:center; justify-content:center;
}
.ms-evisa-logo-dot{ width: 14px; height: 14px; border-radius: 50%; background:#22b3a6; display:block; }

.ms-evisa-header h2{ margin: 0 0 6px; font-size: 22px; }
.ms-evisa-header p{ margin: 0 0 12px; color:#6b7a86; font-size: 13px; }

.ms-evisa-badges{ display:flex; justify-content:center; gap:10px; flex-wrap:wrap; margin-bottom: 14px; }
.ms-badge{
  font-size: 12px; color:#2a6f68; background:#eaf7f6;
  padding: 6px 10px; border-radius: 999px;
}

.ms-stepper{
  display:flex; align-items:center; justify-content:center;
  gap: 12px; margin: 12px 0 0;
}
.ms-step{ display:flex; flex-direction:column; align-items:center; gap:6px; min-width: 130px; }
.ms-step-circle{
  width: 28px; height: 28px; border-radius: 50%;
  display:flex; align-items:center; justify-content:center;
  border: 2px solid #d8e6ea;
  color:#7a8a96; font-weight:700; font-size: 12px;
  background:#fff;
}
.ms-step-label{ font-size:12px; color:#6b7a86; }
.ms-step-line{ width: 120px; height: 2px; background:#e6eef2; border-radius: 2px; }

.ms-step.active .ms-step-circle{ border-color:#22b3a6; color:#22b3a6; }
.ms-step.done .ms-step-circle{
  border-color:#22b3a6; background:#22b3a6; color:#fff;
}
.ms-step-meta{ margin-top: 8px; color:#8a98a3; font-size: 12px; }

.ms-evisa-form{ padding: 18px 28px 26px; text-align:left; }
.ms-evisa-form h3{ margin: 0 0 14px; font-size: 15px; color:#1f2b33; }

.ms-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.ms-field label{ display:block; font-size: 12px; margin-bottom: 6px; color:#33434f; }
.ms-field label span{ color:#e24b4b; }
.ms-field input, .ms-field select, .ms-field textarea{
  width:100%;
  border: 1px solid #e5edf1;
  border-radius: 10px;
  padding: 10px 12px;
  outline: none;
  font-size: 13px;
  background:#fff;
}
.ms-field textarea{ resize: vertical; }
.ms-field input:focus, .ms-field select:focus, .ms-field textarea:focus{
  border-color: #22b3a6;
  box-shadow: 0 0 0 3px rgba(34,179,166,0.12);
}

.ms-full{ grid-column: 1 / -1; }

.ms-phone-row{ display:flex; gap:10px; }
.ms-countrycode{ max-width: 86px; }

.ms-inline{ margin-top: 10px; }
.ms-radio{ display:flex; gap: 18px; }
.ms-radio label{ font-size: 13px; color:#33434f; display:flex; align-items:center; gap:6px; }

.ms-actions{ display:flex; justify-content:flex-end; margin-top: 16px; }
.ms-between{ justify-content:space-between; }

.ms-btn{
  border: 1px solid #e5edf1;
  background:#fff;
  padding: 10px 14px;
  border-radius: 10px;
  cursor:pointer;
  font-size: 13px;
}
.ms-btn:hover{ border-color:#cfe3e8; }
.ms-primary{
  background:#22b3a6;
  border-color:#22b3a6;
  color:#fff;
}
.ms-primary:hover{ filter: brightness(0.98); }

.ms-upload{ margin-top: 16px; }
.ms-dropzone{
  position:relative;
  border: 1px dashed #d7e7ea;
  border-radius: 12px;
  padding: 14px;
  background:#fbfdfd;
}
.ms-dropzone input[type="file"]{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
}
.ms-dropzone-ui{ text-align:center; padding: 10px 0; }
.ms-upload-icon{ font-size: 18px; margin-bottom: 6px; }
.ms-muted{ font-size: 12px; color:#7a8a96; margin-top: 4px; }
.ms-file-name{ margin-top: 8px; font-size: 12px; color:#33434f; }

.ms-footer-note{
  margin-top: 14px;
  text-align:center;
  font-size: 12px;
  color:#6b7a86;
}

.ms-form-alert{
  display:none;
  margin-top: 14px;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 13px;
}
.ms-form-alert.ok{ background:#eaf7f6; color:#1f6c64; border:1px solid #c8ece8; }
.ms-form-alert.err{ background:#fff1f1; color:#9b2f2f; border:1px solid #ffd0d0; }

.ms-step-pane{ display:none; }
.ms-step-pane.active{ display:block; }

@media (max-width: 760px){
  .ms-grid{ grid-template-columns: 1fr; }
  .ms-step-line{ width: 70px; }
}
