/* Extension Bibliothèque — cartes livres, rayonnages, stories (utilise les variables du thème NumeHash) */
.nb-card{--nb:#f59e0b;display:grid;grid-template-columns:150px 1fr;gap:16px;padding:14px;position:relative;overflow:hidden}
.nb-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--nb)}
.nb-vertical{grid-template-columns:1fr}.nb-vertical .nb-cover{max-width:220px;margin:0 auto}
.nb-compact{grid-template-columns:80px 1fr;gap:12px}.nb-compact .nb-desc{display:none}
.nb-mode-full{grid-template-columns:230px 1fr;padding:20px}.nb-mode-full .nb-title{font-size:24px}
.nb-cover{position:relative;display:block;aspect-ratio:2/3;border-radius:10px;overflow:hidden;background:var(--soft);box-shadow:0 10px 24px rgba(0,0,0,.35)}
.nb-cover-img{width:100%;height:100%;object-fit:cover;display:block}
.nb-ph{display:flex;align-items:flex-end;padding:12px;color:#fff;font-size:14px;line-height:1.25;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.nb-flag{position:absolute;top:8px;left:8px;background:var(--nb);color:#111;font-weight:800;font-size:11px;padding:2px 8px;border-radius:999px}
.nb-info{display:flex;flex-direction:column;gap:6px;min-width:0}
.nb-label{align-self:flex-start;background:color-mix(in srgb,var(--nb) 18%,transparent);color:var(--nb);font-weight:800;font-size:12px;padding:3px 10px;border-radius:999px}
.nb-title{margin:0;font-size:18px;line-height:1.25}.nb-title a{color:var(--text)}
.nb-authors{color:var(--muted);font-size:13.5px;display:flex;align-items:center;gap:6px}
.nb-meta{margin:2px 0}.nb-meta .chip{font-size:12px;padding:3px 9px}
.nb-desc{margin:2px 0;color:var(--text);opacity:.88;font-size:14px;overflow-wrap:anywhere}
.nb-stats{display:flex;flex-wrap:wrap;gap:12px;font-size:12.5px;color:var(--muted)}
.nb-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:6px}
.nb-ext{font-size:10.5px;background:rgba(255,255,255,.22);padding:1px 6px;border-radius:6px}
.nb-inject{margin-bottom:14px}.nb-inject>.nb-card{margin-bottom:0}
.nb-inject-head{display:flex;gap:8px;align-items:center;font-size:12.5px;font-weight:700;color:var(--muted);margin:0 4px 6px;text-transform:uppercase;letter-spacing:.04em}.nb-inject-head a{margin-left:auto;text-transform:none}
.nb-carousel{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,85%);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}.nb-carousel>.nb-card{scroll-snap-align:start;margin:0;grid-template-columns:110px 1fr}
.nb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.nb-grid .nb-card{margin:0}
.nb-row{margin:10px 0 18px}.nb-shelf{display:grid;grid-auto-flow:column;grid-auto-columns:132px;gap:14px;overflow-x:auto;padding:4px 2px 10px;scroll-snap-type:x mandatory}
.nb-mini{display:flex;flex-direction:column;gap:6px;color:var(--text)!important;text-decoration:none!important;scroll-snap-align:start}
.nb-mini .nb-cover-img,.nb-mini .nb-ph{aspect-ratio:2/3;width:132px;border-radius:10px;object-fit:cover;box-shadow:0 8px 18px rgba(0,0,0,.3)}
.nb-mini b{font-size:13px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.nb-mini span{font-size:12px;color:var(--muted)}
.nb-search{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.nb-search input{flex:1;min-width:180px}.nb-search select{width:auto}
.nb-thumb{width:42px;height:60px;border-radius:6px;object-fit:cover;flex:none;display:flex;font-size:8px;padding:4px}
.nb-story .ring{border-radius:14px!important;padding:3px}.nb-story .nb-ring-img,.nb-story .nb-ph{width:52px!important;height:70px!important;border-radius:11px;object-fit:cover;display:block;border:2px solid var(--card2);font-size:7px;padding:4px}
.nb-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.nb-sv .sv-frame{background:radial-gradient(circle at 50% 30%,color-mix(in srgb,var(--nb) 35%,#111),#050505)}
.nb-sv-cover{position:absolute;inset:70px 40px 150px;display:flex;align-items:center;justify-content:center}
.nb-sv-cover .nb-sv-img,.nb-sv-cover .nb-ph{max-height:100%;max-width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:12px;box-shadow:0 20px 50px rgba(0,0,0,.6);font-size:20px}
.nb-sv-cap{bottom:24px!important}.nb-sv-cap b{font-size:18px}
@media (max-width:820px){.nb-card,.nb-mode-full{grid-template-columns:96px 1fr;gap:12px}.nb-mode-full .nb-title{font-size:20px}.nb-grid{grid-template-columns:1fr}}
/* Catalogue : cartes plus compactes pour tenir à deux par ligne */
.nb-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.nb-mode-grid{grid-template-columns:96px 1fr;gap:12px;padding:12px}
.nb-mode-grid .nb-title{font-size:15.5px}
.nb-mode-grid .nb-meta .chip:not(:first-child){display:none}
.nb-mode-grid .nb-desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13px}
.nb-mode-grid .nb-stats{gap:8px;font-size:11.5px}
.nb-mode-grid .nb-actions{gap:6px}.nb-mode-grid .nb-actions .btn{padding:5px 10px;font-size:12.5px}
.nb-side{display:flex;gap:10px;align-items:center;padding:6px 4px;border-radius:9px;color:var(--text)!important;text-decoration:none!important}.nb-side:hover{background:var(--soft)}
.nb-side span{display:flex;flex-direction:column;min-width:0}.nb-side b{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nb-side small{color:var(--muted);font-size:11.5px}
.nb-empty{display:flex;gap:14px;align-items:center;flex-wrap:wrap;border:1px dashed var(--line)}
.nb-series{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--nb,#f59e0b)!important;background:color-mix(in srgb,var(--nb,#f59e0b) 14%,transparent);padding:2px 9px;border-radius:999px;margin-bottom:4px;text-decoration:none!important;max-width:100%;line-height:1.35}
.nb-mini-no{display:inline-block;font-size:11px;font-weight:700;color:var(--nb,#f59e0b);margin-top:4px}
.nb-series-nav .nb-shelf{margin-top:12px}.nb-current{outline:2px solid var(--nb,#f59e0b);outline-offset:3px;border-radius:10px}
.nb-series-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}.nb-series-grid .nb-mini{width:auto}
.nb-series-head{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.nb-series-covers{display:flex}.nb-series-covers .nb-cover-img{width:74px;height:108px;object-fit:cover;border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.35);margin-left:-26px;border:2px solid var(--card)}.nb-series-covers .nb-cover-img:first-child{margin-left:0}
.nb-side .nb-thumb{flex:none;overflow:hidden;font-size:0!important;color:transparent!important}
.nb-series-fs{border:1px solid color-mix(in srgb,var(--nb,#f59e0b) 55%,transparent)!important;background:color-mix(in srgb,var(--nb,#f59e0b) 7%,transparent)}

/* 1.2.3 : toutes les images mises en avant au même format (réglable : --nb-ratio, --nb-fit) */
.nb-cover{aspect-ratio:var(--nb-ratio,2/3)!important;align-self:start;height:auto!important;width:100%}
.nb-cover .nb-cover-img,.nb-cover .nb-ph{position:absolute;inset:0;width:100%!important;height:100%!important;aspect-ratio:auto!important;object-fit:var(--nb-fit,cover)}
.nb-cover-img,.nb-thumb,.nb-ring-img,.nb-sv-img{object-fit:var(--nb-fit,cover)!important;background:color-mix(in srgb,var(--text) 6%,transparent)}
.nb-mini .nb-cover-img,.nb-mini .nb-ph{width:132px!important;height:auto!important;aspect-ratio:var(--nb-ratio,2/3)!important;flex:none}
.nb-series-grid .nb-mini .nb-cover-img,.nb-series-grid .nb-mini .nb-ph{width:100%!important}
.nb-thumb{width:42px!important;height:auto!important;aspect-ratio:var(--nb-ratio,2/3)!important;padding:0}
.nb-story .nb-ring-img,.nb-story .nb-ph{width:52px!important;height:auto!important;aspect-ratio:var(--nb-ratio,2/3)!important}
.nb-series-covers .nb-cover-img{width:72px!important;height:auto!important;aspect-ratio:var(--nb-ratio,2/3)!important}
.nb-sv-cover .nb-sv-img,.nb-sv-cover .nb-ph{height:100%!important;width:auto!important;max-width:100%;aspect-ratio:var(--nb-ratio,2/3)!important}

/* 1.3.0 : rangées avec icônes au survol (quitter, télécharger, partager) */
.nb-tile{width:132px;flex:none;display:flex;flex-direction:column;gap:6px;scroll-snap-align:start;transition:opacity .22s,transform .22s}
.nb-tile-media{position:relative;width:132px;aspect-ratio:var(--nb-ratio,2/3);border-radius:10px;overflow:visible;box-shadow:0 8px 18px rgba(0,0,0,.3)}
.nb-tile-link{position:absolute;inset:0;border-radius:10px;overflow:hidden;display:block}
.nb-tile-link .nb-cover-img,.nb-tile-link .nb-ph{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:var(--nb-fit,cover);border-radius:10px}
.nb-ov{position:absolute;inset:0;border-radius:10px;opacity:0;pointer-events:none;transition:opacity .18s;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.05) 40%,rgba(0,0,0,.25))}
.nb-tile:hover .nb-ov,.nb-tile:focus-within .nb-ov,.nb-tile.nb-touch .nb-ov{opacity:1;pointer-events:auto}
.nb-ov-btn{display:grid;place-items:center;width:44px;height:44px;border-radius:8px;background:rgba(255,255,255,.94);color:#111!important;border:0;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.35);padding:0;list-style:none;transition:transform .12s}
.nb-ov-btn:hover{transform:scale(1.08)}
.nb-ov-btn svg{width:26px;height:26px}
.nb-ov-x{position:absolute;top:6px;right:6px;width:34px;height:34px}.nb-ov-x svg{width:22px;height:22px;stroke-width:3}
.nb-ov-dl{position:absolute;left:12px;top:50%;transform:translateY(-50%)}.nb-ov-dl:hover{transform:translateY(-50%) scale(1.08)}
.nb-ov-share{position:absolute;left:calc(50% + 6px);top:calc(50% - 22px)}
.nb-ov-share>summary{list-style:none;cursor:pointer}.nb-ov-share>summary::-webkit-details-marker{display:none}
.nb-share-pop{min-width:200px;max-height:330px;overflow:auto;z-index:40}
.nb-ov-share .nb-share-pop{position:fixed!important;z-index:300;display:grid;grid-template-columns:1fr 1fr;gap:2px;width:320px!important;min-width:0;right:auto!important;bottom:auto!important;max-height:none;margin:0}
.nb-share-pop a{display:flex;align-items:center;gap:9px}.nb-share-pop i{width:10px;height:10px;border-radius:50%;flex:none}
.nb-tile-text{display:flex;flex-direction:column;gap:2px;color:var(--text)!important;text-decoration:none!important}
.nb-tile-text b{font-size:13px;line-height:1.3;max-height:2.6em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.nb-tile-text span{font-size:12px;color:var(--muted)}
.nb-leaving{opacity:0;transform:scale(.9)}.nb-entering{opacity:0;transform:translateY(8px)}
.nb-row .nb-shelf{overflow-y:visible}
@media (hover:none){.nb-ov{opacity:.001}.nb-tile.nb-touch .nb-ov{opacity:1}}
.nb-toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:#111;color:#fff;padding:9px 16px;border-radius:999px;z-index:200;font-size:13.5px;box-shadow:0 6px 20px rgba(0,0,0,.4)}
