body { font-family: Arial, Helvetica, sans-serif; background:#f4f6f8; margin:0; padding:0; padding-bottom:56px; color:#1f2937; }
.container { max-width: 900px; margin: 30px auto; background:#fff; padding:30px 40px; border-radius:8px; box-shadow:0 1px 4px rgba(0,0,0,0.1); }
.site-footer {
  position:fixed; bottom:0; left:0;
  width:100%; box-sizing:border-box;
  z-index:100;
  background:#fff; border-top:3px solid #2563eb;
  box-shadow:0 -2px 10px rgba(0,0,0,0.08);
  padding:14px 20px;
  text-align:center;
}
.site-footer-text {
  color:#2563eb; font-size:13px; font-weight:700; letter-spacing:.3px;
}
.container.wide { max-width: 1300px; overflow-x:auto; }
h1 { font-size:22px; margin-bottom:4px; color:#0f172a; }
.subtitle { color:#6b7280; margin-bottom:24px; font-size:14px; }
.nav-links { margin-bottom:20px; font-size:14px; }
.nav-links a, a.back { color:#2563eb; text-decoration:none; margin-right:16px; }
.nav-links a:hover, a.back:hover { text-decoration:underline; }

.brand-header { text-align:center; margin-bottom:18px; }
.brand-header img.brand-logo { max-height:90px; width:auto; }

.nav-tabs { display:flex; gap:4px; border-bottom:2px solid #e5e7eb; margin-bottom:24px; }
.nav-tab {
  color:#4b5563; text-decoration:none; font-size:14px; font-weight:600;
  padding:10px 18px; border-radius:8px 8px 0 0; border:2px solid transparent;
  border-bottom:none; margin-bottom:-2px; transition:background .15s, color .15s;
}
.nav-tab:hover { background:#f1f5f9; color:#1f2937; }
.nav-tab.active {
  color:#2563eb; background:#eff6ff; border-color:#e5e7eb;
  border-bottom:2px solid #eff6ff;
}
.flash { padding:10px 14px; border-radius:6px; margin-bottom:20px; font-size:14px; }
.flash-success { background:#dcfce7; color:#166534; border:1px solid #86efac; }
.flash-error { background:#fee2e2; color:#991b1b; border:1px solid #fca5a5; }
form label { display:block; font-size:13px; font-weight:bold; margin-top:14px; margin-bottom:4px; color:#374151; }
input[type=text], input[type=date], input[type=number], select, textarea {
  width:100%; padding:8px 10px; border:1px solid #d1d5db; border-radius:5px; font-size:14px; box-sizing:border-box; font-family: Arial, sans-serif;
}
input.locked-field {
  background:#f1f5f9; color:#6b7280; cursor:not-allowed;
}
textarea { resize: vertical; min-height:60px; }
.row2 { display:flex; gap:16px; }
.row2 > div { flex:1; }
fieldset { margin-top:20px; border:1px solid #e5e7eb; border-radius:6px; padding:14px 16px; }
legend { font-weight:bold; font-size:14px; padding:0 6px; color:#374151; }
.param-row { display:flex; gap:10px; align-items:center; margin-bottom:8px; }
.param-row input { flex:1; }
.param-row button { background:#fee2e2; color:#b91c1c; border:none; border-radius:5px; padding:8px 10px; cursor:pointer; font-size:13px; white-space:nowrap; }
#addParamBtn, .add-param-btn { margin-top:6px; background:#e0e7ff; color:#3730a3; border:none; border-radius:5px; padding:8px 14px; cursor:pointer; font-size:13px; }
.submit-btn { margin-top:26px; background:#2563eb; color:#fff; border:none; border-radius:6px; padding:12px 20px; font-size:15px; font-weight:bold; cursor:pointer; width:100%; }
.submit-btn:hover { background:#1d4ed8; }
table { border-collapse: collapse; width:100%; font-size:13px; }
th, td { border:1px solid #e5e7eb; padding:6px 10px; text-align:left; white-space:nowrap; }
th { background:#f1f5f9; }
tr:nth-child(even) { background:#fafafa; }
.empty { color:#6b7280; font-size:14px; padding:20px 0; }
.report-not-ready { color:#9ca3af; font-style:italic; white-space:nowrap; }

/* --- Form step wizard (Sample Collection / Testing Parameters / Customer Details / Report Generation) --- */
.stepper { display:flex; gap:8px; margin-bottom:26px; border-bottom:1px solid #e5e7eb; }
.step-tab {
  flex:1; text-align:center; cursor:pointer; padding:12px 10px 14px;
  font-size:14px; font-weight:600; color:#9ca3af; border-bottom:3px solid transparent;
  transition:color .15s, border-color .15s;
}
.step-tab:hover { color:#4b5563; }
.step-tab .step-num {
  display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; border-radius:50%; background:#e5e7eb; color:#4b5563;
  font-size:12px; margin-right:6px;
}
.step-tab.active { color:#2563eb; border-bottom-color:#2563eb; }
.step-tab.active .step-num { background:#2563eb; color:#fff; }
.form-step { animation:lab-step-fade-in .15s ease-in; }
@keyframes lab-step-fade-in { from { opacity:0; } to { opacity:1; } }
.step-nav { display:flex; justify-content:space-between; align-items:center; margin-top:22px; }
.step-nav-btn {
  background:#e0e7ff; color:#3730a3; border:none; border-radius:6px;
  padding:10px 18px; font-size:14px; font-weight:600; cursor:pointer;
}
.step-nav-btn:hover { background:#c7d2fe; }
.step-prev-btn { background:#f1f5f9; color:#374151; }
.step-prev-btn:hover { background:#e5e7eb; }

/* --- Report Generation page's "look up by Job ID" form --- */
.lookup-form { max-width:420px; margin-top:10px; }
.lookup-form .submit-btn { margin-top:16px; }

/* --- Report Generation page's ready-to-download box --- */
.report-download-box {
  background:#f0fdf4; border:1px solid #86efac; border-radius:8px;
  padding:16px 18px; margin-bottom:20px;
}
.report-download-title { color:#166534; font-weight:700; font-size:15px; margin-bottom:12px; }
.report-download-buttons { display:flex; gap:12px; flex-wrap:wrap; }
.report-download-btn {
  display:inline-block; background:#16a34a; color:#fff; text-decoration:none;
  font-weight:600; font-size:14px; padding:10px 20px; border-radius:6px;
  transition:background .15s;
}
.report-download-btn:hover { background:#15803d; }

/* --- Home page: multiple product cards (one Job ID, several products) --- */
#addProductBtn {
  margin-top:16px; width:100%; background:#eff6ff; color:#1d4ed8;
  border:2px dashed #93c5fd; border-radius:8px; padding:12px 14px;
  font-size:14px; font-weight:700; cursor:pointer;
}
#addProductBtn:hover { background:#dbeafe; }
.product-card {
  border:1px solid #e5e7eb; border-radius:8px; padding:18px 20px;
  margin-bottom:16px; background:#fafbfc;
}
.product-card-header {
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:6px;
}
.product-card-title { font-weight:700; font-size:15px; color:#0f172a; }
.remove-product-btn {
  background:#fee2e2; color:#b91c1c; border:none; border-radius:5px;
  padding:6px 12px; cursor:pointer; font-size:12.5px; white-space:nowrap;
}
.remove-product-btn:hover { background:#fecaca; }

/* --- Home page: New/Existing Customer toggle --- */
.customer-mode-toggle { display:flex; gap:22px; margin-bottom:16px; }
.radio-inline { display:flex !important; align-items:center; gap:6px; font-weight:normal !important; font-size:14px; color:#374151; margin-top:0 !important; }
.radio-inline input[type=radio] { width:auto; }
#existingCustomerPicker { margin-bottom:18px; padding:14px 16px; background:#f8fafc; border:1px solid #e5e7eb; border-radius:8px; }
