html, body {
	margin: 0;
	padding: 0;
	width: 100%;
	height: 100%;
	/*overflow: hidden;*/
}

a:focus,
button:focus {
	outline: 0px;
}

#header {
	/* height: 30px; */
	height: auto;
}
#header h2 {
	width: 100%;
	margin: 0 auto;
	box-sizing: border-box;
	font-size: 20px;
	font-weight: normal;
	padding: 20px 10px;
	color: #1a2202;
	border-left: 8px solid #18305a;
	background: #dae3f3;
}
#header h2 a {
	color: #1a2202;
	text-decoration: none;
}
#header h2 a:hover {
	color: #18305a;
	text-decoration: none;
}
div.full {
	width: 100%;
	height: 100%;
}
#view {
	min-width: 240px;
}
#olmap {
    position: relative;
	font-size: 16px;
}

@media screen and (max-width:500px) {
	#popup {
		display:none;
		max-width: 300px;
		min-width: 200px;
	}
}
.ol-popup {
	position: absolute;
	border-radius: 10px;
	bottom: 0em;
	left: -160px;
	min-width: 240px;
	font-size: 12px;
	/* background-color: rgba(255,255,255,0.3); */
	/* border-radius: 5px;
	backdrop-filter: blur(5px); */
	display: flex;
	flex-direction: column;
}


#popup-content:hover {
	scrollbar-width: thin;
}
.ol-popup [data-checktool]{
	max-width: 220px;
    word-wrap: break-word; 
    overflow-wrap: break-word;
    white-space: normal !important;
}
.ol-popup:after, .ol-popup:before {
	top: 100%;
	content: " ";
	height: 0;
	width: 0;
	position: absolute;
	pointer-events: none;
}
.ol-popup:after {
	border-top-color: white;
	border-width: 10px;
	left: 48px;
	margin-left: -10px;
}
.ol-popup:before {
	border-top-color: #cccccc;
	border-width: 11px;
	left: 48px;
	margin-left: -11px;
}
.ol-popup-closer {
	display: none;
	text-decoration: none;
	position: absolute;
	top: 5px;
	right: 10px;
	font-size: 1em;
}
.ol-popup-edit,
.ol-feature-text,
.ol-feature-modify,
.ol-feature-delete {
	float: right;
	min-width: 40px;
	height: 18px;
	padding: 2px 8px 2px 8px;
	/*margin-left: 2px;*/
	margin-right: 4px;
}
.popup-table table th,
.popup-table table td {
	padding: 2px;
	word-break: normal;
}
.popup-table table th {
	font-weight: bold;
}

.popup_comment {
	margin: 10px;
	border: 1px dashed #000000;
    padding: 5px;
}

#info {
	position:absolute;
	bottom:10px;
	left:200px;
	right:200px;
	background:rgba(200,200,200,0.5);
	display: block;
	font-size: x-small;
}
#gsimap_info {
	display:none;
}

#layerbox_1,
#layerbox_2,
#layerbox_3,
#layerbox_4 {
	display:none;
	position:absolute;
	top:120px;
	right:.5px;
	padding:3px;
	width:250px;
	max-height: 200px;
	border-radius:4px;
	color:#fff;
	background: rgba(255, 255, 255, 0.4);
	z-index:100;
	font-size: 14px;
}
#layerbox_1 ul,
#layerbox_2 ul,
#layerbox_3 ul,
#layerbox_4 ul {
	display:none;
}
#layerbox_1 ul li,
#layerbox_2 ul li,
#layerbox_3 ul li,
#layerbox_4 ul li {
	margin-top: 4px;
}
#baselayerswitcher,
#overlayerswitcher,
#overlayerswitcher1,
#overlayerswitcher2 {
	margin:0;
	padding:10px;
	border-radius:4px;
	background:rgba(0, 60, 136, 0.7);
	list-style-type:none;
	overflow-y: auto;
}
#layerbox_1 button,
#layerbox_2 button,
#layerbox_3 button,
#layerbox_4 button {
	width: 100px;
	/* height: 18px; */
}
#baselayerswitcher li label input[type="radio"],
#overlayerswitcher li label input[type="checkbox"],
#overlayerswitcher1 li label input[type="checkbox"],
#overlayerswitcher2 li label input[type="checkbox"] {
	display: inline; /* 初期化 */
	width: auto;	/* 初期化 */
	height: auto;	/* 初期化 */
	opacity: 1;		/* 初期化 */
	margin-right: 4px;
}
img.layerswitcher {
	border-radius: 3px;
}
img.layerswitcher.btn_off {
	border: 3px #fff solid;
}
img.layerswitcher.btn_on {
	border: 3px #2685d2cc solid;
}

