/* ZABR global media viewer — one viewer for driver/admin/building and future pages */
.zabr-media-clickable{cursor:zoom-in}
.zabr-media-viewer{position:fixed;inset:0;z-index:2147483000;background:#05070a;display:none;flex-direction:column;color:#fff;direction:rtl;overscroll-behavior:contain;touch-action:none}
.zabr-media-viewer.open{display:flex}
.zabr-media-top{height:58px;min-height:58px;display:flex;align-items:center;gap:10px;padding:calc(env(safe-area-inset-top,0px) + 8px) 10px 8px;background:linear-gradient(180deg,rgba(0,0,0,.86),rgba(0,0,0,.28));position:absolute;left:0;right:0;top:0;z-index:4;box-sizing:content-box}
.zabr-media-close,.zabr-media-nav,.zabr-media-action{border:0;color:#fff;background:rgba(23,31,42,.86);box-shadow:0 1px 0 rgba(255,255,255,.12) inset;border-radius:14px;display:flex;align-items:center;justify-content:center;font:inherit}
.zabr-media-close{width:44px;height:44px;font-size:28px;flex:0 0 44px}
.zabr-media-heading{min-width:0;flex:1;text-align:right}
.zabr-media-title{font-size:14px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zabr-media-count{font-size:11px;opacity:.7;margin-top:2px}
.zabr-media-stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none}
.zabr-media-image{max-width:100%;max-height:100%;width:auto;height:auto;user-select:none;-webkit-user-drag:none;will-change:transform;transform-origin:center center;object-fit:contain}
.zabr-media-loader{position:absolute;width:42px;height:42px;border:4px solid rgba(255,255,255,.22);border-top-color:#fff;border-radius:50%;animation:zabrMediaSpin .75s linear infinite}
@keyframes zabrMediaSpin{to{transform:rotate(360deg)}}
.zabr-media-error{display:none;max-width:78vw;text-align:center;line-height:1.8;background:rgba(120,20,20,.55);padding:14px 18px;border-radius:14px}
.zabr-media-bottom{position:absolute;left:0;right:0;bottom:0;z-index:4;display:flex;justify-content:center;gap:10px;padding:12px 12px calc(env(safe-area-inset-bottom,0px) + 12px);background:linear-gradient(0deg,rgba(0,0,0,.9),rgba(0,0,0,.16))}
.zabr-media-action{height:48px;min-width:112px;padding:0 18px;gap:8px;font-size:14px;font-weight:800}
.zabr-media-action svg,.zabr-media-close svg,.zabr-media-nav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.zabr-media-nav{position:absolute;top:50%;z-index:4;width:44px;height:54px;transform:translateY(-50%);background:rgba(10,16,24,.74)}
.zabr-media-prev{right:10px}.zabr-media-next{left:10px}
.zabr-media-nav[hidden]{display:none}
.zabr-media-toast{position:absolute;left:50%;bottom:84px;transform:translateX(-50%) translateY(12px);z-index:6;background:rgba(16,24,36,.96);padding:9px 14px;border-radius:12px;font-size:13px;font-weight:700;opacity:0;transition:.18s;pointer-events:none;white-space:nowrap}
.zabr-media-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:560px){.zabr-media-action{min-width:100px;height:46px;padding:0 14px}.zabr-media-nav{width:40px}.zabr-media-prev{right:6px}.zabr-media-next{left:6px}}
@media(prefers-reduced-motion:reduce){.zabr-media-loader{animation:none}.zabr-media-toast{transition:none}}

/* v4: real top-layer dialog viewer; must render above admin/detail dialogs */
dialog.zabr-media-viewer{
  margin:0!important;
  padding:0!important;
  border:0!important;
  width:100vw!important;
  height:100dvh!important;
  max-width:none!important;
  max-height:none!important;
  inset:0!important;
  background:#05070a!important;
  color:#fff!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
dialog.zabr-media-viewer::backdrop{
  background:rgba(0,0,0,.94)!important;
}
dialog.zabr-media-viewer:not(.open){
  display:none!important;
}
dialog.zabr-media-viewer.open{
  display:flex!important;
}

/* Media cards are controls, not navigation links. */
.admin-detail-media .attachments :is(a,button){
  appearance:none;
  -webkit-appearance:none;
  color:inherit;
  font:inherit;
  text-decoration:none;
  cursor:zoom-in;
}
