.scan-modal{position:fixed;inset:0;z-index:1000;background:#08110ddd;display:flex;flex-direction:column;padding:max(14px,env(safe-area-inset-top)) 14px max(14px,env(safe-area-inset-bottom));color:#fff}
.scan-modal.hidden{display:none}
.scan-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.scan-head strong{font-size:19px}
.scan-close{border:1px solid #ffffff88;background:#fff;color:#16382d;border-radius:9px;padding:10px 16px;font-weight:700}
.scan-capture{border:0;background:#fff;color:#16382d;border-radius:999px;padding:12px 18px;font-weight:700;margin:12px auto 0;display:block}
#scanReader{width:100%;max-width:620px;margin:auto;background:#000;border-radius:14px;overflow:hidden}
#scanReader video{object-fit:cover}
.scan-tip{text-align:center;max-width:620px;margin:12px auto 0;color:#fff}
.photo-camera{position:fixed;inset:0;z-index:1100;background:#050907;display:flex;flex-direction:column;color:#fff;padding:max(12px,env(safe-area-inset-top)) 12px max(18px,env(safe-area-inset-bottom))}
.photo-camera.hidden{display:none}
.photo-camera video{width:100%;height:calc(100vh - 155px);object-fit:contain;background:#000;border-radius:12px}
.camera-controls{display:flex;justify-content:center;align-items:center;gap:28px;padding:14px}
.camera-shutter{width:68px;height:68px;border-radius:50%;border:6px solid #fff;background:#ddebe4;box-shadow:0 0 0 3px #ffffff55}
.camera-cancel{border:1px solid #ffffff99;background:#ffffff18;color:#fff;border-radius:9px;padding:11px 18px;font-weight:700}
.external-open{background:#fff;color:#16382d;border:1px solid #bfd2c9;border-radius:9px;padding:10px 12px;font-weight:700}
@media(max-width:600px){.external-open{font-size:13px;padding:9px}.nav{gap:5px}}
