/* GLOBALES */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}


input[type=number] {
-moz-appearance: textfield;
}

/* CONVERSION DE PX A REM */
html {
  font-size: 62.5%;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, picture, svg {
  display: block;
  max-width: 100%;
}

input, button {
  font: inherit;
}

.btn-form{
    height: 3rem;
    width: 22rem;
    font-size: 1.5rem;
    font-weight: 600;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: orange;
    border: none;
    color: white;
    cursor: pointer;
    transition: border-radius 0.3s;
}
.btn-form:hover{
    border-radius: 5rem;
}

a {
  text-decoration: none;
  color: inherit;
}


/* FORMULARIOS */
main {
    height: 100vh;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.container{
    display: flex;
    width: 80%;
    height: 80%;
    border-radius: 8rem 0 8rem 0;
    box-shadow: 3rem 3rem 5rem gray;
    overflow: hidden;

}
.cont-form{
    width: 60%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    overflow-y: auto;
    gap: 0.5rem;
}
.cont-log{
    width: 40%;
    background: linear-gradient(135deg, #f97316 0%, #fbbf24 50%,#fde047 100%);
    display: flex;
    justify-content: center;
    align-items: center;
}
.cont-log img{
    height: 50%;
    width: 50%;
}

form{
    width: 80%;
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    gap: 2rem;
}
form h2{
    font-size: 2.5rem;
}

.cont-input{
    width: 80%;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-self: stretch;
}

.cont-input input,
.cont-input select {
    width: 100%;
}

input, select{
    font-size: 1.5rem;
    border: none;
    border-bottom: orange solid;
    height: 3rem;
}

form.form-miidas-taller {
    gap: 1.2rem;
    padding: 1.5rem 0;
}

form.form-miidas-taller h2 {
    font-size: 2.2rem;
}

.label-field {
    font-size: 1.4rem;
    color: #333;
    font-weight: 500;
}

.input-select {
    width: 100%;
    background: #fff;
    cursor: pointer;
    padding: 0 0.5rem;
}

.input-select:focus {
    outline: none;
    border-bottom: yellow solid;
}

input:focus{
    outline: none;
    border-bottom: yellow solid;
}

/* Validación: rojo = incorrecto, verde = correcto */
input.input-error {
    border-bottom: 2px solid #dc2626 !important;
}
input.input-ok {
    border-bottom: 2px solid #16a34a !important;
}
.btn-form:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}
.btn-form:disabled:hover {
    border-radius: 0;
}

/* Mensajes de error debajo del campo */
.msg-error {
    display: block;
    font-size: 1.2rem;
    color: #dc2626;
    margin-top: 0.3rem;
    min-height: 1.6rem;
}

.options{
    height: 3rem;
    font-size: 1.5rem;
    display: flex;
    gap: 1rem;
}
.options span{
    cursor: pointer;
    transition: font-size 0.2s;
    color: orange;
}
.options span:hover {
    font-size: 1.8rem;
}

/* SOPORTE TÉCNICO */
.btn-soporte {
    margin-top: 1.5rem;
    padding: 0.8rem 2rem;
    font-size: 1.4rem;
    font-weight: 600;
    background: transparent;
    border: 2px solid orange;
    color: orange;
    cursor: pointer;
    transition: background-color 0.25s, color 0.25s, border-radius 0.3s;
}

.btn-soporte:hover {
    background-color: orange;
    color: white;
    border-radius: 5rem;
}

.modal-soporte {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.45);
    justify-content: center;
    align-items: center;
    padding: 2rem;
}

.modal-soporte.modal-abierto {
    display: flex;
}

.modal-soporte-contenido {
    position: relative;
    background: #fff;
    border-radius: 1.5rem;
    padding: 3rem 2.5rem 2.5rem;
    width: 100%;
    max-width: 42rem;
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.2);
    text-align: center;
}

.modal-soporte-cerrar {
    position: absolute;
    top: 0.8rem;
    right: 1.2rem;
    border: none;
    background: transparent;
    font-size: 2.8rem;
    line-height: 1;
    color: #888;
    cursor: pointer;
}

.modal-soporte-cerrar:hover {
    color: #333;
}

.modal-soporte-contenido h3 {
    font-size: 2.2rem;
    margin-bottom: 0.6rem;
    color: #222;
}

.modal-soporte-desc {
    font-size: 1.4rem;
    color: #666;
    margin-bottom: 2rem;
}

