/* 共享组件样式：由 P1-4 从各页内联 <style> 收敛而来，消除跨页重复。
   页面仅保留各自专属覆盖样式。 */
.btn-danger:hover { background: #cf1322;color: #fff }
.btn-primary:hover { background: #4a7349;color: #fff }
.btn-sm { font-size: 12px;padding: 3px 8px }
.btn-success { background: #52c41a;border-color: #52c41a;color: #fff }
.btn-success:hover { background: #389e0d }
.btn:hover { border-color: var(--primary);color: var(--primary) }
.detail-content { max-width: 1200px;padding: 8px 12px }
.empty-card { background: #fff;border-radius: 12px;color: var(--text-4);font-size: 14px;grid-column: 1 / -1;padding: 60px;text-align: center }
.empty-state { padding: 80px 20px;text-align: center }
.form-input { background: #fff;border-radius: 8px;border: 1.5px solid var(--border);color: var(--text);font-family: inherit;font-size: 14px;height: 42px;padding: 0 40px 0 14px;transition: border-color 0.2s, box-shadow 0.2s;width: 100% }
.form-input, .form-textarea { background: var(--card-bg);border-radius: 8px;border: 1px solid var(--border);color: var(--text);font-family: inherit;font-size: 14px;outline: none;padding: 10px 12px;width: 100% }
.form-input:focus { border-color: var(--primary) }
.form-input:focus, .form-textarea:focus { border-color: var(--primary) }
.form-item { display: flex;flex-direction: column }
.form-item.full { grid-column: 1 / -1 }
.form-row { align-items: center;display: flex;justify-content: space-between;margin-bottom: 24px }
.form-textarea { line-height: 1.6;min-height: 100px;resize: vertical }
.ico { align-items:center;display:inline-flex;flex:0 0 auto;height:1em;justify-content:center;vertical-align:middle;width:1em }
.ico svg { display:block;height:100%;width:100% }
.logo { align-items: center;display: flex;flex-shrink: 0;gap: 10px;text-decoration: none }
.main { margin: 0 auto;max-width: 1200px;padding: 32px 16px 60px }
.modal-mask { align-items: center;background: rgba(0,0,0,0.5);display: none;inset: 0;justify-content: center;position: fixed;z-index: 1000 }
.modal-mask.show { display: flex }
.page-btn { background: #fff;border-radius: 4px;border: 1px solid var(--border);cursor: pointer;font-size: 12px;margin: 0 2px;padding: 4px 10px }
.page-btn.active { background: var(--primary);border-color: var(--primary);color: #fff }
.page-btn:disabled { cursor: not-allowed;opacity: 0.4 }
.pagination { align-items: center;border-top: 1px solid #f0f0f0;color: var(--text-2);display: flex;font-size: 13px;justify-content: space-between;padding: 14px 16px }
.stat-item { flex: 1;text-align: center }
.stats-grid { display: grid;gap: 12px;grid-template-columns: repeat(4, 1fr);margin-bottom: 16px }
.status-tag { border-radius: 4px;display: inline-block;font-size: 12px;font-weight: 500;padding: 2px 8px }
.theme-toggle { align-items: center;background: var(--card-bg);border-radius: 8px;border: 1px solid var(--border);cursor: pointer;display: flex;font-size: 16px;height: 36px;justify-content: center;transition: all 0.2s;width: 36px }
.theme-toggle:hover { background: var(--primary-light);border-color: var(--primary) }
.toolbar input[type=text] { border-radius: 6px;border: 1px solid var(--border);font-size: 13px;outline: none;padding: 6px 12px;width: 220px }
.view-toggle { background: #f5f5f5;border-radius: 6px;display: flex;gap: 2px;padding: 2px }
.view-toggle button { background: transparent;border-radius: 4px;border: none;color: var(--text-secondary);cursor: pointer;font-size: 13px;padding: 6px 14px;transition: all 0.2s }
.view-toggle button.active { background: #fff;box-shadow: 0 1px 4px rgba(0,0,0,0.08);color: var(--primary);font-weight: 500 }
