@charset "utf-8";
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400);

:root {
    --thema-color: #04589d;
    --main-bg-color: #e9e9e9;
    --content-bg-color: #fafafa;
    --th-row-bg-color: #fcebd9;
    --th-row-text-color: #5e5e5e;
    --th-col-bg-color: #fafafa;
    --th-col-text-color: #5e5e5e;
    --th-row-nowrap: nowrap;
    --th-row-n2-height: 1.5rem;
}

* {
    box-sizing: border-box;
}

html {
    height: 100%;
    font-size: 14px;
}
body {
    background-color: var(--main-bg-color);
    color: #5e5e5e;
    font-family: "Open Sans", sans-serif;
    font-weight: 400;
    line-height: 1.5;
    margin: 0;
    padding: 0;
    height: 100%;
    min-width: max-content;
    width: 100%;
}

/* ---------- Bootstrap風定義:START ---------- */

/* === Customize : Color === */
/* 文字色 */
.text-blue,
.font_blue {
    color: blue !important;
}
.text-red,
.font_red {
    color: red !important;
}
.text-gray,
.font_gray {
    color: gray !important;
}
.text-white,
.font_white {
    color: white !important;
}
.text-orange,
.font_orange {
    color: orange !important;
}
/* 背景色 */
.bg-gray,
.bgcolor_gray {
    background-color: #c6c6c6 !important;
}
.bg-red,
.bgcolor_red {
    background-color: #ffa0a0 !important;
}
.bg-white,
.bgcolor_white {
    background-color: white !important;
}
.bg-yellow,
.bgcolor_yellow {
    background-color: #ffd200 !important;
}
.bg-blue,
.bgcolor_blue {
    background-color: #d9edf7 !important;
}
.bg-green,
.bgcolor_green {
    background-color: #59bb0c !important;
}

/* 基本色以外 */
.bg-x-red-1 {
    background-color: #ffd8d8 !important;
}
.bg-x-orange-1 {
    background-color: #fcebd9 !important;
}
.bg-x-orange-2 {
    background-color: #ffd7bc !important;
}
.bg-x-orange-3 {
    background-color: #fccaa9 !important;
}
.bg-x-gray-1 {
    background-color: var(--main-bg-color) !important;
}
/* === Utilities : Borders === */
.border {
    border: 1px solid #c6c6c6 !important;
}
.border-0 {
    border: 0 !important;
}
.border-separate {
    border-collapse: separate !important;
}
.border-collapse {
    border-collapse: collapse !important;
}

/* === Utilities : Display === */
.d-block {
    display: block !important;
}
.d-flex {
    display: flex !important;
}
.d-inline-block {
    display: inline-block !important;
}
.d-inline-flex {
    display: inline-flex !important;
}
.d-inline {
    display: inline !important;
}
.d-none {
    display: none !important;
}

/* === Utilities : Flex === */
/*- Justify content -*/
.justify-content-between {
    justify-content: space-between !important;
}
/*- Align items -*/
.align-items-center {
    align-items: center !important;
}
.align-items-end {
    align-items: flex-end !important;
}
.flex-grow-1 {
    flex-grow: 1 !important;
}
.flex-wrap {
    flex-wrap: wrap !important;
}
.flex-column {
    flex-direction: column !important;
}

/* === Utilities : Overflow === */
.overflow-auto {
    overflow: auto !important;
}

/* === Utilities : Sizing === */
.w-10 {
    width: 10% !important;
}
.w-20 {
    width: 20% !important;
}
.w-30 {
    width: 30% !important;
}
.w-40 {
    width: 40% !important;
}
.w-50 {
    width: 50% !important;
}
.w-60 {
    width: 60% !important;
}
.w-70 {
    width: 70% !important;
}
.w-80 {
    width: 80% !important;
}
.w-90 {
    width: 90% !important;
}
.w-100 {
    width: 100% !important;
}

/* customize */
.w-fit {
    width: fit-content !important;
}

