/* ============================================================
   DokCheck A11y / polish styles
   - focus-visible outline
   - tap-target baseline 44x44
   - pulse-slow keyframe for empty-state CTA
   ============================================================ */

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible,
[role="tab"]:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid #10B981;
    outline-offset: 2px;
    border-radius: 6px;
}

/* Remove native blue outline only when focus-visible pattern is available */
button:focus:not(:focus-visible),
a:focus:not(:focus-visible),
[role="button"]:focus:not(:focus-visible),
[role="tab"]:focus:not(:focus-visible) {
    outline: none;
}

/* Tap-target baseline for icon buttons and labelled icon controls.
   Opt out with .no-min-tap if an element legitimately must stay small. */
.btn-icon,
button[aria-label]:not(.no-min-tap) {
    min-width: 44px;
    min-height: 44px;
}

/* Pulse for the primary CTA in dashboard empty-state */
@keyframes dc-pulse-slow {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.5);
    }
    50% {
        box-shadow: 0 0 0 10px rgba(16, 185, 129, 0);
    }
}

.animate-pulse-slow {
    animation: dc-pulse-slow 2.5s ease-in-out infinite;
}

/* Smooth fact rotation fade */
.a11y-fact-fade {
    transition: opacity 0.35s ease-in-out;
}

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
    .animate-pulse-slow {
        animation: none;
    }
    .a11y-fact-fade {
        transition: none;
    }
}
