/* ============ 联众磁学生产管理系统 · 公共样式（从 prototype.html 抽取） ============ */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: "Microsoft Yahei", sans-serif; background: #f5f7fa; }
a { text-decoration: none !important; }

/* ============ 登录页 ============ */
.login-wrap { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #1e3c72 0%, #1cbbb4 100%); }
.login-wrap::before, .login-wrap::after { content: ''; position: absolute; border-radius: 50%; background: rgba(255,255,255,0.08); }
.login-wrap::before { width: 400px; height: 400px; top: -120px; left: -120px; }
.login-wrap::after { width: 500px; height: 500px; bottom: -180px; right: -180px; }
.login-box { position: relative; width: 880px; max-width: 92%; background: #fff; border-radius: 10px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.25); display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; }
.login-left { background: linear-gradient(160deg, #1cbbb4 0%, #17a29c 100%); color: #fff; padding: 50px 40px;
    display: flex; flex-direction: column; justify-content: center; min-height: 480px; }
.login-left h1 { font-size: 26px; margin-bottom: 12px; letter-spacing: 2px; }
.login-left p { font-size: 14px; opacity: 0.9; line-height: 1.9; margin-bottom: 30px; }
.login-left ul { list-style: none; font-size: 13px; opacity: 0.85; }
.login-left li { padding: 5px 0; }
.login-left li i { margin-right: 8px; }
.login-right { padding: 50px 45px; display: flex; flex-direction: column; justify-content: center; }
.login-right h2 { font-size: 22px; color: #333; margin-bottom: 8px; }
.login-right .sub { color: #999; font-size: 13px; margin-bottom: 25px; }
.login-field { margin-bottom: 16px; }
.login-field label { display: block; font-size: 13px; color: #666; margin-bottom: 6px; }
.login-input { position: relative; }
.login-input .layui-icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #999; font-size: 16px; }
.login-input input { padding-left: 36px !important; height: 42px !important; }
.login-row { display: flex; justify-content: space-between; align-items: center; font-size: 13px; color: #666; margin-bottom: 20px; }
.login-btn { width: 100%; height: 42px; line-height: 42px; background: #1cbbb4; color: #fff; border: none; border-radius: 4px;
    font-size: 15px; cursor: pointer; letter-spacing: 4px; transition: all 0.3s; }
.login-btn:hover { background: #17a29c; }
.login-tip { text-align: center; color: #999; font-size: 12px; margin-top: 15px; }
.captcha-img { display: inline-block; width: 100px; height: 42px; background: #ecf0f1; border-radius: 4px; line-height: 42px;
    text-align: center; font-weight: bold; letter-spacing: 3px; color: #555; cursor: pointer; user-select: none; }
.login-err { color: #ff5722; font-size: 12px; margin-top: 8px; min-height: 16px; }

/* ============ layuiAdmin 风格整体布局 ============ */
.layui-layout-admin .layui-header { position: fixed; top: 0; left: 0; right: 0; height: 60px; background: #23262E; z-index: 1002; box-shadow: 0 1px 4px rgba(0,0,0,.2); }
.layui-layout-admin .layui-logo { position: absolute; left: 0; top: 0; width: 220px; height: 60px; line-height: 60px; text-align: center; color: #fff; font-size: 16px; letter-spacing: 1px; background: #1E2126; white-space: nowrap; overflow: hidden; }
.layui-layout-admin .layui-logo i { margin-right: 4px; color: #1cbbb4; font-size: 16px; }
.layui-header .layui-nav { background: transparent; position: absolute; top: 0; padding: 0; }
.layui-header .layui-nav .layui-nav-item { line-height: 60px; }
.layui-header .layui-nav .layui-nav-item > a { color: #c2c2c2 !important; height: 60px; padding: 0 16px !important; }
.layui-header .layui-nav .layui-nav-item > a:hover,
.layui-header .layui-nav .layui-nav-itemed > a { color: #fff !important; background: rgba(0,0,0,.15) !important; }
.layui-header .layui-nav .layui-nav-bar,
.layui-header .layui-nav .layui-this:after { background-color: #1cbbb4 !important; }
.layui-header .layui-nav .layui-this > a { color: #fff !important; }
.layui-header .layui-layout-left { left: 220px; }
.layui-header .layui-layout-right { right: 15px; }
.layui-header .layui-nav .layui-nav-more { border-top-color: #c2c2c2 !important; }
/* 右上角用户下拉 */
.layui-header .user-avatar { width: 30px; height: 30px; border-radius: 50%; background: #1cbbb4; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; vertical-align: middle; margin-right: 8px; }
.layui-header .ur-role { font-style: normal; color: #999; font-size: 12px; margin-left: 4px; }
.layui-header .layui-nav-child { right: 0; left: auto; min-width: 160px; background-color: #fff !important; border: 1px solid #eee; border-radius: 4px; box-shadow: 0 2px 12px rgba(0,0,0,.12); padding: 4px 0; }
.layui-header .layui-nav-child dd a i.layui-icon { margin-right: 10px; color: #1cbbb4; font-size: 15px; vertical-align: middle; }
.layui-header .layui-nav-child dd a { color: #333 !important; background-color: #fff !important; }
.layui-header .layui-nav-child dd a:hover { color: #1cbbb4 !important; background-color: #f0f7f6 !important; }
.layui-header .layui-nav-child dd a:hover i.layui-icon { color: #1cbbb4 !important; }
.layui-header .layui-nav-child dd.layui-this > a { color: #1cbbb4 !important; background-color: #f0f7f6 !important; }
.layui-header .layui-nav-child dd.layui-this > a i.layui-icon { color: #1cbbb4 !important; }
.layui-header .layui-nav-child dd.ur-hr { height: 1px; background: #eee; margin: 5px 0; padding: 0; }
/* 左侧导航树 */
.layui-layout-admin .layui-side { position: fixed; top: 60px; bottom: 0; left: 0; width: 220px; background: #2F4056; z-index: 1001; overflow: hidden; }
.layui-side-scroll { width: 240px; height: 100%; overflow-x: hidden; }
.layui-side .layui-nav.layui-nav-tree { width: 220px; background: #2F4056; padding-top: 4px; }
.layui-side .layui-nav-tree .layui-nav-item a { color: #c2c2c2; height: 44px; line-height: 44px; }
.layui-side .layui-nav-tree .layui-nav-item a:hover { color: #fff; background: #1E2A38; }
.layui-side .layui-nav-tree .layui-nav-item > a .layui-nav-more { border-top-color: #c2c2c2; }
.layui-side .layui-nav-tree .layui-nav-child a { height: 40px; line-height: 40px; }
.layui-side .layui-nav-tree .layui-this,
.layui-side .layui-nav-tree .layui-this > a,
.layui-side .layui-nav-tree .layui-this > a:hover { background: #1cbbb4 !important; color: #fff !important; }
.layui-side .layui-nav-tree .layui-nav-bar { display: none; }
.layui-side .menu-badge { float: right; margin-right: 24px; margin-top: 13px; background: #ff5722; color: #fff; font-size: 11px; line-height: 18px; height: 18px; padding: 0 6px; border-radius: 9px; }
/* 内容区 */
.layui-layout-admin .layui-body { position: fixed; top: 60px; bottom: 0; left: 220px; right: 0; overflow: auto; background: #f2f2f2; }
.admin-crumb { padding: 12px 20px; background: #fff; border-bottom: 1px solid #eee; color: #999; font-size: 13px; }
.admin-crumb i.layui-icon { font-size: 12px; margin: 0 6px; color: #ccc; }
.admin-crumb b { color: #333; font-weight: 600; }
.content-body { padding: 20px; }
/* 个人中心弹窗 */
.pf-wrap { padding: 20px 24px; }
.pf-hd { text-align: center; padding-bottom: 18px; border-bottom: 1px solid #f0f0f0; margin-bottom: 8px; }
.pf-avatar { width: 64px; height: 64px; line-height: 64px; border-radius: 50%; background: #1cbbb4; color: #fff; font-size: 28px; display: inline-block; }
.pf-name { font-size: 18px; color: #333; margin-top: 10px; font-weight: 600; }
.pf-sub { font-size: 13px; color: #999; margin-top: 4px; }
.pf-item { display: flex; padding: 11px 4px; border-bottom: 1px dashed #eee; font-size: 14px; }
.pf-item .pf-k { width: 90px; color: #999; flex-shrink: 0; }
.pf-item .pf-v { flex: 1; color: #333; word-break: break-all; }
@media (max-width: 767px) {
    .layui-layout-admin .layui-side, .layui-layout-admin .layui-logo { display: none; }
    .layui-layout-admin .layui-body { left: 0; }
    .layui-header .layui-layout-left { left: 0; }
}
.page-title { font-size: 20px; color: #333; margin-bottom: 20px; display: flex; align-items: center; justify-content: space-between; }
.page-title .btn-group { display: flex; gap: 8px; }
.card { background: #fff; border-radius: 4px; box-shadow: 0 1px 3px rgba(0,0,0,0.08); margin-bottom: 15px; }
.card-body { padding: 15px; }
.filter-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.filter-bar .layui-input, .filter-bar .layui-select { width: 180px; }
.action-bar { display: flex; gap: 10px; }

/* 表格样式 */
.layui-table-view .layui-table td, .layui-table-view .layui-table th { height: auto !important; padding: 10px 8px !important; line-height: 1.6 !important; }
.layui-table-cell { height: auto !important; line-height: 1.6; white-space: normal; word-wrap: break-word; padding: 4px 8px !important; }
.layui-table-body .layui-table td { font-size: 13px; color: #444; }
.layui-table-header .layui-table-cell { font-weight: 600; color: #333; background: #fafafa; }
/* 客诉处理状态下拉框 */
.cmp-status-sel { color:#fff !important; font-weight:600; }
.cmp-status-sel.layui-bg-gray { color:#555 !important; }
.cmp-status-sel option { color:#333; background:#fff; font-weight:normal; }
/* 售后负责人：单元格多选下拉框 */
.own-ms { display:inline-flex; align-items:center; gap:6px; min-height:30px; padding:3px 8px; border:1px solid #cfe3ff; border-radius:3px; background:#f0f6ff; cursor:pointer; max-width:100%; text-align:left; box-sizing:border-box; }
.own-ms:hover { border-color:#1e9fff; }
.own-ms.open { border-color:#1e9fff; box-shadow:0 0 0 2px rgba(30,159,255,.15); }
.own-ms-text { display:inline-flex; flex-wrap:wrap; gap:4px; flex:1; }
.own-tag { display:inline-block; padding:1px 6px; background:#1e9fff; color:#fff; border-radius:2px; font-size:12px; line-height:18px; white-space:nowrap; }
.own-ph { color:#9bbfe8; font-size:12px; }
.own-ms-caret { color:#8fb8e8; font-size:12px; flex:none; }
.own-ms-panel { display:none; position:fixed; z-index:99999; background:#fff; border:1px solid #e6e6e6; border-radius:3px; box-shadow:0 2px 10px rgba(0,0,0,.15); padding:6px 0; max-height:240px; overflow:auto; }
.own-ms-hd { padding:4px 12px 6px; font-size:12px; color:#999; border-bottom:1px solid #f0f0f0; margin-bottom:4px; }
.own-ms-opt { display:flex; align-items:center; padding:6px 12px; font-size:13px; cursor:pointer; margin:0; }
.own-ms-opt:hover { background:#f2f7ff; }
.own-ms-opt input[type=checkbox] { display:inline-block !important; appearance:auto !important; margin-right:8px; width:15px; height:15px; accent-color:#1e9fff; cursor:pointer; }
.row-tall .layui-table-view .layui-table td { padding: 18px 10px !important; }
.row-tall .layui-table-cell { line-height: 2; padding: 8px 10px !important; }
/* 订单表格：压缩行高 */
#page-orders .layui-table-view .layui-table td, #page-orders .layui-table-view .layui-table th { padding: 2px 6px !important; }
#page-orders .layui-table-view .layui-table .layui-table-cell { height: auto; line-height: 1.4; padding: 1px 4px !important; }
#page-orders .layui-badge { height: 16px; line-height: 16px; font-size: 11px; padding: 0 4px; }
.layui-badge.badge-not-started { background-color: #8c8c8c !important; color: #fff; }
#page-orders .nw { white-space: normal; word-break: break-all; }
#page-orders .inst-link { color:#1e9fff; cursor:pointer; white-space:nowrap; }
#page-orders .inst-link:hover { text-decoration:underline; }
/* 仪器表格：压缩行高 */
#page-instruments .layui-table-view .layui-table td { padding: 4px 8px !important; }
#page-instruments .layui-table-view .layui-table .layui-table-cell { height: auto; line-height: 1.4; padding: 2px 6px !important; }
#page-instruments .layui-table-view .layui-table .layui-table-cell div { line-height: 1.25; }
/* 仪器筛选栏：控件收窄并缩小间距，尽量排成一行 */
#page-instruments .filter-bar { gap: 8px; }
#page-instruments .filter-bar .layui-input,
#page-instruments .filter-bar .layui-form-select { width: 130px; }
#page-instruments .filter-bar .layui-form-select .layui-input { width: 130px; }
/* 订单分割线 */
.order-separator > td { border-top: 1px solid #dcdfe6 !important; }
.page { display: block; }

.perm-layout { display: grid; grid-template-columns: 240px 1fr; gap: 15px; }
.dept-tree { padding: 10px; }
.tree-node { padding: 8px 12px; cursor: pointer; border-radius: 4px; font-size: 14px; }
.tree-node:hover { background: #f5f7fa; }
.tree-node.active { background: #1cbbb4; color: #fff; }
.tree-indent { padding-left: 28px; }
.perm-section-title { font-size: 14px; font-weight: 600; margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid #eee; overflow: hidden; }
.perm-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.perm-item { border: 1px solid #e6e6e6; border-radius: 4px; padding: 10px 12px; display: flex; align-items: center; justify-content: space-between; font-size: 13px; }
/* 权限卡片头：菜单名 + 菜单可见开关（靠左同行） */
.perm-card-head { display: flex; align-items: center; gap: 10px; overflow: visible; }
.pcm-name { font-size: 14px; font-weight: 600; color: #333; }
.pcm-code { font-style: normal; font-weight: normal; font-size: 11px; color: #bbb; }
.pcm-vis { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: normal; color: #666; margin-left: 4px; padding: 2px 10px 2px 12px; background: #f2f6f9; border-radius: 20px; }
.pcm-vis .layui-icon { color: #1cbbb4; font-size: 14px; }
.pcm-vis .layui-form-switch { margin-top: 0; }

/* ============ 工作台统计 ============ */
.stat-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; margin-bottom: 15px; }
.stat-card { background: #fff; border-radius: 6px; padding: 20px; box-shadow: 0 1px 3px rgba(0,0,0,0.08);
    display: flex; align-items: center; gap: 15px; transition: transform 0.3s; }
.stat-card:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
.stat-icon { width: 56px; height: 56px; border-radius: 12px; display: flex; align-items: center; justify-content: center;
    font-size: 26px; color: #fff; flex-shrink: 0; }
.stat-icon.b1 { background: linear-gradient(135deg, #1cbbb4, #4ecdc4); }
.stat-icon.b2 { background: linear-gradient(135deg, #f39c12, #f1c40f); }
.stat-icon.b3 { background: linear-gradient(135deg, #3498db, #5dade2); }
.stat-icon.b4 { background: linear-gradient(135deg, #e74c3c, #ec7063); }
.stat-info { flex: 1; min-width: 0; }
.stat-label { font-size: 13px; color: #999; margin-bottom: 6px; }
.stat-value { font-size: 26px; color: #333; font-weight: 600; line-height: 1; }
.stat-trend { font-size: 12px; margin-top: 6px; color: #999; }
.trend-up { color: #52c41a; }
.trend-down { color: #ff5722; }
.chart-row { display: grid; grid-template-columns: 2fr 1fr; gap: 15px; margin-bottom: 15px; }
.chart-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 15px; }
.chart-card { background: #fff; padding: 18px; border-radius: 6px; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
.chart-title { font-size: 15px; font-weight: 600; color: #333; margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid #f0f0f0;
    display: flex; justify-content: space-between; align-items: center; }
.chart-title .more { font-size: 12px; color: #1cbbb4; font-weight: normal; cursor: pointer; }
.chart-box { width: 100%; height: 300px; }
.todo-list { list-style: none; max-height: 300px; overflow-y: auto; }
.todo-list li { padding: 10px 0; border-bottom: 1px dashed #eee; display: flex; justify-content: space-between; font-size: 13px; align-items: center; }
.todo-list li:last-child { border-bottom: none; }
.todo-list .t { color: #333; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.todo-list .d { color: #999; font-size: 12px; margin-left: 10px; }

/* 弹窗 */
.form-dialog { padding: 25px 30px 10px; }
.form-dialog .layui-form-item { margin-bottom: 14px; }
.form-dialog .layui-form-label { width: 100px; padding: 9px 10px; font-size: 13px; }
.form-dialog .layui-input-block { margin-left: 130px; }
.form-dialog input.layui-input, .form-dialog select.layui-select { height: 36px; line-height: 36px; }
.form-dialog .layui-textarea { min-height: 70px; }
.form-dialog .req:before { content:'* '; color:#ff5722; }
.order-form .of-sec { font-size:14px; font-weight:bold; color:#1cbbb4; margin:6px 0 14px; padding-left:8px; border-left:3px solid #1cbbb4; }
.order-form .of-tip { font-weight:normal; color:#999; font-size:12px; }
.order-form .of-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 26px; }
.date-wrap { position:relative; }
.date-wrap .layui-icon-date { position:absolute; right:10px; top:50%; transform:translateY(-50%); color:#c2c2c2; pointer-events:none; font-size:14px; }
.ms-wrap { position:relative; }
.ms-box { min-height:36px; line-height:22px; border:1px solid #e6e6e6; border-radius:2px; padding:5px 30px 5px 10px; cursor:pointer; position:relative; background:#fff; font-size:13px; color:#333; }
.ms-box:after { content:'\e625'; font-family:'layui-icon'; position:absolute; right:10px; top:50%; transform:translateY(-50%); color:#c2c2c2; font-size:12px; }
.ms-box .ms-ph { color:#999; }
.ms-panel { display:none; position:absolute; left:0; right:0; top:100%; z-index:9999; max-height:190px; overflow:auto; margin-top:2px; border:1px solid #e6e6e6; border-radius:2px; background:#fff; box-shadow:0 2px 8px rgba(0,0,0,.12); }
.ms-panel label { display:flex; align-items:center; padding:6px 10px; font-size:13px; cursor:pointer; }
.ms-panel label:hover { background:#f2f2f2; }
.ms-panel input[type=checkbox] { display:inline-block !important; appearance:auto !important; margin-right:6px; width:15px; height:15px; accent-color:#16b777; cursor:pointer; }
.inst-card { border:1px solid #e6e6e6; border-radius:4px; padding:12px 14px 14px; margin-bottom:12px; background:#fafafa; position:relative; }
.inst-card .inst-del { position:absolute; right:12px; top:10px; color:#ff5722; cursor:pointer; font-size:13px; }
.inst-card .inst-nm { margin-bottom:10px; padding-right:70px; }
.inst-card .inst-nm label { display:block; font-size:12px; color:#888; margin-bottom:3px; }
.inst-hd { display:flex; gap:12px; margin-bottom:10px; padding-right:70px; }
.inst-hd .inst-nm { flex:1; margin-bottom:0; padding-right:0; }
.inst-hd .inst-dn { width:150px; flex:none; }
.inst-hd .inst-dn label { display:block; font-size:12px; color:#888; margin-bottom:3px; }
.inst-hd .inst-mt { width:110px; flex:none; }
.inst-hd .inst-mt label { display:block; font-size:12px; color:#888; margin-bottom:3px; }
.inst-hd .inst-mt select { width:100%; height:32px; line-height:32px; }
.inst-tbl { width:100%; border-collapse:collapse; }
.inst-tbl th { font-size:12px; color:#999; font-weight:normal; text-align:left; padding:4px 6px; border-bottom:1px solid #eee; }
.inst-tbl td { padding:5px 6px; border-bottom:1px solid #f0f0f0; }
.inst-tbl td.stg { font-size:13px; color:#666; vertical-align:top; padding-top:8px; }
.inst-tbl .layui-input { height:30px; font-size:12px; }
.inst-tbl .date-wrap .layui-input { width:130px; padding-right:24px; }
.inst-tbl .ms-box { min-height:28px; padding:2px 24px 2px 6px; line-height:22px; font-size:12px; }
.inst-tbl .ms-panel label { padding:3px 8px; font-size:12px; }
.inst-tbl .stage-remark { width:100%; max-width:120px; }
.stage-block { margin-bottom:10px; border:1px solid #eee; border-radius:3px; padding:8px 10px; background:#fafcfc; }
.stage-block .sb-hd { display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.stage-block .sb-hd .sb-label { font-size:13px; color:#333; font-weight:bold; flex-shrink:0; }
.stage-block .sb-hd .ms-wrap { flex:1; max-width:260px; }
.stage-block .sb-tbl { width:100%; border-collapse:collapse; }
.stage-block .sb-tbl th { font-size:11px; color:#999; font-weight:normal; text-align:left; padding:3px 5px; border-bottom:1px solid #eee; }
.stage-block .sb-tbl td { padding:4px 5px; border-bottom:1px solid #f5f5f5; font-size:12px; }
.stage-block .sb-tbl .layui-input { height:28px; font-size:12px; }
.stage-block .sb-tbl .date-wrap .layui-input { width:120px; padding-right:22px; }
.detail-dialog { padding: 18px 24px; }
.detail-dialog .of-sec { margin:2px 0 12px; }
.detail-dialog .dt-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 26px; }
.detail-dialog .dt-grid .detail-item.full { grid-column:1 / -1; }
.detail-item { display: flex; padding: 9px 0; border-bottom: 1px dashed #eee; font-size: 13px; align-items:center; }
.detail-item .k { width: 100px; color: #999; flex-shrink: 0; }
.detail-item .v { flex: 1; color: #333; word-break: break-all; }
.dt-stage-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px 24px; }
.dt-person { line-height:1.7; }
.dt-person .dt-p-name { font-weight:600; color:#333; }
.dt-person .dt-p-plan { color:#999; }
.dt-person .dt-p-actual { color:#1cbbb4; }
.dt-person .dt-p-actual.empty { color:#999; }
.dt-person .dt-p-remark { color:#666; word-break:break-all; }

/* ============ 客诉单表单（对齐 Excel 客诉单排版） ============ */
.cmp-form { padding: 14px 16px; font-size: 13px; color: #333; background: #fff; }
.cmp-co { text-align: center; font-size: 19px; font-weight: bold; letter-spacing: 3px; color: #1cbbb4; margin: 2px 0 12px; }
.cmp-sec { font-size: 13px; font-weight: bold; color: #1cbbb4; margin: 12px 0 6px; }
table.cmp-tbl { width: 100%; border-collapse: collapse; table-layout: fixed; margin-bottom: 6px; }
table.cmp-tbl td { border: 1px solid #d0d7de; padding: 5px 8px; text-align: left; vertical-align: middle; word-break: break-word; line-height: 1.5; }
table.cmp-tbl td.cmp-side { width: 30px; text-align: center; font-weight: bold; color: #1cbbb4; background: #eef7f6; writing-mode: vertical-rl; letter-spacing: 6px; padding: 6px 2px; }
table.cmp-tbl td.cmp-lbl { background: #fafafa; color: #666; }
.cmp-in { width: 100%; border: none; outline: none; background: transparent; font-size: 13px; color: #1e9fff; height: 24px; }
.cmp-area { width: 100%; border: none; outline: none; background: transparent; font-size: 13px; color: #1e9fff; min-height: 52px; resize: vertical; box-sizing: border-box; }
.cmp-sign { text-align: right; color: #888; font-size: 12px; }
.cmp-sign .u { display: inline-block; min-width: 70px; border-bottom: 1px solid #bbb; margin: 0 4px; height: 16px; vertical-align: bottom; }
.cmp-fill { display: inline-block; border: none; border-bottom: 1px solid #bbb; background: transparent; outline: none; font-size: 12px; color: #1e9fff; height: 20px; vertical-align: bottom; margin: 0 4px; padding: 0 2px; box-sizing: border-box; }
.cmp-fill-name { width: 90px; }
.cmp-fill-date { width: 158px; cursor: pointer; padding-right: 20px; }
.cmp-dt-wrap { position: relative; display: inline-block; }
.cmp-dt-wrap .layui-icon-time { position: absolute; right: 5px; top: 50%; transform: translateY(-50%); color: #1cbbb4; font-size: 14px; pointer-events: none; }
.cmp-chk { display: inline-flex; align-items: center; margin-right: 14px; white-space: nowrap; font-size: 13px; color: #333; }
.cmp-chk input[type=checkbox] { display: inline-block !important; appearance: auto !important; margin: 0 5px 0 0; width: 14px; height: 14px; accent-color: #16b777; }
.cmp-code { font-size: 12px; color: #777; line-height: 1.9; }
.cmp-tbl select { border: none; background: transparent; font-size: 13px; color: #1e9fff; outline: none; width: 100%; }
.cmp-fit-area { height: calc(100vh - 140px); overflow-y: auto; overflow-x: hidden; background: #fff; border-radius: 4px; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
.cmp-view .cmp-co { font-size: 17px; margin: 0 0 8px; }
.cmp-view .cmp-sec { margin: 8px 0 4px; }
.cmp-view table.cmp-tbl { margin-bottom: 4px; }
.cmp-view table.cmp-tbl td { padding: 2px 8px; line-height: 1.45; }
.cmp-view .cmp-area { min-height: 34px; }
.cmp-view .cmp-code { line-height: 1.6; }
.cmp-view .cmp-fill-date { padding-right: 2px; }
.cmp-view input, .cmp-view textarea, .cmp-view select { pointer-events: none; }
.cmp-view .cmp-dt-wrap .layui-icon-time { display: none; }
.cmp-view .cmp-form { max-width: 1000px; margin: 0 auto; background:#fff; }

@media (max-width: 1200px) {
    .stat-row { grid-template-columns: repeat(2, 1fr); }
    .chart-row, .chart-row-2 { grid-template-columns: 1fr; }
}
@media (max-width: 1100px) {
    .perm-layout { grid-template-columns: 1fr; }
    .sidebar { width: 60px; }
    .sidebar-logo, .menu-item span, .menu-badge { display: none; }
    .menu-item { text-align: center; padding: 12px 0; justify-content: center; }
    .menu-item .layui-icon { margin-right: 0; }
    .login-box { grid-template-columns: 1fr; }
    .login-left { display: none; }
}
