:root{
	--base-head:60px;
	//--base-color:#0f106d;
	--base-color:#999;
	--base-icon:3rem;
	--base-title:1.5rem;
	--base-font:1.2rem;
	--base-font-m:1.2rem;	
	--base-font-s:1.1rem;
	--base-font-ss:1.0rem;
	--menu-width:30%;
	--menu-font:1.5rem;
	--menu-padding:15px;
	--max-width:700px;
	--sc:1.5;
}
* {
	font-size: var(--base-font);
}
@media (pointer: coarse) {
	:root {
	--base-head:60px;
	--base-icon:2rem;	
	--base-title:1.2rem;
	--base-font:1.1rem;
	--base-font-m:1.0rem;
	--base-font-s:0.8rem;
	--base-font-ss:0.7rem;
	--menu-width:50%;
	--menu-font:1.2rem;
	--menu-padding:10px;
	--sc:1.0;
	}
}
html,
body {
	width: 100vw;
	height: 100svh;
	margin:0;
	padding:0;
	overflow-x: auto;
	box-sizing: border-box;
}
main {
  display: flex;
  width: 100%;
  height: calc(100% - var(--base-head));
  justify-content: center;
  box-sizing: border-box;
}
content {
	display: flex;
  width: 100%;
  height: 100%;
  justify-content: center;
  box-sizing: border-box;
}
/*### 入力アイテム ###*/
input[type="text"],
input[type="date"],
input[type="time"],
input[type="password"]
 {
	width: 100%;
	padding:5px;
	border: 1px solid #999;
	border-radius: 10px;
	box-sizing: border-box;
}
select {
	width: 100%;
	display: inline-block;
	padding:5px;
	border: 1px solid #999;
	border-radius: 10px;
	box-sizing: border-box;
}

/*### メインフレーム ###*/
.main-fx {
	display: flex;
	width: 100%;
	justify-content: center;
	align-items: center;
	padding:20px;
	box-sizing: border-box;
}
.main-dm {
	display: flex;
	flex-direction: column;
	width: 100%;
	align-content: center;
	justify-content: flex-start;
	box-sizing: border-box;
	//background-color: red;
}

/*### 一般フレーム ###*/
.m3dm {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: var(--max-width);
	margin: 0 auto;
	align-content: center;
	justify-content: flex-start;
	padding: 10px 20px;
	row-gap: 20px;		
	box-sizing: border-box;
	//background-color: blue;
}
.m3fx {
	display: flex;
	width: 100%;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
}	
.m3gd {
	display: grid;
	grid-template-columns: auto 1fr;
	width: 100%;
	row-gap: 20px;
  justify-content: space-between;	
	align-items: center;
	box-sizing: border-box;
}

/*### パーツ ###*/
/* ボタン */
.base-btn {
	display: flex;
	min-width: 60px;
	justify-content: center;
	align-content: center;
	padding: 5px 10px;
	border-radius: 10px;
	border: 1px solid #999;
	cursor: pointer;
	box-sizing: border-box;
}
.base-btn:hover {
	background-color: lightskyblue;
	font-weight: bold;
}
/* タイトル */
.m3-title {
	display: flex;
	width: 100%;
	justify-content: center;
	align-content: center;
	font-size: calc(var(--base-title) * var(--sc));
	box-sizing: border-box;
}
/* スペース */
.m3-space {
	display: flex;
	width: 100%;
	height: var(--h,20px);
	box-sizing: border-box;
}
/* 高さ指定 */
.menu-v {
	height: var(--h,30px);
}

/*### 修飾 ###*/
.m3cn {
	justify-content: center;
	text-align: center;
}
.m3lf {
	justify-content: flex-start ;
	text-align: left;
}
.m3rt {
	justify-content: flex-end;
	text-align: right;
}
.font-s {
	font-size: calc(var(--base-font) * 0.7);
}
.m3sp-top {
	display: flex;
	width: 100%;
	height: var(--base-font);
	box-sizing: border-box;
}


/*### オーバーレイ ###*/
/* ヘッダー */
.menu-top {
	display: flex;
	position: fixed;
	width: 100%;
	align-items: center;
	height: var(--base-head);
	top: 0;
	left: 0;
	margin:0;
	padding: 10px;
	box-sizing: border-box;
	background-color: var(--base-color);
}
/* フッター */
.menu-bottom {
	display: flex;
	position: fixed;
	width: 100%;
	align-items: center;
	height: var(--base-head);
	bottom: 0;
	left: 0;
	margin:0;
	padding: 10px;
	box-sizing: border-box;
	background-color: var(--base-color);
}
/* スペース */
.menu-space {
	display: flex;
	width: 100%;
	height: var(--base-head);
	box-sizing: border-box;
}
/* ボタン */
.base-btn.pglf {
	position: fixed;	
	left:10px;
}
.base-btn.pgrt {
	position: fixed;
	right:10px;
}
.base-btn.pgcn {
	position: fixed;	
	left: 50%;
  transform: translateX(-50%); /* 縦中央 */
}
/* padding */
.pd0 {
	padding: 0;
}
.pd5 {
	padding: 5px;
}
.pd10 {
	padding:10px;
}
.pd15 {
	padding: 15px;
}
.pd20 {
	padding: 20px;
}
/* font-size */
.font {
	font-size: var(--base-font);
}
.font-s {
	font-size: var(--base-font-s);
}
.font-ss {
	font-size: var(--base-font-ss);	
}
.font-m {
	font-size: var(--base-font-m);	
}