.ddfs-wrap {
  --ddfs-max-width: 720px;
  --ddfs-bg: #ffffff;
  --ddfs-panel: #ffffff;
  --ddfs-text: #111827;
  --ddfs-muted: #6b7280;
  --ddfs-border: #d1d5db;
  --ddfs-accent: #1f2937;
  --ddfs-accent-text: #ffffff;
  width: 100%;
  max-width: var(--ddfs-max-width);
  color: var(--ddfs-text);
}

.ddfs-title {
  margin: 0 0 8px;
}

.ddfs-description {
  margin: 0 0 16px;
  color: var(--ddfs-muted);
}

.ddfs-description p {
  margin-top: 0;
}

.ddfs-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: var(--ddfs-panel);
}

.ddfs-theme-light .ddfs-form,
.ddfs-theme-dark .ddfs-form,
.ddfs-theme-blue .ddfs-form,
.ddfs-theme-red .ddfs-form,
.ddfs-theme-green .ddfs-form,
.ddfs-theme-amber .ddfs-form,
.ddfs-theme-violet .ddfs-form,
.ddfs-theme-slate .ddfs-form,
.ddfs-theme-intelligence .ddfs-form,
.ddfs-theme-classified .ddfs-form,
.ddfs-theme-terminal .ddfs-form,
.ddfs-theme-midnight .ddfs-form,
.ddfs-theme-desert .ddfs-form,
.ddfs-theme-paper .ddfs-form,
.ddfs-theme-glass .ddfs-form,
.ddfs-theme-compact .ddfs-form {
  border: 1px solid var(--ddfs-border);
  border-radius: var(--ddfs-radius, 14px);
  padding: 22px;
  box-shadow: var(--ddfs-shadow, 0 12px 28px rgba(15, 23, 42, 0.06));
}

.ddfs-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ddfs-label {
  font-weight: 700;
}

.ddfs-required {
  color: #b32d2e;
}

.ddfs-help {
  color: var(--ddfs-muted);
}

.ddfs-field input[type="text"],
.ddfs-field input[type="email"],
.ddfs-field input[type="number"],
.ddfs-field input[type="date"],
.ddfs-field textarea,
.ddfs-field select {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--ddfs-border);
  border-radius: 8px;
  background: var(--ddfs-bg);
  color: var(--ddfs-text);
  font: inherit;
  box-sizing: border-box;
}

.ddfs-field textarea {
  min-height: 128px;
  resize: vertical;
}

.ddfs-choice-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ddfs-choice-label {
  display: flex;
  align-items: center;
  gap: 9px;
  line-height: 1.4;
}

.ddfs-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 18px;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  font-weight: 800;
  background: var(--ddfs-accent);
  color: var(--ddfs-accent-text);
}

.ddfs-submit:hover {
  filter: brightness(0.96);
}

.ddfs-message {
  margin: 0 0 14px;
  padding: 12px 14px;
  border-radius: 8px;
  border: 1px solid transparent;
}

.ddfs-message-success {
  background: #ecfdf3;
  border-color: #abefc6;
  color: #067647;
}

.ddfs-message-error {
  background: #fef3f2;
  border-color: #fecdca;
  color: #b42318;
}

