/* Cross-module interaction fixes; intentionally does not override module layouts. */
body :is(button, a, input, select, textarea, summary, [role="button"]):focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}
button:disabled { cursor: not-allowed; }
.analytics-refresh:not(:disabled):hover {
    background: var(--bg-hover); border-color: var(--accent); color: var(--text);
}
.analytics-refresh { transition: background .15s, border-color .15s; }
/* Semantic ink is owned by biopatriot-tokens.css, not a second palette. */
#analytics-content .analytics-badge, .subscription-state { color: var(--status-success-text); }
#analytics-content .analytics-badge.warning, .subscription-state.warning, .subscription-partial { color: var(--status-warning-text); }
#analytics-content .analytics-badge.error, .subscription-state.error { color: var(--status-error-text); }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
