:root{
  --brand:#1a4f8b; --brand-dark:#123d6d; --brand-light:#eaf1f9;
  --sidebar-w:220px;
}
body{ background:#f4f6f9; font-size:14px; }
.bg-brand{ background:var(--brand)!important; }
.navbar.fixed-top{ height:52px; z-index:1040; }
.logo-badge{
  display:inline-flex; align-items:center; justify-content:center;
  width:28px;height:28px;border-radius:6px;background:#fff;color:var(--brand);
  font-weight:700;font-size:14px;
}
.sidebar{
  position:fixed; top:52px; left:0; bottom:0; width:var(--sidebar-w);
  background:#fff; border-right:1px solid #e3e8ef; overflow-y:auto; z-index:1030;
}
.sidebar .nav-link{
  color:#3c4a5a; padding:.5rem .9rem; border-radius:6px; margin:1px .4rem; font-size:13.5px;
}
.sidebar .nav-link:hover{ background:var(--brand-light); color:var(--brand); }
.sidebar .nav-link.active{ background:var(--brand); color:#fff; }
.sidebar .nav-link i{ font-style:normal; display:inline-block; width:16px; text-align:center; margin-right:6px; opacity:.85; }
.nav-section{
  padding:.7rem 1rem .25rem; font-size:11px; color:#9aa5b4; letter-spacing:1px; font-weight:600;
}
.main-content{ margin-left:var(--sidebar-w); padding-top:52px; }
@media (max-width:991.98px){
  .main-content{ margin-left:0; }
  .sidebar{ width:250px; top:0; }
}
.card{ border:1px solid #e3e8ef; box-shadow:0 1px 2px rgba(16,24,40,.04); }
.card-header{ background:#fff; font-weight:600; }
.table{ font-size:13px; }
.table th{ white-space:nowrap; color:#5b6b7f; font-weight:600; }
.stat-card{ border-left:4px solid var(--brand); }
.stat-card .value{ font-size:22px; font-weight:700; color:var(--brand-dark); }
.stat-card .label{ font-size:12px; color:#7b8794; }
.badge-status{ font-weight:500; }
.s-status-在库{ background:#e8f5e9; color:#2e7d32; }
.s-status-在用{ background:#e3f2fd; color:#1565c0; }
.s-status-维修中{ background:#fff8e1; color:#ef6c00; }
.s-status-已报废{ background:#eceff1; color:#546e7a; }
.s-status-丢失{ background:#fdecea; color:#c62828; }
.result-match{ color:#2e7d32; }
.result-profit{ color:#c62828; font-weight:600; }
.result-loss{ color:#ef6c00; font-weight:600; }
.result-mismatch,.result-abnormal{ color:#7b1fa2; font-weight:600; }
.doc-draft{ background:#eceff1;color:#546e7a; }
.doc-pending{ background:#fff8e1;color:#ef6c00; }
.doc-approved{ background:#e3f2fd;color:#1565c0; }
.doc-rejected{ background:#fdecea;color:#c62828; }
.doc-done{ background:#e8f5e9;color:#2e7d32; }
.doc-cancelled{ background:#f3e5f5;color:#6a1b9a; }

/* 二维码标签打印 */
.label-sheet{ display:flex; flex-wrap:wrap; gap:8px; }
.label-item{
  width:210px; border:1px dashed #bbb; border-radius:6px; padding:8px;
  text-align:center; background:#fff; page-break-inside:avoid;
}
.label-item img{ width:110px; height:110px; }
.label-item .code{ font-size:13px; font-weight:700; letter-spacing:.5px; }
.label-item .nm{ font-size:11px; color:#555; height:28px; overflow:hidden; }
@media print{
  .no-print{ display:none!important; }
  .main-content{ margin:0; padding:0; }
  .sidebar,.navbar{ display:none!important; }
  .label-item{ border-color:#999; }
}

/* 扫码页 */
.scan-wrap{ max-width:560px; margin:0 auto; }
#qr-reader{ width:100%; }
.scan-card{ position:sticky; top:60px; }
.item-row td{ vertical-align:middle; }
.footer-note{ color:#98a2b3; font-size:12px; }
