/* ============================================================================
   Vehicly Error Polish — slide-in animation + retry-button countdown
   ============================================================================ */

.vh-err-slide {
    transform: translateY(8px);
    opacity: 0;
    animation: vh-err-slide-in .32s cubic-bezier(.2,.7,.3,1) forwards;
}
@keyframes vh-err-slide-in {
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.vh-err-icon svg {
    width: 48px;
    height: 48px;
    color: var(--vh-error, #dc2626);
}

.vh-err-retry-active {
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum";
}

/* Subtle pulse on active countdown button so it draws the eye */
.vh-err-retry-active::before {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    margin-right: 8px;
    opacity: 0.6;
    animation: vh-err-retry-pulse 1s ease-in-out infinite;
}
@keyframes vh-err-retry-pulse {
    0%, 100% { opacity: 0.3; transform: scale(0.9); }
    50%      { opacity: 0.9; transform: scale(1.1); }
}

@media (prefers-reduced-motion: reduce) {
    .vh-err-slide {
        animation: none;
        opacity: 1;
        transform: none;
    }
    .vh-err-retry-active::before {
        animation: none;
        opacity: 0.6;
    }
}
