/* Casale San Benedetto - lettore PDF e-book v1.2.0 (mobile-first, temi chiaro/seppia/notte) */
.csb-pv{--pv-chrome:#80011d;--pv-chrome-d:#5e0115;--pv-on:#fff;--pv-stage:#e6e0d1;--pv-surface:#fff;--pv-text:#26221f;--pv-muted:#5f5851;--pv-line:#e2dccd;--pv-accent:#f0d9a8;--pv-filter:none;
	position:relative;display:flex;flex-direction:column;width:100%;margin:2rem 0;background:var(--pv-stage);border-radius:10px;overflow:hidden;color:var(--pv-on);box-shadow:0 12px 40px rgba(38,34,31,.22);font-family:var(--font,system-ui,sans-serif)}
.csb-pv[data-theme=sepia]{--pv-stage:#cdbb95;--pv-surface:#f4ecd8;--pv-filter:sepia(.42) saturate(.95) brightness(.97)}
.csb-pv[data-theme=dark]{--pv-chrome:#3a0a14;--pv-chrome-d:#2a0710;--pv-stage:#14110f;--pv-surface:#1c1816;--pv-text:#ece6d8;--pv-muted:#b9b1a2;--pv-line:#3a3330;--pv-filter:invert(.92) hue-rotate(180deg)}
.csb-pv *{box-sizing:border-box}
.csb-pv.is-loading .csb-pv__top,.csb-pv.is-loading .csb-pv__bottom{opacity:.5;pointer-events:none}
/* barre */
.csb-pv__top,.csb-pv__bottom{display:flex;align-items:center;gap:.25rem;padding:.4rem .5rem;background:var(--pv-chrome);color:var(--pv-on);z-index:4;transition:transform .22s ease,opacity .22s ease}
.csb-pv__b,.csb-pv__x{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 .5rem;border:0;border-radius:8px;background:transparent;color:inherit;cursor:pointer;text-decoration:none;transition:background .15s}
.csb-pv__b:hover:not(:disabled),.csb-pv__x:hover{background:rgba(255,255,255,.18)}
.csb-pv__b:active:not(:disabled){background:rgba(255,255,255,.3)}
.csb-pv__b:disabled{opacity:.35;cursor:default}
.csb-pv__b.is-on{background:rgba(255,255,255,.22);color:var(--pv-accent)}
.csb-pv__b.is-on svg{fill:currentColor}
.csb-pv :focus-visible{outline:3px solid var(--pv-accent);outline-offset:2px}
.csb-pv__title{flex:1;min-width:0;padding:0 .4rem;font:600 .95rem/1.2 var(--font,system-ui);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.csb-pv__zoomgrp{display:none}
.csb-pv__scrub{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding:0 .25rem}
.csb-pv__lbl{font-size:.8rem;text-align:center;line-height:1.1}
.csb-pv__scrub input[type=range]{width:100%;height:28px;margin:0;accent-color:var(--pv-accent);background:transparent;cursor:pointer}
/* corpo */
.csb-pv__body{position:relative;flex:none;height:var(--pv-h,clamp(440px,calc(100svh - 190px),940px));min-height:0}
.csb-pv__stage{position:absolute;inset:0;overflow:auto;padding:.75rem;display:flex;outline:0;touch-action:pan-x pan-y;overscroll-behavior:contain;background:radial-gradient(ellipse at center,rgba(255,255,255,.35),rgba(0,0,0,.12));cursor:grab}
.csb-pv[data-theme=dark] .csb-pv__stage{background:radial-gradient(ellipse at center,#2a2522,#14110f)}
.csb-pv__book{position:relative;margin:auto;perspective:2600px;flex:none}
.csb-pv__spread{display:flex;box-shadow:0 10px 34px rgba(0,0,0,.4);position:relative}
.csb-pv__leaf{display:flex;background:#fff}
.csb-pv__leaf canvas,.csb-pv__flip canvas{display:block;max-width:none;filter:var(--pv-filter)}
.csb-pv[data-mode=spread] .csb-pv__spread:has(.csb-pv__leaf+.csb-pv__leaf)::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:34px;margin-left:-17px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(0,0,0,.2) 50%,transparent);z-index:1}
/* transizioni */
.csb-pv__spread.is-under{position:absolute;left:0;top:0;z-index:1}
.csb-pv__book.is-flipping .csb-pv__spread:not(.is-under){z-index:2}
.csb-pv__flip{position:absolute;top:0;width:50%;height:100%;z-index:3;transform-style:preserve-3d;transition:transform .56s cubic-bezier(.45,.05,.25,1);will-change:transform}
.csb-pv__flip.flip-next{left:50%;transform-origin:left center}
.csb-pv__flip.flip-prev{left:0;transform-origin:right center}
.csb-pv__flip.flip-next.go{transform:rotateY(-180deg)}
.csb-pv__flip.flip-prev.go{transform:rotateY(180deg)}
.csb-pv__flip .ff{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;background:#fff}
.csb-pv__flip .back{transform:rotateY(180deg)}
.csb-pv__flip .ff::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .56s ease}
.csb-pv__flip.flip-next .front::after{background:linear-gradient(90deg,rgba(0,0,0,.35),transparent 70%)}
.csb-pv__flip.flip-prev .front::after{background:linear-gradient(270deg,rgba(0,0,0,.35),transparent 70%)}
.csb-pv__flip.flip-next .back::after{background:linear-gradient(270deg,rgba(0,0,0,.35),transparent 70%);opacity:.9}
.csb-pv__flip.flip-prev .back::after{background:linear-gradient(90deg,rgba(0,0,0,.35),transparent 70%);opacity:.9}
.csb-pv__flip.go .front::after{opacity:.9}.csb-pv__flip.go .back::after{opacity:0}
.csb-pv__spread.enter-next{animation:pvInN .26s cubic-bezier(.2,.7,.2,1)}
.csb-pv__spread.enter-prev{animation:pvInP .26s cubic-bezier(.2,.7,.2,1)}
.csb-pv__spread.leave-next{position:absolute;left:0;top:0;animation:pvOutN .18s ease-in forwards;pointer-events:none}
.csb-pv__spread.leave-prev{position:absolute;left:0;top:0;animation:pvOutP .18s ease-in forwards;pointer-events:none}
@keyframes pvInN{from{opacity:0;transform:translateX(36px)}to{opacity:1;transform:none}}
@keyframes pvInP{from{opacity:0;transform:translateX(-36px)}to{opacity:1;transform:none}}
@keyframes pvOutN{to{opacity:0;transform:translateX(-36px)}}
@keyframes pvOutP{to{opacity:0;transform:translateX(36px)}}
/* stato / toast */
.csb-pv__status{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);margin:0;text-align:center;padding:1rem;z-index:2;pointer-events:none;color:var(--pv-text);font-weight:600}
.csb-pv__status[hidden]{display:none}
.csb-pv__toast{position:absolute;left:50%;bottom:.75rem;transform:translateX(-50%);max-width:calc(100% - 1.5rem);display:flex;align-items:center;gap:.75rem;padding:.55rem .9rem;border-radius:999px;background:#1f1a18;color:#fff;font-size:.9rem;z-index:6;box-shadow:0 6px 20px rgba(0,0,0,.35)}
.csb-pv__toast[hidden]{display:none}
.csb-pv__toast button{min-height:36px;padding:0 .8rem;border:1px solid var(--pv-accent);border-radius:999px;background:transparent;color:var(--pv-accent);cursor:pointer;font:inherit;font-weight:600}
.csb-pv__live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);margin:0}
/* pannello e menu */
.csb-pv__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5);z-index:7}
.csb-pv__backdrop[hidden]{display:none}
.csb-pv__panel{position:absolute;z-index:8;top:0;bottom:0;left:0;width:min(88%,340px);display:flex;flex-direction:column;background:var(--pv-surface);color:var(--pv-text);box-shadow:6px 0 24px rgba(0,0,0,.35)}
.csb-pv__panel[hidden]{display:none}
.csb-pv__tabs{display:flex;align-items:center;gap:0;border-bottom:1px solid var(--pv-line);padding:0 .25rem;overflow-x:auto;flex:none}
.csb-pv__tabs [role=tab]{min-height:48px;padding:0 .6rem;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--pv-muted);font:600 .9rem/1 var(--font,system-ui);cursor:pointer;white-space:nowrap}
.csb-pv__tabs [role=tab][aria-selected=true]{color:var(--pv-text);border-bottom-color:var(--pv-chrome)}
.csb-pv[data-theme=dark] .csb-pv__tabs [role=tab][aria-selected=true]{border-bottom-color:var(--pv-accent)}
.csb-pv__panel .csb-pv__x,.csb-pv__menu .csb-pv__x{margin-left:auto;color:var(--pv-text);flex:none}
.csb-pv__tabs .csb-pv__x{position:sticky;right:0;background:var(--pv-surface)}
.csb-pv__menu .csb-pv__x{display:flex;margin:-.4rem -.4rem 0 auto}
.csb-pv__panel .csb-pv__x:hover,.csb-pv__menu .csb-pv__x:hover{background:rgba(128,128,128,.18)}
.csb-pv__panes{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:.75rem}
.csb-pv__panel button:not(.csb-pv__x):not([role=tab]){font-family:inherit}
.csb-pv__thumbs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}
.csb-pv__thumbs button{display:block;width:100%;padding:4px;border:2px solid transparent;border-radius:6px;background:transparent;color:var(--pv-muted);cursor:pointer;text-align:center}
.csb-pv__thumbs button.is-cur{border-color:var(--pv-chrome)}
.csb-pv[data-theme=dark] .csb-pv__thumbs button.is-cur{border-color:var(--pv-accent)}
.csb-pv__thumbs span{display:block;min-height:90px;background:rgba(128,128,128,.2)}
.csb-pv__thumbs canvas{display:block;width:100%;height:auto;filter:var(--pv-filter)}
.csb-pv__thumbs em{display:block;font-size:.8rem;font-style:normal;margin-top:2px}
.csb-pv__toc,.csb-pv__toc ul,.csb-pv__list{list-style:none;margin:0;padding:0}
.csb-pv__toc ul{padding-left:1rem}
.csb-pv__toc button,.csb-pv__list li>button:first-child{display:block;width:100%;min-height:44px;padding:.5rem .6rem;border:0;border-radius:6px;background:transparent;color:var(--pv-text);text-align:left;cursor:pointer;font-size:.95rem;line-height:1.35}
.csb-pv__toc button:hover,.csb-pv__list li>button:first-child:hover{background:rgba(128,128,128,.16)}
.csb-pv__list li{display:flex;align-items:center;gap:.25rem;border-bottom:1px solid var(--pv-line)}
.csb-pv__list mark{background:var(--pv-accent);color:#26221f;padding:0 2px;border-radius:2px}
.csb-pv__sf{display:flex;gap:.25rem;margin-bottom:.5rem}
.csb-pv__sf input{flex:1;min-width:0;min-height:44px;padding:0 .8rem;border:1px solid var(--pv-line);border-radius:8px;background:var(--pv-surface);color:var(--pv-text);font:inherit;font-size:1rem}
.csb-pv__sf .csb-pv__b{background:var(--pv-chrome);color:#fff}
.csb-pv__sstat,.csb-pv__empty{font-size:.875rem;color:var(--pv-muted);margin:.4rem 0}
.csb-pv__menu{position:absolute;z-index:8;top:.5rem;right:.5rem;width:min(calc(100% - 1rem),300px);max-height:calc(100% - 1rem);overflow:auto;padding:.9rem;background:var(--pv-surface);color:var(--pv-text);border-radius:12px;box-shadow:0 12px 36px rgba(0,0,0,.4)}
.csb-pv__menu[hidden]{display:none}
.csb-pv__menu fieldset{border:0;margin:0 0 .8rem;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.csb-pv__menu legend{font:700 .8rem/1 var(--font,system-ui);text-transform:uppercase;letter-spacing:.08em;color:var(--pv-muted);margin-bottom:.4rem;padding:0;float:left;width:100%}
.csb-pv__menu fieldset label{position:relative;flex:1 1 auto}
.csb-pv__menu fieldset input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.csb-pv__menu fieldset span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 .8rem;border:1px solid var(--pv-line);border-radius:8px;font-size:.9rem;white-space:nowrap}
.csb-pv__menu fieldset input:checked+span{background:var(--pv-chrome);border-color:var(--pv-chrome);color:#fff}
.csb-pv__menu fieldset input:focus-visible+span{outline:3px solid var(--pv-accent);outline-offset:2px}
.csb-pv__sw{display:flex;align-items:center;gap:.6rem;min-height:44px;font-size:.95rem;cursor:pointer}
.csb-pv__sw input{width:22px;height:22px;accent-color:var(--pv-chrome)}
.csb-pv__reset{width:100%;min-height:44px;margin-top:.4rem;border:1px solid var(--pv-line);border-radius:8px;background:transparent;color:var(--pv-text);cursor:pointer;font:inherit}
/* schermo intero / massimizzato */
.csb-pv.is-full,.csb-pv.is-max{width:100%;height:100%;margin:0;border-radius:0}
.csb-pv.is-max{position:fixed;inset:0;z-index:99999}
.csb-pv.is-full .csb-pv__body,.csb-pv.is-max .csb-pv__body{height:auto;flex:1 1 auto}
.csb-pv.is-full .csb-pv__top,.csb-pv.is-max .csb-pv__top{position:absolute;top:0;left:0;right:0}
.csb-pv.is-full .csb-pv__bottom,.csb-pv.is-max .csb-pv__bottom{position:absolute;bottom:0;left:0;right:0}
.csb-pv.is-full .csb-pv__stage,.csb-pv.is-max .csb-pv__stage{padding-top:64px;padding-bottom:84px}
.csb-pv.ui-hidden .csb-pv__top{transform:translateY(-100%);opacity:0;pointer-events:none}
.csb-pv.ui-hidden .csb-pv__bottom{transform:translateY(100%);opacity:0;pointer-events:none}
body.csb-pv-lock{overflow:hidden}
/* spazio riservato prima del caricamento (nessun layout shift) + fallback errore */
.csb-pv.is-loading .csb-pv__body{background:var(--pv-stage)}
.csb-pv__fallback{margin:0;padding:.7rem 1rem;background:#1c1816;font-size:.9rem;display:flex;gap:1rem;flex-wrap:wrap;justify-content:space-between}
.csb-pv__fallback a{color:var(--pv-accent);display:inline-flex;align-items:center;min-height:44px}
/* tablet e desktop */
@media (min-width:821px){
	.csb-pv__zoomgrp{display:inline-flex}
	.csb-pv__body{height:var(--pv-h,clamp(520px,82vh,960px))}
	.csb-pv__panel{width:340px}
	.csb-pv__scrub{flex-direction:row;align-items:center;gap:.75rem}
	.csb-pv__lbl{flex:none;min-width:170px;text-align:left}
	.csb-pv__panel{position:absolute}
	.csb-pv.show-panel .csb-pv__stage{left:340px}
	.csb-pv.show-panel .csb-pv__backdrop{display:none}
	.csb-pv__thumbs{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:821px) and (max-width:1100px){.csb-pv.show-panel .csb-pv__stage{left:300px}.csb-pv__panel{width:300px}}
@media (max-width:820px) and (orientation:landscape){.csb-pv__body{height:calc(100svh - 150px);min-height:300px}}
@media (print){.csb-pv{display:none}}

.csb-pv.is-ready .csb-pv__fallback span{display:none}.csb-pv.is-ready .csb-pv__fallback{justify-content:flex-end;padding:.2rem 1rem}
.csb-pv.is-loading{min-height:420px}