.legend-icon-circle.btn_off {
	border: 3px #fff solid;
}
.legend-icon-circle.btn_on {
	border: 3px #3ea8fe6f solid;
}
.help-icon-circle.btn_off {
	border: 3px #fff solid;
}
.help-icon-circle.btn_on {
	border: 3px #3ea8febf solid;
}

#toolbox-top {
	display:none;
	position:absolute;
	width:auto;
	top: 70px;
	left: 7px;
	overflow-x: visible;
	margin:0px;
	padding:0px;
	border-radius:4px;
	z-index:100;
}
#toolbox-top > div {
	float: left;
}

#toolbox-top button {
	display: inline;
}

#toolbox-lefttop {
	display:block;
	position:absolute;
	width:auto;
	top:6px;
	left:40px;
	overflow-x: visible;
	margin:0px;
	padding:0px;
	border-radius:4px;
	color:#f00;
	background: rgba(0, 255, 255, 0.0);
	z-index:100;
}
#toolbox-lefttop div {
	width: auto;
}
#toolbox-righttop {
	display: flex;
	flex-direction: row;
	position:absolute;
	top: 3em;
	right: 0.3em;
	margin:0px;
	padding:0px;
	width:auto;
	overflow-x: visible;
	border-radius:4px;
	color:#f00;
	background: rgba(0, 255, 255, 0.0);
	z-index:100;
	margin: auto 0.05em;
}
/* クリック時強調（離すと消える） */
#toolbox-righttop button:active {
	border: 2px #f60000ae solid;
	/* background-color: rgba(255, 255, 255, 0.5); */
}

/* 右下のツールボックス */
#toolbox-rightbottom {
	display: flex;
	position: absolute;
	bottom: 0em;
	right: 0em;
	margin-right: 0.1em;
	height: auto;
	width: auto;
	border-radius: 0px;
	background: rgba(0, 255, 255, 0.0);
	z-index: 3;
	flex-direction: row;
	justify-content: flex-end;
	align-items: center;
	gap: 0.1em;
	flex-wrap: nowrap;
}
#attribution-map-title {
	position: relative;
	font: 500 0.6rem /1.5 Inter,system-ui;
	padding: 0em 0.5em;
	white-space: nowrap;
	border-radius: 5px;
	backdrop-filter: blur(10px);
	background: rgba(255, 255, 255, 0.3);
	user-select: none;
}
.ol-scale-line{
	/* デフォルトではabsoluteだが、relativeに変更 */
	position: relative;
	padding: 0em 0.1em;
	left: auto;
	right: auto;
	bottom: auto;
	border-radius: 5px;
	backdrop-filter: blur(10px);
	background: rgba(255, 255, 255, 0.3);
}
.ol-scale-line-inner{
	font: 500 0.65rem /1.2 Inter,system-ui;
	color: #000000;
	letter-spacing: 0.1em;
}
#mouse-position {
	position: relative;
	min-width: 5em;
	color: black;
	padding: 0em 0.5em;
	font: 500 0.6rem /1.5 Inter,system-ui;
	border-radius: 5px;
	backdrop-filter: blur(10px);
	background: rgba(255, 255, 255, 0.3);
	white-space: nowrap;
	display: flex;
	align-items: center;
	user-select: none;
}
@media print{
	#mouse-position {
		display:none !important;
	}
}




/* OLデフォルトの地図名表示（非表示済み） */
#myattribution {
	display: none!important;
	position: relative;
	white-space: nowrap;
	border-radius: 5px;
	backdrop-filter: blur(10px);
	background: rgba(255, 255, 255, 0.3);
}
#myattribution li {
	border-radius: 4px;
	padding: 4px 6px;
}
#myattribution a {
	color: black;
}

.mytoolbox-button {
	position: static;
	display: inline;
	width: auto;
}
.mytoolbox-button img {
	width: 26.5px;
	height: 26.5px;
}
.mytoolbox-button img.layerswitcher {
	width: 26.5px;
	height: auto;
}

.mytoolbox-button-float {
	float: left;
}
.mytoolbox-button-clear {
	clear: both;
}

#zoomincontrol {
}

