/* ═══════════════════════════════════════════════════════════════
   Campo de consulta (lookup): Cód. + nome somente leitura + lupa.
   Componente único — vale em formulários, filtros de listagem, relatórios
   e modais, com ou sem o cabeçalho padrão (.fm-head).

   Markup:
     <div class="input-group lk-group">            (.lk-sm em barras de filtro)
       <input type="number" class="form-control lk-cod" placeholder="Cód.">
       <input type="text"   class="form-control" placeholder="Nome" readonly>
       <button type="button" class="btn btn-outline-primary" onclick="buscarXxx(...)">
         <i class="bi bi-search"></i></button>
       <!-- opcional: <button class="btn btn-outline-secondary"> limpar -->
     </div>

   Visual de referência: formulario.css (seção "Busca/lookup").
   Largura do Cód.: --lk-cod-w (90px); use .lk-cod-lg para códigos longos.
   ═══════════════════════════════════════════════════════════════ */

.lk-group {
    --lk-h: var(--control-height, 44px);
    --lk-radius: var(--control-radius, 10px);
    --lk-accent: var(--fm-accent, #0a68f8);
    --lk-cod-w: 90px;
    flex-wrap: nowrap;
}
.dark-mode .lk-group { --lk-accent: var(--fm-accent, #5da2ff); }
/* Barras de filtro: mesma altura dos selects vizinhos (38px), mesmo visual */
.lk-group.lk-sm { --lk-h: 38px; }

.lk-group > .form-control {
    height: var(--lk-h); min-height: var(--lk-h);
    padding: .45rem .85rem;
    font-size: var(--fs-input, .9375rem);
    border: 1px solid var(--input-border) !important;
    background-color: var(--input-bg) !important;
    color: var(--text-primary) !important;
    border-radius: 0;
    transition: border-color .15s, box-shadow .15s;
}
/* Peso extra: vence `body:has(.fm-head) .form-control` quando o filtro vive dentro de um formulário */
.lk-group.lk-group > .form-control, .input-group.lk-group.lk-group > .btn { height: var(--lk-h); min-height: var(--lk-h); }
body .input-group.lk-group.lk-group > .btn { height: var(--lk-h); }
.lk-group > .form-control:first-child { border-radius: var(--lk-radius) 0 0 var(--lk-radius); }
.lk-group > .form-control:last-child  { border-radius: 0 var(--lk-radius) var(--lk-radius) 0; }
.lk-group > .form-control + .form-control { margin-left: -1px; }
.lk-group > .form-control:hover:not(:disabled):not([readonly]) { border-color: var(--text-tertiary) !important; }
.lk-group > .form-control:focus {
    position: relative; z-index: 2;
    border-color: var(--lk-accent) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--lk-accent) 20%, transparent) !important;
}
.lk-group > .form-control[readonly], .lk-group > .form-control:disabled {
    background-color: var(--bg-surface-secondary) !important; color: var(--text-secondary) !important;
    opacity: 1; cursor: default;
}
.lk-group > .form-control::placeholder { color: var(--text-tertiary) !important; opacity: .65; }
.lk-group > .form-control.is-invalid {
    border-color: var(--fm-danger, #ef4444) !important; background-image: none;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, .15) !important;
}
.lk-group > .form-control.is-valid { background-image: none; }

/* Código */
.lk-group > .lk-cod, .lk-group > input[type="number"]:first-child {
    flex: 0 0 var(--lk-cod-w); width: var(--lk-cod-w); max-width: var(--lk-cod-w);
}
.lk-group > .lk-cod-lg { --lk-cod-w: 120px; }
.lk-group > .lk-cod::-webkit-inner-spin-button, .lk-group > .lk-cod::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.lk-group > .lk-cod { -moz-appearance: textfield; }

/* Lupa (e botão de limpar) */
.lk-group > .btn {
    height: var(--lk-h); display: inline-flex; align-items: center; justify-content: center;
    border-radius: 0; margin-left: -1px;
}
.lk-group > .btn:last-child { border-radius: 0 var(--lk-radius) var(--lk-radius) 0; }
.lk-group > .btn-outline-primary {
    min-width: 44px; color: var(--lk-accent);
    border-color: var(--input-border);
    background: color-mix(in srgb, var(--lk-accent) 9%, var(--input-bg));
}
.lk-group > .btn-outline-primary:hover { color: #fff; background: var(--lk-accent); border-color: var(--lk-accent); }
.lk-group > .btn-outline-primary:disabled { opacity: .55; }
.lk-group > .btn-outline-secondary {
    min-width: 40px; color: var(--text-tertiary); border-color: var(--input-border); background: var(--input-bg);
}
.lk-group > .btn-outline-secondary:hover { color: var(--fm-danger, #ef4444); background: rgba(239, 68, 68, .1); }

/* Campo-gatilho sem código (ex.: filtro de árvore): o próprio input abre a pesquisa */
.lk-group > .form-control.lk-trigger { cursor: pointer; }

/* Telas médias (notebook): colunas de formulário ficam estreitas — o Cód. cede espaço ao nome.
   Complementa o dimensionamento por tipo das barras de filtro (.flt-lookup, lista-padrao.css). */
@media (max-width: 1500px) {
    .lk-group { --lk-cod-w: 72px; }
    .lk-group > .lk-cod-lg { --lk-cod-w: 96px; }
    .lk-group > .form-control { padding-left: .65rem; padding-right: .65rem; }
    .lk-group > .btn-outline-primary { min-width: 40px; }
}
