.panel {
	position:absolute; top:12px; left:12px; z-index:10;
	width: calc(100% - 24px);
	background:#fff; border-radius:3px; box-shadow:0 6px 16px rgba(0,0,0,.15);
	padding:12px 14px; min-width:280px; max-width:360px;
}
.panel h2 {font-size:16px; margin:0 0 8px;}
.row {display:flex; align-items:center; justify-content:space-between; gap:8px; margin:6px 0;}
.chip {display:inline-flex; align-items:center; gap:6px; padding:6px 14px; border-radius:3px; border:1px solid #ddd; font-size:13px;}
.legend {
	position:absolute; bottom:12px; right:12px; z-index:10; background:#fff; border-radius:3px;
	padding:8px 10px; font-size:12px; box-shadow:0 6px 16px rgba(0,0,0,.15);
}
.toast {
	position:absolute; top:12px; right:12px; z-index:1000; background:#111; color:#fff;
	padding:10px 12px; border-radius:3px; opacity:.95; font-size:13px; display:none; max-width:48vw;
}

/* ====== 인포카드 ====== */
.infocard {
	background:#fff; border-radius:3px; box-shadow:0 10px 24px rgba(0,0,0,.18);
	padding:10px 12px; min-width:240px; max-width:320px; border:1px solid #eee; position:relative;
	pointer-events:auto;
}
.infocard .title {font-weight:700; font-size:14px;}
.infocard .meta {font-size:12px; color:#555; margin-top:4px;}
.infocard .btns {display:flex; gap:8px; margin-top:10px;}
.btn {
	display:inline-flex; align-items:center; justify-content:center; gap:6px;
	padding:8px 10px; border-radius:3px; font-size:12pt; text-decoration:none;
	border:1px solid #ddd; background:#f6f7f8; color:#111; cursor:pointer; user-select:none;
}
.btn.primary {background:#0a84ff; color:#fff; border-color:#0a84ff;}
.btn:active {transform:translateY(1px);}
.close-x {position:absolute; top:4px; right:6px; font-size:16px; cursor:pointer; color:#888;}

/* ====== 로딩 오버레이 ====== */
.loading-backdrop {
	position:absolute; inset:0; background:rgba(0,0,0,.25); display:none; place-items:center; z-index:9998;
}
.loading-card {
	background:#fff; border-radius:14px; padding:18px 20px; box-shadow:0 12px 28px rgba(0,0,0,.25); min-width:280px; text-align:center;
	pointer-events:auto;
}
.spinner {
	width:36px; height:36px; border-radius:50%; border:4px solid #e5e7eb; border-top-color:#0a84ff; margin:0 auto 10px; 
	animation:spin 1s linear infinite;
}
@keyframes spin {to {transform:rotate(360deg)}}
.muted {font-size:12px; color:#666; margin-top:6px;}

/* ====== 커스텀 마커 (보건소/지소) ====== */
.poi {
	width:30px; height:30px; border-radius:50%;
	display:grid; place-items:center; color:#fff; font-size:14px; line-height:1;
	border:2px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.25);
	pointer-events:auto;
}
.poi.phc { background:#1973e8; }  /* 파란색: 보건소 */
.poi.br  { background:#129e2c; }  /* 녹색: 보건지소 */
.poi i { font-size:14px; }

/* ====== 내 위치 (빨간 점 + 흰 테두리 + 펄스 3배) ====== */
.mypos { position:relative; width:32px; height:32px; pointer-events:none; }
.mypos .dot {
	position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
	width:16px; height:16px; border-radius:9999px;
	background:#ef4444;
	border:2px solid #fff;
	z-index:2;
	box-shadow:0 0 0 1px rgba(0,0,0,.15);
}
.mypos .pulse {
	position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
	width:16px; height:16px; border-radius:9999px;
	background:rgba(239,68,68,0.8);
	z-index:1;
	animation:pulse 2s ease-out infinite;
}
@keyframes pulse {
	0%   { transform:translate(-50%,-50%) scale(1);   opacity:.8; }
	70%  { transform:translate(-50%,-50%) scale(3);   opacity:0; }
	100% { opacity:0; }
}


.sido-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0;
}
.sido-tab {
	width: calc(100% / 10);
    padding: 6px 0;
    border: 1px solid #ddd;
    background: #f9f9f9;
    cursor: pointer;
    border-radius: 4px;
}
.sido-tab.active {
    background: #007bff;
    color: white;
    border-color: #007bff;
}
.clinic-list {
    border-top: 1px solid #ccc;
}
.clinic-item {
    padding: 10px;
    border-bottom: 1px solid #eee;
}
.clinic-item h3 {
    margin: 0;
    font-size: 16px;
}

.clinic-list { padding: 12px 0; }
.clinic-item { border-bottom: 1px solid #ddd; padding: 10px 12px; }
.clinic-item h3 { margin: 0; font-size: 15px; font-weight: bold; }
.clinic-item div { font-size: 13px; color: #444; margin-top: 2px; }