.ol-control button {
	width: auto;
	height: auto;
	min-width: 1em;
	min-height: 1.12em;
	line-height: .6em !important;
}

.ol-zoom button, .ol-zoomslider button {
  background-color: rgba(0,0,0,0.7);
  color: #ffffff;
}
.ol-zoom button:hover, .ol-zoomslider button:hover,
.ol-zoom button:focus, .ol-zoomslider button:focus {
  background-color: rgba(0,0,0,0.5);
}

/**
* The zoomslider in the second map shall be placed between the zoom-in and
* zoom-out buttons.
*/
/* ズームボタンの位置を調整。ズームスライダーは＋1.5emの位置で丁度良い */
.ol-zoom{
	top: 3.5em;
}
.ol-zoomslider{
	top: 4.65em!important;
}
.ol-zoom-out {
	margin-top: 198px!important;
	width:initial;
	height:initial;
}
.ol-zoomslider {
	background-color: rgba(255,255,255,0.0);
}
.ol-zoomslider:hover {
  background-color: rgba(255,255,255,0.0);
}

.ol-zoom-in.ol-has-tooltip:hover [role=tooltip],
.ol-zoom-in.ol-has-tooltip:focus [role=tooltip] {
	top: 3px;
}

.ol-zoom-out.ol-has-tooltip:hover [role=tooltip],
.ol-zoom-out.ol-has-tooltip:focus [role=tooltip] {
	top: 232px;
}
.ol-zoom-extent {
	top: 19em;
}

#geolocationcontrol {
	bottom: 0.5em;
	left: 0.5em;
}
#geolocationcontrol button {
	background-color: rgba(0,0,0,0.7);
	font-size: 21px;
}
#geolocationcontrol button:hover,
#geolocationcontrol button:focus {
  background-color: rgba(0,0,0,0.5);
}

.layer-control {
	top: 32px;
	bottom: auto; /* 初期化 */
	bottom: initial; /* 初期化 */
	right: 8px;
}
.ol-touch .layer-control {
	top: 80px;
}

.ol-zoom-extent button:after {
}
.ol-custom-overviewmap.ol-uncollapsible {
  bottom: auto;
  left: auto;
  right: 0;
  top: 0;
}

.ol-custom-overviewmap:not(.ol-collapsed)  {
	border: 1px solid black;
}

.ol-custom-overviewmap {
	bottom: 2.5em;
}

.ol-custom-overviewmap button {
	color: #ffffff;
	background:rgba(0,0,0,0.7);
	width: 1.375em !important;
	height: 1.375em !important;
	min-width: 1.12em !important;
	min-height: 1.12em !important;
}
.ol-custom-overviewmap button:focus {
	color: #ffffff;
	background:rgba(0,0,0,0.7);
}

.ol-custom-overviewmap .ol-overviewmap-map {
  border: none;
  /*width: 200px;*/
}

.ol-custom-overviewmap .ol-overviewmap-box {
  border: 2px solid red;
  cursor: pointer;
}
.tooltip-inner {
	white-space: nowrap;
}

.highlight {
	background: rgba(255, 96, 235, 0.5) !important;
}

.measure-tooltip {
	font-size: 14pt;
	padding: 3px;
	background-color: rgba(255,255,255,0.6);
}
.measure-tooltip-measure {
	font-size: 16pt;
	color: #FF335F;
	padding: 3px;
	background-color: rgba(255,255,255,0.6);
}
.measure-tooltip-static {
	font-size: 16pt;
	color: #FF335F;
	padding: 3px;
	background-color: rgba(255,255,255,0.6);
}

/* jQuery UI dialog 上書き*/
.ui-dialog {
	z-index: 102;
}
span.ui-dialog-title {
	overflow: initial!important;
}
.ui-dialog .ui-dialog-buttonpane {
    padding: initial;
}

div.alertMessage {
	margin-top: 0.5em;
	line-height: 1.5em;
}

@media print{
	html, body {
		margin: 0;
		padding: 0;
		width: 100%;
		height: 100%;
	}
	.noprint {
		display: none;
	}
	.toolbox, .mytoolbox-button {
		display: none;
	}
	.tooltip {
		display: none !important;
	}
	#popup>button, #popup-closer {
		display: none !important;
	}
	#layerbox_1, #layerbox_2, #layerbox_3, #layerbox_4, #draw-form, #search-form/*, #toolbox-rightbottom, #gsimap_info*/ {
		display: none !important;
	}
	.ol-scale-line {
		background-color: rgba(255,255,255,1.0);
	}
	.ol-scale-line-inner {
		color: #000;
		border: 1px solid #000;
		border-top: none;
	}
	#myattribution .ol-attribution:not(.ol-collapsed), #myattribution .ol-control {
		background-color: rgba(255,255,255,1.0) !important;
	}
	#myattribution div {
		width: auto;
	}
	.ol-zoom, .ol-zoomslider, .ol-overviewmap, #geolocationcontrol {
		display: none;
	}
	img {
		max-width: none !important; /* solution : google maps invisible */
	}
}

