.validation-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 18px 0 22px;
}

.validation-metrics > div {
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 14px 16px;
    background: #f8fafc;
}

.validation-metrics span,
.validation-metrics strong {
    display: block;
}

.validation-metrics span {
    color: var(--muted);
    font-size: .7rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.validation-metrics strong {
    margin-top: 4px;
    font-size: 1.35rem;
}

.validation-metrics .metric-danger { border-left: 4px solid var(--danger); }
.validation-metrics .metric-warning { border-left: 4px solid var(--warning); }
.validation-metrics .metric-success { border-left: 4px solid var(--success); }

.validation-section { margin-top: 26px; }

.validation-section-heading,
.validation-frame > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.validation-section-heading { margin-bottom: 14px; }
.validation-section-heading h3 { margin: 0; font-size: 1rem; }
.validation-problem-list { display: grid; gap: 16px; }

.validation-frame {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
}

.validation-frame-problem {
    border-color: #efb8be;
    box-shadow: 0 0 0 2px #c33b4b0c;
}

.validation-frame > header {
    padding: 15px 17px;
    border-bottom: 1px solid var(--line);
    background: #f8fafc;
}

.validation-frame-problem > header { background: #fff7f8; }
.validation-frame header strong,
.validation-frame header small { display: block; }
.validation-frame header small { margin-top: 3px; color: var(--muted); }

.validation-frame-selector {
    display: grid;
    grid-template-columns: minmax(260px, 430px);
    gap: 6px;
    margin-bottom: 14px;
}

.validation-frame-selector label {
    color: #43516a;
    font-size: .75rem;
    font-weight: 650;
}

.fip-validations {
    width: 100%;
    margin: 0;
    font-size: .78rem;
}

.fip-validations th {
    padding: 10px 12px;
    border-bottom: 1px solid var(--line);
    background: #fbfcfe;
    color: #65748a;
    font-size: .62rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.fip-validations td {
    padding: 11px 12px;
    border-bottom: 1px solid #edf1f6;
    vertical-align: top;
}

.fip-validations tbody tr:last-child td { border-bottom: 0; }
.fip-validations td:first-child strong,
.fip-validations td:first-child small { display: block; }
.fip-validations td:first-child small { margin-top: 2px; color: var(--muted); }
.fip-outcome-failed { background: #fffafb; }
.fip-outcome-warning { background: #fffdf7; }

@media (max-width: 900px) {
    .validation-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .validation-frame > header,
    .validation-section-heading { align-items: flex-start; }
}

@media (max-width: 600px) {
    .validation-metrics,
    .validation-frame-selector { grid-template-columns: 1fr; }
    .fip-validations { min-width: 820px; }
}
