@charset "UTF-8";

.readonly {
	background-color: #e9ecef !important;
}

/* サイズ */
.w-5 {
	width: 5%;
}
.w-10 {
	width: 10%;
}
.w-15 {
	width: 15%;
}
.w-20 {
	width: 20%;
}
.w-45 {
	width: 45%;
}
.w-60 {
	width: 60%;
}
.w-70 {
	width: 70%;
}
.w-80 {
	width: 80%;
}
.w-90 {
	width: 90%;
}

.h-20 {
	height: 20% !important;
}
.h-80 {
	height: 80% !important;
}

.font-11px {
	font-size: 11px;
}

.left{
	float: left;
}

.small-blank {
	line-height: 10px;
}

body {
	font-family: -apple-system,"BlinkMacSystemFont","Helvetica Neue","Hiragino Kaku Gothic ProN","Hiragino Sans","Meiryo",sans-serif;
	/* font-family: 'Avenir', 'Corbel', 'UD Digi Kyokasho N-R', 'YuKyokasho', 'Hiragino Mincho ProN', serif; */
}

.table {
    display: table;
    border-collapse: collapse;
}

.tr {
    display: table-row;
}
.th {
    display: table-cell;
    padding: 10px;
    border: 1px solid #666;
    vertical-align: middle;
}
.td {
    display: table-cell;
    padding: 10px;
    border: 1px solid #666;
    vertical-align: middle;
}

.table--nested {
    display: table;    
}

.table--nested .td {
    padding: 0;
    border: none;
}


.none-ub {
	text-decoration: none;
}
.underline_black{
	text-decoration:underline solid #000000;
}

.box-border {
	border: solid 1px #000;
	padding: 10px;
}

a {
	color: #000;
}
a:hover {
	color: #555;
}

.hidden {
	display: none;
}
.no-active {
	color: #c0c0c0;
}
.form-inline[readonly] {
    background-color: #e9ecef;
    opacity: 1;
}
.readonly {
	background-color: #e9ecef;
    opacity: 1;
}
.inline {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}
.inline .form-control {
	width: auto;
	min-width: 200px;
}
.inline .form-label {
	margin-top: auto;
	margin-bottom: auto;
}

.strong {
	color: #dc3545;
}

.has-error {
	padding: 10px 0;
	color: #dc3545;
	font-weight: bold;
}

.form-control.is-valid, .was-validated .form-control:valid {
	padding-right: 0;
	background-image: none;
}
.form-control.is-invalid, .was-validated .form-control:invalid {
	padding-right: 0;
	background-image: none;
}

.contentname, .contentname h1 {
	font-size: 25px;
	line-height: 25px;
	font-weight: bold;
	padding: 5px 0px;
}
.subname {
	font-size: 18px;
	line-height: 18px;
	font-weight: bold;
	padding: 0px;
}
.textname {
	font-size: 25px;
	line-height: 25px;
	padding: 5px 0px;
}
.pagename {
	font-size: 20px;
	line-height: 20px;
	font-weight: bold;
	padding: 0px;
}
.statusname {
	font-size: 25px;
	line-height: 25px;
	font-weight: bold;
	padding: 0px;
}

/* パンくず */
.breadcrumb {
	margin: 0px 10px 0px 10px;
}
.breadcrumb-item+.breadcrumb-item::before{/*区切り線の変更*/
	    content: ">";
}
.breadcrumb a{/* 文字色 */
	color:#000;
}
.breadcrumb-item+.breadcrumb-item::before{/* 区切り線の文字色変更 */
	color:#000;
}

/* ソート */
.sort-area {
	position: absolute;
	top: 10px;
	right: 30px;
	font-size: 0.8rem;
}
.sort-link {
	text-decoration: none;
}
.sort-item {
	background-color: #fff;
	border: 1px solid #808080;
	height: 100%;
	color: #808080;
	padding: 3px 5px;
}
.sort-item.active {
	background-color: #808080;
	color: #fff;
}
.sort-link:first-child .sort-item {
    margin-left: 0;
    border-top-left-radius: 1.0rem;
    border-bottom-left-radius: 1.0rem;
}
.sort-link:last-child .sort-item {
	border-top-right-radius: 1.0rem;
	border-bottom-right-radius: 1.0rem;
}
.sort-link:not(:first-child) .sort-item {
    margin-left: -1px;
}

