.library-page { max-width:1280px; width:100%; margin:0 auto; }
.library-heading,.library-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.library-heading { margin:12px 0 24px; }
.library-heading h2 { font-size:24px; }
.library-filters { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin:16px 0; }
.library-filters .library-field { flex:1 1 130px; margin:0; }
.library-field { display:grid; gap:7px; margin-bottom:16px; font-weight:600; min-width:0; }
.library-field input,.library-field select,.library-field textarea { min-width:0; width:100%; padding:10px; min-height:42px; background:#fff; border:1px solid var(--border-medium); border-radius:8px; font-weight:400; }
.library-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:18px; margin:18px 0; }
.library-card { display:flex; flex-direction:column; gap:8px; border:1px solid var(--border-medium); border-radius:12px; background:#fff; padding:14px; min-width:0; overflow-wrap:anywhere; text-align:left; }
.library-card h3 { font-size:16px; }
.library-card .provider-note { margin:0; }
.library-preview { display:block; width:100%; height:156px; object-fit:contain; border-radius:8px; background:#f4f1ed; }
.library-file { display:grid; place-items:center; color:var(--text-muted); font-weight:700; }
.library-card .library-actions { margin-top:auto; padding-top:12px; justify-content:flex-start; gap:6px; }
.library-card .library-actions button { font-size:12px; padding:7px 9px; }
.library-dialog { width:min(880px,94vw); }
.library-dialog .dialog-shell { display:flex; flex-direction:column; max-height:88dvh; overflow:hidden; }
.library-dialog-body { padding:4px 24px 24px; min-height:0; flex:1; overflow:auto; }
.library-dialog .dialog-header { padding-bottom:16px; }
.library-dialog .dialog-header > div { flex:1; min-width:0; }
.library-dialog .dialog-header > button { flex-shrink:0; white-space:nowrap; align-self:flex-start; }
.library-dialog-body .form-error { margin:12px 0; }
.library-rights { display:flex; align-items:flex-start; gap:10px; line-height:1.6; margin:18px 0; }
.library-rights input { flex-shrink:0; margin-top:5px; width:18px; height:18px; }
.library-version { display:grid; grid-template-columns:110px 1fr; gap:10px; margin:16px 0; padding:14px; background:#fff; border:1px solid var(--border-medium); border-radius:10px; }
.library-version .library-preview { height:100px; grid-row:span 3; }
.library-version audio { width:100%; min-width:0; }
.library-version a { justify-self:start; }
.library-pick-card.is-selected { border-color:var(--coral); background:var(--coral-light); box-shadow:0 0 0 2px var(--coral); }
.library-pick-card.is-selected strong::before { content:'✓ '; }
.library-pick-grid { grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); max-height:36vh; overflow-y:auto; padding:3px; }
.library-picker-footer { display:flex; justify-content:flex-end; gap:12px; padding:12px 0; position:sticky; bottom:-24px; background:#fff; border-top:1px solid var(--border-light); }
.library-chips { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0; }
.library-chip { display:flex; align-items:center; gap:8px; padding:7px 10px; border:1px solid var(--border-medium); border-radius:8px; background:#fff; overflow-wrap:anywhere; max-width:100%; }
.library-chip span { min-width:0; }
.library-chip button { flex-shrink:0; font-size:11px; }
.library-create-picker { padding:12px; border:1px dashed var(--border-medium); border-radius:10px; }
.library-page :focus-visible,.library-dialog :focus-visible { outline:2px solid var(--coral); outline-offset:3px; }
@media(max-width:700px) {
  .top-nav .top-nav-item { flex:none; white-space:nowrap; }
  .library-dialog-body { padding:4px 14px 18px; }
  .library-picker-footer { bottom:-18px; }
  .library-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .library-preview { height:120px; }
  .library-card { padding:10px; }
  .library-pick-grid { max-height:34vh; }
  .library-version { grid-template-columns:80px minmax(0,1fr); }
  .library-chip { flex-wrap:wrap; }
}
