@charset "UTF-8";

/* style.css上書き
============================================================================= */
.header_inner {
    padding: 18px 24px;
}
.aside_inner ul li:nth-of-type(5) {
    margin: initial;
}
.aside_inner ul li:nth-of-type(6) {
    margin: 30px 0 60px;
}
.aside_inner ul li a.is_active {
    pointer-events: none;
}
.block_list {
    margin-bottom: 60px;
}
.tab-label {
    color: #c3c3c3;
    background-color: #f2f2f2;
    margin-bottom: 0;
    font-size: 13px;
}
.tab-content {
    border: none;
}
.tab-switch-cv:checked + .tab-label {
    color: #fff;
    font-size: 13px;
}

/* base
============================================================================= */
body {
    color: #1a1a1a;
}
ul li {
    max-width: 100%;
}
th {
    -webkit-backface-visibility: hidden;
    transform: translateZ(0); /* ハードウェアアクセラレーションを強制 */
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
input[type="number"]:focus {
    border: 1px solid #3498db;
    outline: none !important;
    box-shadow: none !important;
}

/* helper
============================================================================= */
.hp_tac {
    text-align: center !important;
}
.hp_mr_5e {
    margin-right: 0.5em;
}
.hp_mb1e {
    margin-bottom: 1em !important;
}
.hp_mb40 {
    margin-bottom: 40px !important;
}
.hp_nowrap {
    white-space: nowrap !important;
}

/* layout
============================================================================= */
.ly_login {
    position: relative;
    z-index: 0;
    overflow: hidden;
}
/* .ly_login::before {
    content: "";
    position: absolute;
    top: -40%;
    left: 0%;
    width: 100%;
    height: 140%;
    background: url(../img/bg_line.svg);
    background-position: center;
    background-repeat: no-repeat;
    z-index: -1;
    background-size: cover;
} */

.ly_header {
    align-items: center;
}

.ly_main {
    width: calc(100vw - 120px);
    padding: 48px 60px 80px;
    min-width: 0;
}

/* block
============================================================================= */
/* ヘッダーメニュー */
.bl_dropdown {
    position: relative;
    display: inline-block;
}
.bl_dropdown_toggle {
    display: none;
}
.bl_dropdown_label {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #5c5750;
    user-select: none;
    cursor: pointer;
}
.bl_dropdown_logo {
    width: 50px;
    height: auto;
}
.bl_dropdown_logo img {
    width: 100%;
}
.bl_dropdown_arrow {
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 7px solid #5c5750;
    border-radius: 2px;
    margin-left: 4px;
}
.bl_dropdown_menu {
    position: absolute;
    top: 100%;
    right: 0;
    background: white;
    border: 1px solid #c3c3c3;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.16);
    border-radius: 4px;
    min-width: 160px;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    z-index: 10;
    transition: max-height 0.5s ease-out, opacity 0.5s ease-out;
}
.bl_dropdown_menu a {
    display: block;
    padding: 6px 8px;
    border-bottom: 1px dashed #ddd;
    height: 37px;
}
.bl_dropdown_menu a:last-child {
    border-bottom: none;
}
.bl_dropdown_toggle:checked + .bl_dropdown_label + .bl_dropdown_menu {
    max-height: 200px;
    opacity: 1;
}

/* 検索 */
.bl_search {
    background-color: #f2f2f2;
    border-radius: 4px;
    border: 1px solid #c3c3c3;
    padding: 24px;
}
.bl_search_1st {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
}
.bl_search_2nd {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    gap: 16px 54px;
}
.bl_search_date {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    font-size: 14px;
    gap: 8px;
}
.bl_dateBox {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 共通 */
.bl_sec {
    margin-bottom: 80px;
}
.bl_checkList {
    display: inline-flex;
    flex-flow: row wrap;
}
.bl_checkList li {
    position: relative;
}
.bl_checkList li:not(:last-child) {
    margin-right: 1em;
}
.bl_checkBox {
    position: relative;
}

.bl_labelUnit {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.bl_labelUnit.bl_labelUnit__center {
    justify-content: center;
}

/* box */
.bl_contBox {
    border: 1px solid #c3c3c3;
}
.bl_contBox_ttl {
    font-size: 18px;
    font-weight: 500;
    line-height: 1;
    background-color: #dedede;
    padding: 10px 16px;
}
.bl_contBox_body {
    padding: 24px 32px;
}

/* カード */
.bl_card1Unit {
    display: flex;
    justify-content: center;
    gap: 30px 2%;
    margin-bottom: 20px; /* 余白を若干調整（80pxから20pxに変更） */
}
.bl_card1 {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background-color: #fff;
    border: 1px solid #c3c3c3;
    border-radius: 4px;
    width: 32%;
    max-width: 400px;
    padding: 20px; /* カード内の余白を10%増加（24px 8pxから20pxに変更） */
}
.bl_card1 > *:not(:last-child) {
    margin-bottom: 1em;
}
.bl_card1_flex {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.bl_card1_left {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 30%;
    min-width: 50px;
    padding-left: 8px;
}
.bl_card1_right {
    min-width: 65%;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    /* min-width: 200px; */
}
.bl_card1_right > span {
    display: block;
    font-size: 12px;
}
.bl_card1_img {
    width: 80px; /* アイコンサイズを80pxに */
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 4px;
}
.bl_card1_img img {
    width: 100%; /* 親要素のサイズに合わせる */
    height: auto;
}
.bl_card1_ttl {
    color: #132b88;
    font-size: 1.0em; /* タイトル文字サイズを1.0emに */
    font-weight: 600;
}
.bl_card1_value {
    font-size: 1.0em; /* 数値文字サイズを1.0emに（3.125vwから変更） */
    font-family: "Outfit", sans-serif;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 10px;
}
.bl_card1_value > span {
    font-size: 20px;
}

/* 桁数に応じたフォントサイズ調整 */
.bl_card1_value.digits-1to5 {
    font-size: 4vw !important; /* 5桁まで: より大きなフォントサイズ */
}

.bl_card1_value.digits-6plus {
    font-size: 2.5vw !important; /* 6桁以上: 小さめのフォントサイズ */
}

.bl_card2Unit {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    background-color: #f2f2f2;
    border-radius: 8px;
    padding: 56px 3%;
    gap: 1em;
    margin-bottom: 80px;
}
.bl_card2 {
    background-color: #fff;
    border-radius: 8px;
    color: #1a1a1a;
    text-align: center;
    padding: 16px 8px;
    width: 14%;
    min-width: 208px;
}
.bl_card2_heading {
    font-size: 18px;
    line-height: 1;
}
.bl_card2_value {
    font-family: "Outfit", sans-serif;
    font-size: 36px;
    font-weight: 700;
    color: #132b88;
}
.bl_card2_value span {
    font-size: 16px;
}
.bl_card2_unitPrice {
    margin-bottom: 14px;
}
.bl_card2 .el_roundedLabel {
    width: 140px;
    min-width: auto;
    max-width: 100%;
}

.bl_card3Unit {
    display: flex;
    justify-content: space-between;
    background-color: #f2f2f2;
    border-radius: 8px;
    padding: 56px 3%;
}
.bl_card3 {
    display: flex;
    align-items: center;
    gap: 5%;
    width: 23%;
    background-color: #fff;
    border-radius: 8px;
    padding: 28px 24px;
    padding: 28px 2%;
}
.bl_card3_img {
    width: 30%;
    max-width: 80px;
    height: auto;
}
.bl_card3_img img {
    width: 100%;
}
.bl_card3_right {
    width: 65%;
    font-size: 16px;
}
.bl_card3_ttl {
    font-size: 16px;
}
.bl_card3_value {
    font-family: "Outfit", sans-serif;
    font-size: 2.08333vw;
    font-weight: 700;
    line-height: 1.25;
}

/* progressBar */
.bl_progressBar {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    max-width: 570px;
    margin: auto;
    margin-bottom: 40px;
}
.bl_progressBar li {
    position: relative;
    font-size: 20px;
    text-align: center;
    width: 25%;
    counter-increment: steps;
    opacity: 0.3;
}
.bl_progressBar li::before {
    font-family: "Outfit", sans-serif;
    font-size: 24px;
    font-weight: bold;
    line-height: 48px;
    text-align: center;
    border-radius: 50vh;
    color: #fff;
    background-color: #1a1a1a;
    content: counter(steps);
    display: block;
    width: 48px;
    height: 48px;
    margin: 8px auto;
}
.bl_progressBar li::after {
    content: "";
    position: absolute;
    top: 33%;
    left: -30px;
    width: 60px;
    border-bottom: 4px dotted #1a1a1a;
    opacity: 0.3;
    z-index: -1;
}
.bl_progressBar li:first-child::after {
    content: none;
}
.bl_progressBar li.is_active {
    opacity: 1;
}

/* pager */
.bl_pager {
    display: flex;
    margin-top: 40px;
    margin-bottom: 40px;
}
.bl_pager_inner {
    display: flex;
    gap: 4px;
    margin-right: auto;
    margin-left: auto;
}
.bl_pager_link {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    width: 24px;
    height: 24px;
    border: 1px solid #f2f2f2;
    border-radius: 2px;
    text-decoration: none;
    transition: 0.25s;
}
.bl_pager_link.bl_pager_link__gy {
    background-color: #f2f2f2;
    width: 80px;
    white-space: nowrap;
}
.bl_pager_link.is_active {
    color: #fff;
    font-weight: 700;
    background-color: #132b88;
    border-color: #132b88;
    pointer-events: none;
}

/* table */
.bl_tableWrap {
    overflow-x: auto;
    border: 1px solid #e2e2e2;
}
.bl_tableWrap.bl_tableWrap__scrollY {
    overflow: auto;
    height: 500px;
}
.bl_tableWrap__scrollY thead tr {
    /* background-color: #f2f2f2; */
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 1;
}
.bl_tableUtils {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}
.bl_tableUtils_result {
    font-size: 14px;
}

.bl_vertTable {
    width: 100%;
    table-layout: auto;
    border-collapse: collapse;
}
.bl_vertTable.bl_vertTable__keyword {
    min-width: 690px;
}
.bl_vertTable.bl_vertTable__keyword td:last-child {
    white-space: nowrap;
}
.bl_vertTable.bl_vertTable__report {
    width: 1560px;
    min-width: 100%;
}
.bl_vertTable.bl_vertTable__history {
    width: 2024px;
    min-width: 100%;
}
.bl_vertTable.bl_vertTable__user td {
    white-space: nowrap;
}
.bl_vertTable th {
    font-size: 16px;
    font-weight: 400;
    padding: 18px 12px;
    border-right: 1px solid #e2e2e2;
    border-bottom: 1px solid #e2e2e2;
    background-color: #f2f2f2;
    vertical-align: middle;
    text-align: left;
    white-space: nowrap;
}
.bl_vertTable td {
    font-size: 14px;
    padding: 14px 12px;
    border-right: 1px solid #e2e2e2;
    border-bottom: 1px solid #e2e2e2;
    vertical-align: middle;
}
.bl_vertTable th:last-child,
.bl_vertTable td:last-child {
    border-right-width: 0;
}
.bl_vertTable tbody tr:last-child td {
    border-bottom-width: 0;
}
.bl_vertTable_time {
    min-width: 120px;
}
.bl_table_w60 {
    width: 60px;
    min-width: 60px;
}
.bl_table_w80 {
    width: 80px;
    min-width: 80px;
}
.bl_table_w100 {
    width: 100px;
    min-width: 100px;
}

.bl_crossTable {
    width: auto;
    min-width: 100%;
    text-align: center;
    table-layout: fixed;
    border-collapse: collapse;
}
.bl_crossTable tr th:first-child {
    text-align: left;
}
.bl_crossTable tr th:not(:first-child) {
    width: 100px;
    min-width: 100px;
}
.bl_crossTable th {
    padding: 16px;
    border-right: 1px solid #e2e2e2;
    border-bottom: 1px solid #e2e2e2;
    background-color: #f2f2f2;
    font-weight: 400;
    vertical-align: middle;
    white-space: nowrap;
}
.bl_crossTable td {
    font-size: 16px;
    border-right: 1px solid #e2e2e2;
    border-bottom: 1px solid #e2e2e2;
    vertical-align: middle;
}
.bl_crossTable th:last-child,
.bl_crossTable td:last-child {
    border-right-width: 0;
}
.bl_crossTable tbody tr:last-child th,
.bl_crossTable tbody tr:last-child td {
    border-bottom-width: 0;
}
.bl_crossTable_mdSticky {
    position: -webkit-sticky;
    position: sticky;
    left: 0;
    z-index: 1;
}
.bl_crossTable_gy {
    background-color: #f2f2f2;
}
.bl_crossTable_wt {
    background-color: #fff !important;
}

.bl_horizTable {
    width: 100%;
    border-collapse: collapse;
}
.bl_horizTable th {
    width: 200px;
    min-width: 200px;
    padding: 10px 16px;
    background-color: #f2f2f2;
    border-bottom: 1px solid #e2e2e2;
    font-size: 16px;
    font-weight: normal;
    text-align: left;
    vertical-align: middle;
}
.bl_horizTable td {
    border-bottom: 1px solid #e2e2e2;
}
.bl_horizTable tr:last-child th,
.bl_horizTable tr:last-child td {
    border-bottom-width: 0;
}

/* ログイン画面 */
#sec_login > .inner:first-child {
    margin-bottom: 16px !important;
}
#sec_login .inner__2 {
    padding: 36px 18px;
}

.bl_login_input {
    min-height: 80px;
    margin-bottom: 18px;
    display: block;
}
.bl_login_input_ttl {
    font-size: 18px;
    font-weight: 400;
    line-height: 1.5;
}

.bl_login_heading {
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
}
.bl_login_heading::before,
.bl_login_heading::after {
    content: "";
    display: block;
    flex-grow: 1;
    height: 1px;
    background: #c3c3c3;
}
.bl_login_heading::before {
    margin-right: 1em;
}
.bl_login_heading::after {
    margin-left: 1em;
}
.bl_btnList {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.bl_btnList > li:not(:last-child) {
    margin-bottom: 16px;
}

/* ダッシュボード画面 */
.bl_balloon {
    position: relative;
    display: inline-block;
    padding: 48px 40px;
    font-size: 16px;
    background-color: #fff;
    border: solid 3px #132b88;
    border-radius: 12px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
.bl_balloon::before {
    content: "";
    position: absolute;
    bottom: -58px;
    left: 50%;
    transform: translateX(-50%);
    border: 44px solid transparent;
    border-top: 20px solid #fff;
    z-index: 2;
}
.bl_balloon::after {
    content: "";
    position: absolute;
    bottom: -64px;
    left: 50%;
    transform: translateX(-50%);
    border: 46px solid transparent;
    border-top: 22px solid #132b88;
    z-index: -1;
}
.bl_balloon_ttl {
    font-size: 24px;
    font-weight: 500;
    color: #132b88;
    margin-bottom: 1em;
}
.bl_balloon_txt {
    line-height: 1.8;
    margin-bottom: 32px;
}
.bl_balloon_logo {
    position: absolute;
    width: 80px;
    left: -41px;
    top: -20px;
    height: auto;
}
.bl_balloon_logo img {
    width: 100%;
}
.bl_dashboardTtl {
    margin-bottom: 40px;
}
.bl_dashboardTtl h2 {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 8px;
}
.bl_yearChange {
    display: flex;
    gap: 0.5em;
    margin-bottom: 1em;
}
.bl_overviewCV {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 2em;
}
.bl_graphInfo {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: 24px;
    gap: 24px;
}
.bl_graphInfo_value {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    width: 324px;
}
.bl_graphInfo_value li {
    display: flex;
    justify-content: space-between;
    font-size: 18px;
    border-bottom: 1px solid #e2e2e2;
    width: 150px;
}
.bl_graphInfo_detail {
    display: flex;
    flex-direction: column;
    white-space: nowrap;
    font-size: 14px;
}

/* ページ登録画面 */
.bl_target_sort {
    display: flex;
    align-items: center;
    margin-bottom: 24px;
}
.bl_target_sort .el_form_select {
    margin-left: 16px;
}
.bl_page_fx {
    display: flex;
}
.bl_page_fx:not(:last-child) {
    margin-bottom: 16px;
}
.bl_page_head {
    font-size: 18px;
    padding: 10px 16px 10px 0;
    width: 10%;
    min-width: 150px;
}
.bl_pageTableWrap {
    flex: 1;
    overflow-x: auto;
    border: 1px solid #e2e2e2;
}
.bl_pageTable {
    min-width: 500px;
}
.bl_pageTable th {
    vertical-align: top;
    border-bottom: none;
}
.bl_pageTable td {
    padding: 5px 8px;
}
.bl_pageTable td > *:not(:last-child) {
    margin-bottom: 5px;
}
.bl_pageTable .el_form_input[type="text"] {
    padding: 5px 8px;
    border-color: #e2e2e2;
}
.bl_pageTable .el_form_select > select {
    font-size: 16px;
    border-color: #e2e2e2;
    padding: 9px 8px;
    width: 180px;
}

/* element
============================================================================= */

/* heading */
.el_pageTtl {
    font-size: 32px;
    font-weight: 500;
    margin-bottom: 60px;
}
.el_lv1Heading {
    font-size: 18px;
    font-weight: 400;
    color: #fff;
    background-color: #132b88;
    padding: 11px 24px;
    margin-bottom: 24px;
}
.el_lv2Heading {
    border-left: 5px solid #132b88;
    font-size: 18px;
    font-weight: 400;
    padding-left: 10px;
    margin-bottom: 24px;
}

/* text */
.el_red {
    color: #a7141e;
}
.el_blue {
    color: #1f14a7;
}
.el_green {
    color: #28a745;
}
.el_alert {
    font-size: 12px;
    color: #a7141e;
    line-height: 1.5;
}

/* label */
.el_label {
    display: inline-block;
    padding: 5px 8px;
    font-size: 14px;
    text-align: center;
    line-height: 1;
    background-color: #e2e2e2;
    border-radius: 2px;
}
.el_roundedLabel {
    display: inline-block;
    padding: 6px 12px; /* ラベルの余白を若干調整（5px 8pxから変更） */
    font-size: 1.2em; /* ラベル文字サイズを1emに（14pxから変更） */
    text-align: center;
    line-height: 1;
    background-color: #f2f2f2;
    border-radius: 12px;
    min-width: 140px;
    max-width: 182px;
    flex: 1;
}

.el_required {
    display: inline-block;
    font-size: 16px;
    font-weight: 400;
    color: #ffffff;
    background: #ce1a1a;
    padding: 4px 6px;
    border-radius: 2px;
    margin-right: 8px !important;
}

/* icon */
.el_linkIco {
    display: inline-block;
    width: 16px;
    margin: auto;
}
.el_updateIco,
.el_delateIco,
.el_editIco {
    width: 16px;
    margin: auto;
    cursor: pointer;
}

/* button
-------------------------------- */
.el_socialLoginBtn {
    display: flex;
    align-items: center;
    width: 378px;
    max-width: 100%;
    padding: 16px;
    border: 1px solid #c3c3c3;
    border-radius: 2px;
    font-size: 16px;
    transition: 0.25s;
    box-sizing: border-box;
    height: 60px;
    cursor: pointer;
}
.el_socialLoginBtn_img {
    margin-right: 1em;
}

.el_csvBtn {
    display: flex;
    align-items: center;
    font-size: 15px;
    font-weight: 400;
    line-height: 1;
    border: 1px solid #c3c3c3;
    border-radius: 2px;
    padding: 4px 16px;
}
.el_csvBtn img {
    width: 20px;
    height: auto;
    margin-right: 8px;
}

.el_moreBtn {
    display: inline-block;
    max-width: 100%;
    padding: 8px 30px;
    background-color: #f2f2f2;
    font-weight: 500;
    text-align: center;
    border-radius: 50vh;
    line-height: 1;
    cursor: pointer;
}

.el_searchBtn {
    display: inline-block;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    background-color: #132b88;
    padding: 9px 2rem;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    text-align: center;
    vertical-align: middle;
    text-decoration: none;
    letter-spacing: 0.1em;
    border-radius: 4px;
}

/* checkbox
-------------------------------- */
.el_form_error {
    font-size: 12px;
    color: #a7141e;
}
.el_form_label {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
}
.el_form_input[type="text"] {
    display: inline-block;
}
.el_form_input {
    width: 150px;
    max-width: 100%;
    padding: 4px 8px;
    background-color: #fff;
    border: 1px solid #c3c3c3;
    border-radius: 2px;
    font-size: 14px;
    line-height: 1;
}
.el_form_input[type="text"]:focus,
.el_form_input[type="email"]:focus {
    border: 1px solid #3498db;
    outline: none !important;
    box-shadow: none !important;
}
.el_form_input::placeholder {
    color: #ccc;
}
.el_form_input.el_form_input__l {
    width: 280px;
}
.el_form_input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    z-index: -1;
}
.el_form_checkbox {
    position: relative;
    display: inline-block;
    flex: none;
    width: 24px;
    height: 24px;
    background-color: white;
    border: 1px solid #1a1a1a;
    transition: ease-out 0.25s;
}
.el_form_checkbox:before {
    content: "";
    position: absolute;
    top: 2px;
    left: 7.4px;
    width: 8px;
    height: 14px;
    border: solid white;
    border-width: 0 3px 3px 0;
    transform: rotate(45deg);
    transition: ease-out 0.25s;
    opacity: 0;
}
.el_form_input[type="checkbox"]:checked + .el_form_label .el_form_checkbox {
    border: 1px solid #8b98a5;
    background-color: #1d9bf0;
}
.el_form_input[type="checkbox"]:checked + .el_form_label .el_form_checkbox:before {
    opacity: 1;
}

.el_form_number {
    padding: 15px 0;
    width: 100%;
    background-color: transparent;
    text-align: center;
    border: none;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    display: inline-block;
}
.el_form_number.is_error {
    background-color: #ffdadf;
    border: 1px solid #ffdadf;
}

.el_form_select {
    position: relative;
    display: inline-block;
    margin: 0;
}
.el_form_select::after {
    content: "";
    width: 6px;
    height: 6px;
    border: 0;
    border-bottom: solid 1px #5c5750;
    border-right: solid 1px #5c5750;
    transform: rotate(45deg);
    position: absolute;
    top: 0;
    right: 16px;
    bottom: 0;
    margin: auto;
    pointer-events: none;
}
.el_form_select > select {
    font-size: 18px;
    line-height: 1;
    background-color: #fff;
    border: 1px solid #c3c3c3;
    border-radius: 2px;
    width: 140px;
    padding: 15px 32px 15px 16px;
    cursor: pointer;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
.el_form_select select:focus {
    outline: 0 !important;
    border: 1px solid #3498db;
    box-shadow: 0 0 0 0 Canvas;
}

.el_form_date {
    display: block;
    border: 1px solid #c3c3c3;
    background-color: #fff;
    border-radius: 2px;
    padding: 4px 16px 4px;
}
.el_form_date:focus {
    outline: 0 !important;
    border: 1px solid #2196f3;
    box-shadow: 0 0 0 0 Canvas;
}

@media screen and (max-width: 1660px) {
    .bl_card2 {
        width: 30%;
        max-width: 330px;
        min-width: 150px;
    }
}

@media screen and (max-width: 1024px) {
    /* 主要3指標を1列縦並びに */
    /* .bl_card1Unit {
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }
    .bl_card1 {
        width: 100%;
        max-width: 500px;
    } */
    
    .bl_card3Unit {
        flex-wrap: wrap;
        gap: 16px 2%;
        padding: 30px 3%;
    }
    .bl_card3 {
        width: 48%;
    }
    .bl_card3_value {
        font-size: 32px;
    }
}

@media screen and (max-width: 950px) {
    /* element
    ============================================================================= */
    .el_searchBtn {
        width: 100%;
    }
}

@media screen and (max-width: 769px) {
    /* style.css上書き
    ============================================================================= */
    aside {
        z-index: 9;
    }
    .aside_inner {
        padding: 3% 2%;
    }
    .aside_inner ul {
        justify-content: center;
        align-items: flex-start;
        gap: 16px 2%;
    }
    .aside_inner ul li {
        width: 22%;
    }
    .aside_inner ul li:nth-of-type(-n + 3) {
        margin-bottom: 0;
    }
    .aside_inner ul li:nth-of-type(6) {
        margin: initial;
    }
    .aside_inner ul li a p {
        font-size: 10px;
    }
    .block_list_search {
        width: 100%;
    }
    .tab-switch-cv + .tab-label {
        font-size: 10px;
        width: 110px;
    }
    .tab-switch-cv:checked + .tab-label {
        width: 110px;
        font-size: 10px;
    }
    .block_list02_inner {
        width: 100%;
    }
    .block_list02_box .block_list02_box_inner {
        padding: 20px;
    }

    /* layout
    ============================================================================= */
    .ly_main {
        width: 90%;
        padding: 48px 0;
        margin-left: auto;
        margin-right: auto;
    }

    /* block
    ============================================================================= */
    .bl_card1Unit {
        flex-direction: column;
        align-items: center;
    }
    .bl_card1 {
        width: 100%;
    }
    .bl_card1_value {
        font-size: 40px;
    }

    .bl_card2_value {
        font-size: 20px;
    }

    .bl_card3Unit_wrapper {
        width: 90%;
        margin: auto;
    }
    .bl_card3_ttl {
        font-size: 12px;
    }

    /* 検索 */
    .bl_search {
        padding: 30px 3%;
    }
    .bl_dateBox {
        gap: 2px;
    }

    /* ダッシュボード画面 */
    .bl_balloon {
        padding: 24px;
    }
    .bl_balloon_logo {
        width: 60px;
        left: 0;
        top: -30px;
    }
    .bl_balloon_ttl {
        font-size: 20px;
    }

    .bl_overviewCV li {
        width: 100%;
    }
    .bl_overviewCV li > * {
        max-width: 100%;
    }

    /* ページ登録画面 */
    .bl_page_fx {
        flex-direction: column;
    }
    .bl_page_head {
        width: 100%;
    }

    /* progressBar */
    .bl_progressBar li {
        font-size: 16px;
    }
    .bl_progressBar li::after {
        left: -10px;
        width: 20px;
        z-index: -1;
    }

    /* element
    ============================================================================= */
    .el_pageTtl {
        font-size: 26px;
        margin-bottom: 40px;
    }

    .el_form_date {
        padding: 3px 8px;
    }
}

@media screen and (max-width: 540px) {
    .bl_card3_value {
        font-size: 24px;
    }
}

/* ダッシュボードレスポンシブ対応 */

/* 主要指標セクションの改善 - 第1段階 */

/* 主要指標セクションの改善 - 第3段階 */
.bl_card1_right span {
    font-size: 1em; /* 詳細情報の文字サイズを1emに */
}

/* テーブル風レイアウトのスタイル */
.bl_card1_details {
    margin-top: 10px;
    width: 100%;
}

.bl_detail_row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 4px 20px;
    padding: 2px 0;
}

.bl_detail_label {
    font-size: 1.2em; /* 詳細ラベルを1emに */
    color: #666;
    text-align: left;
}

.bl_detail_value {
    font-size: 1.2em; /* 詳細値を1emに */
    font-weight: 600;
    color: #333;
    text-align: right;
}

/* 数字の改行を防ぐ */
.bl_card1_value {
    white-space: nowrap;
    overflow: visible !important; /* オーバーフローを表示 */
    text-overflow: clip !important; /* 省略記号を無効化 */
    font-size: 3vw !important; /* デスクトップ用のフォントサイズ */
    word-break: keep-all !important; /* 単語の途中で改行しない */
}

/* SPサイズでは桁数に応じたフォントサイズを使用 */
@media screen and (max-width: 767px) {
    .bl_card1_value {
        font-size: 48px !important; /* SPサイズ用のデフォルトフォントサイズ */
    }
    .bl_card1_value.digits-1to5 {
        font-size: 56px !important; /* SPサイズ: 5桁まで: より大きなフォントサイズ */
    }
    .bl_card1_value.digits-6plus {
        font-size: 40px !important; /* SPサイズ: 6桁以上: 小さめのフォントサイズ */
    }
}

/* 大きな数字でも適切に表示されるように調整 */
@media screen and (min-width: 768px) {
    .bl_card1_value {
        font-size: clamp(24px, 2.5vw, 48px) !important; /* 最小24px、最大48pxで可変 */
        line-height: 1.2 !important; /* 行間を調整 */
        padding: 0 10px !important; /* 左右の余白を追加 */
    }
}

/* bl_card2Unitのレイアウト調整 - 左寄せで並べる */
.bl_card2Unit {
    display: grid !important; /* FlexboxからGridに変更 */
    grid-template-columns: repeat(6, 1fr) !important; /* 6列で均等分割 */
    gap: 30px !important; /* カード間の間隔を増加 */
    justify-content: start !important; /* 左寄せに変更 */
    align-content: start !important; /* 上詰めで配置 */
    padding-left: 2% !important; /* 左側の余白を調整 */
    padding-right: 2% !important; /* 右側の余白を調整 */
}

/* bl_card2の配置調整 */
.bl_card2Unit .bl_card2 {
    width: 100% !important; /* 幅を100%に設定 */
    min-width: 0 !important; /* 最小幅制限を削除 */
    max-width: none !important; /* 最大幅制限を削除 */
    margin: 0 !important; /* 中央寄せのマージンを削除 */
}

/* レスポンシブ対応 - 画面サイズに応じて列数を調整 */
@media screen and (max-width: 1800px) {
    .bl_card2Unit {
        grid-template-columns: repeat(5, 1fr) !important; /* 5列表示 */
    }
}

@media screen and (max-width: 1500px) {
    .bl_card2Unit {
        grid-template-columns: repeat(4, 1fr) !important; /* 4列表示 */
    }
}

@media screen and (max-width: 1200px) {
    .bl_card2Unit {
        grid-template-columns: repeat(3, 1fr) !important; /* 3列表示 */
    }
}

@media screen and (max-width: 900px) {
    .bl_card2Unit {
        grid-template-columns: repeat(2, 1fr) !important; /* 2列表示 */
    }
}

@media screen and (max-width: 600px) {
    .bl_card2Unit {
        grid-template-columns: 1fr !important; /* 1列表示 */
        justify-content: center !important; /* 中央寄せ */
    }
}

/* CV概要セクションのレスポンシブ対応 */
.bl_overviewCV {
    display: flex;
    flex-wrap: nowrap;
    gap: 20px;
    justify-content: flex-start;
    align-items: flex-start;
    width: 100%;
}

.bl_overviewCV > li {
    flex: 0 0 auto;
    min-width: 0;
}

/* デスクトップ（1180px以上）: 3列レイアウト */
@media screen and (min-width: 1180px) {
    .bl_overviewCV {
        gap: 2%;
        justify-content: space-between;
        flex-wrap: nowrap;
    }

    .bl_overviewCV > li:nth-child(1),
    .bl_overviewCV > li:nth-child(2),
    .bl_overviewCV > li:nth-child(3) {
        flex: 0 0 32%;
        max-width: 32%;
    }
}

/* タブレット（768px以上1180px未満）: 2列レイアウト */
@media screen and (min-width: 768px) and (max-width: 1179px) {
    .bl_overviewCV {
        gap: 15px;
        flex-wrap: wrap;
    }

    .bl_overviewCV > li:nth-child(1),
    .bl_overviewCV > li:nth-child(2) {
        flex: 0 0 calc(50% - 7.5px);
        max-width: none;
    }

    .bl_overviewCV > li:nth-child(3) {
        flex: 0 0 100%;
        max-width: none;
    }
}

/* SPサイズ（768px未満）: 1列レイアウト */
@media screen and (max-width: 767px) {
    .bl_overviewCV {
        flex-direction: column;
        gap: 20px;
    }

    .bl_overviewCV > li {
        flex: 1;
        max-width: 100%;
    }
    
    /* 767px以下で項目と値のレイアウトを3行2列に戻す */
    .bl_detail_row {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        gap: 0;
    }
    
    .bl_detail_label {
        text-align: left;
        width: auto;
        flex: 1;
    }
    
    .bl_detail_value {
        text-align: right;
        width: auto;
        flex: 1;
    }
}

/* 続きを見るボタンの展開・収納機能 */
.bl_balloon_txt {
    max-height: 120px;
    overflow: hidden;
    transition: max-height 0.3s ease-in-out;
}

.bl_balloon_txt.expanded {
    max-height: none;
}

/* テーブル行の高さを固定 */
#keywordTableWrap .bl_vertTable tr {
    height: 40px; /* 1行の高さを40pxに固定 */
}

/* 追加行の表示・非表示制御 */
.additional-row {
    display: none;
}

.additional-row.show {
    display: table-row;
}

.el_moreBtn {
    transition: background-color 0.3s ease;
}

.el_moreBtn:hover {
    background-color: #e0e0e0;
}

.el_moreBtn.expanded {
    background-color: #132b88;
    color: #fff;
}

/* グラフのレスポンシブ対応 */
.bl_overviewCV canvas {
    width: 100% !important;
    height: auto !important;
    max-width: 100%;
}

/* bl_card1のレスポンシブ対応 - フルHDより大きい画面でmax-widthを拡大 */
@media screen and (min-width: 1921px) {
    .bl_card1 {
        max-width: 500px !important; /* フルHDより大きい画面でmax-widthを拡大 */
        /* margin: 0 auto !important; */
    }
}

@media screen and (min-width: 2560px) {
    .bl_card1 {
        max-width: 600px !important; /* 4K画面などでさらに拡大 */
        /* margin: 0 auto !important; */
    }
}

/* 月別レポート表の項目列幅調整 - フルHDの幅を維持しつつ段階的に調整 */
@media screen and (min-width: 1921px) {
    .bl_crossTable .bl_crossTable_mdSticky {
        max-width: 370px !important; /* フルHDの幅（370px）を維持 */
        min-width: 370px !important; /* フルHDの幅（370px）を維持 */
        width: 370px !important; /* 幅を370pxに固定 */
    }

    .bl_crossTable {
        table-layout: fixed !important; /* テーブルレイアウトを固定 */
        width: 100% !important;
    }

    .bl_crossTable th:not(.bl_crossTable_mdSticky),
    .bl_crossTable td {
        width: auto !important; /* 月別列の幅を自動調整 */
        min-width: 80px !important; /* 月別列の最小幅を確保 */
        max-width: 120px !important; /* 月別列の最大幅を制限 */
    }
}

@media screen and (min-width: 2560px) {
    .bl_crossTable .bl_crossTable_mdSticky {
        max-width: 450px !important; /* 4K画面で項目列の幅を段階的に拡大 */
        min-width: 400px !important; /* 4K画面で項目列の最小幅を段階的に拡大 */
        width: 400px !important; /* 4K画面で幅を400pxに設定 */
    }

    .bl_crossTable th:not(.bl_crossTable_mdSticky),
    .bl_crossTable td {
        min-width: 90px !important; /* 4K画面で月別列の最小幅を拡大 */
        max-width: 140px !important; /* 4K画面で月別列の最大幅を拡大 */
    }
}
