/*css
//==>>>==>>>==>>>==>>>==>>>==>>>==>>>==>>>==>>>==>>>==>>>==>>>==>>>
//
// style.css
//
//==<<<==<<<==<<<==<<<==<<<==<<<==<<<==<<<==<<<==<<<==<<<==<<<==<<<
*/
*,
*::before,
*::after{
	box-sizing:border-box;
}
html{
	scrollbar-color:#abc8e5 #dee7ef;
}
body{
	position:relative;
	margin:0;
	padding:0;
	font-family:'Lucida Grande','Hiragino Kaku Gothic ProN', Meiryo, "sans-serif";
	font-style:normal;
	font-weight:normal;
	font-size:16px;
	line-height:1.6;
	letter-spacing:0.03em;
	text-align:left;
	vertical-align:baseline;
	overflow-y:scroll;

	display:grid;
	width:100%;
	min-height:100vh;
	grid-template-rows:auto minmax(0,1fr) auto;
}
input,
textarea,
option{
	color:black;
}
/* header */
header{
	padding:5px 0;
	color:#eee;
	background:linear-gradient(to bottom,#222 0%,#222 50%,#000 50%,#000 100%);
	box-shadow:0px 0px 10px 0px #000;
	z-index:1;
	user-select:none;
	display:flex;
	justify-content:space-between;
	align-items:center;
}
header .header-left{
	display:flex;
	justify-content:flex-begin;
	align-items:center;
}
header .menu-button{
	display:inline-block;
	margin-left:5px;
	flex:0 0 40px;
	color:#eee;
}
header .app-title{
	position:relative;
	top:1px;
	display:inline-block;
	margin-left:15px;
	font-size:26px;
	color:#aaa;
	text-decoration:none;
}
header .app-title:hover{
	color:#ccc;
}
@media (width>640px){
	header .app-title::before{
		content:"✦ ";
	}
}
/* main */
main{
	display:flex;
	justify-content:center;
}
.columns{
	position:relative;
	flex:auto;
	min-width:200px;
	max-width:800px;
	/* flex for child elements */
	display:flex;
	flex-direction:row;
}
.columns-left,
.columns-right{
	flex:0 0 0px;
	text-align:center;
}
.columns-center{
	padding:30px 15px 80px 15px;
	/* Allow this flex item
		to shrink to 0px */
	min-width:0;
	flex:auto;
	text-align:left;
	background-color:white;
	border:0 solid #eee;
}
/* footer */
footer{
	padding:10px 15px;
	color:white;
	background:linear-gradient(to right,#444 0%,#000 25%,#000 75%,#444 100%);
	background:linear-gradient(to right,#000 0%,#333 25%,#333 75%,#000 100%);
	box-shadow:0px 0px 10px 0px #000;
	z-index:1;
	display:flex;
	justify-content:center;
	align-items:center;
}
footer a{
	font-weight:bold;
	font-size:14px;
	color:#aaa;
	text-decoration:none;
}
footer a:hover{
	color:#ccc;
}
/* section */
section{
	margin:0 0 40px 0;
	padding:0;
}
section .title{
	margin:0;
	padding:5px 15px;
	text-align:left;
	font-size:120%;
	font-weight:bold;
	border:0 solid #ccc;
	border-width:0 0 1px 15px;
}
/* row */
@media (width>640px){
	.col{
		display:table-cell;
		width:50%;
		max-width:50%;
		vertical-align:top;
	}
	.col-txt-left{
		padding-right:20px;
	}
	.col-txt-right{
		padding-left:20px;
	}
}
.col img{
	width:100%;
	max-width:100%;
}
/* fig */
.fig-label{
	margin:15px;
	padding:4px;
	padding-top:8px;
	font-style:italic;
	font-size:90%;
	text-align:center;
	background:#eec;
	border:1px solid #cca;
	border-width:2px 0;
}
/* code */
.code{
	display:grid;
}
.code pre{
	margin:0;
	padding:10px 15px;
	font-size:110%;
	background:#eee;
	border:1px solid #ddd;
	border-radius:5px;
	overflow-x:auto;
	tab-size:4;
}
/* note */
.note{
	margin:5px 0 5px 10px;
	font-size:90%;
}
/* panel */
.panel{
	margin-bottom:30px;
	border:1px solid #ccc;
	border-radius:5px;
}
.panel-heading{
	padding:15px;
	background-color:#eee;
}
.panel-body{
	padding:15px;
}
.panel-body p:first-child{
	margin-top:0;
}
.panel-body p:last-child{
	margin-bottom:0;
}
.panel-index{
	margin-right:15px;
	padding:0 15px;
	color:white;
	font-weight:bold;
	background-color:#666;
	border-radius:5px;
}
