.rs-form-stack {
    display: grid;
    gap: 1rem;
}

.rs-form-grid,
.rs-user-form__grid {
    display: grid;
    grid-template-columns: minmax(280px, 0.9fr) minmax(360px, 1.1fr);
    gap: 0.9rem;
    align-items: start;
}

.rs-form-section,
.rs-user-form__card,
.rs-profile-box {
    display: grid;
    gap: 0.78rem;
    padding: 1rem;
    border: 1px solid var(--rs-border);
    border-radius: 0;
    background: color-mix(in srgb, var(--rs-panel-strong) 62%, transparent);
}

.rs-form-section__title,
.rs-user-form__section-head h3 {
    margin: 0;
    color: var(--rs-text);
    font-size: 1.06rem;
    font-weight: 300;
    letter-spacing: -0.03em;
}

.rs-user-form,
.rs-user-form__section-head,
.rs-form-row,
.rs-field {
    display: grid;
}

.rs-user-form {
    gap: 0.9rem;
}

.rs-user-form__section-head {
    gap: 0.22rem;
    margin-bottom: 0.1rem;
}

.rs-user-form__section-head p,
.rs-help,
.rs-field-help {
    margin: 0;
    color: var(--rs-text-muted);
    font-size: 0.84rem;
    line-height: 1.5;
}

.rs-field,
.rs-form-row {
    gap: 0.34rem;
}

.rs-form-row--split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.7rem;
}

.rs-label {
    margin: 0;
    color: var(--rs-text-soft);
    font-size: 0.86rem;
    font-weight: 300;
}

.rs-input,
.rs-select,
.rs-textarea,
.form-control,
.form-select {
    width: 100%;
    min-height: 40px;
    padding: 0.54rem 0.76rem;
    border: 1px solid var(--rs-border);
    border-radius: 0;
    background-color: color-mix(in srgb, var(--rs-bg-soft) 34%, rgba(255, 255, 255, 0.68));
    color: var(--rs-text);
    font: inherit;
    font-size: 0.92rem;
    box-shadow: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.rs-textarea,
textarea.form-control {
    min-height: 82px;
    resize: vertical;
    line-height: 1.5;
}

.rs-input::placeholder,
.rs-textarea::placeholder,
.form-control::placeholder {
    color: var(--rs-text-muted);
}

.rs-input:focus,
.rs-select:focus,
.rs-textarea:focus,
.form-control:focus,
.form-select:focus {
    outline: none;
    border-color: var(--rs-border-strong);
    background-color: var(--rs-surface);
    color: var(--rs-text);
    box-shadow: 0 0 0 3px var(--rs-accent-soft);
}

.rs-input.is-invalid,
.rs-select.is-invalid,
.rs-textarea.is-invalid,
.form-control.is-invalid,
.form-select.is-invalid {
    border-color: var(--rs-danger);
}

.rs-form-errors {
    margin-bottom: 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid color-mix(in srgb, var(--rs-danger) 25%, var(--rs-border));
    border-radius: 0;
    background: var(--rs-danger-soft);
    color: var(--rs-danger);
}

.rs-form-errors ul {
    margin: 0;
    padding-left: 1.1rem;
}

.rs-form-errors li + li {
    margin-top: 0.35rem;
}

.rs-form-footer,
.rs-user-form__footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-top: 0.2rem;
    padding: 0.75rem 0.85rem;
}

html[data-rs-theme="gelap"] .rs-input,
html[data-rs-theme="gelap"] .rs-select,
html[data-rs-theme="gelap"] .rs-textarea,
html[data-rs-theme="gelap"] .form-control,
html[data-rs-theme="gelap"] .form-select {
    background-color: rgba(255, 255, 255, 0.045);
    border-color: rgba(255, 255, 255, 0.09);
    color: var(--rs-text);
}

html[data-rs-theme="gelap"] .rs-input:focus,
html[data-rs-theme="gelap"] .rs-select:focus,
html[data-rs-theme="gelap"] .rs-textarea:focus,
html[data-rs-theme="gelap"] .form-control:focus,
html[data-rs-theme="gelap"] .form-select:focus {
    background-color: rgba(255, 255, 255, 0.07);
}

html[data-rs-theme="gelap"] .rs-form-section,
html[data-rs-theme="gelap"] .rs-user-form__card,
html[data-rs-theme="gelap"] .rs-profile-box {
    background: rgba(255, 255, 255, 0.035);
    border-color: rgba(255, 255, 255, 0.08);
}

@media (max-width: 991.98px) {
    .rs-form-grid,
    .rs-user-form__grid,
    .rs-form-row--split {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 767.98px) {
    .rs-form-section,
    .rs-user-form__card {
        padding: 0.9rem;
    }

    .rs-form-footer,
    .rs-user-form__footer {
        justify-content: stretch;
        padding: 0;
    }

    .rs-form-footer > *,
    .rs-user-form__footer > * {
        flex: 1 1 auto;
    }
}
