:root{
  --graphite:#1c2126; --steel:#3a444e; --paper:#f4f6f7; --card:#fff;
  --rule:#d9dee2; --ink:#151a1f; --muted:#6b7680;
  --primary:#0f6b7a; --primary-d:#0b515c;
  --ok:#146c43; --warn:#9a5b00; --bad:#a52834;
}
*{box-sizing:border-box}
body{background:var(--paper);color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",
    "Helvetica Neue",Arial,sans-serif;font-size:14px;margin:0}
.mono,code,.asset,.pn{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,
  "Courier New",monospace;font-variant-ligatures:none}
.asset{font-weight:600;letter-spacing:.02em}
.pn{color:var(--steel)}

/* 顶栏 */
.topbar{display:flex;align-items:center;gap:2px;background:var(--graphite);
  padding:0 16px;flex-wrap:wrap}
.topbar a{color:#c3ccd4;text-decoration:none;padding:13px 13px;font-size:13.5px}
.topbar a:hover{color:#fff;background:#262d34}
.topbar a.on{color:#fff;box-shadow:inset 0 -2px 0 var(--primary)}
.topbar .brand{font-weight:700;color:#fff;padding-right:20px;font-size:15px}
.topbar .brand span{display:block;font-size:9px;letter-spacing:.22em;
  color:#7d8891;font-family:ui-monospace,monospace;margin-top:-3px}
.topbar .spacer{flex:1}
.topbar .who{color:#9aa5ae;font-size:12.5px;padding:0 10px}
.topbar .who em{font-style:normal;margin-left:6px;font-size:11px;background:#333c44;
  color:#c3ccd4;padding:2px 6px;border-radius:3px}

.wrap{max-width:1500px;margin:0 auto;padding:20px 16px 60px}
/* 详情页的字段网格 */
.dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:0 22px}
.dl .it{padding:9px 0;border-bottom:1px solid #eef1f3;min-width:0}
.dl .k{font-size:11.5px;color:var(--muted);margin-bottom:3px}
.dl .v{font-size:13.5px;word-break:break-word}
.dl .v.mono{font-size:13px}
.dl .v.empty-v{color:#b6bec5}
.titlebar{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:3px}
.titlebar h1{margin:0}
.titlebar .en{color:var(--muted);font-size:14px}
h1{font-size:19px;font-weight:650;margin:0 0 4px}
.sub{color:var(--muted);font-size:13px;margin-bottom:16px}
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;
  gap:12px;flex-wrap:wrap;margin-bottom:14px}

/* 卡片与表格 */
.panel{background:var(--card);border:1px solid var(--rule);border-radius:6px;
  margin-bottom:18px;overflow:hidden}
.panel > h2{font-size:13px;font-weight:650;margin:0;padding:11px 14px;
  border-bottom:1px solid var(--rule);background:#fafbfc;
  letter-spacing:.03em;color:var(--steel)}
.panel .pad{padding:14px}
table.grid{width:100%;border-collapse:collapse;font-size:13px}
table.grid th{background:#fafbfc;text-align:left;padding:10px 13px;font-weight:600;
  color:var(--steel);border-bottom:1px solid var(--rule);white-space:nowrap;font-size:12px}
table.grid td{padding:10px 13px;border-bottom:1px solid #eef1f3;vertical-align:middle;line-height:1.45}
table.grid tr:hover td{background:#f7fafb}
.scroll{overflow-x:auto}

/* 统计块 */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.tile{background:var(--card);border:1px solid var(--rule);border-radius:6px;padding:14px 16px}
.tile b{display:block;font-size:26px;font-weight:650;font-family:ui-monospace,monospace;line-height:1.2}
.tile span{color:var(--muted);font-size:12px}
.tile.alert b{color:var(--bad)}

/* 标签 */
.tag{display:inline-block;padding:2px 7px;border-radius:3px;font-size:11.5px;
  border:1px solid var(--rule);background:#f4f6f7;color:var(--steel);white-space:nowrap}
.tag.ok{background:#e7f4ec;border-color:#b9dcc7;color:var(--ok)}
.tag.warn{background:#fdf3e3;border-color:#f0d9ac;color:var(--warn)}
.tag.bad{background:#fbeaec;border-color:#f0c2c8;color:var(--bad)}
.tag.mute{background:#f0f2f4;color:var(--muted)}

/* 表单与按钮 */
label.f{display:block;font-size:12px;color:var(--steel);margin-bottom:4px;font-weight:600}
input.i,select.i,textarea.i{width:100%;padding:7px 9px;border:1px solid #c8cfd5;
  border-radius:4px;font-size:13.5px;background:#fff;font-family:inherit}
input.i:focus,select.i:focus,textarea.i:focus{outline:2px solid #9fd0d9;
  outline-offset:-1px;border-color:var(--primary)}
.field{margin-bottom:12px}
.row2{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0 14px}
.btn{display:inline-block;padding:7px 14px;border-radius:4px;border:1px solid transparent;
  font-size:13.5px;cursor:pointer;text-decoration:none;background:#fff;
  border-color:#c8cfd5;color:var(--ink)}
.btn:hover{background:#f0f3f5}
.btn.pri{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn.pri:hover{background:var(--primary-d)}
.btn.sm{padding:4px 9px;font-size:12.5px}
.btn.danger{color:var(--bad);border-color:#e6b5bc}
.bar{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.bar .field{margin-bottom:0}

.note{padding:10px 14px;border-radius:5px;margin-bottom:14px;font-size:13.5px;border:1px solid}
.note-success{background:#e7f4ec;border-color:#b9dcc7;color:#0f5132}
.note-danger{background:#fbeaec;border-color:#f0c2c8;color:#842029}
.note-warning{background:#fdf3e3;border-color:#f0d9ac;color:#664d03}
.empty{padding:34px 14px;text-align:center;color:var(--muted);font-size:13.5px}

/* 登录 */
.login{max-width:340px;margin:9vh auto;background:#fff;border:1px solid var(--rule);
  border-radius:8px;padding:28px}
.login h1{margin-bottom:2px}
.login .kicker{font-family:ui-monospace,monospace;font-size:10px;letter-spacing:.24em;
  color:var(--muted);margin-bottom:18px}

/* 盘点作业行 */
tr.done td{background:#fcfdfd}
tr.diff td{background:#fffaf1}
.inline{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.inline select,.inline input{padding:4px 6px;font-size:12.5px;border:1px solid #c8cfd5;border-radius:3px}
.inline input{width:110px}

/* 宽表格：横向滚动时锁住第一列，物料编码始终可见 */
table.grid.sticky1 th:first-child,
table.grid.sticky1 td:first-child{position:sticky;left:0;z-index:1;background:#fff;
  box-shadow:1px 0 0 var(--rule)}
table.grid.sticky1 th:first-child{background:#fafbfc;z-index:2}
table.grid.sticky1 tr:hover td:first-child{background:#f7fafb}
/* 合并列里的次要值 */
/* 合并列的次要值：字体跟随所在单元格，只是更小更淡 */
.sub2{font-size:11.5px;color:var(--muted);font-family:inherit;margin-top:2px}
/* 短列不折行 */
table.grid th.nw,table.grid td.nw{white-space:nowrap}
/* 系统附加列与原表字段的分隔 */
table.grid th.sysdiv,table.grid td.sysdiv{border-left:2px solid var(--rule)}
