/* Language dropdown */
.lang-dropdown { position: relative; display: inline-flex; }
.lang-trigger { display:inline-flex; align-items:center; gap:.4rem; padding:.45rem .6rem; }
.lang-trigger .caret { opacity:.8; }
.lang-menu {
  position:absolute; right:0; top:calc(100% + 6px);
  min-width: 160px;
  background:#0f0f14; border:1px solid #2a2a33; border-radius:10px;
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
  padding:.35rem; display:none; z-index: 50;
}
.lang-dropdown.open .lang-menu { display:block; }
.lang-item {
  display:flex; align-items:center; justify-content:space-between;
  padding:.5rem .6rem; border-radius:.6rem; text-decoration:none;
  color:#e7e7ea;
}
.lang-item:hover { background:#1b1b22; }
.lang-item.active { background:#171720; border:1px solid #2a2a33; }
.lang-item .check { opacity:.9; margin-left:.75rem; }

/* 工具卡片固定布局样式 */
.grid .card {
  display: flex;
  flex-direction: column;
  min-height: 200px;
  position: relative;
}

/* 标签位置固定在顶部 */
.card .badge {
  margin-bottom: 0.75rem;
  /* 单行显示，超出隐藏 */
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

/* 标题单行显示 */
.card h3 {
  margin: 0 0 0.75rem 0;
  font-size: 1.05rem;
  line-height: 1.3;
  /* 单行显示，超出隐藏 */
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 描述最多3行显示 */
.card p {
  margin: 0;
  flex: 1;
  line-height: 1.5;
  /* 多行文本截断 */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  /* 固定最小高度确保3行空间 */
  min-height: 4.5em; /* 1.5em * 3 行 */
  margin-bottom: 1rem;
}

/* 按钮固定在底部 */
.card .btn {
  margin-top: auto;
  align-self: flex-start;
}

/* 响应式调整 */
@media (max-width: 480px) {
  .grid {
    grid-template-columns: 1fr;
  }
  
  .card {
    min-height: 180px;
  }
  
  .card p {
    min-height: 4em;
    -webkit-line-clamp: 2;
  }
}
