@charset "UTF-8";

/* 全体構造の強制調整 */
.row {
    max-width: 75em !important;
}

.row .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.main>section {
    margin: 1em 0 !important;
}

/* ヘッダーの魔改造 */
body {
    padding: 0;
    padding-top: 8px;
    background-color: #F5F6F7;
}

header {
    display: -webkit-flex;
    display: flex;
    z-index: 100;
    position: static;
    margin: auto;
    width: 1200px;
    background-color: #ffffff;
}

header .headerArea {
    margin: auto;
    height: auto;
    /* width: 200px; */
    text-align: center;
}

header #breadcrumb {
    width: 800px;
}

@media screen and (max-width: 48em) {
    /* 768px 以下 */
    .headerArea p {
        /* display: block; */
    }
}
@media screen and (max-width: 37.5em) {
    /* 600px 以下 */
    .headerArea,
    .logoArea {
        /* display: block; */
    }
}

header #hNav {
    z-index: 10;
    position: fixed;
    top: 0;
    right: 0;
}

/* メインコンテンツの枠組み */
#main-contents {
    margin-top: 0.5em;
}

#main-contents #breadcrumb {
    margin: 0.5em 0;
    padding: 0.5em 1em;
    background-color: #FFFFFF;
}

@media only screen and (min-width: 64.063em) {
    #main-contents #main.large-9 {
        width: 73.5%;
    }
}

#main-contents #main {
    margin: 0.5em 0;
    background-color: #FFFFFF;
}

#main-contents #main section {
    padding-top: 1em;
    padding-bottom: 1em;
}

#main-contents #sidemenu {
    margin: 0.5em 0;
    background-color: #FFFFFF;
}

#main-contents #sidemenu aside {
    margin-bottom: 2em;
}

#main-contents #sidemenu aside:first-child {
    margin-top: 1em;
}

#main-contents #sidemenu .LoginUserView {
    padding: 0.5em 0;
    border-radius: 0.5em;
    background-color: #E5E6E7;
}

#main-contents #sidemenu .LoginUserView p {
    margin: 0;
    padding: 0;
}

/* normalize */
h1, h2, h3, h4, h5, h6, p {
    margin: 0 0 0.5rem;
}

figure {
    margin: 0;
}

form input[type="text"] {
    display: inline-block;
    margin: 0;
    width: 100%;
}

form input[type="text"],
form input[type="password"] {
    border: 1px solid #ccc;
}

form dl {
    margin: 0.5em 0;
    padding: 0.5em;
}

form dl dt,
form dl dd {
    margin: 0;
}

form select.date {
    display: inline-block;
    margin: 0;
    width: 2.5em;
}

form select.date.year {
    width: 5em;
}

form button#zipauto {
    padding: 0.35em !important;
    border-radius: 0.25em;
}

form .submit {
    margin-top: 1em;
    margin-bottom: 3.5em;
}

/* Pager */
.pager {
    margin: 1em 0;
    text-align: center;
}
.pager p {
    margin: 0;
}

.pager .columns {
    padding-top: 0;
    padding-bottom: 0;
    margin-top: 0;
    margin-bottom: 0;
}

.pager .pagelink {
    margin: auto;
    text-align: center;
}

.pager a:hover {
    color: #fff;
}

.pager .pagelink .pagenumber.nolink {
    display: inline-block;
    margin: 0 0.5em;
    padding: 0.1em 0;
    text-align: center;
    color: #000000;

    width: 2.0em;
    border-radius: 1em;
    background-color: #FFFFFF;
}

.pager .pagelink .pagenumber a {
    display: inline-block;
    margin: 0 0.5em;
    padding: 0.1em 0;
    text-align: center;
    color: #ffffff;

    width: 2.0em;
    border-radius: 1em;
    background-color: #1E6BAF;
}

.pager .pagelink .nextbefore.nolink {
    display: inline-block;
    margin: 0 0.5em;
    padding: 0.1em 0;
    text-align: center;
    color: #000000;

    width: 2.5em;
    border-radius: 0.5em;
    background-color: #FFFFFF;
}

.pager .pagelink .nextbefore a {
    display: inline-block;
    margin: 0 0.5em;
    padding: 0.1em 0;
    text-align: center;
    color: #ffffff;

    width: 2.5em;
    border-radius: 0.5em;
    background-color: #1E6BAF;
}

