/* Rota 45 — live position card (map + 3D van). Uses the page tokens:
   --red, --ink, --grey-2, --mono, --ease, --shadow-lg. */
/* live position: map + 3D van, framed like a telemetry screen */
.live-map{position:relative;aspect-ratio:1/1;background:var(--ink);overflow:hidden;box-shadow:var(--shadow-lg)}
.lm-canvas{position:absolute;inset:0}
.lm-canvas canvas{outline:none}
.lm-fallback{
  position:absolute;inset:0;transition:opacity .8s var(--ease);
  background:
    radial-gradient(circle at 50% 56%,rgba(255,0,25,.35) 0 6px,transparent 7px),
    radial-gradient(circle at 50% 56%,transparent 0 26px,rgba(255,0,25,.25) 27px 28px,transparent 29px),
    repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 34px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 34px),
    var(--ink);
}
.live-map.ready .lm-fallback{opacity:0;pointer-events:none}
.lm-hud{
  position:absolute;inset:0;pointer-events:none;color:#fff;
  display:flex;flex-direction:column;justify-content:space-between;padding:22px 24px;
  background:linear-gradient(to bottom,rgba(11,11,12,.8),transparent 26%,transparent 76%,rgba(11,11,12,.85));
}
.lm-hud::before{ /* red corner brackets */
  content:"";position:absolute;inset:12px;
  background:
    linear-gradient(var(--red),var(--red)) left top/18px 2px no-repeat,
    linear-gradient(var(--red),var(--red)) left top/2px 18px no-repeat,
    linear-gradient(var(--red),var(--red)) right top/18px 2px no-repeat,
    linear-gradient(var(--red),var(--red)) right top/2px 18px no-repeat,
    linear-gradient(var(--red),var(--red)) left bottom/18px 2px no-repeat,
    linear-gradient(var(--red),var(--red)) left bottom/2px 18px no-repeat;
}
.lm-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.lm-id{
  display:grid;gap:6px;font-family:var(--mono);font-size:10.5px;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--grey-2);
}
.lm-clock{
  font-family:var(--mono);font-weight:700;font-size:22px;line-height:1;
  letter-spacing:-.01em;font-variant-numeric:tabular-nums;
}
.lm-clock small{font-size:.48em;color:var(--grey-2);margin-left:6px;letter-spacing:.12em}
.lm-coord{font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.12em;color:#fff}
.lm-coord span{color:var(--red)}
.lm-canvas .maplibregl-canvas-container.maplibregl-interactive{cursor:grab}
.lm-canvas .maplibregl-canvas-container.maplibregl-interactive:active{cursor:grabbing}
.lm-ctrl{position:absolute;right:20px;top:50%;transform:translateY(-50%);display:grid;gap:6px}
.lm-ctrl button{
  width:36px;height:36px;display:grid;place-items:center;padding:0;
  border:1px solid rgba(255,255,255,.16);border-radius:2px;background:rgba(11,11,12,.78);color:#fff;
  transition:background .2s,border-color .2s;
}
.lm-ctrl button:hover{background:var(--red);border-color:var(--red)}
.live-map:not(.ready) .lm-ctrl{display:none}
.live-map .maplibregl-cooperative-gesture-screen{
  background:rgba(11,11,12,.6);font-family:var(--mono);font-size:12px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;text-align:center;
}
.live-map .maplibregl-ctrl-bottom-right .maplibregl-ctrl{margin:0 26px 26px 0}
.live-map .maplibregl-ctrl-attrib{background:rgba(11,11,12,.7);color:var(--grey-2);font-size:10px}
.live-map .maplibregl-ctrl-attrib a{color:var(--grey-2)}
.live-map .maplibregl-ctrl-attrib-button{filter:invert(1);opacity:.6}
.live{display:inline-flex;align-items:center;gap:7px;color:#fff}
.live::before{
  content:"";width:7px;height:7px;border-radius:50%;background:var(--red);
  box-shadow:0 0 0 0 rgba(255,0,25,.7);animation:pulse 2s infinite;
}
@keyframes pulse{
  70%{box-shadow:0 0 0 9px rgba(255,0,25,0)}
  100%{box-shadow:0 0 0 0 rgba(255,0,25,0)}
}

/* destination: a chequered flag on a white pole */
.lm-flag{position:relative;width:26px;height:32px;pointer-events:none}
.lm-flag::before{content:"";position:absolute;left:0;bottom:0;width:2px;height:32px;background:#fff;box-shadow:0 0 6px rgba(0,0,0,.6)}
.lm-flag::after{
  content:"";position:absolute;left:2px;top:0;width:24px;height:16px;
  background-color:#fff;
  background-image:conic-gradient(#0b0b0c 90deg,transparent 90deg 180deg,#0b0b0c 180deg 270deg,transparent 270deg);
  background-size:8px 8px;box-shadow:0 2px 8px rgba(0,0,0,.6);
}

/* narrow phones: keep the label and the clock on one line each */
@media (max-width:400px){
  .lm-hud{padding:18px 18px}
  .lm-id{font-size:9.5px;letter-spacing:.14em}
  .lm-clock{font-size:18px}
  .lm-coord{font-size:10.5px;letter-spacing:.08em}
}

/* location switched off by the manager: grey dot, no coordinates, a notice */
.live-map.is-off .live::before{background:var(--grey-2);box-shadow:none;animation:none}
.live-map.is-off .lm-coord{visibility:hidden}
.lm-paused{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) skewX(-10deg);display:none;
  padding:9px 14px;background:rgba(11,11,12,.86);border:1px solid rgba(255,255,255,.2);
  font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:#fff;white-space:nowrap;pointer-events:none;
}
.live-map.is-off .lm-paused{display:block}