/* ページング */
.pagination_area {
	position: relative;
	width: 100%;
	margin: 0 auto;
	text-align: center;
}
.pagination {
	display: flex;
	padding-left: 0;
	list-style: none;
	border-radius: 0.25rem;
	margin: 10px;
}
.page-link {
	position: relative;
	display: block;
	padding: 0.5rem;
	margin-left: -1px;
	line-height: 1;
	color: #808080;
	background-color: #fff;
	border: 1px solid #808080;
	font-size: 20px;
}
.page-link:hover {
	color: #808080;
	background-color: #fff;
	border: 1px solid #808080;
}
.page-item.active .page-link {
	background-color: #808080;
	border-color: #808080;
	z-index: 3;
	color: #fff;
}
.page-item:first-child .page-link {
	margin-left: 0;
	border-top-left-radius: 0.25rem;
	border-bottom-left-radius: 0.25rem;
}

/* メイン枠 */
#all-content {
	margin: auto;
}

.content-area {
	position:relative;
}

.card-list {
	border: solid 1px #808080;
	height: 100%;
}

/** ステータス */
.const-occure {
	text-align: center;
	border-bottom: 0px;
	padding: 3px;
	background-color: #fff !important;
}
.const-quotation {
	text-align: center;
	border-bottom: 0px;
	padding: 3px;
	background-color: #94d699 !important;
}
.const-contract {
	text-align: center;
	border-bottom: 0px;
	padding: 3px;
	background-color: #f9d599 !important;
}
.const-const {
	text-align: center;
	border-bottom: 0px;
	padding: 3px;
	background-color: #ffb7b7 !important;
}
.const-completion {
	text-align: center;
	border-bottom: 0px;
	padding: 3px;
	background-color: #aee0fb !important;
}
.const-lost {
	text-align: center;
	border-bottom: 0px;
	padding: 3px;
	background-color: #bfbfbf !important;
}
.schedule-info .const-occure
, .schedule-info .const-quotation
, .schedule-info .const-contract
, .schedule-info .const-const
, .schedule-info .const-completion
, .schedule-info .const-lost {
	border-bottom: 1px solid #666;
}


.quotation-occure {
	text-align: center;
	border-bottom: 0px;
	padding: 3px;
	background-color: #fff;
}
.quotation-request {
	text-align: center;
	border-bottom: 0px;
	padding: 3px;
	background-color: #94d699;
}
.quotation-approval {
	text-align: center;
	border-bottom: 0px;
	padding: 3px;
	background-color: #f9d599;
}
.quotation-order {
	text-align: center;
	border-bottom: 0px;
	padding: 3px;
	background-color: #aee0fb;
}
.quotation-lost {
	text-align: center;
	border-bottom: 0px;
	padding: 3px;
	background-color: #bfbfbf
}


/* 検索枠 */
#search-form {
	border: solid 1px #808080;
}

/* 画像 */
.list-img {
	max-width: 130px;
	height: auto;
}
.no-img {
	padding: 0.1rem;
	background-color: #fff;
	border: 1px solid #dee2e6;
	border-radius: 0.25rem;
	max-width: 130px;
	height: auto;
}
.thumbnail {
	padding: 1.5px;
	margin-bottom: 0px;
}
.img-thumbnail {
	max-width: 100%;
	height: auto;
	opacity: 0.9;
}
.thumbUp {
	width: 100px;
}

.photo-box {
	position: relative;
	width: 100px;
	height: 100px;
}
.photo-select {
	border: 1px solid #ced4da;
	background-color: #e9ecef;
	margin-top: 5px;
	width: 100px;
	text-align: center;
	border-radius: 0.2rem;
	cursor: pointer;
}
.photo-select label {
	cursor: pointer;
}
.photo-clear {
	position: absolute;
	top: 0;
	right: 0;
	background-color: #fff;
}

/* 入力フォーム */

.more-detail {
	border: 1px solid #ced4da;
	background-color: #e9ecef;
	padding: 5px;
	width: 150px;
	text-align: center;
	border-radius: 0.2rem;
	cursor: pointer;
}
.more-detail2 {
	border: 1px solid #ced4da;
	background-color: #e9ecef;
	padding: 5px;
	width: 200px;
	text-align: center;
	border-radius: 0.2rem;
	cursor: pointer;
}
.reflection {
	border: 1px solid #ced4da;
	background-color: #e9ecef;
	padding: 5px;
	width: 50px;
	text-align: center;
	border-radius: 0.2rem;
	cursor: pointer;
}

.detail-area {
	border: 1px solid #ced4da;
	background-color: #f7f8f9;
}

.clear-detail {
	border: 1px solid #ced4da;
	background-color: #e9ecef;
	padding: 5px;
	width: 50px;
	text-align: center;
	border-radius: 0.2rem;
	cursor: pointer;
}

.input-grayout {
	background-color: #ddd;
	/*
	align-items: center !important;
	justify-content: center !important;
	display: flex !important;
	*/
}

.login-form input {
	width: 50% !important;
}

#password {
	width: 60%;
}
#view {
	display: inline-block;
}

