/* camera-to-pdf – shared layout in /assets/css/dp-img-pdf.css */
.cam4-stage { background: #fff; border: 1px solid var(--dpi-border); border-radius: 12px; padding: 16px; }
.cam4-view { position: relative; max-width: 820px; margin: 0 auto 14px; background: #000; border-radius: 10px; overflow: hidden; }
.cam4-view video { display: block; width: 100%; max-height: 70vh; object-fit: contain; background: #000; }
.cam4-view.cam4-mirror video { transform: scaleX(-1); }
.cam4-flash { position: absolute; inset: 0; background: #fff; opacity: 0; pointer-events: none; transition: opacity .25s; }
.cam4-flash.on { opacity: .7; transition: none; }
.cam4-intro { text-align: center; padding: 10px 0 16px; }
.cam4-intro .upload-icon { font-size: 40px; color: var(--dpi-primary); }
.cam4-intro-text { max-width: 640px; margin: 8px auto 0; color: #334155; line-height: 1.6; }
.cam4-controls { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px; }
.cam4-controls select { min-height: 40px; padding: 8px 10px; border: 1px solid #cbd5e1; border-radius: 8px; font: inherit; font-size: 15px; max-width: 260px; background: #fff; }
.cam4-shutter { min-width: 200px; }
.cam4-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cam4-select-wrap { display: inline-flex; }
.cam4 .dpi-label-spacer { font-size: 14px; }
.cam4 .dpi-card { cursor: default; }
@media (max-width: 600px) {
    .cam4-stage { padding: 10px; }
    .cam4-controls .dpi-btn, .cam4-controls select, .cam4-select-wrap { width: 100%; max-width: none; }
}
