#shield-express-map {
  width: 100%;
  min-height: 460px;
  border-radius: 1rem;
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.shield-express-wrapper {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
.shield-express-panel {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  padding: 1rem 1.25rem;
}
.shield-express-header h3 { margin: 0 0 .25rem; }
.shield-express-subtitle { margin: 0; color: #4b5563; }
.shield-express-status { margin: .25rem 0 0; font-size: .9rem; color: #374151; }
.badge {
  display: inline-block;
  padding: .15rem .5rem;
  border-radius: .5rem;
  font-size: .8rem;
  border: 1px solid #d1fae5;
  background: #ecfdf5;
  color: #065f46;
}
.shield-express-details {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 1rem;
}
.detail-group h4 { margin: 0 0 .25rem; }
.route-list { margin: .25rem 0 0 .75rem; }
.shield-express-image { margin-top: 1rem; }
.shield-express-image img {
  width: 100%;
  max-height: 260px;
  object-fit: cover;
  border-radius: .75rem;
  border: 1px solid #e5e7eb;
  cursor: zoom-in;
}
.attribution { font-size: .8rem; color: #6b7280; margin-top: .5rem; }

/* Modal */
.shield-modal[aria-hidden="true"]{ display:none; }
.shield-modal { position:fixed; inset:0; z-index:9999; }
.shield-modal-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.6); }
.shield-modal-content {
  position:absolute; inset:5%; background:#111; border-radius:.75rem; padding:.5rem;
  display:flex; align-items:center; justify-content:center; overflow:auto;
  box-shadow:0 20px 50px rgba(0,0,0,.5);
}
#shield-modal-img { max-width:100%; max-height:100%; display:block; }
.shield-modal-close {
  position:absolute; top:.5rem; right:.75rem; font-size:2rem; line-height:1;
  background:transparent; border:none; color:#fff; cursor:pointer;
}

@media (max-width: 900px) {
  .shield-express-details { grid-template-columns: 1fr; }
}