.wwx-theme .form-control,
.wwx-theme .form-select,
.wwx-theme .input-group-text {
    color: var(--wwx-text-primary);
    background-color: var(--wwx-control-surface);
    border-color: rgba(174, 185, 194, 0.28);
    border-radius: var(--wwx-radius-sm);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025);
}

.wwx-theme .form-control,
.wwx-theme .form-select {
    min-height: 2.75rem;
    padding: 0.625rem 0.875rem;
    font-size: var(--wwx-font-size-md);
    line-height: 1.35;
    transition:
        border-color var(--wwx-motion-fast) var(--wwx-ease-standard),
        background-color var(--wwx-motion-fast) var(--wwx-ease-standard),
        box-shadow var(--wwx-motion-fast) var(--wwx-ease-standard);
}

.wwx-theme textarea.form-control {
    min-height: 7rem;
    resize: vertical;
}

.wwx-theme .form-control:hover:not(:disabled):not([readonly]),
.wwx-theme .form-select:hover:not(:disabled) {
    border-color: var(--wwx-border-strong);
    background-color: var(--wwx-control-surface-focus);
}

.wwx-theme .form-control:focus,
.wwx-theme .form-select:focus {
    color: var(--wwx-text-primary);
    background-color: var(--wwx-control-surface-focus);
    border-color: var(--wwx-color-forest-300);
    box-shadow: var(--wwx-shadow-focus);
}

.wwx-theme .form-control::placeholder {
    color: var(--wwx-text-secondary);
    opacity: 0.72;
}

.wwx-theme .form-select {
    --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23aeb9c2' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    padding-right: 2.75rem;
    cursor: pointer;
}

.wwx-theme .form-select option,
.wwx-theme select option {
    color: var(--wwx-text-primary);
    background: var(--wwx-surface-raised);
}

.wwx-theme .form-select[multiple],
.wwx-theme .form-select[size]:not([size="1"]) {
    min-height: 8rem;
    padding-right: 0.875rem;
    background-image: none;
}

.wwx-theme .form-control-sm,
.wwx-theme .form-select-sm {
    min-height: 2.25rem;
    padding: 0.375rem 0.625rem;
    font-size: var(--wwx-font-size-sm);
}

.wwx-theme .form-control-lg,
.wwx-theme .form-select-lg {
    min-height: 3.25rem;
    padding: 0.75rem 1rem;
}

.wwx-theme .input-group {
    align-items: stretch;
}

.wwx-theme .input-group-text {
    min-width: 2.75rem;
    justify-content: center;
    color: var(--wwx-text-secondary);
    background: var(--wwx-surface-muted);
}

.wwx-theme .input-group > .form-control,
.wwx-theme .input-group > .form-select,
.wwx-theme .input-group > .input-group-text,
.wwx-theme .input-group > .btn {
    min-height: 2.75rem;
}

.wwx-theme .form-check {
    min-height: 1.5rem;
}

.wwx-theme .form-check-input {
    background-color: var(--wwx-control-surface);
    border: 1px solid rgba(174, 185, 194, 0.48);
}

.wwx-theme .form-check-input:hover:not(:disabled) {
    border-color: var(--wwx-color-forest-300);
}

.wwx-theme .form-check-input:focus {
    border-color: var(--wwx-color-forest-300);
    box-shadow: var(--wwx-shadow-focus);
}

.wwx-theme .form-check-input:checked {
    background-color: var(--wwx-color-forest-500);
    border-color: var(--wwx-color-forest-300);
}

.wwx-theme .form-switch .form-check-input {
    width: 3rem;
    min-height: 1.625rem;
    background-position: left center;
    background-size: 1.25rem 1.25rem;
    cursor: pointer;
}

.wwx-theme .form-switch .form-check-input:checked {
    background-position: right center;
}

.wwx-theme .form-range::-webkit-slider-thumb {
    background: var(--wwx-color-forest-300);
}

.wwx-theme .form-range::-moz-range-thumb {
    background: var(--wwx-color-forest-300);
    border: 0;
}

.wwx-theme .wwx-file-input::file-selector-button {
    color: var(--wwx-text-primary);
    background: var(--wwx-surface-muted);
    border-color: var(--wwx-border-subtle);
}

.wwx-theme .form-label,
.wwx-theme legend,
.wwx-theme .form-group > label,
.wwx-theme .mb-3 > label {
    margin-bottom: var(--wwx-space-2);
    color: var(--wwx-text-primary);
    font-weight: 600;
}

