/**
 * /map/ 지도 탐색 페이지 — PHASE 21 페이지 D
 */
.map-explorer{display:flex;flex-direction:column;height:calc(100vh - 0px);background:#fff}
.map-explorer__header{display:flex;align-items:center;gap:16px;padding:10px 18px;border-bottom:1px solid #e5e8ee;background:#fff;flex-wrap:wrap}
.map-explorer__brand{display:flex;align-items:center;gap:18px;flex:0 0 auto}
.map-explorer__home{font-weight:800;font-size:1.05rem;color:#0f172a;text-decoration:none}
.map-explorer__home:hover{color:#1d4ed8}
.map-explorer__nav{display:flex;gap:6px}
.map-explorer__nav a{padding:6px 12px;border-radius:8px;color:#475569;text-decoration:none;font-size:.92rem;font-weight:500;transition:all .12s}
.map-explorer__nav a:hover{background:#f1f4f8;color:#0f172a}
.map-explorer__nav a.is-active{background:#0f172a;color:#fff}
.map-explorer__search{position:relative;flex:1 1 320px;min-width:240px;max-width:520px}
.map-explorer__search-label{position:absolute;left:-9999px}
.map-explorer__search-input{width:100%;padding:9px 14px 9px 38px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") no-repeat 12px center;font:inherit;color:#0f172a;transition:all .12s}
.map-explorer__search-input:focus{outline:0;border-color:#1d4ed8;box-shadow:0 0 0 3px rgba(29,78,216,.12);background-color:#fff}
.map-explorer__suggest{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #e2e8f0;border-radius:10px;list-style:none;margin:0;padding:6px;max-height:340px;overflow-y:auto;display:none;z-index:20;box-shadow:0 8px 24px rgba(15,23,42,.08)}
.map-explorer__suggest.is-open{display:block}
.map-explorer__suggest li{padding:0}
.map-explorer__suggest button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:8px 10px;border:0;background:transparent;border-radius:8px;cursor:pointer;font-size:.92rem;color:#0f172a}
.map-explorer__suggest button:hover{background:#f1f4f8}
.map-explorer__suggest .me-suggest__icon{flex:0 0 20px;color:#64748b;font-size:.82rem}
.map-explorer__suggest .me-suggest__sub{color:#64748b;font-size:.78rem;margin-left:auto}
.map-explorer__stats{display:flex;gap:14px;color:#475569;font-size:.86rem;flex:0 0 auto;flex-wrap:wrap}
.map-explorer__stat strong{color:#0f172a;font-weight:700;margin-left:4px}
.stat__label{color:#64748b}

.map-explorer__body{display:flex;flex:1 1 auto;min-height:0;background:#fff}
.map-explorer__side{flex:0 0 360px;width:360px;border-right:1px solid #e5e8ee;display:flex;flex-direction:column;min-height:0;background:#fff}
.map-explorer__side-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #eef1f5}
.map-explorer__side-title{margin:0;font-size:1rem;font-weight:700;color:#0f172a}
.map-explorer__side-count{font-size:.84rem;color:#64748b;font-weight:600}
.map-explorer__list{list-style:none;margin:0;padding:0;flex:1 1 auto;overflow-y:auto}
.map-explorer__list .me-row{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid #f1f4f8;cursor:pointer;transition:background-color .12s}
.map-explorer__list .me-row:hover,
.map-explorer__list .me-row.is-focused{background:#f1f5fc}
.map-explorer__list .me-row__dot{width:10px;height:10px;border-radius:50%;background:#cbd5e1}
.map-explorer__list .me-row__dot.is-free{background:#22c55e}
.map-explorer__list .me-row__body{min-width:0}
.map-explorer__list .me-row__title{font-size:.95rem;font-weight:600;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-explorer__list .me-row__meta{font-size:.78rem;color:#64748b;margin-top:2px;display:flex;gap:6px;flex-wrap:wrap}
.map-explorer__list .me-row__meta strong{color:#1d4ed8;font-weight:700}
.map-explorer__list .me-row__chev{color:#64748b;text-align:center;width:14px}
.map-explorer__empty{padding:48px 24px;text-align:center;color:#64748b;font-size:.92rem}

.map-explorer__map-wrap{position:relative;flex:1 1 auto;min-height:0;background:#eef1f5}
.map-explorer__chips{position:absolute;top:12px;left:12px;right:12px;display:flex;gap:6px;flex-wrap:wrap;z-index:5;pointer-events:none}
.map-explorer__chips .me-chip{pointer-events:auto;padding:7px 14px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;font-size:.84rem;font-weight:500;cursor:pointer;color:#475569;box-shadow:0 1px 3px rgba(15,23,42,.06);transition:all .12s}
.map-explorer__chips .me-chip:hover{border-color:#94a3b8;color:#0f172a}
.map-explorer__chips .me-chip.is-active{background:#0f172a;color:#fff;border-color:#0f172a}
.map-explorer__map{height:100%;width:100%}
.map-explorer__noscript{padding:24px;text-align:center}
.map-explorer__popular{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0 24px}
.map-explorer__popular a{padding:6px 12px;border-radius:8px;background:#f1f4f8;color:#0f172a;text-decoration:none;font-size:.86rem}

/* 모바일 — 상단 지도 50vh + 하단 시트 */
@media (max-width:768px){
    .map-explorer__body{flex-direction:column}
    .map-explorer__side{flex:0 0 50vh;width:auto;height:50vh;order:2;border-right:0;border-top:1px solid #e5e8ee}
    .map-explorer__map-wrap{order:1;flex:0 0 50vh;height:50vh}
    .map-explorer__chips{top:8px;left:8px;right:8px}
    .map-explorer__chips .me-chip{padding:6px 12px;font-size:.78rem}
    .map-explorer__header{padding:10px 12px;gap:10px}
    .map-explorer__brand{order:1;width:100%;justify-content:space-between}
    .map-explorer__search{order:2;width:100%;max-width:none;flex:1 1 auto}
    .map-explorer__stats{order:3;width:100%;justify-content:space-between}
}
