/* ==========================================================================
   Visualizzatore PDF — Dazzero Academy
   ========================================================================== */

/* --------------------------------------------------------------------------
   page-flip (St.PageFlip) — CSS di base della libreria, vendorizzato qui
   perché non fa parte della build che carichiamo da CDN (assets/js/pdf-
   viewer.js): senza queste regole la libreria costruisce il libro ma non
   lo vede nessuno. Copiato da src/Style/stPageFlip.css del pacchetto
   "page-flip", non toccato — se un giorno aggiorni la versione in
   inc/pdf-viewer.php, confronta anche questo blocco.
   -------------------------------------------------------------------- */
.stf__parent {
	position: relative;
	display: block;
	box-sizing: border-box;
	transform: translateZ(0);
	-ms-touch-action: pan-y;
	touch-action: pan-y;
}

.sft__wrapper {
	position: relative;
	width: 100%;
	box-sizing: border-box;
}

.stf__parent canvas {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
}

.stf__block {
	position: absolute;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	perspective: 2000px;
}

.stf__item {
	display: none;
	position: absolute;
	transform-style: preserve-3d;
}

.stf__outerShadow,
.stf__innerShadow,
.stf__hardShadow,
.stf__hardInnerShadow {
	position: absolute;
	left: 0;
	top: 0;
}

.dz-pdf {
	--dz-pdf-height: 800px;
	--dz-pdf-bg: #111111;
	--dz-pdf-bar: #1a1a1a;
	--dz-pdf-testo: #ffffff;

	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--dz-pdf-bg);
	width: 100%;
	outline: none;
}

.dz-pdf:focus-visible {
	box-shadow: 0 0 0 2px var(--dz-accento, #141414);
}

/* Area di lettura ---------------------------------------------------------- */
.dz-pdf__stage {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: var(--dz-pdf-height);
	overflow: auto;
	padding: 12px;
	-webkit-overflow-scrolling: touch;
}

.dz-pdf__pages {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	margin: auto;
}

.dz-pdf__pages.is-scroll {
	margin: 0 auto;
}

/* Modalità "volantino": niente scroll/padding intorno, il libro deve
   avere tutto lo spazio dello stage per calcolare da solo le sue misure
   (size: "stretch" nelle opzioni di page-flip, vedi pdf-viewer.js). */
.dz-pdf[data-mode="volantino"] .dz-pdf__stage {
	overflow: hidden;
	padding: 0;
}

.dz-pdf__pages.is-flip {
	width: 100%;
	height: 100%;
	margin: 0;
}

.dz-pdf__flip {
	width: 100%;
	height: 100%;
}

.dz-pdf__canvas {
	display: block;
	max-width: 100%;
	background: #ffffff;
	box-shadow: 0 6px 30px rgba(0, 0, 0, 0.45);
}

.dz-pdf__page {
	min-height: 40px;
}

/* Caricamento -------------------------------------------------------------- */
.dz-pdf__loader {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 120px;
}

.dz-pdf__spinner {
	width: 34px;
	height: 34px;
	border: 2px solid rgba(255, 255, 255, 0.2);
	border-top-color: #ffffff;
	border-radius: 50%;
	animation: dz-spin 800ms linear infinite;
}

@keyframes dz-spin {
	to { transform: rotate(360deg); }
}

.dz-pdf.is-loading .dz-pdf__canvas {
	opacity: 0.55;
	transition: opacity 150ms ease;
}

/* Errore + fallback iframe -------------------------------------------------- */
.dz-pdf__error {
	width: 100%;
	color: var(--dz-pdf-testo);
	text-align: center;
	font-size: 0.875rem;
}

.dz-pdf__error iframe {
	width: 100%;
	height: calc(var(--dz-pdf-height) - 80px);
	border: 0;
	margin-top: 12px;
	background: #ffffff;
}

.dz-pdf-missing {
	background: #fff4e5;
	border-left: 3px solid #d9822b;
	color: #7a4a10;
	font-size: 0.875rem;
	padding: 0.75rem 1rem;
}

/* Barra dei comandi --------------------------------------------------------- */
.dz-pdf__bar {
	display: flex;
	align-items: center;
	gap: 4px;
	background: var(--dz-pdf-bar);
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	color: var(--dz-pdf-testo);
	padding: 8px 12px;
}

/* Due barre, sopra e sotto la pagina (vedi pdf-viewer.js): quella in alto
   ha il filetto sotto, non sopra — separa dalla pagina che segue, non da
   un vuoto che non c'è. */
.dz-pdf__bar:first-child {
	border-top: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.dz-pdf__spacer {
	flex: 1 1 auto;
}

.dz-pdf__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	appearance: none;
	background: transparent;
	border: 0;
	border-radius: 2px;
	color: var(--dz-pdf-testo);
	cursor: pointer;
	padding: 0;
	transition: background-color 160ms ease, opacity 160ms ease;
}

.dz-pdf__btn svg {
	width: 20px;
	height: 20px;
}

.dz-pdf__btn:hover {
	background: rgba(255, 255, 255, 0.12);
}

.dz-pdf__btn:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: -2px;
}

.dz-pdf__btn[disabled] {
	opacity: 0.3;
	cursor: default;
}

.dz-pdf__counter {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--dz-font-ui, sans-serif);
	font-size: 0.8125rem;
	letter-spacing: 0.04em;
	padding: 0 4px;
	white-space: nowrap;
}

.dz-pdf__input {
	width: 52px;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 2px;
	color: var(--dz-pdf-testo);
	font-size: 0.8125rem;
	padding: 4px 6px;
	text-align: center;
	-moz-appearance: textfield;
}

.dz-pdf__input::-webkit-outer-spin-button,
.dz-pdf__input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.dz-pdf__total {
	opacity: 0.65;
}

/* Schermo intero ------------------------------------------------------------ */
.dz-pdf.is-fullscreen {
	--dz-pdf-height: 100vh;
	height: 100vh;
}

/* Due barre invece di una, sopra e sotto: l'altezza dello stage in
   fullscreen deve lasciarne fuori il doppio (52px l'una). */
.dz-pdf.is-fullscreen .dz-pdf__stage {
	height: calc(100vh - 104px);
}

/* Mobile -------------------------------------------------------------------- */
@media (max-width: 640px) {
	.dz-pdf {
		--dz-pdf-height: 70vh;
	}

	.dz-pdf__stage {
		padding: 8px;
	}

	.dz-pdf__btn {
		width: 40px;
		height: 40px;
	}
}
