/* ============================================================
   Biblioteka operatora (plansza 9d) — pasek filtrów, płaska siatka
   4-kolumnowa zaakceptowanych assetów, badge formatu/copy, linia QA,
   pełna nazwa eksportu, edytowalna notatka, stopka EKSPORT.
   Kolory wyłącznie z tokens.css.
   ============================================================ */
#lib{display:flex;flex-direction:column;min-height:calc(100vh - var(--top-bar-h))}

/* --- pasek filtrów (segment · produkt/format/źródło · licznik · ZIP) --- */
.lib-toolbar{display:flex;align-items:center;gap:14px;padding:14px 36px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.lib-filter{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.lib-filter-k{font:400 var(--font-size-xs) var(--font-mono);color:var(--text-faint)}
.lib-filter .field{padding-top:6px;padding-bottom:6px;font-size:var(--font-size-base)}
.lib-count{font:400 var(--font-size-sm) var(--font-mono);color:var(--text-tertiary)}

/* --- płaska siatka 4-kolumnowa --- */
.lib-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:24px 36px;align-items:start}
.lib-card{display:flex;flex-direction:column;min-width:0}
.lib-frame{position:relative;border:1px solid var(--border-field);border-radius:var(--radius-3);overflow:hidden;
  background:repeating-linear-gradient(45deg,var(--checker-a) 0 9px,var(--checker-b) 9px 18px)}
.lib-frame img{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer}
.lib-badge{position:absolute;top:8px;font:500 var(--font-size-2xs) var(--font-mono);padding:2px 7px;border-radius:var(--radius-1);
  background:var(--surface-inset);border:1px solid var(--border-chip);color:var(--text-secondary)}
.lib-badge-fmt{left:8px}
.lib-badge-copy{right:8px}

/* --- meta karty: nazwa · QA · notatka · akcje --- */
.lib-name{font:400 var(--font-size-2xs) var(--font-mono);color:var(--text-tertiary);margin-top:10px;word-break:break-all;line-height:1.4}
.lib-qa{display:flex;align-items:center;gap:6px;font-size:var(--font-size-sm);color:var(--text-secondary);margin-top:8px}
.lib-qa .dot{flex:none}
.lib-qa .mono{color:var(--text-tertiary)}
.lib-note{width:100%;margin-top:9px;font:400 var(--font-size-sm) var(--font-mono);padding:6px 9px}
.lib-actions{display:flex;align-items:center;gap:14px;margin-top:9px}
.lib-save-wrap{display:inline-flex}

/* --- stopka EKSPORT (przyklejona do dołu przy krótkiej treści) --- */
.lib-foot{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:auto;
  padding:16px 36px;border-top:1px solid var(--border);background:var(--surface-rail)}
.lib-foot-label{font:600 var(--font-size-xs) var(--font-ui);letter-spacing:.14em;color:var(--text-tertiary);text-transform:uppercase}
.lib-foot-hint{font:400 var(--font-size-xs) var(--font-mono);color:var(--text-tertiary)}
.lib-foot-note{font:400 var(--font-size-xs) var(--font-mono);color:var(--text-faint)}
