input[type=text] {
    outline: none;
    box-sizing: border-box;
}

input[type=number] {
	width: 5em;

}
.cont {
    display: flex;
}

.opt {
    flex-direction: row;
    display: flex;
    flex-grow: 1;
}

.menu {
    flex-grow: 1;
}

.inst {
    font-size: 1.2em;
    text-align: center;
    padding: 5px 10px;
    box-sizing: border-box;
    box-shadow: 0 3px 5px black;
    background-color: #EDC8FF;
}

.opciones>div {
    margin: 0 10px;
}

.opciones {
	position: relative;
	max-height: 90vh;
	overflow-y: auto;
    display: flex;
    flex-direction: column;
    min-width: 20vw;
    width: 20vw;
}

#imprimir {
	background-color: lightgrey;
	overflow: auto;
	max-height: 80vh;
    min-height: 80vh;
    flex-grow: 1;
    border: 20px solid #13BBAF;
    margin: 20px 40px;
    padding: 20px;
    box-shadow: 0 0 10px black;
}

.menuy {
	position: sticky;
	top: 0;
	background-color: white;
	margin: 0!important;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-top: 1em;
    z-index: 3;
}

.menuy img {
    height: 2em;
}

.menuy>span:hover {
    transform: scale(1.1);
}

.menuy>span {
    transition: all .5s;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5em;
    margin-bottom: .5em;
}

.bott {
    align-items: center;
    display: flex;
    flex-direction: column;
    padding: 10px 10px;
}

#imprimir>div>div {
    background-color: white;
}

.fec,.lineas div:first-child {
    border-top: 2px solid #000
}

.centrar>div,.centrar>div>div>* {
    display: flex;
    justify-content: center;
    align-items: center
}

.linea {
    height: 1em;
    width: 100%;
    border-bottom: 1px solid grey
}

.centrar,.centrar>div>div {
    display: flex;
    flex-direction: column;
    justify-content: center
}

.titulo {
    justify-content: center;
    text-align: center;
    font-size: 2.5em
}

#imprimir>div {
    margin-left: auto;
    margin-right: auto;
    background-color: #fff;
    border-bottom: 1.5cm solid #f0f8ff;
    width: 18.5cm
}

.vistap {
    display: flex;
    justify-content: center
}

#imprimir>div>div {
    display: flex
}

.hoja>div {
    flex-direction: column
}

.fec {
    width: 20%
}

.lineas div:last-child {
    border-bottom: none
}

.lineas {
    flex-grow: 1
}

.notas {
    border: 1px solid grey;
    height: 4cm;
    border-top: 2px solid #000
}

#imprimir>div {
    display: flex;
    flex-direction: column;
    height: 279mm;
    border: 1cm solid transparent;
    background-color: white;
    border-image-repeat: round;
}

@media print {
    @page {
		size: letter;
		margin: 0;
	}
	body {
		background-color: white
	}
	body * {
		visibility: hidden
	}
	.menu,
	.opciones,
	nav,
	.centrar {
		display: none!important
	}
	input,
	textarea {
		background-color: transparent;
		outline: 0;
		border: none
	}
	#imprimir>div {
		page-break-inside: avoid;
		page-break-after: auto;
		margin: 0;
	}
	.hoja{
		width: 100vw!important;
		height: 100vh!important;
		box-sizing: border-box!important;
	}
	#imprimir * {
		visibility: visible
	}
	#imprimir {
		top: 0;
		left: 0;
		width: auto;
		height: auto;
		overflow: visible;
		margin: 0;
		border:none;
		padding:0;
	}
}

.contenido {
    flex-direction: column;
    background-color: white;
    flex-grow: 1;
    padding: 5mm;
    max-height: calc(100% - 1cm);
}

.contenido>div {
    display: flex;
}

.notas {
    flex-grow: 1;
}

.centrar {
    margin: 0 20%;
}

.centrar input[type=number] {
    width: 3em;
}

.asis {
    border-collapse: collapse;
    width: 100%;
}

.asis td:nth-child(1) {
    width: 2rem;
    text-align: center;
}

.asis tr:first-child td:nth-child(2) {
    text-align: center;
}

.asis td:nth-child(2) {
    width: 40%;
}

.asis td {
    height: .7cm;
    border: 1px solid grey;
}

.extra .linea {
    height: 1cm;
}

.element {
    flex-wrap: wrap;
    align-items: stretch!important;
}

.pdf {
    display: flex;
    text-align:center;
}

.pdf a:hover {
    color: red
}

.pdf a {
    display: flex;
    justify-content: center;
    align-items: center
}

.pdfIcon {
    max-width: 2em;
    max-height: 2em
}

.element>div:hover {
    background-color: azure;
}

.alumno, .tutor, .domicilio, .telefono {
    flex-grow: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: black;
    background-color: transparent;
    border: none;
    resize: none;
    font-size: 1.2em;
}

.element>div {
    padding: 1em 0;
    border: 2px solid lavender;
    box-sizing: content-box;
    flex-grow: 1;
}

.titfirmas {
    text-align: center;
}

.tiempo {
    flex-direction: column;
}

.hoja {
    background-origin: border-box;
    margin-top: 10px;
}

.cuerpo>div {
    margin: 1em;
}

