/** 공통 Tab 명역 */
.page__tab--btn ul li button {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-sizing: border-box;
    width: 100%;
    height: 60px;
    margin: 0;
    padding: 10px 20px;
    border: 0;
    font: inherit;
    color: inherit;
    text-align: left;
    cursor: pointer;
    transition: box-shadow .3s ease-in;
    background: #f6f6f6;
    border-radius: 10px 10px 10px 0;
}
.page__tab--btn ul li button:after {
    flex: 0 0 auto;
    content: '';
    display: block;
    background: url(/resources/openworks4/image/common/family_layout_spr_2.png) no-repeat -52px -42px;
    width: 24px;
    height: 24px;
}
.page__tab--btn ul li button span {
    align-items: center;
    line-height: 1.25;
    max-width: calc(100% - 24px);
    width: 100%;
}

/* 선택 / hover / focus (비활성 제외) */
.page__tab--btn:not(.is-mobile) ul li.on button,
.page__tab--btn:not(.is-mobile) ul li:not(.on) button:not(:disabled):hover,
.page__tab--btn:not(.is-mobile) ul li:not(.on) button:not(:disabled):focus {
    background: #1E0947;
    box-shadow: 2px 5px 15px 0.2px rgba(0, 69, 151, 0.2);
    color: #fff;
}
.page__tab--btn:not(.is-mobile) ul li.on button:after,
.page__tab--btn:not(.is-mobile) ul li:not(.on) button:not(:disabled):hover:after,
.page__tab--btn:not(.is-mobile) ul li:not(.on) button:not(:disabled):focus:after {
    background-position: 0 -42px;
}

/* 비활성 */
.page__tab--btn ul li button:disabled {
    background: #fcfcfc;
    color: #6b6b6b;
    cursor: not-allowed;
}
.page__tab--btn ul li button:disabled:after {
    opacity: .6;
    background: url(/resources/openworks4/image/common/disabled_x_icon.png) no-repeat 0 0;
    width: 24px;
    height: 24px;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

/** 예산 */
.bgt_dtls_head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 28px;
}

.bgt_dtls_head .bgt_dtls_info {
    flex: 1 1 auto;
    margin-bottom: 0;
}

.bgt_dtls_head > .btns {
    flex: 0 0 auto;
}
.bgt_dtls_info {
    margin: 0 0 28px;
    padding: 0;
}

.bgt_dtls_info .info_row {
    display: grid;
    grid-template-columns: 80px minmax(0, 1fr);
    column-gap: 12px;
    align-items: baseline;
    margin-top: 6px;
}

.bgt_dtls_info .info_row:first-child {
    margin-top: 0;
}

.bgt_dtls_info dt,
.bgt_dtls_info dd {
    margin: 0;
    line-height: 1.5;
}

.bgt_dtls_info dt {
    position: relative;
    padding-left: 12px;
    color: #5f55e7;
    white-space: nowrap;
}

.bgt_dtls_info dt::before {
    position: absolute;
    top: 50%;
    left: 0;
    width: 5px;
    height: 5px;
    background-color: #7a5ce6;
    content: "";
    transform: translateY(-50%);
}

.bgt_dtls_info dd {
    min-width: 0;
    color: #333;
}

.bgt_list_table,
.bgt_dtls_table {
    table-layout: fixed;
}

.bgt_list_table tfoot th,
.bgt_list_table tfoot td,
.stlm_list_table tfoot th,
.stlm_list_table tfoot td {
    border-top: 1px solid #222 !important;
    border-bottom: 1px solid #ccc !important;
    box-shadow: inset 0 1px 0 #222;
    background-color: #fff;
    font-weight: bold;
}

.bgt_list_table tfoot th,
.stlm_list_table tfoot th {
    text-align: center;
}

.bgt_table_scroll {
    overflow-x: auto;
    width: 100%;
}

.bgt_table_scroll:focus-visible {
    outline: 2px solid #5f55e7;
    outline-offset: 2px;
}

.bgt_table_scroll .bgt_cntn_table {
    min-width: 1180px;
}

.bgt_cntn_table thead th {
    padding: 10px 5px;
    line-height: 1.35;
    word-break: keep-all;
}

