/* 地図で探す（tullys.info） 2026-09-23 */
.tullys-map-app { margin: 24px 0 0; line-height: 1.6; color: #333; }
.tullys-map-page .tm-intro { margin-bottom: 0; }

.tm-controls { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 10px; }
.tm-chip, .tm-locate, .tm-item-map {
	appearance: none; -webkit-appearance: none; border: 1px solid #bbb; background: #fff; color: #333;
	border-radius: 999px; padding: 8px 14px; font-size: 14px; line-height: 1.2; cursor: pointer; font-family: inherit;
}
.tm-chip[aria-pressed="true"] { background: #2e7d32; border-color: #2e7d32; color: #fff; }
.tm-locate { border-color: #1e6fd9; color: #1e6fd9; margin-left: auto; }
.tm-locate:disabled { opacity: .6; cursor: default; }
.tm-search { flex: 1 1 200px; min-width: 160px; margin: 0; }
.tm-search input { width: 100%; box-sizing: border-box; border: 1px solid #bbb; border-radius: 8px; padding: 8px 12px; font-size: 14px; line-height: 1.4; margin: 0; }
.tm-status { font-size: 13px; color: #555; margin: 0 0 8px; line-height: 1.5; }

.tm-map { width: 100%; height: 62vh; min-height: 360px; max-height: 720px; border: 1px solid #ddd; border-radius: 8px; background: #eef2f5; position: relative; z-index: 0; }
@media (min-width: 900px) { .tm-map { height: 560px; } }

.tm-legend { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 16px; padding: 0; margin: 10px 0 0; font-size: 13px; color: #555; line-height: 1.5; }
.tm-legend li { display: flex; align-items: center; gap: 6px; margin: 0; }
.tm-dot { display: inline-block; width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px #bbb; box-sizing: content-box; }
.tm-p1 { background: #2e7d32; }
.tm-p0 { background: #8d8d8d; }
.tm-p-1 { background: #f2a900; }
.tm-approx { background: rgba(46, 125, 50, .35); border: 2px dashed #2e7d32; box-shadow: none; }

.tullys-map-page .tm-list-title { font-size: 18px; margin: 28px 0 10px; padding: 0 0 6px; border-bottom: 2px solid #333; line-height: 1.4; }
.tm-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 10px; }
@media (min-width: 700px) { .tm-list { grid-template-columns: 1fr 1fr; } }
.tm-item { border: 1px solid #e3e3e3; border-radius: 8px; padding: 12px 14px; margin: 0; }
.tm-item-head { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.tm-item-name { font-weight: 700; font-size: 15px; text-decoration: none; line-height: 1.4; }
.tm-item-dist { font-size: 13px; color: #555; white-space: nowrap; }
.tm-item-badges, .tm-popup-badges { margin: 6px 0 4px; display: flex; flex-wrap: wrap; gap: 6px; }
.tm-item-row { font-size: 13px; margin: 2px 0; line-height: 1.5; }
.tm-muted { color: #777; }
.tm-item-map { border-radius: 6px; padding: 5px 10px; font-size: 12px; margin-top: 8px; }
.tm-badge { display: inline-block; font-size: 12px; line-height: 1.2; padding: 3px 8px; border-radius: 4px; color: #fff; background: #8d8d8d; }
.tm-badge-p1 { background: #2e7d32; }
.tm-badge-p0 { background: #8d8d8d; }
.tm-badge-p-1 { background: #f2a900; color: #333; }
.tm-badge-w1 { background: #1e6fd9; }
.tm-badge-w0 { background: #cfd8dc; color: #333; }
.tm-empty { color: #777; }
.tm-note { font-size: 12px; color: #777; margin: 20px 0 0; line-height: 1.7; }

.tm-popup { font-size: 13px; line-height: 1.5; }
.tm-popup-name { font-weight: 700; font-size: 14px; margin-bottom: 4px; }
.tm-popup-row { margin: 2px 0; }
.tm-popup-link { display: inline-block; margin-top: 6px; }
/* まとまりの丸は青系にして、電源の色（緑・灰・黄）と見分ける */
.marker-cluster-small, .marker-cluster-medium, .marker-cluster-large { background-color: rgba(30, 111, 217, .25); }
.marker-cluster-small div, .marker-cluster-medium div, .marker-cluster-large div { background-color: rgba(30, 111, 217, .85); color: #fff; font-weight: 700; cursor: pointer; }
.tm-cluster span { line-height: 30px; font-size: 12px; letter-spacing: -.02em; }
.tm-cluster small { font-size: 9px; font-weight: 400; margin-left: 1px; }
.tm-hint { font-size: 13px; color: #555; margin: 8px 0 0; line-height: 1.6; }
/* テーマの「canvas { max-width:100% }」で店の点を描く canvas が幅0になるのを防ぐ（Leaflet の初期化CSSは img と svg しか守っていない） */
.leaflet-container canvas, .leaflet-pane > canvas { max-width: none !important; max-height: none !important; display: block; }
.leaflet-container { font-family: inherit; font-size: 13px; }
.leaflet-container a { color: #1e6fd9; }
.leaflet-popup-content { margin: 12px 16px; }
