/* 可复用内容组件：卡片、表单、数据视图。 */
.card, .topic-card, .stat-card, .editor-sidebar, .editor-main, .editor-actions, .account-card { border:1px solid var(--gray-200); border-radius:var(--radius-lg); box-shadow:var(--shadow); }
.card { padding:22px; margin-bottom:18px; background:rgba(255,255,255,.88); }
.card-title { display:flex; align-items:center; min-height:24px; margin-bottom:17px; color:var(--gray-900); font-size:15px; font-weight:700; letter-spacing:.035em; }
.btn { min-height:34px; padding:7px 13px; border-radius:7px; font-weight:650; transition:background .16s ease, border-color .16s ease, transform .16s ease; }
.btn:hover:not(:disabled) { transform:translateY(-1px); }
.btn-primary { background:linear-gradient(115deg, var(--primary), var(--secondary)); }
.btn-primary:hover { background:linear-gradient(115deg, var(--primary-dark), #6145c8); }
.btn-success { background:var(--success); }
.btn-outline { border-color:var(--gray-300); background:#fff; color:var(--gray-700); }
.btn-outline:hover { border-color:var(--primary); background:var(--primary-light); color:var(--primary-dark); }
.btn-icon { border-radius:7px; background:var(--gray-100); }
.badge { border-radius:5px; font-size:11px; font-weight:700; letter-spacing:.025em; }
.badge-info { background:var(--primary-light); color:var(--primary-dark); }
th, td { padding:13px 15px; border-bottom-color:var(--gray-200); }
th { color:var(--gray-500); font-size:11px; letter-spacing:.11em; }
tbody tr { transition:background .15s ease; }
tbody tr:hover { background:rgba(236,238,255,.64); }
.form-group input, .form-group select, .form-group textarea, .editor-textarea { border-color:var(--gray-300); border-radius:7px; background:#fcfcff; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus, .editor-textarea:focus { border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-light); }
.filter-tabs { gap:7px; margin-bottom:21px; padding:3px 0; }
.filter-tab { padding:7px 13px; border-color:var(--gray-300); border-radius:7px; background:rgba(255,255,255,.76); color:var(--gray-600); }
.filter-tab:hover { border-color:var(--primary); color:var(--primary-dark); }
.filter-tab.active { border-color:var(--primary); background:linear-gradient(115deg, var(--primary), var(--secondary)); }
.topic-card { position:relative; overflow:hidden; padding:19px 21px 18px 25px; margin-bottom:11px; background:rgba(255,255,255,.92); }
.topic-card::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(135deg, var(--cat-color, var(--primary)), var(--cat-color, var(--secondary))); }
.topic-card:hover { border-color:rgba(83,99,220,.42); box-shadow:var(--shadow-lg); transform:translateY(-1px); }
.topic-card .topic-title { color:var(--gray-900); font-family:"Noto Serif SC", "Source Han Serif SC", "Songti SC", STSong, serif; font-size:17px; font-weight:600; line-height:1.55; letter-spacing:.02em; }
.topic-card .topic-meta { gap:15px; color:var(--gray-500); }
.topic-card .topic-reason { padding:9px 11px; border-left:2px solid var(--secondary); border-radius:0 5px 5px 0; background:#f4f5ff; color:var(--gray-600); }
.score-bar .score-value { color:var(--secondary) !important; font-size:15px; }
.editor-layout { gap:16px; grid-template-columns:minmax(230px,.72fr) minmax(440px,1.7fr) minmax(210px,.62fr); }
.editor-sidebar, .editor-main, .editor-actions { padding:20px; background:rgba(255,255,255,.92); }
.editor-textarea { line-height:1.9; }
.status-step.active { color:var(--primary); }
.status-step .step-dot { border-radius:3px; }
.status-step.active .step-dot { background:var(--primary); }
.tab-bar { gap:0; padding:0; border-bottom-color:var(--gray-300); }
.tab-pill { padding:10px 15px; color:var(--gray-500); font-size:13px; }
.tab-pill:hover, .tab-pill.active { color:var(--primary-dark); }
.tab-pill.active { border-bottom-color:var(--secondary); }
.account-suggest-card { border:1px solid #d8dcfa; border-left:4px solid var(--secondary); border-radius:var(--radius-lg); background:linear-gradient(120deg, #eef0ff, #fcfcff); }
.stats-row { gap:12px; }
.stat-card { position:relative; overflow:hidden; padding:18px; background:rgba(255,255,255,.88); }
.stat-card::after { content:""; position:absolute; top:0; right:0; width:36px; height:3px; background:linear-gradient(90deg, var(--primary), var(--secondary)); }
.stat-card .stat-value { color:var(--gray-900); font-family:"Noto Serif SC", "Source Han Serif SC", "Songti SC", STSong, serif; font-size:31px; font-weight:600; letter-spacing:.025em; }
.stat-card .stat-label { color:var(--gray-500); font-size:12px; }
.account-card { padding:19px; background:rgba(255,255,255,.92); }
.account-card:hover { border-color:var(--primary); box-shadow:var(--shadow-lg); }
.account-avatar { border-radius:50%; background:linear-gradient(135deg, var(--primary), var(--secondary)); font-family:"Noto Serif SC", "Source Han Serif SC", serif; }
.account-tag { border-radius:5px; background:var(--primary-light); color:var(--primary-dark); }
.account-status-chip { border-radius:5px; }
.chart-container { border-top:1px solid var(--gray-200); padding-top:14px; }
.toast { right:28px; bottom:28px; border:1px solid rgba(235,237,255,.25); border-radius:8px; background:#2d315d; box-shadow:8px 9px 0 rgba(57,68,174,.12); }
.modal-overlay { background:rgba(35,40,85,.45); backdrop-filter:blur(3px); }
.modal { border:1px solid var(--gray-200); border-radius:13px; box-shadow:16px 18px 0 rgba(57,68,174,.16); }
.modal h3 { color:var(--gray-900); font-family:"Noto Serif SC", "Source Han Serif SC", serif; font-weight:600; }
@media (max-width:1024px) { .editor-layout { grid-template-columns:1fr; } }
@media (max-width:768px) { .card { padding:17px; } .topic-card { padding:16px 16px 15px 20px; } .topic-card .topic-header, .topic-card .topic-footer { gap:10px; align-items:flex-start; flex-direction:column; } .topic-card .topic-title { font-size:16px; } }
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; } }