.wwx-theme .form-control-color {
    width: 4.25rem;
    min-height: 3rem;
    padding: 0.3rem;
    cursor: pointer;
}

.wwx-theme .form-control-color::-webkit-color-swatch {
    border: 0;
    border-radius: calc(var(--wwx-radius-sm) - 0.2rem);
}

.wwx-theme .form-control-color::-moz-color-swatch {
    border: 0;
    border-radius: calc(var(--wwx-radius-sm) - 0.2rem);
}

.wwx-theme input[type="date"]::-webkit-calendar-picker-indicator,
.wwx-theme input[type="datetime-local"]::-webkit-calendar-picker-indicator,
.wwx-theme input[type="time"]::-webkit-calendar-picker-indicator {
    filter: invert(0.9);
    cursor: pointer;
}

.wwx-theme input:-webkit-autofill,
.wwx-theme input:-webkit-autofill:hover,
.wwx-theme input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--wwx-text-primary);
    box-shadow: 0 0 0 1000px var(--wwx-control-surface) inset;
    caret-color: var(--wwx-text-primary);
}

.wwx-theme .wwx-required-marker {
    margin-left: var(--wwx-space-1);
    color: var(--wwx-color-danger);
}

.wwx-theme .form-text {
    color: var(--wwx-text-secondary);
}

.wwx-theme .select2-container {
    width: 100% !important;
}

.wwx-theme .select2-container--default .select2-selection--single,
.wwx-theme .select2-container--default .select2-selection--multiple,
.wwx-theme .select2-container--bootstrap-5 .select2-selection {
    min-height: 2.75rem;
    color: var(--wwx-text-primary);
    background-color: var(--wwx-control-surface);
    border: 1px solid rgba(174, 185, 194, 0.28);
    border-radius: var(--wwx-radius-sm);
}

.wwx-theme .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding: 0.625rem 2.5rem 0.625rem 0.875rem;
    color: var(--wwx-text-primary);
    line-height: 1.35;
}

.wwx-theme .select2-container--default .select2-selection--single .select2-selection__arrow {
    top: 0.5rem;
    right: 0.5rem;
}

.wwx-theme .select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: var(--wwx-text-secondary) transparent transparent;
}

.wwx-theme .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
    border-color: transparent transparent var(--wwx-text-secondary);
}

.wwx-theme .select2-container--default .select2-selection--multiple {
    padding: 0.25rem 0.5rem;
}

.wwx-theme .select2-container--default.select2-container--focus .select2-selection--multiple,
.wwx-theme .select2-container--default.select2-container--open .select2-selection--single,
.wwx-theme .select2-container--bootstrap-5.select2-container--focus .select2-selection {
    border-color: var(--wwx-color-forest-300);
    box-shadow: var(--wwx-shadow-focus);
}

.wwx-theme .select2-dropdown {
    color: var(--wwx-text-primary);
    background: var(--wwx-navigation-surface);
    border-color: var(--wwx-border-strong);
    border-radius: var(--wwx-radius-sm);
    box-shadow: var(--wwx-shadow-md);
}

.wwx-theme .select2-search__field {
    color: var(--wwx-text-primary);
    background: var(--wwx-color-slate-800);
    border-color: var(--wwx-border-subtle) !important;
    border-radius: var(--wwx-radius-sm);
}

.wwx-theme .select2-container--default .select2-results__option {
    padding: 0.625rem 0.875rem;
    color: var(--wwx-text-primary);
}

.wwx-theme .select2-container--default .select2-results__option[aria-selected="true"],
.wwx-theme .select2-container--default .select2-results__option[data-selected="true"] {
    background: var(--wwx-color-forest-soft);
}

.wwx-theme .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: var(--wwx-text-secondary);
    border-right-color: var(--wwx-border-subtle);
}

.wwx-theme .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
    color: var(--wwx-color-white);
    background: var(--wwx-color-danger-soft);
}

.wwx-theme .form-floating > label {
    color: var(--wwx-text-secondary);
}

.wwx-theme .form-floating > .form-control:focus ~ label,
.wwx-theme .form-floating > .form-control:not(:placeholder-shown) ~ label,
.wwx-theme .form-floating > .form-select ~ label {
    color: var(--wwx-color-forest-300);
}

.wwx-theme .form-control-plaintext {
    color: var(--wwx-text-primary);
}

