/* ====== Základ ====== */
:root {
  --gap: 14px;
  --border: rgba(0,0,0,.10);
  --muted: rgba(0,0,0,.62);
  --bg-soft: rgba(0,0,0,.035);
  --badge-bg: rgba(0,0,0,.06);
  --badge-border: rgba(0,0,0,.10);
  --radius: 12px;
  --radius-sm: 10px;
  --shadow: 0 1px 2px rgba(0,0,0,.05);
}

.biblio {
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size: 15px;
}

.biblio * { box-sizing: border-box; }

/* ====== Horní panel ====== */
.biblio__top {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow);
}

.biblio__search { display: grid; gap: 6px; }

.biblio__label {
  font-size: 13px;
  color: var(--muted);
}

.biblio__input {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 14px;
  outline: none;
  background: #fff;
}
.biblio__input:focus { border-color: rgba(0,0,0,.30); }

.biblio__controls {
  display: grid;
  gap: 8px;
  justify-items: end;
  align-content: start;
}

.biblio__sort { display: inline-flex; gap: 8px; }

.biblio__btn {
  appearance: none;
  border: 1px solid var(--border);
  background: #fff;
  padding: 7px 10px;
  border-radius: var(--radius-sm);
  font-size: 13px;
  cursor: pointer;
}
.biblio__btn:hover { background: var(--bg-soft); }
.biblio__btn.is-active {
  background: rgba(0,0,0,.06);
  border-color: rgba(0,0,0,.22);
}
.biblio__btn--ghost { background: transparent; }

.biblio__meta {
  grid-column: 1 / -1;
  font-size: 13px;
  color: var(--muted);
}

/* ====== Layout ====== */
.biblio__layout {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: var(--gap);
  margin-top: var(--gap);
}

.biblio__filters {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow);
  padding: 12px;
  align-self: start;
  position: sticky;
  top: 12px;
  max-height: calc(100vh - 24px);
  overflow: auto;
}

.biblio__results {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow);
  padding: 12px;
  min-height: 240px;
}

/* ====== Filtry ====== */
.filterGroup + .filterGroup {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}

.filterGroup__title {
  margin: 0 0 8px;
  font-size: 13px;
  color: rgba(0,0,0,.78);
  letter-spacing: .2px;
}

.filterItem {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 6px 6px;
  border-radius: 8px;
}
.filterItem:hover { background: var(--bg-soft); }

