.kst-map{--kst-blue:#2463d4;--kst-line4:#00a5de;--kst-navy:#172b4d;--kst-orange:#ff8a34;--kst-border:#e1e8f0;border-top:2px solid var(--kst-navy);padding-top:42px}
.kst-map__heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}
.kst-map__heading h2{margin:.2rem 0 .6rem;color:var(--kst-navy);font-size:clamp(2rem,4vw,3.5rem);line-height:1.05}
.kst-map__heading p{max-width:760px;margin:0;color:#5f6b7a}
.kst-map .kst-eyebrow{color:var(--kst-line4)!important;font-size:.76rem;font-weight:800!important;letter-spacing:.13em;text-transform:uppercase}
.kst-map__reset{border:0;background:transparent;color:var(--kst-blue);font-weight:800;white-space:nowrap;cursor:pointer}
.kst-map__mobile-tabs{display:none}
.kst-map__stage{display:grid;grid-template-columns:minmax(310px,360px) minmax(0,1fr);height:620px;overflow:hidden;border:1px solid var(--kst-border);border-radius:14px;background:#fff;box-shadow:0 18px 50px rgba(23,43,77,.08)}
.kst-map__sidebar{display:flex;min-width:0;min-height:0;flex-direction:column;border-right:1px solid var(--kst-border);background:#fff}
.kst-map__sidebar-head{position:relative;z-index:2;padding:18px 16px 14px;border-bottom:1px solid var(--kst-border);background:#fff;box-shadow:0 7px 18px rgba(23,43,77,.045)}
.kst-map__sidebar-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}
.kst-map__line-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:#e4f7fd;color:#067da6;font-size:.74rem;font-weight:900;white-space:nowrap}
.kst-map__line-pill i{width:10px;height:10px;border-radius:50%;background:var(--kst-line4);box-shadow:0 0 0 3px #fff}
.kst-map__status{color:#78879a;font-size:.7rem;font-weight:800;white-space:nowrap}
.kst-map__search{display:flex;align-items:stretch;width:100%;overflow:hidden;border:1px solid #dbe4ee;border-radius:9px;background:#f6f8fb}
.kst-map__search:focus-within{border-color:var(--kst-line4);box-shadow:0 0 0 3px rgba(0,165,222,.12)}
.kst-map__search input{width:100%;min-width:0;border:0;background:transparent;padding:11px 12px;color:var(--kst-navy);font:inherit;font-size:.8rem;outline:0}
.kst-map__search input::-webkit-search-cancel-button{display:none}
.kst-map__search-clear{display:grid;flex:0 0 38px;place-items:center;border:0;background:transparent;color:#718096;font:600 1.05rem/1 system-ui,sans-serif;cursor:pointer}
.kst-map__search-clear[hidden]{display:none}
.kst-map__chips{display:flex;gap:5px;margin-top:11px}
.kst-map__chips button{flex:1;border:1px solid var(--kst-border);border-radius:999px;background:#fff;padding:7px 5px;color:#657386;font:inherit;font-size:.67rem;font-weight:850;cursor:pointer}
.kst-map__chips button:hover,.kst-map__chips button:focus-visible{border-color:var(--kst-navy);color:var(--kst-navy)}
.kst-map__chips button.is-active{border-color:var(--kst-navy);background:var(--kst-navy);color:#fff}
.kst-map__search-message{min-height:1em;margin:9px 2px 0;color:#718096;font-size:.68rem;font-weight:750;line-height:1.35}
.kst-map__station-list{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:5px 0 18px;scrollbar-color:#c8d4df transparent;scrollbar-width:thin}
.kst-map__station-card{position:relative;border-bottom:1px solid #edf1f5;background:#fff;transition:background .16s,border-color .16s,box-shadow .16s}
.kst-map__station-card[hidden]{display:none}
.kst-map__station-card::before{position:absolute;z-index:1;top:0;bottom:0;left:0;width:4px;background:transparent;content:""}
.kst-map__station-card.is-map-hover{background:#f6fbfd}
.kst-map__station-card.is-selected{background:#f5fbfe;box-shadow:inset 0 0 0 1px rgba(0,165,222,.14)}
.kst-map__station-card.is-selected::before{background:var(--kst-line4)}
.kst-map__station-card.is-selected .kst-map__station-title strong{color:var(--kst-blue)}
.kst-map__station-summary{display:grid;width:100%;grid-template-columns:29px minmax(0,1fr) auto;grid-template-rows:auto auto;gap:5px 8px;border:0;background:transparent;padding:15px 14px 14px;color:var(--kst-navy);text-align:left;cursor:pointer}
.kst-map__station-summary:focus-visible{outline:2px solid var(--kst-blue);outline-offset:-3px}
.kst-map__station-index{grid-row:1/3;color:#9aa8b7;font-size:.62rem;font-weight:900;letter-spacing:.08em;padding-top:3px}
.kst-map__station-title{display:flex;min-width:0;align-items:baseline;gap:7px;grid-column:2;grid-row:1}
.kst-map__station-title strong{overflow:hidden;font-size:.88rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.kst-map__station-title small{flex:0 0 auto;color:#718096;font-size:.68rem;font-weight:750}
.kst-map__station-lines{display:flex;max-width:110px;flex-wrap:wrap;justify-content:flex-end;gap:3px;grid-column:3;grid-row:1}
.kst-map__station-guide-count{grid-column:2;grid-row:2;color:#8491a1;font-size:.66rem;font-weight:750}
.kst-map__badge{display:inline-flex;border-radius:999px;background:var(--badge);padding:5px 9px;color:#fff;font-size:.66rem;font-weight:900;white-space:nowrap}
.kst-map__badge.is-compact{padding:3px 6px;font-size:.57rem}
.kst-map__station-details{padding:0 15px 18px 51px}
.kst-map__station-details[hidden]{display:none}
.kst-map__station-details>p{margin:0 0 13px;color:#657386;font-size:.74rem;line-height:1.55}
.kst-map__guide-groups{display:grid;gap:7px}
.kst-map__guide-group{display:grid;grid-template-columns:62px minmax(0,1fr);align-items:start;gap:6px 8px;padding-top:7px;border-top:1px solid #e8eef4}
.kst-map__guide-group strong{color:var(--kst-navy);font-size:.69rem}
.kst-map__guide-group a{color:var(--kst-blue);font-size:.7rem;font-weight:800;line-height:1.4;text-decoration:none}
.kst-map__guide-group a:hover{text-decoration:underline}
.kst-map__guide-group.is-empty span{color:#9aa6b4;font-size:.67rem;font-weight:700}
.kst-map__show-map{display:none;margin-top:14px;border:0;border-radius:7px;background:var(--kst-navy);padding:9px 12px;color:#fff;font:inherit;font-size:.7rem;font-weight:850;cursor:pointer}
.kst-map__viewport{position:relative;min-width:0;min-height:0;overflow:hidden;background:linear-gradient(180deg,#f7fafc,#fff);touch-action:none}
.kst-map__viewport svg{display:block;width:100%;height:620px;cursor:grab}
.kst-map__viewport svg:active{cursor:grabbing}
.kst-map__zoom{position:absolute;z-index:6;top:14px;right:14px;display:grid;gap:6px}
.kst-map__zoom button{display:grid;place-items:center;width:39px;height:39px;border:1px solid var(--kst-border);border-radius:50%;background:#fff;color:var(--kst-navy);box-shadow:0 5px 18px rgba(23,43,77,.12);font:800 1.2rem/1 system-ui,sans-serif;cursor:pointer}
.kst-map__zoom button:hover,.kst-map__zoom button:focus-visible{border-color:var(--kst-navy);background:var(--kst-navy);color:#fff}
.kst-map__zoom button:disabled{opacity:.4;cursor:not-allowed}
.kst-map__back{position:absolute;z-index:6;top:15px;left:15px;border:1px solid #d9e3ed;border-radius:999px;background:rgba(255,255,255,.96);padding:9px 13px;color:var(--kst-blue);box-shadow:0 5px 16px rgba(23,43,77,.09);font:inherit;font-size:.7rem;font-weight:850;cursor:pointer}
.kst-map__back[hidden]{display:none}
.kst-map__line{fill:none;stroke:var(--line-color,var(--kst-line4));stroke-width:7;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.kst-station-node{cursor:pointer;opacity:1;outline:none;transition:opacity .2s}
.kst-station-node.is-filtered-out{opacity:.09;pointer-events:none}
.kst-station-node__hit{fill:rgba(0,0,0,.001);stroke:none;pointer-events:fill}
.kst-station-node__halo{fill:rgba(255,138,52,.15);stroke:var(--kst-orange);stroke-width:3;vector-effect:non-scaling-stroke;opacity:0;pointer-events:none}
.kst-station-node__dot{fill:#fff;stroke-width:2.2;vector-effect:non-scaling-stroke;transition:r .15s,fill .15s;pointer-events:none}
.kst-station-node__segment{fill:none;stroke-width:4;stroke-linecap:butt;vector-effect:non-scaling-stroke;pointer-events:none}
.kst-station-node__label{opacity:0;fill:var(--kst-navy);stroke:#fff;stroke-width:4px;paint-order:stroke;stroke-linejoin:round;font:800 10.5px/1 system-ui,sans-serif;pointer-events:none;transition:opacity .15s,font-size .18s,stroke-width .18s,fill .18s}
.kst-station-node__label.is-visible{opacity:1}
.kst-station-node.is-selected .kst-station-node__label{opacity:1;fill:#102544;stroke-width:6px;font-size:13.5px;font-weight:900;letter-spacing:-.15px}
.kst-station-node.is-list-hover .kst-station-node__label{opacity:1;stroke-width:5px;font-size:12px}
.kst-station-node:hover .kst-station-node__dot,.kst-station-node:focus-visible .kst-station-node__dot,.kst-station-node.is-list-hover .kst-station-node__dot,.kst-station-node.is-selected .kst-station-node__dot{r:8px;fill:var(--kst-orange);stroke:var(--kst-navy)!important}
.kst-station-node.is-selected .kst-station-node__halo{opacity:1}
.kst-station-node.is-selected .kst-station-node__dot{r:9px;stroke-width:3}
.kst-map__tooltip{position:absolute;z-index:7;min-width:132px;padding:9px 11px;border-top:3px solid var(--kst-line4);border-radius:7px;background:#fff;box-shadow:0 12px 30px rgba(23,43,77,.18);color:var(--kst-navy);pointer-events:none}
.kst-map__tooltip[hidden],.kst-map__empty[hidden]{display:none}
.kst-map__tooltip strong,.kst-map__tooltip span{display:block;line-height:1.25}
.kst-map__tooltip strong{font-size:.78rem}
.kst-map__tooltip span{margin-top:3px;color:#64748b;font-size:.68rem;font-weight:700}
.kst-map__empty{position:absolute;z-index:4;top:50%;left:50%;display:grid;gap:7px;max-width:360px;padding:20px 24px;transform:translate(-50%,-50%);border:1px solid var(--kst-border);border-radius:8px;background:rgba(255,255,255,.95);color:#5f6b7a;text-align:center}
.kst-map__empty strong{color:var(--kst-navy);font-size:1.05rem}
.kst-map__hint{margin:12px 0 0;color:#64748b;font-size:.73rem;line-height:1.65;text-align:center}
@media(max-width:1000px){
  .kst-map__stage{grid-template-columns:minmax(285px,330px) minmax(0,1fr)}
  .kst-map__station-title{display:grid;gap:2px}
}
@media(max-width:760px){
  .kst-map{padding-top:28px}
  .kst-map__heading{align-items:start}
  .kst-map__heading h2{font-size:2.25rem}
  .kst-map__mobile-tabs{display:flex;gap:5px;margin-bottom:8px;padding:4px;border:1px solid var(--kst-border);border-radius:10px;background:#f4f7fa}
  .kst-map__mobile-tabs button{flex:1;border:0;border-radius:7px;background:transparent;padding:9px;color:#66758a;font:inherit;font-size:.75rem;font-weight:850;cursor:pointer}
  .kst-map__mobile-tabs button.is-active{background:#fff;color:var(--kst-navy);box-shadow:0 3px 12px rgba(23,43,77,.09)}
  .kst-map__stage{display:block;height:540px;border-radius:12px}
  .kst-map__sidebar,.kst-map__viewport{height:540px;border-right:0}
  .kst-map[data-mobile-view="map"] .kst-map__sidebar{display:none}
  .kst-map[data-mobile-view="list"] .kst-map__viewport{display:none}
  .kst-map__viewport svg{height:540px}
  .kst-map__show-map{display:inline-flex;align-items:center;gap:8px}
  .kst-map__station-title{display:flex}
  .kst-map__line{stroke-width:8}
  .kst-station-node__hit{r:19px}
}
@media(max-width:430px){
  .kst-map__heading{display:block}
  .kst-map__reset{margin-top:12px}
  .kst-map__station-summary{grid-template-columns:25px minmax(0,1fr) auto;padding-right:11px;padding-left:11px}
  .kst-map__station-details{padding-left:44px}
}
