.rox-fi3d-wrap,
.rox-fi3d-wrap * { box-sizing: border-box; }

.rox-fi3d-form {
  max-width: 700px;
  margin: auto;
  background: #fff;
  padding: 20px 30px;
  border-radius: 5px;
  font-family: 'Montserrat', Arial, sans-serif;
  color: #003366;
  font-size: .9em;
}

.rox-fi3d-form label {
  display: block;
  margin-top: 10px;
  font-weight: 600;
}

.rox-fi3d-form input,
.rox-fi3d-form select,
.rox-fi3d-form textarea,
.rox-fi3d-form button {
  width: 100%;
  padding: 8px;
  margin-top: 5px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: .9em;
}

.rox-fi3d-form textarea { resize: vertical; }

.rox-fi3d-row {
  display: flex;
  gap: 20px;
}

.rox-fi3d-col {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.rox-fi3d-upload-wrap { width: 100%; }

.rox-fi3d-form input[type="file"] {
  border: 2px dashed #4CAF50;
  cursor: pointer;
  background: #fff;
}

.rox-fi3d-upload-status {
  margin-top: 6px;
  font-size: 12px;
  color: #666;
}

.rox-fi3d-upload-status.is-ok { color: #2e7d32; }
.rox-fi3d-upload-status.is-error { color: #b42318; }

#rox-fi3d-submit,
.rox-fi3d-modal-button {
  margin-top: 15px;
  padding: 10px;
  background: #4CAF50;
  color: #fff;
  border: 0;
  cursor: pointer;
  font-weight: 600;
}

#rox-fi3d-submit:hover,
.rox-fi3d-modal-button:hover { background: #45a049; }

#rox-fi3d-submit:disabled {
  opacity: .7;
  cursor: default;
}

.rox-fi3d-hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.rox-fi3d-status {
  display: none;
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 5px;
  font-weight: 600;
  line-height: 1.4;
}

.rox-fi3d-status.is-success {
  display: block;
  color: #1f6b2b;
  background: #edf8ef;
  border: 1px solid #b9dfbf;
}

.rox-fi3d-status.is-error {
  display: block;
  color: #9f1c14;
  background: #fff1f0;
  border: 1px solid #efb7b3;
}

#rox-fi3d-submit {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 40px;
}

.rox-fi3d-spinner {
  display: none;
  width: 17px;
  height: 17px;
  border: 2px solid rgba(255,255,255,.45);
  border-top-color: #fff;
  border-radius: 50%;
  animation: rox-fi3d-spin .7s linear infinite;
}

#rox-fi3d-submit.is-loading .rox-fi3d-spinner {
  display: inline-block;
}

@keyframes rox-fi3d-spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 768px) {
  .rox-fi3d-row { flex-direction: column; gap: 0; }
  .rox-fi3d-form { padding: 15px; }
}
