* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: Helvetica, Arial, sans-serif;
  color: #222;
  line-height: 1.5;
  background: #fafafa;
}

header {
  background: #ececec;
  border-bottom: 0.5px solid #999;
  padding: 12px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.logo {
  background: #c8dbeb;
  border: 0.5px solid #5a7c98;
  padding: 6px 18px;
  font-weight: 500;
  font-size: 14px;
  display: inline-block;
}
header nav a {
  margin-left: 16px;
  text-decoration: none;
  color: #1f1f1f;
  font-size: 14px;
}
header nav a:hover {
  text-decoration: underline;
}

/* Dark header variant for police-side pages */
header.police {
  background: #1f1f1f;
  border-bottom-color: #444;
}
header.police nav a {
  color: #e6e6e6;
}
header.police .logo {
  background: #3a4a5e;
  color: #e6e6e6;
  border-color: #a5b9d0;
}

/* ----- Main content ---------------------------------------------- */
main {
  max-width: 800px;
  margin: 32px auto;
  padding: 0 24px;
}

h1 {
  font-size: 26px;
  margin-bottom: 12px;
}
h2 {
  font-size: 20px;
  margin-top: 28px;
}

/* ----- Forms ----------------------------------------------------- */
form {
  background: #ffffff;
  border: 0.5px solid #bbb;
  border-radius: 6px;
  padding: 24px 32px;
  margin: 16px 0;
}
form label {
  display: block;
  margin-top: 14px;
  margin-bottom: 4px;
  font-size: 13px;
  color: #333;
}
form input,
form textarea,
form select {
  width: 100%;
  padding: 8px 10px;
  border: 0.8px solid #444;
  border-radius: 3px;
  font-size: 14px;
  font-family: inherit;
}
form textarea {
  min-height: 60px;
}
form button {
  margin-top: 20px;
  padding: 10px 24px;
  background: #3a3a3a;
  color: #ffffff;
  border: none;
  border-radius: 3px;
  font-size: 14px;
  cursor: pointer;
}
form button:hover {
  background: #1a1a1a;
}
form button.danger {
  background: #a32d2d;
}
form button.danger:hover {
  background: #7a1f1f;
}

/* ----- Messages -------------------------------------------------- */
.error {
  color: #a32d2d;
  font-size: 13px;
}
.success {
  color: #0f6e56;
  font-size: 13px;
}

/* ----- Cards ----------------------------------------------------- */
.card {
  background: #ffffff;
  border: 0.5px solid #bbb;
  border-radius: 6px;
  padding: 16px 20px;
  margin: 12px 0;
}

/* ----- Tables ---------------------------------------------------- */
/* border-collapse: collapse merges the per-cell borders into a single
   shared border. 
   https://developer.mozilla.org/en-US/docs/Web/CSS/border-collapse */
table {
  width: 100%;
  border-collapse: collapse;
  margin: 16px 0;
}
th,
td {
  border-bottom: 0.5px solid #ddd;
  padding: 8px 10px;
  text-align: left;
  font-size: 13px;
}
th {
  background: #ececec;
  font-weight: 500;
}

/* "Pill" shape: a very large border-radius (>= half the element
   height) rounds the ends into semicircles.
   https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius */
.badge {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 99px;
  font-size: 11px;
  font-weight: 500;
}
.badge.pending {
  background: #d3d1c7;
  color: #2c2c2a;
}
.badge.investigating {
  background: #fac775;
  color: #412402;
}
.badge.recovered {
  background: #9fe1cb;
  color: #04342c;
}
.badge.closed {
  background: #d3d1c7;
  color: #2c2c2a;
}

/* ----- Footer ---------------------------------------------------- */
footer {
  background: #1f1f1f;
  color: #cccccc;
  padding: 18px 24px;
  margin-top: 60px;
  font-size: 12px;
  text-align: center;
}