.w-80px {
    width: 80px !important;
}
.w-100px {
    width: 100px !important;
}
.w-110px {
    width: 110px !important;
}
.w-120px {
    width: 120px !important;
}
.w-130px {
    width: 130px !important;
}
.w-140px {
    width: 140px !important;
}
.w-150px {
    width: 150px !important;
}
.w-160px {
    width: 160px !important;
}
.w-180px {
    width: 180px !important;
}
.w-200px {
    width: 200px !important;
}
.w-250px {
    width: 250px !important;
}
.w-300px {
    width: 300px !important;
}
.w-1000px {
    width: 1000px !important;
}
.w-half {
    width: 512px !important;
}

.h-fit {
    height: fit-content !important;
}
.h-25px {
    height: 25px !important;
}
/* === Utilities : Spacing === */
.m-0 {
    margin: 0 !important;
}
.ms-auto {
    margin-left: auto !important;
}
.me-auto {
    margin-right: auto !important;
}
.mx-auto {
    margin-left: auto !important;
    margin-right: auto !important;
}
.my-0 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
.my-1 {
    margin-top: 0.25rem !important;
    margin-bottom: 0.25rem !important;
}
.my-2 {
    margin-top: 0.5rem !important;
    margin-bottom: 0.5rem !important;
}
.my-3 {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
}
.mx-0 {
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.mx-1 {
    margin-left: 0.25rem !important;
    margin-right: 0.25rem !important;
}
.mx-2 {
    margin-left: 0.5rem !important;
    margin-right: 0.5rem !important;
}
.mx-3 {
    margin-left: 1rem !important;
    margin-right: 1rem !important;
}
.ms-0 {
    margin-left: 0 !important;
}
.ms-1 {
    margin-left: 0.25rem !important;
}
.ms-2 {
    margin-left: 0.5rem !important;
}
.ms-3 {
    margin-left: 1rem !important;
}
.ms-4 {
    margin-left: 1.5rem !important;
}
.ms-5 {
    margin-left: 3rem !important;
}
.me-0 {
    margin-right: 0 !important;
}
.me-1 {
    margin-right: 0.25rem !important;
}
.me-2 {
    margin-right: 0.5rem !important;
}
.me-3 {
    margin-right: 1rem !important;
}
.me-4 {
    margin-right: 1.5rem !important;
}
.me-5 {
    margin-right: 3rem !important;
}
.mt-0 {
    margin-top: 0 !important;
}
.mt-1 {
    margin-top: 0.25rem !important;
}
.mt-2 {
    margin-top: 0.5rem !important;
}
.mt-3 {
    margin-top: 1rem !important;
}
.mt-4 {
    margin-top: 1.5rem !important;
}
.mt-5 {
    margin-top: 3rem !important;
}
.mb-0 {
    margin-bottom: 0 !important;
}
.mb-1 {
    margin-bottom: 0.25rem !important;
}
.mb-2 {
    margin-bottom: 0.5rem !important;
}
.mb-3 {
    margin-bottom: 1rem !important;
}
.mb-4 {
    margin-bottom: 1.5rem !important;
}
.mb-5 {
    margin-bottom: 3rem !important;
}

.mt-n1 {
    margin-top: -0.25rem !important;
}
.mt-n2 {
    margin-top: -0.5rem !important;
}

.p-0 {
    padding: 0 !important;
}
.px-1 {
    padding-left: 0.25rem !important;
    padding-right: 0.25rem !important;
}
.px-2 {
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
}
.px-3 {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
}
.px-4 {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
}
.px-5 {
    padding-left: 3rem !important;
    padding-right: 3rem !important;
}
.ps-1 {
    padding-left: 0.25rem !important;
}
.ps-2 {
    padding-left: 0.5rem !important;
}
.ps-3 {
    padding-left: 1rem !important;
}
.ps-4 {
    padding-left: 1.5rem !important;
}
.ps-5 {
    padding-left: 3rem !important;
}
.pe-1 {
    padding-right: 0.25rem !important;
}
.pe-2 {
    padding-right: 0.5rem !important;
}
.pe-3 {
    padding-right: 1rem !important;
}
.pe-4 {
    padding-right: 1.5rem !important;
}
.pe-5 {
    padding-right: 3rem !important;
}
.pt-0 {
    padding-top: 0 !important;
}
.pt-1 {
    padding-top: 0.25rem !important;
}
.pt-2 {
    padding-top: 0.5rem !important;
}
.pb-0 {
    padding-bottom: 0 !important;
}
.pb-1 {
    padding-bottom: 0.25rem !important;
}
.pb-2 {
    padding-bottom: 0.5rem !important;
}
.pb-3 {
    padding-bottom: 1rem !important;
}
.pb-4 {
    padding-bottom: 1.5rem !important;
}
.pb-5 {
    padding-bottom: 3rem !important;
}

.gap-1 {
    gap: 0.25rem !important;
}
.gap-2 {
    gap: 0.5rem !important;
}
/* customize */
.pb-px4 {
    padding-bottom: 4px !important;
}

/* === Utilities : Text === */
.text-start {
    text-align: left !important;
}
.text-center {
    text-align: center !important;
}
.text-end {
    text-align: right !important;
}
.fw-bolder {
    font-weight: bolder !important;
}
.fw-bold {
    font-weight: bold !important;
}

/* customize */
/* 文字サイズ */
.fs-1rem {
    font-size: 1rem !important;
}
.fs-8pt {
    font-size: 8pt !important;
}
.fs-9pt {
    font-size: 9pt !important;
}
.fs-10pt {
    font-size: 10pt !important;
}
.fs-11pt {
    font-size: 11pt !important;
}
.fs-12pt {
    font-size: 12pt !important;
}
.fs-13pt {
    font-size: 13pt !important;
}
.fs-14pt {
    font-size: 14pt !important;
}
.fs-15pt {
    font-size: 15pt !important;
}
.fs-16pt {
    font-size: 16pt !important;
}

.font_es {
    font-size: 0.85em;
}

/* === Utilities : Vertical alignment === */
.align-middle {
    vertical-align: middle !important;
}

.align-top {
    vertical-align: top !important;
}

/* ---------- Bootstrap風定義:END ---------- */

header {
    /* 横スクロール分も含め全て */
    width: 100%;
    background-color: var(--thema-color);
}
main {
    width: 100%;
    min-width: max-content;
    max-width: 1366px;
    margin-left: auto;
    margin-right: auto;
}
footer {
    /* 最下部固定 */
    position: sticky;
    top: 100vh;
    /* 横スクロール分も含め全て */
    width: 100%;
    background-color: var(--thema-color);
    color: white;
}
#header_title {
    /* 文字の表示はブラウザの表示内に収める */
    width: 98vw;
    min-height: 125px;
    max-height: 150px;
}
#footer {
    /* 文字の表示はブラウザの表示内に収める */
    width: 98vw;
    height: 30px;
}