.cuerpo {
    flex-direction: column;
    font-size: 1.5em;
}

.firmas .linea {
    justify-content: center;
    display: flex;
    margin: .5em;
}

.firmas .persona {
    position: absolute;
    top: 100%;
}

.firmas {
    display: flex;
    position: relative;
}

.infoAl .linea {
    width: unset;
    flex-grow: 1;
}

.infoAl > div {
    display: flex;
}

.fecha .linea {
    width: 25%;
}

.fecha {
    display: flex;
    justify-content: flex-end;
    width: 100%;
}

.cumpleImg img {
    width: 1em;
    height: 1em;
}

.cumple {
    flex-wrap: wrap;
    background-color: white;
    font-size: 2em;
}

.nomMes {
    display: flex;
    justify-content: center;
}

.cumpleMes {
    background-image: url("globo.png");
    background-color: rgba(255,255,255,.1);
    background-size: 70%;
    background-position: center;
    background-repeat: no-repeat;
    box-sizing: border-box;
    width: 33%;
    height: 25%;
    display: flex;
    padding: .5rem;
    flex-direction: column;
}

.calen img {
    max-width: 100%;
    max-height: 100%;
}

.agendaT {
    font-size: 4em;
    justify-content: center;
    background-color: white;
    align-items: center;
    border: 10px double black;
}

#imgPort {
    max-height: 60%;
    max-width: 100%;
    padding: 5%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-grow: 1;
}

#imgPort img {
    object-fit: contain;
    max-width: 100%;
    max-height: 100%;
}

#nomProf {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    font-size: 2em;
    font-style: italic;
}

.datosP,.datos {
    display: flex;
    flex-direction: column;
    background-color: white;
    border: 4px solid black;
    border-radius: 1em;
    padding: 1em;
}

.datosP {
    font-size: 1.3em;
    text-align: center;
    flex-grow: 1;
}

.datosP .linea {
    height: 1cm;
    margin-bottom: 1em;
    border-bottom: 2px solid black;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    font-weight: normal;
    font-style: italic;
}

.datos .linea {
    height: 1.5cm;
    border-bottom: 1mm solid black;
}

.cus-opt {
    font-size: 1.2em;
    font-weight: bold;
}

.switch input {
    display: none;
}

.switch input:checked+.bola {
    right: 1px;
    left: unset;
    background-color: cornflowerblue;
}

.switch .bola {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    position: absolute;
    top: 1px;
    left: 1px;
    background-color: lightgrey;
}

.switch:hover {
    background-color: lavender;
}

.switch {
    cursor: pointer;
    position: relative;
    display: inline-block;
    width: 40px;
    border: 1px solid lightblue;
    border-radius: 10px;
    height: 20px;
    background-color: white;
}

.prodSel {
    /*background-color: cornflowerblue;*/
    border: 3px solid cornflowerblue;
    background-color: white;
}

.intervalo input, .loader input {
    display: none;
}

.intervalo label:hover {
    background-color: whitesmoke;
    border: 3px solid lightblue;
}

.intervalo label {
    border-radius: 10px;
    padding: 3px;
    cursor: pointer;
    margin: 0 10px;
    font-size: 1.1em;
}

.loader img:hover {
    border: 2px solid orange;
}

.loader img {
    max-height: 2em;
    max-width: 2em;
    cursor: pointer;
}

input[type=color] {
    width: 2em;
    height: 2em;
    border: none;
    outline: none;
    padding: 0;
    background: transparent;
    cursor: pointer;
}

.real-opt {
    flex-wrap: wrap;
}

.cabeza {
    display: flex;
    font-size: 1.3em;
    background-color: lavender;
    justify-content: space-around;
}

.ficha {
    flex-wrap: wrap;
    justify-content: space-around;
}

.ficha .dirDiv>div>div:first-child {
    width: 1cm;
}

.ficha .dirDiv img {
    max-height: .7cm;
    max-width: 1cm;
}

.ficha .dirDiv>div {
    height: .8cm;
    display: flex;
}

.dirDiv>div:nth-child(2n) {
    background-color: #f4f4fe;
}

.dirDiv .linea {
    height: .8cm;
}

.dirDiv {
    display: flex;
    flex-direction: column;
}

.ficha .dirDiv {
    display: flex;
    flex-direction: column;
    width: calc(calc(50% - 1cm) - 4px);
    margin: 1em 0;
    border: 2px solid cadetblue;
}

.centrar>div:not(.inst) {
    background-color: white;
    padding: 1em 0;
    border: 3px solid #8080FF;
    border-top: 3px solid lightblue;
}

.per {
    margin: 0 10px;
}

@media screen and (max-width: 768px) {
    .centrar, #imprimir {
        margin: 0;
        width: 100vw;
    }

    #imprimir {
		margin: 0;
		border:none;
		padding:0;
    }

    .hoja {
        width: 80vw!important;
        height: 107vw!important;
    }

    .hoja {
        font-size: 2vw;
        border-width: 2em!important;
    }

    .contenido {
        height: 100%;
    }

    .linea {
        font-size: 2vw;
        height: 1em!important;
    }

    .contenido {
        padding: 1em;
    }
}

@media screen and (max-width: 700px){
	.cont{
		flex-direction: column;
	}
	.opciones{
		width: auto;
		min-width: unset;
	}
}