/*
 * GIS 통계 페이지의 최소 보조 레이어.
 *
 * 공통 레이아웃, 카드, 표, 차트와 반응형 처리는 horizon-v2.css와 gis.css가
 * 소유한다. 이 파일은 평평한 분야 이동과 통계 셸이 동적으로 만드는
 * 목차·더보기·맨위로만 보완한다.
 */

body.gis-stats-portal-page [hidden] {
  display: none !important;
}

body.gis-stats-portal-page *:focus-visible {
  outline: 2px solid var(--ring, var(--primary));
  outline-offset: var(--space-px, 1px);
}

/* 모바일의 가로 클리핑은 유지하되 sticky의 스크롤 기준은 뷰포트로 둔다. */
body.gis-body.gis-stats-portal-page .gis-content.gis-stats-agency-main {
  overflow-x: clip;
  overflow-y: visible;
}

/* 페이지 분야 이동은 하나의 평평한 행으로 유지한다. */
body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-nav {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: var(--space-3);
  max-width: 100%;
  padding: 0;
  overflow-x: auto;
  border: 0;
  border-radius: 0;
  background: transparent;
  scrollbar-width: none;
}

body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-nav::-webkit-scrollbar {
  display: none;
}

body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-nav a {
  flex: 0 0 auto;
  min-width: var(--control-h-s);
  min-height: var(--control-h-s);
  padding: var(--space-2) var(--space-1-5);
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--muted-foreground);
  box-shadow: none;
  white-space: nowrap;
}

body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-nav a:hover,
body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-nav a:focus-visible {
  color: var(--foreground);
  background: transparent;
}

body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-nav a[aria-current="page"] {
  color: var(--foreground);
  border-bottom-color: var(--primary);
  background: transparent;
  box-shadow: none;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-snapshot-scope {
  overflow-wrap: normal;
  word-break: keep-all;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-snapshot {
  border-top: 0;
}

/* 통계 찾기는 개요와 세부 페이지에서 같은 읽기 순서와 너비를 쓴다. */
body.gis-body.gis-stats-portal-page[data-stats-section] #statsHomeDirectory {
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  gap: var(--space-2);
}

body.gis-body.gis-stats-portal-page[data-stats-section] #statsHomeDirectory .gis-stats-agency-home-search-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-3);
}

body.gis-body.gis-stats-portal-page[data-stats-section] #statsHomeDirectory .gis-stats-agency-home-search-label {
  margin: 0;
  color: var(--foreground);
  font-size: var(--fs-h4);
  font-weight: 850;
  line-height: var(--lh-h4);
  white-space: nowrap;
}

body.gis-body.gis-stats-portal-page[data-stats-section] #statsHomeDirectory .gis-stats-agency-home-search-feedback {
  flex-wrap: wrap;
  justify-content: flex-end;
  max-width: min(45vw, 20rem);
  text-align: right;
}

body.gis-body.gis-stats-portal-page[data-stats-section] #statsHomeDirectory .gis-stats-agency-home-search {
  width: 100%;
  min-height: var(--control-h-l);
  background: var(--background);
}

body.gis-body.gis-stats-portal-page[data-stats-section] #statsHomeDirectory .gis-stats-agency-home-search input[type="search"]::-webkit-search-cancel-button {
  appearance: none;
  -webkit-appearance: none;
}

@media (max-width: 640px) {
  body.gis-body.gis-stats-portal-page[data-stats-section] #statsHomeDirectory .gis-stats-agency-home-search-row {
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--space-2) var(--space-3);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] #statsHomeDirectory .gis-stats-agency-home-search-feedback {
    grid-column: 2;
    justify-content: flex-start;
    max-width: 100%;
    text-align: left;
  }
}

