
* {
	margin: 0;
	padding: 0;
	font-size: inherit;
	font-style: normal;
	list-style: none;
	vertical-align: top;
	}

body {
	margin: 0;
	font-family: sans-serif;
	font-size: 16px;
	line-height: 1.7em;
	color: #555;
	-webkit-text-size-adjust: 100%;
	}

h1,h2,h3,h4,h5,h6 {
	font-weight: bold;
	}

a {
	display: inline-block;
	color: #2879e9;
	}

input[type=text],
input[type=password] {
	width: 100%;
	padding: 8px;
	font-size: inherit;
	line-height: 32px;
	color: #444;
	border: none;
	background: none;
	box-sizing: border-box;
	-webkit-appearance: none;
	border-radius: 0;
	vertical-align: top;
	outline: none !important
	}

button {
	display: inline-block;
	margin-top: 24px;
	padding: 0 24px;
	border: none;
	border-radius: 4px;
	background-color: #fbefca;
	line-height: 56px;
	font-size: 18px;
	color: #eebe30;
	font-weight: bold;
    box-sizing: border-box;
    -webkit-appearance: none;
    -moz-appearance: none;
    -ms-appearance: none;
    appearance: none;
	outline: none;
	cursor: pointer;
	}

input[type=submit],
input[type=button] {
	display: inline-block;
	margin-top: 24px;
	padding: 0 24px;
	border: none;
	border-radius: 4px;
	background-color: #e5eefc;
	line-height: 56px;
	font-size: 18px;
	color: #2879e9;
	font-weight: bold;
    box-sizing: border-box;
    -webkit-appearance: none;
    -moz-appearance: none;
    -ms-appearance: none;
    appearance: none;
	outline: none;
	}

input[type=radio] {
    display: inline-block;
	position: relative;
	margin-right: 8px;
    width: 24px;
    height: 24px;
    border: none;
    background: rgba(0,0,0,.1);
    border-radius: 12px;
    box-sizing: border-box;
    -webkit-appearance: none;
    -moz-appearance: none;
    -ms-appearance: none;
    appearance: none;
	outline: none;
    }

	input[type=radio]:checked {
	    background-color: #2879e9;
	    }
	
	input[type=radio]:checked::before {
		content: '';
		position: absolute;
		top: 8px;
		left: 8px;
		width: 8px;
		height: 8px;
		background-color: #fff;
	    border-radius: 4px;
	    }

input[type=checkbox] {
    float: left;
	position: relative;
	margin-right: 8px;
    width: 24px;
    height: 24px;
    border: none;
    background: rgba(0,0,0,.1);
    border-radius: 4px;
    box-sizing: border-box;
    -webkit-appearance: none;
    -moz-appearance: none;
    -ms-appearance: none;
    appearance: none;
	outline: none;
    }

	input[type=checkbox]:checked {
	    background: url(/images/check.svg) no-repeat 0 0 #2879e9;
		background-size: contain;
	    }

	input[type=checkbox] + span {
		display: block;
		overflow: hidden;
		}

textarea {
	width: 100%;
	padding: 0;
	font-size: inherit;
	line-height: inherit;
	color: inherit;
	border: none;
	background: none;
	box-sizing: border-box;
	appearance: none;
	border-radius: 0;
	outline: none !important;
	}

textarea::placeholder {
	color: #666;
	}

select {
    display: inline-block;
	max-width: 80px;
	margin-left: 4px;
    padding: 0 40px 0 16px;
	max-width: 100%;
	min-height: 44px;
    border: 1px solid #ddd;
    background: url(/images/icon_arrow_down_mini.svg) no-repeat right center;
    background-size: 32px;
	font-family: inherit;
    font-size: 14px;
    color: #596279;
    line-height: 32px;
	text-align: left;
	cursor: pointer;
    border-radius: 8px;
	box-sizing: border-box;
    -webkit-appearance: none;
    -moz-appearance: none;
    -ms-appearance: none;
    appearance: none;
	outline: none;
    }

	select::-ms-expand {
		display: none;
		}

	select:disabled {
		opacity: .3;
		}

#post input[type=text] {
	width: 100%;
	padding: 0;
	font-size: inherit;
	line-height: inherit;
	color: inherit;
	border: none;
	background: none;
	box-sizing: border-box;
	appearance: none;
	border-radius: 0;
	outline: none !important;
	}

#post input[type=text]::placeholder {
	color: #666;
	}

#contents.login {
	display: flex;
	flex-direction: column;
	justify-content: top;
	align-items: center;
	min-height: 100vh;
	background-color: #fafafa;
	}

