/* ── FormGlut form styles ────────────────────────────────────────────
 * One stylesheet for the live form, the admin Preview and the form editor canvas,
 * which renders the same markup (see assets/src/fields/FieldPreview.jsx).
 * Rules are scoped to .formglut-form so theme and wp-admin styles for bare
 * input / select / textarea do not change the look.
 * Per-field Style Options arrive as CSS variables on the control:
 *   --fg-bg, --fg-color, --fg-border, --fg-radius, --fg-pad, --fg-margin
 * Responsive rules use container queries on the wrapper, so a form in a narrow
 * column (or the editor's tablet / mobile view) stacks like on a small screen.
 * ──────────────────────────────────────────────────────────────────── */

/* Accent color: Global Settings › Appearance sets --formglut-accent on the page. */
div.formglut-form-wrapper, .formglut-form {
  --fg-accent: var(--formglut-accent, #e94560);
  --fg-accent-soft: color-mix(in srgb, var(--fg-accent) 9%, #fff);
}

div.formglut-form-wrapper {
  width: 100%;
  max-width: 640px;
  margin: 1.5em auto;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: normal;
  word-spacing: normal;
  text-transform: none;
  color: #1e293b;
  container-type: inline-size;
  container-name: formglut;
  box-sizing: border-box;
}
.formglut-form-wrapper *, .formglut-form-wrapper *::before, .formglut-form-wrapper *::after { box-sizing: border-box; }

/* ── Form ─────────────────────────────────────────────────────────── */

.formglut-form {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 28px 32px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  font-size: 15px;
  line-height: 1.5;
  text-align: left;
}

.formglut-form .formglut-form-title {
  font-family: inherit;
  letter-spacing: normal;
  text-transform: none;
  margin: 0 0 20px 0;
  padding: 0 0 16px 0;
  border-bottom: 1px solid #f1f5f9;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  color: #0f172a;
}

/* ── Field ────────────────────────────────────────────────────────── */

.formglut-form [hidden] { display: none !important; }
.formglut-form button { -webkit-appearance: none; appearance: none; text-transform: none; letter-spacing: normal; }

.formglut-form .formglut-field { margin: 0 0 18px; padding: 0; }
.formglut-form .formglut-field.formglut-hidden,
.formglut-form .formglut-field.formglut-conditional-hidden,
.formglut-form .formglut-columns.formglut-hidden,
.formglut-form .formglut-columns.formglut-conditional-hidden { display: none; }

.formglut-form .formglut-label {
  display: block;
  margin: 0 0 6px;
  padding: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  color: #334155;
}
.formglut-form .formglut-required { color: #ef4444; margin-left: 2px; }

/* Text-like controls */
.formglut-form .formglut-input {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  min-height: auto !important;
  padding: var(--fg-pad, 10px 14px) !important;
  margin: var(--fg-margin, 0) !important;
  font-family: inherit;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--fg-color, #1e293b) !important;
  background-color: var(--fg-bg, #f8fafc) !important;
  border: 1px solid var(--fg-border, #e2e8f0) !important;
  border-radius: var(--fg-radius, 8px) !important;
  box-shadow: 0 0 0 transparent !important;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  -webkit-appearance: none;
  appearance: none;
}
.formglut-form .formglut-input:focus {
  border-color: var(--fg-accent) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--fg-accent) 10%, transparent) !important;
}
.formglut-form .formglut-input::placeholder { color: #94a3b8; opacity: 1; }
.formglut-form textarea.formglut-input { resize: vertical; min-height: 80px !important; }
.formglut-form .formglut-input[type="number"] { -moz-appearance: textfield; }
.formglut-form .formglut-input[type="date"], .formglut-form .formglut-input[type="time"], .formglut-form .formglut-input[type="datetime-local"] { height: auto; line-height: 1.5; }
.formglut-form .formglut-input::-webkit-datetime-edit, .formglut-form .formglut-input::-webkit-datetime-edit-fields-wrapper { padding: 0; line-height: 1.5; }
.formglut-form .formglut-input::-webkit-date-and-time-value { text-align: left; }
.formglut-form .formglut-input[readonly]:focus { border-color: var(--fg-border, #e2e8f0) !important; box-shadow: none !important; }

/* Dropdowns */
.formglut-form .formglut-select {
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M6 8L1 3h10z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  padding-right: 36px !important;
}
.formglut-form .formglut-select::-ms-expand { display: none; }
.formglut-form .formglut-select option:disabled { color: #94a3b8; }
.formglut-form .formglut-select[multiple] { height: auto; background-image: none !important; padding-right: 14px !important; overflow-y: auto; }
.formglut-form .formglut-select[multiple] option { padding: 4px 0; }

/* Help text and tooltip */
.formglut-form .formglut-help-text { font-size: 12px; line-height: 1.5; color: #64748b; margin: 6px 0; }
.formglut-form .formglut-help-tip { position: relative; display: inline-flex; align-items: center; margin-left: 4px; vertical-align: middle; cursor: help; }
.formglut-form .formglut-help-icon { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; color: #94a3b8; }
.formglut-form .formglut-help-tip:hover .formglut-help-icon { color: #475569; }
.formglut-form .formglut-help-tooltip {
  display: none; position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%);
  background: #1e293b; color: #f8fafc; font-size: 13px; font-weight: 400; padding: 6px 10px; border-radius: 6px;
  white-space: nowrap; z-index: 10; line-height: 1.4; pointer-events: none;
}
.formglut-form .formglut-help-tooltip::after { content: ""; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 5px solid transparent; border-top-color: #1e293b; }
.formglut-form .formglut-help-tip:hover .formglut-help-tooltip { display: block; }

/* Label placement */
.formglut-form .formglut-label-left, .formglut-form .formglut-label-right { display: flex; align-items: center; gap: 8px; }
.formglut-form .formglut-label-left > .formglut-label, .formglut-form .formglut-label-right > .formglut-label { flex: 0 0 auto; margin: 0; white-space: nowrap; }
.formglut-form .formglut-label-left .formglut-field-body, .formglut-form .formglut-label-right .formglut-field-body { flex: 1; min-width: 0; }
.formglut-form .formglut-label-bottom > .formglut-label { margin: 6px 0 0; }

/* Prefix / suffix */
.formglut-form .formglut-input-group { display: flex; align-items: stretch; }
.formglut-form .formglut-input-group .formglut-input { flex: 1; min-width: 0; }
.formglut-form .formglut-input-prefix, .formglut-form .formglut-input-suffix {
  display: flex; align-items: center; padding: 0 12px; font-size: 14px; color: #64748b;
  background: #f1f5f9; border: 1px solid #e2e8f0; white-space: nowrap; flex-shrink: 0;
}
.formglut-form .formglut-input-prefix { border-right: 0; border-radius: 8px 0 0 8px; }
.formglut-form .formglut-input-suffix { border-left: 0; border-radius: 0 8px 8px 0; }
.formglut-form .formglut-input-group .formglut-input-prefix + .formglut-input { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; }
.formglut-form .formglut-input-group .formglut-input:has(+ .formglut-input-suffix) { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }

.formglut-form .formglut-confirm-field { margin-top: 10px; }
.formglut-form .formglut-sublabel { display: block; margin: 0 0 4px; font-size: 12px; font-weight: 400; line-height: 1.5; color: #64748b; }

/* ── Submit Button ─────────────────────────────────────────────────── */

.formglut-form .formglut-form-actions { margin-top: 24px; }
.formglut-form .formglut-submit-btn {
  display: inline-flex; align-items: center; justify-content: center;
  /* Defaults for forms saved without button colours (older or imported forms). */
  background-color: var(--fg-accent); color: #fff; padding: 10px 32px;
  border: 1px solid transparent; border-radius: 8px; cursor: pointer;
  font-family: inherit; font-size: 15px; font-weight: 600; line-height: 1.5; letter-spacing: 0.01em;
  text-decoration: none; text-transform: none; box-shadow: none; min-height: 0;
  transition: opacity 0.2s, transform 0.1s;
}
.formglut-form .formglut-submit-btn:hover { opacity: 0.9; }
.formglut-form .formglut-submit-btn:active { transform: scale(0.98); }
.formglut-form .formglut-submit-btn:disabled { cursor: not-allowed; opacity: 0.7; }

/* ── Messages ──────────────────────────────────────────────────────── */

.formglut-form-wrapper .formglut-form-message { margin-top: 16px; padding: 14px 18px; border-radius: 8px; font-size: 14px; line-height: 1.5; }
.formglut-form-wrapper .formglut-success { background: #f0fdf4; border: 1px solid #bbf7d0; color: #166534; }
.formglut-form-wrapper .formglut-error { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; }
/* Failure messages are plain text: keep the line breaks typed in the settings. */
.formglut-form-wrapper .formglut-form-message.formglut-error { white-space: pre-line; }

/* ── Field Errors ──────────────────────────────────────────────────── */

.formglut-form .formglut-input.formglut-input-error,
.formglut-form .formglut-input-error { border-color: #ef4444 !important; box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1) !important; }
.formglut-form .formglut-field-error { color: #ef4444; font-size: 12px; line-height: 1.5; margin-top: 4px; }

/* ── Honeypot (hidden from real users) ─────────────────────────────── */

.formglut-hp { position: absolute; left: -9999px; opacity: 0; height: 0; overflow: hidden; }

/* ── Choices (radio, checkbox) ─────────────────────────────────────── */

.formglut-form .formglut-choice-group { display: flex; flex-direction: column; gap: 8px; }
.formglut-form .formglut-choice-layout-inline { flex-direction: row; flex-wrap: wrap; gap: 16px; }
.formglut-form .formglut-choice-layout-2_column, .formglut-form .formglut-choice-layout-3_column, .formglut-form .formglut-choice-layout-4_column { display: grid; gap: 8px 16px; }
.formglut-form .formglut-choice-layout-2_column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.formglut-form .formglut-choice-layout-3_column { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.formglut-form .formglut-choice-layout-4_column { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.formglut-form .formglut-choice-layout-button { flex-direction: row; flex-wrap: wrap; gap: 8px; }
.formglut-form .formglut-choice { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 14px; font-weight: 400; line-height: 1.4; color: #334155; cursor: pointer; user-select: none; }
.formglut-form .formglut-choice > input[type="radio"],
.formglut-form .formglut-choice > input[type="checkbox"],
.formglut-form .formglut-consent > input[type="checkbox"] {
  -webkit-appearance: auto; appearance: auto; display: block; flex: none;
  width: 18px; height: 18px; min-width: 0; min-height: 0; margin: 0; padding: 0;
  font-size: inherit; line-height: normal; color: inherit; background: none; border: 0; border-radius: initial; box-shadow: none;
  accent-color: var(--fg-accent); cursor: pointer;
}
.formglut-form .formglut-choice > input[type="radio"]::before,
.formglut-form .formglut-choice > input[type="checkbox"]::before { content: none; }
.formglut-form .formglut-choice-layout-button .formglut-choice { position: relative; padding: 8px 16px; border: 1px solid #e2e8f0; border-radius: 8px; background: #f8fafc; transition: all .15s; }
.formglut-form .formglut-choice-layout-button .formglut-choice > input { position: absolute; opacity: 0; pointer-events: none; }
.formglut-form .formglut-choice-layout-button .formglut-choice:has(input:checked) { border-color: var(--fg-accent); background: var(--fg-accent-soft); color: var(--fg-accent); }
.formglut-form .formglut-choice-layout-button .formglut-choice:has(input:focus-visible) { outline: 2px solid var(--fg-accent); outline-offset: 2px; }
.formglut-form .formglut-choice:has(input:disabled) { opacity: .5; cursor: not-allowed; }
.formglut-form .formglut-choice-hint { font-size: 12px; line-height: 1.5; color: #64748b; margin: 6px 0 0; }

/* "Other" choice */
.formglut-form .formglut-choice-other { flex-wrap: wrap; }
.formglut-form .formglut-other-input { display: none; flex: 1 1 180px; min-width: 0; margin: 0 0 0 4px; padding: 6px 10px; border: 1px solid #e2e8f0; border-radius: 8px; font: inherit; font-size: 14px; line-height: 1.4; color: #1e293b; background: #fff; box-shadow: none; }
.formglut-form .formglut-choice-other:has(input:checked) .formglut-other-input { display: block; }
.formglut-form .formglut-choice-layout-button .formglut-choice-other .formglut-other-input { position: static; opacity: 1; pointer-events: auto; }

.formglut-form .formglut-select-all-btn { display: inline-block; margin-top: 6px; padding: 4px 10px; font: inherit; font-size: 12px; line-height: 1.5; color: #334155; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px; cursor: pointer; box-shadow: none; }
.formglut-form .formglut-select-all-btn:hover { border-color: var(--fg-accent); color: var(--fg-accent); }

/* ── Column containers ────────────────────────────────────────────── */

.formglut-form .formglut-columns { display: flex; align-items: flex-start; }
.formglut-form .formglut-column { min-width: 0; }

/* ── Multi-part fields (name, address, date range) ────────────────── */

.formglut-form .formglut-subfields { display: grid; gap: 12px; }
.formglut-form .formglut-subfields-1 { grid-template-columns: 1fr; }
.formglut-form .formglut-subfields-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.formglut-form .formglut-subfields-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.formglut-form .formglut-subfields-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.formglut-form .formglut-subfield-full { grid-column: 1 / -1; }
/* Name: title and suffix stay narrow */
.formglut-form .formglut-field-name .formglut-subfields:not(.formglut-subfields-1) { display: flex; flex-wrap: wrap; }
.formglut-form .formglut-field-name .formglut-subfields:not(.formglut-subfields-1) .formglut-subfield { flex: 1 1 140px; min-width: 0; }
.formglut-form .formglut-field-name .formglut-subfield-prefix, .formglut-form .formglut-field-name .formglut-subfield-suffix { flex: 0 0 96px !important; }

/* ── Spinner ─────────────────────────────────────────────────────── */

.formglut-form .formglut-spinner { display: flex; align-items: stretch; gap: 6px; }
.formglut-form .formglut-spinner .formglut-input { flex: 1; min-width: 0; }
.formglut-form .formglut-spinner-right .formglut-spin-btn { order: 2; }
.formglut-form .formglut-spinner-left .formglut-input { order: 2; }
.formglut-form .formglut-spinner .formglut-input::-webkit-outer-spin-button,
.formglut-form .formglut-spinner .formglut-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.formglut-form .formglut-spin-btn { min-width: 40px; margin: 0; padding: 0 12px; border: 1px solid #e2e8f0; border-radius: 8px; background: #f8fafc; color: #334155; font: inherit; font-size: 16px; line-height: 1; cursor: pointer; box-shadow: none; transition: all .15s; }
.formglut-form .formglut-spin-btn:hover { border-color: var(--fg-accent); color: var(--fg-accent); }

/* ── Display fields ───────────────────────────────────────────────── */

.formglut-form .formglut-heading-text { margin: 0 0 4px; padding: 0; color: #0f172a; font-family: inherit; font-weight: 700; line-height: 1.3; letter-spacing: normal; text-transform: none; }
.formglut-form h1.formglut-heading-text { font-size: 28px; }
.formglut-form h2.formglut-heading-text { font-size: 24px; }
.formglut-form h3.formglut-heading-text { font-size: 20px; }
.formglut-form h4.formglut-heading-text { font-size: 18px; }
.formglut-form h5.formglut-heading-text { font-size: 16px; font-weight: 600; }
.formglut-form h6.formglut-heading-text { font-size: 14px; font-weight: 600; }
.formglut-form .formglut-heading-desc { margin: 4px 0 0; font-size: 14px; color: #64748b; }
.formglut-form .formglut-heading-divider { height: 0; border: 0; border-top: 1px solid #e2e8f0; margin: 12px 0 0; background: none; }
.formglut-form .formglut-html-content { font-size: 14px; color: #334155; line-height: 1.6; }
.formglut-form :where(.formglut-html-content, .formglut-terms-box, .formglut-terms-dialog-body) :where(p, li, ul, ol, blockquote) { font-size: inherit; line-height: inherit; }
.formglut-form :where(.formglut-html-content, .formglut-terms-box) :where(p, ul, ol, blockquote) { margin: 0 0 0.75em; }
.formglut-form :where(.formglut-html-content, .formglut-terms-box, .formglut-terms-dialog-body) :where(h1, h2, h3, h4, h5, h6) { margin: 0 0 0.5em; padding: 0; font-family: inherit; font-weight: 700; line-height: 1.3; letter-spacing: normal; text-transform: none; color: #0f172a; }
.formglut-form :where(.formglut-html-content, .formglut-terms-box) :where(h1) { font-size: 28px; }
.formglut-form :where(.formglut-html-content, .formglut-terms-box) :where(h2) { font-size: 24px; }
.formglut-form :where(.formglut-html-content, .formglut-terms-box) :where(h3) { font-size: 20px; }
.formglut-form :where(.formglut-html-content, .formglut-terms-box) :where(h4) { font-size: 18px; }
.formglut-form :where(.formglut-html-content, .formglut-terms-box) :where(h5) { font-size: 16px; }
.formglut-form :where(.formglut-html-content, .formglut-terms-box) :where(h6) { font-size: 14px; }
.formglut-form :where(.formglut-terms-box) > :last-child { margin-bottom: 0; }
.formglut-form .formglut-html-content > :first-child { margin-top: 0; }
.formglut-form .formglut-html-content > :last-child { margin-bottom: 0; }

/* ── Section break ────────────────────────────────────────────────── */

.formglut-form .formglut-section-head { display: flex; align-items: flex-start; gap: 12px; }
.formglut-form .formglut-section-text { flex: 1; }
.formglut-form .formglut-section-title { margin: 0; padding: 0; font-family: inherit; font-size: 18px; font-weight: 600; line-height: 1.4; letter-spacing: normal; text-transform: none; color: #0f172a; }
.formglut-form .formglut-section-desc { margin: 4px 0 0; font-size: 14px; color: #64748b; }
.formglut-form .formglut-section-divider { height: 0; border: 0; border-top: 1px solid #e2e8f0; margin: 12px 0 0; background: none; }
.formglut-form .formglut-section-toggle, .formglut-form .formglut-password-toggle { margin: 0; padding: 4px 10px; font: inherit; font-size: 12px; line-height: 1.5; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px; color: #334155; cursor: pointer; box-shadow: none; }
.formglut-form .formglut-section-hidden { display: none !important; }

/* ── Password ─────────────────────────────────────────────────────── */

.formglut-form .formglut-password-wrap { position: relative; }
.formglut-form .formglut-password-wrap .formglut-input { padding-right: 70px !important; }
.formglut-form .formglut-password-wrap .formglut-password-toggle { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); }
.formglut-form .formglut-strength { display: flex; align-items: center; gap: 8px; margin-top: 6px; font-size: 12px; color: #94a3b8; }
.formglut-form .formglut-strength-bar { flex: 1; height: 4px; border-radius: 4px; background: #e2e8f0; overflow: hidden; }
.formglut-form .formglut-strength-bar span { display: block; height: 100%; width: 0; transition: width .2s, background .2s; }
.formglut-form .formglut-strength[data-score="0"] .formglut-strength-bar span { width: 10%; background: #ef4444; }
.formglut-form .formglut-strength[data-score="1"] .formglut-strength-bar span { width: 25%; background: #f97316; }
.formglut-form .formglut-strength[data-score="2"] .formglut-strength-bar span { width: 50%; background: #f59e0b; }
.formglut-form .formglut-strength[data-score="3"] .formglut-strength-bar span { width: 75%; background: #84cc16; }
.formglut-form .formglut-strength[data-score="4"] .formglut-strength-bar span { width: 100%; background: #10b981; }

/* ── Range slider ─────────────────────────────────────────────────── */

.formglut-form .formglut-range { --formglut-range-color: var(--fg-accent); }
.formglut-form .formglut-range input[type="range"] { display: block; width: 100%; margin: 4px 0; padding: 0; border: 0; background: transparent; box-shadow: none; accent-color: var(--formglut-range-color); -webkit-appearance: auto; appearance: auto; }
.formglut-form .formglut-range-value { font-size: 14px; font-weight: 600; color: #334155; margin-bottom: 4px; }
.formglut-form .formglut-range-ends { display: flex; justify-content: space-between; font-size: 12px; color: #64748b; }

/* ── Color picker ─────────────────────────────────────────────────── */

.formglut-form .formglut-color-picker { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.formglut-form .formglut-swatch { display: inline-block; flex: none; margin: 0; padding: 0; min-width: 0; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px #e2e8f0; cursor: pointer; }
.formglut-form .formglut-swatch.selected { box-shadow: 0 0 0 2px #0f172a; }
.formglut-form .formglut-swatch-small .formglut-swatch { width: 20px; height: 20px; }
.formglut-form .formglut-swatch-medium .formglut-swatch { width: 28px; height: 28px; }
.formglut-form .formglut-swatch-large .formglut-swatch { width: 36px; height: 36px; }
.formglut-form .formglut-color-input { width: 44px; height: 32px; margin: 0; padding: 2px; border: 1px solid #e2e8f0; border-radius: 6px; background: #fff; cursor: pointer; box-shadow: none; }

/* ── Terms and GDPR ───────────────────────────────────────────────── */

.formglut-form .formglut-terms-box { overflow-y: auto; padding: 12px 14px; margin-bottom: 10px; border: 1px solid #e2e8f0; border-radius: 8px; background: #f8fafc; font-size: 13px; color: #475569; line-height: 1.6; }
.formglut-form .formglut-consent { display: flex; align-items: flex-start; gap: 8px; margin: 0; font-size: 14px; font-weight: 400; line-height: 1.5; color: #334155; cursor: pointer; }
.formglut-form .formglut-consent > input[type="checkbox"] { margin-top: 2px; }
.formglut-form .formglut-consent > input::before { content: none; }
.formglut-form .formglut-consent-right { flex-direction: row-reverse; justify-content: flex-end; }
.formglut-terms-dialog { max-width: min(600px, 92vw); border: 0; border-radius: 12px; padding: 0; box-shadow: 0 20px 50px rgba(0,0,0,.25); }
.formglut-terms-dialog::backdrop { background: rgba(15, 23, 42, .5); }
.formglut-terms-dialog-head { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; border-bottom: 1px solid #e2e8f0; }
.formglut-terms-dialog-body { padding: 16px 18px; max-height: 60vh; overflow-y: auto; font-size: 14px; line-height: 1.6; color: #475569; }
.formglut-terms-close { background: none; border: 0; font-size: 22px; line-height: 1; cursor: pointer; color: #64748b; }

.formglut-form .formglut-custom-submit:disabled { opacity: .7; cursor: default; }
.formglut-form-wrapper .formglut-captcha-notice { padding: 8px 12px; border-radius: 8px; background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412; font-size: 13px; line-height: 1.5; }

/* ── File upload ─────────────────────────────────────────────────── */

.formglut-form .formglut-upload {
  position: relative; display: flex; align-items: center; gap: 12px;
  padding: var(--fg-pad, 14px); margin: var(--fg-margin, 0);
  border: 1.5px dashed var(--fg-border, #cbd5e1); border-radius: var(--fg-radius, 10px);
  background: var(--fg-bg, #f8fafc); color: var(--fg-color, #64748b); transition: border-color .15s, background .15s;
}
.formglut-form .formglut-upload.is-drag, .formglut-form .formglut-upload:focus-within { border-color: var(--fg-accent); background: var(--fg-accent-soft); }
.formglut-form .formglut-upload.has-files { border-style: solid; }
.formglut-form .formglut-upload .formglut-file-input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; padding: 0 !important; border: 0 !important; }
.formglut-form .formglut-upload-btn { position: relative; z-index: 0; margin: 0; padding: 7px 14px; border-radius: 8px; background: #fff; border: 1px solid #e2e8f0; font-size: 13px; font-weight: 600; line-height: 1.5; color: #334155; white-space: nowrap; pointer-events: none; }
.formglut-form .formglut-upload-hint { display: flex; flex-direction: column; min-width: 0; font-size: 13px; line-height: 1.5; color: #64748b; pointer-events: none; }
.formglut-form .formglut-upload-names { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.formglut-form .formglut-upload-hint small { font-size: 11.5px; color: #94a3b8; }
.formglut-form .formglut-upload:has(.formglut-input-error) { border-color: #ef4444; }

/* ── Multi-step ──────────────────────────────────────────────────── */

.formglut-form .formglut-step[hidden] { display: none !important; }
.formglut-form .formglut-step-nav { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 18px; }
.formglut-form .formglut-step-nav .formglut-step-next { margin-left: auto; }
.formglut-form .formglut-step-nav.has-submit .formglut-form-actions { margin: 0 0 0 auto; }
.formglut-form .formglut-step-prev, .formglut-form .formglut-step-next { border: 0; border-radius: 8px; padding: 10px 20px; font: inherit; font-size: 14px; font-weight: 600; line-height: 1.5; cursor: pointer; box-shadow: none; }
.formglut-form .formglut-step-next { background: var(--fg-accent); color: #fff; }
.formglut-form .formglut-step-prev { background: #f1f5f9; color: #334155; }
.formglut-form .formglut-step-next:hover { opacity: .9; }
.formglut-form .formglut-step-prev:hover { background: #e2e8f0; }
.formglut-form .formglut-progress { margin: 0 0 22px; }
.formglut-form .formglut-progress-steps ol { display: flex; list-style: none; margin: 0; padding: 0; gap: 8px; }
.formglut-form .formglut-progress-steps li { flex: 1; display: flex; align-items: center; gap: 8px; margin: 0; font-size: 13px; color: #94a3b8; min-width: 0; }
.formglut-form .formglut-progress-steps li::after { content: ""; flex: 1; height: 2px; background: #e2e8f0; border-radius: 2px; }
.formglut-form .formglut-progress-steps li:last-child { flex: 0 0 auto; }
.formglut-form .formglut-progress-steps li:last-child::after { display: none; }
.formglut-form .formglut-progress-steps .num { width: 26px; height: 26px; flex: none; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; background: #f1f5f9; color: #64748b; }
.formglut-form .formglut-progress-steps .txt { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.formglut-form .formglut-progress-steps li.active { color: #0f172a; font-weight: 600; }
.formglut-form .formglut-progress-steps li.active .num { background: var(--fg-accent); color: #fff; }
.formglut-form .formglut-progress-steps li.done .num { background: var(--fg-accent-soft); color: var(--fg-accent); }
.formglut-form .formglut-progress-steps li.done::after { background: var(--fg-accent); }
.formglut-form .formglut-progress-head { display: flex; justify-content: space-between; font-size: 13px; margin-bottom: 6px; color: #334155; }
.formglut-form .formglut-progress-title { font-weight: 600; }
.formglut-form .formglut-progress-count { color: #94a3b8; }
.formglut-form .formglut-progress-track { height: 6px; background: #f1f5f9; border-radius: 6px; overflow: hidden; }
.formglut-form .formglut-progress-track span { display: block; height: 100%; background: var(--fg-accent); border-radius: 6px; transition: width .25s; }

/* ── Toggle ──────────────────────────────────────────────────────── */

.formglut-form .formglut-toggle { position: relative; display: flex; width: max-content; max-width: 100%; align-items: center; gap: 10px; margin: 0; font-size: 14px; font-weight: 400; line-height: 1.5; color: #334155; cursor: pointer; }
.formglut-form .formglut-toggle .formglut-toggle-input { position: absolute !important; opacity: 0; width: 40px !important; height: 22px; margin: 0; padding: 0 !important; }
.formglut-form .formglut-toggle-track { position: relative; width: 40px; height: 22px; border-radius: 999px; background: #cbd5e1; flex: none; transition: background .15s; }
.formglut-form .formglut-toggle-track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform .15s; box-shadow: 0 1px 2px rgba(0,0,0,.2); }
.formglut-form .formglut-toggle-input:checked + .formglut-toggle-track { background: var(--fg-accent); }
.formglut-form .formglut-toggle-input:checked + .formglut-toggle-track::after { transform: translateX(18px); }
.formglut-form .formglut-toggle-input:focus-visible + .formglut-toggle-track { outline: 2px solid var(--fg-accent); outline-offset: 2px; }
.formglut-form .formglut-toggle-input.formglut-input-error + .formglut-toggle-track { box-shadow: 0 0 0 2px #ef4444; }

/* ── Star rating ─────────────────────────────────────────────────── */

.formglut-form .formglut-stars { --formglut-star: #f59e0b; display: flex; width: max-content; flex-direction: row-reverse; justify-content: flex-end; gap: 4px; }
.formglut-form .formglut-stars input { position: absolute; opacity: 0; width: 1px; height: 1px; min-width: 0; min-height: 0; margin: 0; padding: 0; border: 0; }
.formglut-form .formglut-stars label { display: inline-block; margin: 0; padding: 0; color: #e2e8f0; cursor: pointer; line-height: 1; transition: color .1s, transform .1s; }
.formglut-form .formglut-stars-small label { font-size: 22px; }
.formglut-form .formglut-stars-medium label { font-size: 30px; }
.formglut-form .formglut-stars-large label { font-size: 40px; }
.formglut-form .formglut-stars label:hover, .formglut-form .formglut-stars label:hover ~ label, .formglut-form .formglut-stars input:checked ~ label { color: var(--formglut-star); }
.formglut-form .formglut-stars label:hover { transform: scale(1.1); }
.formglut-form .formglut-stars input:focus-visible + label { outline: 2px solid var(--fg-accent); outline-offset: 2px; border-radius: 4px; }
.formglut-form .formglut-star-word { font-size: 13px; color: #64748b; margin-top: 4px; min-height: 18px; }
.formglut-form .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* ── Rich text ───────────────────────────────────────────────────── */

.formglut-form .formglut-richtext { margin: var(--fg-margin, 0); border: 1px solid var(--fg-border, #e2e8f0); border-radius: var(--fg-radius, 8px); background: var(--fg-bg, #f8fafc); overflow: hidden; }
.formglut-form .formglut-richtext:focus-within { border-color: var(--fg-accent); }
.formglut-form .formglut-richtext-bar { display: flex; flex-wrap: wrap; gap: 2px; padding: 6px 8px; border-bottom: 1px solid #e2e8f0; background: #fff; }
.formglut-form .formglut-richtext-bar button { min-width: 28px; height: 26px; margin: 0; padding: 0 4px; border: 0; border-radius: 5px; background: transparent; font: inherit; font-size: 13px; font-weight: 700; line-height: 1; color: #475569; cursor: pointer; box-shadow: none; }
.formglut-form .formglut-richtext-bar button:hover { background: #f1f5f9; color: #0f172a; }
.formglut-form .formglut-richtext-area { padding: var(--fg-pad, 10px 14px); font-size: 15px; line-height: 1.6; color: var(--fg-color, #1e293b); outline: none; overflow-wrap: anywhere; }
.formglut-form .formglut-richtext.is-empty .formglut-richtext-area::before { content: attr(data-placeholder); color: #94a3b8; pointer-events: none; }
.formglut-form .formglut-richtext-area ul, .formglut-form .formglut-richtext-area ol { margin: 0 0 0 20px; }
.formglut-form .formglut-richtext-area blockquote { margin: 6px 0; padding-left: 12px; border-left: 3px solid #e2e8f0; color: #475569; }
.formglut-form .formglut-richtext:has(.formglut-input-error) { border-color: #ef4444; }

/* ── Math captcha, reset ─────────────────────────────────────────── */

.formglut-form .formglut-math { display: flex; align-items: center; gap: 10px; }
.formglut-form .formglut-math-q { font-weight: 700; font-size: 16px; color: #334155; white-space: nowrap; }
.formglut-form .formglut-math .formglut-input { max-width: 110px; }
.formglut-form .formglut-reset-btn { margin: 0; padding: 9px 18px; border-radius: 8px; border: 1px solid #e2e8f0; background: #fff; color: #334155; font: inherit; font-weight: 600; font-size: 14px; line-height: 1.5; cursor: pointer; box-shadow: none; }
.formglut-form .formglut-reset-btn:hover { border-color: var(--fg-accent); color: var(--fg-accent); }

/* ── Counter, phone country code, searchable dropdown ────────────── */

.formglut-form .formglut-counter { margin-top: 4px; font-size: 12px; line-height: 1.5; color: #94a3b8; text-align: right; }
.formglut-form .formglut-counter.is-over { color: #dc2626; font-weight: 600; }
.formglut-form .formglut-phone-cc, .formglut-form .formglut-phone-cc .formglut-input-group { display: flex; gap: 6px; align-items: stretch; }
.formglut-form .formglut-dial-code {
  flex: 0 0 140px; width: 140px; max-width: 40%; height: auto; min-height: 0; margin: 0; padding: 8px 26px 8px 10px;
  border: 1px solid #e2e8f0; border-radius: 8px; font: inherit; font-size: 14px; line-height: 1.5; color: #1e293b; box-shadow: none; cursor: pointer;
  -webkit-appearance: none; appearance: none; text-overflow: ellipsis;
  background: #f8fafc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M6 8L1 3h10z'/%3E%3C/svg%3E") no-repeat right 8px center;
}
.formglut-form .formglut-phone-cc .formglut-input { flex: 1; min-width: 0; }
.formglut-form .formglut-search-select { display: flex; flex-direction: column; gap: 6px; }
.formglut-form .formglut-search-input { -webkit-appearance: none; appearance: none; display: block; width: 100%; margin: 0; padding: 8px 12px; border: 1px solid #e2e8f0; border-radius: 8px; font: inherit; font-size: 14px; line-height: 1.5; color: #1e293b; background: #fff; box-shadow: none; }
.formglut-form .formglut-search-input:focus { outline: none; border-color: var(--fg-accent); }

/* ── flatpickr in plugin colours ─────────────────────────────────── */

.flatpickr-day.selected, .flatpickr-day.selected:hover, .flatpickr-day.startRange, .flatpickr-day.endRange { background: var(--formglut-accent, var(--fg-accent)); border-color: var(--formglut-accent, var(--fg-accent)); }
.flatpickr-day.today { border-color: var(--formglut-accent, var(--fg-accent)); }
.flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover { color: rgba(57,57,57,.25); }
.formglut-form input.flatpickr-input[readonly] { cursor: pointer; }

/* ── Calculation ─────────────────────────────────────────────────── */

.formglut-form .formglut-calc { font-weight: 700; cursor: default; }
.formglut-form .formglut-field.formglut-calc-hidden { display: none; }

/* ── Payments ─────────────────────────────────────────────────────── */

.formglut-form .formglut-pay-price { font-size: 18px; font-weight: 700; color: #0f172a; }
.formglut-form .formglut-stripe { border: 1px solid #e2e8f0; border-radius: 10px; padding: 14px; background: #fff; }
.formglut-form .formglut-stripe-total { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 12px; color: #475569; font-size: 14px; }
.formglut-form .formglut-stripe-amount { font-size: 18px; color: #0f172a; }
.formglut-form .formglut-stripe-test { margin-top: 10px; font-size: 12px; color: #92400e; background: #fffbeb; border: 1px solid #fde68a; border-radius: 8px; padding: 6px 10px; }
.formglut-form .formglut-stripe.is-free .formglut-stripe-element { opacity: .5; pointer-events: none; }

/* ── Signature ── */
.formglut-form .formglut-signature { position: relative; }
.formglut-form .formglut-signature-pad { display: block; width: 100%; border: 1px dashed #cbd5e1; border-radius: 8px; cursor: crosshair; touch-action: none; }
.formglut-form .formglut-signature-pad:focus-visible { outline: 2px solid #4f46e5; outline-offset: 2px; }
.formglut-form .formglut-signature-pad.formglut-input-error { border-color: #ef4444; }
.formglut-form .formglut-signature-tools { display: flex; justify-content: flex-end; margin-top: 6px; }
.formglut-form .formglut-signature-clear { background: none; border: 0; padding: 2px 4px; color: #64748b; font-size: 13px; text-decoration: underline; cursor: pointer; }
.formglut-form .formglut-signature-clear:hover { color: #0f172a; }

/* ── Save progress notice ── */
.formglut-form .formglut-draft-notice { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 16px; padding: 10px 14px; border: 1px solid #bfdbfe; border-radius: 8px; background: #eff6ff; color: #1e3a8a; font-size: 14px; }
.formglut-form .formglut-draft-notice button { background: none; border: 0; padding: 0; color: inherit; font-size: 13px; font-weight: 600; text-decoration: underline; cursor: pointer; }

/* ── Small containers (narrow column, phone, editor tablet / mobile view) ── */

@container formglut (max-width: 600px) {
  .formglut-form .formglut-columns.formglut-columns-stack { flex-direction: column; align-items: stretch; row-gap: 0 !important; }
  .formglut-form .formglut-subfields-2, .formglut-form .formglut-subfields-3, .formglut-form .formglut-subfields-4 { grid-template-columns: 1fr; }
  .formglut-form .formglut-choice-layout-3_column, .formglut-form .formglut-choice-layout-4_column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@container formglut (max-width: 520px) {
  .formglut-form .formglut-progress-steps .txt { display: none; }
}

@container formglut (max-width: 480px) {
  .formglut-form { padding: 20px 16px; border-radius: 8px; }
  .formglut-form .formglut-form-title { font-size: 18px; }
  .formglut-form .formglut-submit-btn { width: 100%; }
}

/* ── Poll results (shown in the success message) ── */
.formglut-poll { margin-top: 14px; text-align: left; }
.formglut-poll-q { margin: 0 0 14px; }
.formglut-poll-title { font-weight: 600; margin-bottom: 6px; }
.formglut-poll-row { display: grid; grid-template-columns: minmax(80px, 30%) 1fr auto; align-items: center; gap: 10px; margin: 4px 0; font-size: 14px; }
.formglut-poll-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.formglut-poll-bar { display: block; height: 10px; border-radius: 999px; background: rgba(15, 23, 42, .08); overflow: hidden; }
.formglut-poll-bar span { display: block; height: 100%; border-radius: inherit; background: currentColor; opacity: .75; }
.formglut-poll-pct { font-variant-numeric: tabular-nums; min-width: 3.5em; text-align: right; }
.formglut-poll-total { font-size: 13px; opacity: .75; }

/* ── Gated content ── */
.formglut-gate-message { margin: 0 0 12px; font-weight: 600; }
