:root {
    --tn-viewer-accent: #ff3d4f;
    --tn-viewer-bg: #07080b;
    --tn-viewer-surface: #111319;
    --tn-viewer-border: rgba(255, 255, 255, .12);
    --tn-viewer-text: #f7f8fa;
    --tn-viewer-muted: #9ca1aa;
}

.tn-image-viewer[hidden] { display: none !important; }
.tn-image-viewer {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: grid;
    padding: clamp(8px, 1.5vw, 20px);
    background: rgba(1, 2, 4, .88);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    isolation: isolate;
}
.tn-image-viewer__backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    background: transparent;
    cursor: default;
}
.tn-image-viewer__dialog {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    width: min(1760px, 100%);
    height: 100%;
    margin: auto;
    overflow: hidden;
    border: 1px solid var(--tn-viewer-border);
    border-radius: 18px;
    background: var(--tn-viewer-bg);
    box-shadow: 0 34px 120px rgba(0, 0, 0, .72);
}
.tn-image-viewer__topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    min-height: 64px;
    padding: 10px 12px 10px 18px;
    border-bottom: 1px solid var(--tn-viewer-border);
    background: linear-gradient(180deg, #171a21, #101218);
}
.tn-image-viewer__identity { display: grid; gap: 2px; min-width: 0; }
.tn-image-viewer__identity strong,
.tn-image-viewer__identity span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tn-image-viewer__identity strong { color: var(--tn-viewer-text); font: 700 15px/1.35 "Be Vietnam Pro", sans-serif; }
.tn-image-viewer__identity span { color: var(--tn-viewer-muted); font: 500 12px/1.4 "Nunito", sans-serif; }
.tn-image-viewer__toolbar { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.tn-image-viewer__toolbar button,
.tn-image-viewer__toolbar output {
    display: grid;
    place-items: center;
    min-width: 40px;
    height: 40px;
    margin: 0;
    border: 1px solid rgba(255, 255, 255, .11);
    border-radius: 10px;
    background: #1a1d24;
    color: #fff;
    font: 700 12px/1 "Be Vietnam Pro", sans-serif;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}
.tn-image-viewer__toolbar output { min-width: 64px; padding: 0 8px; color: #d7d9de; }
.tn-image-viewer__toolbar button { cursor: pointer; }
.tn-image-viewer__toolbar button:hover,
.tn-image-viewer__toolbar button:focus-visible,
.tn-image-viewer__toolbar button[aria-pressed="true"] {
    outline: none;
    border-color: rgba(255, 61, 79, .72);
    background: var(--tn-viewer-accent);
    transform: translateY(-1px);
}
.tn-image-viewer__close { margin-left: 4px !important; }
.tn-image-viewer__viewport {
    position: relative;
    min-width: 0;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
    background-color: #050608;
    background-image:
        linear-gradient(45deg, rgba(255,255,255,.022) 25%, transparent 25%),
        linear-gradient(-45deg, rgba(255,255,255,.022) 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, rgba(255,255,255,.022) 75%),
        linear-gradient(-45deg, transparent 75%, rgba(255,255,255,.022) 75%);
    background-size: 28px 28px;
    background-position: 0 0, 0 14px, 14px -14px, -14px 0;
    padding: clamp(10px, 2vw, 28px);
    scrollbar-color: #5c626d #111318;
    scrollbar-width: thin;
    touch-action: pan-x pan-y;
}
.tn-image-viewer__viewport.is-panning { cursor: grab; }
.tn-image-viewer__viewport.is-dragging { cursor: grabbing !important; user-select: none; }
.tn-image-viewer__stage { position: relative; margin: 0 auto; min-height: 1px; }
.tn-image-viewer__stage img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    margin: 0 auto;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
    pointer-events: none;
    box-shadow: 0 14px 54px rgba(0, 0, 0, .42);
    background: #0d0f13;
}
.tn-image-viewer__loading,
.tn-image-viewer__error {
    position: absolute;
    inset: 0;
    display: grid;
    place-content: center;
    justify-items: center;
    gap: 14px;
    padding: 28px;
    color: var(--tn-viewer-muted);
    text-align: center;
}
.tn-image-viewer__loading[hidden],
.tn-image-viewer__error[hidden],
.tn-image-viewer__stage[hidden] { display: none !important; }
.tn-image-viewer__error i { font-size: 44px; color: #727985; }
.tn-image-viewer__error strong { color: #dfe2e7; }
.tn-image-viewer__spinner {
    width: 34px;
    height: 34px;
    border: 3px solid rgba(255, 255, 255, .15);
    border-top-color: var(--tn-viewer-accent);
    border-radius: 50%;
    animation: tn-viewer-spin .8s linear infinite;
}
@keyframes tn-viewer-spin { to { transform: rotate(360deg); } }
.tn-image-viewer__footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    min-height: 44px;
    padding: 8px 16px;
    border-top: 1px solid var(--tn-viewer-border);
    background: var(--tn-viewer-surface);
    color: var(--tn-viewer-muted);
    font: 500 12px/1.45 "Nunito", sans-serif;
}
html.tn-image-viewer-open,
html.tn-image-viewer-open body { overflow: hidden !important; }
.tn-image-viewer-trigger { cursor: zoom-in; }

/* Ensure retired popup engines cannot surface above or beside Viewer v3. */
.mfp-bg,
.mfp-wrap,
.elementor-lightbox,
.dialog-widget-lightbox.elementor-lightbox { display: none !important; }

@media (max-width: 767.98px) {
    .tn-image-viewer { padding: 0; }
    .tn-image-viewer__dialog { border: 0; border-radius: 0; }
    .tn-image-viewer__topbar { align-items: flex-start; min-height: 0; padding: 9px; }
    .tn-image-viewer__identity { display: none; }
    .tn-image-viewer__toolbar { width: 100%; justify-content: center; gap: 4px; }
    .tn-image-viewer__toolbar button,
    .tn-image-viewer__toolbar output { min-width: 36px; height: 38px; border-radius: 9px; }
    .tn-image-viewer__toolbar output { min-width: 55px; }
    .tn-image-viewer__viewport { padding: 8px; }
    .tn-image-viewer__footer { justify-content: center; text-align: center; }
}

/* Hotfix10: suppress every known orphan from the retired popup engines. */
.mfp-container,
.mfp-content,
img.mfp-img,
.mfp-figure,
.mfp-preloader,
.dialog-widget-lightbox,
.elementor-lightbox-prevent-close .elementor-lightbox {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* Build41-Hotfix2 — font-independent viewer tool glyph. */
.tn-image-viewer__tool-icon{display:block;width:18px;height:18px;flex:0 0 18px;overflow:visible}

/* Build41-Hotfix5 — unified image + video viewer. */
.tn-image-viewer [data-image-viewer-image-tool][hidden]{display:none!important}
.tn-image-viewer__video-stage{
    width:min(1280px,100%);
    height:100%;
    min-height:min(68vh,720px);
    margin:0 auto;
    display:grid;
    place-items:center;
}
.tn-image-viewer__video-stage[hidden],
.tn-image-viewer__video-stage video[hidden],
.tn-image-viewer__video-stage iframe[hidden]{display:none!important}
.tn-image-viewer__video-stage video,
.tn-image-viewer__video-stage iframe{
    display:block;
    width:100%;
    max-width:1280px;
    aspect-ratio:16/9;
    max-height:calc(100vh - 170px);
    border:0;
    background:#000;
    box-shadow:0 14px 54px rgba(0,0,0,.42);
}
.tn-image-viewer[data-viewer-media-type="video"] .tn-image-viewer__viewport{
    display:grid;
    place-items:center;
    overflow:hidden;
    padding:clamp(10px,2vw,28px);
}
.tn-image-viewer[data-viewer-media-type="video"] .tn-image-viewer__footer{min-height:44px}
@media (max-width:767.98px){
    .tn-image-viewer__video-stage{width:100%;min-height:0;height:auto}
    .tn-image-viewer__video-stage video,
    .tn-image-viewer__video-stage iframe{width:100%;max-height:calc(100vh - 112px)}
}
.tn-image-viewer-trigger[data-image-viewer-type="video"]{cursor:pointer}