/* Edge の見た目を Chrome に寄せる */
input[type="checkbox"] {
    accent-color: #0075ff;
}

/* DocType を設定した後(標準モード) textarea の下に謎の余白ができるので消去 */
textarea {
    display: block;
}

/* 認証など基本画面で使用するwrapper */
.form-wrapper {
    background-color: var(--content-bg-color);
    margin: 1em auto;
    padding: 0 1em;
    max-width: 478px;
}
/* ログイン後に使用する機能毎のwrapper */
.form-wrapper-func {
    background-color: var(--content-bg-color);
    margin: 1em auto;
    padding: 0 1em;
    max-width: 1366px;
}

fieldset {
    margin-bottom: 20px;
    padding: 10px 20px 15px;
    border: 2px #0080ff groove;
}

/* 機能ボタンの背景 */
.menu_group {
    margin: 2em 0;
    background-color: #e6f4ff;
    display: flex;
    flex-direction: column;
}

/* 機能ボタンの分類名 */
.menu_title {
    font-size: 1.2em;
    background-color: var(--thema-color);
    padding: 2px 4px;
    text-align: left;
    color: white;
    font-weight: 500;
    letter-spacing: 0.05em;
    margin-bottom: 5px;
}

.div_func {
    padding: 0px 15px 0px;
}
/* メニュー画面用CSS */
.div_menu_l {
    width: 150px;
    padding-right: 8px;
    margin-left: 10px;
}

