* { margin: 0; padding: 0; box-sizing: border-box; }
body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
    background: #f5f6f8;
    color: #333;
    line-height: 1.6;
}
a { text-decoration: none; color: inherit; }
.container { max-width: 1100px; margin: 0 auto; padding: 20px; }

/* 顶部导航 */
.navbar {
    background: #1f2d3d;
    color: #fff;
    padding: 14px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.navbar .brand { font-size: 18px; font-weight: 600; }
.navbar .menu a { color: #cfd8e3; margin-left: 20px; font-size: 14px; }
.navbar .menu a.active, .navbar .menu a:hover { color: #fff; }

/* 卡片 */
.card {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
    padding: 20px;
    margin-bottom: 20px;
}
.card h3 { font-size: 16px; margin-bottom: 14px; color: #1f2d3d; }

/* 表格 */
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { padding: 10px 12px; text-align: left; border-bottom: 1px solid #eee; }
th { background: #fafbfc; color: #666; font-weight: 600; white-space: nowrap; }
tr:hover td { background: #f8fafc; }

/* 按钮 */
.btn {
    display: inline-block; padding: 8px 16px; border: none; border-radius: 5px;
    cursor: pointer; font-size: 14px; background: #409eff; color: #fff; transition: .2s;
}
.btn:hover { background: #337ecc; }
.btn.primary { background: #409eff; }
.btn.danger { background: #f56c6c; }
.btn.danger:hover { background: #e04f4f; }
.btn.success { background: #67c23a; }
.btn.success:hover { background: #5daf34; }
.btn.small { padding: 4px 10px; font-size: 12px; }

/* 标签 */
.tag { display: inline-block; padding: 2px 8px; border-radius: 3px; font-size: 12px; }
.tag.green { background: #e1f3d8; color: #67c23a; }
.tag.red { background: #fde2e2; color: #f56c6c; }
.tag.gray { background: #f0f0f0; color: #999; }
.tag.orange { background: #fdf6ec; color: #e6a23c; }

/* 表单 */
input, select { padding: 8px 12px; border: 1px solid #dcdfe6; border-radius: 5px; font-size: 14px; }
input:focus { outline: none; border-color: #409eff; }
.form-group { margin-bottom: 14px; }
.form-group label { display: block; margin-bottom: 6px; font-size: 13px; color: #666; }

/* 提示框 */
.alert { padding: 12px 16px; border-radius: 5px; margin-bottom: 14px; font-size: 14px; }
.alert.error { background: #fde2e2; color: #f56c6c; }
.alert.success { background: #e1f3d8; color: #67c23a; }
.alert.warn { background: #fdf6ec; color: #e6a23c; }

/* 下拉联想 */
.suggest-list { position: absolute; background: #fff; border: 1px solid #dcdfe6; border-radius: 5px; z-index: 100; max-height: 300px; overflow-y: auto; }
.suggest-item { padding: 10px 14px; cursor: pointer; font-size: 14px; }
.suggest-item:hover { background: #f0f7ff; }
.suggest-item .sub { color: #999; font-size: 12px; }

/* 布局 */
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; }
.mt-20 { margin-top: 20px; }
.mb-20 { margin-bottom: 20px; }
.text-muted { color: #999; font-size: 13px; }
.flex { display: flex; align-items: center; gap: 10px; }

/* 宽表格横向滚动（成交列表字段较多时使用） */
.table-scroll { overflow-x: auto; }
.table-scroll table { min-width: 1100px; }
.table-scroll th, .table-scroll td { white-space: nowrap; }
