.lib-main{max-width:980px;margin:0 auto;padding:0 24px 80px}

.lib-hero{padding:56px 0 28px;border-bottom:1px solid var(--line)}
.lib-hero .eyebrow{font-family:var(--ui);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--saffron-deep);font-weight:600;margin-bottom:10px}
.lib-hero h1{font-family:var(--display);font-size:2.6rem;margin:0 0 14px;color:var(--ink)}
.lib-deck{font-family:var(--body);font-size:1.08rem;line-height:1.6;color:#4a4652;max-width:64ch}

.lib-upload{margin:32px 0}
.lib-drop{
  border:2px dashed var(--gold);border-radius:16px;background:var(--paper);
  padding:40px 24px;text-align:center;cursor:pointer;transition:background .15s,border-color .15s;
}
.lib-drop:hover,.lib-drop:focus-visible,.lib-drop.is-dragover{background:var(--parchment-2);border-color:var(--saffron)}
.lib-drop-icon{width:44px;height:44px;color:var(--saffron-deep);margin-bottom:10px}
.lib-drop p{margin:4px 0;font-family:var(--body)}
.lib-drop-note{font-family:var(--ui);font-size:.82rem;color:#7a7482}
.lib-status{min-height:1.4em;text-align:center;font-family:var(--ui);font-size:.9rem;color:var(--teal);margin-top:10px}
.lib-status.is-error{color:var(--sindoor)}

.lib-shelf-wrap{margin-top:20px}
.lib-shelf-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}
.lib-shelf-head h2{font-family:var(--display);font-size:1.5rem;margin:0;color:var(--ink)}
.lib-count{font-family:var(--ui);font-size:.85rem;color:#7a7482}

.lib-shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
.lib-empty{grid-column:1/-1;font-family:var(--body);color:#7a7482;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:22px;text-align:center}

.lib-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:6px;position:relative}
.lib-card-badge{position:absolute;top:12px;right:12px;font-family:var(--ui);font-size:.68rem;font-weight:700;letter-spacing:.04em;color:var(--saffron-deep);background:rgba(224,138,44,.12);padding:2px 8px;border-radius:999px}
.lib-card-title{font-family:var(--display);font-size:1.1rem;margin:2px 26px 0 0;color:var(--ink);line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.lib-card-meta{font-family:var(--ui);font-size:.78rem;color:#8b8592;margin:0}
.lib-card-actions{display:flex;gap:8px;margin-top:auto;padding-top:10px;flex-wrap:wrap}
.lib-btn{font-family:var(--ui);font-size:.78rem;font-weight:600;border-radius:8px;padding:6px 10px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}
.lib-btn:hover{border-color:var(--saffron)}
.lib-btn-open{background:var(--saffron);color:var(--ink);border-color:var(--saffron)}
.lib-btn-open:hover{background:#f0a24f}
.lib-btn-remove:hover{color:var(--sindoor);border-color:var(--sindoor)}

.lib-note{margin-top:36px;padding:16px 18px;border-left:4px solid var(--gold);background:rgba(176,141,62,.08);font-family:var(--body);font-size:.92rem;color:#4a4652;border-radius:0 8px 8px 0}

.lib-reader{position:fixed;inset:0;background:var(--ink);z-index:80;display:none;flex-direction:column}
.lib-reader:not([hidden]){display:flex}
.lib-reader-bar{display:flex;align-items:center;gap:16px;padding:12px 18px;background:var(--ink-soft);color:var(--parchment)}
.lib-reader-close{font-family:var(--ui);font-weight:600;background:none;border:1px solid rgba(246,239,226,.3);color:var(--parchment);border-radius:8px;padding:6px 12px;cursor:pointer}
.lib-reader-close:hover{border-color:var(--saffron);color:var(--saffron)}
#lib-reader-title{font-family:var(--display);font-size:1.05rem}
.lib-reader-frame,#lib-reader-frame{flex:1;border:0;width:100%;background:#fff}

@media(max-width:640px){
  .lib-hero h1{font-size:2.1rem}
  .lib-shelf{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
}

/* ---------- Notable Books shelf ---------- */
.lib-notable-wrap{margin-top:36px}
.lib-notable-shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:18px}
.lib-notable-card{
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;
  background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px 12px 14px;
  text-decoration:none;color:var(--ink);
}
a.lib-notable-card.is-live{transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
a.lib-notable-card.is-live:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(27,26,46,.12);border-color:var(--saffron)}
.lib-notable-card.is-soon{opacity:.6;cursor:default}
.lib-notable-cover{width:82px;height:112px;display:flex;align-items:center;justify-content:center;margin-bottom:6px;border-radius:6px;overflow:hidden;background:var(--parchment-2);box-shadow:0 6px 16px rgba(27,26,46,.15)}
.lib-notable-cover img{width:100%;height:100%;object-fit:cover;display:block}
.lib-notable-icon svg{width:34px;height:34px;color:#a49da8}
.lib-notable-title{font-family:var(--display);font-size:.98rem;font-weight:600;line-height:1.25;color:var(--ink)}
.lib-notable-author{font-family:var(--ui);font-size:.74rem;color:#8b8592}
.lib-notable-badge{font-family:var(--ui);font-size:.7rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#8b8592;margin-top:4px}
.lib-notable-badge.is-read{color:var(--saffron-deep)}
.lib-notable-note{margin-top:14px;font-family:var(--ui);font-size:.8rem;color:#8b8592}

@media(max-width:640px){
  .lib-notable-shelf{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:12px}
  .lib-notable-cover{width:64px;height:88px}
}
