/*
 * OneHealth Admin UI Redesign v5 stability layer
 * 목적: 기존 app.css의 .oh-stat-card { grid-column: span 2; }가 관리 화면 KPI grid를 1열처럼 밀어내는 문제를 차단하고,
 *       상태/바로가기 카드가 KPI 카드 규칙을 상속받아 글자가 겹치는 문제를 분리한다.
 */

/* 관리 화면 KPI 카드가 기존 대시보드용 grid-column을 상속받지 않도록 최종 차단 */
body .oh-admin-redesign .oh-admin-kpi-grid > *,
body .oh-admin-redesign .oh-kpi-grid > *,
body .oh-admin-redesign .oh-stat-grid > *,
body .oh-admin-redesign .oh-status-grid > *,
body .oh-admin-redesign .audit-summary-grid > *,
body .oh-admin-redesign .oa-summary-grid > *,
body .oh-admin-redesign .config-summary-grid > *,
body .oh-admin-redesign .summary-grid.oh-admin-kpi-grid > * {
    grid-column: auto !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
}

body .oh-admin-redesign .oh-admin-kpi-grid,
body .oh-admin-redesign .oh-kpi-grid,
body .oh-admin-redesign .oh-stat-grid,
body .oh-admin-redesign .audit-summary-grid,
body .oh-admin-redesign .config-summary-grid,
body .oh-admin-redesign .summary-grid.oh-admin-kpi-grid {
    width: 100% !important;
    max-width: none !important;
    display: grid !important;
    gap: .72rem !important;
    align-items: stretch !important;
}

/* 페이지별 KPI 권장 열 수 */
body .oh-admin-redesign.oh-admin-page-data-quality .oh-admin-kpi-grid,
body .oh-admin-redesign.oh-admin-page-data-linkage .oh-admin-kpi-grid,
body .oh-admin-redesign.oh-admin-page-dataset-linkage .oh-admin-kpi-grid,
body .oh-admin-redesign.oh-admin-page-link-hint-diagnostics .oh-admin-kpi-grid,
body .oh-admin-redesign.oh-admin-page-analysis-file-integrity .oh-admin-kpi-grid,
body .oh-admin-redesign.oh-admin-page-operational-review .oh-admin-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

body .oh-admin-redesign.oh-admin-page-openapi-requests .oa-summary-grid,
body .oh-admin-redesign.oh-admin-page-agency-links .oa-summary-grid,
body .oh-admin-redesign.oh-admin-page-operational-config-check .config-summary-grid,
body .oh-admin-redesign.oh-admin-page-operational-workboard .summary-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

body .oh-admin-redesign.oh-admin-page-api-clients .oa-summary-grid,
body .oh-admin-redesign.oh-admin-page-audit-logs .audit-summary-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

body .oh-admin-redesign.oh-admin-page-dashboard > .oh-grid:first-of-type {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
}

body .oh-admin-redesign.oh-admin-page-dashboard > .oh-grid:first-of-type > .oh-stat-card {
    grid-column: auto !important;
}

/* KPI 내부 텍스트 배치 안정화 */
body .oh-admin-redesign .oh-admin-kpi-grid > .oh-stat-card,
body .oh-admin-redesign .oh-admin-kpi-grid > .oh-kpi,
body .oh-admin-redesign .oa-summary-grid > .oh-kpi,
body .oh-admin-redesign .audit-summary-grid > .audit-kpi,
body .oh-admin-redesign .config-summary-grid > .config-summary-card,
body .oh-admin-redesign .summary-grid.oh-admin-kpi-grid > .summary-card,
body .oh-admin-redesign.oh-admin-page-dashboard > .oh-grid:first-of-type > .oh-stat-card {
    min-height: 62px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-rows: auto auto !important;
    gap: .16rem .55rem !important;
    align-items: center !important;
    overflow: hidden !important;
}

/* DataQuality 요약 카드: 기존 specificity guard가 oh-card-half를 강제로 6칸으로 만드는 문제 재차단 */
body .oh-admin-redesign.oh-admin-page-data-quality > section.oh-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
body .oh-admin-redesign.oh-admin-page-data-quality > section.oh-grid > .oh-card.oh-card-half {
    grid-column: auto !important;
}

/* 운영/관리 상태 카드와 바로가기 카드는 KPI가 아니므로 KPI grid 규칙에서 분리 */
body .oh-admin-redesign .oh-status-grid {
    width: 100% !important;
    display: grid !important;
    gap: .62rem !important;
    align-items: stretch !important;
}

