/* PCC prototype shared styles */
html, body { font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
body { font-feature-settings: "cv11","ss01","ss03"; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: rgb(148 163 184 / .35); border-radius: 10px; }
.dark ::-webkit-scrollbar-thumb { background: rgb(71 85 105 / .5); }

.dark .leaflet-tile { filter: invert(1) hue-rotate(180deg) brightness(.95) contrast(.85); }
.dark .leaflet-container { background: #0B1738; }

.nav-link {
  display:flex; align-items:center; gap:.75rem;
  padding:.55rem .75rem; border-radius:.5rem;
  font-size:.875rem; color: rgb(203 213 225);
  transition: background .15s, color .15s;
  white-space: nowrap;
}
.nav-link:hover { background: rgb(29 46 107 / .7); color: white; }
.nav-link.active { background: rgb(255 255 255 / .06); color: white; position: relative; }
.nav-link.active::before {
  content:''; position:absolute; left:-.75rem; top:.5rem; bottom:.5rem;
  width:3px; background:#14B8A6; border-radius:3px;
}
.nav-group-label {
  font-size:.68rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  color: rgb(100 116 139); padding: .75rem .75rem .25rem;
  white-space: nowrap;
}
[x-cloak] { display: none !important; }

/* --- Sidebar responsive + collapsed states --- */
.sidebar {
  position: fixed; inset: 0 auto 0 0; z-index: 40;
  width: 16rem;
  transform: translateX(-100%);
  transition: transform .25s ease, width .2s ease;
}
.sidebar.is-mobile-open { transform: translateX(0); }

@media (min-width: 1024px) {
  .sidebar { transform: translateX(0); }
  .sidebar.is-collapsed { width: 4rem; }
  .sidebar.is-collapsed .nav-label,
  .sidebar.is-collapsed .nav-group-label,
  .sidebar.is-collapsed .brand-text,
  .sidebar.is-collapsed .nav-chevron { display: none; }
  .sidebar.is-collapsed .nav-link {
    justify-content: center;
    padding-left: 0; padding-right: 0; gap: 0;
  }
  .sidebar.is-collapsed .nav-link.active::before { left: 0; }
  .sidebar.is-collapsed .sidebar-brand { justify-content: center; padding-left: 0; padding-right: 0; }
  .sidebar.is-collapsed .nav-children { display: none !important; }
}

.main-wrapper {
  flex: 1 1 0%;
  min-width: 0;
  transition: padding-left .2s ease;
}
@media (min-width: 1024px) {
  .main-wrapper { padding-left: 16rem; }
  .main-wrapper.is-collapsed { padding-left: 4rem; }
}

/* Mobile overlay */
.sidebar-overlay {
  position: fixed; inset: 0; z-index: 35;
  background: rgba(0,0,0,.5);
  transition: opacity .2s ease;
}
@media (min-width: 1024px) { .sidebar-overlay { display: none !important; } }