/* ボタン */
.btn {
  display: inline-block;
  max-width: 90%;
  color: #fff;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  width: 150px;
}
.btn:hover {
	color: #fff;
}
.btn::before {
	content: '';
	position: absolute;
	top: 0;
	display: block;
    width: 100%;
	height: 100%;
	left: -100%;
	background-image: linear-gradient(130deg, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0.5) 50%, rgba(255, 255, 255, 0) 75%);
	transform: skewX(-25deg);
	-webkit-transition: 0.7s;
	transition: 0.7s;
}
.btn:hover::before {
  left: 100%;
}

.btn-top-list {
	background-color: #ee8348;
	color: #FFF;
	font-size: 30px;
	width: 300px;
}
.btn-top-master {
	background-color: #5593d0;
	color: #FFF;
	font-size: 30px;
	width: 300px;
}

.btn-search {
	background-color: #808080;
	color: #FFF;
}
.btn-normal {
	background-color: #3fa373;
	color: #FFF;
}
.btn-confirm {
	background-color: #FF6B6B;
	color: #FFF;
}
.btn-output {
	background-color: #438fed;
	color: #FFF;
}
.btn-clear {
	background-color: #fff;
	color: #808080;
	border: 2px #808080 solid;
}
.btn-clear:hover {
	background-color: #808080;
	color: #fff;
}
.btn-clear::before {
	content: '';
    /*絶対配置でキラッと光るの位置を決める*/
	position: absolute;
	top: 0;
	display: block;
    /*キラッと光る形状*/
    width: 100%;
	height: 100%;
	left: -100%;
	background-image: linear-gradient(130deg, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0.5) 50%, rgba(255, 255, 255, 0) 75%);
	transform: skewX(-25deg);
	-webkit-transition: 0.7s;
	transition: 0.7s;
}

.zipcode-select {
	border: 1px solid #ced4da;
	background-color: #e9ecef;
	margin-top: 5px;
	padding: 5px;
	text-align: center;
	border-radius: 0.2rem;
	cursor: pointer;
	font-size: 13px;
}

#tempSave {
	position: fixed;
	top: 100px;
	right: 50px;
	z-index: 1000;
}

/** ログインフォーム */
.login-content {
  font-family: arial;
  font-size: 24px;
  height: 400px;
  /* 準備 */
  position: relative;
}

.login-form {
  /* 水平・垂直方向の中央揃え */
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border: #000 1px solid;
  margin: auto;
  width: 50%;
  height: 400px;
  padding: 30px;
}
.login-form form {
	padding-top: 100px;
}

.info-title {
	background-color: #ccc;
	text-align: center;
}

/** TOP */
.alert-approvalRequest {
	font-weight: bold;
	font-size: 20px;
}

/** 工事台帳表 */
.const-info, .const-info .col {
	border: #000 1px solid;
}

.const-info .info-title {
	background-color: #fddf35;
}
.info-subtitle {
	background-color: #fef5c7;
	text-align: center;
}
.info-title-2 {
	background-color: #84c1ff;
	text-align: center;
}
.info-subtitle-2 {
	background-color: #cee7ff;
	text-align: center;
}

/** 工事案件 */
.schedule-info {
	width: 100%;
	height: 650px;
	overflow: scroll;
}
.schedule-info .info-title {
	background-color: #ccc !important;
	white-space: pre-wrap;
}
.schedule-info .info-title div {
	padding: 0;
}
.schedule-info .table {
	border-collapse:separate;
}
.schedule-info .tr {
	height: 30px;
}
.schedule-info .td div {
	padding: 0;
	white-space: nowrap;
}
.schedule-info .calendar-date {
    min-width: 25px;
    padding: 0;
    height: 30px;
    border: 0;
}
.schedule-info .calendar-date div {
	padding: 0;
	height: auto;
}
.schedule-info .th {
	position: sticky;
	top: 0;
	height: 30px;
	background-color: #ccc;
	border: #666 1px solid;
	line-height: 16px;
	padding: 2px;
	z-index: 2;
}
.schedule-info .schedule-name-th {
	position: sticky;
	top: 0;
	left: 0;
	z-index: 3;
}
.schedule-info .tr .schedule-status {
	min-width: 75px;
}
.schedule-info .tr .schedule-name {
	position: sticky;
	left: 0;
	background-color: #fff;
	z-index: 1;
}
.schedule-info .tr .schedule-name div {
	min-width: 300px;
	max-width: 300px;
}
.schedule-name div {
	white-space: normal !important;
	word-wrap: break-word;
	text-align: left;
}

.calendar-date div {
	border: #000 1px solid;
}
.calendar-temp {
	background-color: #8dd1af;
}
.calendar-cost {
	background-color: #ffb0b0;
}

/** 年間目標 */
.annualtarget-info {
	width: 75%;
}
.annualtarget-info, .annualtarget-info .col {
	border: #000 1px solid;
	text-align: center;
}


