/* Weltkarte (/karte), Logik in js/karte.js */
.km-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.km-select { min-width: 18rem; max-width: 100%; border: 1px solid #cbd5e1; border-radius: 0.5rem; padding: 0.45rem 0.6rem; font-size: 0.95rem; background: #fff; }
.km-layout { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) { .km-layout { grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr); } }
.km-mapwrap { position: relative; border: 1px solid #e2e8f0; border-radius: 0.75rem; background: #f8fafc; padding: 0.5rem; }
#km-map { display: block; width: 100%; height: auto; cursor: grab; }
#km-map:active { cursor: grabbing; }
.km-country { stroke: #fff; stroke-width: 0.5; transition: opacity 0.1s; }
.km-country:hover { opacity: 0.8; }
.km-country.km-selected { stroke: #0f172a; stroke-width: 1.4; }
.km-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.9rem; padding: 0.5rem 0.4rem 0.2rem; font-size: 0.8rem; color: #334155; }
.km-leg-item { display: inline-flex; align-items: center; gap: 0.35rem; }
.km-leg-item i { display: inline-block; width: 0.9rem; height: 0.9rem; border-radius: 0.2rem; border: 1px solid rgba(15, 23, 42, 0.12); }
.km-leg-bar { display: inline-block; width: 11rem; height: 0.7rem; border-radius: 0.2rem; }
.km-leg-num { font-variant-numeric: tabular-nums; }
.km-leg-note { color: #64748b; }
.km-hint { margin: 0.2rem 0.4rem 0; font-size: 0.75rem; color: #94a3b8; }
.km-tooltip { position: absolute; z-index: 10; pointer-events: none; max-width: 16rem; background: #0f172a; color: #fff; padding: 0.4rem 0.6rem; border-radius: 0.4rem; font-size: 0.82rem; line-height: 1.35; }
.km-tooltip .km-muted { color: #cbd5e1; }
.km-panel { border: 1px solid #e2e8f0; border-radius: 0.75rem; padding: 1rem 1.1rem; align-self: start; }
.km-panel-title { font-size: 1.25rem; font-weight: 700; color: #0f172a; margin-bottom: 0.6rem; }
.km-panel-table { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.km-panel-table th { text-align: left; font-weight: 500; color: #475569; padding: 0.4rem 0.6rem 0.4rem 0; vertical-align: top; width: 50%; }
.km-panel-table td { padding: 0.4rem 0; color: #0f172a; vertical-align: top; }
.km-row { cursor: pointer; border-top: 1px solid #f1f5f9; }
.km-row:hover { background: #faf5ff; }
.km-row-current th, .km-row-current td { color: #6d28d9; font-weight: 600; }
.km-meta { font-size: 0.75rem; color: #64748b; font-weight: 400; }
.km-muted { color: #94a3b8; }
.km-table { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.km-table th { text-align: left; font-weight: 600; color: #475569; border-bottom: 1px solid #cbd5e1; padding: 0.4rem 0.6rem; white-space: nowrap; }
.km-table td { border-bottom: 1px solid #f1f5f9; padding: 0.35rem 0.6rem; vertical-align: top; }
.km-table tbody tr { cursor: pointer; }
.km-table tbody tr:hover { background: #faf5ff; }
.km-val { font-variant-numeric: tabular-nums; white-space: nowrap; }
.km-sort { font: inherit; font-weight: 600; color: #6d28d9; cursor: pointer; background: none; border: 0; padding: 0; text-align: left; }
.km-sort:hover { text-decoration: underline; }
