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

.gis-page {
  --gis-sidebar-width: 220px;
  --gis-sidebar-collapsed-width: calc(var(--control-h-l) + var(--space-2));
  --sidebar-width: var(--gis-sidebar-width);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

body.gis-sidebar-collapsed .gis-page {
  --sidebar-width: var(--gis-sidebar-collapsed-width);
}

@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-content {
    padding-left: var(--space-2) !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;
    }
  }
}

.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);
}

/* Header */
.gis-header .header-inner {
  padding: 0;
}

.gis-header .header-center {
  flex: 1 1 auto;
  min-width: 0;
  max-width: var(--modal-w-m);
}

.gis-header .header-left {
  gap: var(--space-1);
  padding-left: var(--space-4);
}

.gis-header .header-right {
  padding-right: var(--space-4);
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
}

.gis-header .header-menu-toggle {
  display: inline-flex;
}

.gis-header-context {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}

.gis-header-link {
  text-decoration: none;
}

.gis-header-link:not(.badge) {
  color: var(--muted-foreground);
  font-size: var(--fs-sm);
  line-height: var(--lh-sm);
}

.gis-header-link:not(.badge):hover {
  color: var(--foreground);
}


@media (min-width: 1025px) {
  .gis-header .header-menu-toggle {
    display: none;
  }
}

.gis-header .logo-img {
  height: var(--space-4);
}

.gis-header .logo-img.logo-dark {
  display: none;
}

.gis-header .logo-img.logo-light {
  display: block;
}

:root[data-theme="dark"] .gis-header .logo-img.logo-light {
  display: none;
}

:root[data-theme="dark"] .gis-header .logo-img.logo-dark {
  display: block;
}

body[data-theme="dark"] .gis-header .logo-img.logo-light {
  display: none;
}

body[data-theme="dark"] .gis-header .logo-img.logo-dark {
  display: block;
}

@media (max-width: 768px) {
  .gis-header .header-center {
    display: none;
    /* Hide entity search on very small mobile if it overlaps */
  }
}

/* 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;
}

.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;
  gap: var(--space-1);
  padding: var(--space-2);
}

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

.gis-nav-title {
  padding: var(--space-3) var(--space-3) var(--space-1);
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--muted-foreground);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.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: all 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.active {
  background: var(--hover-overlay);
  color: var(--foreground);
  font-weight: 600;
}

/* Device-specific refinements */
@media (min-width: 1025px) {
  #gisSidebarCollapse {
    display: none;
  }

  /* Force persistence on PC regardless of collapsed state */
  body.gis-sidebar-collapsed .gis-sidebar-label,
  body.gis-sidebar-collapsed .gis-nav-title,
  body.gis-sidebar-collapsed .gis-sidebar-header-text {
    display: block;
  }

  body.gis-sidebar-collapsed .gis-sidebar-header {
    justify-content: space-between;
    padding: var(--space-4) var(--space-3);
  }

  body.gis-sidebar-collapsed .gis-nav {
    padding: var(--space-2);
  }

  body.gis-sidebar-collapsed .gis-sidebar-link {
    justify-content: flex-start;
    padding: var(--space-1-5) var(--space-3);
  }
}

/* Mobile Collapsed state refinements (if triggered) */
@media (max-width: 1024px) {

  body.gis-sidebar-collapsed .gis-sidebar-label,
  body.gis-sidebar-collapsed .gis-nav-title,
  body.gis-sidebar-collapsed .gis-sidebar-header-text {
    display: none;
  }

  body.gis-sidebar-collapsed .gis-sidebar-header {
    justify-content: center;
    padding: var(--space-4) 0;
  }

  body.gis-sidebar-collapsed .gis-nav {
    padding: var(--space-2) 4px;
  }

  body.gis-sidebar-collapsed .gis-sidebar-link {
    justify-content: center;
    padding: var(--space-2) 0;
  }
}

.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);
}

@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) rgba(0, 0, 0, 0.25);
}

.gis-status-dot.is-on {
  background: #2ecc71;
}

.gis-status-dot.is-off {
  background: #9aa4b2;
}

.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;
}

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

@media (max-width: 1024px) {
  .gis-content {
    padding: var(--space-4) var(--space-2) !important;
    padding-left: var(--space-2) !important;
    width: 100% !important;
    max-width: 100vw !important;
    overflow-x: hidden;
  }
}

.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;
}

/* 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);
  }
}

.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: 2px;
}

.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: 11px;
  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;
  }
}

/* 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: all 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-hero-title {
  display: grid;
  gap: var(--space-1);
}

.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);
}

.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(calc(var(--space-12) * 10), 2fr) minmax(calc(var(--space-12) * 6), 1fr);
}

.gis-admin-areas-tree {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
}

.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.01em;
  line-height: var(--lh-h2);
}

.gis-admin-areas-detail {
  display: grid;
  gap: var(--space-3);
  min-width: 0;
}

.gis-admin-areas-banner {
  margin-bottom: var(--space-2);
}

.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: rgba(128, 155, 255, 0.12);
  border-color: rgba(128, 155, 255, 0.55);
}

.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);
  --gis-month-picker-gap: var(--space-1);
}

html[data-theme="light"] {
  --gis-pop-section-title-color: #475569;
}

.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: rgba(255, 255, 255, 0.02);
}

.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-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-bulk-table thead th {
  font-size: var(--fs-xs);
}

.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);
}

.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);
}

.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-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-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 rgba(128, 155, 255, 0.35);
}

.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: rgba(128, 155, 255, 0.12);
}

.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-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: rgba(255, 255, 255, 0.02);
  overflow: hidden;
}

.gis-series-chart canvas {
  width: 100%;
  height: calc(var(--space-10) * 6 + var(--space-5));
  display: block;
}

@media (max-width: 960px) {
  .gis-pop-overview-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.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);
  background: rgba(10, 10, 12, 0.92);
  color: #fff;
  font-size: var(--fs-sm);
  line-height: 1.2;
  max-width: calc(var(--space-10) * 6);
  white-space: nowrap;
}

.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: rgba(255, 255, 255, 0.02);
}

/* 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: all 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: #fff;
  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 {
  color: var(--text-muted);
  font-size: var(--fs-xs);
  padding: 0 var(--space-1);
}

/* 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 {
  display: flex;
  gap: var(--space-1);
  align-items: center;
}

.gis-input-with-action .input {
  flex: 1;
}

.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-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;
  }
}

@media (max-width: 1024px) {
  .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-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-card-grid {
    grid-template-columns: 1fr;
  }

  .gis-city-title {
    font-size: var(--fs-h3);
    line-height: var(--lh-h3);
  }
}

@media (min-width: 1025px) {
  body.gis-sidebar-collapsed .gis-sidebar {
    width: var(--gis-sidebar-collapsed-width);
  }

  body.gis-sidebar-collapsed .gis-sidebar-header-title {
    display: none;
  }

  body.gis-sidebar-collapsed .gis-sidebar-label {
    opacity: 0;
    pointer-events: none;
  }

  body.gis-sidebar-collapsed .gis-sidebar-header {
    justify-content: center;
    padding: var(--space-1);
  }
}

@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: 50;
  max-height: 240px;
  overflow-y: auto;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  margin-top: 4px;
}