:root {
  --app-primary: #0d6efd;
  --app-primary-dark: #0a58ca;
  --app-surface: #f4f7fb;
  --app-card: #ffffff;
  --app-text: #1a1d21;
  --app-muted: #6c757d;
  --app-radius: 12px;
  --app-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

html, body {
  height: 100%;
}

body {
  font-family: "Segoe UI", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  color: var(--app-text);
  background: var(--app-surface);
}

.app-navbar {
  background: linear-gradient(90deg, #0d3b66 0%, #0d6efd 55%, #2563eb 100%);
}

.app-navbar .nav-link {
  color: rgba(255, 255, 255, 0.88) !important;
  border-radius: 8px;
  margin: 0 2px;
}

.app-navbar .nav-link:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff !important;
}

.app-navbar .nav-link.active {
  background: rgba(255, 255, 255, 0.2);
  color: #fff !important;
  font-weight: 600;
}

.avatar-sm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.25);
  font-size: 0.85rem;
}

.app-shell {
  min-height: calc(100vh - 56px);
}

.app-card {
  background: var(--app-card);
  border-radius: var(--app-radius);
  box-shadow: var(--app-shadow);
  border: 1px solid rgba(15, 23, 42, 0.06);
}

.map-full {
  height: calc(100vh - 56px);
  width: 100%;
}

.BMap_cpyCtrl, .anchorBL {
  display: none !important;
}

.sidebar-panel {
  position: fixed;
  top: 56px;
  right: 0;
  width: min(420px, 100vw);
  height: calc(100vh - 56px);
  background: #fff;
  box-shadow: -6px 0 24px rgba(15, 23, 42, 0.12);
  z-index: 1040;
  transform: translateX(100%);
  transition: transform 0.28s ease;
  overflow-y: auto;
  padding: 1.25rem;
}

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

.feature-badge {
  margin: 0 4px 6px 0;
}

.toolbar-floating {
  position: fixed;
  top: 72px;
  left: 16px;
  z-index: 1030;
  max-width: calc(100vw - 32px);
}

.toolbar-floating .btn {
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
}

.toast-stack {
  position: fixed;
  bottom: 1rem;
  right: 1rem;
  z-index: 2000;
}

.form-hint {
  font-size: 0.8rem;
  color: var(--app-muted);
}
