/* ============================================================================
   Inputs / selects nativos / textareas — novo padrão de design do FIN (GLOBAL)
   ----------------------------------------------------------------------------
   Padroniza os campos de formulário em TODO o sistema com o mesmo visual dos
   filtros / perfis de acesso: borda #e9eaec, radius 6px, padding 9px 12px,
   fonte 13px, foco brand #3845cd + halo. Carregado por último no head.php.

   Cobre: smart-form (.smart-form .input input), bootstrap (.form-control),
   inputs text-like soltos, <textarea> e <select> NATIVO.
   NÃO toca: checkbox, radio, file, range, color, botões (submit/reset/button);
   nem o <select> oculto do select2 (.select2 / .select2-hidden-accessible),
   que é estilizado em custom-select2.css.

   Cascata: !important para vencer o smart-form/bootstrap do bundle SmartAdmin.
   Páginas que já estilizam seus inputs inline (ex. ID #widget-grid ...) seguem
   prevalecendo por especificidade — o look é o mesmo, então não há conflito.
   ============================================================================ */

:root {
    --in-brand:   #3845cd;
    --in-surface: #ffffff;
    --in-border:  #e9eaec;
    --in-disabled-bg: #f7f8fa;
    --in-t1:      #1a1d23;
    --in-t3:      #999999;
    --in-radius:  6px;
}

/* ---- Base ---- */
.smart-form .input input,
.form-control:not(.select2):not(.select2-hidden-accessible),
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="search"],
input[type="tel"],
input[type="url"],
input[type="date"],
input[type="datetime-local"],
input[type="time"],
input[type="month"],
textarea,
select:not(.select2):not(.select2-hidden-accessible) {
    box-sizing: border-box !important;
    height: auto !important;
    padding: 9px 12px !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    color: var(--in-t1) !important;
    background-color: var(--in-surface) !important;
    border: 1px solid var(--in-border) !important;
    border-radius: var(--in-radius) !important;
    box-shadow: none !important;
    transition: border-color .12s ease, box-shadow .12s ease !important;
}

/* ---- Foco ---- */
.smart-form .input input:focus,
.form-control:not(.select2):not(.select2-hidden-accessible):focus,
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="date"]:focus,
input[type="datetime-local"]:focus,
input[type="time"]:focus,
input[type="month"]:focus,
textarea:focus,
select:not(.select2):not(.select2-hidden-accessible):focus {
    border-color: var(--in-brand) !important;
    box-shadow: 0 0 0 3px rgba(56, 69, 205, .12) !important;
    outline: none !important;
}

/* ---- Placeholder ---- */
.smart-form .input input::placeholder,
.form-control::placeholder,
input::placeholder,
textarea::placeholder {
    color: var(--in-t3) !important;
    opacity: 1 !important;
}

/* ---- Desabilitado / somente-leitura ---- */
.smart-form .input input:disabled,
.form-control:disabled,
input:disabled,
textarea:disabled,
select:disabled,
.form-control[readonly],
input[readonly],
textarea[readonly] {
    background-color: var(--in-disabled-bg) !important;
    color: #9aa0b3 !important;
    cursor: not-allowed !important;
}

/* ---- Textarea ---- */
textarea {
    min-height: 80px !important;
    resize: vertical !important;
}

/* ---- Remove as setinhas (spinner ^ v) dos inputs numéricos ----
   Afeta SÓ input[type=number]; o chevron do select/select2 é preservado. */
input[type="number"] {
    -moz-appearance: textfield !important;
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

/* ============================================================================
   Checkbox do smart-form — padrão perfis de acesso
   ----------------------------------------------------------------------------
   SmartAdmin esconde o <input> e usa um <i> como caixa, com o check em glifo
   FontAwesome (\f00c) azul #3276B1 sobre fundo branco. Aqui modernizamos:
   caixa arredondada, PREENCHIMENTO brand quando marcado + check BRANCO.
   Inclui a variante com <input type=hidden> entre o checkbox e o <i> (usada em
   alguns forms p/ enviar valor quando desmarcado). !important vence o bundle.
   ============================================================================ */
.smart-form .checkbox i {
    box-sizing: border-box !important;
    border-radius: 4px !important;
    border: 1.5px solid #cbd0d8 !important;
    background: #ffffff !important;
    transition: background-color .12s ease, border-color .12s ease, box-shadow .12s ease !important;
}

/* hover / foco: borda brand (+ halo no foco) */
.smart-form .checkbox:hover i {
    border-color: var(--in-brand) !important;
}
.smart-form .checkbox input:focus + i,
.smart-form .checkbox input:focus + input[type="hidden"] + i {
    border-color: var(--in-brand) !important;
    box-shadow: 0 0 0 3px rgba(56, 69, 205, .12) !important;
}

/* marcado: preenchimento + borda brand */
.smart-form .checkbox input:checked + i,
.smart-form .checkbox input:checked + input[type="hidden"] + i {
    background: var(--in-brand) !important;
    border-color: var(--in-brand) !important;
}

/* check em branco; mantém o glifo no hover (SmartAdmin troca p/ "X" \f00d) */
.smart-form .checkbox input + i:after,
.smart-form .checkbox input + input[type="hidden"] + i:after {
    color: #ffffff !important;
}
.smart-form .checkbox input:checked:hover + i:after,
.smart-form .checkbox input:checked:hover + input[type="hidden"] + i:after {
    content: '\f00c' !important;
}

/* desabilitado */
.smart-form .checkbox input:disabled + i {
    background: var(--in-disabled-bg) !important;
    border-color: #e5e5e5 !important;
}
.smart-form .checkbox input:checked:disabled + i {
    background: #c7ccea !important;
    border-color: #c7ccea !important;
}

/* ============================================================================
   Radio do smart-form — padrão perfis de acesso
   ----------------------------------------------------------------------------
   SmartAdmin: <i> circular (border-radius:50%) + ponto interno azul #3276B1
   no i:after. Trocamos borda e ponto por brand, hover/foco coerentes.
   ============================================================================ */
.smart-form .radio i {
    box-sizing: border-box !important;
    border: 1.5px solid #cbd0d8 !important;
    background: #ffffff !important;
    transition: border-color .12s ease, box-shadow .12s ease !important;
}
.smart-form .radio:hover i {
    border-color: var(--in-brand) !important;
}
.smart-form .radio input:focus + i,
.smart-form .radio input:focus + input[type="hidden"] + i {
    border-color: var(--in-brand) !important;
    box-shadow: 0 0 0 3px rgba(56, 69, 205, .12) !important;
}
.smart-form .radio input:checked + i,
.smart-form .radio input:checked + input[type="hidden"] + i {
    border-color: var(--in-brand) !important;
}
/* ponto interno em brand */
.smart-form .radio input + i:after,
.smart-form .radio input + input[type="hidden"] + i:after {
    background-color: var(--in-brand) !important;
}
.smart-form .radio input:disabled + i {
    background: var(--in-disabled-bg) !important;
    border-color: #e5e5e5 !important;
}

/* checkboxes/radios nativos (fora do smart-form): ao menos a cor brand */
input[type="checkbox"]:not(.select2-search__field),
input[type="radio"] {
    accent-color: var(--in-brand) !important;
}