csaf-crud 0.3.4

CSAF 2.0 / 2.1 advisory CRUD server with HATEOAS JSON API and HTML UI (TLS 1.3, HTTP/1.1 + HTTP/2 + HTTP/3)
/* CSAF CRUD Application Custom Styles */
:root {
  --csaf-primary: #0d6efd;
  --csaf-severity-critical: #dc3545;
  --csaf-severity-high: #fd7e14;
  --csaf-severity-medium: #ffc107;
  --csaf-severity-low: #198754;
  --csaf-severity-none: #6c757d;
}

body {
  font-family: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;
}

.navbar-brand {
  font-weight: 700;
}

.severity-badge {
  font-size: 0.75rem;
  padding: 0.25em 0.5em;
}

.severity-critical { background-color: var(--csaf-severity-critical) !important; }
.severity-high { background-color: var(--csaf-severity-high) !important; }
.severity-medium { background-color: var(--csaf-severity-medium) !important; }
.severity-low { background-color: var(--csaf-severity-low) !important; }
.severity-none { background-color: var(--csaf-severity-none) !important; }

.csaf-json-view {
  background-color: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 0.375rem;
  padding: 1rem;
  overflow-x: auto;
  font-family: "Roboto Mono", "SF Mono", Menlo, monospace;
  font-size: 0.875rem;
}

.flash-message {
  animation: fadeIn 0.3s ease-in;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}

footer {
  border-top: 1px solid var(--bs-border-color);
}