.ddfs-hp {
  position: absolute !important;
  left: -99999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.ddfs-theme-light {
  --ddfs-bg: #ffffff;
  --ddfs-panel: #ffffff;
  --ddfs-text: #111827;
  --ddfs-muted: #6b7280;
  --ddfs-border: #d1d5db;
  --ddfs-accent: #111827;
}

.ddfs-theme-dark {
  --ddfs-bg: #111827;
  --ddfs-panel: #0f172a;
  --ddfs-text: #f9fafb;
  --ddfs-muted: #cbd5e1;
  --ddfs-border: #334155;
  --ddfs-accent: #60a5fa;
  --ddfs-accent-text: #0f172a;
}

.ddfs-theme-blue {
  --ddfs-bg: #ffffff;
  --ddfs-panel: #f8fbff;
  --ddfs-text: #0f172a;
  --ddfs-muted: #475569;
  --ddfs-border: #bfdbfe;
  --ddfs-accent: #0f5ea8;
}

.ddfs-theme-red {
  --ddfs-bg: #fff7f7;
  --ddfs-panel: #fffafa;
  --ddfs-text: #1f1111;
  --ddfs-muted: #7f1d1d;
  --ddfs-border: #fecaca;
  --ddfs-accent: #b91c1c;
  --ddfs-shadow: 0 12px 28px rgba(185, 28, 28, 0.10);
}

.ddfs-theme-green {
  --ddfs-bg: #f7fff9;
  --ddfs-panel: #fbfffc;
  --ddfs-text: #0f1f17;
  --ddfs-muted: #166534;
  --ddfs-border: #bbf7d0;
  --ddfs-accent: #15803d;
  --ddfs-shadow: 0 12px 28px rgba(21, 128, 61, 0.10);
}

.ddfs-theme-amber {
  --ddfs-bg: #fffbeb;
  --ddfs-panel: #fffdf5;
  --ddfs-text: #271800;
  --ddfs-muted: #92400e;
  --ddfs-border: #fde68a;
  --ddfs-accent: #b45309;
  --ddfs-shadow: 0 12px 28px rgba(180, 83, 9, 0.12);
}

.ddfs-theme-violet {
  --ddfs-bg: #fbf7ff;
  --ddfs-panel: #fdfaff;
  --ddfs-text: #1f1633;
  --ddfs-muted: #6d28d9;
  --ddfs-border: #ddd6fe;
  --ddfs-accent: #6d28d9;
  --ddfs-shadow: 0 12px 28px rgba(109, 40, 217, 0.10);
}

.ddfs-theme-slate {
  --ddfs-bg: #f8fafc;
  --ddfs-panel: #ffffff;
  --ddfs-text: #0f172a;
  --ddfs-muted: #475569;
  --ddfs-border: #cbd5e1;
  --ddfs-accent: #334155;
}

.ddfs-theme-intelligence {
  --ddfs-bg: #f4f6f3;
  --ddfs-panel: #fbfcf8;
  --ddfs-text: #151a14;
  --ddfs-muted: #4b5563;
  --ddfs-border: #9cae8f;
  --ddfs-accent: #2f4f2f;
  --ddfs-radius: 6px;
  --ddfs-shadow: 0 10px 22px rgba(18, 25, 18, 0.08);
  font-family: Arial, Helvetica, sans-serif;
}

.ddfs-theme-intelligence .ddfs-form {
  border-top: 4px solid var(--ddfs-accent);
}

.ddfs-theme-classified {
  --ddfs-bg: #070707;
  --ddfs-panel: #0d0d0d;
  --ddfs-text: #f5f5f5;
  --ddfs-muted: #b7b7b7;
  --ddfs-border: #404040;
  --ddfs-accent: #dc2626;
  --ddfs-radius: 4px;
  --ddfs-shadow: 0 14px 34px rgba(0, 0, 0, 0.35);
  letter-spacing: 0.01em;
}

.ddfs-theme-classified .ddfs-form {
  border-top: 4px solid #dc2626;
}

.ddfs-theme-terminal {
  --ddfs-bg: #020617;
  --ddfs-panel: #050b19;
  --ddfs-text: #d1fae5;
  --ddfs-muted: #86efac;
  --ddfs-border: #166534;
  --ddfs-accent: #22c55e;
  --ddfs-accent-text: #020617;
  --ddfs-radius: 4px;
  --ddfs-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.ddfs-theme-midnight {
  --ddfs-bg: #07111f;
  --ddfs-panel: #0b1628;
  --ddfs-text: #e5edf7;
  --ddfs-muted: #9fb3c8;
  --ddfs-border: #1e3a5f;
  --ddfs-accent: #38bdf8;
  --ddfs-accent-text: #07111f;
  --ddfs-shadow: 0 16px 36px rgba(8, 47, 73, 0.25);
}

.ddfs-theme-desert {
  --ddfs-bg: #fbf5e8;
  --ddfs-panel: #fffaf0;
  --ddfs-text: #2b2114;
  --ddfs-muted: #795548;
  --ddfs-border: #d8c3a5;
  --ddfs-accent: #8b5e34;
  --ddfs-radius: 8px;
  --ddfs-shadow: 0 12px 26px rgba(139, 94, 52, 0.12);
}

.ddfs-theme-paper {
  --ddfs-bg: #fffdf7;
  --ddfs-panel: #fffdf7;
  --ddfs-text: #1f2933;
  --ddfs-muted: #5f6b7a;
  --ddfs-border: #e2d7c5;
  --ddfs-accent: #374151;
  --ddfs-radius: 3px;
  --ddfs-shadow: 0 8px 18px rgba(60, 50, 40, 0.08);
}

.ddfs-theme-glass {
  --ddfs-bg: rgba(255, 255, 255, 0.72);
  --ddfs-panel: rgba(255, 255, 255, 0.74);
  --ddfs-text: #0f172a;
  --ddfs-muted: #475569;
  --ddfs-border: rgba(148, 163, 184, 0.45);
  --ddfs-accent: #2563eb;
  --ddfs-radius: 18px;
  --ddfs-shadow: 0 18px 40px rgba(15, 23, 42, 0.14);
}

.ddfs-theme-glass .ddfs-form {
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.ddfs-theme-compact .ddfs-form {
  border: 1px solid var(--ddfs-border);
  border-radius: var(--ddfs-radius, 14px);
  padding: 22px;
  box-shadow: var(--ddfs-shadow, 0 12px 28px rgba(15, 23, 42, 0.06));
}

.ddfs-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ddfs-label {
  font-weight: 700;
}

.ddfs-required {
  color: #b32d2e;
}

.ddfs-help {
  color: var(--ddfs-muted);
}

.ddfs-field input[type="text"],
.ddfs-field input[type="email"],
.ddfs-field input[type="number"],
.ddfs-field input[type="date"],
.ddfs-field textarea,
.ddfs-field select {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--ddfs-border);
  border-radius: 8px;
  background: var(--ddfs-bg);
  color: var(--ddfs-text);
  font: inherit;
  box-sizing: border-box;
}

.ddfs-field textarea {
  min-height: 128px;
  resize: vertical;
}

.ddfs-choice-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ddfs-choice-label {
  display: flex;
  align-items: center;
  gap: 9px;
  line-height: 1.4;
}

.ddfs-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 18px;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  font-weight: 800;
  background: var(--ddfs-accent);
  color: var(--ddfs-accent-text);
}

.ddfs-submit:hover {
  filter: brightness(0.96);
}

.ddfs-message {
  margin: 0 0 14px;
  padding: 12px 14px;
  border-radius: 8px;
  border: 1px solid transparent;
}

.ddfs-message-success {
  background: #ecfdf3;
  border-color: #abefc6;
  color: #067647;
}

.ddfs-message-error {
  background: #fef3f2;
  border-color: #fecdca;
  color: #b42318;
}

.ddfs-hp {
  position: absolute !important;
  left: -99999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.ddfs-theme-light {
  --ddfs-bg: #ffffff;
  --ddfs-panel: #ffffff;
  --ddfs-text: #111827;
  --ddfs-muted: #6b7280;
  --ddfs-border: #d1d5db;
  --ddfs-accent: #111827;
}

.ddfs-theme-dark {
  --ddfs-bg: #111827;
  --ddfs-panel: #0f172a;
  --ddfs-text: #f9fafb;
  --ddfs-muted: #cbd5e1;
  --ddfs-border: #334155;
  --ddfs-accent: #60a5fa;
  --ddfs-accent-text: #0f172a;
}

.ddfs-theme-blue {
  --ddfs-bg: #ffffff;
  --ddfs-panel: #f8fbff;
  --ddfs-text: #0f172a;
  --ddfs-muted: #475569;
  --ddfs-border: #bfdbfe;
  --ddfs-accent: #0f5ea8;
}

.ddfs-theme-compact .ddfs-form {
  gap: 10px;
  padding: 14px;
  border-radius: 10px;
}

.ddfs-theme-compact .ddfs-field input[type="text"],
.ddfs-theme-compact .ddfs-field input[type="email"],
.ddfs-theme-compact .ddfs-field input[type="number"],
.ddfs-theme-compact .ddfs-field input[type="date"],
.ddfs-theme-compact .ddfs-field textarea,
.ddfs-theme-compact .ddfs-field select,
.ddfs-theme-compact .ddfs-submit {
  min-height: 38px;
  border-radius: 6px;
}

.ddfs-theme-bare .ddfs-form {
  background: transparent;
}

@media (max-width: 640px) {
  .ddfs-theme-light .ddfs-form,
  .ddfs-theme-dark .ddfs-form,
  .ddfs-theme-blue .ddfs-form,
  .ddfs-theme-red .ddfs-form,
  .ddfs-theme-green .ddfs-form,
  .ddfs-theme-amber .ddfs-form,
  .ddfs-theme-violet .ddfs-form,
  .ddfs-theme-slate .ddfs-form,
  .ddfs-theme-intelligence .ddfs-form,
  .ddfs-theme-classified .ddfs-form,
  .ddfs-theme-terminal .ddfs-form,
  .ddfs-theme-midnight .ddfs-form,
  .ddfs-theme-desert .ddfs-form,
  .ddfs-theme-paper .ddfs-form,
  .ddfs-theme-glass .ddfs-form,
  .ddfs-theme-compact .ddfs-form {
    padding: 16px;
  }
}

.ddfs-field input[type="file"] {
  width: 100%;
  min-height: 44px;
  padding: 9px 10px;
  border: 1px solid var(--ddfs-border);
  border-radius: 8px;
  background: var(--ddfs-bg);
  color: var(--ddfs-text);
  font: inherit;
  box-sizing: border-box;
}

.ddfs-theme-compact .ddfs-field input[type="file"] {
  min-height: 38px;
  border-radius: 6px;
}
