/* ============================================================
   SURVEILLANCE TILES — CCTV-STYLE SCENES + DETECTION OVERLAY
   Overrides the blank-tile defaults in hero-engine.css
   ============================================================ */

.hv-surv-cam {
  position: relative;
  aspect-ratio: 16/9;
  border-radius: 4px;
  overflow: hidden;
  background-color: #050a14 !important;
  background-size: cover !important;
  background-position: center !important;
  border: 1px solid rgba(245,158,11,0.18) !important;
  filter: contrast(1.05) saturate(0.55) brightness(0.78);
  isolation: isolate;
}

/* Faint scan line to read as security feed */
.hv-surv-scan-line {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(
    0deg,
    rgba(255,255,255,0.04) 0px,
    rgba(255,255,255,0.04) 1px,
    transparent 1px,
    transparent 3px
  );
  pointer-events: none;
  mix-blend-mode: overlay;
  z-index: 1;
}

.hv-surv-vignette {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at center, transparent 40%, rgba(0,0,0,0.55) 100%),
    linear-gradient(180deg, rgba(245,158,11,0.04), transparent 30%);
  pointer-events: none;
  z-index: 1;
}

/* Corner brackets — like a real CCTV viewfinder */
.hv-surv-corner {
  position: absolute;
  width: 14px; height: 14px;
  border: 1px solid rgba(245,158,11,0.55);
  z-index: 2;
}
.hv-surv-corner.tl { top: 6px; left: 6px; border-right: none; border-bottom: none; }
.hv-surv-corner.tr { top: 6px; right: 6px; border-left: none; border-bottom: none; }
.hv-surv-corner.bl { bottom: 22px; left: 6px; border-right: none; border-top: none; }
.hv-surv-corner.br { bottom: 22px; right: 6px; border-left: none; border-top: none; }

/* Detection box — must override the existing .hv-surv-box defaults */
.hv-surv-cam .hv-surv-box {
  position: absolute !important;
  top: 30% !important;
  left: 34% !important;
  width: 36% !important;
  height: 42% !important;
  border: 1.5px solid #f59e0b !important;
  border-radius: 2px;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.5), 0 0 14px rgba(245,158,11,0.55);
  animation: hv-surv-scan 2.8s ease-in-out infinite alternate !important;
  z-index: 3;
}

.hv-sev-high .hv-surv-box { border-color: #ef4444 !important; box-shadow: 0 0 0 1px rgba(0,0,0,0.5), 0 0 14px rgba(239,68,68,0.55) !important; }
.hv-sev-low  .hv-surv-box { border-color: #5EFFA4 !important; box-shadow: 0 0 0 1px rgba(0,0,0,0.5), 0 0 12px rgba(94,255,164,0.45) !important; }

.hv-surv-box-tag {
  position: absolute;
  top: -18px; left: -1px;
  font-family: ui-monospace, monospace;
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #0a0a0a;
  background: #f59e0b;
  padding: 2px 6px;
  border-radius: 2px 2px 0 0;
  white-space: nowrap;
}
.hv-sev-high .hv-surv-box-tag { background: #ef4444; color: #fff; }
.hv-sev-low  .hv-surv-box-tag { background: #5EFFA4; color: #0a0a0a; }

/* Meta strip across bottom */
.hv-surv-meta {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 4px 8px;
  background: linear-gradient(0deg, rgba(0,0,0,0.85), transparent);
  font-family: ui-monospace, monospace;
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.78);
  z-index: 2;
}
.hv-surv-id { color: #5EFFA4; }
.hv-surv-loc { color: rgba(255,255,255,0.6); }
.hv-surv-time { color: rgba(255,255,255,0.5); }

/* Hide the legacy noise + label nodes if they sneak back */
.hv-surv-noise { display: none !important; }
.hv-surv-cam > .hv-surv-label { display: none !important; }