.div_menu_r {
    width: 440px;
    display: block;
    margin-left: 10px;
    margin-right: 10px;
}

.div_func_padding {
    padding: 8px 8px 0px;
}

/* 表形式検索 */
.tbl_search .td_head {
    background-color: #ffd7bc;
    padding: 2px 4px 2px;
    white-space: nowrap;
    font-size: 10pt;
}
/* Form内text入力欄　一括 */

form input[type="text"] {
    height: 21px;
    font-size: 11pt;
}
form input[type="select"] {
    font-size: 10pt;
}

/* form関連 */
input[type="text"],
input[type="password"],
input[type="search"] {
    font-size: 11pt;
}

input[type="checkbox"] {
    height: 18px;
    width: 18px;
}

input[type="time"] {
    font-size: 0.9em;
}

/* 表形式CSS */
.th_head {
    background-color: #fcebd9;
    text-align: center;
    padding: 0px 5px 0px;
}

tr.td-char-row td,
.td_tbl_char {
    text-align: center;
    padding: 0px 15px 0px;
}

.td_tbl_yen {
    text-align: right;
    padding: 0px 5px 0px;
    text-decoration: underline;
}

a.result:is(:link, :visited, :hover, :active) {
    color: #003bff;
}

.result table {
    border-collapse: collapse;
}

.result tr {
    font-size: 10pt;
}

.result th {
    white-space: nowrap;
    border-bottom: 1px solid #ccc;
    border-left: 1px solid #ccc;
    border-right: 1px solid #ccc;
    box-sizing: border-box;
}

.result td {
    white-space: nowrap;
    border-bottom: 1px solid #ccc;
    border-left: 1px dashed #ccc;
    border-right: 1px dashed #ccc;
    box-sizing: border-box;
}

.detail_bg {
    background-color: #dbdbdb;
}

.detail_th {
    background-color: #fff4e0;
    padding-top: 5px;
    padding-bottom: 5px;
}

h1 {
    text-align: center;
    padding-top: 0.5em;
    padding-bottom: 0.1em;
    margin-top: 0;
    margin-bottom: 0.4em;
    font-size: 15pt;
}

form {
    padding: 0 1.5em;
    margin: 0;
}

.form-item {
    margin-bottom: 0.75em;
    width: 100%;
}

.form-item input {
    background-color: #fafafa;
    border: none;
    border-bottom: 2px solid #e9e9e9;
    color: #666;
    font-family: "Open Sans", sans-serif;
    font-size: 1em;
    height: 50px;
    transition: border-color 0.3s;
    width: 100%;
}

.form-item input:focus {
    border-bottom: 2px solid #c0c0c0;
    outline: none;
}

/* ボタンCSS */
.btn_search {
    width: 110px;
    height: 40px;
    background-color: #3b6f99;
    border: none;
    color: white;
    cursor: pointer;
    font-family: "Open Sans", sans-serif;
    font-size: 10pt;
    letter-spacing: 0.05em;
    text-align: center;
    text-transform: uppercase;
    transition: background-color 0.3s ease-in-out;
    border-radius: 5px;
}
.btn_search:hover {
    background-color: var(--thema-color);
}

.btn_search120 {
    width: 120px;
    height: 40px;
}

.button-panel {
    margin: 2em 0 0;
    width: 100%;
}

