@import url(https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Titillium+Web:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap);
@import url(https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css);
@import url(https://fonts.googleapis.com/css2?family=Kosugi&display=swap);
@import url(https://fonts.googleapis.com/css2?family=BIZ+UDPGothic:wght@400;700&display=swap);
@charset "UTF-8";
/*@import url('https://fonts.googleapis.com/css2?family=Yellowtail&display=swap');*/
/*@import url('https://fonts.googleapis.com/css2?family=BIZ+UDGothic:wght@400;700&display=swap');*/
/*@font-face {*/
/*    font-family: 'Noto Sans Japanese';*/
/*    font-style: thin;*/
/*    font-weight: 100;*/
/*    src: url("/fonts/NotoSansCJKjp-Thin.eot");*/
/*    src: url("/fonts/NotoSansCJKjp-Thin.eot?#iefix") format("embedded-opentype"), url("/fonts/NotoSansCJKjp-Thin.woff") format("woff"), url("/fonts/NotoSansCJKjp-Thin.ttf") format("truetype"), url("/fonts/NotoSansCJKjp-Thin.otf") format("opentype");*/
/*}*/
/*@font-face {*/
/*    font-family: 'Noto Sans Japanese';*/
/*    font-style: normal;*/
/*    font-weight: 400;*/
/*    src: url("/fonts/NotoSansCJKjp-Regular.eot");*/
/*    src: url("/fonts/NotoSansCJKjp-Regular.eot?#iefix") format("embedded-opentype"), url("/fonts/NotoSansCJKjp-Regular.woff") format("woff"), url("/fonts/NotoSansCJKjp-Regular.ttf") format("truetype"), url("/fonts/NotoSansCJKjp-Regular.otf") format("opentype");*/
/*}*/
/*@font-face {*/
/*    font-family: 'Noto Sans Japanese';*/
/*    font-style: bold;*/
/*    font-weight: 700;*/
/*    src: url("/fonts/NotoSansCJKjp-Bold.eot");*/
/*    src: url("/fonts/NotoSansCJKjp-Bold.eot?#iefix") format("embedded-opentype"), url("/fonts/NotoSansCJKjp-Bold.woff") format("woff"), url("/fonts/NotoSansCJKjp-Bold.ttf") format("truetype"), url("/fonts/NotoSansCJKjp-Bold.otf") format("opentype");*/
/*}*/

:root {
    /*--font-base: "Yu Gothic UI", "Yu Gothic", "Kosugi", "Hiragino Kaku Gothic Pro", "Noto Sans JP";*/
    --font-base: "Kosugi", "Yu Gothic UI", "Hiragino Kaku Gothic Pro", "Noto Sans JP";
    --font-heading: var(--font-base);
    --font-brand: "Titillium Web", sans-serif;
}

html,

/* 半角円記号対策のため、GoogleFontsのKosugiをつかう */
body {
    /*font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", 'Noto Sans Japanese', sans-serif;*/
    /*font-family: "BIZ UDPゴシック","游ゴシック Medium", "Yu Gothic Medium", 'Noto Sans Japanese', sans-serif;*/
    /*font-family: "BIZ UDPGothic", sans-serif;*/
    /*font-family: "BIZ UDGothic", sans-serif;*/
    /*font-family: 'Kosugi','Noto Sans JP', sans-serif;*/
    font-family: var(--font-base), system-ui, sans-serif;
    font-size: 13px;
    /*font-size: 1rem;*/
}

h3.operation_stats {
    font-size: 1.3rem !important;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading) sans-serif;
}
/*select {*/
/*    font-family: 'FontAwesome', 'Noto Sans JP', sans-serif;*/
/*}*/

/* PC用ロゴ（sm以上）。スマホでは表示されない */
.navbar-brand-logo-img {
    height: 16px;  /* お好みで 24〜36px 程度 */
    width: auto;
    display: inline-block;
}

/* クリックすると選択されるケースがあるためselectを無効にする */
label {
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
}

.margin-bottom-0 {
    margin-bottom: 0;
}

input[type=checkbox],
input[type=radio] {
    vertical-align: text-top;
}
input:focus,
select:focus,
textarea:focus {
    background-color: aliceblue !important;
    /*outline: none; !* デフォルトの枠を削除する場合 *!*/
}
p.upload_link {
    margin-top: 10px;
    font-size: 1.1rem;
}


/* 削除時のパスフレーズ用 */
pre.passphrase {
    display: block;
    margin: 0;
    padding: 5px;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    text-align: center;
    border: 1px;
    border-radius: 5px;
    font-size: 16px;
    background-color: white;
}
pre.delete-passphrase {
    background-color: pink;
}


.content-header h1 {
    /*font-family: 'Noto Sans JP', sans-serif;*/
    font-family: var(--font-heading), sans-serif;
    font-weight: 700;
}
.brand-text {
    /*font-family: 'BIZ UDPGothic', sans-serif;*/
    font-family: var(--font-brand), sans-serif;
    line-height: normal;
    font-size: 1.8rem;
    font-weight: 400 !important;
    top: 3px;
    display: block;
    position: absolute;
    left: 56px;
}

.btn-primary {
    color: #fff !important;
    background-color: #00887E !important;
    border-color: #00887E !important;
}
#btnShowCustomerSelect {
    background-color: #e9ecef !important;
    border: 1px solid #ced4da !important;
}

.main-content {
    margin-bottom: 25px;
}

.nowrap {
    white-space: nowrap;
}

.card-primary.card-outline{
    border-top: 3px solid #00887E !important;
}

.card-header {
    /*background-color: rgba(0,0,0,.03);*/
    background-color: rgba(0,0,0,.07);
    border-bottom: 1px solid rgba(0,0,0,.125);
    padding: .75rem 1.25rem;
    position: relative;
    border-top-left-radius: .25rem;
    border-top-right-radius: .25rem;
}

.card-title {
    /*width: 100%;*/
    font-size: 1.2rem;
    font-weight: 600;
}

.card-body {
    background-color: rgba(0, 0, 0, .03) !important;
}

.card-body-title {
    width: 100%;
    /*height: 24px;*/
    /*overflow: hidden;*/
    /*text-overflow: ellipsis;*/
}
.card-body-text {

}
.card-body-control {

}
div.item__thumbnail_box {
    position: relative;
    width: 100%;
    height: 180px;
    overflow: hidden;
    cursor: pointer;
}
div.item__filetype_badge {
    position: absolute;
    top: 10px;
    left: 10px;
}
div.item__filetype_badge > .badge {
    font-size: 1.2rem;
    background-color: rgba(220, 53, 69 ,0.8);
}

img.item__thumbnail {
    width: 100%;
    /*border-radius: 5px;*/
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    display: block;
}

@media (max-width: 768px) {
    .modal-dialog {
        max-width: 100vw;
        height: 100vh;
        margin: 0;
    }
    .modal-content {
        height: 100vh;
        border-radius: 0;
    }
}

.badge {
    font-size: 0.9rem;
    font-weight: 400;
}
.badge.badge-office {
    font-weight: bold;
    color: #fff;
    border: none;
}
.badge.badge-category {
    color: #6c757d;
    background-color: #eee;
    border: 1px solid #6c757d;
}
.badge-red {
    color: #ffffff !important;
    background-color: rgba(237, 28, 36, 0.8) !important;
}
.badge-blue {
    color: #ffffff !important;
    background-color: rgba(43, 87, 154, 0.8) !important;
}
.badge-green {
    color: #ffffff !important;
    background-color: rgba(33, 115, 70, 0.8) !important;
}
.badge-orange {
    color: #ffffff !important;
    background-color: rgba(208, 68, 35, 0.8) !important;
}
.badge-gray {
    color: #ffffff !important;
    background-color: rgba(85, 85, 85, 0.8) !important;
}

/* サイドバーの開閉時のちらつきがうざいので対策 */
.sidebar-collapse .nav-header {
    display: block !important;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
}
.sidebar .nav-item i.fa,
.sidebar .nav-item i.fas,
.sidebar .nav-item i.bi {
    font-size: 20px;
    min-width: 22px;
    text-align: center;
}
.nav-sidebar .nav-link p {
    margin-left: 10px !important;
    white-space: nowrap !important;
}


.nav-bottom {
    width: 100%;
    height: 5px;
    margin-bottom: 5px;
    background-color: white;
    border-left: 1px solid #DFE2E6;
    border-right: 1px solid #DFE2E6;
    border-bottom: 1px solid #DFE2E6;
}

.nav-brand-logo {
    padding: 0 1rem 0 0 !important;
    vertical-align: middle;
    font-size: 1.2rem;
    font-weight: 800;
    font-style: normal;
}
.nav-brand-logo > .nav-link {
    padding: 0 1rem 0 0 !important;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    text-align: center;
}

aside.main-sidebar {
    font-size: 1.25rem !important;
}
aside.main-sidebar .brand-link {
    font-size: 1.5rem !important;
    padding: 0.6rem 0.5rem !important;
}
aside.main-sidebar .brand-link .brand-image {
    margin-left: 0.5rem !important;
}