.wwx-theme .bootstrap-select > .dropdown-toggle,
.wwx-theme .multiselect.dropdown-toggle,
.wwx-theme .choices__inner,
.wwx-theme .ts-control {
    min-height: 2.75rem;
    color: var(--wwx-text-primary);
    background: var(--wwx-control-surface);
    border: 1px solid rgba(174, 185, 194, 0.28);
    border-radius: var(--wwx-radius-sm);
}

.wwx-theme .bootstrap-select > .dropdown-toggle:focus,
.wwx-theme .multiselect.dropdown-toggle:focus,
.wwx-theme .choices.is-focused .choices__inner,
.wwx-theme .ts-control:focus-within {
    border-color: var(--wwx-color-forest-300);
    box-shadow: var(--wwx-shadow-focus);
}

.wwx-theme .choices__list--dropdown,
.wwx-theme .choices__list[aria-expanded],
.wwx-theme .ts-dropdown {
    color: var(--wwx-text-primary);
    background: var(--wwx-navigation-surface);
    border-color: var(--wwx-border-subtle);
    box-shadow: var(--wwx-shadow-md);
}

.wwx-theme .select2-container--default .select2-results__option--highlighted[aria-selected],
.wwx-theme .select2-container--default .select2-results__option--highlighted[data-selected] {
    color: var(--wwx-text-inverse);
    background: var(--wwx-color-forest-300);
}

.wwx-theme .select2-container--default .select2-selection--multiple .select2-selection__choice {
    color: var(--wwx-text-primary);
    background: var(--wwx-color-forest-soft);
    border-color: var(--wwx-border-strong);
    border-radius: var(--wwx-radius-pill);
}

.wwx-theme .form-section {
    padding: var(--wwx-space-5);
    background: var(--wwx-surface-card);
    border: 1px solid var(--wwx-border-subtle);
    border-radius: var(--wwx-radius-lg);
}

.wwx-theme .form-section + .form-section {
    margin-top: var(--wwx-space-5);
}

.wwx-theme .form-section__title {
    margin-bottom: var(--wwx-space-1);
    font-size: var(--wwx-font-size-lg);
    font-weight: 700;
}

.wwx-theme .form-section__description {
    margin-bottom: var(--wwx-space-4);
    color: var(--wwx-text-secondary);
}

.wwx-theme .wwx-form-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--wwx-space-3);
    margin-top: var(--wwx-space-5);
}

.wwx-theme .wwx-validation-summary {
    padding: var(--wwx-space-4);
    color: var(--wwx-color-danger);
    background: var(--wwx-color-danger-soft);
    border: 1px solid var(--wwx-color-danger);
    border-radius: var(--wwx-radius-md);
}

.wwx-theme .wwx-validation-summary:empty {
    display: none;
}

.wwx-theme .wwx-validation-summary ul {
    margin: var(--wwx-space-2) 0 0;
    padding-left: var(--wwx-space-5);
}

.wwx-theme .form-control.is-invalid,
.wwx-theme .form-select.is-invalid,
.wwx-theme .was-validated .form-control:invalid,
.wwx-theme .was-validated .form-select:invalid {
    border-color: var(--wwx-color-danger);
}

.wwx-theme .form-control.is-invalid:focus,
.wwx-theme .form-select.is-invalid:focus,
.wwx-theme .was-validated .form-control:invalid:focus,
.wwx-theme .was-validated .form-select:invalid:focus {
    box-shadow: 0 0 0 0.25rem var(--wwx-color-danger-soft);
}

.wwx-theme .form-control.is-valid,
.wwx-theme .form-select.is-valid,
.wwx-theme .was-validated .form-control:valid,
.wwx-theme .was-validated .form-select:valid {
    border-color: var(--wwx-color-success);
}

.wwx-theme .form-control:disabled,
.wwx-theme .form-control[readonly],
.wwx-theme .form-select:disabled {
    color: var(--wwx-text-secondary);
    background: var(--wwx-surface-muted);
    border-color: var(--wwx-border-subtle);
    opacity: 0.78;
}

.wwx-theme .form-control[readonly] {
    cursor: default;
}

.wwx-theme .form-control:disabled,
.wwx-theme .form-select:disabled,
.wwx-theme .form-check-input:disabled {
    cursor: not-allowed;
}

@media (max-width: 575.98px) {
    .wwx-theme .form-control,
    .wwx-theme .form-select,
    .wwx-theme .input-group-text,
    .wwx-theme .input-group > .btn {
        min-height: 3rem;
    }
}