.button-panel :is(.button, .button_mini) {
    background-color: #6d5eff;
    border: none;
    color: white;
    cursor: pointer;
    font-family: "Open Sans", sans-serif;
    text-align: center;
    text-transform: uppercase;
    transition: background-color 0.3s ease-in-out;
}
.button-panel .button {
    height: 50px;
    font-size: 1.2em;
    width: 100%;
    letter-spacing: 0.05em;
}
.button-panel .button_mini {
    height: 20px;
    font-size: 0.8em;
    width: 180px;
}
.button_mini {
    width: 80px;
    height: 30px;
    background-color: #3b6f99;
    border: none;
    color: white;
    cursor: pointer;
    font-family: "Open Sans", sans-serif;
    font-size: 10pt;
    letter-spacing: 0.05em;
    text-align: center;
    text-transform: uppercase;
    transition: background-color 0.3s ease-in-out;
    border-radius: 5px;
}
.button:hover,
.button_mini:hover {
    background-color: #0047c8;
}

.form-footer {
    font-size: 1em;
    padding: 2em 0;
    text-align: center;
    & a {
        color: #8c8c8c;
        text-decoration: none;
        transition: border-color 0.3s;
        &:hover {
            border-bottom: 1px dotted #8c8c8c;
        }
    }
}

/* 斜体フォント */
.oblique-font {
    font-style: oblique;
    font-family: "Times New Roman", "ＭＳ Ｐゴシック", sans-serif;
}

/* パンくず */
.pankuzu {
    padding-left: 50px;
    font-size: 10pt;
    max-height: 75px;

    & .menu_title {
        width: 250px;
        margin-top: 1px;
        margin-bottom: 5px;
    }
    & .menu-line {
        display: flex;
        flex-wrap: wrap;
        column-gap: 0.6rem;

        & a {
            display: flex;
            align-items: center;
            text-decoration: none;
            gap: 0.5px;
            font-size: 0.85em;
        }
        & a:is(:link, :visited, :hover, :active) {
            color: white;
        }
        /* アイコン画像の拡張 */
        & a > :first-child {
            overflow: hidden; /*拡大時にはみ出た部分を隠す*/
            width: 20px; /*画像の幅*/
            height: 20px; /*画像の高さ*/

            & img {
                display: block;
                transition-duration: 0.3s; /*変化に掛かる時間*/
            }
            & img:hover {
                transform: scale(1.3); /*画像の拡大率*/
                transition-duration: 0.3s; /*変化に掛かる時間*/
            }
        }
    }
}

a.head_link:is(:link, :visited, :hover, :active),
a.footer:is(:link, :visited, :hover, :active) {
    color: white;
}

/* 位置調整用 */
.spacer_l {
    padding-left: 5px;
}