/** Sizing Utility **/
.wd-150,
.width-150 {
    width: 150px;
    max-width: 150px;
    min-width: 150px;
}
.wd-200,
.width-200 {
    width: 200px;
    max-width: 200px;
    min-width: 200px;
}
.wd-250,
.width-250 {
    width: 250px;
    max-width: 250px;
    min-width: 250px;
}


/**********************************************************************************************************************/

/*スクロールバー*/

::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}
::-webkit-scrollbar-track {
    /*border-radius: 10px;*/
    box-shadow: inset 0 0 5px rgba(0, 0, 0, .1);
}
::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 50, .5);
    /*border-radius: 10px;*/
    box-shadow:0 0 0 1px rgba(255, 255, 255, .3);
}

/**********************************************************************************************************************/

.rm5 {
    margin-right: 5px;
}
.rm10 {
    margin-right: 10px;
}

.col-no-padding {
    padding-right: 0 !important;
    padding-left: 0 !important;
}

.category-nav {
    width: 100%;
}

.schedule-wrapper,
.listtable-wrapper {
    width: 100%;
    display: flex;
}
.col-worker-side {
    max-width: 210px;
    min-width: 210px;
    /*margin-top: 10px;*/
    margin-right: 5px;
    overflow-y: auto;
}
.col-worker-side table {
    border: 1px solid #ddd;
}
.col-worker-side table thead {
    position: sticky;
    top: 0;
    z-index: 1;
    background-color: #fff;
    border-bottom: 1px #eee;
}

.col-worker-side table th {
    padding: 2px 2px;
    text-align: center;
}
.col-worker-side table td {
    padding: 3px 3px;
}

