/* Minimap solda, geniş; koyu sayfa + harita yüzeyi hafif açık gri */

.app-layout {
  display: grid;
  gap: 1.5rem;
  align-items: start;
  grid-template-columns: min(500px, 43vw) 1fr;
}

@media (max-width: 1024px) {
  .app-layout {
    grid-template-columns: 1fr;
  }
  .app-layout__aside {
    order: -1;
  }
}

.app-layout__panels {
  min-width: 0;
}

.app-layout__aside {
  position: sticky;
  top: 88px;
}

.minimap-root.card {
  padding: 0;
  overflow: hidden;
}

.minimap-head {
  padding: 1rem 1.1rem 0.65rem;
  border-bottom: 1px solid var(--border);
  background: var(--bg-card);
}

.minimap-title {
  font-size: 1rem;
  font-weight: 700;
  margin: 0 0 0.35rem;
}

.minimap-hint {
  font-size: 0.75rem;
  margin: 0;
  line-height: 1.45;
}

.minimap-svg-wrap {
  padding: 0.65rem;
  background: linear-gradient(165deg, #14151c 0%, #0f1016 55%, #12151a 100%);
  border-bottom: 1px solid var(--border);
}

.minimap-svg {
  display: block;
  width: 100%;
  height: auto;
  min-height: 330px;
  max-height: 560px;
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05);
}

/* Parseller — uydu / şehir planı hissi */
.minimap-parcel {
  fill: #6f7a73;
  stroke: #4f5853;
  stroke-width: 0.45;
}

.minimap-parcel--park {
  fill: #4f6c4f;
  stroke: #3f563f;
}

.minimap-parcel--civic {
  fill: #7b7a74;
  stroke: #63625e;
}

.minimap-parcel--dock {
  fill: #596670;
  stroke: #4b5761;
}

.minimap-water {
  fill: rgba(92, 132, 165, 0.56);
}

.minimap-water-edge {
  fill: none;
  stroke: rgba(174, 214, 244, 0.45);
  stroke-width: 0.9;
}

.minimap-artery {
  fill: none;
  stroke: rgba(184, 164, 123, 0.38);
  stroke-width: 3.4;
  stroke-linecap: round;
}

.minimap-park-meadow {
  fill: rgba(122, 173, 112, 0.32);
  stroke: none;
}

.minimap-tree-shade {
  fill: rgba(0, 0, 0, 0.22);
  stroke: none;
}

.minimap-tree {
  fill: #2e6548;
  stroke: #214c37;
  stroke-width: 0.18;
}

.minimap-building {
  fill: #c8c2b5;
  stroke: #8d877e;
  stroke-width: 0.18;
}

.minimap-building--res {
  fill: #cbc8bf;
  stroke: #949087;
}

.minimap-building--ind {
  fill: #a1a7ad;
  stroke: #6f767d;
}

.minimap-building--civic {
  fill: #e1dbc9;
  stroke: #a59f8f;
}

.minimap-building--com {
  fill: #b9bfca;
  stroke: #7f8792;
}

.minimap-building--plaza {
  fill: #a7aa9d;
  stroke: #7c8073;
  opacity: 0.9;
}

.minimap-landmark {
  opacity: 0.95;
  stroke-width: 0.3;
  filter: drop-shadow(0 0.7px 0.7px rgba(0, 0, 0, 0.38));
}

.minimap-landmark--ulasim {
  fill: #b7a67f;
  stroke: #6f6449;
}

.minimap-landmark--enerji {
  fill: #95a1ad;
  stroke: #5f6a74;
}

.minimap-landmark--atik {
  fill: #9aac92;
  stroke: #62725e;
}

.minimap-landmark--sosyal {
  fill: #bab8c6;
  stroke: #7e7b8a;
}

.minimap-landmark--saglik {
  fill: #e7ecef;
  stroke: #8f9aa4;
}

.minimap-landmark--adalet {
  fill: #d8cab5;
  stroke: #897b67;
}

.minimap-landmark--merkez {
  fill: #aeb59f;
  stroke: #6e7563;
}

.minimap-green-wash {
  mix-blend-mode: soft-light;
}

/* Yol yatağı + asfalt + kavşak */
.minimap-road-bed {
  stroke: #4e514f;
  stroke-width: 8.2;
}

.minimap-road {
  stroke: url(#minimap-asphalt);
  stroke-width: 5.1;
}

.minimap-roads--busy .minimap-road {
  stroke: #515966;
  stroke-width: 6.6;
}

.minimap-junction {
  fill: #61676b;
  stroke: #4d5256;
  stroke-width: 0.25;
  opacity: 0.88;
}

.minimap-road-markings {
  pointer-events: none;
}

.minimap-road-markings-h,
.minimap-road-markings-v {
  stroke: #f2f1e8;
  stroke-width: 0.42;
  stroke-dasharray: 3.2 3.8;
  stroke-linecap: round;
  opacity: 0.44;
}

.minimap-car {
  pointer-events: none;
}

.minimap-label {
  fill: #c4c6d4;
  font-size: 4px;
  font-weight: 700;
  font-family: var(--font);
  pointer-events: none;
  paint-order: stroke fill;
  stroke: rgba(8, 9, 12, 0.92);
  stroke-width: 0.55px;
}

.minimap-pin {
  stroke: #d4d4dc;
  stroke-width: 0.6;
  cursor: pointer;
  transition: r 0.12s ease;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.15));
}

.minimap-pin-group:focus {
  outline: none;
}

.minimap-pin-group:focus .minimap-pin {
  stroke: var(--accent);
  stroke-width: 1;
}

.minimap-pin--karar {
  fill: #6b6b7a;
}

.minimap-pin--kriz {
  fill: #b45309;
}

.minimap-pin--cozuldu {
  fill: #166534;
  stroke: #86efac;
}

.minimap-pin-group--cozuldu .minimap-pin-icon {
  fill: #ecfdf5;
}

.minimap-pin-status {
  fill: #86efac;
  font-size: 3.2px;
  font-weight: 700;
  font-family: var(--font);
  pointer-events: none;
}

.minimap-pin--isyan {
  fill: #991b1b;
}

.minimap-pin-group:hover .minimap-pin {
  r: 6;
}

.minimap-pin-icon {
  fill: #0e0e12;
  font-size: 5px;
  font-weight: 700;
  font-family: var(--font);
  pointer-events: none;
}

.minimap-live-status {
  margin: 0;
  padding: 0.5rem 1rem;
  font-size: 0.6875rem;
  line-height: 1.4;
  border-bottom: 1px solid var(--border);
  background: var(--bg-inset);
}

.minimap-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
  padding: 0.65rem 1rem;
  font-size: 0.6875rem;
  border-bottom: 1px solid var(--border);
}

.minimap-legend span {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.minimap-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: 1px solid var(--border);
}

.minimap-dot--karar {
  background: #6b6b7a;
}
.minimap-dot--kriz {
  background: #b45309;
}
.minimap-dot--cozuldu {
  background: #22c55e;
}
.minimap-dot--isyan {
  background: #991b1b;
}

.minimap-detail {
  padding: 0.85rem 1rem 1rem;
  border-top: none;
  background: var(--bg-card);
}

.minimap-detail-title {
  font-size: 0.875rem;
  margin: 0 0 0.25rem;
}

.minimap-detail-meta {
  font-size: 0.75rem;
  color: var(--text-soft);
  margin: 0 0 0.5rem;
}

.minimap-detail-body {
  margin: 0;
  font-size: 0.8125rem;
  font-family: var(--font);
  color: var(--text-muted);
  white-space: pre-wrap;
  word-break: break-word;
}