/* Flashメッセージ用 */
.flash_error,
.flash_success {
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.flash_error {
    background-color: #f2dede;
    color: #c36642;
}
.flash_success {
    background-color: #dff0d8;
    color: #3c763d;
}

/* 見出し用三角 */
.sankaku_midashi_info {
    background-image: linear-gradient(135deg, #77a5f4 10px, transparent 0);
}
.sankaku_midashi_contact {
    /* 左上 */
    background-image: linear-gradient(135deg, #236ff2 10px, transparent 0);

    > div {
        padding: 18px;
    }
}

/* 縦横中央 */
.vh-center {
    display: grid;
    place-content: center;
}

/* 縦方向のみリサイズ ( 想定:textarea ) */
.resize-v {
    resize: vertical;
}

/* モーダル */
#layer {
    position: fixed;
    z-index: 100000;
    background-color: #000000;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    filter: alpha(opacity = 0);
    opacity: 0;
    display: none;
}
#input_comment,
#input_comment_new {
    position: absolute;
    top: 0px;
    right: 0px;
    bottom: 0px;
    left: 0px;
    margin: auto;
    border: #428bca solid 3px;
    padding: 20px 20px 10px 20px;
    z-index: 100001;
    width: 580px;
    height: 500px;
    background-color: white;
    display: none;
    overflow: scroll;
}

/*エラー箇所の赤枠*/
.error {
    border: 3px #c34c42 solid;
}

/* ページネート関連 */
.paginator {
    text-align: left;

    & ul.pagination li {
        display: inline-block;
    }
    & p {
        text-align: right;
        color: rgba(0, 0, 0, 0.54);
    }
}
ul.pagination {
    display: block;
    margin-left: -0.3125rem;
    min-height: 1.5rem;

    & li.active a {
        background-color: #3b57ff;
        color: white;
        font-weight: bold;
        cursor: default;
    }
    & .disabled:hover a {
        background: none;
    }
    & li a,
    & li button {
        border-radius: 3px;
        transition: background-color 300ms ease-out;
        background: none;
        color: #5e5e5e;
        display: block;
        font-size: 14px;
        font-weight: normal;
        line-height: inherit;
        padding: 0.0625rem 0.4rem 0.0625rem;
    }
}

/*　表示件数部分 */
div.count_result {
    color: #5e5e5e;
    font-size: 14px;
}

/* トップメニューの機能ボタン　*/
.btn_func {
    display: inline-block;
    width: 130px;
    height: 70px;
    text-align: center;
    border: 2px solid var(--thema-color);
    color: white;
    text-decoration: none;
    font-weight: 500;
    padding: 4px 8px;
    border-radius: 4px;
    transition: 0.4s;
    background-color: var(--thema-color);
}

/*　機能ボタンにマウスオーバーした際の挙動*/
.btn_func:hover {
    background-color: white;
    color: var(--thema-color);
    cursor: pointer;
}

/****** 重要機能ボタン(共通)　******/
.btn_imp_red,
.btn_imp_blue {
    display: inline-block;
    width: 120px;
    height: 40px;
    text-align: center;
    text-decoration: none;
    font-weight: bold;
    border-radius: 4px;
    transition: 0.4s;
    background-color: white;
    cursor: pointer;
}
/****** 重要機能ボタン(赤)　******/
.btn_imp_red {
    border: 2px solid #ff0000;
    color: #ff7c85;
    padding: 2px 2px;
}
.btn_imp_red:hover {
    border-color: #ff7c85;
    color: #ff0000;
    background-color: #fcbdbd;
}
/****** 重要機能ボタン(青)　******/
.btn_imp_blue {
    border: 2px solid var(--thema-color);
    color: #7c8bff;
    padding: 4px 8px;
}
.btn_imp_blue:hover {
    color: var(--thema-color);
}

/****** 404エラー画面要素　******/
/*メニューボタンの背景*/
.e_menu_group {
    margin: 2em 0;
    background-color: #f5f5f5;
    text-align: center;
    width: 100vw;
}

/*404エラー表示時のメニュータイトル（ログイン時のみ表示）*/
.e_menu_title {
    font-size: 1.2em;
    background-color: #3b6f99;
    padding: 4px;
    text-align: center;
    color: #f6f6f6;
    font-weight: 500;
    letter-spacing: 0.05em;
    margin-bottom: 5px;
}

/*404エラー表示時のメニューボタン（ログイン時のみ表示）*/
.e_btn_func {
    display: inline-block;
    width: 130px;
    height: 70px;
    text-align: center;
    vertical-align: middle;
    border: 2px solid #3b6f99;
    color: #f6f6f6;
    text-decoration: none;
    font-weight: 500;
    padding: 4px 8px;
    border-radius: 4px;
    transition: 0.4s;
    background-color: #3b6f99;
    margin: 0px 3px 6px 0px;
}

/*　機能ボタンにマウスオーバーした際の挙動*/
.e_btn_func:hover {
    background-color: #f6f6f6;
    border-color: #3b6f99;
    color: #3b6f99;
    cursor: pointer;
}

/*エラーメッセージの配置*/
.e_content {
    margin-bottom: 10px;
    text-align: center;
}
/****** 404エラー画面要素(終)　******/

/* javascript:off 時の警告 */
#js-off-alert {
    background-color: #fff000;
    color: #3c3d3d;
    text-align: center;

    &::before {
        content: "JavaScriptを有効にしてください。有効にしないと本システムが正しく動作しない恐れがあります。";
    }
}

