:root {
  --aecom-blue: #003087;
  --aecom-light-blue: #0066cc;
  --aecom-gray: #58595b;
}

/* Login */
.login-body {
  background: linear-gradient(135deg, var(--aecom-blue) 0%, var(--aecom-light-blue) 100%);
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.login-container { width: 100%; max-width: 420px; padding: 1rem; }
.login-card { border: none; border-radius: 12px; }
.logo-aecom {
  font-size: 2.5rem;
  font-weight: 900;
  color: var(--aecom-blue);
  letter-spacing: 2px;
}

/* Nav */
.navbar-brand .logo-aecom { font-size: 1.4rem; color: white; }
.navbar { background-color: var(--aecom-blue) !important; }

/* Page layout */
body.app-body { background: #f4f6f9; }
.section-card {
  border-left: 4px solid var(--aecom-blue);
  border-radius: 8px;
  margin-bottom: 1.5rem;
}
.section-title {
  background: var(--aecom-blue);
  color: white;
  padding: 0.6rem 1rem;
  font-weight: 600;
  font-size: 1rem;
  border-radius: 4px 4px 0 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.subsection-title {
  background: #e8edf5;
  color: var(--aecom-blue);
  padding: 0.4rem 0.75rem;
  font-weight: 600;
  font-size: 0.875rem;
  border-radius: 4px;
  margin-bottom: 0.75rem;
  border-left: 3px solid var(--aecom-light-blue);
}
.section-body { padding: 1rem; }

/* GPS button */
.btn-gps {
  background: #28a745;
  color: white;
  font-size: 0.8rem;
  padding: 0.3rem 0.75rem;
  white-space: nowrap;
}
.gps-display {
  font-size: 0.8rem;
  color: #666;
  font-family: monospace;
}
.gps-acquiring { color: #ffc107; }
.gps-success { color: #28a745; }
.gps-error { color: #dc3545; }

/* Equipment page */
.equip-tab-btn.active { background-color: var(--aecom-blue); color: white; }
.equip-table th { background: var(--aecom-blue); color: white; }

/* Report */
.report-header {
  background: var(--aecom-blue);
  color: white;
  padding: 1.5rem;
  border-radius: 8px;
  margin-bottom: 1.5rem;
}
.report-section { border: 1px solid #dee2e6; border-radius: 8px; margin-bottom: 1.2rem; }
.report-section-header {
  background: #e8edf5;
  padding: 0.6rem 1rem;
  font-weight: 600;
  color: var(--aecom-blue);
  border-radius: 7px 7px 0 0;
}
.report-label { font-weight: 600; color: #555; font-size: 0.85rem; }
.report-value { font-size: 0.95rem; }

/* Map */
#monitoring-map { height: 400px; border-radius: 8px; }
#report-map { height: 350px; border-radius: 8px; border: 1px solid #dee2e6; }
.leaflet-compass-rose { background: none !important; border: none !important; box-shadow: none !important; padding: 0 !important; }
.map-legend {
  background: white;
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  font-size: 0.8rem;
  border: 1px solid #ddd;
}
.legend-dot {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  margin-right: 4px;
}

/* Compass rose */
#compass-container { background: white; border-radius: 8px; padding: 1rem; border: 1px solid #dee2e6; }
.wind-disclaimer {
  font-size: 0.75rem;
  color: #dc3545;
  font-style: italic;
  text-align: center;
  margin-top: 0.5rem;
}

/* Print */
@media print {
  .no-print { display: none !important; }
  .navbar { display: none !important; }
  body { background: white !important; }
  .report-header { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .report-section-header { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  #report-map { height: 300px !important; }
  #compass-container { break-inside: avoid; }
}

/* Mobile tweaks */
@media (max-width: 576px) {
  .section-title { font-size: 0.9rem; }
  .section-body { padding: 0.75rem; }
  label { font-size: 0.85rem; }
}

/* Records list */
.record-card { cursor: pointer; transition: box-shadow 0.15s; }
.record-card:hover { box-shadow: 0 2px 8px rgba(0,48,135,0.15); }

/* Generate report button */
.btn-generate {
  background: var(--aecom-blue);
  color: white;
  font-size: 1.1rem;
  padding: 0.75rem 2rem;
  border-radius: 8px;
  width: 100%;
}
.btn-generate:hover { background: var(--aecom-light-blue); color: white; }
