.page-shell {
  display: flex;
  flex-direction: column;
}

.page-shell > .page-inner {
  flex: 1;
  display: flex;
  flex-direction: column;
  width: 100%;
}

.page-main {
  flex: 1;
}

.page-footer {
  margin-top: 48px;
}

.page-footer--compact {
  margin-top: 38px;
}

@media screen {
  #cv.page-shell > .page-inner {
    max-width: 840px;
    margin: 0 auto;
  }

  #cv #sheet.page-main {
    display: flex;
    flex-direction: column;
  }

  #cv .pr-tbl,
  #cv .pr-tbl > tbody,
  #cv .pr-tbl > tbody > tr,
  #cv .pr-tbl > tbody > tr > td {
    flex: 1;
    display: flex;
    flex-direction: column;
  }

  #cv .page-footer {
    margin-top: auto;
  }
}
