.lib{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;max-width:640px;margin:0 auto}.lib-top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px}.lib-count{margin:0;min-width:0;font-size:13px;color:var(--muted,#9a96a8)}.lib-count b{color:var(--bone,#f4efe6);font-weight:700}.lib-reset{margin-left:6px;padding:0;border:0;background:none;color:var(--coral,#ff7a6b);font:600 13px var(--body,system-ui);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.lib-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.lib-iconbtn,.lib-filterbtn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;border-radius:999px;border:1px solid var(--line,rgba(255,255,255,.12));background:var(--surface,rgba(255,255,255,.05));color:var(--bone,#f4efe6);font:600 13px var(--body,system-ui);cursor:pointer;transition:background .18s,border-color .18s,transform .14s cubic-bezier(.2,.8,.2,1)}.lib-iconbtn{width:38px;padding:0}.lib-filterbtn{padding:0 15px 0 12px}.lib-iconbtn svg,.lib-filterbtn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.lib-iconbtn[aria-pressed=true]{background:var(--chip,rgba(255,255,255,.14))}.lib-iconbtn:active,.lib-filterbtn:active{transform:scale(.96)}.lib-iconbtn:focus-visible,.lib-filterbtn:focus-visible{outline:2px solid var(--coral,#ff7a6b);outline-offset:2px}.lib-badge{min-width:18px;height:18px;padding:0 5px;border-radius:999px;box-sizing:border-box;background:var(--coral,#ff7a6b);color:var(--on-accent,#fff);font:700 11px/18px var(--body,system-ui);font-style:normal;text-align:center}.lib-badge[hidden]{display:none}.lib-searchrow{position:relative;display:flex;align-items:center}.lib-searchrow[hidden]{display:none}.lib-q{width:100%;box-sizing:border-box;padding:12px 42px 12px 16px;border-radius:14px;border:1px solid var(--line,rgba(255,255,255,.12));background:var(--surface,rgba(255,255,255,.05));color:var(--bone,inherit);font:500 14px var(--body,system-ui)}.lib-q::placeholder{color:var(--muted,#9a96a8)}.lib-q:focus-visible{outline:2px solid var(--coral,#ff7a6b);outline-offset:1px}.lib-q::-webkit-search-cancel-button{display:none}.lib-qx{position:absolute;right:6px;width:32px;height:32px;border:0;border-radius:50%;background:none;color:var(--muted,#9a96a8);font-size:20px;line-height:1;cursor:pointer}.lib-qx[hidden]{display:none}.lib-grid,.lib-list{list-style:none;margin:0;padding:0}.lib-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 8px}@media(min-width:560px){.lib-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(min-width:760px){.lib-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.lib-grid li,.lib-list li{min-width:0}.lib-item{display:block;color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}.lib-cover{position:relative;display:block;aspect-ratio:1;border-radius:6px;box-shadow:0 5px 12px -6px #000000a6,inset 0 0 0 1px #ffffff1a;transition:transform .16s cubic-bezier(.2,.8,.2,1)}a.lib-item:active .lib-cover{transform:scale(.96)}a.lib-item:focus-visible{outline:2px solid var(--coral,#ff7a6b);outline-offset:3px;border-radius:8px}.lib-heart,.lib-respin{position:absolute;bottom:4px;padding:2px 4px;border-radius:999px;font:700 9px/1 var(--body,system-ui);font-style:normal;background:#0a0812b8;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.lib-heart{left:4px;color:#ff6f8f}.lib-respin{right:4px}.lib-grid .lib-rate{display:block;margin-top:6px;text-align:center}.lib-list{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.lib-list .lib-item{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:14px;background:var(--surface,rgba(255,255,255,.05));border:1px solid var(--line,rgba(255,255,255,.08))}.lib-list .lib-cover{flex:0 0 auto;width:54px}.lib-list .lib-heart,.lib-list .lib-respin{display:none}.lib-tx{flex:1;min-width:0;display:block}.lib-tx b,.lib-tx small,.lib-tx em{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib-tx b{font:600 14px var(--body,system-ui);color:var(--bone,#f4efe6)}.lib-tx small{margin-top:1px;font-size:12px;color:var(--muted,#9a96a8)}.lib-tx em{margin-top:2px;font-style:normal;font-size:11px;color:var(--muted,#9a96a8);opacity:.8}.lib-list .lib-rate{flex:0 0 auto;display:grid;justify-items:end;gap:3px}.lib-list .lib-rate b{font:700 12px var(--body,system-ui);color:var(--bone,#f4efe6)}.lib-empty{padding:40px 16px;text-align:center;border-radius:16px;border:1px dashed var(--line,rgba(255,255,255,.14))}.lib-empty b{display:block;font:700 15px var(--display,system-ui);color:var(--bone,#f4efe6)}.lib-empty p{margin:6px 0 0;font-size:13px;color:var(--muted,#9a96a8)}.lib-empty .lib-reset{display:inline-block;margin:12px 0 0;padding:8px 16px;border-radius:999px;border:1px solid var(--coral,#ff7a6b);text-decoration:none}.lib-sheet{position:fixed;inset:auto 0 0;margin:0 auto;width:min(520px,100%);max-height:86dvh;padding:0;overflow:hidden;border:1px solid var(--line,rgba(255,255,255,.12));border-bottom:0;border-radius:24px 24px 0 0;background:var(--ink,#18161f);color:var(--bone,#f4efe6);box-shadow:0 -20px 80px #0006}.lib-sheet::backdrop{background:#10101880;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.lib-sheet[open]{display:flex;flex-direction:column}.lib-sheet header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 6px}.lib-sheet h2{margin:0;font:700 19px var(--display,system-ui)}.lib-sheet header button{width:40px;height:40px;border:0;border-radius:50%;background:var(--surface,rgba(255,255,255,.08));color:var(--bone,#fff);font-size:22px;cursor:pointer}.lib-sheet-body{overflow-y:auto;padding:0 20px 8px;overscroll-behavior:contain}.lib-sheet h3{margin:18px 0 9px;font:700 11px/1.2 var(--body,system-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--muted,#9a96a8)}.lib-opts{display:flex;flex-wrap:wrap;gap:8px}.lib-opts button{padding:8px 14px;border-radius:999px;border:1px solid var(--line,rgba(255,255,255,.12));background:var(--surface,rgba(255,255,255,.05));color:var(--muted,#b9b5c6);font:600 13px var(--body,system-ui);cursor:pointer;transition:background .16s,color .16s,border-color .16s}.lib-opts button[aria-pressed=true],.lib-opts button[aria-checked=true]{background:var(--coral,#ff7a6b);border-color:var(--coral,#ff7a6b);color:var(--on-accent,#fff)}.lib-sels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:6px}.lib-sel{display:block;min-width:0}.lib-sel span{display:block;margin:12px 0 7px;font:700 11px/1.2 var(--body,system-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--muted,#9a96a8)}.lib-sheet select{width:100%;appearance:none;-webkit-appearance:none;padding:10px 30px 10px 12px;border-radius:12px;border:1px solid var(--line,rgba(255,255,255,.12));background:var(--surface,rgba(255,255,255,.05)) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%239a96a8' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 11px center/10px;color:var(--bone,inherit);font:600 13px var(--body,system-ui)}.lib-sheet footer{display:flex;gap:10px;padding:14px 20px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--line,rgba(255,255,255,.1))}.lib-ghost{flex:0 0 auto;padding:12px 18px;border-radius:14px;border:1px solid var(--line,rgba(255,255,255,.14));background:none;color:var(--bone,#f4efe6);font:600 14px var(--body,system-ui);cursor:pointer}.lib-ghost[disabled]{opacity:.4;cursor:default}.lib-primary{flex:1;padding:12px 18px;border-radius:14px;border:0;background:var(--coral,#ff7a6b);color:var(--on-accent,#fff);font:700 14px var(--body,system-ui);cursor:pointer}.lib-sheet button:focus-visible,.lib-sheet select:focus-visible{outline:2px solid var(--coral,#ff7a6b);outline-offset:2px}@media(prefers-reduced-motion:reduce){.lib-cover,.lib-opts button,.lib-iconbtn,.lib-filterbtn{transition:none}}.cp-list{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-top:12px}.cp-row{display:flex;align-items:center;gap:14px;width:100%;box-sizing:border-box;padding:10px 14px 10px 10px;border-radius:18px;border:1px solid var(--line,rgba(255,255,255,.1));background:var(--surface,rgba(255,255,255,.05));color:inherit;text-align:left;font:inherit;transition:transform .14s cubic-bezier(.2,.8,.2,1),background .18s}button.cp-row{cursor:pointer;-webkit-tap-highlight-color:transparent}button.cp-row:active{transform:scale(.985)}button.cp-row:focus-visible{outline:2px solid var(--coral,#ff7a6b);outline-offset:2px}.cp-art{flex:0 0 auto;display:grid;place-items:end center;width:68px;height:64px}.cp-tx{flex:1;min-width:0;display:grid;gap:5px}.cp-tx b{font:700 15px var(--display,system-ui);color:var(--bone,#f4efe6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cp-tx small{font:500 12px var(--body,system-ui);color:var(--muted,#9a96a8)}.cp-tags{display:flex;flex-wrap:wrap;gap:6px}.cp-kind,.cp-saved{display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 7px;border-radius:999px;font:700 11px/1.3 var(--body,system-ui);font-style:normal;letter-spacing:.02em;background:var(--chip,rgba(255,255,255,.08));color:var(--bone,#f4efe6)}.cp-kind:before{content:"";width:9px;height:9px;flex:0 0 auto;background:currentColor;opacity:.85}.cp-kind[data-kind=albums]:before{border-radius:2px}.cp-kind[data-kind=songs]:before{border-radius:50%}.cp-kind[data-kind=mixed]:before{border-radius:50% 2px 2px 50%}.cp-saved{padding:3px 9px;background:transparent;border:1px solid var(--line,rgba(255,255,255,.18));color:var(--muted,#b9b5c6)}.cp-go{flex:0 0 auto;color:var(--muted,#9a96a8);font-size:18px}@media(prefers-reduced-motion:reduce){.cp-row{transition:none}}
