* { box-sizing: border-box; margin: 0; padding: 0; font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif; }
body { background: #f5f6fa; color: #222; }
.hidden { display: none !important; }
.muted { color: #888; font-size: 13px; }
.msg { color: #e4393c; font-size: 13px; min-height: 18px; margin-top: 8px; }

/* 登录 */
.login-view { height: 100vh; display: flex; align-items: center; justify-content: center; }
.login-card { background: #fff; padding: 40px; border-radius: 14px; width: 340px; box-shadow: 0 8px 30px rgba(0,0,0,.08); }
.login-card h1 { font-size: 22px; margin-bottom: 6px; color: #FF6B35; }
.login-card input { width: 100%; padding: 12px 14px; margin-top: 14px; border: 1px solid #e3e3e8; border-radius: 8px; font-size: 14px; }
.login-card button { width: 100%; padding: 12px; margin-top: 18px; background: #FF6B35; color: #fff; border: none; border-radius: 8px; font-size: 16px; cursor: pointer; }
.login-card button:hover { opacity: .92; }

/* 框架 */
.app-view { display: flex; min-height: 100vh; }
.sidebar { width: 200px; background: #1f2530; color: #cfd3da; display: flex; flex-direction: column; }
.sidebar .logo { padding: 16px 20px; border-bottom: 1px solid #2c3340; display: flex; align-items: center; gap: 10px; }
.sidebar .logo .logo-img { width: 36px; height: 36px; border-radius: 8px; object-fit: cover; flex-shrink: 0; }
.sidebar .logo .logo-text { font-size: 17px; font-weight: 700; color: #fff; letter-spacing: 1px; }
.login-card .login-logo { display: block; width: 96px; height: 96px; margin: 0 auto 10px; border-radius: 18px; box-shadow: 0 6px 22px rgba(255,107,53,.18); }
.sidebar nav a { display: block; padding: 14px 20px; color: #cfd3da; text-decoration: none; font-size: 14px; }
.sidebar nav a:hover, .sidebar nav a.active { background: #2c3340; color: #fff; border-left: 3px solid #FF6B35; }
.side-foot { margin-top: auto; padding: 16px 20px; border-top: 1px solid #2c3340; font-size: 12px; }
.side-foot button { margin-top: 8px; background: transparent; border: 1px solid #4a5160; color: #cfd3da; padding: 6px 12px; border-radius: 6px; cursor: pointer; }

.content { flex: 1; padding: 28px; overflow: auto; }
.content h2 { font-size: 20px; margin-bottom: 18px; }
.panel { background: #fff; border-radius: 12px; padding: 22px; box-shadow: 0 2px 10px rgba(0,0,0,.04); margin-bottom: 20px; }
.row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-bottom: 12px; }
label { font-size: 13px; color: #555; min-width: 90px; }
input, select, textarea { padding: 9px 12px; border: 1px solid #e3e3e8; border-radius: 8px; font-size: 14px; font-family: inherit; }
input[type=text], input[type=number] { min-width: 220px; }
textarea { min-width: 420px; min-height: 80px; }
button.btn { background: #FF6B35; color: #fff; border: none; padding: 9px 18px; border-radius: 8px; cursor: pointer; font-size: 14px; }
button.btn.ghost { background: #fff; color: #FF6B35; border: 1px solid #FF6B35; }
button.btn.sm { padding: 5px 12px; font-size: 13px; }
button.btn.danger { background: #e4393c; }

table { width: 100%; border-collapse: collapse; font-size: 13px; }
th, td { text-align: left; padding: 10px 12px; border-bottom: 1px solid #eee; }
th { background: #fafafa; color: #666; font-weight: 600; }
tr:hover td { background: #fcfcfd; }
.data-table { display: block; overflow-x: auto; white-space: nowrap; }
.inp { padding: 7px 10px; border: 1px solid #ddd; border-radius: 8px; font-size: 13px; min-width: 220px; }
.m-av { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; vertical-align: middle; background: #f0f0f0; }
.m-av-t { display: inline-flex; width: 34px; height: 34px; border-radius: 50%; background: linear-gradient(135deg,#FFB199,#FF8C69); color: #fff; font-size: 14px; font-weight: 700; align-items: center; justify-content: center; vertical-align: middle; }
.tag { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 12px; background: #e8f5e9; color: #2e7d32; }
.tag.off { background: #f5f5f5; color: #999; }
.tag.warn { background: #fff3e0; color: #e65100; }
.tag.review { background: #ede7f6; color: #5e35b1; }
.stat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px,1fr)); gap: 16px; }
.stat { background: #fff; border-radius: 12px; padding: 18px; box-shadow: 0 2px 10px rgba(0,0,0,.04); }
.stat .num { font-size: 26px; font-weight: 700; color: #FF6B35; }
.stat .lbl { color: #888; font-size: 13px; margin-top: 4px; }

/* 图表 */
.chart-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 14px; }
.chart-box { background: #fafafa; border-radius: 10px; padding: 12px; height: 260px; }
@media (max-width: 720px) { .chart-row { grid-template-columns: 1fr; } }

/* 内容列表：标签单元格 / 好评差评配色 / 缩略图 */
.cell-tags { cursor: help; color: #e65100; }
.good { color: #2e7d32; font-weight: 600; }
.bad { color: #e4393c; font-weight: 600; }
.thumb { width: 40px; height: 40px; border-radius: 6px; object-fit: cover; cursor: zoom-in; vertical-align: middle; }

/* 列表工具栏（图标操作列在查询行） */
.tool-row .spacer { flex: 1; }
.tbar { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tbtn { display: inline-flex; align-items: center; gap: 5px; background: #fff; color: #444; border: 1px solid #e3e3e8; border-radius: 8px; padding: 7px 12px; cursor: pointer; font-size: 13px; transition: all .15s; }
.tbtn:hover { border-color: #ffd0bd; color: #FF6B35; background: #fff3ed; }
.tbtn span { font-size: 13px; }
.row-sel, .sel-all { width: 16px; height: 16px; cursor: pointer; accent-color: #FF6B35; }
.lk { color: #FF6B35; cursor: pointer; text-decoration: none; }
.lk:hover { text-decoration: underline; }

/* 操作弹层（点击"操作"按钮弹出菜单） */
.ops { position: relative; display: inline-block; }
.ops-btn { background: #fff; color: #FF6B35; border: 1px solid #ffd0bd; padding: 5px 14px; border-radius: 8px; cursor: pointer; font-size: 13px; transition: background .15s; }
.ops-btn:hover { background: #fff3ed; }
.ops-menu { display: none; position: absolute; right: 0; top: 36px; z-index: 40; background: #fff; border: 1px solid #eee; border-radius: 10px; box-shadow: 0 8px 30px rgba(0,0,0,.14); padding: 6px; min-width: 124px; flex-direction: column; gap: 2px; }
.ops.open .ops-menu { display: flex; }
.ops-menu .op { text-align: left; background: #fff; border: none; padding: 9px 12px; border-radius: 7px; cursor: pointer; font-size: 13px; color: #333; }
.ops-menu .op:hover { background: #fff3ed; color: #FF6B35; }
.ops-menu .op.danger { color: #e4393c; }
.ops-menu .op.danger:hover { background: #fdeaea; }

/* 分站选项卡 */
.tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 12px; }
.tab { background: #f3f4f6; border: 1px solid #e3e3e8; color: #555; padding: 7px 16px; border-radius: 20px; cursor: pointer; font-size: 13px; transition: all .15s; }
.tab:hover { border-color: #ffd0bd; color: #FF6B35; }
.tab.active { background: #FF6B35; color: #fff; border-color: #FF6B35; }

/* 侧边栏：顶级链接（数据看板，常驻显示） */
.sidebar nav > a.nav-top { display: flex; align-items: center; gap: 10px; padding: 14px 20px; color: #cfd3da; text-decoration: none; font-size: 14px; border-left: 3px solid transparent; }
.sidebar nav > a.nav-top:hover, .sidebar nav > a.nav-top.active { background: #2c3340; color: #fff; border-left: 3px solid #FF6B35; }

/* 侧边栏分组（手风琴可折叠，分组标题为主、子项为辅） */
.sidebar .nav-group { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px 11px; cursor: pointer; user-select: none; font-size: 15px; font-weight: 700; letter-spacing: .5px; color: #eef1f6; transition: color .15s; }
.sidebar .nav-group:hover { color: #fff; }
.sidebar .nav-group .caret { font-size: 11px; color: #8b93a3; transition: transform .2s ease; }
.sidebar .nav-section.open .nav-group .caret { transform: rotate(90deg); color: #FF6B35; }
.sidebar .nav-items { display: none; }
.sidebar .nav-section.open .nav-items { display: block; }
.sidebar .nav-items a { display: flex; align-items: center; gap: 10px; padding: 10px 20px 10px 42px; font-size: 13px; color: #aeb4c0; text-decoration: none; border-left: 3px solid transparent; }
.sidebar .nav-items a:hover { background: #262d39; color: #fff; }
.sidebar .nav-items a.active { background: #2c3340; color: #fff; border-left: 3px solid #FF6B35; }

/* 商城富文本编辑器 */
.rte-toolbar { display: flex; gap: 6px; margin-bottom: 6px; flex-wrap: wrap; }
.rte-toolbar button { background: #f3f4f6; border: 1px solid #e3e3e8; border-radius: 6px; padding: 5px 10px; cursor: pointer; font-size: 13px; }
.rte-toolbar button:hover { background: #fff3ed; color: #FF6B35; }
.rte { min-height: 180px; border: 1px solid #e3e3e8; border-radius: 8px; padding: 12px; background: #fff; font-size: 14px; line-height: 1.6; overflow: auto; }
.rte:empty:before { content: '输入商品详情…'; color: #bbb; }
#a_rte:empty:before { content: '输入关于平台介绍，可插入图片…'; color: #bbb; }
.rte-company-desc:empty:before { content: '输入经历的时间、地点、经手人、以及过程。'; color: #bbb; }
.rte img { max-width: 100%; border-radius: 6px; }
.img-grid { display: flex; flex-direction: column; gap: 10px; }
.img-slot { display: flex; gap: 10px; align-items: center; }
.img-slot input { flex: 1; min-width: 0; }
.img-prev { width: 48px; height: 48px; border-radius: 8px; object-fit: cover; border: 1px solid #eee; background: #f5f5f5; flex-shrink: 0; }
.img-prev.empty { display: none; }
.img-name { font-size: 12px; color: #999; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.img-del { background: #fdeaea; color: #e4393c; border: none; border-radius: 8px; width: 32px; height: 32px; font-size: 16px; cursor: pointer; flex-shrink: 0; }
.img-del:hover { background: #f7c9c9; }
/* 商品图片：上传按钮（正常按钮观感——稍高、不撑满宽） */
.img-add { display: flex; align-items: center; gap: 12px; margin-top: 4px; }
.img-add-btn { background: #FF6B35; color: #fff; border: none; padding: 9px 18px; border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600; line-height: 1; align-self: flex-start; }
.img-add-btn:hover { background: #ff7d4d; }
.img-add-btn:disabled { opacity: .6; cursor: default; }
/* 公司避雷：视频上传预览 */
.video-slot { position: relative; display: inline-block; }
.video-prev { width: 240px; max-width: 100%; height: 160px; border-radius: 8px; background: #000; border: 1px solid #e3e3e8; }
.video-cloud { background: #f3f4f6; border: 1px dashed #ccc; border-radius: 8px; padding: 14px 18px; color: #888; font-size: 13px; max-width: 360px; }
.video-slot .img-del { position: absolute; top: -8px; right: -8px; }
/* 列表视频角标 */
.play-badge { display: inline-flex; align-items: center; gap: 4px; background: #FFF0EB; color: #FF6B35; border: 1px solid #ffd0bd; border-radius: 10px; padding: 2px 8px; font-size: 12px; cursor: pointer; }
.play-badge:hover { background: #ffe0d4; }
.price-cmp { font-size: 13px; }
.price-cmp .orig { color: #999; text-decoration: line-through; margin-right: 8px; }
.price-cmp .now { color: #e4393c; font-weight: 700; }

/* 标签配置 chips */
.tagcfg { padding: 12px 0; border-bottom: 1px dashed #eee; }
.tagchips { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.chip { display: inline-flex; align-items: center; gap: 4px; background: #fff3ed; color: #e65100; border: 1px solid #ffd9c2; border-radius: 12px; padding: 3px 6px 3px 10px; font-size: 12px; }
.chip-x { border: none; background: transparent; color: #e65100; cursor: pointer; font-size: 14px; line-height: 1; padding: 0 2px; }

/* 公司避雷发布/编辑：可选标签 —— 未选中灰色、选中橙色 */
.tag-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 4px; }
.tag-opt {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #f1f1f4;
  color: #999;
  border: 1px solid #e2e2e8;
  border-radius: 12px;
  padding: 6px 12px;
  font-size: 12px;
  cursor: pointer;
  user-select: none;
  transition: all .15s;
}
.tag-opt:hover { border-color: #ffd0bd; color: #FF6B35; }
.tag-opt.on { background: #FF6B35; color: #fff; border-color: #FF6B35; }
.switch { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: #555; cursor: pointer; }
.tagcfg-body { padding: 6px 0 4px 12px; border-left: 2px solid #f0f0f0; margin-bottom: 6px; }

/* 模态框 */
.modal { position: fixed; inset: 0; background: rgba(0,0,0,.45); display: flex; align-items: center; justify-content: center; z-index: 100; }
.modal-box { background: #fff; border-radius: 14px; padding: 28px; width: 460px; max-width: 92vw; max-height: 88vh; overflow: auto; box-shadow: 0 20px 60px rgba(0,0,0,.25); }
.modal-box .row { margin-bottom: 14px; }
.modal-box textarea { min-width: 100%; min-height: 90px; }
.modal-box .btn.ghost { background: #fff; color: #FF6B35; border: 1px solid #FF6B35; margin-left: 8px; }
.mem-modal { width: 580px; max-width: 94vw; }
.modal-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.modal-h b { font-size: 16px; color: #222; }
.modal-b { font-size: 13px; }
.kv-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px; }
.kv { display: flex; gap: 8px; align-items: baseline; }
.kv .k { color: #999; min-width: 76px; flex: none; }
.kv .v { color: #222; word-break: break-all; }
.bio { background: #fafafa; border: 1px solid #f0f0f0; border-radius: 8px; padding: 10px 12px; color: #333; margin: 6px 0 16px; white-space: pre-wrap; word-break: break-all; line-height: 1.6; }
.modal-b h4 { font-size: 13px; color: #666; margin: 4px 0 2px; font-weight: 700; }
/* 会员详情分组标题（基础信息 / 实名认证 / 个人信息 / 账户） */
.mem-sec { font-size: 14px; color: #FF6B35; margin: 18px 0 8px; padding-left: 10px; border-left: 3px solid #FF6B35; font-weight: 700; }
.mem-sec:first-child { margin-top: 0; }
/* 身份证照片预览 */
.idcard-img { display: block; max-width: 100%; max-height: 240px; border-radius: 8px; border: 1px solid #f0f0f0; margin-top: 4px; }
.mono { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; letter-spacing: .3px; }
/* 会员详情头像 + 积分变动表 */
.kv-avatar { width: 64px; height: 64px; border-radius: 50%; overflow: hidden; background: #f0f0f0; display: flex; align-items: center; justify-content: center; font-size: 24px; color: #FF8C69; font-weight: 700; margin-bottom: 10px; }
.m-av-lg { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; }
.log-tbl { width: 100%; border-collapse: collapse; font-size: 12px; }
.log-tbl th, .log-tbl td { border: 1px solid #f0f0f0; padding: 6px 8px; text-align: left; }
.log-tbl th { background: #fafafa; color: #888; font-weight: 600; }
.log-tbl td.pos { color: #1a9e4b; }
.log-tbl td.neg { color: #e23b3b; }

/* 灯箱 */
.lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.82); display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 12px; padding: 40px 20px; overflow: auto; z-index: 200; }
.lb-img { max-width: 92vw; max-height: 80vh; border-radius: 8px; box-shadow: 0 10px 40px rgba(0,0,0,.4); }

/* 上架商品 · 宽屏大气弹窗 */
.modal-box.product-modal { width: 780px; max-width: 94vw; }
.pm-title { font-size: 18px; font-weight: 700; color: #222; margin-bottom: 14px; }
.pm-form { max-height: 66vh; overflow: auto; padding-right: 4px; }
.pf-section { padding: 4px 0 18px; border-bottom: 1px dashed #eee; margin-bottom: 16px; }
.pf-section:last-of-type { border-bottom: none; margin-bottom: 4px; }
.pf-sec-title { font-size: 14px; font-weight: 700; color: #333; margin-bottom: 12px; }
.pf-sec-title .muted { font-weight: 400; }
.pf-field { display: flex; flex-direction: column; gap: 6px; }
.pf-field label { min-width: auto; font-size: 12px; color: #888; }
.pf-field.full { margin-bottom: 14px; }
.pf-field input, .pf-field select { width: 100%; min-width: 0; }
.pf-prices { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 20px; }
.pm-actions { display: flex; gap: 12px; justify-content: flex-end; margin-top: 6px; }
.product-modal .rte { min-height: 260px; }
.product-modal .rte-toolbar button { font-size: 13px; }
.rte-hint { font-size: 12px; color: #FF6B35; margin-top: 8px; }
@media (max-width: 640px) {
  .pf-prices { grid-template-columns: 1fr; }
  .modal-box.product-modal { width: 94vw; }
}
/* 公司避雷：列表「评论次数」徽标 + 评论记录弹窗 */
.cmt-badge { display: inline-block; padding: 4rpx 14rpx; border-radius: 20rpx; background: #e8f0ff; color: #1A73E8; font-weight: 600; cursor: pointer; white-space: nowrap; }
.cmt-badge:hover { background: #d6e6ff; }
.cmt-list { max-height: 64vh; overflow: auto; margin-top: 8px; }
.cmt-item { border-top: 1rpx solid #eee; padding: 14rpx 0; }
.cmt-item:first-child { border-top: none; }
.cmt-head { display: flex; align-items: center; gap: 12rpx; margin-bottom: 6rpx; flex-wrap: wrap; }
.cmt-head .muted { color: #aaa; font-size: 22rpx; }
.cmt-kind { font-size: 20rpx; padding: 1rpx 12rpx; border-radius: 18rpx; color: #fff; }
.cmt-kind.good { background: #2E7D32; }
.cmt-kind.bad { background: #C62828; }
.cmt-kind.both { background: #8A6D00; }
.cmt-body { font-size: 26rpx; color: #333; line-height: 1.6; word-break: break-all; white-space: pre-wrap; }
.cmt-tags { margin-top: 8rpx; }
.cmt-tags .tag { display: inline-block; margin: 0 8rpx 8rpx 0; padding: 2rpx 14rpx; border-radius: 16rpx; font-size: 22rpx; }
.cmt-imgs { margin-top: 8rpx; display: flex; flex-wrap: wrap; gap: 8rpx; }
.cmt-imgs .thumb { width: 120rpx; height: 120rpx; object-fit: cover; border-radius: 8rpx; cursor: pointer; }

/* 网站底部备案号（固定展示，全站可见） */
.site-beian{position:fixed;left:0;right:0;bottom:0;z-index:9999;text-align:center;padding:8px 0;font-size:13px;color:#888;background:rgba(255,255,255,0.92);border-top:1px solid #eee;}
.site-beian a{color:#888;text-decoration:none;}
.site-beian a:hover{color:#1A73E8;}
