	/*=======================================================================
	//	画面上部
	//=====================================================================*/
	body
	{
		margin: 0px;
		padding: 0px;
		font: normal 12px verdana, sans-serif;
	}
	#titol
	{
		position: fixed;
		font-weight: bold;
		font-size: 12pt;
		top: 10px;
		left: 50%;
		transform: translateX(-50%);
		z-index: 900;
	}

	/*=======================================================================
	//	ログイン
	//=====================================================================*/
	#login
	{
		position: fixed;
		top: 40%;
		left: 50%;
		transform: translate(-50%, -50%);
		z-index: 980;
		background: #ffffff;
		width: 330px;
		text-align: center;
		border-radius: 8px;
		box-shadow: 0 6px 16px rgba(0,0,0,0.35),0 0 0 1px rgba(0,0,0,0.08);
	}
	#logout
	{
		position: fixed;
		top: 10px;
		right: 10px;
		width: 40px;
		cursor: pointer;
		z-index: 900;
	}
	#innermask
	{
		position: fixed;
		right: 0px;
		top: 0px;
		width: 100%;
		height: 100%;
		background-color: #333333;
		opacity: 0.55;
		display: none;
		z-index: 979;
	}

	.login-box
	{
		background:#fff;
		width:320px;
		margin:auto;
		text-align:center;
		border-radius:10px;
		box-shadow:0 5px 20px rgba(0,0,0,0.2);
		font-family:sans-serif;
	}
	.login-title
	{
		background:#262626;
		color:#fff;
		padding:12px;
		font-weight:bold;
		border-radius:10px 10px 0 0;
	}
	.login-icon
	{
		height:80px;
		display:flex;
		align-items:center;
		justify-content:center;
	}
	.login-label
	{
		text-align:left;
		padding-left:30px;
		font-weight:bold;
		margin-top:10px;
	}
	.login-input
	{
		width:260px;
		padding:8px;
		margin-top:5px;
		border:1px solid #ccc;
		border-radius:5px;
	}

	.login-buttons
	{
		padding:25px 0;
	}
	.login-buttons input
	{
		width:100px;
		margin:0 10px;
	}
	.oauth-sep
	{
		display:flex;
		align-items:center;
		margin:10px 0;
	}
	.oauth-sep:before,
	.oauth-sep:after
	{
		content:"";
		flex:1;
		height:1px;
		background:#ddd;
	}
	.oauth-sep span
	{
		padding:0 10px;
		color:#888;
		font-size:12px;
	}
	.oauth-area
	{
		padding-bottom:25px;
	}

	/* Googleボタン */
	.google-btn
	{
		display:flex;
		align-items:center;
		justify-content:center;
		width:240px;
		margin:10px auto;
		padding:10px;
		border:1px solid #ddd;
		border-radius:5px;
		background:#fff;
		cursor:pointer;
		font-weight:bold;
	}
	.google-btn img
	{
		width:20px;
		margin-right:10px;
	}
	.google-btn:hover
	{
		background:#f7f7f7;
	}

	/* LINEボタン */
	.line-btn
	{
		width:240px;
		margin:10px auto;
		padding:10px;
		border:none;
		border-radius:5px;
		background:#06C755;
		color:#fff;
		font-weight:bold;
		cursor:pointer;
	}
	.line-btn:hover
	{
		background:#05b44c;
	}

	/*=======================================================================
	//	入力関係
	//=====================================================================*/
	input[type=text]
	{
		font-size: 13px;
		height: 30px;
		width: 260px;
		padding: 0 5px 0 5px;
		margin: 0 0 8px 0;
 		border-top: #c0c0c0 1px solid;
		border-left: #c0c0c0 1px solid;
		border-right: #d9d9d9 1px solid;
		border-bottom: #d9d9d9 1px solid;
		border-radius: 5px;
	}
	input[type=date]
	{
		font-size: 13px;
		height: 30px;
		width: 260px;
		padding: 0 5px 0 5px;
		margin: 0 0 8px 0;
 		border-top: #c0c0c0 1px solid;
		border-left: #c0c0c0 1px solid;
		border-right: #d9d9d9 1px solid;
		border-bottom: #d9d9d9 1px solid;
		border-radius: 5px;
	}
	input[type=time]
	{
		font-size: 13px;
		height: 30px;
		width: 260px;
		padding: 0 5px 0 5px;
		margin: 0 0 8px 0;
 		border-top: #c0c0c0 1px solid;
		border-left: #c0c0c0 1px solid;
		border-right: #d9d9d9 1px solid;
		border-bottom: #d9d9d9 1px solid;
		border-radius: 5px;
	}
	input[type=password]
	{
		font-size: 13px;
		height: 30px;
		width: 260px;
		padding: 0 5px 0 5px;
		border-top: #c0c0c0 1px solid;
		border-left: #c0c0c0 1px solid;
		border-right: #d9d9d9 1px solid;
		border-bottom: #d9d9d9 1px solid;
		border-radius: 5px;
	}
	input[type=button]
	{
		position: relative;
		display: inline-block;
		font-weight: bold;
		padding: 0.25em 0.5em;
		text-decoration: none;
		color: #FFF;
		background: #00bcd4;
		transition: .4s;
		border: none;
		border-radius: 5px;
		height: 30px;
		cursor: pointer;
	}
	.gradientblue
	{
		position: relative;
		display: inline-block;
		font-weight: bold;
		padding: 0.25em 0.5em;
		text-decoration: none;
		color: #FFF;
		background: #00bcd4;
		transition: .4s;
		border: none;
		border-radius: 5px;
		height: 40px;
		cursor: pointer;
	}
	.select
	{
		font-size: 13px;
		padding: 0 5px 0 5px;
		margin: 0 0 8px 0;
		border: #cccccc 1px solid;
		border-radius: 5px;
		width: 270px;
		height: 32px;
		line-height: 30px;
	}
	textarea
	{
		font: normal 13px verdana, sans-serif;
		padding: 0 5px 0 5px;
		border: #cccccc 1px solid;
		border-radius: 5px;
		width: 260px;
		height: 30px;
		line-height: 1.5;
	}

	/*=======================================================================
	//	住所検索
	//=====================================================================*/
	#addressbar
	{
		position: fixed;
		top: 40px;
		left: 50%;
		transform: translate(-50%, -50%);
		z-index: 900;
		width: 330px;
		text-align: center;
		border-radius: 8px;
	}
	#address
	{
		width: 200px;
		height: 35px;
		margin-top: 50px;
		border-radius: 20px;
		text-align: center;
	}

	/*=======================================================================
	//	トップのメール・マニュアルボタン
	//=====================================================================*/
	#top-buttons
	{
		position: fixed;
		top: 10px;
		right: 10px;
		z-index: 910;
		display: flex;
		gap: 20px;
	}
	#top-buttons img
	{
		width: 20px;
		cursor: pointer;
	}

	/*=======================================================================
	//	フッターボタン
	//=====================================================================*/
	#map-buttons
	{
		position: fixed;
		bottom: 70px;
		left: 50%;
		transform: translateX(-50%);
		z-index: 910;
		display: flex;
		gap: 20px;
	}
	#map-buttons img
	{
		width: 40px;
		cursor: pointer;
	}
	#loginnm
	{
		position: fixed;
		font-weight: bold;
		font-size: 12pt;
		bottom: 55px;
		left: 50%;
		transform: translateX(-50%);
		z-index: 900;
	}

	/*=======================================================================
	//	 左サイドバーのアイコンボタン
	//=====================================================================*/
	.icon
	{
		width: 40px;
		height: 50px;
	}
	.icon img
	{
		width: 40px;
		margin: 5px 0px 5px 0px;
	}
	.divider
	{
		width: 100%;
		border-top: 1px solid rgba(0,0,0,0.15);
		margin: 5px 0;
	}
	.icontype
	{
		border-radius: 6px;
		transition: all 0.2s;
		box-sizing: border-box;
		border: 2px solid transparent;
	}
	.icontype.selected
	{
		background-color: #d0e6ff;
		box-shadow: 0 0 4px #007bff;
		border-color: #007bff;
	}

	/*=======================================================================
	//	左サイドバー関係
	//=====================================================================*/
	#sidebar
	{
		display: none;
		position: fixed;
		top: 0;
		left: 0;
		width: 260px;
		height: 100vh;
		z-index: 900;
		background: #ffffff;
		border-right: 1px solid #e0e0e0;
		box-shadow: 2px 0 8px rgba(0,0,0,0.08);
	}
	.sidebar.show
	{
		display: flex;
	}
	.sidebarcols
	{
		display: flex;
		height: 100%;
	}
	.sidebarleft
	{
		width: 64px;
		overflow-y: auto;
		display: flex;
		flex-direction: column;
		align-items: center;
		scrollbar-width: thin;
		padding-bottom: 100px;
	}
	.sidebarright
	{
		flex: 1;
		overflow-y: auto;
		padding: 12px 10px;
		border-left: 1px solid #ddd;
		background: #ffffff;
	}
	.sidebarlist
	{
		list-style: none;
		margin: 0;
		padding: 0;
		width: 130pt;
	}
	.sidebarright .item
	{
		padding: 10pt 8pt;
		font-size: 10pt;
		border-bottom: 1px solid #eee;
		cursor: pointer;
		width: 115pt;
	}
	.sidebarright .item:hover
	{
		background: #f3f6fb;
	}

	/*=======================================================================
	//	右サイドバー関係
	//=====================================================================*/
	#sidebarR
	{
		display: none;
		position: fixed;
		top: 0;
		right: 0;
		width: 460px;
		height: 100vh;
		background: #ffffff;
		border-right: 1px solid #ccc;
		z-index: 900;
		box-shadow: 2px 0 6px rgba(0,0,0,0.15);
		flex-direction: column;
	}
	.sidebarR.show
	{
		display: flex;
	}
	.sidebarRtop
	{
		flex: 0 0 auto;
		border-bottom: 1px solid #ccc;
		background: #ffffff;
	}
	#aicomment
	{
		margin: 10px;
		width: 220px;
		height: 120px;
		resize: none;
		padding: 8px;
		font-size: 14px;
		font-family: 'Segoe UI', Meiryo, sans-serif;
		color: #222;
		background-color: #f5f7fa;
		border: 1px solid #ccc;
		border-radius: 6px;
		box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
	}
	#aichat
	{
		margin-left: 10px;
		width: 220px;
		height: 100px;
		padding: 8px;
		font-size: 14px;
		font-family: 'Segoe UI', Meiryo, sans-serif;
		color: #222;
		background-color: #ffffff;
		border: 1px solid #aaa;
		border-radius: 6px;
		box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
		resize: none;
		outline: none;
	}
	#aisend
	{
		position: relative;
		left: calc(100% - 60px);
		width: 40px;
		cursor: pointer;
		z-index: 900;
	}

	/****	レイヤーボックス	****/
	#layerbox
	{
		position: fixed;
		bottom: 120px;
		left: 0;
		right: 0;
		margin: 0 auto;
		width: min(90%, 420px);
		height: 80px;
		display: none;
		justify-content: space-around;
		align-items: center;
		background: #fff;
		border: 1px solid #cfcfcf;
		border-radius: 10px;
		box-shadow: 0 4px 14px rgba(0,0,0,0.25);
		z-index: 910;
	}
	#layerbox.show
	{
		display: flex;
	}
	#layerbox::after
	{
		content: "";
		position: absolute;
		left: calc(50% - 60px);
		transform: translateX(-50%);
		bottom: -10px;
		border-left: 10px solid transparent;
		border-right: 10px solid transparent;
		border-top: 10px solid #ffffff;
	}
	#layerbox::before
	{
		content: "";
		position: absolute;
		left: calc(50% - 70px);
		transform: translateX(-50%);
		bottom: -11px;
		border-left: 11px solid transparent;
		border-right: 11px solid transparent;
		border-top: 11px solid rgba(0,0,0,0.15);
	}
	.layerbtn
	{
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		min-width: 60px;
		font-size: 11px;
		color: #333;
		cursor: pointer;
		user-select: none;
	}
	.layerbtn img
	{
		width: 40px;
		margin-bottom: 4px;
	}

	/*=======================================================================
	//	ピン(サイズいじったら iconAnchor: [15, 40]を調整)
	//=====================================================================*/
	/* 町丁目ピンクラスター */
	.leaflet-marker-icon
	{
	/*	transition: transform 0.35s ease-out;	*/	/* マウスの動きに遅延（滑らかに）追随 */
		transition: none;
	}
	.leaflet-tooltip.cluster-label
	{
		background: transparent !important;
		border: none !important;
		box-shadow: none !important;
		padding: 0 !important;
		margin: 0 !important;

		color: #ffffff !important;
		font-weight: bold;
		font-size: 11px;
		line-height: 1;
	}
	.leaflet-tooltip-top:before,
	.leaflet-tooltip-bottom:before,
	.leaflet-tooltip-left:before,
	.leaflet-tooltip-right:before
	{
		display: none;
	}

	/*=======================================================================
	//	マップ関係
	//=====================================================================*/
	.maptile
	{
		border-radius: 6px;
		transition: all 0.2s;
	}
	.leaflet-pane.leaflet-base-pane
	{
		filter: saturate(0.6) brightness(1.15);
		/*filter: saturate(0.5) brightness(1.2) contrast(0.95);*/
	}
	.leaflet-control-attribution
	{
		background: rgba(255,255,255,0.2) !important;
	}

	/*=======================================================================
	//	ピンポップアップ
	//=====================================================================*/
	.edit-popup input, .edit-popup textarea
	{
		width: 200px;
		margin: 0px 0;
	}

	/*=======================================================================
	//	十字カーソル
	//=====================================================================*/
	#contentsmap	/* 地図コンテナを基準にする */
	{
		position: relative;
	}
	#map-crosshair	/* 画面中央の十字線 */
	{
		position: absolute;
		top: 50%;
		left: 50%;
		width: 30px;
		height: 30px;
		transform: translate(-50%, -50%);
		pointer-events: none;
		z-index: 800;
	}
	#map-crosshair::before,
	#map-crosshair::after	/* 縦横共通 */
	{
		content: "";
		position: absolute;
		background: #000;
		box-shadow: 0 0 3px #fff; /* 航空写真・災害色でも視認性確保 */
	}
	#map-crosshair::before	/* 縦線 */
	{
		width: 3px;
		height: 100%;
		left: 50%;
		top: 0;
		transform: translateX(-50%);
	}
	#map-crosshair::after	/* 横線 */
	{
		height: 3px;
		width: 100%;
		top: 50%;
		left: 0;
		transform: translateY(-50%);
	}

	/*=======================================================================
	//	エリア統計
	//=====================================================================*/
	#towninfo
	{
		position: fixed;
		right: 20px;
		top: 90px;
		width: 170px;
		padding: 12px 14px;
		background: rgba(20, 30, 40, 0.65);
		backdrop-filter: blur(6px);
		color: #fff;
		border-radius: 12px;
		box-shadow: 0 6px 18px rgba(0,0,0,0.25);
		font-family: sans-serif;
		z-index: 800;
		transition: transform 0.2s ease;
		display: none;
	}
	#towninfo:hover
	{
		transform: scale(1.03);
	}
	.town-title
	{
		font-weight: bold;
		margin-bottom: 8px;
		font-size: 14px;
		border-bottom: 1px solid rgba(255,255,255,0.2);
		padding-bottom: 4px;
	}
	.block
	{
		display: grid;
		margin-top: 8px;
		gap: 2px 6px;
	}
	.cols-3
	{
		grid-template-columns: repeat(3, 1fr);
	}
	.cols-2
	{
		grid-template-columns: repeat(2, 1fr);
	}
	.head
	{
		font-size: 11px;
		opacity: 0.7;
		text-align: left;
	}
	.block div:not(.head)
	{
		font-weight: 600;
		text-align: center;
	}
	.label
	{
		opacity: 0.7;
	}

	/*=======================================================================
	//	システムからのお知らせ
	//=====================================================================*/
	.notice-overlay
	{
		position: fixed;
		inset: 0;
		background: rgba(0,0,0,0.45);
		display: none;
		align-items: center;
		justify-content: center;
		z-index: 9999;
	}
	.notice-box
	{
		width: 500px;
		max-width: 80%;
		max-height: 70vh;
		background: #fff;
		border-radius: 8px;
		padding: 20px 20px 30px 20px;
		box-shadow: 0 15px 40px rgba(0,0,0,0.25);
		position: relative;
		overflow: hidden;
	}
	.notice-content
	{
		max-height: 60vh;
		overflow-y: auto;
		font-size: 14px;
		line-height: 1.6;
		white-space: normal;
	}
	.notice-close
	{
		position: absolute;
		top: 8px;
		right: 12px;
		border: none;
		background: none;
		font-size: 20px;
		cursor: pointer;
	}

	/*=======================================================================
	//	アラート
	//=====================================================================*/
	#alert
	{
		position: absolute;
		width: 100%;
		height: 100%;
		top: 0px;
		display: none;
		text-align: center;
		z-index: 990;
	}
	#alertpanel
	{
		margin: 150px 20px auto 20px;
		padding: 50px;
		border: #f7f7f7 1px solid;
		color: #ffffff;
		background-color: #555555;
		cursor: pointer;
	}
	#alertstrong
	{
		position: absolute;
		width: 100%;
		height: 100%;
		top: 0px;
		display: none;
		text-align: center;
		z-index: 990;
	}
	#alertstrongpanel
	{
		margin: 150px 20px auto 20px;
		padding: 50px;
		border: #f7f7f7 1px solid;
		color: #ffffff;
		background-color: #555555;
		cursor: pointer;
	}

	/*=======================================================================
	//	トーストメッセージ
	//=====================================================================*/
	.toast
	{
		position: fixed;
		bottom: 70px;
		left: 50%;
		transform: translateX(-50%);
		background: #333;
		color: #fff;
		padding: 10px 20px;
		border-radius: 6px;
		opacity: 0;
		transition: opacity 0.3s;
		pointer-events: none;
		z-index: 9999;
	}
	.toast.show
	{
		opacity: 1;
	}

	/*=======================================================================
	//	GoogleMap起動ボタン
	//=====================================================================*/
	.btn-route
	{
		width: 90%;
		height: 40px;
		padding: 10px 0;
		font-size: 15px;
		font-weight: bold;
		color: #fff;
		background: linear-gradient(180deg, #1e88e5, #1565c0);
		border: none;
		border-radius: 10px;
		box-shadow: 0 4px 8px rgba(0,0,0,0.25);
		cursor: pointer;
		transition: all 0.1s ease;
	}

	.btn-route:active
	{
		transform: translateY(2px);
		box-shadow: 0 2px 4px rgba(0,0,0,0.25);
	}

	/*=======================================================================
	//	警報バー
	//=====================================================================*/
	#nerv-alert
	{
		position:fixed;
		top:0;
		left:0;
		width:100%;
		height:42px;
		overflow:hidden;
		z-index:9999;
		display:none;
	}

	/* 斜線コンテナ */
	.nerv-stripe
	{
		position:absolute;
		width:200%;
		height:100%;
		display:flex;
		animation:stripeMove 18s linear infinite;
	}

	/* 斜線 */
	.stripe-inner
	{
		width:50%;
		height:100%;
		background:repeating-linear-gradient(
			45deg,
			#ffd800 0px,
			#ffd800 20px,
			#111 20px,
			#111 40px
		);
	}

	/* 中央の黒帯 */
	.nerv-textbar
	{
		position:absolute;
		top:8px;
		left:0;
		width:100%;
		height:26px;
		background:#000;
		overflow:hidden;
	}

	/* 流れる文字 */
	.nerv-scroll
	{
		position:absolute;
		white-space:nowrap;
		color:#ffd800;
		font-weight:bold;
		font-size:18px;
		letter-spacing:3px;
		line-height:26px;
		animation:nervtext 14s linear infinite;
	}

	/* 斜線スクロール */
	@keyframes stripeMove
	{
		0%		{	transform:translateX(-50%);	}
		100%	{	transform:translateX(0%);	}
	}

	/* テキストスクロール */
	@keyframes nervtext
	{
		0%		{	transform:translateX(100%);		}
		100%	{	transform:translateX(-100%);	}
	}