The Bootstrap CSS is a media query, which is more specific than the print CSS you wrote. This specific media query styles elements to fit a tablet or larger screen - anything with a screen size larger than 768px. Because the parent element to a Bootstrap modal doesn't have an explicit width set, by setting your print CSS width to 100% you're telling the block element to use its default behavior, which is to take up the full width of its container. The width is explicitly set to 600px in the Bootstrap CSS, so that's what you'll need to override. In general, setting width: 100% for block elements is redundant, since that's their default behavior. Read more about CSS 100% widths here.
You can either write your own media query to override the Bootstrap default, or you can set a fixed width in pixels/ems whatever.
So, something like:
.modal-dialog {
max-width: 500px; /* or whatever width you like */
}
Or:
@media (min-width: 768px) {
.modal-dialog {
width: 500px !important;
}
}