﻿/* ======================================================
   FORMS - Inputs, selects, labels y estados
   ====================================================== */

/* -------- FORM GROUP -------- */

.form-group {
    display: flex;
    flex-direction: column;
    margin-bottom: 1rem;
    text-align: left;
}

    .form-group label {
        font-size: .85rem;
        font-weight: 500;
        margin-bottom: 6px;
        color: var(--text-secondary);
    }

/* -------- INPUTS -------- */

.form-control,
.form-select,
textarea {
    width: 100%;
    font-family: var(--font-main);
    padding: .65rem .75rem;
    font-size: .95rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-color);
    background: #fff;
    color: var(--text-main);
    transition: var(--transition-fast);
}

    /* Hover */

    .form-control:hover,
    .form-select:hover,
    textarea:hover {
        border-color: var(--color-primary);
    }

    /* Focus */

    .form-control:focus,
    .form-select:focus,
    textarea:focus {
        outline: none;
        border-color: var(--color-primary);
        box-shadow: 0 0 0 3px rgba(44,92,147,0.15);
    }

/* -------- TEXTAREA -------- */

textarea {
    resize: vertical;
    min-height: 90px;
}

/* -------- PLACEHOLDER -------- */

::placeholder {
    color: #9aa3ab;
}

/* -------- INPUT GROUP -------- */

.input-group {
    display: flex;
    align-items: stretch;
}

.input-group-text {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: .45rem .6rem;
    background: #f6f8fa;
    border: 1px solid var(--border-color);
    border-right: none;
    border-radius: var(--radius-sm) 0 0 var(--radius-sm);
    color: var(--text-secondary);
    min-width: 42px;
}

.input-group .form-control {
    border-left: none;
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

/* -------- CHECKBOX / RADIO -------- */

.form-check {
    display: flex;
    align-items: center;
    gap: .45rem;
}

    .form-check input {
        accent-color: var(--color-primary);
    }

/* -------- INPUT DISABLED -------- */

.form-control:disabled,
.form-select:disabled {
    background: #f1f3f5;
    cursor: not-allowed;
}

/* -------- VALIDATION -------- */

.text-danger {
    font-size: .8rem;
    margin-top: .25rem;
}

/* -------- AUTOFILL FIX (Chrome) -------- */

input:-webkit-autofill,
input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px white inset;
    -webkit-text-fill-color: var(--text-main);
}
