:root{
  --svlb-bg: rgba(0,0,0,.86);
  --svlb-border: rgba(255,255,255,.14);
  --svlb-white: #fff;
  --svlb-muted: rgba(255,255,255,.75);
}

.svlb-lock {
  overflow: hidden !important;
  touch-action: none;
}

#svlb {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: none;
  background: var(--svlb-bg);
}

#svlb.svlb-open { display:block; }

#svlb .svlb-topbar{
  position: absolute;
  top: 12px;
  right: 12px;
  display:flex;
  gap:10px;
  align-items:center;
  z-index: 4;
}

#svlb .svlb-btn{
  appearance:none;
  border:1px solid var(--svlb-border);
  background: rgba(0,0,0,.35);
  color: var(--svlb-white);
  width: 42px;
  height: 42px;
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  user-select:none;
}

#svlb .svlb-btn:hover{ background: rgba(0,0,0,.55); }
#svlb .svlb-btn:active{ background: rgba(0,0,0,.65); }

#svlb .svlb-stage{
  position:absolute;
  inset: 0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 60px 24px 120px;
  z-index: 2;
}

#svlb .svlb-img{
  display:block;
  max-width: 92vw;
  max-height: calc(100vh - 180px);
  width: auto;
  height: auto;
  margin: 0 auto;
  border-radius: 10px;
  box-shadow: 0 10px 40px rgba(0,0,0,.45);
  background: rgba(255,255,255,.06);
}

#svlb .svlb-counter{
  position:absolute;
  left: 18px;
  bottom: 102px;
  z-index: 4;
  color: var(--svlb-muted);
  font: 600 13px/1 system-ui, -apple-system, Segoe UI, Roboto, Arial;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(0,0,0,.35);
  border: 1px solid var(--svlb-border);
}

#svlb .svlb-arrow{
  position:absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 4;
  width: 56px;
  height: 56px;
  border-radius: 999px;
  border: 1px solid var(--svlb-border);
  background: rgba(0,0,0,.35);
  color: var(--svlb-white);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  user-select:none;
}

#svlb .svlb-arrow:hover{ background: rgba(0,0,0,.55); }
#svlb .svlb-arrow:active{ background: rgba(0,0,0,.65); }

#svlb .svlb-arrow.svlb-prev{ left: 22px; }
#svlb .svlb-arrow.svlb-next{ right: 22px; }

#svlb .svlb-arrow svg{ width: 22px; height: 22px; display:block; }

#svlb .svlb-thumbs-wrap{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index: 3;
  padding: 14px 18px 18px;
  background: linear-gradient(to top, rgba(0,0,0,.70), rgba(0,0,0,.08));
}

#svlb .svlb-thumbs{
  display:flex;
  gap:10px;
  overflow:auto;
  padding: 10px 8px;
  margin: 0 auto;
  max-width: min(1180px, 96vw);
  scroll-behavior:smooth;
}

#svlb .svlb-thumb{
  width: 92px;
  height: 64px;
  border-radius: 8px;
  border: 2px solid rgba(255,255,255,.12);
  overflow:hidden;
  flex: 0 0 auto;
  background: rgba(255,255,255,.06);
  cursor:pointer;
}

#svlb .svlb-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
#svlb .svlb-thumb.svlb-active{ border-color: rgba(255,255,255,.70); }

#svlb .svlb-thumbs-toggle{
  position:absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 86px;
  z-index: 4;
  width: 46px;
  height: 28px;
  border-radius: 999px;
  border: 1px solid var(--svlb-border);
  background: rgba(0,0,0,.35);
  color: var(--svlb-white);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}

#svlb .svlb-thumbs-hidden .svlb-thumbs-wrap{
  transform: translateY(120%);
  transition: transform .22s ease;
}
#svlb .svlb-thumbs-wrap{
  transform: translateY(0);
  transition: transform .22s ease;
}
#svlb .svlb-thumbs-hidden .svlb-counter{ bottom: 18px; }

@media (max-width: 768px){
  #svlb .svlb-stage{ padding: 56px 10px 120px; }
  #svlb .svlb-img{ max-width: 96vw; max-height: calc(100vh - 160px); border-radius: 8px; }
  #svlb .svlb-arrow{ display:none; }
  #svlb .svlb-thumb{ width: 78px; height: 56px; }
  #svlb .svlb-counter{ bottom: 98px; left: 12px; }
  #svlb .svlb-topbar{ top: 10px; right: 10px; }
}

#svlb *{ -webkit-tap-highlight-color: transparent; }
