:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#242b32;background:#edf0f2;font-synthesis:none;--muted:#626e78;--line:#e3e7e9;--accent:#146bff}*{box-sizing:border-box}body{margin:0}button,input,select,a{font:inherit}a{color:inherit}button,select,summary{touch-action:manipulation}button,.tool-link{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px 14px;text-decoration:none;cursor:pointer;white-space:nowrap}button:hover,.tool-link:hover{background:#f0f3f5}button:disabled{opacity:.3;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,main:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}.wordmark{text-decoration:none;font-size:20px;font-weight:750;letter-spacing:-.8px;white-space:nowrap}.wordmark span{color:var(--accent);margin-left:3px}.eyebrow{font-size:9px;letter-spacing:1.5px;font-weight:650;color:var(--muted)}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link:focus{position:fixed;top:8px;left:8px;z-index:20;background:white;padding:12px}
body:has(.reader-toolbar){height:100dvh;display:flex;flex-direction:column;overflow:hidden}.reader-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px;background:#fff;padding:12px 28px;z-index:5;flex-shrink:0}.document-identity{display:flex;align-items:center;gap:28px;min-width:0}.document-heading{min-width:0}.document-heading h1{font-size:14px;line-height:1.5;font-weight:550;margin:3px 0 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.document-actions{display:flex;align-items:center;gap:4px}.icon-button{width:44px;height:44px;display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;border:0;background:transparent;border-radius:8px;padding:0;color:#394651}.icon-button svg{flex-shrink:0}.reading-controls{display:flex;align-items:center;justify-content:center;gap:20px;padding:6px 16px;border-block:1px solid var(--line);background:#fbfcfc;flex-shrink:0;z-index:4}.page-controls,.zoom-controls{display:flex;align-items:center;gap:2px}.page-controls input{width:48px;height:36px;text-align:center;padding:4px;border:1px solid #d5dce0;border-radius:6px;background:#fff;color:#242b32;font-size:13px;font-variant-numeric:tabular-nums;appearance:textfield}.page-controls input::-webkit-inner-spin-button,.page-controls input::-webkit-outer-spin-button{appearance:none;margin:0}#page-count{font-size:12px;color:var(--muted);min-width:38px;padding:0 7px;font-variant-numeric:tabular-nums}.control-divider{height:24px;width:1px;background:var(--line)}#fit{height:40px;width:116px;border:0;border-radius:7px;background:transparent;color:#394651;font-size:12px;padding:0 8px;cursor:pointer}#fit:hover{background:#edf1f3}.reader-menu{position:relative}.reader-menu summary{list-style:none;cursor:pointer}.reader-menu summary::-webkit-details-marker{display:none}.reader-menu[open] summary{background:#edf1f3}.menu-panel{position:absolute;right:0;top:52px;width:290px;max-width:calc(100vw - 24px);padding:12px;background:#fff;border:1px solid var(--line);box-shadow:0 12px 40px #1f293722;border-radius:12px}.menu-heading{margin:8px 10px;color:var(--muted);font-size:10px;letter-spacing:1px;text-transform:uppercase;font-weight:650}.menu-panel a,.menu-panel button{display:block;width:100%;text-align:left;white-space:normal;text-decoration:none;font-size:13px;line-height:1.6;border:0;padding:10px;border-radius:6px}.menu-panel a:hover{background:#f0f3f5}.menu-panel small{display:block;font-size:11px;color:var(--muted)}.menu-panel dl{font-size:11px;padding:0 10px;margin:12px 0 8px}.menu-panel dl div{display:flex;justify-content:space-between;gap:8px;padding:6px 0}.menu-panel dd{margin:0;color:var(--muted)}
.reader-viewport{position:relative;flex:1;min-height:0;overflow:auto;display:flex;justify-content:safe center;align-items:flex-start;padding:24px 24px 32px;scrollbar-gutter:stable;overscroll-behavior:contain;background:radial-gradient(ellipse at top,#f1f3f5,#e6eaed)}#page-container{position:relative;display:flex;gap:0;flex:none}.sheet{position:relative;background:#fff;box-shadow:0 1px 3px #1d2c3a16,0 8px 30px #1d2c3a14;flex:none}.sheet canvas{display:block}#page-container.is-spread .sheet:first-child{box-shadow:0 1px 3px #1d2c3a16,-6px 8px 30px #1d2c3a14}#page-container.is-spread .sheet:last-child{box-shadow:0 1px 3px #1d2c3a16,6px 8px 30px #1d2c3a14}#page-container.is-spread .sheet:first-child::after{content:"";position:absolute;inset:0 0 0 auto;width:28px;background:linear-gradient(90deg,transparent,#0000000f);pointer-events:none;z-index:4}#page-container.is-spread .sheet:last-child::before{content:"";position:absolute;inset:0 auto 0 0;width:28px;background:linear-gradient(270deg,transparent,#00000012);pointer-events:none;z-index:4}.textLayer{z-index:2}.links-layer{position:absolute;inset:0;z-index:5;pointer-events:none}.links-layer a{pointer-events:auto}.links-layer a:hover{background:#146bff1f;outline:1px solid #146bff70}.reader-footer{height:36px;display:flex;align-items:center;gap:16px;flex-shrink:0;background:#fafbfc;border-top:1px solid #dce2e6;padding:0 24px;font-size:11px;color:var(--muted)}#status{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-footer .error{color:#a33722}#zoom-level{font-variant-numeric:tabular-nums;padding-left:16px;border-left:1px solid #dce2e6}.footer-brand{margin-left:auto;white-space:nowrap;color:#46515c}.footer-brand span{color:#7c858e;margin-left:5px}.loading-state{align-self:center;text-align:center;max-width:360px;margin:auto;padding:24px 12px;color:var(--muted)}.loading-state h2{font-size:17px;font-weight:550;color:#303c46;margin:20px 0 8px}.loading-state p{font-size:13px;line-height:1.7;margin:0 0 20px}.loading-spinner{display:inline-block;width:28px;height:28px;border:2px solid #d1d9df;border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}.loading-state.error .loading-spinner{display:none}.loading-state.error button{border-color:#c8d0d6}.noscript-message{position:fixed;inset:40% 20px auto;text-align:center;background:white;padding:24px}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.loading-spinner{animation:none;border-color:#146bff}}
.landing{min-height:100dvh;background:#faf8f5;display:flex;flex-direction:column}.landing header{padding:28px 7vw;display:flex;align-items:center;gap:16px}.ecosystem{font-size:12px;color:#747772;border-left:1px solid #d8d7d3;padding-left:16px}.landing main{width:min(780px,86vw);margin:60px auto 90px;flex:1}.landing h1{font-weight:560;font-size:clamp(40px,6vw,70px);line-height:1.06;letter-spacing:-2px;margin:24px 0}.intro{font-size:19px;line-height:1.6;color:#666b6a;max-width:530px}.notice{margin:38px 0 28px;padding:22px 26px;border:1px solid #e1ded7;border-radius:12px;background:#fffdf9;max-width:590px;font-size:14px}.notice p{line-height:1.6;color:#69706b;margin:7px 0 0}.manage-link{font-size:14px;text-underline-offset:4px}.manage-link span{padding-left:9px}.landing footer{padding:25px 7vw;border-top:1px solid #e5e2dc;color:#797d77;font-size:12px}.message{max-width:650px;margin:12vh auto;padding:30px;background:white;border-radius:12px}.message h1{font-size:26px}.message p{line-height:1.6;color:#59616a}
@media(max-width:600px){.reader-toolbar{padding:10px 12px;min-height:72px;gap:8px}.document-identity{display:block}.document-heading{padding:0;border:0}.document-heading .eyebrow{font-size:8px}.document-heading h1{font-size:12px;margin-top:4px}.reading-controls{gap:8px;padding:5px 6px}.control-divider{margin:0 2px}#fit{width:101px;padding:0 2px;font-size:11px}.reader-viewport{padding:16px 12px 24px}.reader-footer{padding:0 12px;gap:10px;height:32px;font-size:10px}.footer-brand span{display:none}#zoom-level{padding-left:10px}.landing main{margin-top:40px}.landing h1{letter-spacing:-1.3px}.intro{font-size:17px}.notice{padding:18px}.message{margin:8vh 16px}}@media(max-width:370px){.reading-controls{gap:2px}.control-divider{display:none}.page-controls input{width:38px}#page-count{min-width:30px;padding:0 3px}#fit{width:94px}.footer-brand{display:none}}
@media(max-width:430px){.reading-controls{gap:8px}.control-divider{display:none}.page-controls,.zoom-controls{gap:0}.page-controls input{width:40px}#page-count{min-width:32px;padding:0 4px}}
@media(max-width:370px){.reading-controls{flex-wrap:wrap;column-gap:12px;row-gap:0}.page-controls,.zoom-controls{justify-content:center}.reading-controls{padding-block:2px}#fit{width:94px}}

.reader-body{flex:1;min-height:0;display:flex}.reader-body .reader-viewport{flex:1;min-width:0}
.thumbs{width:200px;flex:none;display:flex;flex-direction:column;background:#fbfcfc;border-right:1px solid var(--line);min-height:0}
.thumbs[hidden]{display:none}.thumbs-head{display:flex;align-items:center;justify-content:space-between;padding:6px 6px 6px 16px;font-size:12px;font-weight:650;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--line)}
.thumbs-list{flex:1;overflow:auto;padding:14px 18px 24px;display:grid;gap:14px;align-content:start;overscroll-behavior:contain}
.thumb{display:grid;gap:6px;justify-items:center;border:0;background:none;padding:6px;border-radius:8px;cursor:pointer;white-space:normal}
.thumb:hover{background:#edf1f3}.thumb-page{display:block;width:110px;background:#fff;box-shadow:0 1px 3px #1d2c3a22;border-radius:2px;overflow:hidden;outline:2px solid transparent;outline-offset:2px}
.thumb-page canvas{display:block;width:100%;height:auto}.thumb-n{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.thumb.is-current .thumb-page{outline-color:var(--accent)}.thumb.is-current .thumb-n{color:var(--accent);font-weight:650}
#spread[aria-pressed=true],#thumbs-toggle[aria-expanded=true]{background:#e8f0ff;color:var(--accent)}
@media(max-width:760px){.thumbs{position:fixed;z-index:20;inset:0 auto 0 0;width:min(240px,80vw);box-shadow:0 0 40px #0003}.control-spread{display:none}}

/* ── one compact bar: title · page controls · actions. The header's children join the controls on a single
   grid row (header is display:contents), so nothing stacks above the page controls any more. ── */
body:has(.reader-toolbar){display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-rows:52px minmax(0,1fr) auto}
.reader-toolbar{display:contents}
.document-identity,.reading-controls,.document-actions{grid-row:1;position:relative;min-height:0;background:#fff;border:0;border-bottom:1px solid var(--line)}
.document-identity{grid-column:1;display:flex;align-items:center;gap:10px;padding:0 12px 0 20px;z-index:5}
.reading-controls{grid-column:2;gap:8px;padding:0 8px;z-index:4}
.document-actions{grid-column:3;justify-content:flex-end;gap:2px;padding:0 12px 0 8px;z-index:6}
.document-heading .eyebrow{display:none}
.document-heading h1{font-size:14px;line-height:1.3;font-weight:600;letter-spacing:-.1px;margin:0}
.reader-body{grid-column:1/-1;grid-row:2}
.reader-footer{grid-column:1/-1;grid-row:3}
.menu-panel{top:46px}
.back-link{display:inline-flex;align-items:center;gap:4px;flex:none;height:32px;padding:0 10px 0 4px;margin-left:-8px;border-radius:7px;font-size:13px;color:#394651;text-decoration:none;white-space:nowrap}
.back-link:hover{background:#f0f3f5}
.back-link+.document-heading{padding-left:12px;border-left:1px solid var(--line)}
@media(min-width:761px){.reading-controls .icon-button,.document-actions .icon-button{width:40px;height:40px}}
@media(max-width:760px){
body:has(.reader-toolbar){grid-template-columns:minmax(0,1fr) auto;grid-template-rows:44px auto minmax(0,1fr) auto}
.document-identity{grid-column:1;grid-row:1;display:flex;padding:0 8px 0 14px;border-bottom:0}
.document-actions{grid-column:2;grid-row:1;padding:0 4px;border-bottom:0}
.reading-controls{grid-column:1/-1;grid-row:2;min-height:46px;border-top:1px solid var(--line);background:#fbfcfc}
.reader-body{grid-row:3}.reader-footer{grid-row:4}
.menu-panel{top:44px}
}
@media(max-width:430px){.reading-controls{gap:4px;padding:0 4px}.reading-controls .icon-button{width:36px}#fit{width:90px}.back-link span{display:none}.back-link{padding:0 4px}}
@media(max-width:370px){.reading-controls{column-gap:8px;row-gap:0}}

/* ── personnalisation (lib/customization.ts): logo, hidden tools, dark theme. data-theme="auto" is resolved by reader.js ── */
.brand-logo{display:inline-flex;align-items:center;flex:none;height:32px;margin-left:-4px;padding-right:12px;border-right:1px solid var(--line)}
.brand-logo img{display:block;max-height:28px;max-width:120px;object-fit:contain}
body[data-masquer~=vignettes] #thumbs-toggle,body[data-masquer~=vignettes] #tab-pages,body[data-masquer~=recherche] #search-toggle,body[data-masquer~=recherche] #tab-search,body[data-masquer~=plein-ecran] #fullscreen,
body[data-masquer~=double-page] #spread,body[data-masquer~=double-page] .control-spread,body[data-masquer~=zoom] .zoom-controls,
body[data-masquer~=titre] .document-heading{display:none!important}
body[data-masquer~=vignettes] .reading-controls>.control-divider:first-of-type{display:none}
body[data-theme=sombre]{color-scheme:dark;color:#e3e6ea;background:#121417;--muted:#9aa3ad;--line:#2a2f36}
body[data-theme=sombre] .document-identity,body[data-theme=sombre] .reading-controls,body[data-theme=sombre] .document-actions{background:#1a1d22}
body[data-theme=sombre] .reader-viewport{background:radial-gradient(ellipse at top,#1d2127,#121417)}
body[data-theme=sombre] .reader-footer,body[data-theme=sombre] .thumbs{background:#16191d;border-color:#2a2f36;color:#9aa3ad}
body[data-theme=sombre] .icon-button,body[data-theme=sombre] #fit,body[data-theme=sombre] .back-link,body[data-theme=sombre] .footer-brand{color:#d4d9df}
body[data-theme=sombre] .icon-button:hover,body[data-theme=sombre] #fit:hover,body[data-theme=sombre] .back-link:hover,body[data-theme=sombre] .thumb:hover,body[data-theme=sombre] .reader-menu[open] summary{background:#262b32}
body[data-theme=sombre] .page-controls input{background:#121417;border-color:#343a42;color:#e3e6ea}
body[data-theme=sombre] .menu-panel{background:#1a1d22;border-color:#2a2f36;box-shadow:0 12px 40px #0008}
body[data-theme=sombre] .menu-panel a:hover,body[data-theme=sombre] .menu-panel button:hover{background:#262b32}
body[data-theme=sombre] button,body[data-theme=sombre] .tool-link{background:#1a1d22;border-color:#2a2f36;color:#e3e6ea}
body[data-theme=sombre] .sheet{box-shadow:0 1px 3px #0006,0 8px 30px #0005}
body[data-theme=sombre] .loading-state h2{color:#e3e6ea}
body[data-theme=sombre] #spread[aria-pressed=true],body[data-theme=sombre] #thumbs-toggle[aria-expanded=true]{background:#1f2a3d;color:var(--accent)}

/* ── side panel: tabs, table of contents, search ── */
.thumbs{width:272px}
.thumbs-head{padding:6px 6px 6px 8px;text-transform:none;letter-spacing:0}
.panel-tabs{display:flex;gap:2px;min-width:0;flex:1;overflow-x:auto;scrollbar-width:none}.thumbs-head #thumbs-close{flex:none}
.panel-tabs [role=tab]{border:0;background:transparent;padding:7px 8px;flex:none;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--muted);white-space:nowrap}
.panel-tabs [role=tab]:hover{background:#edf1f3;color:#242b32}
.panel-tabs [role=tab][aria-selected=true]{background:#e8f0ff;color:var(--accent)}
.toc-list,.search-panel{flex:1;overflow:auto;min-height:0;overscroll-behavior:contain}
.toc-list ol{list-style:none;margin:0;padding:6px 8px}.toc-list ol ol{padding:0}
.toc-item{display:flex;width:100%;gap:8px;justify-content:space-between;align-items:baseline;border:0;background:none;text-align:left;padding:7px 8px 7px calc(8px + var(--depth,0) * 14px);border-radius:7px;font-size:13px;line-height:1.4;white-space:normal}
.toc-item:hover{background:#edf1f3}.toc-page{flex:none;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.toc-item:disabled{opacity:.6}
.search-panel{display:flex;flex-direction:column}
.search-panel[hidden]{display:none}
.search-form{padding:10px 10px 4px}
.search-form input{width:100%;height:36px;padding:0 10px;border:1px solid #d5dce0;border-radius:8px;font-size:13.5px;background:#fff;color:#242b32}
.search-form input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.search-status{margin:6px 14px;font-size:12px;color:var(--muted)}
.search-results{list-style:none;margin:0;padding:0 8px 16px;overflow:auto}
.search-hit{display:grid;gap:3px;width:100%;border:0;background:none;text-align:left;padding:8px;border-radius:8px;white-space:normal}
.search-hit:hover{background:#edf1f3}
.search-page{font-size:11.5px;font-weight:650;color:var(--accent)}
.search-excerpt{font-size:12.5px;line-height:1.5;color:#46515c}
.search-excerpt mark{background:#ffe58a;color:inherit;border-radius:2px;padding:0 1px}
.textLayer span.search-hl{background:rgb(255 200 0 / .28);box-shadow:0 0 0 2px rgb(255 200 0 / .28);border-radius:2px}
body[data-theme=sombre] .panel-tabs [role=tab]:hover,body[data-theme=sombre] .toc-item:hover,body[data-theme=sombre] .search-hit:hover{background:#262b32;color:#e3e6ea}
body[data-theme=sombre] .panel-tabs [role=tab][aria-selected=true]{background:#1f2a3d}
body[data-theme=sombre] .search-form input{background:#121417;border-color:#343a42;color:#e3e6ea}
body[data-theme=sombre] .search-excerpt,body[data-theme=sombre] .toc-item{color:#c9ced5}
body[data-theme=sombre] .search-excerpt mark{background:#8a6d00;color:#fff}
@media(max-width:760px){.thumbs{width:min(300px,86vw)}}

#print-sheet{display:none}
.print-progress{position:fixed;left:50%;bottom:72px;transform:translateX(-50%);z-index:50;width:min(320px,calc(100vw - 32px));padding:16px 18px 14px;background:#fff;color:#242b32;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px #1f293726;font-size:13px}
.print-progress p{margin:0}.print-progress-title{font-weight:600}
.print-progress-bar{height:6px;margin:12px 0 8px;border-radius:3px;background:#e6ebee;overflow:hidden}.print-progress-bar span{display:block;height:100%;width:0;background:var(--accent,#146bff);transition:width .2s}
.print-progress-count{color:var(--muted);font-variant-numeric:tabular-nums}
.print-progress button{position:absolute;top:10px;right:10px;border:0;background:transparent;color:var(--muted);font-size:12px;padding:6px 8px;border-radius:6px;cursor:pointer}.print-progress button:hover{background:#f0f3f5}
[aria-busy=true]#print-bar{opacity:.5;pointer-events:none}
body[data-theme=sombre] .print-progress{background:#1a1d22;color:#e3e6ea}body[data-theme=sombre] .print-progress-bar{background:#2a2f36}
@media (prefers-reduced-motion:reduce){.print-progress-bar span{transition:none}}
@media print{@page{margin:0}body{height:auto!important;overflow:visible!important;display:block!important;background:#fff!important}body>*:not(#print-sheet){display:none!important}#print-sheet{display:block}#print-sheet img{display:block;width:100%;height:auto;break-after:page;page-break-after:always}#print-sheet img:last-child{break-after:auto;page-break-after:auto}}
