  }
  
  QWidget *build_stat(QString name, int stat){
    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(new QLabel(bold(QString("%1").arg(stat))), 1, Qt::AlignCenter);
    layout->addWidget(new QLabel(name),1, Qt::AlignCenter);
    return widget(layout);
  }
  
  void DriveStats::replyFinished(QNetworkReply *l){
    QString answer = l->readAll();
    answer.chop(1);
 
</s> remove QString bold(QString s) {
  return "<b>" + s + "</b>";
}

QWidget *widget(QLayout *l){
  QWidget *q = new QWidget();
  q->setLayout(l);
  return q;
}

QWidget *build_stat(QString name, int stat){
 </s> add QLayout *build_stat(QString name, int stat) { </s> remove void DriveStats::replyFinished(QNetworkReply *l){
 </s> add void DriveStats::replyFinished(QNetworkReply *l) { </s> remove QString create_jwt(QString dongle_id, int expiry=3600){
 </s> add QString create_jwt(QString dongle_id, int expiry=3600) { </s> remove   gl->addWidget(new QLabel(bold("ALL TIME")), 0, 0, 1, 3);
  gl->addWidget(build_stat("DRIVES", all["routes"].toDouble()), 1, 0, 3, 1);
  gl->addWidget(build_stat(metric ? "KM" : "MILES", all_distance), 1, 1, 3, 1);
  gl->addWidget(build_stat("HOURS", all["minutes"].toDouble() / 60), 1, 2, 3, 1);

  QFrame *lineA = new QFrame;
  lineA->setFrameShape(QFrame::HLine);
  lineA->setFrameShadow(QFrame::Sunken);
  lineA->setProperty("class", "line");
  gl->addWidget(lineA, 5, 0, 1, 3);
 </s> add   gl->addWidget(new QLabel("ALL TIME"), 0, 0, 1, 3);
  gl->addLayout(build_stat("DRIVES", all["routes"].toDouble()), 1, 0, 3, 1);
  gl->addLayout(build_stat(metric ? "KM" : "MILES", all_distance), 1, 1, 3, 1);
  gl->addLayout(build_stat("HOURS", all["minutes"].toDouble() / 60), 1, 2, 3, 1); </s> remove   main_layout->addSpacing(100);
 </s> add   main_layout->addSpacing(25);
  QLabel *metric = new QLabel(QString("%1").arg(stat));
  metric->setStyleSheet(R"(
    font-size: 72px;
    font-weight: 700;
  )");
  layout->addWidget(metric, 0, Qt::AlignLeft);
  
  QLabel *label = new QLabel(name);
  label->setStyleSheet(R"(
    font-size: 32px;
    font-weight: 600;
  )");
  layout->addWidget(label, 0, Qt::AlignLeft);
  
  return layout;
  }
  
  QWidget *build_stat(QString name, int stat){
    QVBoxLayout *layout = new QVBoxLayout;
  QLabel *metric = new QLabel(QString("%1").arg(stat));
  metric->setStyleSheet(R"(
    font-size: 72px;
    font-weight: 700;
  )");
  layout->addWidget(metric, 0, Qt::AlignLeft);
  
  QLabel *label = new QLabel(name);
  label->setStyleSheet(R"(
    font-size: 32px;
    font-weight: 600;
  )");
  layout->addWidget(label, 0, Qt::AlignLeft);
  
  return layout;
  QLabel *metric = new QLabel(QString("%1").arg(stat));
  metric->setStyleSheet(R"(
    font-size: 72px;
    font-weight: 700;
  )");
  layout->addWidget(metric, 0, Qt::AlignLeft);
  
  QLabel *label = new QLabel(name);
  label->setStyleSheet(R"(
    font-size: 32px;
    font-weight: 600;
  )");
  layout->addWidget(label, 0, Qt::AlignLeft);
  
  return layout;
  QLabel *metric = new QLabel(QString("%1").arg(stat));
  metric->setStyleSheet(R"(
    font-size: 72px;
    font-weight: 700;
  )");
  layout->addWidget(metric, 0, Qt::AlignLeft);
  
  QLabel *label = new QLabel(name);
  label->setStyleSheet(R"(
    font-size: 32px;
    font-weight: 600;
  )");
  layout->addWidget(label, 0, Qt::AlignLeft);
  
  return layout;
  }
  
  void DriveStats::replyFinished(QNetworkReply *l){
    QString answer = l->readAll();
    answer.chop(1);
keep keep keep keep replace replace replace keep keep keep keep keep
 offroad home style (#19593)

* make drive stats look nicer

* offroad alerts style

* rest of alerts

* move that

* fix up colors

Co-authored-by: Comma Device <device@comma.ai> 
selfdrive/ui/qt/widgets/drive_stats.cc