.pager .pagelink a:hover {
    background-color: #3498DB;
}


/* NewBox */
.newsBox .category {
    display: inline-block;
    margin-right: 0.5em;
    padding: 0.1rem 0.5em;
    width: 100% !important;
    min-width: 15px !important;
    letter-spacing: 1;
    text-align: center;
    /* white-space:nowrap */
}

.newsBox .category.cate_-1 {
    background: #AA05AA !important;
    color: #fff !important;
}

.newsBox .category.cate_1 {
    background: #e74c3c !important;
    color: #fff !important;
}

.newsBox .category.cate_2 {
    background: #F2E700 !important;
    color: #000 !important;
}


/* Search Form */
.search-form input.keyword {
    width: 100%;
    margin: 0;
    padding: 0.75em;
}

.search-form .submit-btn {
    margin: 0;
    padding: 0;
    width: 100%;
}

.search-form .submit-btn  .submit {
    margin: 0;
    padding: 0.45em 0.35em;
    width: 100%;
}

/* search-box */
.search-box {
    margin: 1em 0 0;
    position: relative;
}

.search-box .search-edit {
    padding: 20px 11px;
    border: 2px solid #ccc;
    border-radius: 3px;
    font-size: inherit;
    width: 100%;
}

.search-box .search-edit:hover,
.search-box .search-edit:focus,
.search-box .search-edit:active {
    background-color: #E5E6E7;
    border: 2px solid #000;
}

.search-box .search-submit {
    position: absolute;
    right: 3px;
    top: calc(50% - 12px);
    font-size: 20px;
    padding: 0 8px;
    cursor: pointer;
    background-color: rgba(255, 255, 255, 0);
    color: #ccc;
    border: none;
}

/* breadcrumb */
.bread {
  background: #ffffff;
}
.bread li {
  float: left;
  padding: .5rem 0;
}
.bread li, .bread p {
  font-size: .75rem;
}
.bread p {
  margin-bottom: 0;
  text-align: right;
  padding: .5rem .9375rem;
}
.bread p a {
  margin-right: 0;
}
.bread li,
.bread a,
.bread i {
  color: #464646;
}
.bread a, .bread i {
  margin-right: .5em;
}

/* sidemenu-list */
.sidemenu-list li {
    display: block;
}

.sidemenu-list li a {
    display: block;
    margin: 0.25em 0;
    padding: 0.5em 1.0em 0.5em 1.0em;
    width: 100%;
    background-color: #F5F6F7;
}

.sidemenu-list li a:hover {
    background-color: #E5E6E7;
}

.side-taglist li, .side-categorylist li,
.side-taglist li, .side-taglist li {
    display: inline-block;
}

.side-taglist li a, .side-categorylist li a,
.side-taglist li a, .side-taglist li a {
    display: inline-block;
    margin-right: 0.25em;
}


/* g-reCAPTCHA */
.g-recaptcha>div {
    margin: auto;
}

/* コンテンツのベースCSS　{div-xxx} */
.div-head {
    margin-top: 1.1875rem;
    margin-bottom: 1.1875rem;
    padding: 0.5em 0;
    border-top: 1px solid #dddddd;
    border-bottom: 1px solid #dddddd;
}

.div-body {

}

.div-foot {
    margin-top: 1.1875rem;
    margin-bottom: 1.1875rem;
    padding: 0.5em 0;
    border-top: 1px solid #dddddd;
    border-bottom: 1px solid #dddddd;
}

.div-head h2, .div-head h3, .div-head p,
.div-foot h2, .div-foot h3, .div-foot p {
    margin: 0;
    padding: 0;
}

/* DASHBOARD */
.dashboard h3 {
    margin-top: 0.5em;
}

.dashboard:first-child h3 {
    margin-top: 0;
}

.dashboard .db-box {
    border: 1px solid #dddddd;

}

.dashboard .db-box .db-box_head {
    background-color: #2CA6E0;
    color: #ffffff;
    font-weight: bold;
    text-align: center;
}

.dashboard .db-box .db-box_body {
    padding: 0.25em;
    font-size: 2rem;
    text-align: center;
}