/** 見積・明細 */
#quotation-detail {
	font-size: 12px;
}
.quotation-info, .quotation-info .td, .quotation-info, .quotation-info .col {
	border: #000 1px solid;
	padding: 3px;
}
.quotation-info span {
	padding: 3px;
}
.quotation-info input {
	border: #000 1px solid;
	padding: 3px;
	box-shadow:none
}
.constitem-select {
	padding: 3px !important;
	margin: 3px;
}

.quotation-info .info-title {
	background-color: #ccc;
}
.quotation-info .gray-out {
	background-color: #ddd;
}

.quantity-content {
	flex: 0 0 auto;
	width: 32%;
}
.statement-content {
	flex: 0 0 auto;
	width: 16%;
}
.statement-number {
	flex: 0 0 auto;
	width: 5%;
}
.statement-price {
	flex: 0 0 auto;
	width: 8%;
}
.quantity-remark {
	flex: 0 0 auto;
	width: 32%;
	
}
.statement-remark {
	flex: 0 0 auto;
	width: 12%;
}

/** トグル */
.toggle-btn, .toggle-btn-all {
  padding: 10px 20px;
  margin-top: 10px;
  background-color: #888;
  color: white;
  border: none;
  cursor: pointer;
  border-radius: 5px;
}

/** 並び替え */
.sort-btn {
  padding: 10px 20px;
  margin-top: 10px;
  background-color: #888;
  color: white;
  border: none;
  border-radius: 5px;
}
.sort-btn i {
	margin-right: 10px;
}
.ui-sortable-handle {
  cursor: move !important;
  margin-right: 8px;
}

.ui-sortable-helper {
  opacity: 0.6;
}

/** ユーザー */
.user-info .info-title {
    background-color: #ccc;
}

/** マスタ */
.master-info .info-title {
    background-color: #ccc;
    height: inherit;
}
.master-info .td {
	border: #000 1px solid;
	padding: 10px;
}
.master-info .td-p-0 {
	padding: 0 !important;
}
.master-info .m-h-100 {
	min-height: 100px;
}
.master-info .m-h-100 .tr:first-child>* {
	border-top: 0;
}

/* Google Map */
#my_map_parent {
	position: relative;
	padding-bottom: 40%;
	overflow: hidden;

}
#my_map {
	position: static !important;
}

/** 上へ下へボタン */
.scroll-buttons {
	position: fixed;
	bottom: 20px;
	right: 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	z-index: 1000;
}

.scroll-buttons button {
	width: 48px;
	height: 48px;
	font-size: 18px;
	border: none;
	background-color: #194689;
	color: #fff;
	border-radius: 50%;
	cursor: pointer;
	box-shadow: 0 2px 6px rgba(0,0,0,0.2);
	transition: background-color 0.3s;
}

.scroll-buttons button:hover {
	background-color: #14507a;
}

.scroll-buttons i {
	pointer-events: none; /* ボタン内アイコンのクリック無効化 */
}

/* フッター */
footer {
	background: #467954;
}
footer .cont {
	display: flex;
}
footer .cont-item {
	display: block;
	width: calc(100% / 3);
}
footer .nav {
	display: block;
}
footer .nav .ttl:first-child {
	margin-top: 0;
}
footer .nav .ttl {
	display: block;
	font-size: 14px;
	color: #fff;
}
footer .nav a {
	color: #fff;
	text-decoration: none;
}
footer .nav ul {
	display: block;
	font-size: 14px;
	line-height: 2;
}
footer .nav li:first-child {
	margin-top: 0;
}
footer .nav li {
	display: block;
	font-size: 14px;
	line-height: 2;
}

@media (max-width: 992px) {

	/* ヘッダー背景 */
	.header-exp {
		width: 90%;
		font-size: 4vw;
	}

	.header-title {
		font-size: 20px;
	}
	.subname {
		font-size: 18px;
		line-height: 18px;
	}
	
	.sp-small {
		font-size: 8px;
	}

	/* ソート */
	.sort-item {
		font-size: 0.5rem;
	}
}


@media (max-width: 768px) {
	
	.main-content {
		width: 100%;
		margin: auto;
	}

	/* 文字装飾 */
	.contentname, .contentname h1 {
		font-size: 25px;
		line-height: 25px;
	}
	.annualtarget-info {
		width: 100%;
	}
	
	.sp-none {
		display: none;
	}
	
	/* 改行 */
	.br-pc {
		display: none;
	}
}


@media (min-width: 768px) {
	
	.pc-none {
		display: none;
	}
	
	/* 改行 */
	.br-sp {
		display: none;
	}
	
	.w-lg-50 {
		width: 50%;
	}
	
}