#contents:not(.login)::before {
	content: "";
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: 40vw;
	background-color: #fafafa;
	}

#contents.login #logo {
	width: 240px;
	margin-top: 32px;
	}

#contents.login form {
	margin: 32px auto;
	padding: 24px 32px;
	width: fit-content;
	background-color: #fff;
	text-align: center;
	}

#contents.login dt {
	float: left;
	clear: left;
	margin-top: 8px;
	width: 7em;
	line-height: 40px;
	border: 1px solid #eee;
	border-right: none;
	background-color: #eee;
	border-radius: 3px 0 0 3px;
	color: #777;
	text-align: center;
	box-sizing: border-box;
	}

#contents.login dd {
	margin-left: 7em;
	padding-top: 8px;
	text-align: left;
	overflow: hidden;
	}

#contents.login input[type=text],
#contents.login input[type=password] {
	border: 1px solid #eee;
	border-radius: 0 3px 3px 0;
	line-height: 24px;
	}

#contents.login input[type=submit] {
	display: block;
	margin: 8px 0 16px;
	width: 100%;
	line-height: 40px;
	font-size: 18px;
	}

#header {
	display: flex;
	justify-content: flex-start;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 80px;
	background-color: #000;
	z-index: 100;
	}

#header h1 {
	flex-grow: 1;
	padding: 16px;
	line-height: 48px;
	color: #fff;
	font-size: 22px;
	font-weight: bold;
	}

#header h1 img {
	width: 48px;
	margin-right: 16px;
	border-radius: 12px;
	}

#header #menu {
	padding: 0 40px 0 0;
	}

#header #menu a {
	display: inline-block;
	margin: 28px 0;
	padding: 0 12px;
	border-radius: 4px;
	background-color: #2879e9;
	font-size: 13px;
	line-height: 24px;
	color: #000;
	text-decoration: none;
	}

main {
	margin-top: 80px;
	}

main h1 {
	padding-bottom: 8px;
	border-bottom: 1px solid rgba(0,0,0,.1);
	font-size: 20px;
	line-height: 32px;
	color: #000;
	}

#post {
	margin-right: 40vw;
	padding: 24px 40px 128px 40px;
	}

#post .message {
	margin-top: 24px;
	padding: 16px;
	border-radius: 8px;
	border: 1px solid #d9e7a6;
	background-color: #e5f4ae;
	color: #97c100;
	}

#post dt {
	margin: 24px 0 4px 0;
	font-size: 14px;
	color: #2879e9;
	}

#post .input-item {
	padding: 8px;
	border: 1px solid #ddd;
	border-radius: 4px;
	}

#post dd.date {
	display: flex;
	}

#post dd.radio label {
	margin-right: 1em;
	}

#post dd.option {
	position: relative;
	margin-top: 8px;
	padding: 16px;
	border: 1px solid #d8e0ea;
	background-color: #f4f9ff;
	border-radius: 8px;
	}

#post dd em {
	display: block;
	margin-top: 8px;
	font-size: 12px;
	line-height: 18px;
	}

body:not(.segment) dd.segment {
	display: none;
	}

body.segment dd.segment {
	display: block;
	}

#test dd.option {
	position: relative;
	margin-top: 8px;
	padding: 16px;
	border: 1px solid #f7f2dc;
	background-color: #fffcf1;
	border-radius: 8px;
	}

#test dd .input-item {
	margin-bottom: 8px;
	background-color: #fff;
	}

#test dd em {
	display: block;
	font-size: 12px;
	line-height: 18px;
	}

#test-send-button {
	position: relative;
	width: fit-content;
	}

	#test-send-button.sending {
		color: rgba(0,0,0,0);
		}
	
	#test-send-button::before {
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		background: url(/images/spiner.svg) no-repeat center center;
		background-size: contain;
		opacity: 0;
		}
	
	#test-send-button.sending::before {
		opacity: 1;
		}

body.test #send-button,
body:not(.test) #test-send-button,
body:not(.test) #test dd.option {
	display: none;
	}

body:not(.test) #send-button,
body.test #test-send-button,
body.test #test dd.option {
	display: block;
	}

#send-button.sending {
	opacity: .5;
	pointer-events: none;
	}

#history {
	position: fixed;
	top: 80px;
	right: 0;
	bottom: 0;
	width: 40vw;
	padding: 24px 40px;
	box-sizing: border-box;
	overflow: auto;
    -webkit-overflow-scrolling: touch;
	}

#history header {
	position: relative;
	}