body .oh-admin-redesign.oh-admin-page-dashboard .oh-status-grid,
body .oh-admin-redesign.oh-admin-page-operational-workboard .oh-status-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body .oh-admin-redesign .oh-status-card {
    grid-column: auto !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: .35rem !important;
    min-height: 76px !important;
    padding: .74rem .82rem !important;
    border: 1px solid #d6e6f8 !important;
    border-radius: 14px !important;
    background: #f8fbff !important;
    color: #08275d !important;
    text-decoration: none !important;
    overflow: hidden !important;
}

body .oh-admin-redesign .oh-status-card .oh-status-top {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: .55rem !important;
    min-width: 0 !important;
}

body .oh-admin-redesign .oh-status-card .oh-status-top strong,
body .oh-admin-redesign .oh-status-card strong {
    grid-column: auto !important;
    grid-row: auto !important;
    display: block !important;
    min-width: 0 !important;
    color: #061f48 !important;
    font-size: 1.02rem !important;
    line-height: 1.15 !important;
    font-weight: 950 !important;
    white-space: normal !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

body .oh-admin-redesign .oh-status-card .oh-badge,
body .oh-admin-redesign .oh-status-card span {
    grid-column: auto !important;
    grid-row: auto !important;
    flex: 0 0 auto !important;
}

body .oh-admin-redesign .oh-status-card .oh-muted,
body .oh-admin-redesign .oh-status-card small,
body .oh-admin-redesign .oh-status-card .oh-small {
    grid-column: auto !important;
    grid-row: auto !important;
    display: block !important;
    color: #55708f !important;
    font-size: .78rem !important;
    line-height: 1.25 !important;
    white-space: normal !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* 폼/카드가 화면을 반만 쓰고 멈추는 경우를 막기 위한 폭 보정 */
body .oh-admin-redesign > .oh-card,
body .oh-admin-redesign > .oh-grid,
body .oh-admin-redesign > .oh-admin-kpi-grid,
body .oh-admin-redesign > .oa-summary-card,
body .oh-admin-redesign > .audit-summary-grid,
body .oh-admin-redesign > .config-summary-grid,
body .oh-admin-redesign > section,
body .oh-admin-redesign > div:not(.oh-page-header) {
    max-width: 100% !important;
}

/* 특정 관리 페이지에서 큰 표/목록은 카드 내부 스크롤을 유지 */
body .oh-admin-redesign .oh-table-wrap,
body .oh-admin-redesign .data-table-wrapper,
body .oh-admin-redesign .oa-dataset-picker,
body .oh-admin-redesign .oh-scroll-region {
    overflow: auto !important;
    scrollbar-gutter: stable !important;
}

/* 한 화면에서 너무 긴 KPI가 생길 때 2줄까지만 표시 */
body .oh-admin-redesign .oh-stat-card small,
body .oh-admin-redesign .summary-card small,
body .oh-admin-redesign .audit-kpi small,
body .oh-admin-redesign .config-summary-card small,
body .oh-admin-redesign .oh-kpi small {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

@media (max-width: 1500px) {
    body .oh-admin-redesign.oh-admin-page-data-quality .oh-admin-kpi-grid,
    body .oh-admin-redesign.oh-admin-page-data-linkage .oh-admin-kpi-grid,
    body .oh-admin-redesign.oh-admin-page-dataset-linkage .oh-admin-kpi-grid,
    body .oh-admin-redesign.oh-admin-page-link-hint-diagnostics .oh-admin-kpi-grid,
    body .oh-admin-redesign.oh-admin-page-analysis-file-integrity .oh-admin-kpi-grid,
    body .oh-admin-redesign.oh-admin-page-operational-review .oh-admin-kpi-grid,
    body .oh-admin-redesign.oh-admin-page-dashboard > .oh-grid:first-of-type,
    body .oh-admin-redesign.oh-admin-page-api-clients .oa-summary-grid,
    body .oh-admin-redesign.oh-admin-page-audit-logs .audit-summary-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 1180px) {
    body .oh-admin-redesign .oh-admin-kpi-grid,
    body .oh-admin-redesign .oh-kpi-grid,
    body .oh-admin-redesign .oh-stat-grid,
    body .oh-admin-redesign .oh-status-grid,
    body .oh-admin-redesign .audit-summary-grid,
    body .oh-admin-redesign .oa-summary-grid,
    body .oh-admin-redesign .config-summary-grid,
    body .oh-admin-redesign .summary-grid.oh-admin-kpi-grid,
    body .oh-admin-redesign.oh-admin-page-data-quality > section.oh-grid {
        grid-template-columns: 1fr !important;
    }
}