.filterItem__left {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.filterItem input[type="checkbox"] { transform: translateY(1px); }

.filterItem__label {
  font-size: 13px;
  max-width: 200px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.filterItem__count {
  font-size: 12px;
  color: var(--muted);
  border: 1px solid var(--border);
  background: rgba(0,0,0,.02);
  padding: 1px 7px;
  border-radius: 999px;
}

.filterItem.is-disabled { opacity: .45; }
.filterItem.is-disabled:hover { background: transparent; }

/* ====== Výpis ====== */
.recordList {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

/* kompaktní záznam */
.record {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 10px 12px;
  background: #fff;
}

/* Řádek 1: číslo + badge + název + rok */
.record__line1 {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}

.record__no {
  min-width: 40px;
  text-align: right;
  font-size: 13px;
  color: var(--muted);
}

/* štítek typu */
.badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 12px;
  border: 1px solid var(--badge-border);
  background: var(--badge-bg);
  white-space: nowrap;
}

.record__titleInline {
  font-size: 15px;
  line-height: 1.25;
}

/* rok vpravo */
.record__year {
  margin-left: auto;
  font-size: 13px;
  color: var(--muted);
  white-space: nowrap;
}

/* Řádek 2: zdroj + odkaz */
.record__line2 {
  margin-top: 6px;
  font-size: 13px;
  color: rgba(0,0,0,.74);
  line-height: 1.35;
}

.record__fulltext {
  text-decoration: none;
  border-bottom: 1px solid rgba(0,0,0,.18);
}
.record__fulltext:hover { border-bottom-color: rgba(0,0,0,.35); }

/* Řádek 3: poznámka */
.record__noteInline {
  margin-top: 6px;
  font-size: 13px;
  color: var(--muted);
  border-left: 2px solid rgba(0,0,0,.10);
  padding-left: 10px;
}

/* ====== Responsivní ====== */
@media (max-width: 980px) {
  .biblio__layout { grid-template-columns: 1fr; }
  .biblio__filters { position: static; max-height: none; }
  .biblio__top { grid-template-columns: 1fr; }
  .biblio__controls { justify-items: start; }
}


/* ===== Mobilní sbalení filtrů ===== */
.filtersToggle{
  display: none;
  width: 100%;
  text-align: left;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: #fff;
  font-size: 14px;
  cursor: pointer;
}
.filtersToggle:hover{ background: var(--bg-soft); }

/* při mobilu schovat filtry, ukázat toggle */
@media (max-width: 980px){
  .filtersToggle{ display: block; margin-bottom: 10px; }
  .biblio__filters{ max-height: none; }

  /* výchozí: skupiny filtrů skryté */
  .biblio__filters .filterGroup{ display: none; }

  /* když je otevřeno */
  .biblio__filters.is-open .filterGroup{ display: block; }
}






/* ČLÁNKY */
.record[data-type*="článk"] .badge { border-color: rgba(0,0,0,.18); }
.record[data-type*="článk"]::before { background: rgba(0,0,0,.35); }

/* RECENZE */
.record[data-type*="recenz"] .badge { background: rgba(0,0,0,.10); }
.record[data-type*="recenz"]::before { background: rgba(0,0,0,.55); }

/* ZPRÁVY */
.record[data-type*="zpráv"] .badge { background: rgba(0,0,0,.07); }
.record[data-type*="zpráv"]::before { background: rgba(0,0,0,.25); }

/* ROZLOUČENÍ */
.record[data-type*="rozlou"] .badge { background: rgba(0,0,0,.08); }
.record[data-type*="rozlou"]::before { background: rgba(0,0,0,.45); }

/* KAPITOLY */
.record[data-type*="kapitol"] .badge { background: rgba(0,0,0,.05); }
.record[data-type*="kapitol"]::before { background: rgba(0,0,0,.20); }



/* ===== Velmi jemné pastelové bubbles ve filtrech (Typ) ===== */

.filterGroup[data-filter="type"] .filterItem__count{
  font-weight: 400;
  color: #111;                         /* černý text */
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(0,0,0,.03);         /* fallback */
}

/* články – velmi světlá modrá */
.filterGroup[data-filter="type"] .filterItem[data-type*="článk"] .filterItem__count{
  background: #edf4ff;
  border-color: #d3e2fb;
}

/* recenze – velmi světlá zelená */
.filterGroup[data-filter="type"] .filterItem[data-type*="recenz"] .filterItem__count{
  background: #edf7f1;
  border-color: #d3eadb;
}

/* zprávy – velmi světlá fialová */
.filterGroup[data-filter="type"] .filterItem[data-type*="zpráv"] .filterItem__count{
  background: #f3f0fb;
  border-color: #e0d7f3;
}

/* rozloučení – neutrální šedá */
.filterGroup[data-filter="type"] .filterItem[data-type*="rozlou"] .filterItem__count{
  background: #f4f4f4;
  border-color: #dddddd;
}

/* kapitoly – velmi světlá oranžová */
.filterGroup[data-filter="type"] .filterItem[data-type*="kapitol"] .filterItem__count{
  background: #fff4ec;
  border-color: #f2d6bf;
}

/* disabled zůstává opravdu utlumené */
.filterGroup[data-filter="type"] .filterItem.is-disabled .filterItem__count{
  opacity: .35;
}


/* ===== Jemné pastelové badge podle typu ===== */

.badge{
  color: #111;                 /* černý text */
  font-weight: 400;            /* tenký */
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(0,0,0,.04); /* fallback */
}

/* ČLÁNKY – světle modrá */
.record[data-type*="článk"] .badge{
  background: #e7f0fe;
  border-color: #b9d2fb;
}

/* RECENZE – světle zelená */
.record[data-type*="recenz"] .badge{
  background: #eaf6ee;
  border-color: #bfe3c9;
}

/* ZPRÁVY – světle fialová */
.record[data-type*="zpráv"] .badge{
  background: #f1ecfb;
  border-color: #d3c6f1;
}

/* ROZLOUČENÍ – světle šedá */
.record[data-type*="rozlou"] .badge{
  background: #f2f2f2;
  border-color: #d6d6d6;
}

/* KAPITOLY – světle oranžová */
.record[data-type*="kapitol"] .badge{
  background: #fff1e6;
  border-color: #f0c6a8;
}



/* skrýt vybrané skupiny filtrů */
.filterGroup[data-filter="general"],
.filterGroup[data-filter="time_detail"],
.filterGroup[data-filter="geo"] {
  display: none;
}