/*
 * Objetivo: padronizar campos editaveis e controles de formulario em todo o sistema.
 * Modulo: Compartilhado / Formularios
 * Autor: Sergio Alexander Loback da Silva
 * E-mail: sergio.silva@edu.itajai.sc.gov.br
 * Data de criacao: 2026-08-04
 * Ultima atualizacao: 2026-08-04
 * Versao de criacao: 5.21.000
 * Ultima versao alterada: 5.21.000
 * Observacoes para manutencao e IA:
 * - preserva controles compactos e nao altera checkbox, radio, botoes ou campos ocultos
 * - componentes especificos podem complementar estas regras sem recriar o visual-base
 */

:where(
    input:not([type]),
    input[type="text"],
    input[type="search"],
    input[type="email"],
    input[type="tel"],
    input[type="url"],
    input[type="password"],
    input[type="number"],
    input[type="date"],
    input[type="time"],
    input[type="datetime-local"],
    input[type="month"],
    input[type="week"],
    input[type="file"],
    select,
    textarea
) {
    box-sizing: border-box;
    max-width: 100%;
    min-height: 44px;
    padding: .55rem .7rem;
    border: 1px solid var(--borda, #cbd5e1);
    border-radius: var(--raio, 6px);
    background: var(--card, #ffffff);
    color: var(--texto, #0f172a);
    font: inherit;
    font-size: var(--t-sm, .9rem);
    line-height: 1.25;
    transition: border-color var(--transicao, .18s ease), box-shadow var(--transicao, .18s ease), background-color var(--transicao, .18s ease);
}

:where(select) {
    cursor: pointer;
}

:where(textarea) {
    min-height: 5.25rem;
    resize: vertical;
}

:where(
    input:not([type]),
    input[type="text"],
    input[type="search"],
    input[type="email"],
    input[type="tel"],
    input[type="url"],
    input[type="password"],
    input[type="number"],
    input[type="date"],
    input[type="time"],
    input[type="datetime-local"],
    input[type="month"],
    input[type="week"],
    input[type="file"],
    select,
    textarea
):focus-visible {
    outline: none;
    border-color: rgba(37, 99, 235, .72);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .16);
}

:where(input, select, textarea)::placeholder {
    color: var(--texto-muted, #64748b);
    opacity: .88;
}

:where(input, select, textarea):disabled {
    cursor: not-allowed;
    opacity: .62;
}

:where(input, textarea)[readonly] {
    background: var(--card, #ffffff);
    color: var(--texto-muted, #64748b);
}

:where(input[type="file"]) {
    padding: .3rem;
}

:where(input[type="file"])::file-selector-button {
    min-height: 36px;
    margin-right: .65rem;
    padding: .4rem .7rem;
    border: 0;
    border-radius: calc(var(--raio, 6px) - 1px);
    background: var(--primaria, #2563eb);
    color: #ffffff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

:where(.admin-campo, .form-grupo, .filtros-campo, .rt-filter-field) > :where(input, select, textarea),
:where(.admin-campo, .form-grupo, .filtros-campo, .rt-filter-field) > label > :where(input, select, textarea) {
    width: 100%;
}