/* 개요의 반복 항목은 카드 안에 다시 카드를 만들지 않고 한 셸 안에서 정렬한다. */
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-recommend {
  padding: 0 0 var(--space-6);
  border: 0;
  border-bottom: 1px solid var(--border);
  border-radius: 0;
  background: transparent;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-metric-strip strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-grid a {
  align-content: center;
  min-height: calc(var(--control-h-l) + var(--space-3));
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-grid a::before {
  content: none;
  display: none;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-index {
  align-self: start;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid a {
  align-content: center;
  min-height: calc(var(--control-h-l) + var(--space-8));
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid em {
  display: block;
  justify-self: start;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

/* 기간 및 분류 선택은 텍스트 묶음이 아니라 같은 높이의 명확한 컨트롤이다. */
.gis-stats-portal-page .gis-stats-trend-range {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: var(--space-0-5);
  padding: var(--space-0-5);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.gis-stats-portal-page .gis-stats-trend-range button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--control-h-s);
  padding: 0 var(--control-px-s);
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--muted-foreground);
  font: inherit;
  font-size: var(--control-font-s);
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
}

.gis-stats-portal-page .gis-stats-trend-range button:hover,
.gis-stats-portal-page .gis-stats-trend-range button:focus-visible {
  color: var(--foreground);
  background: var(--muted);
}

.gis-stats-portal-page .gis-stats-trend-range button.is-active,
.gis-stats-portal-page .gis-stats-trend-range button[aria-pressed="true"],
.gis-stats-portal-page .gis-stats-agency-segmented button[aria-pressed="true"] {
  color: var(--foreground);
  background: color-mix(in srgb, var(--primary) 14%, var(--surface));
}

.gis-stats-portal-page .gis-stats-agency-tabs button[aria-selected="true"] {
  border-color: color-mix(in srgb, var(--primary) 54%, var(--border));
  background: color-mix(in srgb, var(--primary) 12%, var(--card));
  color: var(--foreground);
}

body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head:has(.gis-stats-trend-range) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
}

/* 동적 섹션 목차: 데스크톱에서는 한 줄, 좁은 화면에서는 접이식 목록이다. */
.gis-stats-portal-page .gis-stats-agency-tab-panel.st-has-rail {
  display: block;
}

.gis-stats-portal-page .st-rail {
  position: sticky;
  top: calc(var(--main-header-height, var(--header-height, var(--control-h-l))) + var(--space-2));
  z-index: calc(var(--z-header, 50) - 1);
  margin: 0 0 var(--space-6);
}

.gis-stats-portal-page .gis-stats-agency-tab-panel.st-has-rail section.gis-stats-agency-panel {
  scroll-margin-top: var(
    --stats-scroll-offset,
    calc(
      var(--main-header-height, var(--header-height, var(--control-h-l)))
      + var(--space-2)
      + var(--control-h-m)
      + var(--space-0-5)
      + var(--space-4)
    )
  );
}

.gis-stats-portal-page .st-rail-inner {
  display: flex;
  align-items: stretch;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
}

.gis-stats-portal-page .st-rail-head {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: var(--space-2);
  min-height: var(--control-h-m);
  padding: 0 var(--space-3);
  border: 0;
  border-right: 1px solid var(--border);
  background: transparent;
  color: var(--muted-foreground);
  font: inherit;
  font-size: var(--fs-xs);
  font-weight: 700;
  cursor: default;
}

.gis-stats-portal-page .st-rail-head .material-symbols-outlined {
  font-size: var(--control-icon-s);
}

.gis-stats-portal-page .st-rail-head-count {
  color: var(--muted-foreground);
  font-variant-numeric: tabular-nums;
}

.gis-stats-portal-page .st-rail-head-chevron {
  display: none;
  margin-left: auto;
}

.gis-stats-portal-page .st-rail-list {
  display: flex;
  flex: 1 1 auto;
  align-items: stretch;
  min-width: 0;
  margin: 0;
  padding: 0;
  overflow-x: auto;
  list-style: none;
  scrollbar-width: none;
}

.gis-stats-portal-page .st-rail-list::-webkit-scrollbar {
  display: none;
}

.gis-stats-portal-page .st-rail-list > li {
  display: flex;
  flex: 0 0 auto;
}

.gis-stats-portal-page .st-rail-item {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-height: var(--control-h-m);
  padding: 0 var(--space-3);
  border: 0;
  background: transparent;
  color: var(--muted-foreground);
  font: inherit;
  font-size: var(--fs-xs);
  font-weight: 650;
  white-space: nowrap;
  cursor: pointer;
}

.gis-stats-portal-page .st-rail-item:hover,
.gis-stats-portal-page .st-rail-item:focus-visible {
  color: var(--foreground);
  background: var(--muted);
}

.gis-stats-portal-page .st-rail-item[aria-current="true"] {
  color: var(--foreground);
  background: var(--muted);
  box-shadow: inset 0 -2px 0 var(--primary);
}

.gis-stats-portal-page .st-rail-item-num {
  color: var(--muted-foreground);
  font-variant-numeric: tabular-nums;
}

.gis-stats-portal-page .st-rail-item[aria-current="true"] .st-rail-item-num {
  color: var(--primary);
}

.gis-stats-portal-page .gis-stats-agency-panel.st-current::before {
  display: none;
}

/* 광고는 완결된 핵심 분석 다음의 독립된 본문 띠로만 표시한다. */
.gis-stats-portal-page .gis-stats-ad {
  grid-column: 1 / -1;
  width: 100%;
  margin: var(--space-8) 0 0;
  padding: var(--space-3) 0 var(--space-2);
  border-top: 1px solid var(--border);
}

.gis-stats-portal-page .gis-stats-ad[hidden] {
  display: none !important;
}

.gis-stats-portal-page .gis-stats-ad__label {
  margin: 0 0 var(--space-2);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-stats-portal-page .gis-stats-ad__unit {
  box-sizing: border-box;
  display: block;
  width: 100%;
  min-height: 90px;
  margin-inline: auto;
  text-align: center;
}

.gis-stats-portal-page .gis-stats-ad__unit > div,
.gis-stats-portal-page .gis-stats-ad__unit > iframe {
  margin-inline: auto !important;
}

.gis-stats-portal-page .gis-stats-ad__unit > iframe {
  display: block;
}

@media (max-width: 500px) {
  .gis-stats-portal-page .gis-stats-ad__unit {
    min-height: 100px;
  }
}

/* 많은 패널은 기본 여섯 개만 노출하고 같은 위치에서 펼친다. */
.gis-stats-portal-page .st-card-collapsed {
  display: none !important;
}

.gis-stats-portal-page .st-disclosure-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  width: 100%;
  min-height: var(--control-h-m);
  margin-top: var(--space-3);
  padding: 0 var(--space-4);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  color: var(--muted-foreground);
  font: inherit;
  font-size: var(--fs-sm);
  font-weight: 700;
  cursor: pointer;
}

.gis-stats-portal-page .st-disclosure-toggle:hover,
.gis-stats-portal-page .st-disclosure-toggle:focus-visible {
  color: var(--foreground);
  background: var(--muted);
}

/* 맨 위로는 본문을 가리지 않는 작은 보조 동작으로 둔다. */
.gis-stats-portal-page .st-backtop {
  position: fixed;
  right: var(--space-4);
  bottom: var(--space-4);
  z-index: var(--z-toast, 180);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--control-h-m);
  height: var(--control-h-m);
  border: 1px solid var(--border);
  border-radius: var(--radius-full);
  background: var(--card);
  color: var(--foreground);
  box-shadow: var(--shadow-sm);
  opacity: 0;
  pointer-events: none;
  transform: translateY(var(--space-2));
  cursor: pointer;
  transition: opacity 150ms ease, transform 150ms ease;
}

.gis-stats-portal-page .st-backtop.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.gis-stats-portal-page .st-backtop .material-symbols-outlined {
  font-size: var(--control-icon-m);
}

@media (max-width: 960px) {
  .gis-stats-portal-page .st-rail-inner {
    display: block;
  }

  .gis-stats-portal-page .st-rail-head {
    width: 100%;
    border-right: 0;
    cursor: pointer;
  }

  .gis-stats-portal-page .st-rail-head-chevron {
    display: inline-flex;
  }

  .gis-stats-portal-page .st-rail-list {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    border-top: 1px solid var(--border);
  }

  .gis-stats-portal-page .st-rail-list > li {
    display: block;
  }

  .gis-stats-portal-page .st-rail-item {
    width: 100%;
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-portal-page .st-rail-list > li:last-child .st-rail-item {
    border-bottom: 0;
  }

  .gis-stats-portal-page .st-rail-item[aria-current="true"] {
    box-shadow: inset 2px 0 0 var(--primary);
  }

  .gis-stats-portal-page .st-rail.is-collapsed .st-rail-list {
    display: none;
  }
}

@media (max-width: 640px) {
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-nav {
    gap: var(--space-3);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-nav a {
    min-width: var(--control-h-m);
    min-height: var(--control-h-m);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head:has(.gis-stats-trend-range) {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "title meta"
      "controls controls";
    gap: var(--space-2);
    min-height: 0;
    padding-top: var(--space-2);
    padding-bottom: var(--space-2);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head:has(.gis-stats-trend-range) h3 {
    grid-area: title;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head:has(.gis-stats-trend-range) > span {
    grid-area: meta;
    justify-self: end;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head:has(.gis-stats-trend-range) .gis-stats-trend-range {
    grid-area: controls;
    justify-self: start;
  }

}

@media (prefers-reduced-motion: reduce) {
  .gis-stats-portal-page .st-backtop {
    transition: none;
  }
}