/* ローディング */
.loader {
    color: white;
    font-size: 10px;
    margin: 80px auto;
    position: relative;
    text-indent: -9999em;
    transform: translateZ(0);
    animation-delay: -0.16s;

    &,
    &:before,
    &:after {
        border-radius: 50%;
        width: 2.5em;
        height: 2.5em;
        animation-fill-mode: both;
        animation: load7 1.8s infinite ease-in-out;
    }
    &:before,
    &:after {
        content: "";
        position: absolute;
        top: 0;
    }
    &:before {
        left: -3.5em;
        animation-delay: -0.32s;
    }
    &:after {
        left: 3.5em;
    }
}
@keyframes load7 {
    0%,
    80%,
    100% {
        box-shadow: 0 2.5em 0 -1.3em;
    }
    40% {
        box-shadow: 0 2.5em 0 0;
    }
}

/* 入力必須マーク */
.input_required {
    color: #fc0400;
    display: inline;
}
.required-mark {
    color: #fc0400;
    display: inline;
    vertical-align: middle;

    &::before {
        content: "*";
    }
}

/*モーダル部分のツールチップ*/
.ui-tooltip {
    z-index: 110001;
    word-break: break-all;
    white-space: pre-line;
}

div.scroll_div {
    overflow: auto;
}

.first-tr th,
.first-tr td {
    border-top: 1px solid #ccc;
}

/* -----------------------------------------------
 * m_info.css */
/* === info ( m_info.css 整理 ) === */
table.main-information {
    & {
        width: 100%;
        border-collapse: collapse;
    }
    & .info-date {
        padding-right: 10px;
    }
    & .info-title {
        max-width: 300px;
        min-width: 300px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        padding-right: 10px;
    }
    & .info-detail {
        text-align: center;
    }
}
table.modal-information {
    & {
        width: 100%;
    }
    & th,
    & td {
        padding: 5px;
        white-space: normal;
    }
    & td {
        vertical-align: top;
    }
    & td.nowrap {
        white-space: nowrap;
        width: 50px;
    }
}

/* jQuery の datepicker を使用する箇所の入力欄の幅: chrome の size=8 を基に設定 (各画面バラバラで Firefox だと狭い) */
input.datepicker {
    width: 6.7rem;
}

/* -----------------------------------------------
 * datepicker-holiday.css */
.saturday a {
    color: blue !important;
}
.holiday a {
    color: red !important;
}

/* -----------------------------------------------
 * ヘッダー固定 */
.sticky-table {
    /* 横スクロール時に固定する */
    &:where(.fixed-col) th:first-child {
        position: sticky;
        left: 0;
        background-color: var(--th-col-bg-color);
    }
    &:where(.fixed-col) tbody th:first-child {
        font-weight: normal;
    }

    /* 縦スクロール時に固定する */
    &:where(.fixed-row) thead th {
        position: sticky;
        top: 0;
        background-color: var(--th-row-bg-color);
        color: var(--th-row-text-color);
        white-space: var(--th-row-nowrap);
        padding: 0px 5px 0px;
        /* tbody内のセルより手前に表示する */
        z-index: 1;

        /* ヘッダー行内の他のセルより手前に表示する */
        &:first-child {
            background-color: var(--th-row-bg-color);
            color: var(--th-row-text-color);
            z-index: 2;
        }
    }
    &:where(.fixed-row) thead tr:nth-of-type(2) th {
        top: var(--th-row-n2-height);
    }
}