.col-schedule-side,
.col-list-side {
    width: 100%;
    flex: 1;
    /*margin-top: 10px;*/
    overflow: scroll;
}
.col-vertical-list {
    width: 100%;
    flex: 1;
    /*margin-top: 10px;*/
    overflow: scroll;
    overflow-y: auto;
    overflow-x: hidden;
}
th.worker-cell,
td.worker-cell {
    width: auto;
    vertical-align: middle;
}
th.worker-cell span.worker-name,
td.worker-cell span.worker-name {
    display: block;
    width: 87px;
    max-width: 87px;
    min-width: 87px;
    vertical-align: middle;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
th.worker-select-cell,
td.worker-select-cell {
    width: 35px;
    max-width: 35px;
}

div.card-worker {
    height: 30px;
    padding: 5px 5px;
    text-align: center;
    vertical-align: middle;
    background: #eee;
    border-radius: 5px;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    cursor: pointer;
}
div.schedule-wrapper.search div.card-worker {
    cursor: default;
}

div.card-worker.card-worker-select {
    width: 30px;
    min-width: 30px;
    color: transparent;
}
div.card-worker.worker-assign {
    width: 80px;
    min-width: 80px;
    padding: 5px 1px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
div.card-worker.worker-assign.worker-assigned {
    /*background-color: peachpuff;*/
    cursor: pointer;
}
div.card-worker.worker-assign.worker-unassigned {
    color: #ccc;
    background-color: #eee;
    border: 2px dashed #ccc;
    padding: 3px;
}
div.card-worker.worker-available {
    /*background-color: peachpuff;*/
    color: black;
    cursor: pointer;
}
div.card-worker.worker-selected {
    line-height: 1.1;
    border: 3px solid rgba(255,0,0,0);
    animation: blink 0.5s ease-in-out infinite alternate;
}
@keyframes blink {
    0% {border: 3px solid rgba(255,0,0,0);}
    100% {border: 3px solid rgba(255,0,0,0.8);}
}
div.card-worker.worker-selected.select-am {
    background-color: #fd7e14 !important;
}
div.card-worker.worker-selected.select-pm {
    background-color: #28a745 !important;
}
div.card-worker.worker-selected.select-final {
    background-color: #008db7 !important;
}
div.card-worker.worker-available.select-am.worker-already-assigned,
div.card-worker.worker-available.select-pm.worker-already-assigned,
div.card-worker.worker-available.select-final.worker-already-assigned {
    /* opacity: 0.3 !important; */
    background-color: #cccccc !important;
    color: #000000 !important;
    cursor: default;
}
div.card-worker span.card-worker-name {
    width: 100%;
    margin: 0;
    text-align: center;
    /*transform: scaleX(0.8);*/
    white-space: nowrap;
}
input[type=radio].worker-select {
    display: none;
}
label.worker-select {
    font-weight: normal !important;
}
div.postpended-text {
    height: 30px;
    padding: 5px 5px;
    text-align: center;
    vertical-align: middle;
    background: #edd;
    /*border: 1px solid #000000;*/
    border-radius: 5px;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    color: #000000;
}
div.canceled-text {
    height: 30px;
    padding: 5px 5px;
    text-align: center;
    vertical-align: middle;
    background: #edd;
    /*border: 1px solid #000000;*/
    border-radius: 5px;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    color: #000000;
}
div.provisional-text {
    height: 30px;
    padding: 5px 5px;
    text-align: center;
    vertical-align: middle;
    background: #edd;
    /*border: 1px solid #000000;*/
    border-radius: 5px;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    color: #000000;
}

.tip {
    padding: 5px 5px;
    text-align: center;
    vertical-align: middle;
    background: #fff;
    border-radius: 5px;
    box-shadow: 0 2px 5px 0 rgba(60, 64, 67, 0.16);
}


table.table-detail th {
    width: 200px;
    background-color: #eee;
}
table.table-detail th:nth-child(1) th,
table.table-detail th:nth-child(1) td {
    border-top: 1px solid #dee2e6;
}
table.table-detail td,
table.table-detail th {
    padding: .75rem;
    vertical-align: top;
    border-bottom: 1px solid #dee2e6;
}

table.table-customer-unit-price {

}
table.table-customer-unit-price.input-unit-price th,
table.table-customer-unit-price.input-unit-price td {
    padding: 0;
}
table.table-customer-unit-price td.title {
    width: 50%;
}
table.table-customer-unit-price td.unit_price,
table.table-customer-unit-price td.payment {
    width: 25%;
    text-align: right;
}
table.table-customer-unit-price td input {
    border-top: none !important;
    border-radius: 0 !important;
}
table.table-customer-unit-price td input.title {
}
table.table-customer-unit-price td input.unit_price,
table.table-customer-unit-price td input.payment {
    text-align: right;
}

/*div.schedule-list-container {*/
/*    font-size: 13px;*/
/*}*/

/* worker table */
.table.worker-table {
    /*display: table;*/
    background-color: #fff;
    /*width: 100%;*/
    /*overflow: hidden;*/
    /*table-layout: fixed;*/
    border: 1px solid #ddd;
    /*border-radius: 6px;*/
    /*-webkit-border-radius: 6px;*/
    /*-moz-border-radius: 6px;*/
    border-collapse: separate;
    border-spacing: 0;
}
.table.worker-table .card-worker {
    /*background-color: peachpuff;*/
}

.select-am {
    /* background-color: #EAAC6E !important; */
    background-color: #99ccff !important;
    color: #000000 !important;
}
.select-pm {
    /* background-color: #9DC68A !important; */
    background-color: #EAAC6E !important;
    color: #000000 !important;
}
.select-final {
    /* background-color: #99B5D3 !important; */
    background-color: #003366 !important;
    color: #FFFFFF !important;
}
.select-provisional {
    background-color: #F6C7D9 !important;
    color: #000000 !important;
}
.not-select-am,
.not-select-pm,
.not-select-final {
    /*color: #D70702 !important;*/
    /*background-color: #F9EAEA !important;*/
    color: #FFFFFF !important;
    background-color: #D70702 !important;

}
.not-select-am > span,
.not-select-pm > span,
.not-select-final > span {
    /* 元のテキストを非表示にする */
    visibility: hidden;
    position: relative;
}

.not-select-am > span::before,
.not-select-pm > span::before,
.not-select-final > span::before {
    /* ::before疑似要素を使って新しいテキストを追加 */
    content: '×';
    visibility: visible;
    position: absolute;
    top: -3px;
    left: -3px;
}


.table.worker-table thead th {
    border: none;
}
.table.worker-table th,
.table.worker-table td {
    border-bottom: 1px solid #ddd;
}

/* schedule table */
.vue-list-table-wrapper {
    /*margin-left: 160px;*/
    /*height: 100vh;*/
    /*overflow-x: scroll;*/
    /*overflow-y: scroll;*/
    /*overflow: scroll;*/
}
.table.vue-list-table {
    display: table;
    background-color: #fff;
    /*width: auto;*/
    /*overflow: hidden;*/
    /*overflow: scroll;*/
    table-layout: fixed;
    /*border: 1px solid #ddd;*/
    /*border-radius: 6px;*/
    -webkit-border-radius: 6px;
    -moz-border-radius: 6px;
    border-collapse: separate;
    border-spacing: 0;
}
.vue-list-table__default {
    width: 100%;
}
.vue-list-table__scrollable {
    width: auto;
}
.vue-list-table .grip,
.vue-list-table .grip-disabled {
    font-size: 1.1rem;
    color: #ddd;
    width: 20px;
    min-width: 20px;
    vertical-align: middle!important;
    background-color: #fff;
}
.vue-list-table tbody tr:nth-child(even) .grip,
.vue-list-table tbody tr:nth-child(even) .grip-disabled {
    background-color: #eee;
}
.vue-list-table td.grip {
    cursor: grab;
}
.vue-list-table td.grip:hover {
    color: black;
}
.vue-list-table .id {
    width: 20px;
    min-width: 20px;
    text-align: right;
    vertical-align: middle!important;
}
.vue-list-table .check,
.vue-list-table .estimate,
.vue-list-table .report,
.vue-list-table .indicator-single {
    width: 45px;
    min-width: 45px;
    text-align: center;
    vertical-align: middle!important;
}
.vue-list-table .wk_lock {
    width: 30px;
    min-width: 30px;
    text-align: center;
    vertical-align: middle!important;
}
.vue-list-table .check .far,
.vue-list-table .check .bi,
.vue-list-table .estimate .fas,
.vue-list-table .estimate .bi,
.vue-list-table .report .fas,
.vue-list-table .report .bi,
.vue-list-table .indicator-single .fas,
.vue-list-table .indicator-single .bi,
.vue-list-table .wk_lock .bi {
    font-size: 1.4rem!important;
    color: #ddd !important;
}
.vue-list-table .check .far.active,
.vue-list-table .check .bi.active,
.vue-list-table .estimate .fas.active,
.vue-list-table .estimate .bi.active,
.vue-list-table .report .fas.active,
.vue-list-table .indicator-single .fas.active,
.vue-list-table .indicator-single .bi.active {
    font-size: 1.4rem!important;
    color: #ff0000 !important;
}
.vue-list-table .category {
    width: 100px;
    min-width: 100px;
    text-align: center;
    vertical-align: middle!important;
}
.vue-list-table .number {
    width: 20px;
    min-width: 20px;
    text-align: center;
    vertical-align: middle!important;
}
.vue-list-table .number_50 {
    width: 50px;
    min-width: 50px;
    text-align: center;
    vertical-align: middle!important;
}
.vue-list-table .times {
    width: 50px;
    min-width: 50px;
    text-align: center;
    vertical-align: middle!important;
}
.vue-list-table .times .badge {
    font-size: 1.1rem;
}
.vue-list-table .map {
    width: 32px;
    min-width: 32px;
    text-align: center;
}
.vue-list-table .indicator {
    width: 75px;
    min-width: 75px;
    text-align: center;
    vertical-align: middle!important;
}
.vue-list-table .indicator .fas,
.vue-list-table .indicator .bi {
    font-size: 1.4rem!important;
    color: #ddd !important;
}
.vue-list-table .indicator-single .fas.maps--registered,
.vue-list-table .indicator-single .bi.maps--registered {
    cursor: pointer !important;
}
.vue-list-table .indicator-single .fas.maps--registered,
.vue-list-table .indicator-single .bi.maps--registered {
    color: red !important;
}
.vue-list-table .indicator .fas.file--attached,
.vue-list-table .indicator .bi.file--attached {
    cursor: pointer !important;
}
.vue-list-table .indicator .fas.file_maps--attached,
.vue-list-table .indicator .bi.file_maps--attached {
    color: red !important;
}
.vue-list-table .indicator .fas.file_ngchart--attached,
.vue-list-table .indicator .bi.file_ngchart--attached {
    color: green !important;
}
.vue-list-table .indicator .fas.file_etcdocs--attached,
.vue-list-table .indicator .bi.file_etcdocs--attached {
    color: blue !important;
}

.vue-list-table .indicator .fa-map-marked-alt.active {
    color: dodgerblue!important;
}
.vue-list-table .indicator .fa-file-signature.active {
    color: red!important;
}
.vue-list-table .wk_lock .worker--locked {
    color: red!important;
}
.vue-list-table td.indicator {
    letter-spacing: 2px!important;
}
.vue-list-table td.indicator i {
    width: auto!important;
}
.vue-list-table th.flexible {
    width: 100%;
}
.vue-list-table td.flexible {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}
.vue-list-table .flexible div.flex__zip_cd,
.vue-list-table .flexible div.flex__address {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.vue-list-table .max-line-2 {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.vue-list-table .send {
    width: 40px;
    min-width: 40px;
    text-align: center;
    vertical-align: middle!important;
}
.vue-list-table .send span.badge {
    width: 30px;
}
.vue-list-table .am,
.vue-list-table .pm,
.vue-list-table .final {
    width: 85px;
    min-width: 85px;
    text-align: center;
    vertical-align: middle!important;
}
.vue-list-table .am .card-worker {
    /*background-color: palegoldenrod;*/
}
.vue-list-table .pm .card-worker {
    /*background-color: palegreen;*/
}
.vue-list-table .final .card-worker {
    /*background-color: paleturquoise;*/
}
.vue-list-table .postpended,
.vue-list-table .canceled {
    /*width: 255px;*/
    /*min-width: 255px;*/
    text-align: center;
    vertical-align: middle!important;
}
.vue-list-table .provisional {
    width: 135px;
    min-width: 135px;
    text-align: center;
    vertical-align: middle!important;
}
.vue-list-table .estimate_no,
.vue-list-table .invoice_no {
    width: 70px;
    min-width: 70px;
    text-align: center;
    vertical-align: middle!important;
}
.vue-list-table .estimate_no a.btn,
.vue-list-table .invoice a.btn {
    min-width: 50px;
}
.vue-list-table .total_amount,
.vue-list-table .subtotal,
.vue-list-table .tax_amount {
    width: 90px;
    min-width: 90px;
    text-align: right;
    vertical-align: middle!important;
}
.vue-list-table .date {
    width: 80px;
    min-width: 80px;
    text-align: center;
    vertical-align: middle!important;
}
.vue-list-table .datetime {
    width: 150px;
    min-width: 150px;
    text-align: center;
    vertical-align: middle!important;
}
.vue-list-table .office-short,
.vue-list-table .priority,
.vue-list-table .time,
.vue-list-table .period {
    width: 45px;
    min-width: 45px;
    text-align: center;
    vertical-align: middle!important;
}
.vue-list-table .contractor,
.vue-list-table .client {
    width: 250px;
    min-width: 250px;
    text-align: left;
}
.vue-list-table .name,
.vue-list-table .company_name {
    width: 150px;
    min-width: 150px;
    text-align: left;
}
.vue-list-table .uuid {
    width: 280px;
    min-width: 280px;
    text-align: left;
}
.vue-list-table .company {
    width: 300px;
    min-width: 300px;
    text-align: left;
}
.vue-list-table th.address {
    width: 400px;
    min-width: 400px;
    text-align: left;
}
.vue-list-table td.address {
    width: 400px;
    min-width: 400px;
    text-align: left;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.vue-list-table .tel {
    width: 110px;
    min-width: 110px;
    text-align: left;
}
.vue-list-table .email {
    width: 200px;
    min-width: 200px;
    text-align: left;
}
.vue-list-table .office,
.vue-list-table .construction_cd,
.vue-list-table .site_cd,
.vue-list-table .order_cd,
.vue-list-table .notes,
.vue-list-table .memo,
.vue-list-table .contents,
.vue-list-table .operation_time,
.vue-list-table .message,
.vue-list-table .expenses,
.vue-list-table .am_detail,
.vue-list-table .pm_detail,
.vue-list-table .final_detail {
    width: 250px;
    min-width: 250px;
    text-align: left;
}
.vue-list-table .sales,
.vue-list-table .update,
.vue-list-table .create {
    width: 150px;
    min-width: 150px;
    text-align: left;
}
.vue-list-table .estimate_setting,
.vue-list-table .orderform_setting,
.vue-list-table .invoice_setting {
    width: 100px;
    min-width: 100px;
    text-align: left;
}
.vue-list-table .amount {
    width: 80px;
    min-width: 80px;
    text-align: right;
}
.vue-list-table .amount .currency {
    float: left;        /* 通貨記号を左に固定 */
    padding-right: 4px; /* 少し余白 */
}
.vue-list-table .amount .value {
    display: inline-block;
}
.vue-list-table .cutoff,
.vue-list-table .tax_type {
    width: 45px;
    min-width: 45px;
    text-align: center;
    vertical-align: middle!important;
}
.vue-list-table .pic_count {
    width: 45px;
    min-width: 45px;
    text-align: center;
    vertical-align: middle!important;
}
.vue-list-table .menu {
    white-space: nowrap;
    text-align: left;
    vertical-align: middle;
}
.vue-list-table .menu__single {
    width: 45px;
    min-width: 45px;
}
.vue-list-table .menu__double {
    width: 90px;
    min-width: 90px;
}
.vue-list-table .menu__triple {
    width: 135px;
    min-width: 135px;
}
.vue-list-table .menu__quadruple {
    width: 180px;
    min-width: 180px;
}
.vue-list-table .clerk-name,
.vue-list-table .clerk-email,
.vue-list-table .clerk-contact,
.vue-list-table .worker-name,
.vue-list-table .worker-email,
.vue-list-table .worker-contact {
    width: 200px;
    min-width: 200px;
    text-align: left;
}
.vue-list-table .worker-invoice {
    width: 100px;
    min-width: 100px;
    text-align: center;
    vertical-align: middle;
}
.vue-list-table .clerk-category,
.vue-list-table .worker-category {
    width: 100%;
    text-align: left;
    vertical-align: middle;
}

.table.vue-list-table td div.cell-container-half {
    height: 20px;
    max-height: 20px;
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}
.table.vue-list-table td div.cell-container {
    height: 40px;
    max-height: 40px;
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.table.vue-list-table thead,
.table.vue-list-table tbody {
    display: block;
}
.table.vue-list-table thead {
    border-spacing: 0;
    /*border-bottom: 1px solid #ddd;*/
    border: 1px solid #ddd;
    background-color: #fff;
    /*border-radius: 6px 6px 0 0;*/
    /*-webkit-border-radius: 6px 6px 0 0;*/
    /*-moz-border-radius: 6px 6px 0 0;*/
    border-collapse: separate;
    position: sticky;
    top: 0;
    z-index: 3;
}

.table.vue-list-table tbody {
    /*border-spacing: 0px 5px;*/
    /*overflow-x: scroll;*/
    /*overflow-y: hidden;*/
}
.table.vue-list-table thead tr,
.table.vue-list-table tbody tr {
    /*background-color: #fff;*/
    /*border: 1px solid #ddd;*/
    border-left: 1px solid #eee;
    border-right: 1px solid #eee;
    border-bottom: 1px solid #eee;
}
.table.vue-list-table tbody tr {
    border: 1px solid #ddd;
    /*border-radius: 5px;*/
    /*box-shadow: 0px 2px 5px 0px rgba(60, 64, 67, 0.16);*/
}
.table.vue-list-table tbody tr.is_period:nth-child(odd) {
    background-color: #ffffcc !important;
}
.table.vue-list-table tbody tr.is_period:nth-child(even) {
    background-color: #ffff99 !important;
}
.table.vue-list-table tbody tr.is_postpend:nth-child(odd) {
    /*background-color: #cccccc !important;*/
}
.table.vue-list-table tbody tr.is_postpend:nth-child(even) {
    /*background-color: #eeeeee !important;*/
}
.table.vue-list-table tbody tr.is_cancel:nth-child(odd) {
    /*background-color: #cccccc !important;*/
}
.table.vue-list-table tbody tr.is_cancel:nth-child(even) {
    /*background-color: #eeeeee !important;*/
}
.table.vue-list-table tbody tr.is_provisional:nth-child(odd) {
    background-color: #ffddee !important;
}
.table.vue-list-table tbody tr.is_provisional:nth-child(even) {
    background-color: #ffeeff !important;
}
.table.vue-list-table tbody tr:nth-child(odd) {
    background-color: transparent;
}
.table.vue-list-table tbody tr:nth-child(even) {
    background-color: #eeeeee;
}
.table.vue-list-table tbody tr.schedule-data:hover {
    background-color: #fcfade !important;
}
.table.vue-list-table tbody tr.schedule-data.is_construction_provisional:hover {
    background-image: repeating-linear-gradient(
        135deg,                 /* 45度の斜めストライプ */
        rgba(255, 192, 203, 0.6),  /* ピンク半透明 */
        rgba(255, 192, 203, 0.6) 10px,
        rgba(255, 255, 255, 0) 10px,
        rgba(255, 255, 255, 0) 20px
    );
}
.table.vue-list-table th {
    white-space: nowrap;
    text-align: center;
    vertical-align: middle;
    border: none;
}

.table.vue-list-table thead th {
    /*position: sticky;*/
    /*position: -webkit-sticky;*/
    /*top: 0;*/
    /*z-index: 1;*/
}
/*.table.vue-list-table th:first-child {*/
/*    !* 横スクロール時に固定する *!*/
/*    position: -webkit-sticky;*/
/*    position: sticky;*/
/*    left: 0;*/
/*}*/
/*.table.vue-list-table thead th:first-child {*/
/*    !* ヘッダー行内の他のセルより手前に表示する *!*/
/*    z-index: 2;*/
/*}*/

/*.table.vue-list-table thead th:first-child {*/
/*    position: sticky;*/
/*    position: -webkit-sticky;*/
/*    top: 0;*/
/*    left: 0;*/
/*    z-index: 2;*/
/*}*/
.table.vue-list-table tbody td:first-child.sticky {
    position: sticky;
    left: 0;
    z-index: 2;
}
.table.vue-list-table tfoot {
    bottom: 0;
    position: sticky;
    z-index: 999;
}
.table.vue-list-table tfoot tr {
    display: flex;
}
.table.vue-list-table tfoot td:first-child.sticky {
    flex: 0 0 auto;
    white-space: nowrap;
    position: sticky;
    left: 0;
    background-color: white;
    z-index: 10;
    min-width: -moz-fit-content;
    min-width: fit-content; /* 内容に応じた最小幅を確保 */
}
.table.vue-list-table tfoot td.filler {
    flex: 1;
    min-width: 0;
}

.table.vue-list-table th,
.table.vue-list-table td {
    padding: 2px;
    /*border: 1px solid #ddd;*/
}

/*セル間の罫線*/
.table.vue-list-table th {
    border-top: none;
    border-bottom: none;
    border-left: none;
    border-right: 1px solid #eee;
    -o-border-image: linear-gradient(to bottom, #fff 0%, #fff 10%, #ccc 50%, #fff 90%, #fff 100%);
       border-image: linear-gradient(to bottom, #fff 0%, #fff 10%, #ccc 50%, #fff 90%, #fff 100%);
    border-image-slice: 1;
}
.table.vue-list-table th.office-short,
.table.vue-list-table th.priority,
.table.vue-list-table th.time,
.table.vue-list-table th.sales {
    border-left: 1px solid #eee;
    -o-border-image: linear-gradient(to bottom, #fff 0%, #fff 10%, #ccc 50%, #fff 90%, #fff 100%);
       border-image: linear-gradient(to bottom, #fff 0%, #fff 10%, #ccc 50%, #fff 90%, #fff 100%);
    border-image-slice: 1;
}
.table.vue-list-table th.grip,
.table.vue-list-table th.assign-user,
.table.vue-list-table th.assign-time,
.table.vue-list-table th.final,
.table.vue-list-table th.assign-final {
    border-right: none;
}
.table.vue-list-table th:last-child {
    border:none;
}

.table.vue-list-table tbody td i {
    width: 16px;
    color: #aaa;
    text-align: center;
}
.table.vue-list-table tbody tr.added {
    background-color: #ffffff;
    animation: change-color-anim 3s linear;
}
@keyframes change-color-anim {
    0%{
        background-color: #ffddbc;
    }
    100%{
        background-color: #ffffff;
    }
}
.table.vue-list-table tbody tr.context_select {
    background-color: #d6ffd6;
}

.table.vue-list-table th.assign-time {
    /*-webkit-box-sizing: border-box;*/
    /*-moz-box-sizing: border-box;*/
    /*-o-box-sizing: border-box;*/
    /*-ms-box-sizing: border-box;*/
    /*box-sizing: border-box;*/
    /*width: 390px !important;*/
}
.table.vue-list-table th.assign-am,
.table.vue-list-table th.assign-noon,
.table.vue-list-table th.assign-pm,
.table.vue-list-table th.assign-dusk,
.table.vue-list-table th.assign-final {
    padding-left: 0px !important;
    padding-right: 0px !important;;
    /*border-top: none;*/
    /*border-bottom: none;*/
    /*border-right: 1px solid #eee;*/
    /*border-left: 1px solid #eee;*/
    /*border-image: linear-gradient(to bottom, #fff 0%, #eee 25%, #eee 75%, #fff 100%);*/
    /*border-image-slice: 1;*/
}
.table.vue-list-table td.assign-am,
.table.vue-list-table td.assign-noon,
.table.vue-list-table td.assign-pm,
.table.vue-list-table td.assign-dusk,
.table.vue-list-table td.assign-final {
    white-space: nowrap;
    vertical-align: middle;
    padding-left: 0px !important;
    padding-right: 0px !important;;
}
.table.vue-list-table th.assign-am,
.table.vue-list-table td.assign-am {
    -o-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
    width: 90px;
}
.table.vue-list-table th.assign-pm,
.table.vue-list-table td.assign-pm,
.table.vue-list-table th.assign-final,
.table.vue-list-table td.assign-final {
    -o-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
    width: 120px;
}
.table.vue-list-table th.assign-noon,
.table.vue-list-table td.assign-noon,
.table.vue-list-table th.assign-dusk,
.table.vue-list-table td.assign-dusk {
    -o-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
    width: 30px;
}

.table.vue-list-table td.worker-invoice i.active {
    color: #0c84ff !important;
    font-size: 1.2rem;
}

.table.vue-list-table tfoot tr {
    /*padding: 5px;*/
    background-color: #fff;
    /*border: 1px solid #eee;*/
}
.table.vue-list-table tfoot td.bottom-menu {
    padding: 10px;
    background-color: #fff;
}

.assign-cell-header-wrapper,
.assign-cell-wrapper {
    padding: 0;
    height: 20px;
}
.assign-cell-header {
    font-size: 8pt;
    color: #aaa;
    width: 30px;
    height: 20px;
    text-align: center;
    vertical-align: middle;
    display: inline-block;
    border: 1px solid #ddd;
}
.assign-cell {
    width: 15px;
    height: 20px;
    display: inline-block;
    border: 1px solid #ddd;
    cursor: pointer;
}
.assign-cell.assigned {
    cursor: pointer;
}
.assign-am .assign-cell.assigned {
    background-color: #EAAC6E;
}
.assign-noon .assign-cell.assigned {
    background-color: #EAAC6E;
}
.assign-pm .assign-cell.assigned {
    background-color: #9DC68A;
}
.assign-dusk .assign-cell.assigned {
    background-color: #9DC68A;
}
.assign-final .assign-cell.assigned {
    background-color: #99B5D3;
}
.assign-cell.active {
    cursor: pointer;
}
div.schedule-wrapper.search div.assign-cell.active {
    cursor: default;
}

.assign-cell.inactive {
    width: 15px;
    height: 20px;
    background: #eee;
    background-image: linear-gradient(to left top, transparent 50%, #ccc 50%, #ccc calc(50% + 1px), transparent calc(50% + 1px));
    cursor: not-allowed;
}
div.schedule-wrapper.search div.assign-cell.inactive {
    cursor: default;
}

    /* schedule card */
.schedule-card {
    width: 100%;
}

/* temporary */
.add-category {
    color: green;
}
.add-category i {
    font-size: 1.2rem;
}

.content-header h1 {
    display: inline-block;
}

.alert {
    width: 100%;
}
.alert-warning {
    color: #856404;
    background-color: #fff3cd;
    border-color: #ffeeba;
}
.alert-info {
    color: #0c5460;
    background-color: #d1ecf1;
    border-color: #bee5eb;
}
#map-canvas {
    width: 100%;
    height: 80vh;
}

input.editable_input,
textarea.editable_input {
    width: 100%;
    border: none!important;
}
input.editable_input:focus,
textarea.editable_input:focus {
    /*outline: none;*/
    outline: 1px dashed red;
    border-radius: 2px;
}




.required::after {
    content: "必須";
    color: #ffffff;
    background: #cc0000;
    font-size: 0.75em;
    padding: 0.3em 0.5em 0.3em;
    border-radius: 0.5em;
    margin-left: 0.5em;
}
.recommended::after {
    content: "推奨";
    color: #ffffff;
    background: goldenrod;
    font-size: 0.75em;
    padding: 0.3em 0.5em 0.3em;
    border-radius: 0.5em;
    margin-left: 0.5em;
}


.date-navi {
    /*margin-left: 10px;*/
    /*margin-bottom: 10px;*/
    margin-top: 2px;
}

/*.content {*/
/*    overflow: hidden;*/
/*    position: relative;*/
/*}*/
/*#loader {*/
/*    position: fixed;*/
/*    !*position: absolute;*!*/
/*    left: 0;*/
/*    top: 0;*/
/*    z-index: 2000;*/
/*    !*display: none;*!*/
/*}*/
/*#loading {*/
/*    width: 100vw;*/
/*    height: 100vh;*/
/*    transition: all 1s;*/
/*    background: rgba(200,200,200,0.8);*/
/*    position: absolute;*/
/*    left: 0;*/
/*    top: 0;*/
/*    z-index: 2001;*/
/*}*/
/*.loading{*/
/*    position: absolute;*/
/*    top: 50%;*/
/*    left: 50%;*/
/*    transform: translate(-50%,-50%);*/
/*    height: 40px;*/
/*    display: flex;*/
/*    align-items: center;*/
/*    z-index: 2002;*/
/*}*/
/*.obj{*/
/*    width: 5px;*/
/*    height: 40px;*/
/*    background: #699E92;*/
/*    margin: 0 3px;*/
/*    border-radius: 10px;*/
/*    animation: loading 0.8s infinite;*/
/*    z-index: 2003;*/
/*}*/
/*.obj:nth-child(2){animation-delay: 0.1s;}*/
/*.obj:nth-child(3){animation-delay: 0.2s;}*/
/*.obj:nth-child(4){animation-delay: 0.3s;}*/
/*.obj:nth-child(5){animation-delay: 0.4s;}*/
/*.obj:nth-child(6){animation-delay: 0.5s;}*/
/*.obj:nth-child(7){animation-delay: 0.6s;}*/
/*.obj:nth-child(8){animation-delay: 0.7s;}*/
/*@keyframes loading{*/
/*    0%{height: 0;}*/
/*    50%{height: 40px;}*/
/*    100%{height: 0;}*/
/*}*/


/* datepicker */
.datepicker-days th.dow:first-child,
.datepicker-days td:first-child {
    color: #f00;
}
.datepicker-days th.dow:last-child,
.datepicker-days td:last-child {
    color: #00f;
}

.bootstrap-datetimepicker-widget table td.active,
.bootstrap-datetimepicker-widget table td.active:hover {
    background-color: #337ab7;
    color: #fff;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}

.bootstrap-datetimepicker-widget table td span.active,
.bootstrap-datetimepicker-widget table td i.active {
    background-color: #337ab7;
    color: #fff;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}

/* schedules */
div.message_schedule_empty {
    margin: 10px;
}

/* vue.draggable.next ghost class */
.ghost {
    opacity: 0.75;
    background: #c8ebfb;
}

/* vue v-cloak */
[v-cloak] {
    opacity: 0;
}

.nav-sidebar-custom-menu-quickadd,
.nav-sidebar-custom-menu-todayschedule {
    /*background-color: #5B8881;*/
    border: 1px solid #56606a;
    color: #fff;
    border-radius: 0.25rem;
}
.nav-sidebar-custom-menu-quickadd a,
.nav-sidebar-custom-menu-todayschedule a {
    margin-bottom: 0 !important;
}

.small-box .icon>i {
    font-size: 55px;
    position: absolute;
    right: 15px;
    top: 15px;
    transition: transform .3s linear;
}

/**
Context Menu
 */
.context-menu {
    /*display: none;*/
    position: absolute;
    width: auto;
    overflow: auto;
    padding: 5px 0;
    background-color: rgb(255, 255, 255);
    /*border: 1px solid rgb(238, 238, 238);*/
    border-radius: 5px;
    box-shadow: 0 0 8px gray;
    z-index: 9999;
}
.context-menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.context-menu ul li {
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    height: 24px;
    line-height: 24px;
    padding: 2px 20px 2px 20px;
    vertical-align: middle;
    cursor: pointer;
}
.context-menu ul li.context-menu-item__disabled {
    color: #ccc;
}
.context-menu ul li span.context_icon {
    display: inline-block;
    width: 20px;
}
.context-menu ul li span.context_title {
    min-width: 65px;
    display: inline-block;
}
.context-menu ul li span.context_description {
    display: inline-block;
    float: right;
    font-size: 0.8rem;
    color: #666;
    text-align: right;
    vertical-align: middle;
}
.context-menu ul li:hover {
    background-color: #ddd;
}
.context-menu hr {
    margin: 2px 0;
}


/** FullCalendar ----------------------------------------------------------------------------------------------------**/

/* フレックスボックス全体の基本構造 */
.fc-toolbar {
    display: flex; /* ツールバーをフレックスとして扱う */
    flex-wrap: nowrap; /* 改行を防ぐ */
    justify-content: space-between; /* 各セクションを左右＆中央に配置 */
    align-items: center; /* 縦方向の中央揃え */
}

/* 各セクション（left, center, right）が横に並ぶように指定 */
.fc-toolbar .fc-toolbar-chunk {
    display: flex;
    align-items: center; /* セクション内の縦揃え */
    white-space: nowrap; /* 要素内のテキスト改行を防ぐ */
}

/* タイトルとボタン（中央部分）の上下余白と位置調整 */
.fc .fc-toolbar-title {
    /*font-family: 'Noto Sans JP', sans-serif;*/
    font-weight: bold;
    display: inline-block;
    vertical-align: middle;
    margin: 0 1rem !important;
}

.fc-button-primary {
    background-color: #f8f9fa !important;
    color: #444 !important;
    border-color: #ddd !important;
}

/* ボタン間のマージンと基本スタイル */
.fc-prev-button,
.fc-next-button,
.fc-today-button {
    margin: 0 5px; /* ボタン間のスペース調整 */
}

.fc .fc-daygrid-day-top {
    flex-direction: row !important;
}
td.fc-day {
    background-color: #f8f9fa;
}
td.fc-day-mon a.fc-daygrid-day-number,
td.fc-day-tue a.fc-daygrid-day-number,
td.fc-day-wed a.fc-daygrid-day-number,
td.fc-day-thu a.fc-daygrid-day-number,
td.fc-day-fri a.fc-daygrid-day-number {
    color: black;
    /*background-color: #f8f9fa;*/
    /*border: 1px solid black;*/
    /*background-color: #f7f7f7; !* 薄いグレー *!*/
}
td.fc-day-sat {
    background-color: #eaf4ff !important;
}
td.fc-day-sat a.fc-daygrid-day-number {
    color: blue;
    /*border: 1px solid blue;*/
    /*background-color: #E3F2FD; !* より薄いブルー *!*/
}
td.fc-day-sun {
    background-color: #ffeaea !important;
}
td.fc-day-sun a.fc-daygrid-day-number {
    color: red;
    /*border: 1px solid red;*/
    /*background-color: #ffe5e5; !* 映える薄いレッド *!*/
}
td.fc-day-other {
    background-color: #eee !important;
}
.fc .fc-daygrid-day.fc-day-today {
    background-color: rgba(255, 220, 40, 0.15) !important;
}
a.fc-daygrid-day-number {
    margin-bottom: 4px !important;
    padding: 2px 4px !important;
    border-right: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    /*padding: 2px 5px;*/
    /*margin: 5px;*/
    /*border-radius: 5px;*/
    /*font-size: 1.0rem;*/
    font-size: 1.2rem;
    font-weight: bold;
    text-align: right;
    width: 30px;
    border-bottom-right-radius: 5px;
}

.fc .fc-event-title {
    font-size: 1.0rem;
}
.fc .fc-daygrid-day {
    position: relative;
}
.fc .custom-content {
    position: absolute;
    top: 0;
    right: 0;
    background: transparent;
    padding: 4px 2px;
    z-index: 2;
}
.fc .custom-content > a {
    padding: 2px;
    font-size: 1rem;
    font-weight: bold;
    color: gray;
    /* border: 1px solid orangered; */
    /* border-radius: 2px; */
    z-index: 5;
    position: relative;
    transition: color 0.3s ease;
}
.fc .custom-content > a:hover {
    color: orange;
    /* border: 1px solid orange; */
}

/** [END] FullCalendar ----------------------------------------------------------------------------------------------**/

/** Dropzone --------------------------------------------------------------------------------------------------------**/
/*.dropzone {*/
/*    width: 100%;*/
/*    cursor: pointer;*/
/*    overflow: hidden;*/
/*    position: relative;*/
/*    box-sizing: border-box;*/
/*    min-height: 250px;*/
/*    border: dashed rgba(0, 0, 0, 0.12);*/
/*    border-radius: 4px;*/
/*    background-color: #eee;*/
/*}*/
.dropzone {
    border-radius: .25rem;
    /*border: 2px dashed #0087f7 !important;*/
    border: 1px solid #ced4da !important;
    width: 100%px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1em;
}
.dropzone .dz-preview {
    margin: 0 !important;
}
.dropzone .dz-preview.dz-file-preview,
.dropzone .dz-preview.dz-image-preview {
    width: 320px;
    height: 120px;
}
.dropzone .dz-preview .dz-image {
    border-radius: 5px !important;
    width: 100% !important;
    height: 100% !important;
}
.dropzone .dz-preview .dz-image img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
}

.dz-success-mark {
    background-color: rgb( 102, 187, 106, .8 )!important;
}

.dz-success-mark svg {
    font-size: 54px;
    fill: #fff !important;
}

.dz-error-mark {
    background-color: rgba( 239, 83, 80, .8 ) !important;
}

.dz-error-mark svg {
    font-size: 54px;
    fill: #fff !important;
}

.dropzone .dz-preview .dz-error-message {
    left: 0 !important;
    width: 100% !important;
}

#dropzone_error.error-message {
    color: rgb( 239, 83, 80);
    margin-bottom: 10px;
    text-align: center;
    font-size: 1.2rem;
    font-weight: bold;
}

.dz-clickable {
    height: 200px;
    width: 100%;
    margin: 20px 0 20px;
    border-style: dashed;
    border-width: 2px;
    text-align: center;
    cursor: pointer;
}

/* TinyMCE */
.tox-tinymce {
    border: 1px solid #D0D4D9 !important;
    border-radius: 5px !important;
}
/*.tox-icon.tox-tbtn__icon-wrap svg {*/
/*    width: 20px !important;*/
/*    height: 20px !important;*/
/*}*/
.tox-tinymce.tinymce-focused {
    outline: 1px solid #80bdff !important;
    background-color: aliceblue !important;
}
.tox-tinymce.tinymce-focused iframe {
    background-color: aliceblue !important;
}
.tox-tinymce.tinymce-focused .tox.tox-edit-area__iframe {
    background-color: transparent !important;
}


/* OpenLayers Map */
.ol-popup {
    position: absolute;
    background-color: white;
    filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));
    padding: 15px;
    border-radius: 10px;
    border: 1px solid #cccccc;
    bottom: 30px;
    left: -50px;
    min-width: 250px;
    font-size: 0.8em;
}
.ol-popup:after, .ol-popup:before {
    top: 100%;
    border: solid transparent;
    content: " ";
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
}
.ol-popup:after {
    border-top-color: white;
    border-width: 10px;
    left: 48px;
    margin-left: -10px;
}
.ol-popup:before {
    border-top-color: #cccccc;
    border-width: 11px;
    left: 48px;
    margin-left: -11px;
}

/*ポップアップ閉じるボタン*/
.ol-popup-closer {
    text-decoration: none;
    position: absolute;
    top: 2px;
    right: 8px;
}
.ol-popup-closer:after {
    content: "✖";
}

.map {
    width:100%;
    height:480px;
}
.map.placeholder {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #eee;
}
.map.placeholder .message {
    text-align: center;
    font-size: 24px;
    color: #ddd;
}


.multiselect, .multiselect__input, .multiselect__single {
    font-size: 12px !important;
}
.multiselect__select {
    width: 32px !important;
    height: 32px !important;
}
.multiselect__tags {
    min-height: 32px !important;
    padding: 4px 32px 0 6px !important;;
    font-size: 12px !important;;
}
.multiselect__tag {
    padding: 4px 26px 4px 10px !important;;
    margin-right: 10px !important;;
    margin-bottom: 2px !important;;
}
div.multiselect_am .multiselect__tag,
div.multiselect_am .multiselect__option--highlight {
    color: #000000 !important;
    background-color: #EAAC6E !important;
}
div.multiselect_pm .multiselect__tag,
div.multiselect_pm .multiselect__option--highlight {
    color: #000000 !important;
    background-color: #9DC68A !important;
}
div.multiselect_fn .multiselect__tag,
div.multiselect_fn .multiselect__option--highlight {
    color: #000000 !important;
    background-color: #99B5D3 !important;
}
div.multiselect_am .multiselect__option--selected.multiselect__option--highlight,
div.multiselect_pm .multiselect__option--selected.multiselect__option--highlight,
div.multiselect_fn .multiselect__option--selected.multiselect__option--highlight {
    background: #ff6a6a !important;
    color: #fff !important;
}
.multiselect__tag-icon::after {
    color: #000000 !important;
}



/* テーブル全体に対するスタイル */
table.estimate__table {
    border-collapse: collapse; /* セルの境界線を隠す */
    width: 100%; /* テーブルの幅を100%に設定 */
}

/* テーブルのヘッダーセルに対するスタイル */
table.estimate__table th {
    background-color: #f2f2f2; /* ヘッダーセルの背景色 */
    text-align: left; /* ヘッダーセル内のテキストを左寄せに */
    padding: 8px; /* セルの余白 */
}

/* データセルに対するスタイル */
table.estimate__table td {
    border: 1px solid #dddddd; /* セルの境界線 */
    text-align: left; /* データセル内のテキストを左寄せに */
    padding: 8px; /* セルの余白 */
}
table.estimate__table td.input_field {
    padding: 0;
}

table.estimate__table td input[type="text"],
table.estimate__table td input[type="number"] {
    width: 100%; /* 入力フィールドの幅をセルの幅に合わせる */
    height: 100%; /* 入力フィールドの高さをセルの高さに合わせる */
    box-sizing: border-box; /* 幅と高さにボーダーボックスモデルを使用 */
    padding: 12px; /* 余白を設定（オプション） */
    border: none;
}
table.estimate__table td input[type="number"] {
    text-align: right;
}
input[type="text"].input__number {
    text-align: right;
}


div.input_readonly {
    display: block;
    width: 100%;
    height: calc(2.25rem + 2px);
    padding: .375rem .75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #495057;
    background-color: #EFEFEF4D;
    background-clip: padding-box;
    border: 1px solid #ced4da;
    border-radius: .25rem;
    box-shadow: inset 0 0 0 transparent;
    transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}
div.input_readonly.multiline {
    height: auto !important;
}

.form-check {
    position: relative;
    display: block;
    padding-left: 0;
}
.form-check-input {
    position: absolute;
    margin-top: .3rem;
    /*margin-left: -1.25rem;*/
    margin-left: 0rem;
}
.form-check-label {
    margin-bottom: 0;
    margin-left: 1.25rem;
}
.form-check-star {
    position: relative;
    display: block;
    padding-left: 1.25rem;
}
.form-check-input-star {
    position: absolute;
    margin-top: .3rem;
    margin-left: -1.25rem;
}
.form-check-label-star {
    margin-bottom: 0;
    margin-left: 1.25rem;
}

.form-radio-input {
    position: absolute;
    margin-top: .3rem;
    /*margin-left: -1.25rem;*/
    margin-left: 0rem;
}
.form-radio-label {
    font-weight: 400 !important;
    margin-bottom: 0;
    margin-left: 1.25rem;
}

.checkbox-star {
    /*position: relative;*/
}
.checkbox-star input[type="checkbox"] {
    display: none;
}
.checkbox-star span::after {
    content: '\F586'; /* You change the content value to change the icon */
    font-family: 'bootstrap-icons';
    color: #eeeeee;
    position: absolute;
    top: 0;
    left: 0;
    width: 20px;
    height: 20px;
    line-height: 20px;
    background-color: transparent;
    border: none;
}
.checkbox-star input[type="checkbox"]:checked + span {
    /*display: none;*/
}
.checkbox-star input[type="checkbox"]:checked + span::after {
    content: '\F586'; /* You change the content value to change the icon */
    font-family: 'bootstrap-icons';
    color: #FFD700;
    position: absolute;
    top: 0;
    left: 0;
    width: 20px;
    height: 20px;
}

i.icon-star {
    color: #FFD700 !important;
}

div.panel-no-available-workers-container {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 150px;
}
div.panel-no-available-workers-container > div.panel-no-available-workers {
    text-align: center;
    vertical-align: middle;
}
div.panel-no-available-workers-icon {
    font-size: 3rem;
    color: #6c757d;
}


div.operation_stats_header {
    position: sticky;
    top: 46px;
    z-index: 1000;
    background-color: #ffffff;
    /*background-color: #f5f5f5;*/
    /*background-color: transparent;*/
    margin-bottom: 10px;
}

tr.table-row-clickable {
    cursor: pointer;
}

.width_marker {
    height: 0;
    visibility: hidden;
}
.width_marker::after {
    content: "";
    visibility: visible;
    font-size: 14px;
    letter-spacing: normal;
    word-break: break-all;
    white-space: normal;
}
.flexible_width_text {
    flex: 1 1 auto;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    flex-shrink: 1;
    text-align: left;
}
.flexible_width_text p {
    margin-top: 1px;
    margin-bottom: 1px;
    overflow: hidden;
    text-overflow: ellipsis;
}
.flexible {
    position: relative;
}
.flexible_flex_wrapper {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    overflow: hidden;
}


.kana-button-group {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
}
.kana-button-group .row {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
    justify-content: flex-start;
    margin-bottom: 5px;
}
.kana-button-group .button-group {
    display: flex;
    flex: 1;
    justify-content: space-between;
}
.kana-button-group button {
    flex: 1;
    margin: 2px;
    max-width: calc(10% - 4px); /* ボタンを10個並べる */
}
.kana-space {
    /*width: 5px; !* 5pxのスペース *!*/
    /*margin: 2px;*/
}
.full-space {
    flex: 1;
    margin: 2px;
    max-width: calc(10% - 4px); /* 他のボタンと同じ幅のスペース */
}


.construction_category_1 {
    background-color: #7BB572 !important; /* ダークペールグリーン */
    color: black !important;
    border: 1px solid #7BB572 !important;
}

.construction_category_1_text {
    color: #2E4D28 !important; /* 濃いグリーン */
}

.construction_category_2 {
    background-color: #7EB9D0 !important; /* ダークパウダーブルー */
    color: black !important;
    border: 1px solid #7EB9D0 !important;
}

.construction_category_2_text {
    color: #3E6B7D !important; /* 濃いブルー */
}

.construction_category_3 {
    background-color: #D28A8A !important; /* ダークミストローズ */
    color: black !important;
    border: 1px solid #D28A8A !important;
}

.construction_category_3_text {
    color: #6B4A4A !important; /* 濃いピンク */
}

.construction_category_4 {
    background-color: #D7A86E !important; /* ダークモカ */
    color: black !important;
    border: 1px solid #D7A86E !important;
}

.construction_category_4_text {
    color: #704A2E !important; /* 濃いブラウン */
}

.fscc-header-information {
    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}
.schedule-information {
    width: 100%;
    height: 32px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    /*margin: 0.25rem;*/
    /*padding: 0.25rem;*/
    padding: 0.4rem;
    border: 1px solid #DEE2E6;
    border-radius: 2px;
}

.nav-wrapper {
    width: 100%;
    display: flex;
    justify-content: space-between;
}
.nav-text-end {
    display: flex;
    /*margin-right: 0.25rem;*/
}
.last-updated {
    align-self: flex-end;
    padding-bottom: 0.25rem;
    color: #6c757d;
    font-size: 0.9rem;
    white-space: nowrap;
    border-bottom: 1px solid #DEE2E6;
    cursor: pointer;
}

span.clickable {
    cursor: pointer;
}


.kana-index-buttons {
    display: grid;
    grid-template-columns: repeat(5, 1fr); /* 横に5列 */
    gap: 4px; /* ボタン間の余白 */
    width: 100%;
}

.kana-index-button,
.kana-index-button-filler {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 36px; /* ボタン高さを統一 */
    font-size: 1rem;
    border-radius: 4px;
}

.kana-index-button-filler {
    background: transparent;
    border: none;
    pointer-events: none; /* クリック無効 */
}

.kana-index-buttons button {
    margin: 0 5px 5px 5px;
}
.kana-index-button.active {
    background-color: #aaddaa; /* アクティブな色 */
}
.kana-index-button:disabled {
    border-color: #aaaaaa !important;
    background-color: #cccccc !important;
}
span.kana-index-button-filler {
    width: 44px;
    display: inline-block;
}

.customer-list {
    min-height: 400px;
    max-height: 400px;
    overflow-y: auto;
    border: 1px solid #ddd;
    padding: 0;
    list-style-type: none;
}

.customer-item {
    padding: 10px;
    cursor: pointer;
}
.customer-item:hover {
    background-color: #f0f0f0;
}

.customer-item.odd {
    background-color: #f9f9f9;
}

.customer-item.even {
    background-color: #ffffff;
}

.customer-item.selected-odd {
    background-color: #e0f8e0; /* さらに薄い緑 */
}

.customer-item.selected-even {
    background-color: #f0fbf0; /* さらに薄い緑 */
}

.customer-item:hover {
    background-color: #ffffe0; /* 薄い黄色 */
}

#worker-collapsible-list .table-header.header-date.today {
    border-top: 1px solid orange;
    border-left: 2px solid orange;
    border-right: 2px solid orange;
}
#worker-collapsible-list .table-header.header-weekday.today {
    border-left: 2px solid orange;
    border-right: 2px solid orange;
}
#worker-collapsible-list .cell-am.today,
#worker-collapsible-list .cell-pm.today {
    border-left: 2px solid orange;
    border-right: 2px solid orange;
}
#worker-collapsible-list .cell-fn.today {
    border-left: 2px solid orange;
    border-right: 2px solid orange;
    border-bottom: 1px solid orange;
}

.popover {
    font-family: var(--font-base), system-ui, sans-serif;
}
i.popover_question {
    color: gray;
    cursor: pointer;
    font-size: 1.1rem;
}


/* サイドバー下端にログアウトボタンを表示する調整 （うまくいかない）*/
.main-sidebar {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    width: 250px; /* サイドバーの幅を調整 */
}

.logout-btn-wrapper {
    position: absolute;
    bottom: 0; /* サイドバーの下端に固定 */
    left: 0;
    right: 0;
    padding: 10px;
}

.logout-btn-wrapper .btn {
    width: 100%;
    white-space: nowrap !important;
}
.logout-btn-wrapper .fas,
.logout-btn-wrapper .bi {
    font-size: 1.2rem; /* アイコンサイズ調整 */
}
.logout-btn-wrapper .logout-text {
    margin-left: 10px !important;
    white-space: nowrap !important;
}


/* オーバーレイの基本スタイル */
.overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5); /* 半透明の黒背景 */
    z-index: 1000; /* ヘッダーやサイドバーの上に表示 */
    display: flex;
    justify-content: center;
    align-items: center;
}
.overlay-content {
    color: white;
    background-color: rgba(0, 0, 0, 0.5);
    padding: 20px;
    border-radius: 8px;
    font-size: 1.0em;
    text-align: center;
}
.overlay-content p.lock_title {
    font-size: 1.2em;
}


.tab-line {
    border-bottom: 1px solid #dee2e6; /* タブの下線の色と一致させる */
    /*padding-bottom: 8px; !* 下線の位置を調整 *!*/
    height: 100%; /* 高さを統一 */
    display: flex;
    align-items: end;
}

.cursor--pointer {
    cursor: pointer !important;
}

#qrCodeModal .modal-body img {
    max-width: 100%;
    height: auto;
    display: inline-block;
    margin: 0 auto;
}

button[data-target="#qrCodeModal"] {
    margin-top: 10px;
}

textarea.input__placeholder {
    color: white;
    background-color: white;
}


#pdf-viewer-header header {
    padding: 10px;
    background: #f5f5f5;
    text-align: center;
}
#pdf-viewer-header header > h2 {
    font-size: 1.2rem;
}
#pdf-container {
    width: 100%;
    height: 90vh;
    overflow: auto;
    background: #333;
}
#pdf-container canvas {
    display: block;
    margin: 0 auto 20px auto;
    background: #fff;
}


