:root {
  --vj-red: #D71920;
  --vj-red-dark: #B5121B;
  --vj-gold: #FFCC00;
  --vj-gold-hover: #E6B800;
  --vj-bg: #F4F5F7;
  --vj-card: #FFFFFF;
  --vj-text: #202B3C;
  --vj-muted: #667085;
  --vj-border: #D9DEE5;
  --vj-success: #12805C;
  --vj-warn: #C05600;
  --vj-shadow: 0 4px 16px rgba(32, 43, 60, 0.08);
  --vj-radius: 12px;
}
html, body {
  font-family: Inter, system-ui, "Segoe UI", sans-serif;
  background: linear-gradient(180deg, #fdecee 0%, var(--vj-bg) 180px);
  color: var(--vj-text);
  min-height: 100vh;
}
.check-nav {
  background: var(--vj-red);
  border-bottom: 3px solid var(--vj-gold);
}
.check-logo {
  width: 38px; height: 38px; border-radius: 10px;
  background: linear-gradient(145deg, #fff, var(--vj-gold));
  display: grid; place-items: center;
  font-weight: 800; color: var(--vj-red);
}
.check-card {
  background: var(--vj-card);
  border: 1px solid var(--vj-border);
  border-radius: var(--vj-radius);
  box-shadow: var(--vj-shadow);
}
.form-label {
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--vj-muted);
  font-weight: 650;
}
.form-control {
  background: #fff;
  border: 1px solid var(--vj-border);
  color: var(--vj-text);
  border-radius: 8px;
}
.form-control:focus {
  border-color: var(--vj-red);
  box-shadow: 0 0 0 .2rem rgba(215, 25, 32, .18);
}
.btn-warning {
  background: var(--vj-gold);
  border-color: var(--vj-gold);
  color: #202B3C;
  font-weight: 700;
}
.btn-warning:hover { background: var(--vj-gold-hover); border-color: var(--vj-gold-hover); color: #202B3C; }
.note, .text-secondary { color: var(--vj-muted) !important; }
.warn, .text-danger { color: var(--vj-red); }
.ok { color: var(--vj-success); }
.text-warning { color: var(--vj-warn) !important; }
.hidden { display: none !important; }
.table { font-size: .86rem; }
.table thead th {
  background: var(--vj-red-dark);
  color: #fff;
  font-size: .72rem;
  text-transform: uppercase;
}
.ibe-notes {
  background: #F8F9FB;
  border: 1px solid var(--vj-border);
  border-radius: 8px;
  padding: 12px 14px;
  white-space: pre-wrap;
  word-break: break-word;
  font-size: .82rem;
  line-height: 1.5;
  font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
  color: var(--vj-text);
}
.web-pnr-table th {
  width: 160px;
  color: var(--vj-muted);
  font-weight: 600;
  font-size: .75rem;
  text-transform: uppercase;
  background: #F8F9FB !important;
}
.audit-table { font-size: .78rem; }
.audit-table td { vertical-align: top; word-break: break-word; }
.busy-overlay {
  position: fixed; inset: 0; z-index: 1080;
  background: rgba(32, 43, 60, 0.28);
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(3px);
}
.busy-box {
  background: #fff; border-radius: 14px; padding: 1.5rem 1.8rem;
  min-width: 240px; text-align: center;
  box-shadow: 0 16px 48px rgba(32, 43, 60, 0.18);
}
.busy-box .spinner-border { color: var(--vj-red); width: 2.4rem; height: 2.4rem; margin-bottom: .8rem; }
#toast {
  position: fixed; right: 16px; bottom: 16px;
  background: #202B3C; color: #fff;
  padding: 10px 14px; border-radius: 10px;
  display: none; z-index: 1090; min-width: 220px;
}
.scan-spin { display: inline-flex; align-items: center; gap: .4rem; }
#workerBadge { font-weight: 600; }
