.weekly-image-viewer.has-wheel-zoom{width:min(1440px,96vw);height:min(900px,94vh);max-height:94vh;overflow:hidden}
.weekly-image-viewer.has-wheel-zoom[open]{display:flex;flex-direction:column}
.has-wheel-zoom .weekly-image-viewer-head{flex:0 0 auto;gap:12px;padding:12px 16px;background:#fff}
.has-wheel-zoom .weekly-image-viewer-head h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:650}
.has-wheel-zoom .weekly-viewer-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px}
.has-wheel-zoom .weekly-viewer-navigation{display:flex;gap:6px}
.has-wheel-zoom .weekly-viewer-zoom-controls{display:flex;align-items:center;overflow:hidden;border:1px solid #dddfe7;border-radius:8px;background:#fafbfc}
.has-wheel-zoom .weekly-viewer-zoom-controls button{width:34px;min-height:34px;padding:0;border-radius:0;background:transparent;font-size:18px}
.has-wheel-zoom .weekly-viewer-scale{width:52px;text-align:center;color:#39455a;font-size:12px;font-weight:650;font-variant-numeric:tabular-nums}
.has-wheel-zoom .weekly-viewer-fit{background:#ffdf65}
.has-wheel-zoom .weekly-viewer-close{margin-left:2px}
.has-wheel-zoom button:focus-visible,.has-wheel-zoom .weekly-image-viewer-stage:focus-visible{outline:2px solid #b27c16;outline-offset:2px}
.has-wheel-zoom .weekly-image-viewer-stage{position:relative;flex:1 1 auto;min-height:120px;max-height:none;padding:0;overflow:hidden;background:#eef1f6;touch-action:none;user-select:none;overscroll-behavior:contain}
.has-wheel-zoom .weekly-image-viewer-stage img{position:absolute;left:50%;top:50%;display:block;max-width:none;max-height:none;margin:0;object-fit:fill;transform-origin:center center;transition:transform 90ms ease-out;will-change:transform;pointer-events:none;user-select:none;-webkit-user-drag:none}
.has-wheel-zoom .weekly-image-viewer-stage img[hidden]{display:none}
.has-wheel-zoom .weekly-image-viewer-stage.can-pan{cursor:grab}
.has-wheel-zoom .weekly-image-viewer-stage.is-dragging{cursor:grabbing}
.has-wheel-zoom .weekly-image-viewer-stage.is-dragging img{transition:none}
.has-wheel-zoom .weekly-viewer-hint{flex:0 0 auto;padding:8px 12px;border-top:1px solid #e1e5ed;background:#fff;text-align:center;color:#758094;font-size:12px;line-height:1.4}
@media(max-width:760px){
 .weekly-image-viewer.has-wheel-zoom{width:96vw;height:92vh;max-height:92vh;border-radius:10px}
 .has-wheel-zoom .weekly-image-viewer-head{align-items:flex-start;padding:10px;gap:8px}
 .has-wheel-zoom .weekly-image-viewer-head h2{flex-basis:100%;max-width:100%;font-size:14px}
 .has-wheel-zoom .weekly-viewer-actions{width:100%;justify-content:flex-start;gap:6px}
 .has-wheel-zoom .weekly-image-viewer-head button{min-height:32px;padding:5px 8px;font-size:12px}
 .has-wheel-zoom .weekly-viewer-zoom-controls button{width:30px;padding:0;font-size:17px}
 .has-wheel-zoom .weekly-viewer-scale{width:43px;font-size:11px}
 .has-wheel-zoom .weekly-image-viewer-head .weekly-viewer-close{width:32px;margin-left:auto;padding:0;font-size:24px}
 .has-wheel-zoom .weekly-viewer-hint{font-size:11px;padding:7px 8px}
}
@media(prefers-reduced-motion:reduce){.has-wheel-zoom .weekly-image-viewer-stage img{transition:none}}
