:root{--bg:#0b1220;--card:#131c30;--line:#243150;--tx:#e8edf7;--mut:#8fa0bf;--ac:#4f8cff}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--tx);font-family:-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;line-height:1.6}
.wrap{max-width:960px;margin:0 auto;padding:0 20px}
.top{border-bottom:1px solid var(--line)}.top .wrap{padding:16px 20px}
.logo{color:var(--tx);text-decoration:none;font-weight:700;font-size:20px}.logo span{color:var(--ac)}
.hero{padding:64px 0 24px}.kicker{color:var(--ac);text-transform:uppercase;letter-spacing:.14em;font-size:13px;font-weight:700;margin:0 0 12px}
h1{font-size:clamp(30px,5vw,46px);line-height:1.15;margin:0 0 16px}.lead{color:var(--mut);font-size:18px;max-width:640px;margin:0}
.books{padding-top:32px;padding-bottom:64px}
.book{display:grid;grid-template-columns:220px 1fr;gap:32px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:28px}
.cover{aspect-ratio:2/3;border-radius:8px;background:linear-gradient(160deg,#2f5fd0,#14213d);display:flex;flex-direction:column;justify-content:center;padding:20px;box-shadow:0 10px 30px #0006}
.cover span{font-size:56px;font-weight:800;line-height:1}.cover b{font-size:17px;line-height:1.25;margin-top:8px}
h2{margin:0 0 6px;font-size:26px}.sub{color:var(--ac);margin:0 0 14px;font-weight:600}
.tags{list-style:none;padding:0;margin:16px 0 22px;display:flex;flex-wrap:wrap;gap:8px}
.tags li{font-size:13px;color:var(--mut);border:1px solid var(--line);border-radius:999px;padding:3px 12px}
.btn{display:inline-block;background:var(--ac);color:#fff;text-decoration:none;font-weight:700;padding:12px 22px;border-radius:10px}
.btn:hover{filter:brightness(1.1)}
footer{border-top:1px solid var(--line);color:var(--mut);font-size:14px;padding:22px 0}
@media(max-width:640px){.book{grid-template-columns:1fr}.cover{max-width:200px}}
.bar{display:flex;justify-content:space-between;align-items:center;gap:12px}
.langs{display:flex;gap:4px}.langs button{background:none;border:1px solid var(--line);color:var(--mut);border-radius:8px;padding:5px 10px;font:600 12px inherit;cursor:pointer}
.langs button.on{background:var(--ac);border-color:var(--ac);color:#fff}
.filtres{display:flex;flex-wrap:wrap;gap:12px;padding-top:20px;padding-bottom:20px}
.filtres label{display:flex;flex-direction:column;font-size:12px;color:var(--mut);gap:4px}
select,input[type=search],input[type=password]{background:var(--card);color:var(--tx);border:1px solid var(--line);border-radius:8px;padding:9px 12px;font:inherit;min-width:170px}
.filtres input[type=search]{flex:1;min-width:200px;align-self:flex-end}
#liste{display:grid;gap:18px;padding-bottom:64px}
.tags li.dom{border-color:#3b4d78}.tags li.lg{color:var(--ac);border-color:var(--ac);font-weight:700}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.btn{border:0;cursor:pointer;font:700 16px inherit}.btn.sec{background:none;border:1px solid var(--ac);color:var(--ac)}
.btn:disabled{opacity:.6;cursor:wait}.soon{color:var(--mut)}.vide{color:var(--mut);padding:30px 0}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#fff;color:#0b1220;padding:12px 18px;border-radius:10px;font-weight:600;max-width:90vw}
.merci{padding:64px 20px;text-align:center}.merci .lead{margin:0 auto 14px}
.ed{padding-top:28px;padding-bottom:64px}.login{max-width:360px;margin:60px auto;display:flex;flex-direction:column;gap:12px}.login h1{margin:0}
.err{color:#f87171;margin:0}.out{background:none;border:1px solid var(--line);color:var(--mut);border-radius:8px;padding:6px 12px;cursor:pointer}
.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-bottom:18px}
.k{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column}.k b{font-size:28px}.k span{color:var(--mut);font-size:13px}
.ed-f{padding-left:0;padding-right:0}.ed-b{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px}
.ed-b h2{margin:6px 0 2px;font-size:21px}.ed-b .sub{margin:0 0 8px;font-size:15px}.ed-b .tags{margin:8px 0 12px}
.st{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:2px 10px}.st-p{background:#12351f;color:#4ade80}.st-b{background:#3a2e0b;color:#fbbf24}.st-t{background:#1b2540;color:var(--mut)}
.vt{width:100%;border-collapse:collapse;font-size:13.5px;display:block;overflow-x:auto}.vt th,.vt td{text-align:left;padding:6px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.vt td:nth-child(5){white-space:normal;min-width:180px}.vt th{color:var(--mut);font-weight:600}
details{margin-top:10px;color:var(--mut)}summary{cursor:pointer}details ol{color:var(--tx);line-height:1.7}.meta{color:var(--mut);font-size:13px;margin:10px 0 0}.meta a{color:var(--ac)}
