:root {
  --brand: #0d6efd;
  --brand-dark: #0a58ca;
  --surface: #f6f8fb;
}

body { background: var(--surface); }

.navbar-brand { font-weight: 600; letter-spacing: .2px; }

.card { border: 1px solid #e3e6ec; border-radius: 10px; box-shadow: 0 1px 2px rgba(16,24,40,.04); }
.card-header { background: #fff; border-bottom: 1px solid #eef0f4; font-weight: 600; }

.stat-card { border-left: 4px solid var(--brand); }
.stat-card.warning  { border-left-color: #f0ad4e; }
.stat-card.success  { border-left-color: #198754; }
.stat-card.danger   { border-left-color: #dc3545; }
.stat-card h2 { font-size: 2rem; font-weight: 700; margin: .2rem 0 0; }
.stat-card .label { color: #6b7280; font-size: .875rem; text-transform: uppercase; letter-spacing: .5px; }

.table thead th { background: #f2f4f8; font-size: .825rem; text-transform: uppercase; letter-spacing: .4px; color: #475569; }
.table td, .table th { vertical-align: middle; }

.status-pill { font-size: .78rem; padding: .25rem .55rem; border-radius: 999px; font-weight: 600; }

.order-row.overdue td { background: #fff5f5 !important; }

.form-label { font-weight: 500; color: #334155; }
.required::after { content: ' *'; color: #dc3545; }

.doc-paper {
  background: #fff;
  padding: 24mm 20mm;
  max-width: 210mm;
  min-height: 297mm;
  margin: 24px auto;
  box-shadow: 0 4px 24px rgba(16,24,40,.08);
  color: #111;
  font-family: "Times New Roman", Times, serif;
  font-size: 12pt;
  line-height: 1.4;
}
.doc-paper h1, .doc-paper h2, .doc-paper h3 { font-family: inherit; }
.doc-paper h1 { font-size: 16pt; text-align: center; text-transform: uppercase; margin-bottom: 1rem; }
.doc-paper table { width: 100%; border-collapse: collapse; }
.doc-paper table.bordered th, .doc-paper table.bordered td { border: 1px solid #222; padding: 6px 8px; }
.doc-paper .sig-row { display: flex; justify-content: space-between; margin-top: 48px; gap: 32px; }
.doc-paper .sig-box { flex: 1; border-top: 1px solid #111; padding-top: 4px; font-size: 10pt; }
.doc-paper .muted { color: #555; font-size: 10pt; }

.print-toolbar {
  position: sticky; top: 0; z-index: 50;
  background: #1f2937; color: #fff; padding: 10px 16px;
  display: flex; justify-content: space-between; align-items: center;
}

.timeline { list-style: none; padding-left: 1.5rem; border-left: 2px solid #e2e8f0; }
.timeline li { position: relative; padding: 0 0 .75rem 1rem; }
.timeline li::before {
  content: ''; position: absolute; left: -1.55rem; top: .35rem;
  width: .75rem; height: .75rem; border-radius: 50%; background: var(--brand);
}
