/* UFOcamping Art — Forms & UX v1.7.0 */
.ufca-forms-ux {
  --ufca-form-surface: var(--ufo-background, #fff);
  --ufca-form-text: var(--ufo-text, #1f2430);
  --ufca-form-border: var(--ufo-divider, rgba(31,36,48,.18));
  --ufca-form-accent: var(--ufo-accent, var(--e-global-color-accent, #8b3dff));
  --ufca-form-muted: color-mix(in srgb, var(--ufca-form-text) 62%, transparent);
  --ufca-form-shadow: 0 10px 30px rgba(17,24,39,.08);
}

.ufca-form-enhanced {
  --ufca-field-gap: var(--ufca-form-gap, 16px);
}

.ufca-form-enhanced .ufca-field-control,
.ufca-forms-scope-elementor .elementor-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.ufca-forms-scope-elementor .elementor-form select,
.ufca-forms-scope-elementor .elementor-form textarea,
.ufca-forms-scope-woocommerce .woocommerce form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.ufca-forms-scope-woocommerce .woocommerce form select,
.ufca-forms-scope-woocommerce .woocommerce form textarea,
.ufca-forms-scope-wp .entry-content form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.ufca-forms-scope-wp .entry-content form select,
.ufca-forms-scope-wp .entry-content form textarea,
.ufca-forms-scope-wp .site-main form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.ufca-forms-scope-wp .site-main form select,
.ufca-forms-scope-wp .site-main form textarea,
.ufca-forms-scope-art [data-ufca-form] input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.ufca-forms-scope-art [data-ufca-form] select,
.ufca-forms-scope-art [data-ufca-form] textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: var(--ufca-form-control-height, 50px);
  padding: 11px 14px;
  border: 1px solid var(--ufca-form-border);
  border-radius: var(--ufca-form-radius, 14px);
  background: var(--ufca-form-surface);
  color: var(--ufca-form-text);
  font: inherit;
  line-height: 1.35;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease, transform .18s ease;
}

.ufca-form-enhanced textarea.ufca-field-control { min-height: 120px; resize: vertical; }
.ufca-form-enhanced select.ufca-field-control { cursor: pointer; }
.ufca-form-enhanced input[type="file"].ufca-field-control { padding: 8px 10px; min-height: var(--ufca-form-control-height, 50px); }

.ufca-form-enhanced .ufca-field-control:focus,
.ufca-form-enhanced .ufca-field-control:focus-visible {
  outline: 0;
  border-color: var(--ufca-form-accent);
  box-shadow: 0 0 0 var(--ufca-form-focus-ring, 3px) color-mix(in srgb, var(--ufca-form-accent) 22%, transparent);
}

.ufca-form-enhanced .ufca-field-control:disabled,
.ufca-form-enhanced .ufca-field-control[readonly] {
  opacity: .62;
  cursor: not-allowed;
  background: color-mix(in srgb, var(--ufca-form-surface) 92%, var(--ufca-form-text) 8%);
}

.ufca-form-enhanced .ufca-field-control.ufca-is-error,
.ufca-form-enhanced [aria-invalid="true"].ufca-field-control {
  border-color: var(--ufca-ux-danger);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--ufca-ux-danger) 16%, transparent);
}
.ufca-form-enhanced .ufca-field-control.ufca-is-success {
  border-color: var(--ufca-ux-success);
}

.ufca-form-enhanced input[type="checkbox"].ufca-field-control,
.ufca-form-enhanced input[type="radio"].ufca-field-control {
  width: 19px;
  height: 19px;
  min-height: 0;
  accent-color: var(--ufca-form-accent);
}

.ufca-form-enhanced .ufca-field-label,
.ufca-form-enhanced label {
  color: var(--ufca-form-text);
}

.ufca-file-name {
  display: block;
  margin-top: 6px;
  color: var(--ufca-form-muted);
  font-size: .86em;
  overflow-wrap: anywhere;
}

.ufca-form-enhanced button[type="submit"].ufca-is-busy,
.ufca-form-enhanced input[type="submit"].ufca-is-busy,
.ufca-is-busy[aria-busy="true"] {
  position: relative;
  cursor: progress !important;
  opacity: .78;
  pointer-events: none;
}
.ufca-form-enhanced button[type="submit"].ufca-is-busy::after,
.ufca-is-busy[aria-busy="true"]::after {
  content: "";
  width: 16px;
  height: 16px;
  display: inline-block;
  margin-left: 9px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  vertical-align: -3px;
  animation: ufca-ux-spin .7s linear infinite;
}

.ufca-ux-toast-region {
  position: fixed;
  z-index: 999999;
  display: grid;
  gap: 10px;
  max-width: min(390px, calc(100vw - 28px));
  pointer-events: none;
}
.ufca-ux-toast-region[data-position="top-right"] { top: calc(18px + env(safe-area-inset-top)); right: 18px; }
.ufca-ux-toast-region[data-position="top-left"] { top: calc(18px + env(safe-area-inset-top)); left: 18px; }
.ufca-ux-toast-region[data-position="bottom-left"] { bottom: calc(18px + env(safe-area-inset-bottom)); left: 18px; }
.ufca-ux-toast-region[data-position="bottom-right"] { bottom: calc(18px + env(safe-area-inset-bottom)); right: 18px; }
.ufca-ux-toast-region[data-position="bottom-center"] { bottom: calc(18px + env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); }
.ufca-ux-toast {
  pointer-events: auto;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: start;
  padding: 14px 15px;
  border-radius: var(--ufca-form-radius, 14px);
  background: var(--ufca-form-surface, #fff);
  color: var(--ufca-form-text, #1f2430);
  border: 1px solid var(--ufca-form-border, rgba(31,36,48,.18));
  border-left: 4px solid var(--ufca-form-accent);
  box-shadow: 0 18px 48px rgba(17,24,39,.18);
  animation: ufca-ux-toast-in .22s ease both;
}
.ufca-ux-toast[data-type="success"] { border-left-color: var(--ufca-ux-success); }
.ufca-ux-toast[data-type="warning"] { border-left-color: var(--ufca-ux-warning); }
.ufca-ux-toast[data-type="danger"] { border-left-color: var(--ufca-ux-danger); }
.ufca-ux-toast__content strong { display:block; margin:0 0 2px; }
.ufca-ux-toast__content span { display:block; color:var(--ufca-form-muted); }
.ufca-ux-toast__close { border:0; background:transparent; color:inherit; font:inherit; cursor:pointer; padding:0 2px; line-height:1.2; }
.ufca-ux-toast.is-leaving { animation: ufca-ux-toast-out .18s ease both; }

.ufca-ux-progress { margin: 14px 0; }
.ufca-ux-progress__head { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:8px; color:var(--ufca-form-text); }
.ufca-ux-progress__track { height: 10px; overflow:hidden; border-radius:999px; background:color-mix(in srgb, var(--ufca-form-text) 10%, transparent); }
.ufca-ux-progress__bar { display:block; height:100%; border-radius:inherit; background:var(--ufca-form-accent); transition:width .28s ease; }
.ufca-ux-progress--success .ufca-ux-progress__bar { background:var(--ufca-ux-success); }
.ufca-ux-progress--warning .ufca-ux-progress__bar { background:var(--ufca-ux-warning); }
.ufca-ux-progress--danger .ufca-ux-progress__bar { background:var(--ufca-ux-danger); }

.ufca-ux-loader { display:inline-flex; align-items:center; gap:9px; color:var(--ufca-form-text); }
.ufca-ux-loader i { display:block; width:20px; height:20px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:ufca-ux-spin .75s linear infinite; }
.ufca-ux-loader--sm i { width:14px; height:14px; }
.ufca-ux-loader--lg i { width:28px; height:28px; border-width:3px; }

.ufca-ux-skeleton { display:flex; gap:14px; align-items:flex-start; }
.ufca-ux-skeleton__avatar,
.ufca-ux-skeleton__line { display:block; background:linear-gradient(100deg, rgba(127,127,127,.12) 20%, rgba(127,127,127,.22) 40%, rgba(127,127,127,.12) 60%); background-size:220% 100%; animation:ufca-ux-shimmer 1.35s ease-in-out infinite; }
.ufca-ux-skeleton__avatar { flex:0 0 46px; width:46px; height:46px; border-radius:50%; }
.ufca-ux-skeleton__lines { flex:1; display:grid; gap:9px; padding-top:3px; }
.ufca-ux-skeleton__line { height:12px; border-radius:999px; }
.ufca-ux-skeleton__line.is-short { width:64%; }

.ufca-ux-empty { padding:28px; text-align:center; border:1px dashed var(--ufca-form-border); border-radius:var(--ufo-radius-lg, 24px); background:color-mix(in srgb, var(--ufca-form-surface) 96%, var(--ufca-form-accent) 4%); color:var(--ufca-form-text); }
.ufca-ux-empty__icon { display:grid; place-items:center; width:48px; height:48px; margin:0 auto 12px; border-radius:50%; background:color-mix(in srgb, var(--ufca-form-accent) 12%, transparent); color:var(--ufca-form-accent); font-size:24px; }
.ufca-ux-empty strong { display:block; font-size:1.06em; }
.ufca-ux-empty p { max-width:620px; margin:7px auto 0; color:var(--ufca-form-muted); }
.ufca-ux-empty__action { display:inline-flex; margin-top:16px; align-items:center; justify-content:center; min-height:44px; padding:9px 18px; border-radius:var(--ufo-radius-pill, 999px); background:var(--ufca-form-accent); color:#fff; text-decoration:none; }

.ufca-ux-status { display:flex; flex-wrap:wrap; gap:7px 10px; align-items:baseline; padding:12px 14px; border-radius:var(--ufca-form-radius, 14px); border:1px solid var(--ufca-form-border); border-left:4px solid var(--ufca-form-accent); background:var(--ufca-form-surface); color:var(--ufca-form-text); }
.ufca-ux-status--success { border-left-color:var(--ufca-ux-success); }
.ufca-ux-status--warning { border-left-color:var(--ufca-ux-warning); }
.ufca-ux-status--danger { border-left-color:var(--ufca-ux-danger); }
.ufca-ux-status span { color:var(--ufca-form-muted); }

.ufca-ux-sr-live { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }

@keyframes ufca-ux-spin { to { transform:rotate(360deg); } }
@keyframes ufca-ux-shimmer { to { background-position:-220% 0; } }
@keyframes ufca-ux-toast-in { from { opacity:0; transform:translateY(8px) scale(.98); } to { opacity:1; transform:none; } }
@keyframes ufca-ux-toast-out { to { opacity:0; transform:translateY(5px) scale(.98); } }

@media (max-width: 767px) {
  .ufca-ux-toast-region { left:14px !important; right:14px !important; transform:none !important; max-width:none; }
  .ufca-ux-toast-region[data-position^="top"] { top:calc(12px + env(safe-area-inset-top)); }
  .ufca-ux-toast-region[data-position^="bottom"] { bottom:calc(12px + env(safe-area-inset-bottom)); }
  .ufca-ux-empty { padding:22px 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .ufca-forms-ux *, .ufca-forms-ux *::before, .ufca-forms-ux *::after { scroll-behavior:auto !important; }
  .ufca-ux-loader i,
  .ufca-ux-skeleton__avatar,
  .ufca-ux-skeleton__line,
  .ufca-ux-toast,
  .ufca-form-enhanced button[type="submit"].ufca-is-busy::after,
  .ufca-is-busy[aria-busy="true"]::after { animation:none !important; }
  .ufca-ux-progress__bar { transition:none !important; }
}

@media (prefers-contrast: more) {
  .ufca-form-enhanced .ufca-field-control { border-width:2px; }
  .ufca-ux-status, .ufca-ux-toast { border-width:2px; }
}
