.photo-zoom-open{display:block;position:relative;width:100%;border:0;padding:0;background:transparent;color:inherit;cursor:zoom-in;border-radius:28px}
.photo-zoom-open .detail-image{display:block;width:100%}
.photo-zoom-open>span{position:absolute;bottom:16px;right:16px;padding:10px 14px;border-radius:24px;background:#fff;color:#463b77;font:600 13px system-ui;box-shadow:0 2px 12px #29223920}
.photo-zoom-open:focus-visible{outline:3px solid #6850d5;outline-offset:4px}
.photo-zoom-dialog{margin:auto;box-sizing:border-box;width:min(1100px,96vw);height:92dvh;max-width:96vw;max-height:96dvh;padding:0;border:1px solid #ded8ee;border-radius:22px;background:#faf9fc;color:#292337;overflow:hidden}
.photo-zoom-dialog::backdrop{background:#171322d9}
.photo-zoom-layout{height:100%;display:flex;flex-direction:column;min-height:0}
.photo-zoom-header,.photo-zoom-controls{display:flex;align-items:center;gap:10px;padding:14px 18px;background:white;flex-shrink:0}
.photo-zoom-header{justify-content:space-between;border-bottom:1px solid #e8e2f1}
.photo-zoom-header h2{font:600 17px system-ui;margin:0;overflow-wrap:anywhere}
.photo-zoom-dialog button{min-width:44px;min-height:44px;border:1px solid #e3ddef;background:white;color:#4c3c94;border-radius:12px;font:600 15px system-ui;cursor:pointer;padding:8px 12px}
.photo-zoom-dialog button:focus-visible{outline:3px solid #6850d5;outline-offset:2px}
.photo-zoom-dialog button:disabled{opacity:.4;cursor:default}
.photo-zoom-controls{justify-content:center;flex-wrap:wrap;border-top:1px solid #e8e2f1}
.photo-zoom-stage{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;background:#efecf5}
.photo-zoom-stage.is-enlarged{cursor:grab}
.photo-zoom-stage.is-dragging{cursor:grabbing}
.photo-zoom-canvas{display:grid;place-items:center;min-width:100%;min-height:100%}
.photo-zoom-canvas img{display:block;max-width:none;max-height:none;object-fit:contain;user-select:none;-webkit-user-drag:none}
.photo-zoom-level{min-width:48px;text-align:center;font:600 14px system-ui}
.photo-zoom-caption{margin:0;padding:8px 14px;text-align:center;font:13px system-ui;background:#fff;color:#655c73}
@media(max-width:500px){.photo-zoom-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:0;border-radius:0}.photo-zoom-header,.photo-zoom-controls{padding:10px;gap:6px}.photo-zoom-header h2{font-size:15px}.photo-zoom-dialog button{padding:8px 10px}.photo-zoom-caption{font-size:12px}}
