/* ===== FORMULÁRIOS ===== */

.form-control, .form-select {
    background-color: var(--bg-input) !important;
    border-color: var(--border-input) !important;
    color: var(--text-primary) !important;
}

.form-control:focus, .form-select:focus {
    border-color: var(--accent) !important;
    box-shadow: 0 0 0 3px rgba(59,130,246,0.15) !important;
}

.form-control::placeholder {
    color: var(--text-muted) !important;
}

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

.form-check-label {
    color: var(--text-primary);
}

.form-check-input {
    background-color: var(--checkbox-bg) !important;
    border-color: var(--checkbox-border) !important;
}

.form-check-input:checked {
    background-color: var(--checkbox-checked-bg) !important;
    border-color: var(--checkbox-checked-border) !important;
}

.form-check-input:focus {
    border-color: var(--accent) !important;
    box-shadow: 0 0 0 3px rgba(59,130,246,0.2) !important;
}

    .form-check-input:checked[type=checkbox] {
        background-image: url('/_content/CarteiraInvestimentos.RazorPages/css/checkbox.svg') !important;
    }

.form-switch .form-check-input {
    width: 2em;
    margin-left: -2.5em;
    background-image: url('/_content/CarteiraInvestimentos.RazorPages/css/switch.svg') !important;
    background-position: left center;
    border-radius: 2em;
    transition: background-position .15s ease-in-out;
}

    .form-switch .form-check-input:checked {
        background-position: right center;
        background-image: url('/_content/CarteiraInvestimentos.RazorPages/css/switch-checked.svg') !important;
    }

.form-check-input:checked[type=radio] {
    background-image: url('/_content/CarteiraInvestimentos.RazorPages/css/radio-checked.svg') !important;
}

.form-control.is-invalid, .was-validated .form-control:invalid {
    border-color: #dc3545;
    padding-right: calc(1.5em + .75rem);
    background-image: url('/_content/CarteiraInvestimentos.RazorPages/css/form-invalid.svg');
    background-repeat: no-repeat;
    background-position: right calc(.375em + .1875rem) center;
    background-size: calc(.75em + .375rem) calc(.75em + .375rem);
}

.form-control.is-valid, .was-validated .form-control:valid {
    border-color: #198754;
    padding-right: calc(1.5em + .75rem);
    background-image: url('/_content/CarteiraInvestimentos.RazorPages/css/form-valid.svg');
    background-repeat: no-repeat;
    background-position: right calc(.375em + .1875rem) center;
    background-size: calc(.75em + .375rem) calc(.75em + .375rem);
}

.form-select.is-valid, .was-validated .form-select:valid {
    border-color: #198754;
    background-image: url('/_content/CarteiraInvestimentos.RazorPages/css/form-valid.svg') !important;
    padding-right: calc(1.5em + .75rem) !important;
    background-repeat: no-repeat !important;
    background-position: right calc(.375em + .1875rem) center !important;
    background-size: calc(.75em + .375rem) calc(.75em + .375rem) !important;
}

/* Campos desabilitados e readonly */
.form-control:disabled,
.form-control[readonly],
.form-select:disabled {
    background-color: var(--bg-input-disabled) !important;
    color: var(--text-input-disabled) !important;
    opacity: 1 !important;
    cursor: not-allowed;
}

.btn-close {
    box-sizing: content-box;
    width: 1em;
    height: 1em;
    padding: .25em .25em;
    color: #000;
    background: transparent url('/_content/CarteiraInvestimentos.RazorPages/css/close.svg') center / 1em auto no-repeat;
    border: 0;
    border-radius: .25rem;
    opacity: .5;
    filter: var(--btn-close-filter);
}

.select-container select {
    padding: 8px;
    padding-right: 30px;
    font-size: 14px;
    outline: none;
    transition: box-shadow 0.3s ease;
    appearance: none;
    background-color: var(--bg-input) !important;
    border-color: var(--border-input) !important;
    color: var(--text-primary) !important;
    background-image: var(--select-bg) !important;
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 12px;
}

.select-container select:focus,
.select-container input:focus {
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    border-color: var(--accent);
}