*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#1a2233;background:#f4f6fa;line-height:1.5}
a{text-decoration:none;color:inherit}
.site-header{background:#fff;border-bottom:1px solid #e6e9f0;position:sticky;top:0;z-index:50}
.header-inner{max-width:1100px;margin:0 auto;padding:14px 18px;display:flex;align-items:center;gap:14px}
.brand{display:flex;align-items:center;gap:10px;font-size:17px}
.brand .logo{width:34px;height:34px;border-radius:8px;background:#2f6bff;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}
.search-box{flex:1;max-width:320px;margin-left:auto;display:flex;background:#f4f6fa;border-radius:20px;padding:0 0 0 14px;align-items:center}
.search-box input{flex:1;border:none;background:transparent;padding:9px 0;font-size:13px;outline:none}
.search-box button{border:none;background:#2f6bff;color:#fff;padding:8px 16px;border-radius:20px;font-size:13px;cursor:pointer}
.cat-tabs{max-width:1100px;margin:0 auto;padding:0 18px 12px;display:flex;gap:8px;overflow:auto}
.cat-tabs a{padding:7px 16px;border-radius:18px;background:#eef1f6;font-size:13px;color:#1a2233;white-space:nowrap}
.cat-tabs a.active{background:#2f6bff;color:#fff}
.grid{max-width:1100px;margin:18px auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;padding:0 18px}
.card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 10px rgba(20,30,60,.06);display:block}
.card-img{aspect-ratio:4/3;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover}
.img-ph{width:100%;height:100%;background:linear-gradient(135deg,#cdd6e6,#eef2f9)}
.card-body{padding:12px 14px}
.card-title{font-size:14px;font-weight:600}
.card-meta{font-size:12px;color:#6b7488;margin-top:4px}
.empty{grid-column:1/-1;text-align:center;color:#9aa3b5;padding:60px 0}
.site-foot{text-align:center;color:#9aa3b5;font-size:12px;padding:30px 0 50px}
@media(max-width:640px){
  .header-inner{flex-wrap:wrap}
  .search-box{max-width:none;order:3;flex-basis:100%;margin:8px 0 0}
}