.ol-touch #geolocationcontrol button {
	font-size: 1.5em!important;
}

.legend-title {
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.legend-close-btn {
	cursor: pointer;
	font-size: 16px;
	font-weight: bold;
	color: #1a203093;
	text-shadow: 0 0 3px rgba(255, 255, 255, 0.663);
	border-radius: 3px;
	transition: all 0.2s;
	line-height: 0.5;
}
.legend-close-btn:hover {
	transform: scale(1.5);
}

#legend-panel .legend-title {
	font-weight: bold;
	margin-bottom: 8px;
	border-bottom: 1px solid #ddd;
	padding-bottom: 5px;
	text-shadow: 
		-2px -2px 1px rgba(255, 255, 255, 0.35), 2px -2px 1px rgba(255, 255, 255, 0.35), -2px 2px 1px rgba(255, 255, 255, 0.35), 2px 2px 1px rgba(255, 255, 255, 0.35),
		-1px -1px 1px rgba(255, 255, 255, 0.35), 1px -1px 1px rgba(255, 255, 255, 0.35), -1px 1px 1px rgba(255, 255, 255, 0.35), 1px 1px 1px rgba(255, 255, 255, 0.35),
		0px -2px 1px rgba(255, 255, 255, 0.35), 0px 2px 1px rgba(255, 255, 255, 0.35), -2px 0px 1px rgba(255, 255, 255, 0.35), 2px 0px 1px rgba(255, 255, 255, 0.35);
}

#legend-panel .legend-item-label {
	font-size: 12.5px;
	text-shadow: 
		-2px -2px 1px rgba(255, 255, 255, 0.35), 2px -2px 1px rgba(255, 255, 255, 0.35), -2px 2px 1px rgba(255, 255, 255, 0.35), 2px 2px 1px rgba(255, 255, 255, 0.35),
		-1px -1px 1px rgba(255, 255, 255, 0.35), 1px -1px 1px rgba(255, 255, 255, 0.35), -1px 1px 1px rgba(255, 255, 255, 0.35), 1px 1px 1px rgba(255, 255, 255, 0.35),
		0px -2px 1px rgba(255, 255, 255, 0.35), 0px 2px 1px rgba(255, 255, 255, 0.35), -2px 0px 1px rgba(255, 255, 255, 0.35), 2px 0px 1px rgba(255, 255, 255, 0.35);
}

#legend-panel .legend-no-icon {
	font-size: 12px;
	color: #666;
	text-shadow: 
		-2px -2px 1px rgba(255, 255, 255, 0.35), 2px -2px 1px rgba(255, 255, 255, 0.35), -2px 2px 1px rgba(255, 255, 255, 0.35), 2px 2px 1px rgba(255, 255, 255, 0.35),
		-1px -1px 1px rgba(255, 255, 255, 0.35), 1px -1px 1px rgba(255, 255, 255, 0.35), -1px 1px 1px rgba(255, 255, 255, 0.35), 1px 1px 1px rgba(255, 255, 255, 0.35),
		0px -2px 1px rgba(255, 255, 255, 0.35), 0px 2px 1px rgba(255, 255, 255, 0.35), -2px 0px 1px rgba(255, 255, 255, 0.35), 2px 0px 1px rgba(255, 255, 255, 0.35);
}

#legend-panel .legend-layer {
	margin-bottom: 2px;
}

#legend-panel .legend-item {
	display: flex;
	font-weight: bold;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 5px;
}

#legend-panel .legend-item-label {
	flex-grow: 1;
}

#legend-panel .legend-icon {
	max-width: 2.0em;
	max-height: 2.0em;
	width: auto;
	height: auto;
	margin-right: 0.5em;
	object-fit: contain;
}

/* トグルスイッチのスタイル */
.legend-toggle {
	position: relative;
	display: inline-block;
	width: 36px;
	height: 20px;
	margin-left: 8px;
	cursor: pointer;
	flex-shrink: 0;
}

