@import url('/static/css/block-site-header.css?v=20260810nav25');

.gis-body {
  background: var(--background);
}

:root[data-hz-boot="1"] body.gis-body .skip-link,
:root[data-hz-boot="1"] body.gis-body .gis-page {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.gis-page {
  --gis-sidebar-width: 220px;
  --sidebar-width: var(--gis-sidebar-width);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

@media (min-width: 1025px) {
  .gis-page {
    --content-max: calc(var(--space-12) * 25);
  }
}

.gis-body .gis-page {
  --content-max: 100%;
  --gis-main-columns: 1fr;
  /* Default mobile column layout */
}

@media (min-width: 1025px) {
  .gis-body .gis-page {
    /* Values will be overridden in HTML or specific page CSS if needed */
    --gis-main-columns: 320px 1fr 340px;
  }
}

body.gis-portal .gis-page {
  --content-max: calc(var(--space-12) * 25);
}

@media (max-width: 1024px) {

  .gis-body .input,
  .gis-body .select,
  .gis-body textarea,
  .gis-body input[type="search"],
  .gis-body input[type="text"],
  .gis-body input[type="email"],
  .gis-body input[type="number"],
  .gis-body input[type="password"] {
    font-size: 16px !important;
    /* Prevent iOS zoom-on-focus */
  }

  .gis-body .gis-page [style*="grid-template-columns"] {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: 1fr !important;
  }

  .gis-hero {
    flex-direction: column;
    gap: var(--space-2);
  }

  .gis-hero-title h1 {
    font-size: 1.75rem;
  }

  body.gis-portal .input-label {
    font-size: var(--fs-xs);
  }

  body.gis-hub .content,
  body.gis-admin .content {
    max-width: 100%;
  }

  /* Toolbar */
  .gis-toolbar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--space-3);
    flex-wrap: wrap;
    margin-bottom: var(--space-3);
  }

  .gis-toolbar .input-group {
    flex: 1 1 calc(var(--space-12) * 5);
    min-width: min(var(--sidebar-width), 100%);
  }

.gis-toolbar-actions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  justify-content: flex-end;
}

  @media (max-width: 640px) {
    .gis-toolbar {
      flex-direction: column;
      align-items: stretch;
    }

    .gis-toolbar .input-group {
      min-width: 0;
    }

    .gis-toolbar-actions {
      justify-content: flex-start;
    }
  }
}

@media (max-width: 640px) {
  body.gis-body .block-app-header .nav-right {
    flex: 1 1 0;
    max-width: calc(100vw - 6rem);
    overflow: visible;
  }

  body.gis-body .block-app-header .nav-right > .pc-notifications-widget {
    display: inline-flex;
  }

  body.gis-body .block-app-header .block-app-search-slot {
    flex: 1 1 0;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  body.gis-body .block-app-header .block-app-search .input {
    min-width: 0;
  }
}

body.gis-body > .toast-viewport {
  top: calc(var(--header-height) + var(--space-3));
  bottom: auto;
}

.gis-stack {
  display: grid;
  gap: var(--space-3);
}

.gis-divider {
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: var(--space-px) solid var(--border);
}

.gis-nowrap {
  white-space: nowrap;
}

.text-mono {
  font-family: var(--font-mono);
  word-break: break-all;
}

.gis-input-row {
  display: flex;
  align-items: flex-end;
  gap: var(--space-2);
  flex-wrap: nowrap;
  min-width: 0;
}

.gis-input-row .input {
  flex: 1 1 auto;
  min-width: 0;
}

.gis-input-row .select-wrapper {
  flex: 1 1 auto;
  min-width: 0;
}

.gis-input-row .btn {
  flex: 0 0 auto;
  white-space: nowrap;
  align-self: stretch;
}

.gis-input-row .btn.btn-sm {
  min-height: var(--control-h-s);
}

.gis-form-actions {
  display: flex;
  align-items: center;
  align-self: end;
  justify-content: flex-end;
  gap: var(--space-2);
  min-height: var(--control-h);
}

.gis-form-actions .btn {
  white-space: nowrap;
}

@media (max-width: 640px) {
  .gis-form-actions {
    justify-content: stretch;
  }

  .gis-form-actions .btn {
    width: 100%;
  }
}

.gis-actions-end {
  justify-content: flex-end;
}

.gis-parcel-scope {
  display: flex;
  align-items: center;
}

.gis-parcel-scope-select {
  width: min(100%, 22rem);
}

.gis-block-hint {
  margin-bottom: var(--space-2);
}

.gis-portal-buildings-editor-card .card-content {
  position: relative;
}

.gis-create-template-skeleton[hidden] {
  display: none !important;
}

.gis-create-template-skeleton {
  position: absolute;
  inset: 0;
  z-index: 6;
  display: grid;
  align-content: start;
  gap: var(--space-3);
  padding: var(--space-4);
  background: var(--card);
  pointer-events: all;
}

.gis-create-template-skeleton-progress,
.gis-create-template-skeleton-title,
.gis-create-template-skeleton-grid span,
.gis-create-template-skeleton-actions span {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--muted);
}

.gis-create-template-skeleton-progress::after,
.gis-create-template-skeleton-title::after,
.gis-create-template-skeleton-grid span::after,
.gis-create-template-skeleton-actions span::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, var(--surface), transparent);
  transform: translateX(-100%);
  animation: gis-create-template-skeleton 1.15s ease-in-out infinite;
}

.gis-create-template-skeleton-progress {
  height: var(--space-2);
  border-radius: var(--radius-full);
}

.gis-create-template-skeleton-section {
  display: grid;
  gap: var(--space-2);
}

.gis-create-template-skeleton-title {
  width: min(calc(var(--space-12) * 3), 38%);
  height: var(--space-4);
}

.gis-create-template-skeleton-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(calc(var(--space-10) * 7), 1fr));
  gap: var(--space-3);
}

.gis-create-template-skeleton-grid--compact {
  grid-template-columns: repeat(auto-fit, minmax(calc(var(--space-12) * 5), 1fr));
}

.gis-create-template-skeleton-grid span {
  min-height: calc(var(--control-h-l) + var(--space-6));
}

.gis-create-template-skeleton-actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-2);
  margin-top: var(--space-1);
}

.gis-create-template-skeleton-actions span {
  width: calc(var(--space-12) * 2);
  height: var(--control-h-m);
}

.gis-portal-buildings-editor-card.is-city-recommendation-loading .card-content > :not(.gis-create-template-skeleton) {
  opacity: 0;
  pointer-events: none;
}

.gis-portal-buildings-editor-card.is-city-recommendation-loading .card-content {
  overflow: hidden;
}

@keyframes gis-create-template-skeleton {
  from {
    transform: translateX(-100%);
  }

  to {
    transform: translateX(100%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .gis-create-template-skeleton-progress::after,
  .gis-create-template-skeleton-title::after,
  .gis-create-template-skeleton-grid span::after,
  .gis-create-template-skeleton-actions span::after {
    animation: none;
  }
}

.gis-block-note {
  margin-top: var(--space-2);
}

.gis-panel-mt-2 {
  margin-top: var(--space-2);
}

.gis-panel-mb-2 {
  margin-bottom: var(--space-2);
}

.gis-grid-auto-fit-280 {
  grid-template-columns: repeat(auto-fit, minmax(calc(var(--space-10) * 7), 1fr));
}

.gis-grid-auto-fit-240 {
  grid-template-columns: repeat(auto-fit, minmax(calc(var(--space-12) * 5), 1fr));
}

.gis-grid-auto-fit-220 {
  grid-template-columns: repeat(
    auto-fit,
    minmax(calc(var(--space-12) * 4 + var(--space-2) * 3 + var(--space-1)), 1fr)
  );
}

.gis-grid-auto-fit-200 {
  grid-template-columns: repeat(auto-fit, minmax(calc(var(--space-10) * 5), 1fr));
}

.gis-grid-auto-fill-180 {
  grid-template-columns: repeat(
    auto-fill,
    minmax(calc(var(--space-12) * 3 + var(--space-2) * 4 + var(--space-1)), 1fr)
  );
}

.gis-grid-auto-fit-220-end {
  grid-template-columns: repeat(
    auto-fit,
    minmax(calc(var(--space-12) * 4 + var(--space-2) * 3 + var(--space-1)), 1fr)
  );
  align-items: end;
}

.gis-scroll-panel-lg {
  margin-top: var(--space-2);
  max-height: calc(var(--space-10) * 14);
  overflow: auto;
}

.gis-scroll-panel-md {
  margin-top: var(--space-2);
  max-height: calc(var(--space-10) * 9);
  overflow: auto;
}

.gis-grow-fixed {
  flex: 0 0 auto;
}

.gis-grow-200 {
  flex: 1 1 calc(var(--space-10) * 5);
}

.gis-inline-summary {
  min-height: var(--space-8);
  display: flex;
  align-items: center;
}

.gis-search-empty {
  padding: var(--space-2) var(--space-3);
}

.gis-u-hidden {
  display: none;
}

.gis-u-m-0 {
  margin: 0;
}

.gis-u-mt-1 {
  margin-top: var(--space-1);
}

.gis-u-mt-2 {
  margin-top: var(--space-2);
}

.gis-u-mt-3 {
  margin-top: var(--space-3);
}

.gis-u-mt-4 {
  margin-top: var(--space-4);
}

.gis-u-mt-2px {
  margin-top: calc(var(--space-px) * 2);
}

.gis-u-mt-4px {
  margin-top: var(--space-1);
}

.gis-u-mt-6px {
  margin-top: calc(var(--space-1) + var(--space-px) * 2);
}

.gis-u-mb-1 {
  margin-bottom: var(--space-1);
}

.gis-u-mb-2 {
  margin-bottom: var(--space-2);
}

.gis-u-mb-3 {
  margin-bottom: var(--space-3);
}

.gis-u-ml-2 {
  margin-left: var(--space-2);
}

.gis-u-pt-0 {
  padding-top: 0;
}

.gis-u-pre-wrap {
  white-space: pre-wrap;
}

.gis-u-justify-end {
  justify-content: flex-end;
}

.gis-u-justify-start {
  justify-content: flex-start;
}

.gis-u-self-end {
  align-self: end;
}

.gis-u-nowrap {
  white-space: nowrap;
}

.gis-u-text-center {
  text-align: center;
}

.gis-u-text-right-nowrap {
  text-align: right;
  white-space: nowrap;
}

.gis-u-w-0 {
  width: 0;
}

.gis-u-w-100 {
  width: calc(var(--space-10) * 2 + var(--space-5));
}

.gis-u-w-120 {
  width: calc(var(--space-10) * 3);
}

.gis-u-w-120-center {
  width: calc(var(--space-10) * 3);
  text-align: center;
}

.gis-u-w-160 {
  width: calc(var(--space-10) * 4);
}

.gis-u-w-280 {
  width: calc(var(--space-10) * 7);
}

.gis-u-w-300 {
  width: calc(var(--space-10) * 7 + var(--space-5));
}

.gis-u-minw-980 {
  min-width: calc(var(--space-10) * 24 + var(--space-5));
}

.gis-u-minw-1120 {
  min-width: calc(var(--space-10) * 28);
}

.gis-u-input-min-128 {
  min-width: calc(var(--space-12) * 2 + var(--space-8));
}

.gis-u-input-max-152 {
  max-width: calc(var(--space-10) * 4 - var(--space-2));
}

.gis-u-bg-muted {
  background: var(--muted);
}

.gis-u-scroll-120 {
  max-height: calc(var(--space-10) * 3);
  overflow: auto;
}

.gis-u-scroll-240 {
  max-height: calc(var(--space-12) * 5);
  overflow: auto;
}

.gis-u-scroll-300 {
  max-height: calc(var(--space-12) * 6 + var(--space-3));
  overflow: auto;
}

.gis-u-scroll-560 {
  max-height: calc(var(--space-10) * 14);
  overflow: auto;
}

.gis-u-scroll-640 {
  max-height: calc(var(--space-10) * 16);
  overflow: auto;
}

.gis-u-scroll-800 {
  max-height: calc(var(--space-10) * 20);
  overflow: auto;
}

.gis-u-scroll-vh-400 {
  max-height: calc(100vh - (var(--space-10) * 10));
  overflow-y: auto;
}

.gis-u-overflow-auto {
  overflow: auto;
}

.gis-u-minh-600 {
  min-height: calc(var(--space-10) * 15);
}

.gis-u-minh-640 {
  min-height: calc(var(--space-10) * 16);
}

.gis-u-minh-640-col {
  min-height: calc(var(--space-10) * 16);
  display: flex;
  flex-direction: column;
}

.gis-u-icon-16 {
  font-size: var(--space-4);
}

.gis-u-icon-18 {
  font-size: calc(var(--space-4) + var(--space-px) * 2);
}

.gis-thin-x-icon,
.gis-chip-remove-icon,
.gis-input-clear-btn .material-symbols-outlined,
.gis-input-clear-btn .hz-icon {
  position: relative;
  display: inline-block;
  flex: 0 0 0.875rem;
  width: 0.875rem;
  height: 0.875rem;
  font-size: 0 !important;
  line-height: 1;
  overflow: visible !important;
  text-indent: 0 !important;
  white-space: normal;
  background: transparent !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}

.gis-thin-x-icon::before,
.gis-thin-x-icon::after,
.gis-chip-remove-icon::before,
.gis-chip-remove-icon::after,
.gis-input-clear-btn .material-symbols-outlined::before,
.gis-input-clear-btn .material-symbols-outlined::after,
.gis-input-clear-btn .hz-icon::before,
.gis-input-clear-btn .hz-icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0.625rem;
  height: var(--space-px);
  border-radius: var(--radius-full);
  background: currentColor;
  opacity: 0.78;
  transform-origin: center;
}

.gis-thin-x-icon::before,
.gis-chip-remove-icon::before,
.gis-input-clear-btn .material-symbols-outlined::before,
.gis-input-clear-btn .hz-icon::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.gis-thin-x-icon::after,
.gis-chip-remove-icon::after,
.gis-input-clear-btn .material-symbols-outlined::after,
.gis-input-clear-btn .hz-icon::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.gis-removable-chip {
  gap: var(--space-1);
  padding-inline: var(--space-2) var(--space-1-5);
}

.gis-removable-chip .gis-chip-remove-icon {
  margin-inline-start: var(--space-0-5);
  color: color-mix(in srgb, currentColor 74%, transparent);
}

.gis-removable-chip:hover .gis-chip-remove-icon,
.gis-removable-chip:focus-visible .gis-chip-remove-icon,
.gis-input-clear-btn:hover .material-symbols-outlined,
.gis-input-clear-btn:hover .hz-icon,
.gis-input-clear-btn:focus-visible .material-symbols-outlined,
.gis-input-clear-btn:focus-visible .hz-icon {
  color: var(--foreground);
}

.gis-u-stack-start-2px {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(var(--space-px) * 2);
}

.gis-u-stack-end-2px {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: calc(var(--space-px) * 2);
}

.gis-u-btn-start {
  justify-content: flex-start;
}

.gis-u-btn-start-full {
  width: 100%;
  justify-content: flex-start;
  margin-bottom: calc(var(--space-1) + var(--space-px) * 2);
}

.gis-u-line-kind-meta {
  margin-left: auto;
}

.gis-u-tree-indent {
  padding-left: var(--gis-tree-indent, 0);
}

.gis-u-tree-search-item {
  width: 100%;
  justify-content: flex-start;
  margin-bottom: calc(var(--space-1) + var(--space-px) * 2);
  padding-left: var(--gis-tree-search-indent, 0);
}

.gis-u-logo-preview {
  width: var(--space-9);
  height: var(--space-9);
  border-radius: var(--radius-2);
  object-fit: contain;
  background: var(--panel);
}

.gis-u-logo-thumb {
  width: var(--space-7);
  height: var(--space-7);
  border-radius: var(--radius-2);
  object-fit: contain;
  background: var(--panel);
}

.gis-grid-auto-fit-160 {
  grid-template-columns: repeat(auto-fit, minmax(calc(var(--space-10) * 4), 1fr));
}

.gis-grid-auto-fit-180 {
  grid-template-columns: repeat(
    auto-fit,
    minmax(calc(var(--space-12) * 3 + var(--space-2) * 4 + var(--space-1)), 1fr)
  );
}

.gis-grid-auto-fit-320 {
  grid-template-columns: repeat(auto-fit, minmax(calc(var(--space-10) * 8), 1fr));
}

.gis-grid-cols-main-auto {
  grid-template-columns: 1fr auto;
}

.gis-grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gis-grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gis-grid-minmax-main-side-end {
  grid-template-columns: minmax(0, 1fr) minmax(calc(var(--space-10) * 4), calc(var(--space-12) * 4 + var(--space-2) * 3 + var(--space-1)));
  align-items: end;
}

.gis-grid-minmax-220-auto {
  grid-template-columns: minmax(calc(var(--space-12) * 4 + var(--space-2) * 3 + var(--space-1)), 1fr) auto;
}

.gis-grid-minmax-180-auto {
  grid-template-columns: minmax(calc(var(--space-12) * 3 + var(--space-2) * 4 + var(--space-1)), 1fr) auto;
}

.gis-grid-split-320 {
  display: grid;
  grid-template-columns: minmax(calc(var(--space-10) * 8), calc(var(--space-10) * 10 + var(--space-5))) minmax(0, 1fr);
  gap: var(--space-3);
}

.gis-grid-split-360 {
  display: grid;
  grid-template-columns: calc(var(--space-12) * 7 + var(--space-6)) minmax(0, 1fr);
  gap: var(--space-3);
}

.gis-grid-main-layout {
  display: grid;
  grid-template-columns: var(--gis-main-columns);
  gap: var(--space-4);
  align-items: start;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.gis-grid-main-layout-tight {
  display: grid;
  grid-template-columns: var(--gis-main-columns);
  gap: var(--space-3);
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.gis-grid-main-layout > *,
.gis-grid-main-layout-tight > * {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 1024px) {
  .gis-grid-auto-fit-280,
  .gis-grid-auto-fit-240,
  .gis-grid-auto-fit-220,
  .gis-grid-auto-fit-200,
  .gis-grid-auto-fill-180,
  .gis-grid-auto-fit-220-end,
  .gis-grid-auto-fit-160,
  .gis-grid-auto-fit-180,
  .gis-grid-auto-fit-320,
  .gis-grid-cols-main-auto,
  .gis-grid-minmax-main-side-end,
  .gis-grid-minmax-220-auto,
  .gis-grid-minmax-180-auto,
  .gis-grid-split-320,
  .gis-grid-split-360,
  .gis-grid-main-layout,
  .gis-grid-main-layout-tight,
  .gis-grid-cols-2,
  .gis-grid-cols-3 {
    grid-template-columns: 1fr;
  }

}

@media (max-width: 640px) {
  .gis-admin-page .gis-u-minh-600,
  .gis-admin-page .gis-u-minh-640,
  .gis-admin-page .gis-u-minh-640-col {
    min-height: 0;
  }
}

.gis-input-label-row {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  min-height: calc(var(--fs-xs) * var(--lh-xs));
}

.gis-input-label-row .input-label {
  margin-bottom: 0;
}

.gis-tip {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.gis-tip-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: none;
  color: var(--foreground);
  padding: 0;
  margin: 0;
  line-height: 1;
  cursor: pointer;
  opacity: 0.9;
}

.gis-tip-trigger .material-symbols-outlined {
  font-size: var(--fs-body);
  line-height: 1;
}

.gis-tip-trigger:hover,
.gis-tip-trigger:focus-visible {
  color: var(--primary);
  opacity: 1;
}

.gis-tip-trigger:focus-visible {
  outline: var(--space-px) solid var(--primary);
  outline-offset: var(--space-1);
}

.gis-tip-popup {
  position: absolute;
  left: 0;
  top: calc(100% + var(--space-1));
  z-index: var(--z-tooltip);
  min-width: calc(var(--space-12) * 5);
  max-width: min(92vw, calc(var(--space-12) * 7));
  padding: var(--space-2);
  border: var(--space-px) solid var(--border-strong);
  border-radius: var(--radius-md);
  background: var(--card);
  color: var(--card-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  white-space: normal;
  box-shadow: var(--shadow-lg);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(var(--space-1));
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
}

.gis-tip:hover .gis-tip-popup,
.gis-tip:focus-within .gis-tip-popup,
.gis-tip.is-pinned .gis-tip-popup {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.gis-tip.is-pinned .gis-tip-trigger {
  color: var(--primary);
  opacity: 1;
}

.gis-participant-col .gis-search-dropdown {
  margin-top: var(--space-1);
}

.gis-participant-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.gis-participant-head .input-label {
  margin-bottom: 0;
}

.gis-participant-head .btn {
  flex: 0 0 auto;
}

.gis-participant-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1);
  margin-top: var(--space-1);
}

.gis-participant-token {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  min-width: 0;
  gap: var(--space-1);
  flex-wrap: wrap;
}

.gis-participant-token .badge {
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gis-participant-token-actions {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  flex: 0 0 auto;
}

.gis-participant-empty {
  margin-top: var(--space-1);
}

.gis-state-option[hidden] {
  display: none !important;
}

.gis-state-option {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
  max-width: 100%;
}

.gis-state-option--inline {
  margin-top: var(--space-2);
}

.gis-state-option--wide {
  grid-column: 1 / -1;
}

.gis-state-option-row {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  min-width: 0;
  max-width: 100%;
  padding: var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--muted), transparent 68%);
  cursor: pointer;
  transition: border-color 160ms ease, background-color 160ms ease;
}

.gis-state-option-row .checkbox {
  flex: 0 0 auto;
  margin-top: 2px;
}

.gis-state-option-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.gis-state-option-title {
  display: block;
  min-width: 0;
  max-width: 100%;
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 600;
  line-height: var(--lh-sm);
  overflow-wrap: anywhere;
  white-space: normal;
}

.gis-state-option-description {
  display: block;
  min-width: 0;
  max-width: 100%;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  overflow-wrap: anywhere;
  white-space: normal;
  word-break: break-word;
}

.gis-state-option:has(.checkbox:checked) .gis-state-option-row {
  border-color: color-mix(in srgb, var(--primary), var(--border) 35%);
  background: color-mix(in srgb, var(--primary), transparent 88%);
}

.gis-state-option:has(.checkbox:focus-visible) .gis-state-option-row {
  outline: 2px solid color-mix(in srgb, var(--primary), transparent 30%);
  outline-offset: 2px;
}

.gis-state-option:has(.checkbox:disabled) .gis-state-option-row {
  cursor: default;
  opacity: 0.72;
}

.gis-nav-group--global {
  display: none;
}

@media (min-width: 1025px) {
  .gis-nav-group--global {
    display: none;
  }
}

/* Layout */
.main-layout.gis-layout {
  display: flex;
  min-height: calc(100vh - var(--header-height));
  position: relative;
  width: 100%;
}

@media (max-width: 1024px) {
  .main-layout.gis-layout {
    display: flex !important;
    flex-direction: column !important;
  }

  /* Force all GIS grids to stack on mobile if they use inline styles */
  .gis-body .gis-page [style*="grid-template-columns"] {
    grid-template-columns: 1fr !important;
  }
}

.gis-sidebar {
  position: fixed;
  top: var(--header-height);
  left: 0;
  bottom: 0;
  width: var(--gis-sidebar-width);
  background: var(--card);
  border-right: var(--space-px) solid var(--border);
  z-index: calc(var(--z-header) - 1);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transform: translateX(0);
  transition: width 180ms ease, transform 180ms ease;
}

@media (max-width: 1024px) {
  .gis-sidebar {
    width: 220px;
    z-index: 1000;
    transform: translateX(-100%);
  }

  body.gis-sidebar-open .gis-sidebar {
    transform: translateX(0);
  }
}

.gis-sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding: var(--space-4) var(--space-3);
  border-bottom: none;
  flex: 0 0 auto;
}

.gis-sidebar-header-title {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}

.gis-sidebar-header-subtitle {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-sidebar-header-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-nav {
  display: grid;
  /* Prevent stretched grid rows when the sidebar nav fills available height. */
  align-content: start;
  gap: var(--space-1);
  padding: var(--space-2) var(--space-2) var(--space-3);
  /* Mobile hamburger sidebar must scroll internally. */
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.gis-nav-group {
  display: grid;
  gap: var(--space-1);
}

.gis-nav > .gis-nav-group:not(.gis-nav-group--global) {
  margin-top: var(--space-1);
  padding: var(--space-2) 0 var(--space-1-5);
  border-top: var(--space-px) solid color-mix(in srgb, var(--border), transparent 22%);
}

.gis-nav > .gis-nav-group--global + .gis-nav-group {
  margin-top: 0;
  padding-top: var(--space-1);
  border-top: 0;
}

.gis-nav > .gis-nav-group:has(.gis-sidebar-link[aria-current="page"]) {
  border-top-color: color-mix(in srgb, var(--primary), var(--border) 54%);
}

.gis-nav-title {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: 0 var(--space-3) var(--space-1);
  font-size: var(--fs-xs);
  font-weight: 700;
  color: color-mix(in srgb, var(--foreground), transparent 16%);
  letter-spacing: 0;
  text-transform: none;
}

.gis-nav-title::after {
  content: "";
  flex: 1 1 auto;
  height: var(--space-px);
  background: color-mix(in srgb, var(--border), transparent 18%);
}

.gis-nav-group:has(.gis-sidebar-link[aria-current="page"]) .gis-nav-title {
  color: var(--foreground);
}

.gis-nav-group:has(.gis-sidebar-link[aria-current="page"]) .gis-nav-title::after {
  background: color-mix(in srgb, var(--primary), transparent 54%);
}

.gis-nav-group-links {
  display: grid;
  gap: var(--space-1);
}

.gis-sidebar-link {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-1-5) var(--space-3);
  border-radius: var(--radius-sm);
  color: var(--muted-foreground);
  font-size: 13px;
  text-decoration: none;
  min-width: 0;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.gis-sidebar-link .hz-icon {
  font-size: 1.125rem;
  color: inherit;
  justify-self: center;
}

.gis-sidebar-label {
  font-size: 13px;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-sidebar-link:hover {
  background: var(--hover-overlay);
  color: var(--foreground);
}

.gis-sidebar-link[aria-current="page"],
.gis-nav-group--global .gis-sidebar-link.active {
  background: color-mix(in srgb, var(--primary), transparent 88%);
  color: var(--foreground);
  font-weight: 600;
}

.gis-sidebar-overlay {
  position: fixed;
  top: var(--header-height);
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.45);
  z-index: calc(var(--z-header) - 2);
}

.gis-drag-handle {
  cursor: grab;
  touch-action: none;
}

body.gis-dragging .gis-drag-handle {
  cursor: grabbing;
}

.gis-stop-actions-cell {
  vertical-align: middle;
  white-space: nowrap;
}

.gis-stop-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-1);
}

.gis-stop-action-btn {
  min-width: auto;
  padding: 0 var(--space-2);
  height: calc(var(--control-h-s) - var(--space-2));
  min-height: calc(var(--control-h-s) - var(--space-2));
  line-height: var(--lh-xs);
}

.gis-stop-action-btn.gis-drag-handle {
  width: calc(var(--control-h-s) - var(--space-2));
  padding: 0;
}

.gis-stop-action-btn .hz-icon {
  font-size: var(--control-icon-s);
}

.gis-line-stop-meta-cell {
  min-width: 9.5rem;
  vertical-align: middle;
}

.gis-line-stop-position-control {
  display: grid;
  gap: var(--space-1);
  align-items: center;
  min-width: 0;
}

.gis-line-stop-platform-control {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
}

.gis-line-stop-meta-input,
.gis-line-stop-platform-input {
  width: 100%;
  min-width: 6.5rem;
  min-height: calc(var(--control-h-s) - var(--space-1));
  padding: var(--space-1) var(--space-1-5);
  font-size: var(--fs-xs);
}

.gis-line-stop-position-hint {
  margin-top: var(--space-1);
  line-height: 1.35;
}

@media (max-width: 720px) {
  .gis-stop-action-btn {
    height: var(--control-h-m);
    min-height: var(--control-h-m);
  }

  .gis-stop-action-btn.gis-drag-handle {
    width: var(--control-h-m);
  }


  .gis-stop-action-btn .hz-icon {
    font-size: var(--control-icon-m);
  }
}


.gis-body .hz-overlay {
  overflow: auto;
  place-items: start center;
}

.gis-body .hz-dialog {
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - (var(--space-4) * 2));
  max-height: calc(100dvh - (var(--space-4) * 2));
}

.gis-body .hz-dialog-header,
.gis-body .hz-dialog-footer {
  flex: 0 0 auto;
}

.gis-body .hz-dialog-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.gis-search-dropdown {
  position: relative;
}

.gis-search-select .input {
  padding-right: var(--space-8);
}

.gis-search-select-icon {
  position: absolute;
  right: var(--space-1);
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted-foreground);
  pointer-events: none;
}

.gis-search-list {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + var(--space-2));
  margin-top: 0;
  z-index: calc(var(--z-header) + 1);
}

.gis-search-list .hz-menu-item {
  width: 100%;
  justify-content: space-between;
}

.gis-drag-placeholder td {
  background: rgba(127, 127, 127, 0.12);
  border: var(--space-px) dashed rgba(127, 127, 127, 0.35);
}

.gis-drag-ghost {
  position: fixed;
  z-index: 9999;
  pointer-events: none;
  opacity: 0.95;
  transform: translateZ(0);
}

.gis-body .table-wrapper {
  position: relative;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

@media (max-width: 1024px) {
  .gis-body .table-wrapper {
    /* Scroll indicator gradient - same as admin.css */
    background: linear-gradient(to right, var(--background) 30%, rgba(255, 255, 255, 0)),
      linear-gradient(to right, rgba(255, 255, 255, 0), var(--background) 70%) 0 100%,
      radial-gradient(farthest-side at 0 50%, rgba(0, 0, 0, .2), rgba(0, 0, 0, 0)),
      radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, .2), rgba(0, 0, 0, 0)) 0 100%;
    background-repeat: no-repeat;
    background-color: var(--background);
    background-size: 40px 100%, 40px 100%, 14px 100%, 14px 100%;
    background-attachment: local, local, scroll, scroll;
  }

  /* Reliable visual indicator for horizontal scroll */
  .gis-body .table-wrapper::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 24px;
    background: linear-gradient(to left, var(--background), transparent);
    pointer-events: none;
    opacity: 0.8;
    z-index: 10;
  }
}

.gis-drag-ghost .table {
  margin: 0;
}

.gis-status-toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-full);
  border: var(--space-px) solid var(--border);
  background: transparent;
  color: inherit;
  font: inherit;
  line-height: 1;
  cursor: pointer;
}

.gis-status-toggle:hover {
  background: var(--muted);
}

.gis-status-toggle:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.gis-status-dot {
  width: var(--space-2-5);
  height: var(--space-2-5);
  border-radius: var(--radius-full);
  box-shadow: inset 0 0 0 var(--space-px) color-mix(in srgb, var(--foreground), transparent 75%);
}

.gis-status-dot.is-on {
  background: var(--success);
}

.gis-status-dot.is-off {
  background: color-mix(in srgb, var(--muted-foreground), var(--card) 18%);
}

.gis-status-text {
  font-size: var(--fs-sm);
  color: var(--muted-foreground);
  white-space: nowrap;
}

.gis-types-table th.col-shrink,
.gis-types-table td.col-shrink {
  width: 1%;
  white-space: nowrap;
}

.gis-types-table code.code {
  white-space: nowrap;
  word-break: keep-all;
}

.gis-types-table td {
  vertical-align: middle;
}

body.gis-body .gis-content {
  box-sizing: border-box;
  flex: 1;
  min-width: 0;
  padding: var(--space-6);
  /* Reset base horizon-v2 sidebar margin */
  margin-left: 0;
  /* Use padding for sidebar clearance on desktop */
  padding-left: calc(var(--sidebar-width) + var(--space-6));
  transition: padding-left 180ms ease;
}

body.gis-body.gis-shell-standalone .gis-content {
  padding-left: var(--space-6);
  padding-top: calc(var(--header-height) + var(--space-6));
}

.gis-page--standalone .gis-content--standalone .content {
  width: min(100%, 1480px);
  margin-inline: auto;
}

@media (max-width: 1024px) {
  body.gis-body .gis-content {
    padding: var(--space-4);
    width: auto;
    max-width: 100%;
    overflow-x: hidden;
  }

  body.gis-body .main-layout.gis-layout,
  body.gis-body .gis-content,
  body.gis-body .gis-content > .content {
    min-width: 0;
    max-width: 100vw;
  }

  body.gis-body.gis-shell-standalone .gis-content {
    padding-top: calc(var(--header-height) + var(--space-4));
  }
}

.gis-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}

.admin-hero-actions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-shrink: 0;
}

.gis-admin-page .content {
  max-width: min(100%, calc(var(--space-12) * 34));
  min-width: 0;
}

.gis-admin-page .content.gis-admin-page-stack {
  gap: var(--space-stack-lg);
}

.gis-admin-page .gis-hero {
  margin-bottom: 0;
  align-items: end;
}

.gis-admin-page .gis-hero-title {
  max-width: 72ch;
}

.gis-admin-page .card,
.gis-admin-page .gis-form-container.card {
  border-color: var(--border);
  box-shadow: none;
}

.gis-admin-page .card-header {
  gap: var(--space-3);
}

.gis-admin-page .card-header > div:first-child {
  min-width: 0;
}

.gis-admin-page .card-description {
  max-width: 60ch;
}

.gis-admin-page .card-content {
  min-width: 0;
}

/* Split headers wrap instead of crushing the title column.
   Actions stretch to full width on narrow screens, so without wrapping the
   title/description sibling shrinks to zero and the text stacks vertically. */
.gis-body .card-header--split {
  flex-wrap: wrap;
}

.gis-body .card-header--split > :first-child {
  flex: 1 1 12rem;
  min-width: 0;
}

.gis-admin-page .card-actions,
.gis-admin-page .card-header-actions,
.gis-admin-page .admin-hero-actions,
.gis-admin-page .gis-actions-end {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.gis-admin-page .gis-actions-end {
  justify-content: flex-end;
}

.gis-admin-page .gis-admin-list-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
  align-items: stretch;
}

.gis-admin-page .gis-admin-list-actions > .btn {
  width: 100%;
  min-width: 0;
}

.gis-admin-page .gis-admin-table-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  flex-wrap: wrap;
  margin-top: var(--space-2);
  min-width: 0;
}

.gis-admin-page .gis-admin-table-footer .gis-pagination {
  flex: 0 1 auto;
  justify-content: flex-end;
  min-width: 0;
  overflow-x: auto;
}

.gis-admin-page .gis-toolbar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-3);
  align-items: end;
  margin-bottom: var(--space-3);
}

.gis-admin-page .gis-toolbar .input-group {
  min-width: 0;
}

.gis-admin-page .gis-toolbar-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.gis-table-headline,
.gis-table-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.gis-table-headline {
  margin-top: var(--space-2);
  margin-bottom: var(--space-2);
}

.gis-table-footer {
  margin-top: var(--space-2);
}

.gis-table-action-header {
  width: 1%;
  text-align: right;
  white-space: nowrap;
}

.gis-table-drag-header {
  width: var(--space-8);
  text-align: center;
  white-space: nowrap;
}

.gis-admin-page .table-wrapper {
  margin-top: 0;
}

.gis-admin-page .table-wrapper.table-sticky {
  overflow-x: auto;
}

.gis-admin-page .gis-admin-inline-panel {
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--muted), transparent 54%);
}

.gis-admin-page .gis-admin-inline-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  flex-wrap: wrap;
  padding: var(--space-2) var(--space-3);
  border-bottom: 1px solid var(--border);
}

.gis-admin-page .gis-admin-inline-panel-content {
  padding: var(--space-3);
}

.gis-admin-page .gis-admin-inline-panel > .table-wrapper {
  border: 0;
  border-radius: 0 0 var(--radius-md) var(--radius-md);
  background: transparent;
}

.gis-admin-page .gis-admin-inline-panel > .table-wrapper::after {
  display: none;
}

.gis-admin-lines-page .gis-admin-line-operator-chips,
.gis-admin-stations-page .gis-admin-line-selected-panel {
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--muted), transparent 54%);
}

.gis-admin-lines-page .gis-admin-line-operator-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  min-height: var(--control-h-m);
  padding: var(--space-2);
}

.gis-admin-lines-page .gis-grid-main-layout {
  grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
  grid-template-areas:
    "list detail"
    "list stops";
}

.gis-admin-lines-page .gis-entity-list-col {
  grid-area: list;
}

.gis-admin-lines-page .gis-workspace-col {
  grid-area: detail;
}

.gis-admin-lines-page .gis-context-col {
  grid-area: stops;
}

.gis-admin-lines-page .gis-admin-line-stops-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, auto));
  gap: var(--space-1);
  align-items: center;
}

.gis-admin-lines-page .gis-admin-line-stops-actions > .btn {
  white-space: nowrap;
}

.gis-admin-lines-page .gis-admin-line-stops-card > .card-header {
  padding-block: var(--space-3);
}

.gis-admin-lines-page .gis-admin-line-stops-content {
  display: grid;
  gap: 0;
  padding: 0;
  overflow: visible;
}

.gis-admin-lines-page .gis-admin-map-candidates-panel {
  display: grid;
  gap: var(--space-3);
  padding: var(--space-3);
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--muted), transparent 58%);
}

.gis-admin-lines-page .gis-admin-map-candidates-panel[hidden] {
  display: none !important;
}

.gis-admin-lines-page .gis-admin-map-candidates-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-2);
}

.gis-admin-lines-page .gis-admin-map-candidates-title {
  font-size: var(--fs-sm);
  font-weight: 700;
}

.gis-admin-lines-page .gis-admin-map-candidates-table-wrapper {
  max-height: 240px;
  overflow: auto;
}

.gis-admin-lines-page .gis-admin-line-stops-table-wrapper,
.gis-admin-stations-page .gis-admin-station-line-stops-table-wrapper {
  max-height: none;
  overflow-x: auto;
  overflow-y: visible;
}

.gis-admin-lines-page .gis-admin-stop-create-panel {
  display: grid;
  gap: var(--space-3);
  padding: var(--space-4);
  border-top: 1px solid var(--border);
  background: color-mix(in srgb, var(--muted), transparent 54%);
}

.gis-admin-lines-page .gis-admin-stop-create-panel[hidden] {
  display: none !important;
}

.gis-admin-lines-page .gis-admin-stop-create-head,
.gis-admin-lines-page .gis-admin-stop-create-actions,
.gis-admin-stations-page .gis-admin-line-selected-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}

.gis-admin-lines-page .gis-admin-stop-create-title,
.gis-admin-stations-page .gis-admin-line-selected-kicker {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
  text-transform: uppercase;
}

.gis-admin-lines-page .gis-admin-stop-search-field {
  margin: 0;
}

.gis-admin-lines-page .gis-admin-stop-meta-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(120px, 160px);
  gap: var(--space-2);
}

.gis-admin-lines-page .gis-admin-stop-results-panel {
  max-height: none;
  overflow: visible;
}

.gis-admin-lines-page .gis-admin-stop-results {
  padding: var(--space-2);
  font-size: var(--fs-xs);
}

.gis-admin-lines-page .gis-admin-stop-selected-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--fs-xs);
  font-weight: 500;
}

.gis-admin-lines-page .gis-admin-stop-create-buttons {
  display: flex;
  gap: var(--space-1);
  flex: 0 0 auto;
}

.gis-admin-lines-page .gis-admin-line-stops-note {
  padding: var(--space-3);
  border-top: 1px solid var(--border);
  background: color-mix(in srgb, var(--muted), transparent 42%);
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
}

@media (max-width: 1024px) {
  .gis-admin-lines-page .gis-grid-main-layout {
    grid-template-columns: 1fr;
    grid-template-areas:
      "list"
      "detail"
      "stops";
  }

  .gis-admin-lines-page .gis-admin-line-stops-actions,
  .gis-admin-lines-page .gis-admin-stop-meta-grid {
    grid-template-columns: 1fr;
  }

  .gis-admin-lines-page .gis-admin-stop-create-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .gis-admin-lines-page .gis-admin-stop-create-buttons {
    width: 100%;
  }

  .gis-admin-lines-page .gis-admin-stop-create-buttons > .btn {
    flex: 1 1 0;
  }
}

@media (max-width: 640px) {
  .gis-admin-lines-page .gis-admin-line-stops-card > .card-header--split {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-2);
    align-items: stretch;
  }

  .gis-admin-lines-page .gis-admin-line-stops-card > .card-header--split > div:first-child {
    min-width: 0;
  }

  .gis-admin-lines-page .gis-admin-line-stops-card .card-title {
    word-break: keep-all;
    overflow-wrap: normal;
  }

  .gis-admin-lines-page .gis-admin-line-stops-actions {
    width: 100%;
  }
}

.gis-admin-stations-page .gis-admin-line-selected-panel {
  display: grid;
  gap: var(--space-1);
  margin-bottom: var(--space-3);
  padding: var(--space-3);
}

.gis-admin-stations-page .gis-admin-line-selected-label {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: var(--fs-sm);
  font-weight: 600;
}

.gis-admin-stations-page .gis-admin-line-selected-meta,
.gis-admin-stations-page .gis-admin-line-context-note {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
}

.gis-admin-stations-page .gis-admin-line-context-note {
  display: flex;
  align-items: flex-start;
  gap: var(--space-1);
  margin-bottom: var(--space-3);
}

.gis-admin-stations-page .gis-admin-line-context-note .hz-icon {
  flex: 0 0 auto;
  font-size: 1rem;
}

.gis-admin-page .gis-card-grid {
  gap: var(--space-3);
}

.gis-admin-buildings-page .gis-admin-buildings-workspace {
  grid-template-columns: minmax(0, 1.12fr) minmax(360px, 0.88fr);
  align-items: start;
}

.gis-admin-buildings-page .gis-admin-buildings-actions,
.gis-admin-buildings-page .gis-admin-buildings-create-card,
.gis-admin-buildings-page .gis-admin-buildings-complex-card {
  grid-column: 1 / -1;
}

.gis-admin-buildings-page .gis-admin-buildings-list-card {
  grid-column: 1 / -1;
  min-width: 0;
}

.gis-admin-buildings-page .gis-admin-buildings-list-panel {
  margin-top: var(--space-2);
  max-height: none;
  overflow: visible;
}

.gis-admin-buildings-page .gis-op-stack .gis-admin-buildings-list-wrapper {
  overflow-x: auto;
  overflow-y: visible;
}

.gis-admin-buildings-page .gis-admin-buildings-list-table {
  min-width: 760px;
}

.gis-admin-buildings-page .gis-admin-buildings-editor-card {
  grid-column: 2;
  min-width: 0;
}

.gis-admin-buildings-page .gis-admin-buildings-workspace:has(#buildingDetailCard:not([hidden])) .gis-admin-buildings-list-card {
  grid-column: 1;
  grid-row: 2;
}

.gis-admin-buildings-page .gis-admin-buildings-editor-card:not([hidden]) {
  grid-row: 2;
  position: static;
  max-height: none;
  overflow: visible;
}

.gis-admin-buildings-page .gis-admin-buildings-editor-card > .card-header {
  position: static;
  background: color-mix(in srgb, var(--card) 94%, transparent);
  border-bottom: 1px solid var(--border);
}

.gis-admin-buildings-page .gis-admin-buildings-list-card tbody tr[data-id] {
  cursor: pointer;
}

.gis-admin-buildings-page .gis-admin-buildings-list-card tbody tr[data-id]:hover {
  background-color: color-mix(in srgb, var(--muted), transparent 58%);
}

.gis-admin-cities-page .gis-admin-city-name-line,
.gis-admin-cities-page .gis-admin-city-detail-title-row {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  max-width: 100%;
}

.gis-admin-cities-page .gis-admin-city-name-line > span:first-child,
.gis-admin-cities-page .gis-admin-city-detail-title-row > div {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-admin-cities-page .gis-admin-city-public-badge {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  min-height: 18px;
  padding: 0 var(--space-2);
  border: 1px solid color-mix(in srgb, var(--foreground), transparent 82%);
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--card), var(--muted) 28%);
  color: var(--foreground);
  font-size: var(--fs-2xs);
  font-weight: 700;
  line-height: 1;
}

.gis-admin-cities-page .gis-admin-city-public-badge[hidden] {
  display: none;
}

@media (max-width: 640px) {
  .gis-admin-page .gis-op-stack .gis-admin-cities-list-wrapper {
    max-height: none;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .gis-admin-page .gis-op-stack .gis-admin-cities-list-wrapper::after {
    display: none;
  }

  .gis-admin-page .gis-admin-cities-list-table,
  .gis-admin-page .gis-admin-cities-list-table thead,
  .gis-admin-page .gis-admin-cities-list-table tbody,
  .gis-admin-page .gis-admin-cities-list-table tr,
  .gis-admin-page .gis-admin-cities-list-table td {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .gis-admin-page .gis-admin-cities-list-table {
    table-layout: auto;
  }

  .gis-admin-page .gis-admin-cities-list-table thead {
    display: none;
  }

  .gis-admin-page .gis-admin-cities-list-table tbody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-admin-page .gis-admin-cities-list-table tr {
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
  }

  .gis-admin-page .gis-admin-cities-list-table td,
  .gis-admin-page .gis-admin-cities-list-table tr:hover td {
    padding: 0;
    border-bottom: 0;
    background: transparent;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .gis-admin-page .gis-admin-cities-list-table td:not(:first-child) {
    display: grid;
    grid-template-columns: minmax(4.5rem, 0.3fr) minmax(0, 1fr);
    gap: var(--space-2);
    align-items: start;
    margin-top: var(--space-1);
  }

  .gis-admin-page .gis-admin-cities-list-table td:not(:first-child)::before {
    color: var(--muted-foreground);
    font-size: var(--fs-2xs);
    font-weight: 600;
    line-height: var(--lh-xs);
  }

  .gis-admin-page .gis-admin-cities-list-table td[colspan] {
    display: block;
  }

  .gis-admin-page .gis-admin-cities-list-table td[colspan]::before {
    content: none;
  }
}

@media (max-width: 1180px) {
  .gis-admin-buildings-page .gis-admin-buildings-workspace {
    grid-template-columns: 1fr;
  }

  .gis-admin-buildings-page .gis-admin-buildings-list-card,
  .gis-admin-buildings-page .gis-admin-buildings-editor-card,
  .gis-admin-buildings-page .gis-admin-buildings-workspace:has(#buildingDetailCard:not([hidden])) .gis-admin-buildings-list-card {
    grid-column: 1;
    grid-row: auto;
  }

  .gis-admin-buildings-page .gis-admin-buildings-editor-card:not([hidden]) {
    grid-row: auto;
    position: static;
    max-height: none;
    overflow: visible;
  }
}

.gis-admin-lodging-page .gis-admin-lodging-workspace {
  display: grid;
  gap: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-view-tabs {
  margin: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-metric-strip {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--card);
  overflow: hidden;
}

.gis-admin-lodging-page .gis-admin-lodging-metric {
  min-width: 0;
  padding: var(--space-2) var(--space-3);
  border-inline-start: 1px solid var(--border-subtle);
}

.gis-admin-lodging-page .gis-admin-lodging-metric:first-child {
  border-inline-start: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-metric .stat-label {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-metric .stat-value {
  margin-top: var(--space-0-5);
  font-size: var(--fs-body-lg);
  line-height: var(--lh-body-lg);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--foreground);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gis-admin-lodging-page .gis-admin-lodging-metric--time .stat-value {
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

.gis-admin-lodging-page .gis-admin-lodging-list-panel {
  margin-top: 0;
  border-top: 1px solid var(--border-subtle);
  max-height: none;
  overflow: visible;
}

.gis-admin-lodging-page .gis-admin-lodging-list-toolbar {
  display: grid;
  grid-template-columns:
    minmax(14rem, 1fr)
    minmax(8.5rem, auto)
    minmax(8rem, auto)
    minmax(15rem, 0.9fr)
    minmax(12.5rem, auto)
    auto
    auto;
  gap: var(--space-2);
  align-items: center;
  padding: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-list-toolbar > * {
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-list-search-field {
  position: relative;
}

.gis-admin-lodging-page .gis-admin-lodging-list-search-field .input {
  min-height: var(--control-h-s);
  padding-inline-end: var(--control-h-s);
}

.gis-admin-lodging-page .gis-admin-lodging-list-search-field .hz-icon {
  position: absolute;
  top: 50%;
  right: var(--space-2);
  color: var(--muted-foreground);
  font-size: var(--control-icon-m);
  pointer-events: none;
  transform: translateY(-50%);
}

.gis-admin-lodging-page .gis-admin-lodging-list-filter .select,
.gis-admin-lodging-page .gis-admin-lodging-list-sort .select,
.gis-admin-lodging-page .gis-admin-lodging-price-range .input {
  min-height: var(--control-h-s);
}

.gis-admin-lodging-page .gis-admin-lodging-list-sort {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-1-5);
  align-items: center;
}

.gis-admin-lodging-page .gis-admin-lodging-list-sort-label {
  display: inline-flex;
  gap: var(--space-1);
  align-items: center;
  color: var(--foreground);
  font-size: var(--fs-xs);
  font-weight: 600;
  line-height: var(--lh-xs);
  white-space: nowrap;
}

.gis-admin-lodging-page .gis-admin-lodging-list-sort-label .hz-icon {
  color: var(--muted-foreground);
  font-size: var(--control-icon-s);
}

.gis-admin-lodging-page .gis-admin-lodging-price-range {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: var(--space-1);
  align-items: center;
}

.gis-admin-lodging-page .gis-admin-lodging-price-range > span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
}

.gis-admin-lodging-page .gis-admin-lodging-filter-reset {
  min-width: max-content;
}

.gis-admin-lodging-page .gis-admin-lodging-list-count {
  min-width: max-content;
  text-align: end;
}

.gis-admin-lodging-page .gis-op-stack .gis-admin-lodging-list-wrapper {
  overflow-x: auto;
  overflow-y: auto;
  max-height: clamp(28rem, calc(100vh - 20rem), 42rem);
  border: 0;
  border-radius: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-list-table {
  min-width: 980px;
}

.gis-admin-lodging-page .gis-admin-lodging-list-table th,
.gis-admin-lodging-page .gis-admin-lodging-list-table td {
  padding: var(--space-1-5) var(--space-2);
  vertical-align: middle;
}

.gis-admin-lodging-page .gis-admin-lodging-list-table th:nth-child(1) {
  width: 24%;
}

.gis-admin-lodging-page .gis-admin-lodging-list-table th:nth-child(2) {
  width: 18%;
}

.gis-admin-lodging-page .gis-admin-lodging-list-table th:nth-child(3),
.gis-admin-lodging-page .gis-admin-lodging-list-table th:nth-child(4) {
  width: 14%;
}

.gis-admin-lodging-page .gis-admin-lodging-list-table th:nth-child(5) {
  width: 16%;
}

.gis-admin-lodging-page .gis-admin-lodging-list-table th:nth-child(6),
.gis-admin-lodging-page .gis-admin-lodging-list-table th:nth-child(7) {
  width: 7%;
}

.gis-admin-lodging-page .gis-admin-lodging-list-primary {
  overflow: hidden;
  color: var(--foreground);
  font-weight: 600;
  line-height: var(--lh-sm);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-admin-lodging-page .gis-admin-lodging-list-cell-content {
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-list-number {
  color: var(--foreground);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.gis-admin-lodging-page .gis-admin-lodging-list-meta {
  margin-top: var(--space-0-5);
  overflow: hidden;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-admin-lodging-page .gis-admin-lodging-status-badge {
  display: inline-flex;
  align-items: center;
  min-height: var(--control-icon-m);
  padding-inline: var(--space-1-5);
  border-radius: var(--radius-full);
  background: var(--muted);
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  font-weight: 600;
  line-height: var(--lh-xs);
  white-space: nowrap;
}

.gis-admin-lodging-page .gis-admin-lodging-status-badge.is-active {
  background: color-mix(in srgb, var(--success), transparent 88%);
  color: var(--success);
}

.gis-admin-lodging-page .gis-admin-lodging-status-badge.is-planned {
  background: color-mix(in srgb, var(--primary), transparent 88%);
  color: var(--primary);
}

.gis-admin-lodging-page .gis-admin-lodging-list-action {
  text-align: end;
}

.gis-admin-lodging-page .gis-admin-lodging-list-card > .gis-admin-table-footer {
  min-height: var(--control-h-s);
  padding: var(--space-1-5) var(--space-2);
}

@media (max-width: 900px) {
  .gis-admin-lodging-page .gis-admin-lodging-list-toolbar {
    grid-template-columns: minmax(0, 1fr) minmax(7.5rem, auto) minmax(7.5rem, auto);
  }

  .gis-admin-lodging-page .gis-admin-lodging-price-range {
    grid-column: 1 / 3;
  }

  .gis-admin-lodging-page .gis-admin-lodging-list-count {
    grid-column: 3;
    justify-self: end;
    text-align: end;
  }
}

@media (max-width: 640px) {
  .gis-admin-lodging-page .gis-admin-lodging-list-toolbar {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .gis-admin-lodging-page .gis-admin-lodging-list-search,
  .gis-admin-lodging-page .gis-admin-lodging-price-range,
  .gis-admin-lodging-page .gis-admin-lodging-list-sort {
    grid-column: 1 / -1;
  }

  .gis-admin-lodging-page .gis-admin-lodging-list-count {
    grid-column: 2;
  }

  .gis-admin-lodging-page .gis-op-stack .gis-admin-lodging-list-wrapper {
    max-height: none;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .gis-admin-lodging-page .gis-op-stack .gis-admin-lodging-list-wrapper::after {
    display: none;
  }

  .gis-admin-lodging-page .gis-admin-lodging-list-table,
  .gis-admin-lodging-page .gis-admin-lodging-list-table thead,
  .gis-admin-lodging-page .gis-admin-lodging-list-table tbody,
  .gis-admin-lodging-page .gis-admin-lodging-list-table tr,
  .gis-admin-lodging-page .gis-admin-lodging-list-table td {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .gis-admin-lodging-page .gis-admin-lodging-list-table {
    table-layout: auto;
  }

  .gis-admin-lodging-page .gis-admin-lodging-list-table thead {
    display: none;
  }

  .gis-admin-lodging-page .gis-admin-lodging-list-table tbody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-admin-lodging-page .gis-admin-lodging-list-table tr {
    padding: var(--space-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
  }

  .gis-admin-lodging-page .gis-admin-lodging-list-table td,
  .gis-admin-lodging-page .gis-admin-lodging-list-table tr:hover td {
    padding: 0;
    border-bottom: 0;
    background: transparent;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .gis-admin-lodging-page .gis-admin-lodging-list-table td:not(:first-child) {
    display: grid;
    grid-template-columns: minmax(4.5rem, 0.3fr) minmax(0, 1fr);
    gap: var(--space-2);
    align-items: start;
    margin-top: var(--space-1);
  }

  .gis-admin-lodging-page .gis-admin-lodging-list-table td:not(:first-child)::before {
    color: var(--muted-foreground);
    font-size: var(--fs-2xs);
    font-weight: 600;
    line-height: var(--lh-xs);
  }

  .gis-admin-lodging-page .gis-admin-lodging-list-table td[colspan] {
    display: block;
  }

  .gis-admin-lodging-page .gis-admin-lodging-list-table td[colspan]::before {
    content: none;
  }

  .gis-admin-lodging-page .gis-admin-lodging-list-meta {
    white-space: normal;
  }

  .gis-admin-lodging-page .gis-admin-lodging-list-cell-content {
    min-width: 0;
  }

  .gis-admin-lodging-page .gis-admin-lodging-list-action .btn {
    justify-self: start;
  }
}

.gis-admin-lodging-page .gis-admin-lodging-editor-card,
.gis-admin-lodging-page .gis-admin-lodging-list-card,
.gis-admin-lodging-page .gis-admin-lodging-inner-card {
  border-color: var(--border);
  box-shadow: none;
  overflow: visible;
}

.gis-admin-lodging-page .gis-admin-lodging-editor-stack {
  display: grid;
  gap: var(--space-4);
}

.gis-admin-lodging-page .gis-admin-lodging-slot {
  display: contents;
}

.gis-admin-lodging-page .gis-admin-lodging-quick-start {
  display: grid;
  gap: var(--space-3);
  padding-block: var(--space-2) var(--space-4);
  border-bottom: 1px solid var(--border-subtle);
}

.gis-admin-lodging-page .gis-admin-lodging-create-progress {
  min-height: var(--control-h-s);
  margin: 0;
  padding: var(--space-1-5) var(--space-2);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  background: var(--surface);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-admin-lodging-page[data-lodging-create-poi-ready="true"] .gis-admin-lodging-create-progress {
  border-color: var(--success);
  color: var(--foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-manage-overview {
  display: grid;
  gap: var(--space-1-5);
}

.gis-admin-lodging-page .gis-admin-lodging-kicker {
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: var(--lh-xs);
  text-transform: uppercase;
}

.gis-admin-lodging-page .gis-admin-lodging-quick-start-title {
  margin: 0;
  color: var(--foreground);
  font-size: var(--fs-h3);
  font-weight: 600;
  line-height: var(--lh-h3);
}

.gis-admin-lodging-page .gis-admin-lodging-quick-start p,
.gis-admin-lodging-page .gis-admin-lodging-registration-head p {
  margin: 0;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

.gis-admin-lodging-page .gis-admin-lodging-registration-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: var(--space-3);
  align-items: start;
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-section-head > .gis-admin-lodging-registration-head {
  flex: 1 1 auto;
  width: 100%;
}

.gis-admin-lodging-page .gis-admin-lodging-registration-index {
  display: grid;
  place-items: center;
  width: var(--control-icon-l);
  height: var(--control-icon-l);
  margin-top: var(--space-0-5);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-full);
  color: var(--foreground);
  font-size: var(--fs-xs);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.gis-admin-lodging-page .gis-admin-lodging-registration-head .gis-admin-lodging-required-badge {
  margin-top: var(--space-0-5);
}

.gis-admin-lodging-page[data-lodging-editor-mode="create"][data-lodging-create-poi-ready="false"] [data-lodging-after-poi] {
  display: none;
}

.gis-admin-lodging-page[data-lodging-editor-mode="create"] .gis-admin-lodging-editor-card {
  width: min(100%, 72rem);
  margin-inline: auto;
  border: 0;
  background: transparent;
}

.gis-admin-lodging-page[data-lodging-editor-mode="create"] .gis-admin-lodging-editor-card > .card-content {
  padding: 0;
}

.gis-admin-lodging-page[data-lodging-editor-mode="create"] .gis-admin-lodging-section[data-lodging-step="basics"] > .gis-admin-lodging-section-head {
  padding-top: var(--space-4);
  border-top: 1px solid var(--border-subtle);
}

@media (min-width: 901px) {
  .gis-admin-lodging-page[data-lodging-editor-mode="create"] .gis-admin-lodging-section[data-lodging-step="basics"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--space-5);
    row-gap: var(--space-3);
  }

  .gis-admin-lodging-page[data-lodging-editor-mode="create"] .gis-admin-lodging-quick-start,
  .gis-admin-lodging-page[data-lodging-editor-mode="create"] .gis-admin-lodging-details,
  .gis-admin-lodging-page[data-lodging-editor-mode="create"] .gis-admin-lodging-create-actions {
    grid-column: 1 / -1;
  }

  .gis-admin-lodging-page[data-lodging-editor-mode="create"] .gis-admin-lodging-section[data-lodging-step="basics"] > .gis-admin-lodging-section-head {
    grid-column: 1;
    grid-row: 2;
    padding-top: 0;
    border-top: 0;
  }

  .gis-admin-lodging-page[data-lodging-editor-mode="create"] #lodgingAffiliationCreateFields {
    grid-column: 1;
    grid-row: 3;
  }

  .gis-admin-lodging-page[data-lodging-editor-mode="create"] .gis-admin-lodging-registration-section {
    grid-column: 2;
    grid-row: 2 / span 2;
    align-content: start;
    padding: 0 0 0 var(--space-5);
    border-top: 0;
    border-inline-start: 1px solid var(--border-subtle);
  }
}

.gis-admin-lodging-page .gis-admin-lodging-manage-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-block: 1px solid var(--border-subtle);
}

.gis-admin-lodging-page .gis-admin-lodging-manage-row {
  appearance: none;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-3);
  align-items: center;
  width: 100%;
  min-height: var(--control-h-m);
  padding: var(--space-2) var(--space-3);
  border: 0;
  border-inline-start: 1px solid var(--border-subtle);
  background: transparent;
  color: var(--foreground);
  font: inherit;
  text-align: start;
  cursor: pointer;
}

.gis-admin-lodging-page .gis-admin-lodging-manage-row:first-child {
  border-inline-start: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-manage-row:hover {
  background: color-mix(in srgb, var(--muted), transparent 58%);
}

.gis-admin-lodging-page .gis-admin-lodging-manage-row[aria-pressed="true"] {
  background: var(--surface);
}

.gis-admin-lodging-page .gis-admin-lodging-manage-row:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}

.gis-admin-lodging-page .gis-admin-lodging-manage-row span {
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

.gis-admin-lodging-page .gis-admin-lodging-manage-row strong {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 600;
  line-height: var(--lh-xs);
  white-space: nowrap;
}

.gis-admin-lodging-page .gis-admin-lodging-manage-row[data-state="complete"] strong {
  color: var(--success);
}

.gis-admin-lodging-page .gis-admin-lodging-editor-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}

.gis-admin-lodging-page .gis-admin-lodging-editor-header > :first-child {
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-editor-header .card-actions {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-2);
  margin-inline-start: auto;
}

.gis-admin-lodging-page .gis-admin-lodging-editor-meta {
  margin-top: var(--space-0-5);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-validation {
  padding: var(--space-2) var(--space-3);
  border: 1px solid color-mix(in srgb, var(--destructive), var(--border) 62%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--destructive), var(--card) 92%);
  color: var(--destructive);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

.gis-admin-lodging-page .gis-admin-lodging-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.gis-admin-lodging-page .gis-admin-lodging-step {
  appearance: none;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: var(--space-2);
  align-items: center;
  min-height: var(--control-h-l);
  padding: var(--space-2) var(--space-3);
  border: 0;
  border-inline-start: 1px solid var(--border-subtle);
  background: transparent;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  text-align: start;
  cursor: pointer;
}

.gis-admin-lodging-page .gis-admin-lodging-step:first-child {
  border-inline-start: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-step:hover,
.gis-admin-lodging-page .gis-admin-lodging-step[aria-pressed="true"] {
  background: color-mix(in srgb, var(--muted), transparent 42%);
  color: var(--foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-step:focus-visible {
  position: relative;
  outline: 2px solid var(--ring);
  outline-offset: -2px;
}

.gis-admin-lodging-page .gis-admin-lodging-step-index {
  display: grid;
  place-items: center;
  width: var(--control-icon-l);
  height: var(--control-icon-l);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-full);
  color: var(--foreground);
  font-size: var(--fs-xs);
  font-variant-numeric: tabular-nums;
}

.gis-admin-lodging-page .gis-admin-lodging-step-state {
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  line-height: var(--lh-xs);
  white-space: nowrap;
}

.gis-admin-lodging-page .gis-admin-lodging-step-state.is-complete {
  color: var(--success);
}

.gis-admin-lodging-page .gis-admin-lodging-step-actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-2);
  margin-top: var(--space-2);
  padding-top: var(--space-3);
  border-top: 1px solid var(--border-subtle);
}

.gis-admin-lodging-page .gis-admin-lodging-step-actions--split {
  justify-content: space-between;
}

.gis-admin-lodging-page .gis-admin-lodging-step-action-group {
  display: flex;
  gap: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-details {
  border-top: 1px solid var(--border-subtle);
  padding-top: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-details summary {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  font-weight: 600;
  line-height: var(--lh-sm);
  cursor: pointer;
}

.gis-admin-lodging-page .gis-admin-lodging-details summary span {
  font-size: var(--fs-xs);
  font-weight: 400;
}

.gis-admin-lodging-page .gis-admin-lodging-section {
  display: grid;
  gap: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-registration-section {
  display: grid;
  gap: var(--space-3);
  padding-top: var(--space-4);
  border-top: 1px solid var(--border-subtle);
}

.gis-admin-lodging-page .gis-admin-lodging-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-section-title {
  margin: 0;
  font-size: var(--fs-body-lg);
  line-height: var(--lh-body-lg);
  font-weight: 600;
  color: var(--foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-section-description {
  margin: var(--space-1) 0 0;
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  color: var(--muted-foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-field-support {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-field-support .btn {
  flex: 0 0 auto;
}

.gis-admin-lodging-page .gis-admin-lodging-field-hint {
  margin: var(--space-1) 0 0;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-admin-lodging-page .gis-admin-lodging-create-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding-top: var(--space-4);
  border-top: 1px solid var(--border-subtle);
}

.gis-admin-lodging-page .gis-admin-lodging-create-readiness {
  margin: 0;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

.gis-admin-lodging-page .gis-admin-lodging-create-action-buttons {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-image-panel {
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--card);
  overflow: hidden;
}

.gis-admin-lodging-page .gis-admin-lodging-image-content {
  display: grid;
  grid-template-columns: minmax(180px, 260px) minmax(0, 1fr);
  gap: var(--space-3);
  align-items: stretch;
  padding: var(--space-3);
}

.gis-admin-lodging-page .gis-admin-lodging-image-preview {
  display: grid;
  place-items: center;
  min-height: 150px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--muted);
  background-position: center;
  background-size: cover;
  color: var(--muted-foreground);
  overflow: hidden;
}

.gis-admin-lodging-page .gis-admin-lodging-image-preview.is-dragover {
  border-color: var(--primary);
  box-shadow: inset 0 0 0 1px var(--primary);
}

.gis-admin-lodging-page .gis-admin-lodging-image-preview.has-image .hz-icon {
  display: none;
}

.gis-admin-lodging-page .gis-admin-lodging-image-preview .hz-icon {
  font-size: 36px;
}

.gis-admin-lodging-page .gis-admin-lodging-image-meta {
  display: grid;
  align-content: start;
  gap: var(--space-2);
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-pricing-meta {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
  white-space: nowrap;
}

.gis-admin-lodging-page .gis-admin-lodging-pricing-grid .input-group {
  gap: var(--space-1);
}

.gis-admin-lodging-page .gis-admin-lodging-pricing-grid {
  max-width: none;
  display: grid;
  grid-template-columns: minmax(220px, 1.2fr) minmax(160px, 0.82fr) minmax(180px, 0.92fr);
  gap: var(--space-2);
  align-items: end;
}

.gis-admin-lodging-page .gis-admin-lodging-pricing-grid .input {
  min-height: var(--control-h-s);
}

.gis-admin-lodging-page .gis-admin-lodging-pricing-preview {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--space-2);
  margin-top: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-pricing-preview-item {
  display: grid;
  gap: var(--space-0-5);
  padding: var(--space-2);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--background), var(--foreground) 2%);
}

.gis-admin-lodging-page .gis-admin-lodging-pricing-preview-label {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-pricing-preview-value {
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  color: var(--foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-pricing-preview-meta {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-pricing-preview-group {
  display: grid;
  gap: var(--space-3);
  margin-top: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-pricing-preview-block .gis-admin-lodging-pricing-preview {
  margin-top: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-pricing-preview-caption {
  font-size: var(--fs-2xs);
  line-height: 1.3;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--muted-foreground), var(--foreground) 8%);
  margin-bottom: var(--space-1-5);
}

.gis-admin-lodging-page .gis-admin-lodging-pricing-tier-preview {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.gis-admin-lodging-page .gis-admin-lodging-band-autofill .btn {
  width: 100%;
}

.gis-admin-lodging-page .gis-admin-lodging-dynamic {
  padding: var(--space-2) var(--space-2-5);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--background), var(--foreground) 1.5%);
}

.gis-admin-lodging-page .gis-admin-lodging-dynamic-toggle {
  min-height: var(--control-h-s);
}

.gis-admin-lodging-page .gis-admin-lodging-dynamic-head,
.gis-admin-lodging-page .gis-admin-lodging-adjustment-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-weight-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(76px, 1fr));
  gap: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-recommend-badge {
  display: inline-block;
  margin-left: var(--space-1);
  padding: 1px 7px;
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--foreground), transparent 86%);
  color: var(--foreground);
  font-size: var(--fs-2xs);
  font-weight: 600;
  line-height: 1.6;
  vertical-align: middle;
}

.gis-admin-lodging-page .gis-admin-lodging-finetune-toggle {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: var(--space-1-5);
  padding: var(--space-1) var(--space-2);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius);
  background: transparent;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  cursor: pointer;
}

.gis-admin-lodging-page .gis-admin-lodging-finetune-toggle:hover {
  color: var(--foreground);
  border-color: var(--border);
}

.gis-admin-lodging-page .gis-admin-lodging-finetune-toggle .hz-icon {
  font-size: 16px;
}

.gis-admin-lodging-page .gis-admin-lodging-finetune-chevron {
  transition: transform 0.15s ease;
}

.gis-admin-lodging-page .gis-admin-lodging-finetune-toggle[aria-expanded="true"] .gis-admin-lodging-finetune-chevron {
  transform: rotate(180deg);
}

.gis-admin-lodging-page .gis-admin-lodging-quick-preview-caption {
  font-size: var(--fs-2xs);
  line-height: 1.3;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--muted-foreground), var(--foreground) 8%);
  margin-bottom: calc(var(--space-2) * -0.5);
}

.gis-admin-lodging-page .gis-admin-lodging-adjustment-list {
  display: grid;
  gap: var(--space-2);
  margin-top: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-adjustment-row {
  display: grid;
  grid-template-columns: minmax(140px, 1.2fr) minmax(120px, 1fr) minmax(120px, 1fr) minmax(88px, 0.7fr) auto;
  gap: var(--space-2);
  align-items: end;
  padding: var(--space-2);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--background), var(--foreground) 1%);
}

.gis-admin-lodging-page .gis-admin-lodging-adjustment-empty {
  padding: var(--space-2);
  border: 1px dashed var(--border-subtle);
  border-radius: var(--radius-md);
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
}

.gis-admin-lodging-page .gis-admin-lodging-quick-preview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--space-2);
  margin-top: var(--space-3);
}

.gis-admin-lodging-page .gis-admin-lodging-quick-preview-item {
  display: grid;
  gap: var(--space-0-5);
  padding: var(--space-2) var(--space-2-5);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--background), var(--foreground) 2%);
}

.gis-admin-lodging-page .gis-admin-lodging-quick-preview-item.is-empty {
  border-style: dashed;
  background: color-mix(in srgb, var(--muted), transparent 55%);
}

.gis-admin-lodging-page .gis-admin-lodging-quick-preview-label,
.gis-admin-lodging-page .gis-admin-lodging-quick-preview-meta {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-quick-preview-value {
  font-size: var(--fs-md, var(--fs-sm));
  line-height: 1.25;
  color: var(--foreground);
  font-variant-numeric: tabular-nums;
}

.gis-admin-lodging-page .gis-admin-lodging-quick-preview-item.is-empty .gis-admin-lodging-quick-preview-value {
  color: var(--muted-foreground);
}

@media (max-width: 720px) {
  .gis-admin-lodging-page .gis-admin-lodging-dynamic-head,
  .gis-admin-lodging-page .gis-admin-lodging-adjustment-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .gis-admin-lodging-page .gis-admin-lodging-weight-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-admin-lodging-page .gis-admin-lodging-adjustment-row {
    grid-template-columns: 1fr;
  }
}

.gis-admin-lodging-page .gis-admin-lodging-tabs {
  display: flex;
  gap: var(--space-1);
  border-bottom: 1px solid var(--border-subtle);
  margin-bottom: var(--space-3);
}

.gis-admin-lodging-page .gis-admin-lodging-tab {
  appearance: none;
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  padding: var(--space-2) var(--space-3);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  font-weight: 500;
  color: var(--muted-foreground);
  cursor: pointer;
}

.gis-admin-lodging-page .gis-admin-lodging-tab:hover {
  color: var(--foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-tab[aria-pressed="true"] {
  color: var(--foreground);
  border-bottom-color: var(--foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-tab--secondary {
  margin-inline-start: auto;
}

.gis-admin-lodging-page .gis-admin-lodging-tab:focus-visible {
  outline: 2px solid var(--ring, var(--foreground));
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

.gis-admin-lodging-page .gis-admin-lodging-label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-label-row-actions {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}

.gis-admin-lodging-page .gis-admin-lodging-quickadd {
  margin-top: var(--space-2);
  padding: var(--space-2) var(--space-2-5);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--muted), transparent 50%);
}

.gis-admin-lodging-page .gis-admin-lodging-quickadd-head {
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
  flex-wrap: wrap;
  margin-bottom: var(--space-1-5);
}

.gis-admin-lodging-page .gis-admin-lodging-quickadd-title {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-quickadd-hint {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-quickadd-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: center;
}

.gis-admin-lodging-page .gis-admin-lodging-quickadd-row .input {
  flex: 1 1 200px;
  min-width: 0;
  min-height: var(--control-h-s);
}

.gis-admin-lodging-page .gis-admin-lodging-affiliation-picker {
  grid-column: 1 / -1;
  position: relative;
  overflow: visible;
}

.gis-admin-lodging-page .gis-admin-lodging-affiliation-combo {
  position: relative;
}

.gis-admin-lodging-page .gis-admin-lodging-affiliation-list {
  max-height: min(360px, 46vh);
  overflow-y: auto;
  padding: var(--space-1);
}

.gis-admin-lodging-page .gis-admin-lodging-affiliation-option {
  width: 100%;
  align-items: center;
  border-radius: var(--radius);
  border: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-affiliation-option.is-active,
.gis-admin-lodging-page .gis-admin-lodging-affiliation-option:focus-visible {
  background: var(--hover-overlay);
  outline: none;
}

.gis-admin-lodging-page .gis-admin-lodging-affiliation-option.is-selected {
  background: color-mix(in srgb, var(--primary), transparent 88%);
}

.gis-admin-lodging-page .gis-admin-lodging-affiliation-option-main {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-affiliation-option-title,
.gis-admin-lodging-page .gis-admin-lodging-affiliation-option-meta {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-admin-lodging-page .gis-admin-lodging-affiliation-option-title {
  font-weight: 600;
}

.gis-admin-lodging-page .gis-admin-lodging-affiliation-option-meta,
.gis-admin-lodging-page .gis-admin-lodging-affiliation-helper,
.gis-admin-lodging-page .gis-admin-lodging-affiliation-empty {
  color: var(--muted-foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-affiliation-helper {
  margin-top: var(--space-1);
}

.gis-admin-lodging-page .gis-admin-lodging-required-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--space-3);
}

.gis-admin-lodging-page .gis-admin-lodging-required-block {
  padding: var(--space-2-5) var(--space-3);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--background), var(--foreground) 2%);
}

.gis-admin-lodging-page[data-lodging-editor-mode="create"] #lodgingRoomInventoryWorkspace {
  padding: 0;
  border: 0;
  background: transparent;
}

.gis-admin-lodging-page[data-lodging-editor-mode="create"] #lodgingRoomInventoryWorkspace > .gis-admin-lodging-required-head {
  display: none;
}

.gis-admin-lodging-page .gis-admin-lodging-required-head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-required-title {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-required-badge {
  padding: 1px 7px;
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--foreground), transparent 86%);
  color: var(--foreground);
  font-size: var(--fs-2xs);
  font-weight: 600;
  line-height: 1.6;
}

.gis-admin-lodging-page .gis-admin-lodging-required-badge[data-state="complete"] {
  background: var(--surface);
  color: var(--success);
}

.gis-admin-lodging-page .gis-admin-lodging-required-badge.is-optional,
.gis-admin-lodging-page .gis-admin-lodging-detail-tag.is-no-price {
  background: color-mix(in srgb, var(--muted), transparent 35%);
  color: var(--muted-foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-capacity-block {
  max-width: none;
}

.gis-admin-lodging-page .gis-admin-lodging-capacity-details {
  overflow: hidden;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--background), var(--foreground) 2%);
}

.gis-admin-lodging-page .gis-admin-lodging-capacity-details > summary {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  gap: var(--space-2);
  align-items: center;
  min-height: var(--control-h-l);
  padding: var(--space-2) var(--space-3);
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 600;
  list-style: none;
  cursor: pointer;
}

.gis-admin-lodging-page .gis-admin-lodging-capacity-details > summary::-webkit-details-marker {
  display: none;
}

.gis-admin-lodging-page .gis-admin-lodging-capacity-details > summary:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: -2px;
}

.gis-admin-lodging-page .gis-admin-lodging-capacity-chevron {
  transition: transform 160ms ease;
}

.gis-admin-lodging-page .gis-admin-lodging-capacity-details[open] .gis-admin-lodging-capacity-chevron {
  transform: rotate(180deg);
}

.gis-admin-lodging-page .gis-admin-lodging-capacity-summary {
  min-width: 0;
  overflow: hidden;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 400;
  text-align: end;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-admin-lodging-page .gis-admin-lodging-capacity-content {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-3);
  border-top: 1px solid var(--border-subtle);
}

.gis-admin-lodging-page .gis-admin-lodging-capacity-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-capacity-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-capacity-item {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-capacity-label {
  font-size: var(--fs-2xs);
  line-height: 1.3;
  color: var(--muted-foreground);
  text-transform: uppercase;
}

.gis-admin-lodging-page .gis-admin-lodging-capacity-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-1);
}

.gis-admin-lodging-page .gis-admin-lodging-capacity-field {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-capacity-field > span {
  overflow: hidden;
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-admin-lodging-page .gis-admin-lodging-capacity-field .input {
  min-height: var(--control-h-s);
  font-size: var(--fs-sm);
  padding-inline: var(--space-1-5);
}

.gis-admin-lodging-page .gis-admin-lodging-connect-section {
  padding-top: var(--space-1);
}

.gis-admin-lodging-page .gis-admin-lodging-connect-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}

.gis-admin-lodging-page .gis-admin-lodging-connect-panel {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
  padding: var(--space-2-5) var(--space-3);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--background), var(--foreground) 2%);
}

.gis-admin-lodging-page[data-lodging-editor-mode="create"] #lodgingPoiConnectWorkspace {
  padding: 0;
  border: 0;
  background: transparent;
}

.gis-admin-lodging-page[data-lodging-editor-mode="create"] #lodgingPoiConnectWorkspace > .gis-admin-lodging-connect-panel-head {
  display: none;
}

.gis-admin-lodging-page[data-lodging-editor-mode="create"][data-lodging-create-poi-ready="false"] #linkedPoiBody {
  display: none;
}

.gis-admin-lodging-page .gis-admin-lodging-connect-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-connect-title {
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  font-weight: 600;
  color: var(--foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-connect-count {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.gis-admin-lodging-page .gis-admin-lodging-map-status {
  width: fit-content;
  margin-top: var(--space-1);
  padding: 2px var(--space-1-5);
  border-radius: var(--radius-full);
  background: var(--muted);
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  line-height: var(--lh-xs);
  font-weight: 600;
}

.gis-admin-lodging-page .gis-admin-lodging-map-status.is-active {
  background: color-mix(in srgb, var(--success) 12%, transparent);
  color: var(--success);
}

.gis-admin-lodging-page .gis-admin-lodging-map-status.is-issue {
  background: color-mix(in srgb, var(--destructive) 12%, transparent);
  color: var(--destructive);
}

.gis-admin-lodging-page .gis-admin-lodging-map-status.is-pending {
  background: color-mix(in srgb, var(--warning) 14%, transparent);
  color: var(--warning-foreground, var(--foreground));
}

.gis-admin-lodging-page .gis-admin-lodging-selected-list,
.gis-admin-lodging-page .gis-admin-lodging-search-list {
  display: grid;
  gap: var(--space-1-5);
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-selected-list {
  min-height: 42px;
}

.gis-admin-lodging-page .gis-admin-lodging-search-panel {
  margin-top: calc(var(--space-1) * -1);
}

.gis-admin-lodging-page .gis-admin-lodging-map-search-group,
.gis-admin-lodging-page .gis-admin-lodging-map-search,
.gis-admin-lodging-page .gis-admin-lodging-map-search .search-select-field {
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-map-search .search-select-field {
  position: relative;
}

.gis-admin-lodging-page .gis-admin-lodging-map-search .input {
  padding-right: var(--space-10);
}

.gis-admin-lodging-page .gis-admin-lodging-map-search .search-select-icon {
  position: absolute;
  top: 50%;
  right: var(--space-3);
  color: var(--muted-foreground);
  pointer-events: none;
  transform: translateY(-50%);
}

.gis-admin-lodging-page .gis-admin-lodging-connect-empty {
  display: flex;
  align-items: center;
  min-height: 40px;
  padding: 0 var(--space-2);
  border: 1px dashed var(--border-subtle);
  border-radius: var(--radius-md);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-admin-lodging-page .gis-admin-lodging-selected-item,
.gis-admin-lodging-page .gis-admin-lodging-candidate {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
  width: 100%;
  min-height: 44px;
  padding: var(--space-1-5) var(--space-2);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  background: var(--background);
}

.gis-admin-lodging-page .gis-admin-lodging-candidate {
  appearance: none;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.gis-admin-lodging-page .gis-admin-lodging-candidate:hover {
  border-color: color-mix(in srgb, var(--border-strong), transparent 35%);
  background: color-mix(in srgb, var(--background), var(--foreground) 3%);
}

.gis-admin-lodging-page .gis-admin-lodging-candidate:focus-visible {
  outline: 2px solid var(--ring, var(--foreground));
  outline-offset: 2px;
}

.gis-admin-lodging-page .gis-admin-lodging-selected-main,
.gis-admin-lodging-page .gis-admin-lodging-candidate-main {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-selected-title,
.gis-admin-lodging-page .gis-admin-lodging-candidate-title {
  color: var(--foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-admin-lodging-page .gis-admin-lodging-selected-meta,
.gis-admin-lodging-page .gis-admin-lodging-candidate-meta {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-admin-lodging-page .gis-admin-lodging-candidate-action {
  flex: 0 0 auto;
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--foreground), transparent 86%);
  color: var(--foreground);
  font-size: var(--fs-2xs);
  line-height: 1.6;
  font-weight: 600;
}

.gis-admin-lodging-page .gis-admin-lodging-selected-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: var(--space-1);
}

.gis-admin-lodging-page [data-poi-primary][aria-pressed="true"] {
  border-color: transparent;
  background: var(--muted);
  color: var(--muted-foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-remove-btn {
  flex: 0 0 auto;
  min-width: var(--control-h-xs, 28px);
  width: var(--control-h-xs, 28px);
  height: var(--control-h-xs, 28px);
  padding: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-remove-btn .hz-icon {
  font-size: 18px;
}

.gis-admin-lodging-page .gis-admin-lodging-req-inline .input-label {
  display: inline-flex;
  align-items: center;
}

.gis-admin-lodging-page .gis-admin-lodging-req-inline .input-label::after {
  content: '필수';
  margin-left: var(--space-1-5);
  padding: 1px 7px;
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--foreground), transparent 86%);
  color: var(--foreground);
  font-size: var(--fs-2xs);
  font-weight: 600;
  line-height: 1.6;
}

.gis-admin-lodging-page .gis-admin-lodging-req-inline .input,
.gis-admin-lodging-page .gis-admin-lodging-req-inline .select {
  border-color: color-mix(in srgb, var(--border-strong), transparent 34%);
}

.gis-admin-lodging-page .gis-admin-lodging-form-divider {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: var(--space-4) 0 var(--space-1);
  padding-top: var(--space-3);
  border-top: 1px solid var(--border-subtle);
}

.gis-admin-lodging-page .gis-admin-lodging-form-divider-title {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-form-divider-badge {
  padding: 1px 7px;
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--muted), transparent 20%);
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  font-weight: 600;
}

.gis-admin-lodging-page .gis-admin-lodging-detail-toggle {
  min-height: auto;
  gap: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-detail-hint {
  margin-bottom: var(--space-2);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-detail-tag {
  display: inline-flex;
  align-items: center;
  padding: 1px 8px;
  border-radius: var(--radius-pill);
  font-size: var(--fs-2xs);
  font-weight: 600;
  background: color-mix(in srgb, var(--foreground), transparent 86%);
  color: var(--foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-detail-tag.is-simple {
  background: color-mix(in srgb, var(--muted), transparent 25%);
  color: var(--muted-foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-editor-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
  align-items: start;
}

.gis-admin-lodging-page .gis-admin-lodging-main-stack,
.gis-admin-lodging-page .gis-admin-lodging-side-stack {
  display: grid;
  gap: var(--space-3);
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-affiliation-card,
.gis-admin-lodging-page .gis-admin-lodging-inner-card,
.gis-admin-lodging-page .gis-admin-lodging-editor-card {
  overflow: visible;
}

.gis-admin-lodging-page .gis-admin-lodging-side-stack {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}

.gis-admin-lodging-page .gis-admin-lodging-brand-workspace {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: var(--space-3);
  align-items: start;
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-brand-toolbar {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-brand-list-pane .table-wrapper {
  max-height: min(28rem, 56vh);
  overflow: auto;
}

@media (min-width: 1025px) {
  .gis-admin-lodging-page .gis-admin-lodging-editor-header {
    position: sticky;
    top: var(--header-height);
    z-index: var(--z-header);
    background: var(--card);
  }
}

@media (max-width: 1024px) {
  .gis-admin-lodging-page .gis-admin-lodging-manage-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-admin-lodging-page .gis-admin-lodging-manage-row:nth-child(odd) {
    border-inline-start: 0;
  }

  .gis-admin-lodging-page .gis-admin-lodging-manage-row:nth-child(n + 3) {
    border-top: 1px solid var(--border-subtle);
  }

  .gis-admin-lodging-page .gis-admin-lodging-metric-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gis-admin-lodging-page .gis-admin-lodging-metric:nth-child(4) {
    border-inline-start: 0;
  }

  .gis-admin-lodging-page .gis-admin-lodging-metric:nth-child(n + 4) {
    border-top: 1px solid var(--border-subtle);
  }

  .gis-admin-lodging-page .gis-admin-lodging-brand-workspace {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .gis-admin-lodging-page .gis-admin-lodging-editor-header {
    align-items: stretch;
    flex-direction: column;
  }

  .gis-admin-lodging-page .gis-admin-lodging-editor-header .card-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    margin-inline-start: 0;
  }

  .gis-admin-lodging-page .gis-admin-lodging-editor-header .card-actions #saveBtn {
    grid-column: 1 / -1;
  }

  .gis-admin-lodging-page .gis-admin-lodging-editor-header .card-actions .btn {
    width: 100%;
  }

  .gis-admin-lodging-page .gis-admin-lodging-view-tabs {
    overflow-x: auto;
  }

  .gis-admin-lodging-page .gis-admin-lodging-view-tabs .gis-admin-lodging-tab {
    flex: 1 0 auto;
    padding-inline: var(--space-2);
  }

  .gis-admin-lodging-page .gis-admin-lodging-tab--secondary {
    margin-inline-start: 0;
  }

  .gis-admin-lodging-page .gis-admin-lodging-manage-row {
    gap: var(--space-2);
  }

  .gis-admin-lodging-page .gis-admin-lodging-manage-row {
    min-width: 0;
  }

  .gis-admin-lodging-page .gis-admin-lodging-manage-row span,
  .gis-admin-lodging-page .gis-admin-lodging-manage-row strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .gis-admin-lodging-page .gis-admin-lodging-registration-head {
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--space-2);
  }

  .gis-admin-lodging-page .gis-admin-lodging-registration-head .gis-admin-lodging-required-badge {
    grid-column: 2;
    justify-self: start;
    margin-top: 0;
  }

  .gis-admin-lodging-page .gis-admin-lodging-field-support,
  .gis-admin-lodging-page .gis-admin-lodging-create-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .gis-admin-lodging-page .gis-admin-lodging-create-action-buttons {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
    width: 100%;
  }

  .gis-admin-lodging-page .gis-admin-lodging-create-action-buttons .btn {
    width: 100%;
  }

  .gis-admin-lodging-page .gis-admin-lodging-metric-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-admin-lodging-page .gis-admin-lodging-metric:nth-child(odd) {
    border-inline-start: 0;
  }

  .gis-admin-lodging-page .gis-admin-lodging-metric:nth-child(even) {
    border-inline-start: 1px solid var(--border-subtle);
  }

  .gis-admin-lodging-page .gis-admin-lodging-metric:nth-child(n + 3) {
    border-top: 1px solid var(--border-subtle);
  }

  .gis-admin-lodging-page .gis-admin-lodging-step {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: var(--space-1-5);
    row-gap: 0;
    min-height: calc(var(--control-h-l) + var(--space-2));
    padding: var(--space-1-5) var(--space-2);
    font-size: var(--fs-xs);
  }

  .gis-admin-lodging-page .gis-admin-lodging-step-index {
    grid-row: 1 / -1;
    width: var(--control-icon-m);
    height: var(--control-icon-m);
  }

  .gis-admin-lodging-page .gis-admin-lodging-step-state {
    grid-column: 2;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .gis-admin-lodging-page .gis-admin-lodging-capacity-details > summary {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .gis-admin-lodging-page .gis-admin-lodging-capacity-summary {
    grid-column: 2;
    text-align: start;
  }

  .gis-admin-lodging-page .gis-admin-lodging-capacity-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .gis-admin-lodging-page .gis-admin-lodging-brand-toolbar {
    grid-template-columns: 1fr;
  }

  .gis-admin-lodging-page .gis-admin-lodging-step-actions,
  .gis-admin-lodging-page .gis-admin-lodging-step-actions--split {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .gis-admin-lodging-page .gis-admin-lodging-step-actions .btn {
    width: 100%;
  }

  .gis-admin-lodging-page .gis-admin-lodging-step-action-group {
    display: grid;
    gap: var(--space-2);
    width: 100%;
  }
}

.gis-admin-lodging-page .gis-admin-lodging-rate-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 180px) auto auto minmax(0, 1fr);
  gap: var(--space-2);
  align-items: center;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-toolbar-select {
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-toolbar-meta {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
  text-align: right;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-season-bulk {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-2);
  padding: var(--space-2) var(--space-2-5);
  border: 1px dashed color-mix(in srgb, var(--border), transparent 8%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--muted), transparent 55%);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-season-bulk-label {
  font-size: var(--fs-2xs);
  line-height: 1.3;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--muted-foreground), var(--foreground) 8%);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-season-bulk .input {
  width: 96px;
  min-height: var(--control-h-s);
  font-size: var(--fs-sm);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-season-bulk-sep {
  color: var(--muted-foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-season-bulk-meta {
  flex: 1 1 160px;
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-inline-note {
  padding: var(--space-1-5) var(--space-2-5);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--muted), transparent 42%);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-list {
  display: grid;
  gap: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-empty {
  padding: var(--space-4);
  border: 1px dashed var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--muted), transparent 48%);
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-row {
  position: relative;
  isolation: isolate;
  padding: var(--space-1-5) var(--space-2);
  border: 1px solid color-mix(in srgb, var(--border), transparent 8%);
  border-radius: var(--radius);
  background-color: color-mix(in srgb, var(--background), var(--foreground) 1.75%);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-row.is-expanded {
  border-color: color-mix(in srgb, var(--border-strong), transparent 18%);
  box-shadow:
    0 1px 0 color-mix(in srgb, var(--foreground), transparent 94%),
    0 8px 24px color-mix(in srgb, var(--foreground), transparent 96%);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-row.is-attribute-open {
  z-index: calc(var(--z-popover) - 1);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-row-primary,
.gis-admin-lodging-page .gis-admin-lodging-rate-row-secondary {
  display: grid;
  gap: var(--space-2);
  align-items: end;
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-row-primary {
  grid-template-columns:
    minmax(110px, 0.5fr)
    minmax(150px, 1.25fr)
    minmax(76px, 0.32fr)
    minmax(100px, 0.4fr)
    minmax(84px, 0.36fr)
    minmax(104px, 0.46fr)
    minmax(52px, auto)
    28px
    28px
    28px;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-row-secondary {
  grid-template-columns: minmax(164px, 0.74fr) minmax(76px, 0.3fr) minmax(76px, 0.3fr) minmax(76px, 0.3fr) minmax(0, 1.2fr);
  margin-top: var(--space-1);
  padding-top: var(--space-2);
  border-top: 1px dashed color-mix(in srgb, var(--border), transparent 16%);
  align-items: start;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-row.is-always .gis-admin-lodging-rate-row-secondary {
  grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-field {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-field-label {
  font-size: var(--fs-2xs);
  line-height: 1.3;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--muted-foreground), var(--foreground) 8%);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-field--season {
  align-self: end;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-field--attributes {
  position: relative;
  min-width: 0;
  align-self: start;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-field--notes {
  min-width: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-field--notes-full {
  grid-column: 1 / -1;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-row.is-always .gis-admin-lodging-rate-field--notes-full {
  grid-column: 2;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-check {
  min-height: var(--control-h-s);
  padding: 0;
  gap: var(--space-1);
  flex-wrap: nowrap;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-check .checkbox-label {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-row .input {
  min-height: var(--control-h-s);
  font-size: var(--fs-sm);
  padding-inline: var(--space-2);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-price-output {
  min-height: var(--control-h-s);
  padding: 0 var(--space-1-5);
  border: 1px solid color-mix(in srgb, var(--border), transparent 10%);
  border-radius: var(--radius);
  background-color: color-mix(in srgb, var(--background), var(--foreground) 2.5%);
  display: grid;
  align-content: center;
  justify-items: end;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-price-output strong {
  font-size: var(--fs-sm);
  line-height: 1.2;
  color: var(--foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-breakdown {
  grid-column: 1 / -1;
  margin-top: var(--space-1);
  font-size: var(--fs-2xs);
  line-height: 1.4;
  color: var(--muted-foreground);
  font-variant-numeric: tabular-nums;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-duplicate-btn {
  width: 28px;
  min-width: 28px;
  height: var(--control-h-s);
  padding: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-expand-btn {
  width: 28px;
  min-width: 28px;
  height: var(--control-h-s);
  padding: 0;
  position: relative;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-expand-count {
  min-width: 1rem;
  height: 1rem;
  padding-inline: 0;
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--muted), transparent 12%);
  color: var(--foreground);
  font-size: var(--fs-2xs);
  line-height: 1rem;
  text-align: center;
  position: absolute;
  top: 2px;
  right: 2px;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-remove-btn {
  width: 28px;
  min-width: 28px;
  height: var(--control-h-s);
  padding: 0;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-attribute-trigger {
  min-height: var(--control-h-s);
  justify-content: space-between;
  width: 100%;
  padding-inline: var(--space-2);
  border-color: color-mix(in srgb, var(--border), transparent 10%);
  background-color: color-mix(in srgb, var(--background), var(--foreground) 1.75%);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-attribute-dropdown {
  display: grid;
  gap: var(--space-1);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-attribute-summary {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-admin-lodging-page .gis-admin-lodging-rate-attribute-menu {
  position: static;
  width: 100%;
  min-width: 0;
  max-width: none;
  padding: var(--space-1);
  border: 1px solid color-mix(in srgb, var(--border-strong), transparent 12%);
  border-radius: var(--radius-lg);
  background-color: color-mix(in srgb, var(--background), var(--foreground) 1%);
  box-shadow:
    0 12px 32px color-mix(in srgb, var(--foreground), transparent 93%),
    0 2px 8px color-mix(in srgb, var(--foreground), transparent 95%);
  display: grid;
  gap: var(--space-1);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-attribute-option {
  justify-content: flex-start;
  padding: var(--space-1) var(--space-1-5);
  min-height: 36px;
  border-radius: var(--radius-md);
  background-color: color-mix(in srgb, var(--background), var(--foreground) 1%);
  border: 1px solid color-mix(in srgb, var(--border), transparent 20%);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-attribute-option .checkbox-label {
  color: var(--foreground);
}

.gis-admin-lodging-page .gis-admin-lodging-rate-attribute-option:hover {
  background-color: color-mix(in srgb, var(--background), var(--foreground) 4%);
}

@media (min-width: 1440px) {
  .gis-admin-lodging-page .gis-admin-lodging-rate-row {
    display: grid;
    grid-template-columns:
      minmax(110px, 0.5fr)
      minmax(150px, 1.25fr)
      minmax(76px, 0.32fr)
      minmax(100px, 0.4fr)
      minmax(84px, 0.36fr)
      minmax(104px, 0.46fr)
      minmax(52px, auto)
      28px
      28px
      28px;
    gap: var(--space-2);
    align-items: end;
  }

  .gis-admin-lodging-page .gis-admin-lodging-rate-row-primary,
  .gis-admin-lodging-page .gis-admin-lodging-rate-row-secondary {
    display: contents;
  }

  .gis-admin-lodging-page .gis-admin-lodging-rate-row-secondary {
    grid-column: 1 / -1;
    grid-template-columns: minmax(180px, 0.82fr) minmax(88px, 0.34fr) minmax(88px, 0.34fr) minmax(88px, 0.34fr) minmax(0, 1.12fr);
    margin-top: 0;
    padding-top: var(--space-1-5);
  }

  .gis-admin-lodging-page .gis-admin-lodging-rate-field--notes {
    grid-column: 5;
  }

  .gis-admin-lodging-page .gis-admin-lodging-rate-field--notes-full {
    grid-column: 2 / 6;
  }

  .gis-admin-lodging-page .gis-admin-lodging-rate-remove-btn {
    grid-column: 9;
  }
}

@media (min-width: 1180px) {
  .gis-admin-lodging-page .gis-admin-lodging-rate-row-primary .gis-admin-lodging-rate-field-label {
    display: none;
  }

  .gis-admin-lodging-page .gis-admin-lodging-rate-row-primary .gis-admin-lodging-rate-field {
    gap: 0;
  }
}

.gis-admin-enterprises-page .gis-admin-enterprises-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3);
  align-items: start;
}

.gis-admin-enterprises-page .gis-admin-enterprises-workspace {
  grid-template-columns: minmax(0, 1fr) minmax(420px, 480px);
  gap: var(--space-3);
}

.gis-admin-enterprises-page .gis-enterprise-duplicate-workspace[hidden] {
  display: none;
}

.gis-admin-enterprises-page .gis-enterprise-duplicate-grid {
  display: grid;
  grid-template-columns: minmax(260px, 0.36fr) minmax(0, 1fr);
  gap: 0;
  min-width: 0;
  padding: 0;
}

.gis-admin-enterprises-page .gis-enterprise-duplicate-queue,
.gis-admin-enterprises-page .gis-enterprise-merge-review {
  min-width: 0;
}

.gis-admin-enterprises-page .gis-enterprise-duplicate-queue {
  border-inline-end: 1px solid var(--border-subtle);
}

.gis-admin-enterprises-page .gis-enterprise-duplicate-toolbar {
  display: grid;
  gap: var(--space-1);
  padding: var(--space-3);
  border-bottom: 1px solid var(--border-subtle);
}

.gis-admin-enterprises-page .gis-enterprise-duplicate-list {
  display: grid;
}

.gis-admin-enterprises-page .gis-enterprise-duplicate-candidate {
  display: flex;
  width: 100%;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border: 0;
  border-bottom: 1px solid var(--border-subtle);
  background: transparent;
  color: var(--foreground);
  text-align: start;
  cursor: pointer;
}

.gis-admin-enterprises-page .gis-enterprise-duplicate-candidate:hover,
.gis-admin-enterprises-page .gis-enterprise-duplicate-candidate.is-selected {
  background: color-mix(in srgb, var(--primary) 8%, transparent);
}

.gis-admin-enterprises-page .gis-enterprise-duplicate-candidate.is-selected {
  box-shadow: inset 3px 0 0 var(--primary);
}

.gis-admin-enterprises-page .gis-enterprise-duplicate-candidate-names,
.gis-admin-enterprises-page .gis-enterprise-merge-party {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}

.gis-admin-enterprises-page .gis-enterprise-duplicate-candidate-names > *,
.gis-admin-enterprises-page .gis-enterprise-merge-party > * {
  overflow-wrap: anywhere;
}

.gis-admin-enterprises-page .gis-enterprise-merge-review {
  padding: var(--space-3);
}

.gis-admin-enterprises-page .gis-enterprise-merge-empty {
  padding: var(--space-6) var(--space-3);
  color: var(--muted-foreground);
  text-align: center;
}

.gis-admin-enterprises-page #enterpriseMergeContent {
  display: grid;
  gap: var(--space-3);
}

.gis-admin-enterprises-page #enterpriseMergeContent[hidden] {
  display: none;
}

.gis-admin-enterprises-page .gis-enterprise-merge-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: var(--space-3);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--border-subtle);
}

.gis-admin-enterprises-page .gis-enterprise-merge-pair .gis-enterprise-merge-party:last-child {
  text-align: end;
}

.gis-admin-enterprises-page .gis-enterprise-merge-section {
  display: grid;
  gap: var(--space-1-5);
  padding-top: var(--space-1);
}

.gis-admin-enterprises-page .gis-enterprise-merge-section + .gis-enterprise-merge-section {
  padding-top: var(--space-3);
  border-top: 1px solid var(--border-subtle);
}

.gis-admin-enterprises-page .gis-enterprise-merge-field-list,
.gis-admin-enterprises-page .gis-enterprise-merge-operator-list,
.gis-admin-enterprises-page .gis-enterprise-merge-se-options,
.gis-admin-enterprises-page .gis-enterprise-merge-impact {
  display: grid;
  gap: var(--space-1);
}

.gis-admin-enterprises-page .gis-enterprise-merge-field {
  display: grid;
  grid-template-columns: minmax(88px, 0.22fr) minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-1-5) 0;
  border-bottom: 1px solid var(--border-subtle);
}

.gis-admin-enterprises-page .gis-enterprise-merge-field-label {
  font-size: var(--fs-sm);
  font-weight: 600;
}

.gis-admin-enterprises-page .gis-enterprise-merge-field-values {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
  min-width: 0;
}

.gis-admin-enterprises-page .gis-enterprise-merge-field-values > span {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: var(--fs-sm);
}

.gis-admin-enterprises-page .gis-enterprise-merge-field-values small {
  color: var(--muted-foreground);
}

.gis-admin-enterprises-page .gis-enterprise-merge-operator {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(150px, 190px);
  align-items: center;
  gap: var(--space-2);
}

.gis-admin-enterprises-page .gis-enterprise-merge-reference-list {
  display: grid;
  gap: var(--space-1);
  margin: 0;
}

.gis-admin-enterprises-page .gis-enterprise-merge-reference-list > div {
  display: flex;
  justify-content: space-between;
  gap: var(--space-2);
  font-size: var(--fs-xs);
}

.gis-admin-enterprises-page .gis-enterprise-merge-reference-list dt {
  overflow-wrap: anywhere;
  color: var(--muted-foreground);
}

.gis-admin-enterprises-page .gis-enterprise-merge-reference-list dd {
  margin: 0;
  white-space: nowrap;
}

.gis-admin-enterprises-page .gis-enterprise-merge-confirm .btn-destructive {
  justify-self: end;
}

.gis-admin-enterprises-page .gis-enterprise-merge-notice {
  padding: var(--space-1-5) var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  font-size: var(--fs-sm);
}

.gis-admin-enterprises-page .gis-enterprise-merge-notice[data-tone="warning"] {
  border-color: color-mix(in srgb, var(--warning) 40%, var(--border));
  background: color-mix(in srgb, var(--warning) 8%, transparent);
}

.gis-admin-enterprises-page .gis-enterprise-merge-notice[data-tone="error"] {
  border-color: color-mix(in srgb, var(--destructive) 40%, var(--border));
  background: color-mix(in srgb, var(--destructive) 8%, transparent);
}

.gis-admin-businesses-page .gis-business-metric-strip {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--card);
}

.gis-admin-businesses-page .gis-business-metric {
  min-width: 0;
  padding: var(--space-2) var(--space-3);
  border-inline-start: 1px solid var(--border-subtle);
}

.gis-admin-businesses-page .gis-business-metric:first-child {
  border-inline-start: 0;
}

.gis-admin-businesses-page .gis-business-metric .stat-label {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
}

.gis-admin-businesses-page .gis-business-metric .stat-value {
  margin-top: var(--space-0-5);
  overflow: hidden;
  color: var(--foreground);
  font-size: var(--fs-body-lg);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  line-height: var(--lh-body-lg);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-admin-businesses-page .gis-business-metric--time .stat-value {
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

.gis-admin-businesses-page .gis-business-tabs .tabs-list {
  gap: var(--space-1);
}

.gis-admin-businesses-page .gis-business-tabs .tab-trigger {
  appearance: none;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  cursor: pointer;
}

.gis-admin-businesses-page .gis-business-tabs .tab-trigger[aria-selected="true"] {
  border-bottom-color: var(--foreground);
  color: var(--foreground);
}

.gis-admin-businesses-page .gis-business-tabs .tab-trigger:focus-visible {
  border-radius: var(--radius-sm);
  outline: 2px solid var(--ring, var(--foreground));
  outline-offset: 2px;
}

.gis-admin-businesses-page .gis-business-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(380px, 440px);
  gap: var(--space-3);
  align-items: start;
  min-width: 0;
}

.gis-admin-businesses-page .gis-business-list-card,
.gis-admin-businesses-page .gis-business-list-content {
  min-width: 0;
}

.gis-admin-businesses-page .gis-business-list-content,
.gis-admin-businesses-page .gis-business-form,
.gis-admin-businesses-page .gis-business-form-fields {
  display: grid;
  gap: var(--space-3);
}

.gis-admin-businesses-page .gis-business-toolbar {
  display: grid;
  grid-template-columns: minmax(14rem, 1fr) minmax(10rem, auto) minmax(10rem, auto) auto;
  gap: var(--space-2);
  align-items: end;
}

.gis-admin-businesses-page .gis-business-toolbar > * {
  min-width: 0;
}

.gis-admin-businesses-page .gis-business-table-region {
  max-height: min(38rem, 64vh);
  overflow: auto;
  overscroll-behavior: contain;
}

.gis-admin-businesses-page .gis-business-table-region:focus-visible {
  outline: 2px solid var(--ring, var(--foreground));
  outline-offset: 2px;
}

.gis-admin-businesses-page .gis-business-table-region th:last-child,
.gis-admin-businesses-page .gis-business-table-region td:last-child {
  width: 1%;
  white-space: nowrap;
}

.gis-admin-businesses-page .gis-business-editor-card {
  min-width: 0;
}

.gis-admin-businesses-page .gis-business-editor-card .card-header {
  align-items: flex-start;
}

.gis-admin-businesses-page .gis-business-source-summary {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
  padding: var(--space-3);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-sm);
  background: var(--muted);
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  overflow-wrap: anywhere;
}

.gis-admin-businesses-page .gis-business-source-summary strong {
  color: var(--foreground);
}

.gis-admin-businesses-page .gis-business-candidate-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
}

@media (min-width: 1281px) {
  .gis-admin-businesses-page .gis-business-editor-card {
    position: sticky;
    top: calc(var(--header-height, 56px) + var(--space-3));
  }
}

@media (max-width: 1024px) {
  .gis-admin-businesses-page .gis-business-metric-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gis-admin-businesses-page .gis-business-metric:nth-child(4) {
    border-inline-start: 0;
  }

  .gis-admin-businesses-page .gis-business-metric:nth-child(n + 4) {
    border-top: 1px solid var(--border-subtle);
  }

  .gis-admin-businesses-page .gis-business-workspace {
    grid-template-columns: 1fr;
  }

  .gis-admin-businesses-page .gis-business-toolbar {
    grid-template-columns: minmax(0, 1fr) minmax(10rem, auto) auto;
  }
}

@media (max-width: 640px) {
  .gis-admin-businesses-page .gis-business-metric-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-admin-businesses-page .gis-business-metric:nth-child(odd) {
    border-inline-start: 0;
  }

  .gis-admin-businesses-page .gis-business-metric:nth-child(n + 3) {
    border-top: 1px solid var(--border-subtle);
  }

  .gis-admin-businesses-page .gis-business-toolbar {
    grid-template-columns: 1fr;
  }

  .gis-admin-businesses-page .gis-business-filter-reset {
    width: 100%;
  }

  .gis-admin-businesses-page .gis-business-editor-card .card-header {
    align-items: stretch;
    flex-direction: column;
  }

  .gis-admin-businesses-page .gis-business-editor-card .card-actions,
  .gis-admin-businesses-page .gis-business-editor-card .card-actions .btn {
    width: 100%;
  }
}

.gis-admin-enterprises-page .gis-admin-enterprises-editor-card {
  order: 2;
  overflow: visible;
}

@media (min-width: 1281px) {
  .gis-admin-enterprises-page .gis-admin-enterprises-editor-card {
    position: sticky;
    top: calc(var(--header-height, 56px) + var(--space-3));
    align-self: start;
  }

  .gis-admin-enterprises-page .gis-admin-enterprises-editor-card .card-header {
    position: sticky;
    top: calc(var(--header-height, 56px) + var(--space-3));
    z-index: 15;
    background: var(--card);
    border-bottom: 1px solid var(--border-subtle);
  }
}

.gis-admin-enterprises-page .gis-admin-enterprises-list-card {
  order: 1;
  min-width: 0;
}

.gis-admin-enterprises-page .gis-admin-enterprises-list-card .card-content {
  min-width: 0;
}

.gis-admin-enterprises-page .gis-admin-enterprises-editor-card .card-header,
.gis-admin-enterprises-page .gis-admin-enterprises-list-card .card-header {
  align-items: flex-start;
}

.gis-admin-enterprises-page .gis-admin-enterprises-editor-card .card-actions,
.gis-admin-enterprises-page .gis-admin-enterprises-list-card .card-actions {
  flex-shrink: 0;
}

.gis-admin-enterprises-page .gis-enterprise-form {
  display: grid;
  gap: var(--space-1-5);
}

.gis-admin-enterprises-page .gis-enterprise-form-section {
  display: grid;
  gap: var(--space-1-5);
  min-width: 0;
  padding-top: var(--space-2);
  padding-bottom: var(--space-2);
  border-top: 1px solid var(--border-subtle);
}

.gis-admin-enterprises-page .gis-enterprise-form-section:first-of-type {
  padding-top: 0;
  border-top: none;
}

.gis-admin-enterprises-page .gis-form-section-title {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--foreground);
  letter-spacing: 0;
  text-transform: none;
}

.gis-admin-enterprises-page .gis-enterprise-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.gis-admin-enterprises-page .gis-enterprise-basic-grid,
.gis-admin-enterprises-page .gis-enterprise-registration-grid {
  display: grid;
  gap: var(--space-1-5);
  align-items: end;
}

.gis-admin-enterprises-page .gis-enterprise-basic-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gis-admin-enterprises-page .gis-enterprise-registration-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.gis-admin-enterprises-page .gis-enterprise-registration-grid > .input-group {
  grid-column: span 2;
}

.gis-admin-enterprises-page .gis-enterprise-basic-grid > .gis-enterprise-field-wide {
  grid-column: 1 / -1;
}

.gis-admin-enterprises-page .gis-admin-enterprises-table-wrap {
  max-height: none;
  overflow-x: auto;
  overflow-y: visible;
}

.gis-admin-enterprises-page .gis-enterprise-table {
  min-width: 100%;
  table-layout: fixed;
}

.gis-admin-enterprises-page .gis-enterprise-table th:nth-child(1) {
  width: 30%;
}

.gis-admin-enterprises-page .gis-enterprise-table th:nth-child(2) {
  width: 13%;
}

.gis-admin-enterprises-page .gis-enterprise-table th:nth-child(3) {
  width: 25%;
}

.gis-admin-enterprises-page .gis-enterprise-table th:nth-child(4) {
  width: 22%;
}

.gis-admin-enterprises-page .gis-enterprise-table th:nth-child(5) {
  width: 12%;
}

.gis-admin-enterprises-page .gis-enterprise-name-cell,
.gis-admin-enterprises-page .gis-enterprise-registration-stack,
.gis-admin-enterprises-page .gis-enterprise-industry-cell {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}

.gis-admin-enterprises-page .gis-enterprise-name-cell {
  overflow-wrap: anywhere;
}

.gis-admin-enterprises-page .gis-enterprise-meta-stack {
  display: grid;
  gap: 2px;
  min-width: 0;
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--text-muted);
}

.gis-admin-enterprises-page .gis-enterprise-meta-item {
  min-width: 0;
  overflow-wrap: anywhere;
}

.gis-admin-enterprises-page .gis-enterprise-code {
  font-family: var(--font-mono);
  color: var(--foreground);
  white-space: nowrap;
}

.gis-admin-enterprises-page .gis-enterprise-date-cell {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  white-space: nowrap;
  color: var(--foreground);
}

.gis-admin-enterprises-page .gis-enterprise-management-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  color: var(--text-muted);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-admin-enterprises-page .gis-enterprise-management-meta span:not(:last-child)::after {
  content: '·';
  margin-left: var(--space-1);
  color: color-mix(in srgb, var(--text-muted), transparent 30%);
}

.gis-admin-enterprises-page .gis-enterprise-management-badges {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  min-width: 0;
}

.gis-admin-enterprises-page .gis-enterprise-management-badge {
  max-width: 100%;
  white-space: nowrap;
}

.gis-admin-enterprises-page .gis-enterprise-management-badge[data-tone="warning"] {
  border-color: color-mix(in srgb, var(--warning), transparent 50%);
  background: color-mix(in srgb, var(--warning), transparent 88%);
  color: var(--warning);
}

.gis-admin-enterprises-page .gis-enterprise-management-badge[data-tone="muted"] {
  border-color: color-mix(in srgb, var(--muted-foreground), transparent 64%);
  background: color-mix(in srgb, var(--muted), transparent 45%);
  color: var(--muted-foreground);
}

.gis-admin-enterprises-page .gis-enterprise-status-badge {
  white-space: nowrap;
}

.gis-admin-enterprises-page .gis-enterprise-status-badge[data-status="active"] {
  border-color: color-mix(in srgb, var(--success), transparent 58%);
  background: color-mix(in srgb, var(--success), transparent 88%);
  color: var(--success);
}

.gis-admin-enterprises-page .gis-enterprise-list-footer .gis-pagination {
  margin-left: auto;
}

.gis-admin-enterprises-page .gis-admin-enterprises-grid--top {
  grid-template-columns: minmax(320px, 0.92fr) minmax(360px, 1fr) minmax(320px, 0.88fr);
}

.gis-admin-enterprises-page .gis-admin-enterprises-filterbar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: var(--space-1-5);
  align-items: end;
  background: color-mix(in srgb, var(--surface-elevated), transparent 10%);
  padding: var(--space-2);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-1);
}

.gis-admin-enterprises-page .gis-enterprise-filter-search {
  grid-column: span 2;
  min-width: min(100%, 260px);
}

.gis-admin-enterprises-page .gis-enterprise-quick-filters {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  flex-wrap: wrap;
  min-width: 0;
}

.gis-admin-enterprises-page .gis-enterprise-quick-filters .btn {
  min-width: 0;
}

.gis-admin-enterprises-page .gis-enterprise-quick-filters .btn.is-active {
  border-color: color-mix(in srgb, var(--primary), transparent 45%);
  background: color-mix(in srgb, var(--primary), transparent 88%);
  color: var(--primary);
}

.gis-admin-enterprises-page .gis-enterprise-filter-reset {
  width: 100%;
  height: var(--control-h-m, 36px);
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin-top: 0;
}

@media (max-width: 900px) {
  .gis-admin-enterprises-page .gis-admin-enterprises-filterbar {
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  }

  .gis-admin-enterprises-page .gis-enterprise-filter-search {
    grid-column: span 2;
  }

  .gis-admin-enterprises-page .gis-op-stack .gis-admin-enterprises-table-wrap {
    max-height: none;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .gis-admin-enterprises-page .gis-op-stack .gis-admin-enterprises-table-wrap::after {
    display: none;
  }

  .gis-admin-enterprises-page .gis-enterprise-table,
  .gis-admin-enterprises-page .gis-enterprise-table thead,
  .gis-admin-enterprises-page .gis-enterprise-table tbody,
  .gis-admin-enterprises-page .gis-enterprise-table tr,
  .gis-admin-enterprises-page .gis-enterprise-table td {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .gis-admin-enterprises-page .gis-enterprise-table thead {
    display: none;
  }

  .gis-admin-enterprises-page .gis-enterprise-table tbody {
    display: grid;
    gap: var(--space-1-5);
  }

  .gis-admin-enterprises-page .gis-enterprise-table tr {
    padding: var(--space-2);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), var(--muted) 10%);
    transition: background-color 140ms ease, border-color 140ms ease;
  }

  .gis-admin-enterprises-page .gis-enterprise-table tr:hover,
  .gis-admin-enterprises-page .gis-enterprise-table tr.is-selected {
    border-color: var(--border);
    background: color-mix(in srgb, var(--card), var(--accent) 8%);
  }

  .gis-admin-enterprises-page .gis-enterprise-table td,
  .gis-admin-enterprises-page .gis-enterprise-table tr:hover td {
    padding: 0;
    border: 0;
    background: transparent;
  }

  .gis-admin-enterprises-page .gis-enterprise-table td:not(:first-child) {
    display: grid;
    grid-template-columns: minmax(72px, 0.28fr) minmax(0, 1fr);
    gap: var(--space-1);
    align-items: start;
    margin-top: var(--space-1);
  }

  .gis-admin-enterprises-page .gis-enterprise-table td:not(:first-child)::before {
    color: var(--text-muted);
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    font-weight: 600;
  }

  .gis-admin-enterprises-page .gis-enterprise-date-cell {
    white-space: normal;
  }

  .gis-admin-enterprises-page .gis-enterprise-status-badge {
    width: fit-content;
  }
}

@media (max-width: 768px) {
  .gis-admin-enterprises-page .content.gis-admin-page-stack {
    width: 100%;
    max-width: calc(100vw - (var(--space-4) * 2));
    overflow-x: hidden;
  }

  .gis-admin-enterprises-page .gis-admin-enterprises-workspace,
  .gis-admin-enterprises-page .gis-admin-enterprises-list-card,
  .gis-admin-enterprises-page .gis-admin-enterprises-editor-card,
  .gis-admin-enterprises-page .gis-admin-enterprises-list-card .card-content,
  .gis-admin-enterprises-page .gis-admin-enterprises-filterbar {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .gis-admin-enterprises-page .gis-admin-enterprises-filterbar {
    grid-template-columns: 1fr;
  }

  .gis-admin-enterprises-page .gis-enterprise-filter-search {
    grid-column: auto;
  }

  .gis-admin-enterprises-page .gis-enterprise-quick-filters {
    display: grid;
    grid-template-columns: 1fr;
  }

  .gis-admin-enterprises-page .gis-enterprise-quick-filters .btn {
    width: 100%;
  }
}

.gis-admin-enterprises-page .gis-enterprise-industry-search .search-select-field {
  position: relative;
}

.gis-admin-enterprises-page .gis-enterprise-industry-search .search-select-icon {
  position: absolute;
  right: var(--space-3);
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--text-muted);
}

.gis-admin-enterprises-page .gis-industry-browse-hint {
  margin-top: var(--space-1);
}

.gis-admin-enterprises-page .gis-industry-option {
  display: grid;
  gap: 4px;
  text-align: left;
  align-items: start;
}

.gis-admin-enterprises-page .gis-industry-option-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  min-width: 0;
}

.gis-admin-enterprises-page .gis-industry-option-meta-item {
  font-size: var(--fs-2xs);
  line-height: 1.3;
  color: var(--text-muted);
}

.gis-admin-enterprises-page .gis-industry-option-title {
  font-size: var(--fs-sm);
  font-weight: 600;
  line-height: 1.4;
  color: var(--text);
  min-width: 0;
  word-break: keep-all;
}

.gis-admin-enterprises-page .gis-industry-option-group {
  display: flex;
  align-items: center;
  gap: var(--space-1-5);
  padding: var(--space-2) var(--space-3);
  border-top: 1px solid var(--border-subtle);
  background: color-mix(in srgb, var(--surface-elevated), transparent 10%);
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
}

.gis-admin-enterprises-page .gis-industry-option-group:first-child,
.gis-admin-enterprises-page .gis-industry-browse-back + .gis-industry-option-group {
  border-top: 0;
}

.gis-admin-enterprises-page .gis-industry-option-group-label {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--text);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gis-admin-enterprises-page .gis-industry-option-group-detail {
  font-size: var(--fs-xs);
  color: var(--text-muted);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gis-admin-enterprises-page .gis-industry-option-group-detail::before {
  content: '·';
  margin-right: var(--space-1);
}

.gis-admin-enterprises-page .gis-industry-browse-back {
  display: grid;
  gap: 2px;
  text-align: left;
  border-bottom: 1px solid var(--border-subtle);
}

.gis-admin-enterprises-page .gis-industry-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-1-5);
  padding-top: 0;
}

.gis-admin-enterprises-page .gis-industry-summary-item {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.gis-admin-enterprises-page .gis-industry-summary-label {
  font-size: var(--fs-2xs);
  font-weight: 600;
  color: var(--text-muted);
}

.gis-admin-enterprises-page .gis-industry-summary-value {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--foreground);
  font-weight: 500;
  font-size: var(--fs-xs);
}

.gis-portal-economy-page .gis-portal-economy-industry-group,
.gis-portal-economy-page .gis-portal-economy-city-group {
  grid-column: 1 / -1;
}

.gis-portal-economy-page .gis-enterprise-industry-search .search-select-field {
  position: relative;
}

.gis-portal-economy-page .gis-enterprise-industry-search .search-select-icon {
  position: absolute;
  right: var(--space-3);
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--text-muted);
}

.gis-portal-economy-page .gis-industry-browse-hint {
  margin-top: var(--space-1);
}

.gis-portal-economy-page .gis-industry-option {
  display: grid;
  gap: 4px;
  text-align: left;
  align-items: start;
}

.gis-portal-economy-page .gis-industry-option-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  min-width: 0;
}

.gis-portal-economy-page .gis-industry-option-meta-item {
  font-size: var(--fs-2xs);
  line-height: 1.3;
  color: var(--text-muted);
}

.gis-portal-economy-page .gis-industry-option-title {
  font-size: var(--fs-sm);
  font-weight: 600;
  line-height: 1.4;
  color: var(--text);
  min-width: 0;
  word-break: keep-all;
}

.gis-portal-economy-page .gis-industry-option-group {
  display: flex;
  align-items: center;
  gap: var(--space-1-5);
  padding: var(--space-2) var(--space-3);
  border-top: 1px solid var(--border-subtle);
  background: color-mix(in srgb, var(--surface-elevated), transparent 10%);
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
}

.gis-portal-economy-page .gis-industry-option-group:first-child,
.gis-portal-economy-page .gis-industry-browse-back + .gis-industry-option-group {
  border-top: 0;
}

.gis-portal-economy-page .gis-industry-option-group-label {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--text);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gis-portal-economy-page .gis-industry-option-group-detail {
  font-size: var(--fs-xs);
  color: var(--text-muted);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gis-portal-economy-page .gis-industry-option-group-detail::before {
  content: '·';
  margin-right: var(--space-1);
}

.gis-portal-economy-page .gis-industry-browse-back {
  display: grid;
  gap: 2px;
  text-align: left;
  border-bottom: 1px solid var(--border-subtle);
}

.gis-portal-economy-page .gis-industry-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-1-5);
  padding-top: var(--space-1);
}

.gis-portal-economy-page .gis-industry-summary-item {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.gis-portal-economy-page .gis-industry-summary-label {
  font-size: var(--fs-2xs);
  font-weight: 600;
  color: var(--text-muted);
}

.gis-portal-economy-page .gis-industry-summary-value {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--foreground);
  font-weight: 500;
  font-size: var(--fs-xs);
}

.gis-admin-enterprises-page .gis-se-match-disabled[hidden],
.gis-admin-enterprises-page .gis-se-match-panel[hidden] {
  display: none;
}

.gis-admin-enterprises-page .gis-se-match-panel {
  display: grid;
  gap: var(--space-1-5);
  min-width: 0;
}

.gis-admin-enterprises-page .gis-se-match-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-1-5);
  align-items: end;
  min-width: 0;
}

.gis-admin-enterprises-page .gis-enterprise-operator-controls {
  grid-template-columns: minmax(0, 1fr) minmax(9rem, 0.32fr) auto;
}

.gis-admin-enterprises-page .gis-se-match-search-group {
  min-width: 0;
}

.gis-admin-enterprises-page .gis-se-issuer-search .search-select-field {
  position: relative;
}

.gis-admin-enterprises-page .gis-enterprise-operator-panel .search-select-field {
  position: relative;
}

.gis-admin-enterprises-page .gis-se-issuer-search .search-select-icon {
  position: absolute;
  right: var(--space-3);
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--text-muted);
}

.gis-admin-enterprises-page .gis-enterprise-operator-panel .search-select-icon {
  position: absolute;
  right: var(--space-3);
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--text-muted);
}

.gis-admin-enterprises-page .gis-enterprise-operator-panel .search-select-field .input {
  padding-right: calc(var(--space-8) + var(--space-1));
}

.gis-admin-enterprises-page .gis-se-match-add {
  height: var(--control-h-m, 36px);
}

.gis-admin-enterprises-page .gis-se-match-list {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
}

.gis-admin-enterprises-page .gis-se-match-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-1-5);
  align-items: start;
  padding: var(--space-1-5);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--surface-elevated), transparent 16%);
}

.gis-admin-enterprises-page .gis-se-match-main {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.gis-admin-enterprises-page .gis-se-match-title {
  min-width: 0;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--foreground);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-admin-enterprises-page .gis-se-match-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  min-width: 0;
  color: var(--text-muted);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-admin-enterprises-page .gis-se-match-actions {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}

.gis-admin-enterprises-page .gis-se-match-actions .select-wrapper {
  width: min(10rem, 100%);
}

.gis-admin-enterprises-page .gis-se-match-empty {
  color: var(--text-muted);
  font-size: var(--fs-xs);
}

.gis-admin-enterprises-page .gis-admin-enterprises-filterbar--wiki {
  grid-template-columns: minmax(220px, 0.9fr) minmax(0, 1fr);
}

.gis-admin-enterprises-page .gis-admin-enterprises-inline-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-2);
  align-items: center;
}

.gis-admin-enterprises-page .gis-admin-enterprises-wiki-card .card-content {
  min-height: 100%;
}

.gis-admin-enterprises-page .gis-admin-enterprises-wiki-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}

.gis-admin-enterprises-page .gis-admin-enterprises-wiki-list {
  display: grid;
  gap: var(--space-2);
  max-height: 620px;
  overflow: auto;
  padding-right: var(--space-1);
}

.gis-admin-enterprises-page .gis-admin-enterprises-wiki-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-2);
  align-items: center;
  padding: var(--space-2);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--surface-elevated), transparent 22%);
}

.gis-admin-enterprises-page .gis-admin-enterprises-wiki-item-copy {
  min-width: 0;
}

.gis-admin-enterprises-page .gis-admin-enterprises-wiki-item-copy .font-medium {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gis-admin-enterprises-page .gis-admin-enterprises-wiki-item-actions {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1-5);
  flex-wrap: wrap;
  justify-content: flex-end;
}

.gis-admin-enterprises-page .gis-admin-enterprises-wiki-empty {
  min-height: 160px;
  display: grid;
  place-items: center;
  border: 1px dashed var(--border-subtle);
  border-radius: var(--radius-lg);
}

@media (max-width: 1399px) {
  .gis-admin-lodging-page .gis-admin-lodging-side-stack {
    grid-template-columns: minmax(0, 1fr);
  }

  .gis-admin-lodging-page .gis-admin-lodging-pricing-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gis-admin-lodging-page .gis-admin-lodging-pricing-preview {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gis-admin-enterprises-page .gis-admin-enterprises-grid--top {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .gis-admin-enterprises-page .gis-admin-enterprises-wiki-card {
    grid-column: 1 / -1;
  }
}

@media (max-width: 1280px) {
  .gis-admin-lodging-page .gis-admin-lodging-editor-grid {
    grid-template-columns: 1fr;
  }

  .gis-admin-lodging-page .gis-admin-lodging-connect-grid {
    grid-template-columns: 1fr;
  }

  .gis-admin-lodging-page .gis-admin-lodging-side-stack {
    grid-template-columns: 1fr;
  }

  .gis-admin-lodging-page .gis-admin-lodging-pricing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-admin-enterprises-page .gis-admin-enterprises-grid:not(.gis-admin-enterprises-workspace) {
    grid-template-columns: 1fr;
  }

  .gis-admin-enterprises-page .gis-admin-enterprises-editor-card {
    position: static;
  }
}

@media (max-width: 1100px) {
  .gis-admin-enterprises-page .gis-admin-enterprises-workspace {
    grid-template-columns: 1fr;
  }

  .gis-admin-enterprises-page .gis-admin-enterprises-editor-card {
    position: static;
  }
}

@media (max-width: 768px) {
  .gis-admin-lodging-page .gis-admin-lodging-pricing-grid,
  .gis-admin-lodging-page .gis-admin-lodging-pricing-preview,
  .gis-admin-lodging-page .gis-admin-lodging-image-content,
  .gis-admin-lodging-page .gis-admin-lodging-rate-toolbar,
  .gis-admin-lodging-page .gis-admin-lodging-rate-row-primary,
  .gis-admin-lodging-page .gis-admin-lodging-rate-row-secondary {
    grid-template-columns: 1fr;
  }

  .gis-admin-lodging-page .gis-admin-lodging-image-preview {
    min-height: 180px;
  }

  .gis-admin-lodging-page .gis-admin-lodging-pricing-meta,
  .gis-admin-lodging-page .gis-admin-lodging-rate-toolbar-meta {
    white-space: normal;
    text-align: left;
  }

  .gis-admin-enterprises-page .gis-admin-enterprises-filterbar {
    grid-template-columns: 1fr;
  }

  .gis-admin-enterprises-page .gis-enterprise-filter-search,
  .gis-admin-enterprises-page .gis-enterprise-filter-reset {
    grid-column: auto;
  }

  .gis-admin-enterprises-page .gis-enterprise-filter-reset {
    width: 100%;
    justify-self: stretch;
  }

  .gis-admin-enterprises-page .gis-enterprise-list-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .gis-admin-enterprises-page .gis-enterprise-list-footer .gis-pagination {
    margin-left: 0;
  }

  .gis-admin-enterprises-page .gis-enterprise-basic-grid,
  .gis-admin-enterprises-page .gis-enterprise-registration-grid {
    grid-template-columns: 1fr;
  }

  .gis-admin-enterprises-page .gis-enterprise-basic-grid > .input-group,
  .gis-admin-enterprises-page .gis-enterprise-registration-grid > .input-group,
  .gis-admin-enterprises-page .gis-enterprise-field-wide {
    grid-column: auto;
  }

  .gis-admin-enterprises-page .gis-admin-enterprises-table-wrap {
    max-height: none;
  }

  .gis-admin-enterprises-page .gis-admin-enterprises-editor-card .card-header,
  .gis-admin-enterprises-page .gis-admin-enterprises-list-card .card-header {
    flex-direction: column;
    align-items: stretch;
  }

  .gis-admin-enterprises-page .gis-admin-enterprises-editor-card .card-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .gis-admin-enterprises-page .gis-admin-enterprises-editor-card .card-actions > .btn {
    min-width: 0;
  }

  .gis-admin-enterprises-page .gis-industry-summary,
  .gis-portal-economy-page .gis-industry-summary {
    grid-template-columns: 1fr;
    gap: var(--space-1);
  }

  .gis-admin-enterprises-page .gis-se-match-controls,
  .gis-admin-enterprises-page .gis-se-match-item {
    grid-template-columns: 1fr;
  }

  .gis-admin-enterprises-page .gis-se-match-add {
    width: 100%;
  }

  .gis-admin-enterprises-page .gis-se-match-actions {
    justify-content: flex-start;
  }

  .gis-admin-enterprises-page .gis-admin-enterprises-inline-actions,
  .gis-admin-enterprises-page .gis-admin-enterprises-wiki-item {
    grid-template-columns: 1fr;
  }

  .gis-admin-enterprises-page .gis-admin-enterprises-wiki-meta {
    flex-direction: column;
    align-items: flex-start;
  }

  .gis-admin-enterprises-page .gis-admin-enterprises-wiki-item-actions {
    width: 100%;
    justify-content: flex-start;
  }
}

.gis-city-policy-page .city-policy-stack {
  gap: var(--space-stack-lg);
}

.gis-city-policy-page .city-policy-hero {
  margin-bottom: 0;
}

.gis-city-policy-page .city-policy-summary-grid {
  gap: var(--space-2);
}

.gis-city-policy-page .city-policy-summary-card {
  border-color: var(--border);
  box-shadow: none;
  background: color-mix(in srgb, var(--card), transparent 3%);
}

.gis-city-policy-page .city-policy-summary-date {
  font-size: var(--fs-body-lg);
  line-height: var(--lh-body-lg);
}

.gis-city-policy-page .city-policy-dashboard {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
  gap: var(--space-3);
  align-items: start;
}

.gis-city-policy-page .city-policy-main,
.gis-city-policy-page .city-policy-side {
  min-width: 0;
}

.gis-city-policy-page .city-policy-main {
  display: grid;
  gap: var(--space-3);
  align-content: start;
}

.gis-city-policy-page .city-policy-section-header {
  margin-bottom: 0;
}

.gis-city-policy-page .city-policy-section-header .section-description {
  max-width: none;
}

.gis-city-policy-page .city-policy-section-header--side {
  margin-bottom: 0;
}

.gis-city-policy-page .city-policy-policy-grid {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gis-city-policy-page #cityDevelopmentCriterionCard {
  grid-column: 1 / -1;
}

.gis-city-policy-page .city-policy-development-table-wrapper {
  max-height: 32rem;
  overflow: auto;
}

.gis-city-policy-page .city-policy-development-table {
  min-width: 52rem;
}

.gis-city-policy-page .city-policy-development-table th:not(:first-child),
.gis-city-policy-page .city-policy-development-table td:not(:first-child) {
  text-align: right;
  white-space: nowrap;
}

.gis-city-policy-page .city-policy-development-source {
  display: grid;
  justify-items: end;
  gap: var(--space-0-5);
  min-width: 0;
  text-align: right;
}

.gis-city-policy-page .city-policy-development-pricing {
  display: grid;
  gap: var(--space-3);
  padding-top: var(--space-4);
  border-top: var(--space-px) solid var(--border);
}

@media (max-width: 640px) {
  .gis-city-policy-page .city-policy-development-table {
    width: 100%;
    min-width: 0;
  }

  .gis-city-policy-page .city-policy-development-table td:first-child::before {
    content: none !important;
  }

  .gis-city-policy-page .city-policy-development-table td[data-label="지표 원천"] {
    white-space: normal;
    overflow-wrap: anywhere;
  }
}

.gis-city-policy-page .city-policy-card--subjects .table-wrapper {
  overflow-x: auto;
}

.gis-city-policy-page .city-policy-successor-review-table-wrapper {
  overflow-x: auto;
}

.gis-city-policy-page .city-policy-successor-review-table {
  min-width: 920px;
}

.gis-city-policy-page .city-policy-market-table-wrapper {
  overflow-x: auto;
}

.gis-city-policy-page .city-policy-market-table {
  min-width: 76rem;
  table-layout: fixed;
}

.gis-city-policy-page .city-policy-market-default {
  display: grid;
  gap: var(--space-3);
  padding: var(--space-3);
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--muted), transparent 46%);
}

.gis-city-policy-page .city-policy-market-default p {
  margin: var(--space-0-5) 0 0;
}

.gis-city-policy-page .city-policy-market-default-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-2);
  align-items: end;
}

.gis-city-policy-page .city-policy-market-default-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.gis-city-policy-page .city-policy-market-list {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
}

.gis-city-policy-page .city-policy-list-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.gis-city-policy-page .city-policy-list-footer .gis-pagination {
  flex: 0 1 auto;
  justify-content: flex-end;
  min-width: 0;
  overflow-x: auto;
}

.gis-city-policy-page .city-policy-market-status-select {
  min-width: 132px;
}

.gis-city-policy-page .city-policy-market-target-select {
  min-width: 124px;
}

.gis-city-policy-page .city-policy-market-table tr.is-excluded td {
  background: color-mix(in srgb, var(--muted) 42%, transparent);
}

.gis-city-policy-page .city-policy-market-table tr.is-excluded td:first-child > div:first-child {
  color: var(--muted-foreground);
}

.gis-city-policy-page .city-policy-market-credit-input {
  min-width: 116px;
}

.gis-city-policy-page .city-policy-market-multiplier-input {
  min-width: 88px;
}

.gis-city-policy-page .city-policy-market-effective {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}

.gis-city-policy-page .city-policy-market-effective strong {
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  font-weight: 600;
}

.gis-city-policy-page .city-policy-subject-layout {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: 1fr;
  align-items: start;
}

.gis-city-policy-page .city-policy-subject-include-panel,
.gis-city-policy-page .city-policy-subject-candidate {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--muted), transparent 42%);
}

.gis-city-policy-page .city-policy-subject-include-panel {
  display: grid;
  gap: var(--space-2);
  grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
  align-items: end;
  padding: var(--space-3);
}

.gis-city-policy-page .city-policy-subject-include-panel p,
.gis-city-policy-page .city-policy-subject-list-head p {
  margin: var(--space-0-5) 0 0;
}

.gis-city-policy-page .city-policy-subject-list-panel {
  min-width: 0;
  display: grid;
  gap: var(--space-2);
}

.gis-city-policy-page .city-policy-subject-list-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-2);
  padding-bottom: var(--space-1);
  border-bottom: 1px solid var(--border);
}

.gis-city-policy-page .city-policy-subject-candidate-list {
  display: grid;
  gap: var(--space-2);
  grid-column: 1 / -1;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  max-height: 220px;
  overflow: auto;
}

.gis-city-policy-page .city-policy-subject-candidate {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-2);
  align-items: center;
  padding: var(--space-2) var(--space-3);
}

.gis-city-policy-page .city-policy-subject-status-select {
  min-width: 124px;
}

.gis-city-policy-page .city-policy-status-stack {
  display: grid;
  gap: var(--space-0-5);
  align-content: start;
  min-width: 0;
}

.gis-city-policy-page .city-policy-status-note {
  max-width: 220px;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-city-policy-page .city-policy-subject-date {
  min-width: 112px;
}

.gis-city-policy-page .city-policy-subject-notes {
  min-width: 180px;
}

.gis-city-policy-page .city-policy-subject-table {
  min-width: 980px;
}

.gis-city-policy-page .city-policy-subject-table th,
.gis-city-policy-page .city-policy-subject-table td {
  vertical-align: middle;
}

.gis-city-policy-page .city-policy-subject-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-1);
  white-space: nowrap;
}

.gis-city-policy-page .city-policy-side {
  position: sticky;
  top: var(--space-4);
}

.gis-city-policy-page .city-policy-card {
  border-color: var(--border);
  box-shadow: none;
  background: color-mix(in srgb, var(--card), transparent 2%);
}

.gis-city-policy-page .city-policy-card--assignments {
  grid-column: 1 / -1;
}

.gis-city-policy-page .city-policy-card .card-description {
  max-width: 56ch;
}

.gis-city-policy-page .city-policy-card-heading {
  min-width: 0;
  display: grid;
  gap: var(--space-1);
}

.gis-city-policy-page .city-policy-card-title-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.gis-city-policy-page .city-policy-card .card-header-actions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.gis-city-policy-page .city-policy-content {
  gap: var(--space-3);
}

@media (max-width: 640px) {
  .gis-city-policy-page .gis-op-stack .city-policy-subject-table-wrapper,
  .gis-city-policy-page .gis-op-stack .city-policy-market-table-wrapper,
  .gis-city-policy-page .gis-op-stack .city-policy-successor-review-table-wrapper,
  .gis-city-policy-page .gis-op-stack .city-policy-pool-table-wrapper {
    max-height: none;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .gis-city-policy-page .gis-op-stack .city-policy-subject-table-wrapper::after,
  .gis-city-policy-page .gis-op-stack .city-policy-market-table-wrapper::after,
  .gis-city-policy-page .gis-op-stack .city-policy-successor-review-table-wrapper::after,
  .gis-city-policy-page .gis-op-stack .city-policy-pool-table-wrapper::after {
    display: none;
  }

  .gis-city-policy-page .city-policy-list-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .gis-city-policy-page .city-policy-list-footer .gis-pagination {
    justify-content: flex-start;
    width: 100%;
  }

  .gis-city-policy-page .city-policy-subject-table,
  .gis-city-policy-page .city-policy-market-table,
  .gis-city-policy-page .city-policy-successor-review-table,
  .gis-city-policy-page .city-policy-pool-table,
  .gis-city-policy-page .city-policy-subject-table thead,
  .gis-city-policy-page .city-policy-market-table thead,
  .gis-city-policy-page .city-policy-successor-review-table thead,
  .gis-city-policy-page .city-policy-pool-table thead,
  .gis-city-policy-page .city-policy-subject-table tbody,
  .gis-city-policy-page .city-policy-market-table tbody,
  .gis-city-policy-page .city-policy-successor-review-table tbody,
  .gis-city-policy-page .city-policy-pool-table tbody,
  .gis-city-policy-page .city-policy-subject-table tr,
  .gis-city-policy-page .city-policy-market-table tr,
  .gis-city-policy-page .city-policy-successor-review-table tr,
  .gis-city-policy-page .city-policy-pool-table tr,
  .gis-city-policy-page .city-policy-subject-table td,
  .gis-city-policy-page .city-policy-market-table td,
  .gis-city-policy-page .city-policy-successor-review-table td,
  .gis-city-policy-page .city-policy-pool-table td {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .gis-city-policy-page .city-policy-subject-table,
  .gis-city-policy-page .city-policy-market-table,
  .gis-city-policy-page .city-policy-successor-review-table,
  .gis-city-policy-page .city-policy-pool-table {
    min-width: 0;
    table-layout: auto;
  }

  .gis-city-policy-page .city-policy-subject-table thead,
  .gis-city-policy-page .city-policy-market-table thead,
  .gis-city-policy-page .city-policy-successor-review-table thead,
  .gis-city-policy-page .city-policy-pool-table thead {
    display: none;
  }

  .gis-city-policy-page .city-policy-subject-table tbody,
  .gis-city-policy-page .city-policy-market-table tbody,
  .gis-city-policy-page .city-policy-successor-review-table tbody,
  .gis-city-policy-page .city-policy-pool-table tbody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-city-policy-page .city-policy-subject-table tr,
  .gis-city-policy-page .city-policy-market-table tr,
  .gis-city-policy-page .city-policy-successor-review-table tr,
  .gis-city-policy-page .city-policy-pool-table tr {
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
  }

  .gis-city-policy-page .city-policy-subject-table td,
  .gis-city-policy-page .city-policy-market-table td,
  .gis-city-policy-page .city-policy-successor-review-table td,
  .gis-city-policy-page .city-policy-pool-table td,
  .gis-city-policy-page .city-policy-subject-table tr:hover td,
  .gis-city-policy-page .city-policy-market-table tr:hover td,
  .gis-city-policy-page .city-policy-successor-review-table tr:hover td,
  .gis-city-policy-page .city-policy-pool-table tr:hover td {
    padding: 0;
    border-bottom: 0;
    background: transparent;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .gis-city-policy-page .city-policy-subject-table td:not(:first-child),
  .gis-city-policy-page .city-policy-market-table td:not(:first-child),
  .gis-city-policy-page .city-policy-successor-review-table td:not(:first-child),
  .gis-city-policy-page .city-policy-pool-table td:not(:first-child) {
    display: grid;
    grid-template-columns: minmax(5rem, 0.34fr) minmax(0, 1fr);
    gap: var(--space-2);
    align-items: start;
    margin-top: var(--space-1);
  }

  .gis-city-policy-page .city-policy-subject-table td:not(:first-child)::before,
  .gis-city-policy-page .city-policy-market-table td:not(:first-child)::before,
  .gis-city-policy-page .city-policy-successor-review-table td:not(:first-child)::before,
  .gis-city-policy-page .city-policy-pool-table td:not(:first-child)::before {
    color: var(--muted-foreground);
    font-size: var(--fs-2xs);
    font-weight: 600;
    line-height: var(--lh-xs);
  }

  .gis-city-policy-page .city-policy-subject-table td[colspan],
  .gis-city-policy-page .city-policy-market-table td[colspan],
  .gis-city-policy-page .city-policy-successor-review-table td[colspan],
  .gis-city-policy-page .city-policy-pool-table td[colspan] {
    display: block;
  }

  .gis-city-policy-page .city-policy-subject-table td[colspan]::before,
  .gis-city-policy-page .city-policy-market-table td[colspan]::before,
  .gis-city-policy-page .city-policy-successor-review-table td[colspan]::before,
  .gis-city-policy-page .city-policy-pool-table td[colspan]::before {
    content: none;
  }
}

.gis-city-policy-page .city-policy-state-badge {
  width: fit-content;
  justify-content: flex-start;
}

.gis-city-policy-page .city-policy-card--criterion[data-enabled="true"] {
  border-color: color-mix(in srgb, var(--primary), var(--border) 55%);
  background: color-mix(in srgb, var(--card) 92%, var(--primary) 8%);
}

.gis-city-policy-page .city-policy-card--criterion[data-enabled="true"] .city-policy-state-badge {
  border-color: color-mix(in srgb, var(--primary), transparent 68%);
  background: color-mix(in srgb, var(--primary), transparent 88%);
  color: var(--primary);
}

.gis-city-policy-page .city-policy-toggle-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-3);
  align-items: center;
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--border);
}

.gis-city-policy-page .city-policy-toggle-copy {
  min-width: 0;
  display: grid;
  gap: var(--space-0-5);
}

.gis-city-policy-page .city-policy-inline-title {
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  font-weight: 600;
  color: var(--foreground);
}

.gis-city-policy-page .city-policy-config-grid,
.gis-city-policy-page .city-policy-profile-grid,
.gis-city-policy-page .city-policy-field-grid {
  display: grid;
  gap: var(--space-2);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gis-city-policy-page .city-policy-field-grid--side {
  grid-template-columns: 1fr;
}

.gis-city-policy-page .city-policy-inline-switch,
.gis-city-policy-page .city-policy-profile,
.gis-city-policy-page .city-policy-selected-user {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--muted), transparent 35%);
}

.gis-city-policy-page .city-policy-inline-switch {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  min-height: var(--control-h-m);
  padding: var(--space-2) var(--space-3);
}

.gis-city-policy-page .city-policy-profile {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-3);
  min-width: 0;
}

.gis-city-policy-page .city-policy-profile-heading {
  display: grid;
  gap: var(--space-1);
}

.gis-city-policy-page .city-policy-field {
  min-width: 0;
  display: grid;
  gap: var(--space-1);
}

.gis-city-policy-page .city-policy-field--grow {
  width: 100%;
}

.gis-city-policy-page .city-policy-field--span-2 {
  grid-column: 1 / -1;
}

.gis-city-policy-page .city-policy-field-label {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
}

.gis-city-policy-page .city-policy-field .input,
.gis-city-policy-page .city-policy-field .select-wrapper {
  width: 100%;
  min-width: 0;
}

.gis-city-policy-page .city-policy-search-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-2);
  align-items: end;
}

.gis-city-policy-page .city-policy-search-row > .btn {
  align-self: end;
  min-height: var(--control-h-s);
}

.gis-city-policy-page .city-policy-subject-toolbar,
.gis-city-policy-page .city-policy-market-toolbar {
  grid-template-columns: minmax(220px, 1fr) minmax(168px, 220px) max-content;
}

.gis-city-policy-page .city-policy-market-toolbar {
  grid-template-columns: minmax(220px, 1fr) repeat(2, minmax(148px, 190px)) max-content;
}

.gis-city-policy-page .city-policy-user-search-results {
  display: grid;
  gap: var(--space-2);
}

.gis-city-policy-page .city-policy-user-chip {
  min-height: auto;
  justify-content: flex-start;
  text-align: left;
  display: grid;
  gap: var(--space-0-5);
  padding: var(--space-2) var(--space-3);
}

.gis-city-policy-page .city-policy-selected-user {
  display: grid;
  gap: var(--space-1);
  padding: var(--space-2) var(--space-3);
}

.gis-city-policy-page .city-policy-summary-inline {
  display: grid;
  gap: var(--space-2);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gis-city-policy-page .city-policy-mini-stat {
  display: grid;
  gap: var(--space-0-5);
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--muted), transparent 42%);
}

.gis-city-policy-page .city-policy-mini-stat-label {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
}

.gis-city-policy-page .city-policy-mini-stat-value {
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  color: var(--foreground);
  font-weight: 600;
}

.gis-city-policy-page .city-policy-period-editor {
  display: grid;
  gap: var(--space-2);
}

.gis-city-policy-page .city-policy-period-editor-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-2);
}

.gis-city-policy-page .city-policy-period-editor-head p {
  margin: 0;
}

.gis-city-policy-page .city-policy-period-list {
  display: grid;
  gap: var(--space-2);
}

.gis-city-policy-page .city-policy-period-card {
  border-color: var(--border);
  background: color-mix(in srgb, var(--card), transparent 2%);
}

.gis-city-policy-page .city-policy-period-card[data-period-state="developing"] {
  border-color: color-mix(in srgb, var(--primary), var(--border) 60%);
}

.gis-city-policy-page .city-policy-period-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}

.gis-city-policy-page .city-policy-period-grid {
  display: grid;
  gap: var(--space-2);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gis-city-policy-page .city-policy-period-city-summary {
  grid-column: 1 / -1;
  display: grid;
  gap: var(--space-0-5);
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--muted), transparent 46%);
}

.gis-city-policy-page .city-policy-period-empty {
  border: 1px dashed var(--border);
  border-radius: var(--radius);
  padding: var(--space-3);
  background: color-mix(in srgb, var(--muted), transparent 48%);
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

.gis-city-policy-page .city-policy-meta {
  padding-top: var(--space-1);
  border-top: 1px solid var(--border);
}

.gis-city-policy-page .city-policy-result {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--space-2) var(--space-3);
  background: var(--muted);
  min-height: var(--control-h-m);
  display: flex;
  align-items: center;
}

/* Professional Stats Grid */
.gis-stats-grid {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  margin-bottom: var(--space-4);
}

.gis-stat-card {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-4);
  transition: transform 0.2s, box-shadow 0.2s;
}

.gis-stat-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

@media (max-width: 480px) {
  .gis-stat-card {
    padding: var(--space-3);
    gap: var(--space-3);
  }

  .gis-stat-icon {
    width: 40px;
    height: 40px;
  }

  .gis-stat-value {
    font-size: var(--fs-h3);
  }
}

@media (max-width: 1024px) {
  .gis-admin-page .gis-hero {
    align-items: flex-start;
  }

  .gis-admin-page .gis-toolbar {
    grid-template-columns: 1fr;
  }

  .gis-admin-page .gis-toolbar-actions {
    justify-content: flex-start;
  }

  .gis-city-policy-page .city-policy-dashboard,
  .gis-city-policy-page .city-policy-policy-grid,
  .gis-city-policy-page .city-policy-subject-layout,
  .gis-city-policy-page .city-policy-subject-toolbar,
  .gis-city-policy-page .city-policy-market-default-grid,
  .gis-city-policy-page .city-policy-market-toolbar,
  .gis-city-policy-page .city-policy-subject-candidate,
  .gis-city-policy-page .city-policy-config-grid,
  .gis-city-policy-page .city-policy-profile-grid,
  .gis-city-policy-page .city-policy-field-grid,
  .gis-city-policy-page .city-policy-period-grid {
    grid-template-columns: 1fr;
  }

  .gis-city-policy-page .city-policy-side {
    position: static;
  }

  .gis-city-policy-page .city-policy-field-grid--side {
    grid-template-columns: 1fr;
  }

  .gis-city-policy-page .city-policy-card--assignments {
    grid-column: auto;
  }

  .gis-city-policy-page .city-policy-section-header {
    margin-bottom: var(--space-2);
  }
}

@media (max-width: 640px) {
  .gis-admin-page .card-actions,
  .gis-admin-page .card-header-actions,
  .gis-admin-page .gis-actions-end {
    width: 100%;
    justify-content: stretch;
  }

  .gis-admin-page .card-actions > .btn,
  .gis-admin-page .card-header-actions > .btn,
  .gis-admin-page .gis-actions-end > .btn,
  .gis-admin-page .gis-toolbar-actions > .btn {
    width: 100%;
  }

  .gis-admin-lines-page .card-header--sticky,
  .gis-admin-stations-page .card-header--sticky {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-2);
  }

  .gis-admin-lines-page .card-header-actions,
  .gis-admin-stations-page .card-header-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-1);
    min-width: 0;
  }

  .gis-admin-lines-page .card-header-actions > .btn,
  .gis-admin-stations-page .card-header-actions > .btn {
    min-width: 0;
    padding-inline: var(--space-2);
    font-size: var(--fs-xs);
  }

  .gis-admin-page .gis-admin-table-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .gis-admin-page .gis-admin-table-footer .gis-pagination {
    justify-content: flex-start;
    width: 100%;
  }

  .gis-admin-enterprises-page .gis-admin-enterprises-editor-card .card-actions > .btn {
    width: 100%;
    min-width: 0;
  }

  .gis-city-policy-page .city-policy-search-row,
  .gis-city-policy-page .city-policy-toggle-row,
  .gis-city-policy-page .city-policy-subject-include-panel {
    grid-template-columns: 1fr;
  }

  .gis-city-policy-page .city-policy-card > .card-header,
  .gis-city-policy-page .city-policy-card > .card-header.card-header--split {
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-2);
  }

  .gis-city-policy-page .city-policy-card > .card-header > :first-child {
    width: 100%;
    min-width: 0;
  }

  .gis-city-policy-page .city-policy-card .card-header-actions {
    width: 100%;
    justify-content: flex-start;
  }

  .gis-city-policy-page .city-policy-summary-inline {
    grid-template-columns: 1fr;
  }

  .gis-city-policy-page .city-policy-period-editor-head {
    flex-direction: column;
    align-items: stretch;
  }

  .gis-city-policy-page .city-policy-market-default-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .gis-city-policy-page .city-policy-period-editor-head .btn {
    width: 100%;
  }

  .gis-city-policy-page .city-policy-subject-candidate .btn,
  .gis-city-policy-page .city-policy-subject-actions {
    width: 100%;
  }

  .gis-city-policy-page .city-policy-subject-actions {
    justify-content: stretch;
  }

  .gis-city-policy-page .city-policy-subject-actions .btn {
    flex: 1 1 0;
  }

  .gis-city-policy-page .city-policy-search-row .btn {
    width: 100%;
  }

  .gis-city-policy-page .city-policy-result {
    padding: var(--space-2);
  }
}

@media (max-width: 520px) {
  .gis-admin-page .gis-admin-list-actions {
    grid-template-columns: 1fr;
  }
}

.gis-stat-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--primary), transparent 90%);
}

.gis-stat-icon .material-symbols-outlined {
  font-size: 24px;
}

.gis-stat-info {
  display: flex;
  flex-direction: column;
  gap: var(--space-0-5);
}

.gis-stat-label {
  font-size: var(--fs-xs);
  font-weight: 500;
  color: var(--muted-foreground);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.gis-stat-value {
  font-size: var(--fs-h2);
  font-weight: 700;
  color: var(--foreground);
  line-height: 1.2;
}

.gis-stat-subtext {
  font-size: var(--fs-2xs);
  color: var(--muted-foreground);
}

/* Accent colors for stat icons */
.gis-stat-card .text-secondary {
  color: var(--secondary);
  background: color-mix(in srgb, var(--secondary), transparent 90%);
}

.gis-stat-card .text-info {
  color: var(--info);
  background: color-mix(in srgb, var(--info), transparent 90%);
}

.gis-stat-card .text-success {
  color: var(--success);
  background: color-mix(in srgb, var(--success), transparent 90%);
}

.gis-stat-card .text-warning {
  color: var(--warning);
  background: color-mix(in srgb, var(--warning), transparent 90%);
}

/* Responsive Card Grid */
.gis-card-grid {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.gis-card-grid.gis-card-grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gis-card-grid.gis-card-grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Tablet Breakpoint */
@media (max-width: 1024px) {
  .gis-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-card-grid.gis-card-grid-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Mobile Breakpoint */
@media (max-width: 640px) {

  .gis-card-grid,
  .gis-card-grid.gis-card-grid-2,
  .gis-card-grid.gis-card-grid-3 {
    grid-template-columns: 1fr;
  }
}

/* Number-focused stat cards for portal summary grids */
.gis-card-grid--stats .stat-card {
  display: grid;
  gap: var(--space-1);
  padding: var(--space-3);
}

.gis-card-grid--stats .stat-label {
  font-size: var(--fs-xs);
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--muted-foreground);
}

.gis-card-grid--stats .stat-value {
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
  font-weight: 800;
  letter-spacing: 0;
  color: var(--foreground);
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-card-grid--stats .stat-meta {
  font-size: var(--fs-xs);
  color: var(--muted-foreground);
}
.gis-portal-city-registration-page .city-reg-page-shell {
  gap: var(--space-8);
}

.gis-portal-city-registration-page {
  --city-reg-paper-rule: color-mix(in srgb, var(--border-default, var(--border)) 86%, transparent);
  --city-reg-paper-surface: color-mix(in srgb, var(--bg-paper, var(--card)) 96%, var(--surface) 4%);
}

.gis-portal-city-registration-page .city-reg-special-hero {
  display: grid;
  gap: var(--space-1);
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.gis-portal-city-registration-page .city-reg-special-hero .text-display {
  display: block;
  width: 100%;
  margin: 0;
  font-size: var(--fs-display-lg);
  font-weight: 400;
  letter-spacing: 0;
  line-height: var(--lh-display-lg);
  max-width: none;
}

.gis-portal-city-registration-page .city-reg-special-hero-status {
  display: none;
  margin: 0;
  font-size: var(--fs-display);
  font-weight: 400;
  line-height: var(--lh-display);
  letter-spacing: 0;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 640ms ease, transform 920ms cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
}

.gis-portal-city-registration-page .city-reg-special-hero-status.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.gis-portal-city-registration-page .city-reg-criteria-section {
  display: grid;
  gap: var(--space-3);
  padding-block: var(--space-4);
  border-block: var(--space-px) solid var(--city-reg-paper-rule);
}

.gis-portal-city-registration-page .city-reg-criteria-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  min-width: 0;
}

.gis-portal-city-registration-page .city-reg-criteria-title {
  margin: 0;
  font-size: var(--fs-h3);
  font-weight: 500;
  line-height: var(--lh-h3);
  letter-spacing: 0;
}
.gis-portal-city-registration-page .city-reg-criteria-section .city-reg-alert {
  padding: var(--space-3) 0 0;
  border: 0;
  border-top: var(--space-px) solid color-mix(in srgb, var(--city-reg-paper-rule), transparent 18%);
  border-radius: 0;
  background: transparent;
}
.gis-portal-city-registration-page .city-reg-area-card > .card-header {
  gap: var(--space-3);
  padding: var(--space-4) var(--space-4) var(--space-3);
  border-bottom: var(--space-px) solid var(--city-reg-paper-rule);
}

.gis-portal-city-registration-page .city-reg-area-card > .card-content {
  padding: var(--space-4);
}

.gis-portal-city-registration-page .city-reg-area-card .card-title {
  font-size: var(--fs-h3);
  font-weight: 500;
  line-height: var(--lh-h3);
}

.gis-portal-city-registration-page .city-reg-area-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(18rem, 0.55fr);
  gap: var(--space-4);
  align-items: stretch;
  min-width: 0;
}

.gis-portal-city-registration-page .city-reg-area-map-shell {
  position: relative;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-height: clamp(24rem, 48vw, 40rem);
  border: var(--space-px) solid var(--city-reg-paper-rule);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--surface) 82%, var(--background) 18%);
  overflow: hidden;
}

.gis-portal-city-registration-page .city-reg-area-map {
  width: 100%;
  height: 100%;
  min-height: clamp(24rem, 48vw, 40rem);
  display: block;
}

.gis-portal-city-registration-page .city-reg-area-map-feature {
  fill: color-mix(in srgb, var(--muted) 54%, transparent);
  stroke: color-mix(in srgb, var(--border) 86%, transparent);
  stroke-width: 0.08;
  cursor: default;
  transition: fill 160ms ease, stroke 160ms ease, opacity 160ms ease;
  vector-effect: non-scaling-stroke;
}

.gis-portal-city-registration-page .city-reg-area-map-feature.is-available {
  fill: color-mix(in srgb, var(--primary) 42%, var(--surface) 58%);
  stroke: color-mix(in srgb, var(--primary) 70%, var(--border) 30%);
  cursor: pointer;
}

.gis-portal-city-registration-page .city-reg-area-map-feature.is-reserved {
  fill: color-mix(in srgb, var(--warning) 34%, var(--surface) 66%);
  stroke: color-mix(in srgb, var(--warning) 60%, var(--border) 40%);
  cursor: pointer;
}

.gis-portal-city-registration-page .city-reg-area-map-feature.is-auction {
  fill: color-mix(in srgb, var(--accent) 42%, var(--surface) 58%);
  stroke: color-mix(in srgb, var(--accent) 68%, var(--border) 32%);
  cursor: pointer;
}

.gis-portal-city-registration-page .city-reg-area-map-feature.is-disabled {
  opacity: 1;
  fill: color-mix(in srgb, var(--surface) 34%, transparent);
  stroke: color-mix(in srgb, var(--border) 78%, var(--foreground) 22%);
}

.gis-portal-city-registration-page .city-reg-area-map-feature.is-selected {
  fill: color-mix(in srgb, var(--primary) 72%, var(--surface) 28%);
  stroke: color-mix(in srgb, var(--primary) 84%, var(--border) 16%);
  stroke-width: 0.12;
}

.gis-portal-city-registration-page .city-reg-area-map-linework {
  fill: none;
  stroke: color-mix(in srgb, var(--border) 72%, var(--foreground) 28%);
  stroke-width: 0.07;
  opacity: 0.78;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.gis-portal-city-registration-page .city-reg-area-map-linework--subdivision {
  stroke: color-mix(in srgb, var(--border) 84%, var(--foreground) 16%);
  stroke-width: 0.055;
  opacity: 0.68;
}

.gis-portal-city-registration-page .city-reg-area-map-outline {
  fill: none;
  stroke: color-mix(in srgb, var(--border) 56%, var(--foreground) 44%);
  stroke-width: 0.11;
  opacity: 0.9;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.gis-portal-city-registration-page .city-reg-area-map-outline.is-available {
  stroke: color-mix(in srgb, var(--primary) 58%, var(--foreground) 42%);
  opacity: 0.96;
}

.gis-portal-city-registration-page .city-reg-area-map-outline.is-reserved {
  stroke: color-mix(in srgb, var(--warning) 58%, var(--foreground) 42%);
  opacity: 0.96;
}

.gis-portal-city-registration-page .city-reg-area-map-outline.is-auction {
  stroke: color-mix(in srgb, var(--accent) 58%, var(--foreground) 42%);
  opacity: 0.96;
}

.gis-portal-city-registration-page .city-reg-area-map-outline.is-selected {
  stroke: color-mix(in srgb, var(--primary) 78%, var(--foreground) 22%);
  stroke-width: 0.15;
  opacity: 1;
}

.gis-portal-city-registration-page .city-reg-area-map-status {
  position: absolute;
  left: var(--space-3);
  right: var(--space-3);
  bottom: var(--space-3);
  z-index: 2;
  margin: 0;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  pointer-events: none;
}

.gis-portal-city-registration-page .city-reg-area-map-status:empty {
  display: none;
}

.gis-portal-city-registration-page .city-reg-area-side {
  display: grid;
  align-content: start;
  gap: var(--space-3);
  min-width: 0;
}

.gis-portal-city-registration-page .city-reg-area-selected,
.gis-portal-city-registration-page .city-reg-area-price-grid,
.gis-portal-city-registration-page .city-reg-area-list {
  border: var(--space-px) solid var(--city-reg-paper-rule);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--surface) 72%, transparent);
}

.gis-portal-city-registration-page .city-reg-area-selected {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: var(--space-3);
  padding: var(--space-3);
  min-width: 0;
}

.gis-portal-city-registration-page .city-reg-area-selected-label,
.gis-portal-city-registration-page .city-reg-area-price-grid span {
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  font-weight: 650;
  line-height: var(--lh-2xs);
}

.gis-portal-city-registration-page .city-reg-area-selected-name {
  margin-top: var(--space-1);
  font-size: var(--fs-body-lg);
  font-weight: 600;
  line-height: var(--lh-body-lg);
  overflow-wrap: anywhere;
}

.gis-portal-city-registration-page .city-reg-area-selected-meta {
  margin-top: var(--space-1);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  overflow-wrap: anywhere;
}

.gis-portal-city-registration-page .city-reg-area-selected-state {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--space-6);
  padding: var(--space-0-5) var(--space-2);
  border: var(--space-px) solid var(--city-reg-paper-rule);
  border-radius: var(--radius-sm);
  color: var(--foreground);
  font-size: var(--fs-xs);
  font-weight: 600;
  line-height: var(--lh-xs);
  white-space: nowrap;
}

.gis-portal-city-registration-page .city-reg-area-price-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
}

.gis-portal-city-registration-page .city-reg-area-price-grid > div {
  display: grid;
  gap: var(--space-1);
  padding: var(--space-3);
  min-width: 0;
}

.gis-portal-city-registration-page .city-reg-area-price-grid > div + div {
  border-left: var(--space-px) solid var(--city-reg-paper-rule);
}

.gis-portal-city-registration-page .city-reg-area-price-grid strong {
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: var(--lh-body);
  overflow-wrap: anywhere;
}

.gis-portal-city-registration-page .city-reg-area-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
}

.gis-portal-city-registration-page .city-reg-area-actions .btn {
  min-width: 0;
  justify-content: center;
}

.gis-portal-city-registration-page .city-reg-area-list {
  display: grid;
  max-height: 20rem;
  overflow: auto;
}

.gis-portal-city-registration-page .city-reg-area-list-button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-2);
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border: 0;
  border-bottom: var(--space-px) solid var(--city-reg-paper-rule);
  background: transparent;
  color: var(--foreground);
  text-align: left;
  cursor: pointer;
}

.gis-portal-city-registration-page .city-reg-area-list-button:last-child {
  border-bottom: 0;
}

.gis-portal-city-registration-page .city-reg-area-list-button:hover,
.gis-portal-city-registration-page .city-reg-area-list-button:focus-visible,
.gis-portal-city-registration-page .city-reg-area-list-button.is-selected {
  background: color-mix(in srgb, var(--foreground) 8%, transparent);
  outline: none;
}

.gis-portal-city-registration-page .city-reg-area-list-name,
.gis-portal-city-registration-page .city-reg-area-list-meta {
  min-width: 0;
  overflow-wrap: anywhere;
}

.gis-portal-city-registration-page .city-reg-area-list-name {
  font-size: var(--fs-sm);
  font-weight: 600;
  line-height: var(--lh-sm);
}

.gis-portal-city-registration-page .city-reg-area-list-meta,
.gis-portal-city-registration-page .city-reg-area-list-price {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-portal-city-registration-page .city-reg-area-list-price {
  justify-self: end;
  white-space: nowrap;
}

.gis-portal-city-registration-page .city-reg-area-list-empty {
  padding: var(--space-4);
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

.gis-portal-city-registration-page .city-reg-panel {
  position: relative;
  border-color: var(--city-reg-paper-rule);
  border-radius: var(--radius-sm);
  background: var(--city-reg-paper-surface);
  box-shadow: none;
  min-width: 0;
  overflow: hidden;
  transition: border-color 180ms ease, background-color 180ms ease;
}

.gis-portal-city-registration-page .city-reg-panel--wide {
  grid-column: 1 / -1;
}

.gis-portal-city-registration-page .city-reg-panel:hover,
.gis-portal-city-registration-page .city-reg-panel:focus-within {
  border-color: color-mix(in srgb, var(--foreground) 26%, var(--city-reg-paper-rule));
}

.gis-portal-city-registration-page .city-reg-panel--context {
  background: var(--city-reg-paper-surface);
}

.gis-portal-city-registration-page .city-reg-panel .card-header {
  align-items: start;
}

.gis-portal-city-registration-page .city-reg-context-card > .card-header {
  gap: var(--space-3);
  padding: var(--space-4) var(--space-4) var(--space-3);
  border-bottom: var(--space-px) solid var(--city-reg-paper-rule);
}

.gis-portal-city-registration-page .city-reg-context-card > .card-content {
  padding: var(--space-4);
}

.gis-portal-city-registration-page .city-reg-context-card .card-title {
  font-size: var(--fs-h3);
  font-weight: 500;
  line-height: var(--lh-h3);
}

.city-reg-context-card {
  border-color: var(--border);
  box-shadow: none;
}

.gis-portal-city-registration-page .city-reg-context-grid {
  gap: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: var(--space-px) solid var(--city-reg-paper-rule);
  border-left: var(--space-px) solid var(--city-reg-paper-rule);
}

.city-reg-card-content {
  display: grid;
  gap: var(--space-3);
}

.gis-portal-city-registration-page .city-reg-card-content {
  min-width: 0;
}

.gis-portal-city-registration-page .gis-page-hero-card .card-content {
  align-items: start;
}
.city-reg-summary-card {
  border-color: var(--border);
  background: color-mix(in srgb, var(--card), transparent 3%);
  box-shadow: none;
}

.gis-portal-city-registration-page .city-reg-context-card,
.gis-portal-city-registration-page .city-reg-summary-card {
  border-color: var(--city-reg-paper-rule);
  border-radius: var(--radius-sm);
  box-shadow: none;
}

.gis-portal-city-registration-page .city-reg-summary-card {
  display: block;
  background: transparent;
  border: 0;
  border-right: var(--space-px) solid var(--city-reg-paper-rule);
  border-bottom: var(--space-px) solid var(--city-reg-paper-rule);
  border-radius: 0;
  min-width: 0;
}

.city-reg-summary-card .stat-card {
  padding: var(--space-3);
}

.gis-portal-city-registration-page .city-reg-summary-card .stat-card {
  display: grid;
  align-content: start;
  gap: var(--space-1);
  min-height: calc(var(--space-12) + var(--space-4));
  padding: var(--space-3);
}

.gis-portal-city-registration-page .city-reg-summary-card .stat-label {
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  font-weight: 650;
  line-height: var(--lh-2xs);
}

.city-reg-summary-card .stat-value {
  font-size: var(--fs-body-lg);
  line-height: var(--lh-body-lg);
}

.gis-portal-city-registration-page .city-reg-summary-card .stat-value {
  font-size: var(--fs-body-lg);
  font-weight: 600;
  line-height: var(--lh-body-lg);
}

.city-reg-summary-card .stat-meta {
  min-height: calc(var(--lh-xs) * 2);
  display: flex;
  align-items: flex-end;
}

.gis-portal-city-registration-page .city-reg-summary-card .stat-meta {
  min-height: 0;
  display: block;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-portal-city-registration-page .city-reg-summary-card .stat-value,
.gis-portal-city-registration-page .city-reg-summary-card .stat-meta {
  min-width: 0;
  overflow-wrap: anywhere;
}

@media (prefers-reduced-motion: reduce) {
  .gis-portal-buildings-page .gis-create-progress-bar,
  .gis-portal-buildings-page #buildingCreateCard{
    transition: none;
  }}

.city-reg-alert .alert-title {
  margin-bottom: var(--space-0-5);
}
@media (max-width: 1200px) {
  .gis-portal-city-registration-page .city-reg-context-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .gis-portal-city-registration-page .city-reg-area-workspace {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.45fr);
  }
}

@media (max-width: 720px) {
  .gis-portal-city-registration-page .city-reg-criteria-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: var(--space-1);
  }

  .gis-portal-city-registration-page .city-reg-context-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .gis-portal-city-registration-page .city-reg-area-workspace {
    grid-template-columns: 1fr;
  }

  .gis-portal-city-registration-page .city-reg-area-map,
  .gis-portal-city-registration-page .city-reg-area-map-shell {
    min-height: 20rem;
  }

  .gis-portal-city-registration-page .city-reg-area-actions {
    grid-template-columns: 1fr;
  }

}

.gis-portal-city-registration-page .city-reg-context-header-side {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.gis-portal-city-registration-page .city-reg-context-header-side .badge {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

@media (max-width: 480px) {
  .gis-portal-city-registration-page .city-reg-page-shell {
    gap: var(--space-4);
  }

  .gis-portal-city-registration-page .city-reg-special-hero .text-display {
    font-size: var(--fs-h1);
    line-height: var(--lh-h1);
  }

  .gis-portal-city-registration-page .city-reg-criteria-section {
    gap: var(--space-2);
    padding-block: var(--space-3);
  }
  .gis-portal-city-registration-page .city-reg-area-card > .card-header,
  .gis-portal-city-registration-page .city-reg-context-card > .card-header,
  .gis-portal-city-registration-page .city-reg-area-card > .card-content,
  .gis-portal-city-registration-page .city-reg-context-card > .card-content {
    padding: var(--space-3);
  }

  .gis-portal-city-registration-page .city-reg-area-map,
  .gis-portal-city-registration-page .city-reg-area-map-shell {
    min-height: 16rem;
  }

  .gis-portal-city-registration-page .city-reg-area-selected,
  .gis-portal-city-registration-page .city-reg-area-list-button {
    grid-template-columns: minmax(0, 1fr);
  }

  .gis-portal-city-registration-page .city-reg-area-selected-state,
  .gis-portal-city-registration-page .city-reg-area-list-price {
    justify-self: start;
  }

  .gis-portal-city-registration-page .city-reg-area-list {
    max-height: none;
  }

  .gis-portal-city-registration-page .city-reg-context-grid {
    grid-template-columns: 1fr;
  }

  .gis-portal-city-registration-page .city-reg-context-header-side {
    width: 100%;
    justify-content: flex-start;
  }

  .gis-portal-city-registration-page .city-reg-area-price-grid {
    grid-template-columns: 1fr;
  }

  .gis-portal-city-registration-page .city-reg-area-price-grid > div + div {
    border-left: 0;
    border-top: var(--space-px) solid var(--city-reg-paper-rule);
  }
}

/* Standardized Form Grid for Input Groups */
/* GIS Admin Premium Layouts */
.gis-layout .card-header--sticky {
  position: sticky;
  top: 0;
  z-index: 10;
  background: color-mix(in srgb, var(--card) 85%, transparent);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border);
}

.gis-entity-list {
  max-height: calc(100vh - 280px);
  overflow-y: auto;
}

.gis-form-container {
  max-height: calc(100vh - 280px);
  overflow-y: auto;
  position: relative;
}

.gis-sticky-footer {
  position: sticky;
  bottom: 0;
  background: color-mix(in srgb, var(--card) 95%, transparent);
  backdrop-filter: blur(8px);
  padding: var(--space-3) var(--space-4);
  border-top: 1px solid var(--border);
  margin: 0 calc(var(--space-4) * -1) calc(var(--space-4) * -1);
  display: flex;
  justify-content: flex-end;
  gap: var(--space-2);
  z-index: 5;
}

/* Modal Enhancements for GIS */
.hz-modal[data-gis-modal] .hz-modal-content {
  max-width: var(--admin-size-640);
  border: 1px solid var(--border);
  box-shadow: 0 16px 48px -12px rgba(0, 0, 0, 0.5);
}

.gis-search-item {
  transition: background-color 0.15s ease, color 0.15s ease;
  border-radius: var(--radius-sm);
}

.gis-search-item:hover,
.gis-search-item.active {
  background: var(--accent);
  color: var(--accent-foreground);
}

.gis-stop-item {
  cursor: grab;
  transition: transform 0.2s ease;
}

.gis-stop-item:active {
  cursor: grabbing;
}

.gis-reorder-actions {
  display: flex;
  gap: 2px;
}

.gis-reorder-btn {
  opacity: 0.3;
  transition: opacity 0.2s;
}

.gis-stop-item:hover .gis-reorder-btn {
  opacity: 1;
}

/* Form refinement */
.gis-form-grid {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.gis-admin-personas-page .gis-admin-personas-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
}

.gis-admin-personas-page .gis-admin-personas-metric {
  display: grid;
  gap: var(--space-1);
}

.gis-admin-personas-page .gis-admin-personas-metric strong {
  color: var(--foreground);
  font-size: var(--fs-h2);
  font-weight: 650;
  line-height: var(--lh-h2);
}

.gis-admin-personas-page .gis-admin-personas-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(22rem, 0.62fr);
  gap: var(--space-4);
  align-items: start;
}

.gis-admin-personas-page .gis-admin-personas-table-wrap {
  max-height: none;
  overflow: visible;
}

.gis-admin-personas-page .gis-admin-personas-detail-card {
  position: sticky;
  top: var(--space-4);
}

.gis-admin-personas-page .gis-admin-personas-detail-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
  min-width: 0;
}

.gis-admin-personas-page .gis-admin-personas-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-2);
  margin: 0;
}

.gis-admin-personas-page .gis-admin-personas-meta div {
  min-width: 0;
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--muted), transparent 42%);
}

.gis-admin-personas-page .gis-admin-personas-meta dt {
  margin: 0 0 var(--space-1);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 600;
}

.gis-admin-personas-page .gis-admin-personas-meta dd {
  margin: 0;
  overflow: hidden;
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-admin-personas-page .gis-admin-personas-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.gis-admin-personas-page .gis-admin-personas-location {
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--muted), transparent 48%);
  color: var(--foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-body);
}

.gis-admin-personas-page .gis-admin-personas-json {
  max-height: 18rem;
  margin: 0;
  overflow: auto;
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--background), var(--foreground) 6%);
  color: var(--muted-foreground);
  font: var(--fs-xs)/1.55 var(--font-mono, "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
  white-space: pre-wrap;
}

@media (max-width: 1100px) {
  .gis-admin-personas-page .gis-admin-personas-layout {
    grid-template-columns: 1fr;
  }

  .gis-admin-personas-page .gis-admin-personas-detail-card {
    position: static;
  }
}

@media (max-width: 720px) {
  .gis-admin-personas-page .gis-admin-personas-summary,
  .gis-admin-personas-page .gis-admin-personas-meta {
    grid-template-columns: 1fr;
  }
}

.gis-hero-title {
  display: grid;
  gap: var(--space-1);
}

.gis-hero-title .text-display,
.gis-hero-title h1.text-display,
.gis-hero-title h1 {
  font-weight: 400;
  letter-spacing: 0;
}

.gis-search {
  width: 100%;
  min-width: 0;
}

.gis-search-wrapper {
  width: 100%;
}

.gis-search .input {
  padding-right: calc(var(--space-1) + var(--control-h-s) + var(--space-2));
}

.gis-search-submit {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--control-h-s);
  height: var(--control-h-s);
  border-radius: var(--radius);
  color: var(--muted-foreground);
}

.gis-search-submit:hover {
  color: var(--foreground);
  background: var(--hover-overlay);
}

.gis-search-submit .hz-icon {
  font-size: var(--control-icon-m);
}

/* Public GIS Search page */
.gis-search-page .gis-search-shell {
  width: min(100%, 1080px);
  margin-inline: auto;
  gap: var(--space-3);
}

.gis-search-page .gis-search-hero,
.gis-search-page .gis-search-results-card {
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--card), var(--background) 12%);
}

.gis-search-page .gis-search-hero-body {
  display: grid;
  gap: var(--space-4);
  padding: var(--space-4);
}

.gis-search-page .gis-search-title-stack {
  display: grid;
  gap: var(--space-1);
}

.gis-search-page .gis-search-title-stack .text-display {
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.1;
}

.gis-search-page .gis-search-description {
  margin: 0;
  max-width: 64ch;
  color: color-mix(in srgb, var(--foreground), transparent 18%);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
}

.gis-search-page .gis-search-form {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(160px, 180px) minmax(136px, 152px) auto auto;
  gap: var(--space-2);
  align-items: end;
}

.gis-search-page .gis-search-query-field {
  min-width: 0;
}

.gis-search-page .gis-search-input,
.gis-search-page .gis-search-form .select,
.gis-search-page .gis-search-form .btn {
  min-height: var(--control-h, 2.75rem);
}

.gis-search-page .gis-search-form .btn {
  white-space: nowrap;
}

.gis-search-page .gis-search-results-header {
  align-items: flex-start;
}

.gis-search-page .gis-search-results-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--control-h-s);
  min-width: calc(var(--space-10) * 2);
  padding-inline: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--muted), transparent 28%);
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 600;
  white-space: nowrap;
}

.gis-search-page .gis-search-results-content {
  display: grid;
  gap: var(--space-2);
}

.gis-search-page .gis-search-results-list {
  display: grid;
  gap: var(--space-4);
}

.gis-search-page .gis-search-result-group {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
}

.gis-search-page .gis-search-result-group-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-2);
  padding-bottom: var(--space-1);
  border-bottom: 1px solid color-mix(in srgb, var(--border), transparent 18%);
}

.gis-search-page .gis-search-result-group-head h3 {
  margin: 0;
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 700;
  line-height: var(--lh-sm);
}

.gis-search-page .gis-search-result-group-head span {
  color: color-mix(in srgb, var(--foreground), transparent 36%);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  white-space: nowrap;
}

.gis-search-page .gis-search-result-group-list {
  display: grid;
  gap: var(--space-1);
  margin-inline: calc(var(--space-2) * -1);
}

.gis-search-page .gis-search-result-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: var(--space-3);
  min-width: 0;
  padding: var(--space-2);
  border: 1px solid transparent;
  border-radius: var(--radius);
  color: inherit;
  text-decoration: none;
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease;
}

.gis-search-page .gis-search-result-item:hover {
  background: color-mix(in srgb, var(--foreground), transparent 96%);
  border-color: color-mix(in srgb, var(--border), transparent 30%);
}

a.gis-search-result-item:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}

.gis-search-page .gis-search-result-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--muted), transparent 30%);
  color: color-mix(in srgb, var(--foreground), transparent 28%);
}

.gis-search-page .gis-search-result-item:hover .gis-search-result-icon {
  background: color-mix(in srgb, var(--primary), transparent 86%);
  color: color-mix(in srgb, var(--primary), var(--foreground) 22%);
}

.gis-search-page .gis-search-result-icon .hz-icon {
  font-size: var(--control-icon-m, 1.25rem);
}

.gis-search-page .gis-search-result-body {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
}

.gis-search-page .gis-search-result-headline {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-1) var(--space-2);
  min-width: 0;
}

.gis-search-page .gis-search-result-title {
  color: color-mix(in srgb, var(--primary), var(--foreground) 32%);
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: var(--lh-sm);
  overflow-wrap: anywhere;
}

.gis-search-page .gis-search-result-item:hover .gis-search-result-title {
  text-decoration: underline;
  text-underline-offset: 0.16em;
}

.gis-search-page .gis-search-result-status {
  display: inline-flex;
  align-items: center;
  padding: 0 var(--space-1-5);
  border: 1px solid color-mix(in srgb, var(--border), transparent 8%);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--muted), transparent 22%);
  color: color-mix(in srgb, var(--foreground), transparent 28%);
  font-size: var(--fs-2xs);
  font-weight: 600;
  line-height: 1.7;
  white-space: nowrap;
}

.gis-search-page .gis-search-result-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1) var(--space-2);
  min-width: 0;
  color: color-mix(in srgb, var(--foreground), transparent 30%);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-search-page .gis-search-result-meta span:not(:last-child)::after {
  content: "·";
  margin-left: var(--space-2);
  color: color-mix(in srgb, var(--foreground), transparent 54%);
}

.gis-search-page .gis-search-result-code {
  font-family: var(--font-mono);
  overflow-wrap: anywhere;
}

.gis-search-page .gis-search-type-browse {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-2);
  margin-top: var(--space-4);
  max-width: 46rem;
}

.gis-search-page .gis-search-type-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1-5);
  padding: var(--space-1-5) var(--space-3);
  border: 1px solid var(--border);
  border-radius: 999px;
  background: color-mix(in srgb, var(--card), var(--background) 6%);
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease;
}

.gis-search-page .gis-search-type-chip:hover {
  border-color: color-mix(in srgb, var(--primary), transparent 40%);
  background: color-mix(in srgb, var(--primary), transparent 90%);
}

.gis-search-page .gis-search-type-chip .hz-icon {
  font-size: var(--control-icon-s, 1.125rem);
  color: color-mix(in srgb, var(--foreground), transparent 32%);
}

.gis-search-page .gis-search-type-chip:hover .hz-icon {
  color: color-mix(in srgb, var(--primary), var(--foreground) 20%);
}

.gis-search-page .gis-search-type-chip:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}

.gis-search-page .gis-search-pagination,
.gis-search-page .gis-search-section-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  padding-top: var(--space-2);
}

.gis-search-page .gis-search-section-pagination {
  justify-content: flex-start;
  padding-top: var(--space-1);
}

.gis-search-page .gis-search-page-numbers {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
}

.gis-search-page .gis-search-page-btn,
.gis-search-page .gis-search-page-nav {
  min-width: var(--control-h-s);
  height: var(--control-h-s);
  padding-inline: var(--space-2);
  border: 1px solid transparent;
  border-radius: var(--radius);
  background: transparent;
  color: color-mix(in srgb, var(--foreground), transparent 18%);
  font-size: var(--fs-sm);
  line-height: 1;
}

.gis-search-page .gis-search-page-btn:hover,
.gis-search-page .gis-search-page-nav:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--border-strong), transparent 18%);
  background: color-mix(in srgb, var(--foreground), transparent 94%);
  color: var(--foreground);
}

.gis-search-page .gis-search-page-btn.is-active {
  border-color: var(--primary);
  background: color-mix(in srgb, var(--primary), transparent 86%);
  color: var(--foreground);
  font-weight: 700;
}

.gis-search-page .gis-search-page-nav:disabled {
  opacity: 0.42;
  cursor: default;
}

.gis-search-page .gis-search-page-gap {
  min-width: var(--space-4);
  color: color-mix(in srgb, var(--foreground), transparent 46%);
  text-align: center;
  line-height: var(--control-h-s);
}

.gis-search-page .gis-search-empty-state {
  min-height: calc(var(--space-10) * 4);
}

@media (max-width: 960px) {
  .gis-search-page .gis-search-form {
    grid-template-columns: minmax(0, 1fr) minmax(152px, 0.42fr);
  }

  .gis-search-page .gis-search-query-field {
    grid-column: 1 / -1;
  }

  .gis-search-page .gis-search-submit-btn,
  .gis-search-page .gis-search-reset-btn {
    width: 100%;
  }
}

@media (max-width: 640px) {
  .gis-search-page .gis-search-shell {
    gap: var(--space-2);
  }

  .gis-search-page .gis-search-hero-body {
    padding: var(--space-3);
  }

  .gis-search-page .gis-search-form {
    grid-template-columns: minmax(0, 1fr);
  }

  .gis-search-page .gis-search-query-field {
    grid-column: auto;
  }

  .gis-search-page .gis-search-results-header {
    display: grid;
    gap: var(--space-2);
  }

  .gis-search-page .gis-search-results-count {
    justify-self: start;
  }

  .gis-search-page .gis-search-result-item {
    padding-block: var(--space-2);
  }

  .gis-search-page .gis-search-result-group-head {
    align-items: flex-start;
  }

  .gis-search-page .gis-search-pagination {
    justify-content: flex-start;
  }

  .gis-search-page .gis-search-page-numbers {
    order: 3;
    width: 100%;
    justify-content: flex-start;
  }
}

.gis-tree {
  display: grid;
  gap: var(--space-1);
}

.gis-tree-compact {
  gap: calc(var(--space-1) - var(--space-px));
}

.gis-admin-areas-grid {
  display: grid;
  gap: var(--space-3);
  margin-top: var(--space-3);
  align-items: start;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.gis-admin-areas-tree {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
}

.gis-admin-areas-tree-filter-grid {
  align-items: end;
}

.gis-admin-areas-tree-filter-grid .input-group,
.gis-admin-areas-tree-filter-grid .select-wrapper {
  min-width: 0;
}

.gis-admin-areas-filter-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-1);
  align-items: center;
}

.gis-admin-areas-status-select {
  min-width: 0;
}

.gis-admin-areas-refresh-btn {
  min-height: var(--control-h-s);
  padding-inline: var(--space-3);
  font-size: var(--control-font-s);
  white-space: nowrap;
}

.gis-admin-areas-tree-card .card-content {
  padding: var(--space-2);
}

.gis-admin-areas-tree-body {
  max-height: calc(var(--space-12) * 10);
  overflow: auto;
}

.gis-city-title {
  font-size: var(--fs-h2);
  font-weight: 600;
  letter-spacing: 0;
  line-height: var(--lh-h2);
}

.gis-form-section-title {
  margin-bottom: var(--space-2);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted-foreground);
}

.gis-page-hero-card .card-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: var(--space-4);
}

.gis-body[class*="gis-portal-"] .gis-page-hero-card,
.gis-portal-home-page .gis-portal-home-hero {
  border: none;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.gis-body[class*="gis-portal-"] .gis-page-hero-card .card-content,
.gis-portal-home-page .gis-portal-home-hero .card-content {
  padding: 0;
}

.gis-page-hero-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-2);
}

.gis-page-hero-actions > * {
  min-width: 0;
}

.gis-page-summary-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid var(--border);
}

.gis-page-summary-copy {
  min-width: 0;
  display: grid;
  gap: var(--space-0-5);
}

.gis-page-summary-value {
  font-size: var(--fs-body-lg);
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-entity-detail-page .gis-entity-detail-shell {
  gap: var(--space-4);
  font-family: var(--font-sans-locale), var(--font-sans-global), var(--font-sans-en);
}

.gis-entity-detail-page .gis-entity-hero-card {
  border: none;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.gis-entity-detail-page .gis-entity-hero-card .card-content {
  padding: 0;
}

.gis-entity-detail-page .gis-entity-hero-body {
  display: grid;
  gap: var(--space-3);
}

.gis-entity-detail-page .gis-entity-title-stack {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
}

.gis-entity-detail-page .gis-entity-title-stack .text-display {
  font-weight: 520;
  letter-spacing: 0;
  line-height: 1.12;
}

.gis-entity-detail-page .gis-entity-subtitle {
  margin: 0;
  color: color-mix(in srgb, var(--foreground), transparent 24%);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
}

.gis-entity-detail-page .gis-entity-meta-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1-5);
  color: color-mix(in srgb, var(--foreground), transparent 26%);
  font-size: var(--fs-sm);
  line-height: var(--lh-body);
}

.gis-entity-detail-page .gis-entity-code,
.gis-entity-detail-page .gis-entity-detail-value--mono {
  font-family: var(--font-mono);
}

.gis-entity-detail-page .gis-entity-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr);
  gap: var(--space-5);
  align-items: stretch;
}

.gis-entity-detail-page .gis-entity-relations-panel {
  display: grid;
  align-content: start;
  align-self: stretch;
  gap: var(--space-2);
  min-width: 0;
  padding-left: var(--space-4);
  border-left: 1px solid var(--border);
}

.gis-entity-detail-page .gis-entity-section-title {
  margin: 0;
  color: color-mix(in srgb, var(--foreground), transparent 18%);
  font-size: var(--fs-sm);
  font-weight: 700;
  line-height: var(--lh-sm);
}

.gis-entity-detail-page .gis-entity-detail-list {
  display: grid;
  gap: 0;
  margin: 0;
}

.gis-entity-detail-page .gis-entity-detail-list > div {
  display: grid;
  grid-template-columns: minmax(5.5rem, 0.28fr) minmax(0, 1fr);
  gap: var(--space-3);
  padding: var(--space-2) 0;
  border-top: 1px solid color-mix(in srgb, var(--border), transparent 34%);
}

.gis-entity-detail-page .gis-entity-detail-list > div:first-child {
  border-top: 0;
  padding-top: 0;
}

.gis-entity-detail-page .gis-entity-detail-list dt {
  color: color-mix(in srgb, var(--foreground), transparent 30%);
  font-size: var(--fs-sm);
  font-weight: 600;
  line-height: var(--lh-sm);
}

.gis-entity-detail-page .gis-entity-detail-list dd {
  min-width: 0;
  margin: 0;
  color: var(--foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  overflow-wrap: anywhere;
}

.gis-entity-detail-page .gis-entity-section-divider {
  height: 1px;
  margin: var(--space-2) 0;
  background: var(--border);
}

.gis-entity-detail-page .gis-entity-map-action {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid color-mix(in srgb, var(--border), transparent 18%);
}

.gis-entity-detail-page .gis-entity-map-coords {
  min-width: 0;
  color: color-mix(in srgb, var(--foreground), transparent 34%);
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  line-height: var(--lh-sm);
}

.gis-entity-detail-page .gis-entity-relation-list,
.gis-entity-detail-page .gis-entity-map-list {
  display: grid;
  gap: var(--space-2);
}

.gis-entity-detail-page .gis-entity-relation-item,
.gis-entity-detail-page .gis-entity-map-item {
  display: grid;
  gap: var(--space-1);
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--muted), transparent 52%);
}

.gis-entity-detail-page .gis-entity-relation-type {
  color: color-mix(in srgb, var(--foreground), transparent 30%);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.gis-entity-detail-page .gis-entity-relation-main {
  min-width: 0;
}

.gis-entity-detail-page .gis-entity-relation-main a {
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 650;
  line-height: var(--lh-sm);
  text-decoration: none;
}

.gis-entity-detail-page .gis-entity-relation-main a:hover {
  text-decoration: underline;
}

.gis-entity-detail-page .gis-entity-relation-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1-5);
  color: color-mix(in srgb, var(--foreground), transparent 34%);
  font-size: var(--fs-xs);
  line-height: var(--lh-body);
}

.gis-entity-detail-page .gis-entity-relation-meta span:not(:last-child)::after {
  content: "·";
  margin-left: var(--space-1-5);
  color: color-mix(in srgb, var(--foreground), transparent 58%);
}

.gis-entity-detail-page .gis-entity-map-item {
  grid-template-columns: minmax(0, 0.32fr) minmax(0, 1fr) auto;
  align-items: center;
}

.gis-entity-detail-page .gis-entity-empty,
.gis-entity-detail-page .gis-entity-loading {
  color: color-mix(in srgb, var(--foreground), transparent 32%);
  font-size: var(--fs-sm);
  line-height: var(--lh-body);
}

@media (max-width: 1024px) {
  .gis-entity-detail-page .gis-entity-overview-grid {
    grid-template-columns: 1fr;
  }

  .gis-entity-detail-page .gis-entity-relations-panel {
    padding-top: var(--space-3);
    padding-left: 0;
    border-top: 1px solid var(--border);
    border-left: 0;
  }
}

@media (max-width: 640px) {
  .gis-entity-detail-page .gis-entity-detail-list > div,
  .gis-entity-detail-page .gis-entity-map-item {
    grid-template-columns: 1fr;
    gap: var(--space-1);
  }

  .gis-entity-detail-page .gis-entity-map-action {
    align-items: stretch;
  }

  .gis-entity-detail-page .gis-entity-map-action .btn {
    justify-content: center;
    width: 100%;
  }
}

.gis-portal-enterprises-stack {
  gap: var(--space-stack-lg);
}

.gis-portal-enterprises-stack > .card {
  min-width: 0;
}

.gis-portal-enterprise-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: var(--space-3);
}

.gis-portal-enterprise-title {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
}

.gis-portal-enterprise-title h1 {
  margin: 0;
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
}

.gis-portal-enterprise-title p {
  margin: 0;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
}

.gis-portal-enterprise-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--border);
  overflow: hidden;
}

.gis-portal-enterprise-summary-item {
  display: grid;
  gap: var(--space-1);
  align-content: start;
  min-width: 0;
  padding: var(--space-3) var(--space-4);
  background: var(--card);
}

.gis-portal-enterprise-summary-item dt {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gis-portal-enterprise-summary-item dd {
  margin: 0;
  color: var(--foreground);
  font-size: var(--fs-h4);
  font-weight: 700;
  line-height: 1.15;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-portal-enterprise-filter-card .card-header {
  align-items: flex-start;
}

.gis-portal-enterprise-filter-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-2);
  flex-wrap: wrap;
  min-width: 0;
}

.gis-portal-enterprise-filter-actions > .text-sm {
  color: var(--muted-foreground);
  font-variant-numeric: tabular-nums lining-nums;
  white-space: nowrap;
}

.gis-portal-enterprise-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}

.gis-portal-enterprise-tabs .btn.is-active {
  border-color: color-mix(in srgb, var(--primary) 46%, var(--border));
  background: color-mix(in srgb, var(--primary) 14%, transparent);
  color: color-mix(in srgb, var(--primary) 88%, var(--foreground));
}

.gis-portal-enterprise-toolbar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr));
  align-items: end;
  gap: var(--space-3);
  margin-bottom: 0;
}

.gis-portal-enterprise-toolbar > .input-group {
  min-width: 0;
}

.gis-portal-enterprise-toolbar > .input-group:first-child {
  grid-column: span 2;
}

.gis-portal-enterprise-major-strip {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.gis-portal-enterprise-major-strip .btn {
  max-width: 100%;
  min-width: 0;
  white-space: normal;
  text-align: left;
}

.gis-portal-enterprise-table-wrap {
  max-height: none;
  overflow-x: auto;
  overflow-y: visible;
}

.gis-portal-enterprise-table tbody tr[data-enterprise-id] {
  cursor: pointer;
}

.gis-portal-enterprise-table tbody tr.is-selected td {
  background: color-mix(in srgb, var(--primary) 8%, transparent);
}

.gis-portal-enterprise-table th:nth-child(1) {
  min-width: 220px;
}

.gis-portal-enterprise-table th:nth-child(2) {
  min-width: 260px;
}

.gis-portal-enterprise-table th:nth-child(3) {
  min-width: 140px;
}

.gis-portal-enterprise-table th:nth-child(4) {
  min-width: 100px;
  width: 100px;
}

.gis-portal-enterprise-table th:nth-child(5) {
  min-width: 150px;
  width: 150px;
}

.gis-portal-enterprise-name,
.gis-portal-enterprise-industry {
  color: var(--foreground);
  font-weight: 700;
  line-height: var(--lh-sm);
}

.gis-portal-enterprise-code-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-1);
  margin-top: var(--space-0-5);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-portal-enterprise-code-line code {
  color: var(--foreground);
  font-family: var(--font-mono);
  font-size: inherit;
  white-space: nowrap;
}

.gis-portal-enterprise-status-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
}

.gis-portal-enterprise-status-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--muted);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.gis-portal-enterprise-status-badge[data-kind="active"] {
  border-color: color-mix(in srgb, var(--success) 36%, var(--border));
  background: color-mix(in srgb, var(--success) 12%, transparent);
  color: color-mix(in srgb, var(--success) 84%, var(--foreground));
}

.gis-portal-enterprise-status-badge[data-kind="inactive"],
.gis-portal-enterprise-status-badge[data-kind="closed"] {
  background: transparent;
}

.gis-portal-enterprise-status-badge[data-kind="pending"] {
  border-color: color-mix(in srgb, var(--warning) 40%, var(--border));
  background: color-mix(in srgb, var(--warning) 12%, transparent);
  color: color-mix(in srgb, var(--warning) 82%, var(--foreground));
}

.gis-portal-enterprise-status-badge[data-kind="listed"] {
  border-color: color-mix(in srgb, var(--primary) 40%, var(--border));
  background: color-mix(in srgb, var(--primary) 12%, transparent);
  color: color-mix(in srgb, var(--primary) 86%, var(--foreground));
}

.gis-portal-enterprise-status-badge[data-kind="primary-role"] {
  border-color: color-mix(in srgb, var(--primary) 42%, var(--border));
  background: color-mix(in srgb, var(--primary) 10%, transparent);
  color: color-mix(in srgb, var(--primary) 82%, var(--foreground));
}

.gis-portal-enterprise-status-badge[data-kind="role"] {
  background: transparent;
}

.gis-portal-enterprise-status-badge[data-kind="halted"],
.gis-portal-enterprise-status-badge[data-kind="suspended"],
.gis-portal-enterprise-status-badge[data-kind="delisted"] {
  border-color: color-mix(in srgb, var(--destructive, #dc2626) 36%, var(--border));
  background: color-mix(in srgb, var(--destructive, #dc2626) 10%, transparent);
  color: color-mix(in srgb, var(--destructive, #dc2626) 84%, var(--foreground));
}

.gis-portal-enterprise-detail-card > .card-content {
  display: grid;
  gap: 0;
  padding: 0;
}

@media (min-width: 1280px) {
  .gis-portal-enterprise-detail-card > .card-content {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
    align-items: start;
  }
}

.gis-portal-enterprise-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: var(--space-2);
  margin: 0;
  padding: var(--space-3);
  min-width: 0;
}

.gis-portal-enterprise-detail-grid > div {
  display: grid;
  align-content: start;
  gap: var(--space-0-5);
  min-width: 0;
  padding: var(--space-2);
  border: 1px solid color-mix(in srgb, var(--border), transparent 12%);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--muted), transparent 56%);
}

.gis-portal-enterprise-detail-grid dt {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.gis-portal-enterprise-detail-grid dd {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
  margin: 0;
  color: var(--foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  overflow-wrap: anywhere;
}

.gis-portal-enterprise-detail-grid dd > span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-portal-enterprise-detail-side {
  display: grid;
  align-self: start;
  gap: 0;
  min-width: 0;
  border-top: 1px solid var(--border);
}

.gis-portal-enterprise-operator-section,
.gis-portal-enterprise-name-history-section {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
  padding: var(--space-3);
}

@media (min-width: 1280px) {
  .gis-portal-enterprise-detail-side {
    min-height: 100%;
    border-top: 0;
    border-left: 1px solid var(--border);
  }
}

.gis-portal-enterprise-name-history-section {
  border-top: 1px solid var(--border);
}

.gis-portal-enterprise-operator-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.gis-portal-enterprise-operator-list {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
}

.gis-portal-enterprise-operator-empty,
.gis-portal-enterprise-operator-item {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.gis-portal-enterprise-operator-empty {
  padding: var(--space-3);
  border-style: dashed;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
}

.gis-portal-enterprise-operator-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2);
}

.gis-portal-enterprise-operator-main {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}

.gis-portal-enterprise-operator-main .text-mono {
  white-space: normal;
  overflow-wrap: anywhere;
}

.gis-enterprise-name-history-list {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
}

.gis-enterprise-name-history-empty,
.gis-enterprise-name-history-item {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.gis-enterprise-name-history-empty {
  padding: var(--space-3);
  border-style: dashed;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
}

.gis-enterprise-name-history-item {
  display: grid;
  gap: var(--space-1);
  padding: var(--space-2);
}

.gis-enterprise-name-history-main {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}

.gis-enterprise-name-history-type {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.gis-enterprise-name-history-change {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
  color: var(--foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

.gis-enterprise-name-history-change span,
.gis-enterprise-name-history-change strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.gis-enterprise-name-history-arrow {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 600;
}

.gis-enterprise-name-history-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-portal-enterprise-pagination,
.gis-portal-economy-enterprise-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.gis-portal-economy-stack {
  gap: var(--space-stack-lg);
}

.gis-portal-economy-stack > .card,
.gis-portal-economy-grid > .card {
  min-width: 0;
}

.gis-portal-economy-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: var(--space-3);
}

.gis-portal-economy-title {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
}

.gis-portal-economy-title h1 {
  margin: 0;
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
}

.gis-portal-economy-summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--border);
  overflow: hidden;
}

.gis-portal-economy-summary-item {
  display: grid;
  gap: var(--space-1);
  align-content: start;
  min-width: 0;
  padding: var(--space-3) var(--space-4);
  background: var(--card);
}

.gis-portal-economy-summary-item dt {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gis-portal-economy-summary-item dd {
  margin: 0;
  color: var(--foreground);
  font-size: var(--fs-h4);
  font-weight: 700;
  line-height: 1.15;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-portal-economy-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.55fr);
  gap: var(--space-3);
}

.gis-portal-economy-table-wrap {
  max-height: none;
  overflow-x: auto;
  overflow-y: visible;
}

.gis-portal-economy-enterprise-filters {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(160px, 220px) minmax(140px, 180px) auto;
  align-items: end;
  gap: var(--space-2);
  min-width: 0;
}

.gis-portal-economy-enterprise-filter-search {
  min-width: 0;
}

.gis-portal-economy-filter-reset {
  min-height: 40px;
  white-space: nowrap;
}

.gis-portal-economy-city-table th:nth-child(1) {
  min-width: 180px;
}

.gis-portal-economy-city-table th:nth-child(2) {
  min-width: 104px;
}

.gis-portal-economy-city-table th:nth-child(3),
.gis-portal-economy-city-table th:nth-child(6) {
  min-width: 86px;
}

.gis-portal-economy-city-table th:nth-child(4),
.gis-portal-economy-city-table th:nth-child(5),
.gis-portal-economy-city-table th:nth-child(7) {
  min-width: 120px;
}

.gis-portal-economy-enterprise-table th:nth-child(1) {
  min-width: 240px;
}

.gis-portal-economy-enterprise-table th:nth-child(2),
.gis-portal-economy-enterprise-table th:nth-child(4),
.gis-portal-economy-enterprise-table th:nth-child(5) {
  min-width: 120px;
}

.gis-portal-economy-enterprise-table th:nth-child(3) {
  min-width: 190px;
}

.gis-portal-economy-enterprise-table th:nth-child(6) {
  min-width: 88px;
  width: 88px;
}

.gis-portal-economy-name {
  color: var(--foreground);
  font-weight: 700;
  line-height: var(--lh-sm);
}

.gis-portal-economy-code-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-1);
  margin-top: var(--space-0-5);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-portal-economy-code-line code {
  color: var(--foreground);
  font-family: var(--font-mono);
  font-size: inherit;
  white-space: nowrap;
}

.gis-portal-economy-badge-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
}

.gis-portal-economy-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--muted);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.gis-portal-economy-badge[data-kind="role"] {
  background: transparent;
}

.gis-portal-economy-badge[data-kind="primary-role"] {
  border-color: color-mix(in srgb, var(--primary) 42%, var(--border));
  background: color-mix(in srgb, var(--primary) 10%, transparent);
  color: color-mix(in srgb, var(--primary) 82%, var(--foreground));
}

.gis-portal-economy-badge[data-kind="listed"] {
  border-color: color-mix(in srgb, var(--primary) 40%, var(--border));
  background: color-mix(in srgb, var(--primary) 12%, transparent);
  color: color-mix(in srgb, var(--primary) 86%, var(--foreground));
}

.gis-portal-economy-badge[data-kind="pending"] {
  border-color: color-mix(in srgb, var(--warning) 40%, var(--border));
  background: color-mix(in srgb, var(--warning) 12%, transparent);
  color: color-mix(in srgb, var(--warning) 82%, var(--foreground));
}

.gis-portal-economy-badge[data-kind="inactive"],
.gis-portal-economy-badge[data-kind="closed"] {
  background: transparent;
}

.gis-portal-economy-badge[data-kind="halted"],
.gis-portal-economy-badge[data-kind="suspended"],
.gis-portal-economy-badge[data-kind="delisted"] {
  border-color: color-mix(in srgb, var(--destructive, #dc2626) 36%, var(--border));
  background: color-mix(in srgb, var(--destructive, #dc2626) 10%, transparent);
  color: color-mix(in srgb, var(--destructive, #dc2626) 84%, var(--foreground));
}

.gis-portal-economy-role-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2);
}

.gis-portal-economy-role-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: var(--space-3);
  min-width: 0;
  padding: var(--space-3) var(--space-4);
  border: 1px solid color-mix(in srgb, var(--border), transparent 8%);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface), var(--muted) 18%);
}

.gis-portal-economy-role-card span {
  grid-column: 1;
  grid-row: 1;
}

.gis-portal-economy-role-card small {
  grid-column: 1;
  grid-row: 2;
}

.gis-portal-economy-role-card span,
.gis-portal-economy-role-card small {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 600;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-portal-economy-role-card strong {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  color: var(--foreground);
  font-size: var(--fs-h2);
  font-weight: 700;
  line-height: 1.1;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-portal-economy-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.gis-portal-economy-tabs .btn.is-active {
  border-color: color-mix(in srgb, var(--primary) 46%, var(--border));
  background: color-mix(in srgb, var(--primary) 14%, transparent);
  color: color-mix(in srgb, var(--primary) 88%, var(--foreground));
}

.gis-portal-economy-enterprise-card-head {
  align-items: center;
}

.gis-portal-economy-enterprise-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-2);
  flex-wrap: nowrap;
  min-width: max-content;
}

.gis-portal-economy-enterprise-actions #economyEnterpriseStatus {
  display: inline-flex;
  align-items: center;
  min-height: var(--control-h-sm, 32px);
  white-space: nowrap;
}

.gis-portal-economy-enterprise-table tr.is-selected td {
  background: color-mix(in srgb, var(--primary) 8%, transparent);
}

.gis-portal-economy-editor {
  display: grid;
  gap: var(--space-2);
  margin-top: var(--space-1);
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface), var(--muted) 8%);
}

.gis-portal-economy-editor[hidden] {
  display: none;
}

.gis-portal-enterprise-duplicate-review {
  display: grid;
  grid-column: 1 / -1;
  gap: var(--space-2);
  padding: var(--space-2);
  border: 1px solid color-mix(in srgb, var(--warning) 42%, var(--border));
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--warning) 7%, var(--surface));
}

.gis-portal-enterprise-duplicate-review[hidden] {
  display: none;
}

.gis-portal-enterprise-duplicate-head,
.gis-portal-enterprise-duplicate-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}

.gis-portal-enterprise-duplicate-list {
  display: grid;
  border-top: 1px solid var(--border-subtle);
}

.gis-portal-enterprise-duplicate-item {
  min-width: 0;
  padding: var(--space-1-5) 0;
  border-bottom: 1px solid var(--border-subtle);
  color: var(--foreground);
  text-decoration: none;
}

.gis-portal-enterprise-duplicate-item > span:first-child {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}

.gis-portal-enterprise-duplicate-item:hover strong {
  text-decoration: underline;
}

.gis-check-row {
  display: inline-flex;
  align-items: flex-start;
  gap: var(--space-1);
  min-width: 0;
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

.gis-check-row input {
  flex: 0 0 auto;
  margin-top: 0.15em;
}

@media (max-width: 1100px) {
  .gis-admin-enterprises-page .gis-enterprise-duplicate-grid {
    grid-template-columns: 1fr;
  }

  .gis-admin-enterprises-page .gis-enterprise-duplicate-queue {
    border-inline-end: 0;
    border-bottom: 1px solid var(--border-subtle);
  }
}

@media (max-width: 720px) {
  .gis-admin-enterprises-page .gis-enterprise-merge-pair {
    grid-template-columns: 1fr;
  }

  .gis-admin-enterprises-page .gis-enterprise-merge-pair .gis-enterprise-merge-party:last-child {
    text-align: start;
  }

  .gis-admin-enterprises-page .gis-enterprise-merge-field {
    grid-template-columns: 1fr;
  }

  .gis-admin-enterprises-page .gis-enterprise-merge-field-values {
    grid-template-columns: 1fr;
  }

  .gis-admin-enterprises-page .gis-enterprise-merge-operator {
    grid-template-columns: 1fr;
  }

  .gis-admin-enterprises-page .gis-enterprise-merge-confirm .btn-destructive {
    width: 100%;
  }

  .gis-portal-enterprise-duplicate-item {
    align-items: flex-start;
  }
}

.gis-portal-economy-editor-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.gis-portal-economy-editor-title-block {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}

.gis-portal-economy-editor-title-block .card-title {
  overflow-wrap: anywhere;
}

.gis-portal-economy-editor-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-1);
  flex: 0 0 auto;
  min-width: 0;
}

.gis-portal-economy-editor-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(360px, 0.88fr);
  gap: var(--space-3);
  align-items: start;
  min-width: 0;
}

.gis-portal-economy-editor.is-create .gis-portal-economy-editor-grid {
  grid-template-columns: minmax(0, 1fr);
}

.gis-portal-economy-editor-panel {
  display: grid;
  align-content: start;
  gap: var(--space-2);
  min-width: 0;
  padding: var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
}

.gis-portal-economy-panel-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.gis-portal-economy-panel-head > div:first-child {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}

.gis-portal-economy-editor-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-1-5);
  margin: 0;
  padding: var(--space-2) var(--space-3);
  border: 1px solid color-mix(in srgb, var(--border), transparent 12%);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--muted), transparent 48%);
}

.gis-portal-economy-editor-meta[hidden] {
  display: none;
}

.gis-portal-economy-editor-meta div {
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
  min-width: 0;
}

.gis-portal-economy-editor-meta dt {
  flex: 0 0 auto;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 600;
  white-space: nowrap;
}

.gis-portal-economy-editor-meta dd {
  min-width: 0;
  margin: 0;
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 600;
  overflow-wrap: anywhere;
}

.gis-portal-economy-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: var(--space-2);
  row-gap: var(--space-2);
  align-items: start;
  min-width: 0;
}

.gis-portal-economy-wide-field {
  grid-column: 1 / -1;
}

.gis-portal-economy-editor.is-create .gis-portal-economy-city-group {
  grid-column: auto;
}

.gis-portal-economy-create-only[hidden],
.gis-portal-economy-operator-panel[hidden] {
  display: none;
}

.gis-portal-economy-operator-panel {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
}

.gis-portal-economy-operator-controls {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(132px, 160px) auto;
  align-items: end;
  gap: var(--space-2);
  min-width: 0;
  padding: var(--space-2);
  border: 1px solid color-mix(in srgb, var(--border), transparent 12%);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--muted), transparent 42%);
}

.gis-portal-economy-operator-controls > .btn {
  min-height: var(--control-h);
}

.gis-portal-economy-operator-search {
  min-width: 0;
}

.gis-portal-economy-operator-search .search-select-field {
  position: relative;
}

.gis-portal-economy-operator-search .search-select-icon {
  position: absolute;
  right: var(--space-3);
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--text-muted);
}

.gis-portal-economy-operator-search .search-select-field .input {
  padding-right: calc(var(--space-8) + var(--space-1));
}

.gis-portal-economy-operator-list {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
  max-height: 320px;
  overflow: auto;
  padding-right: var(--space-0-5);
}

.gis-portal-economy-operator-empty,
.gis-portal-economy-operator-item {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.gis-portal-economy-operator-empty {
  padding: var(--space-3);
  border-style: dashed;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
}

.gis-portal-economy-operator-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-2);
  min-height: 58px;
  padding: var(--space-2);
}

.gis-portal-economy-operator-main {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}

.gis-portal-economy-operator-main .text-mono {
  white-space: normal;
  overflow-wrap: anywhere;
}

.gis-portal-economy-operator-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
}

.gis-portal-economy-operator-actions {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
  white-space: nowrap;
}

.gis-portal-economy-operator-actions .select-wrapper {
  min-width: 136px;
}

.gis-portal-economy-row-mobile-meta,
.gis-portal-enterprise-row-mobile-meta {
  display: none;
}

@media (min-width: 1440px) {
  .gis-portal-enterprise-toolbar {
    grid-template-columns: minmax(200px, 1.4fr) repeat(7, minmax(112px, 1fr));
    gap: var(--space-2);
  }

  .gis-portal-enterprise-toolbar > .input-group:first-child {
    grid-column: auto;
  }
}

@media (max-width: 1080px) {
  .gis-portal-economy-editor-grid {
    grid-template-columns: 1fr;
  }

  .gis-portal-economy-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .gis-portal-enterprise-filter-card .card-header--split {
    flex-direction: column;
    align-items: stretch;
  }

  .gis-portal-economy-summary,
  .gis-portal-enterprise-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-portal-economy-grid {
    grid-template-columns: 1fr;
  }

  .gis-portal-economy-enterprise-card-head {
    align-items: stretch;
    flex-direction: column;
  }

  .gis-portal-economy-enterprise-actions {
    justify-content: space-between;
    width: 100%;
    min-width: 0;
  }

  .gis-portal-economy-enterprise-actions > .btn {
    width: auto;
    flex: 0 0 auto;
  }

  .gis-portal-economy-role-grid {
    grid-template-columns: 1fr;
  }

  .gis-portal-economy-enterprise-filters {
    grid-template-columns: 1fr;
  }

  .gis-portal-economy-filter-reset {
    width: 100%;
  }

  .gis-portal-economy-form-grid,
  .gis-portal-economy-editor-meta,
  .gis-portal-economy-operator-controls,
  .gis-portal-economy-operator-item {
    grid-template-columns: 1fr;
  }

  .gis-portal-economy-editor-head,
  .gis-portal-economy-panel-head,
  .gis-portal-economy-operator-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .gis-portal-economy-editor-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .gis-portal-economy-editor-actions .btn,
  .gis-portal-economy-operator-controls > .btn {
    width: 100%;
  }

  .gis-portal-economy-editor-meta div {
    display: grid;
    gap: 0;
  }

  .gis-portal-economy-operator-actions .select-wrapper {
    min-width: 0;
  }

  .gis-portal-enterprise-filter-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }

  .gis-portal-enterprise-filter-actions > .text-sm {
    grid-column: 1 / -1;
  }

  .gis-portal-enterprise-filter-actions > .btn {
    width: 100%;
  }

  .gis-portal-economy-table-wrap,
  .gis-portal-enterprise-table-wrap {
    overflow-x: visible;
  }

  .gis-portal-economy-table-wrap::after,
  .gis-portal-enterprise-table-wrap::after {
    display: none;
  }

  .gis-portal-economy-city-table,
  .gis-portal-economy-city-table thead,
  .gis-portal-economy-city-table tbody,
  .gis-portal-economy-city-table tr,
  .gis-portal-economy-city-table td,
  .gis-portal-economy-enterprise-table,
  .gis-portal-economy-enterprise-table thead,
  .gis-portal-economy-enterprise-table tbody,
  .gis-portal-economy-enterprise-table tr,
  .gis-portal-economy-enterprise-table td,
  .gis-portal-enterprise-table,
  .gis-portal-enterprise-table thead,
  .gis-portal-enterprise-table tbody,
  .gis-portal-enterprise-table tr,
  .gis-portal-enterprise-table td {
    display: block;
    width: 100%;
  }

  .gis-portal-economy-city-table,
  .gis-portal-economy-enterprise-table,
  .gis-portal-enterprise-table {
    min-width: 0;
    table-layout: auto;
  }

  .gis-portal-economy-city-table thead,
  .gis-portal-economy-enterprise-table thead,
  .gis-portal-enterprise-table thead {
    display: none;
  }

  .gis-portal-economy-city-table tbody,
  .gis-portal-economy-enterprise-table tbody,
  .gis-portal-enterprise-table tbody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-portal-economy-city-table tr,
  .gis-portal-economy-enterprise-table tr,
  .gis-portal-enterprise-table tr {
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
    transition: background-color 120ms ease, border-color 120ms ease;
  }

  .gis-portal-economy-city-table tr:hover,
  .gis-portal-economy-enterprise-table tr:hover,
  .gis-portal-enterprise-table tr:hover {
    border-color: color-mix(in srgb, var(--primary), var(--border) 68%);
    background: color-mix(in srgb, var(--primary), var(--card) 94%);
  }

  .gis-portal-economy-city-table td,
  .gis-portal-economy-enterprise-table td,
  .gis-portal-enterprise-table td,
  .gis-portal-economy-city-table tr:hover td,
  .gis-portal-economy-enterprise-table tr:hover td,
  .gis-portal-enterprise-table tr:hover td {
    padding: 0;
    border-bottom: 0;
    background: transparent;
  }

  .gis-portal-economy-city-table td:not(:first-child),
  .gis-portal-enterprise-table td:not(:first-child),
  .gis-portal-economy-enterprise-table td:nth-child(2),
  .gis-portal-economy-enterprise-table td:nth-child(3),
  .gis-portal-economy-enterprise-table td:nth-child(4),
  .gis-portal-economy-enterprise-table td:nth-child(5) {
    display: none;
  }

  .gis-portal-economy-enterprise-table td:last-child {
    margin-top: var(--space-2);
  }

  .gis-portal-economy-enterprise-table td:last-child .btn {
    width: 100%;
    min-width: 0;
  }

  .gis-portal-economy-row-mobile-meta,
  .gis-portal-enterprise-row-mobile-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
    margin-top: var(--space-1);
  }

  .gis-portal-economy-row-mobile-meta span,
  .gis-portal-enterprise-row-mobile-meta span {
    min-width: 0;
    padding: var(--space-0-5) var(--space-1-5);
    border-radius: var(--radius-sm);
    background: var(--muted);
    color: var(--muted-foreground);
    font-size: var(--fs-2xs);
    line-height: var(--lh-xs);
    word-break: keep-all;
    overflow-wrap: anywhere;
  }

  .gis-portal-economy-row-mobile-meta strong,
  .gis-portal-enterprise-row-mobile-meta strong {
    margin-right: var(--space-1);
    color: var(--foreground);
    font-weight: 600;
  }

}

.gis-op-stack,
.gis-admin-dashboard-page .gis-admin-dashboard-stack {
  gap: var(--space-stack-lg);
}

.gis-op-stack {
  --gis-op-card-padding: var(--space-3);
}

.gis-op-hero,
.gis-admin-dashboard-page .gis-admin-dashboard-hero {
  border: none;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.gis-op-hero.gis-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: var(--space-4);
  margin-bottom: 0;
  padding-bottom: var(--space-3);
  border-bottom: var(--space-px) solid var(--border);
}

.gis-op-hero.gis-page-hero-card {
  border: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.gis-op-hero > .card-content,
.gis-admin-dashboard-page .gis-admin-dashboard-hero > .card-content {
  padding: 0;
  display: grid;
  gap: var(--space-3);
}

.gis-op-hero.gis-page-hero-card > .card-content {
  padding: 0;
}

.gis-op-hero-body,
.gis-admin-dashboard-page .gis-admin-dashboard-hero-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: var(--space-4);
}

.gis-op-hero .gis-hero-title,
.gis-op-hero .gis-hero-title > * {
  min-width: 0;
}

.gis-op-hero .gis-hero-title h1 {
  font-size: var(--fs-h1);
  line-height: var(--lh-h1);
}

.gis-op-hero .gis-hero-title p,
.gis-op-hero .card-description {
  max-width: 68ch;
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  white-space: normal;
  overflow-wrap: anywhere;
}

.gis-admin-page .gis-op-hero .gis-hero-title > p.text-muted,
.gis-admin-page .gis-op-stack .card-description {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: keep-all;
}

.gis-op-stack > .card,
.gis-op-stack > section.card,
.gis-op-stack > .grid > .card,
.gis-op-stack > section > .card,
.gis-op-stack [class*="workspace"] > .card {
  min-width: 0;
  max-width: 100%;
  border-color: var(--border);
  box-shadow: none;
}

.gis-op-stack > .card > .card-header,
.gis-op-stack > section.card > .card-header,
.gis-op-stack [class*="workspace"] > .card > .card-header {
  padding-block: var(--space-3);
}

.gis-op-stack > .card > .card-content,
.gis-op-stack > section.card > .card-content,
.gis-op-stack [class*="workspace"] > .card > .card-content {
  min-width: 0;
}

.gis-op-stack .card .card {
  border-color: color-mix(in srgb, var(--border), transparent 12%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--surface-muted, var(--muted)), transparent 36%);
  box-shadow: none;
}

.gis-op-workspace-surface,
.gis-op-stack .gis-inline-surface {
  min-width: 0;
  border: 1px solid color-mix(in srgb, var(--border), transparent 12%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--surface-muted, var(--muted)), transparent 36%);
  box-shadow: none;
}

.gis-op-workspace-surface > .card-content,
.gis-op-stack .gis-inline-surface > .card-content {
  min-width: 0;
}

.gis-op-stack .gis-inline-surface > .card-header {
  border-bottom: 1px solid var(--border);
}

.gis-op-stack .card:has(.table-wrapper) > .card-header,
.gis-op-stack .card:has(table) > .card-header {
  border-bottom: var(--space-px) solid var(--border);
}

.gis-op-stack .table-wrapper {
  min-width: 0;
  max-width: 100%;
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius);
  background: var(--card);
  overflow: auto;
}

.gis-admin-personas-page .table-wrapper.gis-admin-personas-table-wrap.table-sticky {
  overflow: visible;
}

.gis-op-stack .card-content > .table-wrapper:first-child,
.gis-op-stack .gis-scroll-panel-md > .table-wrapper,
.gis-op-stack .gis-scroll-panel-lg > .table-wrapper {
  margin-top: 0;
}

.gis-op-stack .table {
  width: 100%;
  margin: 0;
}

.gis-op-stack .table th {
  white-space: nowrap;
}

.gis-op-stack .table th,
.gis-op-stack .table td {
  vertical-align: middle;
}

.gis-op-stack .table td {
  min-width: 0;
}

.gis-op-stack .gis-toolbar {
  margin-bottom: 0;
  padding: var(--space-2);
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--surface-muted, var(--muted)), transparent 34%);
}

.gis-op-stack .gis-toolbar + .table-wrapper,
.gis-op-stack .gis-toolbar + .gis-scroll-panel-md,
.gis-op-stack .gis-toolbar + .gis-scroll-panel-lg {
  margin-top: var(--space-2);
}

.gis-op-stack .input-group,
.gis-op-stack .select-wrapper,
.gis-op-stack .grid,
.gis-op-stack [class*="grid"],
.gis-op-stack [class*="workspace"] {
  min-width: 0;
  max-width: 100%;
}

.gis-op-stack .card-description {
  max-width: 64ch;
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  white-space: normal;
  overflow-wrap: anywhere;
}

.gis-op-stack .empty-state {
  padding-block: var(--space-6);
}

.gis-op-overview-grid,
.gis-admin-dashboard-page .gis-admin-dashboard-overview-grid {
  display: grid;
  grid-template-columns:
    minmax(0, var(--gis-op-main-fr, 1.45fr))
    minmax(var(--gis-op-rail-min, calc(var(--space-10) * 8)), var(--gis-op-rail-fr, 1fr));
  gap: var(--gis-op-overview-gap, var(--space-3));
  align-items: start;
  overflow: visible;
}

.gis-op-overview-grid--portal {
  --gis-op-main-fr: 1.58fr;
  --gis-op-rail-fr: 0.92fr;
  --gis-op-overview-gap: var(--space-4);
}

.gis-op-overview-grid--admin-dashboard {
  --gis-op-main-fr: 1.45fr;
  --gis-op-rail-fr: 1fr;
}

.gis-op-primary-stack {
  display: grid;
  gap: var(--space-4);
  align-content: start;
  min-width: 0;
}

.gis-op-side-stack {
  display: grid;
  gap: var(--space-3);
  align-content: start;
  min-width: 0;
}

.gis-op-section-head {
  display: grid;
  gap: var(--space-0-5);
}

.gis-op-stat-grid,
.gis-admin-dashboard-page .gis-admin-dashboard-stats-grid {
  display: grid;
  grid-template-columns: repeat(var(--gis-op-stat-cols, 2), minmax(0, 1fr));
  gap: var(--space-2);
  min-width: 0;
}

.gis-op-stat-grid--compact {
  --gis-op-stat-cols: 2;
}

.gis-op-stat-surface {
  min-width: 0;
  display: grid;
  gap: var(--space-1);
  align-content: start;
  padding: var(--space-2-5);
  border: var(--space-px) solid color-mix(in srgb, var(--border), transparent 8%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--surface-muted, var(--muted)), transparent 18%);
  box-shadow: none;
}

.gis-op-stat-surface .stat-label {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--muted-foreground);
}

.gis-op-stat-surface .stat-value {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
  font-weight: 700;
  letter-spacing: 0;
  color: var(--foreground);
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-op-stat-surface .stat-meta {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
}

.gis-admin-dashboard-page .gis-admin-dashboard-metric-card {
  min-width: 0;
}

.gis-op-task-grid,
.gis-admin-dashboard-page .gis-admin-dashboard-task-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--gis-op-task-min, calc(var(--space-12) * 4 + var(--space-4)))), 1fr));
  gap: var(--space-1-5);
}

.gis-op-task-card,
.gis-admin-dashboard-page .gis-admin-dashboard-task-card {
  display: block;
  color: inherit;
  text-decoration: none;
  min-width: 0;
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--surface-muted, var(--muted)), transparent 20%);
  transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.gis-op-task-card:hover,
.gis-op-task-card:focus-visible,
.gis-admin-dashboard-page .gis-admin-dashboard-task-card:hover,
.gis-admin-dashboard-page .gis-admin-dashboard-task-card:focus-visible {
  border-color: var(--border-strong);
  background: color-mix(in srgb, var(--surface-elevated, var(--card)), var(--muted) 12%);
}

.gis-op-task-card:focus-visible {
  outline: calc(var(--space-px) * 2) solid var(--ring, var(--primary));
  outline-offset: var(--space-0-5);
}

.gis-op-task-body,
.gis-admin-dashboard-page .gis-admin-dashboard-task-body {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
  padding: var(--space-2) var(--space-2-5);
}

.gis-op-task-copy,
.gis-admin-dashboard-page .gis-admin-dashboard-task-copy {
  min-width: 0;
  display: grid;
  gap: var(--space-0-5);
}

.gis-op-task-card .stat-label {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

.gis-op-task-card .text-muted {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

@media (max-width: 1024px) {
  .gis-op-hero.gis-hero,
  .gis-op-hero-body,
  .gis-op-hero.gis-page-hero-card > .card-content {
    grid-template-columns: 1fr;
    align-items: start;
    gap: var(--space-3);
  }

  .gis-op-stack > .card > .card-header,
  .gis-op-stack > section.card > .card-header,
  .gis-op-stack [class*="workspace"] > .card > .card-header {
    padding-block: var(--space-2-5);
  }
}

@media (max-width: 640px) {
  .gis-op-stack {
    --gis-op-card-padding: var(--space-2-5);
    gap: var(--space-4);
  }

  .gis-op-hero.gis-hero {
    padding-bottom: var(--space-2);
  }

  .gis-op-hero .gis-hero-title h1 {
    font-size: var(--fs-h1);
  }

  .gis-op-stack .card-header,
  .gis-op-stack .card-content {
    padding-inline: var(--space-3);
  }

  .gis-op-stack .gis-toolbar {
    padding: var(--space-2);
  }
}

.gis-admin-dashboard-page .gis-admin-dashboard-panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
  align-items: start;
}

.gis-admin-dashboard-page .gis-admin-dashboard-card-title-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.gis-admin-dashboard-page .gis-admin-dashboard-card-title-row .badge {
  width: fit-content;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-console {
  overflow: hidden;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-console[data-state="ready"] {
  border-color: color-mix(in srgb, var(--primary) 50%, var(--border));
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-console[data-state="succeeded"],
.gis-admin-stats-refresh-page .gis-admin-stats-refresh-console[data-state="current"] {
  border-color: color-mix(in srgb, var(--success) 52%, var(--border));
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-console[data-state="failed"] {
  border-color: color-mix(in srgb, var(--destructive) 52%, var(--border));
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-progress-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-console-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
  gap: var(--space-5);
  align-items: stretch;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-primary {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-5);
  min-height: 184px;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-eyebrow {
  margin: 0 0 var(--space-2);
  color: var(--primary);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-primary h2 {
  margin: 0;
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-primary h2 + p {
  max-width: 680px;
  margin: var(--space-2) 0 0;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-primary-actions {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-primary-button {
  min-height: 44px;
  padding-inline: var(--space-5);
  font-size: var(--fs-body);
  font-weight: 600;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-primary-actions p {
  margin: 0;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-muted);
  overflow: hidden;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-facts > div {
  min-width: 0;
  padding: var(--space-3);
  border-bottom: 1px solid var(--border);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-facts > div:nth-child(odd) {
  border-right: 1px solid var(--border);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-facts > div:nth-last-child(-n + 2) {
  border-bottom: 0;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-facts dt {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-facts dd {
  margin: var(--space-1) 0 0;
  font-size: var(--fs-sm);
  font-weight: 600;
  font-variant-numeric: tabular-nums lining-nums;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-progress {
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-progress-head {
  margin-bottom: var(--space-2);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-result-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
  gap: var(--space-3);
  align-items: start;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-advanced {
  overflow: visible;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-advanced > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-4);
  cursor: pointer;
  list-style: none;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-advanced > summary::-webkit-details-marker {
  display: none;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-advanced > summary strong,
.gis-admin-stats-refresh-page .gis-admin-stats-refresh-advanced > summary small {
  display: block;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-advanced > summary small {
  margin-top: var(--space-1);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 400;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-advanced > summary > .hz-icon {
  transition: transform 0.15s ease;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-advanced[open] > summary > .hz-icon {
  transform: rotate(180deg);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-advanced-content {
  padding: var(--space-4);
  border-top: 1px solid var(--border);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(240px, 0.5fr);
  gap: var(--space-5);
  align-items: start;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-section-heading,
.gis-admin-stats-refresh-page .gis-admin-stats-refresh-guidance > div {
  margin-bottom: var(--space-4);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-section-heading h2,
.gis-admin-stats-refresh-page .gis-admin-stats-refresh-guidance h2 {
  margin: 0;
  font-size: var(--fs-h4);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-section-heading p,
.gis-admin-stats-refresh-page .gis-admin-stats-refresh-guidance p {
  margin: var(--space-1) 0 0;
  font-size: var(--fs-sm);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-mode {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
  margin-bottom: var(--space-4);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-mode-option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-2);
  align-items: start;
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-muted);
  cursor: pointer;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-mode-option:has(input:checked) {
  border-color: var(--primary);
  background: color-mix(in srgb, var(--primary) 12%, var(--surface-muted));
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-mode-option:focus-within {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-mode-option strong,
.gis-admin-stats-refresh-page .gis-admin-stats-refresh-mode-option small {
  display: block;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-mode-option small {
  margin-top: var(--space-1);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: 1.4;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-options {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  align-items: center;
  margin-top: var(--space-4);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-options-note,
.gis-admin-stats-refresh-page .gis-admin-stats-refresh-lilo-master {
  flex-basis: 100%;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-lilo-option.is-disabled {
  opacity: 0.55;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: center;
  margin-top: var(--space-4);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-guidance {
  padding-left: var(--space-4);
  border-left: 1px solid var(--border);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-guidance-list {
  display: grid;
  gap: var(--space-3);
  margin: 0;
  padding: 0;
  list-style: none;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-guidance-list li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-2);
  align-items: start;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-guidance-list .hz-icon {
  color: var(--primary);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-summary {
  min-height: 112px;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--border);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-summary-grid > div {
  min-width: 0;
  padding: var(--space-2) var(--space-2) var(--space-2) 0;
  border-bottom: 1px solid var(--border);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-summary-grid span {
  display: block;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-summary-grid strong {
  display: block;
  margin-top: var(--space-1);
  font-size: var(--fs-sm);
  font-variant-numeric: tabular-nums lining-nums;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-impact-note {
  margin-top: var(--space-2);
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-plan-table td:last-child {
  max-width: 420px;
  white-space: normal;
  overflow-wrap: anywhere;
}

.gis-admin-stats-refresh-page .gis-admin-stats-refresh-log {
  max-height: 320px;
  overflow: auto;
  margin: 0;
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-muted);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  white-space: pre-wrap;
  word-break: break-word;
}

@media (max-width: 1024px) {
  .gis-admin-stats-refresh-page .gis-admin-stats-refresh-console-grid,
  .gis-admin-stats-refresh-page .gis-admin-stats-refresh-result-grid,
  .gis-admin-stats-refresh-page .gis-admin-stats-refresh-grid {
    grid-template-columns: 1fr;
  }

  .gis-admin-stats-refresh-page .gis-admin-stats-refresh-guidance {
    padding-top: var(--space-4);
    padding-left: 0;
    border-top: 1px solid var(--border);
    border-left: 0;
  }
}

@media (max-width: 640px) {
  .gis-admin-stats-refresh-page .gis-admin-stats-refresh-primary {
    min-height: 0;
  }

  .gis-admin-stats-refresh-page .gis-admin-stats-refresh-primary-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .gis-admin-stats-refresh-page .gis-admin-stats-refresh-primary-button,
  .gis-admin-stats-refresh-page .gis-admin-stats-refresh-actions .btn {
    width: 100%;
  }

  .gis-admin-stats-refresh-page .gis-admin-stats-refresh-facts,
  .gis-admin-stats-refresh-page .gis-admin-stats-refresh-mode,
  .gis-admin-stats-refresh-page .gis-admin-stats-refresh-summary-grid {
    grid-template-columns: 1fr;
  }

  .gis-admin-stats-refresh-page .gis-admin-stats-refresh-facts > div,
  .gis-admin-stats-refresh-page .gis-admin-stats-refresh-facts > div:nth-child(odd),
  .gis-admin-stats-refresh-page .gis-admin-stats-refresh-facts > div:nth-last-child(-n + 2) {
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }

  .gis-admin-stats-refresh-page .gis-admin-stats-refresh-facts > div:last-child {
    border-bottom: 0;
  }
}

.gis-portal-home-page .gis-portal-home-hero .card-content {
  align-items: center;
  gap: var(--space-5);
}

.gis-portal-home-page .gis-portal-home-summary-card,
.gis-portal-home-page .gis-portal-home-cities-card,
.gis-portal-home-page .gis-portal-home-side-card {
  overflow: visible;
}

.gis-portal-home-page .gis-portal-home-summary-card .card-content,
.gis-portal-home-page .gis-portal-home-cities-card .card-content,
.gis-portal-home-page .gis-portal-home-side-card .card-content {
  overflow: visible;
}

.gis-portal-home-page .gis-portal-home-stat-grid--summary {
  --gis-op-stat-cols: 5;
  gap: 0;
}

.gis-portal-home-page .gis-portal-home-summary-card .gis-portal-home-stat-surface {
  padding: var(--space-1-5) var(--space-3);
  border: 0;
  border-left: var(--space-px) solid var(--border);
  border-radius: 0;
  background: transparent;
}

.gis-portal-home-page .gis-portal-home-summary-card .gis-portal-home-stat-surface:first-child {
  padding-left: 0;
  border-left: 0;
}

.gis-portal-home-page .gis-portal-home-stat-surface .gis-input-label-row {
  min-width: 0;
}

.gis-portal-home-page .gis-portal-home-stat-surface .stat-value {
  white-space: normal;
  overflow-wrap: anywhere;
}

.gis-portal-home-page .gis-portal-home-summary-card .gis-portal-home-stat-surface .stat-label,
.gis-portal-home-page .gis-portal-home-summary-card .gis-portal-home-stat-surface .stat-meta {
  color: color-mix(in srgb, var(--muted-foreground), var(--foreground) 8%);
}

.gis-portal-home-page .gis-portal-home-cities-content {
  padding: 0;
}

.gis-portal-home-page .gis-portal-home-city-list {
  display: grid;
}

.gis-portal-home-page .gis-portal-home-inline-empty .empty-state {
  padding-block: var(--space-6);
}

.gis-portal-home-page .gis-portal-home-stat-surface .gis-tip-popup {
  z-index: calc(var(--z-tooltip) + 30);
}

.gis-portal-home-page .gis-portal-home-task-card {
  min-height: var(--control-height-m);
  padding: var(--space-2) var(--space-2-5);
  border: 0;
  border-right: var(--space-px) solid var(--border);
  border-bottom: var(--space-px) solid var(--border);
  border-radius: 0;
  background: transparent;
}

.gis-portal-home-page .gis-portal-home-task-card:nth-child(2n) {
  border-right: 0;
}

.gis-portal-home-page .gis-portal-home-task-card:hover,
.gis-portal-home-page .gis-portal-home-task-card:focus-visible {
  background: var(--muted);
}

.gis-portal-home-page .gis-portal-home-unknown-list {
  display: grid;
}

.gis-portal-home-page .gis-portal-home-unknown-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) 0;
}

.gis-portal-home-page .gis-portal-home-unknown-row + .gis-portal-home-unknown-row {
  border-top: var(--space-px) solid var(--border);
}

.gis-portal-home-page .gis-portal-home-unknown-main {
  min-width: 0;
  display: grid;
  gap: var(--space-1);
}

.gis-portal-home-page .gis-portal-home-unknown-title {
  font-size: var(--fs-sm);
  font-weight: 600;
  line-height: var(--lh-sm);
  letter-spacing: 0;
  overflow-wrap: break-word;
}

.gis-portal-home-page .gis-portal-home-unknown-code {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
  word-break: break-all;
}

.gis-portal-home-page .gis-portal-home-unknown-context {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
}

.gis-portal-home-page .gis-portal-home-unknown-context-item {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
}

.gis-portal-home-page .gis-portal-home-unknown-context-label {
  color: color-mix(in srgb, var(--muted-foreground), transparent 6%);
  font-weight: 600;
}

.gis-portal-home-page .gis-portal-home-unknown-badges {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  gap: var(--space-1);
  flex-wrap: wrap;
}

.gis-portal-home-page .gis-portal-home-unknown-badge {
  display: inline-flex;
  align-items: center;
  min-height: var(--space-4);
  padding: 0 var(--space-1-5);
  border-radius: var(--radius-sm);
  background: var(--muted);
  color: var(--foreground);
  font-size: var(--fs-xs);
  white-space: nowrap;
}

.gis-portal-home-page .gis-portal-home-unknown-badge--warning {
  background: color-mix(in srgb, var(--warning), transparent 86%);
}

.gis-portal-home-page .gis-portal-home-unknown-badge--neutral {
  background: color-mix(in srgb, var(--muted-foreground), transparent 88%);
}

.gis-portal-home-page .gis-portal-home-unknown-empty {
  padding-block: var(--space-3);
}

.gis-portal-buildings-exchange-page .gis-exchange-stack {
  gap: var(--space-stack-lg);
}

.gis-portal-buildings-exchange-page .gis-exchange-stats-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
  margin-bottom: 0;
}

.gis-portal-buildings-exchange-page .gis-exchange-stats-grid .gis-stat-card {
  gap: var(--space-3);
  padding: var(--space-3);
}

.gis-portal-buildings-exchange-page .gis-exchange-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
  align-items: start;
  gap: var(--space-3);
}

.gis-portal-buildings-exchange-page .gis-exchange-search-card,
.gis-portal-buildings-exchange-page .gis-exchange-side-card {
  min-width: 0;
}

.gis-portal-buildings-exchange-page .card-header > div,
.gis-portal-buildings-exchange-page .card-title,
.gis-portal-buildings-exchange-page .card-description,
.gis-portal-buildings-exchange-page .gis-hero-title {
  min-width: 0;
  overflow-wrap: anywhere;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-card .card-content.stack {
  gap: var(--space-3);
}

.gis-portal-buildings-exchange-page .gis-exchange-search-card .card-content,
.gis-portal-buildings-exchange-page .gis-exchange-search-card .table-wrapper {
  min-width: 0;
  max-width: 100%;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-card .table-wrapper {
  contain: inline-size;
  overflow-x: auto;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  align-items: end;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-toolbar .input-group {
  flex: 1 1 260px;
  min-width: 0;
}

.gis-portal-buildings-exchange-page .gis-exchange-filter-pills {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  align-items: center;
  flex: 1 1 230px;
}

.gis-portal-buildings-exchange-page .gis-exchange-filter-pills .btn {
  border-radius: var(--radius-full);
  min-height: var(--space-8);
  padding-inline: var(--space-2-5);
}

.gis-portal-buildings-exchange-page .gis-exchange-filter-pills .btn.is-active {
  background: color-mix(in srgb, var(--primary), transparent 88%);
  border-color: color-mix(in srgb, var(--primary), transparent 42%);
  color: var(--foreground);
}

.gis-portal-buildings-exchange-page .gis-exchange-search-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-2);
  margin-left: auto;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-card .gis-entity-table {
  min-width: 760px;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-table {
  table-layout: fixed;
  width: 100%;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-table th,
.gis-portal-buildings-exchange-page .gis-exchange-search-table td {
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-table th {
  white-space: nowrap;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-table th:first-child,
.gis-portal-buildings-exchange-page .gis-exchange-search-table td:first-child {
  width: 32%;
  white-space: normal;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-table th:nth-child(2),
.gis-portal-buildings-exchange-page .gis-exchange-search-table td:nth-child(2) {
  width: 7rem;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-table th:nth-child(3),
.gis-portal-buildings-exchange-page .gis-exchange-search-table td:nth-child(3) {
  width: 19%;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-table th:nth-child(4),
.gis-portal-buildings-exchange-page .gis-exchange-search-table td:nth-child(4) {
  width: 15%;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-table th:last-child,
.gis-portal-buildings-exchange-page .gis-exchange-search-table td:last-child {
  width: 8.5rem;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-table td:first-child .font-medium {
  word-break: keep-all;
  overflow-wrap: break-word;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-city-cell .text-sm {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-party-cell {
  white-space: normal;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-party-text {
  max-width: 100%;
  line-height: var(--lh-sm);
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-action-cell {
  text-align: right;
  white-space: nowrap;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-action-cell .btn {
  max-width: 100%;
  white-space: nowrap;
}

.gis-portal-buildings-exchange-page .gis-exchange-row-mobile-meta {
  display: none;
}

.gis-portal-buildings-exchange-page .gis-exchange-search-card .gis-lookup-results-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid var(--border);
}

.gis-portal-buildings-exchange-page .gis-exchange-side-stack {
  min-width: 0;
  display: grid;
  gap: var(--space-3);
}

.gis-portal-buildings-exchange-page .gis-exchange-section-meta {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-1);
  flex-wrap: wrap;
  min-width: 0;
}

.gis-portal-buildings-exchange-page .gis-exchange-section-meta .btn {
  min-height: var(--space-8);
}

.gis-portal-buildings-exchange-page .gis-exchange-link-hint {
  margin: 0;
  padding: var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--muted), transparent 38%);
  line-height: var(--lh-sm);
}

.gis-portal-buildings-exchange-page .gis-exchange-record-list {
  display: grid;
  gap: var(--space-2);
}

.gis-portal-buildings-exchange-page .gis-exchange-record {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-3);
  align-items: start;
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface), transparent 12%);
}

.gis-portal-buildings-exchange-page .gis-exchange-side-stack .gis-exchange-record {
  grid-template-columns: 1fr;
  gap: var(--space-2);
}

.gis-portal-buildings-exchange-page .gis-exchange-record-main {
  min-width: 0;
  display: grid;
  gap: var(--space-2);
}

.gis-portal-buildings-exchange-page .gis-exchange-record-head {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: center;
  justify-content: space-between;
}

.gis-portal-buildings-exchange-page .gis-exchange-record-title-wrap {
  min-width: 0;
  display: grid;
  gap: var(--space-0-5);
}

.gis-portal-buildings-exchange-page .gis-exchange-record-title {
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.gis-portal-buildings-exchange-page .gis-exchange-record-code {
  font-size: 0.75rem;
  color: var(--muted-foreground);
  line-height: 1.4;
}

.gis-portal-buildings-exchange-page .gis-exchange-record-badges {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  justify-content: flex-end;
}

.gis-portal-buildings-exchange-page .gis-exchange-table-badges {
  justify-content: flex-start;
  margin-top: var(--space-1);
}

.gis-portal-buildings-exchange-page .gis-exchange-chip {
  border: 1px solid transparent;
  min-width: 0;
  width: auto;
}

.gis-portal-buildings-exchange-page .gis-exchange-chip[data-tone="info"] {
  background: color-mix(in srgb, var(--info), transparent 86%);
  border-color: color-mix(in srgb, var(--info), transparent 56%);
  color: var(--foreground);
}

.gis-portal-buildings-exchange-page .gis-exchange-chip[data-tone="warning"] {
  background: color-mix(in srgb, var(--warning), transparent 84%);
  border-color: color-mix(in srgb, var(--warning), transparent 48%);
  color: var(--foreground);
}

.gis-portal-buildings-exchange-page .gis-exchange-chip[data-tone="neutral"] {
  background: var(--muted);
  border-color: var(--border);
  color: var(--foreground);
}

.gis-portal-buildings-exchange-page .gis-exchange-record-meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-2);
}

.gis-portal-buildings-exchange-page .gis-exchange-side-stack .gis-exchange-record-meta {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gis-portal-buildings-exchange-page .gis-exchange-meta-item {
  min-width: 0;
  padding: var(--space-2);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--background), transparent 12%);
}

.gis-portal-buildings-exchange-page .gis-exchange-meta-label {
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--muted-foreground);
  margin-bottom: var(--space-1);
}

.gis-portal-buildings-exchange-page .gis-exchange-meta-value {
  font-size: 0.8125rem;
  line-height: 1.45;
  word-break: break-word;
}

.gis-portal-buildings-exchange-page .gis-exchange-record-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: center;
  justify-content: flex-end;
}

.gis-portal-buildings-exchange-page .gis-exchange-record-actions .btn {
  white-space: nowrap;
}

.gis-portal-buildings-exchange-page .gis-exchange-side-stack .gis-exchange-record-actions {
  justify-content: stretch;
}

.gis-portal-buildings-exchange-page .gis-exchange-side-stack .gis-exchange-record-actions .btn {
  flex: 1 1 auto;
}

.gis-portal-buildings-exchange-page .gis-exchange-status-badge {
  border: none;
  min-width: 0;
  width: auto;
}

.gis-portal-buildings-exchange-page .gis-exchange-status-badge[data-status="pending"] {
  background: color-mix(in srgb, var(--info), transparent 84%);
  color: var(--foreground);
}

.gis-portal-buildings-exchange-page .gis-exchange-status-badge[data-status="approved"] {
  background: color-mix(in srgb, var(--success), transparent 82%);
  color: var(--foreground);
}

.gis-portal-buildings-exchange-page .gis-exchange-status-badge[data-status="rejected"] {
  background: color-mix(in srgb, var(--danger), transparent 84%);
  color: var(--foreground);
}

.gis-portal-buildings-exchange-page .gis-exchange-status-badge[data-status="cancelled"] {
  background: var(--muted);
  color: var(--muted-foreground);
}

@media (max-width: 1280px) {
  .gis-portal-buildings-exchange-page .gis-exchange-workspace {
    grid-template-columns: 1fr;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-side-stack {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-card .gis-entity-table,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table {
    min-width: 0;
    table-layout: auto;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-table-wrapper {
    overflow-x: visible;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-table-wrapper::after {
    display: none;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-table,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table thead,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table tbody,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table tr,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table td {
    display: block;
    width: 100%;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-table thead {
    display: none;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-table tbody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-table tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-3);
    align-items: center;
    padding: var(--space-3);
    border-bottom: 1px solid var(--border);
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-table td {
    padding: 0;
    border-bottom: 0;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-table td[colspan] {
    grid-column: 1 / -1;
    padding: var(--space-6) var(--space-3);
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-table th:nth-child(2),
  .gis-portal-buildings-exchange-page .gis-exchange-search-table th:nth-child(3),
  .gis-portal-buildings-exchange-page .gis-exchange-search-table th:nth-child(4),
  .gis-portal-buildings-exchange-page .gis-exchange-search-table td:nth-child(2),
  .gis-portal-buildings-exchange-page .gis-exchange-search-table td:nth-child(3),
  .gis-portal-buildings-exchange-page .gis-exchange-search-table td:nth-child(4) {
    display: none;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-table td:first-child,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table td:last-child {
    width: auto;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-action-cell {
    align-self: center;
    text-align: right;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-action-cell .btn {
    width: auto;
    min-width: max-content;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-row-mobile-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
    margin-top: var(--space-1);
  }

  .gis-portal-buildings-exchange-page .gis-exchange-row-mobile-meta span {
    min-width: 0;
    padding: var(--space-0-5) var(--space-1-5);
    border-radius: var(--radius-sm);
    background: var(--muted);
    color: var(--muted-foreground);
    font-size: var(--fs-2xs);
    line-height: var(--lh-xs);
    word-break: keep-all;
    overflow-wrap: anywhere;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-row-mobile-meta strong {
    margin-right: var(--space-1);
    color: var(--foreground);
    font-weight: 600;
  }
}

@media (max-width: 1024px) {
  .gis-portal-buildings-exchange-page .gis-exchange-record,
  .gis-portal-buildings-exchange-page .gis-exchange-record-meta {
    grid-template-columns: 1fr;
  }

  .gis-portal-buildings-exchange-page .card-header.card-header--split {
    align-items: flex-start;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-section-meta {
    width: 100%;
  }
}

@media (max-width: 900px) {
  .gis-portal-buildings-exchange-page .gis-exchange-side-stack {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .gis-portal-buildings-exchange-page .gis-exchange-stats-grid {
    grid-template-columns: 1fr;
  }

  .gis-portal-buildings-exchange-page .gis-page-hero-actions,
  .gis-portal-buildings-exchange-page .gis-exchange-search-toolbar {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    width: 100%;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-toolbar .input-group,
  .gis-portal-buildings-exchange-page .gis-exchange-filter-pills {
    width: 100%;
    flex: none;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-actions {
    width: 100%;
    justify-content: stretch;
    margin-left: 0;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-filter-pills .btn,
  .gis-portal-buildings-exchange-page .gis-page-hero-actions .btn,
  .gis-portal-buildings-exchange-page .gis-exchange-search-actions .btn,
  .gis-portal-buildings-exchange-page .gis-exchange-record-actions .btn {
    width: 100%;
  }
}

.gis-portal-buildings-page .gis-portal-buildings-stack,
.gis-portal-buildings-lookup-page .gis-portal-buildings-lookup-stack,
.gis-portal-buildings-bulk-page .gis-portal-buildings-bulk-stack,
.gis-portal-admin-areas-page .gis-portal-admin-areas-stack,
.gis-households-page .gis-households-stack,
.gis-population-page .gis-population-stack {
  gap: var(--space-stack-lg);
}

.gis-portal-buildings-page .gis-portal-buildings-workspace {
  gap: var(--space-3);
}

.gis-portal-buildings-page .gis-portal-buildings-editor-card .card-content,
.gis-portal-buildings-page .card-content.stack,
.gis-portal-buildings-lookup-page .card-content.stack,
.gis-portal-buildings-bulk-page .card-content.stack,
.gis-portal-admin-areas-page .card-content.stack,
.gis-households-page .card-content.stack,
.gis-population-page .card-content.stack {
  gap: var(--space-3);
}

.gis-admin-buildings-page .gis-form-section,
.gis-portal-buildings-page .gis-form-section,
.gis-portal-admin-areas-page .gis-form-section,
.gis-households-page .input-group,
.gis-portal-buildings-bulk-page .input-group,
.gis-portal-buildings-lookup-page .input-group {
  min-width: 0;
}

.gis-admin-buildings-page .gis-form-section,
.gis-portal-buildings-page .gis-form-section,
.gis-portal-admin-areas-page .gis-form-section {
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--card), transparent 3%);
}

.gis-admin-buildings-page #buildingCreateCard .card-content > .stack,
.gis-admin-buildings-page #buildingDetailCard .card-content > .stack,
.gis-portal-buildings-page #buildingCreateCard .card-content > .stack,
.gis-portal-buildings-page #buildingDetailCard .card-content > .stack {
  gap: 0;
}

.gis-admin-buildings-page #buildingCreateCard .gis-form-section,
.gis-admin-buildings-page #buildingDetailCard .gis-form-section,
.gis-portal-buildings-page #buildingCreateCard .gis-form-section,
.gis-portal-buildings-page #buildingDetailCard .gis-form-section {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.gis-admin-buildings-page #buildingCreateCard .gis-form-section + .gis-form-section,
.gis-admin-buildings-page #buildingDetailCard .gis-form-section + .gis-form-section,
.gis-portal-buildings-page #buildingCreateCard .gis-form-section + .gis-form-section,
.gis-portal-buildings-page #buildingDetailCard .gis-form-section + .gis-form-section {
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
}

.gis-portal-buildings-page .gis-create-progress {
  min-width: 0;
}

.gis-portal-buildings-page .gis-create-progress-track {
  height: 8px;
  background: var(--muted);
}

.gis-portal-buildings-page .gis-create-progress-bar {
  transition: width 220ms ease;
}

.gis-portal-buildings-page #buildingCreateCard {
  transition: border-color 220ms ease, box-shadow 220ms ease;
}

.gis-portal-buildings-page #buildingCreateCard[data-complete="true"] {
  border-color: var(--primary);
  box-shadow: var(--shadow-xs);
}

.gis-portal-buildings-page .gis-form-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-2);
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
}

.gis-portal-buildings-page .gis-form-actions > .btn {
  min-width: 0;
}

.gis-portal-buildings-page .gis-participant-col,
.gis-portal-buildings-page .gis-search-dropdown {
  min-width: 0;
}

:is(.gis-portal-buildings-page, .gis-admin-buildings-page) .gis-name-reference-list {
  gap: 0;
  padding-block: var(--space-1);
}

:is(.gis-portal-buildings-page, .gis-admin-buildings-page) .gis-name-reference-summary {
  padding: var(--space-1) var(--space-2);
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  font-weight: 600;
}

:is(.gis-portal-buildings-page, .gis-admin-buildings-page) .gis-name-reference-item {
  align-items: flex-start;
  gap: var(--space-2);
  cursor: default;
}

:is(.gis-portal-buildings-page, .gis-admin-buildings-page) .gis-name-reference-item-main {
  display: grid;
  min-width: 0;
  gap: var(--space-0-5);
}

:is(.gis-portal-buildings-page, .gis-admin-buildings-page) .gis-name-reference-item-name {
  min-width: 0;
  overflow-wrap: anywhere;
  font-weight: 600;
}

:is(.gis-portal-buildings-page, .gis-admin-buildings-page) .gis-name-reference-item small {
  overflow-wrap: anywhere;
}

:is(.gis-portal-buildings-page, .gis-admin-buildings-page) .gis-name-reference-match-badge {
  flex: 0 0 auto;
  margin-top: var(--space-0-5);
}

.gis-portal-buildings-page .gis-buildings-list-panel {
  margin-top: 0;
  max-height: none;
  overflow: visible;
}

.gis-portal-buildings-page .gis-op-stack .gis-buildings-list-wrapper {
  overflow-x: auto;
  overflow-y: visible;
}

.gis-portal-buildings-page .gis-buildings-complex-list-panel,
.gis-admin-buildings-page .gis-buildings-complex-list-panel {
  margin-top: 0;
  max-height: none;
  overflow: visible;
}

.gis-portal-buildings-page #complexDetailCard:not(.is-selected) .card-actions,
.gis-admin-buildings-page #complexDetailCard:not(.is-selected) .card-actions,
.gis-portal-buildings-page #complexDetailCard:not(.is-selected) .gis-admin-inline-panel-content > .grid,
.gis-admin-buildings-page #complexDetailCard:not(.is-selected) .gis-admin-inline-panel-content > .grid {
  display: none;
}

.gis-portal-buildings-page #buildingTransferPanel:not(.is-active),
.gis-admin-buildings-page #buildingTransferPanel:not(.is-active) {
  display: none;
}

.gis-portal-buildings-page .gis-buildings-list-table {
  min-width: 760px;
  table-layout: fixed;
}

.gis-portal-buildings-page .gis-buildings-list-table th,
.gis-portal-buildings-page .gis-buildings-list-table td {
  white-space: nowrap;
}

.gis-portal-buildings-page .gis-buildings-list-table th:first-child,
.gis-portal-buildings-page .gis-buildings-list-table td:first-child {
  white-space: normal;
}

.gis-portal-buildings-page .gis-buildings-list-table td:first-child .font-medium {
  word-break: keep-all;
  overflow-wrap: break-word;
}

.gis-portal-buildings-page .gis-buildings-row-head,
.gis-admin-buildings-page .gis-buildings-row-head {
  display: block;
  min-width: 0;
}

.gis-portal-buildings-page .gis-buildings-list-actions,
.gis-admin-buildings-page .gis-buildings-list-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-1);
}

.gis-portal-buildings-page .gis-buildings-row-mobile-meta,
.gis-admin-buildings-page .gis-buildings-row-mobile-meta {
  display: none;
}

.gis-portal-buildings-lookup-page .gis-toolbar--lookup {
  display: grid;
  grid-template-columns: minmax(11rem, 0.32fr) minmax(16rem, 1fr);
  gap: var(--space-3);
  align-items: end;
}

.gis-portal-buildings-lookup-page .gis-toolbar--lookup > .input-group {
  min-width: 0;
}

.gis-portal-buildings-lookup-page .gis-lookup-target-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  min-width: 0;
}

.gis-portal-buildings-lookup-page .gis-lookup-target-tabs .btn {
  justify-content: center;
  min-width: calc(var(--space-10) * 2);
}

.gis-portal-buildings-lookup-page .gis-lookup-target-tabs .btn.is-active {
  border-color: color-mix(in srgb, var(--primary), transparent 35%);
  background: color-mix(in srgb, var(--primary), transparent 88%);
  color: var(--foreground);
}

.gis-portal-buildings-lookup-page .gis-lookup-advanced-filters {
  grid-column: 1 / -1;
  min-width: 0;
}

.gis-portal-buildings-lookup-page .gis-lookup-advanced-filters > summary {
  display: none;
}

.gis-portal-buildings-lookup-page .gis-lookup-advanced-filters > summary::-webkit-details-marker {
  display: none;
}

.gis-portal-buildings-lookup-page .gis-lookup-advanced-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(13rem, 100%), 1fr));
  gap: var(--space-3);
  align-items: end;
}

.gis-portal-buildings-lookup-page .gis-lookup-advanced-grid .input-group {
  min-width: 0;
}

.gis-portal-buildings-page .gis-portal-buildings-filter-grid {
  align-items: start;
}

.gis-portal-buildings-page .gis-portal-buildings-filter-grid .input-group {
  align-content: start;
}

.gis-portal-buildings-page .gis-buildings-list-advanced-filters {
  grid-column: 1 / -1;
  min-width: 0;
}

.gis-portal-buildings-page .gis-buildings-list-advanced-filters > summary {
  display: none;
}

.gis-portal-buildings-page .gis-buildings-list-advanced-filters > summary::-webkit-details-marker {
  display: none;
}

.gis-portal-buildings-page .gis-buildings-list-advanced-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(13rem, 100%), 1fr));
  gap: var(--space-3);
  align-items: end;
}

.gis-portal-buildings-page .gis-buildings-list-advanced-grid .input-group {
  min-width: 0;
}

.gis-portal-buildings-lookup-page .gis-lookup-results-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-3);
  border-top: 1px solid var(--border);
}

.gis-portal-buildings-lookup-page .gis-lookup-results-header > :first-child {
  min-width: min(22rem, 100%);
  flex: 1 1 22rem;
}

.gis-portal-buildings-lookup-page .gis-lookup-results-header .card-title,
.gis-portal-buildings-lookup-page .gis-lookup-results-header .card-description {
  word-break: keep-all;
  overflow-wrap: break-word;
}

.gis-portal-buildings-lookup-page .gis-lookup-results-header .gis-pagination {
  flex: 0 0 auto;
  max-width: 100%;
}

.gis-portal-buildings-lookup-page .gis-lookup-table {
  min-width: 680px;
  table-layout: fixed;
}

.gis-portal-buildings-lookup-page .gis-lookup-table th,
.gis-portal-buildings-lookup-page .gis-lookup-table td {
  white-space: nowrap;
}

.gis-portal-buildings-lookup-page .gis-lookup-table th:first-child,
.gis-portal-buildings-lookup-page .gis-lookup-table td:first-child {
  white-space: normal;
}

.gis-portal-buildings-lookup-page .gis-lookup-table td:first-child .font-medium {
  word-break: keep-all;
  overflow-wrap: break-word;
}

.gis-portal-buildings-lookup-page .gis-lookup-row-mobile-meta {
  display: none;
}

.gis-portal-buildings-bulk-page .gis-portal-buildings-bulk-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
  align-items: start;
  min-width: 0;
}

.gis-portal-buildings-bulk-page .gis-portal-buildings-bulk-side {
  position: static;
}

.gis-portal-buildings-bulk-page .gis-portal-buildings-bulk-side .card-content > .grid {
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
  align-items: end;
}

.gis-portal-buildings-bulk-page .gis-portal-buildings-bulk-side .gis-bulk-wide-field {
  grid-column: auto;
}

.gis-portal-buildings-bulk-page .gis-portal-buildings-bulk-main,
.gis-portal-buildings-bulk-page .gis-portal-buildings-bulk-main > .card-content,
.gis-portal-buildings-bulk-page .gis-portal-buildings-bulk-generator,
.gis-portal-buildings-bulk-page .gis-portal-buildings-bulk-paste-panel,
.gis-portal-buildings-bulk-page .table-wrapper {
  min-width: 0;
  max-width: 100%;
}

.gis-portal-buildings-bulk-page .card-header--split {
  align-items: flex-start;
}

.gis-portal-buildings-bulk-page .gis-bulk-section-head > :first-child,
.gis-portal-buildings-bulk-page .gis-bulk-queue-head > :first-child,
.gis-portal-buildings-bulk-page .gis-page-summary-copy {
  min-width: 0;
}

.gis-portal-buildings-bulk-page .card-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-2);
  min-width: 0;
}

.gis-portal-buildings-bulk-page .gis-bulk-wide-field {
  grid-column: 1 / -1;
}

.gis-portal-buildings-bulk-page .gis-portal-buildings-bulk-generator {
  display: grid;
  gap: var(--space-3);
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--card), transparent 4%);
}

.gis-portal-buildings-bulk-page .gis-bulk-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
}

.gis-portal-buildings-bulk-page .gis-bulk-mode-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
  min-width: 0;
}

.gis-portal-buildings-bulk-page .gis-bulk-mode-option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-2);
  align-items: start;
  min-width: 0;
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--card), transparent 2%);
  color: var(--foreground);
  text-align: left;
  cursor: pointer;
  transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.gis-portal-buildings-bulk-page .gis-bulk-mode-option:hover,
.gis-portal-buildings-bulk-page .gis-bulk-mode-option:focus-visible {
  border-color: color-mix(in srgb, var(--primary), var(--border) 35%);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary), transparent 88%);
  outline: none;
}

.gis-portal-buildings-bulk-page .gis-bulk-mode-option.is-active {
  border-color: var(--primary);
  background: color-mix(in srgb, var(--primary), transparent 92%);
}

.gis-portal-buildings-bulk-page .gis-bulk-mode-option:disabled {
  cursor: default;
  opacity: 0.62;
}

.gis-portal-buildings-bulk-page .gis-bulk-mode-option > .hz-icon {
  margin-top: 1px;
  color: var(--muted-foreground);
}

.gis-portal-buildings-bulk-page .gis-bulk-mode-option.is-active > .hz-icon {
  color: var(--primary);
}

.gis-portal-buildings-bulk-page .gis-bulk-mode-option strong {
  display: block;
  margin-bottom: 2px;
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  overflow-wrap: anywhere;
}

.gis-portal-buildings-bulk-page .gis-bulk-mode-option span span {
  display: block;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  overflow-wrap: anywhere;
}

.gis-portal-buildings-bulk-page .gis-bulk-builder-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
  gap: var(--space-3);
  align-items: start;
  min-width: 0;
}

.gis-portal-buildings-bulk-page .gis-bulk-builder-panel {
  display: grid;
  gap: var(--space-3);
  min-width: 0;
  max-width: 100%;
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--card);
}

.gis-portal-buildings-bulk-page .gis-bulk-builder-panel .gis-grid-auto-fit-180 {
  grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
}

.gis-portal-buildings-bulk-page .gis-bulk-builder-panel .gis-search-select {
  width: 100%;
  min-width: 0;
}

.gis-portal-buildings-bulk-page .gis-bulk-existing-complex-search {
  width: 100%;
  min-width: 0;
}

.gis-portal-buildings-bulk-page .gis-bulk-existing-complex-search .input {
  padding-right: var(--space-8);
}

.gis-portal-buildings-bulk-page .gis-bulk-panel-title {
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 600;
  line-height: var(--lh-sm);
}

.gis-portal-buildings-bulk-page .gis-bulk-builder-panel--rows {
  align-content: start;
}

.gis-portal-buildings-bulk-page .gis-bulk-builder-panel--rows textarea.input {
  min-height: 188px;
  resize: vertical;
}

.gis-portal-buildings-bulk-page .gis-bulk-inline-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-2);
  min-width: 0;
}

.gis-portal-buildings-bulk-page .gis-bulk-details-summary {
  cursor: pointer;
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 600;
}

.gis-portal-buildings-bulk-page .gis-bulk-queue-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--space-3);
}

.gis-portal-buildings-bulk-page .gis-portal-buildings-bulk-paste-panel {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--card), transparent 4%);
}

.gis-portal-admin-list-page .gis-portal-admin-list-stack {
  gap: var(--space-stack-lg);
}

.gis-portal-admin-list-page .gis-portal-admin-list-filter-grid {
  align-items: end;
}

.gis-portal-admin-areas-page .gis-admin-areas-grid {
  margin-top: 0;
  gap: var(--space-4);
  grid-template-columns: minmax(320px, 0.88fr) minmax(0, 1.12fr);
}

.gis-portal-admin-areas-page .gis-portal-admin-areas-workspace {
  border: none;
  background: transparent;
  box-shadow: none;
}

.gis-portal-admin-areas-page .gis-portal-admin-areas-workspace > .card-header,
.gis-portal-admin-areas-page .gis-portal-admin-areas-workspace > .card-content {
  padding-left: 0;
  padding-right: 0;
}

.gis-portal-admin-areas-page .gis-portal-admin-areas-workspace > .card-header {
  padding-top: 0;
}

.gis-portal-admin-areas-page .gis-admin-areas-tree,
.gis-portal-admin-areas-page .gis-admin-areas-detail,
.gis-portal-admin-areas-page .gis-admin-areas-tree .card-content,
.gis-portal-admin-areas-page .gis-admin-areas-detail .card-content {
  min-width: 0;
}

.gis-portal-admin-areas-page .gis-admin-areas-tree-filter-grid {
  align-items: end;
}

.gis-portal-admin-areas-page .gis-admin-areas-tree-card {
  min-width: 0;
}

.gis-portal-admin-areas-page .gis-admin-areas-tree-card .card-content {
  background: color-mix(in srgb, var(--card), transparent 3%);
}

.gis-portal-admin-areas-page .gis-admin-areas-history-header {
  align-items: center;
}

.gis-households-page .gis-households-filter-grid {
  align-items: end;
}

.gis-households-page .gis-households-toggle-row {
  min-height: var(--control-h);
  align-items: center;
}

.gis-households-page .gis-households-summary-card[hidden] {
  display: none !important;
}

.gis-households-page .gis-households-table-note {
  padding-top: var(--space-3);
  border-top: 1px solid var(--border);
}

.gis-households-page .gis-households-list-panel,
.gis-admin-households-page .gis-admin-households-list-panel {
  max-height: none;
  overflow: visible;
}

.gis-households-row-mobile-meta {
  display: none;
}

@media (max-width: 640px) {
  .gis-households-page .gis-page-hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .gis-households-page .gis-page-hero-actions .btn {
    width: 100%;
    min-width: 0;
  }

  .gis-households-page .gis-households-filter-grid {
    grid-template-columns: 1fr;
    gap: var(--space-2);
  }

  .gis-households-page .gis-page-summary-row {
    align-items: stretch;
  }

  .gis-households-page .gis-households-table,
  .gis-households-page .gis-households-table thead,
  .gis-households-page .gis-households-table tbody,
  .gis-households-page .gis-households-table tr,
  .gis-households-page .gis-households-table td {
    display: block;
    width: 100%;
  }

  .gis-households-page .gis-households-table {
    min-width: 0;
    table-layout: auto;
  }

  .gis-households-page .gis-households-table thead {
    display: none;
  }

  .gis-households-page .gis-households-table tbody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-households-page .gis-households-table tr {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--space-2);
    align-items: center;
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
  }

  .gis-households-page .gis-households-table tr:hover {
    border-color: color-mix(in srgb, var(--primary), var(--border) 68%);
    background: color-mix(in srgb, var(--primary), var(--card) 94%);
  }

  .gis-households-page .gis-households-table td,
  .gis-households-page .gis-households-table tr:hover td {
    padding: 0;
    border-bottom: 0;
    background: transparent;
  }

  .gis-households-page .gis-households-table td:first-child,
  .gis-households-page .gis-households-table td[colspan] {
    grid-column: 1 / -1;
  }

  .gis-households-page .gis-households-table td:nth-child(2),
  .gis-households-page .gis-households-table td:nth-child(n + 5) {
    display: none;
  }

  .gis-households-page .gis-households-table td:nth-child(3) {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    width: auto;
    min-width: var(--control-h);
  }

  .gis-households-page .gis-households-table td:nth-child(4) {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
  }

  .gis-households-page .gis-households-table td:nth-child(3)::before,
  .gis-households-page .gis-households-table td:nth-child(4)::before {
    color: var(--muted-foreground);
    font-size: var(--fs-xs);
    font-weight: 600;
    line-height: var(--lh-xs);
    white-space: nowrap;
  }

  .gis-households-page .gis-households-table td:nth-child(3)::before {
    content: "주거";
  }

  .gis-households-page .gis-households-table td:nth-child(4)::before {
    content: "세대 수";
  }

  .gis-households-page .gis-households-table td:nth-child(4) .input {
    width: 100%;
    max-width: calc(var(--space-10) * 3);
  }

  .gis-households-row-mobile-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
    margin-top: var(--space-1);
  }

  .gis-households-row-mobile-meta span {
    min-width: 0;
    padding: var(--space-0-5) var(--space-1-5);
    border-radius: var(--radius-sm);
    background: var(--muted);
    color: var(--muted-foreground);
    font-size: var(--fs-2xs);
    line-height: var(--lh-xs);
    word-break: keep-all;
    overflow-wrap: anywhere;
  }

  .gis-households-row-mobile-meta strong {
    margin-right: var(--space-1);
    color: var(--foreground);
    font-weight: 600;
  }
}

.gis-population-page .gis-stats-grid {
  margin-bottom: 0;
}

.gis-portal-population-page .gis-page-hero-card {
  order: 1;
}

.gis-portal-population-page .gis-stats-grid {
  order: 2;
}

.gis-portal-population-page .gis-population-overview-card {
  order: 4;
}

.gis-portal-population-page .gis-population-series-card {
  order: 3;
}

.gis-portal-population-page .gis-population-history-card {
  order: 5;
}

.gis-population-page .gis-population-admin-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}

.gis-population-page .gis-population-admin-task,
.gis-population-page .gis-pop-overview-panel {
  min-width: 0;
}

.gis-population-page .gis-population-admin-actions {
  display: flex;
  justify-content: flex-end;
}

.gis-population-page .gis-population-series-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.95fr);
  gap: var(--space-3);
  align-items: start;
}

.gis-population-page .gis-population-selection-block {
  min-width: 0;
  display: grid;
  gap: var(--space-1-5);
}

.gis-population-page .gis-population-series-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
}

.gis-population-page .gis-population-series-chart-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
  min-width: 0;
}

.gis-population-page .gis-population-series-chart-head > .text-xs {
  min-width: 0;
  overflow-wrap: anywhere;
}

.gis-population-page .gis-population-series-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-1-5);
  min-width: 0;
  flex: 0 0 auto;
}

.gis-population-page .gis-population-series-mode,
.gis-population-page .gis-population-series-range {
  display: inline-grid;
  gap: var(--space-1);
  min-width: 0;
}

.gis-population-page .gis-population-series-mode {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gis-population-page .gis-population-series-range {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gis-population-page .gis-population-series-mode .btn,
.gis-population-page .gis-population-series-range .btn {
  justify-content: center;
  min-width: calc(var(--space-10) * 1.4);
}

.gis-population-page .gis-population-series-mode .btn.is-active,
.gis-population-page .gis-population-series-range .btn.is-active {
  border-color: color-mix(in srgb, var(--primary), transparent 35%);
  background: color-mix(in srgb, var(--primary), transparent 88%);
  color: var(--foreground);
}

.gis-population-page .gis-population-metric {
  display: grid;
  gap: var(--space-1);
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--card), transparent 3%);
}

.gis-population-page .gis-population-metric-label {
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted-foreground);
}

.gis-population-page .gis-population-metric-value {
  font-size: var(--fs-body-lg);
  font-weight: 700;
  line-height: var(--lh-body-lg);
  color: var(--foreground);
  word-break: break-word;
}

.gis-population-page .gis-population-query-panel {
  display: grid;
  gap: var(--space-2-5);
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--card), transparent 3%);
}

.gis-population-page .gis-population-query-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
}

.gis-population-page .gis-population-history-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  margin-bottom: var(--space-3);
}

.gis-population-page .gis-population-history-tabs .btn {
  min-width: calc(var(--space-10) * 2);
  justify-content: center;
}

.gis-population-page .gis-population-history-tabs .btn.is-active {
  border-color: color-mix(in srgb, var(--primary), transparent 35%);
  background: color-mix(in srgb, var(--primary), transparent 88%);
  color: var(--foreground);
}

.gis-population-page .gis-population-history-workbench {
  display: grid;
  grid-template-columns: minmax(280px, 0.34fr) minmax(0, 1fr);
  gap: var(--space-3);
  align-items: start;
  min-width: 0;
}

.gis-population-page .gis-population-history-card .card-content,
.gis-population-page .gis-population-history-sidebar,
.gis-population-page .gis-population-history-content {
  min-width: 0;
  min-height: 0;
}

.gis-population-page .gis-population-history-sidebar {
  display: grid;
  gap: var(--space-3);
  align-content: start;
}

.gis-population-page .gis-population-history-content {
  display: grid;
  gap: var(--space-3);
}

.gis-population-page .gis-population-history-chart-panel {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
  min-height: 0;
}

.gis-population-page .gis-population-history-card [data-history-panel][hidden] {
  display: none !important;
}

.gis-population-page .gis-population-history-visual-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.6fr);
  gap: var(--space-3);
  align-items: start;
  min-width: 0;
}

.gis-population-page .gis-population-history-card.is-history-view-compare .gis-population-history-visual-grid {
  grid-template-columns: minmax(0, 1fr);
}

.gis-population-page .gis-population-reference-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(140px, 1fr));
  gap: var(--space-2);
}

.gis-population-page .gis-population-history-sidebar .gis-population-reference-summary {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gis-population-page .gis-population-reference-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
  gap: var(--space-3);
  align-items: start;
}

.gis-population-page .gis-population-reference-table-block {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
}

.gis-population-page .gis-population-reference-controls {
  display: grid;
  grid-template-columns: minmax(180px, 0.6fr) minmax(240px, 1fr);
  gap: var(--space-2);
  align-items: end;
}

.gis-population-page .gis-population-history-sidebar .gis-population-reference-controls {
  grid-template-columns: minmax(0, 1fr);
}

.gis-admin-population-page .gis-population-reference-controls {
  grid-template-columns: minmax(180px, 0.5fr) minmax(240px, 0.8fr) max-content;
}

.gis-population-page .gis-population-reference-filter {
  display: flex;
  gap: var(--space-1);
  justify-content: flex-start;
  align-items: center;
  min-height: var(--control-h);
  flex-wrap: wrap;
}

.gis-population-page .gis-population-reference-filter .btn {
  min-width: 0;
}

.gis-population-page .gis-population-reference-filter .btn.is-active {
  border-color: color-mix(in srgb, var(--primary), transparent 35%);
  background: color-mix(in srgb, var(--primary), transparent 88%);
  color: var(--foreground);
}

.gis-population-page .gis-population-compare-panel {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--card), transparent 3%);
  min-width: 0;
}

.gis-population-page .gis-population-compare-panel[hidden] {
  display: none !important;
}

.gis-population-page .gis-population-compare-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.gis-population-page .gis-population-compare-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  min-width: 0;
}

.gis-population-page .gis-population-compare-view {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-1);
}

.gis-population-page .gis-population-compare-view .btn {
  justify-content: center;
}

.gis-population-page .gis-population-compare-view .btn.is-active {
  border-color: color-mix(in srgb, var(--primary), transparent 35%);
  background: color-mix(in srgb, var(--primary), transparent 88%);
  color: var(--foreground);
}

.gis-population-page .gis-population-compare-chip {
  max-width: 100%;
}

.gis-population-page .gis-population-compare-chip .gis-population-share-swatch {
  flex: 0 0 auto;
  margin-top: 0;
}

.gis-population-page .gis-population-reference-chart {
  height: calc(var(--space-10) * 11);
  min-height: 0;
}

.gis-population-page .gis-population-history-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
  gap: var(--space-3);
  align-items: start;
}

.gis-population-page .gis-population-history-main,
.gis-population-page .gis-population-history-side {
  min-width: 0;
  min-height: 0;
}

.gis-population-page .gis-population-history-side {
  display: grid;
  gap: var(--space-3);
  grid-template-rows: auto auto;
}

.gis-population-page .gis-population-history-timeline-panel {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--card), transparent 3%);
}

.gis-population-page .gis-population-history-chart-head {
  display: flex;
  justify-content: space-between;
  gap: var(--space-3);
  align-items: flex-start;
  min-width: 0;
}

.gis-population-page .gis-population-history-chart-head > div {
  min-width: 0;
}

.gis-population-page .gis-population-history-chart-head .text-xs {
  overflow-wrap: anywhere;
}

.gis-population-page .gis-population-history-timeline {
  height: calc(var(--space-10) * 6);
  min-height: 0;
}

.gis-population-page .gis-population-share-chart {
  height: calc(var(--space-10) * 6);
  min-height: 0;
}

.gis-population-page .gis-population-share-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-2);
  align-items: stretch;
  min-width: 0;
}

.gis-population-page .gis-population-share-layout .gis-population-share-chart {
  height: auto;
  min-height: calc(var(--space-10) * 6);
}

.gis-population-page .gis-population-history-timeline,
.gis-population-page .gis-population-reference-chart,
.gis-population-page .gis-population-share-chart,
.gis-population-page .gis-population-series-chart {
  border-color: color-mix(in srgb, var(--border), transparent 34%);
  background: color-mix(in srgb, var(--card), var(--background) 38%);
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, var(--foreground), transparent 98%),
    0 1px 2px color-mix(in srgb, var(--background), transparent 62%);
}

.gis-population-page .gis-population-history-timeline,
.gis-population-page .gis-population-reference-chart,
.gis-population-page .gis-population-share-chart {
  padding: var(--space-1);
}

.gis-population-page .gis-population-share-list {
  display: grid;
  gap: var(--space-1);
  max-height: calc(var(--space-10) * 6);
  overflow: auto;
  padding: var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--card), transparent 3%);
}

.gis-population-page .gis-population-share-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  gap: var(--space-1-5);
  align-items: start;
  min-width: 0;
  padding: var(--space-1) 0;
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-population-page .gis-population-share-swatch {
  width: var(--space-2);
  height: var(--space-2);
  margin-top: 0.28em;
  border-radius: var(--radius-full);
}

.gis-population-page .gis-population-share-name {
  min-width: 0;
  color: var(--foreground);
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.gis-population-page .gis-population-share-value,
.gis-population-page .gis-population-share-percent {
  color: var(--muted-foreground);
  white-space: nowrap;
  text-align: right;
}

.gis-population-page .gis-population-reference-chart .gis-population-empty,
.gis-population-page .gis-population-share-chart .gis-population-empty,
.gis-population-page .gis-population-history-timeline .gis-population-empty {
  height: 100%;
  min-height: calc(var(--space-10) * 6);
  display: flex;
  align-items: center;
  justify-content: center;
}

.gis-population-page .gis-population-reference-table {
  max-height: calc(var(--space-10) * 11);
  overflow: auto;
  min-height: 0;
}

.gis-population-page .gis-population-reference-table table {
  min-width: 100%;
}

.gis-population-page .gis-population-history-card .gis-population-reference-table table {
  table-layout: fixed;
}

.gis-population-page .gis-population-history-card .gis-population-reference-table th:first-child,
.gis-population-page .gis-population-history-card .gis-population-reference-table td:first-child {
  width: 58%;
  min-width: 0;
  overflow-wrap: anywhere;
}

.gis-population-page .gis-population-history-card .gis-population-reference-table th:last-child,
.gis-population-page .gis-population-history-card .gis-population-reference-table td:last-child {
  width: 42%;
  text-align: right;
}

.gis-population-page .gis-population-history-card.is-history-view-compare .gis-population-reference-table tr[data-reference-history-id] {
  cursor: pointer;
}

.gis-population-page .gis-population-history-card.is-history-view-compare .gis-population-reference-table tr[data-reference-history-id]:hover,
.gis-population-page .gis-population-history-card .gis-population-reference-table tr.is-compare-selected {
  background: color-mix(in srgb, var(--primary), transparent 90%);
}

.gis-population-page .gis-population-history-card .gis-population-reference-table tr.is-compare-selected td:first-child {
  font-weight: 700;
}

.gis-population-page .gis-population-compare-tag {
  display: inline-flex;
  align-items: center;
  min-height: var(--space-5);
  margin-left: var(--space-1);
  padding: 0 var(--space-1);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--primary), transparent 86%);
  color: var(--foreground);
  font-size: var(--fs-xs);
  font-weight: 600;
  line-height: 1;
  vertical-align: middle;
}

.gis-admin-population-page .gis-population-reference-chart,
.gis-admin-population-page .gis-population-reference-table {
  height: calc(var(--space-10) * 11);
  max-height: calc(var(--space-10) * 11);
}

.gis-admin-population-page .gis-population-reference-table table {
  min-width: 100%;
  table-layout: fixed;
}

.gis-admin-population-page .gis-population-reference-table th,
.gis-admin-population-page .gis-population-reference-table td {
  white-space: normal;
  overflow-wrap: anywhere;
}

.gis-admin-population-page .gis-population-reference-table th:nth-child(1),
.gis-admin-population-page .gis-population-reference-table td:nth-child(1) {
  width: 38%;
}

.gis-admin-population-page .gis-population-reference-table th:nth-child(2),
.gis-admin-population-page .gis-population-reference-table td:nth-child(2) {
  width: 20%;
  text-align: right;
}

.gis-admin-population-page .gis-population-reference-table th:nth-child(3),
.gis-admin-population-page .gis-population-reference-table td:nth-child(3) {
  width: 19%;
}

.gis-admin-population-page .gis-population-reference-table th:nth-child(4),
.gis-admin-population-page .gis-population-reference-table td:nth-child(4) {
  width: 23%;
}

.gis-population-page .gis-population-reference-type {
  display: inline-flex;
  align-items: center;
  min-height: var(--space-5);
  padding: 0 var(--space-1-5);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: var(--fs-xs);
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}

.gis-population-page .gis-population-reference-type.is-raw {
  border-color: color-mix(in srgb, var(--success, var(--primary)), transparent 55%);
  background: color-mix(in srgb, var(--success, var(--primary)), transparent 90%);
}

.gis-population-page .gis-population-reference-type.is-interpolated {
  border-color: color-mix(in srgb, var(--info, var(--primary)), transparent 55%);
  background: color-mix(in srgb, var(--info, var(--primary)), transparent 90%);
}

.gis-population-page .gis-population-reference-type.is-aggregate {
  border-color: color-mix(in srgb, var(--warning, var(--primary)), transparent 55%);
  background: color-mix(in srgb, var(--warning, var(--primary)), transparent 88%);
}

.gis-population-page .gis-population-status-pill {
  display: inline-flex;
  align-items: center;
  min-height: var(--space-5);
  padding: 0 var(--space-1-5);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: var(--fs-xs);
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: var(--muted-foreground);
}

.gis-population-page .gis-population-status-pill.is-active {
  border-color: color-mix(in srgb, var(--success, var(--primary)), transparent 55%);
  color: var(--foreground);
}

.gis-population-page .gis-population-status-pill.is-dormant {
  border-color: color-mix(in srgb, var(--warning, var(--primary)), transparent 55%);
}

.gis-population-page .gis-population-status-pill.is-merged,
.gis-population-page .gis-population-status-pill.is-terminated {
  border-color: color-mix(in srgb, var(--muted-foreground), transparent 55%);
  background: color-mix(in srgb, var(--muted-foreground), transparent 92%);
}

.gis-population-page .gis-population-reference-raw {
  display: grid;
  gap: var(--space-2);
}

.gis-population-page .gis-population-reference-raw-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-2);
}

.gis-population-page .gis-population-reference-raw-table {
  max-height: calc(var(--space-10) * 6);
  overflow: auto;
}

.gis-population-page .gis-population-reference-raw-table table {
  min-width: calc(var(--space-12) * 10);
}

.gis-population-page .gis-population-empty {
  padding: var(--space-4);
  border: 1px dashed var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--card), transparent 4%);
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

.gis-population-page .gis-population-empty[hidden],
.gis-population-page #seriesChartWrap[hidden] {
  display: none !important;
}

.gis-population-page .gis-population-series-chart {
  overflow: hidden;
  padding: var(--space-1-5);
}

.gis-population-page .gis-population-series-chart > canvas {
  height: calc(var(--space-10) * 8);
}

.gis-population-page .gis-echarts-canvas {
  width: 100%;
  height: calc(var(--space-10) * 8);
  min-height: calc(var(--space-10) * 7);
  display: block;
  border-radius: var(--radius-md);
}

.gis-population-page .gis-population-series-chart > canvas[hidden],
.gis-population-page .gis-echarts-canvas[hidden] {
  display: none !important;
}

.gis-chart-tooltip {
  display: grid;
  gap: var(--space-1-5);
  min-width: min(calc(var(--space-10) * 3), calc(100vw - var(--space-6)));
  max-width: min(calc(var(--space-10) * 11), calc(100vw - var(--space-6)));
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  white-space: normal;
  overflow-wrap: anywhere;
}

.gis-echarts-tooltip {
  pointer-events: none !important;
  border-radius: calc(var(--radius-md) + var(--space-0-5)) !important;
  box-shadow: var(--shadow-md);
  max-width: min(calc(var(--space-10) * 12), calc(100vw - var(--space-6))) !important;
  white-space: normal !important;
}

.gis-chart-tooltip strong {
  min-width: 0;
  font-weight: 700;
  line-height: var(--lh-xs);
  white-space: normal;
  overflow-wrap: anywhere;
}

.gis-chart-tooltip-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: var(--space-1-5);
  align-items: center;
  min-width: 0;
}

.gis-chart-tooltip-row.is-total {
  margin-top: var(--space-1);
  padding-top: var(--space-1);
  border-top: 1px solid color-mix(in srgb, var(--border), transparent 30%);
}

.gis-chart-tooltip-row > span:first-child,
.gis-chart-tooltip-swatch {
  width: var(--space-2);
  height: var(--space-2);
  border-radius: 50%;
  margin-top: 0.25em;
}

.gis-chart-tooltip-row b,
.gis-chart-tooltip-row em {
  font-style: normal;
  font-weight: 500;
}

.gis-chart-tooltip-row em {
  white-space: nowrap;
  text-align: right;
}

.gis-chart-tooltip-row b {
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
}

.gis-chart-tooltip-row small {
  display: block;
  min-width: 0;
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  font-weight: 500;
  line-height: var(--lh-2xs);
  white-space: normal;
  overflow-wrap: anywhere;
}

.gis-chart-tooltip--series {
  gap: var(--space-1);
  width: min(calc(var(--space-10) * 11), calc(100vw - var(--space-6)));
  min-width: min(calc(var(--space-10) * 4), calc(100vw - var(--space-6)));
  max-width: min(calc(var(--space-10) * 12), calc(100vw - var(--space-6)));
}

.gis-chart-tooltip--series .gis-chart-tooltip-row {
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-1) var(--space-1-5);
  align-items: start;
  padding: calc(var(--space-px) * 2) 0;
}

.gis-chart-tooltip-item {
  display: grid;
  gap: calc(var(--space-px) * 2);
  min-width: 0;
}

.gis-chart-tooltip-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-2);
  align-items: baseline;
  min-width: 0;
}

.gis-chart-tooltip--compact {
  width: min(calc(var(--space-10) * 7), calc(100vw - var(--space-6)));
  min-width: min(calc(var(--space-10) * 3), calc(100vw - var(--space-6)));
  max-width: min(calc(var(--space-10) * 7), calc(100vw - var(--space-6)));
  gap: var(--space-1);
}

.gis-chart-tooltip--compact strong {
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  font-weight: 600;
}

.gis-chart-tooltip--compact .gis-chart-tooltip-row {
  padding: 0;
}

.gis-chart-tooltip--compact .gis-chart-tooltip-main {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-1-5);
}

.gis-chart-tooltip--compact .gis-chart-tooltip-row small {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 520px) {
  .gis-chart-tooltip--series {
    width: auto;
  }

  .gis-chart-tooltip-main {
    grid-template-columns: minmax(0, 1fr);
    gap: calc(var(--space-px) * 2);
  }

  .gis-chart-tooltip-row em {
    text-align: left;
  }

  .gis-chart-tooltip--compact {
    width: min(calc(var(--space-10) * 7), calc(100vw - var(--space-6)));
  }

  .gis-chart-tooltip--compact .gis-chart-tooltip-main {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .gis-chart-tooltip--compact .gis-chart-tooltip-row em {
    text-align: right;
  }
}

.gis-portal-admin-list-page .gis-timeline-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: var(--fs-sm);
}

.gis-portal-admin-list-page .gis-timeline-table th {
  padding: var(--space-2) var(--space-4);
  font-weight: 600;
  color: var(--muted-foreground);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-bottom: 2px solid var(--border);
  text-align: left;
  white-space: nowrap;
}

.gis-portal-admin-list-page .gis-timeline-table td {
  padding: var(--space-2) var(--space-4);
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
  word-break: keep-all;
}

.gis-portal-admin-list-page .gis-timeline-table tbody tr:last-child td {
  border-bottom: 0;
}

.gis-portal-admin-list-page .gis-timeline-table tbody tr:hover {
  background: var(--hover-overlay);
}

.gis-portal-admin-list-page .city-info {
  display: flex;
  flex-direction: column;
  gap: var(--space-0-5);
}

.gis-portal-admin-list-page .city-name {
  font-size: var(--fs-body);
  font-weight: 700;
  color: var(--foreground);
  line-height: 1.4;
}

.gis-portal-admin-list-page .city-meta {
  font-size: var(--fs-sm);
  color: var(--muted-foreground);
  line-height: 1.4;
}

.gis-portal-admin-list-page .timeline-container {
  width: 100%;
  min-width: 300px;
}

.gis-portal-admin-list-page .timeline-track {
  position: relative;
  width: 100%;
  min-height: var(--control-h-s);
  border-radius: var(--radius-sm);
  background: var(--muted);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-inline: var(--space-2);
}

.gis-portal-admin-list-page .timeline-bar {
  position: absolute;
  inset-block: 0;
  border-radius: 0;
  transition: inset 220ms ease, width 220ms ease, background-color 220ms ease;
  z-index: 1;
}

.gis-portal-admin-list-page .timeline-bar--primary {
  background: var(--primary);
}

.gis-portal-admin-list-page .timeline-bar--warning {
  background: var(--warning);
}

.gis-portal-admin-list-page .timeline-bar--muted {
  background: var(--muted-foreground);
}

.gis-portal-admin-list-page .timeline-label {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--muted-foreground);
}

.gis-portal-admin-list-page .timeline-label span {
  margin-left: var(--space-2);
  color: var(--foreground);
  text-shadow: 0 0 1px var(--background), 0 0 2px var(--background);
}

.gis-portal-admin-list-page .timeline-days {
  color: var(--primary);
}

.gis-portal-admin-list-page .timeline-empty {
  font-size: var(--fs-xs);
  color: var(--muted-foreground);
  font-style: italic;
}

.gis-portal-admin-list-page .gis-timeline-table .badge {
  font-size: var(--fs-sm);
  padding: var(--space-0-5) var(--space-2);
  min-width: 0;
  width: auto;
}

.gis-portal-admin-list-page .gis-status-badge {
  border: none;
}

.gis-portal-admin-list-page .gis-status-badge--primary {
  background: var(--primary);
  color: var(--primary-foreground);
}

.gis-portal-admin-list-page .gis-status-badge--warning {
  background: color-mix(in srgb, var(--warning), transparent 16%);
  color: var(--foreground);
}

.gis-portal-admin-list-page .gis-status-badge--muted {
  background: var(--muted-foreground);
  color: var(--background);
}

.portal-city-row {
  display: grid;
  grid-template-columns: minmax(9rem, 0.58fr) minmax(16rem, 1.42fr);
  align-items: start;
  gap: var(--space-4);
  min-width: 0;
  padding: var(--space-3);
}

.portal-city-row + .portal-city-row {
  border-top: var(--space-px) solid var(--border);
}

.portal-city-row-header {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: var(--space-2);
}

.portal-city-row-title {
  min-width: 0;
  display: grid;
  gap: var(--space-0-5);
}

.portal-city-row-title [data-role="city-dday"] {
  min-width: 0;
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
  white-space: nowrap;
}

.portal-city-row-content {
  min-width: 0;
  display: grid;
  gap: var(--space-2);
}

.portal-city-row-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  min-width: 0;
  margin: 0;
}

.portal-city-row-metric {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: var(--space-0-5);
  margin: 0;
  padding-inline: var(--space-3);
  border-left: var(--space-px) solid var(--border);
}

.portal-city-row-metric:first-child {
  padding-left: 0;
  border-left: 0;
}

.portal-city-row-metric:last-child {
  padding-right: 0;
}

.portal-city-row-metric .stat-label,
.portal-city-row-metric .stat-value {
  min-width: 0;
  margin: 0;
}

.portal-city-row-metric .stat-label {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  font-weight: 600;
}

.portal-city-row-metric .stat-value {
  overflow: hidden;
  color: var(--foreground);
  font-size: var(--fs-h3);
  line-height: var(--lh-h3);
  font-weight: 700;
  font-variant-numeric: tabular-nums lining-nums;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.portal-city-row-breakdown {
  min-width: 0;
  padding-top: var(--space-2);
  border-top: var(--space-px) solid var(--border);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: var(--muted-foreground);
  overflow-wrap: anywhere;
}

.portal-city-row-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding-top: var(--space-2);
  border-top: 1px solid var(--border);
}

.portal-city-row-footer-meta {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  flex: 1 1 240px;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.portal-city-row-footer .btn {
  white-space: nowrap;
}

.portal-city-row-footer span {
  white-space: nowrap;
}

.gis-resource-dropzone {
  border: 1px dashed var(--line);
  border-radius: var(--radius-2);
  padding: var(--space-4);
  text-align: center;
  color: var(--muted-foreground);
  background: color-mix(in oklab, var(--surface) 90%, transparent);
  cursor: pointer;
  transition: border-color 160ms ease, background-color 160ms ease;
}

.gis-resource-dropzone:hover,
.gis-resource-dropzone:focus-visible,
.gis-resource-dropzone.is-drag-over {
  border-color: var(--line-strong);
  background: color-mix(in oklab, var(--surface) 96%, transparent);
  color: var(--foreground);
}

.gis-resource-upload-progress {
  margin-top: var(--space-2);
  display: grid;
  gap: var(--space-1);
}

.gis-resource-upload-progress-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.gis-resource-upload-progress-head strong {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

@media (max-width: 640px) {
  .gis-table-headline,
  .gis-table-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .gis-table-headline .gis-pagination,
  .gis-table-footer .gis-pagination {
    justify-content: center;
    margin-left: 0;
    overflow-x: auto;
    padding-bottom: var(--space-0-5);
  }

  .gis-body .table-wrapper.gis-mobile-card-table-wrapper,
  .gis-op-stack .gis-mobile-card-table-wrapper,
  .gis-mobile-card-table-wrapper {
    overflow: visible;
    overflow-x: visible;
    overflow-y: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .gis-admin-page .table-wrapper.table-sticky.gis-mobile-card-table-wrapper,
  .gis-op-stack .table-wrapper.gis-mobile-card-table-wrapper {
    overflow: visible;
    overflow-x: visible;
    overflow-y: visible;
  }

  .gis-op-stack .gis-mobile-card-table-wrapper::after,
  .gis-mobile-card-table-wrapper::after {
    display: none;
  }

  .gis-mobile-card-table,
  .gis-mobile-card-table thead,
  .gis-mobile-card-table tbody,
  .gis-mobile-card-table tr,
  .gis-mobile-card-table td {
    display: block;
    width: 100%;
  }

  .gis-mobile-card-table thead {
    display: none;
  }

  .gis-mobile-card-table tbody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-mobile-card-table tr {
    display: grid;
    gap: var(--space-2);
    padding: var(--space-3);
    border: var(--space-px) solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
  }

  .gis-mobile-card-table td,
  .gis-mobile-card-table tr:hover td {
    padding: 0;
    border-bottom: 0;
    text-align: left !important;
  }

  .gis-mobile-card-table--label-all td,
  .gis-mobile-card-table--label-after-first td:not(:first-child) {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3);
    min-width: 0;
  }

  .gis-mobile-card-table--label-all td::before,
  .gis-mobile-card-table--label-after-first td:not(:first-child)::before {
    content: attr(data-label);
    flex: 0 0 auto;
    min-width: var(--gis-mobile-card-label-width, 4.75rem);
    color: var(--muted-foreground);
    font-size: var(--fs-xs);
    font-weight: 600;
    line-height: var(--lh-xs);
  }

  .gis-mobile-card-table--label-all td:not([data-label])::before,
  .gis-mobile-card-table--label-after-first td:not(:first-child):not([data-label])::before {
    content: none;
    min-width: 0;
  }

  .gis-mobile-card-table td[colspan] {
    display: block;
  }

  .gis-mobile-card-table td[colspan]::before {
    content: none !important;
  }

  .gis-mobile-card-table--actions-last td:last-child {
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .gis-admin-resource-page .gis-admin-resource-saved-table input[data-saved-base-date] {
    width: 100%;
    max-width: none;
  }

  .gis-admin-resource-page .gis-admin-resource-list-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .gis-admin-permissions-page .gis-admin-permissions-table {
    --gis-mobile-card-label-width: 5.25rem;
  }

  .gis-admin-lines-page .card-content:has(.gis-admin-line-stops-table) {
    overflow: visible;
  }

  .gis-admin-transit-operators-page .gis-admin-transit-operators-table {
    --gis-mobile-card-label-width: 4rem;
  }

  .gis-admin-transit-operators-page .gis-admin-transit-operators-table td,
  .gis-admin-transit-operators-page .gis-admin-transit-operators-table tr:hover td {
    display: grid;
    grid-template-columns: minmax(4rem, 0.34fr) minmax(0, 1fr);
    gap: var(--space-2);
    align-items: center;
    justify-content: stretch;
  }

  .gis-admin-transit-operators-page .gis-admin-transit-operators-table td::before {
    min-width: 0;
  }

  .gis-admin-transit-operators-page .gis-admin-transit-operators-table td:nth-child(3) {
    overflow-wrap: anywhere;
  }

  .gis-admin-transit-operators-page .gis-admin-transport-list-content .gis-table-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .gis-admin-transit-operators-page .gis-admin-transport-list-content .gis-pagination {
    justify-content: flex-start;
    margin-left: 0;
    max-width: 100%;
    overflow-x: auto;
    width: 100%;
  }

  .gis-admin-lines-page .gis-lines-table tr[data-row-id] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--space-2);
    align-items: start;
  }

  .gis-admin-lines-page .gis-lines-table tr[data-row-id] td:nth-child(3),
  .gis-admin-lines-page .gis-lines-table tr[data-row-id] td:nth-child(4),
  .gis-admin-lines-page .gis-lines-table tr[data-row-id] td:nth-child(5),
  .gis-admin-lines-page .gis-line-stops-table td:nth-child(1),
  .gis-admin-lines-page .gis-line-stops-table td:nth-child(3),
  .gis-admin-stations-page .gis-stations-table td:not(:first-child),
  .gis-admin-stations-page .gis-station-line-stops-table td:not(:first-child),
  .gis-admin-roads-page .gis-roads-table td:not(:first-child) {
    display: none;
  }

  .gis-admin-lines-page .gis-lines-table .gis-line-section-row {
    padding: 0;
    border: 0;
    background: transparent;
  }

  .gis-admin-lines-page .gis-lines-table .gis-line-section-row td {
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
  }

  .gis-admin-lines-page .gis-line-stops-table td:nth-child(6) {
    display: block;
    margin-top: var(--space-2);
  }

  .gis-admin-lines-page .gis-line-stops-table td:nth-child(4),
  .gis-admin-lines-page .gis-line-stops-table td:nth-child(5) {
    display: grid;
    gap: var(--space-1);
  }

  .gis-admin-lines-page .gis-line-stops-table td:nth-child(4)::before,
  .gis-admin-lines-page .gis-line-stops-table td:nth-child(5)::before {
    color: var(--muted-foreground);
    font-size: var(--fs-xs);
    font-weight: 600;
  }

  .gis-admin-lines-page .gis-stop-actions {
    width: 100%;
    justify-content: stretch;
  }

  .gis-admin-lines-page .gis-stop-action-btn {
    flex: 1 1 auto;
  }

  .gis-admin-lines-page .gis-stop-action-btn.gis-drag-handle {
    flex: 0 0 var(--control-h-m);
  }
}

.gis-admin-areas-detail {
  display: grid;
  gap: var(--space-3);
  min-width: 0;
}

.gis-admin-areas-banner {
  margin-bottom: var(--space-2);
}

.gis-admin-areas-history-header {
  width: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-2);
}

.gis-admin-areas-history-actions {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-1);
}

.gis-admin-areas-history-actions .btn {
  white-space: nowrap;
}

.gis-admin-areas-history-row-actions {
  display: inline-flex;
  justify-content: flex-end;
  gap: var(--space-1);
  white-space: nowrap;
}

.gis-admin-areas-detail .gis-readonly-field {
  display: flex;
  align-items: center;
  min-width: 0;
  overflow: hidden;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  color: var(--muted-foreground);
  cursor: default;
  user-select: text;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-tree-row {
  display: flex;
  align-items: center;
  gap: calc(var(--space-1) - var(--space-px));
}

.gis-tree-toggle {
  width: var(--space-6);
  padding: 0;
  justify-content: center;
  flex-shrink: 0;
}

.gis-tree-toggle.gis-tree-toggle-hidden {
  visibility: hidden;
}

.gis-tree-item {
  width: 100%;
  justify-content: flex-start;
  gap: var(--space-1-5);
  padding: calc(var(--space-1) - var(--space-px)) var(--space-1-5);
  font-size: var(--fs-xs);
  line-height: 1.2;
}

.gis-tree-item.is-selected {
  background: color-mix(in srgb, var(--primary), transparent 88%);
  border-color: color-mix(in srgb, var(--primary), transparent 45%);
}

.gis-tree-badges {
  margin-left: auto;
  display: inline-flex;
  gap: var(--space-1);
  align-items: center;
}

.gis-tree-meta {
  margin-left: var(--space-2);
  white-space: nowrap;
}

.gis-tree-search-item {
  padding: calc(var(--space-1) - var(--space-px)) var(--space-1-5);
  font-size: var(--fs-xs);
  line-height: 1.2;
}

.gis-pop-panel .card-content {
  padding-top: var(--space-2);
}

:root {
  --gis-pop-section-title-color: var(--muted-foreground);
  --gis-month-picker-gap: var(--space-1);
}

.gis-month-picker {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  gap: var(--gis-month-picker-gap);
  align-items: center;
}

.gis-month-picker .input[type="month"] {
  min-width: calc(var(--space-8) * 4 + var(--space-3));
}

.gis-pop-stack {
  display: grid;
  gap: var(--space-2);
}

.gis-pop-section {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-2);
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--card), transparent 3%);
}

.gis-pop-section-title {
  font-size: var(--fs-sm);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gis-pop-section-title-color);
}

.gis-pop-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
}

.gis-pop-overview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}

.gis-pop-overview-panel {
  display: grid;
  gap: var(--space-1-5);
}

.gis-population-area-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
  gap: var(--space-1-5);
  min-width: 0;
}

.gis-population-area-option {
  width: 100%;
  min-width: 0;
  min-height: var(--control-h);
  justify-content: center;
  padding-inline: var(--space-2);
  letter-spacing: 0;
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.gis-population-area-option.is-selected,
.gis-population-area-option[aria-pressed="true"] {
  border-color: color-mix(in srgb, var(--primary), transparent 35%);
  background: color-mix(in srgb, var(--primary), transparent 88%);
  color: var(--foreground);
  font-weight: 700;
}

.gis-population-area-list-footer,
.gis-population-reference-list-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
  padding-top: var(--space-1);
  border-top: 1px solid var(--border);
}

.gis-population-area-list-footer > span,
.gis-population-reference-list-footer > span {
  color: var(--foreground);
  white-space: nowrap;
}

.gis-pop-overview-table {
  max-height: calc(var(--space-10) * 5);
  overflow: auto;
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius-lg);
}

.gis-pop-overview-table .table {
  min-width: 100%;
}

.gis-population-page .gis-population-overview-row-head {
  min-width: 0;
}

.gis-population-page .gis-population-overview-name {
  min-width: 0;
  overflow-wrap: anywhere;
}

.gis-bulk-table thead th {
  font-size: var(--fs-xs);
}

.gis-portal-buildings-bulk-page .gis-bulk-table.gis-u-minw-1120 {
  min-width: 1040px;
}

.gis-portal-buildings-bulk-page .gis-bulk-table {
  table-layout: fixed;
}

.gis-bulk-table th,
.gis-bulk-table td {
  padding: var(--space-1) var(--space-2);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  min-width: 0;
  vertical-align: top;
}

.gis-bulk-table .input,
.gis-bulk-table .select {
  min-height: calc(var(--control-h-s) - var(--space-1));
  padding: var(--space-1) var(--space-2);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  min-width: 0;
  max-width: 100%;
}

.gis-bulk-table .select-wrapper {
  min-width: 0;
  max-width: 100%;
}

.gis-bulk-table .select-wrapper .select {
  padding-right: calc(var(--space-4) + var(--control-icon-s));
}

.gis-bulk-table .select-wrapper .select-icon {
  right: var(--space-2);
  font-size: var(--control-icon-s);
}

.gis-bulk-table .switch-wrapper {
  min-height: calc(var(--control-h-s) - var(--space-1));
}

.gis-bulk-table th:nth-child(1),
.gis-bulk-table td:nth-child(1) {
  width: 170px;
}

.gis-bulk-table th:nth-child(2),
.gis-bulk-table td:nth-child(2) {
  width: 150px;
}

.gis-bulk-table th:nth-child(3),
.gis-bulk-table td:nth-child(3) {
  width: 132px;
}

.gis-bulk-table th:nth-child(4),
.gis-bulk-table td:nth-child(4) {
  width: 84px;
}

.gis-bulk-table th:nth-child(5),
.gis-bulk-table td:nth-child(5) {
  width: 112px;
}

.gis-bulk-table th:nth-child(6),
.gis-bulk-table td:nth-child(6) {
  width: 108px;
}

.gis-bulk-table th:nth-child(7),
.gis-bulk-table td:nth-child(7) {
  width: 56px;
}

.gis-bulk-table th:nth-child(8),
.gis-bulk-table td:nth-child(8) {
  width: 76px;
}

.gis-bulk-table th:nth-child(9),
.gis-bulk-table td:nth-child(9) {
  width: 110px;
  overflow-wrap: anywhere;
}

.gis-bulk-table th:nth-child(10),
.gis-bulk-table td:nth-child(10) {
  width: 58px;
}

.gis-pop-selection {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  min-height: calc(var(--control-h-s) + var(--space-1));
  align-items: center;
  margin-bottom: var(--space-2);
}

.gis-pop-selection .btn {
  white-space: nowrap;
}

.gis-pop-selection .gis-population-selection-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1-5);
  padding-inline: var(--space-2);
}

.gis-population-selection-chip-dot {
  flex: 0 0 auto;
  width: 0.6em;
  height: 0.6em;
  border-radius: var(--radius-full);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--foreground), transparent 82%);
}

.gis-population-selection-chip-label {
  min-width: 0;
}

.gis-population-selection-chip .gis-population-selection-chip-x {
  flex: 0 0 auto;
  font-size: 1em;
  margin-inline-end: calc(var(--space-1) * -1);
  color: var(--muted-foreground);
  transition: color 0.15s ease;
}

.gis-population-selection-chip:hover .gis-population-selection-chip-x,
.gis-population-selection-chip:focus-visible .gis-population-selection-chip-x {
  color: var(--foreground);
}

.gis-pop-summary {
  margin-top: var(--space-2);
  display: grid;
  gap: var(--space-1);
}

.gis-pop-table tbody tr {
  cursor: pointer;
}

.gis-pop-table tbody tr.is-editing,
.gis-pop-overview-table tbody tr.is-selected {
  background: color-mix(in srgb, var(--primary), transparent 90%) !important;
  color: var(--primary) !important;
  font-weight: 500;
}

.gis-pop-overview-table tbody tr:hover {
  background: var(--hover-overlay);
}

.gis-pop-overview-table tbody tr {
  cursor: pointer;
  transition: background 0.15s ease;
}

.gis-pop-table tbody tr[data-dirty="1"] {
  outline: var(--space-px) solid color-mix(in srgb, var(--primary), transparent 65%);
}

.gis-pop-table tbody tr[data-dirty="1"] td:first-child {
  font-weight: 600;
}

.gis-entity-table tbody tr {
  cursor: pointer;
}

.gis-entity-table tbody tr.is-selected {
  background: color-mix(in srgb, var(--primary), transparent 88%);
}

.gis-entity-table tbody tr.gis-line-section-row {
  cursor: default;
}

.gis-line-section-row td {
  padding: var(--space-2) var(--space-3);
  background: var(--surface);
  border-bottom: var(--space-px) solid var(--border);
}

.gis-line-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}

.gis-line-section-title {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  font-weight: 600;
}

.gis-line-section-toggle {
  white-space: nowrap;
}

.gis-entity-table tbody[data-collapsed="1"] tr[data-row-id] {
  display: none;
}

.gis-mode-stat {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding: var(--space-1) 0;
  border: none;
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-align: left;
}

.gis-mode-stat[data-active="1"] {
  font-weight: 600;
}

.gis-row-mobile-meta {
  display: none;
}

.gis-admin-parcels-row-actions,
.gis-buildings-complex-actions {
  display: inline-flex;
  flex-wrap: wrap;
  gap: var(--space-1);
}

@media (max-width: 640px) {
  .gis-row-mobile-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
    margin-top: var(--space-1);
  }

  .gis-row-mobile-meta span {
    min-width: 0;
    padding: var(--space-0-5) var(--space-1-5);
    border-radius: var(--radius-sm);
    background: var(--muted);
    color: var(--muted-foreground);
    font-size: var(--fs-2xs);
    line-height: var(--lh-xs);
    word-break: keep-all;
    overflow-wrap: anywhere;
  }

  .gis-row-mobile-meta strong {
    margin-right: var(--space-1);
    color: var(--foreground);
    font-weight: 600;
  }

  .gis-mobile-card-table td[data-label]::before {
    content: attr(data-label) !important;
  }

  /* The first cell is the card heading, so honour the modifier and drop its label. */
  .gis-mobile-card-table--label-after-first td[data-label]:first-child::before {
    content: none !important;
  }

  .gis-admin-areas-page .gis-admin-areas-children-table td:not(:first-child),
  .gis-admin-parcels-page .gis-admin-parcels-table td:not(:first-child):not(:last-child),
  .gis-admin-parcels-page .gis-admin-boundary-candidates-table td:not(:first-child):not(:last-child),
  .gis-admin-parcels-page .gis-admin-parcel-areas-table td:not(:first-child):not(:last-child),
  .gis-admin-buildings-page .gis-admin-buildings-complex-table td:not(:first-child):not(:last-child),
  .gis-portal-buildings-page .gis-admin-buildings-complex-table td:not(:first-child):not(:last-child) {
    display: none;
  }

  .gis-admin-parcels-page .gis-admin-parcels-table td:last-child,
  .gis-admin-parcels-page .gis-admin-boundary-candidates-table td:last-child,
  .gis-admin-parcels-page .gis-admin-parcel-areas-table td:last-child,
  .gis-admin-buildings-page .gis-admin-buildings-complex-table td:last-child,
  .gis-portal-buildings-page .gis-admin-buildings-complex-table td:last-child {
    margin-top: var(--space-2);
  }

  .gis-admin-parcels-row-actions,
  .gis-buildings-complex-actions {
    justify-content: flex-start;
  }

  .gis-admin-parcels-row-actions .btn,
  .gis-buildings-complex-actions .btn {
    min-width: 0;
    white-space: nowrap;
  }

  .gis-portal-buildings-page .table-wrapper:has(.gis-buildings-list-table),
  .gis-portal-admin-list-page .table-wrapper:has(.gis-timeline-table),
  .gis-portal-admin-areas-page .table-wrapper:has(.gis-admin-areas-children-table),
  .gis-portal-admin-areas-page .table-wrapper:has(.gis-admin-areas-history-table),
  .gis-portal-lines-page .table-wrapper:has(.gis-lines-table),
  .gis-portal-lines-page .table-wrapper:has(.gis-line-stops-table),
  .gis-portal-stations-page .table-wrapper:has(.gis-stations-table),
  .gis-portal-stations-page .table-wrapper:has(.gis-station-line-stops-table),
  .gis-portal-roads-page .table-wrapper:has(.gis-roads-table),
  .gis-portal-population-page .table-wrapper.gis-population-reference-table {
    overflow-x: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .gis-portal-buildings-page .table-wrapper:has(.gis-buildings-list-table)::after,
  .gis-portal-admin-list-page .table-wrapper:has(.gis-timeline-table)::after,
  .gis-portal-admin-areas-page .table-wrapper:has(.gis-admin-areas-children-table)::after,
  .gis-portal-admin-areas-page .table-wrapper:has(.gis-admin-areas-history-table)::after,
  .gis-portal-lines-page .table-wrapper:has(.gis-lines-table)::after,
  .gis-portal-lines-page .table-wrapper:has(.gis-line-stops-table)::after,
  .gis-portal-stations-page .table-wrapper:has(.gis-stations-table)::after,
  .gis-portal-stations-page .table-wrapper:has(.gis-station-line-stops-table)::after,
  .gis-portal-roads-page .table-wrapper:has(.gis-roads-table)::after,
  .gis-portal-population-page .table-wrapper.gis-population-reference-table::after {
    display: none;
  }

  .gis-portal-lines-page .gis-lines-table,
  .gis-portal-lines-page .gis-lines-table thead,
  .gis-portal-lines-page .gis-lines-table tbody,
  .gis-portal-lines-page .gis-lines-table tr,
  .gis-portal-lines-page .gis-lines-table td,
  .gis-portal-lines-page .gis-line-stops-table,
  .gis-portal-lines-page .gis-line-stops-table thead,
  .gis-portal-lines-page .gis-line-stops-table tbody,
  .gis-portal-lines-page .gis-line-stops-table tr,
  .gis-portal-lines-page .gis-line-stops-table td,
  .gis-portal-stations-page .gis-stations-table,
  .gis-portal-stations-page .gis-stations-table thead,
  .gis-portal-stations-page .gis-stations-table tbody,
  .gis-portal-stations-page .gis-stations-table tr,
  .gis-portal-stations-page .gis-stations-table td,
  .gis-portal-stations-page .gis-station-line-stops-table,
  .gis-portal-stations-page .gis-station-line-stops-table thead,
  .gis-portal-stations-page .gis-station-line-stops-table tbody,
  .gis-portal-stations-page .gis-station-line-stops-table tr,
  .gis-portal-stations-page .gis-station-line-stops-table td,
  .gis-portal-roads-page .gis-roads-table,
  .gis-portal-roads-page .gis-roads-table thead,
  .gis-portal-roads-page .gis-roads-table tbody,
  .gis-portal-roads-page .gis-roads-table tr,
  .gis-portal-roads-page .gis-roads-table td {
    display: block;
    width: 100%;
  }

  .gis-portal-lines-page .gis-lines-table,
  .gis-portal-lines-page .gis-line-stops-table,
  .gis-portal-stations-page .gis-stations-table,
  .gis-portal-stations-page .gis-station-line-stops-table,
  .gis-portal-roads-page .gis-roads-table {
    min-width: 0;
    table-layout: auto;
  }

  .gis-portal-lines-page .gis-lines-table thead,
  .gis-portal-lines-page .gis-line-stops-table thead,
  .gis-portal-stations-page .gis-stations-table thead,
  .gis-portal-stations-page .gis-station-line-stops-table thead,
  .gis-portal-roads-page .gis-roads-table thead {
    display: none;
  }

  .gis-portal-lines-page .gis-lines-table tbody,
  .gis-portal-lines-page .gis-line-stops-table tbody,
  .gis-portal-stations-page .gis-stations-table tbody,
  .gis-portal-stations-page .gis-station-line-stops-table tbody,
  .gis-portal-roads-page .gis-roads-table tbody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-portal-lines-page .gis-lines-table tr,
  .gis-portal-lines-page .gis-line-stops-table tr,
  .gis-portal-stations-page .gis-stations-table tr,
  .gis-portal-stations-page .gis-station-line-stops-table tr,
  .gis-portal-roads-page .gis-roads-table tr {
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
    transition: background-color 120ms ease, border-color 120ms ease;
  }

  .gis-portal-lines-page .gis-lines-table tr:hover,
  .gis-portal-lines-page .gis-line-stops-table tr:hover,
  .gis-portal-stations-page .gis-stations-table tr:hover,
  .gis-portal-stations-page .gis-station-line-stops-table tr:hover,
  .gis-portal-roads-page .gis-roads-table tr:hover {
    border-color: color-mix(in srgb, var(--primary), var(--border) 68%);
    background: color-mix(in srgb, var(--primary), var(--card) 94%);
  }

  .gis-portal-lines-page .gis-lines-table td,
  .gis-portal-lines-page .gis-line-stops-table td,
  .gis-portal-stations-page .gis-stations-table td,
  .gis-portal-stations-page .gis-station-line-stops-table td,
  .gis-portal-roads-page .gis-roads-table td,
  .gis-portal-lines-page .gis-lines-table tr:hover td,
  .gis-portal-lines-page .gis-line-stops-table tr:hover td,
  .gis-portal-stations-page .gis-stations-table tr:hover td,
  .gis-portal-stations-page .gis-station-line-stops-table tr:hover td,
  .gis-portal-roads-page .gis-roads-table tr:hover td {
    padding: 0;
    border-bottom: 0;
    background: transparent;
  }

  .gis-portal-lines-page .gis-lines-table tr[data-row-id] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--space-2);
    align-items: start;
  }

  .gis-portal-lines-page .gis-lines-table tr[data-row-id] td:nth-child(3),
  .gis-portal-lines-page .gis-lines-table tr[data-row-id] td:nth-child(4),
  .gis-portal-lines-page .gis-lines-table tr[data-row-id] td:nth-child(5),
  .gis-portal-lines-page .gis-line-stops-table td:nth-child(1),
  .gis-portal-lines-page .gis-line-stops-table td:nth-child(3),
  .gis-portal-lines-page .gis-line-stops-table td:nth-child(4),
  .gis-portal-lines-page .gis-line-stops-table td:nth-child(5),
  .gis-portal-stations-page .gis-stations-table td:not(:first-child),
  .gis-portal-stations-page .gis-station-line-stops-table td:not(:first-child),
  .gis-portal-roads-page .gis-roads-table td:not(:first-child) {
    display: none;
  }

  .gis-portal-lines-page .gis-lines-table .gis-line-section-row {
    padding: 0;
    border: 0;
    background: transparent;
  }

  .gis-portal-lines-page .gis-lines-table .gis-line-section-row td {
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
  }

  .gis-portal-lines-page .gis-line-stops-table td:nth-child(6) {
    display: block;
    margin-top: var(--space-2);
  }

  .gis-portal-lines-page .gis-stop-actions {
    width: 100%;
    justify-content: stretch;
  }

  .gis-portal-lines-page .gis-stop-action-btn {
    flex: 1 1 auto;
  }

  .gis-portal-lines-page .gis-stop-action-btn.gis-drag-handle {
    flex: 0 0 var(--control-h-m);
  }
}

.gis-pop-table .gis-pop-input {
  width: 100%;
  min-height: calc(var(--control-h-s) - var(--space-1));
  padding: var(--space-1) var(--space-1-5);
  font-size: var(--fs-sm);
  line-height: 1.2;
}

.gis-series-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 0.8fr);
  gap: var(--space-3);
}

.gis-series-panel {
  display: grid;
  gap: var(--space-2);
}

.gis-series-toolbar {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-2);
  align-items: end;
}

.gis-series-simple {
  display: grid;
  gap: var(--space-2);
}

.gis-series-legend {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}

.gis-series-chart {
  position: relative;
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--card), transparent 3%);
  overflow: hidden;
}

.gis-series-chart > canvas {
  width: 100%;
  height: calc(var(--space-10) * 6 + var(--space-5));
  display: block;
}

@media (max-width: 1280px) {
  .gis-portal-population-page .gis-population-history-grid,
  .gis-portal-population-page .gis-population-history-workbench,
  .gis-portal-population-page .gis-population-history-visual-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .gis-portal-population-page .gis-population-history-workbench,
  .gis-portal-population-page .gis-population-history-sidebar,
  .gis-portal-population-page .gis-population-history-content,
  .gis-portal-population-page .gis-population-history-visual-grid {
    gap: var(--space-2-5);
  }

  .gis-portal-population-page .gis-population-history-sidebar {
    grid-template-columns: minmax(0, 1fr) minmax(calc(var(--space-10) * 7), 0.72fr);
    align-items: start;
  }

  .gis-portal-population-page .gis-population-history-sidebar .gis-population-reference-summary {
    grid-template-columns: minmax(0, 1fr);
  }

  .gis-portal-population-page .gis-population-history-sidebar .gis-population-reference-table {
    grid-column: 1 / -1;
    max-height: calc(var(--space-10) * 8);
  }

  .gis-portal-population-page .gis-population-history-chart-head {
    display: grid;
    gap: var(--space-2);
  }

  .gis-portal-population-page .gis-population-history-content .gis-population-reference-chart {
    height: calc(var(--space-10) * 9);
  }

  .gis-portal-population-page .gis-population-history-content .gis-population-share-chart {
    height: calc(var(--space-10) * 5 + var(--space-5));
  }

  .gis-portal-population-page .gis-population-history-content .gis-population-share-layout {
    grid-template-columns: minmax(calc(var(--space-10) * 5), 0.58fr) minmax(0, 1fr);
  }

  .gis-portal-population-page .gis-population-history-content .gis-population-share-layout .gis-population-share-chart {
    height: auto;
    min-height: calc(var(--space-10) * 5 + var(--space-5));
  }
}

@media (max-width: 960px) {
  .gis-pop-overview-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .gis-population-page .gis-population-admin-grid,
  .gis-population-page .gis-population-reference-controls,
  .gis-population-page .gis-population-reference-grid,
  .gis-population-page .gis-population-series-head {
    grid-template-columns: minmax(0, 1fr);
  }

  .gis-population-page .gis-population-history-sidebar .gis-population-reference-controls {
    grid-template-columns: minmax(0, 1fr);
  }

  .gis-population-page .gis-population-reference-filter {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .gis-population-page .gis-population-reference-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-population-page .gis-population-series-chart-head,
  .gis-population-page .gis-population-series-toolbar {
    display: grid;
    justify-content: stretch;
  }

  .gis-population-page .gis-population-series-mode,
  .gis-population-page .gis-population-series-range {
    width: 100%;
  }

}

@media (max-width: 640px) {
  .gis-portal-population-page .gis-population-history-card .card-header.card-header--split {
    display: grid;
    gap: var(--space-2);
  }

  .gis-portal-population-page .gis-population-history-card .card-actions {
    justify-content: flex-start;
  }

  .gis-portal-population-page .gis-population-query-panel {
    gap: var(--space-2);
    padding: var(--space-2);
  }

  .gis-portal-population-page .gis-pop-overview-table,
  .gis-admin-population-page .gis-pop-overview-table {
    max-height: none;
    overflow: visible;
    border: 0;
    border-radius: 0;
  }

  .gis-portal-population-page .gis-pop-overview-table .table,
  .gis-admin-population-page .gis-pop-overview-table .table,
  .gis-portal-population-page .gis-pop-overview-table thead,
  .gis-admin-population-page .gis-pop-overview-table thead,
  .gis-portal-population-page .gis-pop-overview-table tbody,
  .gis-admin-population-page .gis-pop-overview-table tbody,
  .gis-portal-population-page .gis-pop-overview-table tr,
  .gis-admin-population-page .gis-pop-overview-table tr,
  .gis-portal-population-page .gis-pop-overview-table td,
  .gis-admin-population-page .gis-pop-overview-table td {
    display: block;
    width: 100%;
  }

  .gis-portal-population-page .gis-pop-overview-table .table,
  .gis-admin-population-page .gis-pop-overview-table .table {
    min-width: 0;
    table-layout: auto;
  }

  .gis-portal-population-page .gis-pop-overview-table thead,
  .gis-admin-population-page .gis-pop-overview-table thead {
    display: none;
  }

  .gis-portal-population-page .gis-pop-overview-table tbody,
  .gis-admin-population-page .gis-pop-overview-table tbody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-portal-population-page .gis-pop-overview-table tr,
  .gis-admin-population-page .gis-pop-overview-table tr {
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
    transition: background-color 120ms ease, border-color 120ms ease;
  }

  .gis-portal-population-page .gis-pop-overview-table tr:hover,
  .gis-admin-population-page .gis-pop-overview-table tr:hover,
  .gis-portal-population-page .gis-pop-overview-table tbody tr.is-selected,
  .gis-admin-population-page .gis-pop-overview-table tbody tr.is-selected {
    border-color: color-mix(in srgb, var(--primary), var(--border) 68%);
    background: color-mix(in srgb, var(--primary), var(--card) 94%);
    color: var(--foreground) !important;
  }

  .gis-portal-population-page .gis-pop-overview-table td,
  .gis-admin-population-page .gis-pop-overview-table td,
  .gis-portal-population-page .gis-pop-overview-table tr:hover td,
  .gis-admin-population-page .gis-pop-overview-table tr:hover td {
    padding: 0;
    border-bottom: 0;
    background: transparent;
  }

  .gis-portal-population-page .gis-pop-overview-table td:nth-child(2),
  .gis-admin-population-page .gis-pop-overview-table td:nth-child(2),
  .gis-portal-population-page .gis-pop-overview-table td:nth-child(3),
  .gis-admin-population-page .gis-pop-overview-table td:nth-child(3) {
    display: none;
  }

  .gis-portal-population-page .gis-population-overview-row-head,
  .gis-admin-population-page .gis-population-overview-row-head {
    display: block;
  }

  .gis-portal-population-page .gis-population-overview-name,
  .gis-admin-population-page .gis-population-overview-name {
    font-weight: 600;
    color: var(--foreground);
  }

  .gis-portal-population-page .gis-pop-overview-table td:last-child,
  .gis-admin-population-page .gis-pop-overview-table td:last-child {
    margin-top: var(--space-2);
    text-align: left;
  }

  .gis-portal-population-page .gis-population-overview-action,
  .gis-admin-population-page .gis-population-overview-action {
    min-width: 0;
    white-space: nowrap;
    padding-inline: var(--space-2);
  }

  .gis-portal-population-page .gis-population-reference-table {
    max-height: none;
    overflow: visible;
  }

  .gis-portal-population-page .gis-population-reference-table table,
  .gis-portal-population-page .gis-population-reference-table thead,
  .gis-portal-population-page .gis-population-reference-table tbody,
  .gis-portal-population-page .gis-population-reference-table tr,
  .gis-portal-population-page .gis-population-reference-table td {
    display: block;
    width: 100%;
  }

  .gis-portal-population-page .gis-population-reference-table table {
    min-width: 0;
    table-layout: auto;
  }

  .gis-portal-population-page .gis-population-reference-table thead {
    display: none;
  }

  .gis-portal-population-page .gis-population-reference-table tbody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-portal-population-page .gis-population-reference-table tr {
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
    transition: background-color 120ms ease, border-color 120ms ease;
  }

  .gis-portal-population-page .gis-population-history-card.is-history-view-compare .gis-population-reference-table tr[data-reference-history-id]:hover,
  .gis-portal-population-page .gis-population-history-card .gis-population-reference-table tr.is-compare-selected {
    border-color: color-mix(in srgb, var(--primary), var(--border) 68%);
    background: color-mix(in srgb, var(--primary), var(--card) 94%);
  }

  .gis-portal-population-page .gis-population-reference-table td,
  .gis-portal-population-page .gis-population-reference-table tr:hover td {
    padding: 0;
    border-bottom: 0;
    background: transparent;
  }

  .gis-portal-population-page .gis-population-history-card .gis-population-reference-table td:first-child,
  .gis-portal-population-page .gis-population-history-card .gis-population-reference-table td:last-child {
    width: 100%;
    text-align: left;
  }

  .gis-portal-population-page .gis-population-history-card .gis-population-reference-table td:last-child {
    display: flex;
    justify-content: space-between;
    gap: var(--space-2);
    margin-top: var(--space-1);
    color: var(--foreground);
    font-weight: 600;
  }

  .gis-portal-population-page .gis-population-reference-table td:last-child::before {
    content: attr(data-label);
    color: var(--muted-foreground);
    font-size: var(--fs-2xs);
    font-weight: 600;
    line-height: var(--lh-xs);
  }

  .gis-admin-population-page .gis-op-stack .gis-population-reference-raw-table {
    max-height: none;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .gis-admin-population-page .gis-op-stack .gis-population-reference-raw-table::after {
    display: none;
  }

  .gis-admin-population-page .gis-population-reference-raw-table table,
  .gis-admin-population-page .gis-population-reference-raw-table thead,
  .gis-admin-population-page .gis-population-reference-raw-table tbody,
  .gis-admin-population-page .gis-population-reference-raw-table tr,
  .gis-admin-population-page .gis-population-reference-raw-table td {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .gis-admin-population-page .gis-population-reference-raw-table table {
    table-layout: auto;
  }

  .gis-admin-population-page .gis-population-reference-raw-table thead {
    display: none;
  }

  .gis-admin-population-page .gis-population-reference-raw-table tbody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-admin-population-page .gis-population-reference-raw-table tr {
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
  }

  .gis-admin-population-page .gis-population-reference-raw-table td,
  .gis-admin-population-page .gis-population-reference-raw-table tr:hover td {
    padding: 0;
    border-bottom: 0;
    background: transparent;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .gis-admin-population-page .gis-population-reference-raw-table td:not(:first-child) {
    display: grid;
    grid-template-columns: minmax(4.5rem, 0.32fr) minmax(0, 1fr);
    gap: var(--space-2);
    align-items: start;
    margin-top: var(--space-1);
  }

  .gis-admin-population-page .gis-population-reference-raw-table td:not(:first-child)::before {
    color: var(--muted-foreground);
    font-size: var(--fs-2xs);
    font-weight: 600;
    line-height: var(--lh-xs);
  }

  .gis-admin-population-page .gis-population-reference-raw-table td[colspan] {
    display: block;
  }

  .gis-admin-population-page .gis-population-reference-raw-table td[colspan]::before {
    content: none;
  }

  .gis-portal-population-page .gis-population-compare-panel {
    gap: var(--space-2);
    padding: var(--space-2);
  }

  .gis-portal-population-page .gis-population-compare-head {
    align-items: center;
  }

  .gis-portal-population-page .gis-population-history-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-1);
  }

  .gis-portal-population-page .gis-population-history-tabs .btn {
    min-width: 0;
    padding-inline: var(--space-1);
  }

  .gis-portal-population-page .gis-population-history-sidebar {
    grid-template-columns: minmax(0, 1fr);
  }

  .gis-portal-population-page .gis-population-history-sidebar .gis-population-reference-table {
    grid-column: auto;
  }

  .gis-portal-population-page .gis-population-history-sidebar .gis-population-reference-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-1);
  }

  .gis-portal-population-page .gis-population-history-card .gis-population-metric {
    gap: calc(var(--space-px) * 2);
    padding: var(--space-2);
  }

  .gis-portal-population-page .gis-population-history-card .gis-population-metric-label {
    letter-spacing: 0;
    text-transform: none;
  }

  .gis-portal-population-page .gis-population-history-card .gis-population-metric-value {
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
    word-break: keep-all;
    overflow-wrap: anywhere;
  }

  .gis-portal-population-page .gis-population-history-sidebar .gis-population-reference-filter,
  .gis-portal-population-page .gis-population-history-chart-head .gis-population-reference-filter {
    display: grid;
    width: 100%;
  }

  .gis-portal-population-page .gis-population-history-sidebar .gis-population-reference-filter {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-portal-population-page .gis-population-history-chart-head .gis-population-reference-filter {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gis-portal-population-page .gis-population-reference-filter .btn {
    width: 100%;
    justify-content: center;
    padding-inline: var(--space-1);
  }

  .gis-population-page .gis-population-series-mode .btn,
  .gis-population-page .gis-population-series-range .btn {
    min-width: 0;
    padding-inline: var(--space-1);
  }

  .gis-population-page .gis-population-reference-summary {
    grid-template-columns: minmax(0, 1fr);
  }

  .gis-population-page .gis-population-reference-chart,
  .gis-population-page .gis-population-share-chart,
  .gis-admin-population-page .gis-population-reference-chart,
  .gis-admin-population-page .gis-population-reference-table {
    height: calc(var(--space-10) * 9);
    max-height: calc(var(--space-10) * 9);
  }

  .gis-admin-population-page .gis-population-reference-table.gis-mobile-card-table-wrapper,
  .gis-admin-population-page .gis-population-reference-raw-table.gis-mobile-card-table-wrapper {
    height: auto;
    max-height: none;
    overflow: visible;
  }

  .gis-population-page .gis-population-history-timeline {
    height: calc(var(--space-10) * 6);
  }

  .gis-portal-population-page .gis-population-history-card .gis-population-reference-table {
    max-height: none;
    overflow: visible;
  }

  .gis-portal-population-page .gis-population-history-content .gis-population-history-timeline {
    height: clamp(calc(var(--space-10) * 5), 56vw, calc(var(--space-10) * 6 + var(--space-4)));
  }

  .gis-portal-population-page .gis-population-history-content .gis-population-reference-chart {
    height: clamp(calc(var(--space-10) * 7), 74vw, calc(var(--space-10) * 9));
    max-height: none;
  }

  .gis-portal-population-page .gis-population-share-list {
    max-height: min(34vh, calc(var(--space-10) * 5));
  }

  .gis-portal-population-page .gis-population-share-row {
    grid-template-columns: auto minmax(0, 1fr) auto;
    row-gap: calc(var(--space-px) * 2);
  }

  .gis-portal-population-page .gis-population-share-name {
    grid-row: 1 / span 2;
    align-self: center;
  }

  .gis-portal-population-page .gis-population-share-value {
    grid-column: 3;
  }

  .gis-portal-population-page .gis-population-share-percent {
    grid-column: 3;
    grid-row: 2;
  }

  .gis-portal-population-page .gis-population-reference-table tbody {
    gap: 0;
  }

  .gis-portal-population-page .gis-population-reference-table tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-2);
    align-items: center;
    padding: var(--space-2-5) 0;
    border: 0;
    border-bottom: 1px solid var(--border);
    border-radius: 0;
    background: transparent;
  }

  .gis-portal-population-page .gis-population-reference-table tr:last-child {
    border-bottom: 0;
  }

  .gis-portal-population-page .gis-population-reference-table td,
  .gis-portal-population-page .gis-population-reference-table td:last-child {
    width: auto;
    min-width: 0;
    margin: 0;
    text-align: left;
  }

  .gis-portal-population-page .gis-population-reference-table td:last-child {
    display: block;
    color: var(--foreground);
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
  }

  .gis-portal-population-page .gis-population-reference-table td:last-child::before {
    content: none;
  }

  .gis-portal-population-page .gis-population-reference-table td[colspan] {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  .gis-portal-population-page .gis-population-area-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-portal-population-page .gis-population-area-option {
    min-height: calc(var(--control-h) + var(--space-1));
  }

  .gis-portal-population-page .gis-population-area-list-footer,
  .gis-portal-population-page .gis-population-reference-list-footer {
    min-height: var(--control-h);
  }

  .gis-portal-population-page .gis-population-area-list-footer .gis-pagination,
  .gis-portal-population-page .gis-population-reference-list-footer .gis-pagination {
    flex-wrap: nowrap;
  }

  .gis-portal-population-page .gis-population-history-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-portal-population-page .gis-population-history-content .gis-population-share-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .gis-portal-population-page .gis-population-history-content .gis-population-share-layout .gis-population-share-chart {
    height: clamp(calc(var(--space-10) * 5), 58vw, calc(var(--space-10) * 6));
    min-height: 0;
  }

  .gis-portal-population-page .gis-population-history-sidebar .gis-population-reference-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gis-portal-population-page .gis-population-history-card .gis-population-metric {
    padding-inline: var(--space-1);
  }

  .gis-portal-population-page .gis-population-history-card .gis-population-metric-label,
  .gis-portal-population-page .gis-population-history-card .gis-population-metric-value {
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
  }
}

.gis-series-tooltip {
  position: absolute;
  pointer-events: none;
  padding: var(--space-1-5) var(--space-2);
  border-radius: calc(var(--radius-md) + var(--space-0-5));
  border: var(--space-px) solid var(--border-strong);
  background: color-mix(in srgb, var(--card), transparent 4%);
  color: var(--card-foreground);
  font-size: var(--fs-sm);
  line-height: 1.2;
  max-width: calc(var(--space-10) * 6);
  white-space: nowrap;
  box-shadow: var(--shadow-md);
}

.gis-snapshot-panel {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-2);
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--card), transparent 3%);
}

/* Pagination */
.gis-pagination {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}

.gis-pagination .btn-page {
  min-width: var(--space-8);
  height: var(--space-8);
  padding: 0 var(--space-2);
  border-radius: var(--radius-md);
  font-size: var(--fs-xs);
  font-weight: 500;
  color: var(--text-muted);
  transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.gis-pagination .btn-page:hover {
  background: var(--hover-overlay);
  color: var(--text);
}

.gis-pagination .btn-page.is-active {
  background: var(--primary);
  color: var(--primary-foreground);
  box-shadow: 0 4px 12px color-mix(in srgb, var(--primary), transparent 70%);
}

.gis-pagination .btn-page:disabled {
  opacity: 0.3;
  pointer-events: none;
}

.gis-pagination .page-ellipsis {
  min-width: var(--space-8);
  height: var(--space-8);
  border: 1px dashed transparent;
  background: transparent;
  color: var(--text-muted);
  font-size: var(--fs-xs);
  padding: 0 var(--space-2);
  cursor: pointer;
}

.gis-pagination .page-ellipsis:hover,
.gis-pagination .page-ellipsis.is-open {
  color: var(--text);
  background: var(--hover-overlay);
}

.gis-pagination .gis-page-jump {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
}

.gis-pagination .gis-page-jump-input {
  width: 4.5rem;
  height: var(--space-8);
  padding: 0 var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  color: var(--text);
  font-size: var(--fs-xs);
}

.gis-pagination .gis-page-jump-input:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary), transparent 82%);
}

.gis-pagination .gis-page-jump-submit {
  min-width: auto;
  padding: 0 var(--space-2);
}

/* Building Lookup Revisions */
.gis-toolbar--lookup {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  align-items: flex-end;
}

.gis-toolbar--lookup .input-group {
  flex: 1;
  min-width: 200px;
}

.gis-input-with-action {
  position: relative;
  display: flex;
  align-items: center;
}

.gis-input-with-action .input {
  width: 100%;
  padding-right: calc(var(--space-3) + var(--control-icon-m) + var(--space-2));
}

.gis-input-clear-btn {
  position: absolute;
  right: var(--space-2);
  top: 50%;
  transform: translateY(-50%);
  width: var(--control-icon-m);
  height: var(--control-icon-m);
  border: 0;
  border-radius: var(--radius-full);
  background: transparent;
  color: var(--muted-foreground);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: color 0.15s ease, background-color 0.15s ease, opacity 0.12s ease, visibility 0s linear 0.12s;
}

.gis-input-clear-btn .material-symbols-outlined,
.gis-input-clear-btn .hz-icon {
  font-size: 0 !important;
  line-height: 1;
}

.gis-input-with-action .input:not(:placeholder-shown) + .gis-input-clear-btn {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}

.gis-input-clear-btn:hover {
  color: var(--foreground);
  background: var(--muted);
}

.gis-input-clear-btn:focus-visible {
  outline: none;
  color: var(--foreground);
  background: var(--muted);
  box-shadow: 0 0 0 2px var(--glow-primary);
}

.gis-toolbar-actions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-4);
}

@media (max-width: 1200px) {
  .gis-toolbar--lookup {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .gis-toolbar--lookup {
    grid-template-columns: 1fr;
  }

  .gis-portal-buildings-lookup-page .gis-toolbar--lookup {
    grid-template-columns: 1fr;
    gap: var(--space-2);
  }

  .gis-portal-buildings-lookup-page .gis-lookup-target-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .gis-portal-buildings-lookup-page .gis-lookup-target-tabs .btn {
    min-width: 0;
    width: 100%;
  }

  .gis-portal-buildings-lookup-page .gis-lookup-advanced-filters {
    border-top: 1px solid var(--border);
    padding-top: var(--space-2);
  }

  .gis-portal-buildings-lookup-page .gis-lookup-advanced-filters > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: var(--control-h-sm);
    color: var(--foreground);
    font-size: var(--fs-sm);
    font-weight: 600;
    list-style: none;
    cursor: pointer;
  }

  .gis-portal-buildings-lookup-page .gis-lookup-advanced-filters > summary .hz-icon {
    transition: transform 140ms ease;
  }

  .gis-portal-buildings-lookup-page .gis-lookup-advanced-filters[open] > summary .hz-icon {
    transform: rotate(180deg);
  }

  .gis-portal-buildings-lookup-page .gis-lookup-advanced-grid {
    grid-template-columns: 1fr;
    gap: var(--space-2);
    padding-top: var(--space-2);
  }

  .gis-portal-buildings-lookup-page .gis-lookup-results-header {
    flex-direction: column;
    align-items: stretch;
  }

  .gis-portal-buildings-lookup-page .gis-lookup-results-header > :first-child {
    min-width: 0;
    flex: 0 1 auto;
  }

  .gis-portal-buildings-lookup-page .gis-lookup-results-header .gis-pagination {
    justify-content: center;
    margin-left: 0;
    overflow-x: auto;
    padding-bottom: var(--space-0-5);
  }

  .gis-portal-buildings-lookup-page .gis-page-summary-row .gis-page-hero-actions {
    grid-template-columns: 1fr;
    width: 100%;
  }

  .gis-portal-buildings-lookup-page .gis-lookup-table-wrapper {
    overflow-x: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .gis-portal-buildings-lookup-page .gis-lookup-table-wrapper::after {
    display: none;
  }

  .gis-portal-buildings-lookup-page .gis-lookup-table {
    min-width: 0;
    table-layout: auto;
  }

  .gis-portal-buildings-lookup-page .gis-lookup-table th:not(:first-child),
  .gis-portal-buildings-lookup-page .gis-lookup-table td:not(:first-child) {
    display: none;
  }

  .gis-portal-buildings-lookup-page .gis-lookup-table th:first-child,
  .gis-portal-buildings-lookup-page .gis-lookup-table td:first-child {
    width: 100%;
  }

  .gis-portal-buildings-lookup-page .gis-lookup-table th:first-child {
    white-space: nowrap;
  }

  .gis-portal-buildings-lookup-page .gis-lookup-row-mobile-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
    margin-top: var(--space-1);
  }

  .gis-portal-buildings-lookup-page .gis-lookup-row-mobile-meta span {
    min-width: 0;
    padding: var(--space-0-5) var(--space-1-5);
    border-radius: var(--radius-sm);
    background: var(--muted);
    color: var(--muted-foreground);
    font-size: var(--fs-2xs);
    line-height: var(--lh-xs);
    word-break: keep-all;
    overflow-wrap: break-word;
  }

  .gis-portal-buildings-lookup-page .gis-lookup-results-card .card-content {
    padding: var(--space-3);
  }

  .gis-portal-buildings-lookup-page .gis-lookup-table tbody {
    display: grid;
    gap: var(--space-1);
  }

  .gis-portal-buildings-lookup-page .gis-lookup-table tr {
    display: block;
    padding: var(--space-2-5);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
    transition: background-color 120ms ease, border-color 120ms ease;
  }

  .gis-portal-buildings-lookup-page .gis-lookup-table tr:hover {
    border-color: color-mix(in srgb, var(--primary), var(--border) 68%);
    background: color-mix(in srgb, var(--primary), var(--card) 94%);
  }

  .gis-portal-buildings-lookup-page .gis-lookup-table td {
    padding: 0;
    border-bottom: 0;
    background: transparent;
  }

  .gis-portal-buildings-lookup-page .gis-lookup-table tr:hover td {
    background: transparent;
  }
}

@media (max-width: 640px) {
  .gis-portal-buildings-page .gis-page-hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    width: 100%;
  }

  .gis-portal-buildings-page .gis-page-hero-actions .btn,
  .gis-portal-buildings-page .gis-form-actions .btn {
    width: 100%;
  }

  .gis-portal-buildings-page #buildingEditorCloseBtn:disabled {
    display: none;
  }

  .gis-portal-buildings-page .gis-portal-buildings-filter-grid {
    grid-template-columns: 1fr;
    gap: var(--space-2);
  }

  .gis-portal-buildings-page .gis-buildings-list-advanced-filters {
    border-top: 1px solid var(--border);
    padding-top: var(--space-2);
  }

  .gis-portal-buildings-page .gis-buildings-list-advanced-filters > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: var(--control-h-sm);
    color: var(--foreground);
    font-size: var(--fs-sm);
    font-weight: 600;
    list-style: none;
    cursor: pointer;
  }

  .gis-portal-buildings-page .gis-buildings-list-advanced-filters > summary .hz-icon {
    transition: transform 140ms ease;
  }

  .gis-portal-buildings-page .gis-buildings-list-advanced-filters[open] > summary .hz-icon {
    transform: rotate(180deg);
  }

  .gis-portal-buildings-page .gis-buildings-list-advanced-grid {
    grid-template-columns: 1fr;
    gap: var(--space-2);
    padding-top: var(--space-2);
  }

  .gis-portal-buildings-page #mineFilterGroup > .text-xs {
    display: none;
  }

  .gis-portal-buildings-page #buildingTransferPanel .gis-block-hint {
    display: none;
  }

  .gis-portal-buildings-page #buildingTransferPanel .card-content {
    gap: var(--space-2);
  }

  .gis-portal-buildings-page .gis-form-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .gis-portal-buildings-page .card-header--split,
  .gis-portal-buildings-exchange-page .card-header--split {
    flex-direction: column;
    align-items: stretch;
  }

  .gis-portal-buildings-page .card-header--split .gis-pagination,
  .gis-portal-buildings-page .gis-page-summary-row .gis-pagination,
  .gis-portal-buildings-exchange-page .card-header--split .gis-pagination {
    justify-content: center;
    margin-left: 0;
    overflow-x: auto;
    padding-bottom: var(--space-0-5);
  }

  .gis-portal-buildings-page .gis-buildings-list-wrapper,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table-wrapper {
    overflow-x: visible;
  }

  .gis-portal-buildings-page .gis-buildings-list-wrapper::after,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table-wrapper::after {
    display: none;
  }

  .gis-portal-buildings-page .gis-buildings-list-table,
  .gis-portal-buildings-exchange-page .gis-exchange-search-card .gis-exchange-search-table,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table {
    min-width: 0;
    table-layout: auto;
  }

  .gis-portal-buildings-page .gis-buildings-list-table,
  .gis-portal-buildings-page .gis-buildings-list-table thead,
  .gis-portal-buildings-page .gis-buildings-list-table tbody,
  .gis-portal-buildings-page .gis-buildings-list-table tr,
  .gis-portal-buildings-page .gis-buildings-list-table td,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table thead,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table tbody,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table tr,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table td {
    display: block;
    width: 100%;
  }

  .gis-portal-buildings-page .gis-buildings-list-table tbody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-portal-buildings-page .gis-buildings-list-table thead,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table thead {
    display: none;
  }

  .gis-portal-buildings-page .gis-buildings-list-table tr,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table tr {
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
    transition: background-color 120ms ease, border-color 120ms ease;
  }

  .gis-portal-buildings-page .gis-buildings-list-table tr:hover,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table tr:hover {
    border-color: color-mix(in srgb, var(--primary), var(--border) 68%);
    background: color-mix(in srgb, var(--primary), var(--card) 94%);
  }

  .gis-portal-buildings-page .gis-buildings-list-table td,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table td {
    padding: 0;
    border-bottom: 0;
    background: transparent;
  }

  .gis-portal-buildings-page .gis-buildings-list-table tr:hover td,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table tr:hover td {
    background: transparent;
  }

  .gis-portal-buildings-page .gis-buildings-list-table th:nth-child(2),
  .gis-portal-buildings-page .gis-buildings-list-table th:nth-child(3),
  .gis-portal-buildings-page .gis-buildings-list-table th:nth-child(4),
  .gis-portal-buildings-page .gis-buildings-list-table th:nth-child(5),
  .gis-portal-buildings-page .gis-buildings-list-table td:nth-child(2),
  .gis-portal-buildings-page .gis-buildings-list-table td:nth-child(3),
  .gis-portal-buildings-page .gis-buildings-list-table td:nth-child(4),
  .gis-portal-buildings-page .gis-buildings-list-table td:nth-child(5),
  .gis-portal-buildings-exchange-page .gis-exchange-search-table th:nth-child(2),
  .gis-portal-buildings-exchange-page .gis-exchange-search-table th:nth-child(3),
  .gis-portal-buildings-exchange-page .gis-exchange-search-table th:nth-child(4),
  .gis-portal-buildings-exchange-page .gis-exchange-search-table td:nth-child(2),
  .gis-portal-buildings-exchange-page .gis-exchange-search-table td:nth-child(3),
  .gis-portal-buildings-exchange-page .gis-exchange-search-table td:nth-child(4) {
    display: none;
  }

  .gis-portal-buildings-page .gis-buildings-list-table th:first-child,
  .gis-portal-buildings-page .gis-buildings-list-table td:first-child,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table th:first-child,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table td:first-child {
    width: auto;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-table th:last-child,
  .gis-portal-buildings-exchange-page .gis-exchange-search-table td:last-child {
    width: 6.5rem;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-table td:last-child {
    width: 100%;
    margin-top: var(--space-2);
  }

  .gis-portal-buildings-page .gis-buildings-row-head {
    display: block;
  }

  .gis-portal-buildings-page .gis-buildings-list-table td:last-child {
    margin-top: var(--space-2);
    white-space: normal;
  }

  .gis-portal-buildings-page .gis-buildings-list-table td:last-child .gis-buildings-list-actions {
    justify-content: flex-start;
  }

  .gis-portal-buildings-page .gis-buildings-list-actions .btn {
    min-width: 0;
    white-space: nowrap;
    padding-inline: var(--space-2);
  }

  .gis-portal-buildings-exchange-page .gis-exchange-search-table td:last-child .btn {
    width: 100%;
    min-width: 0;
    white-space: normal;
  }

  .gis-portal-buildings-page .gis-buildings-row-mobile-meta,
  .gis-portal-buildings-exchange-page .gis-exchange-row-mobile-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
    margin-top: var(--space-1);
  }

  .gis-portal-buildings-page .gis-buildings-row-mobile-meta span,
  .gis-portal-buildings-exchange-page .gis-exchange-row-mobile-meta span {
    min-width: 0;
    padding: var(--space-0-5) var(--space-1-5);
    border-radius: var(--radius-sm);
    background: var(--muted);
    color: var(--muted-foreground);
    font-size: var(--fs-2xs);
    line-height: var(--lh-xs);
    word-break: keep-all;
    overflow-wrap: anywhere;
  }

  .gis-portal-buildings-exchange-page .gis-exchange-row-mobile-meta strong {
    margin-right: var(--space-1);
    color: var(--foreground);
    font-weight: 600;
  }

  .gis-admin-buildings-page .gis-admin-buildings-actions {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .gis-admin-buildings-page .gis-admin-buildings-actions .btn {
    width: 100%;
    justify-content: center;
  }

  .gis-admin-buildings-page #buildingEditorCloseBtn:disabled {
    display: none;
  }

  .gis-admin-buildings-page .gis-admin-buildings-list-wrapper {
    overflow-x: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .gis-admin-buildings-page .gis-admin-buildings-list-wrapper::after {
    display: none;
  }

  .gis-admin-buildings-page .gis-admin-buildings-list-table,
  .gis-admin-buildings-page .gis-admin-buildings-list-table thead,
  .gis-admin-buildings-page .gis-admin-buildings-list-table tbody,
  .gis-admin-buildings-page .gis-admin-buildings-list-table tr,
  .gis-admin-buildings-page .gis-admin-buildings-list-table td {
    display: block;
    width: 100%;
  }

  .gis-admin-buildings-page .gis-admin-buildings-list-table {
    min-width: 0;
    table-layout: auto;
  }

  .gis-admin-buildings-page .gis-admin-buildings-list-table thead {
    display: none;
  }

  .gis-admin-buildings-page .gis-admin-buildings-list-table tbody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-admin-buildings-page .gis-admin-buildings-list-table tr {
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
    transition: background-color 120ms ease, border-color 120ms ease;
  }

  .gis-admin-buildings-page .gis-admin-buildings-list-table tr:hover {
    border-color: color-mix(in srgb, var(--primary), var(--border) 68%);
    background: color-mix(in srgb, var(--primary), var(--card) 94%);
  }

  .gis-admin-buildings-page .gis-admin-buildings-list-table td,
  .gis-admin-buildings-page .gis-admin-buildings-list-table tr:hover td {
    padding: 0;
    border-bottom: 0;
    background: transparent;
  }

  .gis-admin-buildings-page .gis-admin-buildings-list-table td:nth-child(n+2):not(:last-child) {
    display: none;
  }

  .gis-admin-buildings-page .gis-buildings-row-head {
    display: block;
  }

  .gis-admin-buildings-page .gis-admin-buildings-list-table td:last-child {
    margin-top: var(--space-2);
    white-space: normal;
  }

  .gis-admin-buildings-page .gis-admin-buildings-list-table td:last-child .gis-buildings-list-actions {
    justify-content: flex-start;
  }

  .gis-admin-buildings-page .gis-buildings-list-actions .btn {
    min-width: 0;
    white-space: nowrap;
    padding-inline: var(--space-2);
  }

  .gis-admin-buildings-page .gis-buildings-row-mobile-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
    margin-top: var(--space-1);
  }

  .gis-admin-buildings-page .gis-buildings-row-mobile-meta span {
    min-width: 0;
    padding: var(--space-0-5) var(--space-1-5);
    border-radius: var(--radius-sm);
    background: var(--muted);
    color: var(--muted-foreground);
    font-size: var(--fs-2xs);
    line-height: var(--lh-xs);
    word-break: keep-all;
    overflow-wrap: anywhere;
  }

  .gis-portal-buildings-bulk-page .gis-bulk-queue-head,
  .gis-portal-buildings-bulk-page .gis-bulk-inline-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .gis-portal-buildings-bulk-page .table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .gis-portal-buildings-bulk-page .gis-bulk-table.gis-u-minw-1120 {
    min-width: 0;
  }

  .gis-portal-buildings-bulk-page .gis-bulk-table,
  .gis-portal-buildings-bulk-page .gis-bulk-table thead,
  .gis-portal-buildings-bulk-page .gis-bulk-table tbody,
  .gis-portal-buildings-bulk-page .gis-bulk-table tr,
  .gis-portal-buildings-bulk-page .gis-bulk-table td {
    display: block;
    width: 100%;
  }

  .gis-portal-buildings-bulk-page .gis-bulk-table thead {
    display: none;
  }

  .gis-portal-buildings-bulk-page .gis-bulk-table tbody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-portal-buildings-bulk-page .gis-bulk-table tr {
    display: grid;
    gap: var(--space-2);
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
  }

  .gis-portal-buildings-bulk-page .gis-bulk-table td {
    display: grid;
    grid-template-columns: minmax(4.5rem, 0.26fr) minmax(0, 1fr);
    gap: var(--space-2);
    align-items: center;
    padding: 0;
    border-bottom: 0;
    background: transparent;
  }

  .gis-portal-buildings-bulk-page .gis-bulk-table td::before {
    content: attr(data-label);
    color: var(--muted-foreground);
    font-size: var(--fs-2xs);
    font-weight: 600;
    line-height: var(--lh-xs);
  }

  .gis-portal-buildings-bulk-page .gis-bulk-table td[colspan] {
    display: block;
    padding: var(--space-1);
  }

  .gis-portal-buildings-bulk-page .gis-bulk-table td[colspan]::before {
    content: none;
  }

  .gis-portal-buildings-bulk-page .gis-bulk-table th:nth-child(n),
  .gis-portal-buildings-bulk-page .gis-bulk-table td:nth-child(n) {
    width: 100%;
  }

  .gis-portal-buildings-bulk-page .gis-bulk-table .input,
  .gis-portal-buildings-bulk-page .gis-bulk-table .select,
  .gis-portal-buildings-bulk-page .gis-bulk-table .select-wrapper {
    width: 100%;
    min-width: 0;
  }

  .gis-portal-buildings-bulk-page .gis-bulk-table td[data-label="작업"] .btn {
    width: 100%;
    justify-content: center;
  }
}

.gis-snapshot-grid {
  display: grid;
  gap: var(--space-2);
}

.gis-snapshot-actions {
  display: flex;
  justify-content: flex-end;
}

@media (max-width: 1024px) {
  .gis-series-grid {
    grid-template-columns: 1fr;
  }

  .gis-series-toolbar {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1024px) {
  .gis-pop-grid {
    grid-template-columns: 1fr;
  }

  .gis-population-page .gis-population-admin-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 1024px) {
  .gis-nav-group--global {
    display: grid;
    margin-bottom: var(--space-2);
    padding-bottom: var(--space-2);
    border-bottom: var(--space-px) solid var(--border);
  }

  .gis-header-context {
    display: none;
  }

  .gis-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-admin-areas-grid {
    grid-template-columns: 1fr;
  }

  .gis-portal-admin-areas-page .gis-admin-areas-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .gis-admin-areas-history-header {
    flex-direction: column;
    align-items: stretch;
  }

  .gis-admin-areas-history-actions {
    justify-content: flex-start;
  }

  .gis-admin-areas-filter-actions {
    grid-template-columns: 1fr;
  }

  .gis-admin-areas-refresh-btn {
    width: 100%;
    justify-content: center;
  }

  .gis-admin-areas-tree-body {
    max-height: calc(var(--space-12) * 6);
  }
}

@media (max-width: 640px) {
  .gis-admin-areas-tree-body {
    max-height: calc(var(--space-12) * 5);
  }
}

@media (max-width: 640px) {
  .gis-population-page .gis-population-series-chart-head {
    display: grid;
    gap: var(--space-2);
  }

  .gis-population-page .gis-population-series-range {
    width: 100%;
  }

  .gis-population-page .gis-population-series-range .btn {
    min-width: 0;
    padding-inline: var(--space-1);
  }

  .gis-population-page .gis-population-series-metrics {
    grid-template-columns: 1fr;
  }

  .gis-card-grid {
    grid-template-columns: 1fr;
  }

  .gis-city-title {
    font-size: var(--fs-h3);
    line-height: var(--lh-h3);
  }

  .portal-city-row-footer {
    justify-content: space-between;
    align-items: center;
  }

  .portal-city-row-footer-meta {
    width: auto;
    flex: 1 1 0;
  }

  .gis-portal-home-page .gis-portal-home-unknown-row {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .gis-portal-home-page .gis-portal-home-unknown-badges {
    justify-content: flex-start;
  }
}

@media (max-width: 1024px) {
  .gis-page-hero-card .card-content,
  .gis-portal-buildings-bulk-page .gis-portal-buildings-bulk-layout {
    grid-template-columns: 1fr;
  }

  .gis-portal-buildings-bulk-page .gis-bulk-builder-grid {
    grid-template-columns: 1fr;
  }

  .gis-portal-buildings-bulk-page .gis-portal-buildings-bulk-side {
    position: static;
  }

  .gis-page-hero-actions {
    justify-content: flex-start;
  }

  .gis-admin-dashboard-page .gis-admin-dashboard-hero-body,
  .gis-admin-dashboard-page .gis-admin-dashboard-overview-grid,
  .gis-admin-dashboard-page .gis-admin-dashboard-panels {
    grid-template-columns: 1fr;
  }

  .gis-admin-dashboard-page .gis-admin-dashboard-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-portal-home-page .gis-portal-home-hero .card-content,
  .gis-portal-home-page .gis-portal-home-overview-grid {
    grid-template-columns: 1fr;
  }

  .gis-portal-home-page .gis-portal-home-stat-grid--summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-portal-home-page .gis-portal-home-summary-card .gis-portal-home-stat-surface:nth-child(odd) {
    padding-left: 0;
    border-left: 0;
  }

  .gis-portal-home-page .gis-portal-home-summary-card .gis-portal-home-stat-surface:nth-child(n + 3) {
    padding-top: var(--space-2);
    border-top: var(--space-px) solid var(--border);
  }

  .gis-portal-home-page .gis-portal-home-primary-stack {
    gap: var(--space-3);
  }

  .gis-portal-home-page .gis-portal-home-side-stack {
    gap: var(--space-3);
  }

  .gis-portal-home-page .gis-portal-home-hero-actions {
    justify-content: flex-start;
  }

  .gis-portal-home-page .gis-portal-home-task-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .gis-page-summary-row,
  .gis-portal-buildings-bulk-page .card-header--split,
  .gis-portal-buildings-bulk-page .card-actions,
  .gis-portal-buildings-bulk-page .gis-bulk-section-head,
  .gis-portal-buildings-page .card-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .gis-portal-buildings-bulk-page .gis-page-hero-actions {
    grid-template-columns: 1fr;
  }

  .gis-portal-buildings-bulk-page .btn {
    min-width: 0;
    white-space: normal;
  }

  .gis-page-hero-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }

  .gis-page-hero-actions > :only-child {
    grid-column: 1 / -1;
  }

  .gis-portal-home-page .gis-portal-home-hero-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }

  .gis-portal-home-page .gis-portal-home-stat-grid--summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-portal-home-page .gis-portal-home-stat-grid--city {
    grid-template-columns: 1fr;
  }

  .portal-city-row {
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }

  .gis-portal-buildings-bulk-page .gis-bulk-mode-tabs {
    grid-template-columns: 1fr;
  }

  .gis-portal-buildings-bulk-page .gis-bulk-builder-panel .gis-grid-auto-fit-180 {
    grid-template-columns: 1fr;
  }

  .gis-page-hero-actions .btn,
  .gis-portal-buildings-bulk-page .card-actions .btn,
  .gis-portal-buildings-bulk-page .gis-bulk-inline-actions .btn,
  .gis-portal-buildings-page .card-actions .btn {
    width: 100%;
  }

  .gis-admin-dashboard-page .gis-admin-dashboard-stats-grid {
    grid-template-columns: 1fr;
  }

  .gis-portal-buildings-page .gis-form-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: stretch;
  }

  .gis-portal-buildings-page .gis-form-actions > :only-child {
    grid-column: 1 / -1;
  }

  .gis-portal-buildings-page .gis-form-actions > .btn,
  .gis-page-hero-actions > .btn {
    width: 100%;
  }

  .gis-portal-home-page .gis-portal-home-hero-actions > :only-child {
    grid-column: 1 / -1;
  }

  .gis-portal-home-page .gis-portal-home-hero-actions > .btn {
    width: 100%;
  }

  .gis-portal-buildings-bulk-page .gis-page-summary-row,
  .gis-portal-buildings-lookup-page .gis-page-summary-row,
  .gis-portal-buildings-lookup-page .gis-lookup-results-footer {
    align-items: stretch;
  }

}

@media (max-width: 640px) {
  .gis-portal-home-page .gis-portal-home-stat-grid--summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-portal-home-page .gis-portal-home-stat-grid--summary > :last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .gis-portal-home-page .gis-portal-home-summary-card .gis-portal-home-stat-surface {
    padding: var(--space-2);
  }
}

@media (max-width: 359px) {
  .gis-portal-home-page .gis-portal-home-task-grid {
    grid-template-columns: 1fr;
  }

  .gis-portal-home-page .gis-portal-home-task-card {
    border-right: 0;
  }

}

@media (max-width: 720px) {
  .gis-portal-admin-list-page .gis-timeline-table {
    font-size: var(--fs-xs);
  }

  .gis-portal-admin-list-page .gis-timeline-table th,
  .gis-portal-admin-list-page .gis-timeline-table td {
    padding: var(--space-1-5) var(--space-2);
  }

  .gis-portal-admin-list-page .gis-timeline-table th:nth-child(3),
  .gis-portal-admin-list-page .gis-timeline-table td:nth-child(3) {
    display: none;
  }

  .gis-portal-admin-list-page .city-name {
    font-size: var(--fs-sm);
  }

  .gis-portal-admin-list-page .timeline-container {
    min-width: 220px;
  }

  .gis-portal-admin-list-page .timeline-label span {
    font-size: var(--fs-xs);
  }
}

@media (max-width: 640px) {
  .gis-portal-admin-list-page .gis-timeline-table,
  .gis-portal-admin-list-page .gis-timeline-table thead,
  .gis-portal-admin-list-page .gis-timeline-table tbody,
  .gis-portal-admin-list-page .gis-timeline-table tr,
  .gis-portal-admin-list-page .gis-timeline-table td {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .gis-portal-admin-list-page .gis-timeline-table {
    table-layout: auto;
  }

  .gis-portal-admin-list-page .gis-timeline-table thead {
    display: none;
  }

  .gis-portal-admin-list-page .gis-timeline-table tbody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-portal-admin-list-page .gis-timeline-table tr {
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
  }

  .gis-portal-admin-list-page .gis-timeline-table tr:hover {
    border-color: color-mix(in srgb, var(--primary), var(--border) 68%);
    background: color-mix(in srgb, var(--primary), var(--card) 94%);
  }

  .gis-portal-admin-list-page .gis-timeline-table td,
  .gis-portal-admin-list-page .gis-timeline-table tr:hover td {
    padding: 0;
    border-bottom: 0;
    background: transparent;
  }

  .gis-portal-admin-list-page .gis-timeline-table td:nth-child(2) {
    margin-top: var(--space-2);
  }

  .gis-portal-admin-list-page .gis-timeline-table td:nth-child(3),
  .gis-portal-admin-list-page .gis-timeline-table td:nth-child(4) {
    display: none;
  }

  .gis-portal-admin-list-page .timeline-container {
    min-width: 0;
  }

  .gis-portal-admin-list-page .timeline-track {
    min-height: var(--control-h-s);
  }

  .gis-portal-admin-list-page .timeline-empty {
    padding: var(--space-2);
    border: 1px dashed var(--border);
    border-radius: var(--radius-sm);
    font-style: normal;
  }

  .gis-admin-areas-page .card-header--split,
  .gis-portal-admin-areas-page .card-header--split {
    align-items: stretch;
  }

  .gis-admin-areas-page .card-actions,
  .gis-admin-areas-page .gis-admin-areas-history-actions,
  .gis-portal-admin-areas-page .card-actions,
  .gis-portal-admin-areas-page .gis-admin-areas-history-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
  }

  .gis-admin-areas-page .card-actions .btn,
  .gis-admin-areas-page .gis-admin-areas-history-actions .btn,
  .gis-portal-admin-areas-page .card-actions .btn,
  .gis-portal-admin-areas-page .gis-admin-areas-history-actions .btn {
    width: 100%;
    justify-content: center;
    padding-inline: var(--space-1);
  }

  .gis-admin-areas-page .gis-admin-areas-tree-card,
  .gis-portal-admin-areas-page .gis-admin-areas-tree-card {
    border-radius: var(--radius-md);
  }

  .gis-admin-areas-page .gis-admin-areas-tree-body,
  .gis-portal-admin-areas-page .gis-admin-areas-tree-body {
    max-height: min(calc(var(--space-12) * 5), 48vh);
  }

  .gis-admin-areas-page .gis-admin-areas-children-table,
  .gis-admin-areas-page .gis-admin-areas-children-table thead,
  .gis-admin-areas-page .gis-admin-areas-children-table tbody,
  .gis-admin-areas-page .gis-admin-areas-children-table tr,
  .gis-admin-areas-page .gis-admin-areas-children-table td,
  .gis-portal-admin-areas-page .gis-admin-areas-children-table,
  .gis-portal-admin-areas-page .gis-admin-areas-children-table thead,
  .gis-portal-admin-areas-page .gis-admin-areas-children-table tbody,
  .gis-portal-admin-areas-page .gis-admin-areas-children-table tr,
  .gis-portal-admin-areas-page .gis-admin-areas-children-table td {
    display: block;
    width: 100%;
  }

  .gis-admin-areas-page .gis-admin-areas-children-table,
  .gis-portal-admin-areas-page .gis-admin-areas-children-table {
    min-width: 0;
    table-layout: auto;
  }

  .gis-admin-areas-page .gis-admin-areas-children-table thead,
  .gis-portal-admin-areas-page .gis-admin-areas-children-table thead {
    display: none;
  }

  .gis-admin-areas-page .gis-admin-areas-children-table tbody,
  .gis-portal-admin-areas-page .gis-admin-areas-children-table tbody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-admin-areas-page .gis-admin-areas-children-table tr,
  .gis-portal-admin-areas-page .gis-admin-areas-children-table tr {
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
  }

  .gis-admin-areas-page .gis-admin-areas-children-table td,
  .gis-admin-areas-page .gis-admin-areas-children-table tr:hover td,
  .gis-portal-admin-areas-page .gis-admin-areas-children-table td,
  .gis-portal-admin-areas-page .gis-admin-areas-children-table tr:hover td {
    padding: 0;
    border-bottom: 0;
    background: transparent;
  }

  .gis-admin-areas-page .gis-admin-areas-children-table td:not(:first-child),
  .gis-portal-admin-areas-page .gis-admin-areas-children-table td:not(:first-child) {
    display: none;
  }

  .gis-admin-areas-page .gis-admin-areas-history-table,
  .gis-admin-areas-page .gis-admin-areas-history-table thead,
  .gis-admin-areas-page .gis-admin-areas-history-table tbody,
  .gis-admin-areas-page .gis-admin-areas-history-table tr,
  .gis-admin-areas-page .gis-admin-areas-history-table td,
  .gis-portal-admin-areas-page .gis-admin-areas-history-table,
  .gis-portal-admin-areas-page .gis-admin-areas-history-table thead,
  .gis-portal-admin-areas-page .gis-admin-areas-history-table tbody,
  .gis-portal-admin-areas-page .gis-admin-areas-history-table tr,
  .gis-portal-admin-areas-page .gis-admin-areas-history-table td {
    display: block;
    width: 100%;
  }

  .gis-admin-areas-page .gis-admin-areas-history-table,
  .gis-portal-admin-areas-page .gis-admin-areas-history-table {
    min-width: 0;
    table-layout: auto;
  }

  .gis-admin-areas-page .gis-admin-areas-history-table thead,
  .gis-portal-admin-areas-page .gis-admin-areas-history-table thead {
    display: none;
  }

  .gis-admin-areas-page .gis-admin-areas-history-table tbody,
  .gis-portal-admin-areas-page .gis-admin-areas-history-table tbody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-admin-areas-page .gis-admin-areas-history-table tr,
  .gis-portal-admin-areas-page .gis-admin-areas-history-table tr {
    display: grid;
    gap: var(--space-2);
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
  }

  .gis-admin-areas-page .gis-admin-areas-history-table td,
  .gis-admin-areas-page .gis-admin-areas-history-table tr:hover td,
  .gis-portal-admin-areas-page .gis-admin-areas-history-table td,
  .gis-portal-admin-areas-page .gis-admin-areas-history-table tr:hover td {
    display: grid;
    grid-template-columns: minmax(4.75rem, 0.28fr) minmax(0, 1fr);
    gap: var(--space-2);
    align-items: center;
    padding: 0;
    border-bottom: 0;
    background: transparent;
  }

  .gis-admin-areas-page .gis-admin-areas-history-table td::before,
  .gis-portal-admin-areas-page .gis-admin-areas-history-table td::before {
    content: attr(data-label);
    color: var(--muted-foreground);
    font-size: var(--fs-2xs);
    font-weight: 600;
    line-height: var(--lh-xs);
  }

  .gis-admin-areas-page .gis-admin-areas-history-table td[colspan],
  .gis-portal-admin-areas-page .gis-admin-areas-history-table td[colspan] {
    display: block;
    padding: var(--space-1);
  }

  .gis-admin-areas-page .gis-admin-areas-history-table td[colspan]::before,
  .gis-portal-admin-areas-page .gis-admin-areas-history-table td[colspan]::before {
    content: none;
  }

  .gis-admin-areas-page .gis-admin-areas-history-table .select-wrapper,
  .gis-admin-areas-page .gis-admin-areas-history-table .input,
  .gis-portal-admin-areas-page .gis-admin-areas-history-table .select-wrapper,
  .gis-portal-admin-areas-page .gis-admin-areas-history-table .input {
    width: 100%;
    min-width: 0;
  }

  .gis-admin-areas-page .gis-admin-areas-history-row-actions,
  .gis-portal-admin-areas-page .gis-admin-areas-history-row-actions {
    justify-content: stretch;
  }

  .gis-admin-areas-page .gis-admin-areas-history-row-actions .btn,
  .gis-portal-admin-areas-page .gis-admin-areas-history-row-actions .btn {
    width: 100%;
  }
}

@media (max-width: 1024px) {
  .gis-sidebar {
    left: 0;
    transform: translateX(-100%);
    box-shadow: var(--shadow-lg);
  }

  body.gis-sidebar-open .gis-sidebar {
    transform: translateX(0);
  }
}

/* Inline Search Dropdown (Replacing Portal) */
.gis-search-wrapper {
  position: relative;
  width: 100%;
}

.hz-menu.hz-menu--inline {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: var(--z-popover);
  max-height: 240px;
  overflow-y: auto;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  margin-top: var(--space-1);
}

/* Public GIS stats portal */
body.gis-body.gis-stats-portal-page {
  --font-sans-locale: var(--font-sans-kr);
  touch-action: manipulation;
}

body.gis-body.gis-stats-portal-page.gis-shell-standalone .gis-content {
  padding-top: 0;
  padding-inline: var(--space-6);
}

body.gis-body.gis-stats-portal-page .page-wrapper.gis-page {
  min-height: 100dvh;
}

body.gis-body.gis-stats-portal-page .gis-stats-agency-layout {
  flex: 1 0 auto;
  display: flex;
  min-height: 0;
}

body.gis-body.gis-stats-portal-page .gis-stats-agency-main {
  flex: 1 1 auto;
  display: flex;
  min-width: 0;
}

body.gis-body.gis-stats-portal-page .block-app-header .nav-logo {
  height: var(--control-h-s);
  min-height: var(--control-h-s);
}

body.gis-body.gis-stats-portal-page .block-app-header .nav-logo-image {
  height: 20px;
}

body.gis-body.gis-stats-portal-page .block-app-header .block-app-context-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--control-h-s);
  min-height: var(--control-h-s);
}

.gis-stats-agency-shell {
  width: min(100%, 1240px);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-height: calc(100dvh - var(--main-header-height, var(--header-height, 64px)));
  font-family: 'Noto Sans KR', 'Apple SD Gothic Neo', 'Noto Sans', sans-serif;
}

.gis-stats-agency-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(max-content, auto);
  gap: var(--space-5);
  align-items: center;
  min-height: 68px;
  padding: var(--space-2) 0 var(--space-3);
  border-bottom: 1px solid color-mix(in srgb, var(--border), transparent 8%);
  background: transparent;
}

.gis-stats-agency-head-main {
  display: flex;
  align-items: center;
  min-width: 0;
}

.gis-stats-agency-title-stack {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}

.gis-stats-agency-head h1 {
  margin: 0;
  font-size: clamp(1.42rem, 1.8vw, 1.85rem);
  line-height: 1.12;
  font-weight: 760;
  letter-spacing: 0;
}

.gis-stats-agency-head-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
  max-width: 920px;
}

.gis-stats-agency-head-meta > span {
  color: color-mix(in srgb, var(--muted-foreground), transparent 20%);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-stats-agency-data-scale {
  margin: 0;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 690;
  line-height: var(--lh-sm);
  font-variant-numeric: tabular-nums lining-nums;
  max-width: min(100%, 560px);
  white-space: normal;
  overflow-wrap: anywhere;
}

.gis-stats-agency-snapshot-note {
  margin: 0;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 620;
  line-height: var(--lh-xs);
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}

.gis-stats-agency-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-self: center;
  gap: var(--space-1);
  min-width: 0;
  padding: var(--space-0-5);
  border: 1px solid color-mix(in srgb, var(--border), transparent 12%);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--card) 72%, transparent);
}

.gis-stats-agency-nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 var(--space-2-5);
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 760;
  text-decoration: none;
  white-space: nowrap;
  transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease;
}

.gis-stats-agency-nav a:hover,
.gis-stats-agency-nav a:focus-visible {
  color: var(--foreground);
  background: color-mix(in srgb, var(--muted) 64%, transparent);
}

.gis-stats-agency-nav a:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: var(--space-px);
}

.gis-stats-agency-summary.is-scrollable:focus-visible,
.gis-stats-agency-home-close-list.is-scrollable:focus-visible,
.gis-stats-agency-panel--population-trend .gis-stats-agency-chart-meta.is-scrollable:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: var(--space-px);
}

.gis-stats-agency-nav a.is-active,
.gis-stats-agency-nav a[aria-current="page"] {
  color: var(--foreground);
  border-color: color-mix(in srgb, var(--border-strong) 72%, var(--border));
  background: color-mix(in srgb, var(--muted) 76%, var(--card));
}

.gis-stats-agency-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid color-mix(in srgb, var(--border), transparent 8%);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: color-mix(in srgb, var(--card) 92%, var(--background));
}

.gis-stats-agency-stat {
  display: grid;
  grid-template-rows: auto minmax(2.4rem, 1fr) 1rem;
  row-gap: var(--space-1-5);
  min-height: 98px;
  padding: var(--space-3) var(--space-4);
  border-right: 1px solid color-mix(in srgb, var(--border), transparent 8%);
}

.gis-stats-agency-stat:last-child {
  border-right: none;
}

.gis-stats-agency-stat span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 720;
  line-height: var(--lh-xs);
}

.gis-stats-agency-stat strong {
  align-self: end;
  min-width: 0;
  font-size: clamp(1.42rem, 2.15vw, 2rem);
  line-height: 1.22;
  min-height: 1.36em;
  font-weight: 760;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums lining-nums;
  overflow: visible;
  white-space: nowrap;
}

.gis-stats-agency-stat small {
  align-self: start;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 680;
  line-height: var(--lh-xs);
  font-variant-numeric: tabular-nums lining-nums;
  white-space: nowrap;
}

.gis-stats-agency-stat small.is-up {
  color: var(--success);
}

.gis-stats-agency-stat small.is-down {
  color: color-mix(in srgb, var(--destructive) 78%, var(--foreground));
}

.gis-stats-agency-summary:has(.gis-stats-tip),
.gis-stats-agency-panel:has(.gis-stats-tip),
.gis-stats-agency-insight-strip:has(.gis-stats-tip) {
  overflow: visible;
}

.gis-stats-agency-label-with-tip {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
  max-width: 100%;
}

.gis-stats-tip-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-tip {
  flex: 0 0 auto;
}

.gis-stats-tip .gis-tip-trigger {
  --stats-tip-hit-size: var(--control-h-s);
  --stats-tip-visual-size: var(--control-h-s);
  width: var(--stats-tip-hit-size);
  height: var(--stats-tip-hit-size);
  min-width: var(--stats-tip-hit-size);
  min-height: var(--stats-tip-hit-size);
  margin: calc((var(--stats-tip-visual-size) - var(--stats-tip-hit-size)) / 2);
  border-radius: var(--radius-sm);
  color: var(--muted-foreground);
  opacity: 0.78;
}

.gis-stats-tip .gis-tip-trigger:hover,
.gis-stats-tip .gis-tip-trigger:focus-visible {
  color: var(--primary);
  opacity: 1;
}

.gis-stats-tip .gis-tip-trigger .material-symbols-outlined {
  --stats-icon-box-size: var(--fs-sm);
  width: var(--stats-icon-box-size);
  min-width: var(--stats-icon-box-size);
  height: var(--stats-icon-box-size);
  min-height: var(--stats-icon-box-size);
  overflow: hidden;
  font-size: 0;
  text-indent: 0;
}

.gis-stats-tip .gis-tip-trigger .material-symbols-outlined:not([data-symbol-ready="1"]) {
  font-size: var(--stats-icon-box-size);
}

.gis-stats-tip .gis-tip-popup {
  position: fixed;
  top: var(--stats-tip-top, 0);
  left: var(--stats-tip-left, 0);
  right: auto;
  min-width: 220px;
  max-width: min(320px, 86vw);
  color: var(--card-foreground);
  font-size: var(--fs-xs);
  font-weight: 500;
  text-align: left;
  white-space: normal;
}

.gis-stats-tip:not(.is-open):not(.is-pinned) .gis-tip-popup {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(var(--space-1));
}

.gis-stats-tip.is-open .gis-tip-popup,
.gis-stats-tip.is-pinned .gis-tip-popup {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.gis-stats-agency-stat strong.is-up {
  color: var(--success);
}

.gis-stats-agency-stat strong.is-down {
  color: var(--destructive);
}

.gis-stats-agency-home-tools {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
}

.gis-stats-agency-home-context {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
}

.gis-stats-agency-home-context-label {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: var(--space-1-5);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 760;
  line-height: var(--lh-xs);
  white-space: nowrap;
}

.gis-stats-agency-home-context-label .material-symbols-outlined {
  width: var(--control-icon-s);
  height: var(--control-icon-s);
  color: var(--primary);
  font-size: var(--control-icon-s);
}

.gis-stats-agency-home-search-row {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) auto;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
}

.gis-stats-agency-home-search {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  min-height: 44px;
  padding: 0 var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--card) 88%, var(--background));
}

.gis-stats-agency-home-search .material-symbols-outlined {
  color: var(--muted-foreground);
  font-size: var(--control-icon-s);
}

.gis-stats-agency-home-search input {
  width: 100%;
  min-width: 0;
  min-height: var(--control-h-s);
  padding: 0;
  border: 0;
  outline: 0;
  appearance: none;
  background: transparent;
  color: var(--foreground);
  font: inherit;
  font-size: var(--fs-sm);
  font-weight: 650;
  line-height: var(--lh-sm);
}

.gis-stats-agency-home-search input::placeholder {
  color: color-mix(in srgb, var(--muted-foreground), transparent 18%);
}

.gis-stats-agency-home-search:focus-within {
  border-color: color-mix(in srgb, var(--primary) 52%, var(--border));
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 18%, transparent);
}

.gis-stats-agency-home-search button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--control-h-s);
  min-width: var(--control-h-s);
  height: var(--control-h-s);
  min-height: var(--control-h-s);
  padding: 0;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--muted-foreground);
  cursor: pointer;
}

.gis-stats-agency-home-search button:hover,
.gis-stats-agency-home-search button:focus-visible {
  background: var(--muted);
  color: var(--foreground);
}

.gis-stats-agency-home-close-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: var(--space-1);
  min-width: 0;
}

.gis-stats-agency-home-close-list strong {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--card) 76%, transparent);
  color: var(--foreground);
  font-size: var(--fs-xs);
  font-weight: 760;
  line-height: 1;
  white-space: nowrap;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-home-search-feedback {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-2);
  min-width: 0;
}

.gis-stats-agency-home-search-feedback > span,
.gis-stats-agency-home-search-feedback > p {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 720;
  line-height: var(--lh-xs);
  white-space: nowrap;
}

.gis-stats-agency-home-primary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.84fr);
  gap: var(--space-3);
  min-width: 0;
  align-items: stretch;
}

.gis-stats-agency-home-overview,
.gis-stats-agency-home-recommend {
  display: grid;
  gap: var(--space-3);
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--card), transparent 3%);
}

.gis-stats-agency-home-section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-3);
  min-width: 0;
}

.gis-stats-agency-home-section-head h2 {
  margin: 0;
  color: var(--foreground);
  font-size: var(--fs-h4);
  line-height: var(--lh-h4);
  font-weight: 850;
  letter-spacing: 0;
}

.gis-stats-agency-home-section-head p {
  margin: var(--space-1) 0 0;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  font-weight: 650;
}

.gis-stats-agency-home-section-head > span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 760;
  white-space: nowrap;
}

.gis-stats-agency-home-metric-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--card);
}

.gis-stats-agency-home-metric-grid a {
  display: grid;
  align-content: start;
  gap: var(--space-2);
  min-width: 0;
  min-height: 106px;
  padding: var(--space-3);
  border-right: 1px solid var(--border);
  color: var(--foreground);
  text-decoration: none;
}

.gis-stats-agency-home-metric-grid a:last-child {
  border-right: 0;
}

.gis-stats-agency-home-metric-grid a:nth-child(2n) {
  border-right: 0;
}

.gis-stats-agency-home-metric-grid a:nth-child(-n + 2) {
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-home-metric-grid a:hover,
.gis-stats-agency-home-metric-grid a:focus-visible {
  background: color-mix(in srgb, var(--muted) 54%, transparent);
}

.gis-stats-agency-home-metric-grid span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 760;
  line-height: var(--lh-xs);
}

.gis-stats-agency-home-metric-grid strong {
  min-width: 0;
  overflow: hidden;
  color: var(--foreground);
  font-size: clamp(1.2rem, 1.6vw, 1.52rem);
  font-weight: 780;
  min-height: 1.34em;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-home-metric-grid small {
  min-width: 0;
  overflow: hidden;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 680;
  line-height: var(--lh-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-home-link-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--card);
}

.gis-stats-agency-home-link-grid a {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas:
    "tag title arrow"
    "tag meta arrow";
  align-items: center;
  column-gap: var(--space-2);
  row-gap: var(--space-1);
  min-width: 0;
  min-height: 68px;
  padding: var(--space-3);
  border: 0;
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: transparent;
  color: var(--foreground);
  text-decoration: none;
}

.gis-stats-agency-home-link-grid a:nth-child(3n) {
  border-right: 0;
}

.gis-stats-agency-home-link-grid a:nth-last-child(-n + 3) {
  border-bottom: 0;
}

.gis-stats-agency-home-link-grid a:hover,
.gis-stats-agency-home-link-grid a:focus-visible {
  background: color-mix(in srgb, var(--primary) 7%, var(--card));
}

.gis-stats-agency-home-link-grid em {
  grid-area: tag;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  min-height: 24px;
  padding: 0 var(--space-2);
  border: 1px solid color-mix(in srgb, var(--primary) 24%, var(--border));
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--primary) 9%, transparent);
  color: color-mix(in srgb, var(--primary) 76%, var(--foreground));
  font-size: var(--fs-xs);
  font-style: normal;
  font-weight: 820;
  white-space: nowrap;
}

.gis-stats-agency-home-link-grid strong {
  grid-area: title;
  min-width: 0;
  overflow: hidden;
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 850;
  line-height: var(--lh-sm);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-home-link-grid small {
  grid-area: meta;
  min-width: 0;
  overflow: hidden;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 680;
  line-height: var(--lh-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-link-arrow {
  grid-area: arrow;
  align-self: center;
  justify-self: end;
  width: var(--control-icon-s);
  height: var(--control-icon-s);
  color: var(--muted-foreground);
  font-size: var(--control-icon-s);
  transition: color 150ms ease, transform 150ms ease;
}

.gis-stats-agency-home-link-grid a:hover .gis-stats-agency-link-arrow,
.gis-stats-agency-home-link-grid a:focus-visible .gis-stats-agency-link-arrow,
.gis-stats-agency-directory-grid a:hover .gis-stats-agency-link-arrow,
.gis-stats-agency-directory-grid a:focus-visible .gis-stats-agency-link-arrow {
  color: var(--primary);
  transform: translateX(var(--space-0-5));
}

.gis-stats-agency-home-search-empty {
  margin: 0;
  padding: 0;
}

.gis-stats-agency-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
  margin-top: auto;
  padding: var(--space-1) 0;
  border-top: 1px solid color-mix(in srgb, var(--border), transparent 8%);
}

.gis-stats-agency-footer-main {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-1) var(--space-3);
  min-width: 0;
}

.gis-stats-agency-footer-brand {
  display: inline-flex;
  align-items: center;
  min-height: var(--control-h-s);
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 820;
  line-height: var(--lh-sm);
  text-decoration: none;
  width: fit-content;
}

.gis-stats-agency-footer-brand:hover,
.gis-stats-agency-footer-brand:focus-visible {
  color: var(--accent);
}

.gis-stats-agency-footer-main small {
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  font-weight: 620;
  line-height: var(--lh-xs);
}

.gis-stats-agency-footer-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-1) var(--space-3);
  min-width: 0;
}

.gis-stats-agency-footer-links a {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  min-width: var(--control-h-s);
  min-height: var(--control-h-s);
  padding: 0;
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  font-weight: 680;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}

.gis-stats-agency-footer-links a:hover,
.gis-stats-agency-footer-links a:focus-visible {
  color: var(--foreground);
}

.gis-stats-agency-directory {
  display: grid;
  gap: var(--space-3);
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--card), transparent 3%);
}

.gis-stats-agency-directory-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-3);
  min-width: 0;
}

.gis-stats-agency-directory-head h2 {
  margin: 0;
  color: var(--foreground);
  font-size: var(--fs-h4);
  line-height: var(--lh-h4);
  font-weight: 850;
  letter-spacing: 0;
}

.gis-stats-agency-directory-head p {
  margin: var(--space-1) 0 0;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  font-weight: 650;
}

.gis-stats-agency-directory-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--card);
}

.gis-stats-agency-directory-grid a {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas:
    "icon title arrow"
    "icon meta arrow";
  column-gap: var(--space-2);
  row-gap: var(--space-0-5);
  align-items: center;
  min-width: 0;
  min-height: 58px;
  padding: var(--space-2) var(--space-3);
  border: 0;
  border-bottom: 1px solid var(--border);
  background: transparent;
  color: var(--foreground);
  text-decoration: none;
}

.gis-stats-agency-directory-grid a:last-child {
  border-bottom: 0;
}

.gis-stats-agency-directory-grid a::before {
  content: '';
  grid-area: icon;
  display: block;
  width: var(--control-h-s);
  height: var(--control-h-s);
  border: 1px solid color-mix(in srgb, var(--primary) 18%, var(--border));
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--primary) 10%, var(--surface));
}

.gis-stats-agency-directory-grid a:hover,
.gis-stats-agency-directory-grid a:focus-visible,
.gis-stats-agency-directory-grid a.is-active {
  background: color-mix(in srgb, var(--primary) 8%, var(--card));
}

.gis-stats-agency-directory-grid .material-symbols-outlined {
  grid-area: icon;
  align-self: center;
  justify-self: center;
  width: var(--control-icon-m);
  height: var(--control-icon-m);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: color-mix(in srgb, var(--primary) 72%, var(--foreground));
  font-size: var(--control-icon-m);
  line-height: 1;
  z-index: 1;
}

.gis-stats-agency-directory-grid a.is-active::before {
  border-color: color-mix(in srgb, var(--primary) 44%, var(--border));
  background: color-mix(in srgb, var(--primary) 18%, var(--card));
}

.gis-stats-agency-directory-grid a.is-active .material-symbols-outlined {
  color: var(--primary);
}

.gis-stats-agency-directory-grid a:hover::before,
.gis-stats-agency-directory-grid a:focus-visible::before {
  border-color: color-mix(in srgb, var(--primary) 52%, var(--border));
  background: color-mix(in srgb, var(--primary) 16%, var(--card));
}

.gis-stats-agency-directory-grid a:hover .material-symbols-outlined,
.gis-stats-agency-directory-grid a:focus-visible .material-symbols-outlined {
  color: var(--primary);
}

.gis-stats-agency-directory-grid strong {
  grid-area: title;
  min-width: 0;
  overflow: hidden;
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-directory-grid small {
  grid-area: meta;
  min-width: 0;
  overflow: hidden;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-directory-grid .gis-stats-agency-link-arrow {
  grid-area: arrow;
  color: var(--muted-foreground);
}

.gis-stats-agency-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: center;
  padding: var(--space-1);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--card);
}

.gis-stats-agency-tab-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  align-items: center;
  min-width: 0;
  padding: var(--space-1);
  border-right: 1px solid var(--border);
}

.gis-stats-agency-tab-group:last-child {
  border-right: none;
}

.gis-stats-agency-tab-group-label {
  display: inline-flex;
  align-items: center;
  min-height: var(--control-h-s);
  padding: 0 var(--space-1);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 850;
  letter-spacing: 0;
  white-space: nowrap;
}

.gis-stats-agency-tab-group--activity .gis-stats-agency-tab-group-label {
  color: var(--primary);
}

.gis-stats-agency-tabs button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--control-h-s);
  padding: 0 var(--space-3);
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--muted-foreground);
  font: inherit;
  font-size: var(--fs-sm);
  font-weight: 700;
  cursor: pointer;
}

.gis-stats-agency-tabs button:hover {
  background: var(--muted);
  color: var(--foreground);
}

.gis-stats-agency-tabs button.is-active {
  border-color: var(--primary);
  background: color-mix(in srgb, var(--primary) 12%, transparent);
  color: var(--foreground);
}

.gis-stats-agency-tabs[hidden] {
  display: none !important;
}

.gis-stats-agency-tabs.is-section-tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: var(--space-1);
  min-width: 0;
}

.gis-stats-agency-tabs.is-section-tabs .gis-stats-agency-tab-group {
  display: contents;
  padding: 0;
  border-right: none;
}

.gis-stats-agency-tabs.is-section-tabs .gis-stats-agency-tab-group-label {
  display: none;
}

.gis-stats-agency-tabs.is-section-tabs button {
  width: auto;
  min-width: max-content;
  min-height: var(--control-h-m);
  border-color: transparent;
  background: transparent;
  color: var(--muted-foreground);
  white-space: nowrap;
}

.gis-stats-agency-tabs.is-section-tabs button:hover,
.gis-stats-agency-tabs.is-section-tabs button:focus-visible {
  border-color: var(--border);
  background: var(--muted);
  color: var(--foreground);
}

.gis-stats-agency-tabs.is-section-tabs button.is-active {
  border-color: color-mix(in srgb, var(--primary) 54%, var(--border));
  background: color-mix(in srgb, var(--primary) 12%, var(--card));
  color: var(--foreground);
  box-shadow: inset 0 -2px 0 var(--primary);
}

.gis-stats-agency-tab-panel {
  display: grid;
  gap: var(--space-4);
  min-width: 0;
}

.gis-stats-agency-tab-panel[hidden] {
  display: none;
}

.gis-stats-agency-workspace {
  display: grid;
  gap: var(--space-3);
  min-width: 0;
}

.gis-stats-agency-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  min-height: var(--control-h-m);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-section-head h2 {
  margin: 0;
  font-size: var(--fs-h3);
  line-height: var(--lh-h3);
}

.gis-stats-agency-playback {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-2);
  min-width: 0;
}

.gis-stats-agency-period-mode {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 2px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.gis-stats-agency-period-mode button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  min-height: calc(var(--control-h-s) - 6px);
  border: 0;
  border-radius: calc(var(--radius-sm) - 2px);
  background: transparent;
  color: var(--muted-foreground);
  font: inherit;
  font-size: var(--fs-xs);
  font-weight: 800;
  cursor: pointer;
}

.gis-stats-agency-period-mode button:hover {
  color: var(--foreground);
  background: var(--muted);
}

.gis-stats-agency-period-mode button.is-active {
  color: var(--foreground);
  background: color-mix(in srgb, var(--primary) 16%, transparent);
}

.gis-stats-agency-quarter-tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-1);
  min-width: 0;
}

.gis-stats-agency-quarter-tab,
.gis-stats-agency-play-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--control-h-s);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--foreground);
  font: inherit;
  font-size: var(--fs-xs);
  font-weight: 700;
  cursor: pointer;
}

.gis-stats-agency-quarter-tab {
  min-width: 72px;
  padding: 0 var(--space-2);
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-month-tabs .gis-stats-agency-quarter-tab {
  min-width: 64px;
}

.gis-stats-agency-quarter-tab:hover,
.gis-stats-agency-play-button:hover {
  border-color: var(--border-strong);
  background: var(--muted);
}

.gis-stats-agency-quarter-tab.is-active {
  border-color: var(--primary);
  background: color-mix(in srgb, var(--primary) 14%, transparent);
}

.gis-stats-agency-play-button {
  gap: var(--space-2);
  min-width: 76px;
  padding: 0 var(--space-3);
}

.gis-stats-agency-play-button:disabled {
  opacity: 0.45;
  cursor: default;
}

.gis-stats-agency-play-button:disabled:hover {
  border-color: var(--border);
  background: transparent;
}

.gis-stats-agency-play-icon {
  position: relative;
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
}

.gis-stats-agency-play-icon::before {
  content: "";
  position: absolute;
  inset: 1px 0 1px 3px;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 8px solid currentColor;
}

.gis-stats-agency-play-button.is-playing .gis-stats-agency-play-icon::before,
.gis-stats-agency-play-button.is-playing .gis-stats-agency-play-icon::after {
  content: "";
  position: absolute;
  top: 1px;
  width: 3px;
  height: 10px;
  border: 0;
  background: currentColor;
}

.gis-stats-agency-play-button.is-playing .gis-stats-agency-play-icon::before {
  left: 2px;
}

.gis-stats-agency-play-button.is-playing .gis-stats-agency-play-icon::after {
  right: 2px;
}

.gis-stats-agency-dashboard {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.48fr);
  gap: var(--space-3);
  align-items: start;
}

.gis-stats-agency-dashboard--flow {
  grid-template-columns: minmax(300px, 0.78fr) minmax(420px, 1fr);
}

.gis-stats-agency-dashboard--structure {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gis-stats-agency-dashboard--spread {
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.38fr);
}

.gis-stats-agency-dashboard--living {
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.38fr);
}

.gis-stats-agency-dashboard--settlement {
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.38fr);
}

.gis-stats-agency-dashboard--building-registration {
  grid-template-columns: minmax(0, 1.18fr) minmax(320px, 0.52fr);
}

.gis-stats-agency-dashboard--age {
  grid-template-columns: minmax(420px, 1.05fr) minmax(360px, 0.95fr);
  align-items: stretch;
}

.gis-stats-agency-dashboard--economy {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gis-stats-agency-dashboard--enterprise {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-flow: row dense;
}

.gis-stats-agency-dashboard--industry {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-flow: row dense;
}

.gis-stats-agency-dashboard--composite {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-flow: row dense;
}

.gis-stats-agency-dashboard--composite .gis-stats-agency-panel--composite-alignment,
.gis-stats-agency-dashboard--composite .gis-stats-agency-panel--composite-accessibility,
.gis-stats-agency-dashboard--composite .gis-stats-agency-panel--composite-core,
.gis-stats-agency-dashboard--composite .gis-stats-agency-panel--composite-ecosystem {
  grid-column: span 3;
}

.gis-stats-agency-dashboard--composite .gis-stats-agency-panel--composite-complementarity,
.gis-stats-agency-dashboard--composite .gis-stats-agency-panel--composite-reliability {
  grid-column: span 6;
}

.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-trend {
  grid-column: span 7;
}

.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-industry {
  grid-column: span 5;
}

.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-city {
  grid-column: span 8;
}

.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-form {
  grid-column: span 4;
}

.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-matrix {
  grid-column: 1 / -1;
}

.gis-stats-agency-dashboard--industry .gis-stats-agency-panel--industry-place-summary {
  grid-column: 1 / -1;
}

.gis-stats-agency-dashboard--industry .gis-stats-agency-panel--industry-place-count,
.gis-stats-agency-dashboard--industry .gis-stats-agency-panel--industry-place-density,
.gis-stats-agency-dashboard--industry .gis-stats-agency-panel--industry-place-population {
  grid-column: span 4;
}

.gis-stats-agency-dashboard--industry .gis-stats-agency-section-divider--industry-air,
.gis-stats-agency-dashboard--industry .gis-stats-agency-panel--industry-air-summary {
  grid-column: 1 / -1;
}

.gis-stats-agency-dashboard--industry .gis-stats-agency-panel--industry-air-type,
.gis-stats-agency-dashboard--industry .gis-stats-agency-panel--industry-air-family,
.gis-stats-agency-dashboard--industry .gis-stats-agency-panel--industry-air-operator {
  grid-column: span 4;
}

.gis-stats-agency-dashboard--industry .gis-stats-agency-panel--industry-air-kind {
  grid-column: 1 / -1;
}

.gis-stats-agency-panel--enterprise-matrix .gis-stats-agency-panel-note {
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-matrix-scroll {
  position: relative;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: var(--space-1);
  border-radius: var(--radius-sm);
  overscroll-behavior-inline: contain;
  scroll-padding-inline: var(--space-3);
  scrollbar-width: thin;
  touch-action: pan-x;
  -webkit-overflow-scrolling: touch;
}

.gis-stats-agency-matrix-scroll:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}

.gis-stats-agency-matrix-scroll::-webkit-scrollbar {
  height: 8px;
}

.gis-stats-agency-matrix-scroll::-webkit-scrollbar-thumb {
  border-radius: var(--radius-full);
  background: color-mix(in srgb, var(--muted-foreground), transparent 58%);
}

@media (max-width: 640px) {
  .gis-stats-agency-matrix-scroll {
    margin-inline: calc(var(--space-1) * -1);
    padding-inline: var(--space-1);
    background:
      linear-gradient(to right, var(--card) 30%, color-mix(in srgb, var(--card), transparent 100%)),
      linear-gradient(to right, color-mix(in srgb, var(--card), transparent 100%), var(--card) 70%) 0 100%,
      radial-gradient(farthest-side at 0 50%, color-mix(in srgb, var(--foreground), transparent 82%), transparent),
      radial-gradient(farthest-side at 100% 50%, color-mix(in srgb, var(--foreground), transparent 82%), transparent) 0 100%;
    background-attachment: local, local, scroll, scroll;
    background-color: var(--card);
    background-repeat: no-repeat;
    background-size: 36px 100%, 36px 100%, 14px 100%, 14px 100%;
  }

  .gis-stats-agency-matrix-scroll::after {
    content: "";
    position: absolute;
    top: 0;
    right: var(--space-1);
    bottom: var(--space-1);
    width: var(--space-4);
    background: linear-gradient(to left, var(--card), transparent);
    pointer-events: none;
    opacity: 0.88;
  }

  .gis-stats-agency-matrix-scroll.is-scrollable::before {
    content: "↔";
    position: absolute;
    right: calc(var(--space-2) + var(--stats-scroll-fade-size, 1.25rem));
    top: var(--space-2);
    z-index: 1;
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 22px;
    border: 1px solid color-mix(in srgb, var(--border-strong) 70%, var(--border));
    border-radius: var(--radius-full);
    background: color-mix(in srgb, var(--card) 88%, transparent);
    color: var(--primary);
    font-size: var(--fs-xs);
    font-weight: 800;
    line-height: 1;
    pointer-events: none;
    opacity: 0.84;
    box-shadow: var(--shadow-xs);
  }

  .gis-stats-agency-matrix-scroll.has-scroll-left::before {
    opacity: 0;
  }
}

.gis-stats-agency-panel--enterprise-matrix .gis-series-chart.gis-stats-agency-chart {
  width: max-content;
  min-width: 100%;
  padding: var(--space-2) var(--space-3) var(--space-3);
  overflow: hidden;
}

@media (max-width: 640px) {
  .gis-stats-agency-panel--enterprise-matrix .gis-series-chart.gis-stats-agency-chart {
    padding-inline: var(--space-2);
  }
}

.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-representative,
.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-specialization,
.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-diversity,
.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-function,
.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-alignment,
.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-place-gap {
  grid-column: span 4;
}

.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-center,
.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-recent,
.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-enterprise-gap,
.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-complementarity {
  grid-column: span 6;
}

.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-trend .gis-echarts-canvas,
.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-industry .gis-echarts-canvas {
  height: 264px;
  min-height: 264px;
}

.gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel--enterprise-matrix .gis-echarts-canvas {
  height: 380px;
  min-width: 100%;
  min-height: 340px;
  max-width: none;
}

.gis-stats-agency-industry-place-toolbar {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  padding: var(--space-3) var(--space-3) 0;
  overflow-x: auto;
  scrollbar-width: thin;
}

.gis-stats-agency-industry-place-toolbar .gis-stats-agency-segmented {
  flex-wrap: wrap;
}

.gis-stats-agency-industry-place-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: var(--space-3);
  border-top: 1px solid var(--border);
}

.gis-stats-agency-industry-place-metrics > div {
  display: grid;
  align-content: space-between;
  gap: var(--space-2);
  min-width: 0;
  min-height: 78px;
  padding: var(--space-3);
  border-right: 1px solid var(--border);
}

.gis-stats-agency-industry-place-metrics > div:nth-child(4n) {
  border-right: none;
}

.gis-stats-agency-industry-place-metrics span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.gis-stats-agency-industry-place-metrics strong {
  min-width: 0;
  overflow: hidden;
  font-size: var(--fs-body-lg);
  line-height: var(--lh-body);
  font-variant-numeric: tabular-nums lining-nums;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#statsIndustryPlaceSelectedDensity,
#statsIndustryPlaceSelectedPopulation {
  display: -webkit-box;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.gis-stats-agency-air-metrics {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.gis-stats-agency-air-metrics > div:nth-child(4n) {
  border-right: 1px solid var(--border);
}

.gis-stats-agency-air-metrics > div:nth-child(6n) {
  border-right: none;
}

.gis-stats-agency-section-divider--enterprise-list {
  margin-top: var(--space-2);
}

.gis-stats-agency-enterprise-list {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-3);
}

.gis-stats-agency-enterprise-row {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-enterprise-row:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.gis-stats-agency-enterprise-row-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3);
  min-width: 0;
}

.gis-stats-agency-enterprise-row-head span {
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
  min-width: 0;
  overflow: hidden;
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-enterprise-row-head span em {
  flex: 0 0 auto;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-style: normal;
  font-weight: 900;
}

.gis-stats-agency-enterprise-row-head span b {
  min-width: 0;
  overflow: hidden;
  font-weight: inherit;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-enterprise-row-head strong {
  flex: 0 0 auto;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
  white-space: nowrap;
}

.gis-stats-agency-enterprise-stack {
  display: flex;
  width: 100%;
  height: 7px;
  overflow: hidden;
  border-radius: var(--radius-xs);
  background: var(--surface-hover);
}

.gis-stats-agency-enterprise-stack-segment {
  min-width: 2px;
  height: 100%;
}

.gis-stats-agency-enterprise-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  min-width: 0;
}

.gis-stats-agency-enterprise-tag {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  min-height: 24px;
  padding: 0 var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.gis-stats-agency-panel--enterprise-representative .gis-stats-agency-enterprise-tag:nth-child(n + 3) {
  display: none;
}

.gis-stats-agency-section-divider {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
}

.gis-stats-agency-section-divider::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--border);
}

.gis-stats-agency-section-divider--economy-list {
  margin-top: var(--space-2);
}

.gis-stats-agency-panel--block-credit {
  grid-column: 1 / -1;
}

.gis-stats-agency-block-credit-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.34fr);
  min-height: 288px;
}

.gis-stats-agency-panel--block-credit .gis-stats-agency-chart {
  border-right: 1px solid var(--border);
}

.gis-stats-agency-panel--block-credit .gis-echarts-canvas {
  height: 280px;
  min-height: 280px;
}

.gis-stats-agency-block-credit-summary {
  display: grid;
  grid-template-columns: 1fr;
  align-content: stretch;
  min-width: 0;
}

.gis-stats-agency-block-credit-summary > div {
  display: grid;
  align-content: center;
  gap: var(--space-1);
  min-width: 0;
  min-height: 96px;
  padding: var(--space-3);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-block-credit-summary > div:last-child {
  border-bottom: 0;
}

.gis-stats-agency-block-credit-summary span {
  min-width: 0;
  overflow: hidden;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-block-credit-summary strong {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--foreground);
  font-size: clamp(var(--fs-body), 1.1vw, var(--fs-body-lg));
  font-weight: 900;
  letter-spacing: 0;
}

.gis-stats-agency-panel--economy-map,
.gis-stats-agency-panel--economy-network,
.gis-stats-agency-panel--economy-scenario,
.gis-stats-agency-panel--job-commute {
  grid-column: 1 / -1;
}

.gis-stats-agency-panel--economy-matrix {
  grid-column: span 2;
}

.gis-stats-agency-panel--job-commute > .gis-stats-agency-panel-note {
  padding-bottom: var(--space-2);
}

.gis-stats-agency-job-commute-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--border);
}

.gis-stats-agency-job-commute-group {
  min-width: 0;
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-job-commute-group:nth-child(2n) {
  border-right: 0;
}

.gis-stats-agency-job-commute-group:nth-last-child(-n + 2) {
  border-bottom: 0;
}

.gis-stats-agency-job-commute-group h4 {
  margin: 0;
  padding: var(--space-3) var(--space-3) 0;
  color: var(--foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

.gis-stats-agency-economy-toolbar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-3);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-playback--compact {
  justify-content: flex-end;
  min-width: 0;
}

#statsCityEconomyPeriods {
  flex: 1 1 auto;
  flex-wrap: nowrap;
  justify-content: flex-start;
  max-width: 100%;
  overflow-x: auto;
  padding-bottom: 2px;
  scrollbar-width: thin;
}

#statsCityEconomyPeriods .gis-stats-agency-quarter-tab {
  flex: 0 0 auto;
  min-width: 64px;
}

.gis-stats-agency-segmented {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 2px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.gis-stats-agency-segmented button {
  min-height: var(--control-h-s);
  padding: 0 var(--space-2);
  border: 0;
  border-radius: calc(var(--radius-sm) - 2px);
  background: transparent;
  color: var(--muted-foreground);
  font: inherit;
  font-size: var(--fs-xs);
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
}

.gis-stats-agency-segmented button:hover {
  color: var(--foreground);
  background: var(--muted);
}

.gis-stats-agency-segmented button.is-active {
  color: var(--foreground);
  background: color-mix(in srgb, var(--primary) 16%, transparent);
}

.gis-stats-agency-economy-map-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  min-height: 360px;
}

.gis-stats-agency-economy-map {
  min-width: 0;
  padding: var(--space-3);
  border-right: 1px solid var(--border);
}

.gis-stats-agency-economy-map-inner {
  position: relative;
  width: 100%;
  height: 320px;
  overflow: hidden;
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
  background: var(--card);
  cursor: grab;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
}

.gis-stats-agency-economy-map-inner.is-grabbing {
  cursor: grabbing;
}

.gis-stats-agency-economy-map-inner svg {
  display: block;
  width: 100%;
  height: 100%;
  user-select: none;
  -webkit-user-select: none;
  -webkit-user-drag: none;
}

.gis-stats-agency-economy-map-inner text,
.gis-stats-agency-economy-map-inner tspan {
  user-select: none;
  -webkit-user-select: none;
  -webkit-user-drag: none;
}

.gis-stats-map-overlay-toolbar {
  position: absolute;
  top: 12px;
  right: 12px;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  background: color-mix(in srgb, var(--card) 94%, var(--surface));
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 3px;
  z-index: 10;
}

.gis-stats-map-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--control-h-s);
  min-width: var(--control-h-s);
  height: var(--control-h-s);
  min-height: var(--control-h-s);
  border: none;
  background: transparent;
  color: var(--muted-foreground);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background-color 140ms ease, color 140ms ease;
}

.gis-stats-map-btn:hover {
  background: color-mix(in srgb, var(--foreground) 8%, transparent);
  color: var(--foreground);
}

.gis-stats-map-btn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--primary) 58%, transparent);
  outline-offset: 2px;
}

.gis-stats-map-btn:active {
  background: color-mix(in srgb, var(--foreground) 15%, transparent);
}

.gis-stats-map-btn .material-symbols-outlined {
  font-size: 18px;
}

.gis-stats-map-node-group {
  cursor: pointer;
  outline: none;
}

.gis-vector-boundary-map-feature,
.gis-stats-economy-boundary {
  /* Blank-map boundaries without snapshot data remain passive reference geometry. */
  fill: rgba(62, 135, 232, 0.08);
  fill: color-mix(in srgb, var(--primary) 11%, transparent);
  stroke: rgba(218, 226, 238, 0.5);
  stroke: color-mix(in srgb, var(--foreground) 42%, transparent);
  stroke-width: 0.44px;
  opacity: 0.96;
  pointer-events: none;
  cursor: default;
  vector-effect: non-scaling-stroke;
}

.gis-vector-boundary-map-feature.is-weak,
.gis-stats-economy-boundary.is-weak {
  stroke-dasharray: 1.6 1.6;
}

.gis-vector-boundary-map-feature.is-unregistered-area,
.gis-stats-economy-boundary.is-unregistered-area {
  stroke-dasharray: 1.1 1.8;
}

.gis-vector-boundary-map-feature.is-none,
.gis-stats-economy-boundary.is-none {
  opacity: 0.86;
}

.gis-vector-boundary-map-feature.has-data,
.gis-stats-economy-boundary.has-data {
  stroke: color-mix(in srgb, var(--foreground) 46%, transparent);
  opacity: 0.96;
  pointer-events: visiblePainted;
  cursor: pointer;
}

.gis-vector-boundary-map-feature.is-data-disabled,
.gis-stats-economy-boundary.is-data-disabled {
  fill: color-mix(in srgb, var(--muted-foreground) 9%, transparent);
  stroke: color-mix(in srgb, var(--foreground) 58%, transparent);
  stroke-width: 0.4px;
  stroke-dasharray: 1 1.45;
  opacity: 0.68;
}

.gis-vector-boundary-map-feature.is-data-disabled.is-unregistered-area,
.gis-stats-economy-boundary.is-data-disabled.is-unregistered-area {
  fill: color-mix(in srgb, var(--muted-foreground) 12%, transparent);
  stroke: color-mix(in srgb, var(--foreground) 66%, transparent);
  stroke-dasharray: 0.8 1.1;
  opacity: 0.76;
}

/* Public blank boundary map */
body.gis-body.gis-boundary-map-page {
  --gis-boundary-map-surface: #86d5e4;
  --gis-boundary-map-land: #f7f9f8;
  --gis-boundary-map-land-hover: #eef8f3;
  --gis-boundary-map-water-fill: var(--gis-boundary-map-surface);
  --gis-boundary-map-parcel-fill: rgba(82, 125, 92, 0.18);
  --gis-boundary-map-parcel-stroke: rgba(49, 92, 65, 0.42);
  --gis-boundary-map-parcel-unlinked-fill: rgba(122, 132, 146, 0.24);
  --gis-boundary-map-parcel-unlinked-stroke: rgba(85, 98, 116, 0.54);
  --gis-boundary-map-parcel-label-stroke: rgba(255, 255, 255, 0.82);
  --gis-boundary-map-boundary: #b4c1cf;
  --gis-boundary-map-subdivision-boundary: rgba(43, 68, 96, 0.76);
  --gis-boundary-map-subdivision-boundary-casing: rgba(255, 255, 255, 0.78);
  --gis-boundary-map-local-boundary-casing: rgba(255, 255, 255, 0.86);
  --gis-boundary-map-theme-boundary-halo: rgba(255, 255, 255, 0.74);
  --gis-boundary-map-theme-boundary-strong: rgba(45, 58, 76, 0.78);
  --gis-boundary-map-theme-outline: rgba(55, 70, 91, 0.76);
  --gis-boundary-map-theme-empty: #edf2f7;
  --gis-boundary-map-theme-no-data: #f6f8fb;
  --gis-boundary-map-theme-no-data-hover: #eef2f7;
  --gis-boundary-map-boundary-strong: #7f93ac;
  --gis-boundary-map-grid: rgba(157, 178, 198, 0.32);
  --gis-boundary-map-axis: rgba(94, 116, 145, 0.34);
  --gis-boundary-map-control-surface: rgba(255, 255, 255, 0.9);
  --gis-boundary-map-control-border: rgba(146, 163, 181, 0.52);
  --gis-boundary-map-control-text: #4b5563;
  --gis-boundary-map-control-text-strong: #26313f;
  --gis-boundary-map-control-hover-surface: rgba(63, 81, 101, 0.08);
  --gis-boundary-map-control-active-surface: rgba(63, 81, 101, 0.16);
  --gis-boundary-map-panel-shadow: 0 10px 28px rgba(38, 49, 63, 0.12);
  --gis-boundary-map-panel-shadow-strong: 0 10px 24px rgba(38, 49, 63, 0.18), 0 0 0 1px rgba(38, 49, 63, 0.04);
  --gis-boundary-map-tooltip-surface: rgba(255, 255, 255, 0.94);
  --gis-boundary-map-tooltip-surface-strong: rgba(255, 255, 255, 0.98);
  --gis-boundary-map-label-surface: rgba(255, 255, 255, 0.9);
  --gis-boundary-map-label-stroke: rgba(255, 255, 255, 0.9);
  --gis-boundary-map-brand-count-text: rgba(31, 42, 56, 0.96);
  --gis-boundary-map-brand-count-stroke: rgba(35, 48, 62, 0.18);
  --gis-boundary-map-service-area-casing: rgba(255, 255, 255, 0.86);
  --gis-boundary-map-service-area-casing-strong: rgba(255, 255, 255, 0.96);
  --gis-boundary-map-service-area-line: rgba(37, 50, 66, 0.9);
  --gis-boundary-map-service-area-living-line: rgba(37, 72, 65, 0.92);
  --gis-boundary-map-service-area-selected-line: rgba(37, 50, 66, 0.95);
  --gis-boundary-map-service-label-text: rgba(31, 42, 56, 0.96);
  --gis-boundary-map-service-label-living-text: rgba(31, 74, 68, 0.98);
  --gis-boundary-map-service-label-selected-text: rgba(16, 30, 46, 0.98);
  --gis-boundary-map-natural-line-casing: color-mix(in srgb, var(--gis-boundary-map-surface) 84%, white 16%);
  --gis-boundary-map-natural-line: #2aa7c7;
  --gis-boundary-map-natural-river-line: #168fb3;
  --gis-boundary-map-brand-list-surface: color-mix(in srgb, var(--gis-boundary-map-control-surface) 76%, rgba(239, 246, 249, 0.86));
  --gis-boundary-map-brand-chip-surface: color-mix(in srgb, var(--brand-fill, rgba(127, 147, 172, 0.12)) 76%, rgba(255, 255, 255, 0.92));
  --gis-boundary-map-filter-active-surface: color-mix(in srgb, var(--metro-filter-fill, rgba(127, 147, 172, 0.12)) 70%, rgba(255, 255, 255, 0.9));
  --font-sans-locale: var(--font-sans-kr);
  width: 100vw;
  height: 100dvh;
  min-height: 100dvh;
  margin: 0;
  padding: 0;
  background: var(--gis-boundary-map-surface);
  touch-action: manipulation;
  overflow: hidden;
}

:root[data-theme="dark"] body.gis-body.gis-boundary-map-page,
:root[data-theme="hc-dark"] body.gis-body.gis-boundary-map-page {
  --gis-boundary-map-surface: #0f3f4b;
  --gis-boundary-map-land: #1c2a31;
  --gis-boundary-map-land-hover: #2a414b;
  --gis-boundary-map-water-fill: var(--gis-boundary-map-surface);
  --gis-boundary-map-parcel-fill: rgba(92, 165, 117, 0.25);
  --gis-boundary-map-parcel-stroke: rgba(160, 222, 181, 0.5);
  --gis-boundary-map-parcel-unlinked-fill: rgba(140, 156, 178, 0.25);
  --gis-boundary-map-parcel-unlinked-stroke: rgba(190, 205, 222, 0.48);
  --gis-boundary-map-parcel-label-stroke: rgba(8, 13, 18, 0.82);
  --gis-boundary-map-boundary: rgba(174, 202, 220, 0.62);
  --gis-boundary-map-subdivision-boundary: rgba(223, 239, 247, 0.66);
  --gis-boundary-map-subdivision-boundary-casing: rgba(5, 10, 15, 0.84);
  --gis-boundary-map-local-boundary-casing: rgba(4, 8, 12, 0.9);
  --gis-boundary-map-theme-boundary-halo: rgba(6, 11, 16, 0.7);
  --gis-boundary-map-theme-boundary-strong: rgba(234, 246, 251, 0.78);
  --gis-boundary-map-theme-outline: rgba(204, 225, 236, 0.66);
  --gis-boundary-map-theme-empty: #263943;
  --gis-boundary-map-theme-no-data: #203039;
  --gis-boundary-map-theme-no-data-hover: #304752;
  --gis-boundary-map-boundary-strong: #bed4e1;
  --gis-boundary-map-grid: rgba(158, 199, 211, 0.2);
  --gis-boundary-map-axis: rgba(181, 214, 225, 0.3);
  --gis-boundary-map-control-surface: rgba(12, 20, 28, 0.88);
  --gis-boundary-map-control-border: rgba(183, 211, 225, 0.34);
  --gis-boundary-map-control-text: #cfdee8;
  --gis-boundary-map-control-text-strong: #eef7fb;
  --gis-boundary-map-control-hover-surface: rgba(210, 232, 243, 0.14);
  --gis-boundary-map-control-active-surface: rgba(210, 232, 243, 0.2);
  --gis-boundary-map-panel-shadow: 0 14px 32px rgba(0, 0, 0, 0.32);
  --gis-boundary-map-panel-shadow-strong: 0 16px 36px rgba(0, 0, 0, 0.42), 0 0 0 1px rgba(210, 232, 243, 0.06);
  --gis-boundary-map-tooltip-surface: rgba(10, 17, 24, 0.92);
  --gis-boundary-map-tooltip-surface-strong: rgba(10, 17, 24, 0.96);
  --gis-boundary-map-label-surface: rgba(11, 18, 25, 0.9);
  --gis-boundary-map-label-stroke: rgba(6, 11, 16, 0.88);
  --gis-boundary-map-brand-count-text: rgba(237, 246, 250, 0.96);
  --gis-boundary-map-brand-count-stroke: rgba(218, 236, 246, 0.2);
  --gis-boundary-map-service-area-casing: rgba(7, 12, 17, 0.86);
  --gis-boundary-map-service-area-casing-strong: rgba(239, 248, 252, 0.78);
  --gis-boundary-map-service-area-line: rgba(224, 237, 247, 0.86);
  --gis-boundary-map-service-area-living-line: rgba(143, 213, 187, 0.9);
  --gis-boundary-map-service-area-selected-line: rgba(238, 248, 252, 0.92);
  --gis-boundary-map-service-label-text: rgba(234, 245, 250, 0.96);
  --gis-boundary-map-service-label-living-text: rgba(181, 235, 213, 0.96);
  --gis-boundary-map-service-label-selected-text: rgba(255, 255, 255, 0.98);
  --gis-boundary-map-natural-line-casing: rgba(7, 17, 24, 0.78);
  --gis-boundary-map-natural-line: #4bb7cd;
  --gis-boundary-map-natural-river-line: #57c5dc;
  --gis-boundary-map-brand-list-surface: color-mix(in srgb, var(--gis-boundary-map-control-surface) 84%, rgba(19, 34, 43, 0.84));
  --gis-boundary-map-brand-chip-surface: color-mix(in srgb, var(--brand-fill, rgba(127, 147, 172, 0.16)) 52%, rgba(11, 18, 25, 0.9));
  --gis-boundary-map-filter-active-surface: color-mix(in srgb, var(--metro-filter-fill, rgba(127, 147, 172, 0.12)) 38%, rgba(10, 17, 24, 0.88));
}

:root[data-theme="hc-dark"] body.gis-body.gis-boundary-map-page {
  --gis-boundary-map-land: #141e26;
  --gis-boundary-map-land-hover: #304954;
  --gis-boundary-map-boundary: rgba(231, 243, 249, 0.78);
  --gis-boundary-map-boundary-strong: #e6f3fa;
  --gis-boundary-map-control-border: rgba(238, 248, 252, 0.56);
  --gis-boundary-map-subdivision-boundary: rgba(238, 248, 252, 0.74);
}

body.gis-body.gis-boundary-map-page.gis-shell-standalone .gis-content,
body.gis-body.gis-boundary-map-page .page-wrapper.gis-page,
body.gis-body.gis-boundary-map-page .main-layout.gis-layout.gis-boundary-map-layout,
body.gis-body.gis-boundary-map-page .content-wrapper.gis-content.gis-content--standalone.gis-boundary-map-main,
body.gis-body.gis-boundary-map-page .content.gis-boundary-map-shell,
body.gis-body.gis-boundary-map-page .gis-boundary-map-workspace,
body.gis-body.gis-boundary-map-page .gis-boundary-map-stage,
body.gis-body.gis-boundary-map-page .gis-boundary-map-canvas,
body.gis-body.gis-boundary-map-page .gis-boundary-map-background,
body.gis-body.gis-boundary-map-page .gis-boundary-map-svg {
  position: fixed;
  inset: 0 !important;
  width: 100vw !important;
  max-width: none !important;
  height: 100dvh !important;
  min-height: 100dvh !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.gis-boundary-map-shell {
  font-family: 'Noto Sans KR', 'Apple SD Gothic Neo', 'Noto Sans', sans-serif;
}

.gis-boundary-map-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  gap: var(--space-4);
  align-items: center;
  min-height: 88px;
  padding: var(--space-3) 0;
  border-bottom: 1px solid color-mix(in srgb, var(--border), transparent 18%);
}

.gis-boundary-map-title-stack {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
}

.gis-boundary-map-kicker {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 900;
  letter-spacing: 0;
}

.gis-boundary-map-head h1 {
  margin: 0;
  color: var(--foreground);
  font-size: var(--fs-h2);
  font-weight: 900;
  line-height: var(--lh-h2);
}

.gis-boundary-map-head p {
  margin: 0;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  font-weight: 700;
  line-height: var(--lh-sm);
}

.gis-boundary-map-head p[data-status="error"] {
  color: var(--destructive);
}

.gis-boundary-map-workspace {
  display: block;
}

.gis-boundary-map-stage {
  border: 0;
  border-radius: 0;
  background: var(--gis-boundary-map-surface);
}

.gis-boundary-map-canvas {
  background: var(--gis-boundary-map-surface);
  cursor: grab;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
}

.gis-boundary-map-canvas.is-grabbing {
  cursor: grabbing;
}

.gis-boundary-map-svg,
.gis-boundary-map-canvas svg {
  z-index: 1;
  display: block;
  background: transparent;
  user-select: none;
  -webkit-user-select: none;
  -webkit-user-drag: none;
}

.gis-boundary-map-background {
  z-index: 0;
  background: var(--gis-boundary-map-surface);
  pointer-events: none;
}

.gis-boundary-map-grid-line {
  fill: none;
  stroke: var(--gis-boundary-map-grid);
  stroke-width: 0.12;
  vector-effect: non-scaling-stroke;
}

.gis-boundary-map-axis {
  fill: none;
  stroke: var(--gis-boundary-map-axis);
  stroke-width: 0.18;
  stroke-dasharray: 1.6 2.4;
  vector-effect: non-scaling-stroke;
}

.gis-boundary-map-feature {
  fill: var(--gis-boundary-feature-fill, var(--gis-boundary-map-land));
  stroke: none;
  stroke-width: 0;
  opacity: 1;
  pointer-events: visiblePainted;
  cursor: pointer;
  outline: none;
  filter: none;
  vector-effect: non-scaling-stroke;
  shape-rendering: geometricPrecision;
}

.gis-boundary-map-feature-coverage-underlay {
  fill: var(--gis-boundary-map-land);
  stroke: var(--gis-boundary-map-land);
  stroke-width: 2.4px;
  stroke-linejoin: round;
  stroke-linecap: round;
  stroke-miterlimit: 2;
  opacity: 1;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
  shape-rendering: geometricPrecision;
}

.gis-boundary-map-feature-coverage-underlay.is-hovered,
.gis-boundary-map-feature-coverage-underlay.is-selected {
  fill: var(--gis-boundary-feature-hover-fill, var(--gis-boundary-map-land-hover));
  stroke: var(--gis-boundary-feature-hover-fill, var(--gis-boundary-map-land-hover));
}

.gis-boundary-map-feature-seam-mask {
  fill: none;
  stroke: var(--gis-boundary-feature-fill, var(--gis-boundary-map-land));
  stroke-width: 2.8px;
  stroke-linejoin: round;
  stroke-linecap: round;
  stroke-miterlimit: 2;
  opacity: 1;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
  shape-rendering: geometricPrecision;
}

.gis-boundary-map-feature-seam-mask.is-hovered,
.gis-boundary-map-feature-seam-mask.is-selected {
  stroke: var(--gis-boundary-feature-hover-fill, var(--gis-boundary-map-land-hover));
}

.gis-boundary-map-feature.is-weak {
  stroke-dasharray: 1.6 1.6;
}

.gis-boundary-map-feature.is-none {
  opacity: 1;
}

.gis-boundary-map-feature.is-unregistered-area {
  fill: var(--gis-boundary-feature-fill, var(--gis-boundary-map-land));
  stroke: none;
  stroke-dasharray: none;
  opacity: 1;
}

.gis-boundary-map-feature.is-metropolitan-muted {
  opacity: 0.34;
}

.gis-boundary-map-feature.is-metropolitan-selected {
  opacity: 1;
  stroke-width: 0.72px;
}

.gis-boundary-map-feature.is-thematic-area {
  stroke-width: 1.05px;
}

.gis-boundary-map-feature.is-thematic-area.is-theme-no-data {
  stroke-dasharray: 1.4 1.4;
}

.gis-boundary-map-feature-interaction-halo {
  fill: none;
  stroke: transparent;
  stroke-width: 0;
  stroke-linejoin: round;
  stroke-linecap: round;
  stroke-miterlimit: 2;
  opacity: 0;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
  shape-rendering: geometricPrecision;
}

.gis-boundary-map-feature-interaction-halo.is-hovered,
.gis-boundary-map-feature-interaction-halo.is-selected {
  stroke: var(--gis-boundary-feature-hover-fill, var(--gis-boundary-map-land-hover));
  stroke-width: 2.4px;
  opacity: 0.9;
}

.gis-boundary-map-canvas.is-map-moving .gis-boundary-map-feature,
.gis-boundary-map-canvas.is-map-moving .gis-boundary-map-feature-coverage-underlay,
.gis-boundary-map-canvas.is-map-moving .gis-boundary-map-feature-seam-mask,
.gis-boundary-map-canvas.is-map-moving .gis-boundary-map-feature-interaction-halo,
.gis-boundary-map-canvas.is-map-moving .gis-boundary-map-linework-feature,
.gis-boundary-map-canvas.is-map-moving .gis-boundary-map-subdivision-coverage-feature,
.gis-boundary-map-canvas.is-map-moving .gis-boundary-map-natural-feature-area,
.gis-boundary-map-canvas.is-map-moving .gis-boundary-map-natural-feature-line-casing,
.gis-boundary-map-canvas.is-map-moving .gis-boundary-map-natural-feature-line,
.gis-boundary-map-canvas.is-map-moving .gis-boundary-map-parcel-feature,
.gis-boundary-map-canvas.is-map-moving .gis-boundary-map-parcel-label,
.gis-boundary-map-canvas.is-map-moving .gis-boundary-map-brand-count-label,
.gis-boundary-map-canvas.is-map-moving .gis-boundary-map-service-area-label,
.gis-boundary-map-canvas.is-map-moving .gis-boundary-map-subdivision-fill-feature,
.gis-boundary-map-canvas.is-map-moving .gis-boundary-map-subdivision-feature,
.gis-boundary-map-canvas.is-map-moving .gis-boundary-map-transit-line-feature {
  shape-rendering: optimizeSpeed;
}

.gis-boundary-map-subdivision-feature {
  fill: none;
  stroke: var(--gis-boundary-map-subdivision-boundary);
  stroke-width: 0.4px;
  stroke-linejoin: round;
  stroke-linecap: round;
  opacity: 0.9;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.gis-boundary-map-subdivision-feature.is-general_district {
  stroke-dasharray: 6 3;
  stroke-width: 0.6px;
}

.gis-boundary-map-subdivision-feature.is-eup_admin,
.gis-boundary-map-subdivision-feature.is-myeon_admin,
.gis-boundary-map-subdivision-feature.is-dong_admin {
  stroke: var(--gis-boundary-map-subdivision-boundary);
  stroke-width: 0.4px;
  stroke-dasharray: 2 2.5;
  opacity: 0.9;
}

.gis-boundary-map-subdivision-coverage-feature {
  fill: var(--gis-boundary-map-land);
  stroke: none;
  stroke-width: 0;
  opacity: 1;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
  shape-rendering: geometricPrecision;
}

.gis-boundary-map-subdivision-fill-feature {
  fill: transparent;
  stroke: none;
  stroke-width: 0;
  opacity: 1;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
  shape-rendering: geometricPrecision;
}

.gis-boundary-map-subdivision-fill-feature.is-parent-local-missing {
  fill: var(--gis-boundary-feature-fill, var(--gis-boundary-map-land));
}

.gis-boundary-map-subdivision-fill-feature.is-hovered,
.gis-boundary-map-subdivision-fill-feature.is-selected {
  fill: var(--gis-boundary-feature-hover-fill, var(--gis-boundary-map-land-hover));
}

.gis-boundary-map-subdivision-hit-feature {
  fill: rgba(255, 255, 255, 0.001);
  stroke: none;
  stroke-linejoin: round;
  stroke-linecap: round;
  opacity: 1;
  pointer-events: visiblePainted;
  cursor: pointer;
  vector-effect: non-scaling-stroke;
}

.gis-boundary-map-subdivision-hit-feature:hover,
.gis-boundary-map-subdivision-hit-feature:focus,
.gis-boundary-map-subdivision-hit-feature:focus-visible,
.gis-boundary-map-subdivision-hit-feature:active,
.gis-boundary-map-subdivision-hit-feature.is-hovered,
.gis-boundary-map-subdivision-hit-feature.is-selected {
  outline: none;
  fill: rgba(255, 255, 255, 0.001);
  stroke: none;
  stroke-width: 0;
}

.gis-boundary-map-subdivision-hit-feature.is-eup_admin:hover,
.gis-boundary-map-subdivision-hit-feature.is-eup_admin:focus,
.gis-boundary-map-subdivision-hit-feature.is-eup_admin:focus-visible,
.gis-boundary-map-subdivision-hit-feature.is-eup_admin:active,
.gis-boundary-map-subdivision-hit-feature.is-eup_admin.is-hovered,
.gis-boundary-map-subdivision-hit-feature.is-eup_admin.is-selected,
.gis-boundary-map-subdivision-hit-feature.is-myeon_admin:hover,
.gis-boundary-map-subdivision-hit-feature.is-myeon_admin:focus,
.gis-boundary-map-subdivision-hit-feature.is-myeon_admin:focus-visible,
.gis-boundary-map-subdivision-hit-feature.is-myeon_admin:active,
.gis-boundary-map-subdivision-hit-feature.is-myeon_admin.is-hovered,
.gis-boundary-map-subdivision-hit-feature.is-myeon_admin.is-selected,
.gis-boundary-map-subdivision-hit-feature.is-dong_admin:hover,
.gis-boundary-map-subdivision-hit-feature.is-dong_admin:focus,
.gis-boundary-map-subdivision-hit-feature.is-dong_admin:focus-visible,
.gis-boundary-map-subdivision-hit-feature.is-dong_admin:active,
.gis-boundary-map-subdivision-hit-feature.is-dong_admin.is-hovered,
.gis-boundary-map-subdivision-hit-feature.is-dong_admin.is-selected {
  fill: rgba(255, 255, 255, 0.001);
  stroke: none;
  stroke-width: 0;
}

.gis-boundary-map-linework-feature {
  fill: none;
  stroke: var(--gis-boundary-linework-stroke, var(--gis-boundary-map-boundary));
  stroke-width: 0.82px;
  stroke-linejoin: round;
  stroke-linecap: butt;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
  shape-rendering: geometricPrecision;
}

.gis-boundary-map-linework-feature--local {
  stroke: var(--gis-boundary-linework-stroke, var(--gis-boundary-map-boundary));
  stroke-linecap: round;
}

.gis-boundary-map-linework-feature--local-casing {
  stroke: var(--gis-boundary-map-local-boundary-casing);
  stroke-width: 2.2px;
  stroke-linecap: round;
  opacity: 0.9;
}

.gis-boundary-map-linework-feature--subdivision {
  stroke: var(--gis-boundary-map-subdivision-boundary);
  stroke-width: 0.4px;
  stroke-linecap: round;
  opacity: 0.9;
}

.gis-boundary-map-linework-feature--subdivision-casing {
  stroke: var(--gis-boundary-map-subdivision-boundary-casing);
  stroke-width: 0.9px;
  stroke-linecap: round;
  opacity: 0.78;
}

.gis-boundary-map-linework-feature--subdivision.is-general-district {
  stroke-dasharray: 6 3;
  stroke-width: 0.6px;
}

.gis-boundary-map-linework-feature--subdivision-casing.is-general-district {
  stroke-dasharray: 6 3;
  stroke-width: 1.3px;
}

.gis-boundary-map-linework-feature--subdivision.is-lower-subdivision {
  stroke: var(--gis-boundary-map-subdivision-boundary);
  stroke-width: 0.4px;
  stroke-dasharray: 2 2.5;
  opacity: 0.9;
}

.gis-boundary-map-linework-feature--subdivision-casing.is-lower-subdivision {
  stroke-width: 0.9px;
  stroke-dasharray: 2 2.5;
  opacity: 0.78;
}

.gis-boundary-map-parcels {
  pointer-events: none;
}

.gis-boundary-map-parcel-feature {
  fill: var(--gis-boundary-map-parcel-fill);
  stroke: var(--gis-boundary-map-parcel-stroke);
  stroke-width: 0.42px;
  stroke-linejoin: round;
  stroke-linecap: round;
  opacity: 0.88;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
  shape-rendering: geometricPrecision;
}

.gis-boundary-map-parcel-feature.is-unlinked {
  fill: var(--gis-boundary-map-parcel-unlinked-fill);
  stroke: var(--gis-boundary-map-parcel-unlinked-stroke);
  stroke-dasharray: 2 1.5;
  opacity: 0.82;
}

.gis-boundary-map-parcel-feature.is-assigned {
  opacity: 0.9;
}

.gis-boundary-map-parcel-label {
  fill: color-mix(in srgb, var(--gis-boundary-map-control-text-strong) 94%, black 6%);
  font-family: var(--font-sans-locale), 'Noto Sans KR', sans-serif;
  font-size: 0.04px;
  font-weight: 900;
  letter-spacing: 0;
  text-anchor: middle;
  dominant-baseline: central;
  paint-order: stroke fill;
  stroke: var(--gis-boundary-map-parcel-label-stroke);
  stroke-width: 0.007px;
  stroke-linejoin: round;
  stroke-linecap: round;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
}

.gis-boundary-map-brand-counts {
  pointer-events: none;
}

.gis-boundary-map-brand-count-label {
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
}

.gis-boundary-map-brand-count-badge {
  fill: var(--gis-boundary-map-label-surface);
  stroke: var(--gis-boundary-map-brand-count-stroke);
  stroke-width: 0.01px;
}

.gis-boundary-map-brand-count-segment {
  fill: var(--brand-segment-color, #64748b);
  opacity: 0.92;
}

.gis-boundary-map-brand-count-label text {
  fill: var(--gis-boundary-map-brand-count-text);
  font-family: var(--font-sans-locale), 'Noto Sans KR', sans-serif;
  font-weight: 950;
  letter-spacing: 0;
  text-anchor: middle;
  dominant-baseline: central;
  paint-order: stroke fill;
  stroke: var(--gis-boundary-map-label-stroke);
  stroke-linejoin: round;
  stroke-linecap: round;
}

.gis-boundary-map-natural-features {
  pointer-events: none;
}

.gis-boundary-map-natural-feature-area {
  fill: var(--gis-boundary-map-water-fill);
  stroke: none;
  stroke-width: 0;
  opacity: 1;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
  shape-rendering: geometricPrecision;
}

.gis-boundary-map-natural-feature-area.is-river,
.gis-boundary-map-natural-feature-area.is-stream,
.gis-boundary-map-natural-feature-area.is-water_surface {
  opacity: 1;
}

.gis-boundary-map-natural-feature-line-casing {
  fill: none;
  stroke: var(--gis-boundary-map-natural-line-casing);
  stroke-width: 3.9px;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-opacity: 0.86;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
  shape-rendering: geometricPrecision;
}

.gis-boundary-map-natural-feature-line {
  fill: none;
  stroke: var(--gis-boundary-map-natural-line);
  stroke-width: 1.9px;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-opacity: 0.96;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
  shape-rendering: geometricPrecision;
}

.gis-boundary-map-natural-feature-line.is-river {
  stroke: var(--gis-boundary-map-natural-river-line);
  stroke-width: 2.35px;
  stroke-opacity: 0.98;
}

.gis-boundary-map-transit-lines {
  pointer-events: none;
}

.gis-boundary-map-transit-line-feature {
  fill: none;
  stroke: var(--gis-boundary-transit-line-color, #ffbc00);
  stroke-width: var(--gis-boundary-transit-line-width, 2.6px);
  stroke-linejoin: round;
  stroke-linecap: round;
  stroke-opacity: var(--gis-boundary-transit-line-opacity, 0.9);
  pointer-events: none;
  vector-effect: non-scaling-stroke;
  shape-rendering: geometricPrecision;
}

.gis-boundary-map-transit-line-feature.is-inactive {
  stroke-dasharray: 4 3;
  opacity: 0.44;
}

.gis-boundary-map-transit-platform-feature {
  fill: none;
  stroke: var(--gis-boundary-transit-line-color, #ffbc00);
  stroke-width: var(--gis-boundary-transit-platform-width, 7px);
  stroke-linejoin: round;
  stroke-linecap: butt;
  stroke-opacity: var(--gis-boundary-transit-platform-opacity, 0.92);
  pointer-events: none;
  vector-effect: non-scaling-stroke;
  shape-rendering: geometricPrecision;
}

.gis-boundary-map-transit-platform-feature.is-derived {
  stroke-dasharray: 3 2;
  stroke-opacity: 0.7;
}

.gis-boundary-map-transit-station {
  fill: var(--gis-boundary-map-control-surface);
  stroke: var(--gis-boundary-transit-line-color, #ffbc00);
  stroke-width: 1.2px;
  stroke-opacity: 0.94;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
  shape-rendering: geometricPrecision;
}

.gis-boundary-map-transit-station.is-positioned {
  fill: var(--gis-boundary-transit-line-color, #ffbc00);
  stroke: var(--gis-boundary-map-control-surface);
}

.gis-boundary-map-transit-station.is-station-point {
  stroke-dasharray: 1.6 1.2;
  opacity: 0.82;
}

.gis-boundary-map-service-area-boundaries {
  pointer-events: none;
}

.gis-boundary-map-service-area-boundary-casing,
.gis-boundary-map-service-area-boundary-feature {
  fill: none;
  stroke-linejoin: round;
  stroke-linecap: round;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
  shape-rendering: geometricPrecision;
}

.gis-boundary-map-service-area-boundary-casing {
  stroke: var(--gis-boundary-map-service-area-casing);
  stroke-width: 2.9px;
  stroke-opacity: 0.92;
}

.gis-boundary-map-service-area-boundary-feature {
  stroke: var(--gis-boundary-map-service-area-line);
  stroke-width: 1.45px;
  stroke-opacity: 0.96;
}

.gis-boundary-map-service-area-boundary-casing.is-living {
  stroke-width: 3.1px;
}

.gis-boundary-map-service-area-boundary-feature.is-living {
  stroke: var(--gis-boundary-map-service-area-living-line);
  stroke-width: 1.6px;
  stroke-dasharray: 5 2.4;
}

.gis-boundary-map-service-area-boundary-casing.is-hovered,
.gis-boundary-map-service-area-boundary-casing.is-selected {
  stroke: var(--gis-boundary-map-service-area-casing-strong);
  stroke-width: 4.2px;
  stroke-opacity: 1;
}

.gis-boundary-map-service-area-boundary-feature.is-hovered,
.gis-boundary-map-service-area-boundary-feature.is-selected {
  stroke: color-mix(in srgb, var(--gis-boundary-feature-hover-fill, var(--gis-boundary-map-land-hover)) 42%, var(--gis-boundary-map-service-area-selected-line));
  stroke-width: 2.35px;
  stroke-opacity: 1;
}

.gis-boundary-map-service-area-label {
  fill: var(--gis-boundary-map-service-label-text);
  font-family: var(--font-sans-locale), 'Noto Sans KR', sans-serif;
  font-size: 0.08px;
  font-weight: 900;
  letter-spacing: 0;
  text-anchor: middle;
  dominant-baseline: central;
  paint-order: stroke fill;
  stroke: var(--gis-boundary-map-label-stroke);
  stroke-width: 0.016px;
  stroke-linejoin: round;
  stroke-linecap: round;
  pointer-events: visiblePainted;
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
}

.gis-boundary-map-service-area-label[data-boundary-service-area-category="living"] {
  fill: var(--gis-boundary-map-service-label-living-text);
}

.gis-boundary-map-service-area-label.is-hovered,
.gis-boundary-map-service-area-label.is-selected {
  fill: var(--gis-boundary-map-service-label-selected-text);
  stroke: var(--gis-boundary-map-service-area-casing-strong);
}

.gis-boundary-map-outline-feature {
  fill: none;
  stroke: var(--gis-boundary-feature-stroke, var(--gis-boundary-map-boundary));
  stroke-width: 0.58px;
  stroke-linejoin: round;
  stroke-linecap: round;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.gis-boundary-map-outline-feature.is-thematic-area {
  stroke-width: 0.46px;
}

.gis-boundary-map-outline-feature.is-metropolitan-muted {
  opacity: 0.34;
}

.gis-boundary-map-outline-feature.is-metropolitan-selected {
  stroke-width: 0.78px;
}

.gis-boundary-map-feature:hover,
.gis-boundary-map-feature:focus,
.gis-boundary-map-feature:focus-visible,
.gis-boundary-map-feature:active,
.gis-boundary-map-feature.is-hovered,
.gis-boundary-map-feature.is-selected {
  outline: none;
  filter: none;
  fill: var(--gis-boundary-feature-hover-fill, var(--gis-boundary-map-land-hover));
  stroke: none;
  stroke-width: 0;
}

.gis-boundary-map-loading {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--control-h-m);
  padding: 0 var(--space-3);
  border: 1px solid var(--gis-boundary-map-control-border);
  border-radius: var(--radius-md);
  background: var(--gis-boundary-map-control-surface);
  color: var(--gis-boundary-map-control-text);
  font-size: var(--fs-sm);
  font-weight: 800;
}

.gis-boundary-map-loading[hidden] {
  display: none;
}

.gis-boundary-map-hover-label {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 5;
  display: grid;
  gap: 2px;
  max-width: min(260px, calc(100vw - 32px));
  padding: 6px 9px;
  border: 1px solid color-mix(in srgb, var(--gis-boundary-map-boundary-strong) 42%, var(--gis-boundary-map-control-border));
  border-radius: var(--radius-md);
  background: var(--gis-boundary-map-tooltip-surface);
  box-shadow: var(--gis-boundary-map-panel-shadow);
  color: var(--gis-boundary-map-control-text-strong);
  font-size: var(--fs-xs);
  font-weight: 850;
  line-height: var(--lh-xs);
  letter-spacing: 0;
  white-space: nowrap;
  pointer-events: none;
}

.gis-boundary-map-hover-label strong,
.gis-boundary-map-hover-label span {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gis-boundary-map-hover-label span {
  color: var(--gis-boundary-map-control-text);
  font-size: 0.92em;
  font-weight: 750;
}

.gis-boundary-map-hover-label.is-pinned {
  border-color: color-mix(in srgb, var(--gis-boundary-map-boundary-strong) 58%, var(--gis-boundary-map-control-border));
  background: var(--gis-boundary-map-tooltip-surface-strong);
  box-shadow: var(--gis-boundary-map-panel-shadow-strong);
}

.gis-boundary-map-hover-label[hidden] {
  display: none;
}

@media (max-width: 640px) {
  .gis-boundary-map-hover-label {
    padding: 8px 10px;
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
  }
}

.gis-boundary-map-theme-legend {
  position: absolute;
  left: var(--space-5);
  bottom: var(--space-5);
  z-index: 4;
  display: grid;
  gap: 6px;
  width: min(300px, calc(100vw - 40px));
  padding: 10px;
  border: 1px solid var(--gis-boundary-map-control-border);
  border-radius: var(--radius-md);
  background: var(--gis-boundary-map-control-surface);
  color: var(--gis-boundary-map-control-text);
  box-shadow: var(--gis-boundary-map-panel-shadow);
  pointer-events: none;
}

.gis-boundary-map-theme-legend[hidden] {
  display: none;
}

.gis-boundary-map-theme-legend .gis-boundary-map-legend-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.gis-boundary-map-theme-legend .gis-boundary-map-legend-head strong {
  min-width: 0;
  overflow: hidden;
  color: var(--gis-boundary-map-control-text-strong);
  font-size: var(--fs-xs);
  font-weight: 900;
  line-height: var(--lh-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-boundary-map-theme-legend .gis-boundary-map-legend-head span,
.gis-boundary-map-theme-legend .gis-boundary-map-legend-meta,
.gis-boundary-map-theme-legend .gis-boundary-map-legend-labels {
  color: var(--gis-boundary-map-control-text);
  font-size: var(--fs-2xs);
  font-weight: 750;
  line-height: var(--lh-xs);
}

.gis-boundary-map-theme-legend .gis-boundary-map-legend-scale {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  height: 10px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--gis-boundary-map-control-border) 80%, transparent);
  border-radius: var(--radius-sm);
}

.gis-boundary-map-theme-legend .gis-boundary-map-legend-scale span {
  background: var(--legend-color, var(--muted));
}

.gis-boundary-map-theme-legend .gis-boundary-map-legend-labels {
  display: flex;
  justify-content: space-between;
  gap: var(--space-2);
}

.gis-boundary-map-theme-legend .gis-boundary-map-legend-labels span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-boundary-map-theme-legend .gis-boundary-map-legend-brands {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  min-width: 0;
}

.gis-boundary-map-theme-legend .gis-boundary-map-legend-brands span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  min-height: 20px;
  padding: 0 6px;
  border: 1px solid color-mix(in srgb, var(--brand-color, var(--gis-boundary-map-control-border)) 44%, var(--gis-boundary-map-control-border));
  border-radius: var(--radius-sm);
  background: var(--gis-boundary-map-brand-chip-surface);
  color: var(--gis-boundary-map-control-text-strong);
  font-size: 11px;
  font-weight: 800;
  line-height: var(--lh-xs);
  white-space: nowrap;
}

.gis-boundary-map-theme-legend .gis-boundary-map-legend-brands i {
  flex: 0 0 auto;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--brand-color, #64748b);
}

.gis-boundary-map-theme-legend .gis-boundary-map-legend-brands strong {
  color: color-mix(in srgb, var(--gis-boundary-map-control-text) 76%, transparent);
  font-size: 10px;
  font-weight: 850;
  font-variant-numeric: tabular-nums lining-nums;
}

@media (max-width: 640px) {
  .gis-boundary-map-theme-legend {
    left: var(--space-3);
    bottom: calc(var(--space-3) + 44px);
    width: min(300px, calc(100vw - 24px));
  }
}

.gis-boundary-map-toolbar {
  position: absolute;
  top: calc(var(--main-header-height) + var(--space-4));
  right: var(--space-5);
  z-index: 4;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  padding: 3px;
  border: 1px solid var(--gis-boundary-map-control-border);
  border-radius: var(--radius-md);
  background: var(--gis-boundary-map-control-surface);
}

.gis-boundary-map-filters {
  position: absolute;
  left: var(--space-5);
  top: calc(var(--main-header-height) + var(--space-4));
  z-index: 4;
  display: grid;
  gap: var(--space-1);
  width: max-content;
  max-width: min(360px, calc(100vw - 112px));
  pointer-events: none;
}

.gis-boundary-map-filter-trigger,
.gis-boundary-map-filter-panel {
  pointer-events: auto;
}

.gis-boundary-map-filter-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: max-content;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid var(--gis-boundary-map-control-border);
  border-radius: var(--radius-md);
  background: var(--gis-boundary-map-control-surface);
  color: var(--gis-boundary-map-control-text);
  font: inherit;
  font-size: var(--fs-xs);
  font-weight: 850;
  line-height: var(--lh-xs);
  letter-spacing: 0;
  cursor: pointer;
}

.gis-boundary-map-filter-trigger:hover,
.gis-boundary-map-filter-trigger:focus-visible,
.gis-boundary-map-filter-trigger.is-open,
.gis-boundary-map-filter-trigger.has-filter {
  border-color: color-mix(in srgb, var(--gis-boundary-map-boundary-strong) 56%, var(--gis-boundary-map-control-border));
  color: var(--gis-boundary-map-control-text-strong);
}

.gis-boundary-map-filter-trigger .material-symbols-outlined {
  font-size: 18px;
}

.gis-boundary-map-filter-trigger strong {
  color: color-mix(in srgb, var(--gis-boundary-map-control-text) 76%, transparent);
  font-size: 11px;
  font-weight: 850;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-boundary-map-filter-panel {
  display: grid;
  gap: var(--space-3);
  width: min(360px, calc(100vw - 40px));
  max-height: min(760px, calc(100dvh - var(--main-header-height) - 76px));
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: var(--space-3);
  border: 1px solid var(--gis-boundary-map-control-border);
  border-radius: var(--radius-md);
  background: var(--gis-boundary-map-control-surface);
  box-shadow: var(--gis-boundary-map-panel-shadow);
}

.gis-boundary-map-filter-panel[hidden] {
  display: none;
}

.gis-boundary-map-filter-section {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
}

.gis-boundary-map-filter-section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.gis-boundary-map-filter-section-head strong {
  color: var(--gis-boundary-map-control-text-strong);
  font-size: var(--fs-xs);
  font-weight: 900;
  line-height: var(--lh-xs);
}

.gis-boundary-map-filter-section-head span {
  color: color-mix(in srgb, var(--gis-boundary-map-control-text) 70%, transparent);
  font-size: 11px;
  font-weight: 750;
  line-height: var(--lh-xs);
  white-space: nowrap;
}

.gis-boundary-map-mode,
.gis-boundary-map-filter-list {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
}

.gis-boundary-map-mode {
  width: max-content;
  padding: 3px;
  border: 1px solid var(--gis-boundary-map-control-border);
  border-radius: var(--radius-md);
  background: var(--gis-boundary-map-control-surface);
}

.gis-boundary-map-mode button,
.gis-boundary-map-filter-list button {
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--gis-boundary-map-control-text);
  font: inherit;
  font-size: var(--fs-xs);
  font-weight: 800;
  line-height: var(--lh-xs);
  letter-spacing: 0;
  white-space: nowrap;
  cursor: pointer;
}

.gis-boundary-map-mode button {
  min-height: 28px;
  padding: 0 var(--space-2);
}

.gis-boundary-map-mode button:hover,
.gis-boundary-map-mode button:focus-visible,
.gis-boundary-map-mode button.is-active {
  background: var(--gis-boundary-map-control-hover-surface);
  color: var(--gis-boundary-map-control-text-strong);
}

.gis-boundary-map-mode button:disabled {
  cursor: default;
  opacity: 0.48;
}

.gis-boundary-map-layer-toggle {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  min-height: 42px;
  padding: var(--space-1-5) var(--space-2);
  border: 1px solid var(--gis-boundary-map-control-border);
  border-radius: var(--radius-md);
  background: var(--gis-boundary-map-control-surface);
  color: var(--gis-boundary-map-control-text);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.gis-boundary-map-layer-toggle:hover,
.gis-boundary-map-layer-toggle:focus-visible,
.gis-boundary-map-layer-toggle.is-active {
  border-color: color-mix(in srgb, var(--gis-boundary-map-boundary-strong) 56%, var(--gis-boundary-map-control-border));
  color: var(--gis-boundary-map-control-text-strong);
}

.gis-boundary-map-layer-toggle:disabled {
  cursor: default;
  opacity: 0.52;
}

.gis-boundary-map-layer-toggle-icon {
  font-size: 19px;
}

.gis-boundary-map-layer-toggle-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.gis-boundary-map-layer-toggle-copy strong,
.gis-boundary-map-layer-toggle-copy small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-boundary-map-layer-toggle-copy strong {
  color: var(--gis-boundary-map-control-text-strong);
  font-size: var(--fs-xs);
  font-weight: 850;
  line-height: var(--lh-xs);
}

.gis-boundary-map-layer-toggle-copy small {
  color: color-mix(in srgb, var(--gis-boundary-map-control-text) 70%, transparent);
  font-size: 11px;
  font-weight: 750;
  line-height: var(--lh-xs);
}

.gis-boundary-map-layer-toggle-switch {
  position: relative;
  display: inline-flex;
  width: 34px;
  height: 20px;
  border: 1px solid var(--gis-boundary-map-control-border);
  border-radius: var(--radius-full);
  background: var(--gis-boundary-map-control-hover-surface);
}

.gis-boundary-map-layer-toggle-switch::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 14px;
  height: 14px;
  border-radius: var(--radius-full);
  background: var(--gis-boundary-map-control-text);
  transition: transform 160ms ease, background-color 160ms ease;
}

.gis-boundary-map-layer-toggle.is-active .gis-boundary-map-layer-toggle-switch {
  border-color: color-mix(in srgb, var(--gis-boundary-map-boundary-strong) 60%, var(--gis-boundary-map-control-border));
  background: var(--gis-boundary-map-control-active-surface);
}

.gis-boundary-map-layer-toggle.is-active .gis-boundary-map-layer-toggle-switch::after {
  transform: translateX(14px);
  background: var(--gis-boundary-map-control-text-strong);
}

.gis-boundary-map-filter-list {
  flex-wrap: wrap;
}

.gis-boundary-map-filter-list button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  padding: 0 9px;
  border: 1px solid var(--gis-boundary-map-control-border);
  background: var(--gis-boundary-map-control-surface);
}

.gis-boundary-map-filter-list button:hover,
.gis-boundary-map-filter-list button:focus-visible,
.gis-boundary-map-filter-list button.is-active {
  border-color: color-mix(in srgb, var(--metro-filter-color, var(--gis-boundary-map-boundary-strong)) 58%, var(--gis-boundary-map-control-border));
  background: var(--gis-boundary-map-filter-active-surface);
  color: var(--gis-boundary-map-control-text-strong);
}

.gis-boundary-map-filter-list button.is-active {
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--metro-filter-color, var(--gis-boundary-map-boundary-strong)) 42%, transparent);
}

.gis-boundary-map-filter-swatch {
  flex: 0 0 auto;
  width: 10px;
  height: 10px;
  border: 1px solid color-mix(in srgb, var(--metro-filter-color, var(--gis-boundary-map-boundary-strong)) 68%, transparent);
  border-radius: 999px;
  background: var(--metro-filter-fill, rgba(127, 147, 172, 0.18));
}

.gis-boundary-map-filter-swatch.is-all {
  background: linear-gradient(135deg, #034384 0 25%, #e5543c 25% 50%, #0074ff 50% 75%, #0e5a2f 75% 100%);
}

.gis-boundary-map-filter-list strong {
  color: color-mix(in srgb, var(--gis-boundary-map-control-text) 78%, transparent);
  font-size: 11px;
  font-weight: 800;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-boundary-map-display-section {
  order: -2;
}

.gis-boundary-map-brand-section {
  min-width: 0;
  order: -1;
}

.gis-boundary-map-brand-trigger {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 7px;
  width: 100%;
  min-height: 44px;
  padding: 6px 8px;
  border: 1px solid var(--gis-boundary-map-control-border);
  border-radius: var(--radius-md);
  background: var(--gis-boundary-map-control-surface);
  color: var(--gis-boundary-map-control-text);
  font: inherit;
  font-size: var(--fs-xs);
  font-weight: 850;
  line-height: var(--lh-xs);
  letter-spacing: 0;
  text-align: left;
  cursor: pointer;
}

.gis-boundary-map-brand-trigger:hover,
.gis-boundary-map-brand-trigger:focus-visible,
.gis-boundary-map-brand-trigger.is-open {
  border-color: color-mix(in srgb, var(--gis-boundary-map-boundary-strong) 56%, var(--gis-boundary-map-control-border));
  background: color-mix(in srgb, var(--gis-boundary-map-control-surface) 74%, var(--gis-boundary-map-control-hover-surface));
  color: var(--gis-boundary-map-control-text-strong);
}

.gis-boundary-map-brand-trigger-icon,
.gis-boundary-map-brand-trigger-caret {
  flex: 0 0 auto;
  color: color-mix(in srgb, var(--gis-boundary-map-control-text) 74%, transparent);
  font-size: 18px;
  line-height: 1;
}

.gis-boundary-map-brand-trigger-caret {
  transition: transform 160ms ease;
}

.gis-boundary-map-brand-trigger.is-open .gis-boundary-map-brand-trigger-caret {
  transform: rotate(180deg);
}

.gis-boundary-map-brand-trigger-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.gis-boundary-map-brand-trigger-copy small,
.gis-boundary-map-brand-trigger-copy span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-boundary-map-brand-trigger-copy small {
  color: color-mix(in srgb, var(--gis-boundary-map-control-text) 68%, transparent);
  font-size: 10px;
  font-weight: 800;
  line-height: 1.1;
}

.gis-boundary-map-brand-trigger-copy span {
  color: var(--gis-boundary-map-control-text-strong);
  font-size: var(--fs-xs);
  font-weight: 900;
  line-height: var(--lh-xs);
}

.gis-boundary-map-brand-trigger strong {
  min-width: 32px;
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(63, 81, 101, 0.08);
  color: color-mix(in srgb, var(--gis-boundary-map-control-text) 84%, transparent);
  font-size: 11px;
  font-weight: 850;
  line-height: 1.35;
  text-align: center;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-boundary-map-brand-list {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
  padding: var(--space-2);
  border: 1px solid color-mix(in srgb, var(--gis-boundary-map-control-border) 80%, transparent);
  border-radius: var(--radius-md);
  background: var(--gis-boundary-map-brand-list-surface);
}

.gis-boundary-map-brand-list[hidden] {
  display: none;
}

.gis-boundary-map-brand-list-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.gis-boundary-map-brand-list-head span {
  min-width: 0;
  overflow: hidden;
  color: color-mix(in srgb, var(--gis-boundary-map-control-text) 72%, transparent);
  font-size: 11px;
  font-weight: 750;
  line-height: var(--lh-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-boundary-map-brand-list-head strong {
  flex: 0 0 auto;
  color: color-mix(in srgb, var(--gis-boundary-map-control-text) 78%, transparent);
  font-size: 10px;
  font-weight: 850;
  line-height: var(--lh-xs);
  white-space: nowrap;
}

.gis-boundary-map-brand-quick-actions {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1);
  width: 100%;
  min-width: 0;
}

.gis-boundary-map-brand-quick-actions button {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 27px;
  padding: 0 8px;
  border: 1px solid var(--gis-boundary-map-control-border);
  border-radius: var(--radius-sm);
  background: var(--gis-boundary-map-control-surface);
  color: var(--gis-boundary-map-control-text);
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  line-height: var(--lh-xs);
  letter-spacing: 0;
  white-space: nowrap;
  cursor: pointer;
}

.gis-boundary-map-brand-quick-actions button strong {
  min-width: 14px;
  color: color-mix(in srgb, currentColor 72%, transparent);
  font-size: 10px;
  font-weight: 850;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-boundary-map-brand-quick-actions button:hover,
.gis-boundary-map-brand-quick-actions button:focus-visible,
.gis-boundary-map-brand-quick-actions button.is-active {
  border-color: color-mix(in srgb, var(--gis-boundary-map-boundary-strong) 45%, var(--gis-boundary-map-control-border));
  background: var(--gis-boundary-map-control-hover-surface);
  color: var(--gis-boundary-map-control-text-strong);
}

.gis-boundary-map-brand-selection-actions {
  display: flex;
  justify-content: flex-end;
  min-width: 0;
}

.gis-boundary-map-brand-selection-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 28px;
  padding: 0 8px;
  border: 1px solid color-mix(in srgb, var(--gis-boundary-map-control-border) 86%, transparent);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--gis-boundary-map-control-surface) 92%, transparent);
  color: var(--gis-boundary-map-control-text);
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  line-height: var(--lh-xs);
  letter-spacing: 0;
  white-space: nowrap;
  cursor: pointer;
}

.gis-boundary-map-brand-selection-actions button:hover,
.gis-boundary-map-brand-selection-actions button:focus-visible {
  border-color: color-mix(in srgb, var(--gis-boundary-map-boundary-strong) 38%, var(--gis-boundary-map-control-border));
  color: var(--gis-boundary-map-control-text-strong);
}

.gis-boundary-map-brand-selection-actions button:disabled {
  cursor: default;
  opacity: 0.46;
}

.gis-boundary-map-brand-selection-actions .material-symbols-outlined {
  font-size: 16px;
  line-height: 1;
}

.gis-boundary-map-brand-options {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
}

.gis-boundary-map-brand-option {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  width: 100%;
  min-height: 40px;
  padding: 5px 8px;
  border: 1px solid var(--gis-boundary-map-control-border);
  border-radius: var(--radius-sm);
  background: var(--gis-boundary-map-control-surface);
  color: var(--gis-boundary-map-control-text);
  font: inherit;
  letter-spacing: 0;
  text-align: left;
  cursor: pointer;
}

.gis-boundary-map-brand-option:hover,
.gis-boundary-map-brand-option:focus-visible,
.gis-boundary-map-brand-option.is-active {
  border-color: color-mix(in srgb, var(--brand-color, var(--gis-boundary-map-boundary-strong)) 58%, var(--gis-boundary-map-control-border));
  background: color-mix(in srgb, var(--brand-fill, rgba(127, 147, 172, 0.12)) 72%, rgba(255, 255, 255, 0.9));
  color: var(--gis-boundary-map-control-text-strong);
}

.gis-boundary-map-brand-option:disabled {
  cursor: default;
  opacity: 0.52;
}

.gis-boundary-map-brand-option.is-active {
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand-color, var(--gis-boundary-map-boundary-strong)) 42%, transparent);
}

.gis-boundary-map-brand-check {
  display: grid;
  place-items: center;
  width: 17px;
  height: 17px;
  border: 1px solid color-mix(in srgb, var(--brand-color, var(--gis-boundary-map-boundary-strong)) 54%, var(--gis-boundary-map-control-border));
  border-radius: 999px;
  color: color-mix(in srgb, var(--brand-color, var(--gis-boundary-map-boundary-strong)) 86%, var(--gis-boundary-map-control-text));
  font-size: 14px;
  line-height: 1;
}

.gis-boundary-map-brand-option.is-active .gis-boundary-map-brand-check {
  background: var(--brand-color, var(--gis-boundary-map-boundary-strong));
  color: #fff;
}

.gis-boundary-map-brand-swatch {
  flex: 0 0 auto;
  width: 10px;
  height: 10px;
  border: 1px solid color-mix(in srgb, var(--brand-color, var(--gis-boundary-map-boundary-strong)) 68%, transparent);
  border-radius: 999px;
  background: var(--brand-fill, rgba(127, 147, 172, 0.18));
}

.gis-boundary-map-brand-option-copy {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.gis-boundary-map-brand-option-copy strong,
.gis-boundary-map-brand-option-copy small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-boundary-map-brand-option-copy strong {
  color: var(--gis-boundary-map-control-text-strong);
  font-size: var(--fs-xs);
  font-weight: 900;
  line-height: var(--lh-xs);
}

.gis-boundary-map-brand-option-copy small {
  color: color-mix(in srgb, var(--gis-boundary-map-control-text) 66%, transparent);
  font-size: 10px;
  font-weight: 750;
  line-height: 1.1;
}

.gis-boundary-map-brand-count {
  color: color-mix(in srgb, var(--gis-boundary-map-control-text) 78%, transparent);
  font-size: 11px;
  font-weight: 800;
  line-height: var(--lh-xs);
  white-space: nowrap;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-boundary-map-brand-empty {
  margin: 0;
  padding: var(--space-2);
  border: 1px dashed color-mix(in srgb, var(--gis-boundary-map-control-border) 85%, transparent);
  border-radius: var(--radius-sm);
  color: color-mix(in srgb, var(--gis-boundary-map-control-text) 70%, transparent);
  font-size: 11px;
  font-weight: 750;
  line-height: var(--lh-xs);
  text-align: center;
}

.gis-boundary-map-brand-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.gis-boundary-map-brand-pagination > span {
  color: color-mix(in srgb, var(--gis-boundary-map-control-text) 74%, transparent);
  font-size: 11px;
  font-weight: 850;
  line-height: var(--lh-xs);
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-boundary-map-brand-pagination button {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 28px;
  border: 1px solid var(--gis-boundary-map-control-border);
  border-radius: var(--radius-sm);
  background: var(--gis-boundary-map-control-surface);
  color: var(--gis-boundary-map-control-text);
  cursor: pointer;
}

.gis-boundary-map-brand-pagination button:hover,
.gis-boundary-map-brand-pagination button:focus-visible {
  border-color: color-mix(in srgb, var(--gis-boundary-map-boundary-strong) 42%, var(--gis-boundary-map-control-border));
  color: var(--gis-boundary-map-control-text-strong);
}

.gis-boundary-map-brand-pagination button:disabled {
  cursor: default;
  opacity: 0.45;
}

.gis-boundary-map-brand-pagination .material-symbols-outlined {
  font-size: 18px;
  line-height: 1;
}

.gis-boundary-map-filter-label::before {
  content: attr(data-label);
}

body.gis-body.gis-boundary-map-page .block-app-header.header {
  --gis-map-liquid-surface-top: rgba(255, 255, 255, 0.86);
  --gis-map-liquid-surface-bottom: rgba(255, 255, 255, 0.68);
  --gis-map-liquid-border: rgba(31, 42, 56, 0.12);
  --gis-map-liquid-border-strong: rgba(31, 42, 56, 0.22);
  --gis-map-liquid-highlight: rgba(31, 42, 56, 0.08);
  --gis-map-liquid-highlight-soft: rgba(31, 42, 56, 0.04);
  --gis-map-liquid-text: rgba(23, 31, 42, 0.94);
  --gis-map-liquid-text-muted: rgba(23, 31, 42, 0.7);
  --gis-map-liquid-text-faint: rgba(23, 31, 42, 0.5);
  --gis-map-liquid-shadow: 0 10px 32px rgba(31, 42, 56, 0.12);
  --block-text-inverse: var(--gis-map-liquid-text);
  --block-text-inverse-strong: rgba(15, 23, 42, 0.98);
  --block-text-inverse-soft: rgba(15, 23, 42, 0.84);
  --block-text-inverse-muted: var(--gis-map-liquid-text-muted);
  --block-text-inverse-subtle: var(--gis-map-liquid-text-muted);
  --block-text-inverse-faint: var(--gis-map-liquid-text-faint);
  --block-text-inverse-dim: rgba(15, 23, 42, 0.46);
  --block-border-control: var(--gis-map-liquid-border);
  --block-border-control-hover: var(--gis-map-liquid-border-strong);
  --block-surface-glass: linear-gradient(180deg, var(--gis-map-liquid-surface-top) 0%, var(--gis-map-liquid-surface-bottom) 100%);
  z-index: calc(var(--z-header) + 2);
  background: linear-gradient(180deg, var(--gis-map-liquid-surface-top) 0%, var(--gis-map-liquid-surface-bottom) 100%);
  border-bottom-color: var(--gis-map-liquid-border);
  box-shadow: var(--gis-map-liquid-shadow);
  backdrop-filter: blur(18px) saturate(135%);
  -webkit-backdrop-filter: blur(18px) saturate(135%);
}

:root[data-theme="dark"] body.gis-body.gis-boundary-map-page .block-app-header.header,
:root[data-theme="hc-dark"] body.gis-body.gis-boundary-map-page .block-app-header.header {
  --gis-map-liquid-surface-top: rgba(7, 11, 17, 0.78);
  --gis-map-liquid-surface-bottom: rgba(7, 11, 17, 0.58);
  --gis-map-liquid-border: rgba(255, 255, 255, 0.18);
  --gis-map-liquid-border-strong: rgba(255, 255, 255, 0.28);
  --gis-map-liquid-highlight: rgba(255, 255, 255, 0.1);
  --gis-map-liquid-highlight-soft: rgba(255, 255, 255, 0.04);
  --gis-map-liquid-text: rgba(255, 255, 255, 0.94);
  --gis-map-liquid-text-muted: rgba(255, 255, 255, 0.72);
  --gis-map-liquid-text-faint: rgba(255, 255, 255, 0.54);
  --gis-map-liquid-shadow: var(--block-shadow-header);
  --block-text-inverse: var(--gis-map-liquid-text);
  --block-text-inverse-strong: rgba(255, 255, 255, 0.98);
  --block-text-inverse-soft: rgba(255, 255, 255, 0.86);
  --block-text-inverse-muted: var(--gis-map-liquid-text-muted);
  --block-text-inverse-subtle: var(--gis-map-liquid-text-muted);
  --block-text-inverse-faint: var(--gis-map-liquid-text-faint);
  --block-text-inverse-dim: rgba(255, 255, 255, 0.48);
}

body.gis-body.gis-boundary-map-page .block-app-header.header.is-surface {
  background: linear-gradient(180deg, var(--gis-map-liquid-surface-top) 0%, var(--gis-map-liquid-surface-bottom) 100%);
  border-bottom-color: var(--gis-map-liquid-border);
  box-shadow: var(--gis-map-liquid-shadow);
}

body.gis-body.gis-boundary-map-page .block-app-header .header-inner {
  position: relative;
  isolation: isolate;
  width: min(100%, var(--main-header-max-width));
  height: 100%;
  min-height: 0;
  margin: 0 auto;
  padding: 0 var(--block-page-inline-padding, 24px);
  align-items: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--gis-map-liquid-text);
  overflow: visible;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transform: none;
  backface-visibility: hidden;
}

body.gis-body.gis-boundary-map-page .block-app-header .header-inner::before,
body.gis-body.gis-boundary-map-page .block-app-header .header-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  pointer-events: none;
}

body.gis-body.gis-boundary-map-page .block-app-header .header-inner::before {
  display: none;
}

body.gis-body.gis-boundary-map-page .block-app-header .header-inner::after {
  display: none;
}

body.gis-body.gis-boundary-map-page .block-app-header .header-inner > *,
body.gis-body.gis-boundary-map-page .block-app-header .nav-left > *,
body.gis-body.gis-boundary-map-page .block-app-header .nav-center > *,
body.gis-body.gis-boundary-map-page .block-app-header .nav-right > * {
  position: relative;
  z-index: 1;
}

body.gis-body.gis-boundary-map-page .block-app-header .nav-center {
  justify-self: center;
  gap: var(--space-1);
  min-height: 40px;
  padding: 0;
}

body.gis-body.gis-boundary-map-page .block-app-header .nav-left {
  gap: var(--space-2);
  min-height: 40px;
  padding-inline: 0;
  border-right: 0;
}

body.gis-body.gis-boundary-map-page .block-app-header .nav-right {
  display: flex;
  flex: 0 0 auto;
  gap: var(--space-1);
  min-height: 40px;
  padding-inline: 0;
  border-left: 0;
  overflow: visible;
}

body.gis-body.gis-boundary-map-page .block-app-header .logo-divider {
  background: color-mix(in srgb, var(--gis-map-liquid-text) 18%, transparent);
}

body.gis-body.gis-boundary-map-page .block-app-header .block-app-context-link {
  color: var(--gis-map-liquid-text);
  font-weight: 750;
}

body.gis-body.gis-boundary-map-page .block-app-header .nav-link {
  min-height: 32px;
  padding-inline: var(--space-2);
  border-radius: var(--radius-full);
  color: var(--gis-map-liquid-text-muted);
  letter-spacing: 0;
}

body.gis-body.gis-boundary-map-page .block-app-header .nav-link:hover,
body.gis-body.gis-boundary-map-page .block-app-header .nav-link:focus-visible {
  background: var(--gis-map-liquid-highlight);
  color: var(--gis-map-liquid-text);
}

body.gis-body.gis-boundary-map-page .block-app-header .nav-link[aria-current="page"] {
  background: transparent;
  color: var(--gis-map-liquid-text);
  font-weight: 750;
}

body.gis-body.gis-boundary-map-page .block-app-header .nav-link::after {
  display: none;
}

body.gis-body.gis-boundary-map-page .block-app-header .pc-auth-widget,
body.gis-body.gis-boundary-map-page .block-app-header .pc-notifications-widget {
  color: var(--gis-map-liquid-text);
}

body.gis-body.gis-boundary-map-page .block-app-header .pc-auth-widget .pc-auth-chip,
body.gis-body.gis-boundary-map-page .block-app-header .pc-auth-widget .pc-auth-login,
body.gis-body.gis-boundary-map-page .block-app-header .pc-notifications-widget button {
  border-color: transparent;
  background: transparent;
  color: var(--gis-map-liquid-text);
  box-shadow: none;
}

:root[data-theme="hc-light"] body.gis-body.gis-boundary-map-page .block-app-header.header,
:root[data-theme="hc-dark"] body.gis-body.gis-boundary-map-page .block-app-header.header {
  --gis-map-liquid-surface-top: var(--card);
  --gis-map-liquid-surface-bottom: var(--card);
  --gis-map-liquid-border: var(--border-strong);
  --gis-map-liquid-border-strong: var(--border-strong);
  --gis-map-liquid-highlight: transparent;
  --gis-map-liquid-highlight-soft: transparent;
  --gis-map-liquid-text: var(--foreground);
  --gis-map-liquid-text-muted: var(--muted-foreground);
  --gis-map-liquid-text-faint: var(--muted-foreground);
  --gis-map-liquid-shadow: none;
  --block-text-inverse: var(--foreground);
  --block-text-inverse-strong: var(--foreground);
  --block-text-inverse-soft: var(--foreground);
  --block-text-inverse-muted: var(--muted-foreground);
  --block-text-inverse-subtle: var(--muted-foreground);
  --block-text-inverse-faint: var(--muted-foreground);
  --block-text-inverse-dim: var(--muted-foreground);
  --block-border-control: var(--border-strong);
  --block-border-control-hover: var(--foreground);
  --block-surface-glass: var(--card);
}

:root[data-theme="hc-light"] body.gis-body.gis-boundary-map-page .block-app-header .header-inner,
:root[data-theme="hc-light"] body.gis-body.gis-boundary-map-page .block-app-header .nav-left,
:root[data-theme="hc-light"] body.gis-body.gis-boundary-map-page .block-app-header .nav-center,
:root[data-theme="hc-light"] body.gis-body.gis-boundary-map-page .block-app-header .nav-right,
:root[data-theme="hc-dark"] body.gis-body.gis-boundary-map-page .block-app-header .header-inner,
:root[data-theme="hc-dark"] body.gis-body.gis-boundary-map-page .block-app-header .nav-left,
:root[data-theme="hc-dark"] body.gis-body.gis-boundary-map-page .block-app-header .nav-center,
:root[data-theme="hc-dark"] body.gis-body.gis-boundary-map-page .block-app-header .nav-right {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

:root[data-theme="hc-light"] body.gis-body.gis-boundary-map-page .block-app-header .header-inner::before,
:root[data-theme="hc-light"] body.gis-body.gis-boundary-map-page .block-app-header .header-inner::after,
:root[data-theme="hc-light"] body.gis-body.gis-boundary-map-page .block-app-header .nav-left::before,
:root[data-theme="hc-light"] body.gis-body.gis-boundary-map-page .block-app-header .nav-center::before,
:root[data-theme="hc-light"] body.gis-body.gis-boundary-map-page .block-app-header .nav-right::before,
:root[data-theme="hc-light"] body.gis-body.gis-boundary-map-page .block-app-header .nav-left::after,
:root[data-theme="hc-light"] body.gis-body.gis-boundary-map-page .block-app-header .nav-center::after,
:root[data-theme="hc-light"] body.gis-body.gis-boundary-map-page .block-app-header .nav-right::after,
:root[data-theme="hc-dark"] body.gis-body.gis-boundary-map-page .block-app-header .header-inner::before,
:root[data-theme="hc-dark"] body.gis-body.gis-boundary-map-page .block-app-header .header-inner::after,
:root[data-theme="hc-dark"] body.gis-body.gis-boundary-map-page .block-app-header .nav-left::before,
:root[data-theme="hc-dark"] body.gis-body.gis-boundary-map-page .block-app-header .nav-center::before,
:root[data-theme="hc-dark"] body.gis-body.gis-boundary-map-page .block-app-header .nav-right::before,
:root[data-theme="hc-dark"] body.gis-body.gis-boundary-map-page .block-app-header .nav-left::after,
:root[data-theme="hc-dark"] body.gis-body.gis-boundary-map-page .block-app-header .nav-center::after,
:root[data-theme="hc-dark"] body.gis-body.gis-boundary-map-page .block-app-header .nav-right::after {
  display: none;
}

@media (min-width: 1025px) {
  body.gis-body.gis-boundary-map-page .block-app-header .header-inner {
    grid-template-columns: minmax(160px, auto) minmax(0, 1fr) minmax(112px, auto);
    padding-inline: 8px;
    column-gap: 8px;
  }

  body.gis-body.gis-boundary-map-page .block-app-header .nav-left {
    grid-column: 1;
  }

  body.gis-body.gis-boundary-map-page .block-app-header .nav-center {
    grid-column: 2;
    justify-self: center;
  }

  body.gis-body.gis-boundary-map-page .block-app-header .nav-right {
    grid-column: 3;
    justify-self: end;
  }
}

.gis-boundary-map-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--gis-boundary-map-control-text);
  cursor: pointer;
}

.gis-boundary-map-btn:hover {
  background: rgba(63, 81, 101, 0.08);
  color: var(--gis-boundary-map-control-text-strong);
}

.gis-boundary-map-btn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--primary) 58%, transparent);
  outline-offset: 2px;
}

.gis-boundary-map-btn .material-symbols-outlined {
  font-size: 18px;
}

.gis-boundary-map-panel {
  display: grid;
  align-content: start;
  gap: var(--space-3);
  min-width: 0;
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--card), var(--background) 12%);
}

.gis-boundary-map-panel-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.gis-boundary-map-panel-head h2 {
  margin: 0;
  color: var(--foreground);
  font-size: var(--fs-h5);
  font-weight: 900;
  line-height: var(--lh-h5);
}

.gis-boundary-map-panel-head span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
  white-space: nowrap;
}

.gis-boundary-map-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
}

.gis-boundary-map-metrics div {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
  padding: var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--muted), transparent 62%);
}

.gis-boundary-map-metrics span,
.gis-boundary-map-detail dt {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
  line-height: var(--lh-xs);
}

.gis-boundary-map-metrics strong {
  color: var(--foreground);
  font-size: var(--fs-body-lg);
  font-weight: 900;
  line-height: var(--lh-body);
  font-variant-numeric: tabular-nums lining-nums;
  overflow-wrap: anywhere;
}

.gis-boundary-map-legend {
  display: grid;
  gap: var(--space-2);
  padding-block: var(--space-1);
}

.gis-boundary-map-legend span {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  font-weight: 750;
}

.gis-boundary-map-legend i {
  width: 24px;
  height: 0;
  border-top: 2px solid var(--gis-boundary-map-boundary-strong);
}

.gis-boundary-map-legend i.is-unregistered {
  border-top-color: var(--gis-boundary-map-boundary-strong);
  border-top-style: solid;
}

.gis-boundary-map-legend i.is-weak {
  border-top-style: dashed;
}

.gis-boundary-map-detail {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
  padding-top: var(--space-2);
  border-top: 1px solid var(--border);
}

.gis-boundary-map-detail p {
  margin: 0;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  font-weight: 700;
  line-height: var(--lh-sm);
}

.gis-boundary-map-detail-title {
  display: grid;
  gap: var(--space-1);
}

.gis-boundary-map-detail-title span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 900;
}

.gis-boundary-map-detail-title strong {
  color: var(--foreground);
  font-size: var(--fs-body-lg);
  font-weight: 900;
  line-height: var(--lh-body);
  overflow-wrap: anywhere;
}

.gis-boundary-map-detail dl {
  display: grid;
  gap: var(--space-2);
  margin: 0;
}

.gis-boundary-map-detail dl div {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  gap: var(--space-2);
  align-items: baseline;
}

.gis-boundary-map-detail dd {
  margin: 0;
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 800;
  line-height: var(--lh-sm);
  overflow-wrap: anywhere;
}

@media (max-width: 1024px) {
  body.gis-body.gis-boundary-map-page.gis-shell-standalone .gis-content {
    padding: 0;
  }

  .gis-boundary-map-head {
    grid-template-columns: 1fr;
    align-items: start;
    min-height: 0;
    gap: var(--space-3);
  }

  .gis-boundary-map-workspace {
    inset: 0;
    display: block;
    min-height: 0;
  }

  .gis-boundary-map-stage {
    height: 100%;
    min-height: 0;
  }

  body.gis-body.gis-boundary-map-page .block-app-header .header-inner {
    width: min(820px, calc(100vw - 24px));
    padding-inline: 6px;
  }

  body.gis-body.gis-boundary-map-page .block-app-header .nav-center {
    display: flex;
    flex: 0 0 auto;
    gap: var(--space-1);
    margin-left: auto;
  }

  body.gis-body.gis-boundary-map-page .block-app-header .nav-link {
    min-height: 32px;
    padding-inline: var(--space-1-5);
    font-size: var(--fs-xs);
  }

  .gis-boundary-map-toolbar {
    top: calc(var(--main-header-height) + var(--space-3));
    right: var(--space-3);
  }

  .gis-boundary-map-filters {
    left: var(--space-3);
    top: calc(var(--main-header-height) + var(--space-3));
    max-width: calc(100vw - 76px);
  }

}

@media (max-width: 640px) {
  body.gis-body.gis-boundary-map-page.gis-shell-standalone .gis-content {
    padding: 0;
  }

  .gis-boundary-map-stage {
    height: 100%;
    min-height: 0;
  }

  .gis-boundary-map-metrics {
    grid-template-columns: 1fr;
  }

  .gis-boundary-map-detail dl div {
    grid-template-columns: 1fr;
    gap: 2px;
  }

  body.gis-body.gis-boundary-map-page .block-app-header .header-inner {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    height: 100%;
    min-height: 0;
    margin-top: 0;
    padding-inline: var(--space-4);
    column-gap: var(--space-1);
  }

  body.gis-body.gis-boundary-map-page .block-app-header .nav-left {
    flex: 1 1 auto;
    gap: var(--space-1);
    min-height: 0;
    min-width: 0;
    padding-inline: 0;
    border-right: 0;
  }

  body.gis-body.gis-boundary-map-page .block-app-header .nav-logo {
    height: 20px;
  }

  body.gis-body.gis-boundary-map-page .block-app-header .nav-center {
    display: none;
  }

  body.gis-body.gis-boundary-map-page .block-app-header .nav-right {
    display: none;
    flex: 0 0 auto;
    min-height: 0;
    margin-left: auto;
    padding-inline: 0;
    border-left: 0;
  }

  body.gis-body.gis-boundary-map-page .block-app-header .block-app-header-context {
    display: inline-flex;
    gap: 6px;
    min-width: 0;
  }

  body.gis-body.gis-boundary-map-page .block-app-header .logo-divider {
    display: inline-block;
    flex: 0 0 auto;
    margin-inline: 1px;
  }

  body.gis-body.gis-boundary-map-page .block-app-header .block-app-context-link {
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 800;
  }

  body.gis-body.gis-boundary-map-page .block-app-header .nav-right > .pc-auth-widget {
    display: none;
  }

  body.gis-body.gis-boundary-map-page .block-app-header .nav-right > .pc-notifications-widget {
    display: none;
  }

  .gis-boundary-map-filters {
    top: auto;
    right: var(--space-3);
    bottom: var(--space-3);
    left: var(--space-3);
    width: auto;
    max-width: none;
  }

  .gis-boundary-map-filter-panel {
    width: 100%;
    max-height: min(360px, calc(100dvh - var(--main-header-height) - 56px));
    overflow-y: auto;
  }

  .gis-boundary-map-mode,
  .gis-boundary-map-filter-list,
  .gis-boundary-map-brand-quick-actions {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .gis-boundary-map-mode::-webkit-scrollbar,
  .gis-boundary-map-filter-list::-webkit-scrollbar,
  .gis-boundary-map-brand-quick-actions::-webkit-scrollbar {
    display: none;
  }

  .gis-boundary-map-parcel-label {
    font-weight: 850;
  }

  .gis-boundary-map-service-area-label {
    font-weight: 850;
  }

  .gis-boundary-map-brand-count-label text {
    font-weight: 900;
  }

  body.gis-body.gis-boundary-map-page .block-app-header .nav-link {
    padding-inline: 5px;
    font-size: 11px;
  }

}

@media (max-width: 640px) and (max-height: 520px) {
  .gis-boundary-map-filter-panel {
    max-height: min(280px, 58dvh);
  }
}

@media (min-width: 641px) and (max-height: 420px) {
  .gis-boundary-map-filter-panel {
    max-height: min(240px, 52dvh);
  }
}

.gis-stats-agency-economy-map-hit {
  fill: transparent;
  pointer-events: auto;
  cursor: pointer;
}

.gis-stats-agency-economy-map-point {
  stroke: var(--card);
  stroke-width: 0.24;
  opacity: 0.86;
  pointer-events: none;
  transition: opacity 120ms ease, stroke-width 120ms ease;
}

.gis-stats-map-node-group:hover .gis-stats-agency-economy-map-point,
.gis-stats-map-node-group:focus-visible .gis-stats-agency-economy-map-point {
  opacity: 1;
}

.gis-stats-map-node-group:focus-visible .gis-stats-agency-economy-map-point {
  stroke: var(--accent);
  stroke-width: 0.52;
}

.gis-stats-map-node-group.is-active .gis-stats-agency-economy-map-point {
  opacity: 1;
  stroke: var(--accent);
  stroke-width: 0.42;
}

.gis-stats-map-hover-label {
  font-size: 1.85px;
  font-weight: 500;
  fill: var(--foreground);
  paint-order: stroke fill;
  stroke: var(--card);
  stroke-width: 0.22px;
  stroke-linejoin: round;
  stroke-linecap: round;
  opacity: 0;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
  transition: opacity 150ms ease;
}

.gis-stats-map-node-group:hover .gis-stats-map-hover-label,
.gis-stats-map-node-group.is-active .gis-stats-map-hover-label,
.gis-stats-map-hover-label.is-visible {
  opacity: 1;
}

.gis-stats-map-hover-label.is-active {
  font-size: 2.15px;
  font-weight: 700;
  fill: var(--accent);
  stroke: var(--card);
  stroke-width: 0.28px;
  filter: drop-shadow(0 1px 3px color-mix(in srgb, var(--background) 72%, transparent));
}

.gis-stats-map-axis-line {
  stroke: var(--border);
  stroke-width: 0.35px;
  stroke-dasharray: 1.6 2.2;
  opacity: 0.55;
}

.gis-stats-agency-economy-detail {
  height: 346px;
  min-height: 0;
  border-bottom: 0;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
}

.gis-stats-agency-economy-network-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  min-height: 430px;
}

.gis-stats-agency-panel--economy-network .gis-stats-agency-chart {
  border-right: 1px solid var(--border);
}

.gis-stats-agency-panel--economy-network .gis-echarts-canvas {
  height: 360px;
  min-height: 360px;
}

.gis-stats-agency-economy-network-detail {
  align-content: start;
  height: 384px;
  min-height: 0;
  border-bottom: 0;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
}

.gis-stats-agency-map-detail.gis-stats-agency-economy-detail,
.gis-stats-agency-map-detail.gis-stats-agency-economy-network-detail {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.gis-stats-agency-economy-detail .gis-stats-agency-detail-block--selected,
.gis-stats-agency-economy-network-detail .gis-stats-agency-detail-block--selected {
  min-block-size: max-content;
  border-color: color-mix(in srgb, var(--primary) 24%, var(--border));
  border-left-width: 2px;
  background: color-mix(in srgb, var(--card) 96%, var(--primary) 4%);
}

.gis-stats-agency-economy-detail .gis-stats-agency-detail-selected-head,
.gis-stats-agency-economy-network-detail .gis-stats-agency-detail-selected-head {
  border-bottom-color: color-mix(in srgb, var(--primary) 18%, var(--border));
  background: transparent;
}

.gis-stats-agency-economy-detail .gis-stats-agency-detail-tag,
.gis-stats-agency-economy-network-detail .gis-stats-agency-detail-tag {
  border: 1px solid color-mix(in srgb, var(--primary) 44%, var(--border));
  background: color-mix(in srgb, var(--primary) 12%, transparent);
  color: color-mix(in srgb, var(--primary) 78%, var(--foreground));
}

.gis-stats-agency-economy-detail:focus-visible,
.gis-stats-agency-economy-network-detail:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--primary) 58%, transparent);
  outline-offset: -2px;
}

.gis-stats-agency-economy-network-detail .gis-stats-agency-network-list {
  display: grid;
  gap: var(--space-2);
}

.gis-stats-agency-detail-block {
  display: grid;
  gap: var(--space-3);
  min-width: 0;
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--muted) 36%, transparent);
}

.gis-stats-agency-detail-block--selected {
  gap: 0;
  padding: 0;
  overflow: hidden;
  border-color: color-mix(in srgb, var(--primary) 58%, var(--border));
  border-left-width: 4px;
  background: color-mix(in srgb, var(--primary) 10%, var(--card));
}

.gis-stats-agency-detail-block--comparison {
  background: color-mix(in srgb, var(--card) 88%, var(--muted));
}

.gis-stats-agency-detail-block--context {
  background: color-mix(in srgb, var(--card) 82%, var(--muted));
}

.gis-stats-agency-detail-disclosure {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
}

.gis-stats-agency-detail-disclosure summary {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  min-height: var(--control-h-s);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 850;
  cursor: pointer;
  list-style: none;
  outline: none;
}

.gis-stats-agency-detail-disclosure summary::-webkit-details-marker {
  display: none;
}

.gis-stats-agency-detail-disclosure summary::before {
  content: "";
  flex: 0 0 auto;
  width: 0.42rem;
  height: 0.42rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(-45deg);
  transform-origin: 50% 50%;
  transition: transform 140ms ease;
}

.gis-stats-agency-detail-disclosure[open] summary::before {
  transform: rotate(45deg);
}

.gis-stats-agency-detail-disclosure summary::after {
  content: "";
  flex: 1 1 auto;
  min-width: var(--space-4);
  height: 1px;
  background: var(--border);
}

.gis-stats-agency-detail-disclosure summary:focus-visible {
  color: var(--foreground);
}

.gis-stats-agency-detail-selected-head {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
  padding: var(--space-3);
  border-bottom: 1px solid color-mix(in srgb, var(--primary) 32%, var(--border));
  background: color-mix(in srgb, var(--primary) 16%, var(--card));
}

.gis-stats-agency-detail-selected-head strong {
  min-width: 0;
  color: var(--foreground);
  font-size: var(--fs-body-lg);
  line-height: var(--lh-xs);
  overflow-wrap: anywhere;
}

.gis-stats-agency-detail-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  min-height: 22px;
  padding: 0 var(--space-2);
  border-radius: var(--radius-sm);
  background: var(--primary);
  color: var(--primary-foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
  line-height: 1;
}

.gis-stats-agency-detail-divider {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
}

.gis-stats-agency-detail-divider::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--border);
}

.gis-stats-agency-detail-block-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
  min-width: 0;
  padding-bottom: var(--space-2);
  border-bottom: 1px solid color-mix(in srgb, var(--border) 72%, transparent);
}

.gis-stats-agency-detail-block-head span {
  flex: 0 0 auto;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
}

.gis-stats-agency-detail-block-head strong {
  min-width: 0;
  color: var(--foreground);
  font-size: var(--fs-body);
  text-align: right;
  overflow-wrap: anywhere;
}

.gis-stats-agency-detail-metrics {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
}

.gis-stats-agency-detail-block--selected .gis-stats-agency-detail-metrics {
  padding: var(--space-3);
}

.gis-stats-agency-detail-row {
  display: grid;
  grid-template-columns: minmax(5.5rem, max-content) minmax(0, 1fr);
  align-items: flex-start;
  gap: var(--space-3);
  min-width: 0;
}

.gis-stats-agency-detail-row span {
  min-width: 0;
  color: var(--muted-foreground);
  white-space: nowrap;
}

.gis-stats-agency-detail-row strong {
  display: block;
  justify-self: end;
  max-width: 100%;
  min-width: 0;
  color: var(--foreground);
  text-align: right;
  overflow-wrap: anywhere;
}

@media (max-width: 520px) {
  .gis-stats-agency-detail-row {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-1);
  }

  .gis-stats-agency-detail-row strong {
    justify-self: start;
    text-align: left;
  }
}

.gis-stats-agency-detail-empty {
  display: block;
  padding: var(--space-2) 0;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
}

.gis-stats-agency-detail-caption {
  margin: calc(var(--space-2) * -1) 0 0;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-stats-agency-detail-meter-list {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
}

.gis-stats-agency-detail-meter {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
}

.gis-stats-agency-detail-meter-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}

.gis-stats-agency-detail-meter-head span,
.gis-stats-agency-detail-meter-head strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-detail-meter-head span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 750;
}

.gis-stats-agency-detail-meter-head strong {
  color: var(--foreground);
  font-size: var(--fs-xs);
  font-weight: 850;
  text-align: right;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-detail-meter-track {
  display: block;
  width: 100%;
  height: 7px;
  overflow: hidden;
  border-radius: var(--radius-xs);
  background: color-mix(in srgb, var(--muted) 82%, transparent);
}

.gis-stats-agency-detail-meter-track i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--primary);
}

.gis-stats-agency-network-city {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  padding: var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--card);
  color: var(--foreground);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.gis-stats-agency-network-city:hover {
  border-color: var(--border-strong);
  background: var(--muted);
}

.gis-stats-agency-network-city:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--primary) 58%, transparent);
  outline-offset: 2px;
}

.gis-stats-agency-network-city-main {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.gis-stats-agency-network-city-main strong,
.gis-stats-agency-network-city-main em,
.gis-stats-agency-network-city-score {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-network-city-main strong {
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 850;
}

.gis-stats-agency-network-city-main em {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-style: normal;
  font-weight: 700;
}

.gis-stats-agency-network-city-score {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-1);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-network-city-score em {
  color: color-mix(in srgb, var(--muted-foreground) 82%, transparent);
  font-style: normal;
  font-weight: 600;
}

.gis-stats-agency-network-city-meter {
  grid-column: 1 / -1;
  display: block;
  width: 100%;
  height: 5px;
  overflow: hidden;
  border-radius: var(--radius-xs);
  background: color-mix(in srgb, var(--muted) 82%, transparent);
}

.gis-stats-agency-network-city-meter i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
}

.gis-stats-agency-scenario-grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.7fr) minmax(0, 1fr);
  min-height: 190px;
}

.gis-stats-agency-scenario-controls {
  display: grid;
  gap: var(--space-2);
  align-content: center;
  padding: var(--space-3);
  border-right: 1px solid var(--border);
}

.gis-stats-agency-scenario-control {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) 54px;
  align-items: center;
  gap: var(--space-3);
  min-height: var(--control-h-s);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.gis-stats-agency-scenario-control input {
  width: 100%;
  min-height: var(--control-h-s);
  accent-color: var(--primary);
  touch-action: pan-y;
}

.gis-stats-agency-scenario-control strong {
  color: var(--foreground);
  text-align: right;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-scenario-result {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.gis-stats-agency-scenario-result > div {
  display: grid;
  align-content: center;
  gap: var(--space-2);
  min-height: 96px;
  padding: var(--space-3);
  border-right: 1px solid var(--border);
}

.gis-stats-agency-scenario-result > div:last-child {
  border-right: 0;
}

.gis-stats-agency-scenario-result span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.gis-stats-agency-scenario-result strong {
  overflow-wrap: anywhere;
  font-size: var(--fs-h4);
  line-height: var(--lh-h4);
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-scenario-result strong.is-up {
  color: var(--success);
}

.gis-stats-agency-scenario-result strong.is-down {
  color: var(--destructive);
}

.gis-stats-agency-panel {
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--card);
}

.gis-stats-agency-panel--selected-city {
  border-color: color-mix(in srgb, var(--primary) 44%, var(--border));
  border-left-width: 4px;
  background: color-mix(in srgb, var(--primary) 5%, var(--card));
}

.gis-stats-agency-panel--selected-city .gis-stats-agency-panel-head {
  background: color-mix(in srgb, var(--primary) 8%, var(--card));
}

.gis-stats-agency-panel--common-list {
  background: color-mix(in srgb, var(--card) 92%, var(--muted));
}

.gis-stats-agency-panel--common-list .gis-stats-agency-panel-head {
  background: color-mix(in srgb, var(--muted) 26%, transparent);
}

.gis-stats-agency-panel--chart {
  grid-column: 1 / -1;
}

.gis-stats-agency-panel--wide {
  min-height: 100%;
}

.gis-stats-agency-dashboard--flow .gis-stats-agency-panel--wide,
.gis-stats-agency-dashboard--living .gis-stats-agency-panel--wide,
.gis-stats-agency-dashboard--settlement .gis-stats-agency-panel--wide,
.gis-stats-agency-dashboard--building-registration .gis-stats-agency-panel--wide,
.gis-stats-agency-dashboard--structure .gis-stats-agency-panel--wide {
  grid-column: 1 / -1;
}

.gis-stats-agency-dashboard--age .gis-stats-agency-panel--chart {
  grid-column: auto;
}

.gis-stats-agency-panel--age-pyramid {
  grid-row: span 2;
}

.gis-stats-agency-panel--age-ranks {
  grid-column: 1 / -1;
}

.gis-stats-agency-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-height: var(--control-h-m);
  padding: 0 var(--space-3);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-panel-head h3 {
  min-width: 0;
  margin: 0;
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-panel-head span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-panel-head--rank {
  flex-wrap: wrap;
  min-height: calc(var(--control-h-m) + var(--space-2));
  padding-top: var(--space-2);
  padding-bottom: var(--space-2);
}

.gis-stats-agency-panel-head-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-2);
  margin-left: auto;
  min-width: 0;
}

.gis-stats-agency-panel-head-actions > span {
  flex: 0 0 auto;
  white-space: nowrap;
}

.gis-stats-agency-panel-note {
  margin: 0;
  padding: var(--space-2) var(--space-3) 0;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 600;
  line-height: var(--lh-xs);
  overflow-wrap: anywhere;
}

.gis-stats-agency-panel-note--selected {
  padding-bottom: var(--space-2);
  border-bottom: 1px solid color-mix(in srgb, var(--primary) 22%, var(--border));
}

.gis-stats-agency-panel-note--body {
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--border);
  line-height: var(--lh-xs);
  overflow-wrap: anywhere;
}

.gis-stats-agency-chart-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 184px;
  min-height: 292px;
}

.gis-stats-agency-panel--flow-chart .gis-stats-agency-chart-wrap {
  grid-template-columns: minmax(0, 1fr) 240px;
  min-height: 280px;
}

.gis-stats-agency-panel--spread-chart .gis-stats-agency-chart-wrap {
  grid-template-columns: minmax(0, 1fr) 280px;
}

.gis-stats-agency-dashboard--growth .gis-stats-agency-panel--chart .gis-stats-agency-chart-wrap {
  grid-template-columns: minmax(0, 1fr) 280px;
}

.gis-stats-agency-chart {
  min-width: 0;
  padding: var(--space-3);
}

.gis-stats-agency-panel .gis-series-chart.gis-stats-agency-chart {
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
}

.gis-stats-agency-panel--block-credit .gis-series-chart.gis-stats-agency-chart {
  overflow: hidden;
}

.gis-stats-agency-chart .gis-echarts-canvas {
  display: block;
  width: 100%;
  height: 252px;
  min-height: 252px;
}

.gis-stats-agency-chart--compact .gis-echarts-canvas {
  height: 200px;
  min-height: 200px;
}

.gis-stats-agency-chart--sankey {
  padding: var(--space-3) var(--space-4);
}

.gis-stats-agency-chart--sankey .gis-echarts-canvas {
  height: 212px;
  min-height: 212px;
}

.gis-stats-agency-panel--economy-network .gis-stats-agency-chart .gis-echarts-canvas {
  height: 360px;
  min-height: 360px;
}

.gis-stats-agency-chart-meta {
  display: grid;
  align-content: center;
  border-left: 1px solid var(--border);
}

.gis-stats-agency-chart-meta--flow {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: stretch;
}

.gis-stats-agency-chart-meta--spread,
.gis-stats-agency-chart-meta--growth {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: stretch;
}

.gis-stats-agency-chart-meta > div {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-4);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-chart-meta--flow > div,
.gis-stats-agency-chart-meta--spread > div,
.gis-stats-agency-chart-meta--growth > div {
  min-width: 0;
  min-height: 96px;
  padding: var(--space-3);
  border-right: 1px solid var(--border);
}

.gis-stats-agency-chart-meta--flow > div:nth-child(2n),
.gis-stats-agency-chart-meta--spread > div:nth-child(2n),
.gis-stats-agency-chart-meta--growth > div:nth-child(2n) {
  border-right: none;
}

.gis-stats-agency-chart-meta--flow > div:nth-last-child(-n + 2),
.gis-stats-agency-chart-meta--spread > div:nth-last-child(-n + 2),
.gis-stats-agency-chart-meta--growth > div:nth-last-child(-n + 2) {
  border-bottom: none;
}

.gis-stats-agency-chart-meta > div:last-child {
  border-bottom: none;
}

.gis-stats-agency-chart-meta span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 600;
}

.gis-stats-agency-chart-meta strong {
  font-size: var(--fs-h4);
  line-height: var(--lh-h4);
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-chart-meta strong.is-up {
  color: var(--success);
}

.gis-stats-agency-chart-meta strong.is-down {
  color: var(--destructive);
}

.gis-stats-agency-chart-meta--spread strong,
.gis-stats-agency-chart-meta--growth strong {
  align-self: end;
  overflow-wrap: anywhere;
  font-size: var(--fs-body);
  line-height: var(--lh-body);
}

.gis-stats-agency-panel--age-trend .gis-stats-agency-chart-wrap {
  grid-template-columns: 1fr;
  min-height: auto;
}

.gis-stats-agency-panel--age-trend .gis-stats-agency-chart {
  padding-bottom: var(--space-3);
}

.gis-stats-agency-panel--age-trend .gis-echarts-canvas {
  height: 214px;
  min-height: 214px;
}

.gis-stats-agency-panel--age-trend .gis-stats-agency-chart-meta {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--border);
  border-left: none;
}

.gis-stats-agency-panel--age-trend .gis-stats-agency-chart-meta > div {
  min-height: 78px;
  padding: var(--space-3);
  border-right: 1px solid var(--border);
  border-bottom: none;
}

.gis-stats-agency-panel--age-trend .gis-stats-agency-chart-meta > div:last-child {
  border-right: none;
}

.gis-stats-agency-pyramid-shell {
  display: grid;
  gap: var(--space-4);
  padding: var(--space-4);
}

.gis-stats-agency-pyramid-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}

.gis-stats-agency-pyramid-select {
  display: grid;
  grid-template-columns: auto minmax(180px, 1fr);
  align-items: center;
  gap: var(--space-2);
  min-width: min(100%, 360px);
}

.gis-stats-agency-pyramid-select span,
.gis-stats-agency-pyramid-legend span,
.gis-stats-agency-pyramid-axis span,
.gis-stats-agency-pyramid-metrics span,
.gis-stats-agency-subhead {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.gis-stats-agency-pyramid-select select {
  min-width: 0;
  min-height: var(--control-h-s);
  padding: 0 var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--background);
  color: var(--foreground);
  font: inherit;
  font-size: var(--fs-sm);
}

.gis-stats-agency-pyramid-mode {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: max-content;
  min-height: 22px;
  padding: 0 var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-xs);
  background: var(--muted);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 750;
  line-height: 1;
}

.gis-stats-agency-pyramid-note {
  margin: calc(-1 * var(--space-2)) 0 0;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-stats-agency-pyramid-legend {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-3);
  white-space: nowrap;
}

.gis-stats-agency-pyramid-legend span {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
}

.gis-stats-agency-pyramid-legend i {
  display: block;
  width: 10px;
  height: 10px;
  border-radius: var(--radius-xs, 2px);
}

.gis-stats-agency-pyramid-legend i.is-left,
.gis-stats-agency-pyramid-bar.is-left {
  background: color-mix(in srgb, var(--primary) 78%, var(--foreground) 12%);
}

.gis-stats-agency-pyramid-legend i.is-right,
.gis-stats-agency-pyramid-bar.is-right {
  background: color-mix(in srgb, var(--destructive) 72%, var(--foreground) 10%);
}

.gis-stats-agency-pyramid {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.gis-stats-agency-pyramid-axis,
.gis-stats-agency-pyramid-row {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) 44px minmax(0, 1fr) 58px;
  align-items: center;
  gap: var(--space-2);
}

.gis-stats-agency-pyramid-axis {
  padding-bottom: var(--space-1);
}

.gis-stats-agency-pyramid-axis span {
  text-align: center;
}

.gis-stats-agency-pyramid-axis span:first-child {
  grid-column: 1 / 3;
  text-align: right;
}

.gis-stats-agency-pyramid-axis span:nth-child(2) {
  grid-column: 3;
}

.gis-stats-agency-pyramid-axis span:last-child {
  grid-column: 4 / 6;
  text-align: left;
}

.gis-stats-agency-pyramid-row {
  min-height: 20px;
}

.gis-stats-agency-pyramid-bar {
  height: 13px;
  min-width: 0;
  border-radius: 2px;
  opacity: 0.92;
}

.gis-stats-agency-pyramid-bar.is-left {
  justify-self: end;
  width: var(--male-value, 0%);
}

.gis-stats-agency-pyramid-bar.is-right {
  justify-self: start;
  width: var(--female-value, 0%);
}

.gis-stats-agency-pyramid-age {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
  text-align: center;
  white-space: nowrap;
}

.gis-stats-agency-pyramid-value {
  min-width: 0;
  color: var(--muted-foreground);
  font-size: 10px;
  font-variant-numeric: tabular-nums lining-nums;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-pyramid-value.is-left {
  text-align: right;
}

.gis-stats-agency-pyramid-value.is-right {
  text-align: left;
}

.gis-stats-agency-pyramid-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.gis-stats-agency-pyramid-metrics > div {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
  min-height: 64px;
  padding: var(--space-3);
  border-right: 1px solid var(--border);
}

.gis-stats-agency-pyramid-metrics > div:last-child {
  border-right: none;
}

.gis-stats-agency-pyramid-metrics strong {
  align-self: end;
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-age-rank-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gis-stats-agency-age-rank-grid > div {
  min-width: 0;
  border-right: 1px solid var(--border);
}

.gis-stats-agency-age-rank-grid > div:last-child {
  border-right: none;
}

.gis-stats-agency-subhead {
  min-height: var(--control-h-s);
  padding: var(--space-3) var(--space-4) 0;
}

.gis-stats-agency-spread-detail {
  display: grid;
  grid-template-columns: minmax(160px, 0.22fr) minmax(0, 1fr);
  gap: var(--space-4);
  align-items: center;
  padding: var(--space-4);
  border-top: 1px solid var(--border);
  background: color-mix(in srgb, var(--card), transparent 3%);
}

.gis-stats-agency-spread-detail > div {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
}

.gis-stats-agency-spread-detail span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.gis-stats-agency-spread-detail strong,
.gis-stats-agency-spread-list i,
.gis-stats-agency-growth-list i,
.gis-stats-agency-living-list i,
.gis-stats-agency-settlement-list i,
.gis-stats-agency-flow-network-list i,
.gis-stats-agency-stability-list i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  min-height: 24px;
  max-width: 100%;
  padding: 0 var(--space-2);
  border-radius: var(--radius-sm);
  background: var(--muted);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-style: normal;
  font-weight: 800;
  white-space: nowrap;
}

.gis-stats-agency-spread-detail strong.is-high,
.gis-stats-agency-spread-list i.is-high,
.gis-stats-agency-growth-list i.is-high {
  background: color-mix(in srgb, var(--destructive) 12%, transparent);
  color: var(--destructive);
}

.gis-stats-agency-spread-detail strong.is-mid,
.gis-stats-agency-spread-list i.is-mid,
.gis-stats-agency-growth-list i.is-mid,
.gis-stats-agency-settlement-list i.is-mid,
.gis-stats-agency-flow-network-list i.is-mid,
.gis-stats-agency-stability-list i.is-mid {
  background: color-mix(in srgb, var(--warning) 14%, transparent);
  color: var(--warning);
}

.gis-stats-agency-spread-detail strong.is-low,
.gis-stats-agency-spread-list i.is-low,
.gis-stats-agency-growth-list i.is-low {
  background: color-mix(in srgb, var(--success) 12%, transparent);
  color: var(--success);
}

.gis-stats-agency-spread-detail strong.is-normal,
.gis-stats-agency-spread-list i.is-normal,
.gis-stats-agency-growth-list i.is-normal {
  background: color-mix(in srgb, var(--primary) 12%, transparent);
  color: var(--foreground);
}

.gis-stats-agency-growth-list i.is-high,
.gis-stats-agency-living-list i.is-high,
.gis-stats-agency-settlement-list i.is-high,
.gis-stats-agency-flow-network-list i.is-high,
.gis-stats-agency-stability-list i.is-high {
  background: color-mix(in srgb, var(--success) 12%, transparent);
  color: var(--success);
}

.gis-stats-agency-growth-list i.is-low,
.gis-stats-agency-living-list i.is-low,
.gis-stats-agency-settlement-list i.is-low,
.gis-stats-agency-flow-network-list i.is-low,
.gis-stats-agency-stability-list i.is-low {
  background: color-mix(in srgb, var(--warning) 14%, transparent);
  color: var(--warning);
}

.gis-stats-agency-living-list i.is-normal,
.gis-stats-agency-settlement-list i.is-normal,
.gis-stats-agency-flow-network-list i.is-normal,
.gis-stats-agency-stability-list i.is-normal {
  background: color-mix(in srgb, var(--primary) 12%, transparent);
  color: var(--foreground);
}

.gis-stats-agency-growth-list i.is-muted,
.gis-stats-agency-living-list i.is-muted,
.gis-stats-agency-settlement-list i.is-muted,
.gis-stats-agency-flow-network-list i.is-muted,
.gis-stats-agency-stability-list i.is-muted {
  background: var(--muted);
  color: var(--muted-foreground);
}

.gis-stats-agency-spread-detail p {
  min-width: 0;
  margin: 0;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  overflow-wrap: anywhere;
  white-space: normal;
}

.gis-stats-agency-insight-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--card);
}

.gis-stats-agency-insight-strip > div {
  display: grid;
  gap: var(--space-2);
  min-height: 88px;
  padding: var(--space-4);
  border-right: 1px solid var(--border);
}

.gis-stats-agency-insight-strip > div:last-child {
  border-right: none;
}

.gis-stats-agency-insight-strip span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.gis-stats-agency-insight-strip strong {
  align-self: end;
  font-size: var(--fs-h4);
  line-height: var(--lh-h4);
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-bar-list {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-3);
}

.gis-stats-agency-list-more {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  min-height: var(--control-h-s);
  padding: 0 var(--space-3) var(--space-3);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.gis-stats-agency-list-more:empty {
  display: none;
}

.gis-stats-agency-list-more button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--control-h-s);
  padding: 0 var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--foreground);
  font: inherit;
  font-size: var(--fs-xs);
  font-weight: 800;
  cursor: pointer;
}

.gis-stats-agency-list-more button:hover {
  border-color: var(--border-strong);
  background: var(--muted);
}

.gis-stats-agency-list-more span {
  min-width: 0;
  overflow: hidden;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-bar-row {
  display: grid;
  gap: var(--space-1-5);
  will-change: transform, opacity;
}

.gis-stats-agency-bar-row.has-tooltip {
  min-height: var(--control-h-s);
  cursor: help;
}

.gis-stats-agency-tooltip-mark {
  --stats-icon-box-size: 14px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--stats-icon-box-size);
  min-width: var(--stats-icon-box-size);
  height: var(--stats-icon-box-size);
  min-height: var(--stats-icon-box-size);
  overflow: hidden;
  color: var(--muted-foreground);
  font-size: 0;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  text-indent: 0;
  opacity: 0.78;
  vertical-align: -2px;
}

.gis-stats-agency-tooltip-mark:not([data-symbol-ready="1"]) {
  font-size: var(--stats-icon-box-size);
}

.gis-stats-agency-hover-tip {
  position: fixed;
  left: var(--stats-hover-tip-left, 0);
  top: var(--stats-hover-tip-top, 0);
  z-index: 2147483000;
  width: min(320px, calc(100vw - 20px));
  max-width: calc(100vw - 20px);
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--popover, var(--card)) 96%, transparent);
  box-shadow: var(--shadow-lg);
  color: var(--foreground);
  font-family: 'Noto Sans KR', 'Apple SD Gothic Neo', 'Noto Sans', sans-serif;
  font-size: var(--fs-xs);
  font-weight: 650;
  line-height: var(--lh-sm);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-2px);
  transition: opacity 120ms ease, transform 120ms ease;
  white-space: normal;
}

.gis-stats-agency-hover-tip.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.gis-stats-agency-hover-tip.is-pinned {
  border-color: color-mix(in srgb, var(--primary) 42%, var(--border));
  box-shadow: var(--shadow-lg), 0 0 0 1px color-mix(in srgb, var(--primary) 10%, transparent);
}

.gis-stats-agency-bar-row.has-tooltip:hover .gis-stats-agency-tooltip-mark,
.gis-stats-agency-flow-network-row.has-tooltip:hover .gis-stats-agency-tooltip-mark,
.gis-stats-agency-living-row.has-tooltip:hover .gis-stats-agency-tooltip-mark,
.gis-stats-agency-living-improvement-button.has-tooltip:hover .gis-stats-agency-tooltip-mark,
.gis-stats-agency-living-improvement-button.has-tooltip:focus-visible .gis-stats-agency-tooltip-mark,
.gis-stats-agency-settlement-row.has-tooltip:hover .gis-stats-agency-tooltip-mark,
.gis-stats-agency-stability-row.has-tooltip:hover .gis-stats-agency-tooltip-mark,
.gis-stats-agency-building-registration-row.has-tooltip:hover .gis-stats-agency-tooltip-mark,
.gis-stats-agency-spread-sample .has-tooltip:hover .gis-stats-agency-tooltip-mark,
.is-tooltip-pinned .gis-stats-agency-tooltip-mark {
  color: var(--foreground);
  opacity: 1;
}

.gis-stats-agency-bar-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-2);
}

.gis-stats-agency-bar-head span {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gis-stats-agency-bar-head em {
  flex: 0 0 auto;
  color: var(--foreground);
  font-size: var(--fs-xs);
  font-style: normal;
  font-weight: 700;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-rank-delta {
  flex: 0 0 auto;
  min-width: var(--space-6);
  padding: 0 var(--space-1);
  border-radius: var(--radius-sm);
  background: var(--muted);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-style: normal;
  font-weight: 800;
  line-height: var(--space-5);
  text-align: center;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-rank-delta.is-up {
  background: color-mix(in srgb, var(--success), transparent 88%);
  color: var(--success);
}

.gis-stats-agency-rank-delta.is-down {
  background: color-mix(in srgb, var(--destructive), transparent 88%);
  color: var(--destructive);
}

.gis-stats-agency-bar-head strong {
  min-width: 0;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  justify-self: end;
  gap: var(--space-1);
  font-size: var(--fs-sm);
  font-weight: 700;
  font-variant-numeric: tabular-nums lining-nums;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-bar-track {
  height: 6px;
  overflow: hidden;
  border-radius: var(--radius-full);
  background: var(--muted);
}

.gis-stats-agency-bar-track span {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: var(--primary);
  transform: scaleX(var(--bar-scale, 0));
  transform-origin: left center;
  transition: transform 720ms cubic-bezier(.2,.8,.2,1);
}

#statsCityActivityList .gis-stats-agency-bar-track span {
  transition-duration: 1280ms;
}

#statsCityFlowCityList .gis-stats-agency-bar-track span {
  transition-duration: 860ms;
}

.gis-stats-agency-flow-pair-list {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-3);
}

.gis-stats-agency-panel--flow-pairs .gis-stats-agency-flow-pair-list {
  max-height: 520px;
  overflow: auto;
  scrollbar-width: thin;
}

.gis-stats-agency-flow-pair-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 0.74fr);
  gap: var(--space-2);
  align-items: center;
  min-width: 0;
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--card) 86%, var(--muted));
  will-change: transform, opacity;
}

.gis-stats-agency-flow-pair-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}

.gis-stats-agency-flow-pair-main span {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  white-space: nowrap;
  overflow: hidden;
}

.gis-stats-agency-flow-pair-main em {
  flex: 0 0 auto;
  color: var(--foreground);
  font-size: var(--fs-xs);
  font-style: normal;
  font-weight: 800;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-flow-pair-main b {
  min-width: 0;
  overflow: hidden;
  color: var(--foreground);
  font-weight: 700;
  text-overflow: ellipsis;
}

.gis-stats-agency-flow-pair-main i {
  flex: 0 0 auto;
  color: var(--muted-foreground);
  font-style: normal;
}

.gis-stats-agency-flow-pair-main strong {
  font-size: var(--fs-sm);
  font-weight: 800;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-flow-pair-meta {
  display: grid;
  gap: var(--space-1);
}

.gis-stats-agency-flow-pair-meta span {
  min-width: 0;
  overflow: hidden;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-flow-split {
  overflow: hidden;
  grid-column: 1 / -1;
  border-radius: var(--radius-full);
  background: var(--muted);
}

.gis-stats-agency-flow-split {
  position: relative;
  display: block;
  height: 5px;
}

.gis-stats-agency-flow-split span {
  display: block;
  position: absolute;
  inset-block: 0;
  width: 100%;
  height: 100%;
  transform: scaleX(var(--split-scale, 0.5));
  transition: transform 860ms cubic-bezier(.2,.8,.2,1);
}

.gis-stats-agency-flow-split .is-a {
  left: 0;
  transform-origin: left center;
  background: var(--primary);
}

.gis-stats-agency-flow-split .is-b {
  right: 0;
  transform-origin: right center;
  background: var(--accent);
}

.gis-stats-agency-flow-network-list {
  gap: 0;
  padding: var(--space-3);
}

.gis-stats-agency-flow-network-table {
  display: grid;
  min-width: 0;
  max-width: 100%;
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--card), transparent 3%);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--foreground) 4%, transparent);
  scrollbar-width: thin;
}

.gis-stats-agency-flow-network-table-head,
.gis-stats-agency-flow-network-row {
  display: grid;
  grid-template-columns: 36px minmax(82px, 1fr) 50px 48px 54px minmax(74px, 0.72fr) 96px;
  gap: var(--space-1-5);
  align-items: center;
  min-width: 0;
}

.gis-stats-agency-flow-network-table-head {
  position: sticky;
  top: 0;
  z-index: 1;
  min-height: 30px;
  padding: 0 var(--space-2);
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--muted) 82%, var(--card));
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
}

.gis-stats-agency-flow-network-table-head span:nth-child(3),
.gis-stats-agency-flow-network-table-head span:nth-child(4),
.gis-stats-agency-flow-network-table-head span:nth-child(5) {
  text-align: right;
}

.gis-stats-agency-flow-network-table-head span:last-child {
  text-align: left;
}

.gis-stats-agency-flow-network-table-body {
  display: grid;
}

.gis-stats-agency-flow-network-row {
  min-height: var(--control-h-s);
  padding: var(--space-1) var(--space-2);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-flow-network-row.has-tooltip,
.gis-stats-agency-living-row.has-tooltip,
.gis-stats-agency-settlement-row.has-tooltip,
.gis-stats-agency-stability-row.has-tooltip,
.gis-stats-agency-building-registration-row.has-tooltip,
.gis-stats-agency-spread-sample .has-tooltip {
  cursor: help;
}

.gis-stats-agency-flow-network-row:last-child {
  border-bottom: none;
}

.gis-stats-agency-flow-network-row span,
.gis-stats-agency-flow-network-row strong {
  min-width: 0;
  overflow: hidden;
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-flow-network-rank {
  color: var(--muted-foreground);
  font-weight: 800;
}

.gis-stats-agency-flow-network-name {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  color: var(--foreground);
  font-weight: 800;
}

.gis-stats-agency-flow-network-score,
.gis-stats-agency-flow-network-partner,
.gis-stats-agency-flow-network-dependency {
  justify-self: end;
  color: var(--foreground);
  font-weight: 850;
  text-align: right;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-flow-network-partner,
.gis-stats-agency-flow-network-dependency,
.gis-stats-agency-flow-network-primary {
  color: var(--muted-foreground);
  font-weight: 750;
}

.gis-stats-agency-flow-network-row i {
  min-height: 18px;
  padding: 0 var(--space-1);
  justify-self: start;
}

.gis-stats-agency-development-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(380px, 420px);
  min-height: 360px;
}

.gis-stats-agency-abstract-map {
  min-height: 360px;
  padding: var(--space-3);
  border-right: 1px solid var(--border);
}

.gis-stats-agency-abstract-map svg {
  display: block;
  width: 100%;
  height: 300px;
}

.gis-stats-agency-map-frame {
  fill: var(--muted);
  opacity: 0.28;
}

.gis-stats-agency-map-vector {
  stroke: var(--accent);
  stroke-width: 0.45;
  stroke-linecap: round;
  opacity: 0.42;
}

.gis-stats-agency-map-vector.is-active {
  stroke: var(--primary);
  stroke-width: 0.9;
  opacity: 0.9;
}

.gis-stats-agency-map-node {
  cursor: pointer;
  outline: none;
}

.gis-stats-agency-map-hit {
  fill: transparent;
  pointer-events: auto;
  cursor: pointer;
}

.gis-stats-agency-map-origin {
  fill: var(--card);
  stroke: var(--muted-foreground);
  stroke-width: 0.65;
  opacity: 0.7;
  pointer-events: none;
  transition: opacity 140ms ease, stroke-width 140ms ease;
}

.gis-stats-agency-map-node:hover .gis-stats-agency-map-origin,
.gis-stats-agency-map-node:focus-visible .gis-stats-agency-map-origin,
.gis-stats-agency-map-node.is-active .gis-stats-agency-map-origin,
.gis-stats-agency-map-origin.is-active {
  stroke: var(--primary);
  stroke-width: 1.1;
  opacity: 1;
}

.gis-stats-agency-map-point {
  fill: var(--primary);
  stroke: var(--card);
  stroke-width: 0.7;
  opacity: 0.82;
  pointer-events: none;
  transition: opacity 140ms ease, stroke-width 140ms ease;
}

.gis-stats-agency-map-node:hover .gis-stats-agency-map-point,
.gis-stats-agency-map-node:focus-visible .gis-stats-agency-map-point,
.gis-stats-agency-map-point:hover {
  opacity: 1;
}

.gis-stats-agency-map-node:focus-visible .gis-stats-agency-map-point,
.gis-stats-agency-map-node.is-active .gis-stats-agency-map-point,
.gis-stats-agency-map-point.is-active {
  opacity: 1;
  stroke: var(--primary);
  stroke-width: 1.4;
}

.gis-stats-agency-map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: center;
  margin-top: var(--space-3);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.gis-stats-agency-map-legend span {
  display: inline-flex;
  gap: var(--space-1);
  align-items: center;
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.gis-stats-agency-map-legend i {
  display: inline-block;
  width: var(--space-2);
  height: var(--space-2);
  border-radius: var(--radius-full);
}

.gis-stats-agency-map-legend i.is-origin {
  border: 1px solid var(--muted-foreground);
  background: var(--card);
}

.gis-stats-agency-map-legend i.is-boundary {
  border: 1px solid color-mix(in srgb, var(--foreground) 28%, transparent);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--primary) 10%, transparent);
}

.gis-stats-agency-map-legend i.is-boundary-disabled {
  border: 1px dashed color-mix(in srgb, var(--foreground) 50%, transparent);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--muted-foreground) 10%, transparent);
}

.gis-stats-agency-map-legend i.is-point {
  background: var(--primary);
}

.gis-stats-agency-map-legend i.is-line {
  width: var(--space-4);
  height: 2px;
  border-radius: var(--radius-full);
  background: var(--accent);
}

.gis-stats-agency-development-side {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  min-width: 0;
}

.gis-stats-agency-map-detail {
  display: grid;
  gap: var(--space-2);
  min-height: 104px;
  padding: var(--space-3);
  border-bottom: 1px solid var(--border);
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
}

.gis-stats-agency-map-detail > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
}

.gis-stats-agency-map-detail strong {
  min-width: 0;
  color: var(--foreground);
  font-size: var(--fs-sm);
  overflow-wrap: anywhere;
  text-align: right;
}

@media (max-width: 520px) {
  .gis-stats-agency-map-detail .gis-stats-agency-detail-block-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-1);
  }

  .gis-stats-agency-map-detail .gis-stats-agency-detail-block-head strong,
  .gis-stats-agency-map-detail .gis-stats-agency-detail-row strong {
    justify-self: start;
    text-align: left;
  }
}

.gis-stats-agency-map-detail i,
.gis-stats-agency-development-guide i,
.gis-stats-agency-development-list i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 22px;
  padding: 0 var(--space-2);
  border-radius: var(--radius-sm);
  background: var(--muted);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-style: normal;
  font-weight: 800;
  white-space: nowrap;
}

.gis-stats-agency-map-detail i.is-high,
.gis-stats-agency-development-guide i.is-high,
.gis-stats-agency-development-list i.is-high {
  background: color-mix(in srgb, var(--destructive) 12%, transparent);
  color: var(--destructive);
}

.gis-stats-agency-map-detail i.is-mid,
.gis-stats-agency-development-guide i.is-mid,
.gis-stats-agency-development-list i.is-mid {
  background: color-mix(in srgb, var(--warning) 14%, transparent);
  color: var(--warning);
}

.gis-stats-agency-map-detail i.is-low,
.gis-stats-agency-development-guide i.is-low,
.gis-stats-agency-development-list i.is-low {
  background: color-mix(in srgb, var(--success) 12%, transparent);
  color: var(--success);
}

.gis-stats-agency-map-detail i.is-normal,
.gis-stats-agency-development-guide i.is-normal,
.gis-stats-agency-development-list i.is-normal {
  background: color-mix(in srgb, var(--primary) 12%, transparent);
  color: var(--foreground);
}

.gis-stats-agency-development-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-development-metrics > div {
  display: grid;
  gap: var(--space-1);
  min-height: 72px;
  padding: var(--space-2);
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-development-metrics > div:nth-child(2n) {
  border-right: none;
}

.gis-stats-agency-development-metrics > div:nth-last-child(-n + 2) {
  border-bottom: none;
}

.gis-stats-agency-development-metrics span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.gis-stats-agency-development-metrics strong {
  align-self: end;
  font-size: var(--fs-sm);
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-development-guide {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--muted) 34%, transparent);
}

.gis-stats-agency-development-guide-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  min-width: 0;
}

.gis-stats-agency-development-guide-head strong {
  color: var(--foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

.gis-stats-agency-development-guide-head span {
  min-width: 0;
  overflow: hidden;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
  line-height: var(--lh-xs);
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-development-guide-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--card), transparent 2%);
}

.gis-stats-agency-development-guide-grid > div {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: var(--space-2);
  align-items: start;
  min-width: 0;
  padding: var(--space-2) var(--space-3);
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-development-guide-grid > div:nth-child(2n) {
  border-right: none;
}

.gis-stats-agency-development-guide-grid > div:nth-last-child(-n + 2) {
  border-bottom: none;
}

.gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-height: 8.75rem;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}

.gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div,
.gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-child(2n),
.gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-last-child(-n + 2) {
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-child(3n) {
  border-right: none;
}

.gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-last-child(-n + 3) {
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:last-child {
  border-bottom: none;
}

.gis-stats-agency-panel--development .gis-stats-agency-development-list {
  max-height: 10rem;
}

.gis-stats-agency-development-guide dt,
.gis-stats-agency-development-guide dd {
  min-width: 0;
  margin: 0;
}

.gis-stats-agency-development-guide dd {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 650;
  line-height: var(--lh-xs);
  overflow-wrap: anywhere;
}

.gis-stats-agency-development-list {
  display: grid;
  align-content: start;
  min-width: 0;
  min-height: 0;
  padding: var(--space-2);
  overflow: auto;
  scrollbar-width: thin;
}

.gis-stats-agency-development-table {
  display: grid;
  min-width: 0;
  max-width: 100%;
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--card), transparent 3%);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--foreground) 4%, transparent);
}

.gis-stats-agency-development-table-head,
.gis-stats-agency-development-list .gis-stats-agency-development-row {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 62px 54px 82px;
  gap: var(--space-1);
  align-items: center;
  min-width: 0;
}

.gis-stats-agency-development-table-head {
  position: sticky;
  top: 0;
  z-index: 1;
  min-height: 30px;
  padding: 0 var(--space-2);
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--muted) 82%, var(--card));
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
}

.gis-stats-agency-development-table-head span:nth-child(n + 3) {
  text-align: right;
}

.gis-stats-agency-development-table-head span:last-child {
  text-align: left;
}

.gis-stats-agency-development-table-body {
  display: grid;
}

.gis-stats-agency-development-list .gis-stats-agency-development-row {
  width: 100%;
  min-height: var(--control-h-s);
  padding: var(--space-1) var(--space-2);
  border: none;
  border-bottom: 1px solid var(--border);
  border-radius: 0;
  background: transparent;
  color: var(--foreground);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.gis-stats-agency-development-list .gis-stats-agency-development-row:last-child {
  border-bottom: none;
}

.gis-stats-agency-development-list .gis-stats-agency-development-row:hover,
.gis-stats-agency-development-list .gis-stats-agency-development-row.is-active {
  background: color-mix(in srgb, var(--primary) 8%, var(--card));
}

.gis-stats-agency-development-list .gis-stats-agency-development-row.is-active {
  box-shadow: inset 3px 0 0 var(--primary), inset 0 1px 0 color-mix(in srgb, var(--primary) 12%, transparent);
}

.gis-stats-agency-development-list .gis-stats-agency-development-row span {
  min-width: 0;
  overflow: hidden;
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-development-list .gis-stats-agency-development-rank {
  color: var(--muted-foreground);
  font-weight: 800;
}

.gis-stats-agency-development-list .gis-stats-agency-development-name {
  color: var(--foreground);
  font-weight: 800;
}

.gis-stats-agency-development-list .gis-stats-agency-development-ratio,
.gis-stats-agency-development-list .gis-stats-agency-development-sample {
  justify-self: end;
  color: var(--foreground);
  font-size: var(--fs-xs);
  font-weight: 850;
  text-align: right;
  font-variant-numeric: tabular-nums lining-nums;
  white-space: nowrap;
}

.gis-stats-agency-development-list .gis-stats-agency-development-sample {
  color: var(--muted-foreground);
  font-weight: 750;
}

.gis-stats-agency-development-list .gis-stats-agency-development-row i {
  justify-self: start;
  min-height: 18px;
  padding: 0 var(--space-1);
}

.gis-stats-agency-select-list {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-4);
}

.gis-stats-agency-select-list button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-3);
  min-height: var(--control-h-m);
  padding: 0 var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--foreground);
  font: inherit;
  cursor: pointer;
}

.gis-stats-agency-select-list button:hover,
.gis-stats-agency-select-list button.is-active {
  border-color: var(--primary);
  background: color-mix(in srgb, var(--primary) 10%, transparent);
}

.gis-stats-agency-select-list span {
  min-width: 0;
  overflow: hidden;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  font-weight: 700;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-select-list strong {
  font-size: var(--fs-sm);
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-spread-list {
  gap: 0;
  padding: var(--space-3);
}

.gis-stats-agency-spread-table {
  display: grid;
  min-width: 0;
  max-width: 100%;
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--card), transparent 3%);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--foreground) 4%, transparent);
  scrollbar-width: thin;
}

.gis-stats-agency-spread-table-head,
.gis-stats-agency-spread-list .gis-stats-agency-spread-row {
  display: grid;
  grid-template-columns: 40px minmax(96px, 1fr) minmax(64px, 76px) minmax(136px, 152px) minmax(96px, 118px);
  gap: var(--space-2);
  align-items: center;
  min-width: 0;
}

.gis-stats-agency-spread-table-head {
  position: sticky;
  top: 0;
  z-index: 1;
  min-height: 30px;
  padding: 0 var(--space-2);
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--muted) 82%, var(--card));
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
  letter-spacing: 0;
}

.gis-stats-agency-fixed-label::before {
  content: attr(data-label);
}

.gis-stats-agency-spread-table-head span:nth-child(n + 3) {
  text-align: right;
}

.gis-stats-agency-spread-table-head span:last-child {
  text-align: left;
}

.gis-stats-agency-spread-table-body {
  display: grid;
}

.gis-stats-agency-spread-list .gis-stats-agency-spread-row {
  width: 100%;
  min-height: var(--control-h-s);
  padding: var(--space-1) var(--space-2);
  border: none;
  border-bottom: 1px solid var(--border);
  border-radius: 0;
  background: transparent;
  color: var(--foreground);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.gis-stats-agency-spread-list .gis-stats-agency-spread-row:last-child {
  border-bottom: none;
}

.gis-stats-agency-spread-list .gis-stats-agency-spread-row:hover,
.gis-stats-agency-spread-list .gis-stats-agency-spread-row.is-active {
  background: color-mix(in srgb, var(--primary) 8%, var(--card));
}

.gis-stats-agency-spread-list .gis-stats-agency-spread-row.is-active {
  box-shadow: inset 3px 0 0 var(--primary), inset 0 1px 0 color-mix(in srgb, var(--primary) 12%, transparent);
}

.gis-stats-agency-spread-list .gis-stats-agency-spread-row.is-summary {
  background: color-mix(in srgb, var(--muted) 74%, var(--card));
}

.gis-stats-agency-spread-list .gis-stats-agency-spread-row span {
  min-width: 0;
  overflow: hidden;
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-spread-list .gis-stats-agency-spread-row .gis-stats-agency-spread-rank {
  color: var(--muted-foreground);
  font-weight: 800;
}

.gis-stats-agency-spread-list .gis-stats-agency-spread-row .gis-stats-agency-spread-name {
  color: var(--foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
}

.gis-stats-agency-spread-list .gis-stats-agency-spread-row .gis-stats-agency-spread-ratio,
.gis-stats-agency-spread-list .gis-stats-agency-spread-row .gis-stats-agency-spread-sample {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  justify-self: end;
  text-align: right;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-spread-list .gis-stats-agency-spread-row .gis-stats-agency-spread-ratio {
  color: var(--foreground);
  font-size: var(--fs-xs);
  font-weight: 900;
}

.gis-stats-agency-spread-list .gis-stats-agency-spread-row .gis-stats-agency-spread-sample {
  display: grid;
  grid-template-columns: minmax(52px, auto) minmax(62px, auto);
  justify-content: end;
  align-items: center;
  gap: var(--space-1-5);
  color: var(--muted-foreground);
  white-space: nowrap;
}

.gis-stats-agency-spread-list .gis-stats-agency-spread-row .gis-stats-agency-spread-sample b,
.gis-stats-agency-spread-list .gis-stats-agency-spread-row .gis-stats-agency-spread-sample em {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  min-width: 0;
  overflow: hidden;
  font: inherit;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-spread-list .gis-stats-agency-spread-row .gis-stats-agency-spread-sample b {
  color: var(--foreground);
  font-weight: 800;
}

.gis-stats-agency-spread-list .gis-stats-agency-spread-row .gis-stats-agency-spread-sample em {
  color: var(--muted-foreground);
  font-style: normal;
}

.gis-stats-agency-spread-list .gis-stats-agency-spread-row i {
  min-height: 18px;
  padding: 0 var(--space-1);
  justify-self: start;
}

.gis-stats-agency-growth-list {
  gap: 0;
  padding: var(--space-3);
}

.gis-stats-agency-growth-table {
  display: grid;
  min-width: 0;
  max-width: 100%;
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--card), transparent 3%);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--foreground) 4%, transparent);
  scrollbar-width: thin;
}

.gis-stats-agency-growth-table-head,
.gis-stats-agency-growth-row {
  display: grid;
  grid-template-columns: 36px minmax(82px, 1fr) 50px 62px 56px 66px 50px 96px;
  gap: var(--space-1-5);
  align-items: center;
  min-width: 0;
}

.gis-stats-agency-growth-table-head {
  position: sticky;
  top: 0;
  z-index: 1;
  min-height: 30px;
  padding: 0 var(--space-2);
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--muted) 82%, var(--card));
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
}

.gis-stats-agency-growth-table-head span:nth-child(n + 3) {
  text-align: right;
}

.gis-stats-agency-growth-table-head span:last-child {
  text-align: left;
}

.gis-stats-agency-growth-table-body {
  display: grid;
}

.gis-stats-agency-growth-row {
  min-height: var(--control-h-s);
  padding: var(--space-1) var(--space-2);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-growth-row:last-child {
  border-bottom: none;
}

.gis-stats-agency-growth-row span,
.gis-stats-agency-growth-row strong {
  min-width: 0;
  overflow: hidden;
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-growth-rank {
  color: var(--muted-foreground);
  font-weight: 800;
}

.gis-stats-agency-growth-name {
  color: var(--foreground);
  font-weight: 800;
}

.gis-stats-agency-growth-score,
.gis-stats-agency-growth-population,
.gis-stats-agency-growth-building,
.gis-stats-agency-growth-activity,
.gis-stats-agency-growth-map {
  justify-self: end;
  color: var(--foreground);
  font-weight: 850;
  text-align: right;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-growth-population,
.gis-stats-agency-growth-building,
.gis-stats-agency-growth-activity {
  color: var(--muted-foreground);
  font-weight: 750;
}

.gis-stats-agency-growth-population.is-up,
.gis-stats-agency-growth-building.is-up,
.gis-stats-agency-growth-activity.is-up {
  color: var(--success);
}

.gis-stats-agency-growth-population.is-down,
.gis-stats-agency-growth-building.is-down,
.gis-stats-agency-growth-activity.is-down {
  color: var(--destructive);
}

.gis-stats-agency-growth-row i {
  min-height: 18px;
  padding: 0 var(--space-1);
  justify-self: start;
}

.gis-stats-agency-living-list {
  gap: 0;
  padding: var(--space-3);
}

.gis-stats-agency-living-table {
  display: grid;
  min-width: 0;
  max-width: 100%;
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--card), transparent 3%);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--foreground) 4%, transparent);
  scrollbar-width: thin;
}

.gis-stats-agency-living-table-head,
.gis-stats-agency-living-row {
  display: grid;
  grid-template-columns: 36px minmax(86px, 1fr) 52px 58px 64px minmax(88px, 0.7fr) 88px;
  gap: var(--space-1-5);
  align-items: center;
  min-width: 0;
}

.gis-stats-agency-living-table-head {
  position: sticky;
  top: 0;
  z-index: 1;
  min-height: 30px;
  padding: 0 var(--space-2);
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--muted) 82%, var(--card));
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
}

.gis-stats-agency-living-table-head span:nth-child(3),
.gis-stats-agency-living-table-head span:nth-child(4) {
  text-align: right;
}

.gis-stats-agency-living-table-body {
  display: grid;
}

.gis-stats-agency-living-row {
  min-height: var(--control-h-s);
  padding: var(--space-1) var(--space-2);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-living-row.is-expanded {
  border-bottom-color: transparent;
  background: color-mix(in srgb, var(--primary) 7%, transparent);
}

.gis-stats-agency-living-row:last-child {
  border-bottom: none;
}

.gis-stats-agency-living-row span,
.gis-stats-agency-living-row strong {
  min-width: 0;
  overflow: hidden;
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-living-rank {
  color: var(--muted-foreground);
  font-weight: 800;
}

.gis-stats-agency-living-name {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  color: var(--foreground);
  font-weight: 800;
}

.gis-stats-agency-living-score,
.gis-stats-agency-living-poi {
  justify-self: end;
  color: var(--foreground);
  font-weight: 850;
  text-align: right;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-living-poi,
.gis-stats-agency-living-primary,
.gis-stats-agency-living-improvement {
  color: var(--muted-foreground);
  font-weight: 750;
}

.gis-stats-agency-living-improvement {
  color: var(--foreground);
}

.gis-stats-agency-living-improvement-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-1);
  width: 100%;
  min-width: 0;
  min-height: var(--control-h-s);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
}

.gis-stats-agency-select-list .gis-stats-agency-living-improvement-button {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.gis-stats-agency-living-improvement-button:hover,
.gis-stats-agency-living-improvement-button:focus-visible {
  background: transparent;
  color: var(--primary);
  outline: none;
}

.gis-stats-agency-select-list .gis-stats-agency-living-improvement-button:hover,
.gis-stats-agency-select-list .gis-stats-agency-living-improvement-button:focus-visible {
  border: 0;
  background: transparent;
  box-shadow: none;
}

.gis-stats-agency-living-improvement-button:focus-visible span:first-child {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.gis-stats-agency-living-improvement-button span:first-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-living-improvement-icon {
  position: relative;
  display: inline-block;
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  min-width: 14px;
  min-height: 14px;
  overflow: visible;
  color: var(--muted-foreground);
}

.gis-stats-agency-living-improvement-icon::before {
  content: "";
  position: absolute;
  top: 3px;
  left: 4px;
  width: 5px;
  height: 5px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(0) rotate(45deg);
  transition: transform 160ms ease;
}

.gis-stats-agency-living-improvement-button.is-expanded .gis-stats-agency-living-improvement-icon::before {
  transform: translateY(3px) rotate(225deg);
}

.gis-stats-agency-living-row i {
  min-height: 18px;
  padding: 0 var(--space-1);
  justify-self: start;
}

.gis-stats-agency-living-detail {
  min-width: 0;
  padding: 0 var(--space-2) var(--space-2) calc(36px + var(--space-3));
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--primary) 5%, transparent);
}

.gis-stats-agency-living-detail ol {
  display: grid;
  gap: var(--space-1);
  margin: 0;
  padding: 0;
  list-style: none;
}

.gis-stats-agency-living-detail li {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: var(--space-2);
  align-items: start;
  min-width: 0;
  padding: var(--space-2);
  border: 1px solid color-mix(in srgb, var(--border) 82%, transparent);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--card), transparent 2%);
}

.gis-stats-agency-living-detail strong,
.gis-stats-agency-living-detail span {
  min-width: 0;
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.gis-stats-agency-living-detail strong {
  color: var(--foreground);
  font-weight: 850;
}

.gis-stats-agency-living-detail span {
  color: var(--muted-foreground);
  font-weight: 650;
  overflow-wrap: anywhere;
}

.gis-stats-agency-settlement-list {
  gap: 0;
  padding: var(--space-3);
}

.gis-stats-agency-settlement-table {
  display: grid;
  min-width: 0;
  max-width: 100%;
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--card), transparent 3%);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--foreground) 4%, transparent);
  scrollbar-width: thin;
}

.gis-stats-agency-settlement-table-head,
.gis-stats-agency-settlement-row {
  display: grid;
  grid-template-columns: 36px minmax(86px, 1fr) 52px 68px 58px 58px 108px;
  gap: var(--space-1-5);
  align-items: center;
  min-width: 0;
}

.gis-stats-agency-settlement-table-head {
  position: sticky;
  top: 0;
  z-index: 1;
  min-height: 30px;
  padding: 0 var(--space-2);
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--muted) 82%, var(--card));
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
}

.gis-stats-agency-settlement-table-head span:nth-child(n + 3) {
  text-align: right;
}

.gis-stats-agency-settlement-table-head span:last-child {
  text-align: left;
}

.gis-stats-agency-settlement-table-body {
  display: grid;
}

.gis-stats-agency-settlement-row {
  min-height: var(--control-h-s);
  padding: var(--space-1) var(--space-2);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-settlement-row:last-child {
  border-bottom: none;
}

.gis-stats-agency-settlement-row span,
.gis-stats-agency-settlement-row strong {
  min-width: 0;
  overflow: hidden;
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-settlement-rank {
  color: var(--muted-foreground);
  font-weight: 800;
}

.gis-stats-agency-settlement-name {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  color: var(--foreground);
  font-weight: 800;
}

.gis-stats-agency-settlement-score,
.gis-stats-agency-settlement-household,
.gis-stats-agency-settlement-residential,
.gis-stats-agency-settlement-service {
  justify-self: end;
  color: var(--foreground);
  font-weight: 850;
  text-align: right;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-settlement-household,
.gis-stats-agency-settlement-residential {
  color: var(--muted-foreground);
  font-weight: 750;
}

.gis-stats-agency-settlement-row i {
  min-height: 18px;
  padding: 0 var(--space-1);
  justify-self: start;
}

.gis-stats-agency-stability-list {
  gap: 0;
  padding: var(--space-3);
}

.gis-stats-agency-stability-table {
  display: grid;
  min-width: 0;
  max-width: 100%;
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--card), transparent 3%);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--foreground) 4%, transparent);
  scrollbar-width: thin;
}

.gis-stats-agency-stability-table-head,
.gis-stats-agency-stability-row {
  display: grid;
  grid-template-columns: 36px minmax(86px, 1fr) 52px 52px 52px 52px minmax(88px, 0.72fr) 104px;
  gap: var(--space-1-5);
  align-items: center;
  min-width: 0;
}

.gis-stats-agency-stability-table-head {
  position: sticky;
  top: 0;
  z-index: 1;
  min-height: 30px;
  padding: 0 var(--space-2);
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--muted) 82%, var(--card));
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
}

.gis-stats-agency-stability-table-head span:nth-child(n + 3) {
  text-align: right;
}

.gis-stats-agency-stability-table-head span:nth-child(7),
.gis-stats-agency-stability-table-head span:last-child {
  text-align: left;
}

.gis-stats-agency-stability-table-body {
  display: grid;
}

.gis-stats-agency-stability-row {
  min-height: var(--control-h-s);
  padding: var(--space-1) var(--space-2);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-stability-row:last-child {
  border-bottom: none;
}

.gis-stats-agency-stability-row span,
.gis-stats-agency-stability-row strong {
  min-width: 0;
  overflow: hidden;
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-stability-rank {
  color: var(--muted-foreground);
  font-weight: 800;
}

.gis-stats-agency-stability-name {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  color: var(--foreground);
  font-weight: 800;
}

.gis-stats-agency-stability-score,
.gis-stats-agency-stability-base,
.gis-stats-agency-stability-living,
.gis-stats-agency-stability-balance {
  justify-self: end;
  color: var(--foreground);
  font-weight: 850;
  text-align: right;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-stability-base,
.gis-stats-agency-stability-living,
.gis-stats-agency-stability-balance,
.gis-stats-agency-stability-priority {
  color: var(--muted-foreground);
  font-weight: 750;
}

.gis-stats-agency-stability-priority {
  color: var(--foreground);
}

.gis-stats-agency-stability-row i {
  min-height: 18px;
  padding: 0 var(--space-1);
  justify-self: start;
}

.gis-stats-agency-building-registration-list {
  display: grid;
  gap: 0;
  padding: var(--space-3);
}

.gis-stats-agency-building-registration-table {
  display: grid;
  min-width: 0;
  max-width: 100%;
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--card), transparent 3%);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--foreground) 4%, transparent);
  scrollbar-width: thin;
}

.gis-stats-agency-building-registration-table-head,
.gis-stats-agency-building-registration-row {
  display: grid;
  grid-template-columns: 36px minmax(92px, 1fr) 60px 60px 76px 58px 84px;
  gap: var(--space-1-5);
  align-items: center;
  min-width: 0;
}

.gis-stats-agency-building-registration-table-head {
  position: sticky;
  top: 0;
  z-index: 1;
  min-height: 30px;
  padding: 0 var(--space-2);
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--muted) 82%, var(--card));
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
}

.gis-stats-agency-building-registration-table-head span:nth-child(n + 3) {
  text-align: right;
}

.gis-stats-agency-building-registration-table-body {
  display: grid;
}

.gis-stats-agency-building-registration-row {
  min-height: var(--control-h-s);
  padding: var(--space-1) var(--space-2);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-building-registration-row:last-child {
  border-bottom: none;
}

.gis-stats-agency-building-registration-row span,
.gis-stats-agency-building-registration-row strong {
  min-width: 0;
  overflow: hidden;
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-building-registration-rank {
  color: var(--muted-foreground);
  font-weight: 800;
}

.gis-stats-agency-building-registration-name {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  color: var(--foreground);
  font-weight: 800;
}

.gis-stats-agency-building-registration-count,
.gis-stats-agency-building-registration-residential,
.gis-stats-agency-building-registration-households,
.gis-stats-agency-building-registration-unknown,
.gis-stats-agency-building-registration-latest {
  justify-self: end;
  color: var(--muted-foreground);
  font-weight: 750;
  text-align: right;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-building-registration-count {
  color: var(--foreground);
  font-weight: 850;
}

.gis-stats-agency-building-registration-unknown:not(:empty) {
  color: var(--muted-foreground);
}

.gis-stats-agency-quality-grid {
  display: grid;
}

.gis-stats-agency-map-coverage-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--border);
}

.gis-stats-agency-map-coverage-metrics > div {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
  padding: var(--space-4);
  border-right: 1px solid var(--border);
}

.gis-stats-agency-map-coverage-metrics > div:last-child {
  border-right: none;
}

.gis-stats-agency-map-coverage-metrics span {
  overflow: hidden;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
  line-height: var(--lh-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-map-coverage-metrics strong {
  min-width: 0;
  overflow: hidden;
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 850;
  line-height: var(--lh-sm);
  text-overflow: ellipsis;
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-quality-row {
  display: grid;
  grid-template-columns: minmax(180px, 0.36fr) minmax(0, 1fr);
  gap: var(--space-4);
  align-items: center;
  min-width: 0;
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-quality-row:last-child {
  border-bottom: none;
}

.gis-stats-agency-quality-row > div:first-child {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
}

.gis-stats-agency-quality-row strong {
  min-width: 0;
  overflow: hidden;
  font-size: var(--fs-sm);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gis-stats-agency-quality-row span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.gis-stats-agency-quality-flags {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-1);
}

.gis-stats-agency-quality-flags i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 0 var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-style: normal;
  font-weight: 800;
}

.gis-stats-agency-quality-flags i.is-on {
  border-color: color-mix(in srgb, var(--primary) 38%, var(--border));
  background: color-mix(in srgb, var(--primary) 10%, transparent);
  color: var(--foreground);
}

.gis-stats-agency-quality-flags i.is-off {
  opacity: 0.48;
}

.gis-stats-agency-empty {
  display: grid;
  place-items: center;
  min-height: 96px;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
}

.gis-stats-agency-skeleton-text {
  display: inline-block;
  width: min(100%, var(--stats-skeleton-width, 8ch));
  max-width: 100%;
  min-height: 0.9em;
  border-radius: var(--radius-xs);
  background: color-mix(in srgb, var(--muted-foreground) 20%, var(--muted));
  color: transparent !important;
  overflow: hidden;
  pointer-events: none;
  vertical-align: middle;
  animation: gis-stats-skeleton-pulse 1.25s ease-in-out infinite;
}

strong.gis-stats-agency-skeleton-text {
  min-height: 0.86em;
}

small.gis-stats-agency-skeleton-text,
span.gis-stats-agency-skeleton-text {
  min-height: 0.82em;
}

.gis-stats-agency-skeleton {
  --stats-skeleton-base: color-mix(in srgb, var(--muted-foreground) 18%, var(--muted));
  --stats-skeleton-strong: color-mix(in srgb, var(--muted-foreground) 34%, var(--muted));
  display: grid;
  gap: var(--space-2);
  width: 100%;
  min-width: 0;
  padding: var(--space-3);
  color: transparent;
  pointer-events: none;
}

.gis-stats-agency-skeleton i,
.gis-stats-agency-skeleton b,
.gis-stats-agency-skeleton span {
  display: block;
  border-radius: var(--radius-xs);
  background: var(--stats-skeleton-base);
  animation: gis-stats-skeleton-pulse 1.25s ease-in-out infinite;
}

.gis-stats-agency-skeleton--bars {
  min-height: 236px;
}

.gis-stats-agency-skeleton--bars > div {
  display: grid;
  gap: var(--space-2);
}

.gis-stats-agency-skeleton--bars i {
  width: min(100%, var(--w, 54%));
  height: 14px;
}

.gis-stats-agency-skeleton--bars b {
  width: min(100%, var(--w, 80%));
  height: 7px;
  background: var(--stats-skeleton-strong);
}

.gis-stats-agency-skeleton--table {
  min-height: 244px;
}

.gis-stats-agency-skeleton--table > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 96px 56px;
  align-items: center;
  gap: var(--space-3);
  min-height: 30px;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 72%, transparent);
}

.gis-stats-agency-skeleton--table > div:last-child {
  border-bottom: 0;
}

.gis-stats-agency-skeleton--table i {
  width: min(100%, var(--w, 60%));
  height: 14px;
}

.gis-stats-agency-skeleton--chart {
  min-height: 252px;
  align-items: end;
}

.gis-stats-agency-skeleton-plot {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  align-items: end;
  gap: var(--space-2);
  min-height: 212px;
  padding: var(--space-3) var(--space-2) var(--space-2);
  border: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
  border-radius: var(--radius-sm);
  background:
    linear-gradient(color-mix(in srgb, var(--border) 54%, transparent) 1px, transparent 1px) 0 0 / 100% 25%,
    transparent;
}

.gis-stats-agency-skeleton-plot span {
  height: var(--h, 48%);
  border-radius: var(--radius-xs) var(--radius-xs) 0 0;
}

.gis-stats-agency-skeleton--map {
  position: relative;
  min-height: 280px;
  border: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
  border-radius: var(--radius-sm);
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--border) 35%, transparent) 1px, transparent 1px) 0 0 / 56px 56px,
    linear-gradient(color-mix(in srgb, var(--border) 35%, transparent) 1px, transparent 1px) 0 0 / 56px 56px,
    color-mix(in srgb, var(--muted) 20%, transparent);
  overflow: hidden;
}

.gis-stats-agency-skeleton--map i {
  position: absolute;
  left: var(--x, 50%);
  top: var(--y, 50%);
  width: var(--s, 28px);
  height: var(--s, 28px);
  border-radius: 999px;
  transform: translate(-50%, -50%);
}

.gis-stats-agency-skeleton--chips {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-height: var(--control-h-m);
  padding: 0;
}

.gis-stats-agency-skeleton--chips i {
  width: min(100%, var(--w, 72px));
  height: var(--control-h-s);
  border-radius: var(--radius-sm);
}

.gis-stats-agency-skeleton--detail,
.gis-stats-agency-skeleton--controls {
  min-height: 104px;
}

.gis-stats-agency-skeleton--detail i,
.gis-stats-agency-skeleton--controls i {
  width: min(100%, var(--w, 64%));
  height: 14px;
}

@keyframes gis-stats-skeleton-pulse {
  0%,
  100% {
    opacity: 0.48;
  }
  50% {
    opacity: 0.86;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gis-stats-agency-skeleton-text,
  .gis-stats-agency-skeleton i,
  .gis-stats-agency-skeleton b,
  .gis-stats-agency-skeleton span {
    animation: none;
  }
}

.gis-stats-agency-mini-metrics {
  display: grid;
}

.gis-stats-agency-mini-metrics > div {
  display: grid;
  gap: var(--space-2);
  min-height: 78px;
  padding: var(--space-3);
  border-bottom: 1px solid var(--border);
}

.gis-stats-agency-mini-metrics > div:last-child {
  border-bottom: none;
}

.gis-stats-agency-mini-metrics span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 600;
}

.gis-stats-agency-mini-metrics strong {
  align-self: end;
  font-size: var(--fs-h4);
  line-height: var(--lh-h4);
  font-variant-numeric: tabular-nums lining-nums;
}

.gis-stats-agency-mini-metrics strong.is-up {
  color: var(--success);
}

.gis-stats-agency-mini-metrics strong.is-down {
  color: var(--destructive);
}

@media (max-width: 1024px) {
  body.gis-body.gis-stats-portal-page.gis-shell-standalone .gis-content {
    padding-top: 0;
    padding-inline: var(--space-4);
  }

  .gis-stats-agency-head {
    grid-template-columns: 1fr;
    align-items: start;
    min-height: 0;
    gap: var(--space-3);
  }

  .gis-stats-agency-nav {
    flex-wrap: nowrap;
    justify-content: flex-start;
    width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .gis-stats-agency-nav::-webkit-scrollbar {
    display: none;
  }

  .gis-stats-agency-nav a {
    flex: 0 0 auto;
  }

  .gis-stats-agency-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-stats-agency-home-tools {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-home-search-row {
    grid-template-columns: minmax(280px, 1fr) auto;
  }

  .gis-stats-agency-home-close-list {
    justify-content: flex-start;
  }

  .gis-stats-agency-map-coverage-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-stats-agency-map-coverage-metrics > div {
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-map-coverage-metrics > div:nth-child(2n) {
    border-right: none;
  }

  .gis-stats-agency-map-coverage-metrics > div:nth-last-child(-n + 2) {
    border-bottom: none;
  }

  .gis-stats-agency-stat {
    min-height: 92px;
    border-right: 1px solid color-mix(in srgb, var(--border), transparent 8%);
    border-bottom: 1px solid color-mix(in srgb, var(--border), transparent 8%);
  }

  .gis-stats-agency-stat:nth-child(2n) {
    border-right: none;
  }

  .gis-stats-agency-stat:nth-child(n + 3) {
    border-bottom: none;
  }

  .gis-stats-agency-section-head {
    flex-wrap: wrap;
    align-items: flex-start;
    padding-bottom: var(--space-2);
  }

  .gis-stats-agency-section-head > span {
    flex-basis: 100%;
    text-align: left;
  }

  .gis-stats-agency-playback,
  .gis-stats-agency-quarter-tabs {
    justify-content: flex-start;
  }

  .gis-stats-agency-dashboard {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-directory-grid {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-home-metric-grid,
  .gis-stats-agency-home-link-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-stats-agency-home-link-grid a,
  .gis-stats-agency-home-link-grid a:nth-child(3n),
  .gis-stats-agency-home-link-grid a:nth-last-child(-n + 3) {
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-home-link-grid a:nth-child(2n) {
    border-right: 0;
  }

  .gis-stats-agency-home-link-grid a:nth-last-child(-n + 2) {
    border-bottom: 0;
  }

  .gis-stats-agency-footer {
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }

  .gis-stats-agency-footer-links {
    justify-content: flex-start;
    width: 100%;
  }

  .gis-stats-agency-home-metric-grid a:nth-child(2n) {
    border-right: 0;
  }

  .gis-stats-agency-home-metric-grid a:nth-child(-n + 2) {
    border-bottom: 1px solid var(--border);
  }

  .gis-portal-economy-head,
  .gis-portal-enterprise-head,
  .gis-portal-enterprise-toolbar {
    grid-template-columns: 1fr;
  }

  .gis-portal-economy-head,
  .gis-portal-enterprise-head {
    align-items: start;
  }

  .gis-portal-enterprise-filter-actions {
    justify-content: flex-start;
  }

  .gis-portal-economy-grid {
    grid-template-columns: 1fr;
  }

  .gis-portal-enterprise-toolbar > .input-group:first-child {
    grid-column: auto;
  }

  .gis-stats-agency-dashboard--structure,
  .gis-stats-agency-dashboard--spread,
  .gis-stats-agency-dashboard--living,
  .gis-stats-agency-dashboard--settlement,
  .gis-stats-agency-dashboard--building-registration,
  .gis-stats-agency-dashboard--economy,
  .gis-stats-agency-dashboard--composite,
  .gis-stats-agency-dashboard--industry,
  .gis-stats-agency-dashboard--enterprise,
  .gis-stats-agency-dashboard--age {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-panel--economy-matrix,
  .gis-stats-agency-dashboard--composite .gis-stats-agency-panel,
  .gis-stats-agency-dashboard--industry .gis-stats-agency-panel,
  .gis-stats-agency-dashboard--enterprise .gis-stats-agency-panel {
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .gis-stats-agency-economy-toolbar,
  .gis-stats-agency-economy-map-grid,
  .gis-stats-agency-economy-network-grid,
  .gis-stats-agency-job-commute-grid,
  .gis-stats-agency-block-credit-grid,
  .gis-stats-agency-scenario-grid {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-job-commute-group,
  .gis-stats-agency-job-commute-group:nth-child(2n),
  .gis-stats-agency-job-commute-group:nth-last-child(-n + 2) {
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-job-commute-group:last-child {
    border-bottom: 0;
  }

  .gis-stats-agency-block-credit-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gis-stats-agency-block-credit-summary > div,
  .gis-stats-agency-block-credit-summary > div:last-child {
    min-height: 72px;
    border-right: 1px solid var(--border);
    border-bottom: none;
  }

  .gis-stats-agency-block-credit-summary > div:last-child {
    border-right: none;
  }

  .gis-stats-agency-economy-toolbar {
    align-items: stretch;
  }

  .gis-stats-agency-segmented {
    width: 100%;
    overflow-x: auto;
  }

  .gis-stats-agency-panel-head-actions {
    width: 100%;
    justify-content: space-between;
    margin-left: 0;
  }

  .gis-stats-agency-panel-head-actions .gis-stats-agency-segmented {
    width: auto;
  }

  .gis-stats-agency-economy-map,
  .gis-stats-agency-panel--block-credit .gis-stats-agency-chart,
  .gis-stats-agency-panel--economy-network .gis-stats-agency-chart,
  .gis-stats-agency-scenario-controls {
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-economy-map-grid,
  .gis-stats-agency-economy-network-grid {
    min-height: auto;
  }

  .gis-stats-agency-economy-map-inner,
  .gis-stats-agency-economy-map svg,
  .gis-stats-agency-panel--block-credit .gis-echarts-canvas,
  .gis-stats-agency-panel--economy-network .gis-echarts-canvas {
    height: 300px;
    min-height: 300px;
  }

  .gis-stats-agency-panel--block-credit .gis-echarts-canvas {
    height: 240px;
    min-height: 240px;
  }

  .gis-stats-agency-economy-detail,
  .gis-stats-agency-economy-network-detail {
    height: auto;
    max-height: min(40dvh, 22rem);
    overflow: auto;
  }

  .gis-stats-agency-panel--economy-map .gis-stats-agency-economy-toolbar {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
  }

  .gis-stats-agency-scenario-result {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-stats-agency-panel--age-pyramid {
    grid-row: auto;
  }

  .gis-stats-agency-age-rank-grid {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-age-rank-grid > div {
    border-right: none;
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-age-rank-grid > div:last-child {
    border-bottom: none;
  }

  .gis-stats-agency-development-grid {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid {
    grid-template-columns: 1fr;
    max-height: min(24dvh, 10rem);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-abstract-map {
    min-height: 0;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-abstract-map svg {
    height: 240px;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-map-detail {
    min-height: 0;
    padding: var(--space-2) var(--space-3);
    gap: var(--space-1);
    font-size: var(--fs-xs);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div,
  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-child(2n),
  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-last-child(-n + 2),
  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:last-child {
    min-height: 60px;
    border-right: 1px solid var(--border);
    border-bottom: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:last-child {
    border-right: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div,
  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-child(2n),
  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-child(3n),
  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-last-child(-n + 3),
  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:last-child {
    border-right: none;
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:last-child {
    border-bottom: none;
  }

  .gis-stats-agency-abstract-map {
    border-right: none;
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-chart-wrap {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-dashboard--growth .gis-stats-agency-panel--chart .gis-stats-agency-chart-wrap {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-panel--flow-chart .gis-stats-agency-chart-wrap,
  .gis-stats-agency-panel--spread-chart .gis-stats-agency-chart-wrap {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-chart-meta {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid var(--border);
    border-left: none;
  }

  .gis-stats-agency-chart-meta--flow,
  .gis-stats-agency-chart-meta--spread,
  .gis-stats-agency-chart-meta--growth {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gis-stats-agency-chart-meta > div {
    border-right: 1px solid var(--border);
    border-bottom: none;
  }

  .gis-stats-agency-chart-meta--flow > div,
  .gis-stats-agency-chart-meta--spread > div,
  .gis-stats-agency-chart-meta--growth > div {
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-chart-meta--flow > div:nth-child(3n),
  .gis-stats-agency-chart-meta--spread > div:nth-child(3n),
  .gis-stats-agency-chart-meta--growth > div:nth-child(3n) {
    border-right: none;
  }

  .gis-stats-agency-chart-meta--flow > div:nth-last-child(-n + 3),
  .gis-stats-agency-chart-meta--spread > div:nth-last-child(-n + 3),
  .gis-stats-agency-chart-meta--growth > div:nth-last-child(-n + 3) {
    border-bottom: none;
  }

  .gis-stats-agency-chart-meta > div:last-child {
    border-right: none;
  }

  .gis-stats-agency-panel--age-trend .gis-stats-agency-chart-meta > div:last-child {
    border-right: none;
  }

  .gis-stats-agency-insight-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-stats-agency-industry-place-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-stats-agency-industry-place-metrics > div {
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-industry-place-metrics > div:nth-child(2n) {
    border-right: none;
  }

  .gis-stats-agency-industry-place-metrics > div:nth-last-child(-n + 2) {
    border-bottom: none;
  }

  .gis-stats-agency-insight-strip > div:nth-child(2n) {
    border-right: none;
  }

  .gis-stats-agency-insight-strip > div:nth-child(-n + 2) {
    border-bottom: 1px solid var(--border);
  }
}

@media (min-width: 720px) and (max-width: 1024px) {
  .gis-stats-agency-panel--age-pyramid .gis-stats-agency-pyramid-shell {
    grid-template-columns: minmax(0, 1fr) minmax(10rem, 0.28fr);
    grid-template-areas:
      "toolbar toolbar"
      "note note"
      "chart metrics";
    align-items: start;
    gap: var(--space-3);
    padding: var(--space-3);
  }

  .gis-stats-agency-panel--age-pyramid .gis-stats-agency-pyramid-toolbar {
    grid-area: toolbar;
  }

  .gis-stats-agency-panel--age-pyramid .gis-stats-agency-pyramid-note {
    grid-area: note;
    margin: 0;
  }

  .gis-stats-agency-panel--age-pyramid .gis-stats-agency-pyramid {
    grid-area: chart;
    gap: 3px;
  }

  .gis-stats-agency-panel--age-pyramid .gis-stats-agency-pyramid-axis {
    padding-bottom: var(--space-0-5);
  }

  .gis-stats-agency-panel--age-pyramid .gis-stats-agency-pyramid-row {
    min-height: 18px;
  }

  .gis-stats-agency-panel--age-pyramid .gis-stats-agency-pyramid-bar {
    height: 12px;
  }

  .gis-stats-agency-panel--age-pyramid .gis-stats-agency-pyramid-metrics {
    grid-area: metrics;
    grid-template-columns: 1fr;
    align-self: stretch;
  }

  .gis-stats-agency-panel--age-pyramid .gis-stats-agency-pyramid-metrics > div,
  .gis-stats-agency-panel--age-pyramid .gis-stats-agency-pyramid-metrics > div:last-child {
    min-height: 0;
    padding: var(--space-2) var(--space-2-5);
    border-right: none;
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-panel--age-pyramid .gis-stats-agency-pyramid-metrics > div:last-child {
    border-bottom: none;
  }

  .gis-stats-agency-panel--age-pyramid .gis-stats-agency-pyramid-metrics strong {
    overflow: hidden;
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .gis-stats-agency-age-rank-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-stats-agency-age-rank-grid > div,
  .gis-stats-agency-age-rank-grid > div:last-child {
    border-bottom: none;
  }

  .gis-stats-agency-age-rank-grid > div {
    border-right: 1px solid var(--border);
  }

  .gis-stats-agency-age-rank-grid > div:last-child {
    border-right: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide {
    gap: var(--space-1-5);
    padding: var(--space-2) var(--space-3);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-head {
    align-items: center;
    flex-direction: row;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: 7.75rem;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div,
  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-child(2n),
  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-child(3n),
  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-last-child(-n + 3),
  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:last-child {
    grid-template-columns: minmax(5.5rem, auto) minmax(0, 1fr);
    gap: var(--space-1-5);
    padding: var(--space-1-5) var(--space-2);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-child(2n),
  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:last-child {
    border-right: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide dd {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-grid {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 0.42fr);
    min-height: 0;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-abstract-map {
    min-height: 0;
    border-right: 1px solid var(--border);
    border-bottom: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-abstract-map svg {
    height: 280px;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-map-detail {
    min-height: 0;
    padding: var(--space-2);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-map-detail > span:last-child {
    display: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div,
  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-child(2n),
  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-last-child(-n + 2),
  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:last-child {
    min-height: 58px;
    padding: var(--space-1-5);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics span,
  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics strong {
    overflow: hidden;
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics .gis-stats-tip .gis-tip-trigger {
    --stats-tip-visual-size: 18px;
    border-radius: var(--radius-sm);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics .gis-stats-tip .gis-tip-trigger .material-symbols-outlined {
    --stats-icon-box-size: var(--fs-xs);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-child(2n) {
    border-right: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-last-child(-n + 2) {
    border-bottom: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:last-child {
    border-right: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-list {
    max-height: 8.75rem;
    padding: var(--space-2);
  }

}

@media (min-width: 900px) and (max-width: 1024px) {
  .gis-stats-agency-economy-map-grid,
  .gis-stats-agency-economy-network-grid {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 0.42fr);
    min-height: 0;
  }

  .gis-stats-agency-economy-map,
  .gis-stats-agency-panel--economy-network .gis-stats-agency-chart {
    border-right: 1px solid var(--border);
    border-bottom: none;
  }

  .gis-stats-agency-economy-map-inner,
  .gis-stats-agency-economy-map svg,
  .gis-stats-agency-panel--economy-network .gis-echarts-canvas {
    height: 280px;
    min-height: 280px;
  }

  .gis-stats-agency-economy-detail,
  .gis-stats-agency-economy-network-detail {
    height: 316px;
    max-height: none;
  }
}

@media (min-width: 641px) and (max-width: 1024px) {
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head--rank {
    flex-wrap: nowrap;
    min-height: var(--control-h-m);
    padding-top: var(--space-1);
    padding-bottom: var(--space-1);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head--rank h3 {
    flex: 1 1 auto;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head--rank .gis-stats-agency-panel-head-actions {
    flex: 0 0 auto;
    width: auto;
    margin-left: auto;
    justify-content: flex-end;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head--rank .gis-stats-agency-panel-head-actions .gis-stats-agency-segmented {
    flex: 0 0 auto;
    width: auto;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head--rank .gis-stats-agency-panel-head-actions > span {
    flex: 0 0 auto;
    text-align: right;
  }
}

@media (max-width: 640px) {
  body.gis-body.gis-stats-portal-page input,
  body.gis-body.gis-stats-portal-page select,
  body.gis-body.gis-stats-portal-page textarea {
    font-size: 16px;
  }

  body.gis-body.gis-stats-portal-page button,
  body.gis-body.gis-stats-portal-page a {
    touch-action: manipulation;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    min-height: 0;
    gap: var(--space-0-5);
    padding: var(--space-2) var(--space-3);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head h3 {
    white-space: normal;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head > span {
    min-width: 0;
    justify-self: start;
    overflow-wrap: anywhere;
    line-height: var(--lh-xs);
    text-align: left;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head-actions {
    display: grid;
    width: 100%;
    gap: var(--space-1);
    margin-left: 0;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head-actions .gis-stats-agency-segmented {
    width: 100%;
    min-width: 0;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head-actions > span {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    color: var(--muted-foreground);
    line-height: var(--lh-xs);
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head--rank .gis-stats-agency-panel-head-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    width: 100%;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head--rank .gis-stats-agency-panel-head-actions .gis-stats-agency-segmented {
    flex: 0 0 auto;
    width: auto;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head--rank .gis-stats-agency-panel-head-actions > span {
    flex: 1 1 auto;
    text-align: right;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-stats-agency-panel-head {
    display: flex;
    align-items: center;
    min-height: var(--control-h-m);
    padding: 0 var(--space-2);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-stats-agency-panel-head h3 {
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-stats-agency-panel-head > span {
    justify-self: end;
    overflow: hidden;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .gis-stats-agency-head {
    padding: var(--space-2-5) 0;
  }

  .gis-stats-agency-head h1 {
    font-size: clamp(1.55rem, 8vw, 1.9rem);
  }

  .gis-stats-agency-head-main {
    align-items: center;
    max-width: calc(100vw - var(--space-8));
  }

  .gis-stats-agency-head-meta {
    display: grid;
    gap: var(--space-1);
  }

  .gis-stats-agency-head-meta > span {
    display: none;
  }

  .gis-stats-agency-section-head:not(:has(.gis-stats-agency-playback)) {
    flex-wrap: nowrap;
    align-items: center;
    padding-bottom: 0;
  }

  .gis-stats-agency-section-head:not(:has(.gis-stats-agency-playback)) h2 {
    min-width: 0;
  }

  .gis-stats-agency-section-head:not(:has(.gis-stats-agency-playback)) > span {
    flex: 0 1 auto;
    flex-basis: auto;
    max-width: 50%;
    min-width: 0;
    overflow: hidden;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .gis-stats-agency-data-scale {
    max-width: 100%;
  }

  .gis-stats-agency-nav {
    gap: var(--space-2-5);
  }

  .gis-stats-agency-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-stats-agency-home-tools {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-home-context {
    display: grid;
    gap: var(--space-2);
  }

  .gis-stats-agency-home-search-row {
    grid-template-columns: 1fr;
    gap: var(--space-2);
  }

  .gis-stats-agency-home-search-feedback {
    justify-content: flex-start;
  }

  .gis-stats-agency-home-close-list {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: var(--space-1);
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scroll-padding-inline: var(--space-1);
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .gis-stats-agency-home-close-list::-webkit-scrollbar {
    display: none;
  }

  .gis-stats-agency-home-close-list strong {
    flex: 0 0 auto;
  }

  .gis-stats-agency-home-close-list strong {
    justify-content: center;
    min-width: 0;
    min-height: 30px;
    padding-inline: var(--space-1-5);
    padding-block: var(--space-1);
    line-height: var(--lh-xs);
    white-space: nowrap;
  }

  .gis-stats-agency-home-overview,
  .gis-stats-agency-home-recommend {
    padding: var(--space-2);
  }

  .gis-stats-agency-home-primary {
    grid-template-columns: 1fr;
    gap: var(--space-2);
  }

  .gis-stats-agency-home-section-head {
    align-items: start;
  }

  .gis-stats-agency-home-section-head > span {
    align-self: start;
  }

  .gis-stats-agency-home-link-grid {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-home-link-grid a,
  .gis-stats-agency-home-link-grid a:nth-child(2n),
  .gis-stats-agency-home-link-grid a:nth-child(3n),
  .gis-stats-agency-home-link-grid a:nth-last-child(-n + 2),
  .gis-stats-agency-home-link-grid a:nth-last-child(-n + 3) {
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-home-link-grid a:last-child {
    border-bottom: 0;
  }

  .gis-stats-agency-home-metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-stats-agency-home-metric-grid a {
    min-height: 96px;
    padding: var(--space-3) var(--space-2);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-home-metric-grid a:nth-child(2n) {
    border-right: 0;
  }

  .gis-stats-agency-home-metric-grid a:nth-child(n + 3) {
    border-bottom: 0;
  }

  .gis-stats-agency-home-metric-grid strong {
    font-size: var(--fs-h3);
    line-height: var(--lh-h3);
  }

  .gis-stats-agency-footer {
    gap: var(--space-1);
    padding: var(--space-1) 0;
  }

  .gis-stats-agency-directory {
    padding: var(--space-2);
  }

  .gis-stats-agency-directory-head {
    align-items: start;
  }

  .gis-stats-agency-directory-grid {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-tabs {
    overflow-x: auto;
    flex-wrap: nowrap;
    overscroll-behavior-x: contain;
    scroll-padding-inline: var(--space-2);
    -webkit-overflow-scrolling: touch;
  }

  .gis-stats-agency-tab-group {
    flex: 0 0 auto;
    flex-wrap: nowrap;
    border-right: 1px solid var(--border);
  }

  .gis-stats-agency-tab-group-label {
    flex: 0 0 auto;
  }

  .gis-stats-agency-tabs button {
    flex: 0 0 auto;
  }

  .gis-stats-agency-industry-place-toolbar .gis-stats-agency-segmented {
    flex-wrap: nowrap;
  }

  .gis-stats-agency-industry-place-metrics {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-industry-place-metrics > div,
  .gis-stats-agency-industry-place-metrics > div:nth-child(2n),
  .gis-stats-agency-industry-place-metrics > div:nth-child(4n),
  .gis-stats-agency-industry-place-metrics > div:nth-last-child(-n + 2) {
    border-right: none;
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-industry-place-metrics > div:last-child {
    border-bottom: none;
  }

  .gis-stats-agency-playback {
    width: 100%;
    align-items: stretch;
    flex-direction: column;
  }

  .gis-stats-agency-section-head > .gis-stats-agency-playback {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-1);
  }

  .gis-stats-agency-section-head > .gis-stats-agency-playback .gis-stats-agency-quarter-tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--space-1);
    min-width: 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .gis-stats-agency-section-head > .gis-stats-agency-playback .gis-stats-agency-quarter-tabs::-webkit-scrollbar {
    display: none;
  }

  .gis-stats-agency-section-head > .gis-stats-agency-playback .gis-stats-agency-quarter-tab {
    flex: 0 0 auto;
    min-width: 68px;
    width: auto;
    padding-inline: var(--space-2);
  }

  .gis-stats-agency-period-mode {
    width: 100%;
  }

  .gis-stats-agency-period-mode button {
    flex: 1 1 0;
  }

  .gis-stats-agency-quarter-tab {
    flex: 1 1 88px;
  }

  .gis-stats-agency-play-button {
    width: 100%;
  }

  .gis-stats-agency-section-head > .gis-stats-agency-playback .gis-stats-agency-play-button {
    width: auto;
    min-width: 44px;
    padding-inline: var(--space-2);
  }

  .gis-stats-agency-section-head > .gis-stats-agency-playback .gis-stats-agency-play-button span:last-child {
    display: inline;
  }

  .gis-stats-agency-stat {
    grid-template-rows: auto auto auto;
    min-height: 88px;
    padding: var(--space-2-5) var(--space-3);
    border-right: 1px solid color-mix(in srgb, var(--border), transparent 8%);
    border-bottom: 1px solid color-mix(in srgb, var(--border), transparent 8%);
  }

  .gis-stats-agency-stat:nth-child(2n) {
    border-right: none;
  }

  .gis-stats-agency-stat:nth-child(n + 3) {
    border-bottom: none;
  }

  .gis-stats-agency-stat strong {
    font-size: clamp(1.28rem, 7vw, 1.62rem);
  }

  .gis-stats-agency-stat small {
    line-height: var(--lh-xs);
    overflow-wrap: anywhere;
    white-space: normal;
  }

  .gis-stats-agency-chart {
    padding: var(--space-3);
  }

  .gis-stats-agency-panel--spread-chart .gis-stats-agency-chart,
  .gis-stats-agency-dashboard--growth .gis-stats-agency-panel--chart .gis-stats-agency-chart {
    padding-inline: var(--space-2);
  }

  .gis-stats-agency-chart .gis-echarts-canvas {
    height: 240px;
    min-height: 240px;
  }

  .gis-stats-agency-chart--compact .gis-echarts-canvas {
    height: 200px;
    min-height: 200px;
  }

  .gis-stats-agency-panel--economy-network .gis-stats-agency-chart .gis-echarts-canvas {
    height: 300px;
    min-height: 300px;
  }

  .gis-stats-agency-chart-meta {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-chart-meta--flow,
  .gis-stats-agency-chart-meta--spread,
  .gis-stats-agency-chart-meta--growth {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-stats-agency-chart-meta > div {
    border-right: none;
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-chart-meta--flow > div,
  .gis-stats-agency-chart-meta--flow > div:nth-child(3n),
  .gis-stats-agency-chart-meta--flow > div:nth-last-child(-n + 3),
  .gis-stats-agency-chart-meta--spread > div,
  .gis-stats-agency-chart-meta--spread > div:nth-child(3n),
  .gis-stats-agency-chart-meta--spread > div:nth-last-child(-n + 3),
  .gis-stats-agency-chart-meta--growth > div,
  .gis-stats-agency-chart-meta--growth > div:nth-child(3n),
  .gis-stats-agency-chart-meta--growth > div:nth-last-child(-n + 3) {
    border-right: none;
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-chart-meta > div:last-child {
    border-bottom: none;
  }

  .gis-stats-agency-chart-meta--spread > div,
  .gis-stats-agency-chart-meta--spread > div:nth-child(3n),
  .gis-stats-agency-chart-meta--spread > div:nth-last-child(-n + 3),
  .gis-stats-agency-chart-meta--growth > div,
  .gis-stats-agency-chart-meta--growth > div:nth-child(3n),
  .gis-stats-agency-chart-meta--growth > div:nth-last-child(-n + 3) {
    min-height: 76px;
    gap: var(--space-1);
    padding: var(--space-2) var(--space-3);
  }

  .gis-stats-agency-pyramid-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .gis-stats-agency-pyramid-select {
    grid-template-columns: 1fr;
    min-width: 0;
  }

  .gis-stats-agency-pyramid-legend {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .gis-stats-agency-pyramid-axis,
  .gis-stats-agency-pyramid-row {
    grid-template-columns: minmax(0, 1fr) 40px minmax(0, 1fr);
    gap: var(--space-1);
  }

  .gis-stats-agency-pyramid-axis span:first-child {
    grid-column: 1;
  }

  .gis-stats-agency-pyramid-axis span:nth-child(2) {
    grid-column: 2;
  }

  .gis-stats-agency-pyramid-axis span:last-child {
    grid-column: 3;
  }

  .gis-stats-agency-pyramid-value {
    display: none;
  }

  .gis-stats-agency-pyramid-bar.is-left {
    grid-column: 1;
  }

  .gis-stats-agency-pyramid-age {
    grid-column: 2;
  }

  .gis-stats-agency-pyramid-bar.is-right {
    grid-column: 3;
  }

  .gis-stats-agency-pyramid-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-stats-agency-pyramid-metrics > div,
  .gis-stats-agency-pyramid-metrics > div:last-child {
    min-height: 66px;
    padding: var(--space-2) var(--space-2-5);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-pyramid-metrics > div:nth-child(2n),
  .gis-stats-agency-pyramid-metrics > div:last-child {
    border-right: none;
  }

  .gis-stats-agency-pyramid-metrics > div:nth-last-child(-n + 2) {
    border-bottom: none;
  }

  .gis-stats-agency-pyramid-metrics strong {
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
  }

  .gis-stats-agency-chart-meta--flow > div,
  .gis-stats-agency-chart-meta--flow > div:nth-child(3n),
  .gis-stats-agency-chart-meta--flow > div:nth-last-child(-n + 3),
  .gis-stats-agency-chart-meta--flow > div:last-child,
  .gis-stats-agency-chart-meta--spread > div,
  .gis-stats-agency-chart-meta--spread > div:nth-child(3n),
  .gis-stats-agency-chart-meta--spread > div:nth-last-child(-n + 3),
  .gis-stats-agency-chart-meta--spread > div:last-child {
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-chart-meta--flow > div:nth-child(2n),
  .gis-stats-agency-chart-meta--spread > div:nth-child(2n),
  .gis-stats-agency-chart-meta--growth > div:nth-child(2n) {
    border-right: none;
  }

  .gis-stats-agency-chart-meta--flow > div:nth-last-child(-n + 2),
  .gis-stats-agency-chart-meta--spread > div:nth-last-child(-n + 2),
  .gis-stats-agency-chart-meta--growth > div:nth-last-child(-n + 2) {
    border-bottom: none;
  }

  .gis-stats-agency-spread-detail {
    grid-template-columns: 1fr;
    gap: var(--space-2);
    padding: var(--space-3);
  }

  .gis-stats-agency-spread-list {
    padding: var(--space-3);
  }

  .gis-stats-agency-spread-table-head,
  .gis-stats-agency-spread-list .gis-stats-agency-spread-row {
    grid-template-columns: 34px minmax(0, 1fr) 56px minmax(78px, 0.58fr);
    gap: var(--space-1);
  }

  .gis-stats-agency-spread-table-head span:nth-child(4),
  .gis-stats-agency-spread-list .gis-stats-agency-spread-row .gis-stats-agency-spread-sample {
    display: none;
  }

  .gis-stats-agency-spread-table-head span:last-child {
    text-align: left;
  }

  .gis-stats-agency-spread-list .gis-stats-agency-spread-row {
    min-height: 32px;
    padding-inline: var(--space-2);
  }

  .gis-stats-agency-spread-list .gis-stats-agency-spread-row .gis-stats-agency-spread-name,
  .gis-stats-agency-spread-list .gis-stats-agency-spread-row .gis-stats-agency-spread-ratio {
    font-size: var(--fs-xs);
  }

  .gis-stats-agency-spread-list .gis-stats-agency-spread-row .gis-stats-agency-spread-sample {
    grid-template-columns: minmax(48px, auto) minmax(42px, auto);
    gap: var(--space-1);
  }

  .gis-stats-agency-growth-list {
    padding: var(--space-3);
  }

  .gis-stats-agency-growth-table-head,
  .gis-stats-agency-growth-row {
    grid-template-columns: 36px minmax(0, 1fr) 52px 64px 58px 88px;
    gap: var(--space-1);
  }

  .gis-stats-agency-growth-table-head span:nth-child(4),
  .gis-stats-agency-growth-table-head span:nth-child(5),
  .gis-stats-agency-growth-row .gis-stats-agency-growth-population,
  .gis-stats-agency-growth-row .gis-stats-agency-growth-building {
    display: none;
  }

  .gis-stats-agency-growth-row {
    min-height: 32px;
    padding-inline: var(--space-2);
  }

  .gis-stats-agency-flow-network-list {
    padding: var(--space-3);
  }

  .gis-stats-agency-flow-network-table-head,
  .gis-stats-agency-flow-network-row {
    grid-template-columns: 32px minmax(0, 1fr) 52px 54px minmax(88px, 0.72fr);
    gap: var(--space-1);
  }

  .gis-stats-agency-flow-network-table-head span:nth-child(4),
  .gis-stats-agency-flow-network-table-head span:nth-child(6),
  .gis-stats-agency-flow-network-row .gis-stats-agency-flow-network-partner,
  .gis-stats-agency-flow-network-row .gis-stats-agency-flow-network-primary {
    display: none;
  }

  .gis-stats-agency-flow-network-row {
    min-height: 32px;
    padding-inline: var(--space-2);
  }

  .gis-stats-agency-living-list {
    padding: var(--space-3);
  }

  .gis-stats-agency-living-table-head,
  .gis-stats-agency-living-row {
    grid-template-columns: 32px minmax(0, 1fr) 52px minmax(72px, 0.72fr) minmax(68px, 0.6fr);
    gap: var(--space-1);
  }

  .gis-stats-agency-living-table-head span:nth-child(4),
  .gis-stats-agency-living-table-head span:nth-child(5),
  .gis-stats-agency-living-row .gis-stats-agency-living-poi,
  .gis-stats-agency-living-row .gis-stats-agency-living-primary {
    display: none;
  }

  .gis-stats-agency-living-row {
    min-height: 32px;
    padding-inline: var(--space-2);
  }

  .gis-stats-agency-living-detail {
    padding: 0 var(--space-2) var(--space-2) calc(32px + var(--space-2));
  }

  .gis-stats-agency-living-detail li {
    grid-template-columns: 1fr;
    gap: var(--space-1);
  }

  .gis-stats-agency-settlement-list {
    padding: var(--space-3);
  }

  .gis-stats-agency-settlement-table-head,
  .gis-stats-agency-settlement-row {
    grid-template-columns: 32px minmax(0, 1fr) 52px minmax(70px, 0.64fr) minmax(88px, 0.72fr);
    gap: var(--space-1);
  }

  .gis-stats-agency-settlement-table-head span:nth-child(4),
  .gis-stats-agency-settlement-table-head span:nth-child(5),
  .gis-stats-agency-settlement-row .gis-stats-agency-settlement-household,
  .gis-stats-agency-settlement-row .gis-stats-agency-settlement-residential {
    display: none;
  }

  .gis-stats-agency-settlement-row {
    min-height: 32px;
    padding-inline: var(--space-2);
  }

  .gis-stats-agency-building-registration-list {
    padding: var(--space-3);
  }

  .gis-stats-agency-building-registration-table-head,
  .gis-stats-agency-building-registration-row {
    grid-template-columns: 32px minmax(0, 1fr) 52px 52px 56px;
    gap: var(--space-1);
  }

  .gis-stats-agency-building-registration-table-head span:nth-child(5),
  .gis-stats-agency-building-registration-table-head span:nth-child(7),
  .gis-stats-agency-building-registration-row .gis-stats-agency-building-registration-households,
  .gis-stats-agency-building-registration-row .gis-stats-agency-building-registration-latest {
    display: none;
  }

  .gis-stats-agency-building-registration-row {
    min-height: 32px;
    padding-inline: var(--space-2);
  }

  .gis-stats-agency-stability-list {
    padding: var(--space-3);
  }

  .gis-stats-agency-stability-table-head,
  .gis-stats-agency-stability-row {
    grid-template-columns: 32px minmax(0, 1fr) 52px minmax(82px, 0.72fr) minmax(88px, 0.72fr);
    gap: var(--space-1);
  }

  .gis-stats-agency-stability-table-head span:nth-child(4),
  .gis-stats-agency-stability-table-head span:nth-child(5),
  .gis-stats-agency-stability-table-head span:nth-child(6),
  .gis-stats-agency-stability-row .gis-stats-agency-stability-base,
  .gis-stats-agency-stability-row .gis-stats-agency-stability-living,
  .gis-stats-agency-stability-row .gis-stats-agency-stability-balance {
    display: none;
  }

  .gis-stats-agency-stability-row {
    min-height: 32px;
    padding-inline: var(--space-2);
  }

  .gis-stats-agency-bar-list {
    padding: var(--space-3);
  }

  .gis-stats-agency-list-more {
    align-items: center;
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--space-2);
    padding: 0 var(--space-3) var(--space-3);
  }

  .gis-stats-agency-list-more button {
    flex: 0 0 auto;
    width: auto;
  }

  .gis-stats-agency-list-more span {
    flex: 1 1 9rem;
    min-width: min(100%, 9rem);
    overflow-wrap: anywhere;
    line-height: var(--lh-xs);
    text-align: right;
    white-space: normal;
  }

  .gis-stats-agency-block-credit-summary > div {
    min-height: 62px;
    padding: var(--space-2);
    border-right: 1px solid var(--border);
    border-bottom: none;
  }

  .gis-stats-agency-block-credit-summary > div:last-child {
    border-right: none;
  }

  .gis-stats-agency-block-credit-summary strong {
    font-size: clamp(var(--fs-xs), 3vw, var(--fs-sm));
    line-height: var(--lh-xs);
    white-space: nowrap;
  }

  .gis-stats-agency-abstract-map {
    min-height: 260px;
    padding: var(--space-3);
  }

  .gis-stats-agency-abstract-map svg {
    height: 240px;
  }

  .gis-stats-agency-development-metrics {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-development-metrics > div,
  .gis-stats-agency-development-metrics > div:nth-child(2n),
  .gis-stats-agency-development-metrics > div:nth-last-child(-n + 2) {
    border-right: none;
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-development-metrics > div:last-child {
    border-bottom: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div,
  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-child(2n),
  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-last-child(-n + 2),
  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:last-child {
    min-height: 56px;
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-child(2n) {
    border-right: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-last-child(-n + 2) {
    border-bottom: none;
  }

  .gis-stats-agency-development-guide {
    padding: var(--space-3);
  }

  .gis-stats-agency-development-guide-head {
    align-items: flex-start;
    flex-direction: column;
    gap: var(--space-1);
  }

  .gis-stats-agency-development-guide-head span {
    text-align: left;
    white-space: normal;
  }

  .gis-stats-agency-development-guide-grid {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-development-guide-grid > div,
  .gis-stats-agency-development-guide-grid > div:nth-child(2n),
  .gis-stats-agency-development-guide-grid > div:nth-last-child(-n + 2) {
    border-right: none;
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-development-guide-grid > div:last-child {
    border-bottom: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide {
    gap: var(--space-2);
    padding: var(--space-2);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid {
    display: block;
    gap: 0;
    max-height: min(22dvh, 8.5rem);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-bottom: 0;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--card), transparent 2%);
    scrollbar-width: thin;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div,
  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-child(2n),
  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-child(3n),
  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-last-child(-n + 2),
  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-last-child(-n + 3),
  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:last-child {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-1);
    min-height: 0;
    padding: var(--space-2);
    border: 0;
    border-bottom: 1px solid var(--border);
    border-radius: 0;
    background: transparent;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:last-child {
    border-bottom: 0;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-map-detail {
    padding: var(--space-2);
  }

  .gis-stats-agency-development-list {
    padding: var(--space-3);
  }

  .gis-stats-agency-development-table-head,
  .gis-stats-agency-development-list .gis-stats-agency-development-row {
    grid-template-columns: 36px minmax(0, 1fr) 62px 54px 82px;
    gap: var(--space-1);
  }

  .gis-stats-agency-quality-row {
    grid-template-columns: minmax(4.75rem, 1fr) minmax(0, min(12rem, 68%));
    gap: var(--space-2);
    min-height: 44px;
    padding: var(--space-1-5) var(--space-2);
  }

  .gis-stats-agency-quality-row > div:first-child {
    gap: var(--space-0-5);
    align-content: center;
  }

  .gis-stats-agency-quality-row strong,
  .gis-stats-agency-quality-row span {
    line-height: var(--lh-xs);
  }

  .gis-stats-agency-quality-flags {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 2px;
    justify-content: stretch;
  }

  .gis-stats-agency-quality-flags i {
    min-width: 0;
    min-height: 20px;
    padding-inline: var(--space-0-5);
    font-size: var(--fs-2xs);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .gis-stats-agency-flow-pair-list {
    padding: var(--space-3);
  }

  .gis-stats-agency-flow-pair-row {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-flow-pair-main,
  .gis-stats-agency-flow-pair-meta {
    grid-template-columns: 1fr;
  }

  .gis-stats-agency-flow-pair-main span {
    width: 100%;
  }
}

@media (min-width: 560px) and (max-width: 640px) {
  .gis-stats-agency-chart-meta:not(.gis-stats-agency-chart-meta--flow):not(.gis-stats-agency-chart-meta--spread):not(.gis-stats-agency-chart-meta--growth) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gis-stats-agency-chart-meta:not(.gis-stats-agency-chart-meta--flow):not(.gis-stats-agency-chart-meta--spread):not(.gis-stats-agency-chart-meta--growth) > div {
    min-width: 0;
    min-height: 76px;
    padding: var(--space-3);
    border-right: 1px solid var(--border);
    border-bottom: none;
  }

  .gis-stats-agency-chart-meta:not(.gis-stats-agency-chart-meta--flow):not(.gis-stats-agency-chart-meta--spread):not(.gis-stats-agency-chart-meta--growth) > div:last-child {
    border-right: none;
  }
}

@media (min-width: 361px) and (max-width: 559px) {
  .gis-stats-agency-chart-meta:not(.gis-stats-agency-chart-meta--flow):not(.gis-stats-agency-chart-meta--spread):not(.gis-stats-agency-chart-meta--growth) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-stats-agency-chart-meta:not(.gis-stats-agency-chart-meta--flow):not(.gis-stats-agency-chart-meta--spread):not(.gis-stats-agency-chart-meta--growth) > div {
    min-width: 0;
    min-height: 76px;
    padding: var(--space-3);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-chart-meta:not(.gis-stats-agency-chart-meta--flow):not(.gis-stats-agency-chart-meta--spread):not(.gis-stats-agency-chart-meta--growth) > div:nth-child(2n),
  .gis-stats-agency-chart-meta:not(.gis-stats-agency-chart-meta--flow):not(.gis-stats-agency-chart-meta--spread):not(.gis-stats-agency-chart-meta--growth) > div:last-child {
    border-right: none;
  }

  .gis-stats-agency-chart-meta:not(.gis-stats-agency-chart-meta--flow):not(.gis-stats-agency-chart-meta--spread):not(.gis-stats-agency-chart-meta--growth) > div:nth-child(n + 3) {
    border-bottom: none;
  }

  .gis-stats-agency-chart-meta:not(.gis-stats-agency-chart-meta--flow):not(.gis-stats-agency-chart-meta--spread):not(.gis-stats-agency-chart-meta--growth) > div:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-stats-agency-chart {
    padding: var(--space-2);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-echarts-canvas {
    height: clamp(200px, 54vw, 220px);
    min-height: 0;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-stats-agency-chart-meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-content: stretch;
    overflow: hidden;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-stats-agency-chart-meta > div,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-stats-agency-chart-meta > div:nth-child(2n),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-stats-agency-chart-meta > div:nth-child(n + 3),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-stats-agency-chart-meta > div:last-child,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-stats-agency-chart-meta > div:last-child:nth-child(odd) {
    grid-column: auto;
    min-width: 0;
    min-height: 66px;
    gap: var(--space-0-5);
    padding: var(--space-1-5) var(--space-2);
    border-right: 1px solid var(--border);
    border-bottom: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-stats-agency-chart-meta > div:nth-child(2n) {
    border-right: 1px solid var(--border);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-stats-agency-chart-meta > div:last-child {
    border-right: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-stats-agency-chart-meta span {
    min-width: 0;
    overflow: hidden;
    font-size: var(--fs-2xs);
    line-height: var(--lh-2xs);
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-stats-agency-chart-meta strong {
    min-width: 0;
    overflow: hidden;
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-stats-agency-chart-meta .gis-stats-agency-label-with-tip {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-stats-agency-chart-meta .gis-stats-tip-label {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
  }
}

@media (max-width: 420px) {
  .gis-stats-agency-map-coverage-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-stats-agency-map-coverage-metrics > div {
    padding: var(--space-3);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }

  .gis-stats-agency-map-coverage-metrics > div:nth-child(2n) {
    border-right: none;
  }

  .gis-stats-agency-map-coverage-metrics > div:nth-last-child(-n + 2) {
    border-bottom: none;
  }

  .gis-stats-agency-map-coverage-metrics strong {
    overflow: visible;
    white-space: normal;
  }

  .gis-stats-agency-spread-table-head,
  .gis-stats-agency-spread-list .gis-stats-agency-spread-row {
    grid-template-columns: 32px minmax(0, 1fr) 52px minmax(74px, 0.58fr);
  }

  .gis-stats-agency-spread-table-head span:nth-child(4),
  .gis-stats-agency-spread-list .gis-stats-agency-spread-row .gis-stats-agency-spread-sample {
    display: none;
  }

  .gis-stats-agency-development-table-head,
  .gis-stats-agency-development-list .gis-stats-agency-development-row {
    grid-template-columns: 32px minmax(0, 1fr) 56px minmax(74px, 0.58fr);
  }

  .gis-stats-agency-development-table-head span:nth-child(4),
  .gis-stats-agency-development-list .gis-stats-agency-development-row .gis-stats-agency-development-sample {
    display: none;
  }

  .gis-stats-agency-growth-table-head,
  .gis-stats-agency-growth-row {
    grid-template-columns: 32px minmax(0, 1fr) 46px 46px minmax(68px, 0.56fr);
  }

  .gis-stats-agency-growth-table-head span:nth-child(4),
  .gis-stats-agency-growth-table-head span:nth-child(5),
  .gis-stats-agency-growth-table-head span:nth-child(6),
  .gis-stats-agency-growth-row .gis-stats-agency-growth-population,
  .gis-stats-agency-growth-row .gis-stats-agency-growth-building,
  .gis-stats-agency-growth-row .gis-stats-agency-growth-activity {
    display: none;
  }

  .gis-stats-agency-settlement-table-head,
  .gis-stats-agency-settlement-row {
    grid-template-columns: 32px minmax(0, 1fr) 46px minmax(76px, 0.6fr);
  }

  .gis-stats-agency-settlement-table-head span:nth-child(6),
  .gis-stats-agency-settlement-row .gis-stats-agency-settlement-service {
    display: none;
  }

  .gis-stats-agency-building-registration-table-head,
  .gis-stats-agency-building-registration-row {
    grid-template-columns: 32px minmax(0, 1fr) 48px 52px;
  }

  .gis-stats-agency-building-registration-table-head span:nth-child(4),
  .gis-stats-agency-building-registration-row .gis-stats-agency-building-registration-residential {
    display: none;
  }

  .gis-stats-agency-flow-network-table-head,
  .gis-stats-agency-flow-network-row {
    grid-template-columns: 32px minmax(0, 1fr) 46px 50px minmax(68px, 0.56fr);
  }

  .gis-stats-agency-stability-table-head,
  .gis-stats-agency-stability-row {
    grid-template-columns: 32px minmax(0, 1fr) 46px minmax(76px, 0.64fr);
  }

  .gis-stats-agency-stability-table-head span:nth-child(7),
  .gis-stats-agency-stability-row .gis-stats-agency-stability-priority {
    display: none;
  }

  .gis-stats-agency-development-guide-grid > div {
    grid-template-columns: 1fr;
    gap: var(--space-1);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div {
    grid-template-columns: minmax(4.75rem, 0.35fr) minmax(0, 1fr);
    gap: var(--space-2);
    align-items: start;
  }
}

@media (max-width: 640px) {
  body.gis-body.gis-stats-portal-page .block-app-header .header-inner {
    min-width: 0;
  }

  body.gis-body.gis-stats-portal-page .block-app-header .nav-left {
    min-width: 0;
  }

  body.gis-body.gis-stats-portal-page .block-app-header .nav-right {
    max-width: calc(100vw - 96px);
    overflow: visible;
  }

  body.gis-body.gis-stats-portal-page .block-app-header .nav-right > .block-app-search-slot {
    display: none;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-shell {
    gap: var(--space-2);
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-head {
    grid-template-columns: 1fr;
    gap: var(--space-1-5);
    min-height: 0;
    padding: var(--space-1) 0 var(--space-1-5);
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-head-main {
    max-width: 100%;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-head h1 {
    font-size: clamp(1.28rem, 6vw, 1.52rem);
    line-height: 1.12;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-head-meta {
    display: block;
    min-width: 0;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-head-meta > span,
  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-data-scale {
    display: none;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-snapshot-note {
    display: -webkit-box;
    max-width: 100%;
    overflow: hidden;
    font-size: var(--fs-2xs);
    line-height: var(--lh-2xs);
    overflow-wrap: anywhere;
    text-overflow: clip;
    white-space: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-nav {
    width: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    gap: var(--space-1);
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-nav a {
    min-height: 34px;
    padding: 0 var(--space-2);
    border-color: var(--border);
    background: color-mix(in srgb, var(--card) 72%, transparent);
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
    border-radius: var(--radius-sm);
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-stat {
    grid-template-rows: auto auto;
    min-width: 0;
    row-gap: var(--space-0-5);
    min-height: 74px;
    padding: var(--space-2) var(--space-2-5);
    border-right: 1px solid color-mix(in srgb, var(--border), transparent 8%);
    border-bottom: 1px solid color-mix(in srgb, var(--border), transparent 8%);
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-stat:last-child {
    border-right: none;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-stat:nth-child(2n) {
    border-right: none;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-stat:nth-child(n + 3) {
    border-bottom: none;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-stat span {
    font-size: 0.68rem;
    line-height: 1.2;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-stat strong {
    align-self: start;
    overflow: hidden;
    font-size: clamp(0.9rem, 3.8vw, 1.08rem);
    line-height: 1.28;
    min-height: 1.34em;
    text-overflow: ellipsis;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-stat small {
    display: none;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-stat #statsPopulationGapInline {
    display: block;
    max-width: 100%;
    overflow: visible;
    overflow-wrap: anywhere;
    font-size: 0.68rem;
    line-height: 1.18;
    text-overflow: clip;
    white-space: normal;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    max-width: 100%;
    gap: var(--space-1);
    overflow: visible;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs > [data-stats-tab] {
    box-sizing: border-box;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs button {
    width: auto;
    min-width: max-content;
    min-height: 34px;
    padding-inline: var(--space-2);
  }

  .gis-stats-agency-panel--economy-map .gis-stats-agency-economy-toolbar {
    grid-template-columns: 1fr;
    gap: var(--space-1-5);
    padding: var(--space-1-5) var(--space-2);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--economy-map .gis-stats-agency-panel-head {
    display: flex;
    align-items: center;
    min-height: var(--control-h-m);
    padding: 0 var(--space-2);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--economy-map .gis-stats-agency-panel-head h3 {
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--economy-map .gis-stats-agency-panel-head > span {
    justify-self: end;
    text-align: right;
    white-space: nowrap;
  }

  .gis-stats-agency-panel--economy-map .gis-stats-agency-playback--compact {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    width: 100%;
    gap: var(--space-2);
  }

  .gis-stats-agency-panel--economy-map #statsCityEconomyPeriods {
    min-width: 0;
    padding-bottom: 0;
    scrollbar-width: none;
  }

  .gis-stats-agency-panel--economy-map #statsCityEconomyPeriods::-webkit-scrollbar {
    display: none;
  }

  .gis-stats-agency-panel--economy-map #statsCityEconomyPeriods .gis-stats-agency-quarter-tab {
    flex: 0 0 auto;
    min-width: 68px;
  }

  .gis-stats-agency-panel--economy-map .gis-stats-agency-play-button {
    width: auto;
    min-width: 44px;
    padding-inline: var(--space-2);
  }

  .gis-stats-agency-economy-map-inner,
  .gis-stats-agency-economy-map svg {
    height: clamp(200px, 52vw, 220px);
    min-height: 0;
  }

  .gis-stats-agency-panel--economy-map .gis-stats-agency-map-legend {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--space-1) var(--space-2);
    align-items: center;
    margin-top: var(--space-1);
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    padding-bottom: 0;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .gis-stats-agency-panel--economy-map .gis-stats-agency-map-legend::-webkit-scrollbar {
    display: none;
  }

  .gis-stats-agency-panel--economy-map .gis-stats-agency-map-legend span {
    flex: 0 0 auto;
    min-width: 0;
    max-width: 100%;
    align-items: center;
    line-height: var(--lh-xs);
    white-space: nowrap;
  }

  .gis-stats-agency-panel--economy-map .gis-stats-agency-map-legend span:last-child {
    display: none;
  }

  .gis-stats-agency-panel--economy-map .gis-stats-agency-economy-detail {
    max-height: min(36dvh, 18rem);
    padding: var(--space-2);
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
  }

  .gis-stats-agency-panel--economy-network .gis-stats-agency-chart .gis-echarts-canvas {
    height: clamp(210px, 54vw, 240px);
    min-height: 0;
  }

  .gis-stats-agency-economy-network-detail {
    max-height: min(36dvh, 18rem);
    padding: var(--space-2);
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
  }

  .gis-stats-agency-panel--economy-map .gis-stats-agency-detail-selected-head,
  .gis-stats-agency-panel--economy-map .gis-stats-agency-detail-block--selected .gis-stats-agency-detail-metrics,
  .gis-stats-agency-panel--economy-network .gis-stats-agency-detail-selected-head,
  .gis-stats-agency-panel--economy-network .gis-stats-agency-detail-block--selected .gis-stats-agency-detail-metrics {
    padding: var(--space-2);
  }

  .gis-stats-agency-panel--economy-map .gis-stats-agency-detail-selected-head {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: var(--space-2);
  }

  .gis-stats-agency-panel--economy-map .gis-stats-agency-detail-selected-head strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .gis-stats-agency-economy-detail,
  .gis-stats-agency-economy-network-detail {
    gap: var(--space-1);
  }

  .gis-stats-agency-economy-detail .gis-stats-agency-detail-block,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-block {
    gap: var(--space-1-5);
    padding: var(--space-1-5);
    border-radius: var(--radius-sm);
  }

  .gis-stats-agency-economy-detail .gis-stats-agency-detail-block--selected,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-block--selected {
    padding: 0;
    border-left-width: 2px;
    background: color-mix(in srgb, var(--card) 96%, var(--primary) 4%);
  }

  .gis-stats-agency-economy-detail .gis-stats-agency-detail-metrics,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-metrics,
  .gis-stats-agency-economy-detail .gis-stats-agency-detail-meter-list,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-meter-list,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-network-list {
    gap: var(--space-1);
  }

  .gis-stats-agency-economy-detail .gis-stats-agency-detail-row,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-row {
    grid-template-columns: minmax(4.75rem, max-content) minmax(0, 1fr);
    align-items: center;
    gap: var(--space-1-5);
  }

  .gis-stats-agency-economy-detail .gis-stats-agency-detail-row strong,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-row strong {
    justify-self: end;
    max-width: 100%;
    overflow-wrap: anywhere;
    text-align: right;
  }

  .gis-stats-agency-economy-detail .gis-stats-agency-detail-block-head,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-block-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-1-5);
    padding-bottom: var(--space-1);
  }

  .gis-stats-agency-economy-detail .gis-stats-agency-detail-block-head strong,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-block-head strong {
    justify-self: end;
    max-width: 100%;
    overflow-wrap: anywhere;
    text-align: right;
  }

  .gis-stats-agency-network-city {
    gap: var(--space-1) var(--space-2);
    padding: var(--space-1-5) var(--space-2);
  }

  .gis-stats-agency-network-city-meter {
    height: 4px;
  }

  .gis-stats-agency-bar-head {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-0-5);
    align-items: start;
  }

  .gis-stats-agency-bar-head span {
    max-width: 100%;
  }

  .gis-stats-agency-bar-head strong {
    justify-self: start;
    max-width: 100%;
    overflow: visible;
    overflow-wrap: anywhere;
    text-align: left;
    white-space: normal;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--age-buckets .gis-stats-agency-bar-list,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--age-ranks .gis-stats-agency-bar-list {
    gap: var(--space-1);
    padding: var(--space-2) var(--space-3);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--age-buckets .gis-stats-agency-bar-row,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--age-ranks .gis-stats-agency-bar-row {
    gap: var(--space-1);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--age-buckets .gis-stats-agency-bar-head,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--age-ranks .gis-stats-agency-bar-head {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-1);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--age-buckets .gis-stats-agency-bar-head span,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--age-ranks .gis-stats-agency-bar-head span {
    max-width: 100%;
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--age-buckets .gis-stats-agency-bar-head strong,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--age-ranks .gis-stats-agency-bar-head strong {
    justify-self: end;
    max-width: 100%;
    overflow: hidden;
    overflow-wrap: normal;
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--age-buckets .gis-stats-agency-bar-track,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--age-ranks .gis-stats-agency-bar-track {
    height: var(--space-1);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--age-ranks .gis-stats-agency-list-more {
    min-height: var(--control-h-s);
    padding: 0 var(--space-3) var(--space-2);
  }

  .gis-stats-agency-panel--spread-chart,
  .gis-stats-agency-panel--spread-chart .gis-stats-agency-chart-wrap,
  .gis-stats-agency-panel--spread-chart .gis-stats-agency-chart,
  .gis-stats-agency-panel--spread-chart .gis-echarts-canvas,
  .gis-stats-agency-spread-detail,
  .gis-stats-agency-spread-detail p {
    max-width: 100%;
    min-width: 0;
  }

  .gis-stats-agency-spread-detail p {
    display: block;
    inline-size: 100%;
    max-inline-size: 100%;
    overflow: visible;
    overflow-wrap: break-word;
    word-break: keep-all;
    white-space: normal;
  }

  .gis-stats-agency-living-list,
  .gis-stats-agency-settlement-list,
  .gis-stats-agency-stability-list,
  .gis-stats-agency-building-registration-list,
  .gis-stats-agency-development-list,
  .gis-stats-agency-spread-list,
  .gis-stats-agency-growth-list,
  .gis-stats-agency-flow-network-list {
    gap: var(--space-2);
    padding: var(--space-2);
  }

  .gis-stats-agency-living-table,
  .gis-stats-agency-settlement-table,
  .gis-stats-agency-stability-table,
  .gis-stats-agency-building-registration-table,
  .gis-stats-agency-development-table,
  .gis-stats-agency-spread-table,
  .gis-stats-agency-growth-table,
  .gis-stats-agency-flow-network-table {
    display: block;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .gis-stats-agency-living-table-head,
  .gis-stats-agency-settlement-table-head,
  .gis-stats-agency-stability-table-head,
  .gis-stats-agency-building-registration-table-head,
  .gis-stats-agency-development-table-head,
  .gis-stats-agency-spread-table-head,
  .gis-stats-agency-growth-table-head,
  .gis-stats-agency-flow-network-table-head {
    display: none !important;
  }

  .gis-stats-agency-living-table-body,
  .gis-stats-agency-settlement-table-body,
  .gis-stats-agency-stability-table-body,
  .gis-stats-agency-building-registration-table-body,
  .gis-stats-agency-development-table-body,
  .gis-stats-agency-spread-table-body,
  .gis-stats-agency-growth-table-body,
  .gis-stats-agency-flow-network-table-body {
    display: grid;
    gap: var(--space-2);
  }

  .gis-stats-agency-living-row,
  .gis-stats-agency-settlement-row,
  .gis-stats-agency-stability-row,
  .gis-stats-agency-building-registration-row,
  .gis-stats-agency-development-list .gis-stats-agency-development-row,
  .gis-stats-agency-spread-list .gis-stats-agency-spread-row,
  .gis-stats-agency-growth-row,
  .gis-stats-agency-flow-network-row {
    position: relative;
    display: grid !important;
    grid-template-columns: 2rem minmax(0, 1fr) auto !important;
    gap: var(--space-1) var(--space-2) !important;
    align-items: center;
    min-height: 0;
    padding: var(--space-2) var(--space-2-5) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-sm) !important;
    background: color-mix(in srgb, var(--card) 96%, var(--surface));
  }

  .gis-stats-agency-living-row:last-child,
  .gis-stats-agency-settlement-row:last-child,
  .gis-stats-agency-stability-row:last-child,
  .gis-stats-agency-building-registration-row:last-child,
  .gis-stats-agency-development-list .gis-stats-agency-development-row:last-child,
  .gis-stats-agency-spread-list .gis-stats-agency-spread-row:last-child,
  .gis-stats-agency-growth-row:last-child,
  .gis-stats-agency-flow-network-row:last-child {
    border-bottom: 1px solid var(--border) !important;
  }

  .gis-stats-agency-living-rank,
  .gis-stats-agency-settlement-rank,
  .gis-stats-agency-stability-rank,
  .gis-stats-agency-building-registration-rank,
  .gis-stats-agency-development-rank,
  .gis-stats-agency-spread-rank,
  .gis-stats-agency-growth-rank,
  .gis-stats-agency-flow-network-rank {
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: start;
    padding-top: 2px;
  }

  .gis-stats-agency-living-name,
  .gis-stats-agency-settlement-name,
  .gis-stats-agency-stability-name,
  .gis-stats-agency-building-registration-name,
  .gis-stats-agency-development-name,
  .gis-stats-agency-spread-name,
  .gis-stats-agency-growth-name,
  .gis-stats-agency-flow-network-name {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    max-width: 100%;
  }

  .gis-stats-agency-living-score,
  .gis-stats-agency-settlement-score,
  .gis-stats-agency-stability-score,
  .gis-stats-agency-building-registration-count,
  .gis-stats-agency-development-ratio,
  .gis-stats-agency-spread-ratio,
  .gis-stats-agency-growth-score,
  .gis-stats-agency-flow-network-score {
    display: inline-flex !important;
    grid-column: 2 / 4;
    justify-self: start !important;
    width: auto !important;
    max-width: 100%;
    gap: var(--space-1);
    color: var(--foreground);
    font-weight: 850;
    text-align: left !important;
    white-space: normal !important;
  }

  .gis-stats-agency-living-row i,
  .gis-stats-agency-settlement-row i,
  .gis-stats-agency-stability-row i,
  .gis-stats-agency-development-row i,
  .gis-stats-agency-spread-row i,
  .gis-stats-agency-growth-row i,
  .gis-stats-agency-flow-network-row i {
    grid-column: 2 / 4;
    justify-self: start;
    max-width: 100%;
    white-space: normal;
  }

  .gis-stats-agency-living-poi,
  .gis-stats-agency-living-primary,
  .gis-stats-agency-living-improvement,
  .gis-stats-agency-settlement-household,
  .gis-stats-agency-settlement-residential,
  .gis-stats-agency-settlement-service,
  .gis-stats-agency-stability-base,
  .gis-stats-agency-stability-living,
  .gis-stats-agency-stability-balance,
  .gis-stats-agency-stability-priority,
  .gis-stats-agency-building-registration-residential,
  .gis-stats-agency-building-registration-households,
  .gis-stats-agency-building-registration-unknown,
  .gis-stats-agency-building-registration-latest,
  .gis-stats-agency-development-sample,
  .gis-stats-agency-spread-sample,
  .gis-stats-agency-growth-population,
  .gis-stats-agency-growth-building,
  .gis-stats-agency-growth-activity,
  .gis-stats-agency-growth-map,
  .gis-stats-agency-flow-network-partner,
  .gis-stats-agency-flow-network-dependency,
	  .gis-stats-agency-flow-network-primary {
	    display: inline-flex !important;
	    grid-column: 2 / 4;
	    justify-self: start !important;
	    width: auto !important;
	    max-width: 100%;
	    gap: var(--space-1);
	    color: var(--muted-foreground);
	    text-align: left !important;
	    white-space: normal !important;
	  }

  .gis-stats-agency-living-poi::before { content: "POI"; }
  .gis-stats-agency-living-score::before { content: "점수"; }
  .gis-stats-agency-settlement-score::before { content: "점수"; }
  .gis-stats-agency-stability-score::before { content: "안정"; }
  .gis-stats-agency-building-registration-count::before { content: "등록"; }
  .gis-stats-agency-development-ratio::before { content: "비율"; }
  .gis-stats-agency-spread-ratio::before { content: "비율"; }
  .gis-stats-agency-growth-score::before { content: "점수"; }
  .gis-stats-agency-flow-network-score::before { content: "점수"; }
  .gis-stats-agency-living-primary::before { content: "주기능"; }
  .gis-stats-agency-settlement-household::before { content: "세대"; }
  .gis-stats-agency-settlement-residential::before { content: "주거"; }
  .gis-stats-agency-settlement-service::before { content: "기능"; }
  .gis-stats-agency-stability-base::before { content: "기반"; }
  .gis-stats-agency-stability-living::before { content: "생활권"; }
  .gis-stats-agency-stability-balance::before { content: "균형"; }
  .gis-stats-agency-stability-priority::before { content: "개선"; }
  .gis-stats-agency-building-registration-residential::before { content: "주거"; }
  .gis-stats-agency-building-registration-households::before { content: "세대"; }
  .gis-stats-agency-building-registration-unknown::before { content: "보완"; }
  .gis-stats-agency-building-registration-latest::before { content: "최근"; }
  .gis-stats-agency-development-sample::before { content: "표본"; }
  .gis-stats-agency-spread-sample::before { content: "표본"; }
  .gis-stats-agency-growth-population::before { content: "인구"; }
  .gis-stats-agency-growth-building::before { content: "건물"; }
  .gis-stats-agency-growth-activity::before { content: "활동"; }
  .gis-stats-agency-growth-map::before { content: "지도"; }
  .gis-stats-agency-flow-network-partner::before { content: "상대"; }
  .gis-stats-agency-flow-network-dependency::before { content: "의존"; }
  .gis-stats-agency-flow-network-primary::before { content: "주요"; }

  .gis-stats-agency-living-score::before,
  .gis-stats-agency-settlement-score::before,
  .gis-stats-agency-stability-score::before,
  .gis-stats-agency-building-registration-count::before,
  .gis-stats-agency-development-ratio::before,
  .gis-stats-agency-spread-ratio::before,
  .gis-stats-agency-growth-score::before,
  .gis-stats-agency-flow-network-score::before,
  .gis-stats-agency-living-poi::before,
  .gis-stats-agency-living-primary::before,
  .gis-stats-agency-settlement-household::before,
  .gis-stats-agency-settlement-residential::before,
  .gis-stats-agency-settlement-service::before,
  .gis-stats-agency-stability-base::before,
  .gis-stats-agency-stability-living::before,
  .gis-stats-agency-stability-balance::before,
  .gis-stats-agency-stability-priority::before,
  .gis-stats-agency-building-registration-residential::before,
  .gis-stats-agency-building-registration-households::before,
  .gis-stats-agency-building-registration-unknown::before,
	  .gis-stats-agency-building-registration-latest::before,
	  .gis-stats-agency-development-sample::before,
	  .gis-stats-agency-spread-sample::before,
	  .gis-stats-agency-growth-population::before,
	  .gis-stats-agency-growth-building::before,
	  .gis-stats-agency-growth-activity::before,
	  .gis-stats-agency-growth-map::before,
  .gis-stats-agency-flow-network-partner::before,
  .gis-stats-agency-flow-network-dependency::before,
  .gis-stats-agency-flow-network-primary::before {
    color: color-mix(in srgb, var(--muted-foreground) 78%, transparent);
    font-weight: 800;
  }

  .gis-stats-agency-living-improvement-button {
    justify-content: flex-start;
    gap: var(--space-1);
    min-height: var(--control-h-s);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide dd {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
  }

  .gis-stats-agency-panel--development > .gis-stats-agency-panel-note--body {
    display: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide {
    gap: var(--space-1-5);
    padding: var(--space-2);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid {
    max-height: min(18dvh, 6.25rem);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div {
    padding: var(--space-1-5) var(--space-2);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-abstract-map {
    min-height: 0;
    padding: var(--space-2);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-abstract-map svg {
    height: 170px;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-abstract-map .gis-stats-agency-map-legend {
    display: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-map-detail {
    min-height: 0;
    padding: var(--space-2);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-map-detail > span:last-child {
    display: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div,
  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-child(2n),
  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-last-child(-n + 2),
  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:last-child {
    gap: 0;
    min-height: 48px;
    padding: var(--space-1-5);
    border-right: 1px solid var(--border);
    border-bottom: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:last-child {
    border-right: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics span,
  .gis-stats-agency-panel--development .gis-stats-agency-development-metrics strong {
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-list {
    max-height: clamp(12rem, 34dvh, 20rem);
    padding: var(--space-2);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-table {
    display: grid;
    overflow: visible;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--card), transparent 3%);
    box-shadow: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-table-head,
  .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-row {
    display: grid !important;
    grid-template-columns: 2rem minmax(0, 1fr) 3.5rem minmax(4.5rem, 0.54fr) !important;
    gap: var(--space-1) !important;
    align-items: center;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-table-head {
    min-height: 28px;
    padding: 0 var(--space-2);
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-table-head span:nth-child(4),
  .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-sample {
    display: none !important;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-table-body {
    gap: 0;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-row {
    min-height: 36px;
    padding: var(--space-1) var(--space-2) !important;
    border: 0 !important;
    border-bottom: 1px solid var(--border) !important;
    border-radius: 0 !important;
    background: transparent;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-row:last-child {
    border-bottom: 0 !important;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-rank,
  .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-name,
  .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-ratio,
  .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-row i {
    grid-row: 1 !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap !important;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-rank {
    grid-column: 1 !important;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-name {
    grid-column: 2 !important;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-ratio {
    grid-column: 3 !important;
    justify-self: end !important;
    text-align: right !important;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-ratio::before {
    display: none;
  }

  .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-row i {
    grid-column: 4 !important;
    justify-self: start !important;
    max-width: 100%;
    min-height: 18px;
  }

  .gis-stats-agency-living-detail {
    margin-top: calc(-1 * var(--space-2));
    padding: var(--space-2);
    border: 1px solid var(--border);
    border-top: 0;
    border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  }

  .gis-stats-agency-skeleton {
    padding: var(--space-2);
  }

  .gis-stats-agency-skeleton--bars,
  .gis-stats-agency-skeleton--table {
    min-height: 150px;
  }

  .gis-stats-agency-skeleton--chart {
    min-height: 184px;
  }

  .gis-stats-agency-skeleton-plot {
    min-height: 154px;
  }

  .gis-stats-agency-skeleton--map {
    min-height: 220px;
  }
}

@media (max-width: 420px) {
  .gis-stats-agency-economy-detail .gis-stats-agency-detail-block--selected,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-block--selected {
    overflow: hidden;
  }

  .gis-stats-agency-economy-detail .gis-stats-agency-detail-selected-head,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-selected-head {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-1);
  }

  .gis-stats-agency-economy-detail .gis-stats-agency-detail-selected-head strong,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-selected-head strong,
  .gis-stats-agency-economy-detail .gis-stats-agency-detail-block-head strong,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-block-head strong,
  .gis-stats-agency-economy-detail .gis-stats-agency-detail-row strong,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-row strong {
    justify-self: start;
    overflow: visible;
    overflow-wrap: anywhere;
    text-align: left;
    text-overflow: clip;
    white-space: normal;
  }

  .gis-stats-agency-economy-detail .gis-stats-agency-detail-row,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-row,
  .gis-stats-agency-economy-detail .gis-stats-agency-detail-block-head,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-block-head,
  .gis-stats-agency-economy-detail .gis-stats-agency-detail-meter-head,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-meter-head {
    grid-template-columns: minmax(0, 1fr);
  }

  .gis-stats-agency-economy-detail .gis-stats-agency-detail-meter-head strong,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-meter-head strong {
    overflow: visible;
    overflow-wrap: anywhere;
    text-align: left;
    text-overflow: clip;
    white-space: normal;
  }

  .gis-stats-agency-economy-detail .gis-stats-agency-detail-block--selected .gis-stats-agency-detail-row,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-block--selected .gis-stats-agency-detail-row {
    grid-template-columns: minmax(4.5rem, max-content) minmax(0, 1fr);
    align-items: center;
  }

  .gis-stats-agency-economy-detail .gis-stats-agency-detail-block--selected .gis-stats-agency-detail-row span,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-block--selected .gis-stats-agency-detail-row span {
    white-space: nowrap;
  }

  .gis-stats-agency-economy-detail .gis-stats-agency-detail-block--selected .gis-stats-agency-detail-row strong,
  .gis-stats-agency-economy-network-detail .gis-stats-agency-detail-block--selected .gis-stats-agency-detail-row strong {
    justify-self: end;
    text-align: right;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gis-stats-agency-bar-row,
  .gis-stats-agency-bar-track span,
  .gis-stats-agency-flow-pair-row,
  .gis-stats-agency-flow-split span {
    transition: none !important;
  }
}

/* GIS portal personas */
.gis-portal-personas-page .gis-portal-personas-stack {
  gap: var(--space-4);
}

.gis-portal-personas-page .gis-persona-workspace {
  display: grid;
  grid-template-columns: minmax(280px, 420px) minmax(0, 1fr);
  gap: var(--space-4);
  align-items: start;
}

.gis-portal-personas-page .gis-persona-list-card,
.gis-portal-personas-page .gis-persona-editor-card {
  min-width: 0;
}

.gis-portal-personas-page .gis-persona-editor-card,
.gis-portal-personas-page .gis-persona-editor-card > .card-content {
  overflow: visible;
}

.gis-portal-personas-page .gis-persona-list {
  display: grid;
  gap: var(--space-2);
}

.gis-portal-personas-page .gis-persona-row {
  width: 100%;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: var(--space-3);
  align-items: start;
  padding: var(--space-3);
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--card);
  color: var(--foreground);
  text-align: left;
  cursor: pointer;
  transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.gis-portal-personas-page .gis-persona-row:hover,
.gis-portal-personas-page .gis-persona-row:focus-visible,
.gis-portal-personas-page .gis-persona-row.is-selected {
  border-color: color-mix(in srgb, var(--primary), var(--border) 36%);
  background: color-mix(in srgb, var(--primary) 7%, var(--card));
}

.gis-portal-personas-page .gis-persona-row:focus-visible {
  outline: none;
  box-shadow: 0 0 0 calc(var(--space-px) * 3) color-mix(in srgb, var(--primary), transparent 76%);
}

.gis-portal-personas-page .gis-persona-row-main {
  min-width: 0;
  display: grid;
  gap: var(--space-1);
}

.gis-portal-personas-page .gis-persona-row-title {
  font-weight: 600;
}

.gis-portal-personas-page .gis-persona-row-meta,
.gis-portal-personas-page .gis-persona-row-date {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
}

.gis-portal-personas-page .gis-persona-row-anchors {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  margin-top: var(--space-1);
}

.gis-portal-personas-page .gis-persona-anchor-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
  max-width: 100%;
  padding: calc(var(--space-1) * 0.5) var(--space-2);
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius-full);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: 1.35;
}

.gis-portal-personas-page .gis-persona-anchor-badge span:first-child {
  color: var(--foreground);
  font-weight: 500;
}

.gis-portal-personas-page .gis-persona-profile-section,
.gis-portal-personas-page .gis-persona-anchor-section,
.gis-portal-personas-page .gis-persona-relation-section,
.gis-portal-personas-page .gis-persona-location-section,
.gis-portal-personas-page .gis-persona-briefing-section {
  padding-top: var(--space-3);
  border-top: var(--space-px) solid var(--border);
  overflow: visible;
}

.gis-portal-personas-page .gis-persona-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}

.gis-portal-personas-page .gis-persona-section-head .gis-form-section-title {
  margin-bottom: 0;
}

.gis-portal-personas-page .gis-persona-trait-presets {
  display: grid;
  gap: var(--space-2);
  margin-top: var(--space-2);
}

.gis-portal-personas-page .gis-persona-trait-group {
  display: grid;
  gap: var(--space-1);
}

.gis-portal-personas-page .gis-persona-trait-group-title {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 500;
}

.gis-portal-personas-page .gis-persona-trait-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
}

.gis-portal-personas-page .gis-persona-trait-chip {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0 var(--space-2);
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius-full);
  background: var(--card);
  color: var(--foreground);
  font-size: var(--fs-sm);
  line-height: 1;
  cursor: pointer;
  transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease;
}

.gis-portal-personas-page .gis-persona-trait-chip:hover,
.gis-portal-personas-page .gis-persona-trait-chip:focus-visible {
  border-color: color-mix(in srgb, var(--primary), var(--border) 42%);
  outline: none;
}

.gis-portal-personas-page .gis-persona-trait-chip.is-active {
  border-color: color-mix(in srgb, var(--primary), var(--border) 22%);
  background: color-mix(in srgb, var(--primary) 10%, var(--card));
  color: var(--primary);
}

.gis-portal-personas-page .gis-persona-anchor-field {
  position: relative;
  min-width: 0;
}

.gis-portal-personas-page .gis-persona-anchor-field.is-search-open {
  z-index: var(--z-popover);
}

.gis-portal-personas-page .gis-persona-anchor-picker {
  position: relative;
  display: flex;
  gap: var(--space-2);
  align-items: stretch;
}

.gis-portal-personas-page .gis-persona-anchor-picker .input {
  min-width: 0;
  flex: 1 1 auto;
}

.gis-portal-personas-page .gis-persona-anchor-picker .btn {
  flex: 0 0 auto;
}

.gis-portal-personas-page .gis-persona-anchor-results {
  display: none;
  position: absolute;
  inset-inline: 0;
  top: calc(100% + var(--space-1));
  z-index: var(--z-popover);
  max-height: 260px;
  overflow: auto;
  box-shadow: var(--shadow-lg);
}

.gis-portal-personas-page .gis-persona-anchor-results.is-open {
  display: grid;
}

.gis-portal-personas-page .gis-search-list-option {
  width: 100%;
  display: grid;
  gap: calc(var(--space-1) * 0.5);
  padding: var(--space-2) var(--space-3);
  border: 0;
  background: transparent;
  color: var(--foreground);
  text-align: left;
  cursor: pointer;
}

.gis-portal-personas-page .gis-search-list-option:hover,
.gis-portal-personas-page .gis-search-list-option:focus-visible {
  background: var(--muted);
  outline: none;
}

.gis-portal-personas-page .gis-search-list-option-main {
  font-size: var(--fs-sm);
  font-weight: 500;
}

.gis-portal-personas-page .gis-search-list-option-sub,
.gis-portal-personas-page .gis-search-list-empty {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
}

.gis-portal-personas-page .gis-search-list-empty {
  padding: var(--space-3);
}

.gis-portal-personas-page .gis-persona-relation-builder {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(140px, 0.7fr) minmax(180px, 1fr) auto;
  gap: var(--space-2);
  align-items: end;
}

.gis-portal-personas-page .gis-persona-relation-list {
  display: grid;
  gap: var(--space-2);
  margin-top: var(--space-3);
}

.gis-portal-personas-page .gis-persona-relation-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-3);
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius-md);
  background: var(--muted);
}

.gis-portal-personas-page .gis-persona-relation-main {
  min-width: 0;
  display: grid;
  gap: calc(var(--space-1) * 0.5);
}

.gis-portal-personas-page .gis-persona-relation-title {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  align-items: baseline;
  font-size: var(--fs-sm);
}

.gis-portal-personas-page .gis-persona-relation-title span {
  color: var(--muted-foreground);
}

.gis-portal-personas-page .gis-persona-location-body,
.gis-portal-personas-page .gis-persona-briefing-body {
  display: grid;
  gap: var(--space-2);
}

.gis-portal-personas-page .gis-persona-location-card,
.gis-portal-personas-page .gis-persona-briefing-card {
  display: grid;
  gap: var(--space-3);
  padding: var(--space-3);
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--muted);
}

.gis-portal-personas-page .gis-persona-location-head {
  display: flex;
  justify-content: space-between;
  gap: var(--space-3);
  align-items: flex-start;
}

.gis-portal-personas-page .gis-persona-location-title,
.gis-portal-personas-page .gis-persona-briefing-title {
  font-weight: 600;
}

.gis-portal-personas-page .gis-persona-location-state {
  flex: 0 0 auto;
  padding: calc(var(--space-1) * 0.5) var(--space-2);
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius-full);
  background: var(--card);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: 1.35;
}

.gis-portal-personas-page .gis-persona-location-card[data-state="staying"] .gis-persona-location-state {
  border-color: color-mix(in srgb, var(--primary), var(--border) 45%);
  color: var(--primary);
}

.gis-portal-personas-page .gis-persona-location-card[data-state="moving"] .gis-persona-location-state,
.gis-portal-personas-page .gis-persona-location-card[data-state="traveling"] .gis-persona-location-state {
  border-color: color-mix(in srgb, var(--warning), var(--border) 45%);
  color: var(--warning);
}

.gis-portal-personas-page .gis-persona-location-card[data-state="idle"] .gis-persona-location-state {
  border-color: color-mix(in srgb, var(--muted-foreground), var(--border) 52%);
  color: var(--foreground);
}

.gis-portal-personas-page .gis-persona-location-summary,
.gis-portal-personas-page .gis-persona-briefing-summary {
  margin: 0;
  color: var(--foreground);
  line-height: var(--lh-body);
}

.gis-portal-personas-page .gis-persona-location-route {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  align-items: center;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
}

.gis-portal-personas-page .gis-persona-location-route strong {
  color: var(--foreground);
  font-weight: 600;
}

.gis-portal-personas-page .gis-persona-location-signals,
.gis-portal-personas-page .gis-persona-briefing-signals {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
}

.gis-portal-personas-page .gis-persona-location-signals span,
.gis-portal-personas-page .gis-persona-briefing-signals span {
  max-width: 100%;
  padding: calc(var(--space-1) * 0.5) var(--space-2);
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius-full);
  background: var(--card);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: 1.35;
}

.gis-portal-personas-page .gis-persona-editor-actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.gis-portal-personas-page .gis-persona-empty {
  padding-block: var(--space-6);
}

@media (max-width: 1024px) {
  .gis-portal-personas-page .gis-persona-workspace {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .gis-portal-personas-page .gis-persona-row {
    grid-template-columns: 1fr;
    gap: var(--space-2);
    padding: var(--space-2-5);
    border-radius: var(--radius-md);
  }

  .gis-portal-personas-page .gis-page-hero-actions,
  .gis-portal-personas-page .card-header-actions,
  .gis-portal-personas-page .gis-persona-section-head {
    width: 100%;
  }

  .gis-portal-personas-page .gis-page-hero-actions .btn,
  .gis-portal-personas-page .card-header-actions .btn,
  .gis-portal-personas-page .gis-persona-section-head .btn {
    width: 100%;
    justify-content: center;
  }

  .gis-portal-personas-page .gis-persona-row-date {
    justify-self: start;
  }

  .gis-portal-personas-page .gis-persona-anchor-picker {
    display: grid;
  }

  .gis-portal-personas-page .gis-persona-anchor-picker .btn {
    width: 100%;
  }

  .gis-portal-personas-page .gis-persona-anchor-badge,
  .gis-portal-personas-page .gis-persona-location-signals span,
  .gis-portal-personas-page .gis-persona-briefing-signals span {
    border-radius: var(--radius-sm);
    overflow-wrap: anywhere;
  }

  .gis-portal-personas-page .gis-persona-relation-builder {
    grid-template-columns: 1fr;
  }

  .gis-portal-personas-page .gis-persona-relation-row,
  .gis-portal-personas-page .gis-persona-location-head {
    display: grid;
    grid-template-columns: 1fr;
    align-items: start;
  }

  .gis-portal-personas-page .gis-persona-relation-row .btn {
    width: 100%;
    justify-content: center;
  }

  .gis-portal-personas-page .gis-persona-relation-builder .btn,
  .gis-portal-personas-page .gis-persona-editor-actions .btn {
    width: 100%;
  }
}

/* Persona avatar, identity and status (reuses horizon tokens) */
.gis-portal-personas-page .gis-persona-avatar {
  --pa-hue: 220;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: var(--radius-full);
  border: var(--space-px) solid color-mix(in srgb, hsl(var(--pa-hue) 60% 55%), var(--border) 55%);
  background: color-mix(in srgb, hsl(var(--pa-hue) 60% 45%) 24%, var(--card));
  color: color-mix(in srgb, hsl(var(--pa-hue) 70% 72%), var(--foreground) 25%);
  font-weight: 600;
  line-height: 1;
  text-transform: uppercase;
  user-select: none;
}

.gis-portal-personas-page .gis-persona-avatar--sm {
  width: 2rem;
  height: 2rem;
  font-size: var(--fs-sm);
}

.gis-portal-personas-page .gis-persona-avatar--lg {
  width: 3rem;
  height: 3rem;
  font-size: var(--fs-lg);
}

.gis-portal-personas-page .gis-persona-avatar[data-empty="true"] {
  border-style: dashed;
  border-color: var(--border);
  background: var(--muted);
  color: var(--muted-foreground);
}

.gis-portal-personas-page .gis-persona-avatar .material-symbols-outlined {
  font-size: 1.25rem;
}

.gis-portal-personas-page .gis-persona-search-field {
  position: relative;
  display: flex;
  align-items: center;
}

.gis-portal-personas-page .gis-persona-search-icon {
  position: absolute;
  inset-inline-start: var(--space-3);
  color: var(--muted-foreground);
  font-size: 1.15rem;
  pointer-events: none;
}

.gis-portal-personas-page .gis-persona-search-field .input {
  padding-inline-start: calc(var(--space-3) + 1.4rem);
}

.gis-portal-personas-page .gis-persona-row-titlerow {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  flex-wrap: wrap;
}

.gis-portal-personas-page .gis-persona-visibility {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: calc(var(--space-1) * 0.5) var(--space-2);
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius-full);
  background: var(--card);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 500;
  line-height: 1.3;
  white-space: nowrap;
}

.gis-portal-personas-page .gis-persona-visibility--sm {
  font-size: calc(var(--fs-xs) * 0.95);
}

.gis-portal-personas-page .gis-persona-visibility[data-visibility="public"] {
  border-color: color-mix(in srgb, var(--success), var(--border) 40%);
  color: var(--success);
  background: color-mix(in srgb, var(--success) 10%, var(--card));
}

.gis-portal-personas-page .gis-persona-visibility[data-visibility="unlisted"] {
  border-color: color-mix(in srgb, var(--warning), var(--border) 40%);
  color: var(--warning);
  background: color-mix(in srgb, var(--warning) 10%, var(--card));
}

.gis-portal-personas-page .gis-persona-detail {
  display: grid;
  gap: var(--space-4);
  min-width: 0;
  align-content: start;
}

.gis-portal-personas-page .gis-persona-overview-card {
  min-width: 0;
}

.gis-portal-personas-page .gis-persona-identity {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-3);
}

.gis-portal-personas-page .gis-persona-identity-main {
  min-width: 0;
  display: grid;
  gap: calc(var(--space-1) * 0.5);
}

.gis-portal-personas-page .gis-persona-identity-name {
  font-size: var(--fs-lg);
  font-weight: 600;
  line-height: 1.25;
}

.gis-portal-personas-page .gis-persona-identity-meta {
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  overflow-wrap: anywhere;
}

.gis-portal-personas-page .gis-persona-status-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}

.gis-portal-personas-page .gis-persona-status-block {
  min-width: 0;
  display: grid;
  gap: var(--space-2);
  align-content: start;
  padding: var(--space-3);
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--muted) 50%, var(--card));
}

.gis-portal-personas-page .gis-persona-status-block .gis-persona-location-card,
.gis-portal-personas-page .gis-persona-status-block .gis-persona-briefing-card {
  background: var(--card);
}

.gis-portal-personas-page .gis-persona-editor-card .gis-persona-editor-actions {
  position: sticky;
  bottom: 0;
  margin: var(--space-2) calc(var(--space-4) * -1) calc(var(--space-4) * -1);
  padding: var(--space-3) var(--space-4);
  border-top: var(--space-px) solid var(--border);
  border-end-start-radius: var(--radius-xl);
  border-end-end-radius: var(--radius-xl);
  background: color-mix(in srgb, var(--card) 90%, transparent);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

@media (max-width: 1024px) {
  .gis-portal-personas-page .gis-persona-status-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .gis-portal-personas-page .gis-persona-row {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .gis-portal-personas-page .gis-persona-row-date {
    grid-column: 2;
  }

  .gis-portal-personas-page .gis-persona-identity {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .gis-portal-personas-page .gis-persona-identity-visibility,
  .gis-portal-personas-page .gis-persona-identity .gis-persona-visibility {
    grid-column: 2;
    justify-self: start;
  }
}

/* GIS admin economy */
body.gis-admin-economy-page .gis-admin-page-stack {
  gap: var(--space-4);
}

.gis-admin-economy-hero .admin-hero-actions {
  align-items: center;
}

.gis-admin-economy-tabs {
  position: sticky;
  top: calc(var(--header-height, 56px) + var(--space-2));
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  padding: var(--space-1);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--card) 94%, transparent);
  backdrop-filter: blur(10px);
}

.gis-admin-economy-tabs button {
  min-height: var(--control-h-s);
  padding: 0 var(--space-3);
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  font-weight: 800;
  cursor: pointer;
}

.gis-admin-economy-tabs button:hover,
.gis-admin-economy-tabs button:focus-visible,
.gis-admin-economy-tabs button.is-active {
  background: var(--primary);
  color: var(--primary-foreground);
}

.gis-admin-economy-view[hidden] {
  display: none !important;
}

.gis-admin-economy-view {
  display: grid;
  gap: var(--space-4);
}

.gis-admin-economy-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
}

.gis-admin-economy-kpi {
  display: grid;
  gap: var(--space-1);
  min-height: 118px;
}

.gis-admin-economy-kpi span,
.gis-admin-economy-kpi small,
.gis-admin-economy-bar-row p,
.gis-admin-economy-note {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
  line-height: var(--lh-xs);
}

.gis-admin-economy-kpi strong {
  color: var(--foreground);
  font-size: clamp(1.35rem, 2.2vw, 2rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0;
}

.gis-admin-economy-grid {
  display: grid;
  gap: var(--space-3);
  align-items: stretch;
}

.gis-admin-economy-grid--main {
  grid-template-columns: minmax(0, 1.2fr) minmax(340px, 0.8fr);
}

.gis-admin-economy-grid--source {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gis-admin-economy-grid--enterprise {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gis-admin-economy-panel {
  min-width: 0;
}

.gis-admin-economy-panel--trend,
.gis-admin-economy-panel--map,
.gis-admin-economy-panel--city,
.gis-admin-economy-panel--selected {
  min-height: 430px;
}

.gis-admin-economy-chart {
  width: 100%;
  min-height: 300px;
}

.gis-admin-economy-chart--compact {
  min-height: 220px;
}

.gis-admin-economy-map {
  position: relative;
  min-height: 300px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--muted), transparent 44%);
  overflow: hidden;
}

.gis-admin-economy-map svg {
  display: block;
  width: 100%;
  min-height: 300px;
}

.gis-admin-economy-map-frame {
  fill: color-mix(in srgb, var(--card), transparent 8%);
  stroke: var(--border);
  stroke-width: 0.4;
}

.gis-admin-economy-map-node {
  cursor: pointer;
}

.gis-admin-economy-map-node circle {
  stroke: color-mix(in srgb, var(--background), transparent 12%);
  stroke-width: 0.45;
  transition: r 160ms ease, stroke 160ms ease, stroke-width 160ms ease;
}

.gis-admin-economy-map-node text {
  fill: var(--foreground);
  font-size: 2px;
  font-weight: 800;
  opacity: 0;
  pointer-events: none;
}

.gis-admin-economy-map-node:hover circle,
.gis-admin-economy-map-node:focus-visible circle,
.gis-admin-economy-map-node.is-selected circle {
  stroke: var(--primary);
  stroke-width: 0.85;
}

.gis-admin-economy-map-node:hover text,
.gis-admin-economy-map-node:focus-visible text,
.gis-admin-economy-map-node.is-selected text {
  opacity: 1;
}

.gis-admin-economy-detail {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
  margin-top: var(--space-3);
}

.gis-admin-economy-detail div,
.gis-admin-economy-selected-grid div,
.gis-admin-economy-source-grid div,
.gis-admin-economy-quality div {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
  padding: var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--muted), transparent 62%);
}

.gis-admin-economy-detail span,
.gis-admin-economy-selected-grid span,
.gis-admin-economy-source-grid span,
.gis-admin-economy-quality span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 800;
  line-height: var(--lh-xs);
}

.gis-admin-economy-detail strong,
.gis-admin-economy-selected-grid strong,
.gis-admin-economy-source-grid strong,
.gis-admin-economy-quality strong {
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 850;
  line-height: var(--lh-sm);
  overflow-wrap: anywhere;
}

.gis-admin-economy-city-list,
.gis-admin-economy-bars,
.gis-admin-economy-quality {
  display: grid;
  gap: var(--space-2);
}

.gis-admin-economy-city-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-1) var(--space-3);
  width: 100%;
  padding: var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card);
  color: var(--foreground);
  text-align: left;
  cursor: pointer;
}

.gis-admin-economy-city-row:hover,
.gis-admin-economy-city-row:focus-visible,
.gis-admin-economy-city-row.is-selected {
  border-color: color-mix(in srgb, var(--primary) 56%, var(--border));
  background: color-mix(in srgb, var(--primary) 10%, var(--card));
}

.gis-admin-economy-city-row span,
.gis-admin-economy-bar-head span {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  gap: var(--space-2);
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 850;
  line-height: var(--lh-sm);
}

.gis-admin-economy-city-row em,
.gis-admin-economy-bar-head em {
  color: var(--muted-foreground);
  font-style: normal;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.gis-admin-economy-city-row strong,
.gis-admin-economy-bar-head strong {
  color: var(--foreground);
  font-size: var(--fs-sm);
  font-weight: 900;
  line-height: var(--lh-sm);
  white-space: nowrap;
}

.gis-admin-economy-city-row small {
  grid-column: 1 / -1;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.gis-admin-economy-selected {
  display: grid;
  gap: var(--space-2);
}

.gis-admin-economy-selected p {
  margin: 0;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  font-weight: 700;
}

.gis-admin-economy-selected-grid,
.gis-admin-economy-source-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
}

.gis-admin-economy-bar-row {
  display: grid;
  gap: var(--space-1);
}

.gis-admin-economy-bar-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-2);
  align-items: center;
}

.gis-admin-economy-bar-track {
  height: 8px;
  overflow: hidden;
  border-radius: var(--radius-full);
  background: color-mix(in srgb, var(--muted), transparent 36%);
}

.gis-admin-economy-bar-track i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--primary);
}

.gis-admin-economy-bar-row p {
  margin: 0;
}

.gis-admin-economy-empty {
  display: grid;
  place-items: center;
  min-height: 160px;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  font-weight: 750;
}

.gis-admin-economy-formula {
  display: grid;
  gap: var(--space-2);
}

.gis-admin-economy-formula p {
  margin: 0;
  padding: var(--space-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

.gis-admin-economy-formula b {
  color: var(--foreground);
}

@media (max-width: 1280px) {
  .gis-admin-economy-kpi-grid,
  .gis-admin-economy-grid--enterprise,
  .gis-admin-economy-grid--source {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gis-admin-economy-grid--main {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .gis-admin-economy-kpi-grid,
  .gis-admin-economy-grid--enterprise,
  .gis-admin-economy-grid--source,
  .gis-admin-economy-selected-grid,
  .gis-admin-economy-source-grid,
  .gis-admin-economy-detail {
    grid-template-columns: 1fr;
  }

  .gis-admin-economy-tabs {
    position: static;
  }

  .gis-admin-economy-city-row,
  .gis-admin-economy-bar-head {
    grid-template-columns: 1fr;
  }

  .gis-admin-economy-city-row strong,
  .gis-admin-economy-bar-head strong {
    white-space: normal;
  }
}
.gis-parcel-candidate-map {
  position: relative;
  min-height: 320px;
  margin-bottom: 16px;
  overflow: hidden;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--border-subtle) 44%, transparent) 1px, transparent 1px),
    linear-gradient(0deg, color-mix(in srgb, var(--border-subtle) 44%, transparent) 1px, transparent 1px),
    var(--surface-raised, var(--surface));
  background-size: 32px 32px;
}

@media (min-width: 1120px) {
  #parcelWorkspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 400px);
    gap: var(--space-3);
    align-items: start;
  }

  #parcelWorkspace .gis-parcel-boundary-card {
    grid-column: 1;
    grid-row: 1;
  }

  #parcelWorkspace .gis-parcel-editor-card {
    grid-column: 2;
    grid-row: 1 / span 2;
    position: sticky;
    top: var(--space-3);
    max-height: calc(100vh - var(--space-6));
    overflow: auto;
  }

  #parcelWorkspace .gis-parcel-list-card {
    grid-column: 1;
    grid-row: 2;
  }
}

.gis-parcel-editor-card {
  order: 2;
}

.gis-parcel-list-card {
  order: 3;
}

.gis-parcel-editor-card[hidden] {
  display: none;
}

.gis-parcel-boundary-card {
  order: 1;
}

.gis-parcel-create-card.is-map-selected,
#parcelDetailCard.is-map-selected {
  border-color: color-mix(in srgb, var(--accent) 54%, var(--border));
  box-shadow: inset 3px 0 0 var(--accent);
}

.gis-parcel-editor-card .card-content {
  display: grid;
  gap: var(--space-3);
}

.gis-parcel-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
}

.gis-parcel-form-grid .input-group {
  min-width: 0;
}

.gis-parcel-primary-field {
  grid-column: 1 / -1;
}

.gis-parcel-local-area-field {
  display: none;
}

.gis-parcel-editor-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-2);
  padding-top: var(--space-1);
}

.gis-parcel-editor-footer .btn-primary {
  flex: 1 1 auto;
}

.gis-parcel-subsection-head {
  display: grid;
  gap: var(--space-1);
  margin-bottom: var(--space-2);
}

.gis-parcel-code-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(72px, 0.55fr);
  gap: var(--space-2);
  align-items: center;
}

.gis-parcel-code-fields > span {
  color: var(--muted-foreground);
  font-weight: 600;
  line-height: 1;
}

.gis-parcel-code-fields .input {
  min-width: 0;
  text-align: right;
}

.gis-parcel-duplicate-status {
  min-height: 1.1rem;
  margin-top: var(--space-1);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: 1.4;
}

.gis-parcel-duplicate-status.is-ok {
  color: var(--success);
}

.gis-parcel-duplicate-status.is-error {
  color: var(--destructive);
}

.gis-parcel-owner-panel {
  display: grid;
  gap: var(--space-3);
}

.gis-parcel-owner-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.gis-parcel-owner-list {
  display: grid;
  gap: var(--space-2);
}

.gis-parcel-owner-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-width: 0;
  padding: var(--space-2);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface-raised, var(--surface)) 86%, transparent);
}

.gis-parcel-owner-row-main {
  min-width: 0;
}

.gis-parcel-owner-row-title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
}

.gis-parcel-owner-row-meta {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: 1.4;
}

.gis-parcel-owner-row-actions {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  flex-shrink: 0;
}

.gis-parcel-owner-row.is-pending {
  border-color: color-mix(in srgb, var(--warning) 56%, var(--border));
  background: color-mix(in srgb, var(--warning) 8%, var(--surface-raised, var(--surface)));
}

.gis-parcel-boundary-inline,
.gis-parcel-boundary-actionbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-top: var(--space-3);
  padding: var(--space-3);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface-raised, var(--surface)) 88%, transparent);
}

.gis-parcel-boundary-actionbar {
  margin-top: 0;
  margin-bottom: var(--space-3);
}

.gis-parcel-boundary-actionbar.is-unregistered {
  border-color: color-mix(in srgb, #facc15 64%, var(--border));
  background: color-mix(in srgb, #facc15 8%, var(--surface-raised, var(--surface)));
}

.gis-parcel-boundary-actionbar.is-linked {
  border-color: color-mix(in srgb, var(--muted-foreground) 38%, var(--border));
}

.gis-parcel-boundary-actionbar.is-replacing {
  border-color: color-mix(in srgb, var(--warning) 58%, var(--border));
  background: color-mix(in srgb, var(--warning) 10%, var(--surface-raised, var(--surface)));
}

.gis-parcel-boundary-actionbar.is-split-candidate {
  border-color: color-mix(in srgb, var(--accent) 62%, var(--border));
  background: color-mix(in srgb, var(--accent) 9%, var(--surface-raised, var(--surface)));
}

.gis-parcel-boundary-actions {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  flex-shrink: 0;
}

.gis-parcel-boundary-inline[hidden],
.gis-parcel-boundary-actionbar[hidden] {
  display: none;
}

.gis-parcel-boundary-actionbar > div,
.gis-parcel-boundary-inline > div {
  min-width: 0;
}

.gis-parcel-boundary-actionbar .font-medium,
.gis-parcel-boundary-inline .font-medium {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 720px) {
  .gis-parcel-editor-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .gis-parcel-editor-footer .btn {
    width: 100%;
  }

  .gis-parcel-boundary-inline,
  .gis-parcel-boundary-actionbar {
    align-items: stretch;
    flex-direction: column;
  }

  .gis-parcel-boundary-actions {
    display: flex;
    width: 100%;
  }

  .gis-parcel-boundary-actions .btn {
    width: 100%;
  }

  .gis-parcel-owner-row {
    align-items: stretch;
    flex-direction: column;
  }

  .gis-parcel-owner-row-actions {
    width: 100%;
  }

  .gis-parcel-owner-row-actions .btn {
    width: 100%;
  }
}

.gis-parcel-candidate-map svg {
  display: block;
  width: 100%;
  height: 320px;
  cursor: grab;
  touch-action: none;
  user-select: none;
  outline: none;
}

.gis-parcel-candidate-map svg:focus,
.gis-parcel-candidate-map svg:focus-visible,
.gis-parcel-candidate-map-path:focus,
.gis-parcel-candidate-map-path:focus-visible {
  outline: none;
}

.gis-parcel-candidate-map.is-empty svg {
  cursor: default;
}

.gis-parcel-candidate-map.is-dragging svg {
  cursor: grabbing;
}

.gis-parcel-candidate-map-controls {
  position: absolute;
  top: var(--space-2);
  right: var(--space-2);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-1);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface-raised, var(--surface)) 92%, transparent);
  box-shadow: var(--shadow-sm);
}

.gis-parcel-candidate-map-controls .gis-icon-btn {
  width: 2rem;
  height: 2rem;
  min-width: 2rem;
  padding: 0;
}

.gis-parcel-candidate-map-controls .hz-icon {
  font-size: 1.125rem;
}

.gis-parcel-candidate-map.is-empty .gis-parcel-candidate-map-controls {
  display: none;
}

.gis-parcel-candidate-boundary-base {
  fill: color-mix(in srgb, var(--muted-foreground) 8%, transparent);
  stroke: color-mix(in srgb, var(--muted-foreground) 74%, transparent);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
}

.gis-parcel-candidate-map-path {
  fill: transparent;
  stroke: var(--muted-foreground);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
  cursor: pointer;
  transition: fill 120ms ease, stroke 120ms ease, stroke-width 120ms ease, opacity 120ms ease;
}

.gis-parcel-candidate-map-path.is-unregistered {
  fill: color-mix(in srgb, #facc15 10%, transparent);
  stroke: #facc15;
}

.gis-parcel-candidate-map-path.is-linked {
  fill: color-mix(in srgb, var(--muted-foreground) 8%, transparent);
  stroke: color-mix(in srgb, var(--muted-foreground) 86%, var(--foreground));
  opacity: 0.82;
}

.gis-parcel-candidate-map-path.is-split-candidate {
  fill: color-mix(in srgb, var(--accent) 11%, transparent);
  stroke: var(--accent);
}

.gis-parcel-candidate-map-path:hover,
.gis-parcel-candidate-map-path:focus-visible,
.gis-parcel-candidate-map-path.is-selected {
  fill: color-mix(in srgb, var(--accent) 28%, transparent);
  stroke: var(--accent);
  stroke-width: 3;
  opacity: 1;
}

.gis-parcel-candidate-label-layer {
  pointer-events: none;
}

.gis-parcel-candidate-map-label {
  fill: var(--foreground);
  font-size: 12px;
  font-weight: 600;
  paint-order: stroke;
  stroke: color-mix(in srgb, var(--surface) 86%, transparent);
  stroke-linejoin: round;
  stroke-width: 3px;
  pointer-events: none;
}

.gis-parcel-candidate-map-label.is-hidden {
  display: none;
}

.gis-parcel-candidate-map-empty {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  text-align: center;
  padding: 24px;
}

.gis-parcel-candidate-map:not(.is-empty) .gis-parcel-candidate-map-empty {
  display: none;
}

.gis-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.gis-portal-network-stack {
  gap: var(--space-5);
}

.gis-portal-network-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
  gap: var(--space-4);
  align-items: start;
}

.gis-portal-network-wide-field {
  grid-column: 1 / -1;
}

.gis-portal-network-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.gis-portal-network-issued {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-3);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  background: var(--surface-muted);
}

.gis-portal-network-issued code,
.gis-portal-network-command code {
  font-family: var(--font-mono);
}

.gis-portal-network-issued code {
  display: block;
  max-width: 100%;
  margin-top: var(--space-1);
  font-size: var(--fs-body-lg);
  font-weight: 700;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.gis-portal-network-command {
  margin: 0;
  padding: var(--space-3);
  overflow-x: auto;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  background: var(--surface-muted);
}

.gis-portal-network-checklist {
  display: grid;
  gap: var(--space-2);
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
}

.gis-portal-network-checklist > div {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.gis-portal-network-row-mobile-meta {
  display: none;
}

@media (max-width: 960px) {
  .gis-portal-network-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .gis-portal-network-page .gis-page-hero-actions,
  .gis-portal-network-form-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .gis-portal-network-page .gis-page-hero-actions .btn,
  .gis-portal-network-form-actions .btn {
    width: 100%;
  }

  .gis-portal-network-issued {
    display: grid;
    grid-template-columns: 1fr;
  }

  .gis-portal-network-issued .btn {
    width: 100%;
  }

  .gis-portal-network-page table:has(#networkClaimsBody),
  .gis-portal-network-page table:has(#networkClaimsBody) thead,
  .gis-portal-network-page #networkClaimsBody,
  .gis-portal-network-page #networkClaimsBody tr,
  .gis-portal-network-page #networkClaimsBody td,
  .gis-portal-network-page table:has(#networkCarriersBody),
  .gis-portal-network-page table:has(#networkCarriersBody) thead,
  .gis-portal-network-page #networkCarriersBody,
  .gis-portal-network-page #networkCarriersBody tr,
  .gis-portal-network-page #networkCarriersBody td {
    display: block;
    width: 100%;
  }

  .gis-portal-network-page table:has(#networkClaimsBody),
  .gis-portal-network-page table:has(#networkCarriersBody) {
    min-width: 0;
    table-layout: auto;
  }

  .gis-portal-network-page table:has(#networkClaimsBody) thead,
  .gis-portal-network-page table:has(#networkCarriersBody) thead {
    display: none;
  }

  .gis-portal-network-page #networkClaimsBody,
  .gis-portal-network-page #networkCarriersBody {
    display: grid;
    gap: var(--space-2);
  }

  .gis-portal-network-page #networkClaimsBody tr,
  .gis-portal-network-page #networkCarriersBody tr {
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--card), transparent 6%);
    transition: background-color 120ms ease, border-color 120ms ease;
  }

  .gis-portal-network-page #networkClaimsBody tr:hover,
  .gis-portal-network-page #networkCarriersBody tr:hover {
    border-color: color-mix(in srgb, var(--primary), var(--border) 68%);
    background: color-mix(in srgb, var(--primary), var(--card) 94%);
  }

  .gis-portal-network-page #networkClaimsBody td,
  .gis-portal-network-page #networkCarriersBody td,
  .gis-portal-network-page #networkClaimsBody tr:hover td,
  .gis-portal-network-page #networkCarriersBody tr:hover td {
    padding: 0;
    border-bottom: 0;
    background: transparent;
  }

  .gis-portal-network-page #networkClaimsBody td:nth-child(2),
  .gis-portal-network-page #networkClaimsBody td:nth-child(3),
  .gis-portal-network-page #networkClaimsBody td:nth-child(4),
  .gis-portal-network-page #networkClaimsBody td:nth-child(5),
  .gis-portal-network-page #networkCarriersBody td:not(:first-child) {
    display: none;
  }

  .gis-portal-network-page #networkClaimsBody td:last-child {
    display: block;
    margin-top: var(--space-2);
  }

  .gis-portal-network-page #networkClaimsBody td:last-child .btn {
    width: 100%;
  }

  .gis-portal-network-row-mobile-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
    margin-top: var(--space-1);
  }

  .gis-portal-network-row-mobile-meta span {
    min-width: 0;
    padding: var(--space-0-5) var(--space-1-5);
    border-radius: var(--radius-sm);
    background: var(--muted);
    color: var(--muted-foreground);
    font-size: var(--fs-2xs);
    line-height: var(--lh-xs);
    word-break: keep-all;
    overflow-wrap: anywhere;
  }

  .gis-portal-network-row-mobile-meta strong {
    margin-right: var(--space-1);
    color: var(--foreground);
    font-weight: 600;
  }
}

@media (max-width: 640px) {
  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-shell {
    gap: var(--space-2);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-head {
    grid-template-columns: 1fr;
    gap: var(--space-1-5);
    min-height: 0;
    padding: var(--space-1) 0 var(--space-1-5);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-head-main {
    max-width: 100%;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-head h1 {
    font-size: clamp(1.32rem, 6.4vw, 1.62rem);
    line-height: 1.12;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-nav {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--space-1);
    width: 100%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-padding-inline: var(--space-1);
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

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

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-nav a {
    flex: 0 0 auto;
    width: auto;
    min-width: max-content;
    min-height: 32px;
    padding-inline: var(--space-2);
    overflow: visible;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-head-meta > span,
  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-data-scale {
    display: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-snapshot-note {
    display: -webkit-box;
    max-width: 100%;
    overflow: hidden;
    overflow-wrap: anywhere;
    text-overflow: clip;
    white-space: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-stat small {
    display: none;
  }

  body.gis-body.gis-stats-portal-page #statsIndustryPlaceCategoryButtons.gis-stats-agency-segmented {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    gap: var(--space-1);
    overflow-x: visible;
    overscroll-behavior-x: contain;
    scroll-padding-inline: var(--space-1);
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  body.gis-body.gis-stats-portal-page #statsIndustryPlaceCategoryButtons.gis-stats-agency-segmented::-webkit-scrollbar {
    display: none;
  }

  body.gis-body.gis-stats-portal-page #statsIndustryPlaceCategoryButtons.gis-stats-agency-segmented button {
    width: 100%;
    min-width: 0;
    min-height: var(--control-h-s);
    padding-inline: var(--space-2);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-industry-place-toolbar {
    overflow: hidden;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-economy-map .gis-stats-agency-map-legend {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-1) var(--space-2);
    align-items: start;
    font-size: var(--fs-2xs);
    line-height: var(--lh-xs);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-economy-map .gis-stats-agency-map-legend span {
    white-space: normal;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--enterprise-representative .gis-stats-agency-enterprise-list {
    gap: 0;
    padding: var(--space-2);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--enterprise-representative .gis-stats-agency-enterprise-row {
    gap: var(--space-1);
    padding: var(--space-2) 0;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--enterprise-representative .gis-stats-agency-enterprise-row-head {
    align-items: center;
    gap: var(--space-2);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--enterprise-representative .gis-stats-agency-enterprise-stack {
    height: 5px;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--enterprise-representative .gis-stats-agency-enterprise-tags {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-1);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--enterprise-representative .gis-stats-agency-enterprise-tag {
    display: flex;
    align-items: center;
    min-width: 0;
    min-height: 32px;
    padding-inline: var(--space-1-5);
    overflow: visible;
    overflow-wrap: anywhere;
    line-height: var(--lh-2xs);
    text-align: center;
    text-overflow: clip;
    white-space: normal;
    word-break: keep-all;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--enterprise-representative .gis-stats-agency-enterprise-tag:nth-child(n + 3) {
    display: none;
  }

}

@media (max-width: 640px) {
  body.gis-body.gis-stats-portal-page .gis-stats-agency-chart-meta--spread {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-chart-meta--spread > div,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-chart-meta--spread > div:nth-child(3n),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-chart-meta--spread > div:nth-last-child(-n + 3) {
    min-height: 64px;
    padding: var(--space-2);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-chart-meta--spread > div:nth-child(3n) {
    border-right: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-chart-meta--spread > div:nth-last-child(-n + 3) {
    border-bottom: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-chart-meta--spread strong {
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-chart-meta--spread .gis-stats-agency-label-with-tip {
    align-items: flex-start;
    gap: var(--space-0-5);
    white-space: normal;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-chart-meta--spread .gis-stats-tip-label {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-spread-detail {
    gap: var(--space-1-5);
    padding: var(--space-2-5);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-spread-detail > div {
    gap: var(--space-1);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-spread-detail p {
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-living-row,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-settlement-row,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-stability-row,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-building-registration-row,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-development-list .gis-stats-agency-development-row,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-spread-list .gis-stats-agency-spread-row,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-growth-row,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-flow-network-row {
    padding-block: var(--space-1-5) !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-living-table-body,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-settlement-table-body,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-stability-table-body,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-building-registration-table-body,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-growth-table-body,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-flow-network-table-body {
    gap: var(--space-1);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-living-row,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-settlement-row,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-stability-row,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-building-registration-row,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-growth-row,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-flow-network-row {
    grid-template-columns: 2rem minmax(0, 1fr) max-content !important;
    gap: var(--space-0-5) var(--space-1-5) !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-living-rank,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-settlement-rank,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-stability-rank,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-building-registration-rank,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-growth-rank,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-flow-network-rank {
    grid-row: 1 / span 2;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-living-score,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-settlement-score,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-stability-score,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-building-registration-count,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-growth-score,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-flow-network-score {
    grid-column: 3 !important;
    grid-row: 1;
    justify-self: end !important;
    white-space: nowrap !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-living-score::before,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-settlement-score::before,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-stability-score::before,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-building-registration-count::before,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-growth-score::before,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-flow-network-score::before {
    display: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-living-improvement,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-settlement-service,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-stability-priority,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-building-registration-latest,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-growth-population,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-flow-network-dependency {
    grid-column: 2 !important;
    grid-row: 2;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-living-row i,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-settlement-row i,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-stability-row i,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-growth-row i,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-flow-network-row i {
    grid-column: 3 !important;
    grid-row: 2;
    justify-self: end;
    max-width: 8.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-living-poi,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-living-primary,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-settlement-household,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-settlement-residential,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-stability-base,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-stability-living,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-stability-balance,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-building-registration-residential,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-building-registration-households,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-building-registration-unknown,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-growth-building,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-growth-activity,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-growth-map,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-flow-network-partner,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-flow-network-primary,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-development-sample {
    display: none !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-spread-sample {
    display: inline-flex !important;
    grid-column: 2 / 4 !important;
    justify-self: start !important;
    width: auto !important;
    max-width: 100%;
    gap: var(--space-1);
    color: var(--muted-foreground);
    text-align: left !important;
    white-space: normal !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-spread-list .gis-stats-agency-spread-row {
    grid-template-columns: 2rem minmax(0, 1fr) max-content !important;
    gap: var(--space-1) var(--space-2) !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-spread-list .gis-stats-agency-spread-rank {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    align-self: start;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-spread-list .gis-stats-agency-spread-name {
    grid-column: 2 !important;
    grid-row: 1 !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-spread-list .gis-stats-agency-spread-ratio {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    white-space: nowrap !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-spread-list .gis-stats-agency-spread-sample {
    grid-column: 2 !important;
    grid-row: 2 !important;
    justify-self: start !important;
    min-width: 0;
    overflow: visible;
    text-overflow: ellipsis;
    flex-wrap: wrap;
    white-space: normal !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-spread-list .gis-stats-agency-spread-sample::before {
    flex: 0 0 auto;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-spread-list .gis-stats-agency-spread-sample b,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-spread-list .gis-stats-agency-spread-sample em {
    flex: 0 0 auto;
    overflow: visible;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-spread-list .gis-stats-agency-spread-sample em::before {
    content: "외곽 ";
    color: color-mix(in srgb, var(--muted-foreground) 78%, transparent);
    font-weight: 800;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-spread-list .gis-stats-agency-spread-sample .gis-stats-agency-tooltip-mark {
    display: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-spread-list .gis-stats-agency-spread-row i {
    grid-column: 3 !important;
    grid-row: 2 !important;
    justify-self: end !important;
    max-width: min(7rem, 100%);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-living-improvement-button {
    align-items: flex-start;
    min-height: var(--control-h-s);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-living-improvement {
    overflow: visible;
    text-overflow: clip;
    white-space: normal !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-living-improvement-button span:first-child {
    overflow: visible;
    overflow-wrap: anywhere;
    line-height: var(--lh-xs);
    text-overflow: clip;
    white-space: normal !important;
    word-break: keep-all;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-abstract-map {
    min-height: 0;
    padding: var(--space-2);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid {
    max-height: min(18dvh, 6.25rem);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-abstract-map svg {
    height: 150px;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-map-detail > span:last-child {
    display: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-child(2n),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-last-child(-n + 2),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:last-child {
    gap: 0;
    min-height: 58px;
    padding: var(--space-1-5);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-child(2n) {
    border-right: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-last-child(-n + 2) {
    border-bottom: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics span,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics strong {
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics .gis-stats-agency-label-with-tip {
    gap: var(--space-0-5);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics .gis-stats-tip-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list {
    max-height: clamp(12rem, 34dvh, 20rem);
    padding: var(--space-2);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-table {
    overflow: visible;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-table-head,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-row {
    display: grid !important;
    grid-template-columns: 2rem minmax(0, 1fr) 3.5rem minmax(4.25rem, 0.52fr) !important;
    gap: var(--space-1) !important;
    align-items: center;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-table-head {
    min-height: 28px;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-table-head span:nth-child(4),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-sample {
    display: none !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-row {
    min-height: 36px;
    padding: var(--space-1) var(--space-2) !important;
    border: 0 !important;
    border-bottom: 1px solid var(--border) !important;
    border-radius: 0 !important;
    background: transparent;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-row:last-child {
    border-bottom: 0 !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-rank {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-name {
    grid-column: 2 !important;
    grid-row: 1 !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-ratio {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-ratio::before {
    display: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-row i {
    grid-column: 4 !important;
    grid-row: 1 !important;
    justify-self: start !important;
    max-width: 100%;
    min-height: 18px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-nav.is-scrollable,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-summary.is-scrollable,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-tabs.is-section-tabs.is-scrollable,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-quarter-tabs.is-scrollable,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-segmented.is-scrollable,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-home-close-list.is-scrollable,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--population-trend .gis-stats-agency-chart-meta.is-scrollable,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-matrix-scroll.is-scrollable {
    --stats-scroll-fade-size: 1.25rem;
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
  }

  body.gis-body.gis-stats-portal-page .is-scrollable.has-scroll-right:not(.has-scroll-left) {
    -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - var(--stats-scroll-fade-size)), transparent 100%);
    mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - var(--stats-scroll-fade-size)), transparent 100%);
  }

  body.gis-body.gis-stats-portal-page .is-scrollable.has-scroll-left:not(.has-scroll-right) {
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--stats-scroll-fade-size), #000 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 var(--stats-scroll-fade-size), #000 100%);
  }

  body.gis-body.gis-stats-portal-page .is-scrollable.has-scroll-left.has-scroll-right {
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--stats-scroll-fade-size), #000 calc(100% - var(--stats-scroll-fade-size)), transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 var(--stats-scroll-fade-size), #000 calc(100% - var(--stats-scroll-fade-size)), transparent 100%);
  }
}

@media (max-width: 900px) {
  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: var(--space-1);
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scroll-padding-inline: var(--space-2);
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs::-webkit-scrollbar {
    display: none;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs > [data-stats-tab],
  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs button {
    flex: 0 0 auto;
    width: auto;
    min-width: max-content;
  }
}

@media (min-width: 641px) and (max-width: 1024px) {
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat,
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:nth-child(2n),
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:nth-child(n + 3),
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:last-child {
    grid-template-rows: auto auto;
    min-width: 0;
    min-height: 78px;
    row-gap: var(--space-1);
    padding: var(--space-2) var(--space-2-5);
    border-right: 1px solid color-mix(in srgb, var(--border), transparent 8%);
    border-bottom: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:last-child {
    border-right: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat strong {
    align-self: start;
    min-height: 0;
    overflow: hidden;
    font-size: clamp(0.98rem, 1.75vw, 1.18rem);
    line-height: var(--lh-sm);
    text-overflow: ellipsis;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat small,
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat #statsPopulationGapInline {
    display: none;
  }
}

@media (max-width: 640px) {
  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs {
    flex-wrap: wrap;
    overflow: visible;
    scrollbar-width: auto;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs > [data-stats-tab],
  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs button {
    flex: 1 1 calc(50% - var(--space-1));
    min-width: 0;
  }
}

@media (min-width: 320px) and (max-width: 640px) {
  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs {
    gap: var(--space-1);
    padding: var(--space-0-5);
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs > [data-stats-tab],
  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs button {
    flex-basis: calc((100% - (var(--space-1) * 2)) / 3);
    min-width: 0;
    min-height: var(--control-h-s);
    padding-inline: var(--space-1);
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
  }
}

@media (min-width: 320px) and (max-width: 359px) {
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat,
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:nth-child(2n),
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:nth-child(n + 3),
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:last-child {
    min-height: 58px;
    padding: var(--space-1);
    border-right: 1px solid color-mix(in srgb, var(--border), transparent 8%);
    border-bottom: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:last-child {
    border-right: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat strong {
    min-height: 0;
    font-size: clamp(0.68rem, 2.95vw, 0.78rem);
    line-height: var(--lh-2xs);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat small,
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat #statsPopulationGapInline {
    display: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary .gis-stats-agency-label-with-tip {
    gap: 1px;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary .gis-stats-tip-label,
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary .gis-stats-agency-stat span {
    font-size: clamp(0.56rem, 2.65vw, 0.62rem);
    line-height: var(--lh-2xs);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary .gis-stats-tip .gis-tip-trigger {
    --stats-tip-visual-size: 12px;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary .gis-stats-tip .gis-tip-trigger .material-symbols-outlined {
    --stats-icon-box-size: 9px;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs > [data-stats-tab],
  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs button {
    font-size: var(--fs-2xs);
    line-height: var(--lh-2xs);
  }
}

@media (min-width: 360px) and (max-width: 640px) {
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat,
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:nth-child(2n),
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:nth-child(n + 3),
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:last-child {
    min-height: 58px;
    padding: var(--space-1-5);
    border-right: 1px solid color-mix(in srgb, var(--border), transparent 8%);
    border-bottom: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:last-child {
    border-right: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat strong {
    font-size: clamp(0.74rem, 2.8vw, 0.88rem);
    line-height: var(--lh-xs);
    min-height: 0;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat #statsPopulationGapInline {
    display: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary .gis-stats-agency-label-with-tip {
    gap: 2px;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary .gis-stats-tip-label,
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary .gis-stats-agency-stat span {
    font-size: clamp(0.62rem, 2.7vw, 0.68rem);
    line-height: var(--lh-2xs);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary .gis-stats-tip .gis-tip-trigger {
    --stats-tip-visual-size: 14px;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary .gis-stats-tip .gis-tip-trigger .material-symbols-outlined {
    --stats-icon-box-size: 10px;
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs > [data-stats-tab],
  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs button {
    flex-basis: calc((100% - (var(--space-1) * 2)) / 3);
    min-width: 0;
  }

}

@media (max-width: 480px) {
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat,
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:nth-child(2n),
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:nth-child(n + 3),
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:last-child {
    min-height: 78px;
    padding: var(--space-2) var(--space-2-5);
    border-right: 1px solid color-mix(in srgb, var(--border), transparent 8%);
    border-bottom: 1px solid color-mix(in srgb, var(--border), transparent 8%);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:nth-child(2n),
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:last-child {
    border-right: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat:nth-child(n + 3) {
    border-bottom: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat strong {
    min-height: 0;
    font-size: clamp(1.08rem, 5vw, 1.28rem);
    line-height: var(--lh-h4);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat small,
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-stat #statsPopulationGapInline {
    display: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary .gis-stats-tip-label,
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary .gis-stats-agency-stat span {
    font-size: var(--fs-2xs);
    line-height: var(--lh-2xs);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary .gis-stats-tip .gis-tip-trigger {
    --stats-tip-visual-size: 16px;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-summary .gis-stats-tip .gis-tip-trigger .material-symbols-outlined {
    --stats-icon-box-size: 11px;
  }
}

@media (max-width: 340px) {
  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-close-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
    scroll-padding-inline: 0;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-close-list strong {
    width: 100%;
    min-height: 28px;
    padding-inline: var(--space-1);
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

@media (max-width: 360px) {
  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-nav {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-padding-inline: var(--space-1);
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section] .gis-stats-agency-nav a {
    flex: 0 0 auto;
    width: auto;
    min-width: max-content;
    padding-inline: var(--space-1);
    overflow: visible;
    font-size: var(--fs-2xs);
    text-overflow: clip;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-section-head > .gis-stats-agency-playback {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-section-head > .gis-stats-agency-playback .gis-stats-agency-quarter-tabs {
    width: auto;
    min-width: 0;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-section-head > .gis-stats-agency-playback .gis-stats-agency-quarter-tab {
    min-width: 62px;
    padding-inline: var(--space-1);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-section-head > .gis-stats-agency-playback .gis-stats-agency-play-button {
    width: auto;
    min-width: 44px;
    padding-inline: var(--space-1-5);
  }
}

@media (max-width: 640px) {
  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs[data-stats-tab-count="2"] > [data-stats-tab],
  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs[data-stats-tab-count="2"] button,
  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs[data-stats-tab-count="4"] > [data-stats-tab],
  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs[data-stats-tab-count="4"] button {
    flex: 1 1 calc((100% - var(--space-1)) / 2);
  }

  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs[data-stats-tab-count="6"] > [data-stats-tab],
  body.gis-body.gis-stats-portal-page:not([data-stats-section="home"]) .gis-stats-agency-tabs.is-section-tabs[data-stats-tab-count="6"] button {
    flex: 1 1 calc((100% - (var(--space-1) * 2)) / 3);
  }

  body.gis-body.gis-stats-portal-page .gis-content > .gis-stats-agency-shell {
    width: 100%;
    max-width: 100%;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-tab-panel,
  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-workspace,
  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-dashboard--spread,
  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-panel--spread-chart,
  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-panel--spread-chart .gis-stats-agency-chart-wrap,
  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-panel--spread-chart .gis-stats-agency-chart {
    min-width: 0;
    max-width: 100%;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-panel--spread-chart {
    overflow: hidden;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-panel--spread-chart .gis-stats-agency-chart-wrap {
    width: 100%;
    grid-template-columns: minmax(0, 1fr);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-panel--spread-chart .gis-stats-agency-chart {
    width: 100%;
    padding: var(--space-1-5) var(--space-2);
    overflow: hidden;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-panel--spread-chart .gis-echarts-canvas {
    width: 100% !important;
    max-width: 100%;
    height: 184px;
    min-height: 184px;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread > div,
  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread > div:nth-child(2n),
  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread > div:nth-child(3n),
  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread > div:nth-last-child(-n + 2),
  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread > div:nth-last-child(-n + 3) {
    min-width: 0;
    min-height: 56px;
    gap: var(--space-0-5);
    padding: var(--space-1-5) var(--space-2);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread > div:nth-child(3n) {
    border-right: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread > div:nth-last-child(-n + 3) {
    border-bottom: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread .gis-stats-tip-label,
  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread strong {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread .gis-stats-agency-label-with-tip {
    max-width: 100%;
    overflow: visible;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread span {
    font-size: var(--fs-2xs);
    line-height: var(--lh-2xs);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread strong {
    font-size: var(--fs-xs);
    line-height: var(--lh-xs);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread .gis-stats-tip .gis-tip-trigger {
    --stats-tip-visual-size: 18px;
    border-radius: var(--radius-sm);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread .gis-stats-tip .gis-tip-trigger .material-symbols-outlined {
    --stats-icon-box-size: var(--fs-xs);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-insight-strip,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-insight-strip:has(.gis-stats-tip) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    scroll-snap-type: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-insight-strip > div,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-insight-strip > div:nth-child(2n),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-insight-strip > div:nth-child(-n + 2),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-insight-strip > div:nth-last-child(2):nth-child(odd),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-insight-strip > div:last-child,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-insight-strip > div:last-child:nth-child(odd) {
    flex: initial;
    width: auto;
    max-width: 100%;
    min-width: 0;
    min-height: 62px;
    padding: var(--space-2);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    scroll-snap-align: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-insight-strip > div:nth-child(2n),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-insight-strip > div:last-child {
    border-right: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-insight-strip > div:nth-last-child(-n + 2) {
    border-bottom: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-insight-strip span,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-insight-strip strong {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-insight-strip strong {
    font-size: clamp(0.88rem, 3.6vw, 1rem);
    line-height: var(--lh-sm);
  }
}

@media (min-width: 320px) and (max-width: 640px) {
  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip,
  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip:has(.gis-stats-tip) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip > div,
  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip > div:nth-child(2n),
  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip > div:nth-child(-n + 2),
  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip > div:nth-last-child(-n + 2),
  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip > div:last-child {
    min-height: 58px;
    padding: var(--space-1-5);
    border-right: 1px solid var(--border);
    border-bottom: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip > div:last-child {
    border-right: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip .gis-stats-agency-label-with-tip {
    align-items: flex-start;
    gap: var(--space-0-5);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip .gis-stats-tip-label {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: normal;
    line-height: var(--lh-2xs);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip .gis-stats-tip .gis-tip-trigger {
    --stats-tip-visual-size: 18px;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip .gis-stats-tip .gis-tip-trigger .material-symbols-outlined {
    --stats-icon-box-size: var(--fs-2xs);
  }
}

@media (min-width: 320px) and (max-width: 379px) {
  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip > div,
  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip > div:nth-child(2n),
  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip > div:nth-child(-n + 2),
  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip > div:nth-last-child(-n + 2),
  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip > div:last-child {
    min-height: 54px;
    padding: var(--space-1);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip .gis-stats-agency-label-with-tip {
    align-items: center;
    gap: 1px;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip .gis-stats-tip-label,
  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip span {
    font-size: 10px;
    line-height: var(--lh-2xs);
    word-break: keep-all;
    overflow-wrap: normal;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip strong {
    font-size: clamp(0.76rem, 3.35vw, 0.92rem);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip .gis-stats-tip .gis-tip-trigger {
    --stats-tip-visual-size: 12px;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="economy"] .gis-stats-agency-insight-strip .gis-stats-tip .gis-tip-trigger .material-symbols-outlined {
    --stats-icon-box-size: 9px;
  }
}

@media (max-width: 360px) {
  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread > div,
  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread > div:nth-child(2n),
  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread > div:nth-child(3n),
  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread > div:nth-last-child(-n + 2),
  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread > div:nth-last-child(-n + 3) {
    min-height: 56px;
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread > div:nth-child(3n) {
    border-right: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread > div:nth-last-child(-n + 3) {
    border-bottom: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="city"] .gis-stats-agency-chart-meta--spread > div:last-child {
    border-right: none;
    border-bottom: none;
  }
}

body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-guide {
  gap: var(--space-1-5);
  padding: var(--space-2);
}

body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid {
  max-height: 5.75rem;
}

body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div {
  padding: var(--space-1-5) var(--space-2);
}

body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-guide dd {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}

body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-abstract-map {
  padding: var(--space-2);
}

body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-abstract-map svg {
  height: 240px;
}

body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-map-detail {
  min-height: 0;
  gap: var(--space-1);
  padding: var(--space-2);
}

body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-map-detail > span:last-child {
  display: none;
}

body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div,
body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-child(2n),
body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-last-child(-n + 2),
body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:last-child {
  min-height: 52px;
  padding: var(--space-1-5);
}

body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list {
  max-height: 7.75rem;
  padding: var(--space-2);
}

@media (max-width: 640px) {
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-panel-head {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-panel-head h3 {
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-panel-head > span {
    justify-self: end;
    max-width: 42vw;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
    max-height: none;
    overflow: visible;
    border: 0;
    background: transparent;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid::-webkit-scrollbar {
    display: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-child(2n),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-child(3n),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-last-child(-n + 2),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:nth-last-child(-n + 3),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-guide-grid > div:last-child {
    flex: 0 0 auto;
    min-width: 0;
    padding: 0;
    border: 0;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-guide dt {
    margin: 0;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-guide i {
    min-height: 22px;
    padding: 0 var(--space-1-5);
    font-size: var(--fs-2xs);
    line-height: 22px;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-guide dd {
    display: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-abstract-map svg {
    height: 132px;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-child(2n),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-last-child(-n + 2),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:last-child {
    min-width: 0;
    min-height: 52px;
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-child(2n) {
    border-right: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:nth-last-child(-n + 2) {
    border-bottom: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics > div:last-child {
    border-right: none;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics span,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-metrics .gis-stats-tip-label {
    min-width: 0;
    max-width: 100%;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list {
    max-height: clamp(11rem, 36dvh, 18rem);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-table-head,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-row {
    grid-template-columns: 2rem minmax(6.25rem, 1fr) 3.5rem !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-table-head span:nth-child(4),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-table-head span:nth-child(5),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-sample,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-row i {
    display: none !important;
  }
}

@media (min-width: 641px) and (max-width: 1023px) {
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-grid {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.38fr);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-table-head,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-row {
    grid-template-columns: 2rem minmax(6.5rem, 1fr) 3.5rem !important;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-table-head span:nth-child(4),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-table-head span:nth-child(5),
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-sample,
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel--development .gis-stats-agency-development-list .gis-stats-agency-development-row i {
    display: none !important;
  }
}

@media (max-width: 640px) {
  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-panel--flow-chart .gis-stats-agency-chart-wrap {
    min-height: 0;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-panel--flow-chart .gis-stats-agency-chart {
    padding: var(--space-2);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-panel--flow-chart .gis-echarts-canvas {
    height: 196px;
    min-height: 196px;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-chart-meta--flow {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-chart-meta--flow > div,
  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-chart-meta--flow > div:nth-child(3n),
  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-chart-meta--flow > div:nth-last-child(-n + 3),
  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-chart-meta--flow > div:last-child {
    min-height: 50px;
    gap: var(--space-1);
    padding: var(--space-1-5) var(--space-2);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-chart-meta--flow > div:nth-child(2n) {
    border-right: 1px solid var(--border);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-chart-meta--flow > div:nth-child(3n) {
    border-right: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-chart-meta--flow > div:nth-last-child(-n + 2) {
    border-bottom: 1px solid var(--border);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-chart-meta--flow > div:nth-last-child(-n + 3) {
    border-bottom: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-chart-meta--flow span {
    font-size: var(--fs-2xs);
    line-height: var(--lh-xs);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-chart-meta--flow strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--fs-sm);
    line-height: var(--lh-sm);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-flow-pair-list {
    gap: var(--space-1-5);
    padding: var(--space-2);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-panel--flow-pairs .gis-stats-agency-panel-head {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-panel--flow-pairs .gis-stats-agency-panel-head h3 {
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-panel--flow-pairs .gis-stats-agency-panel-head > span {
    justify-self: end;
    max-width: 38vw;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-flow-pair-row {
    gap: var(--space-1-5);
    padding: var(--space-1-5) var(--space-2);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-flow-pair-main {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-1);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-flow-pair-main span {
    width: auto;
    gap: var(--space-1);
    font-size: var(--fs-xs);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-flow-pair-main strong {
    justify-self: end;
    font-size: var(--fs-xs);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-flow-pair-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-1);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-flow-pair-meta span {
    font-size: var(--fs-2xs);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-flow-split {
    height: 4px;
  }
}

@media (max-width: 360px) {
  body.gis-body.gis-stats-portal-page[data-stats-section="activity"] .gis-stats-agency-flow-pair-meta {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  body.gis-body.gis-admin-page .gis-hero-title > p.text-muted,
  body.gis-body.gis-admin-page .card-description {
    max-width: calc(100vw - (var(--space-4) * 2)) !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: keep-all;
  }
}

@media (min-width: 560px) and (max-width: 640px) {
  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head--rank {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    min-height: var(--control-h-m);
    padding-top: var(--space-1);
    padding-bottom: var(--space-1);
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head--rank h3 {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head--rank .gis-stats-agency-panel-head-actions {
    display: flex;
    flex: 0 1 auto;
    align-items: center;
    justify-content: flex-end;
    width: auto;
    min-width: 0;
    margin-left: auto;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head--rank .gis-stats-agency-panel-head-actions .gis-stats-agency-segmented {
    flex: 0 0 auto;
    width: auto;
  }

  body.gis-body.gis-stats-portal-page .gis-stats-agency-panel-head--rank .gis-stats-agency-panel-head-actions > span {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 11rem;
    overflow: hidden;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

/* City registration — submit hint, confirm dialog, toast (20260710 submitflow) */
.gis-portal-city-registration-page .city-reg-area-submit-hint {
  margin: var(--space-2) 0 0;
  padding: var(--space-2) var(--space-3);
  border: var(--space-px) solid var(--city-reg-paper-rule);
  border-radius: var(--radius-sm);
  color: color-mix(in srgb, var(--foreground) 78%, transparent);
  background: color-mix(in srgb, var(--surface) 88%, transparent);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

.city-reg-submit-dialog {
  position: fixed;
  inset: 0;
  width: min(var(--modal-w-m), calc(100vw - var(--space-6)));
  max-width: var(--modal-w-m);
  max-height: calc(100dvh - var(--space-8));
  margin: auto;
  padding: 0;
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  color: var(--foreground);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
}
.city-reg-submit-dialog::backdrop {
  background: color-mix(in srgb, var(--foreground) 42%, transparent);
}
.city-reg-submit-form {
  display: grid;
  gap: var(--space-4);
  max-height: inherit;
  padding: var(--space-5);
  overflow-y: auto;
}
.city-reg-submit-dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}
.city-reg-submit-dialog-title {
  margin: 0;
  font-size: var(--fs-h3);
  font-weight: 700;
  line-height: var(--lh-h3);
}
.city-reg-submit-area {
  border: var(--space-px) solid var(--city-reg-paper-rule);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.city-reg-submit-area-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-3);
}
.city-reg-submit-area-name {
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: var(--lh-body);
}
.city-reg-submit-area-meta {
  margin-top: var(--space-0-5);
  color: color-mix(in srgb, var(--foreground) 66%, transparent);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}
.city-reg-submit-area .city-reg-area-price-grid {
  border-top: var(--space-px) solid var(--city-reg-paper-rule);
}
.city-reg-submit-fields {
  display: grid;
  gap: var(--space-3);
}
.city-reg-submit-name-summary {
  display: grid;
  gap: var(--space-1);
  padding: var(--space-3);
  border: var(--space-px) solid var(--city-reg-paper-rule);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--surface) 88%, var(--background) 12%);
}
.city-reg-submit-name-summary > span,
.city-reg-submit-name-summary > small {
  color: color-mix(in srgb, var(--foreground) 66%, transparent);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}
.city-reg-submit-name-summary > strong {
  color: var(--foreground);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
}
.city-reg-submit-field {
  display: grid;
  gap: var(--space-1);
  font-size: var(--fs-xs);
  color: color-mix(in srgb, var(--foreground) 78%, transparent);
}
.city-reg-submit-field > span em {
  color: var(--destructive, var(--primary));
  font-style: normal;
  margin-left: var(--space-0-5);
}
.city-reg-submit-field textarea {
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--background, var(--surface));
  color: var(--foreground);
  font: inherit;
  font-size: var(--fs-body);
}
.city-reg-submit-field textarea {
  resize: vertical;
  min-height: 3.5rem;
}
.city-reg-submit-error {
  margin: 0;
}
.city-reg-submit-dialog-footer {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-2);
}

body.gis-body.gis-portal-city-registration-page > .toast-viewport {
  position: fixed;
  top: calc(var(--header-height) + var(--space-3));
  right: var(--space-4);
  bottom: auto;
  z-index: var(--z-toast);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-2);
  width: min(24rem, calc(100vw - var(--space-6)));
  max-width: min(24rem, calc(100vw - var(--space-6)));
}
body.gis-body.gis-portal-city-registration-page > .toast-viewport .toast {
  padding: var(--space-3) var(--space-4);
  border: var(--space-px) solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  color: var(--foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-body);
  box-shadow: var(--shadow-md);
  opacity: 0;
  transform: translateY(var(--space-2));
  transition: opacity 180ms ease, transform 180ms ease;
}
body.gis-body.gis-portal-city-registration-page > .toast-viewport .toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}
body.gis-body.gis-portal-city-registration-page > .toast-viewport .toast--success {
  border-left: var(--space-1) solid var(--success);
}
body.gis-body.gis-portal-city-registration-page > .toast-viewport .toast--warning {
  border-left: var(--space-1) solid var(--warning);
}
body.gis-body.gis-portal-city-registration-page > .toast-viewport .toast--info {
  border-left: var(--space-1) solid var(--primary);
}

@media (max-width: 640px) {
  .city-reg-submit-dialog {
    inset: auto 0 0;
    width: 100%;
    max-width: none;
    max-height: calc(100dvh - var(--header-height) - var(--space-2));
    margin: 0;
    border-bottom: 0;
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
  }
  .city-reg-submit-form {
    gap: var(--space-3);
    padding: var(--space-4);
  }
  body.gis-body.gis-portal-city-registration-page > .toast-viewport {
    left: var(--space-4);
    right: var(--space-4);
    width: auto;
    max-width: none;
  }
}

/* City registration — submit dialog price factor breakdown (20260710 pricing) */
.city-reg-submit-factors {
  display: grid;
  gap: var(--space-1);
  padding: var(--space-3);
  border-top: var(--space-px) solid var(--city-reg-paper-rule);
  background: color-mix(in srgb, var(--surface) 90%, transparent);
}
.city-reg-factor-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: color-mix(in srgb, var(--foreground) 80%, transparent);
}
.city-reg-factor-row strong {
  font-weight: 600;
  color: var(--foreground);
}

/* City registration — unified achievement meter + label chips (20260710 unified) */
.gis-portal-city-registration-page .city-reg-overall {
  display: grid;
  gap: var(--space-3);
  padding: var(--space-4);
  border: var(--space-px) solid var(--city-reg-paper-rule);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--surface) 92%, transparent);
}
.gis-portal-city-registration-page .city-reg-overall-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3);
}
.gis-portal-city-registration-page .city-reg-overall-label {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: color-mix(in srgb, var(--foreground) 80%, transparent);
}
.gis-portal-city-registration-page .city-reg-overall-percent {
  font-size: var(--fs-display);
  font-weight: 700;
  line-height: var(--lh-display);
  font-variant-numeric: tabular-nums;
  color: var(--foreground);
}
.gis-portal-city-registration-page .city-reg-overall-track {
  height: var(--space-3);
  border-radius: var(--radius-full);
  overflow: hidden;
  background: color-mix(in srgb, var(--foreground) 10%, transparent);
}
.gis-portal-city-registration-page .city-reg-overall-fill {
  --city-reg-overall-progress: 0;
  height: 100%;
  width: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--primary) 82%, transparent),
    var(--primary));
  transform: scaleX(var(--city-reg-overall-progress));
  transform-origin: left center;
  transition: transform 620ms cubic-bezier(0.22, 1, 0.36, 1);
}
.gis-portal-city-registration-page .city-reg-overall-fill.is-complete {
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--success) 82%, transparent),
    var(--success));
}
.gis-portal-city-registration-page .city-reg-overall-summary {
  margin: 0;
  font-size: var(--fs-sm);
  line-height: var(--lh-body);
  color: color-mix(in srgb, var(--foreground) 76%, transparent);
}

.gis-portal-city-registration-page .city-reg-criteria-chips {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: var(--space-2);
  margin-top: var(--space-3);
}
.gis-portal-city-registration-page .city-reg-crit-chip {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2-5) var(--space-3);
  border: var(--space-px) solid var(--city-reg-paper-rule);
  border-radius: var(--radius-md);
  background: var(--surface);
  min-width: 0;
}
.gis-portal-city-registration-page .city-reg-crit-chip-icon {
  flex: none;
  color: color-mix(in srgb, var(--foreground) 45%, transparent);
}
.gis-portal-city-registration-page .city-reg-crit-chip-body {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}
.gis-portal-city-registration-page .city-reg-crit-chip-label {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--foreground);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gis-portal-city-registration-page .city-reg-crit-chip-state {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  color: color-mix(in srgb, var(--foreground) 60%, transparent);
}
.gis-portal-city-registration-page .city-reg-crit-chip.is-pass {
  border-color: color-mix(in srgb, var(--success) 55%, var(--city-reg-paper-rule));
  background: color-mix(in srgb, var(--success) 8%, var(--surface));
}
.gis-portal-city-registration-page .city-reg-crit-chip.is-pass .city-reg-crit-chip-icon,
.gis-portal-city-registration-page .city-reg-crit-chip.is-pass .city-reg-crit-chip-state {
  color: var(--success);
}
.gis-portal-city-registration-page .city-reg-crit-chip.is-fail {
  border-color: color-mix(in srgb, var(--destructive) 45%, var(--city-reg-paper-rule));
}
.gis-portal-city-registration-page .city-reg-crit-chip.is-fail .city-reg-crit-chip-icon,
.gis-portal-city-registration-page .city-reg-crit-chip.is-fail .city-reg-crit-chip-state {
  color: var(--destructive);
}
.gis-portal-city-registration-page .city-reg-crit-chip.is-muted {
  opacity: 0.6;
}
.gis-portal-city-registration-page .city-reg-development-summary {
  margin: var(--space-2) 0 0;
  padding: var(--space-2) var(--space-3);
  border-left: var(--space-1) solid var(--primary);
  color: color-mix(in srgb, var(--foreground) 76%, transparent);
  background: color-mix(in srgb, var(--primary) 7%, transparent);
  font-size: var(--fs-xs);
  line-height: var(--lh-body);
}
@media (max-width: 640px) {
  .gis-portal-city-registration-page .city-reg-criteria-chips {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (prefers-reduced-motion: reduce) {
  .gis-portal-city-registration-page .city-reg-overall-fill { transition: none; }
}

/* City registration — hero subtitle + status strip (20260710 redesign) */
.gis-portal-city-registration-page .city-reg-special-hero-sub {
  margin: var(--space-1) 0 0;
  color: color-mix(in srgb, var(--foreground) 70%, transparent);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
}
.gis-portal-city-registration-page .city-reg-status-strip {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-3);
}
.gis-portal-city-registration-page .city-reg-status-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1-5);
  padding: var(--space-1) var(--space-2-5);
  border: var(--space-px) solid var(--city-reg-paper-rule);
  border-radius: var(--radius-full);
  background: var(--surface);
  color: color-mix(in srgb, var(--foreground) 78%, transparent);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  white-space: nowrap;
}
.gis-portal-city-registration-page .city-reg-status-pill .hz-icon {
  color: color-mix(in srgb, var(--foreground) 55%, transparent);
}
.gis-portal-city-registration-page .city-reg-status-pill.is-ok {
  border-color: color-mix(in srgb, var(--success) 55%, var(--city-reg-paper-rule));
  color: var(--success);
}
.gis-portal-city-registration-page .city-reg-status-pill.is-ok .hz-icon {
  color: var(--success);
}
.gis-portal-city-registration-page .city-reg-status-pill.is-wait {
  border-color: color-mix(in srgb, var(--destructive) 45%, var(--city-reg-paper-rule));
  color: var(--destructive);
}
.gis-portal-city-registration-page .city-reg-status-pill.is-wait .hz-icon {
  color: var(--destructive);
}

/* City registration — prominent required-credit callout above the apply button (20260710) */
.gis-portal-city-registration-page .city-reg-required {
  display: grid;
  gap: var(--space-1);
  padding: var(--space-3) var(--space-4);
  border: var(--space-px) solid var(--city-reg-paper-rule);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--primary) 6%, var(--surface));
}
.gis-portal-city-registration-page .city-reg-required-main {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3);
}
.gis-portal-city-registration-page .city-reg-required-label {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: color-mix(in srgb, var(--foreground) 82%, transparent);
}
.gis-portal-city-registration-page .city-reg-required-value {
  font-size: var(--fs-h3);
  font-weight: 700;
  line-height: 1.1;
  color: var(--primary);
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
  text-align: right;
}
.gis-portal-city-registration-page .city-reg-required-account,
.gis-portal-city-registration-page .city-reg-required-deposit {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3);
  padding-top: var(--space-1);
  border-top: var(--space-px) solid var(--city-reg-paper-rule);
  font-size: var(--fs-xs);
  color: color-mix(in srgb, var(--foreground) 66%, transparent);
}
.gis-portal-city-registration-page .city-reg-required-account + .city-reg-required-account,
.gis-portal-city-registration-page .city-reg-required-account + .city-reg-required-deposit {
  margin-top: var(--space-1);
}
.gis-portal-city-registration-page .city-reg-required-account strong,
.gis-portal-city-registration-page .city-reg-required-deposit strong {
  font-weight: 600;
  color: color-mix(in srgb, var(--foreground) 82%, transparent);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.gis-portal-city-registration-page .city-reg-required-account.is-insufficient,
.gis-portal-city-registration-page .city-reg-required-account.is-insufficient strong {
  color: var(--destructive);
}

/* GIS statistics home — usable metrics overview (20260730) */
body.gis-body.gis-stats-portal-page[data-stats-section="home"] {
  --stats-population: var(--primary);
  --stats-data: color-mix(in srgb, var(--muted-foreground) 76%, var(--foreground));
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-shell,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-workspace,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-figure,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-body,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-primary,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-observation,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-observation-body,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-trend,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-briefing,
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 {
  min-width: 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-shell {
  gap: var(--space-8);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-head {
  align-items: end;
  min-height: 0;
  padding: var(--space-6) 0 var(--space-4);
  border-bottom: 1px solid var(--border);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-title-stack {
  gap: var(--space-1);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-kicker {
  display: block;
  margin: 0;
  color: var(--primary);
  font-size: var(--fs-xs);
  font-weight: 780;
  line-height: var(--lh-xs);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-head h1 {
  font-size: var(--fs-display);
  line-height: var(--lh-display);
  letter-spacing: -0.035em;
}

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

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-nav a[aria-current="page"] {
  color: var(--foreground);
  background: var(--muted);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-6);
}

/* Snapshot caption and the KPI row read as one shell, not two floating bands. */
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-figure {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-snapshot {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-3) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-snapshot-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  font-size: var(--fs-sm);
  font-weight: 760;
  line-height: var(--lh-sm);
  white-space: nowrap;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-snapshot-eyebrow .material-symbols-outlined {
  width: var(--control-icon-s);
  height: var(--control-icon-s);
  color: var(--primary);
  font-size: var(--control-icon-s);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-snapshot-scope,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-snapshot-note {
  min-width: 0;
  margin: 0;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-snapshot-note {
  text-align: right;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-metric-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  border-bottom: 1px solid var(--border);
  list-style: none;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-metric-strip li {
  min-width: 0;
  border-right: 1px solid var(--border);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-metric-strip li:last-child {
  border-right: 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-metric-strip a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "label arrow"
    "value arrow"
    "meta arrow";
  align-content: center;
  gap: var(--space-1) var(--space-2);
  min-width: 0;
  min-height: calc(var(--control-h-l) * 2);
  padding: var(--space-3) var(--space-4);
  color: var(--foreground);
  text-decoration: none;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-metric-strip a:hover,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-metric-strip a:focus-visible {
  background: var(--muted);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-metric-strip a > span:not(.gis-stats-agency-link-arrow) {
  grid-area: label;
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-metric-strip strong {
  grid-area: value;
  overflow-wrap: anywhere;
  font-size: var(--fs-h3);
  line-height: var(--lh-h3);
  font-variant-numeric: tabular-nums;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-metric-strip small {
  grid-area: meta;
  overflow: hidden;
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  line-height: var(--lh-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-metric-strip .gis-stats-agency-link-arrow {
  grid-area: arrow;
  align-self: center;
  color: var(--muted-foreground);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-topics {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-topic {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  min-height: var(--control-h-l);
  padding: var(--space-2) var(--space-3);
  border-right: 1px solid var(--border);
  color: var(--muted-foreground);
  text-decoration: none;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-topic:last-child {
  border-right: 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-topic em {
  font-size: var(--fs-2xs);
  font-style: normal;
  line-height: var(--lh-xs);
  font-variant-numeric: tabular-nums;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-topic span {
  overflow: hidden;
  font-size: var(--fs-sm);
  font-weight: 720;
  line-height: var(--lh-sm);
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-topic:hover,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-topic:focus-visible,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-topic[aria-current] {
  color: var(--foreground);
  background: color-mix(in srgb, var(--primary) 8%, var(--background));
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-topic[aria-current] {
  box-shadow: inset 0 var(--space-px) 0 var(--primary);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead {
  display: grid;
  grid-template-columns: minmax(15rem, 0.68fr) minmax(0, 1.32fr);
  gap: var(--space-8);
  padding: var(--space-6) 0 var(--space-8);
  border-bottom: 1px solid var(--border);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-head {
  display: grid;
  align-content: start;
  gap: var(--space-2);
  min-width: 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-kicker,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-eyebrow,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-gap {
  margin: 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-kicker {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 720;
  line-height: var(--lh-xs);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-kicker span,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-eyebrow > span:first-child {
  color: var(--primary);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-head h2 {
  max-width: 16ch;
  margin: 0;
  font-size: var(--fs-display);
  line-height: var(--lh-display);
  letter-spacing: -0.035em;
  overflow-wrap: anywhere;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-body {
  display: grid;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-primary {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(16rem, 1.22fr);
  grid-template-areas:
    "eyebrow eyebrow"
    "value compare"
    "gap compare"
    "meta action";
  align-items: start;
  gap: var(--space-2) var(--space-6);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-eyebrow {
  grid-area: eyebrow;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-weight: 720;
  line-height: var(--lh-xs);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-value {
  grid-area: value;
  display: block;
  min-width: 0;
  font-size: clamp(var(--fs-display-lg), 4.8vw, 3.5rem);
  font-weight: 720;
  line-height: 1;
  letter-spacing: -0.045em;
  font-variant-numeric: tabular-nums lining-nums;
  white-space: nowrap;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-gap {
  grid-area: gap;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  font-weight: 700;
  line-height: var(--lh-sm);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-gap.is-down {
  color: var(--destructive);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-compare {
  grid-area: compare;
  display: grid;
  align-self: center;
  gap: var(--space-3);
  min-width: 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-compare > div {
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-compare em {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  font-style: normal;
  font-weight: 680;
  line-height: var(--lh-xs);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-compare i {
  display: block;
  min-width: 0;
  height: var(--space-2);
  overflow: hidden;
  background: var(--muted);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-compare i b {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--stats-population);
  transform: scaleX(var(--stats-bar-scale, 0));
  transform-origin: left center;
  transition: transform 240ms ease;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] #statsHomePopulationMetaBar {
  background: var(--stats-data);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-compare > div > span {
  min-width: 0;
  font-size: var(--fs-xs);
  font-weight: 720;
  line-height: var(--lh-xs);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-meta {
  grid-area: meta;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  margin: var(--space-2) 0 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-meta > div {
  display: grid;
  gap: var(--space-1);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-meta dt {
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  line-height: var(--lh-xs);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-meta dd {
  margin: 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-meta strong {
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  font-variant-numeric: tabular-nums;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-action {
  grid-area: action;
  align-self: end;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: var(--control-h-m);
  padding: 0 var(--control-px-m);
  border: 1px solid var(--primary);
  color: var(--primary-foreground);
  background: var(--primary);
  font-size: var(--fs-sm);
  font-weight: 760;
  line-height: var(--lh-sm);
  text-decoration: none;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-section-head,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-observation-rank-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-4);
  min-width: 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-section-head > div {
  min-width: 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-section-head h2,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-section-head h3,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-observation-rank-head h4,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-section-head p {
  margin: 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-section-head h2,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-section-head h3 {
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-observation-rank-head h4 {
  font-size: var(--fs-h4);
  line-height: var(--lh-h4);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-section-head p,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-section-head > span,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-observation-rank-head > span {
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-observation,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-trend,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-briefing,
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 {
  display: grid;
  gap: var(--space-4);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-observation {
  padding-bottom: var(--space-8);
  border-bottom: 1px solid var(--border);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-observation-body {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(16rem, 0.82fr);
  border-top: 1px solid var(--border);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-observation-map {
  min-width: 0;
  padding: var(--space-4) var(--space-5) 0 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-map {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 0;
  min-height: clamp(18rem, 32vw, 24rem);
  overflow: hidden;
  background: color-mix(in srgb, var(--primary) 5%, var(--background));
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-map svg {
  display: block;
  width: 100%;
  height: 100%;
  min-height: clamp(18rem, 32vw, 24rem);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-map-placeholder {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: 18rem;
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-map-feature {
  fill: var(--stats-population);
  fill-opacity: calc(0.09 + (var(--stats-home-map-intensity, 0) * 0.68));
  stroke: color-mix(in srgb, var(--background) 82%, var(--border));
  stroke-width: 0.32;
  vector-effect: non-scaling-stroke;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-map-feature.is-data-empty {
  fill: var(--muted-foreground);
  fill-opacity: 0.08;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-map-feature.is-ranked {
  stroke: var(--foreground);
  stroke-width: 0.52;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-map-feature.is-leading {
  fill-opacity: 0.82;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-map-legend {
  position: absolute;
  right: var(--space-3);
  bottom: var(--space-3);
  display: grid;
  grid-template-columns: auto 4rem auto;
  align-items: center;
  gap: var(--space-1);
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  line-height: var(--lh-xs);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-map-legend i {
  height: var(--space-1);
  background: var(--stats-population);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-observation-rank {
  display: grid;
  align-content: start;
  gap: var(--space-3);
  min-width: 0;
  padding: var(--space-4) 0 0 var(--space-5);
  border-left: 1px solid var(--border);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-top-list {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-top-row {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  min-height: calc(var(--control-h-m) + var(--space-3));
  border-bottom: 1px solid var(--border);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-top-row em {
  color: var(--primary);
  font-size: var(--fs-xs);
  font-style: normal;
  font-weight: 760;
  line-height: var(--lh-xs);
  font-variant-numeric: tabular-nums;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-top-row > div {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-top-row strong {
  overflow: hidden;
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-top-row > div > span {
  display: block;
  height: var(--space-1);
  overflow: hidden;
  background: var(--muted);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-top-row > div > span i {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--primary);
  transform: scaleX(var(--stats-home-rank-scale, 0));
  transform-origin: left center;
  transition: transform 240ms ease;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-top-row > b {
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-top-row.is-placeholder,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-top-row.is-empty {
  grid-template-columns: 1fr;
  color: var(--muted-foreground);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-top-more {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-height: var(--control-h-s);
  color: var(--foreground);
  font-size: var(--fs-xs);
  font-weight: 720;
  line-height: var(--lh-xs);
  text-decoration: none;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-trend {
  padding-bottom: var(--space-8);
  border-bottom: 1px solid var(--border);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-trend-chart,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-trend-chart .gis-stats-agency-chart,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] #statsHomeTrendEchart {
  min-width: 0;
  min-height: 16rem;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-trend-chart {
  overflow: hidden;
  border-top: 1px solid var(--border);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-trend-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-trend-meta > div {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
  padding: var(--space-3);
  border-right: 1px solid var(--border);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-trend-meta > div:last-child {
  border-right: 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-trend-meta dt {
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  line-height: var(--lh-xs);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-trend-meta dd {
  min-width: 0;
  margin: 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-trend-meta strong {
  display: block;
  overflow: hidden;
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-briefing {
  grid-template-columns: minmax(0, 0.72fr) minmax(18rem, 1.28fr);
  align-items: end;
  padding-bottom: var(--space-6);
  border-bottom: 1px solid var(--border);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-search {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  min-height: var(--control-h-l);
  padding: 0 var(--control-px-m);
  border: 1px solid var(--border);
  background: var(--background);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-search input {
  min-width: 0;
  border: 0;
  background: transparent;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-search input:focus {
  outline: 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-search:focus-within {
  border-color: var(--ring);
  box-shadow: 0 0 0 var(--space-px) var(--ring);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-search button {
  display: inline-grid;
  place-items: center;
  width: var(--control-h-s);
  height: var(--control-h-s);
  border: 0;
  background: transparent;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-search-feedback {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  color: var(--muted-foreground);
  font-size: var(--fs-xs);
  line-height: var(--lh-xs);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-search-feedback p {
  margin: 0;
}

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-bottom: var(--space-6);
  border-bottom: 1px solid var(--border);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-top: 1px solid var(--border);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-grid a {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas:
    "index title arrow"
    "index meta arrow";
  align-items: center;
  gap: var(--space-1) var(--space-2);
  min-width: 0;
  min-height: calc(var(--control-h-l) + var(--space-5));
  padding: var(--space-3);
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  color: var(--foreground);
  text-decoration: none;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-grid a:last-child {
  border-right: 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-grid a > .material-symbols-outlined:not(.gis-stats-agency-link-arrow) {
  display: none;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-index {
  grid-area: index;
  color: var(--primary);
  font-size: var(--fs-xs);
  font-style: normal;
  line-height: var(--lh-xs);
  font-variant-numeric: tabular-nums;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-grid strong {
  grid-area: title;
  overflow: hidden;
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-grid small {
  grid-area: meta;
  overflow: hidden;
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  line-height: var(--lh-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-grid .gis-stats-agency-link-arrow {
  grid-area: arrow;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--border);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "scope arrow"
    "title arrow"
    "meta arrow";
  align-content: center;
  gap: var(--space-1) var(--space-2);
  min-width: 0;
  min-height: calc(var(--control-h-l) * 2);
  padding: var(--space-3) var(--space-4);
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  color: var(--foreground);
  text-decoration: none;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid a:nth-child(3n) {
  border-right: 0;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid em {
  grid-area: scope;
  color: var(--primary);
  font-size: var(--fs-2xs);
  font-style: normal;
  font-weight: 720;
  line-height: var(--lh-xs);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid strong {
  grid-area: title;
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid small {
  grid-area: meta;
  overflow: hidden;
  color: var(--muted-foreground);
  font-size: var(--fs-2xs);
  line-height: var(--lh-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid .gis-stats-agency-link-arrow {
  grid-area: arrow;
  align-self: center;
}

body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-grid a:hover,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-grid a:focus-visible,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid a:hover,
body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid a:focus-visible {
  background: var(--muted);
}

@media (max-width: 1024px) {
  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-metric-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-metric-strip li:nth-child(2n) {
    border-right: 0;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-metric-strip li:nth-child(-n + 2) {
    border-bottom: 1px solid var(--border);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-5);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-head h2 {
    max-width: 24ch;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-observation-body {
    grid-template-columns: minmax(0, 1fr);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-observation-map {
    padding-right: 0;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-observation-rank {
    padding-left: 0;
    border-top: 1px solid var(--border);
    border-left: 0;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-briefing {
    grid-template-columns: minmax(0, 1fr);
    align-items: initial;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-grid a:nth-child(2n) {
    border-right: 0;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid a,
  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid a:nth-child(3n) {
    border-right: 1px solid var(--border);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid a:nth-child(2n) {
    border-right: 0;
  }
}

@media (max-width: 640px) {
  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-shell {
    gap: var(--space-6);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-workspace {
    gap: var(--space-4);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-head {
    gap: var(--space-3);
    padding-top: var(--space-5);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-head h1 {
    font-size: var(--fs-h1);
    line-height: var(--lh-h1);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-snapshot {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-1);
    padding-block: var(--space-2);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-snapshot-note {
    text-align: left;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-snapshot-scope,
  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-snapshot-note {
    font-size: var(--fs-2xs);
    line-height: var(--lh-xs);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-metric-strip a {
    min-height: calc(var(--control-h-l) + var(--space-4));
    padding: var(--space-2) var(--space-3);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-metric-strip strong {
    font-size: var(--fs-h4);
    line-height: var(--lh-h4);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-topics {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-topic {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    min-height: var(--control-h-m);
    padding: var(--space-1);
    border-bottom: 0;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-topic em {
    display: none;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-topic span {
    width: 100%;
    font-size: var(--fs-2xs);
    line-height: var(--lh-xs);
    text-align: center;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead {
    padding-block: var(--space-5) var(--space-6);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-head h2 {
    max-width: none;
    font-size: var(--fs-h1);
    line-height: var(--lh-h1);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-primary {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "eyebrow"
      "value"
      "gap"
      "compare"
      "meta"
      "action";
    gap: var(--space-3);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-value {
    font-size: var(--fs-display-xl);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-compare {
    margin-top: var(--space-2);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-compare > div {
    grid-template-columns: 4.5rem minmax(0, 1fr) auto;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-action {
    justify-self: stretch;
    width: 100%;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-section-head {
    align-items: start;
    flex-direction: column;
    gap: var(--space-2);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-map,
  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-map svg,
  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-map-placeholder {
    min-height: 16rem;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-trend-meta {
    grid-template-columns: minmax(0, 1fr);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-trend-meta > div {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-trend-meta > div:last-child {
    border-bottom: 0;
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-grid,
  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-grid a,
  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-directory-grid a:nth-child(2n),
  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid a,
  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid a:nth-child(2n),
  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-link-grid a:nth-child(3n) {
    border-right: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-lead-compare i b,
  body.gis-body.gis-stats-portal-page[data-stats-section="home"] .gis-stats-agency-home-top-row > div > span i {
    transition: none;
  }
}
