/* SD Plugin Catalog */
.sdpc-wrap { max-width: 1100px; margin: 0 auto; padding: 2rem 1rem; }
.sdpc-hero h1 { font-size: clamp(2rem, 5vw, 3rem); margin-bottom: .25rem; }
.sdpc-sub { opacity: .75; margin-bottom: 1.25rem; }
.sdpc-search { display: flex; gap: .5rem; max-width: 480px; }
.sdpc-search input[type=search] { flex: 1; padding: .55rem .8rem; border: 1px solid #d0d4da; border-radius: 8px; }

.sdpc-btn { display: inline-block; padding: .55rem 1.1rem; background: #2271b1; color: #fff !important; border-radius: 8px; text-decoration: none; border: none; cursor: pointer; font-size: .95rem; }
.sdpc-btn:hover { filter: brightness(1.08); }
.sdpc-btn-sm { padding: .3rem .7rem; font-size: .8rem; }
.sdpc-btn-primary { font-weight: 600; }

.sdpc-cats { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1.5rem 0; }
.sdpc-cats a { padding: .35rem .8rem; border: 1px solid #d0d4da; border-radius: 999px; text-decoration: none; font-size: .85rem; color: inherit; }
.sdpc-cats a span { opacity: .6; margin-left: .25rem; }
.sdpc-cats a.is-active, .sdpc-cats a:hover { background: #2271b1; color: #fff; border-color: #2271b1; }

.sdpc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; }
.sdpc-card { border: 1px solid #e2e6ea; border-radius: 12px; overflow: hidden; background: #fff; display: flex; flex-direction: column; transition: box-shadow .15s ease; }
.sdpc-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,.08); }
.sdpc-card-link { text-decoration: none; color: inherit; display: block; padding: 1rem; flex: 1; }
.sdpc-thumb { width: 56px; height: 56px; border-radius: 10px; background: #f0f4f8; display: flex; align-items: center; justify-content: center; overflow: hidden; margin-bottom: .6rem; }
.sdpc-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sdpc-thumb-fallback { font-size: 1.6rem; }
.sdpc-card h2 { font-size: 1.05rem; margin: 0 0 .35rem; }
.sdpc-excerpt { font-size: .85rem; opacity: .75; margin: 0 0 .75rem; }
.sdpc-card-meta { display: flex; align-items: center; gap: .45rem; padding: 0 1rem 1rem; flex-wrap: wrap; }

.sdpc-badge { font-size: .72rem; padding: .18rem .55rem; background: #eef3f8; border-radius: 999px; font-weight: 600; }
.sdpc-badge-featured { background: #fff4d6; }
.sdpc-cat { font-size: .72rem; color: #66707a; text-decoration: none; }

.sdpc-pager { margin-top: 2rem; text-align: center; }
.sdpc-empty { opacity: .6; padding: 3rem 0; text-align: center; }

/* Single */
.sdpc-back { display: inline-block; margin-bottom: 1.25rem; text-decoration: none; opacity: .7; }
.sdpc-single-head { display: flex; gap: 1.5rem; align-items: flex-start; margin-bottom: 2rem; }
.sdpc-thumb-lg { width: 96px; height: 96px; font-size: 2.4rem; flex-shrink: 0; }
.sdpc-single-head h1 { margin: 0 0 .4rem; font-size: clamp(1.6rem, 4vw, 2.4rem); }
.sdpc-badges { display: flex; gap: .4rem; flex-wrap: wrap; margin-bottom: .6rem; }
.sdpc-actions { display: flex; gap: .6rem; margin-top: 1rem; flex-wrap: wrap; }

.sdpc-columns { display: grid; grid-template-columns: 1fr 300px; gap: 2rem; }
@media (max-width: 800px) { .sdpc-columns { grid-template-columns: 1fr; } .sdpc-single-head { flex-direction: column; } }
.sdpc-changelog { background: #f6f8fa; padding: 1rem; border-radius: 10px; white-space: pre-wrap; font-size: .85rem; }

.sdpc-box { border: 1px solid #e2e6ea; border-radius: 12px; padding: 1rem 1.25rem; margin-bottom: 1rem; }
.sdpc-box h3 { margin-top: 0; font-size: .95rem; }
.sdpc-box dl { display: grid; grid-template-columns: auto 1fr; gap: .3rem .9rem; font-size: .85rem; margin: 0; }
.sdpc-box dt { opacity: .6; }
.sdpc-box dd { margin: 0; font-weight: 500; }
.sdpc-tags { display: flex; flex-wrap: wrap; gap: .4rem; }
.sdpc-tags a { font-size: .78rem; color: #2271b1; text-decoration: none; }