.dkc-wrap {
  --dkc-bg: #ffffff;
  --dkc-panel: #f7f8f7;
  --dkc-border: #d9e0db;
  --dkc-text: #1d2b21;
  --dkc-muted: #5a6a61;
  --dkc-accent: #2f855a;
  --dkc-accent-dark: #215c3e;
  --dkc-map-outline: #9bb8a5;
  --dkc-level-0: #eef5f1;
  --dkc-level-1: #dcefe2;
  --dkc-level-2: #b9dfc4;
  --dkc-level-3: #79be8d;
  --dkc-level-4: #2f855a;
  --dkc-bubble: rgba(31, 81, 55, 0.78);
  --dkc-bubble-stroke: #173b29;
  color: var(--dkc-text);
  font-size: 16px;
}
.dkc-wrap * { box-sizing: border-box; }
.dkc-header-card,
.dkc-panel {
  background: var(--dkc-bg);
  border: 1px solid var(--dkc-border);
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(0,0,0,.04);
}
.dkc-header-card {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 20px;
  margin-bottom: 18px;
  align-items: start;
}
.dkc-header-card h2,
.dkc-panel h3,
.dkc-age-groups h4 { margin: 0 0 10px; }
.dkc-header-card p,
.dkc-map-header p { margin: 0; color: var(--dkc-muted); }
.dkc-meta-note { display: flex; flex-wrap: wrap; gap: 8px; }
.dkc-badge {
  background: #edf7f0;
  color: var(--dkc-accent-dark);
  border: 1px solid #cfe4d6;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 13px;
  font-weight: 600;
}
.dkc-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-bottom: 18px;
}
.dkc-panel { padding: 18px; }
.dkc-form { display: grid; gap: 14px; }
.dkc-form label span {
  display: block;
  font-weight: 600;
  margin-bottom: 6px;
}
.dkc-form input,
.dkc-form select {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--dkc-border);
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 16px;
  background: #fff;
}
.dkc-button {
  appearance: none;
  border: 0;
  background: var(--dkc-accent);
  color: #fff;
  min-height: 48px;
  border-radius: 12px;
  padding: 12px 16px;
  font-weight: 700;
  cursor: pointer;
}
.dkc-button:hover { background: var(--dkc-accent-dark); }
.dkc-button:disabled { opacity: .65; cursor: not-allowed; }
.dkc-message { min-height: 22px; font-weight: 600; }
.dkc-message.is-success { color: var(--dkc-accent-dark); }
.dkc-message.is-error { color: #ab2f2f; }
.dkc-stats-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}
.dkc-stat-card {
  background: var(--dkc-panel);
  border-radius: 14px;
  padding: 14px;
  border: 1px solid var(--dkc-border);
}
.dkc-stat-card span {
  display: block;
  color: var(--dkc-muted);
  font-size: 14px;
  margin-bottom: 6px;
}
.dkc-stat-card strong { font-size: 28px; line-height: 1; }
.dkc-age-bar {
  display: grid;
  grid-template-columns: 80px 1fr 40px;
  gap: 10px;
  align-items: center;
  margin-bottom: 10px;
}
.dkc-age-bar-label,
.dkc-age-bar-value { font-size: 14px; }
.dkc-age-bar-track {
  height: 12px;
  border-radius: 999px;
  background: #e8eeea;
  overflow: hidden;
}
.dkc-age-bar-fill {
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, #7ac48e, #2f855a);
}
.dkc-map-header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: start;
  margin-bottom: 12px;
}
.dkc-legend { display: flex; flex-wrap: wrap; gap: 12px; font-size: 14px; color: var(--dkc-muted); }
.dkc-swatch {
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 4px;
  border: 1px solid var(--dkc-map-outline);
  vertical-align: middle;
  margin-right: 4px;
}
.dkc-swatch.level0 { background: var(--dkc-level-0); }
.dkc-swatch.level1 { background: var(--dkc-level-1); }
.dkc-swatch.level2 { background: var(--dkc-level-2); }
.dkc-swatch.level3 { background: var(--dkc-level-3); }
.dkc-swatch.level4 { background: var(--dkc-level-4); }
.dkc-map-shell {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 16px;
  background: linear-gradient(180deg, #f8fbff, #edf6f0);
  border: 1px solid var(--dkc-border);
}

.dkc-map-loading {
  padding: 14px 16px 0;
  color: var(--dkc-muted);
  font-weight: 600;
}

.dkc-map {
  width: 100%;
  height: auto;
  display: block;
  min-height: 360px;
}
.dkc-inset-frame {
  fill: rgba(255,255,255,.72);
  stroke: #d1ddd5;
  stroke-width: 1.2;
}
.dkc-inset-title,
.dkc-inset-note {
  fill: #607268;
  font-size: 18px;
  font-weight: 600;
}
.dkc-inset-note {
  font-size: 13px;
  font-weight: 500;
}
.dkc-greenland-shape {
  fill: #ddeee3;
  stroke: #9fbda9;
  stroke-width: 2;
}
 .dkc-region {
  stroke: var(--dkc-map-outline);
  stroke-width: 1.15;
  transition: fill .15s ease, opacity .15s ease;
}
.dkc-region.level-0 { fill: #f4f8f5; }
.dkc-region.level-1 { fill: var(--dkc-level-1); }
.dkc-region.level-2 { fill: var(--dkc-level-2); }
.dkc-region.level-3 { fill: var(--dkc-level-3); }
.dkc-region.level-4 { fill: var(--dkc-level-4); }
.dkc-region:hover { opacity: .92; }
.dkc-point {
  fill: var(--dkc-bubble);
  stroke: var(--dkc-bubble-stroke);
  stroke-width: 1.5;
  cursor: pointer;
  transition: transform .15s ease;
  transform-origin: center;
}
.dkc-point:hover { transform: scale(1.08); }
.dkc-tooltip {
  position: absolute;
  z-index: 9;
  min-width: 180px;
  max-width: 220px;
  background: rgba(24,32,27,.95);
  color: #fff;
  padding: 12px;
  border-radius: 12px;
  font-size: 13px;
  box-shadow: 0 10px 30px rgba(0,0,0,.15);
  pointer-events: none;
}
.dkc-tooltip strong { display: block; margin-bottom: 6px; }
@media (max-width: 782px) {
  .dkc-grid { grid-template-columns: 1fr; }
  .dkc-header-card,
  .dkc-map-header { flex-direction: column; }
  .dkc-stats-cards { grid-template-columns: 1fr; }
  .dkc-age-bar { grid-template-columns: 72px 1fr 32px; }
  .dkc-map { min-height: 280px; }
  .dkc-inset-title { font-size: 15px; }
  .dkc-inset-note { font-size: 11px; }
}
