html, body {
	overscroll-behavior: none;
}

:root {
	--top-height: 74px;
    --month-height:23px;
	--month-padding: 3px;
	--days-wide-height: 30px;
    --hour-height:26px;
	--minute-height: 24px;
	--days-thick-height: 48px;
	--days-thin-height: 26px;
}

#content
{
	box-sizing: border-box;
}
#fslogo {
	position:absolute;
    left:8px;
    top:12px;
    transition:all 0.2s ease-out;
}
#fslogo:hover {
    transform: scale(1.1);
}
#reload {
	position:absolute;
    left:263px;
	top:40px;
	display: none;
    transition:all 0.2s ease-out;
}
#reload:hover {
    transform: scale(1.05);
}
#header {
	width:100%;
	position:fixed;
	top:0;
	left:0;
	background-color:#ece;
	border:solid 1px;
	z-index:400;
	touch-action: none;
}
#alert{
	position:absolute;
    background-color:white;
    border:solid 1px;
    width:250px;
    left:5px;
    bottom:3px;
    height:20px;
	z-index:500;
    display:none;
    text-align:center;
}
#copyright{
	position:absolute;
    width:200px;
    left:5px;
    bottom:3px;
	height:20px;
	padding:2px 3px;
	font-size:small;
}
#auto_update {
	position:absolute;
    top:40px;
    left:290px;
	width:80px;
	height:22px;
}
#update {
	position:absolute;
    top:37px;
    left:375px;
    width:55px;
    height:26px;
}
#info{
	position:absolute;
    background-color:white;
    border:solid 1px;
    left:435px;
    width:385px;
    top : 3px;
    bottom : 3px;
	z-index:500;
	white-space: pre;
	text-overflow: ellipsis;
	overflow: hidden;
}
#message{
	position:absolute;
    background-color:white;
    border:solid 1px;
	overflow:auto;
	left: 435px;
	top: 3px;
	bottom: 3px;
	right:23px;
	font-size:small;
	line-height: 1em;
}
#help {
	position:absolute;
	right:2px;
	top:3px;
	text-align: center;
}
#help a {
	display: block;
	text-decoration:none;
	width:17px;
	height:19px;
	border:solid 1px;
	border-radius:4px;
	background-color:yellow;
	font-size:small;
	transition:all 0.5s ease-out;
	cursor:pointer;
}
#help a:hover {
	background-color:tomato;
}
#compositions {
	position:absolute;
	width:310px;
	top:5px;
	left:120px;
	height:30px;
}
#chart {
	position:absolute;
	left:0;
}
#top_part {
	position:fixed;
	background-color:#8ff;
	z-index:300;
	top:0;
	right:0;
	white-space: nowrap;
}
#left_part {
	position:fixed;
	background-color:#CDD;
	z-index:300;
	left:0;
	bottom:0;
}
#resizer {
	position:fixed;
	background-color:transparent;
	z-index:300;
	width: 5px;
	height: 100%;
	cursor: col-resize;
}
#body_part {
	position:absolute;
	bottom:0;
	right:0;
	bottom:0;
    z-index:0;
}
#corner_part
{
	position:fixed;
	border:solid 1px #444;
	background-color:#8ff;
	z-index:300;
	box-sizing: border-box;
}
.layer_btn {
	position:absolute;
    right : 2px;
    top : 4px;
    width : 19px;
    height : 19px;
	box-sizing: border-box;
}
.layer_btn:hover {
    opacity: 1;
	border:solid 1px #444;
}
.layer_btn_plus {
    background-image: url('img/plus.png');
    background-repeat: no-repeat;
}
.layer_btn_minus {
    background-image: url('img/minus.png');
    background-repeat: no-repeat;
}
.cr_left {
	position:absolute;
	left:0;
	right:0;
	padding:3px;
	overflow: hidden;
	white-space: pre;
	border:solid 1px #444;
	box-sizing: border-box;
	z-index:100;
}
.cr_body {
	position:absolute;
	background-color:#c8ffc8;
	border-top:solid 1px #888;
	border-bottom:solid 1px #888;
	width:100%;
	box-sizing: border-box;
}
.cr_body[fs_rowtype="signboard"] {
	white-space:pre;
	overflow:hidden;
}
.cr_body_past {
	position:absolute;
    top:0;
    height:100%;
	left:0;
	background-color:#fcc;
	border:none;
	z-index:0;
}

