:root{
  --bg:#1e1e1e; --panel:#252526; --panel2:#2d2d30; --border:#3c3c3c;
  --text:#e6e6e6; --muted:#9aa0a6; --accent:#0a84ff; --accent2:#4ec9b0;
  --danger:#f14c4c; --ok:#4ec9b0; --warn:#d7a33a;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,"Segoe UI",Roboto,"Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text);font-size:14px}
header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--panel);border-bottom:1px solid var(--border)}
header h1{font-size:16px;margin:0;font-weight:600}
.badge{font-size:12px;padding:2px 8px;border-radius:10px;background:var(--panel2);color:var(--muted);border:1px solid var(--border)}
.badge.on{color:var(--ok);border-color:var(--ok)}
.badge.off{color:var(--warn);border-color:var(--warn)}
.wrap{display:flex;min-height:calc(100vh - 53px);max-width:1400px;margin:0 auto;padding:0}
/* 左侧边栏（模块导航，跨页面共享） */
.sidebar{width:190px;flex:0 0 190px;background:var(--panel);border-right:1px solid var(--border);padding:14px 10px;display:flex;flex-direction:column;gap:4px}
.sidebar-title{font-size:12px;color:var(--muted);padding:2px 10px 8px;letter-spacing:.5px}
.tab{padding:10px 14px;border:1px solid transparent;border-radius:8px;background:transparent;cursor:pointer;color:var(--muted);text-align:left;font-size:14px;display:flex;align-items:center;gap:8px;text-decoration:none}
.tab::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--border);flex:0 0 6px}
.tab:hover{background:var(--panel2);color:var(--text)}
.tab.active{background:var(--panel2);color:#fff;border-color:var(--accent)}
.tab.active::before{background:var(--accent)}
/* 右侧内容区 */
.content{flex:1;min-width:0;padding:16px 20px}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
input,select,textarea{padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);color:var(--text);outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--accent)}
button{padding:8px 14px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);color:var(--text);cursor:pointer}
button:hover{border-color:var(--accent)}
button.primary{background:var(--accent);border-color:var(--accent);color:#fff}
button.danger{color:var(--danger);border-color:var(--danger)}
table{width:100%;border-collapse:collapse;background:var(--panel);border-radius:8px;overflow:hidden}
th,td{padding:9px 10px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}
/* 表格行内编辑控件（客户管理）：占满单元格、弱化边框，聚焦时高亮 */
.cell-input{width:100%;min-width:72px;padding:4px 6px;font-size:13px;border:1px solid transparent;border-radius:6px;background:transparent}
.cell-input:hover{border-color:var(--border)}
.cell-input:focus{border-color:var(--accent);background:var(--panel2)}
/* 只读单元格（如非超管的 firm 列） */
.cell-ro{color:var(--muted);font-size:13px;white-space:nowrap}
th{background:var(--panel2);color:var(--muted);font-weight:600;font-size:12px}
tr:hover td{background:var(--panel2)}
.link{color:var(--accent);text-decoration:none;word-break:break-all}
.link:hover{text-decoration:underline}
.tag{font-size:11px;padding:1px 7px;border-radius:8px;background:var(--panel2);border:1px solid var(--border);color:var(--muted)}
.tag.商品{color:var(--accent2);border-color:var(--accent2)}
.tag.模块{color:var(--warn);border-color:var(--warn)}
.pager{display:flex;gap:8px;align-items:center;margin-top:10px;color:var(--muted)}
.modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.5);display:none;align-items:center;justify-content:center;z-index:10}
.modal-mask.show{display:flex}
.modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:20px;width:520px;max-width:92vw;max-height:88vh;overflow:auto}
.modal h3{margin:0 0 14px}
.form-row{margin-bottom:12px}
.form-row label{display:block;margin-bottom:5px;color:var(--muted);font-size:12px}
.form-row input,.form-row textarea{width:100%}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
.login-box{max-width:340px;margin:80px auto;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:24px}
.login-box h2{margin:0 0 16px;font-size:18px}
.hint{color:var(--muted);font-size:12px;margin-top:6px;line-height:1.5}
.msg{margin:8px 0;font-size:13px}
.msg.err{color:var(--danger)} .msg.ok{color:var(--ok)}
.diff-add{color:var(--ok)} .diff-update{color:var(--warn)} .diff-skip{color:var(--muted)}
/* 上架/下架结果弹窗 */
.sr-summary{display:flex;gap:14px;margin-bottom:10px}
.sr-summary>div{padding:10px 16px;border-radius:10px;font-size:14px;flex:1;text-align:center;border:1px solid var(--border)}
.sr-summary b{font-size:20px;font-weight:700;margin:0 2px}
.sr-ok{background:#0f2a22;border-color:var(--ok);color:var(--ok)}
.sr-ok b{color:var(--ok)}
.sr-fail{background:#2a1414;border-color:var(--danger);color:var(--danger)}
.sr-fail b{color:var(--danger)}
.sr-sub{color:var(--muted);font-size:12px;margin-bottom:12px;line-height:1.5}
.sr-detail-title{font-size:13px;color:var(--muted);margin:6px 0 6px}
.sr-detail{max-height:46vh;overflow:auto;border:1px solid var(--border);border-radius:8px}
.sr-detail table{font-size:12px}
.sr-detail th{position:sticky;top:0}
.empty{padding:30px;text-align:center;color:var(--muted)}
.hidden{display:none}
img.thumb{width:46px;height:46px;object-fit:cover;border-radius:6px;border:1px solid var(--border);vertical-align:middle}
/* 复选框 */
input[type=checkbox]{width:16px;height:16px;cursor:pointer;vertical-align:middle;accent-color:var(--accent)}
td.cb,th.cb{width:36px;text-align:center}
.selbar{display:flex;gap:8px;align-items:center;margin-bottom:10px;padding:8px 12px;background:var(--panel);border:1px solid var(--border);border-radius:8px}
.selbar .n{color:var(--muted);margin-right:4px}
.st-ON{color:var(--ok);font-weight:600}
.st-OFF{color:var(--muted)}
/* 拖拽上传区 */
.drop{border:2px dashed var(--border);border-radius:10px;padding:22px 14px;text-align:center;color:var(--muted);cursor:pointer;background:var(--panel2);transition:border-color .15s,background .15s,color .15s}
.drop:hover{border-color:var(--accent);color:var(--text)}
.drop.over{border-color:var(--accent);background:#0a84ff22;color:var(--text)}
.drop .big{font-size:14px;color:var(--text);margin-bottom:4px}
.drop .ico{font-size:26px;line-height:1}
.drop input[type=file]{display:none}
/* 页脚版本标识：便于确认浏览器加载的是不是最新 JS */
#verbar{margin-top:18px;padding:8px 12px;border-top:1px solid var(--border);color:var(--muted);font-size:11px;display:flex;justify-content:space-between;align-items:center}
#verbar b{color:var(--accent2);font-weight:600}
#verbar button{padding:2px 8px;font-size:11px}
/* 子页签（页面内二级切换，如 商品资料/上架管理） */
.subtabs{display:flex;gap:6px;margin-bottom:14px}
.subtab{padding:7px 16px;border:1px solid var(--border);border-radius:8px 8px 0 0;background:var(--panel);color:var(--muted);cursor:pointer;font-size:13px}
.subtab:hover{color:var(--text);border-color:var(--accent)}
.subtab.active{background:var(--panel2);color:#fff;border-color:var(--accent);border-bottom-color:var(--panel2)}
/* 模块管理：编码提示 */
.codehint{color:var(--muted);font-size:12px;margin-bottom:12px;line-height:1.5}
/* 订单骨架占位 */
.skeleton-note{padding:40px;text-align:center;color:var(--muted);background:var(--panel);border:1px dashed var(--border);border-radius:12px;line-height:1.8}

/* 表头多选筛选浮层 */
.f-sel.ms-btn{cursor:pointer;text-align:left;min-width:64px;position:relative}
.f-sel.ms-btn.on{outline:2px solid var(--accent,#2b7)}
.ms-pop{position:fixed;z-index:60;background:var(--panel,#fff);border:1px solid var(--border,#ddd);
  border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);min-width:150px;max-height:320px;overflow:auto;padding:6px}
.ms-pop.hidden{display:none}
.ms-tools{display:flex;gap:12px;padding:4px 6px 6px;border-bottom:1px solid var(--border,#eee)}
.ms-tools a{color:var(--accent,#2b7);font-size:12px;cursor:pointer;text-decoration:none}
.ms-tools a:hover{text-decoration:underline}
.ms-body{padding:4px 2px}
.ms-body label{display:block;padding:3px 6px;font-weight:400;white-space:nowrap;cursor:pointer}
.ms-body label:hover{background:var(--hover,#f3f6f9)}
.ms-empty{color:var(--muted,#999);padding:10px 6px;font-size:12px}
/* 上架管理：表头筛选下拉 */
th select.f-sel{display:block;width:100%;margin-top:5px;font-size:12px;font-weight:400;padding:3px 4px;border:1px solid var(--border);border-radius:5px;background:var(--panel2);color:var(--text)}
th select.f-sel:focus{outline:none;border-color:var(--accent)}
/* 上架管理：状态切换按键 */
td.st-col{text-align:center}
button.st-btn{cursor:pointer;border:1px solid var(--border);border-radius:6px;padding:3px 12px;font-size:12px;min-width:52px;transition:background .12s,border-color .12s}
button.st-btn.on{background:#13351c;color:#5fd07a;border-color:#2e7d4f}
button.st-btn.off{background:#3a1414;color:#ff8080;border-color:#a33}
button.st-btn:hover{filter:brightness(1.15)}
td.num{text-align:right;font-variant-numeric:tabular-nums}
