html, body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

.sanarip-counter,
.sanarip-counter span,
.data-table th,
.data-table td,
.analytics-count-badge,
.analytics-count-badge strong,
.stat-card,
.stat-number,
.stat-value,
.purpose-group .count,
.analytics-grid,
#sanaripVisibleCount,
#sanaripTotalCount,
.ums-switcher,
.search-sub,
.nearby-object-distance {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.app-header h1,
.sanarip-header h1,
.analytics-title,
.stat-number,
.stat-value {
  letter-spacing: -0.018em;
}

:focus-visible {
  outline: 2px solid var(--primary, #16a34a);
  outline-offset: 2px;
  border-radius: 8px;
}
button:focus:not(:focus-visible),
a:focus:not(:focus-visible),
input:focus:not(:focus-visible) {
  outline: none;
}

.chip,
.object-type-chip,
.sanarip-tab,
.sanarip-action-btn,
.sanarip-filter-btn,
.ums-switcher button,
.stat-card,
.search-item,
.msearch-item {
  transition: transform .22s cubic-bezier(.32,.72,0,1),
              box-shadow .22s cubic-bezier(.32,.72,0,1),
              background-color .18s ease,
              border-color .18s ease,
              color .18s ease;
}
.chip:active,
.object-type-chip:active,
.sanarip-tab:active,
.sanarip-action-btn:active,
.sanarip-filter-btn:active,
.ums-switcher button:active {
  transform: scale(.96);
}

.stat-card:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .10) !important;
}
.stat-card:hover .stat-icon {
  transform: scale(1.06) !important;
}

.data-table tbody tr {
  transition: background-color .15s ease;
}
.data-table tbody tr:hover {
  background: var(--bg-secondary, rgba(0,0,0,.03));
}

.sanarip-popup .maplibregl-popup-content,
.ymx-popup {
  border-radius: 16px !important;
  box-shadow: 0 16px 48px rgba(15, 23, 42, .22) !important;
}

.search-item:hover,
.msearch-item:active {
  background: var(--bg-secondary, rgba(0,0,0,.04));
}

.purpose-items::-webkit-scrollbar,
.sidebar ::-webkit-scrollbar,
.data-table-wrapper::-webkit-scrollbar,
.search-dropdown::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.purpose-items::-webkit-scrollbar-thumb,
.sidebar ::-webkit-scrollbar-thumb,
.data-table-wrapper::-webkit-scrollbar-thumb,
.search-dropdown::-webkit-scrollbar-thumb {
  background: rgba(148, 163, 184, .45);
  border-radius: 999px;
}
.purpose-items::-webkit-scrollbar-thumb:hover,
.sidebar ::-webkit-scrollbar-thumb:hover {
  background: rgba(148, 163, 184, .7);
}
.purpose-items::-webkit-scrollbar-track,
.sidebar ::-webkit-scrollbar-track {
  background: transparent;
}

.chip,
.object-type-chip {
  border-radius: 12px;
}

.ums-switcher button.active {
  box-shadow: 0 1px 4px rgba(22, 163, 74, .35);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}
