/* ===================================================================
   PRIMITIVAS DE FORMULÁRIO COMPARTILHADAS  (SP20-013a)
   -------------------------------------------------------------------
   Peças reutilizadas por vários formulários: campo monetário com
   prefixo "$", hint abaixo do campo e marca de obrigatório.

   Ficam num arquivo próprio (e não no CSS de cada tela) porque os
   mesmos campos aparecem nos 6 formulários de tipo de item — Car,
   Moto, Boat, JetSki, Residential e Commercial Property — além do
   updateItem.
   =================================================================== */

/* ---------- Campo monetário ---------- */
.money-input {
    display: flex;
    align-items: center;
    gap: 6px;
}

.money-input__prefix {
    flex: 0 0 auto;
    font-weight: 700;
    color: #0b2a5b;
    user-select: none;
}

.money-input input {
    flex: 1 1 auto;
    min-width: 0; /* deixa o input encolher dentro do flex em telas estreitas */
    text-align: right;
    /* 16px evita o zoom automático do input no Safari iOS */
    font-size: 16px;
}

/* ---------- Hint abaixo do campo ---------- */
.field-hint {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    line-height: 1.35;
    color: #6b7280;
}

/* ---------- Marca de obrigatório ---------- */
.required-mark {
    color: #d11a2a;
    font-weight: 700;
    margin-left: 2px;
}

/* ---------- Estado de erro de validação ----------
   A mensagem fica DEBAIXO do campo, em vermelho, em vez de tudo junto numa
   modal. Ela precisa caber na coluna do grid do formulário, que no celular
   chega a menos de 300px: por isso largura total, quebra de palavra e nenhum
   min-width — um rótulo longo ("Enter Full name of the Holder") alargaria a
   célula e estouraria a linha. */
.field-error-message {
    display: block;
    width: 100%;
    max-width: 100%;
    margin-top: 4px;
    font-size: 12px;
    line-height: 1.35;
    color: #d11a2a;
    overflow-wrap: break-word;
    word-break: break-word;
}

input.field-invalid,
select.field-invalid,
textarea.field-invalid {
    border-color: #d11a2a !important;
    background-color: #fff5f5;
}

/* Checkbox/radio não têm borda visível para tingir: a marca vai no contorno,
   que é o que se enxerga nesses controles. */
input[type="checkbox"].field-invalid,
input[type="radio"].field-invalid {
    outline: 2px solid #d11a2a;
    outline-offset: 2px;
    background-color: transparent;
}

/* O campo em foco depois do erro precisa se destacar do vermelho de fundo. */
.field-invalid:focus,
.field-invalid:focus-visible {
    outline: 2px solid #d11a2a;
    outline-offset: 1px;
}