.dashboard .db-box .db-box_foot {
    background-color: #076BAF;
    color: #ffffff;
    font-weight: bold;
    text-align: center;
    font-size: 0.785rem;
}

#reception h2 {
    margin-top: 1em;
    margin-bottom: 0.25em;
    padding-left: 9px;
    border-left: 21px solid #076BAF;
}

#reception h2:first-child {
    margin-top: 0;
}

#reception input[type="text"] {
    display: inline-block;
    margin: 0;
    width: 100%;
}

#reception form dl {
    margin: 0.5em 0;
    padding: 0.5em;
}

#reception form dl dt,
#reception form dl dd {
    margin: 0;
}

#reception form dl.must dt {
    background-color: #D33C44;
    color: #ffffff;
}

#reception .uketsuke input {
    width: 10em;
}

#reception .hoken label {
    display: inline-block;
}

#reception .hoken input.hokenhyokamoney {
    width: 10em;
}

#reception .zip input {
    width: 10em;
}

#reception .date-column select {
    display: inline-block;
    margin: 0;
    width: 3em;
}

#reception .date-column select.date_year {
    width: 6em;
}

#reception .repairlot select.repairlot {
    width: 3em;
}

#reception .inline-radio input {
    margin-bottom: 8px;
}

#reception .inline-radio label {
    font-size: 1rem;
}

#reception .ValidError dt {
    color: #ff0000;
}


#reception.list .editpanel {
    white-space: nowrap;
}

#reception.list .editpanel a {
    display: block;
    padding: 0 0.5em;
    border: 1px solid #dddddd;
    border-radius: 0.5em;
    background-color: #F5F6F7;
    font-size: 0.775rem;
}

#reception.list .editpanel a:hover {
    background-color: #E5E6E7;
}

#reception.list .listresult {
    overflow-x: scroll;
}

#reception.list .listresult table {
    width: 100%;
}

#reception.list .listresult table th,
#reception.list .listresult table td {
    white-space: nowrap;
}


#reception.view .editpanel a {
    display: inline-block;
    padding: 0.5em;
    border: 1px solid #dddddd;
    border-radius: 0.5em;
    background-color: #F5F6F7;
    font-size: 1rem;
}

#reception.list .editpanel a:hover {
    background-color: #E5E6E7;
}

#reception.view dl,
#reception.view dl dt,
#reception.view dl dd {
    margin: 0;
    padding: 0;
}

#reception.view dl dd {
    padding: 0.25em 0;
}

#reception.view dl {
    border: 1px solid #ffffff;
}

#reception.view dl dt {
    background-color: #E5E6E7;
    text-align: center;
}

#reception.view dl dd {
    background-color: #F5F6F7;
    text-align: center;
}

#reception.view .receptionviewdata .comment dd {
    overflow-y: scroll;
    height: 150px;
}

#reception.view .filelist {
    padding: 0;
}

#reception.view .filelist dl:last-child {
    float: left;
}

#reception.view .filelist dl dt {
    margin-bottom: 0;
    padding: 0.25em 0;
    min-height: 30px;
    background-color: #777777;
    color: #ffffff;
    font-weight: bold;
    text-align: center;
    font-size: 0.875rem;
}

#reception.view .filelist dl .image {
    position: relative;

    margin-bottom: 0;
    padding: 0.25em;
    background-color: #cccccc;
    text-align: center;
    height: 240px;
}

#reception.view .filelist dl .image img {

    display: flex; /* Flexboxを有効化 */
    justify-content: center; /* 水平方向の中央寄せ */
    align-items: center; /* 垂直方向の中央寄せ */

    max-width: 99%;
    max-height: 99%;

    /* 縦横比率を保つために必須の設定 */
    width: auto;
    height: auto;

    /* 必要であれば中央揃えにするための設定 (親要素がフレックスやグリッドでない場合) */
    display: block;
    margin: auto;

    /* 垂直方向の中央寄せ */
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); /* 画像自身のサイズ分を戻して完全な中央に */
}


#reception.editform .receptionviewdata input,
#reception.editform .receptionviewdata select,
#reception.editform .receptionviewdata textarea {
    margin: 0;
    width: 100%;
    text-align: center;
}

