.customer-print { margin: 0; padding: 24px 12px; background: #f4f4f4; color: #242424; font: 16px/1.5 Arial, sans-serif; }
.customer-print * { box-sizing: border-box; }
.customer-print .cp-card { max-width: 540px; margin: auto; padding: 24px; border: 1px solid #660000; border-radius: 10px; background: #fff; box-shadow: 0 5px 18px #00000014; }
.customer-print .cp-wide { max-width: 1300px; }
.customer-print .cp-logo { display: block; width: 100%; max-width: 300px; height: auto; margin: 0 auto 28px; }
.customer-print h1 { color: #660000; font-size: 1.65rem; }
.customer-print label { display: block; font-weight: bold; margin-top: 20px; }
.customer-print input:not([type=hidden]), .customer-print textarea { display: block; width: 100%; max-width: 100%; padding: 12px; margin: 6px 0; border: 1px solid #999; border-radius: 5px; font: inherit; background: white; color: #242424; }
.customer-print input[type=number] { max-width: 130px; }
.customer-print button { min-height: 44px; border: 1px solid #660000; border-radius: 5px; padding: 12px 18px; background: #660000; color: #fff; font: inherit; cursor: pointer; margin: 12px 4px 4px 0; }
.customer-print button:hover { background: #440000; }
.customer-print :focus-visible { outline: 3px solid #175fa6; outline-offset: 3px; }
.customer-print .cp-hint { font-size: .88rem; color: #555; }
.customer-print .cp-success, .customer-print .cp-error { padding: 14px; border-radius: 4px; }
.customer-print .cp-success { background: #e4f3e9; color: #185b31; }
.customer-print .cp-error { background: #fbe8e8; color: #800000; }
.customer-print .cp-scroll { overflow-x: auto; }
.customer-print td { min-width: 90px; overflow-wrap: anywhere; }
.customer-print a { color: #660000; }
@media (max-width: 480px) { .customer-print .cp-card { padding: 18px; } .customer-print form > button { width: 100%; } }

.customer-print .cp-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(125px, 1fr)); gap: 12px; }
.customer-print select { display: block; width: 100%; padding: 12px 6px; margin-top: 6px; border: 1px solid #999; border-radius: 5px; font: inherit; color: #242424; background: #fff; }
.customer-print .cp-preview { margin-top: 24px; }
.customer-print .cp-preview h2 { font-size: 1.15rem; color: #660000; }
.customer-print .cp-paper-wrap { display: flex; justify-content: center; padding: 18px; background: #e9e9e9; border-radius: 6px; }
.customer-print #print-preview { display: block; width: auto; max-width: 100%; max-height: 480px; height: auto; background: #fff; border: 1px solid #bbb; box-shadow: 1px 2px 6px #0002; }
.customer-print .cp-preview-pages { align-items: center; justify-content: space-between; gap: 8px; }
.customer-print .cp-preview-pages:not([hidden]) { display: flex; }
.customer-print .cp-preview-pages button { font-size: .8rem; padding: 8px; }
.customer-print button:disabled { opacity: .5; cursor: default; }

.customer-print select { height: auto; min-height: 48px; line-height: 1.4; }
.customer-print textarea { height: auto; min-height: 100px; }

.customer-print .cp-options > div:first-child { grid-column: 1 / -1; }

/* Public file selection: stacked touch targets on small screens. */
.customer-print .cp-upload h2, .customer-print .cp-settings-heading { font-size: 1.15rem; color: #660000; }
.customer-print .cp-file-choices:not([hidden]) { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.customer-print .cp-file-choices button { width: 100%; min-height: 88px; margin: 0; padding: 16px 12px; text-align: left; overflow-wrap: anywhere; }
.customer-print .cp-file-choices span { display: block; font-weight: bold; font-size: 1.1rem; }
.customer-print .cp-file-choices small { display: block; margin-top: 5px; font-size: .88rem; }
.customer-print .cp-file-help { margin: 18px 0; padding: 14px; background: #f4f4f4; border-left: 3px solid #660000; border-radius: 4px; font-size: .9rem; }
.customer-print .cp-file-help p { margin: 6px 0 0; }
.customer-print .cp-selected-file { overflow-wrap: anywhere; font-size: .9rem; }
.customer-print .cp-selected-file:empty { display: none; }
.customer-print .cp-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.customer-print .cp-steps { font-size: .9rem; }
@media (min-width: 520px) { .customer-print .cp-file-choices:not([hidden]) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
