.map-title {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  margin:34px 0 18px
}
.map-title h1 {
  font-size:clamp(36px,4vw,54px)
}
.map-workbench {
  border:1px solid var(--line);
  background:var(--surface);
  border-radius:var(--radius);
  overflow:hidden
}
.map-search {
  display:grid;
  grid-template-columns:minmax(190px,1.7fr) minmax(190px,1.15fr) 108px 148px auto;
  gap:10px;
  padding:14px;
  border-bottom:1px solid var(--line);
  align-items:end
}
.map-search label {
  display:grid;
  gap:4px;
  font-size:13px;
  font-weight:bold
}
.map-search input,.map-search select {
  width:100%
}
.map-search .button {
  min-height:44px;
  white-space:nowrap
}
.map-layout {
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(305px,.9fr);
  min-height:620px
}
.map-stage {
  position:relative;
  min-height:620px;
  border-right:1px solid var(--line)
}
#job-map {
  position:absolute;
  inset:0;
  z-index:0;
  background:#dfe8df
}
.map-area-action {
  position:absolute;
  left:50%;
  top:16px;
  transform:translateX(-50%);
  z-index:500;
  box-shadow:0 2px 8px #15151333
}
.map-tile-status {
  position:absolute;
  bottom:12px;
  left:12px;
  z-index:500;
  max-width:290px;
  padding:8px 10px;
  background:#fffdf9e8;
  border:1px solid var(--line);
  border-radius:4px;
  font-size:13px;
  margin:0
}
.job-pin-wrap {
  display:grid;
  justify-items:center;
  width:48px;
  padding-bottom:5px;
  background:transparent;
  border:0;
  cursor:pointer
}
.job-pin {
  display:grid;
  place-items:center;
  min-width:34px;
  height:34px;
  padding:0 7px;
  border:2px solid #fff;
  border-radius:50% 50% 50% 4px;
  transform:rotate(-45deg);
  background:var(--amber);
  color:var(--ink);
  box-shadow:0 2px 7px #15151355;
  font-weight:bold;
  font-size:13px
}
.job-pin b {
  transform:rotate(45deg)
}
.job-pin::after {
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--ink)
}
.job-pin:has(b:not(:empty))::after {
  display:none
}
.map-results {
  display:flex;
  min-width:0;
  flex-direction:column;
  max-height:620px
}
.map-result-summary {
  padding:20px 20px 12px;
  border-bottom:1px solid var(--line)
}
.map-result-summary h2 {
  font-size:23px
}
.map-result-summary p {
  color:var(--muted);
  margin:5px 0 0;
  font-size:14px
}
.map-selection {
  color:var(--ochre)!important;
  font-weight:bold
}
.map-clear {
  padding:0;
  margin-top:7px;
  border:0;
  background:transparent;
  color:var(--ochre);
  font-weight:bold
}
.map-result-scroll {
  overflow:auto;
  flex:1
}
.map-job-list {
  list-style:none;
  padding:0;
  margin:0
}
.map-job-list li {
  display:grid;
  grid-template-columns:43px minmax(0,1fr) auto;
  gap:10px;
  padding:15px 18px;
  border-bottom:1px solid var(--line)
}
.map-job-list li[hidden] {
  display:none
}
.map-job-list .company-brand {
  width:40px;
  height:40px;
  font-size:18px
}
.map-job-list .company-brand img {
  width:40px;
  height:40px
}
.map-job-list div {
  min-width:0;
  display:grid
}
.map-job-title {
  font-weight:bold;
  line-height:1.25
}
.map-job-list span,.map-job-list small {
  color:var(--muted);
  font-size:13px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.map-locate {
  align-self:center;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:1px solid var(--line);
  border-radius:50%;
  background:transparent;
  color:var(--ochre)
}
.map-pages {
  display:flex;
  gap:14px;
  justify-content:space-between;
  padding:13px 18px;
  border-top:1px solid var(--line);
  font-size:14px
}
.map-pages a {
  color:var(--ochre);
  font-weight:bold
}
.map-empty,.map-note {
  color:var(--muted)
}
.map-empty {
  padding:24px 20px
}
.map-note {
  margin-top:12px;
  font-size:13px
}
.maplibregl-map {
  font-family:var(--font)
}
.maplibregl-popup-content {
  font-family:var(--font);
  font-size:13px;
  padding:7px 10px
}
@media(max-width:1100px) {
  .map-search {
    grid-template-columns:1fr 1fr 105px 125px
  }
  .map-search .button {
    grid-column:span 4
  }
}
@media(max-width:760px) {
  .map-title {
    margin-top:24px
  }
  .map-search {
    grid-template-columns:1fr 1fr;
    padding:12px
  }
  .map-search .map-keywords,.map-search .map-city,.map-search .button {
    grid-column:span 2
  }
  .map-layout {
    display:flex;
    flex-direction:column;
    min-height:0
  }
  .map-stage {
    min-height:390px;
    border-right:0;
    border-bottom:1px solid var(--line)
  }
  .map-results {
    max-height:510px
  }
}
