/* 轻量自定义样式 */
.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.card { background:#fff; border:1px solid rgb(241 245 249); border-radius:14px; }
.tag { display:inline-flex; align-items:center; padding:2px 8px; border-radius:999px; font-size:12px; }
.tag-blue { background:#eef4ff; color:#1f3aa6; }
.tag-green{ background:#ecfdf5; color:#047857; }
.tag-amber{ background:#fffbeb; color:#b45309; }
.tag-gray { background:#f1f5f9; color:#475569; }
.tag-red  { background:#fef2f2; color:#b91c1c; }
.prose-zh p { line-height:1.8; }
.prose-zh { white-space: pre-wrap; word-break: break-word; }
.input { width:100%; border:1px solid rgb(226 232 240); border-radius:10px; padding:8px 12px; font-size:14px; background:#fff; }
.input:focus { outline:none; border-color:#3a63f5; box-shadow:0 0 0 3px rgba(58,99,245,.15); }
.btn { display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:10px; font-size:14px; transition:all .15s ease; }
.btn-primary { background:#3a63f5; color:#fff; }
.btn-primary:hover { background:#274ad6; }
.btn-ghost { background:#fff; color:#1f2937; border:1px solid #e2e8f0; }
.btn-ghost:hover { background:#f8fafc; }
.label { display:block; font-size:12px; color:#475569; margin-bottom:4px; font-weight:500; }
