/* 업무 화면 공통 기준: 모바일 600 / 폴드 840 / PC 1280 CSS px. */
.tx-unsupported-viewport { display: none; }
.tx-brand-mobile-title { display: none; }
/* 조건 제거는 배경 없이 작은 X만 표시하고 버튼의 터치 영역은 유지한다. */
.tx-filter-chip .tx-filter-chip__close { background: transparent; }
.tx-filter-chip__close > .material-symbols-outlined { font-size: 12px; line-height: 1; }
.tx-recent-disclosure > summary { display: none; }
.tx-recent-disclosure:not([open]) > nav { display: flex; }
.card-wrapper.search[data-search-mode="form"] .trx-search-chipbar {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
}

/* 메뉴의 이동은 transform 한 곳에서만 관리한다. */
#app-sidebar { translate: none; }
#app-sidebar .tx-sidebar-tree-wrap { min-height: 0; }
#app-sidebar > :first-child,
#app-sidebar > :last-child { flex-shrink: 0; }
/* 화면보다 좁은 상세 패널은 실제 본문 너비에 맞춰 열 수를 줄인다. */
.unified-modal .business-dialog-body { container-type: inline-size; }
@container (width < 840px) {
    .unified-modal .modal-detail-grid, .unified-modal .sapp-detail-grid,
    .unified-modal[data-business-modal] .profile-fields, .unified-modal[data-business-modal] .business-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@container (width < 600px) {
    .unified-modal .modal-detail-grid, .unified-modal .sapp-detail-grid,
    .unified-modal[data-business-modal] .profile-fields, .unified-modal[data-business-modal] .business-fields {
        grid-template-columns: minmax(0, 1fr);
    }
    .unified-modal .modal-detail-grid > *, .unified-modal .sapp-detail-grid > *,
    .unified-modal[data-business-modal] .profile-fields > *, .unified-modal[data-business-modal] .business-fields > * { grid-column: auto; min-width: 0; }
}

@media (width < 1280px) {
    #app-sidebar { width: min(320px, 90vw); max-width: 320px; }
    #app-sidebar [data-sidebar-close] { flex-shrink: 0; width: 44px; }
    #app-sidebar > div:first-child > a { min-width: 0; }
    #app-sidebar a, #app-sidebar summary, #app-sidebar button { min-height: 44px; }
    #app-sidebar .tx-sidebar-link span:not(.material-symbols-outlined),
    #app-sidebar .tx-sidebar-group-trigger span:not(.material-symbols-outlined),
    #app-sidebar .tx-sidebar-sublink span:not(.material-symbols-outlined) {
        min-width: 0; white-space: normal; overflow-wrap: anywhere; font-size: 12px !important;
    }
    #app-sidebar .tx-sidebar-children { margin-left: 6px; padding-left: 8px; }
    .card-wrapper.search [data-search-form] > .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    [data-business-actions] { flex-wrap: wrap; }
}

