mirror of
https://github.com/ganglyglub2-gif/cotizador-impresion-3D.git
synced 2026-07-22 04:35:12 +00:00
Commit inicial del cotizador 3D
This commit is contained in:
+275
@@ -0,0 +1,275 @@
|
||||
/* ==========================
|
||||
ESTILO BASE ORIGINAL
|
||||
========================== */
|
||||
body {
|
||||
font-family: "Poppins", sans-serif;
|
||||
background: linear-gradient(135deg, #2c3e50, #4ca1af);
|
||||
color: #fff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
min-height: 100vh;
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
/* CONTENEDOR PRINCIPAL */
|
||||
.contenedor {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
backdrop-filter: blur(10px);
|
||||
border-radius: 16px;
|
||||
padding: 30px 40px;
|
||||
width: 900px;
|
||||
max-width: 95%;
|
||||
text-align: center;
|
||||
box-shadow: 0 8px 20px rgba(0,0,0,0.3);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-bottom: 20px;
|
||||
font-size: 1.6em;
|
||||
}
|
||||
|
||||
/* CAMPOS DEL FORMULARIO */
|
||||
.campo {
|
||||
margin-bottom: 15px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
label {
|
||||
display: block;
|
||||
margin-bottom: 6px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* DROPDOWNS MÁS COMPACTOS */
|
||||
select {
|
||||
width: 100%;
|
||||
padding: 8px 10px;
|
||||
border-radius: 8px;
|
||||
border: none;
|
||||
outline: none;
|
||||
font-size: 0.9em;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
input[type="file"] {
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
border-radius: 8px;
|
||||
border: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
|
||||
.boton {
|
||||
margin-top: 15px;
|
||||
width: 60%;
|
||||
background-color: #00b894;
|
||||
border: none;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
padding: 12px;
|
||||
border-radius: 10px;
|
||||
cursor: pointer;
|
||||
transition: background 0.3s;
|
||||
font-size: 0.95em;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.boton:hover {
|
||||
background-color: #019875;
|
||||
}
|
||||
|
||||
/* ==========================
|
||||
RESULTADOS
|
||||
========================== */
|
||||
.resultado {
|
||||
margin-top: 25px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* TARJETAS DE RESULTADOS */
|
||||
.card-resultado {
|
||||
background: linear-gradient(145deg, #00b894, #019875);
|
||||
color: #fff;
|
||||
border-radius: 14px;
|
||||
padding: 25px;
|
||||
box-shadow: 0 4px 15px rgba(0,0,0,0.2);
|
||||
animation: aparecer 0.6s ease;
|
||||
height: fit-content;
|
||||
}
|
||||
|
||||
.card-resultado h2,
|
||||
.card-resultado h3 {
|
||||
text-align: center;
|
||||
margin-bottom: 10px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.res-item {
|
||||
margin: 6px 0;
|
||||
font-size: 1.05em;
|
||||
}
|
||||
|
||||
.card-resultado hr {
|
||||
border: none;
|
||||
border-top: 1px solid rgba(255,255,255,0.4);
|
||||
margin: 15px 0;
|
||||
}
|
||||
|
||||
.total {
|
||||
font-size: 1.2em;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.card-resultado.error {
|
||||
background: linear-gradient(145deg, #ff7675, #d63031);
|
||||
}
|
||||
|
||||
/* BOTÓN DESCARGAR */
|
||||
.acciones {
|
||||
text-align: center;
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.boton-descargar {
|
||||
display: inline-block;
|
||||
background-color: #0984e3;
|
||||
color: #fff;
|
||||
padding: 10px 16px;
|
||||
border-radius: 8px;
|
||||
text-decoration: none;
|
||||
transition: background 0.3s;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.boton-descargar:hover {
|
||||
background-color: #74b9ff;
|
||||
}
|
||||
|
||||
/* ==========================
|
||||
DOS COLUMNAS LATERALES
|
||||
========================== */
|
||||
.resultado-dos-columnas {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
gap: 20px;
|
||||
margin-top: 25px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.resultado-dos-columnas .card-resultado {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
/* ==========================
|
||||
ANIMACIÓN
|
||||
========================== */
|
||||
@keyframes aparecer {
|
||||
from { opacity: 0; transform: translateY(10px); }
|
||||
to { opacity: 1; transform: translateY(0); }
|
||||
}
|
||||
|
||||
/* ==========================
|
||||
ADAPTABILIDAD MÓVIL
|
||||
========================== */
|
||||
@media (max-width: 768px) {
|
||||
body {
|
||||
height: auto;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.contenedor {
|
||||
width: 100%;
|
||||
max-width: 420px;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.resultado-dos-columnas {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.resultado-dos-columnas .card-resultado {
|
||||
flex: 1 1 100%;
|
||||
}
|
||||
|
||||
.boton {
|
||||
width: 80%;
|
||||
}
|
||||
}
|
||||
|
||||
/* =============================
|
||||
🔵 Loader (Barra y Spinner)
|
||||
============================= */
|
||||
|
||||
#loader-overlay {
|
||||
display: none;
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
background: rgba(0, 0, 0, 0.85);
|
||||
z-index: 9999;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
color: #fff;
|
||||
font-family: Arial, sans-serif;
|
||||
text-align: center;
|
||||
opacity: 0;
|
||||
transition: opacity 0.4s ease;
|
||||
}
|
||||
|
||||
#loader-overlay[style*="display: flex"] {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.loader-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.loader-spinner {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border: 6px solid rgba(255, 255, 255, 0.2);
|
||||
border-top-color: #00b4d8;
|
||||
border-radius: 50%;
|
||||
animation: girar 1s linear infinite;
|
||||
}
|
||||
|
||||
.loader-text {
|
||||
margin-top: 20px;
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
text-shadow: 0 0 6px rgba(0, 180, 216, 0.8);
|
||||
}
|
||||
|
||||
.barra-contenedor {
|
||||
width: 80%;
|
||||
max-width: 400px;
|
||||
height: 12px;
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
border-radius: 6px;
|
||||
overflow: hidden;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.barra-progreso {
|
||||
width: 0%;
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg, #00b4d8, #48cae4, #90e0ef);
|
||||
transition: width 0.2s ease-in-out;
|
||||
}
|
||||
|
||||
@keyframes girar {
|
||||
to { transform: rotate(360deg); }
|
||||
}
|
||||
Reference in New Issue
Block a user