/* ============================================================
   RSForm Pro + UIkit Dark SaaS Theme Override
   Scope: .rsform-saas
   Use: wrap your RSForm with <div class="rsform-saas">...</div>
============================================================ */

.rsform-saas {
  --rs-bg-primary: #000308;
  --rs-bg-secondary: #050914;
  --rs-bg-card: #0A0F1C;
  --rs-bg-elevated: #0D1322;
  --rs-bg-input: #101827;

  --rs-text-primary: #F5F5F7;
  --rs-text-secondary: #D9DAE2;
  --rs-text-muted: #B8BBC8;
  --rs-text-dim: #8C91A3;

  --rs-purple-primary: #7B4DFF;
  --rs-purple-bright: #8B5CFF;
  --rs-purple-neon: #9B6CFF;
  --rs-purple-soft: #B084FF;
  --rs-purple-deep: #3B1B85;
  --rs-purple-dark: #170B33;

  --rs-border: rgba(176, 132, 255, 0.24);
  --rs-border-strong: rgba(176, 132, 255, 0.48);

  --rs-success: #00C985;
  --rs-success-bright: #18E8A2;
  --rs-warning: #FFCD19;
  --rs-danger: #FF4352;

  --rs-gradient-primary: linear-gradient(90deg, #6D35FF 0%, #8B5CFF 45%, #B084FF 100%);
  --rs-gradient-primary-hover: linear-gradient(90deg, #7B4DFF 0%, #9B6CFF 50%, #C2A7FF 100%);
  --rs-gradient-card: linear-gradient(180deg, rgba(13, 19, 34, 0.96) 0%, rgba(5, 9, 20, 0.96) 100%);

  --rs-radius-sm: 8px;
  --rs-radius-md: 14px;
  --rs-radius-lg: 20px;
  --rs-radius-pill: 999px;

  --rs-shadow-card: 0 18px 60px rgba(0, 0, 0, 0.46);
  --rs-shadow-purple: 0 0 24px rgba(123, 77, 255, 0.34), 0 0 70px rgba(109, 53, 255, 0.18);

  color: var(--rs-text-secondary);
}


/* ============================================================
   General Typography
============================================================ */

.rsform-saas,
.rsform-saas .uk-form-label,
.rsform-saas label,
.rsform-saas p,
.rsform-saas .formControlLabel,
.rsform-saas .formControls,
.rsform-saas .formDescription {
  color: var(--rs-text-secondary);
}

.rsform-saas h1,
.rsform-saas h2,
.rsform-saas h3,
.rsform-saas h4,
.rsform-saas h5,
.rsform-saas h6,
.rsform-saas .uk-h1,
.rsform-saas .uk-h2,
.rsform-saas .uk-h3,
.rsform-saas .uk-h4,
.rsform-saas .uk-h5,
.rsform-saas .uk-h6,
.rsform-saas .uk-legend {
  color: var(--rs-text-primary);
  letter-spacing: -0.03em;
}

.rsform-saas .uk-text-muted,
.rsform-saas .formDescription,
.rsform-saas small,
.rsform-saas .uk-text-meta {
  color: var(--rs-text-dim) !important;
}

.rsform-saas a,
.rsform-saas .uk-link {
  color: var(--rs-purple-neon);
}

.rsform-saas a:hover,
.rsform-saas .uk-link:hover {
  color: var(--rs-purple-soft);
}


/* ============================================================
   Optional Form/Card Container
============================================================ */

.rsform-saas form,
.rsform-saas .uk-card,
.rsform-saas .rsform,
.rsform-saas .formResponsive,
.rsform-saas .rsform-block-wrapper {
  color: var(--rs-text-secondary);
}

.rsform-saas .uk-card,
.rsform-saas .rsform-card,
.rsform-saas .rsform-wrapper {
  background: var(--rs-gradient-card);
  border: 1px solid var(--rs-border);
  border-radius: var(--rs-radius-lg);
  box-shadow: var(--rs-shadow-card);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}


/* ============================================================
   Labels
============================================================ */

.rsform-saas .uk-form-label,
.rsform-saas label,
.rsform-saas .formControlLabel {
  color: var(--rs-text-primary);
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 8px;
}

.rsform-saas .uk-form-stacked .uk-form-label {
  margin-bottom: 8px;
}

.rsform-saas .formRequired,
.rsform-saas .required,
.rsform-saas .rsform-required {
  color: var(--rs-purple-soft);
}


/* ============================================================
   Text Inputs / Selects / Textareas
============================================================ */

.rsform-saas .uk-input,
.rsform-saas .uk-select,
.rsform-saas .uk-textarea,
.rsform-saas input[type="text"],
.rsform-saas input[type="email"],
.rsform-saas input[type="password"],
.rsform-saas input[type="tel"],
.rsform-saas input[type="url"],
.rsform-saas input[type="number"],
.rsform-saas input[type="search"],
.rsform-saas input[type="date"],
.rsform-saas input[type="time"],
.rsform-saas textarea,
.rsform-saas select {
  width: 100%;
  min-height: 46px;
  background-color: rgba(16, 24, 39, 0.88) !important;
  color: var(--rs-text-primary) !important;
  border: 1px solid var(--rs-border) !important;
  border-radius: var(--rs-radius-md) !important;
  padding: 0 14px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.04),
    0 10px 30px rgba(0, 0, 0, 0.18);
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background-color 0.2s ease,
    color 0.2s ease;
}

.rsform-saas textarea,
.rsform-saas .uk-textarea {
  min-height: 130px;
  padding-top: 12px;
  padding-bottom: 12px;
  resize: vertical;
}

.rsform-saas .uk-input::placeholder,
.rsform-saas .uk-textarea::placeholder,
.rsform-saas input::placeholder,
.rsform-saas textarea::placeholder {
  color: var(--rs-text-dim) !important;
}

.rsform-saas .uk-input:focus,
.rsform-saas .uk-select:focus,
.rsform-saas .uk-textarea:focus,
.rsform-saas input:focus,
.rsform-saas textarea:focus,
.rsform-saas select:focus {
  outline: 0;
  background-color: rgba(13, 19, 34, 0.98) !important;
  color: var(--rs-text-primary) !important;
  border-color: rgba(176, 132, 255, 0.78) !important;
  box-shadow:
    0 0 0 3px rgba(123, 77, 255, 0.18),
    0 0 34px rgba(123, 77, 255, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
}


/* Disabled fields */

.rsform-saas .uk-input:disabled,
.rsform-saas .uk-select:disabled,
.rsform-saas .uk-textarea:disabled,
.rsform-saas input:disabled,
.rsform-saas textarea:disabled,
.rsform-saas select:disabled {
  background-color: rgba(16, 24, 39, 0.42) !important;
  color: var(--rs-text-dim) !important;
  border-color: rgba(176, 132, 255, 0.12) !important;
  cursor: not-allowed;
}


/* Select arrow */

.rsform-saas .uk-select:not([multiple]):not([size]),
.rsform-saas select:not([multiple]):not([size]) {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 42px;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpolygon%20fill%3D%22%23B084FF%22%20points%3D%2212%2013%207%206%2017%206%22%20%2F%3E%3C%2Fsvg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: calc(100% - 12px) 50% !important;
}


/* ============================================================
   Checkboxes / Radios
============================================================ */

.rsform-saas .uk-checkbox,
.rsform-saas .uk-radio,
.rsform-saas input[type="checkbox"],
.rsform-saas input[type="radio"] {
  width: 18px;
  height: 18px;
  background-color: rgba(16, 24, 39, 0.92) !important;
  border: 1px solid rgba(176, 132, 255, 0.45) !important;
  box-shadow:
    0 0 0 1px rgba(123, 77, 255, 0.04),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.rsform-saas .uk-radio,
.rsform-saas input[type="radio"] {
  border-radius: 50% !important;
}

.rsform-saas .uk-checkbox:focus,
.rsform-saas .uk-radio:focus,
.rsform-saas input[type="checkbox"]:focus,
.rsform-saas input[type="radio"]:focus {
  border-color: var(--rs-purple-soft) !important;
  box-shadow:
    0 0 0 3px rgba(123, 77, 255, 0.2),
    0 0 22px rgba(123, 77, 255, 0.24);
}

.rsform-saas .uk-checkbox:checked,
.rsform-saas .uk-checkbox:indeterminate,
.rsform-saas .uk-radio:checked,
.rsform-saas input[type="checkbox"]:checked,
.rsform-saas input[type="radio"]:checked {
  background-color: var(--rs-purple-primary) !important;
  border-color: var(--rs-purple-soft) !important;
}

.rsform-saas .uk-checkbox:checked,
.rsform-saas input[type="checkbox"]:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpolygon%20fill%3D%22%23FFFFFF%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%3C%2Fsvg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: 50% 50% !important;
}

.rsform-saas .uk-radio:checked,
.rsform-saas input[type="radio"]:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ccircle%20fill%3D%22%23FFFFFF%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%223%22%20%2F%3E%3C%2Fsvg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: 50% 50% !important;
}


/* Checkbox/radio label spacing */

.rsform-saas .uk-checkbox + label,
.rsform-saas .uk-radio + label,
.rsform-saas input[type="checkbox"] + label,
.rsform-saas input[type="radio"] + label {
  color: var(--rs-text-secondary);
  margin-left: 8px;
  font-weight: 500;
}


/* ============================================================
   Buttons
============================================================ */

.rsform-saas .uk-button,
.rsform-saas button,
.rsform-saas input[type="submit"],
.rsform-saas input[type="button"],
.rsform-saas input[type="reset"],
.rsform-saas .btn {
  border-radius: var(--rs-radius-pill) !important;
  font-weight: 700;
  letter-spacing: -0.01em;
  text-transform: none !important;
  min-height: 46px;
  padding: 0 28px;
  transition:
    transform 0.2s ease,
    color 0.2s ease,
    background-color 0.2s ease,
    background-position 0.25s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.rsform-saas .uk-button:hover,
.rsform-saas button:hover,
.rsform-saas input[type="submit"]:hover,
.rsform-saas input[type="button"]:hover,
.rsform-saas input[type="reset"]:hover {
  transform: translateY(-1px);
}


/* Primary submit */

.rsform-saas .uk-button-primary,
.rsform-saas button[type="submit"],
.rsform-saas input[type="submit"],
.rsform-saas .rsform-submit-button,
.rsform-saas .btn-primary {
  background-color: var(--rs-purple-primary) !important;
  background-image: var(--rs-gradient-primary) !important;
  background-size: 200% !important;
  background-position-x: 100% !important;
  color: #FFFFFF !important;
  border: 1px solid transparent !important;
  box-shadow:
    0 0 0 1px rgba(176, 132, 255, 0.22),
    0 10px 30px rgba(123, 77, 255, 0.32),
    0 0 42px rgba(123, 77, 255, 0.18);
}

.rsform-saas .uk-button-primary:hover,
.rsform-saas button[type="submit"]:hover,
.rsform-saas input[type="submit"]:hover,
.rsform-saas .rsform-submit-button:hover,
.rsform-saas .btn-primary:hover {
  background-image: var(--rs-gradient-primary-hover) !important;
  background-position-x: 0 !important;
  color: #FFFFFF !important;
  box-shadow:
    0 0 0 1px rgba(194, 167, 255, 0.32),
    0 14px 42px rgba(123, 77, 255, 0.42),
    0 0 64px rgba(155, 108, 255, 0.28);
}

.rsform-saas .uk-button-primary:active,
.rsform-saas button[type="submit"]:active,
.rsform-saas input[type="submit"]:active,
.rsform-saas .rsform-submit-button:active {
  transform: translateY(0);
  background-image: linear-gradient(90deg, #5F2EEA 0%, #7B4DFF 50%, #9B6CFF 100%) !important;
  box-shadow:
    inset 0 2px 12px rgba(0, 0, 0, 0.36),
    0 0 18px rgba(123, 77, 255, 0.34);
}


/* Default / secondary buttons */

.rsform-saas .uk-button-default,
.rsform-saas .uk-button-secondary,
.rsform-saas input[type="reset"],
.rsform-saas .btn-secondary {
  background-color: rgba(16, 24, 39, 0.82) !important;
  color: var(--rs-text-primary) !important;
  border: 1px solid rgba(176, 132, 255, 0.34) !important;
  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.rsform-saas .uk-button-default:hover,
.rsform-saas .uk-button-secondary:hover,
.rsform-saas input[type="reset"]:hover,
.rsform-saas .btn-secondary:hover {
  background-color: rgba(123, 77, 255, 0.16) !important;
  color: #FFFFFF !important;
  border-color: rgba(176, 132, 255, 0.72) !important;
  box-shadow:
    0 0 26px rgba(123, 77, 255, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
}


/* Danger */

.rsform-saas .uk-button-danger {
  background-color: var(--rs-danger) !important;
  color: #FFFFFF !important;
  border-color: transparent !important;
  box-shadow: 0 10px 30px rgba(255, 67, 82, 0.26);
}

.rsform-saas .uk-button-danger:hover {
  background-color: #ff293b !important;
}


/* ============================================================
   Validation / Errors / Success
============================================================ */

.rsform-saas .uk-form-danger,
.rsform-saas .uk-form-danger:focus,
.rsform-saas .rsform-error,
.rsform-saas .invalid,
.rsform-saas input.invalid,
.rsform-saas textarea.invalid,
.rsform-saas select.invalid {
  color: #FF8A95 !important;
  border-color: rgba(255, 67, 82, 0.72) !important;
  box-shadow:
    0 0 0 3px rgba(255, 67, 82, 0.14),
    0 0 28px rgba(255, 67, 82, 0.18) !important;
}

.rsform-saas .uk-form-success,
.rsform-saas .uk-form-success:focus,
.rsform-saas .valid {
  color: var(--rs-success-bright) !important;
  border-color: rgba(24, 232, 162, 0.72) !important;
  box-shadow:
    0 0 0 3px rgba(0, 201, 133, 0.14),
    0 0 28px rgba(0, 201, 133, 0.16) !important;
}

.rsform-saas .formError,
.rsform-saas .rsform-error-message,
.rsform-saas .uk-text-danger,
.rsform-saas .uk-alert-danger {
  color: #FF8A95 !important;
}

.rsform-saas .formError,
.rsform-saas .rsform-error-message {
  display: block;
  margin-top: 6px;
  font-size: 13px;
}


/* ============================================================
   Alerts
============================================================ */

.rsform-saas .uk-alert {
  background: rgba(10, 15, 28, 0.92) !important;
  color: var(--rs-text-secondary) !important;
  border: 1px solid var(--rs-border) !important;
  border-radius: var(--rs-radius-md) !important;
  box-shadow: var(--rs-shadow-card);
}

.rsform-saas .uk-alert-primary {
  background: rgba(123, 77, 255, 0.18) !important;
  color: var(--rs-purple-soft) !important;
  border-color: rgba(176, 132, 255, 0.38) !important;
}

.rsform-saas .uk-alert-success {
  background: rgba(0, 201, 133, 0.14) !important;
  color: var(--rs-success-bright) !important;
  border-color: rgba(24, 232, 162, 0.38) !important;
}

.rsform-saas .uk-alert-warning {
  background: rgba(255, 205, 25, 0.12) !important;
  color: var(--rs-warning) !important;
  border-color: rgba(255, 205, 25, 0.34) !important;
}

.rsform-saas .uk-alert-danger {
  background: rgba(255, 67, 82, 0.13) !important;
  color: #FF8A95 !important;
  border-color: rgba(255, 67, 82, 0.34) !important;
}


/* ============================================================
   Progress / Upload Bars
============================================================ */

.rsform-saas .uk-progress {
  background-color: rgba(176, 132, 255, 0.14) !important;
  border-radius: var(--rs-radius-pill);
  overflow: hidden;
  box-shadow:
    inset 0 1px 6px rgba(0, 0, 0, 0.36),
    0 0 0 1px rgba(176, 132, 255, 0.14);
}

.rsform-saas .uk-progress::-webkit-progress-value {
  background-color: var(--rs-purple-primary) !important;
  background-image: var(--rs-gradient-primary) !important;
}

.rsform-saas .uk-progress::-moz-progress-bar {
  background-color: var(--rs-purple-primary) !important;
  background-image: var(--rs-gradient-primary) !important;
}


/* ============================================================
   Upload / File Inputs
============================================================ */

.rsform-saas input[type="file"] {
  color: var(--rs-text-secondary);
}

.rsform-saas input[type="file"]::file-selector-button {
  background: rgba(16, 24, 39, 0.9);
  color: var(--rs-text-primary);
  border: 1px solid rgba(176, 132, 255, 0.34);
  border-radius: var(--rs-radius-pill);
  padding: 9px 16px;
  margin-right: 12px;
  cursor: pointer;
}

.rsform-saas input[type="file"]::file-selector-button:hover {
  background: rgba(123, 77, 255, 0.18);
  border-color: rgba(176, 132, 255, 0.72);
}


/* ============================================================
   Tables, Lists, Dividers
============================================================ */

.rsform-saas .uk-table {
  color: var(--rs-text-secondary);
}

.rsform-saas .uk-table th {
  color: var(--rs-text-dim);
}

.rsform-saas .uk-table-divider > :first-child > tr:not(:first-child),
.rsform-saas .uk-table-divider > :not(:first-child) > tr,
.rsform-saas .uk-table-divider > tr:not(:first-child),
.rsform-saas .uk-list-divider > :nth-child(n+2),
.rsform-saas hr,
.rsform-saas .uk-hr {
  border-color: rgba(176, 132, 255, 0.18) !important;
}

.rsform-saas .uk-table-striped tbody tr:nth-of-type(odd),
.rsform-saas .uk-list-striped > :nth-of-type(odd) {
  background: rgba(176, 132, 255, 0.045) !important;
  border-color: rgba(176, 132, 255, 0.16) !important;
}

.rsform-saas .uk-table-hover tbody tr:hover {
  background: rgba(123, 77, 255, 0.12) !important;
}


/* ============================================================
   Cards / Modals / Dropdowns if RSForm uses them
============================================================ */

.rsform-saas .uk-card-default,
.rsform-saas .uk-dropdown,
.rsform-saas .uk-modal-dialog {
  background: rgba(10, 15, 28, 0.96) !important;
  color: var(--rs-text-secondary) !important;
  border: 1px solid var(--rs-border) !important;
  border-radius: var(--rs-radius-lg) !important;
  box-shadow: var(--rs-shadow-card), var(--rs-shadow-purple);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.rsform-saas .uk-card-title,
.rsform-saas .uk-modal-title {
  color: var(--rs-text-primary) !important;
}

.rsform-saas .uk-card-default .uk-card-header,
.rsform-saas .uk-modal-header {
  background: rgba(13, 19, 34, 0.96) !important;
  border-bottom: 1px solid rgba(176, 132, 255, 0.18) !important;
}

.rsform-saas .uk-card-default .uk-card-footer,
.rsform-saas .uk-modal-footer {
  background: rgba(13, 19, 34, 0.96) !important;
  border-top: 1px solid rgba(176, 132, 255, 0.18) !important;
}


/* ============================================================
   Badges / Labels
============================================================ */

.rsform-saas .uk-badge,
.rsform-saas .uk-label,
.rsform-saas .uk-card-badge {
  background: var(--rs-gradient-primary) !important;
  color: #FFFFFF !important;
  border-radius: var(--rs-radius-pill) !important;
  box-shadow: 0 0 18px rgba(123, 77, 255, 0.32);
}

.rsform-saas .uk-label-success {
  background: var(--rs-success) !important;
  color: #00140E !important;
}

.rsform-saas .uk-label-warning {
  background: var(--rs-warning) !important;
  color: #170B33 !important;
}

.rsform-saas .uk-label-danger {
  background: var(--rs-danger) !important;
  color: #FFFFFF !important;
}


/* ============================================================
   Icons / Close Buttons
============================================================ */

.rsform-saas .uk-close,
.rsform-saas .uk-icon-link,
.rsform-saas .uk-form-icon {
  color: var(--rs-text-dim) !important;
}

.rsform-saas .uk-close:hover,
.rsform-saas .uk-icon-link:hover,
.rsform-saas .uk-form-icon:hover {
  color: var(--rs-purple-soft) !important;
}

.rsform-saas .uk-icon-button {
  background: rgba(16, 24, 39, 0.86) !important;
  color: var(--rs-purple-soft) !important;
  border: 1px solid rgba(176, 132, 255, 0.28);
  box-shadow:
    0 12px 32px rgba(0, 0, 0, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.rsform-saas .uk-icon-button:hover {
  background: rgba(123, 77, 255, 0.16) !important;
  color: #FFFFFF !important;
  border-color: rgba(176, 132, 255, 0.58);
}


/* ============================================================
   RSForm Specific Spacing
============================================================ */

.rsform-saas .rsform-block,
.rsform-saas .formControls,
.rsform-saas .formControl,
.rsform-saas .uk-margin {
  margin-bottom: 18px;
}

.rsform-saas .rsform-block:last-child {
  margin-bottom: 0;
}

.rsform-saas .formControls input,
.rsform-saas .formControls textarea,
.rsform-saas .formControls select {
  max-width: 100%;
}


/* ============================================================
   Focus / Selection
============================================================ */

.rsform-saas :focus-visible {
  outline: 2px solid var(--rs-purple-soft);
  outline-offset: 3px;
}

.rsform-saas ::selection {
  background: rgba(123, 77, 255, 0.72);
  color: #FFFFFF;
}


/* ============================================================
   Mobile Polish
============================================================ */

@media (max-width: 640px) {
  .rsform-saas .uk-button,
  .rsform-saas button,
  .rsform-saas input[type="submit"],
  .rsform-saas input[type="button"],
  .rsform-saas input[type="reset"] {
    width: 100%;
    margin-top: 8px;
  }

  .rsform-saas .uk-input,
  .rsform-saas .uk-select,
  .rsform-saas .uk-textarea,
  .rsform-saas input,
  .rsform-saas textarea,
  .rsform-saas select {
    font-size: 16px;
  }
}