/* Import the reindeer theme.*/
/* This only allows us to use the mixins defined in it and does not add any styles by itself. */
@import "../reindeer/reindeer.scss";

/* This contains all of your theme.*/
/* If somebody wants to extend the theme she will include this mixin. */
@mixin xacml_pap_admin {
  /* Include all the styles from the reindeer theme */
  @include reindeer;

  /* Insert your theme rules here */
  
  .v-textfield-dashing {
    border:     thin dashed;
    background: white; /* Has shading image by default */
	}
	
/* Lay the options horizontally */
.v-select-optiongroup-horizontal .v-select-option {
    display: inline-block;
}

/* Avoid wrapping if the layout is too tight */
.v-select-optiongroup-horizontal {
    white-space: nowrap;
}

/* Some extra spacing is needed */
.v-select-optiongroup-horizontal
  .v-select-option.v-radiobutton {
    padding-right: 10px;
}

.v-textfield { 
	min-width:400px;
}

.v-textarea { 
	min-width:250px;
}

}
