:root {
  --rh-ink: #16202e;
  --rh-muted: #5f6b7d;
  --rh-line: #e3e8ef;
  --rh-accent: #1f6feb;
  --rh-danger: #c0392b;
  --rh-warn: #b7791f;
  --rh-ok: #1e7f4f;
}

body {
  font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  color: var(--rh-ink);
  background: #f7f9fc;
}

.rh-navbar {
  background: #fff;
  border-bottom: 1px solid var(--rh-line);
}

.rh-navbar .navbar-brand {
  font-weight: 650;
  letter-spacing: -0.01em;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.rh-brand-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--rh-accent);
  display: inline-block;
}

.rh-nav-link {
  color: var(--rh-muted);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
  padding: 0.25rem 0.5rem;
}

.rh-nav-link:hover { color: var(--rh-ink); }

.rh-user-tag {
  font-size: 0.8rem;
  color: var(--rh-muted);
  background: #f1f4f9;
  border-radius: 999px;
  padding: 0.2rem 0.65rem;
}

.card {
  border: 1px solid var(--rh-line);
  border-radius: 10px;
  box-shadow: none;
}

.card-header {
  background: #fff;
  border-bottom: 1px solid var(--rh-line);
  font-weight: 600;
}

/* Deadline urgency. Colour is paired with text everywhere it appears, so this
   still reads correctly without colour vision. */
.rh-due-critical { color: var(--rh-danger); font-weight: 650; }
.rh-due-soon { color: var(--rh-warn); font-weight: 600; }
.rh-due-ok { color: var(--rh-muted); }

.rh-gap-blocker {
  border-left: 3px solid var(--rh-danger);
  padding-left: 0.75rem;
}

.rh-gap-warning {
  border-left: 3px solid var(--rh-warn);
  padding-left: 0.75rem;
}

.rh-req-text {
  font-size: 0.85rem;
  color: var(--rh-muted);
  white-space: pre-wrap;
  max-height: 7.5rem;
  overflow-y: auto;
}

.rh-mono {
  font-variant-numeric: tabular-nums;
}

.table > :not(caption) > * > * { padding: 0.55rem 0.6rem; }

.rh-pill {
  font-size: 0.72rem;
  font-weight: 600;
  border-radius: 999px;
  padding: 0.12rem 0.55rem;
  display: inline-block;
}

.rh-pill-danger { background: #fdecea; color: var(--rh-danger); }
.rh-pill-muted { background: #f1f4f9; color: var(--rh-muted); }
.rh-pill-ok { background: #e7f5ee; color: var(--rh-ok); }

.rh-empty {
  color: var(--rh-muted);
  font-size: 0.9rem;
  padding: 1.25rem 0;
}