.legend-toggle input {
	opacity: 0;
	width: 0;
	height: 0;
}

.toggle-slider {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #ccc;
	border-radius: 20px;
	border: 1px solid #999;
	transition: 0.3s;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.toggle-slider:before {
	position: absolute;
	content: "";
	height: 14px;
	width: 14px;
	left: 2px;
	bottom: 2px;
	background-color: white;
	border-radius: 50%;
	transition: 0.3s;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.legend-toggle input:checked + .toggle-slider {
	background-color: #4CAF50;
	border-color: #45a049;
}

.legend-toggle input:checked + .toggle-slider:before {
	transform: translateX(16px);
}

.legend-toggle:hover .toggle-slider {
	opacity: 0.9;
}

/* 凡例ボタンのスタイル */
.legend-button {
	background: transparent;
	border: none;
	color: #ffffff;
	padding: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26.5px;
	height: 26.5px;
}

.legend-button:hover {
	opacity: 0.8;
}
.legend-button:active {
	opacity: 1;
}

.legend-icon-circle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26.5px;
	height: 26.5px;
	background: rgba(23, 104, 209, 0.794);
	border-radius: 3px;
	color: #ffffff;
	font-size: 18px;
	font-family: Georgia, "Times New Roman", serif;
	/* font-family: Verdana, Geneva, sans-serif; */
	font-weight: bold;
	line-height: 1;
	text-align: center;
	backdrop-filter: blur(5px);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
	padding-bottom: 1px;
}

/* ヘルプボタンのスタイル */
.help-button {
	background: transparent;
	border: none;
	padding: 0;
	cursor: pointer;
	width: 26.5px;
	height: 26.5px;
}

.help-button:hover {
	opacity: 0.8;
}
.help-button:active {
	opacity: 1;
}

.help-icon-circle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26.5px;
	height: 26.5px;
	background: rgba(23, 104, 209, 0.794);
	border-radius: 3px;
	color: #ffffff;
	font-size: 18px;
	font-family: Georgia, "Times New Roman", serif;
	font-weight: bold;
	line-height: 1;
	text-align: center;
	backdrop-filter: blur(5px);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
	padding-bottom: 1px;
}

/* 凡例パネルのスタイル */
#legend-panel {
	position: absolute;
	top: 5.5em;
	right: 0.15em;
	/* background: rgba(0, 60, 140, 0.35); */
	background: rgba(255, 255, 255, 1.0);
	backdrop-filter: blur(2px);
	/* border: 1px solid #ccc; */
	border-style: ridge;
	border-width: 1em;
	border-color: rgb(78 195 249 / 67.5%);
	border-radius: 5px;
	padding: 10px;
	min-width: 170px;
	/* max-width: 190px; */
	box-shadow: 0 2px 4px rgba(0,0,0,0.2);
	z-index: 10;
	display: none;
}

/* ヘルプパネルのスタイル */
#help-panel {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: rgba(255, 255, 255, 1.0);
	backdrop-filter: blur(2px);
	border-style: outset;
	border-width: 1.75em;
	border-color: rgb(78 195 249 / 67.5%);
	border-radius: 5px;
	padding: 10px;
	min-width: 300px;
	max-width: 1000px;
	max-height: 55vh;
	overflow-y: auto;
	box-shadow: 0 2px 4px rgba(0,0,0,0.3);
	z-index: 10;
	display: none;
}

.help-title {
	position: sticky;
	top: -10px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-weight: bold;
	margin: -10px -10px 8px -10px;
	border-bottom: 1px solid #ddd;
	padding: 10px 10px 5px 10px;
	background: rgba(255, 255, 255, 1.0);
	z-index: 1;
}

.help-close-btn {
	cursor: pointer;
	font-size: 16px;
	font-weight: bold;
	color: #1a203093;
	text-shadow: 0 0 3px rgba(255, 255, 255, 0.663);
	border-radius: 3px;
	transition: all 0.2s;
	line-height: 0.5;
}

.help-close-btn:hover {
	transform: scale(1.5);
}

#help-content {
	padding: 5px 0;
}

.help-item {
	margin-bottom: 15px;
}

.help-item h4 {
	margin: 0 0 6px 0;
	font-size: 15px;
	font-weight: bold;
	color: #333;
}

.help-item p {
	margin: 0;
	font-size: 13px;
	font-weight: semibold;
	color: #4c4c4c;
	line-height: 1.5;
}