.bgt_cntn_table tbody td {
    padding: 12px 7px;
    vertical-align: middle;
    word-break: keep-all;
}

.bgt_cntn_table tbody td:nth-child(2) {
    text-align: left;
}

.bgt_cntn_table tbody td:nth-child(6) {
    font-weight: 600;
}

.bgt_cntn_table tbody td:nth-child(n+7) {
    padding-right: 4px;
    padding-left: 4px;
    font-size: 15px;
    white-space: nowrap;
    word-break: normal;
    font-variant-numeric: tabular-nums;
}

.bgt_dtls_table tbody th.subject_cell,
.bgt_dtls_table tbody td {
    padding: 6px 7px;
    font-size: 14px;
    line-height: 1.4;
    vertical-align: top;
    background-color: #fff;
}

.bgt_dtls_table tbody th.subject_cell {
    text-align: left !important;
    font-weight: normal !important;
    word-break: keep-all;
    overflow: visible;
}

.bgt_dtls_table tbody th.subject_cell:not(.depth_4) {
    border-right: 0 !important;
}

.bgt_dtls_table .subject_tail {
    padding: 0;
    border-left: 0 !important;
    border-right: 1px solid #ccc !important;
    background-color: #fff;
}

.bgt_dtls_table .depth_cell {
    padding: 0;
    border-top: 0 !important;
    border-right: 1px solid #ccc !important;
    background-color: #fff;
}

.bgt_dtls_table .no_bottom {
    border-bottom: 0 !important;
    border-right: 1px solid #ccc !important;
}

