html.forum-image-open { overflow: hidden; }
.forum-image-link:focus-visible { outline: 3px solid #1a73ff; outline-offset: 4px; border-radius: 8px; }
.forum-image-viewer, .forum-image-viewer * { box-sizing: border-box; }
.forum-image-viewer {
    margin: auto; padding: 0; width: calc(100vw - 40px); height: calc(100dvh - 40px);
    max-width: 1600px; max-height: none; border: 1px solid #ffffff18; border-radius: 24px;
    overflow: hidden; color: #f5f7fc; background: radial-gradient(ellipse at 50% 40%, #172130 0%, #0c121c 75%);
    box-shadow: 0 32px 100px #0009; font-family: 'Inter', sans-serif;
}
.forum-image-viewer::backdrop { background: #050a13d9; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.forum-image-viewer-header {
    position: absolute; z-index: 2; top: 24px; left: 32px; right: 32px;
    display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.forum-image-viewer-title { margin: 0; color: #f5f7fc; font: 600 15px/1.5 'Inter', sans-serif; letter-spacing: -0.01em; }
.forum-image-dimensions { display: block; margin-top: 3px; color: #8f9db1; font-size: 11px; line-height: 1.4; font-variant-numeric: tabular-nums; }
.forum-image-dimensions:empty { display: none; }
.forum-image-viewer button {
    appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    flex-shrink: 0; margin: 0; min-height: 44px; padding: 10px 18px; border: 1px solid transparent;
    border-radius: 999px; background: transparent; color: #aebbd0; font: 600 13px/1.2 'Inter', sans-serif;
    text-decoration: none; cursor: pointer; transition: background-color .18s, color .18s, border-color .18s;
}
.forum-image-viewer button:hover { transform: none; color: #fff; background: #ffffff0d; }
.forum-image-viewer button:focus-visible { outline: 2px solid #8cbaff; outline-offset: 3px; }
.forum-image-viewer button:disabled { opacity: .45; cursor: wait; }
.forum-image-viewer button svg { display: block; width: 18px; height: 18px; pointer-events: none; }
.forum-image-viewer .forum-image-close {
    width: 44px; height: 44px; padding: 12px; background: #ffffff08; border-color: #ffffff14; color: #e5ebf5;
}
.forum-image-viewer .forum-image-close:hover { background: #ffffff17; border-color: #ffffff2b; }
.forum-image-viewer-actions {
    position: absolute; z-index: 2; bottom: 24px; left: 50%; transform: translateX(-50%);
    display: flex; gap: 6px; padding: 7px; border: 1px solid #ffffff1f; border-radius: 999px;
    background: #1b2638eb; backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 12px 32px #0005, inset 0 1px #ffffff08;
}
.forum-image-viewer-actions button { min-width: 106px; }
.forum-image-viewer-actions button[aria-pressed="true"] { color: #fff; border-color: #719cff40; background: #365c92; box-shadow: inset 0 1px #ffffff12; }
.forum-image-stage { position: absolute; inset: 92px 28px 110px; display: flex; overflow: auto; overscroll-behavior: contain; }
.forum-image-stage img { display: block; flex-shrink: 0; margin: auto; max-width: 100%; max-height: 100%; width: auto; height: auto; border-radius: 6px; box-shadow: 0 18px 48px #0004; cursor: zoom-in; }
.forum-image-viewer.is-zoomed .forum-image-stage { display: block; }
.forum-image-viewer.is-zoomed .forum-image-stage img { max-width: none; max-height: none; margin: 0; cursor: zoom-out; }
.forum-image-status { position: absolute; z-index: 1; top: 45%; left: 24px; right: 24px; margin: 0; color: #aebbd0; text-align: center; font-size: 14px; }
.forum-image-status[hidden] { display: none; }
@media (max-width: 600px) {
    .forum-image-viewer { width: calc(100vw - 24px); height: calc(100dvh - 24px); border-radius: 20px; }
    .forum-image-viewer-header { top: 20px; left: 20px; right: 20px; }
    .forum-image-viewer-title { font-size: 14px; }
    .forum-image-viewer-actions { bottom: max(20px, env(safe-area-inset-bottom)); padding: 6px; }
    .forum-image-viewer-actions button { min-width: 98px; padding: 10px 14px; }
    .forum-image-stage { inset: 88px 12px max(104px, calc(84px + env(safe-area-inset-bottom))); }
}
@media (max-height: 460px) {
    .forum-image-viewer { width: calc(100vw - 16px); height: calc(100dvh - 16px); border-radius: 16px; }
    .forum-image-viewer-header { top: 12px; left: 20px; right: 20px; }
    .forum-image-viewer-actions { bottom: 12px; }
    .forum-image-stage { inset: 68px 20px 84px; }
}
@media (prefers-reduced-motion: reduce) { .forum-image-viewer button { transition: none; } }
