.heim-kmli { font-family: inherit; }
.heim-kmli-head { margin: 0 0 12px 0; }
.heim-kmli-meta { font-size: 14px; line-height: 1.4; }
.heim-kmli-meta code { font-size: 12px; }
.heim-kmli-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
}

.heim-kmli-table th, .heim-kmli-table td {
  border: 1px solid #ddd;
  padding: 8px;
  vertical-align: top;
}

/* Default: in der Listenansicht dürfen Zellen normal umbrechen */
.heim-kmli-table th,
.heim-kmli-table td {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Single-Ansicht: Key ohne Umbruch, Value nimmt den Rest und bricht */
.heim-kmli-single .heim-kmli-table {
  table-layout: auto;
}
.heim-kmli-single .heim-kmli-table th:nth-child(1),
.heim-kmli-single .heim-kmli-table td:nth-child(1) {
  white-space: nowrap;
  word-break: normal;
  width: 1%;
  max-width: 320px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.heim-kmli-single .heim-kmli-table th:nth-child(2),
.heim-kmli-single .heim-kmli-table td:nth-child(2) {
  overflow-wrap: anywhere;
  word-break: break-word;
}
.heim-kmli-table thead th { background: #f6f7f7; }
.heim-kmli-table tr.is-inactive { opacity: 0.6; }
.heim-kmli-desc { margin-top: 6px; font-size: 13px; color: #333; }

/* Listenansicht: Teaserbild links + Text rechts */
.heim-kmli-teaser { display:flex; gap:12px; align-items:flex-start; }
.heim-kmli-teaser__img { flex: 0 0 92px; display:block; }
.heim-kmli-teaser__img img {
  width: 92px;
  height: 92px;
  object-fit: cover;
  display:block;
  border-radius: 8px;
}
.heim-kmli-teaser__body { flex: 1 1 auto; min-width: 0; }

@media (max-width: 600px) {
  .heim-kmli-teaser { gap:10px; }
  .heim-kmli-teaser__img { flex-basis: 76px; }
  .heim-kmli-teaser__img img { width:76px; height:76px; }
}
.heim-kmli-code { font-size: 11px; }
.heim-kmli-flags { margin-top: 6px; font-size: 12px; color: #555; }
.heim-kmli-foot { margin-top: 12px; font-size: 14px; }

.heim-kmli-single h2 { margin: 0 0 8px 0; }
.heim-kmli-single-layout { display:flex; gap:16px; align-items:flex-start; }
.heim-kmli-single-feature { flex: 0 0 260px; }
.heim-kmli-single-feature img { width:100%; height:auto; display:block; border-radius:10px; }
.heim-kmli-single-text { flex: 1 1 auto; min-width: 0; }
.heim-kmli-single-text h3 { margin-top: 0; }

@media (max-width: 600px) {
  .heim-kmli-single-layout { display:block; }
  .heim-kmli-single-feature { max-width: 100%; margin-bottom: 12px; }
}
.heim-kmli-block { margin: 16px 0; padding: 12px; border: 1px solid #ddd; background: #fff; }
.heim-kmli-pre { background: #f6f7f7; padding: 10px; border: 1px solid #ddd; overflow:auto; }
.heim-kmli-desc-full { font-size: 14px; }

.heim-kmli-pager { margin: 12px 0; display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.heim-kmli-pager .disabled { opacity: .5; pointer-events:none; }
.heim-kmli-pager-info { font-size: 14px; }


/* Pagination active state */
.heim-kmli-pager .is-active {
    font-weight: 700;
    text-decoration: none;
    border-color: #000;
    background-color: #589b60;
}

/* Pagination ellipsis */
.heim-kmli-pager .is-ellipsis {
    opacity: .7;
    pointer-events: none;
}

/* Media links (gx_media_links) */
.heim-kmli-media-links {
    margin: 8px 0 0 0;
    padding: 0;
    list-style: none;
}

/* Compact numbered list for manual downloads */
.heim-kmli-media-links--compact {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.heim-kmli-media-links--compact a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 30px;
    padding: 0 8px;
    border: 1px solid #ccc;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
}

.heim-kmli-media-links--compact a:hover {
    border-color: #000;
}


/* Filters */
.heim-kmli-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:12px 0 16px;}
.heim-kmli-filter-sources{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.heim-kmli-chip{display:inline-block;padding:4px 10px;border:1px solid #ccc;border-radius:999px;text-decoration:none;font-size:14px;}
.heim-kmli-chip.is-active{font-weight:600;border-color:#000;}
.heim-kmli-search-form{display:flex;gap:8px;align-items:center;}
.heim-kmli-search-form input[type=text]{min-width:220px;max-width:360px;padding:6px 10px;}
.heim-kmli-search-form button{padding:6px 10px;}
.heim-kmli-clear{text-decoration:none;padding:0 6px;}

/* Robust word-break for Name column */
.heim-kmli-table .col-name { word-break: break-word; }


/* Responsive table wrapper */
.heim-kmli-table-wrap { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* Clickable source link */
.heim-kmli-source-link { text-decoration: none; border-bottom: 1px dotted currentColor; }
.heim-kmli-source-link:hover { text-decoration: underline; }

/* Mobile responsive table (stacked rows) */
@media (max-width: 600px) {
  .heim-kmli-table { border: none; }
  .heim-kmli-table thead { display: none; }
  .heim-kmli-table,
  .heim-kmli-table tbody,
  .heim-kmli-table tr,
  .heim-kmli-table th,
  .heim-kmli-table td {
    display: block;
    width: 100%;
  }

  .heim-kmli-table tr {
    border: 1px solid #ddd;
    margin: 0 0 12px 0;
  }

  /* key */
  .heim-kmli-table th {
    background: #f6f7f7;
    border: none;
    border-bottom: 1px solid #eee;
    padding: 10px;
    white-space: normal;   /* on mobile: allow wrap */
    max-width: none;
    overflow: visible;
    text-overflow: unset;
  }

  /* value */
  .heim-kmli-table td {
    border: none;
    padding: 10px;
  }
}



/* Media grid */
.heim-kmli-media-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:12px;
}
.heim-kmli-media-item{
  margin:0;
  border:1px solid #ddd;
  padding:8px;
  background:#fff;
  position:relative;
}
.heim-kmli-media-item img{
  width:100%;
  /* Make thumbnails uniform in the single view */
  aspect-ratio: 4 / 3;
  height:auto;
  object-fit: cover;
  display:block;
}
.heim-kmli-media-item figcaption{
  margin-top:6px;
  font-size:13px;
}

.heim-kmli-private-hint{
  margin:6px 0 10px;
  padding:8px 10px;
  border:1px solid #f0b849;
  background:#fff7e3;
  border-radius:8px;
}

.heim-kmli-media-item.is-private{border-color:#f0b849;}
.heim-kmli-private-badge{
  position:absolute;
  top:10px;
  left:10px;
  display:inline-block;
  padding:2px 8px;
  border-radius:999px;
  background:#f0b849;
  color:#1d2327;
  font-weight:700;
  font-size:12px;
}

/* Lightbox / slideshow */
.heim-kmli-lightbox{
  position:fixed;
  inset:0;
  z-index:99999;
  display:none;
}
.heim-kmli-lightbox.is-open{ display:block; }
.heim-kmli-lightbox__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.75);
}
.heim-kmli-lightbox__dialog{
  position:relative;
  max-width: 92vw;
  max-height: 90vh;
  margin: 5vh auto 0;
  background:#111;
  border-radius: 10px;
  box-shadow: 0 10px 40px rgba(0,0,0,.35);
  overflow:hidden;
}
.heim-kmli-lightbox__figure{ margin:0; }
.heim-kmli-lightbox__img{
  display:block;
  max-width:92vw;
  max-height:72vh;
  width:auto;
  height:auto;
  margin: 0 auto;
}
.heim-kmli-lightbox__caption{
  color:#fff;
  font-size:14px;
  padding: 10px 14px;
  background:rgba(0,0,0,.35);
}
.heim-kmli-lightbox__close{
  position:absolute;
  top:10px;
  right:12px;
  width:44px;
  height:44px;
  line-height:44px;
  font-size:28px;
  border:0;
  border-radius: 999px;
  color:#fff;
  background:rgba(0,0,0,.35);
  cursor:pointer;
}
.heim-kmli-lightbox__nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:54px;
  height:54px;
  line-height:54px;
  font-size:42px;
  border:0;
  border-radius: 999px;
  color:#fff;
  background:rgba(0,0,0,.35);
  cursor:pointer;
}
.heim-kmli-lightbox__prev{ left:10px; }
.heim-kmli-lightbox__next{ right:10px; }
.heim-kmli-lightbox__close:hover,
.heim-kmli-lightbox__nav:hover{
  background:rgba(0,0,0,.55);
}

/* Prevent background scroll while open */
html.heim-kmli-lightbox-open,
html.heim-kmli-lightbox-open body{
  overflow:hidden;
}


/* List thumbnail */
.heim-kmli-thumb{
  display:block;
  width:120px;
  max-width:100%;
  margin:0 0 8px 0;
}
.heim-kmli-thumb img{
  width:100%;
  height:auto;
  display:block;
  border:1px solid #ddd;
}
@media (max-width: 782px){
  .heim-kmli-thumb{ width: 100%; }
}


/* Admin/Frontend media sizing: keep list thumbnails compact */
.heim-kmli-item-thumb img,
.heim-kmli-item-teaser img,
.heim-kmli-list-thumb img{max-width:300px;height:auto;}

/* Small edit link visible only to authorized users (rendered conditionally). */
.heim-kmli-edit-link{
  margin: 0 0 4px 0;
  font-size: 12px;
}
.heim-kmli-edit-link a{
  text-decoration: none;
}
