/* Version 2.33: shared progressive loading states. */
.pm-skeleton { min-height: 12rem; border-radius: .75rem; padding: 1rem; background: #eef2f6; color: #405269; max-width: 100%; animation: pm-pulse 1.6s ease-in-out infinite alternate; }
.pm-skeleton[aria-busy="false"] { animation: none; }
.pm-load-error { padding: 1rem; color: #263849; }
.pm-load-error button { margin: .5rem; min-height: 44px; }
.pm-load-error button:focus-visible { outline: 3px solid #176b92; outline-offset: 3px; }
[data-lazy-chart] { min-height: 16rem; }
img[loading="lazy"] { background-color: #eef2f6; }
@keyframes pm-pulse { to { background-color: #e1e7ee; } }
@media (prefers-reduced-motion: reduce) { .pm-skeleton { animation: none; } }

.pm-filters { display:flex; flex-wrap:wrap; align-items:end; gap:.75rem; margin-block:1rem; }
.pm-filters label { display:flex; flex-direction:column; flex:1 1 9rem; min-width:0; max-width:100%; }
.pm-filters input, .pm-filters select { width:100%; min-width:0; max-width:100%; min-height:44px; }