#tableContent.active, #analyticsContent.active { animation: tabFadeIn .32s cubic-bezier(.32,.72,0,1); }
@keyframes tabFadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.skel-row td { padding: 14px 12px; }
.skel-bar {
  display: block; height: 14px; border-radius: 7px;
  background: linear-gradient(90deg, rgba(148,163,184,.16) 25%, rgba(148,163,184,.30) 37%, rgba(148,163,184,.16) 63%);
  background-size: 400% 100%; animation: skelShimmer 1.4s ease infinite;
}
@keyframes skelShimmer { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }
[data-theme=dark] .skel-bar {
  background: linear-gradient(90deg, rgba(255,255,255,.06) 25%, rgba(255,255,255,.13) 37%, rgba(255,255,255,.06) 63%);
  background-size: 400% 100%;
}
.analytics-grid.skel-loading .stat-card { opacity: .55; }
@media (max-width: 768px) {
  #umsMapSwitcher.ums-switcher--bar {
    position: fixed; top: 126px; left: 8px; margin-left: 0;
    z-index: 900; padding: 3px; gap: 2px; align-self: auto;
    border-radius: 12px;
  }
  #umsMapSwitcher.ums-switcher--bar button {
    min-height: 0 !important; min-width: 0 !important;
    padding: 6px 10px !important; font-size: 11px; border-radius: 9px;
  }
}
@media (max-width: 768px) {
  .ums-switcher button { min-height: 0 !important; min-width: 0 !important; padding: 6px 10px !important; font-size: 11px; }
  .ums-switcher--map { top: 8px; left: 8px; padding: 3px; gap: 2px; box-shadow: 0 2px 8px rgba(0,0,0,.25); }
}
@media (max-width: 768px) {
  html { -webkit-text-size-adjust: 100%; }
  body { overscroll-behavior-y: contain; }
  a, button, .chip, .object-type-chip, .sanarip-tab, .sanarip-action-btn,
  .ums-switcher button, .search-item, .msearch-item, .purpose-item, .purpose-group-header {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }
  .sidebar, .purpose-items, .data-table-wrapper, .unified-search-dropdown,
  .mobile-search-results, .modal-body, .tab-content {
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }
  .sanarip-header {
    padding-top: calc(4px + env(safe-area-inset-top)) !important;
    padding-left: calc(8px + env(safe-area-inset-left)) !important;
    padding-right: calc(8px + env(safe-area-inset-right)) !important;
  }
  .mobile-search-overlay { padding-top: env(safe-area-inset-top); }
  .sidebar { padding-bottom: calc(16px + env(safe-area-inset-bottom)); }
}
.ums-menu-pop {
  position: fixed; z-index: 100002; min-width: 210px;
  background: var(--card, #fff); border: 1px solid rgba(148,163,184,.3);
  border-radius: 16px; box-shadow: 0 16px 48px rgba(15,23,42,.24);
  padding: 12px; display: flex; flex-direction: column; gap: 12px;
  font: 600 12px system-ui, sans-serif;
  animation: tabFadeIn .2s cubic-bezier(.32,.72,0,1);
}
[data-theme=dark] .ums-menu-pop { background: #1e293b; border-color: rgba(255,255,255,.14); color: #e2e8f0; }
.ums-menu-label { font-size: 11px; opacity: .6; margin-bottom: 6px; font-weight: 600; }
.ums-menu-seg { display: flex; gap: 4px; }
.ums-menu-seg button {
  flex: 1; border: 0; border-radius: 10px; padding: 9px 10px; cursor: pointer;
  background: rgba(148,163,184,.15); color: var(--text, #1f2937);
  font: 600 12px system-ui, sans-serif; white-space: nowrap;
  transition: transform .18s cubic-bezier(.32,.72,0,1), background .15s ease;
}
.ums-menu-seg button:active { transform: scale(.96); }
.ums-menu-seg button.active { background: var(--primary, #16a34a); color: #fff; }
[data-theme=dark] .ums-menu-seg button { background: rgba(255,255,255,.08); color: #e2e8f0; }
[data-theme=dark] .ums-menu-seg button.active { background: var(--primary, #16a34a); color: #fff; }

.sanarip-header-right #umsMenuBtn ~ #sanaripThemeBtn { display: none !important; }

.msm-close, .msel-close, .modal-close, .notification-close,
#coordCheckClose, #mobileSearchCancel, .mobile-search-close-btn, .sanarip-search-close {
  min-height: 0 !important;
  aspect-ratio: 1 / 1;
  border-radius: 50% !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center; justify-content: center;
}
body:has(#umsMenuBtn) #sanaripThemeBtn { display: none !important; }
#umsMenuBtn { flex-shrink: 0; }
@media (max-width: 768px) {
  .sanarip-toolbar .sanarip-search-close { display: none !important; }
}
#mobileSearchClear:not(.visible) { display: none !important; }
.sanarip-search-close:not(.visible) { display: none !important; }
