/* JVG Audiobook Platform — Phase 1, Commit 2: Library Experience */
.library-tools-pro{align-items:stretch;flex-direction:column;min-width:min(100%,520px)}
.library-tools-pro .search-box{width:100%;min-width:0}.search-box input{padding-right:3rem}.search-box button{position:absolute;right:.65rem;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;background:transparent;color:#7f899b;cursor:pointer;opacity:0;pointer-events:none}.search-box.has-value button{opacity:1;pointer-events:auto}.search-box button:hover{color:var(--book-cyan)}
.chapter-filter{display:flex;gap:.45rem;flex-wrap:wrap}.filter-chip{min-height:36px;padding:.55rem .78rem;border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.025);color:#9ea7b8;font:700 .65rem Orbitron,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.filter-chip:hover,.filter-chip.active{border-color:rgba(0,201,133,.55);background:rgba(0,201,133,.11);color:#fff}.result-count{align-self:flex-end;color:#858fa1;font-size:.76rem;letter-spacing:.06em}
.library-dashboard{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem;margin:1.15rem 0 1.5rem}.library-stat{display:flex;align-items:center;gap:.85rem;min-height:92px;padding:1rem;border:1px solid rgba(53,217,255,.16);background:linear-gradient(145deg,rgba(9,14,25,.96),rgba(8,9,18,.88));box-shadow:inset 0 1px rgba(255,255,255,.025)}.library-stat>i{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border:1px solid rgba(0,201,133,.3);color:var(--book-jade);background:rgba(0,201,133,.06)}.library-stat strong{display:block;font:700 clamp(.88rem,1.2vw,1.05rem) Orbitron,sans-serif;color:#f5f8fc;white-space:nowrap}.library-stat span{display:block;margin-top:.28rem;color:#7f899b;font-size:.65rem;letter-spacing:.09em;text-transform:uppercase}.progress-stat{grid-column:span 1}.stat-progress-bar{height:3px;margin-top:.55rem;background:rgba(255,255,255,.08);overflow:hidden}.stat-progress-bar span{height:100%;width:0;margin:0;background:linear-gradient(90deg,var(--book-jade),var(--book-violet));transition:width .3s ease}
.timeline-list{position:relative;padding-left:32px}.timeline-list:before{content:"";position:absolute;left:12px;top:28px;bottom:28px;width:1px;background:linear-gradient(180deg,rgba(0,201,133,.6),rgba(53,217,255,.18),rgba(155,92,255,.35))}.timeline-list .chapter-card{position:relative}.timeline-marker{position:absolute;left:-33px;top:0;bottom:0;width:28px;display:flex;align-items:center;justify-content:center}.timeline-dot{position:relative;z-index:2;width:12px;height:12px;border:2px solid #273244;border-radius:50%;background:#080c14;box-shadow:0 0 0 5px #060810;transition:.22s}.chapter-card:hover .timeline-dot{border-color:var(--book-cyan)}.chapter-card.playing .timeline-dot{border-color:var(--book-jade);background:var(--book-jade);box-shadow:0 0 0 5px #060810,0 0 20px rgba(0,201,133,.65)}
.chapter-card.search-match{border-color:rgba(53,217,255,.42);box-shadow:0 10px 34px rgba(53,217,255,.06)}mark.search-highlight{padding:0 .08em;background:rgba(53,217,255,.2);color:#fff;border-bottom:1px solid var(--book-cyan)}
.metadata-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.metadata-card{position:relative;overflow:hidden}.metadata-card:after{content:"";position:absolute;right:-24px;bottom:-24px;width:72px;height:72px;border:1px solid rgba(155,92,255,.12);transform:rotate(45deg)}.metadata-card:hover{border-color:rgba(0,201,133,.42);transform:translateY(-2px)}
@media(max-width:1180px){.library-dashboard{grid-template-columns:repeat(3,1fr)}.metadata-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.library-top{align-items:stretch}.library-tools-pro{min-width:0}.result-count{align-self:flex-start}.library-dashboard{grid-template-columns:repeat(2,1fr)}.metadata-grid{grid-template-columns:repeat(2,1fr)}.timeline-list{padding-left:24px}.timeline-list:before{left:8px}.timeline-marker{left:-25px;width:20px}}
@media(max-width:480px){.library-dashboard,.metadata-grid{grid-template-columns:1fr}.library-stat{min-height:76px}.chapter-filter{display:grid;grid-template-columns:repeat(3,1fr)}.filter-chip{padding:.5rem .3rem}.timeline-list{padding-left:20px}.timeline-marker{left:-21px}.timeline-list:before{left:6px}}