@media (width < 840px) {
    .tx-topbar-brand__name .tx-brand-name { display: none; }
    .tx-topbar-brand__name .tx-brand-mobile-title { display: inline; }
    .tx-topbar-brand__logo,
    #app-sidebar .tx-sidebar-brand > a > div:first-child { display: none; }
    /* 모바일 상단은 사이드 메뉴와 같은 다크 색상으로 표시한다. */
    .app-shell-body .tx-topbar { background: #292524; border-color: #44403c; color: #fafaf9; }
    .tx-topbar .tx-topbar-brand__name,
    .tx-topbar .tx-topbar-context__title,
    .tx-topbar .tx-topbar-back { color: #fafaf9; }
    .tx-topbar .tx-topbar-refresh,
    .tx-topbar .tx-topbar-menu { background: transparent; border: 0; border-radius: 0; color: #fafaf9; box-shadow: none; }
    .tx-topbar .tx-topbar-refresh:hover,
    .tx-topbar .tx-topbar-refresh:active,
    .tx-topbar .tx-topbar-menu:hover,
    .tx-topbar .tx-topbar-menu:active,
    .tx-topbar .tx-topbar-back:active { background: transparent; }
    .tx-topbar :is(.tx-topbar-menu, .tx-topbar-refresh, .tx-topbar-back):focus-visible { outline-color: #5eead4; }
    /* 다크 상단에서 아이콘만 표시하고 공지 유무는 아이콘 색으로 구분한다. */
    .tx-topbar .tx-topbar-menu > .material-symbols-outlined,
    .tx-topbar .tx-topbar-refresh > .material-symbols-outlined { font-size: 20px; color: inherit; }
    .tx-topbar .tx-topbar-menu[data-notification-toggle] > .material-symbols-outlined { color: #fafaf9; }
    .tx-topbar .tx-topbar-menu[data-notification-toggle].has-notifications > .material-symbols-outlined { color: #dc2626; }
    .tx-topbar .tx-topbar-menu [data-notification-dot],
    .tx-topbar .tx-topbar-refresh > span:not(.material-symbols-outlined) { display: none; }
    .tx-topbar .notification-panel { color: #292524; }
    .tx-auth-shell .tx-auth-mobile-hidden { display: none; }
    /* 로그인·인증 화면은 짧은 화면과 키보드 표시 중에도 문서 전체를 스크롤한다. */
    .tx-auth-shell > main { flex: 1 0 auto; min-width: 0; align-items: flex-start; }
    .tx-auth-shell .tx-auth-background { min-width: 0; gap: 24px; }
    .tx-auth-shell #auth-card { padding: 24px; }
    .tx-auth-shell #auth-card > div { height: auto; }
    .tx-auth-shell [data-auth-view] { height: auto; }
    .tx-auth-shell [data-auth-view] form > .mt-auto { margin-top: 24px; }
    .tx-auth-shell input:not([type="checkbox"]) { min-width: 0; font-size: 16px; }
    .tx-auth-shell #twofa-digit-container { gap: 6px; }
    .tx-auth-shell #twofa-digit-container input { flex: 1; width: 0; }
    /* 적용 조건은 한 행에 이름·값·제거 버튼을 배치한 목록으로 표시한다. */
    .card-wrapper.search div:has(> [data-filter-chip-list]),
    .card-wrapper.search div:has(> div > [data-filter-chip-list]),
    .card-wrapper.search[data-search-mode="form"] .trx-search-chipbar {
        display: flex; flex-direction: column; align-items: stretch; gap: 12px;
    }
    [data-filter-chip-list], [data-ops-filter-chips] {
        display: flex; flex-direction: column; align-items: stretch; gap: 0; width: 100%;
    }
    [data-filter-chip-list]:empty, [data-ops-filter-chips]:empty { display: none; }
    :is([data-filter-chip-list], [data-ops-filter-chips]) .tx-filter-chip {
        display: grid; grid-template-columns: minmax(0, 6rem) minmax(0, 1fr) 44px;
        align-items: center; gap: 8px; min-height: 44px; width: 100%; padding: 4px 0;
        border: 0; border-bottom: 1px solid #e7e5e4; border-radius: 0;
        background: transparent; box-shadow: none; transform: none;
    }
    :is([data-filter-chip-list], [data-ops-filter-chips]) .tx-filter-chip__label,
    :is([data-filter-chip-list], [data-ops-filter-chips]) .tx-filter-chip__value {
        min-width: 0; white-space: normal; overflow-wrap: anywhere; line-height: 1.5;
    }
    :is([data-filter-chip-list], [data-ops-filter-chips]) .tx-filter-chip__close {
        width: 44px; height: 44px; opacity: 1; transform: none;
    }
    /* 조건 목록 아래에 초기화·표시 개수와 검색을 같은 높이로 배치한다. */
    .card-wrapper.search div:has(> .search-submit-btn) {
        display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        align-items: stretch; gap: 8px; width: 100%;
    }
    .card-wrapper.search div:has(> .search-submit-btn) > .tx-inline-field {
        display: flex; min-width: 0; height: 44px; padding: 0 4px; gap: 4px;
    }
    .card-wrapper.search .tx-inline-field:has(.search-reset-btn) .search-reset-btn {
        width: 44px; height: 44px; flex-shrink: 0;
    }
    .card-wrapper.search .tx-inline-field:has(.search-reset-btn) .tx-select-wrap {
        flex: 1; min-width: 0;
    }
    .card-wrapper.search .tx-inline-field:has(.search-reset-btn) :is(.tx-select-trigger, select) {
        width: 100%; min-height: 44px;
    }
    .card-wrapper.search .search-submit-btn { width: 100%; min-width: 0; height: 44px; }
    /* 모바일·폴드에서는 Excel 다운로드 메뉴를 제공하지 않는다. */
    [data-type="xlsx"] { display: none !important; }
    /* 지시어는 표시만 제어한다. 값·기본 조건·검색 계약은 유지한다. */
    [data-mobile-search="hide"] { display: none !important; }
    .card-wrapper.search [data-search-form] > .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .card-wrapper.search [data-search-form] > .grid > * { min-width: 0; }
    .tx-table-wrap { max-width: 100%; overflow-x: auto; }
    .tx-table thead, .tx-table th, .tx-table td,
    [data-sticky-table] thead, [data-sticky-table] th, [data-sticky-table] td {
        position: static !important; left: auto !important; right: auto !important;
    }
    .tx-sticky-col-last, .tx-table-sticky-left, .tx-table-sticky-right { box-shadow: none !important; }
    .tx-table.tx-table--sticky-head > thead { position: relative !important; }
    .tx-pagination .num > :not([aria-current="page"]):not(.active):not(.is-active) { display: none; }
    .tx-page-btn { min-width: 44px; min-height: 44px; }
    .tx-recent-disclosure > summary { display: list-item; padding: 8px 0; font-size: 14px; cursor: pointer; }
    .tx-recent-disclosure:not([open]) > nav { display: none; }
    #global-side-panel > .modal-wrapper,
    dialog[data-business-modal].unified-modal:not(.business-dialog--confirm),
    dialog[data-business-modal].modal-dialog:not(.business-dialog--confirm) {
        inset: 0; width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh;
        margin: 0; border-radius: 0;
    }
    dialog[data-business-modal] .business-dialog-header,
    dialog[data-business-modal] .business-dialog-footer { flex-shrink: 0; }
    dialog[data-business-modal] .business-dialog-footer { flex-wrap: wrap; }
    dialog[data-business-modal] .business-dialog-close { width: 44px; height: 44px; }
    .unified-modal .modal-tab-list { overflow-x: auto; }
}

@media (width < 600px) {
    .card-wrapper.search [data-search-form] > .grid { grid-template-columns: minmax(0, 1fr); }
    .card-wrapper.search [data-search-form] > .grid > * { grid-column: auto; }
    .card-wrapper.search { padding: 16px 12px; }
    .tx-topbar-brand__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .tx-topbar-refresh span:not(.material-symbols-outlined) { display: none; }
    .unified-modal .modal-detail-grid > *, .unified-modal .profile-fields > * { min-width: 0; grid-column: auto; }
}

@media screen and (width < 320px) {
    body.app-shell-body:has(> .tx-unsupported-viewport) > :not(.tx-unsupported-viewport):not(script):not(template) { display: none !important; }
    .tx-unsupported-viewport {
        display: flex; position: fixed; inset: 0; align-items: center; justify-content: center;
        padding: 24px; background: #fff; color: #292524; text-align: center; overflow: auto;
    }
}
