* {
  margin:0;
  padding:0;
  box-sizing:border-box;
}
body {
  background:#f7f8fa;
  font-family:-apple-system,BlinkMacSystemFont,sans-serif;
}
.navbar {
  position:sticky;
  top:0;
  background:#fff;
  padding:12px 20px;
  box-shadow:0 2px 6px rgba(0,0,0,0.05);
  z-index:90;
}
.logo {
  display:flex;
  align-items:center;
  gap:10px;
}
.logo img {
  height:38px;
  width:auto;
}
.logo span {
  font-size:18px;
  font-weight:600;
  color:#000;
}
.container {
  max-width:1100px;
  margin:0 auto;
  padding:20px;
}
.search-box {
  margin-bottom:18px;
  text-align:center;
}
#search {
  width:100%;
  max-width:460px;
  padding:10px 14px;
  border:1px solid #e5e6eb;
  border-radius:8px;
  outline:none;
}
.tabs {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:center;
  margin-bottom:20px;
}
.tab {
  padding:6px 14px;
  border-radius:50px;
  background:#fff;
  border:1px solid #e5e6eb;
  cursor:pointer;
}
.tab.active {
  background:#165DFF;
  color:#fff;
}
.grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
@media (max-width:768px) {
  .grid {
    grid-template-columns:repeat(2,1fr);
  }
}
.card {
  background:#fff;
  border-radius:12px;
  overflow:hidden;
}
.card img {
  width:100%;
  height:170px;
  object-fit:cover;
  cursor:pointer;
}
.info {
  padding:10px;
  font-size:14px;
}
.modal {
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.9);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:999;
}
.modal.show {
  display:flex;
}
.modal img {
  max-width:90%;
  max-height:85vh;
}
.download {
  position:absolute;
  left:50%;
  bottom:30px;
  transform:translateX(-50%);
  width:50px;
  height:50px;
  border-radius:50%;
  background:rgba(255,255,255,0.15);
  border:none;
  color:#fff;
  font-size:22px;
  cursor:pointer;
}
.footer {
  text-align:center;
  padding:20px;
  font-size:12px;
  color:#999;
}