.bgt_dtls_table .depth_0,
.bgt_dtls_table .depth_1,
.bgt_dtls_table .depth_2,
.bgt_dtls_table .depth_3 {
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.bgt_dtls_table thead tr:last-child th:last-child {
    border-right: 1px solid #ccc;
}

.bgt_dtls_table tbody td.cpt_cell {
    text-align: left !important;
}

.bgt_dtls_table tfoot th,
.bgt_dtls_table tfoot td {
    border-top: 1px solid #222 !important;
    border-bottom: 1px solid #ccc !important;
    box-shadow: inset 0 1px 0 #222;
    background-color: #fff;
}

.bgt_dtls_table tfoot th {
    text-align: center;
}

/** 결산 */
.stlm_dtls_info {
    margin: 0 0 28px;
    padding: 0;
}

.stlm_dtls_info .info_row {
    display: grid;
    grid-template-columns: 80px minmax(0, 1fr);
    column-gap: 12px;
    align-items: baseline;
    margin-top: 6px;
}

.stlm_dtls_info .info_row:first-child {
    margin-top: 0;
}

.stlm_dtls_info dt,
.stlm_dtls_info dd {
    margin: 0;
    line-height: 1.5;
}

.stlm_dtls_info dt {
    position: relative;
    padding-left: 12px;
    color: #5f55e7;
    white-space: nowrap;
}

.stlm_dtls_info dt::before {
    position: absolute;
    top: 50%;
    left: 0;
    width: 5px;
    height: 5px;
    background-color: #7a5ce6;
    content: "";
    transform: translateY(-50%);
}

.stlm_dtls_info dd {
    min-width: 0;
    color: #333;
}

.stlm_dtls_table {
    table-layout: fixed;
}

.stlm_list_table {
    table-layout: fixed;
}

.stlm_table_scroll {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.stlm_cfwd_table {
    width: 100%;
    min-width: 1200px;
}

.stlm_cfwd_table thead th {
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
}

.stlm_cfwd_table tbody td.tr,
.stlm_cfwd_table tfoot td.tr {
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
    font-variant-numeric: tabular-nums;
}

.stlm_cfwd_table tfoot th,
.stlm_cfwd_table tfoot td {
    padding: 10px 5px;
    font-size: 14px;
    line-height: 1.4;
    vertical-align: middle;
}

.stlm_reason_cell {
    min-width: 0;
    text-align: center;
}

.stlm_reason_more {
    min-width: 56px;
    padding: 5px 10px;
    border: 0;
    border-radius: 8px;
    background-color: #efe5ff;
    color: #222;
    font-size: 13px;
    line-height: 1.4;
    cursor: pointer;
}

.stlm_reason_more:hover {
    background-color: #e4d5ff;
}

.stlm_reason_more:focus-visible,
.stlm_reason_dialog_close:focus-visible,
.stlm_reason_dialog_content:focus-visible {
    outline: 2px solid #1f5fbf;
    outline-offset: 2px;
}

.stlm_reason_dialog[hidden] {
    display: none;
}

.stlm_reason_dialog {
    position: fixed;
    z-index: 10000;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background-color: rgba(0, 0, 0, 0.55);
}

.stlm_reason_dialog_panel {
    width: 100%;
    max-width: 640px;
    max-height: calc(100vh - 40px);
    padding: 24px;
    overflow-y: auto;
    border-radius: 8px;
    background-color: #fff;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.3);
}

.stlm_reason_dialog_title {
    margin: 0 0 16px;
    font-size: 20px;
    line-height: 1.4;
}

.stlm_reason_dialog_content {
    max-height: 50vh;
    padding: 16px;
    overflow-y: auto;
    border: 1px solid #ccc;
    background-color: #fafafa;
    line-height: 1.6;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.stlm_reason_dialog_actions {
    margin-top: 20px;
    text-align: center;
}

.stlm_reason_dialog_open {
    overflow: hidden;
}

.stlm_list_table tbody td,
.stlm_list_table tbody th {
    padding: 6px 7px;
    font-size: 14px;
    line-height: 1.4;
    vertical-align: middle;
    background-color: #fff;
}

.stlm_list_table .tl {
    text-align: left !important;
}

.stlm_dtls_table tbody th.subject_cell,
.stlm_dtls_table tbody td {
    padding: 6px 7px;
    font-size: 14px;
    line-height: 1.4;
    vertical-align: top;
    background-color: #fff;
}

.stlm_dtls_table tbody th.subject_cell {
    text-align: left !important;
    font-weight: normal !important;
    word-break: keep-all;
    overflow: visible;
}

.stlm_dtls_table tbody th.subject_cell:not(.depth_3) {
    border-right: 0 !important;
}

.stlm_dtls_table .subject_tail {
    padding: 0;
    border-left: 0 !important;
    border-right: 1px solid #ccc !important;
    background-color: #fff;
}

.stlm_dtls_table .depth_cell {
    padding: 0;
    border-top: 0 !important;
    border-right: 1px solid #ccc !important;
    background-color: #fff;
}

.stlm_dtls_table .no_bottom {
    border-bottom: 0 !important;
    border-right: 1px solid #ccc !important;
}

.stlm_dtls_table .depth_0,
.stlm_dtls_table .depth_1,
.stlm_dtls_table .depth_2,
.stlm_dtls_table .depth_3 {
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.stlm_dtls_table thead tr:last-child th:last-child {
    border-right: 1px solid #ccc;
}

.stlm_dtls_table tfoot th,
.stlm_dtls_table tfoot td {
    border-top: 1px solid #222 !important;
    border-bottom: 1px solid #ccc !important;
    box-shadow: inset 0 1px 0 #222;
    background-color: #fff;
}

.stlm_dtls_table tfoot th {
    text-align: center;
}


.stlm_section_title {
    margin: 28px 0 8px;
    font-weight: bold;
}

.stlm_section_title + .tr {
    margin-top: -26px;
}

.prgr-list-search .bgt-search-list {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.prgr-list-search .bgt-search-list > li:first-child,
.prgr-list-search .bgt-search-list > .bgt-se-search-item,
.prgr-list-search .bgt-search-list > .bgt-school-search-item {
    grid-column: 1 / -1;
}

.prgr-list-search .bgt-search-list.has-bgt-odr > .bgt-se-search-item {
    grid-column: auto;
}

.prgr-list-search .bgt-search-list > .bgt-odr-search-item[hidden] {
    display: none !important;
}

@media screen and (max-width: 768px) {
    .prgr-list-search .bgt-search-list {
        grid-template-columns: minmax(0, 1fr);
    }

    .prgr-list-search .bgt-search-list > li {
        grid-column: 1 / -1;
    }
}
