/* ── Biblioteca metodologica - vizual Windows Explorer (spec 24.07) ──────────────
   Geometria size-driven e IDENTICA platformei: celula FIXA per treapta (240/160/104 px),
   reflow auto-fill (numarul pe rand rezulta din latime, nu se alege). Clase .bib-*, tokeni --m-*. */

.bib-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.bib-crumb { display: flex; align-items: center; gap: 5px; font-size: var(--m-fs-3); color: var(--m-muted); }
.bib-crumb button { border: none; background: transparent; cursor: pointer; font: inherit;
  color: var(--m-muted); padding: 2px 5px; border-radius: 4px; }
.bib-crumb button:hover { background: var(--m-surf2); color: var(--m-text); }
.bib-crumb button.aici { color: var(--m-text); font-weight: 600; cursor: default; }

/* grila reflow: --bib-w se seteaza inline per treapta */
.bib-grid { display: grid; grid-template-columns: repeat(auto-fill, var(--bib-w)); justify-content: start; gap: 12px; }
.bib-tile { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 8px;
  border: none; background: transparent; border-radius: var(--m-r-3); cursor: pointer; font: inherit;
  transition: background .12s ease; width: 100%; }
.bib-tile:hover { background: var(--m-surf2); }
.bib-tile:focus-visible { outline: 2px solid var(--m-navy); outline-offset: 1px; }
.bib-tile-nume { font-size: var(--m-fs-2); line-height: 1.25; text-align: center; color: var(--m-text);
  word-break: break-word; }
.bib-tile-meta { font-size: var(--m-fs-1); color: var(--m-muted); }
.bib-icon { width: 100%; display: flex; align-items: center; justify-content: center; position: relative; }

/* coperta PDF: raport A4, umbra + inel subtil, numele peste coperta la hover (ca in platforma) */
.bib-cover { position: relative; display: block; width: 100%; aspect-ratio: 1 / 1.414;
  overflow: hidden; border-radius: var(--m-r-3); background: #fff;
  box-shadow: 0 0 0 1px rgba(15, 30, 60, .1), var(--m-sh-sm); }
.bib-cover img { width: 100%; height: 100%; object-fit: contain; display: block; }
.bib-cover-nume { position: absolute; left: 0; right: 0; bottom: 0; padding: 20px 8px 6px;
  font-size: var(--m-fs-1); line-height: 1.3; color: #fff; text-align: left;
  background: linear-gradient(to top, rgba(0, 0, 0, .84), rgba(0, 0, 0, .45), transparent);
  opacity: 0; transition: opacity .15s ease; }
.bib-tile:hover .bib-cover-nume, .bib-tile:focus-visible .bib-cover-nume { opacity: 1; }

/* badge de stare in colt (semantica platformei: verde = parcurs, rosu = nedeschis) */
.bib-badge { position: absolute; right: 6px; top: 6px; z-index: 2; display: inline-flex;
  align-items: center; justify-content: center; min-width: 21px; height: 21px; padding: 0 5px;
  border-radius: 999px; font-size: 11px; font-weight: 700; line-height: 1; color: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .32); outline: 2px solid rgba(255, 255, 255, .85); }
.bib-badge.ok { background: #059669; }
.bib-badge.part { background: #f59e0b; color: #422006; }
.bib-badge.nou { background: #ef4444; }

/* folder gol - gri punctat + eticheta „in pregatire" */
.bib-tile.gol .bib-icon { opacity: .72; filter: saturate(.75); }
.bib-tile.gol .bib-tile-nume { color: var(--m-muted); }
.bib-gol-eticheta { font-size: var(--m-fs-1); color: var(--m-muted); border: 1px dashed var(--m-border);
  border-radius: 999px; padding: 1px 8px; white-space: nowrap; }

/* Details = tabel stil Explorer */
.bib-tbl { width: 100%; border-collapse: collapse; font-size: var(--m-fs-3); min-width: 520px; }
.bib-tbl th { text-align: left; font-size: var(--m-fs-1); text-transform: uppercase; letter-spacing: .06em;
  color: var(--m-muted); font-weight: 700; padding: 8px 10px; border-bottom: 1px solid var(--m-border); }
.bib-tbl td { padding: 9px 10px; border-bottom: 1px solid var(--m-border); vertical-align: middle; }
.bib-tbl tbody tr:last-child td { border-bottom: none; }
.bib-tbl tr.clicabil { cursor: pointer; }
.bib-tbl tr.clicabil:hover { background: var(--m-surf2); }
.bib-tbl .num { text-align: right; color: var(--m-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.bib-nume-cell { display: flex; align-items: center; gap: 9px; font-weight: 600; text-align: left; }
.bib-nume-cell .mic { width: 22px; flex: 0 0 22px; display: flex; }
.bib-pill { display: inline-flex; align-items: center; gap: 5px; border-radius: 999px; padding: 2px 9px;
  font-size: var(--m-fs-1); font-weight: 600; white-space: nowrap; }
.bib-pill.ok { background: var(--m-good-s); color: var(--m-good); }
.bib-pill.nou { background: color-mix(in srgb, var(--m-bad) 14%, var(--m-surf)); color: var(--m-bad); }
.bib-pill.mut { background: var(--m-surf2); color: var(--m-muted); }
.bib-audio-rand td { padding-top: 0; }
.bib-audio-rand audio { width: 100%; max-width: 460px; }

/* modal audio */
.bib-modal { position: fixed; inset: 0; z-index: 60; display: flex; align-items: center;
  justify-content: center; padding: 16px; background: rgba(8, 17, 29, .62); backdrop-filter: blur(3px); }
.bib-modal-corp { width: 100%; max-width: 520px; background: var(--m-surf); border-radius: var(--m-r-4);
  box-shadow: var(--m-sh-lg); padding: 16px; }
.bib-modal-titlu { display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin-bottom: 12px; font-weight: 600; font-size: var(--m-fs-4); }
.bib-modal-corp audio { width: 100%; }

@media (max-width: 640px) {
  .bib-grid { gap: 8px; }
  .bib-tbl th, .bib-tbl td { padding: 7px 8px; }
}

:root[data-theme="dark"] .bib-cover { background: #f6f7f9; }

/* grila si tabelul stau in ACELASI fel de bloc (cerinta Marian): panoul are padding uniform,
   iar grila nu mai atinge marginile */
.bib-panel { padding: 14px; }
@media (max-width: 640px) { .bib-panel { padding: 10px; } }
