/* ═══════════════════════════════════════════════════════════════
   Inputs Premium (Global)
   Escopo: componentes de formulário Tabler
   Objetivo: padronização visual sem alterar grid/responsividade
   ═══════════════════════════════════════════════════════════════ */

:root {
    --ip-border: #C9D6E3;
    --ip-border-hover: rgba(14, 165, 164, 0.52);
    --ip-focus: rgba(14, 165, 164, 0.26);
    --ip-bg: #FFFFFF;
    --ip-text: #0F172A;
    --ip-muted: #6B7A8B;
    --ip-disabled-bg: #F4F7FA;
    --ip-disabled-text: #8A99AA;
}

.form-label {
    color: #1B2A3A;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.form-control,
.form-select,
.input-group-text {
    border-color: var(--ip-border);
    background-color: var(--ip-bg);
    color: var(--ip-text);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.form-control[type=file] {
    padding: 0;
    overflow: hidden;
}

.form-control[type=file]::file-selector-button {
    margin-right: 12px;
    border: 0;
    border-right: 1px solid #D8E3EE;
    background: #EAF1F7;
    color: #223245;
    font-weight: 700;
    font-size: 0.83rem;
    padding: 0.68rem 0.9rem;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.form-control[type=file]::file-selector-button:hover {
    background: #DEEAF4;
}

.form-control::placeholder,
.form-select::placeholder {
    color: var(--ip-muted);
    opacity: 1;
}

.form-control:hover,
.form-select:hover {
    border-color: var(--ip-border-hover);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--ip-border-hover);
    box-shadow: 0 0 0 3px var(--ip-focus);
    background-color: #fff;
}

.input-group:focus-within .input-group-text {
    border-color: var(--ip-border-hover);
}

.form-control:disabled,
.form-control[readonly],
.form-select:disabled {
    background-color: var(--ip-disabled-bg);
    color: var(--ip-disabled-text);
    border-color: #DCE5EF;
    opacity: 1;
}

.form-control.is-invalid,
.form-select.is-invalid {
    border-color: #E05A65;
}

.form-control.is-valid,
.form-select.is-valid {
    border-color: #2DA26D;
}

.form-check-input {
    border-color: var(--ip-border);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.form-check-input:focus {
    border-color: var(--ip-border-hover);
    box-shadow: 0 0 0 3px var(--ip-focus);
}

.form-check-input:checked {
    background-color: #0B1F33;
    border-color: #0B1F33;
}

[data-bs-theme=dark] .form-label {
    color: rgba(214, 177, 94, 0.92);
}

[data-bs-theme=dark] .form-control,
[data-bs-theme=dark] .form-select,
[data-bs-theme=dark] .input-group-text {
    background-color: rgba(9, 25, 43, 0.72);
    border-color: rgba(214, 177, 94, 0.28);
    color: #EAF1F8;
}

[data-bs-theme=dark] .form-control[type=file]::file-selector-button {
    border-right-color: rgba(214, 177, 94, 0.3);
    background: rgba(214, 177, 94, 0.2);
    color: #F3D79A;
}

[data-bs-theme=dark] .form-control[type=file]::file-selector-button:hover {
    background: rgba(214, 177, 94, 0.3);
}

[data-bs-theme=dark] .form-control::placeholder,
[data-bs-theme=dark] .form-select::placeholder {
    color: rgba(226, 236, 247, 0.62);
}

[data-bs-theme=dark] .form-control:hover,
[data-bs-theme=dark] .form-select:hover {
    border-color: rgba(214, 177, 94, 0.45);
}

[data-bs-theme=dark] .form-control:focus,
[data-bs-theme=dark] .form-select:focus {
    border-color: rgba(214, 177, 94, 0.55);
    box-shadow: 0 0 0 3px rgba(214, 177, 94, 0.2);
    background-color: rgba(9, 25, 43, 0.82);
}

[data-bs-theme=dark] .form-control:disabled,
[data-bs-theme=dark] .form-control[readonly],
[data-bs-theme=dark] .form-select:disabled {
    background-color: rgba(9, 25, 43, 0.52);
    color: rgba(225, 236, 247, 0.55);
    border-color: rgba(214, 177, 94, 0.2);
}

[data-bs-theme=dark] .input-group:focus-within .input-group-text {
    border-color: rgba(214, 177, 94, 0.52);
}

[data-bs-theme=dark] .form-check-input {
    border-color: rgba(214, 177, 94, 0.38);
    background-color: rgba(9, 25, 43, 0.72);
}

[data-bs-theme=dark] .form-check-input:checked {
    background-color: #D6B15E;
    border-color: #D6B15E;
}