/* 基準日時線 */
.cr_basisline {
	position:absolute;
    top:0;
    height:100%;
	width:0;
	background:none;
	border:none;
	z-index:5;
	border-right: solid 1px #66f
}
.tasks {
	width:100%;
	position:absolute;
	z-index:10;
}
.task {
	position:absolute;
	border: solid 1px #888;
    opacity: 0.8;
	white-space: pre;
	line-height: 1.0em;
	padding: 2px;
	box-sizing: border-box;
	cursor:pointer;
	z-index:150;
	overflow:hidden;
}
.task:hover {
	padding: 1px;
	border-width: 2px;
}
.task_started {
	background-color:#888;
	position:absolute;
	bottom:7px;
	height:10px;
	left:0;
    width:100%;
	z-index:152;
}
.task_progress {
	background-color:#555;
	position:absolute;
	left:0;
    top:0;
	height:100%;
	z-index:153;
}
.selected_task
{
	border: solid 2px black;
	z-index:160;
	padding: 1px;
	box-sizing: border-box;
}
.thin_task_strs {
	position:absolute;
    top: 6px;
    bottom: 0px;
    width:100%;
}
.thin_task_str {
    background-color:#ffd;
	position:absolute;
    padding:1px;
	line-height: 1.0em;
	white-space: nowrap;                                          
    border: solid 1px #884;
	box-sizing: border-box;
	z-index:155;
	overflow:hidden;
}
.setup {
	background-color:#884;
	position:absolute;
	bottom:3px;
	height:4px;
	left:0;
	z-index:155;
}
.setup_dep {
	background-color:#884;
	position:absolute;
    opacity: 0.4;
	z-index:150;
}
.teardown {
	background-color:#48c;
	position:absolute;
	bottom:3px;
	height:4px;
	right:0;
	z-index:155;
}
.teardown_dep {
	background-color:#48c;
	position:absolute;
    opacity: 0.4;
	z-index:150;
}
.ats, .tqs {
	width:100%;
	position:absolute;
}
.at {
	bottom:0;
	position:absolute;
	background-color:white;
}
.tq {
	bottom:0;
	position:absolute;
	background-color: rgba(0, 0, 255, 0.25);
	/* border-top: solid 10px transparent; */
	overflow: hidden;
}
.tq_alert {
	border-top: solid 10px red;
}
.tq_scale {
	position: absolute;
	background-color:lightgray;
	width:100%;
	height:1px;
}
.tqs_left {
	width: 5px;
	right: 0;
}
.tqs_left .tq_scale {
	background-color: #333;
}
.tq_scale_text {
	position: absolute;
	right: 7px;
	top: -8px;
	font-size: 13px;
}

.ops {
	width:100%;
	position:absolute;
	z-index:10;
}
.op {
	position:absolute;
	border: solid 1px #888;
    opacity: 0.8;
	white-space: pre;
	line-height: 1.0em;
	padding: 2px;
	box-sizing: border-box;
	cursor:pointer;
	z-index:150;
	overflow:hidden;
}
.op:hover {
	padding: 1px;
	border-width: 2px;
}
.selected_op
{
	border: solid 2px black;
	z-index:160;
	padding: 1px;
	box-sizing: border-box;
}
.sepline
{
	position:absolute;
    bottom:0;
    height:0;
	width:100%;
	background:none;
	border:none;
	z-index:5;
	border-bottom: solid 1px rgb(205, 205, 205)
}
.let
{
	position:absolute;
    bottom:4px;
}
.let_small
{
	border-top: 9px solid transparent;
  	border-right: 9px solid #868ff9;
}
.let_middle
{
	border-top: 12px solid transparent;
  	border-right: 12px solid #868ff9;
}
.let_large
{
	border-top: 15px solid transparent;
  	border-right: 15px solid #868ff9;
}

.fcals {
	width:100%;
	position:absolute;
	z-index:10;	
}
.fcal {
	position:absolute;
	border: solid 1px #888;
    opacity: 0.8;
	white-space: pre;
	padding: 2px;
	box-sizing: border-box;
	z-index:150;
	overflow:hidden;
}
.fcal_str {
	position:absolute;
	white-space: pre;
	display: flex;
	align-items: flex-end;
	justify-content: center;
}