#reception.editform .receptionviewdata dl,
#reception.editform .receptionviewdata dl dt,
#reception.editform .receptionviewdata dl dd {
    margin: 0;
    padding: 0;
}

#reception.editform .receptionviewdata dl dd {
    padding: 0.25em 0;
    background-color: #F5F6F7;
    text-align: center;
}

#reception.editform .receptionviewdata dl {
    border: 1px solid #ffffff;
}

#reception.editform .receptionviewdata dl dt {
    background-color: #E5E6E7;
    text-align: center;
}

#reception.editform .receptionviewdata dl dt.must {
    background-color: #D33C44;
    color: #ffffff;
}

#reception.editform .receptionviewdata dl.error dd input,
#reception.editform .receptionviewdata dl.error dd select,
#reception.editform .receptionviewdata dl.error dd textarea {
    background-color: #D33C44;
}

#reception.addform .inline-radio {
    display: flex;
    border-radius: 3px;
    overflow: hidden;
    border: 1px solid #b6b6b6;
}

#reception.addform .inline-radio div {
    position: relative;
    flex: 1;
    padding: 0 !important;
}

#reception.addform .inline-radio input {
    width: 100%;
    height: 60px;
    opacity: 0;
}

#reception.addform .inline-radio label {
    position: absolute;
    top: 0; left: 0;
    color: #b6b6b6;
    width: 100%;
    height: 100%;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    border-right: 1px solid #b6b6b6;

    margin: 0;
    font-size: 1.5rem;
}

#reception.addform .inline-radio div:last-child label {
    border-right: 0;
}

#reception.addform .inline-radio input:checked + label {
    /* background: #d81b60; */
    background: #076BAF;

    font-weight: 500;
    color: #fff;
}

/* Sitemap */
#sitemap .sitemapBody .archivecategory {
    display: inline-block;
    width: 5em !important;
    margin: 0.25rem 1em 0.25rem 0;
    padding: 0;
    background: #e74c3c;
    color: #fff;
    text-indent: 0 !important;
    text-align: center;
}

#loginpage {
    position: absolute;
    width: 100%;
    height: 100%;
}

#loginpage header {
    position: fixed;
    top: 8px;
    width: 100%;
}

#loginpage footer {
    position: fixed;
    bottom: 0;
    width: 100%;
}

#loginpage #main-contents {
    margin: 100px auto 100px;
    width: 600px;
    height: 100%;
    max-width: 90%;
    background-color: #ffffff;
    border: 1px solid #076BAF;
    box-shadow: 4px 4px;
}

#loginpage .errormessage {
    color: #ff0000;
}

#loginpage .errormessage h3 {
    font-size: 1rem;
}

#masta.index #main ul {
    margin: 1em 0;
}

#masta.index #main li a {
    display: block;
    margin: 0.25em 0;
    padding: 1em;
    background-color: #F5F6F7;
}

#masta.index #main li a:hover {
    background-color: #E5E6E7;
}

#masta .tbl-width-100 {
    width: 100%;
}

#masta .operation {
    white-space:nowrap;
}

#masta .status-play {
    padding: 0.35em 1.0em;
    border-radius: 0.5em;
    background-color: #01903e;
    color: #ffffff;
    white-space:nowrap;
}

#masta .status-stop {
    padding: 0.35em 1.0em;
    border-radius: 0.5em;
    background-color: #e60014;
    color: #ffffff;
    white-space:nowrap;
}

.inline-radio {
    display: flex;
    border-radius: 3px;
    overflow: hidden;
    border: 1px solid #b6b6b6;
}

.inline-radio div {
    position: relative;
    flex: 1;
    padding: 0 !important;
}

.inline-radio input {
    width: 100%;
    height: 100%;
    opacity: 0;
    margin-bottom: 16px;
}

.inline-radio label {
    position: absolute;
    top: 0; left: 0;
    margin: 0 !important;
    color: #b6b6b6;
    width: 100%;
    height: 100%;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    border-right: 1px solid #b6b6b6;

    margin: 0;
    font-size: 1.25rem;
    text-align: center;
}

.inline-radio div:last-child label {
    border-right: 0;
}

