/* Loading placeholders for the RFP lists: three pulsing cards drawn in the page HTML, so the list is never an empty shell while the feed loads.
   Same box as a listing card (rfp-row.css): white, 1px card border, 24px padding, 16px between cards. Decorative: the words "Loading" are for screen readers only.
   Removed by the page script as soon as the feed answers (rows, an empty state or an error replace it). */
.rfp-skel__list { display: grid; gap: var(--space-4, 16px); margin: 0; padding: 0; list-style: none; }
.rfp-skel__card { box-sizing: border-box; display: grid; row-gap: var(--space-1, 4px); padding: var(--space-5, 24px); background: var(--color-surface-raised, #FFFFFF); border: 1px solid var(--color-card-border, #E5E0D8); border-radius: var(--radius, 4px); }
.rfp-skel__slot { display: flex; align-items: center; min-height: 44px; }   /* title and institution lines are 44px tall in a real card */
.rfp-skel__slot--facts { min-height: 26px; }
.rfp-skel__bar, .rfp-skel__button { display: block; border-radius: var(--radius, 4px); background: color-mix(in srgb, var(--color-border, #7A736C) 22%, var(--color-surface, #F7F4EF)); animation: rfp-skel-pulse 1.4s ease-in-out infinite; }
.rfp-skel__bar { height: 14px; }
.rfp-skel__bar--title { height: 20px; width: 70%; }
.rfp-skel__bar--meta { width: 38%; }
.rfp-skel__bar--facts { width: 62%; }
.rfp-skel__bar--tag { width: 64px; height: 26px; }
.rfp-skel__button { width: 120px; height: 44px; margin-top: var(--space-3, 12px); }
.rfp-skel__card:nth-child(2) .rfp-skel__bar, .rfp-skel__card:nth-child(2) .rfp-skel__button { animation-delay: 0.15s; }
.rfp-skel__card:nth-child(3) .rfp-skel__bar, .rfp-skel__card:nth-child(3) .rfp-skel__button { animation-delay: 0.3s; }
.rfp-skel__sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
@keyframes rfp-skel-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.45; } }
@media (prefers-reduced-motion: reduce) { .rfp-skel__bar, .rfp-skel__button { animation: none; } }
@media (max-width: 480px) { .rfp-skel__button { width: 100%; } .rfp-skel__slot--facts { min-height: 98px; align-items: flex-start; padding-top: var(--space-2, 8px); box-sizing: border-box; } }