#history header i {
	position: absolute;
	top: 0;
	right: 0;
	color: #2879e9;
	}

#history ol li {
	position: relative;
	padding: 16px 4em 16px 0;
	border-bottom: 1px dashed #ccc;
	}

#history ol li h2 {
	margin-bottom: 4px;
	}

#history ol li span.thumbnail {
	display: block;
	float: left;
	margin-right: 8px;
	width: 40px;
	height: 40px;
	border: 1px solid rgba(0,0,0,.1);
	border-radius: 4px;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	}

#history ol li p {
	font-size: 14px;
	line-height: 22px;
	}

#history ol li > a {
	display: block;
	font-size: 11px;
	line-height: 150%;
	}

#history ol li .info {
	margin-top: 8px;
	font-size: 13px;
	line-height: 18px;
	}

#history li em {
	display: inline-block;
	margin-right: 4px;
	padding: 0 6px;
	border-radius: 4px;
	background-color: #dfe2f1;
	color: rgba(0,0,0,.5);
	line-height: inherit;
	font-size: 11px;
	}

#history li em var {
	margin-left: 1ex;
	}

#history ol li time {
	color: #9a99c7;
	}

#history ol li i {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 3em;
	text-align: center;
	}

#history ol li i img {
	position: absolute;
	top: 50%;
	left: 50%;
	margin: -12px 0 0 -12px;
	width: 24px;
	height: 24px;
	}

.pager {
	overflow: hidden;
	zoom: 1;
	}

.pager ul {
	padding-top: 24px;
	text-align: center;
	}

.pager li {
	display: inline-block;
	margin: 0 4px;
	padding: 0 !important;
	border: none !important;
	line-height: 32px;
	text-align: center;
	}

.pager a {
	display: block;
	width: 32px;
	line-height: 32px;
	vertical-align: top;
	background-color: #2879e9;
	color: #fff;
	border-radius: 8px;
	text-decoration: none;
	}

	.pager li.first a,
	.pager li.last a {
		width: auto;
		padding: 0 16px;
		}
	
	.pager a:hover {
		background-color: #669eeb;
		}
	
	.pager li.selected a {
		background-color: #000;
		}
	
	.pager li.disabled a {
		background-color: #ddd;
		color: #aaa;
		text-decoration: none;
		pointer-events: none;
		}

	.pager span {
		font-size: 14px;
		}

	.pager s {
		display: block;
		width: 32px;
		line-height: 32px;
		vertical-align: top;
		background-color: #ddd;
		color: #999;
		border-radius: 8px;
		text-decoration: none;
		}

.pager i {
	display: block;
	margin-top: 8px;
	font-size: 14px;
	line-height: 32px;
	color: #999;
	text-align: center;
	}






/* ////////// under 960 ////////// */

@media screen and (max-width: 960px) {

#contents:not(.login)::before {
	display: none;
	}

#post {
	margin-right: 0;
	padding: 24px 40px 64px 40px;
	}

#history {
	position: static;
	width: auto;
	padding: 24px 40px;
	background-color: #fafafa;
	}

}


/* ////////// under 480 ////////// */

@media screen and (max-width: 480px) {

#header {
	height: 64px;
	}

#header h1 {
	padding: 12px;
	line-height: 40px;
	color: #fff;
	font-size: 18px;
	}

#header h1 img {
	width: 40px;
	margin-right: 12px;
	border-radius: 10px;
	}

#header h1 i {
	display: none;
	}

#header #menu {
	padding: 0 12px 0 0;
	}

#header #menu a {
	display: inline-block;
	margin: 20px 0;
	padding: 0 12px;
	border-radius: 4px;
	background-color: #2879e9;
	font-size: 13px;
	line-height: 24px;
	color: #000;
	text-decoration: none;
	}

main {
	margin-top: 64px;
	}

#post {
	padding: 24px 24px 48px 24px;
	}

#post dd.date {
	flex-wrap: wrap;
	}

#post dd.date .input-item {
	width: 100%;
	}

#post dd.date select {
	margin: 8px 8px 0 0;
	}

#post input[type=button] {
	width: 100%;
	}

#test dd .detail {
	display: block;
	}

#test dd em {
	margin: 0 0 8px 0;
	}

#test dd button {
	width: 100%;
	}

#history {
	padding: 24px;
	}

#history ol li {
	padding: 16px 0;
	}

#history ol li h2 {
	margin-bottom: 12px;
	margin-right: 3em;
	font-size: 15px;
	line-height: 150%;
	}

#history ol li i {
	top: 32px;
	bottom: auto;
	}

}
