/* Job Order gallery — admin editor + customer viewer */
.ajo-gal { margin-top: .35rem; }
.ajo-gal__drop {
  border: 2px dashed #cbd5e1;
  border-radius: 1rem;
  padding: 1rem 1.1rem;
  background: linear-gradient(160deg, #fff, #f8fafc);
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, transform .15s ease;
}
.ajo-gal__drop strong { display: block; color: #0b2447; font-size: .92rem; }
.ajo-gal__drop span { display: block; margin-top: .25rem; font-size: .78rem; color: #64748b; line-height: 1.4; }
.ajo-gal__drop:hover, .ajo-gal__drop.is-dragover {
  border-color: #0e9488;
  background: #f0fdfa;
  transform: translateY(-1px);
}
.ajo-gal__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: .65rem;
  margin-top: .75rem;
}
.ajo-gal__empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: 1rem;
  font-size: .82rem;
  color: #64748b;
  border-radius: .85rem;
  background: #f8fafc;
  border: 1px dashed #e2e8f0;
}
.ajo-gal__card {
  display: flex; flex-direction: column; gap: .45rem;
  border: 1px solid #e2e8f0; border-radius: .9rem; overflow: hidden;
  background: #fff; box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05);
  cursor: grab;
}
.ajo-gal__card.is-dragging { opacity: .55; }
.ajo-gal__thumb { aspect-ratio: 4/3; background: #e2e8f0; overflow: hidden; position: relative; }
.ajo-gal__thumb img,
.ajo-gal__thumb video { width: 100%; height: 100%; object-fit: cover; display: block; }
.ajo-gal__play {
  position: absolute; inset: 0; display: grid; place-items: center;
  color: #fff; font-size: .85rem; font-weight: 800;
  background: rgba(11,36,71,.4); pointer-events: none;
}
.ajo-gal__meta { padding: 0 .65rem .65rem; display: flex; flex-direction: column; gap: .35rem; }
.ajo-gal__badge {
  display: inline-flex; align-self: flex-start;
  font-size: .62rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
  padding: .2rem .45rem; border-radius: 999px; background: #ccfbf1; color: #0f766e;
}
.ajo-gal__badge--muted { background: #f1f5f9; color: #64748b; }
.ajo-gal__actions { display: flex; flex-wrap: wrap; gap: .25rem; }
.ajo-gal__actions button {
  appearance: none; border: 1px solid #e2e8f0; background: #fff;
  border-radius: .45rem; font-size: .68rem; font-weight: 700; padding: .25rem .4rem; cursor: pointer;
}
.ajo-gal__actions button.is-danger { color: #be123c; border-color: #fecdd3; }
.ajo-gal__status { margin: .55rem 0 0; font-size: .75rem; font-weight: 650; color: #0e9488; min-height: 1.1em; }
.ajo-gal__status.is-error { color: #be123c; }

/* Customer / marketplace viewer */
.jog {
  position: relative;
  border-radius: 1.1rem;
  overflow: hidden;
  background: linear-gradient(160deg, #0b2447, #123a6b);
}
.jog__stage {
  position: relative;
  min-height: 220px;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 30% 20%, rgba(18,179,166,.25), transparent 50%), #0b2447;
}
.jog__main-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 11;
  max-height: min(52vh, 420px);
}
.jog__main {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .35s ease;
}
.jog__main--video {
  object-fit: contain;
  background: #000;
}
.jog__stage.is-video .jog__main-wrap {
  background: #000;
}
.jog__stage.is-zoomed .jog__main { transform: scale(1.28); cursor: zoom-out; }
.jog__stage.is-video.is-zoomed .jog__main { transform: none; cursor: default; }
.jog__skeleton {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(255,255,255,.06), rgba(255,255,255,.16), rgba(255,255,255,.06));
  background-size: 200% 100%;
  animation: jogShimmer 1.1s linear infinite;
}
.jog.is-ready .jog__skeleton { display: none; }
@keyframes jogShimmer {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}
.jog__nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  z-index: 2; width: 2.4rem; height: 2.4rem; border-radius: 999px;
  border: 0; display: grid; place-items: center; cursor: pointer;
  color: #0b2447; background: rgba(255,255,255,.92);
  box-shadow: 0 8px 20px rgba(0,0,0,.2);
}
.jog__nav--prev { left: .65rem; }
.jog__nav--next { right: .65rem; }
.jog__tools {
  position: absolute; right: .65rem; bottom: .65rem; z-index: 2;
  display: flex; align-items: center; gap: .35rem;
}
.jog__counter {
  display: inline-flex; align-items: center; min-height: 2.15rem;
  padding: 0 .65rem; border-radius: .65rem;
  font-size: .72rem; font-weight: 800; letter-spacing: .04em;
  color: #0b2447; background: rgba(255,255,255,.92);
  font-variant-numeric: tabular-nums;
}
.jog__tool {
  width: 2.15rem; height: 2.15rem; border-radius: .65rem; border: 0;
  display: grid; place-items: center; cursor: pointer;
  color: #0b2447; background: rgba(255,255,255,.92);
}
.jog__thumbs {
  display: flex; gap: .4rem; padding: .55rem .65rem .7rem;
  overflow-x: auto; background: rgba(6, 20, 43, 0.92);
}
.jog__thumb {
  flex: 0 0 auto; width: 3.4rem; height: 2.55rem; padding: 0; border: 2px solid transparent;
  border-radius: .45rem; overflow: hidden; cursor: pointer; background: #1e293b; opacity: .72;
}
.jog__thumb img,
.jog__thumb video { width: 100%; height: 100%; object-fit: cover; display: block; }
.jog__thumb { position: relative; }
.jog__thumb-play {
  position: absolute; inset: 0; display: grid; place-items: center;
  color: #fff; font-size: .7rem; background: rgba(11,36,71,.35); pointer-events: none;
}
.jog__thumb.is-active { opacity: 1; border-color: #f2a900; }

@media (prefers-reduced-motion: reduce) {
  .jog__skeleton { animation: none; }
  .jog__main { transition: none; }
}
