/* Status da Necessidade vs prazo interno — borda na linha inteira */
.form-group.tformrow.row.chr-necessidade-row {
    position: relative;
    padding: 8px 10px 10px;
    margin-left: 0;
    margin-right: 0;
    border-radius: 8px;
    border: 2px solid rgba(255, 152, 0, 0.55);
    background: rgba(255, 152, 0, 0.06);
    animation: chr-necessidade-borda 2.2s ease-in-out infinite;
    box-sizing: border-box;
    transition: border-color .2s, background .2s, box-shadow .2s;
}

/* Campo Necessidade: label sempre acima do datepicker */
.fb-field-container.chr-necessidade-destaque {
    position: relative;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 4px;
    padding: 0;
    border: 0 !important;
    background: transparent !important;
    animation: none !important;
    box-shadow: none !important;
}

.fb-field-container.chr-necessidade-destaque > .fb-inline-field-container {
    display: block !important;
    float: none !important;
    width: 100% !important;
    max-width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

.fb-field-container.chr-necessidade-destaque > .fb-inline-field-container.form-line {
    display: block !important;
}

.fb-field-container.chr-necessidade-destaque label {
    display: block !important;
    float: none !important;
    width: auto !important;
    margin: 0 0 2px 0 !important;
    color: #e65100 !important;
    font-weight: 600;
}

.fb-field-container.chr-necessidade-destaque .tdate-group {
    display: inline-flex !important;
    border-radius: 6px;
    width: 100% !important;
    max-width: 100%;
}

.fb-field-container.chr-necessidade-destaque input.tfield,
.fb-field-container.chr-necessidade-destaque input[name="dt_nescessidade"] {
    border-color: rgba(255, 152, 0, 0.65) !important;
    width: 100% !important;
    max-width: 100%;
    flex: 1 1 auto;
}

/* Dentro do prazo — linha verde */
.form-group.tformrow.row.chr-necessidade-row.chr-necessidade-ok {
    border-color: rgba(76, 175, 80, 0.75);
    background: rgba(76, 175, 80, 0.08);
    animation: none;
    box-shadow: none;
}

.form-group.tformrow.row.chr-necessidade-row.chr-necessidade-ok .chr-necessidade-destaque label {
    color: #2E7D32 !important;
}

.form-group.tformrow.row.chr-necessidade-row.chr-necessidade-ok .chr-necessidade-destaque input.tfield {
    border-color: rgba(76, 175, 80, 0.8) !important;
}

/* Fora do prazo — linha vermelha */
.form-group.tformrow.row.chr-necessidade-row.chr-necessidade-fora {
    border-color: rgba(244, 67, 54, 0.8);
    background: rgba(244, 67, 54, 0.08);
    animation: none;
    box-shadow: 0 0 0 2px rgba(244, 67, 54, 0.12);
}

.form-group.tformrow.row.chr-necessidade-row.chr-necessidade-fora .chr-necessidade-destaque label {
    color: #C62828 !important;
}

.form-group.tformrow.row.chr-necessidade-row.chr-necessidade-fora .chr-necessidade-destaque input.tfield {
    border-color: rgba(244, 67, 54, 0.85) !important;
}

@keyframes chr-necessidade-borda {
    0%, 100% {
        border-color: rgba(255, 152, 0, 0.45);
        box-shadow: 0 0 0 0 rgba(255, 152, 0, 0.35);
    }
    50% {
        border-color: rgba(230, 81, 0, 0.95);
        box-shadow: 0 0 0 4px rgba(255, 152, 0, 0.22);
    }
}
