@page{
  margin: 0;
}

body{
  margin: 0
}

.sheet{
  margin:0;
  overflow:hidden;
  position:relative;
  box-sizing:border-box;
  page-break-after:always;
  display: flex;
  justify-items: stretch;
}

body.A3 .sheet{
  width:297mm;
  height:419mm
}

body.A3.landscape .sheet{
  width:420mm;
  height:296mm
}

body.A4 .sheet{
  width:210mm;
}

body.A4 .sheet.exact{
  width:210mm;
  height:297mm
}

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
}

.sheet.padding-10mm{
  padding:10mm
}

.sheet.padding-15mm{
  padding:15mm
}

.sheet.padding-20mm{
  padding:20mm
}

.sheet.padding-25mm{
  padding:25mm
}

@media screen{
  body{
    margin: 10mm 0
  }

  .sheet{
    background:#fff;
    margin:0 auto
  }
}

@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.legal,body.letter{
    width:216mm
  }

  body.letter.landscape{
    width:280mm
  }

  body.legal.landscape{
    width:357mm
  }

  .page-break-inside-avoid{
    page-break-inside: avoid;
    -moz-column-break-inside: avoid;
         break-inside: avoid;
  }
}
