/* Shared form & button styles (extracted) */

.form-group {
    position: relative;
}

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

.form-input,
.form-select,
.form-textarea {
    width: 100%;
    background: var(--glass-bg);
    backdrop-filter: blur(10px);
    border: 2px solid var(--glass-border);
    border-radius: 15px;
    color: var(--text-dark);
    font-size: 1rem;
    transition: all 0.3s ease;
    box-sizing: border-box;
}

.form-input {
    padding: 1rem 1.5rem;
}

/* Wrapper indicating an icon is present inside the field */
.has-icon .form-input {
    padding-left: 3rem;
    /* leave space for icon */
}

.form-group.has-icon {
    /* ensure relative positioning for absolutely positioned icons */
    position: relative;
}

/* Ensure icons sit above input content when wrapped directly without additional container */
.form-group.has-icon .form-icon {
    pointer-events: none;
}

/* Auth form specific fine-tuning (kept here as shared) */
.auth-form .form-group {
    margin-bottom: 1.25rem;
}

.auth-form .submit-btn {
    margin-top: .5rem;
}

.form-select {
    padding: 1rem 1.5rem;
    cursor: pointer;
}

.form-textarea {
    padding: 1rem 1.5rem;
    resize: vertical;
}

.form-input:focus,
.form-select:focus,
.form-textarea:focus {
    outline: none;
    border-color: var(--primary-gold);
    box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.1);
}

.submit-btn {
    width: 100%;
    padding: 1rem 1.5rem;
    min-height: 58px;
    font-size: 1.05rem;
    font-weight: 600;
}

/* Utility */
.form-label {
    display: block;
    margin-bottom: .5rem;
    font-weight: 600;
    color: var(--text-dark);
}

.field-error {
    color: #e74c3c;
    font-size: .8rem;
    margin-top: .5rem;
    display: block;
}

@media (max-width: 768px) {
    .form-row {
        grid-template-columns: 1fr !important;
    }
}