
.ofb-wrap.ofb-theme-light {
  --ofb-bg: #ffffff;
  --ofb-surface: #ffffff;
  --ofb-text: #0f172a;
  --ofb-muted: #475569;
  --ofb-input-bg: #f8fafc;
  --ofb-border: #dbe2ea;
  --ofb-focus: rgba(15, 23, 42, 0.10);
  --ofb-primary: #d4a62a;
  --ofb-primary-text: #ffffff;
}

.ofb-wrap.ofb-theme-dark {
  --ofb-bg: #0b1020;
  --ofb-surface: linear-gradient(180deg, #0a0f1c 0%, #070b16 100%);
  --ofb-text: #f8fafc;
  --ofb-muted: #cbd5e1;
  --ofb-input-bg: #0a1020;
  --ofb-border: #1f2a44;
  --ofb-focus: rgba(212, 166, 42, 0.20);
  --ofb-primary: #d4a62a;
  --ofb-primary-text: #ffffff;
}

.ofb-wrap {
  max-width: 720px;
  margin: 20px auto;
}

.ofb-form {
  background: var(--ofb-surface);
  color: var(--ofb-text);
  border: 1px solid var(--ofb-border);
  border-radius: 20px;
  padding: 18px;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.08);
}

.ofb-field {
  margin-bottom: 14px;
}

.ofb-label {
  display: block;
  font-weight: 700;
  font-size: 13px;
  line-height: 1.3;
  margin-bottom: 6px;
  color: var(--ofb-text);
}

.ofb-required {
  color: #dc2626;
}

.ofb-form input[type=text],
.ofb-form input[type=email],
.ofb-form input[type=tel],
.ofb-form input[type=file],
.ofb-form input[type=date],
.ofb-form input[type=datetime-local],
.ofb-form select,
.ofb-form textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border: 1px solid var(--ofb-border);
  border-radius: 12px;
  background: var(--ofb-input-bg);
  color: var(--ofb-text);
  font-size: 14px;
  line-height: 1.4;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.ofb-form input[type=text],
.ofb-form input[type=email],
.ofb-form input[type=tel],
.ofb-form input[type=file],
.ofb-form select {
  min-height: 42px;
}

.ofb-form textarea {
  min-height: 96px;
  resize: vertical;
}

.ofb-form input::placeholder,
.ofb-form textarea::placeholder {
  color: var(--ofb-muted);
}

.ofb-form input:focus,
.ofb-form select:focus,
.ofb-form textarea:focus {
  outline: none;
  border-color: var(--ofb-primary);
  box-shadow: 0 0 0 3px var(--ofb-focus);
}

.ofb-options-group {
  display: grid;
  gap: 8px;
}

.ofb-choice {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--ofb-border);
  border-radius: 12px;
  background: var(--ofb-input-bg);
  color: var(--ofb-text);
}

.ofb-choice input[type=checkbox],
.ofb-choice input[type=radio] {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--ofb-primary);
  flex: 0 0 auto;
}

.ofb-single-checkbox {
  background: transparent;
  border: none;
  padding: 0;
}

.ofb-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 170px;
  padding: 11px 20px;
  border-radius: 999px;
  border: none;
  background: var(--ofb-primary);
  color: var(--ofb-primary-text);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: .02em;
  cursor: pointer;
  transition: transform .12s ease, opacity .12s ease, box-shadow .12s ease;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);
}

.ofb-submit:hover {
  transform: translateY(-1px);
}

.ofb-submit[disabled] {
  opacity: .72;
  cursor: wait;
  transform: none;
}

.ofb-message {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 12px;
  display: none;
  font-size: 13px;
}

.ofb-message.is-loading,
.ofb-message.is-success,
.ofb-message.is-error {
  display: block;
}

.ofb-message.is-loading {
  background: #eff6ff;
  color: #1d4ed8;
}

.ofb-message.is-success {
  background: #ecfdf5;
  color: #047857;
}

.ofb-message.is-error {
  background: #fef2f2;
  color: #b91c1c;
}

.ofb-honeypot {
  position: absolute;
  left: -9999px;
  opacity: 0;
  pointer-events: none;
}

@media (max-width: 640px) {
  .ofb-wrap {
    margin: 14px auto;
  }

  .ofb-form {
    padding: 14px;
    border-radius: 16px;
  }

  .ofb-submit {
    min-width: 100%;
  }
}
