.venue-map-card { background:var(--paper); }
.sonic-view-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); }
.sonic-view-panel:not([hidden]) { animation:sonic-panel-enter 260ms cubic-bezier(.22,1,.36,1); }
.sonic-view-panel .event-files-section { padding-top:43px; }
.venue-map-frame { border-top:1px solid var(--line); }
.venue-map-canvas {
  position:relative;
  aspect-ratio:2000 / 1175;
  overflow:hidden;
  background:#819e53;
  cursor:crosshair;
  touch-action:pan-y;
  contain:layout paint;
}
.venue-map-canvas.is-zoomed { cursor:grab; touch-action:none; }
.venue-map-canvas.is-panning { cursor:grabbing; }
.venue-map-stage {
  position:absolute;
  inset:0;
  transform:translate3d(var(--venue-pan-x,0),var(--venue-pan-y,0),0) scale(var(--venue-zoom,1));
  transform-origin:center;
  will-change:transform;
}
.venue-map-canvas::after {
  content:'TAP TO SET START';
  position:absolute;
  z-index:3;
  left:10px;
  top:10px;
  padding:5px 7px;
  background:rgba(16,24,40,.86);
  color:var(--paper);
  font:500 8px 'DM Mono',monospace;
  letter-spacing:.06em;
  pointer-events:none;
  opacity:.82;
  transition:opacity 180ms cubic-bezier(.25,1,.5,1),transform 180ms cubic-bezier(.25,1,.5,1);
}
.venue-map-canvas.is-manual::after,.venue-map-canvas.is-picking::after {
  content:'PLACE CURRENT POSITION';
  background:var(--yellow);
  color:var(--ink);
  opacity:1;
  transform:translateY(2px);
}
.venue-map-zoom-hint {
  position:absolute;
  z-index:4;
  right:10px;
  bottom:10px;
  padding:5px 7px;
  background:rgba(16,24,40,.84);
  color:var(--paper);
  font:500 8px 'DM Mono',monospace;
  letter-spacing:.04em;
  pointer-events:none;
  transition:opacity 220ms cubic-bezier(.25,1,.5,1),transform 220ms cubic-bezier(.25,1,.5,1);
}
.venue-map-canvas.is-zoomed .venue-map-zoom-hint { opacity:0; transform:translateY(3px); }
.venue-map-reset {
  position:absolute;
  z-index:5;
  right:10px;
  top:10px;
  min-height:36px;
  padding:0 11px;
  border:1px solid rgba(245,243,238,.72);
  border-radius:999px;
  background:rgba(16,24,40,.9);
  color:var(--paper);
  cursor:pointer;
  font:500 9px 'DM Mono',monospace;
  letter-spacing:.03em;
}
.venue-map-reset:hover,.venue-map-reset:focus-visible { background:var(--yellow); color:var(--ink); outline:none; }
.venue-map-image { position:absolute; inset:0 auto auto 0; width:100%; height:auto; clip-path:inset(0 0 40.955%); pointer-events:none; user-select:none; }
.venue-map-overlay { position:absolute; z-index:2; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.venue-route-casing,.venue-route-line { fill:none; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.venue-route-casing { stroke:rgba(245,243,238,.94); stroke-width:7.5; filter:drop-shadow(0 1px 1px rgba(16,24,40,.22)); }
.venue-route-line { stroke:var(--coral); stroke-width:3.5; }
.venue-accuracy { fill:rgba(144,215,255,.18); stroke:rgba(16,24,40,.62); stroke-width:2; vector-effect:non-scaling-stroke; }
.venue-position { fill:var(--blue); stroke:var(--paper); stroke-width:3; vector-effect:non-scaling-stroke; filter:drop-shadow(0 2px 3px rgba(16,24,40,.5)); }
.venue-position-core { fill:var(--paper); }
.venue-position-ring { fill:none; stroke:var(--blue); stroke-width:2.5; vector-effect:non-scaling-stroke; opacity:.75; transform-box:fill-box; transform-origin:center; animation:venue-position-pulse 1.8s cubic-bezier(.25,1,.5,1) infinite; }
.venue-target-pin { fill:var(--yellow); stroke:var(--ink); stroke-width:2.5; vector-effect:non-scaling-stroke; filter:drop-shadow(0 1px 1px rgba(16,24,40,.3)); }
.venue-target-dot { fill:var(--ink); }
.venue-route-traveler { fill:var(--yellow); stroke:var(--ink); stroke-width:3; vector-effect:non-scaling-stroke; filter:drop-shadow(0 2px 2px rgba(16,24,40,.4)); }
.venue-map-controls { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); }
.venue-map-controls button { min-height:48px; border:0; border-right:1px solid var(--line); background:var(--paper); color:var(--ink); cursor:pointer; font-size:11px; font-weight:800; }
.venue-map-controls button:last-child { border-right:0; }
.venue-map-controls button:hover,.venue-map-controls button:focus-visible,.venue-map-controls button.is-active { background:var(--yellow); outline:none; }
.venue-map-controls button:active { transform:scale(.98); }
.venue-map-controls button.is-loading { color:var(--coral-ink); }
.venue-map-controls button.is-loading::before { content:'●'; display:inline-block; margin-right:7px; animation:venue-gps-pulse .8s ease-in-out infinite alternate; }
.venue-map-status { min-height:42px; margin:0; padding:11px 20px; border-top:1px solid var(--line); color:var(--muted); font-size:10px; line-height:1.55; }
.venue-map-status[data-state="route"] { background:var(--ink); color:var(--paper); }
.venue-map-status[data-state="error"] { color:var(--coral-ink); }
.venue-route-summary { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; min-height:67px; padding:15px 20px; border-top:1px solid var(--line); background:var(--blue); }
.venue-route-summary strong { min-width:0; font-size:15px; letter-spacing:-.035em; }
.venue-route-summary span { flex:0 0 auto; color:rgba(16,24,40,.68); font:500 9px 'DM Mono',monospace; }
.venue-destination-panel { padding:22px 20px 20px; border-top:1px solid var(--line); }
.venue-destination-head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:12px; }
.venue-destination-head h3 { margin:0; font-size:17px; letter-spacing:-.045em; }
.venue-destination-head span { color:var(--coral); font:500 8px 'DM Mono',monospace; letter-spacing:.07em; }
.venue-destination-groups { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--line); }
.venue-destination-groups button { display:flex; align-items:center; justify-content:space-between; min-height:39px; padding:0 10px; border:0; border-right:1px solid var(--line); background:var(--paper); color:var(--ink); cursor:pointer; }
.venue-destination-groups button:last-child { border-right:0; }
.venue-destination-groups strong { font-size:11px; letter-spacing:-.035em; }
.venue-destination-groups span { color:var(--coral); font:500 9px 'DM Mono',monospace; }
.venue-destination-groups button:hover,.venue-destination-groups button:focus-visible { background:rgba(16,24,40,.06); outline:none; }
.venue-destination-groups button.is-active { background:var(--ink); color:var(--paper); }
.venue-destination-groups button.is-active span { color:var(--yellow); }
.venue-destination-context { min-height:24px; margin:0; padding:7px 1px 5px; color:var(--muted); font-size:9px; line-height:1.4; }
.venue-destinations { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.venue-destinations button { display:grid; grid-template-columns:27px minmax(0,1fr); gap:7px; align-items:center; min-height:54px; padding:7px 9px; border:0; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:transparent; color:var(--ink); cursor:pointer; text-align:left; transition:background 180ms cubic-bezier(.25,1,.5,1),color 180ms cubic-bezier(.25,1,.5,1),transform 120ms cubic-bezier(.25,1,.5,1); }
.venue-destinations button[hidden] { display:none; }
.venue-destination-number { color:var(--coral); font:500 9px 'DM Mono',monospace; }
.venue-destination-copy { display:grid; min-width:0; gap:2px; }
.venue-destination-copy strong { overflow:hidden; font-size:10px; letter-spacing:-.025em; text-overflow:ellipsis; white-space:nowrap; }
.venue-destination-copy small { overflow:hidden; color:var(--muted); font:500 7px 'DM Mono',monospace; letter-spacing:.02em; text-overflow:ellipsis; white-space:nowrap; }
.venue-destinations button:hover,.venue-destinations button:focus-visible { background:rgba(16,24,40,.06); outline:none; }
.venue-destinations button:active { transform:scale(.98); }
.venue-destinations button.is-selected { background:var(--coral); color:var(--ink); }
.venue-destinations button.is-selected .venue-destination-number,.venue-destinations button.is-selected small { color:var(--ink); }
.venue-map-note { margin:12px 0 0; color:var(--muted); font-size:9px; line-height:1.55; }
@keyframes venue-position-pulse { from { opacity:.75; transform:scale(.7); } to { opacity:0; transform:scale(2.2); } }
@keyframes venue-gps-pulse { from { opacity:.35; } to { opacity:1; } }
@keyframes sonic-panel-enter { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@media (min-width:460px) { .venue-destinations { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (prefers-reduced-motion:reduce) {
  .venue-position-ring,.venue-map-controls button.is-loading::before { animation:none; }
  .sonic-view-panel:not([hidden]) { animation:none; }
  .venue-map-canvas::after,.venue-map-zoom-hint,.venue-destinations button { transition:none; }
}
