@page { margin: 0 }
#body { margin: 0 }
.sheet {
  margin: 0;
  overflow: hidden;
  position: relative;
  box-sizing: border-box;
  page-break-after: always;
}
#body table {
  table-layout: fixed;
  width: 100%;
}
#body table td,
#body table th {
  border-right: 1px solid #e6e4df;
  vertical-align: top;
}
#body table td:first-child,
#body table th:first-child {
  border-left: 1px solid #e6e4df;
}
#body table tbody tr {
  height: 50mm;
}

/** Paper sizes **/
#body.A3               .sheet { width: 297mm; height: 419mm }
#body.A3.landscape     .sheet { width: 420mm; height: 296mm }
#body.A4               .sheet { width: 210mm; height: 296mm }
#body.A4.landscape     .sheet { width: 297mm; height: 209mm }
#body.A5               .sheet { width: 148mm; height: 209mm }
#body.A5.landscape     .sheet { width: 210mm; height: 147mm }
#body.letter           .sheet { width: 216mm; height: 279mm }
#body.letter.landscape .sheet { width: 280mm; height: 215mm }
#body.legal            .sheet { width: 216mm; height: 356mm }
#body.legal.landscape  .sheet { width: 357mm; height: 215mm }

/** Padding area **/
.sheet.padding-10mm { padding: 10mm }
.sheet.padding-15mm { padding: 15mm }
.sheet.padding-20mm { padding: 20mm }
.sheet.padding-25mm { padding: 25mm }

/** For screen preview **/
@media screen {
  #body { background: #e0e0e0 }
  .sheet {
    background: white;
    box-shadow: 0 .5mm 2mm rgba(0,0,0,.3);
    margin: 5mm auto;
  }
}

/** Fix for Chrome issue #273306 **/
@media print {
           #body.A3.landscape { width: 420mm }
  #body.A3, #body.A4.landscape { width: 297mm }
  #body.A4, #body.A5.landscape { width: 210mm }
  #body.A5                    { width: 148mm }
  #body.letter, #body.legal    { width: 216mm }
  #body.letter.landscape      { width: 280mm }
  #body.legal.landscape       { width: 357mm }
}