.inline-radio input:checked + label {
    /* background: #d81b60; */
    background: #076BAF;

    font-weight: 500;
    color: #fff;
}

.onetimemessage {
    margin: 1em 0;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
    width: 100%;
    border: 1px solid #ff0000;
    border-radius: 0.5em;
    color: #ff0000;
}

.searchform {
    margin: 1em 0;
    padding: 0.5em;
    width: 100%;
    border: 1px solid #dddddd;
    border-radius: 0.25em;
}

.searchform dl {
    border-bottom: 0;
}

.searchform .sh-created-date input {
    display: inline-block;
    width: 45%;
}

.searchform .sh-accident-date input {
    display: inline-block;
    width: 45%;
}

.searchform .sh-seikyusyo select,
.searchform .sh-keiyaku select,
.searchform .sh-repairstatus select {
    width: 100%;
}

.searchform .submit {
    margin-bottom : 1em;
}

#report.index table {
    width: 100%;
}

#report.view dl,
#report.view dl dt,
#report.view dl dd {
    margin: 0;
    padding: 0;
}

#report.view dl dd {
    padding: 0.25em 0;
}

#report.view dl {
    border: 1px solid #ffffff;
}

#report.view dl dt {
    background-color: #E5E6E7;
    text-align: center;
}

#report.view dl dd {
    background-color: #F5F6F7;
    text-align: center;
}

#filemanager.addform dl li {
    width: 100%;
}


#filemanager #FileUploadForm,
#filemanager #fileList {
    position: relative; /* オーバーレイの基準位置とする */
    padding: 20px;
    border: 1px solid #ccc;
    display: inline-block; /* コンテナのサイズを中身に合わせる */
}

/* オーバーレイのスタイル */
#filemanager #loadingOverlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.7); /* 半透明の白 */
    display: flex; /* スピナーとテキストを中央に配置 */
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 10; /* 他の要素より手前に表示 */

    /* 🌟 初期状態は非表示にする 🌟 */
    display: none;
}

#filemanager #loadingOverlay p {
    font-weight: bold;
    font-size: 1.25rem;
}

/* スピナー（ぐるぐるアニメーション）のスタイル */
#filemanager .spinner {
    border: 4px solid rgba(0, 0, 0, 0.1);
    border-left-color: #007bff; /* 青色の部分 */
    border-radius: 50%;
    width: 40px;
    height: 40px;
    animation: spin 1s linear infinite; /* 1秒で1周、無限に繰り返す */
    margin-bottom: 10px;
}

/* ぐるぐる回るアニメーションの定義 */
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}


#filemanager.list .editpanel a {
    display: inline-block;
    padding: 0.5em;
    border: 1px solid #dddddd;
    border-radius: 0.5em;
    background-color: #F5F6F7;
    font-size: 1rem;
}

#filemanager.list .editpanel a:hover {
    background-color: #E5E6E7;
}

#filemanager.list .filelist {
    margin-bottom: 1.5em;
}

#filemanager.list .filelist dl:last-child {
    float: left;
}

#filemanager.list .filelist dl dt {
    margin-bottom: 0;
    padding: 0.25em 0;
    min-height: 30px;
    background-color: #777777;
    color: #ffffff;
    font-weight: bold;
    text-align: center;
    font-size: 0.875rem;
}

#filemanager.list .filelist dl .image {
    position: relative;

    margin-bottom: 0;
    padding: 0.25em;
    background-color: #cccccc;
    text-align: center;
    height: 240px;
}

#filemanager.list .filelist dl .image img {

    display: flex; /* Flexboxを有効化 */
    justify-content: center; /* 水平方向の中央寄せ */
    align-items: center; /* 垂直方向の中央寄せ */

    max-width: 99%;
    max-height: 99%;

    /* 縦横比率を保つために必須の設定 */
    width: auto;
    height: auto;

    /* 必要であれば中央揃えにするための設定 (親要素がフレックスやグリッドでない場合) */
    display: block;
    margin: auto;

    /* 垂直方向の中央寄せ */
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); /* 画像自身のサイズ分を戻して完全な中央に */
}

#filemanager.list .filelist dl .textbtn {
}

#filemanager.list .filelist dl .textbtn .datatext p {
    margin: 0.25em 0;
    font-size: 0.875rem;
}