/* Floating Label */
/*.form-group {*/
/*    position: relative;*/
/*    margin-top: 1.5rem;*/
/*}*/
/*.form-group input,*/
/*.form-group textarea,*/
/*.form-group select {*/
/*    padding-top: 1.25rem;*/
/*    padding-bottom: 0.25rem;*/
/*}*/
/*.form-group label {*/
/*    position: absolute;*/
/*    top: 0.75rem;*/
/*    left: 0.75rem;*/
/*    font-size: 1rem;*/
/*    color: #999;*/
/*    pointer-events: none;*/
/*    transition: all 0.2s ease;*/
/*    background: white;*/
/*    padding: 0 0.25rem;*/
/*}*/
/*.form-group input:focus + label,*/
/*.form-group input:not(:placeholder-shown) + label,*/
/*.form-group textarea:focus + label,*/
/*.form-group textarea:not(:placeholder-shown) + label {*/
/*    top: -0.6rem;*/
/*    font-size: 0.75rem;*/
/*    color: #333;*/
/*}*/

/*input:focus,*/
/*select:focus,*/
/*textarea:focus  {*/
/*    background-color: #fffacd !important;*/
/*    border-color: #007BFF !important;*/
/*    outline: none !important;*/
/*    box-shadow: 0 0 3px rgba(0, 123, 255, 0.5) !important;*/
/*}*/

