body {
  background: linear-gradient(180deg, #f5f7fb 0%, #eef2f7 100%);
  color: #16324f;
}

.navbar-brand { letter-spacing: 0.04em; }
.page-header { border-bottom: 1px solid #dfe7f1; padding-bottom: 0.75rem; }
.page-title { font-size: 1.7rem; font-weight: 600; }
.card { border: 0; border-radius: 1rem; }
.card-title { font-size: 1.05rem; font-weight: 600; }
.list-group-item { border-left: 0; border-right: 0; }

/* Safety: if any legacy Bootstrap btn-group remains, keep buttons visually separate */
.btn-group {
  gap: 0.5rem;
}

.btn-group > .btn,
.btn-group > form > .btn {
  margin-left: 0;
  border-radius: 0.55rem;
}

.action-buttons {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.action-buttons form {
  margin: 0;
}

.action-buttons .btn {
  white-space: nowrap;
}

.action-buttons-sm {
  gap: 0.4rem;
}

/* Professional button system */
.btn {
  border-radius: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  transition: transform 0.14s ease, box-shadow 0.18s ease, background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.btn:hover {
  transform: translateY(-1px);
}

.btn:active {
  transform: translateY(0);
}

.btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.25);
}

.btn-primary {
  background: linear-gradient(180deg, #2f67d8 0%, #1f56c5 100%);
  border-color: #1f56c5;
  box-shadow: 0 6px 14px rgba(31, 86, 197, 0.18);
}

.btn-primary:hover,
.btn-primary:focus {
  background: linear-gradient(180deg, #356fdf 0%, #245dcc 100%);
  border-color: #1c50ba;
  box-shadow: 0 10px 20px rgba(31, 86, 197, 0.24);
}

.btn-primary:active {
  background: #1f56c5;
  border-color: #1a49a9;
  box-shadow: 0 4px 10px rgba(31, 86, 197, 0.2);
}

.btn-outline-secondary,
.btn-outline-primary,
.btn-outline-danger,
.btn-outline-success {
  border-width: 1px;
  color: #ffffff;
}

.btn-outline-secondary {
  background: #5d6f89;
  border-color: #55657e;
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
  color: #ffffff;
  background: #4f6078;
  border-color: #46566c;
}

.btn-outline-primary {
  background: #2f67d8;
  border-color: #285bc2;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
  color: #ffffff;
  background: #2558be;
  border-color: #204ca5;
}

.btn-outline-danger {
  background: #d24d5f;
  border-color: #be4253;
}

.btn-outline-danger:hover,
.btn-outline-danger:focus {
  color: #ffffff;
  background: #bd3f50;
  border-color: #a73746;
}

.btn-outline-success {
  background: #2f9e5b;
  border-color: #298b50;
}

.btn-outline-success:hover,
.btn-outline-success:focus {
  color: #ffffff;
  background: #28864d;
  border-color: #237544;
}

.btn-sm {
  border-radius: 0.55rem;
  font-weight: 600;
}

.dashboard-tile {
  background: #e9ecef;
  border: 1px solid #d0d7de;
}

.dashboard-tile.severity-green {
  background: #e8f5e9;
  border-color: #8bc34a;
}

.dashboard-tile.severity-amber {
  background: #fff8e1;
  border-color: #ffb300;
}

.dashboard-tile.severity-orange {
  background: #ffe0b2;
  border-color: #ff9800;
}

.dashboard-tile.severity-red {
  background: #ffebee;
  border-color: #e53935;
}

.badge-severity {
  color: #fff;
  font-weight: 600;
  background: #6c757d;
}

.badge-severity.severity-green {
  background: #43a047;
}

.badge-severity.severity-amber {
  background: #ffb300;
}

.badge-severity.severity-orange {
  background: #ff9800;
}

.badge-severity.severity-red {
  background: #e53935;
}

.alert-level-extreme { background: #f8d7da; color: #842029; }
.alert-level-high { background: #fff3cd; color: #664d03; }
.alert-level-medium { background: #cff4fc; color: #055160; }
.alert-level-low { background: #d1e7dd; color: #0f5132; }

.table tr.alert-level-extreme td { background:#f8d7da; color:#842029; }
.table tr.alert-level-high td { background:#fff3cd; color:#664d03; }
.table tr.alert-level-medium td { background:#cff4fc; color:#055160; }
.table tr.alert-level-low td { background:#d1e7dd; color:#0f5132; }

@media (max-width: 576px) {
  .table { font-size: 0.9rem; }
}

/* Contact page styling */
.contact-info a {
  word-break: break-word;
  overflow-wrap: break-word;
  display: inline-block;
}
