.image-container { display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; margin-bottom: 20px; position: relative; max-width: 200px; } /* Estilo de la imagen */ .image-container img { max-width: 150px; max-height: 150px; } /* Pseudo-elemento que muestra el tick */ .image-container.selected::after { content: '✔'; /* Símbolo de tick */ position: absolute; top: calc(50% + 5px); left: calc(100%/2 + 65px); /* Mueve 75px a la derecha fuera del contenedor */ font-size: 50px; font-weight: bold; color: green; background-color: rgba(255, 255, 255, 0); /* Fondo transparente */ border-radius: 100%; padding: 5px; } .image-presupuesto { transition: transform 1s ease; } .image-presupuesto.selected { --webkit-transform: rotateY(360deg); --webkit-transform-style: preserve-3d; transform: rotateY(360deg); transform-style: preserve-3d; } .checkbox-presupuesto-container { width: 110px !important; max-width: 110px !important; min-width: 110px !important; } .checkbox-presupuesto-tiradas-envio { width: 130px !important; max-width: 130px !important; min-width: 130px !important; } .min-width-fit { min-width: fit-content !important; } .texto-error { color: #ea5455; font-weight: bold; } .col-item-resumen-table { max-width: 200px; width: 200px; font-weight: bold; } .loader * { border: 0; box-sizing: border-box; margin: 0; padding: 0; } .loader { --hue: 223; --bg: hsl(var(--hue), 10%, 90%); --fg: hsl(var(--hue), 10%, 10%); --primary: hsl(var(--hue), 90%, 55%); --primary-l: hsl(var(--hue), 90%, 65%); --primary-d: hsl(var(--hue), 90%, 45%); --white: hsl(var(--hue), 10%, 100%); --white-d: hsl(var(--hue), 10%, 45%); font-size: calc(16px + (24 - 16) * (100vw - 320px) / (1280 - 320)); background-color: rgba(255, 255, 255, 0); color: var(--fg); font: 1em/1.5 sans-serif; height: 100vh; position: fixed; /* Fijo para cubrir la pantalla */ left: 50%; /* Centramos horizontalmente */ top: 50%; /* Centramos verticalmente */ transform: translate(-50%, -50%); /* Ajuste para centrar el loader */ width: auto; /* Se ajusta automáticamente */ height: auto; /* Se ajusta automáticamente */ z-index: 9999; /* Mantener por encima de otros elementos */ display: flex; /* Para centrar contenido */ justify-content: center; /* Centrar horizontalmente */ align-items: center; /* Centrar verticalmente */ background-color: rgba(255, 255, 255, 0); /* Fondo completamente transparente */ } .book, .book__pg-shadow, .book__pg { animation: cover 7s ease-in-out infinite; } .book { background-color: var(--primary-l); border-radius: 0.25em; box-shadow: 0 0.25em 0.5em hsla(0, 0%, 0%, 0.3), 0 0 0 0.25em var(--primary) inset; padding: 0.25em; perspective: 37.5em; position: relative; width: 8em; height: 6em; transform: translate3d(0, 0, 0); transform-style: preserve-3d; } .book__pg-shadow, .book__pg { position: absolute; left: 0.25em; width: calc(50% - 0.25em); } .book__pg-shadow { animation-name: shadow; background-image: linear-gradient(-45deg, hsla(0, 0%, 0%, 0) 50%, hsla(0, 0%, 0%, 0.3) 50%); filter: blur(0.25em); top: calc(100% - 0.25em); height: 3.75em; transform: scaleY(0); transform-origin: 100% 0%; } .book__pg { animation-name: pg1; background-color: var(--white); background-image: linear-gradient(90deg, hsla(var(--hue), 10%, 90%, 0) 87.5%, hsl(var(--hue), 10%, 90%)); height: calc(100% - 0.5em); transform-origin: 100% 50%; } .book__pg--2, .book__pg--3, .book__pg--4 { background-image: repeating-linear-gradient(hsl(var(--hue), 10%, 10%) 0 0.125em, hsla(var(--hue), 10%, 10%, 0) 0.125em 0.5em), linear-gradient(90deg, hsla(var(--hue), 10%, 90%, 0) 87.5%, hsl(var(--hue), 10%, 90%)); background-repeat: no-repeat; background-position: center; background-size: 2.5em 4.125em, 100% 100%; } .book__pg--2 { animation-name: pg2; } .book__pg--3 { animation-name: pg3; } .book__pg--4 { animation-name: pg4; } .book__pg--5 { animation-name: pg5; } /* Dark theme */ @media (prefers-color-scheme: dark) { :root { --bg: hsl(var(--hue), 10%, 30%); --fg: hsl(var(--hue), 10%, 90%); } } /* Animations */ @keyframes cover { from, 5%, 45%, 55%, 95%, to { animation-timing-function: ease-out; background-color: var(--primary-l); } 10%, 40%, 60%, 90% { animation-timing-function: ease-in; background-color: var(--primary-d); } } @keyframes shadow { from, 10.01%, 20.01%, 30.01%, 40.01% { animation-timing-function: ease-in; transform: translate3d(0, 0, 1px) scaleY(0) rotateY(0); } 5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% { animation-timing-function: ease-out; transform: translate3d(0, 0, 1px) scaleY(0.2) rotateY(90deg); } 10%, 20%, 30%, 40%, 50%, to { animation-timing-function: ease-out; transform: translate3d(0, 0, 1px) scaleY(0) rotateY(180deg); } 50.01%, 60.01%, 70.01%, 80.01%, 90.01% { animation-timing-function: ease-in; transform: translate3d(0, 0, 1px) scaleY(0) rotateY(180deg); } 60%, 70%, 80%, 90%, to { animation-timing-function: ease-out; transform: translate3d(0, 0, 1px) scaleY(0) rotateY(0); } } @keyframes pg1 { from, to { animation-timing-function: ease-in-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(0.4deg); } 10%, 15% { animation-timing-function: ease-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(180deg); } 20%, 80% { animation-timing-function: ease-in; background-color: var(--white-d); transform: translate3d(0, 0, 1px) rotateY(180deg); } 85%, 90% { animation-timing-function: ease-in-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(180deg); } } @keyframes pg2 { from, to { animation-timing-function: ease-in; background-color: var(--white-d); transform: translate3d(0, 0, 1px) rotateY(0.3deg); } 5%, 10% { animation-timing-function: ease-in-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(0.3deg); } 20%, 25% { animation-timing-function: ease-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(179.9deg); } 30%, 70% { animation-timing-function: ease-in; background-color: var(--white-d); transform: translate3d(0, 0, 1px) rotateY(179.9deg); } 75%, 80% { animation-timing-function: ease-in-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(179.9deg); } 90%, 95% { animation-timing-function: ease-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(0.3deg); } } @keyframes pg3 { from, 10%, 90%, to { animation-timing-function: ease-in; background-color: var(--white-d); transform: translate3d(0, 0, 1px) rotateY(0.2deg); } 15%, 20% { animation-timing-function: ease-in-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(0.2deg); } 30%, 35% { animation-timing-function: ease-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(179.8deg); } 40%, 60% { animation-timing-function: ease-in; background-color: var(--white-d); transform: translate3d(0, 0, 1px) rotateY(179.8deg); } 65%, 70% { animation-timing-function: ease-in-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(179.8deg); } 80%, 85% { animation-timing-function: ease-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(0.2deg); } } @keyframes pg4 { from, 20%, 80%, to { animation-timing-function: ease-in; background-color: var(--white-d); transform: translate3d(0, 0, 1px) rotateY(0.1deg); } 25%, 30% { animation-timing-function: ease-in-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(0.1deg); } 40%, 45% { animation-timing-function: ease-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(179.7deg); } 50% { animation-timing-function: ease-in; background-color: var(--white-d); transform: translate3d(0, 0, 1px) rotateY(179.7deg); } 55%, 60% { animation-timing-function: ease-in-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(179.7deg); } 70%, 75% { animation-timing-function: ease-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(0.1deg); } } @keyframes pg5 { from, 30%, 70%, to { animation-timing-function: ease-in; background-color: var(--white-d); transform: translate3d(0, 0, 1px) rotateY(0); } 35%, 40% { animation-timing-function: ease-in-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(0deg); } 50% { animation-timing-function: ease-in-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(179.6deg); } 60%, 65% { animation-timing-function: ease-out; background-color: var(--white); transform: translate3d(0, 0, 1px) rotateY(0); } } .texto-resumen-lateral { font-size: 0.9em; } .num-input { min-width: 100px; } .div-num-input { min-width: 105px; } .custom-selector{ display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; margin-bottom: 20px; position: relative; max-width: 300px; } /* Asegurar el tamaño uniforme del contenedor */ .custom-selector-gramaje, .custom-selector-gramaje-color { width: 100px !important; /* Fija el ancho */ } .custom-selector { display: flex !important; flex-direction: column !important; justify-content: center !important; align-items: center; text-align: center; margin-bottom: 5px; position: relative; width: 250px; /* Fija el ancho */ height: 80px; /* Fija el alto */ padding: 0.5em; box-sizing: border-box; /* Incluir padding en el tamaño total */ border: 3px solid transparent; /* Evitar deformaciones por borde */ } /* Ocultar los radio buttons */ .custom-selector input[type="radio"] { display: none; } /* Estilo para el label */ .custom-selector label { position: relative; color: black; font-family: "Poppins", sans-serif; cursor: pointer; display: grid; align-items: center; width: 100%; /* Llenar todo el contenedor */ height: 100%; /* Llenar todo el contenedor */ flex: 1; /* Tomar el espacio disponible */ gap: 0.8em; border: 1px solid #dbdade; padding: 0.5em 1em; border-radius: 0.5em; text-align: center; /* Texto alineado a la izquierda */ } /* Cambiar el estilo del label cuando está seleccionado */ .custom-selector input[type="radio"]:checked + label { background-color: #7367f0; color: #ffffff; }