/* Heart geometry and fill motion adapted from Uiverse/catraco plastic-moth-91 (MIT). */
.card {display:flex;flex-direction:column;}
.card .card-main {flex:1;}
.resource-actions {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;min-height:48px;margin:16px 3px 0;border-top:1px solid var(--border,#e5e8ef);padding-top:6px;font-size:12px;}
.resource-actions>a {color:#607088;min-height:44px;display:inline-flex;align-items:center;}
.resource-reactions {display:flex;align-items:center;gap:12px;}
.resource-like {border:0;background:transparent;color:#65738a;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 4px;font:inherit;font-size:12px;white-space:nowrap;cursor:pointer;border-radius:7px;}
.resource-like .like-heart {position:relative;display:block;width:20px;height:20px;}
.resource-like svg {position:absolute;inset:0;width:100%;height:100%;fill:currentColor;}
.resource-like .heart-filled {display:none;}
.resource-like[aria-pressed="true"] {color:#d83b69;}
.resource-like[aria-pressed="true"] .heart-outline {display:none;}
.resource-like[aria-pressed="true"] .heart-filled {display:block;}
.resource-like[data-celebrate] .heart-filled {animation:resource-heart-pop .35s ease-out;}
.resource-like:hover {background:#fff2f6;color:#d83b69;}
.resource-like:focus-visible {outline:2px solid #3454ee;outline-offset:3px;}
.resource-like:disabled {opacity:.55;cursor:wait;}
.like-count {font-variant-numeric:tabular-nums;min-width:1ch;}
.detail-reactions {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:1px solid #e5e8ef;padding-bottom:10px;margin-bottom:16px;}
.ranking-position {font-size:11px;color:#758195;margin-right:auto;}
.ranking-position strong {font-weight:600;color:#b97418;}
.ranking-empty {color:#78808e;font-size:13px;}
.resource-downloads {display:inline-flex;align-items:center;gap:5px;margin-top:12px;color:#65738a;font-size:12px;line-height:20px;white-space:nowrap;}
.resource-downloads svg {width:16px;height:16px;flex-shrink:0;}
.download-count {font-variant-numeric:tabular-nums;}
.detail-reactions .resource-downloads {margin-top:0;}
.resource-metrics {display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;margin-top:12px;}
.resource-metrics .resource-downloads {margin-top:0;}
.resource-views {display:inline-flex;align-items:center;gap:5px;color:#65738a;font-size:12px;line-height:20px;white-space:nowrap;}
.resource-views svg {width:16px;height:16px;flex-shrink:0;}
.view-count {font-variant-numeric:tabular-nums;}
.detail-reactions .resource-metrics {flex-basis:100%;margin-top:0;}
@keyframes resource-heart-pop {0%{transform:scale(.6)}50%{transform:scale(1.15)}100%{transform:scale(1)}}
@media(max-width:600px){.resource-reactions{gap:6px}.resource-like{font-size:11px;gap:4px}.resource-actions{font-size:11px;gap:0 8px}.resource-actions>a{min-height:32px}.resource-actions{align-items:flex-start}.like-heart{flex-shrink:0}}
@media(prefers-reduced-motion:reduce){.resource-like[data-celebrate] .heart-filled{animation:none}}