.badge-category {
    max-width: 80px;
    overflow: hidden;
    vertical-align: middle;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* クロッパーのメインコンテナ */
.cropper-container {
    width: 90vw !important;
    height: 80vh !important;
    max-width: 1200px !important;
    max-height: 800px !important;
    margin: 20px auto !important;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    background-color: #f8f9fa !important;
}

/* クロッパーの操作UI改善 */
.cropper-view-box {
    outline: 2px solid #0066cc !important;
    border-radius: 2px;
}

.cropper-face {
    background-color: rgba(0, 102, 204, 0.1);
}

/* ドラッグハンドルを見やすく */
.cropper-line, .cropper-point {
    background-color: #0066cc;
}

.cropper-point {
    width: 8px;
    height: 8px;
    opacity: 0.8;
}

/* クロッパーのキャンバス背景 */
.cropper-bg {
    background-image: linear-gradient(45deg, #f0f0f0 25%, transparent 25%),
    linear-gradient(-45deg, #f0f0f0 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #f0f0f0 75%),
    linear-gradient(-45deg, transparent 75%, #f0f0f0 75%);
    background-size: 20px 20px;
    background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
}

/* タブレットサイズのデバイス向け調整 */
@media screen and (max-width: 768px) {
    .cropper-container {
        width: 95vw !important;
        height: 70vh !important;
        margin: 15px auto !important;
    }

    .cropper-point {
        width: 12px;
        height: 12px;
    }

    .point-e,
    .point-n,
    .point-w,
    .point-s {
        width: 14px;
        height: 14px;
    }
}

/* iPhone縦向き特有の調整 */
@media screen and (max-width: 428px) and (orientation: portrait) {
    .cropper-container {
        width: 95vw !important;
        height: 45vh !important;
        margin: 10px auto !important;
        min-height: 300px !important;
    }

    .cropper-wrap-box,
    .cropper-canvas,
    .cropper-drag-box,
    .cropper-crop-box {
        max-width: 95vw !important;
    }

    .cropper-point {
        width: 20px !important;
        height: 20px !important;
        opacity: 0.9 !important;
    }

    .cropper-line {
        height: 3px !important;
    }

    /* ドラッグ操作の視認性向上 */
    .cropper-face {
        background-color: rgba(0, 102, 204, 0.15) !important;
    }
}

/* iPhone横向き特有の調整 */
@media screen and (max-width: 926px) and (orientation: landscape) {
    .cropper-container {
        width: 85vw !important;
        height: 80vh !important;
        margin: 10px auto !important;
    }
}

/* ドラッグ操作時のカーソルスタイル */
.cropper-move {
    cursor: move;
    cursor: grab;
}

.cropper-move:active {
    cursor: grabbing;
}

/* 画像がはみ出すのを防ぐ */
.cropper-canvas {
    max-width: 100% !important;
}

/* モバイルでのズーム操作を改善 */
.cropper-drag-box {
    background-color: transparent !important;
}

/* ------------------------------------------------------------------------------------------------------------------ */
/* Customize Side Bar                                                                                                 */
/* ------------------------------------------------------------------------------------------------------------------ */
.sidebar {
    margin-top: 0 !important;
}

.sidebar-collapse .main-sidebar, .sidebar-collapse .main-sidebar::before {
    margin-left: 0 !important;
}

.sidebar-collapse.sidebar-mini .main-sidebar .nav-sidebar .nav-link, .sidebar-collapse.sidebar-mini-md .main-sidebar .nav-sidebar .nav-link, .sidebar-collapse.sidebar-mini-xs .main-sidebar .nav-sidebar .nav-link {
    width: auto;
}

/* サイドバーの基本スタイル */
body .main-sidebar {
    transform: translateX(-300px);
    transition: transform 0.3s ease-in-out;
    /* 追加: 初期表示を確保 */
    display: block !important;
    /* 追加: z-indexを高く設定 */
    z-index: 1038;
}

/* サイドバーが表示される時のスタイル */
body.sidebar-shown .main-sidebar {
    transform: translateX(0);
    /* 追加: 初期表示を確保 */
    display: block !important;
    /* 追加: z-indexを高く設定 */
    z-index: 1038;
}

/* サイドバー表示時のオーバーレイ */
body::after {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1037;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
    pointer-events: none;
}

body.sidebar-shown::after {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

/* AdminLTEのデフォルトの動作を上書き */
body.sidebar-collapse .main-sidebar {
    transform: translateX(-300px) !important;
}

body.sidebar-shown .main-sidebar {
    transform: translateX(0) !important;
}

body .content-wrapper {
    background-color: #ffffff !important;
}

/* コンテンツエリアを常に全幅で表示 */
body .content-wrapper,
body .main-header,
body .main-footer {
    margin-left: 0 !important;
    transition: none !important;
}

/* AdminLTEの既存のサイドバー関連クラスを上書き */
.sidebar-mini .main-sidebar,
.sidebar-mini-md .main-sidebar,
.sidebar-mini-xs .main-sidebar,
.sidebar-collapse .main-sidebar {
    transform: translateX(-300px) !important;
}
/* ------------------------------------------------------------------------------------------------------------------ */

/* STEP BAR */

.stepBar {
    position: relative;
    list-style: none;
    margin: 0 0 1em;
    padding: 0;
    text-align: center;
    width: 100%;
    overflow: hidden;
    *zoom: 1;
}
.stepBar .step {
    position: relative;
    float: left;
    display: inline-block;
    line-height: 40px;
    padding: 0 40px 0 20px;
    background-color: #eee;
    box-sizing: border-box;
}
.stepBar .step:before, .stepBar .step:after {
    position: absolute;
    left: -15px;
    display: block;
    content: '';
    background-color: #eee;
    border-left: 4px solid #FFF;
    width: 20px;
    height: 20px;
}
.stepBar .step:after {
    top: 0;
    transform: skew(30deg);
}
.stepBar .step:before {
    bottom: 0;
    transform: skew(-30deg);
}
.stepBar .step:first-child {
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
}
.stepBar .step:first-child:before, .stepBar .step:first-child:after {
    content: none;
}
.stepBar .step:last-child {
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}
.stepBar .step.current {
    color: #FFF;
    background-color: #26bfa1;
}
.stepBar .step.current:before, .stepBar .step.current:after {
    background-color: #26bfa1;
}
.stepBar.step2 .step {
    width: 50%;
}
.stepBar.step3 .step {
    width: 33.333%;
}
.stepBar.step4 .step {
    width: 25%;
}
.stepBar.step5 .step {
    width: 20%;
}
@media (max-width: 768px) {
    .stepBar {
        font-size: 0.8rem; /* フォントサイズを調整 */
    }
    .stepBar .step {
        padding: 0 20px 0 0;
    }
}

/* ------------------------------------------------------------------------------------------------------------------ */