.lista-soporte {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

.lista-soporte li {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    padding: 1.2rem;
    border: 1px solid #f0f0f0;
    border-radius: 1rem;
    background: #fafafa;
}

.soporte-nombre {
    font-size: 1.5rem;
    font-weight: 600;
    color: #333;
}

.soporte-whatsapp {
    font-size: 1.6rem;
    font-weight: 700;
    color: #25d366;
    transition: transform 0.2s;
}

.soporte-whatsapp:hover {
    transform: scale(1.05);
    text-decoration: underline;
}

/*GLOBALES RESPONSIVE*/
@media (max-width: 360px){
.container {
flex-direction: column;
width: 95%;
height: auto;
border-radius: 3rem;
}


.cont-log, .cont-form {
width: 100%;
height: auto;
}


.cont-log img {
width: 70%;
height: auto;
}


form {
width: 90%;
gap: 1rem;
}


input {
font-size: 1.4rem;
height: 2.8rem;
}


.btn-form {
width: 90%;
font-size: 1.4rem;
}


.options {
flex-direction: row;
font-size: 1.4rem;
gap: 0.5rem;
}


form h2 {
font-size: 2rem;
text-align: center;
}
}


/* CELULARES MEDIANOS */
@media (min-width: 361px) and (max-width: 414px){
.container {
flex-direction: column;
width: 95%;
height: auto;
border-radius: 4rem;
}


.cont-log, .cont-form {
width: 100%;
height: auto;
}


.cont-log img {
width: 60%;
height: auto;
}


form {
width: 90%;
gap: 1.2rem;
}


input {
font-size: 1.5rem;
height: 3rem;
}


.btn-form {
width: 90%;
font-size: 1.5rem;
}


.options {
flex-direction: row;
font-size: 1.5rem;
gap: 0.8rem;
}


form h2 {
font-size: 2.2rem;
text-align: center;
}
}

/* INTRODUCCIÓN QR — NEXUS UTB */
.modal-qr {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    background: rgba(17, 24, 39, 0.78);
    backdrop-filter: blur(0.6rem);
    animation: modalQrIn 0.28s ease;
}

@keyframes modalQrIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.modal-qr-contenido {
    position: relative;
    width: min(100%, 64rem);
    max-height: calc(100vh - 4rem);
    overflow: auto;
    background: #fffdf8;
    border-radius: 2.4rem;
    box-shadow: 0 2.8rem 7rem rgba(0, 0, 0, 0.38);
}

.modal-qr-contenido::before {
    content: "";
    display: block;
    height: 0.7rem;
    background: linear-gradient(90deg, #f97316 0%, #fbbf24 55%, #fde047 100%);
}

.modal-qr-cerrar {
    position: absolute;
    top: 1.8rem;
    right: 1.6rem;
    z-index: 2;
    width: 3.6rem;
    height: 3.6rem;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.94);
    color: #1f2937;
    font-size: 2.4rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 0.4rem 1.4rem rgba(0, 0, 0, 0.22);
}

.modal-qr-cerrar:hover {
    background: #fff;
    color: #c2410c;
}

.modal-qr-video {
    position: relative;
    aspect-ratio: 16 / 9;
    background: #111827;
}

.modal-qr-video video {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    background: #111827;
}

.modal-qr-velo {
    position: absolute;
    inset: 0;
    background: rgba(17, 24, 39, 0.55);
}

.modal-qr-play {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 2;
    transform: translate(-50%, -50%);
    border: none;
    border-radius: 999px;
    padding: 1.4rem 3.6rem;
    background: #f97316;
    color: #fff;
    font-size: 1.8rem;
    font-weight: 700;
    letter-spacing: 0.04rem;
    cursor: pointer;
    box-shadow: 0 0.8rem 2rem rgba(249, 115, 22, 0.45);
}

.modal-qr-play:hover {
    background: #ea580c;
}

.modal-qr-sonido {
    position: absolute;
    left: 1.4rem;
    bottom: 1.4rem;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 999px;
    padding: 0.7rem 1.4rem;
    background: rgba(17, 24, 39, 0.82);
    color: #fff;
    font-size: 1.3rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 0.4rem 1.2rem rgba(0, 0, 0, 0.28);
}

.modal-qr-progreso {
    height: 0.45rem;
    background: #f3e8d8;
}

.modal-qr-progreso span {
    display: block;
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, #f97316, #fbbf24);
}

.modal-qr-texto {
    padding: 2.2rem 2.6rem 2.8rem;
    text-align: center;
}

.modal-qr-etiqueta {
    margin-bottom: 0.4rem;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: 0.22rem;
    text-transform: uppercase;
    color: #ea580c;
}

.modal-qr-texto h3 {
    margin-bottom: 0.8rem;
    font-size: 2.8rem;
    line-height: 1.2;
    color: #1f2937;
}

.modal-qr-texto p {
    font-size: 1.5rem;
    line-height: 1.5;
    color: #4b5563;
}

.modal-qr-continuar {
    margin-top: 1.6rem;
    border: none;
    border-radius: 999px;
    padding: 1rem 2.2rem;
    background: #f97316;
    color: #fff;
    font-size: 1.5rem;
    font-weight: 700;
    cursor: pointer;
}

.modal-qr-continuar:hover {
    background: #ea580c;
}

@media (max-width: 414px) {
    .modal-qr {
        padding: 1.2rem;
    }

    .modal-qr-contenido {
        border-radius: 1.8rem;
    }

    .modal-qr-texto {
        padding: 1.8rem 1.6rem 2.2rem;
    }

    .modal-qr-texto h3 {
        font-size: 2.3rem;
    }
}