.og_bar
{
    top:4px;
    bottom:4px;
	position:absolute;
    /* padding:2px; */
	line-height: 1.0em;
	white-space: nowrap;                                          
    border: solid 1px #440;
	z-index:155;
	overflow:hidden;
	box-sizing: border-box;
}
.og_bar > .og_progress_min,
.og_bar > .og_progress
{
	position: absolute;
	top: 0;
	bottom: 0;
}
.og_bar > .og_progress_max
{
	position: absolute;
	top: 50%;
	bottom: 0;
}

.milestone
{
	position: absolute;
	bottom: 0;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	z-index: 200;
}

#months {
	position:absolute;
    top:0;
    width:100%;
    height:var(--month-height);
    z-index:200;
	border-bottom:solid 1px #888;
}

.day_grids, .hour_grids {
	position:absolute;
    width:100%;
    height:100%;
}
.day_grid {
	position:absolute;
    height:100%;
    z-index:9;
	box-sizing: border-box;
	border-right:solid 1px #888;
}
.hour_grid {
	position:absolute;
    height:100%;
    z-index:8;
	box-sizing: border-box;
	border-right:solid 1px #ccc;
}

.days {
	display: flex;
	/* position:absolute;
    top:var(--month-height);
    width:100%;
    bottom:0; */
    z-index:199;
	border-bottom:solid 1px #888;
}

.days.top {
    top:0;
    bottom:var(--hour-height);
}

.days_narrow {
	display: flex;
	/* position:absolute;
    top:var(--month-height);
    width:100%;
    bottom:0; */
    z-index:199;
	border-bottom:solid 1px #888;
}
.days_wide {
	display: flex;
	/* position:absolute;
    top:0;
	height:var(--days-wide-height);
    width:100%; */
    z-index:199;
	border-bottom:solid 1px #888;
}

#days {
	position:absolute;
    width: 100%;
	display: flex;
    z-index:199;
	border-bottom:solid 1px #888;
}

#days.thick {
	height: var(--days-thick-height);
}

#days.thin {
	height: var(--days-thin-height);
}

#hours {
	position: absolute;
	width: 100%;
	height: var(--hour-height);
	z-index: 198;
	bottom: 0;
}
#hours.row2 {
	top:var(--days-thin-height);
}

.minutes, .minutes10 {
	display: flex;
	width: 100%;
	align-self: flex-end;
	/* position:absolute;
	bottom:0;
	width:100%; */
	height:var(--minute-height);
	z-index:198;
}
.month {
	position:absolute;
	border-right:solid 1px #888;
	border-left:solid 1px #888;
	background-color: #fef;
    text-align:center;
    height:100%;
    z-index:199;
	border-bottom:solid 1px #888;
	padding-top: var(--month-padding);
}
.day {
	background-color: #fdf;
	border-right:solid 1px #888;
	box-sizing: border-box;
	line-height: 1.1em;
	overflow:hidden;
	display: flex;
	flex: auto;
	flex-basis: 0;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
}
#months .day {
	height:47px;
}

.hour {
    position: absolute;
    background-color: #fcf;
	border-top:solid 1px #888;
	border-right:solid 1px #888;
	box-sizing: border-box;
    text-align:center;
    font-size:small;
}

.minute {
	flex: auto;
	flex-basis: 0;
	flex-wrap: wrap;
    background-color: #fcf;
	border-top:solid 1px #888;
	border-right:solid 1px #888;
	box-sizing: border-box;
    text-align:center;
    font-size:small;
}

.hour {
	min-height: 25px;
}

.minute {
	padding-top: 2px;
}

.hour:last-child, .minute:last-child {
	border-right: none;
}

.hour {
	padding-top: 3px;
}

#clines {
	position:absolute;
    z-index:250;
    pointer-events:none;
}

.marker {
    z-index:500;
	position:fixed;
    width:100px;
    height:100px;
    top:500px;
    left:500px;
    border-radius:50%;
    opacity:0.5;
    background-color:#F52;
}

#tooltip {
	position: absolute;
	font-size: smaller;
    color: #000;
    background-color: #fff;
    border: 1px solid;
    width: fit-content;
    padding: 3px;
    z-index: 300;
}

.sb_fixed {
	position: absolute;
    padding: 3px;
}

.sb_unit {
	position: absolute;
	height: 100%;
	border-right: solid 1px #888;
	box-sizing: border-box;
	overflow: hidden;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
}