/* Bibliothèque Copilot · catalogue, item pages, member area, Club (on top of glass.css tokens) */
.lib{width:min(1160px,calc(100% - 32px));margin:0 auto;padding:clamp(2rem,5vw,3.5rem) 0 3rem;display:flex;flex-direction:column;gap:clamp(1.5rem,3vw,2.25rem)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pill.current{background:#fff;border-color:rgba(24,86,255,0.35);color:var(--primary)}
.pill-cta{background:var(--primary);color:#fff;border-color:transparent}
.pill-cta:hover{background:var(--primary-600)}
.pill-me{padding-left:4px}
.avatar-xs{width:28px;height:28px;border-radius:50%;background:var(--grad-copilot);color:#fff;display:grid;place-items:center;font-size:0.78rem;font-weight:800}
@media (max-width:560px){.hide-sm{display:none}.pill{padding:0 0.7rem}.pill-me{padding-left:4px;padding-right:4px}}

/* hero */
.lib-hero{display:flex;flex-direction:column;gap:1rem;max-width:760px}
.lib-hero.center{align-items:center;text-align:center;margin:0 auto}
.lib-hero h1,.item-head h1,.me-head h1,.auth h1,.doc h1{font-size:clamp(2rem,1.4rem + 3vw,3.4rem);line-height:1.08;letter-spacing:-0.03em;font-weight:800}
.lib-hero .lead,.item-head .lead{font-size:clamp(1rem,0.95rem + 0.3vw,1.15rem);color:var(--muted);max-width:62ch}
.lib-stats{display:flex;gap:clamp(1rem,4vw,2.5rem);margin-top:0.5rem}
.lib-stats div{display:flex;flex-direction:column}
.lib-stats b{font-size:clamp(1.8rem,1.4rem + 2vw,2.6rem);font-weight:800;letter-spacing:-0.03em;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.1}
.lib-stats span{font-size:0.8rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.08em}
.hero-cta{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:0.5rem}
.hero-cta span{font-size:0.85rem;color:var(--muted);font-weight:600}

/* search + filters */
.lib-tools{position:sticky;top:80px;z-index:20;padding:12px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.lib-tools .search{flex:1 1 280px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip-f{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 0.85rem;border-radius:999px;font-size:0.8rem;font-weight:700;background:rgba(255,255,255,0.7);border:1px solid rgba(20,20,20,0.1);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.chip-f img{width:18px;height:18px}
.chip-f:hover{background:#fff}
.chip-f.on,.chip-f[aria-pressed=true]{background:rgba(24,86,255,0.1);border-color:rgba(24,86,255,0.4);color:var(--primary)}
@media (max-width:720px){.lib-tools{position:static}.chip-f.app{width:36px;padding:0;justify-content:center;font-size:0}.chip-f.app img{width:20px;height:20px}}

/* cards */
.lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.1rem}
.lcard{display:flex;flex-direction:column;gap:0.6rem;padding:1.25rem;min-height:220px;transition:transform .35s var(--ease),box-shadow .35s}
.lcard:hover{transform:translateY(-4px);box-shadow:inset 0 1px 0 rgba(255,255,255,0.95),0 24px 48px -18px rgba(20,40,130,0.32)}
.lcard h3{font-size:1.1rem;font-weight:800;line-height:1.3;letter-spacing:-0.01em}
.lcard p{font-size:0.9rem;color:var(--muted);flex:1}
.lcard-top{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ltype{font-size:0.68rem;font-weight:800;text-transform:uppercase;letter-spacing:0.1em;color:var(--secondary)}
.lnew{font-size:0.68rem;font-weight:800;padding:0.15rem 0.5rem;border-radius:999px;background:var(--grad-copilot);color:#fff}
.acc{margin-left:auto;font-size:0.72rem;font-weight:800;padding:0.2rem 0.6rem;border-radius:999px;white-space:nowrap}
.lcard-top .acc~.acc{margin-left:0}
.acc-free{background:rgba(7,202,107,0.12);color:var(--success-ink)}
.acc-member{background:rgba(24,86,255,0.1);color:var(--primary)}
.acc-premium{background:linear-gradient(100deg,rgba(139,92,246,0.16),rgba(240,80,154,0.16));color:#7a2fd0}
.acc-ok{background:rgba(7,202,107,0.12);color:var(--success-ink)}
.lcard-foot{display:flex;justify-content:space-between;align-items:center;gap:0.5rem;padding-top:0.6rem;border-top:1px solid rgba(20,20,20,0.06)}
.apps{display:flex;gap:4px;align-items:center}
.apps img{width:20px;height:20px}
.lmeta{font-size:0.78rem;font-weight:700;color:var(--muted-2)}
.lmeta b{color:var(--success-ink)}
.lempty{text-align:center;color:var(--muted);font-weight:600;padding:2rem 0}
.lempty a{color:var(--primary)}
.home-lib{margin-top:0.25rem}
.js .lcard.reveal.d1{transition-delay:.06s}.js .lcard.reveal.d2{transition-delay:.12s}

/* item page */
.crumbs{display:flex;flex-wrap:wrap;gap:0.4rem;font-size:0.82rem;font-weight:600;color:var(--muted-2)}
.crumbs a:hover{color:var(--primary)}
.item{display:flex;flex-direction:column;gap:1.5rem}
.item-head{padding:clamp(1.25rem,3vw,2rem);display:flex;flex-direction:column;gap:0.9rem}
.item-head h1{font-size:clamp(1.8rem,1.3rem + 2.4vw,2.8rem)}
.item-meta{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;font-size:0.85rem;font-weight:700;color:var(--muted)}
.item-meta .apps img{width:24px;height:24px}
.item-actions{display:flex;flex-wrap:wrap;gap:0.6rem}
.btn.disabled{opacity:0.6;cursor:not-allowed}
.btn[aria-pressed=true]{color:var(--primary);border-color:rgba(24,86,255,0.35)}
.item-intro{max-width:70ch;color:var(--muted);font-size:1rem}
.item-intro p+p,.item-intro ul{margin-top:0.6rem}
.item-intro ul{padding-left:1.2rem}
.video{display:flex;align-items:center;gap:1rem;padding:10px;max-width:520px;transition:transform .3s var(--ease)}
.video:hover{transform:translateY(-2px)}
.video img{width:160px;aspect-ratio:16/9;object-fit:cover;border-radius:12px}
.video span{display:flex;flex-direction:column;font-size:0.85rem;color:var(--muted);font-weight:600}
.video b{font-size:1rem;color:var(--text)}
.vlogo{width:56px;height:56px;border-radius:14px;background:var(--dark);color:#fff;display:grid!important;place-items:center;font-size:1.2rem}
.psec h2{display:flex;align-items:center;gap:0.6rem;font-size:1.35rem;font-weight:800;letter-spacing:-0.02em;margin-bottom:0.9rem}
.psec h2 img{width:28px;height:28px}
.plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem}
@media (max-width:420px){.plist{grid-template-columns:1fr}}
.prompt{padding:1.1rem 1.1rem 0.9rem;display:flex;flex-direction:column;gap:0.6rem}
.prompt header{display:flex;flex-direction:column;gap:0.2rem}
.prompt h3{font-size:1rem;font-weight:800;line-height:1.35}
.when{font-size:0.78rem;font-weight:700;color:var(--primary)}
.ptext{font-family:var(--font);white-space:pre-wrap;word-break:break-word;font-size:0.9rem;line-height:1.6;background:rgba(255,255,255,0.75);border:1px solid rgba(20,20,20,0.06);border-radius:12px;padding:0.8rem 0.9rem;flex:1}
.copy{align-self:flex-end;height:34px;padding:0 0.9rem;border-radius:999px;border:1px solid rgba(24,86,255,0.25);background:rgba(24,86,255,0.08);color:var(--primary);font-weight:800;font-size:0.8rem;cursor:pointer;transition:background .2s,color .2s}
.copy:hover{background:var(--primary);color:#fff}
.copy.done{background:var(--success);border-color:transparent;color:#fff}

/* locked content + unlock */
.locked{position:relative;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;-webkit-mask-image:linear-gradient(#000 20%,transparent);mask-image:linear-gradient(#000 20%,transparent);user-select:none}
.ghost{height:170px;padding:1.1rem;display:flex;flex-direction:column;gap:0.7rem;filter:blur(1.5px)}
.ghost i{display:block;height:12px;border-radius:6px;background:rgba(20,20,20,0.09)}
.ghost i:nth-child(1){width:60%;height:16px}.ghost i:nth-child(2){width:95%}.ghost i:nth-child(3){width:80%}
.locked .more{position:absolute;left:50%;top:30%;translate:-50% 0;font-weight:800;font-size:1.05rem;color:var(--secondary);background:rgba(255,255,255,0.9);padding:0.4rem 1rem;border-radius:999px}
.unlock{margin-top:-4.5rem;padding:clamp(1.25rem,4vw,2.25rem);max-width:720px;width:100%;align-self:center;display:flex;flex-direction:column;gap:0.8rem;text-align:left}
.unlock h2{font-size:clamp(1.4rem,1.2rem + 1vw,1.9rem);font-weight:800;letter-spacing:-0.02em}
.unlock p{color:var(--muted)}
.lock-ico{font-size:1.8rem}
.soon{font-weight:700}
.buy-row{display:flex;flex-wrap:wrap;gap:0.6rem}
.fine{font-size:0.8rem;color:var(--muted-2)}
.fine a{color:var(--primary);font-weight:700}

/* forms */
.signup{display:flex;flex-direction:column;gap:0.7rem}
.row2{display:grid;grid-template-columns:1fr 1.4fr;gap:0.6rem}
@media (max-width:520px){.row2{grid-template-columns:1fr}}
.check{display:flex;gap:0.6rem;align-items:flex-start;font-size:0.84rem;color:var(--muted);line-height:1.5;cursor:pointer}
.check input{width:18px;height:18px;margin-top:2px;flex-shrink:0;accent-color:var(--primary)}
.check a{color:var(--primary);font-weight:700}
.signup .btn{align-self:flex-start}
.form-msg:empty{display:none}

/* Club */
.club-banner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;padding:clamp(1.25rem,3vw,2rem);background:linear-gradient(120deg,rgba(24,86,255,0.14),rgba(139,92,246,0.14) 55%,rgba(240,80,154,0.14))}
.club-banner h2{font-size:clamp(1.4rem,1.1rem + 1.4vw,2rem);font-weight:800;letter-spacing:-0.02em;margin:0.3rem 0}
.club-banner p{color:var(--muted);max-width:56ch}
.club-banner.on{background:rgba(7,202,107,0.1)}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.1rem;max-width:860px;width:100%;margin:0 auto}
.plan{padding:1.6rem;display:flex;flex-direction:column;gap:0.9rem}
.plan.best{background:var(--glass-bg-strong);box-shadow:inset 0 1px 0 #fff,0 24px 48px -20px rgba(24,86,255,0.45)}
.plan.wide{grid-column:1/-1}
.plan h2{font-size:1.3rem;font-weight:800}
.plan p{color:var(--muted)}
.price{display:flex;align-items:baseline;gap:0.3rem}
.price b{font-size:2.6rem;font-weight:800;letter-spacing:-0.03em}
.price span{color:var(--muted);font-weight:700}
.plan ul{list-style:none;display:flex;flex-direction:column;gap:0.45rem;flex:1}
.plan li{padding-left:1.6rem;position:relative;font-size:0.92rem}
.plan li::before{content:'✓';position:absolute;left:0;color:var(--success-ink);font-weight:800}
.ribbon{position:absolute!important;top:-12px;right:18px;background:var(--grad-copilot);color:#fff;font-size:0.72rem;font-weight:800;padding:0.3rem 0.8rem;border-radius:999px;z-index:3!important}
.plan-waiver{grid-column:1/-1;padding:0 0.25rem}
.faq-mini{padding:clamp(1.25rem,3vw,2rem);max-width:860px;width:100%;margin:0 auto}
.faq-mini h2{font-size:1.4rem;font-weight:800;margin-bottom:0.6rem}
.faq-mini details{border-top:1px solid rgba(20,20,20,0.07);padding:0.85rem 0}
.faq-mini summary{font-weight:700;cursor:pointer}
.faq-mini details p{color:var(--muted);margin-top:0.4rem}
.faq-mini a{color:var(--primary);font-weight:700}
.related h2{font-size:1.4rem;font-weight:800;letter-spacing:-0.02em;margin-bottom:1rem}

/* auth + account */
.auth{max-width:560px;width:100%;margin:clamp(1rem,4vw,3rem) auto;padding:clamp(1.5rem,4vw,2.5rem);display:flex;flex-direction:column;gap:1rem}
.auth h1{font-size:clamp(1.7rem,1.3rem + 1.8vw,2.4rem)}
.auth .lead{color:var(--muted)}
.notice{padding:1rem 1.25rem;font-size:0.92rem;background:rgba(7,202,107,0.12)}
.me-head{padding:clamp(1.25rem,3vw,2rem);display:flex;justify-content:space-between;align-items:flex-end;gap:1.25rem;flex-wrap:wrap}
.me-head h1{font-size:clamp(1.8rem,1.3rem + 2vw,2.6rem)}
.me-head .lead{color:var(--muted);font-weight:600}
.status{display:flex;align-items:center;gap:0.6rem;flex-wrap:wrap;font-size:0.9rem;padding:0.7rem 1rem;border-radius:14px;background:rgba(255,255,255,0.7)}
.status.on{background:rgba(7,202,107,0.12);color:var(--success-ink)}
.prefs{padding:clamp(1.25rem,3vw,2rem);display:flex;flex-direction:column;gap:0.9rem}
.prefs h2{font-size:1.3rem;font-weight:800}
.pref-actions{display:flex;gap:0.6rem;flex-wrap:wrap}

/* legal (CGV) */
.doc{max-width:820px;width:100%;margin:0 auto;padding:clamp(1.5rem,4vw,3rem)}
.doc h1{font-size:clamp(1.8rem,1.3rem + 2vw,2.6rem);margin:0.5rem 0}
.doc h2{font-size:1.15rem;font-weight:800;margin:1.6rem 0 0.4rem}
.doc p{color:var(--muted)}
.doc a{color:var(--primary);font-weight:700}

.lib-foot{width:min(1160px,calc(100% - 32px));margin:0 auto 24px;padding:1rem 1.25rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:0.8rem;font-size:0.8rem;color:var(--muted)}
.lib-foot nav{display:flex;flex-wrap:wrap;gap:0.9rem}
.lib-foot a:hover{color:var(--primary)}

.js .lib .reveal{opacity:0;translate:0 20px;transition:opacity .7s var(--ease),translate .7s var(--ease),transform .35s var(--ease),box-shadow .35s}
.js .lib .reveal.visible{opacity:1;translate:0 0}
@media (prefers-reduced-motion:reduce){.js .lib .reveal{opacity:1;translate:none;transition:none}.lcard:hover,.video:hover{transform:none}}
