:root {
  --ink: #edf7ff;
  --muted: #a9bed8;
  --panel: rgba(7, 17, 38, 0.78);
  --line: rgba(129, 205, 255, 0.22);
  --field: rgba(237, 247, 255, 0.08);
  --accent: #72d7ff;
  --accent-strong: #dff8ff;
  --amber: #ffd074;
  --green: #7dd49a;
  --blue: #83b8ff;
  --water: #78d9ff;
  --building: #f2a36f;
  --road: #73c5ff;
  --land: #8a84bd;
  --shadow: 0 22px 70px rgba(0, 0, 0, 0.36);
}

body {
  color: var(--ink);
  background:
    radial-gradient(circle at 18% 12%, rgba(114, 215, 255, 0.12), transparent 26%),
    radial-gradient(circle at 82% 18%, rgba(255, 208, 116, 0.10), transparent 26%),
    linear-gradient(135deg, #050b1f, #081632 54%, #050b1f);
}

.map-stage,
.topbar,
.tool-popover,
.top-search .search-results,
.memory-drawer,
.map-badge span {
  border-color: rgba(129, 205, 255, 0.20);
  background: rgba(6, 16, 35, 0.82);
  box-shadow: var(--shadow);
  color: var(--ink);
}

.map-stage {
  background: rgba(5, 12, 28, 0.96);
}

.topbar {
  background:
    radial-gradient(circle at 74% 18%, rgba(114, 215, 255, 0.12), transparent 34%),
    linear-gradient(180deg, rgba(8, 19, 42, 0.96), rgba(4, 12, 28, 0.90));
}

h1,
#campusTitle {
  color: #fff5d8;
  text-shadow: 0 0 24px rgba(114, 215, 255, 0.18);
}

.eyebrow {
  color: #9edfff;
  font-weight: 800;
}

.summary,
.source-line,
.label,
.memory-head p:last-child {
  color: rgba(219, 235, 255, 0.72);
}

.tool-button,
.small-button,
.campus-switch,
.top-search input,
.place-button,
.result-button,
.layer-toggle {
  border-color: rgba(129, 205, 255, 0.20);
  color: var(--ink);
  background: rgba(237, 247, 255, 0.08);
}

.tool-button:hover,
.small-button:hover,
.place-button:hover,
.result-button:hover {
  border-color: rgba(158, 230, 255, 0.50);
  background: rgba(237, 247, 255, 0.13);
}

.top-search input,
.campus-switch,
.memory-form textarea,
.memory-form input {
  color: var(--ink);
  background: rgba(2, 9, 24, 0.72);
}

.top-search button,
.memory-form button,
.section-head span {
  color: #06121f;
  border-color: transparent;
  background: linear-gradient(135deg, #9eefff, #ffe2a2);
}

#map,
.leaflet-map,
.leaflet-container {
  background:
    radial-gradient(circle at 16% 20%, rgba(255, 208, 116, 0.28) 0 1px, transparent 2px),
    radial-gradient(circle at 78% 26%, rgba(114, 215, 255, 0.22) 0 1px, transparent 2px),
    radial-gradient(circle at 60% 82%, rgba(130, 184, 255, 0.20) 0 1px, transparent 2px),
    linear-gradient(rgba(129, 205, 255, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(129, 205, 255, 0.045) 1px, transparent 1px),
    #061126;
  background-size: 48px 48px;
}

.campus-boundary {
  filter: drop-shadow(0 0 12px rgba(114, 215, 255, 0.26));
}

.osm-building .leaflet-interactive,
.osm-green .leaflet-interactive,
.osm-landuse .leaflet-interactive {
  cursor: pointer;
  transition: fill-opacity 120ms ease, stroke-width 120ms ease, filter 120ms ease;
}

.feature-label,
.feature-label.small,
.feature-label.major,
.area-label,
.road-label {
  border: 1px solid rgba(158, 230, 255, 0.26);
  color: #f5fbff;
  background: rgba(4, 14, 31, 0.78);
  box-shadow: 0 0 14px rgba(114, 215, 255, 0.14), 0 8px 18px rgba(0, 0, 0, 0.20);
  text-shadow: none;
}

.feature-label.major {
  color: #07121f;
  border-color: rgba(255, 226, 162, 0.42);
  background: #ffe2a2;
}

.area-label {
  color: #d8ffe3;
  background: rgba(13, 58, 39, 0.78);
}

.road-label {
  color: #d7efff;
  border-color: rgba(115, 197, 255, 0.22);
  background: rgba(5, 24, 47, 0.72);
}

.memory-item {
  border-color: rgba(129, 205, 255, 0.18);
  background: rgba(237, 247, 255, 0.08);
}

.memory-item p {
  color: #f4faff;
}

.memory-auth-note,
.memory-status {
  color: #ffe2a2;
}
