
.retrap-page { max-width: 1220px; margin: 0 auto; padding: 1rem 1rem 3rem; }
.retrap-intro {
  margin: 1rem 0 1.25rem; padding: 1rem 1.15rem;
  background: #f7f5ef; border: 1px solid #ded8ca; border-radius: 12px;
}
.retrap-intro p { margin: .25rem 0; }
.retrap-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; margin: 1rem 0 1.3rem; }
.retrap-kpi { padding: .9rem 1rem; border: 1px solid #ddd; border-radius: 12px; background: #fff; }
.retrap-kpi strong { display:block; font-size: 1.55rem; line-height:1.1; }
.retrap-kpi span { display:block; margin-top:.28rem; color:#555; font-size:.9rem; }
.retrap-section { margin: 1.5rem 0 2rem; }
.retrap-section h2 { margin-bottom:.7rem; }
.retrap-map { height: 560px; border: 1px solid #ccc; border-radius: 12px; overflow:hidden; background:#eef1f4; }
.retrap-map-small { height: 500px; }
.retrap-map-note { font-size:.88rem; color:#555; margin:.45rem 0 .8rem; }
.retrap-legend { display:flex; flex-wrap:wrap; gap:.55rem 1rem; margin:.7rem 0; font-size:.88rem; }
.retrap-legend > span { display:inline-flex; align-items:center; gap:.4rem; }
.retrap-legend > span > span { display:flex; flex-direction:column; line-height:1.15; }
.retrap-legend b { font-weight:600; }
.retrap-legend small { display:block; margin-top:.08rem; color:#666; font-size:.78em; font-weight:400; }
.retrap-line { width:28px; height:0; border-top:3px solid; display:inline-block; }
.retrap-line.direct { border-color:#222; }
.retrap-line.winter { border-color:#2563eb; }
.retrap-line.spring { border-color:#16a34a; }
.retrap-line.late { border-color:#a8b0ba; }
.retrap-line.incoming { border-top-style:dashed; }
.retrap-table-wrap { overflow-x:auto; border:1px solid #ddd; border-radius:12px; background:white; }
.retrap-data-table { width:100%; border-collapse:collapse; border-spacing:0; font-size:.92rem; display:table !important; table-layout:auto; margin:0; }
.retrap-data-table thead { display:table-header-group !important; }
.retrap-data-table tbody { display:table-row-group !important; }
.retrap-data-table tr { display:table-row !important; }
.retrap-data-table th, .retrap-data-table td { display:table-cell !important; border-radius:0; box-shadow:none; background:#fff; }
.retrap-data-table th, .retrap-data-table td { padding:.65rem .7rem; border-bottom:1px solid #e9e9e9; vertical-align:top; text-align:left; }
.retrap-data-table thead th { position:sticky; top:0; background:#f2f2f2; z-index:1; }
.retrap-data-table tbody tr:hover { background:#faf8f2; }
.retrap-data-table .num { text-align:right; white-space:nowrap; }
.retrap-species-link { font-weight:700; text-decoration:none; }
.retrap-latin { display:block; font-weight:400; font-style:italic; color:#555; margin-top:.12rem; }
.retrap-country-list { line-height:1.55; }
.retrap-country-chip { display:inline-block; margin:.15rem .22rem .15rem 0; padding:.18rem .48rem; border-radius:999px; background:#eef2f5; font-size:.85rem; }
.retrap-detail-head { display:flex; justify-content:space-between; gap:1rem; align-items:flex-end; flex-wrap:wrap; margin:1.1rem 0; }
.retrap-detail-head h2 { margin:0; }
.retrap-detail-head .latin { display:block; font-style:italic; font-weight:400; color:#555; font-size:1rem; margin-top:.15rem; }
.retrap-back { display:inline-block; margin:.2rem 0 .6rem; }
.retrap-filter { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin:.6rem 0 .8rem; }
.retrap-filter select { padding:.4rem .55rem; border:1px solid #bbb; border-radius:7px; background:white; }
.retrap-repeat { font-weight:700; }
.retrap-repeat small { font-weight:400; color:#666; display:block; }
.retrap-map-popup { min-width:220px; line-height:1.35; }
.retrap-map-popup b { font-size:1.02rem; }
.retrap-map-popup .route { margin:.3rem 0; }
.retrap-map-popup .meta { color:#555; font-size:.9em; }
.retrap-origin-icon, .retrap-dest-icon {
  width:12px; height:12px; box-sizing:border-box; background:#fff;
  border:3px solid #111; display:block;
}
.retrap-origin-icon { border-radius:50%; }
.retrap-origin-icon.incoming { transform:rotate(45deg); border-radius:1px; }
.retrap-dest-icon { border-radius:50%; border-width:2px; }
.retrap-note { color:#555; font-size:.9rem; }
.retrap-type-cell { line-height:1.25; }
.retrap-type-note { display:block; margin-top:.28rem; color:#666; font-size:.78rem; line-height:1.2; font-weight:400; }
.retrap-type-note strong { display:block; color:#555; font-size:1em; font-weight:600; }
.retrap-type-note small { display:block; margin-top:.08rem; color:#777; font-size:.92em; font-weight:400; }

@media (max-width: 800px) {
  .retrap-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .retrap-map { height:440px; }
  .retrap-data-table { font-size:.86rem; }
}
@media (max-width: 480px) {
  .retrap-kpis { grid-template-columns: 1fr; }
  .retrap-map { height:390px; }
}

/* Dropdown druhů pod položkou Retrapi – zatím lokálně jen pro retrapové stránky. */
.retrapi-species-dropdown {
  min-width: 570px;
  width: 570px;
  max-height: 70vh;
  grid-template-columns: repeat(3, minmax(160px, 1fr));
  gap: 0 14px;
  padding: 10px;
}
.retrapi-species-dropdown > a {
  color: #fff;
  text-decoration: none;
  display: block;
  padding: 5px 7px;
  font-size: 12px;
  line-height: 1.25;
  font-weight: 400;
  border-radius: 4px;
}
.retrapi-species-dropdown > a:hover { background: rgba(255,255,255,.16); }
.retrapi-species-dropdown > .retrapi-menu-overview {
  grid-column: 1 / -1;
  font-weight: 700;
  font-size: 12.5px;
  border-bottom: 1px solid rgba(255,255,255,.28);
  border-radius: 0;
  padding: 6px 7px;
  margin-bottom: 3px;
}
.retrapi-species-dropdown > .retrapi-menu-incoming {
  color: #e7f5ff;
  margin-bottom: 6px;
}

/* Cizí kroužkovanci: jemné modré odlišení v souhrnu i detailu. */
.retrap-data-table tbody tr.retrap-incoming-row > td { background: #eef7fc !important; }
.retrap-data-table tbody tr.retrap-incoming-row:hover > td { background: #e3f2fa !important; }
.retrap-incoming-badge {
  display: inline-block;
  margin: 0 0 .3rem 0;
  padding: .12rem .38rem;
  border: 1px solid #8bbbd4;
  border-radius: 999px;
  background: #dceff8;
  color: #16506d;
  font-size: .68rem;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: .025em;
}
.retrap-incoming-badge + * { margin-top: .1rem; }
.retrap-incoming-section { scroll-margin-top: 85px; }
.retrap-incoming-kpis {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin: .7rem 0 .85rem;
}
.retrap-incoming-kpis span {
  display: inline-block;
  padding: .4rem .65rem;
  border: 1px solid #b8d7e7;
  border-radius: 999px;
  background: #eef7fc;
  color: #315568;
  font-size: .86rem;
}
.retrap-incoming-kpis strong { color: #123f56; }

@media (max-width: 800px) {
  .retrapi-species-dropdown {
    min-width: 280px;
    width: min(92vw, 440px);
    grid-template-columns: repeat(2, minmax(120px, 1fr));
  }
}


/* Místní kontroly (0 km): samostatná kategorie, řazená až za skutečné retrapy. */
.retrap-data-table tbody tr.retrap-local-row > td { background: #f5f5f0 !important; }
.retrap-data-table tbody tr.retrap-local-row:hover > td { background: #eeeee6 !important; }
.retrap-local-badge {
  display: inline-block;
  margin: 0 0 .3rem 0;
  padding: .12rem .38rem;
  border: 1px solid #b7b99c;
  border-radius: 999px;
  background: #eceede;
  color: #50573a;
  font-size: .68rem;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: .025em;
}
.retrap-type-local-text { display:block; color:#555; font-size:.83rem; line-height:1.25; }

/* Menu musí být nad Leaflet mapou a jejími ovládacími prvky.
   DŮLEŽITÉ: neměníme position navigace; v !styles.css je #mainMenu position:fixed. */
#mainMenu {
  z-index: 5000 !important;
}
#mainMenu .retrapi-nav {
  z-index: 5001;
}
#mainMenu .retrapi-species-dropdown {
  z-index: 6000 !important;
}
