diff --git a/src/main/java/org/olat/catalog/ui/CatalogAdminSiteMainController.java b/src/main/java/org/olat/catalog/ui/CatalogAdminSiteMainController.java
new file mode 100644
index 0000000000000000000000000000000000000000..d3deb67fa5e2f43e88f8dc89700fa92683a0f581
--- /dev/null
+++ b/src/main/java/org/olat/catalog/ui/CatalogAdminSiteMainController.java
@@ -0,0 +1,99 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.catalog.ui;
+
+import java.util.List;
+
+import org.olat.catalog.CatalogEntry;
+import org.olat.catalog.CatalogManager;
+import org.olat.core.CoreSpringFactory;
+import org.olat.core.commons.fullWebApp.LayoutMain3ColsController;
+import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.components.Component;
+import org.olat.core.gui.components.panel.Panel;
+import org.olat.core.gui.control.Controller;
+import org.olat.core.gui.control.Event;
+import org.olat.core.gui.control.WindowControl;
+import org.olat.core.gui.control.controller.BasicController;
+import org.olat.core.gui.control.generic.dtabs.Activateable2;
+import org.olat.core.gui.control.generic.tool.ToolController;
+import org.olat.core.id.context.ContextEntry;
+import org.olat.core.id.context.StateEntry;
+
+/**
+ * 
+ * Initial date: 12.05.2014<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class CatalogAdminSiteMainController extends BasicController implements Activateable2 {
+
+	private CatalogController catalogCtrl;
+	private LayoutMain3ColsController columnsLayoutCtr;
+	
+	public CatalogAdminSiteMainController(UserRequest ureq, WindowControl wControl) {
+		super(ureq, wControl);
+
+		CatalogManager catalogManager = CoreSpringFactory.getImpl(CatalogManager.class);
+		List<CatalogEntry> rootNodes = catalogManager.getRootCatalogEntries();
+		if(rootNodes.size() == 1) {
+			catalogCtrl = new CatalogController(ureq, getWindowControl());
+			listenTo(catalogCtrl);
+		}
+		
+		if(catalogCtrl != null) {
+			Component mainPanel = catalogCtrl.getInitialComponent();
+			ToolController toolCtrl = catalogCtrl.createCatalogToolController();
+			columnsLayoutCtr = new LayoutMain3ColsController(ureq, getWindowControl(), null, toolCtrl.getInitialComponent(), mainPanel, "repomain");
+			columnsLayoutCtr.addCssClassToMain("o_repository");
+			listenTo(columnsLayoutCtr);
+			putInitialPanel(columnsLayoutCtr.getInitialComponent());
+		} else {
+			putInitialPanel(new Panel("empty"));
+		}
+	}
+	
+	@Override
+	protected void doDispose() {
+		//
+	}
+	
+	@Override
+	protected void event(UserRequest ureq, Component source, Event event) {
+		//
+	}
+
+	@Override
+	protected void event(UserRequest ureq, Controller source, Event event) {
+		if (source == catalogCtrl) {
+			if (event == Event.CHANGED_EVENT) {
+				ToolController toolC = catalogCtrl.createCatalogToolController();
+				Component toolComp = (toolC == null ? null : toolC.getInitialComponent());
+				columnsLayoutCtr.setCol2(toolComp);
+			}
+		}
+		super.event(ureq, source, event);
+	}
+
+	@Override
+	public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) {
+		//
+	}
+}
diff --git a/src/main/java/org/olat/catalog/ui/CatalogController.java b/src/main/java/org/olat/catalog/ui/CatalogController.java
index 18837d732b7f939cfb8b8c3c00e370cbae7db20e..e83709de85e3d1a9f69aa2a95e324723fac05147 100644
--- a/src/main/java/org/olat/catalog/ui/CatalogController.java
+++ b/src/main/java/org/olat/catalog/ui/CatalogController.java
@@ -676,7 +676,7 @@ public class CatalogController extends BasicController implements Activateable2
 		} else if (source == addEntryForm) {
 			cmc.deactivate();
 			
-			currentCatalogEntry = addEntryForm.getEditedCatalogEntry();
+			//currentCatalogEntry = addEntryForm.getEditedCatalogEntry();
 			updateContent(ureq, currentCatalogEntry, currentCatalogEntryLevel);
 			updateToolAccessRights(ureq, currentCatalogEntry, currentCatalogEntryLevel);
 			cleanUp();
@@ -925,6 +925,7 @@ public class CatalogController extends BasicController implements Activateable2
 
 		} else myContent.contextPut("hasOwnedLinks", Boolean.FALSE);
 		updateHistory(ureq);
+		myContent.setDirty(true);
 	}
 
 	public void updateHistory(UserRequest ureq) {
diff --git a/src/main/java/org/olat/catalog/ui/_content/catalog.html b/src/main/java/org/olat/catalog/ui/_content/catalog.html
index aa14687242b6df385bab3f79e693cf11ce796eb9..01a996a0ef92d6add986c1dbd0e605d023aeec65 100644
--- a/src/main/java/org/olat/catalog/ui/_content/catalog.html
+++ b/src/main/java/org/olat/catalog/ui/_content/catalog.html
@@ -66,7 +66,7 @@
 		<div class="o_catalog_link_title">
 			$r.translate("title.leaves")
 		</div>
-		<table class="b_table b_full">
+		<table class="table b_full">
 		#foreach($child in $children)
 			#if ($child.getType()==$leaf)
 
diff --git a/src/main/java/org/olat/core/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/core/_i18n/LocalStrings_de.properties
index 4ca1c131f47bbd54b1250e151f6b52b1b1d7a642..35135b732cc4ce633e7496c8b2f1aff42c840d8c 100644
--- a/src/main/java/org/olat/core/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/core/_i18n/LocalStrings_de.properties
@@ -15,6 +15,7 @@ error.header=Fehler
 error.jpbwrapper.renderfailed=Die Komponente kann nicht mehr dargestellt werden. Bitte rufen Sie die Komponente erneut auf.
 error.noformpostdata=Achtung\! Durch ein Problem Ihres Browsers wurden nicht alle Daten hochgeladen. Dr\u00FCcken Sie bitte den Zur\u00FCck-Knopf und versuchen Sie es nochmals.
 error.post.method.mandatory=Benutzt ein Browser
+export=Export
 expand=Vergr\u00F6ssern
 finish=Fertigstellen
 form.checkall=Alle ausw\u00E4hlen
diff --git a/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_de.properties
index a622b5c092dd5dfbf4430d25defea92168d12e5e..1abb10e54fc043b1d532bb6a3527481a4942a6b0 100644
--- a/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_de.properties
@@ -56,6 +56,8 @@ topnav.buddygroups=Gruppen
 topnav.buddygroups.alt=Arbeiten Sie mit Lern- und Arbeitsgruppen
 topnav.catalog=Katalog
 topnav.catalog.alt=Katalog
+topnav.catalog.admin=Katalog Admin.
+topnav.catalog.admin.alt=Katalog Admin.
 topnav.close=Fenster schliessen
 topnav.close.alt=Schliessen Sie dieses Fenster
 topnav.closeRecent=Schliessen
diff --git a/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_en.properties
index cb3de2f72349d97ae17d95fedc4648925a754c6e..996ac1e5c92a3c2cbd11b1d718f9bb6785580488 100644
--- a/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_en.properties
@@ -56,6 +56,8 @@ topnav.buddygroups=Groups
 topnav.buddygroups.alt=Work with your personal learning and project groups.
 topnav.catalog=Catalog
 topnav.catalog.alt=Catalog
+topnav.catalog.admin=Catalog admin.
+topnav.catalog.admin.alt=Catalog admin.
 topnav.close=Close window
 topnav.close.alt=Close this window
 topnav.closeRecent=Close
diff --git a/src/main/java/org/olat/core/gui/components/choice/ChoiceRenderer.java b/src/main/java/org/olat/core/gui/components/choice/ChoiceRenderer.java
index d044d27f71a5803f092cc3ef44fdfce2273887a1..26e72a36af4bcea11af0795cd4d7bdeabedadcfb 100644
--- a/src/main/java/org/olat/core/gui/components/choice/ChoiceRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/choice/ChoiceRenderer.java
@@ -28,12 +28,11 @@ package org.olat.core.gui.components.choice;
 
 import org.apache.commons.lang.StringEscapeUtils;
 import org.olat.core.gui.components.Component;
-import org.olat.core.gui.components.ComponentRenderer;
+import org.olat.core.gui.components.DefaultComponentRenderer;
 import org.olat.core.gui.components.table.TableDataModel;
 import org.olat.core.gui.control.winmgr.AJAXFlags;
 import org.olat.core.gui.render.RenderResult;
 import org.olat.core.gui.render.Renderer;
-import org.olat.core.gui.render.RenderingState;
 import org.olat.core.gui.render.StringOutput;
 import org.olat.core.gui.render.URLBuilder;
 import org.olat.core.gui.translator.Translator;
@@ -43,15 +42,7 @@ import org.olat.core.gui.translator.Translator;
  * 
  * @author Felix Jost
  */
-public class ChoiceRenderer implements ComponentRenderer {
-
-	/**
-	 * This is a singleton. There must be an empty contructor for the
-	 * Class.forName() call.
-	 */
-	public ChoiceRenderer() {
-		super();
-	}
+public class ChoiceRenderer extends DefaultComponentRenderer {
 
 	/**
 	 * @see org.olat.core.gui.render.ui.ComponentRenderer#render(org.olat.core.gui.render.Renderer,
@@ -59,6 +50,7 @@ public class ChoiceRenderer implements ComponentRenderer {
 	 *      org.olat.core.gui.render.URLBuilder, org.olat.core.gui.translator.Translator,
 	 *      org.olat.core.gui.render.RenderResult, java.lang.String[])
 	 */
+	@Override
 	public void render(Renderer renderer, StringOutput target, Component source, URLBuilder ubu, Translator translator,
 			RenderResult renderResult, String[] args) {
 
@@ -102,53 +94,28 @@ public class ChoiceRenderer implements ComponentRenderer {
 			target.append("</tr>");
 		}
 		// Toggle all on/off
-		target.append("<tr><td colspan=\"").append(cols).append("\" class=\"b_togglecheck\">");
-		target.append("<div class=\"b_togglecheck\">");
-		target.append("<a href=\"#\" onclick=\"javascript:b_choice_toggleCheck('" + id + "', true)\">");
-		target.append("<input type=\"checkbox\" checked=\"checked\" disabled=\"disabled\" />");
-		target.append(translator.translate("checkall"));
-		target.append("</a> <a href=\"#\" onclick=\"javascript:b_choice_toggleCheck('" + id + "', false)\">"); 
-		target.append("<input type=\"checkbox\" disabled=\"disabled\" />");
-		target.append(translator.translate("uncheckall"));
-		target.append("</a></div>");
-		target.append("</td></tr>");
+		target.append("<tr><td colspan=\"").append(cols).append("\" class=\"b_togglecheck\">")
+		      .append("<div class=\"b_togglecheck\">")
+		      .append("<a href=\"#\" onclick=\"javascript:b_choice_toggleCheck('" + id + "', true)\">")
+		      .append("<input type=\"checkbox\" checked=\"checked\" disabled=\"disabled\" />")
+		      .append(translator.translate("checkall"))
+		      .append("</a> <a href=\"#\" onclick=\"javascript:b_choice_toggleCheck('" + id + "', false)\">")
+		      .append("<input type=\"checkbox\" disabled=\"disabled\" />")
+		      .append(translator.translate("uncheckall"))
+		      .append("</a></div>")
+		      .append("</td></tr>");
 
 		// Submit button
 		target.append("<tr><td colspan=\"").append(cols).append("\"><div class=\"b_button_group\">");
 		target.append("<input type=\"submit\" name=\"olat_fosm\" value=\"" + StringEscapeUtils.escapeHtml(translator.translate(choice.getSubmitKey()))
-				+ "\" class=\"b_button\" />");
+				+ "\" class=\"btn btn-default\" />");
 
 		// Cancel button
 		String cancelKey = choice.getCancelKey();
 		if (cancelKey != null) {
 			target.append("<input type=\"submit\" name=\"" + Choice.CANCEL_IDENTIFICATION + "\" value=\""
-					+ StringEscapeUtils.escapeHtml(translator.translate(cancelKey)) + "\" class=\"b_button\" />");
+					+ StringEscapeUtils.escapeHtml(translator.translate(cancelKey)) + "\" class=\"btn btn-default\" />");
 		}
 		target.append("</div></td></tr></table></form>");
-		
-		
-
-	}
-
-	/**
-	 * @param renderer
-	 * @param sb
-	 * @param source
-	 */
-	public void renderBodyOnLoadJSFunctionCall(Renderer renderer, StringOutput sb, Component source, RenderingState rstate) {
-	//
 	}
-
-	/**
-	 * @param renderer
-	 * @param target
-	 * @param source
-	 * @param url
-	 * @param translator
-	 */
-	public void renderHeaderIncludes(Renderer renderer, StringOutput target, Component source, URLBuilder url, Translator translator,
-			RenderingState rstate) {
-	//
-	}
-
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/gui/components/dropdown/Dropdown.java b/src/main/java/org/olat/core/gui/components/dropdown/Dropdown.java
index 30ec83c263dc6f3cb39e0787127b3fdb5c2c9cf2..9ac31138fc83018b33b53d6973f93c94ecaeabe4 100644
--- a/src/main/java/org/olat/core/gui/components/dropdown/Dropdown.java
+++ b/src/main/java/org/olat/core/gui/components/dropdown/Dropdown.java
@@ -29,6 +29,7 @@ import org.olat.core.gui.components.AbstractComponent;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.ComponentCollection;
 import org.olat.core.gui.components.ComponentRenderer;
+import org.olat.core.gui.components.link.Link;
 import org.olat.core.gui.translator.Translator;
 
 /**
@@ -76,10 +77,14 @@ public class Dropdown extends AbstractComponent implements ComponentCollection {
 		this.iconCSS = iconCSS;
 	}
 
-	public void addComponent(Component component) {
+	public void addComponent(Link component) {
 		components.add(component);
 	}
 	
+	public void addComponent(Spacer spacer) {
+		components.add(spacer);
+	}
+	
 	public int size() {
 		return components.size();
 	}
@@ -113,4 +118,22 @@ public class Dropdown extends AbstractComponent implements ComponentCollection {
 	public ComponentRenderer getHTMLRendererSingleton() {
 		return RENDERER;
 	}
+	
+	public static class Spacer extends AbstractComponent {
+		
+		public Spacer(String name) {
+			super(name);
+		}
+
+		@Override
+		protected void doDispatchRequest(UserRequest ureq) {
+			//
+		}
+
+		@Override
+		public ComponentRenderer getHTMLRendererSingleton() {
+			return null;
+		}
+		
+	}
 }
diff --git a/src/main/java/org/olat/core/gui/components/dropdown/DropdownRenderer.java b/src/main/java/org/olat/core/gui/components/dropdown/DropdownRenderer.java
index 0b9ba99edb948ed576a41d08025945c07f104f00..830cc839c42c564a76cf66ce2190ce2e29dcf866 100644
--- a/src/main/java/org/olat/core/gui/components/dropdown/DropdownRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/dropdown/DropdownRenderer.java
@@ -21,6 +21,7 @@ package org.olat.core.gui.components.dropdown;
 
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.DefaultComponentRenderer;
+import org.olat.core.gui.components.dropdown.Dropdown.Spacer;
 import org.olat.core.gui.render.RenderResult;
 import org.olat.core.gui.render.Renderer;
 import org.olat.core.gui.render.StringOutput;
@@ -52,7 +53,12 @@ public class DropdownRenderer extends DefaultComponentRenderer {
 		if(StringHelper.containsNonWhitespace(dropdown.getIconCSS())) {
 			sb.append("<i class='").append(dropdown.getIconCSS()).append("'>&nbsp;</i>");
 		}
-		sb.append(dropdown.getTranslator().translate(dropdown.getI18nKey())).append(" <b class='caret'></b>");
+		String i18nKey = dropdown.getI18nKey();
+		if(StringHelper.containsNonWhitespace(i18nKey)) {
+			sb.append(dropdown.getTranslator().translate(dropdown.getI18nKey()));
+		}
+		sb.append(" <b class='caret'></b>");
+		
 		if(dropdown.isButton()) {
 			sb.append("</button>");
 		} else {
@@ -60,9 +66,13 @@ public class DropdownRenderer extends DefaultComponentRenderer {
 		}
 		sb.append("<ul class='dropdown-menu' role='menu'>");
 		for(Component component:components) {
-			sb.append("<li>");
-			renderer.render(component, sb, args);
-			sb.append("</li>");
+			if(component instanceof Spacer) {
+				sb.append("<li class='divider'></li>");
+			} else {
+				sb.append("<li>");
+				renderer.render(component, sb, args);
+				sb.append("</li>");
+			}
 		}
 		sb.append("</ul>");
 	}
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java
index 2d0fe8854b469a5885418e27714a6f03c5ade6ca..6a01109440ef04371cc921ad51b9a29b94037be5 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java
@@ -25,6 +25,7 @@
 */ 
 package org.olat.core.gui.components.form.flexible.elements;
 
+import java.util.List;
 import java.util.Set;
 
 import org.olat.core.gui.components.form.flexible.FormItem;
@@ -56,6 +57,12 @@ public interface FlexiTableElement extends FormItem {
 	 */
 	public void setRendererType(FlexiTableRendererType rendererType);
 	
+	/**
+	 * Set the renderer available
+	 * @param rendererType
+	 */
+	public void setAvailableRendererTypes(FlexiTableRendererType... rendererType);
+	
 	/**
 	 * Set the row renderer used by the custom renderer type.
 	 * @param renderer
@@ -169,11 +176,18 @@ public interface FlexiTableElement extends FormItem {
 	public String getSelectedFilterValue();
 	
 	/**
-	 * Set the values for the filter and will enable it.
+	 * Set the values for the filter and it will enable it.
 	 * @param keys
 	 * @param values
 	 */
-	public void setFilterKeysAndValues(String labelI18nKey, String[] keys, String[] values);
+	public void setFilters(String label, List<FlexiTableFilter> filters);
+	
+	/**
+	 * 
+	 * @param label
+	 * @param sorts
+	 */
+	public void setSorts(String label, List<FlexiTableSort> sorts);
 	
 	/**
 	 * Enable export
@@ -221,5 +235,4 @@ public interface FlexiTableElement extends FormItem {
 	public void setPage(int page);
 	
 	public void reloadData();
-	
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableFilter.java b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableFilter.java
new file mode 100644
index 0000000000000000000000000000000000000000..d437e7e3989adb5d0de9acc5713979e26e374aa0
--- /dev/null
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableFilter.java
@@ -0,0 +1,73 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.core.gui.components.form.flexible.elements;
+
+/**
+ * 
+ * Initial date: 12.05.2014<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class FlexiTableFilter {
+	
+	public static final FlexiTableFilter SPACER = new FlexiTableFilter("oo-spacer-xx", "oo-spacer-xx");
+	
+	private final String label;
+	private final String filter;
+	private boolean selected;
+	
+	public FlexiTableFilter(String label, String filter) {
+		this.label = label;
+		this.filter = filter;
+	}
+	
+	public String getLabel() {
+		return label;
+	}
+	
+	public String getFilter() {
+		return filter;
+	}
+
+	public boolean isSelected() {
+		return selected;
+	}
+
+	public void setSelected(boolean selected) {
+		this.selected = selected;
+	}
+
+	@Override
+	public int hashCode() {
+		return filter == null ? 864587 : filter.hashCode();
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if (this == obj) {
+			return true;
+		}
+		if(obj instanceof FlexiTableFilter) {
+			FlexiTableFilter other = (FlexiTableFilter) obj;
+			return filter != null && filter.equals(other.filter);
+		}
+		return false;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableSort.java b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableSort.java
new file mode 100644
index 0000000000000000000000000000000000000000..6b9f300a403c72716ca8889bd83dcbb0276efb22
--- /dev/null
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableSort.java
@@ -0,0 +1,80 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.core.gui.components.form.flexible.elements;
+
+import org.olat.core.commons.persistence.SortKey;
+
+/**
+ * 
+ * Initial date: 12.05.2014<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class FlexiTableSort {
+	
+	public static final FlexiTableSort SPACER = new FlexiTableSort("oo-spacer-xx", new SortKey("oo-spacer-xx", false));
+	
+	private final String label;
+	private final SortKey sortKey;
+	private boolean selected;
+	
+	public FlexiTableSort(String label, SortKey sortKey) {
+		this.label = label;
+		this.sortKey = sortKey;
+	}
+	
+	public FlexiTableSort(String label, String sortKey) {
+		this.label = label;
+		this.sortKey = new SortKey(sortKey, false);
+	}
+	
+	public String getLabel() {
+		return label;
+	}
+
+	public SortKey getSortKey() {
+		return sortKey;
+	}
+
+	public boolean isSelected() {
+		return selected;
+	}
+
+	public void setSelected(boolean selected) {
+		this.selected = selected;
+	}
+
+	@Override
+	public int hashCode() {
+		return sortKey == null ? 864587 : sortKey.hashCode();
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if (this == obj) {
+			return true;
+		}
+		if(obj instanceof FlexiTableSort) {
+			FlexiTableSort other = (FlexiTableSort) obj;
+			return sortKey != null && sortKey.equals(other.sortKey);
+		}
+		return false;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
index 80c460d9693472aae2ddcf044e4e8a6b9af1023d..f3fc79abe456d4a22b4e562fc90b51c00fba943a 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
@@ -19,10 +19,13 @@
  */
 package org.olat.core.gui.components.form.flexible.impl.elements.table;
 
+import java.util.List;
+
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.DefaultComponentRenderer;
 import org.olat.core.gui.components.form.flexible.FormItem;
-import org.olat.core.gui.components.form.flexible.elements.SingleSelection;
+import org.olat.core.gui.components.form.flexible.elements.FlexiTableFilter;
+import org.olat.core.gui.components.form.flexible.elements.FlexiTableSort;
 import org.olat.core.gui.components.form.flexible.impl.Form;
 import org.olat.core.gui.components.form.flexible.impl.FormJSHelper;
 import org.olat.core.gui.components.form.flexible.impl.NameValuePair;
@@ -48,16 +51,21 @@ public abstract class AbstractFlexiTableRenderer extends DefaultComponentRendere
 		FlexiTableComponent ftC = (FlexiTableComponent) source;
 		FlexiTableElementImpl ftE = ftC.getFlexiTableElement();
 
-		String id = ftC.getFormDispatchId();
-
+		renderHeaderButtons(renderer, sb, ftE, ubu, translator, renderResult, args);
+		
 		sb.append("<div class=\"o_table_wrapper o_table_flexi")
 		  .append(" o_table_edit", ftE.isEditMode());
 		String css = ftE.getElementCssClass();
 		if (css != null) {
 			sb.append(" ").append(css);
 		}
+		switch(ftE.getRendererType()) {
+			case custom: sb.append("o_rendertype_custom"); break;
+			case classic: sb.append("o_rendertype_classic"); break;
+			case dataTables: sb.append("o_rendertype_dataTables"); break;
+		}
 		sb.append(" table-responsive\">");
-		renderHeaderButtons(renderer, sb, ftE, ubu, translator, renderResult, args);
+		String id = ftC.getFormDispatchId();
 		sb.append("<table id=\"").append(id).append("\" class=\"table table-bordered table-hover table-responsive\">");
 		
 		//render headers
@@ -80,16 +88,23 @@ public abstract class AbstractFlexiTableRenderer extends DefaultComponentRendere
 	
 	protected void renderHeaderButtons(Renderer renderer, StringOutput sb, FlexiTableElementImpl ftE, URLBuilder ubu, Translator translator,
 			RenderResult renderResult, String[] args) {
-		if(ftE.isFilterEnabled()) {
-			sb.append("<div class='o_table_filter'>");
-			SingleSelection filterEl = ftE.getFilterSelection();
-			String text = filterEl.getLabelText();
-			if(text != null && text.length() < 128) {
-				sb.append("<label>").append(text).append("</label>");
-			}
-			renderFormItem(renderer, sb, filterEl, ubu, translator, renderResult, args);
-			sb.append("</div>");
-		}
+		
+		sb.append("<div class='row clearfix'><div class='col-lg-6'>");
+		
+		renderHeaderSearch(renderer, sb, ftE, ubu, translator, renderResult, args);
+		
+		sb.append("</div><div class='col-lg-2'></div><div class='col-lg-4'>");
+		
+		renderHeaderTools(renderer, sb, ftE, ubu, translator, renderResult,  args);
+		
+		sb.append("</div></div>");
+	}
+	
+	protected void renderHeaderSearch(Renderer renderer, StringOutput sb, FlexiTableElementImpl ftE, URLBuilder ubu, Translator translator,
+			RenderResult renderResult, String[] args) {
+		
+		
+		
 		if(ftE.isSearchEnabled()) {
 			sb.append("<div class='o_table_search input-group'>");
 			renderFormItem(renderer, sb, ftE.getSearchElement(), ubu, translator, renderResult, args);
@@ -100,12 +115,121 @@ public abstract class AbstractFlexiTableRenderer extends DefaultComponentRendere
 		if(ftE.getExtendedSearchButton() != null) {
 			renderFormItem(renderer, sb, ftE.getExtendedSearchButton(), ubu, translator, renderResult, args);
 		}
+	}
+	
+	/**
+	 * The method rendered the tools:  filter, sort, customize, export, switch type of renderer.
+	 * @param renderer
+	 * @param sb
+	 * @param ftE
+	 * @param ubu
+	 * @param translator
+	 * @param renderResult
+	 * @param args
+	 */
+	protected void renderHeaderTools(Renderer renderer, StringOutput sb, FlexiTableElementImpl ftE, URLBuilder ubu, Translator translator,
+			RenderResult renderResult, String[] args) {
+		
+		sb.append("<div class='pull-right o_table_tools'>");
+		
+		//filter
+		if(ftE.isFilterEnabled()) {
+			List<FlexiTableFilter> filters = ftE.getFilters();
+			if(filters != null && filters.size() > 0) {
+				renderFilterDropdown(sb, ftE, filters);
+			}
+		}
+		
+		//sort
+		if(ftE.isSortEnabled()) {
+			List<FlexiTableSort> sorts = ftE.getSorts();
+			if(sorts != null && sorts.size() > 0) {
+				renderSortDropdown(sb, ftE, sorts);
+			}
+		}
 		
 		if(ftE.getExportButton() != null && ftE.isExportEnabled()) {
+			sb.append("<div class='btn-group'>");
 			renderFormItem(renderer, sb, ftE.getExportButton(), ubu, translator, renderResult, args);
+			sb.append("</div> ");
 		}
 		if(ftE.getCustomButton() != null && ftE.isCustomizeColumns()) {
+			sb.append("<div class='btn-group'>");
 			renderFormItem(renderer, sb, ftE.getCustomButton(), ubu, translator, renderResult, args);
+			sb.append("</div> ");
+		}
+		
+		//switch type of tables
+		FlexiTableRendererType[] types = ftE.getAvailableRendererTypes();
+		if(types.length > 1) {
+			sb.append("<div class='btn-group'>");
+			for(FlexiTableRendererType type:types) {
+				renderHeaderSwitchType(type, renderer, sb, ftE, ubu, translator, renderResult, args);
+			}
+			sb.append("</div> ");
+		}
+		sb.append("</div>");
+	}
+	
+	protected void renderFilterDropdown(StringOutput sb, FlexiTableElementImpl ftE, List<FlexiTableFilter> filters) {
+		Form theForm = ftE.getRootForm();
+		String dispatchId = ftE.getFormDispatchId();
+		
+		sb.append("<div class='btn-group'>")
+		  .append("<button class='btn btn-default dropdown-toggle' data-toggle='dropdown'>")
+		  .append("<i class='o_icon o_icon_filter o_icon-lg'>&nbsp;</i> <b class='caret'></b></button>")
+		  .append("<ul class='dropdown-menu' role='menu'>");
+		
+		for(FlexiTableFilter filter:filters) {
+			if(FlexiTableFilter.SPACER.equals(filter)) {
+				sb.append("<li class='divider'></li>");
+			} else {
+				sb.append("<li><a href=\"javascript:")
+				  .append(FormJSHelper.getXHRFnCallFor(theForm, dispatchId, 1, new NameValuePair("filter", filter.getFilter())))
+				  .append("\">").append(filter.getLabel()).append("</a></li>");
+			}
+		}
+		sb.append("</ul></div> ");
+	}
+	
+	protected void renderSortDropdown(StringOutput sb, FlexiTableElementImpl ftE, List<FlexiTableSort> sorts) {
+		Form theForm = ftE.getRootForm();
+		String dispatchId = ftE.getFormDispatchId();
+		
+		sb.append("<div class='btn-group'>")
+		  .append("<button class='btn btn-default dropdown-toggle' data-toggle='dropdown'>")
+		  .append("<i class='o_icon o_icon_sort_menu o_icon-lg'>&nbsp;</i> <b class='caret'></b></button>")
+		  .append("<ul class='dropdown-menu' role='menu'>");
+		
+		for(FlexiTableSort sort:sorts) {
+			if(FlexiTableSort.SPACER.equals(sort)) {
+				sb.append("<li class='divider'></li>");
+			} else {
+				sb.append("<li><a href=\"javascript:")
+				  .append(FormJSHelper.getXHRFnCallFor(theForm, dispatchId, 1, new NameValuePair("sort", sort.getSortKey().getKey())))
+				  .append("\">").append(sort.getLabel()).append("</a></li>");
+			}
+		}
+		sb.append("</ul></div> ");
+	}
+	
+	protected void renderHeaderSwitchType(FlexiTableRendererType type, Renderer renderer, StringOutput sb, FlexiTableElementImpl ftE, URLBuilder ubu, Translator translator,
+			RenderResult renderResult, String[] args) {
+		if(type != null) {
+			switch(type) {
+				case custom: {
+					renderFormItem(renderer, sb, ftE.getCustomTypeButton(), ubu, translator, renderResult, args);
+					break;
+				}
+				case classic: {
+					renderFormItem(renderer, sb, ftE.getClassicTypeButton(), ubu, translator, renderResult, args);
+					break;
+				}
+				case dataTables: {
+					renderFormItem(renderer, sb, ftE.getDataTablesTypeButton(), ubu, translator, renderResult, args);
+					break;
+				}
+			}
 		}
 	}
 	
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FilterableFlexiTableModel.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FilterableFlexiTableModel.java
index a974a86000cfd2c04842484855e271081d84c81a..503b9b14c3a5edeab75604735c502ad01c3e9dd0 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FilterableFlexiTableModel.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FilterableFlexiTableModel.java
@@ -28,6 +28,10 @@ package org.olat.core.gui.components.form.flexible.impl.elements.table;
  */
 public interface FilterableFlexiTableModel {
 	
+	/**
+	 * @param key
+	 * @return True if a reload is needed
+	 */
 	public void filter(String key);
 
 }
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableCustomRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableCustomRenderer.java
index e203d22104c333bc8a442ced055b3444d049b5f4..85f32e06a055835f44e6ab4af9e34c43a9f5b6c3 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableCustomRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableCustomRenderer.java
@@ -45,6 +45,8 @@ class FlexiTableCustomRenderer extends AbstractFlexiTableRenderer implements Com
 		
 		FlexiTableComponent ftC = (FlexiTableComponent)source;
 		FlexiTableElementImpl ftE = ftC.getFlexiTableElement();
+		
+		renderHeaderButtons(renderer, sb, ftE, ubu, translator, renderResult, args);
 
 		String id = ftC.getFormDispatchId();
 		sb.append("<div class=\"o_table_wrapper o_table_flexi")
@@ -54,8 +56,7 @@ class FlexiTableCustomRenderer extends AbstractFlexiTableRenderer implements Com
 			sb.append(" ").append(css);
 		}
 		sb.append("\">");
-		renderHeaderButtons(renderer, sb, ftE, ubu, translator, renderResult, args);
-
+		
 		//render body
 		sb.append("<div class='o_table_body container-fluid'>");
 		renderBody(renderer, sb, ftC, ubu, translator, renderResult);
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
index cebddccd207c98515d1457d891e8ebbaca1e44e7..874f2d6abeb07fc730f606cc652d7a7b6a5c519a 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
@@ -45,14 +45,14 @@ import org.olat.core.gui.components.choice.Choice;
 import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.components.form.flexible.FormItemCollection;
 import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement;
+import org.olat.core.gui.components.form.flexible.elements.FlexiTableFilter;
+import org.olat.core.gui.components.form.flexible.elements.FlexiTableSort;
 import org.olat.core.gui.components.form.flexible.elements.FormLink;
-import org.olat.core.gui.components.form.flexible.elements.SingleSelection;
 import org.olat.core.gui.components.form.flexible.elements.TextElement;
 import org.olat.core.gui.components.form.flexible.impl.Form;
 import org.olat.core.gui.components.form.flexible.impl.FormEvent;
 import org.olat.core.gui.components.form.flexible.impl.FormItemImpl;
 import org.olat.core.gui.components.form.flexible.impl.elements.FormLinkImpl;
-import org.olat.core.gui.components.form.flexible.impl.elements.SingleSelectionImpl;
 import org.olat.core.gui.components.form.flexible.impl.elements.TextElementImpl;
 import org.olat.core.gui.components.link.Link;
 import org.olat.core.gui.components.velocity.VelocityContainer;
@@ -78,6 +78,10 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 	//settings
 	private boolean multiSelect;
 	private FlexiTableRendererType rendererType = FlexiTableRendererType.classic;
+	private FlexiTableRendererType[] availableRendererType = new FlexiTableRendererType[] {
+		FlexiTableRendererType.classic
+	};
+	
 	private boolean customizeColumns = true;
 	
 	private int rowCount = -1;
@@ -95,7 +99,7 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 
 	private FormLink customButton, exportButton;
 	private FormLink searchButton, extendedSearchButton;
-	private SingleSelection filterEl;
+	private FormLink classicTypeButton, customTypeButton, dataTablesTypeButton;
 	private TextElement searchFieldEl;
 	private ExtendedFlexiTableSearchController extendedSearchCtrl;
 	
@@ -110,6 +114,8 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 	private String wrapperSelector;
 
 	private SortKey[] orderBy;
+	private List<FlexiTableSort> sorts;
+	private List<FlexiTableFilter> filters;
 	private Object selectedObj;
 	private boolean allSelectedIndex;
 	private Set<Integer> multiSelectedIndex;
@@ -184,6 +190,51 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 		}
 	}
 	
+	public FlexiTableRendererType[] getAvailableRendererTypes() {
+		return availableRendererType;
+	}
+
+	@Override
+	public void setAvailableRendererTypes(FlexiTableRendererType... rendererType) {
+		this.availableRendererType = rendererType;
+		if(rendererType != null && rendererType.length > 1) {
+			String dispatchId = component.getDispatchID();
+			//custom
+			customTypeButton = new FormLinkImpl(dispatchId + "_customRTypeButton", "rCustomRTypeButton", "", Link.BUTTON + Link.NONTRANSLATED);
+			customTypeButton.setTranslator(translator);
+			customTypeButton.setIconLeftCSS("o_icon o_icon_list o_icon-lg");
+			components.put("rTypeCustom", customTypeButton);
+			//classic tables
+			classicTypeButton = new FormLinkImpl(dispatchId + "_classicRTypeButton", "rClassicRTypeButton", "", Link.BUTTON + Link.NONTRANSLATED);
+			classicTypeButton.setTranslator(translator);
+			classicTypeButton.setIconLeftCSS("o_icon o_icon_table o_icon-lg");
+			components.put("rTypeClassic", classicTypeButton);
+			//jquery tables
+			dataTablesTypeButton = new FormLinkImpl(dispatchId + "_dataTablesRTypeButton", "rDataTablesRTypeButton", "", Link.BUTTON + Link.NONTRANSLATED);
+			dataTablesTypeButton.setTranslator(translator);
+			dataTablesTypeButton.setIconLeftCSS("o_icon o_icon_table o_icon-lg");
+			components.put("rTypeDataTables", dataTablesTypeButton);
+			
+			if(getRootForm() != null) {
+				rootFormAvailable(customTypeButton);
+				rootFormAvailable(classicTypeButton);
+				rootFormAvailable(dataTablesTypeButton);
+			}
+		}
+	}
+
+	public FormLink getClassicTypeButton() {
+		return classicTypeButton;
+	}
+
+	public FormLink getCustomTypeButton() {
+		return customTypeButton;
+	}
+
+	public FormLink getDataTablesTypeButton() {
+		return dataTablesTypeButton;
+	}
+
 	@Override
 	public boolean isMultiSelect() {
 		return multiSelect;
@@ -209,8 +260,6 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 	public void setWrapperSelector(String wrapperSelector) {
 		this.wrapperSelector = wrapperSelector;
 	}
-	
-	
 
 	@Override
 	public FlexiTableComponent getComponent() {
@@ -233,46 +282,55 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 
 	@Override
 	public boolean isFilterEnabled() {
-		return filterEl != null;
+		return filters != null && filters.size() > 0;
 	}
-	
+
+	@Override
 	public String getSelectedFilterKey() {
-		if(filterEl != null && filterEl.isOneSelected()) {
-			return filterEl.getSelectedKey();
+		String key = null;
+		if(filters != null) {
+			for(FlexiTableFilter filter:filters) {
+				if(filter.isSelected()) {
+					key = filter.getFilter();
+				}
+			}
 		}
-		return null;
+		return key;
 	}
-	
+
+	@Override
 	public String getSelectedFilterValue() {
-		if(filterEl != null && filterEl.isOneSelected()) {
-			return filterEl.getSelectedValue();
+		String value = null;
+		if(filters != null) {
+			for(FlexiTableFilter filter:filters) {
+				if(filter.isSelected()) {
+					value = filter.getLabel();
+				}
+			}
 		}
-		return null;
+		return value;
+	}
+	
+	public List<FlexiTableFilter> getFilters() {
+		return filters;
 	}
 
 	@Override
-	public void setFilterKeysAndValues(String labelI18nKey, String[] keys, String[] values) {
-		if(keys == null || keys.length == 0) {
-			components.remove("rFilter");
-			filterEl = null;
-		} else {
-			String dispatchId = component.getDispatchID();
-			String name = dispatchId + "_filter";
-			filterEl = new SingleSelectionImpl(name, name, SingleSelectionImpl.createSelectboxLayouter(name, name));
-			filterEl.setTranslator(getTranslator());
-			if(StringHelper.containsNonWhitespace(labelI18nKey)) {
-				filterEl.setLabel(labelI18nKey, null);
-				filterEl.showLabel(true);
-			}
-			filterEl.addActionListener(FormEvent.ONCHANGE);
-			filterEl.setKeysAndValues(keys, values, null);
-			components.put("rFilter", filterEl);
-			rootFormAvailable(filterEl);
-		}
+	public void setFilters(String name, List<FlexiTableFilter> filters) {
+		this.filters = new ArrayList<>(filters);
+	}
+	
+	public boolean isSortEnabled() {
+		return sorts != null && sorts.size() > 0;
 	}
 	
-	public SingleSelection getFilterSelection() {
-		return filterEl;
+	public List<FlexiTableSort> getSorts() {
+		return sorts;
+	}
+
+	@Override
+	public void setSorts(String label, List<FlexiTableSort> sorts) {
+		this.sorts = sorts;
 	}
 
 	@Override
@@ -287,9 +345,9 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 			exportButton = null;
 			
 			String dispatchId = component.getDispatchID();
-			exportButton = new FormLinkImpl(dispatchId + "_exportButton", "rExportButton", "export", Link.BUTTON);
+			exportButton = new FormLinkImpl(dispatchId + "_exportButton", "rExportButton", "", Link.BUTTON | Link.NONTRANSLATED);
 			exportButton.setTranslator(translator);
-			exportButton.setCustomEnabledLinkCSS("b_with_small_icon_only b_table_download");
+			exportButton.setIconLeftCSS("o_icon o_icon_download");
 			components.put("rExport", exportButton);
 			rootFormAvailable(exportButton);
 		} else {
@@ -483,6 +541,7 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 		String select = form.getRequestParameter("select");
 		String page = form.getRequestParameter("page");
 		String sort = form.getRequestParameter("sort");
+		String filter = form.getRequestParameter("filter");
 		if("undefined".equals(dispatchuri)) {
 			evalSearchRequest(ureq);
 		} else if(StringHelper.containsNonWhitespace(page)) {
@@ -505,10 +564,8 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 		} else if(extendedSearchButton != null
 				&& extendedSearchButton.getFormDispatchId().equals(dispatchuri)) {
 			openExtendedSearch(ureq);
-		} else if(filterEl != null
-				&& filterEl.getFormDispatchId().equals(dispatchuri)) {
-			filterEl.evalFormRequest(ureq);
-			filter();
+		} else if(dispatchuri != null && StringHelper.containsNonWhitespace(filter)) {
+			filter(filter);
 		} else if(exportButton != null
 				&& exportButton.getFormDispatchId().equals(dispatchuri)) {
 			export(ureq);
@@ -520,6 +577,15 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 				&& customButton.getFormDispatchId().equals(dispatchuri)) {
 			//snap the request
 			customizeCallout(ureq);
+		} else if(customTypeButton != null
+				&& customTypeButton.getFormDispatchId().equals(dispatchuri)) {
+			setRendererType(FlexiTableRendererType.custom);
+		} else if(classicTypeButton != null
+				&& classicTypeButton.getFormDispatchId().equals(dispatchuri)) {
+			setRendererType(FlexiTableRendererType.classic);
+		} else if(dataTablesTypeButton != null
+				&& dataTablesTypeButton.getFormDispatchId().equals(dispatchuri)) {
+			setRendererType(FlexiTableRendererType.dataTables);
 		} else {
 			FlexiTableColumnModel colModel = dataModel.getTableColumnModel();
 			for(int i=colModel.getColumnCount(); i-->0; ) {
@@ -567,16 +633,25 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 		}
 	}
 	
-	protected void filter() {
-		if(filterEl.isOneSelected()) {
-			String filter = filterEl.getSelectedKey();
-			if(dataModel instanceof FilterableFlexiTableModel) {
-				((FilterableFlexiTableModel)dataModel).filter(filter);
-			} else if(dataSource != null) {
-				List<String> conditionalQueries = Collections.singletonList(filter);
-				dataSource.load(null, conditionalQueries, 0, getPageSize(), orderBy);
+	protected void filter(String filterKey) {
+		if(filterKey == null) {
+			for(FlexiTableFilter filter:filters) {
+				filter.setSelected(false);
+			}
+		} else {
+			for(FlexiTableFilter filter:filters) {
+				filter.setSelected(filter.getFilter().equals(filterKey));
 			}
 		}
+		
+		if(dataModel instanceof FilterableFlexiTableModel) {
+			((FilterableFlexiTableModel)dataModel).filter(filterKey);
+		} else if(dataSource != null) {
+			List<String> conditionalQueries = Collections.singletonList(filterKey);
+			dataSource.clear();
+			dataSource.load(null, conditionalQueries, 0, getPageSize(), orderBy);
+		}
+		component.setDirty(true);
 	}
 	
 	protected void export(UserRequest ureq) {
@@ -832,8 +907,8 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 			dataSource.load(getSearchText(), getConditionalQueries(), 0, getPageSize());//reload needed rows
 		} else {
 			if(dataModel instanceof FilterableFlexiTableModel) {
-				if(filterEl != null && filterEl.isOneSelected()) {
-					String filter = filterEl.getSelectedKey();
+				if(isFilterEnabled()) {
+					String filter = getSelectedFilterKey();
 					((FilterableFlexiTableModel)dataModel).filter(filter);
 				}
 			}
@@ -858,12 +933,14 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 
 	@Override
 	protected void rootFormAvailable() {
-		rootFormAvailable(filterEl);
 		rootFormAvailable(searchButton);
 		rootFormAvailable(customButton);
 		rootFormAvailable(exportButton);
 		rootFormAvailable(searchFieldEl);
 		rootFormAvailable(extendedSearchButton);
+		rootFormAvailable(customTypeButton);
+		rootFormAvailable(classicTypeButton);
+		rootFormAvailable(dataTablesTypeButton);
 	}
 	
 	private final void rootFormAvailable(FormItem item) {
diff --git a/src/main/java/org/olat/core/gui/control/_spring/sitedefContext.xml b/src/main/java/org/olat/core/gui/control/_spring/sitedefContext.xml
index 802dd22823af92933140805f47eb4416feaa0d6a..1c3379ab8f69a62c409955df3bd4e05297f34b81 100644
--- a/src/main/java/org/olat/core/gui/control/_spring/sitedefContext.xml
+++ b/src/main/java/org/olat/core/gui/control/_spring/sitedefContext.xml
@@ -59,14 +59,18 @@
 	<bean id="olatsites_admin" class="org.olat.admin.site.AdminSiteDef">
 	   <property name="order" value="10" />
 	</bean>
-	<bean id="olatsites_guidemo" class="org.olat.gui.demo.site.GUIDemoSiteDef">
-	   <property name="order" value="11" />
-	   <property name="enabled" value="${guidemo.enabled}"/>
-	</bean>
 	<bean id="olatsites_portfolio" class="org.olat.portfolio.site.EPSiteDef">
 	   <property name="order" value="11" />
 	   <property name="enabled" value="${site.portfolio.enable}"/>
 	</bean>
+	<bean id="olatsites_catalogadmin" class="org.olat.repository.site.CatalogAdminSiteDef">
+	   <property name="order" value="12" />
+	   <property name="enabled" value="${site.catalog.enable}"/>
+	</bean>
+	<bean id="olatsites_guidemo" class="org.olat.gui.demo.site.GUIDemoSiteDef">
+	   <property name="order" value="14" />
+	   <property name="enabled" value="${guidemo.enabled}"/>
+	</bean>
 	
 	<bean id="olatsites_home" class="org.olat.home.HomeSiteDef">
 	   <property name="order" value="25" />
diff --git a/src/main/java/org/olat/course/nodes/cl/manager/CheckboxManagerImpl.java b/src/main/java/org/olat/course/nodes/cl/manager/CheckboxManagerImpl.java
index 74cc6c46365718a3abd27b81d3d0d2de690c5a4d..e5d4ca8342a1b8dbc4f638d952c34f508646eaab 100644
--- a/src/main/java/org/olat/course/nodes/cl/manager/CheckboxManagerImpl.java
+++ b/src/main/java/org/olat/course/nodes/cl/manager/CheckboxManagerImpl.java
@@ -34,8 +34,9 @@ import java.util.Set;
 import javax.persistence.EntityManager;
 import javax.persistence.TypedQuery;
 
+import org.olat.basesecurity.Group;
 import org.olat.basesecurity.IdentityImpl;
-import org.olat.basesecurity.SecurityGroupMembershipImpl;
+import org.olat.basesecurity.model.GroupMembershipImpl;
 import org.olat.core.commons.modules.bc.FolderConfig;
 import org.olat.core.commons.modules.bc.vfs.OlatRootFolderImpl;
 import org.olat.core.commons.persistence.DB;
@@ -53,6 +54,7 @@ import org.olat.course.nodes.cl.model.DBCheck;
 import org.olat.course.nodes.cl.model.DBCheckbox;
 import org.olat.course.run.environment.CourseEnvironment;
 import org.olat.group.BusinessGroup;
+import org.olat.modules.vitero.model.GroupRole;
 import org.olat.repository.RepositoryEntry;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -439,7 +441,7 @@ public class CheckboxManagerImpl implements CheckboxManager {
 	}
 
 	@Override
-	public List<AssessmentData> getAssessmentDatas(OLATResourceable ores, String resSubPath, RepositoryEntry re, List<BusinessGroup> groups) {
+	public List<AssessmentData> getAssessmentDatas(OLATResourceable ores, String resSubPath, RepositoryEntry re, List<BusinessGroup> businessGroups) {
 		StringBuilder sb = new StringBuilder();
 		sb.append("select check from clcheck check")
 		  .append(" inner join fetch check.checkbox box")
@@ -448,9 +450,9 @@ public class CheckboxManagerImpl implements CheckboxManager {
 		if(StringHelper.containsNonWhitespace(resSubPath)) {
 			sb.append(" and box.resSubPath=:resSubPath");
 		}
-		if(groups != null && groups.size() > 0) {
-			sb.append(" and check.identity.key in ( select secMembership.identity.key from ").append(SecurityGroupMembershipImpl.class.getName()).append(" secMembership ")
-			  .append("   where secMembership.securityGroup in (:secGroups)")
+		if(businessGroups != null && businessGroups.size() > 0) {
+			sb.append(" and check.identity.key in ( select membership.identity.key from ").append(GroupMembershipImpl.class.getName()).append(" membership ")
+			  .append("   where membership.group in (:baseGroups) and membership.role='").append(GroupRole.participant).append("'")
 			  .append(" )");
 		}
 		
@@ -461,8 +463,12 @@ public class CheckboxManagerImpl implements CheckboxManager {
 		if(StringHelper.containsNonWhitespace(resSubPath)) {
 			query.setParameter("resSubPath", resSubPath);
 		}
-		if(groups != null && groups.size() > 0) {
-			query.setParameter("secGroups", groups);
+		if(businessGroups != null && businessGroups.size() > 0) {
+			List<Group> groups = new ArrayList<>(businessGroups.size());
+			for(BusinessGroup businessGroup:businessGroups) {
+				groups.add(businessGroup.getBaseGroup());
+			}
+			query.setParameter("baseGroups", groups);
 		}
 		//TODO group exists student where i'm coach?
 		
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckListAssessmentController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckListAssessmentController.java
index 2a7a6c66fe0e5a63a9e999fbdaf515bf490eed70..1f645e98d9388d654cf8450e83e733f9918e3c7d 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/CheckListAssessmentController.java
+++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckListAssessmentController.java
@@ -43,6 +43,7 @@ import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
 import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement;
+import org.olat.core.gui.components.form.flexible.elements.FlexiTableFilter;
 import org.olat.core.gui.components.form.flexible.elements.FormLink;
 import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
 import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
@@ -237,28 +238,21 @@ public class CheckListAssessmentController extends FormBasicController implement
 			columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(true, Cols.totalPoints.i18nKey(), Cols.totalPoints.ordinal(), true, "points"));
 		}
 		columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("table.header.edit.checkbox", translate("table.header.edit.checkbox"), "edit"));
-		
-		String[] keys = null;
-		String[] values = null;
+
+		List<CheckListAssessmentRow> datas = loadDatas();
+		model = new CheckListAssessmentDataModel(checkboxList, datas, columnsModel);
+		table = uifactory.addTableElement(ureq, getWindowControl(), "checkbox-list", model, getTranslator(), formLayout);
 		if(userCourseEnv instanceof UserCourseEnvironmentImpl) {
 			UserCourseEnvironmentImpl env = (UserCourseEnvironmentImpl)userCourseEnv;
 			List<BusinessGroup> coachedGroups = env.getCoachedGroups();
-			keys = new String[coachedGroups.size() + 1];
-			values = new String[coachedGroups.size() + 1];
-			
-			keys[0] = "all";
-			values[0] = translate("filter.all");
+			List<FlexiTableFilter> filters = new ArrayList<>(coachedGroups.size() + 1);
+			filters.add(new FlexiTableFilter(translate("filter.all"), "all"));
 			for(int k=0; k<coachedGroups.size(); k++) {
 				BusinessGroup group = coachedGroups.get(k);
-				keys[k+1] = group.getKey().toString();
-				values[k+1] = group.getName();
+				filters.add(new FlexiTableFilter(group.getName(), group.getKey().toString()));
 			}
+			table.setFilters("participants", filters);
 		}
-		
-		List<CheckListAssessmentRow> datas = loadDatas();
-		model = new CheckListAssessmentDataModel(checkboxList, datas, columnsModel);
-		table = uifactory.addTableElement(ureq, getWindowControl(), "checkbox-list", model, getTranslator(), formLayout);
-		table.setFilterKeysAndValues("participants", keys, values);
 		table.setExportEnabled(true);
 		
 		pdfExport = uifactory.addFormLink("pdf.export", formLayout, Link.BUTTON);
diff --git a/src/main/java/org/olat/repository/site/CatalogAdminSite.java b/src/main/java/org/olat/repository/site/CatalogAdminSite.java
new file mode 100644
index 0000000000000000000000000000000000000000..a999052937ecd6a5a08c1dde05830a0a87326119
--- /dev/null
+++ b/src/main/java/org/olat/repository/site/CatalogAdminSite.java
@@ -0,0 +1,90 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.repository.site;
+
+import java.util.Locale;
+
+import org.olat.catalog.ui.CatalogAdminSiteMainController;
+import org.olat.core.commons.chiefcontrollers.BaseChiefController;
+import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.control.Controller;
+import org.olat.core.gui.control.WindowControl;
+import org.olat.core.gui.control.navigation.AbstractSiteInstance;
+import org.olat.core.gui.control.navigation.DefaultNavElement;
+import org.olat.core.gui.control.navigation.NavElement;
+import org.olat.core.gui.control.navigation.SiteConfiguration;
+import org.olat.core.gui.control.navigation.SiteDefinition;
+import org.olat.core.gui.translator.Translator;
+import org.olat.core.id.OLATResourceable;
+import org.olat.core.id.context.BusinessControlFactory;
+import org.olat.core.id.context.StateSite;
+import org.olat.core.logging.activity.ThreadLocalUserActivityLogger;
+import org.olat.core.util.Util;
+import org.olat.core.util.resource.OresHelper;
+import org.olat.util.logging.activity.LoggingResourceable;
+
+/**
+ * 
+ * Initial date: 12.05.2014<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class CatalogAdminSite extends AbstractSiteInstance {
+	private NavElement origNavElem;
+	private NavElement curNavElem;
+
+	public CatalogAdminSite(SiteDefinition siteDef, Locale loc) {
+		super(siteDef);
+		Translator trans = Util.createPackageTranslator(BaseChiefController.class, loc);
+		origNavElem = new DefaultNavElement(trans.translate("topnav.catalog.admin"), trans.translate("topnav.catalog.admin.alt"), "o_site_catalog");		
+		origNavElem.setAccessKey("c".charAt(0));
+		curNavElem = new DefaultNavElement(origNavElem);
+	}
+
+	/**
+	 * @see org.olat.navigation.SiteInstance#getNavElement()
+	 */
+	@Override
+	public NavElement getNavElement() {
+		return curNavElem;
+	}
+
+	@Override
+	protected Controller createController(UserRequest ureq, WindowControl wControl, SiteConfiguration config) {
+		// for existing controller which are part of the main olat -> use the controllerfactory
+		OLATResourceable ores = OresHelper.createOLATResourceableInstance("CatalogAdmin", 0l);
+		ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores));
+		WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ureq, ores, new StateSite(this), wControl, true);
+		return new CatalogAdminSiteMainController(ureq, bwControl);
+	}
+
+	/**
+	 * @see org.olat.navigation.SiteInstance#isKeepState()
+	 */
+	@Override
+	public boolean isKeepState() {
+		return true;
+	}
+
+	@Override
+	public void reset() {
+		curNavElem = new DefaultNavElement(origNavElem);
+	}
+}
diff --git a/src/main/java/org/olat/repository/site/CatalogAdminSiteDef.java b/src/main/java/org/olat/repository/site/CatalogAdminSiteDef.java
new file mode 100644
index 0000000000000000000000000000000000000000..1d305e1bbdac7184f744f90741fe1553d250a415
--- /dev/null
+++ b/src/main/java/org/olat/repository/site/CatalogAdminSiteDef.java
@@ -0,0 +1,53 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.repository.site;
+
+import org.olat.core.CoreSpringFactory;
+import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.control.WindowControl;
+import org.olat.core.gui.control.navigation.AbstractSiteDefinition;
+import org.olat.core.gui.control.navigation.SiteConfiguration;
+import org.olat.core.gui.control.navigation.SiteDefinition;
+import org.olat.core.gui.control.navigation.SiteInstance;
+import org.olat.repository.RepositoryModule;
+
+/**
+ * 
+ * Initial date: 12.05.2014<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class CatalogAdminSiteDef extends AbstractSiteDefinition implements SiteDefinition {
+
+	@Override
+	public SiteInstance createSite(UserRequest ureq, WindowControl wControl, SiteConfiguration config) {
+		RepositoryModule repositoryModule = CoreSpringFactory.getImpl(RepositoryModule.class);
+		if(repositoryModule.isCatalogEnabled() && repositoryModule.isCatalogSiteEnabled()) {
+			return new CatalogAdminSite(this, ureq.getLocale());
+		}
+		return null;
+	}
+
+	@Override
+	public boolean isEnabled() {
+		RepositoryModule repositoryModule = CoreSpringFactory.getImpl(RepositoryModule.class);
+		return repositoryModule.isCatalogEnabled() && repositoryModule.isCatalogSiteEnabled() && super.isEnabled();
+	}
+}
diff --git a/src/main/java/org/olat/repository/ui/author/AuthorListController.java b/src/main/java/org/olat/repository/ui/author/AuthorListController.java
index 2d8c7942cf55d17473413be882dbb36198014b7e..e49ac3670545365eb4abbd218808f215adb8e0c9 100644
--- a/src/main/java/org/olat/repository/ui/author/AuthorListController.java
+++ b/src/main/java/org/olat/repository/ui/author/AuthorListController.java
@@ -19,6 +19,7 @@
  */
 package org.olat.repository.ui.author;
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Set;
@@ -32,6 +33,7 @@ import org.olat.core.gui.components.dropdown.Dropdown;
 import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
 import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement;
+import org.olat.core.gui.components.form.flexible.elements.FlexiTableFilter;
 import org.olat.core.gui.components.form.flexible.elements.FormLink;
 import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
 import org.olat.core.gui.components.form.flexible.impl.FormEvent;
@@ -182,8 +184,19 @@ public class AuthorListController extends FormBasicController implements Activat
 		model = new AuthoringEntryDataModel(dataSource, columnsModel);
 		tableEl = uifactory.addTableElement(ureq, getWindowControl(), "table", model, 20, getTranslator(), formLayout);
 		tableEl.setSearchEnabled(true);
+		tableEl.setExportEnabled(true);
 		tableEl.setCustomizeColumns(true);
-		tableEl.setElementCssClass("o_coursetable o_rendertype_custom");
+		tableEl.setElementCssClass("o_coursetable");
+		tableEl.setFilters(null, getFilters());
+	}
+	
+	private List<FlexiTableFilter> getFilters() {
+		Set<String> supportedTypes = repositoryHandlerFactory.getSupportedTypes();
+		List<FlexiTableFilter> resources = new ArrayList<>(supportedTypes.size() + 1);
+		for(String type:supportedTypes) {
+			resources.add(new FlexiTableFilter(translate(type), type));
+		}
+		return resources;
 	}
 	
 	public TooledStackedPanel getStackPanel() {
diff --git a/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataSource.java b/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataSource.java
index b98cfa7b44b6fe4f45e244573bbea898cb11b8c3..dec3e275337da9ba9dd228a5b94329630b56f390 100644
--- a/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataSource.java
+++ b/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataSource.java
@@ -97,6 +97,15 @@ public class AuthoringEntryDataSource implements FlexiTableDataSourceDelegate<Au
 	public final ResultInfos<AuthoringEntryRow> getRows(String query, List<String> condQueries,
 			int firstResult, int maxResults, SortKey... orderBy) {
 
+		if(condQueries != null && condQueries.size() > 0) {
+			String filter = condQueries.get(0);
+			if(StringHelper.containsNonWhitespace(filter)) {
+				searchParams.addResourceTypes(filter);
+			} else {
+				searchParams.setResourceTypes(null);
+			}
+		}
+		
 		if(StringHelper.containsNonWhitespace(query)) {
 			try {
 				List<Long> fullTextResults = searchClient.doSearch(query, null, searchParams.getIdentity(), searchParams.getRoles(), 0, 100);
diff --git a/src/main/java/org/olat/repository/ui/list/DefaultRepositoryEntryDataSource.java b/src/main/java/org/olat/repository/ui/list/DefaultRepositoryEntryDataSource.java
index fbe75f1e31b89f4ae04f370987ac5631798d8a9a..3bf6d144492fb7aeeaae1adc9c01827ee8a31657 100644
--- a/src/main/java/org/olat/repository/ui/list/DefaultRepositoryEntryDataSource.java
+++ b/src/main/java/org/olat/repository/ui/list/DefaultRepositoryEntryDataSource.java
@@ -107,6 +107,15 @@ public class DefaultRepositoryEntryDataSource implements FlexiTableDataSourceDel
 	@Override
 	public final ResultInfos<RepositoryEntryRow> getRows(String query, List<String> condQueries,
 			int firstResult, int maxResults, SortKey... orderBy) {
+		
+		if(condQueries != null && condQueries.size() > 0) {
+			String filter = condQueries.get(0);
+			if(StringHelper.containsNonWhitespace(filter)) {
+				searchParams.setFilters(Collections.singletonList(Filter.valueOf(filter)));
+			} else {
+				searchParams.setFilters(null);
+			}
+		}
 
 		if(StringHelper.containsNonWhitespace(query)) {
 			try {
@@ -121,7 +130,7 @@ public class DefaultRepositoryEntryDataSource implements FlexiTableDataSourceDel
 		List<RepositoryEntryRow> rows = processViewModel(views);
 		ResultInfos<RepositoryEntryRow> results = new DefaultResultInfos<RepositoryEntryRow>(firstResult + rows.size(), -1, rows);
 		if(firstResult == 0 && views.size() < maxResults) {
-			count = new Integer(views.size() );
+			count = new Integer(views.size());
 		}
 		return results;
 	}
diff --git a/src/main/java/org/olat/repository/ui/list/RepositoryEntryDataModel.java b/src/main/java/org/olat/repository/ui/list/RepositoryEntryDataModel.java
index d7651f0b0f45b7acbbdcb24e9b9203387f48630a..f448aa2e5f58f30a02ce0ddcab936f1828da5de7 100644
--- a/src/main/java/org/olat/repository/ui/list/RepositoryEntryDataModel.java
+++ b/src/main/java/org/olat/repository/ui/list/RepositoryEntryDataModel.java
@@ -21,7 +21,6 @@ package org.olat.repository.ui.list;
 
 import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiTableDataSourceModel;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel;
-import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataSourceDelegate;
 
 /**
  * 
@@ -31,7 +30,7 @@ import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTable
  */
 class RepositoryEntryDataModel extends DefaultFlexiTableDataSourceModel<RepositoryEntryRow> {
 	
-	public RepositoryEntryDataModel(FlexiTableDataSourceDelegate<RepositoryEntryRow> source, FlexiTableColumnModel columnModel) {
+	public RepositoryEntryDataModel(DefaultRepositoryEntryDataSource source, FlexiTableColumnModel columnModel) {
 		super(source, columnModel);
 	}
 
@@ -40,6 +39,11 @@ class RepositoryEntryDataModel extends DefaultFlexiTableDataSourceModel<Reposito
 		return new RepositoryEntryDataModel(getSourceDelegate(), getTableColumnModel());
 	}
 
+	@Override
+	public DefaultRepositoryEntryDataSource getSourceDelegate() {
+		return (DefaultRepositoryEntryDataSource)super.getSourceDelegate();
+	}
+
 	@Override
 	public Object getValueAt(int row, int col) {
 		RepositoryEntryRow item = getObject(row);
diff --git a/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java b/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java
index 01aeffeaefb86534730696a6624a26ab0f6d1a13..5948d4b1a532fc2b598ad7db6a16f8e0c49b962b 100644
--- a/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java
+++ b/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java
@@ -35,6 +35,8 @@ import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
 import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement;
+import org.olat.core.gui.components.form.flexible.elements.FlexiTableFilter;
+import org.olat.core.gui.components.form.flexible.elements.FlexiTableSort;
 import org.olat.core.gui.components.form.flexible.elements.FormLink;
 import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
 import org.olat.core.gui.components.form.flexible.impl.FormEvent;
@@ -44,7 +46,6 @@ import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTable
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableRendererType;
 import org.olat.core.gui.components.link.Link;
-import org.olat.core.gui.components.link.LinkFactory;
 import org.olat.core.gui.components.rating.RatingFormEvent;
 import org.olat.core.gui.components.rating.RatingWithAverageFormItem;
 import org.olat.core.gui.components.stack.BreadcrumbPanel;
@@ -77,8 +78,7 @@ public class RepositoryEntryListController extends FormBasicController
 
 	private final List<Link> filters = new ArrayList<>();
 	private final List<Link> orderBy = new ArrayList<>();
-	
-	private FormLink listLink, tableLink;
+
 	private FlexiTableElement tableEl;
 	private RepositoryEntryDataModel model;
 	private DefaultRepositoryEntryDataSource dataSource;
@@ -112,68 +112,41 @@ public class RepositoryEntryListController extends FormBasicController
 	}
 
 	private void initFilters() {
-		VelocityContainer filterVc = createVelocityContainer("filters");
-		filterVc.setDomReplacementWrapperRequired(false);
-		flc.put("filters", filterVc);
-		//lifecycle
-		initFilter("current.courses", "filter.current.courses", Filter.currentCourses, filterVc);
-		initFilter("upcoming.courses", "filter.upcoming.courses", Filter.upcomingCourses, filterVc);
-		initFilter("old.courses", "filter.old.courses", Filter.oldCourses, filterVc);
-		//membership
-		initFilter("as.participant", "filter.booked.participant", Filter.asParticipant, filterVc);
-		initFilter("as.coach", "filter.booked.coach", Filter.asCoach, filterVc);
-		initFilter("as.author", "filter.booked.author", Filter.asAuthor, filterVc);
-		initFilter("not.booked", "filter.not.booked", Filter.notBooked, filterVc);
-		
-		//efficiency statment
-		initFilter("passed", "filter.passed", Filter.passed, filterVc);
-		initFilter("not.passed", "filter.not.passed", Filter.notPassed, filterVc);
-		initFilter("without", "filter.without.passed.infos", Filter.withoutPassedInfos, filterVc);
-	}
-	
-	private void initFilter(String name, String i18nKey, Filter filter, VelocityContainer filterVc) {
-		Link notPassedLink = LinkFactory.createCustomLink(name, name, i18nKey, Link.LINK, filterVc, this);
-		notPassedLink.setUserObject(filter);
-		filters.add(notPassedLink);
+		List<FlexiTableFilter> filters = new ArrayList<>(14);
+		filters.add(new FlexiTableFilter(translate("filter.current.courses"), Filter.currentCourses.name()));
+		filters.add(new FlexiTableFilter(translate("filter.upcoming.courses"), Filter.upcomingCourses.name()));
+		filters.add(new FlexiTableFilter(translate("filter.old.courses"), Filter.oldCourses.name()));
+		filters.add(FlexiTableFilter.SPACER);
+		filters.add(new FlexiTableFilter(translate("filter.booked.participant"), Filter.asParticipant.name()));
+		filters.add(new FlexiTableFilter(translate("filter.booked.coach"), Filter.asCoach.name()));
+		filters.add(new FlexiTableFilter(translate("filter.booked.author"), Filter.asAuthor.name()));
+		filters.add(new FlexiTableFilter(translate("filter.not.booked"), Filter.notBooked.name()));
+		filters.add(FlexiTableFilter.SPACER);
+		filters.add(new FlexiTableFilter(translate("filter.passed"), Filter.passed.name()));
+		filters.add(new FlexiTableFilter(translate("filter.not.passed"), Filter.notPassed.name()));
+		filters.add(new FlexiTableFilter(translate("filter.without.passed.infos"), Filter.withoutPassedInfos.name()));
+		tableEl.setFilters(null, filters);
 	}
 	
 	private void initSorters() {
-		VelocityContainer orderByVc = createVelocityContainer("orderby");
-		orderByVc.setDomReplacementWrapperRequired(false);
-		flc.put("orderBys", orderByVc);
-		
-		initOrderBy("orderby.automatic", OrderBy.automatic, orderByVc);
-		initOrderBy("orderby.favorit", OrderBy.favorit, orderByVc);
-		initOrderBy("orderby.lastVisited", OrderBy.lastVisited, orderByVc);
-		initOrderBy("orderby.score", OrderBy.score, orderByVc);
-		initOrderBy("orderby.passed", OrderBy.passed, orderByVc);
-		
-		initOrderBy("orderby.title", OrderBy.title, orderByVc);
-		initOrderBy("orderby.lifecycle", OrderBy.lifecycle, orderByVc);
-		initOrderBy("orderby.author", OrderBy.author, orderByVc);
-		initOrderBy("orderby.creationDate", OrderBy.creationDate, orderByVc);
-		initOrderBy("orderby.lastModified", OrderBy.lastModified, orderByVc);
-		initOrderBy("orderby.rating", OrderBy.rating, orderByVc);
-	}
-	
-	private void initOrderBy(String name, OrderBy order, VelocityContainer filterVc) {
-		Link notPassedLink = LinkFactory.createCustomLink(name, name, name, Link.LINK, filterVc, this);
-		notPassedLink.setUserObject(order);
-		orderBy.add(notPassedLink);
+		List<FlexiTableSort> sorters = new ArrayList<>();
+		sorters.add(new FlexiTableSort(translate("orderby.automatic"), OrderBy.automatic.name()));
+		sorters.add(new FlexiTableSort(translate("orderby.favorit"), OrderBy.favorit.name()));
+		sorters.add(new FlexiTableSort(translate("orderby.lastVisited"), OrderBy.lastVisited.name()));
+		sorters.add(new FlexiTableSort(translate("orderby.score"), OrderBy.score.name()));
+		sorters.add(new FlexiTableSort(translate("orderby.passed"), OrderBy.passed.name()));
+		sorters.add(FlexiTableSort.SPACER);
+		sorters.add(new FlexiTableSort(translate("orderby.title"), OrderBy.title.name()));
+		sorters.add(new FlexiTableSort(translate("orderby.lifecycle"), OrderBy.lifecycle.name()));
+		sorters.add(new FlexiTableSort(translate("orderby.author"), OrderBy.author.name()));
+		sorters.add(new FlexiTableSort(translate("orderby.creationDate"), OrderBy.creationDate.name()));
+		sorters.add(new FlexiTableSort(translate("orderby.lastModified"), OrderBy.lastModified.name()));
+		sorters.add(new FlexiTableSort(translate("orderby.rating"), OrderBy.rating.name()));
+		tableEl.setSorts("", sorters);
 	}
 
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
-		listLink = uifactory.addFormLink("switchLayoutList", "list", "", null, formLayout, Link.BUTTON + Link.NONTRANSLATED);
-		listLink.setIconLeftCSS("o_icon o_icon_list o_icon-lg");
-		listLink.setLinkTitle(translate("table.switch.list"));
-		listLink.setActive(true);
-		tableLink = uifactory.addFormLink("switchLayoutTable", "table", "", null, formLayout, Link.BUTTON + Link.NONTRANSLATED);
-		tableLink.setIconLeftCSS("o_icon o_icon_table o_icon-lg");
-		tableLink.setLinkTitle(translate("table.switch.table"));
-		tableLink.setActive(false);			
-		
-		//add the table
 		FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel();
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, Cols.key.i18nKey(), Cols.key.ordinal(), false, null));
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.mark.i18nKey(), Cols.mark.ordinal()));
@@ -191,6 +164,7 @@ public class RepositoryEntryListController extends FormBasicController
 		model = new RepositoryEntryDataModel(dataSource, columnsModel);
 		tableEl = uifactory.addTableElement(ureq, getWindowControl(), "table", model, 20, getTranslator(), formLayout);
 		tableEl.setRendererType(FlexiTableRendererType.custom);
+		tableEl.setAvailableRendererTypes(FlexiTableRendererType.custom, FlexiTableRendererType.classic);
 		tableEl.setSearchEnabled(true);
 		tableEl.setCustomizeColumns(false);
 		tableEl.setElementCssClass("o_coursetable o_rendertype_custom");
@@ -220,20 +194,8 @@ public class RepositoryEntryListController extends FormBasicController
 	}
 
 	@Override
-	protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
-		if(listLink == source) {
-			tableEl.setRendererType(FlexiTableRendererType.custom);
-			tableEl.setElementCssClass("o_coursetable o_rendertype_custom");
-			tableEl.setCustomizeColumns(false);
-			listLink.setActive(true);
-			tableLink.setActive(false);			
-		} else if(tableLink == source) {
-			tableEl.setRendererType(FlexiTableRendererType.classic);
-			tableEl.setElementCssClass("o_coursetable o_rendertype_classic");
-			tableEl.setCustomizeColumns(true);
-			listLink.setActive(false);
-			tableLink.setActive(true);
-		} else if(source instanceof RatingWithAverageFormItem && event instanceof RatingFormEvent) {
+	protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {	
+		if(source instanceof RatingWithAverageFormItem && event instanceof RatingFormEvent) {
 			RatingFormEvent ratingEvent = (RatingFormEvent)event;
 			RatingWithAverageFormItem ratingItem = (RatingWithAverageFormItem)source;
 			RepositoryEntryRow row = (RepositoryEntryRow)ratingItem.getUserObject();
diff --git a/src/main/java/org/olat/repository/ui/list/_content/filters.html b/src/main/java/org/olat/repository/ui/list/_content/filters.html
deleted file mode 100644
index c8d8f4bc4706bac5411250c9c0a4afd7fed0e27d..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/repository/ui/list/_content/filters.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<ul id="$r.getCId()" class="dropdown-menu">
-	<li>$r.render("current.courses")</li>
-	<li>$r.render("upcoming.courses")</li>
-	<li>$r.render("old.courses")</li>
-	<li role="presentation" class="divider"></li>
-	<li>$r.render("as.participant")</li>
-	<li>$r.render("as.coach")</li>
-	<li>$r.render("as.author")</li>
-	<li>$r.render("not.booked")</li>
-	<li role="presentation" class="divider"></li>
-	<li>$r.render("passed")</li>
-	<li>$r.render("not.passed")</li>
-	<li>$r.render("without")</li>
-</ul>
\ No newline at end of file
diff --git a/src/main/java/org/olat/repository/ui/list/_content/orderby.html b/src/main/java/org/olat/repository/ui/list/_content/orderby.html
deleted file mode 100644
index d4e419d0932b5efc2fbbc9532b9280061e377706..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/repository/ui/list/_content/orderby.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<ul id="$r.getCId()" class="dropdown-menu">
-	<li>$r.render("orderby.automatic")</li>
-	<li>$r.render("orderby.favorit")</li>
-	<li>$r.render("orderby.lastVisited")</li>
-	<li>$r.render("orderby.passed")</li>
-	<li>$r.render("orderby.score")</li>
-	<li role="presentation" class="divider"></li>
-	<li>$r.render("orderby.title")</li>
-	<li>$r.render("orderby.lifecycle")</li>
-	<li>$r.render("orderby.author")</li>
-	<li>$r.render("orderby.creationDate")</li>
-	<li>$r.render("orderby.lastModified")</li>
-	<li>$r.render("orderby.rating")</li>
-</ul>
\ No newline at end of file
diff --git a/src/main/java/org/olat/repository/ui/list/_content/repoentry_table.html b/src/main/java/org/olat/repository/ui/list/_content/repoentry_table.html
index cfd2b21c34f3d769cbdaea8256357fb21e7bf04c..bade9402acda206e8171adcb2d85adb1b884ea54 100644
--- a/src/main/java/org/olat/repository/ui/list/_content/repoentry_table.html
+++ b/src/main/java/org/olat/repository/ui/list/_content/repoentry_table.html
@@ -1,15 +1 @@
-<div class="pull-right o_table_tools">
-	<div class="btn-group">
-		<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" title="$r.translate("table.filter")"><i class="o_icon o_icon_filter o_icon-lg"></i> <span class="caret"></span></button>
-		$r.render("filters")
-	</div>
-	<div class="btn-group">
-		<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" title="$r.translate("table.sort")"><i class="o_icon o_icon_sort_menu o_icon-lg"></i> <span class="caret"></span></button>
-		$r.render("orderBys")
-	</div>
-	<div class="btn-group">
-		$r.render("switchLayoutList")
-		$r.render("switchLayoutTable")
-	</div> 
-</div>
 $r.render("table")
\ No newline at end of file
diff --git a/src/main/webapp/static/themes/light/modules/_icons.scss b/src/main/webapp/static/themes/light/modules/_icons.scss
index f148b1da11d6945aaebe7a76c9fe00a28f32d266..674a6b3c2825343a3d77912ec2f17b21356043a1 100644
--- a/src/main/webapp/static/themes/light/modules/_icons.scss
+++ b/src/main/webapp/static/themes/light/modules/_icons.scss
@@ -23,6 +23,7 @@ $fa-css-prefix: "o_icon" !default;
 .o_icon_delete { @extend .o_icon-minus-circle; color: #A87E7E;}
 .o_icon_details { @extend .o_icon-eye; }
 .o_icon_dev { @extend .o_icon-wrench;}
+.o_icon_download { @extend .o_icon-download;}
 .o_icon_edit { @extend .o_icon-edit;}
 .o_icon_edit_file { @extend .o_icon-edit;}
 .o_icon_edit_metadata { @extend .o_icon-edit; color: #996633;}
diff --git a/src/main/webapp/static/themes/light/theme.css b/src/main/webapp/static/themes/light/theme.css
index 501e26ff269ca13868234efc65295144db602ea5..c2170d6661d4d7ccb94ea8d21470b4acb851fb78 100644
--- a/src/main/webapp/static/themes/light/theme.css
+++ b/src/main/webapp/static/themes/light/theme.css
@@ -42,7 +42,7 @@ small,.small,.o_comments .o_comment_wrapper h5,.o_comments .o_comment_wrapper .o
 .thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#333}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left,#o_main_wrapper #o_main_container .media>#o_main_left,#o_navbar_imclient .media>#o_im_message,#o_navbar_imclient .media>#o_im_status,#o_navbar_imclient .media>#o_im_summary,.o_comments .o_comment_wrapper .media>.o_avatar,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .media>.o_rating_wrapper{margin-right:10px}.media>.pull-right,.media>div.o_chelp_wrapper,#o_main_wrapper #o_main_container .media>#o_main_right,.o_comments .o_comment_wrapper .media>.o_reply,.o_comments .o_comment_wrapper .media>.o_delete{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn,.modal-footer a.o_chelp+.btn,.modal-footer .btn+a.o_chelp,.modal-footer a.o_chelp+a.o_chelp{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn,.modal-footer .btn-group a.o_chelp+.btn,.modal-footer .btn-group .btn+a.o_chelp,.modal-footer .btn-group a.o_chelp+a.o_chelp{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width: 768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width: 992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:fadein(rgba(0,0,0,0.2), 5%);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:fadein(rgba(0,0,0,0.2), 5%)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:fadein(rgba(0,0,0,0.2), 5%);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:fadein(rgba(0,0,0,0.2), 5%)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.5) 0%), color-stop(rgba(0,0,0,0.0001) 100%));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.0001) 0%), color-stop(rgba(0,0,0,0.5) 100%));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:none;color:#fff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:transparent}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn,.carousel-caption a.o_chelp{text-shadow:none}@media screen and (min-width: 768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right,div.o_chelp_wrapper,#o_main_wrapper #o_main_container #o_main_right,.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete{float:right !important}.pull-left,#o_main_wrapper #o_main_container #o_main_left,#o_navbar_imclient #o_im_message,#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_summary,.o_comments .o_comment_wrapper .o_avatar,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}@media (max-width: 767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width: 1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (max-width: 767px){.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}@media print{.hidden-print{display:none !important}}body .modal{position:absolute;overflow:visible}/*!
  *  Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome
  *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */@font-face{font-family:'FontAwesome';src:url("../../../font-awesome/fonts/fontawesome-webfont.eot?v=4.0.3");src:url("../../../font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.0.3") format("embedded-opentype"),url("../../../font-awesome/fonts/fontawesome-webfont.woff?v=4.0.3") format("woff"),url("../../../font-awesome/fonts/fontawesome-webfont.ttf?v=4.0.3") format("truetype"),url("../../../font-awesome/fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.o_icon,.o_sp_icon,.o_st_icon,.o_tu_icon,.o_midpub,.o_midwarn,.o_midlock,.o_miderr,.o_middel{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_icon-lg,.o_icon_help{font-size:1.33333em;line-height:0.75em;vertical-align:-15%}.o_icon-2x{font-size:2em}.o_icon-3x{font-size:3em}.o_icon-4x{font-size:4em}.o_icon-5x{font-size:5em}.o_icon-fw{width:1.28571em;text-align:center}.o_icon-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.o_icon-ul>li{position:relative}.o_icon-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.o_icon-li.o_icon-lg,.o_icon-li.o_icon_help{left:-1.85714em}.o_icon-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.pull-right,div.o_chelp_wrapper,#o_main_wrapper #o_main_container #o_main_right,.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete{float:right}.pull-left,#o_main_wrapper #o_main_container #o_main_left,#o_navbar_imclient #o_im_message,#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_summary,.o_comments .o_comment_wrapper .o_avatar,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper{float:left}.o_icon.pull-left,#o_main_wrapper #o_main_container .o_icon#o_main_left,#o_main_wrapper #o_main_container #o_main_left.o_sp_icon,#o_main_wrapper #o_main_container #o_main_left.o_st_icon,#o_main_wrapper #o_main_container #o_main_left.o_tu_icon,#o_main_wrapper #o_main_container #o_main_left.o_midpub,#o_main_wrapper #o_main_container #o_main_left.o_midwarn,#o_main_wrapper #o_main_container #o_main_left.o_midlock,#o_main_wrapper #o_main_container #o_main_left.o_miderr,#o_main_wrapper #o_main_container #o_main_left.o_middel,#o_navbar_imclient .o_icon#o_im_message,#o_navbar_imclient #o_im_message.o_sp_icon,#o_navbar_imclient #o_im_message.o_st_icon,#o_navbar_imclient #o_im_message.o_tu_icon,#o_navbar_imclient #o_im_message.o_midpub,#o_navbar_imclient #o_im_message.o_midwarn,#o_navbar_imclient #o_im_message.o_midlock,#o_navbar_imclient #o_im_message.o_miderr,#o_navbar_imclient #o_im_message.o_middel,#o_navbar_imclient .o_icon#o_im_status,#o_navbar_imclient #o_im_status.o_sp_icon,#o_navbar_imclient #o_im_status.o_st_icon,#o_navbar_imclient #o_im_status.o_tu_icon,#o_navbar_imclient #o_im_status.o_midpub,#o_navbar_imclient #o_im_status.o_midwarn,#o_navbar_imclient #o_im_status.o_midlock,#o_navbar_imclient #o_im_status.o_miderr,#o_navbar_imclient #o_im_status.o_middel,#o_navbar_imclient .o_icon#o_im_summary,#o_navbar_imclient #o_im_summary.o_sp_icon,#o_navbar_imclient #o_im_summary.o_st_icon,#o_navbar_imclient #o_im_summary.o_tu_icon,#o_navbar_imclient #o_im_summary.o_midpub,#o_navbar_imclient #o_im_summary.o_midwarn,#o_navbar_imclient #o_im_summary.o_midlock,#o_navbar_imclient #o_im_summary.o_miderr,#o_navbar_imclient #o_im_summary.o_middel,.o_comments .o_comment_wrapper .o_icon.o_avatar,.o_comments .o_comment_wrapper .o_avatar.o_sp_icon,.o_comments .o_comment_wrapper .o_avatar.o_st_icon,.o_comments .o_comment_wrapper .o_avatar.o_tu_icon,.o_comments .o_comment_wrapper .o_avatar.o_midpub,.o_comments .o_comment_wrapper .o_avatar.o_midwarn,.o_comments .o_comment_wrapper .o_avatar.o_midlock,.o_comments .o_comment_wrapper .o_avatar.o_miderr,.o_comments .o_comment_wrapper .o_avatar.o_middel,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_icon.o_rating_wrapper,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper.o_sp_icon,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper.o_st_icon,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper.o_tu_icon,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper.o_midpub,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper.o_midwarn,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper.o_midlock,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper.o_miderr,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper.o_middel,.pull-left.o_sp_icon,.pull-left.o_st_icon,.pull-left.o_tu_icon,.pull-left.o_midpub,.pull-left.o_midwarn,.pull-left.o_midlock,.pull-left.o_miderr,.pull-left.o_middel{margin-right:.3em}.o_icon.pull-right,div.o_icon.o_chelp_wrapper,div.o_chelp_wrapper.o_sp_icon,div.o_chelp_wrapper.o_st_icon,div.o_chelp_wrapper.o_tu_icon,div.o_chelp_wrapper.o_midpub,div.o_chelp_wrapper.o_midwarn,div.o_chelp_wrapper.o_midlock,div.o_chelp_wrapper.o_miderr,div.o_chelp_wrapper.o_middel,#o_main_wrapper #o_main_container .o_icon#o_main_right,#o_main_wrapper #o_main_container #o_main_right.o_sp_icon,#o_main_wrapper #o_main_container #o_main_right.o_st_icon,#o_main_wrapper #o_main_container #o_main_right.o_tu_icon,#o_main_wrapper #o_main_container #o_main_right.o_midpub,#o_main_wrapper #o_main_container #o_main_right.o_midwarn,#o_main_wrapper #o_main_container #o_main_right.o_midlock,#o_main_wrapper #o_main_container #o_main_right.o_miderr,#o_main_wrapper #o_main_container #o_main_right.o_middel,.o_comments .o_comment_wrapper .o_icon.o_reply,.o_comments .o_comment_wrapper .o_reply.o_sp_icon,.o_comments .o_comment_wrapper .o_reply.o_st_icon,.o_comments .o_comment_wrapper .o_reply.o_tu_icon,.o_comments .o_comment_wrapper .o_reply.o_midpub,.o_comments .o_comment_wrapper .o_reply.o_midwarn,.o_comments .o_comment_wrapper .o_reply.o_midlock,.o_comments .o_comment_wrapper .o_reply.o_miderr,.o_comments .o_comment_wrapper .o_reply.o_middel,.o_comments .o_comment_wrapper .o_icon.o_delete,.o_comments .o_comment_wrapper .o_delete.o_sp_icon,.o_comments .o_comment_wrapper .o_delete.o_st_icon,.o_comments .o_comment_wrapper .o_delete.o_tu_icon,.o_comments .o_comment_wrapper .o_delete.o_midpub,.o_comments .o_comment_wrapper .o_delete.o_midwarn,.o_comments .o_comment_wrapper .o_delete.o_midlock,.o_comments .o_comment_wrapper .o_delete.o_miderr,.o_comments .o_comment_wrapper .o_delete.o_middel,.pull-right.o_sp_icon,.pull-right.o_st_icon,.pull-right.o_tu_icon,.pull-right.o_midpub,.pull-right.o_midwarn,.pull-right.o_midlock,.pull-right.o_miderr,.pull-right.o_middel{margin-left:.3em}.o_icon-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.o_icon-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.o_icon-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.o_icon-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.o_icon-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation);-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.o_icon-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation);-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}.o_icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.o_icon-stack-1x,.o_icon-stack-2x{position:absolute;left:0;width:100%;text-align:center}.o_icon-stack-1x{line-height:inherit}.o_icon-stack-2x{font-size:2em}.o_icon-inverse{color:#fff}.o_icon-glass:before{content:"\f000"}.o_icon-music:before{content:"\f001"}.o_icon-search:before,.o_icon_search:before{content:"\f002"}.o_icon-envelope-o:before{content:"\f003"}.o_icon-heart:before{content:"\f004"}.o_icon-star:before,.o_icon_rating_on:before,.o_rating .o_rating_items.o_enabled .o_icon:hover:before,.o_rating .o_rating_items.o_enabled .o_sp_icon:hover:before,.o_rating .o_rating_items.o_enabled .o_st_icon:hover:before,.o_rating .o_rating_items.o_enabled .o_tu_icon:hover:before,.o_rating .o_rating_items.o_enabled .o_midpub:hover:before,.o_rating .o_rating_items.o_enabled .o_midwarn:hover:before,.o_rating .o_rating_items.o_enabled .o_midlock:hover:before,.o_rating .o_rating_items.o_enabled .o_miderr:hover:before,.o_rating .o_rating_items.o_enabled .o_middel:hover:before{content:"\f005"}.o_icon-star-o:before,.o_icon_rating_off:before{content:"\f006"}.o_icon-user:before{content:"\f007"}.o_icon-film:before{content:"\f008"}.o_icon-th-large:before{content:"\f009"}.o_icon-th:before{content:"\f00a"}.o_icon-th-list:before{content:"\f00b"}.o_icon-check:before,.o_icon_check:before{content:"\f00c"}.o_icon-times:before,.o_icon_close_tab:before,.o_icon_close:before{content:"\f00d"}.o_icon-search-plus:before{content:"\f00e"}.o_icon-search-minus:before{content:"\f010"}.o_icon-power-off:before{content:"\f011"}.o_icon-signal:before{content:"\f012"}.o_icon-gear:before,.o_icon_customize:before,.o_icon_tool:before,.o_icon-cog:before{content:"\f013"}.o_icon-trash-o:before{content:"\f014"}.o_icon-home:before{content:"\f015"}.o_icon-file-o:before,.o_tu_icon:before{content:"\f016"}.o_icon-clock-o:before,.o_icon_lifecycle:before{content:"\f017"}.o_icon-road:before{content:"\f018"}.o_icon-download:before{content:"\f019"}.o_icon-arrow-circle-o-down:before{content:"\f01a"}.o_icon-arrow-circle-o-up:before{content:"\f01b"}.o_icon-inbox:before{content:"\f01c"}.o_icon-play-circle-o:before{content:"\f01d"}.o_icon-rotate-right:before,.o_icon-repeat:before{content:"\f01e"}.o_icon-refresh:before,.o_icon_refresh:before{content:"\f021"}.o_icon-list-alt:before{content:"\f022"}.o_icon-lock:before,.o_ac_membersonly_icon:before,.o_midlock:before{content:"\f023"}.o_icon-flag:before{content:"\f024"}.o_icon-headphones:before{content:"\f025"}.o_icon-volume-off:before{content:"\f026"}.o_icon-volume-down:before{content:"\f027"}.o_icon-volume-up:before{content:"\f028"}.o_icon-qrcode:before{content:"\f029"}.o_icon-barcode:before{content:"\f02a"}.o_icon-tag:before{content:"\f02b"}.o_icon-tags:before{content:"\f02c"}.o_icon-book:before{content:"\f02d"}.o_icon-bookmark:before,.o_icon_bookmark:before{content:"\f02e"}.o_icon-print:before,.o_icon_print:before{content:"\f02f"}.o_icon-camera:before{content:"\f030"}.o_icon-font:before{content:"\f031"}.o_icon-bold:before{content:"\f032"}.o_icon-italic:before{content:"\f033"}.o_icon-text-height:before{content:"\f034"}.o_icon-text-width:before{content:"\f035"}.o_icon-align-left:before{content:"\f036"}.o_icon-align-center:before{content:"\f037"}.o_icon-align-right:before{content:"\f038"}.o_icon-align-justify:before{content:"\f039"}.o_icon-list:before,.o_icon_list:before{content:"\f03a"}.o_icon-dedent:before,.o_icon-outdent:before{content:"\f03b"}.o_icon-indent:before{content:"\f03c"}.o_icon-video-camera:before{content:"\f03d"}.o_icon-picture-o:before{content:"\f03e"}.o_icon-pencil:before{content:"\f040"}.o_icon-map-marker:before{content:"\f041"}.o_icon-adjust:before{content:"\f042"}.o_icon-tint:before{content:"\f043"}.o_icon-edit:before,.o_icon_edit:before,.o_icon_edit_file:before,.o_icon_edit_metadata:before,.o_icon_readonly:before,.o_icon_readwrite:before,.o_icon-pencil-square-o:before{content:"\f044"}.o_icon-share-square-o:before{content:"\f045"}.o_icon-check-square-o:before{content:"\f046"}.o_icon-arrows:before{content:"\f047"}.o_icon-step-backward:before{content:"\f048"}.o_icon-fast-backward:before{content:"\f049"}.o_icon-backward:before{content:"\f04a"}.o_icon-play:before{content:"\f04b"}.o_icon-pause:before{content:"\f04c"}.o_icon-stop:before{content:"\f04d"}.o_icon-forward:before{content:"\f04e"}.o_icon-fast-forward:before{content:"\f050"}.o_icon-step-forward:before{content:"\f051"}.o_icon-eject:before{content:"\f052"}.o_icon-chevron-left:before{content:"\f053"}.o_icon-chevron-right:before,.o_icon_start:before{content:"\f054"}.o_icon-plus-circle:before{content:"\f055"}.o_icon-minus-circle:before,.o_icon_delete:before{content:"\f056"}.o_icon-times-circle:before,.o_icon_failed:before{content:"\f057"}.o_icon-check-circle:before,.o_icon_passed:before,.o_midpub:before{content:"\f058"}.o_icon-question-circle:before,.o_icon_help:before{content:"\f059"}.o_icon-info-circle:before,.o_icon_impress:before{content:"\f05a"}.o_icon-crosshairs:before{content:"\f05b"}.o_icon-times-circle-o:before,.o_icon_status_unavailable:before{content:"\f05c"}.o_icon-check-circle-o:before{content:"\f05d"}.o_icon-ban:before{content:"\f05e"}.o_icon-arrow-left:before{content:"\f060"}.o_icon-arrow-right:before{content:"\f061"}.o_icon-arrow-up:before{content:"\f062"}.o_icon-arrow-down:before{content:"\f063"}.o_icon-mail-forward:before,.o_icon-share:before{content:"\f064"}.o_icon-expand:before{content:"\f065"}.o_icon-compress:before{content:"\f066"}.o_icon-plus:before{content:"\f067"}.o_icon-minus:before{content:"\f068"}.o_icon-asterisk:before,.o_icon_mandatory:before{content:"\f069"}.o_icon-exclamation-circle:before{content:"\f06a"}.o_icon-gift:before,.o_ac_free_icon:before{content:"\f06b"}.o_icon-leaf:before{content:"\f06c"}.o_icon-fire:before{content:"\f06d"}.o_icon-eye:before,.o_icon_details:before,.o_icon_preview:before{content:"\f06e"}.o_icon-eye-slash:before{content:"\f070"}.o_icon-warning:before,.o_midwarn:before,.o_miderr:before,.o_icon-exclamation-triangle:before{content:"\f071"}.o_icon-plane:before{content:"\f072"}.o_icon-calendar:before,.o_icon_calendar:before{content:"\f073"}.o_icon-random:before{content:"\f074"}.o_icon-comment:before,.o_icon_status_chat:before{content:"\f075"}.o_icon-magnet:before{content:"\f076"}.o_icon-chevron-up:before{content:"\f077"}.o_icon-chevron-down:before{content:"\f078"}.o_icon-retweet:before{content:"\f079"}.o_icon-shopping-cart:before{content:"\f07a"}.o_icon-folder:before{content:"\f07b"}.o_icon-folder-open:before{content:"\f07c"}.o_icon-arrows-v:before{content:"\f07d"}.o_icon-arrows-h:before{content:"\f07e"}.o_icon-bar-chart-o:before{content:"\f080"}.o_icon-twitter-square:before{content:"\f081"}.o_icon-facebook-square:before{content:"\f082"}.o_icon-camera-retro:before{content:"\f083"}.o_icon-key:before,.o_ac_token_icon:before{content:"\f084"}.o_icon-gears:before,.o_icon-cogs:before{content:"\f085"}.o_icon-comments:before,.o_icon_comments:before{content:"\f086"}.o_icon-thumbs-o-up:before{content:"\f087"}.o_icon-thumbs-o-down:before{content:"\f088"}.o_icon-star-half:before{content:"\f089"}.o_icon-heart-o:before{content:"\f08a"}.o_icon-sign-out:before,.o_icon_logout:before{content:"\f08b"}.o_icon-linkedin-square:before{content:"\f08c"}.o_icon-thumb-tack:before{content:"\f08d"}.o_icon-external-link:before,.o_icon_content_popup:before{content:"\f08e"}.o_icon-sign-in:before,.o_icon_login:before{content:"\f090"}.o_icon-trophy:before{content:"\f091"}.o_icon-github-square:before{content:"\f092"}.o_icon-upload:before,.o_icon_upload:before{content:"\f093"}.o_icon-lemon-o:before{content:"\f094"}.o_icon-phone:before{content:"\f095"}.o_icon-square-o:before{content:"\f096"}.o_icon-bookmark-o:before,.o_icon_bookmark_add:before{content:"\f097"}.o_icon-phone-square:before{content:"\f098"}.o_icon-twitter:before{content:"\f099"}.o_icon-facebook:before{content:"\f09a"}.o_icon-github:before{content:"\f09b"}.o_icon-unlock:before{content:"\f09c"}.o_icon-credit-card:before,.o_ac_paypal_icon:before{content:"\f09d"}.o_icon-rss:before{content:"\f09e"}.o_icon-hdd-o:before{content:"\f0a0"}.o_icon-bullhorn:before{content:"\f0a1"}.o_icon-bell:before{content:"\f0f3"}.o_icon-certificate:before{content:"\f0a3"}.o_icon-hand-o-right:before{content:"\f0a4"}.o_icon-hand-o-left:before{content:"\f0a5"}.o_icon-hand-o-up:before{content:"\f0a6"}.o_icon-hand-o-down:before{content:"\f0a7"}.o_icon-arrow-circle-left:before{content:"\f0a8"}.o_icon-arrow-circle-right:before{content:"\f0a9"}.o_icon-arrow-circle-up:before{content:"\f0aa"}.o_icon-arrow-circle-down:before{content:"\f0ab"}.o_icon-globe:before{content:"\f0ac"}.o_icon-wrench:before,.o_icon_dev:before{content:"\f0ad"}.o_icon-tasks:before{content:"\f0ae"}.o_icon-filter:before,.o_icon_filter:before{content:"\f0b0"}.o_icon-briefcase:before{content:"\f0b1"}.o_icon-arrows-alt:before{content:"\f0b2"}.o_icon-group:before,.o_ac_group_icon:before,.o_icon-users:before{content:"\f0c0"}.o_icon-chain:before,.o_icon-link:before{content:"\f0c1"}.o_icon-cloud:before{content:"\f0c2"}.o_icon-flask:before{content:"\f0c3"}.o_icon-cut:before,.o_icon-scissors:before{content:"\f0c4"}.o_icon-copy:before,.o_icon-files-o:before{content:"\f0c5"}.o_icon-paperclip:before{content:"\f0c6"}.o_icon-save:before,.o_icon-floppy-o:before{content:"\f0c7"}.o_icon-square:before{content:"\f0c8"}.o_icon-bars:before{content:"\f0c9"}.o_icon-list-ul:before{content:"\f0ca"}.o_icon-list-ol:before{content:"\f0cb"}.o_icon-strikethrough:before{content:"\f0cc"}.o_icon-underline:before{content:"\f0cd"}.o_icon-table:before,.o_icon_table:before{content:"\f0ce"}.o_icon-magic:before{content:"\f0d0"}.o_icon-truck:before{content:"\f0d1"}.o_icon-pinterest:before{content:"\f0d2"}.o_icon-pinterest-square:before{content:"\f0d3"}.o_icon-google-plus-square:before{content:"\f0d4"}.o_icon-google-plus:before{content:"\f0d5"}.o_icon-money:before{content:"\f0d6"}.o_icon-caret-down:before,.o_icon_close_tree:before{content:"\f0d7"}.o_icon-caret-up:before{content:"\f0d8"}.o_icon-caret-left:before{content:"\f0d9"}.o_icon-caret-right:before,.o_icon_open_tree:before{content:"\f0da"}.o_icon-columns:before{content:"\f0db"}.o_icon-unsorted:before,.o_icon-sort:before,.o_icon_sort:before{content:"\f0dc"}.o_icon-sort-down:before,.o_icon-sort-asc:before,.o_icon_sort_asc:before{content:"\f0dd"}.o_icon-sort-up:before,.o_icon-sort-desc:before,.o_icon_sort_desc:before{content:"\f0de"}.o_icon-envelope:before,.o_icon_message:before{content:"\f0e0"}.o_icon-linkedin:before{content:"\f0e1"}.o_icon-rotate-left:before,.o_icon-undo:before{content:"\f0e2"}.o_icon-legal:before,.o_icon-gavel:before{content:"\f0e3"}.o_icon-dashboard:before,.o_icon-tachometer:before{content:"\f0e4"}.o_icon-comment-o:before,.o_icon_comments_none:before{content:"\f0e5"}.o_icon-comments-o:before{content:"\f0e6"}.o_icon-flash:before,.o_icon-bolt:before{content:"\f0e7"}.o_icon-sitemap:before{content:"\f0e8"}.o_icon-umbrella:before{content:"\f0e9"}.o_icon-paste:before,.o_icon-clipboard:before{content:"\f0ea"}.o_icon-lightbulb-o:before{content:"\f0eb"}.o_icon-exchange:before{content:"\f0ec"}.o_icon-cloud-download:before{content:"\f0ed"}.o_icon-cloud-upload:before{content:"\f0ee"}.o_icon-user-md:before{content:"\f0f0"}.o_icon-stethoscope:before{content:"\f0f1"}.o_icon-suitcase:before{content:"\f0f2"}.o_icon-bell-o:before{content:"\f0a2"}.o_icon-coffee:before{content:"\f0f4"}.o_icon-cutlery:before{content:"\f0f5"}.o_icon-file-text-o:before,.o_sp_icon:before{content:"\f0f6"}.o_icon-building-o:before{content:"\f0f7"}.o_icon-hospital-o:before{content:"\f0f8"}.o_icon-ambulance:before{content:"\f0f9"}.o_icon-medkit:before{content:"\f0fa"}.o_icon-fighter-jet:before,.o_icon_new_document:before,.o_icon_new_folder:before,.o_icon_read:before,.o_icon_to_read:before{content:"\f0fb"}.o_icon-beer:before{content:"\f0fc"}.o_icon-h-square:before{content:"\f0fd"}.o_icon-plus-square:before{content:"\f0fe"}.o_icon-angle-double-left:before,.o_icon_move_left:before{content:"\f100"}.o_icon-angle-double-right:before,.o_icon_move_right:before{content:"\f101"}.o_icon-angle-double-up:before{content:"\f102"}.o_icon-angle-double-down:before{content:"\f103"}.o_icon-angle-left:before{content:"\f104"}.o_icon-angle-right:before{content:"\f105"}.o_icon-angle-up:before{content:"\f106"}.o_icon-angle-down:before{content:"\f107"}.o_icon-desktop:before{content:"\f108"}.o_icon-laptop:before{content:"\f109"}.o_icon-tablet:before{content:"\f10a"}.o_icon-mobile-phone:before,.o_icon-mobile:before{content:"\f10b"}.o_icon-circle-o:before{content:"\f10c"}.o_icon-quote-left:before{content:"\f10d"}.o_icon-quote-right:before{content:"\f10e"}.o_icon-spinner:before{content:"\f110"}.o_icon-circle:before,.o_icon_status_available:before{content:"\f111"}.o_icon-mail-reply:before,.o_icon-reply:before{content:"\f112"}.o_icon-github-alt:before{content:"\f113"}.o_icon-folder-o:before{content:"\f114"}.o_icon-folder-open-o:before{content:"\f115"}.o_icon-smile-o:before{content:"\f118"}.o_icon-frown-o:before{content:"\f119"}.o_icon-meh-o:before{content:"\f11a"}.o_icon-gamepad:before{content:"\f11b"}.o_icon-keyboard-o:before{content:"\f11c"}.o_icon-flag-o:before{content:"\f11d"}.o_icon-flag-checkered:before{content:"\f11e"}.o_icon-terminal:before{content:"\f120"}.o_icon-code:before{content:"\f121"}.o_icon-reply-all:before{content:"\f122"}.o_icon-mail-reply-all:before{content:"\f122"}.o_icon-star-half-empty:before,.o_icon-star-half-full:before,.o_icon-star-half-o:before{content:"\f123"}.o_icon-location-arrow:before{content:"\f124"}.o_icon-crop:before{content:"\f125"}.o_icon-code-fork:before{content:"\f126"}.o_icon-unlink:before,.o_icon-chain-broken:before{content:"\f127"}.o_icon-question:before{content:"\f128"}.o_icon-info:before{content:"\f129"}.o_icon-exclamation:before,.o_icon_error:before{content:"\f12a"}.o_icon-superscript:before{content:"\f12b"}.o_icon-subscript:before{content:"\f12c"}.o_icon-eraser:before,.o_middel:before{content:"\f12d"}.o_icon-puzzle-piece:before{content:"\f12e"}.o_icon-microphone:before{content:"\f130"}.o_icon-microphone-slash:before{content:"\f131"}.o_icon-shield:before{content:"\f132"}.o_icon-calendar-o:before{content:"\f133"}.o_icon-fire-extinguisher:before{content:"\f134"}.o_icon-rocket:before{content:"\f135"}.o_icon-maxcdn:before{content:"\f136"}.o_icon-chevron-circle-left:before{content:"\f137"}.o_icon-chevron-circle-right:before{content:"\f138"}.o_icon-chevron-circle-up:before{content:"\f139"}.o_icon-chevron-circle-down:before{content:"\f13a"}.o_icon-html5:before{content:"\f13b"}.o_icon-css3:before{content:"\f13c"}.o_icon-anchor:before{content:"\f13d"}.o_icon-unlock-alt:before{content:"\f13e"}.o_icon-bullseye:before{content:"\f140"}.o_icon-ellipsis-h:before{content:"\f141"}.o_icon-ellipsis-v:before{content:"\f142"}.o_icon-rss-square:before{content:"\f143"}.o_icon-play-circle:before{content:"\f144"}.o_icon-ticket:before{content:"\f145"}.o_icon-minus-square:before{content:"\f146"}.o_icon-minus-square-o:before{content:"\f147"}.o_icon-level-up:before{content:"\f148"}.o_icon-level-down:before{content:"\f149"}.o_icon-check-square:before{content:"\f14a"}.o_icon-pencil-square:before{content:"\f14b"}.o_icon-external-link-square:before{content:"\f14c"}.o_icon-share-square:before{content:"\f14d"}.o_icon-compass:before{content:"\f14e"}.o_icon-toggle-down:before,.o_icon-caret-square-o-down:before{content:"\f150"}.o_icon-toggle-up:before,.o_icon-caret-square-o-up:before{content:"\f151"}.o_icon-toggle-right:before,.o_icon-caret-square-o-right:before{content:"\f152"}.o_icon-euro:before,.o_icon-eur:before{content:"\f153"}.o_icon-gbp:before{content:"\f154"}.o_icon-dollar:before,.o_icon-usd:before{content:"\f155"}.o_icon-rupee:before,.o_icon-inr:before{content:"\f156"}.o_icon-cny:before,.o_icon-rmb:before,.o_icon-yen:before,.o_icon-jpy:before{content:"\f157"}.o_icon-ruble:before,.o_icon-rouble:before,.o_icon-rub:before{content:"\f158"}.o_icon-won:before,.o_icon-krw:before{content:"\f159"}.o_icon-bitcoin:before,.o_icon-btc:before{content:"\f15a"}.o_icon-file:before{content:"\f15b"}.o_icon-file-text:before{content:"\f15c"}.o_icon-sort-alpha-asc:before{content:"\f15d"}.o_icon-sort-alpha-desc:before{content:"\f15e"}.o_icon-sort-amount-asc:before,.o_icon_sort_menu:before{content:"\f160"}.o_icon-sort-amount-desc:before{content:"\f161"}.o_icon-sort-numeric-asc:before{content:"\f162"}.o_icon-sort-numeric-desc:before{content:"\f163"}.o_icon-thumbs-up:before{content:"\f164"}.o_icon-thumbs-down:before{content:"\f165"}.o_icon-youtube-square:before{content:"\f166"}.o_icon-youtube:before{content:"\f167"}.o_icon-xing:before{content:"\f168"}.o_icon-xing-square:before{content:"\f169"}.o_icon-youtube-play:before{content:"\f16a"}.o_icon-dropbox:before{content:"\f16b"}.o_icon-stack-overflow:before{content:"\f16c"}.o_icon-instagram:before{content:"\f16d"}.o_icon-flickr:before{content:"\f16e"}.o_icon-adn:before{content:"\f170"}.o_icon-bitbucket:before{content:"\f171"}.o_icon-bitbucket-square:before{content:"\f172"}.o_icon-tumblr:before{content:"\f173"}.o_icon-tumblr-square:before{content:"\f174"}.o_icon-long-arrow-down:before{content:"\f175"}.o_icon-long-arrow-up:before{content:"\f176"}.o_icon-long-arrow-left:before{content:"\f177"}.o_icon-long-arrow-right:before{content:"\f178"}.o_icon-apple:before{content:"\f179"}.o_icon-windows:before{content:"\f17a"}.o_icon-android:before{content:"\f17b"}.o_icon-linux:before{content:"\f17c"}.o_icon-dribbble:before{content:"\f17d"}.o_icon-skype:before{content:"\f17e"}.o_icon-foursquare:before{content:"\f180"}.o_icon-trello:before{content:"\f181"}.o_icon-female:before{content:"\f182"}.o_icon-male:before{content:"\f183"}.o_icon-gittip:before{content:"\f184"}.o_icon-sun-o:before{content:"\f185"}.o_icon-moon-o:before{content:"\f186"}.o_icon-archive:before,.o_st_icon:before{content:"\f187"}.o_icon-bug:before{content:"\f188"}.o_icon-vk:before{content:"\f189"}.o_icon-weibo:before{content:"\f18a"}.o_icon-renren:before{content:"\f18b"}.o_icon-pagelines:before{content:"\f18c"}.o_icon-stack-exchange:before{content:"\f18d"}.o_icon-arrow-circle-o-right:before{content:"\f18e"}.o_icon-arrow-circle-o-left:before{content:"\f190"}.o_icon-toggle-left:before,.o_icon-caret-square-o-left:before{content:"\f191"}.o_icon-dot-circle-o:before,.o_icon_status_dnd:before{content:"\f192"}.o_icon-wheelchair:before{content:"\f193"}.o_icon-vimeo-square:before{content:"\f194"}.o_icon-turkish-lira:before,.o_icon-try:before{content:"\f195"}.o_icon-plus-square-o:before{content:"\f196"}.o_icon_bookmark{color:#996633}.o_icon_bookmark_add{color:#999999}.o_icon_delete{color:#A87E7E}.o_icon_edit_metadata{color:#996633}.o_icon_help{cursor:help}.o_icon_new_document{color:pink}.o_icon_new_folder{color:violet}.o_icon_mandatory{color:#f0ad4e}.o_icon_read{color:green}.o_icon_readonly{color:red}.o_icon_status_available{color:#006633}.o_icon_status_dnd{color:#CCCC33}.o_icon_status_unavailable{color:#996633}.o_icon_to_read{color:blue}.o_portrait_dummy,.o_portrait_dummy_female_big,.o_portrait_dummy_male_big,.o_portrait_anonymous{width:100px;height:100px}.o_portrait_dummy{background-image:url("../light/images/portrait/dummy.png")}.o_portrait_dummy_female_big{background-image:url("../light/images/portrait/dummy_female_big.png")}.o_portrait_dummy_male_big{background-image:url("../light/images/portrait/dummy_male_big.png")}.o_portrait_anonymous{background-image:url("../light/images/portrait/dummy.png")}.o_portrait_dummy_small,.o_portrait_dummy_female_small,.o_portrait_dummy_male_small,.o_portrait_anonymous_small{width:30px;height:30px}.o_portrait_dummy_small{background-image:url("../light/images/portrait/dummy_small.png")}.o_portrait_dummy_female_small{background-image:url("../light/images/portrait/dummy_female_small.png")}.o_portrait_dummy_male_small{background-image:url("../light/images/portrait/dummy_male_small.png")}.o_portrait_anonymous_small{background-image:url("../light/images/portrait/dummy_small.png")}a.o_chelp{padding:1px 3px;font-size:10px;line-height:1.5;border-radius:2px}div.o_chelp_wrapper{position:relative}.o_undecorated:hover,a.o_icon:hover,a.o_sp_icon:hover,a.o_st_icon:hover,a.o_tu_icon:hover,a.o_midpub:hover,a.o_midwarn:hover,a.o_midlock:hover,a.o_miderr:hover,a.o_middel:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_undecorated:focus,a.o_icon:focus,a.o_sp_icon:focus,a.o_st_icon:focus,a.o_tu_icon:focus,a.o_midpub:focus,a.o_midwarn:focus,a.o_midlock:focus,a.o_miderr:focus,a.o_middel:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus{text-decoration:none}.o_nowrap{white-space:nowrap}.o_rotate_90,#o_main_wrapper #o_main_container #o_main_center #o_offcanvas_toggle{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}.o_segments_content{margin-top:20px}.o_info,.o_note,.o_form .o_desc,.o_important,.o_warning,.o_form .o_warning,.o_error,.o_form .o_info{margin:20px 0;padding:20px;background-color:#eee;border-left:3px solid #d4d4d4}.o_info h2,.o_note h2,.o_form .o_desc h2,.o_important h2,.o_warning h2,.o_form .o_warning h2,.o_error h2,.o_form .o_info h2,.o_info h3,.o_note h3,.o_form .o_desc h3,.o_important h3,.o_warning h3,.o_form .o_warning h3,.o_error h3,.o_form .o_info h3,.o_info h4,.o_note h4,.o_form .o_desc h4,.o_important h4,.o_warning h4,.o_form .o_warning h4,.o_error h4,.o_form .o_info h4,.o_info h5,.o_note h5,.o_form .o_desc h5,.o_important h5,.o_warning h5,.o_form .o_warning h5,.o_error h5,.o_form .o_info h5{color:#bbbbbb}p.o_info,p.o_note,.o_form p.o_desc,p.o_important,p.o_warning,.o_form p.o_warning,p.o_error,.o_form p.o_info,div.o_info,div.o_note,.o_form div.o_desc,div.o_important,div.o_warning,.o_form div.o_warning,div.o_error,.o_form div.o_info{margin:20px 0}.o_note,.o_form .o_desc{background-color:#f4f8fa;border-color:#5bc0de}.o_note h2,.o_form .o_desc h2,.o_note h3,.o_form .o_desc h3,.o_note h4,.o_form .o_desc h4,.o_note h5,.o_form .o_desc h5{color:#5bc0de}p.o_note,.o_form p.o_desc,div.o_note,.o_form div.o_desc{margin:20px 0}.o_important{background-color:#FFF1A4;border-color:#F4D000}.o_important h2,.o_important h3,.o_important h4,.o_important h5{color:#F4D000}p.o_important,div.o_important{margin:20px 0}.o_warning,.o_form .o_warning{background-color:#FFD5AA;border-color:#FF9E3E}.o_warning h2,.o_form .o_warning h2,.o_warning h3,.o_form .o_warning h3,.o_warning h4,.o_form .o_warning h4,.o_warning h5,.o_form .o_warning h5{color:#FF9E3E}o.b_warning,div.o_warning,.o_form div.o_warning{margin:20px 0}.o_error{background-color:#fdf7f7;border-color:#d9534f}.o_error h2,.o_error h3,.o_error h4,.o_error h5{color:#d9534f}o.b_error,div.o_error{margin:20px 0}.b_border_box{border:1px solid #999;padding:1em;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}p.b_border_box,div.b_border_box{margin:1em 0}table.b_grid{background:transparent;border-collapse:separate}table.b_grid td,table.b_grid th{padding:2px 5px;border:1px solid #888}table.b_grid thead th{background:#ccc}table.b_grid tbody th{background:#eee}table.b_border{background:transparent;border-collapse:collapse}table.b_border td,table.b_border th{padding:2px 5px;border:1px solid #888}table.b_full{width:99.5%}table td{vertical-align:top}table.b_middle{background:transparent}table.b_middle td{vertical-align:middle}.b_selected,p.b_selected,div.b_selected{font-weight:bold}.b_dimmed,p.b_dimmed,div.b_dimmed{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=40);-moz-opacity:0.4;-khtml-opacity:0.4;opacity:0.4}.b_disabled,p.b_disabled,div.b_disabled{color:#999}.b_deleted,p.b_deleted,div.b_deleted{text-decoration:line-through}.b_xsmall,sup,sub,p.b_xsmall,div.b_xsmall{font-size:80%}.b_small,small,p.b_small,div.b_small{font-size:90%}.b_large,p.b_large,div.b_large{font-size:110%}.b_xlarge,big,p.b_xlarge,div.b_xlarge{font-size:120%}.b_align_normal{text-align:left}.b_align_center{text-align:center}.b_align_inverse{text-align:right}.o_ochre{color:#c8a959}.o_blue{color:#12223F}a.b_link_extern{background:transparent url("../../openolat/images/external_link_trimmed.png") no-repeat right top;padding-right:13px}a.b_link_mailto{background:transparent url("../../openolat/images/mail_small.png") no-repeat left center;padding-left:18px}a.b_link_forward{background:transparent url("../../openolat/images/arrow_right.png") no-repeat right center;padding-right:18px}img.b_float_left{float:left;margin:0 2em 2em 0}img.b_float_right{float:right;margin:0 0 2em 2em}img.b_centered{display:block;margin:0 auto 2em auto}img.o_emoticons_angel{background:url(../light/images/emoticons/smiley-angel.png);width:16px;height:16px}img.o_emoticons_angry{background:url(../light/images/emoticons/smiley-mad.png);width:16px;height:16px}img.o_emoticons_blushing{background:url(../light/images/emoticons/smiley-red.png);width:16px;height:16px}img.o_emoticons_confused{background:url(../light/images/emoticons/smiley-confuse.png);width:16px;height:16px}img.o_emoticons_cool{background:url(../light/images/emoticons/smiley-cool.png);width:16px;height:16px}img.o_emoticons_cry{background:url(../light/images/emoticons/smiley-cry.png);width:16px;height:16px}img.o_emoticons_devil{background:url(../light/images/emoticons/smiley-evil.png);width:16px;height:16px}img.o_emoticons_grin{background:url(../light/images/emoticons/smiley-grin.png);width:16px;height:16px}img.o_emoticons_kiss{background:url(../light/images/emoticons/smiley-kiss.png);width:16px;height:16px}img.o_emoticons_ohoh{background:url(../light/images/emoticons/smiley-eek.png);width:16px;height:16px}img.o_emoticons_sad{background:url(../light/images/emoticons/smiley-sad.png);width:16px;height:16px}img.o_emoticons_sick{background:url(../light/images/emoticons/smiley-sad-blue.png);width:16px;height:16px}img.o_emoticons_smile{background:url(../light/images/emoticons/smiley.png);width:16px;height:16px}img.o_emoticons_tongue{background:url(../light/images/emoticons/smiley-razz.png);width:16px;height:16px}img.o_emoticons_ugly{background:url(../light/images/emoticons/smiley-money.png);width:16px;height:16px}img.o_emoticons_weird{background:url(../light/images/emoticons/smiley-nerd.png);width:16px;height:16px}img.o_emoticons_wink{background:url(../light/images/emoticons/smiley-wink.png);width:16px;height:16px}img.o_emoticons_worried{background:url(../light/images/emoticons/smiley-roll-blue.png);width:16px;height:16px}img.o_emoticons_up{background:url(../light/images/emoticons/thumb-up.png);width:16px;height:16px}img.o_emoticons_down{background:url(../light/images/emoticons/thumb.png);width:16px;height:16px}html{position:relative;min-height:100%}body{min-height:100%;margin-bottom:60px}#o_navbar_wrapper{z-index:4}#o_navbar_wrapper #o_navbar_container{position:relative}#o_navbar_wrapper #o_navbar_container a.o_navbar-brand{font-size:40px;vertical-align:top;font-weight:bold;color:#31729B}#o_navbar_wrapper #o_navbar_container a.o_navbar-brand:after{content:"\221E"}#o_navbar_wrapper #o_navbar_container .o_navbar_tabs li a{padding-right:30px}#o_navbar_wrapper #o_navbar_container .o_navbar_tabs .o_navbar_tab_close{position:absolute;top:15px;right:0.5em;padding:0;width:1em;height:1em}#o_navbar_wrapper #o_navbar_container .o_navbar_tabs .o_navbar_tab_close i:before{color:#A87E7E}#o_navbar_wrapper #o_navbar_container .o_navbar_tabs .o_navbar_tab_close:hover i:before{color:#CC0000}#o_navbar_wrapper #o_navbar_container #o_navbar_tools #o_navbar_langchooser{color:#777;padding:15px}#o_navbar_wrapper #o_navbar_container #o_navbar_tools #o_navbar_langchooser form span+div{display:inline}#o_navbar_wrapper #o_navbar_container #o_navbar_tools #o_navbar_help a i{margin-right:0.4em}#o_navbar_wrapper #o_navbar_container #o_navbar_tools #o_navbar_my_menu .dropdown-toggle{padding-left:45px}#o_navbar_wrapper #o_navbar_container #o_navbar_tools #o_navbar_my_menu img{position:absolute;left:7px;top:10px;height:30px;width:30px}.o_navbar{position:relative;min-height:50px;margin-bottom:0;border:1px solid transparent}.o_navbar:before,.o_navbar:after{content:" ";display:table}.o_navbar:after{clear:both}.o_navbar-collapse{max-height:100%;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.o_navbar-collapse:before,.o_navbar-collapse:after{content:" ";display:table}.o_navbar-collapse:after{clear:both}.o_navbar-collapse.o_collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.o_navbar-offcanvas .o_navbar-collapse{width:auto;border-top:0;box-shadow:none;margin-top:10px;margin-right:-15px;margin-left:-15px}.o_navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.o_navbar-brand:hover,.o_navbar-brand:focus{text-decoration:none}.o_navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.o_navbar-toggle:focus{outline:none}.o_navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.o_navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.o_navbar-nav{margin:7.5px -15px}.o_navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}.o_collapse .o_navbar-nav{float:left;margin:0}.o_collapse .o_navbar-nav>li{float:left}.o_collapse .o_navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.o_collapse .o_navbar-nav.o_navbar-right:last-child{margin-right:-15px}.o_collapse.o_navbar-collapse .o_navbar-left{float:left !important}.o_collapse.o_navbar-collapse .o_navbar-right{float:right !important}.o_navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (max-width: 767px){.o_navbar-form .form-group{margin-bottom:5px}}
+ */@font-face{font-family:'FontAwesome';src:url("../../../font-awesome/fonts/fontawesome-webfont.eot?v=4.0.3");src:url("../../../font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.0.3") format("embedded-opentype"),url("../../../font-awesome/fonts/fontawesome-webfont.woff?v=4.0.3") format("woff"),url("../../../font-awesome/fonts/fontawesome-webfont.ttf?v=4.0.3") format("truetype"),url("../../../font-awesome/fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.o_icon,.o_sp_icon,.o_st_icon,.o_tu_icon,.o_midpub,.o_midwarn,.o_midlock,.o_miderr,.o_middel{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_icon-lg,.o_icon_help{font-size:1.33333em;line-height:0.75em;vertical-align:-15%}.o_icon-2x{font-size:2em}.o_icon-3x{font-size:3em}.o_icon-4x{font-size:4em}.o_icon-5x{font-size:5em}.o_icon-fw{width:1.28571em;text-align:center}.o_icon-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.o_icon-ul>li{position:relative}.o_icon-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.o_icon-li.o_icon-lg,.o_icon-li.o_icon_help{left:-1.85714em}.o_icon-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.pull-right,div.o_chelp_wrapper,#o_main_wrapper #o_main_container #o_main_right,.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete{float:right}.pull-left,#o_main_wrapper #o_main_container #o_main_left,#o_navbar_imclient #o_im_message,#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_summary,.o_comments .o_comment_wrapper .o_avatar,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper{float:left}.o_icon.pull-left,#o_main_wrapper #o_main_container .o_icon#o_main_left,#o_main_wrapper #o_main_container #o_main_left.o_sp_icon,#o_main_wrapper #o_main_container #o_main_left.o_st_icon,#o_main_wrapper #o_main_container #o_main_left.o_tu_icon,#o_main_wrapper #o_main_container #o_main_left.o_midpub,#o_main_wrapper #o_main_container #o_main_left.o_midwarn,#o_main_wrapper #o_main_container #o_main_left.o_midlock,#o_main_wrapper #o_main_container #o_main_left.o_miderr,#o_main_wrapper #o_main_container #o_main_left.o_middel,#o_navbar_imclient .o_icon#o_im_message,#o_navbar_imclient #o_im_message.o_sp_icon,#o_navbar_imclient #o_im_message.o_st_icon,#o_navbar_imclient #o_im_message.o_tu_icon,#o_navbar_imclient #o_im_message.o_midpub,#o_navbar_imclient #o_im_message.o_midwarn,#o_navbar_imclient #o_im_message.o_midlock,#o_navbar_imclient #o_im_message.o_miderr,#o_navbar_imclient #o_im_message.o_middel,#o_navbar_imclient .o_icon#o_im_status,#o_navbar_imclient #o_im_status.o_sp_icon,#o_navbar_imclient #o_im_status.o_st_icon,#o_navbar_imclient #o_im_status.o_tu_icon,#o_navbar_imclient #o_im_status.o_midpub,#o_navbar_imclient #o_im_status.o_midwarn,#o_navbar_imclient #o_im_status.o_midlock,#o_navbar_imclient #o_im_status.o_miderr,#o_navbar_imclient #o_im_status.o_middel,#o_navbar_imclient .o_icon#o_im_summary,#o_navbar_imclient #o_im_summary.o_sp_icon,#o_navbar_imclient #o_im_summary.o_st_icon,#o_navbar_imclient #o_im_summary.o_tu_icon,#o_navbar_imclient #o_im_summary.o_midpub,#o_navbar_imclient #o_im_summary.o_midwarn,#o_navbar_imclient #o_im_summary.o_midlock,#o_navbar_imclient #o_im_summary.o_miderr,#o_navbar_imclient #o_im_summary.o_middel,.o_comments .o_comment_wrapper .o_icon.o_avatar,.o_comments .o_comment_wrapper .o_avatar.o_sp_icon,.o_comments .o_comment_wrapper .o_avatar.o_st_icon,.o_comments .o_comment_wrapper .o_avatar.o_tu_icon,.o_comments .o_comment_wrapper .o_avatar.o_midpub,.o_comments .o_comment_wrapper .o_avatar.o_midwarn,.o_comments .o_comment_wrapper .o_avatar.o_midlock,.o_comments .o_comment_wrapper .o_avatar.o_miderr,.o_comments .o_comment_wrapper .o_avatar.o_middel,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_icon.o_rating_wrapper,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper.o_sp_icon,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper.o_st_icon,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper.o_tu_icon,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper.o_midpub,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper.o_midwarn,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper.o_midlock,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper.o_miderr,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper.o_middel,.pull-left.o_sp_icon,.pull-left.o_st_icon,.pull-left.o_tu_icon,.pull-left.o_midpub,.pull-left.o_midwarn,.pull-left.o_midlock,.pull-left.o_miderr,.pull-left.o_middel{margin-right:.3em}.o_icon.pull-right,div.o_icon.o_chelp_wrapper,div.o_chelp_wrapper.o_sp_icon,div.o_chelp_wrapper.o_st_icon,div.o_chelp_wrapper.o_tu_icon,div.o_chelp_wrapper.o_midpub,div.o_chelp_wrapper.o_midwarn,div.o_chelp_wrapper.o_midlock,div.o_chelp_wrapper.o_miderr,div.o_chelp_wrapper.o_middel,#o_main_wrapper #o_main_container .o_icon#o_main_right,#o_main_wrapper #o_main_container #o_main_right.o_sp_icon,#o_main_wrapper #o_main_container #o_main_right.o_st_icon,#o_main_wrapper #o_main_container #o_main_right.o_tu_icon,#o_main_wrapper #o_main_container #o_main_right.o_midpub,#o_main_wrapper #o_main_container #o_main_right.o_midwarn,#o_main_wrapper #o_main_container #o_main_right.o_midlock,#o_main_wrapper #o_main_container #o_main_right.o_miderr,#o_main_wrapper #o_main_container #o_main_right.o_middel,.o_comments .o_comment_wrapper .o_icon.o_reply,.o_comments .o_comment_wrapper .o_reply.o_sp_icon,.o_comments .o_comment_wrapper .o_reply.o_st_icon,.o_comments .o_comment_wrapper .o_reply.o_tu_icon,.o_comments .o_comment_wrapper .o_reply.o_midpub,.o_comments .o_comment_wrapper .o_reply.o_midwarn,.o_comments .o_comment_wrapper .o_reply.o_midlock,.o_comments .o_comment_wrapper .o_reply.o_miderr,.o_comments .o_comment_wrapper .o_reply.o_middel,.o_comments .o_comment_wrapper .o_icon.o_delete,.o_comments .o_comment_wrapper .o_delete.o_sp_icon,.o_comments .o_comment_wrapper .o_delete.o_st_icon,.o_comments .o_comment_wrapper .o_delete.o_tu_icon,.o_comments .o_comment_wrapper .o_delete.o_midpub,.o_comments .o_comment_wrapper .o_delete.o_midwarn,.o_comments .o_comment_wrapper .o_delete.o_midlock,.o_comments .o_comment_wrapper .o_delete.o_miderr,.o_comments .o_comment_wrapper .o_delete.o_middel,.pull-right.o_sp_icon,.pull-right.o_st_icon,.pull-right.o_tu_icon,.pull-right.o_midpub,.pull-right.o_midwarn,.pull-right.o_midlock,.pull-right.o_miderr,.pull-right.o_middel{margin-left:.3em}.o_icon-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.o_icon-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.o_icon-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.o_icon-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.o_icon-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation);-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.o_icon-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation);-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}.o_icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.o_icon-stack-1x,.o_icon-stack-2x{position:absolute;left:0;width:100%;text-align:center}.o_icon-stack-1x{line-height:inherit}.o_icon-stack-2x{font-size:2em}.o_icon-inverse{color:#fff}.o_icon-glass:before{content:"\f000"}.o_icon-music:before{content:"\f001"}.o_icon-search:before,.o_icon_search:before{content:"\f002"}.o_icon-envelope-o:before{content:"\f003"}.o_icon-heart:before{content:"\f004"}.o_icon-star:before,.o_icon_rating_on:before,.o_rating .o_rating_items.o_enabled .o_icon:hover:before,.o_rating .o_rating_items.o_enabled .o_sp_icon:hover:before,.o_rating .o_rating_items.o_enabled .o_st_icon:hover:before,.o_rating .o_rating_items.o_enabled .o_tu_icon:hover:before,.o_rating .o_rating_items.o_enabled .o_midpub:hover:before,.o_rating .o_rating_items.o_enabled .o_midwarn:hover:before,.o_rating .o_rating_items.o_enabled .o_midlock:hover:before,.o_rating .o_rating_items.o_enabled .o_miderr:hover:before,.o_rating .o_rating_items.o_enabled .o_middel:hover:before{content:"\f005"}.o_icon-star-o:before,.o_icon_rating_off:before{content:"\f006"}.o_icon-user:before{content:"\f007"}.o_icon-film:before{content:"\f008"}.o_icon-th-large:before{content:"\f009"}.o_icon-th:before{content:"\f00a"}.o_icon-th-list:before{content:"\f00b"}.o_icon-check:before,.o_icon_check:before{content:"\f00c"}.o_icon-times:before,.o_icon_close_tab:before,.o_icon_close:before{content:"\f00d"}.o_icon-search-plus:before{content:"\f00e"}.o_icon-search-minus:before{content:"\f010"}.o_icon-power-off:before{content:"\f011"}.o_icon-signal:before{content:"\f012"}.o_icon-gear:before,.o_icon_customize:before,.o_icon_tool:before,.o_icon-cog:before{content:"\f013"}.o_icon-trash-o:before{content:"\f014"}.o_icon-home:before{content:"\f015"}.o_icon-file-o:before,.o_tu_icon:before{content:"\f016"}.o_icon-clock-o:before,.o_icon_lifecycle:before{content:"\f017"}.o_icon-road:before{content:"\f018"}.o_icon-download:before,.o_icon_download:before{content:"\f019"}.o_icon-arrow-circle-o-down:before{content:"\f01a"}.o_icon-arrow-circle-o-up:before{content:"\f01b"}.o_icon-inbox:before{content:"\f01c"}.o_icon-play-circle-o:before{content:"\f01d"}.o_icon-rotate-right:before,.o_icon-repeat:before{content:"\f01e"}.o_icon-refresh:before,.o_icon_refresh:before{content:"\f021"}.o_icon-list-alt:before{content:"\f022"}.o_icon-lock:before,.o_ac_membersonly_icon:before,.o_midlock:before{content:"\f023"}.o_icon-flag:before{content:"\f024"}.o_icon-headphones:before{content:"\f025"}.o_icon-volume-off:before{content:"\f026"}.o_icon-volume-down:before{content:"\f027"}.o_icon-volume-up:before{content:"\f028"}.o_icon-qrcode:before{content:"\f029"}.o_icon-barcode:before{content:"\f02a"}.o_icon-tag:before{content:"\f02b"}.o_icon-tags:before{content:"\f02c"}.o_icon-book:before{content:"\f02d"}.o_icon-bookmark:before,.o_icon_bookmark:before{content:"\f02e"}.o_icon-print:before,.o_icon_print:before{content:"\f02f"}.o_icon-camera:before{content:"\f030"}.o_icon-font:before{content:"\f031"}.o_icon-bold:before{content:"\f032"}.o_icon-italic:before{content:"\f033"}.o_icon-text-height:before{content:"\f034"}.o_icon-text-width:before{content:"\f035"}.o_icon-align-left:before{content:"\f036"}.o_icon-align-center:before{content:"\f037"}.o_icon-align-right:before{content:"\f038"}.o_icon-align-justify:before{content:"\f039"}.o_icon-list:before,.o_icon_list:before{content:"\f03a"}.o_icon-dedent:before,.o_icon-outdent:before{content:"\f03b"}.o_icon-indent:before{content:"\f03c"}.o_icon-video-camera:before{content:"\f03d"}.o_icon-picture-o:before{content:"\f03e"}.o_icon-pencil:before{content:"\f040"}.o_icon-map-marker:before{content:"\f041"}.o_icon-adjust:before{content:"\f042"}.o_icon-tint:before{content:"\f043"}.o_icon-edit:before,.o_icon_edit:before,.o_icon_edit_file:before,.o_icon_edit_metadata:before,.o_icon_readonly:before,.o_icon_readwrite:before,.o_icon-pencil-square-o:before{content:"\f044"}.o_icon-share-square-o:before{content:"\f045"}.o_icon-check-square-o:before{content:"\f046"}.o_icon-arrows:before{content:"\f047"}.o_icon-step-backward:before{content:"\f048"}.o_icon-fast-backward:before{content:"\f049"}.o_icon-backward:before{content:"\f04a"}.o_icon-play:before{content:"\f04b"}.o_icon-pause:before{content:"\f04c"}.o_icon-stop:before{content:"\f04d"}.o_icon-forward:before{content:"\f04e"}.o_icon-fast-forward:before{content:"\f050"}.o_icon-step-forward:before{content:"\f051"}.o_icon-eject:before{content:"\f052"}.o_icon-chevron-left:before{content:"\f053"}.o_icon-chevron-right:before,.o_icon_start:before{content:"\f054"}.o_icon-plus-circle:before{content:"\f055"}.o_icon-minus-circle:before,.o_icon_delete:before{content:"\f056"}.o_icon-times-circle:before,.o_icon_failed:before{content:"\f057"}.o_icon-check-circle:before,.o_icon_passed:before,.o_midpub:before{content:"\f058"}.o_icon-question-circle:before,.o_icon_help:before{content:"\f059"}.o_icon-info-circle:before,.o_icon_impress:before{content:"\f05a"}.o_icon-crosshairs:before{content:"\f05b"}.o_icon-times-circle-o:before,.o_icon_status_unavailable:before{content:"\f05c"}.o_icon-check-circle-o:before{content:"\f05d"}.o_icon-ban:before{content:"\f05e"}.o_icon-arrow-left:before{content:"\f060"}.o_icon-arrow-right:before{content:"\f061"}.o_icon-arrow-up:before{content:"\f062"}.o_icon-arrow-down:before{content:"\f063"}.o_icon-mail-forward:before,.o_icon-share:before{content:"\f064"}.o_icon-expand:before{content:"\f065"}.o_icon-compress:before{content:"\f066"}.o_icon-plus:before{content:"\f067"}.o_icon-minus:before{content:"\f068"}.o_icon-asterisk:before,.o_icon_mandatory:before{content:"\f069"}.o_icon-exclamation-circle:before{content:"\f06a"}.o_icon-gift:before,.o_ac_free_icon:before{content:"\f06b"}.o_icon-leaf:before{content:"\f06c"}.o_icon-fire:before{content:"\f06d"}.o_icon-eye:before,.o_icon_details:before,.o_icon_preview:before{content:"\f06e"}.o_icon-eye-slash:before{content:"\f070"}.o_icon-warning:before,.o_midwarn:before,.o_miderr:before,.o_icon-exclamation-triangle:before{content:"\f071"}.o_icon-plane:before{content:"\f072"}.o_icon-calendar:before,.o_icon_calendar:before{content:"\f073"}.o_icon-random:before{content:"\f074"}.o_icon-comment:before,.o_icon_status_chat:before{content:"\f075"}.o_icon-magnet:before{content:"\f076"}.o_icon-chevron-up:before{content:"\f077"}.o_icon-chevron-down:before{content:"\f078"}.o_icon-retweet:before{content:"\f079"}.o_icon-shopping-cart:before{content:"\f07a"}.o_icon-folder:before{content:"\f07b"}.o_icon-folder-open:before{content:"\f07c"}.o_icon-arrows-v:before{content:"\f07d"}.o_icon-arrows-h:before{content:"\f07e"}.o_icon-bar-chart-o:before{content:"\f080"}.o_icon-twitter-square:before{content:"\f081"}.o_icon-facebook-square:before{content:"\f082"}.o_icon-camera-retro:before{content:"\f083"}.o_icon-key:before,.o_ac_token_icon:before{content:"\f084"}.o_icon-gears:before,.o_icon-cogs:before{content:"\f085"}.o_icon-comments:before,.o_icon_comments:before{content:"\f086"}.o_icon-thumbs-o-up:before{content:"\f087"}.o_icon-thumbs-o-down:before{content:"\f088"}.o_icon-star-half:before{content:"\f089"}.o_icon-heart-o:before{content:"\f08a"}.o_icon-sign-out:before,.o_icon_logout:before{content:"\f08b"}.o_icon-linkedin-square:before{content:"\f08c"}.o_icon-thumb-tack:before{content:"\f08d"}.o_icon-external-link:before,.o_icon_content_popup:before{content:"\f08e"}.o_icon-sign-in:before,.o_icon_login:before{content:"\f090"}.o_icon-trophy:before{content:"\f091"}.o_icon-github-square:before{content:"\f092"}.o_icon-upload:before,.o_icon_upload:before{content:"\f093"}.o_icon-lemon-o:before{content:"\f094"}.o_icon-phone:before{content:"\f095"}.o_icon-square-o:before{content:"\f096"}.o_icon-bookmark-o:before,.o_icon_bookmark_add:before{content:"\f097"}.o_icon-phone-square:before{content:"\f098"}.o_icon-twitter:before{content:"\f099"}.o_icon-facebook:before{content:"\f09a"}.o_icon-github:before{content:"\f09b"}.o_icon-unlock:before{content:"\f09c"}.o_icon-credit-card:before,.o_ac_paypal_icon:before{content:"\f09d"}.o_icon-rss:before{content:"\f09e"}.o_icon-hdd-o:before{content:"\f0a0"}.o_icon-bullhorn:before{content:"\f0a1"}.o_icon-bell:before{content:"\f0f3"}.o_icon-certificate:before{content:"\f0a3"}.o_icon-hand-o-right:before{content:"\f0a4"}.o_icon-hand-o-left:before{content:"\f0a5"}.o_icon-hand-o-up:before{content:"\f0a6"}.o_icon-hand-o-down:before{content:"\f0a7"}.o_icon-arrow-circle-left:before{content:"\f0a8"}.o_icon-arrow-circle-right:before{content:"\f0a9"}.o_icon-arrow-circle-up:before{content:"\f0aa"}.o_icon-arrow-circle-down:before{content:"\f0ab"}.o_icon-globe:before{content:"\f0ac"}.o_icon-wrench:before,.o_icon_dev:before{content:"\f0ad"}.o_icon-tasks:before{content:"\f0ae"}.o_icon-filter:before,.o_icon_filter:before{content:"\f0b0"}.o_icon-briefcase:before{content:"\f0b1"}.o_icon-arrows-alt:before{content:"\f0b2"}.o_icon-group:before,.o_ac_group_icon:before,.o_icon-users:before{content:"\f0c0"}.o_icon-chain:before,.o_icon-link:before{content:"\f0c1"}.o_icon-cloud:before{content:"\f0c2"}.o_icon-flask:before{content:"\f0c3"}.o_icon-cut:before,.o_icon-scissors:before{content:"\f0c4"}.o_icon-copy:before,.o_icon-files-o:before{content:"\f0c5"}.o_icon-paperclip:before{content:"\f0c6"}.o_icon-save:before,.o_icon-floppy-o:before{content:"\f0c7"}.o_icon-square:before{content:"\f0c8"}.o_icon-bars:before{content:"\f0c9"}.o_icon-list-ul:before{content:"\f0ca"}.o_icon-list-ol:before{content:"\f0cb"}.o_icon-strikethrough:before{content:"\f0cc"}.o_icon-underline:before{content:"\f0cd"}.o_icon-table:before,.o_icon_table:before{content:"\f0ce"}.o_icon-magic:before{content:"\f0d0"}.o_icon-truck:before{content:"\f0d1"}.o_icon-pinterest:before{content:"\f0d2"}.o_icon-pinterest-square:before{content:"\f0d3"}.o_icon-google-plus-square:before{content:"\f0d4"}.o_icon-google-plus:before{content:"\f0d5"}.o_icon-money:before{content:"\f0d6"}.o_icon-caret-down:before,.o_icon_close_tree:before{content:"\f0d7"}.o_icon-caret-up:before{content:"\f0d8"}.o_icon-caret-left:before{content:"\f0d9"}.o_icon-caret-right:before,.o_icon_open_tree:before{content:"\f0da"}.o_icon-columns:before{content:"\f0db"}.o_icon-unsorted:before,.o_icon-sort:before,.o_icon_sort:before{content:"\f0dc"}.o_icon-sort-down:before,.o_icon-sort-asc:before,.o_icon_sort_asc:before{content:"\f0dd"}.o_icon-sort-up:before,.o_icon-sort-desc:before,.o_icon_sort_desc:before{content:"\f0de"}.o_icon-envelope:before,.o_icon_message:before{content:"\f0e0"}.o_icon-linkedin:before{content:"\f0e1"}.o_icon-rotate-left:before,.o_icon-undo:before{content:"\f0e2"}.o_icon-legal:before,.o_icon-gavel:before{content:"\f0e3"}.o_icon-dashboard:before,.o_icon-tachometer:before{content:"\f0e4"}.o_icon-comment-o:before,.o_icon_comments_none:before{content:"\f0e5"}.o_icon-comments-o:before{content:"\f0e6"}.o_icon-flash:before,.o_icon-bolt:before{content:"\f0e7"}.o_icon-sitemap:before{content:"\f0e8"}.o_icon-umbrella:before{content:"\f0e9"}.o_icon-paste:before,.o_icon-clipboard:before{content:"\f0ea"}.o_icon-lightbulb-o:before{content:"\f0eb"}.o_icon-exchange:before{content:"\f0ec"}.o_icon-cloud-download:before{content:"\f0ed"}.o_icon-cloud-upload:before{content:"\f0ee"}.o_icon-user-md:before{content:"\f0f0"}.o_icon-stethoscope:before{content:"\f0f1"}.o_icon-suitcase:before{content:"\f0f2"}.o_icon-bell-o:before{content:"\f0a2"}.o_icon-coffee:before{content:"\f0f4"}.o_icon-cutlery:before{content:"\f0f5"}.o_icon-file-text-o:before,.o_sp_icon:before{content:"\f0f6"}.o_icon-building-o:before{content:"\f0f7"}.o_icon-hospital-o:before{content:"\f0f8"}.o_icon-ambulance:before{content:"\f0f9"}.o_icon-medkit:before{content:"\f0fa"}.o_icon-fighter-jet:before,.o_icon_new_document:before,.o_icon_new_folder:before,.o_icon_read:before,.o_icon_to_read:before{content:"\f0fb"}.o_icon-beer:before{content:"\f0fc"}.o_icon-h-square:before{content:"\f0fd"}.o_icon-plus-square:before{content:"\f0fe"}.o_icon-angle-double-left:before,.o_icon_move_left:before{content:"\f100"}.o_icon-angle-double-right:before,.o_icon_move_right:before{content:"\f101"}.o_icon-angle-double-up:before{content:"\f102"}.o_icon-angle-double-down:before{content:"\f103"}.o_icon-angle-left:before{content:"\f104"}.o_icon-angle-right:before{content:"\f105"}.o_icon-angle-up:before{content:"\f106"}.o_icon-angle-down:before{content:"\f107"}.o_icon-desktop:before{content:"\f108"}.o_icon-laptop:before{content:"\f109"}.o_icon-tablet:before{content:"\f10a"}.o_icon-mobile-phone:before,.o_icon-mobile:before{content:"\f10b"}.o_icon-circle-o:before{content:"\f10c"}.o_icon-quote-left:before{content:"\f10d"}.o_icon-quote-right:before{content:"\f10e"}.o_icon-spinner:before{content:"\f110"}.o_icon-circle:before,.o_icon_status_available:before{content:"\f111"}.o_icon-mail-reply:before,.o_icon-reply:before{content:"\f112"}.o_icon-github-alt:before{content:"\f113"}.o_icon-folder-o:before{content:"\f114"}.o_icon-folder-open-o:before{content:"\f115"}.o_icon-smile-o:before{content:"\f118"}.o_icon-frown-o:before{content:"\f119"}.o_icon-meh-o:before{content:"\f11a"}.o_icon-gamepad:before{content:"\f11b"}.o_icon-keyboard-o:before{content:"\f11c"}.o_icon-flag-o:before{content:"\f11d"}.o_icon-flag-checkered:before{content:"\f11e"}.o_icon-terminal:before{content:"\f120"}.o_icon-code:before{content:"\f121"}.o_icon-reply-all:before{content:"\f122"}.o_icon-mail-reply-all:before{content:"\f122"}.o_icon-star-half-empty:before,.o_icon-star-half-full:before,.o_icon-star-half-o:before{content:"\f123"}.o_icon-location-arrow:before{content:"\f124"}.o_icon-crop:before{content:"\f125"}.o_icon-code-fork:before{content:"\f126"}.o_icon-unlink:before,.o_icon-chain-broken:before{content:"\f127"}.o_icon-question:before{content:"\f128"}.o_icon-info:before{content:"\f129"}.o_icon-exclamation:before,.o_icon_error:before{content:"\f12a"}.o_icon-superscript:before{content:"\f12b"}.o_icon-subscript:before{content:"\f12c"}.o_icon-eraser:before,.o_middel:before{content:"\f12d"}.o_icon-puzzle-piece:before{content:"\f12e"}.o_icon-microphone:before{content:"\f130"}.o_icon-microphone-slash:before{content:"\f131"}.o_icon-shield:before{content:"\f132"}.o_icon-calendar-o:before{content:"\f133"}.o_icon-fire-extinguisher:before{content:"\f134"}.o_icon-rocket:before{content:"\f135"}.o_icon-maxcdn:before{content:"\f136"}.o_icon-chevron-circle-left:before{content:"\f137"}.o_icon-chevron-circle-right:before{content:"\f138"}.o_icon-chevron-circle-up:before{content:"\f139"}.o_icon-chevron-circle-down:before{content:"\f13a"}.o_icon-html5:before{content:"\f13b"}.o_icon-css3:before{content:"\f13c"}.o_icon-anchor:before{content:"\f13d"}.o_icon-unlock-alt:before{content:"\f13e"}.o_icon-bullseye:before{content:"\f140"}.o_icon-ellipsis-h:before{content:"\f141"}.o_icon-ellipsis-v:before{content:"\f142"}.o_icon-rss-square:before{content:"\f143"}.o_icon-play-circle:before{content:"\f144"}.o_icon-ticket:before{content:"\f145"}.o_icon-minus-square:before{content:"\f146"}.o_icon-minus-square-o:before{content:"\f147"}.o_icon-level-up:before{content:"\f148"}.o_icon-level-down:before{content:"\f149"}.o_icon-check-square:before{content:"\f14a"}.o_icon-pencil-square:before{content:"\f14b"}.o_icon-external-link-square:before{content:"\f14c"}.o_icon-share-square:before{content:"\f14d"}.o_icon-compass:before{content:"\f14e"}.o_icon-toggle-down:before,.o_icon-caret-square-o-down:before{content:"\f150"}.o_icon-toggle-up:before,.o_icon-caret-square-o-up:before{content:"\f151"}.o_icon-toggle-right:before,.o_icon-caret-square-o-right:before{content:"\f152"}.o_icon-euro:before,.o_icon-eur:before{content:"\f153"}.o_icon-gbp:before{content:"\f154"}.o_icon-dollar:before,.o_icon-usd:before{content:"\f155"}.o_icon-rupee:before,.o_icon-inr:before{content:"\f156"}.o_icon-cny:before,.o_icon-rmb:before,.o_icon-yen:before,.o_icon-jpy:before{content:"\f157"}.o_icon-ruble:before,.o_icon-rouble:before,.o_icon-rub:before{content:"\f158"}.o_icon-won:before,.o_icon-krw:before{content:"\f159"}.o_icon-bitcoin:before,.o_icon-btc:before{content:"\f15a"}.o_icon-file:before{content:"\f15b"}.o_icon-file-text:before{content:"\f15c"}.o_icon-sort-alpha-asc:before{content:"\f15d"}.o_icon-sort-alpha-desc:before{content:"\f15e"}.o_icon-sort-amount-asc:before,.o_icon_sort_menu:before{content:"\f160"}.o_icon-sort-amount-desc:before{content:"\f161"}.o_icon-sort-numeric-asc:before{content:"\f162"}.o_icon-sort-numeric-desc:before{content:"\f163"}.o_icon-thumbs-up:before{content:"\f164"}.o_icon-thumbs-down:before{content:"\f165"}.o_icon-youtube-square:before{content:"\f166"}.o_icon-youtube:before{content:"\f167"}.o_icon-xing:before{content:"\f168"}.o_icon-xing-square:before{content:"\f169"}.o_icon-youtube-play:before{content:"\f16a"}.o_icon-dropbox:before{content:"\f16b"}.o_icon-stack-overflow:before{content:"\f16c"}.o_icon-instagram:before{content:"\f16d"}.o_icon-flickr:before{content:"\f16e"}.o_icon-adn:before{content:"\f170"}.o_icon-bitbucket:before{content:"\f171"}.o_icon-bitbucket-square:before{content:"\f172"}.o_icon-tumblr:before{content:"\f173"}.o_icon-tumblr-square:before{content:"\f174"}.o_icon-long-arrow-down:before{content:"\f175"}.o_icon-long-arrow-up:before{content:"\f176"}.o_icon-long-arrow-left:before{content:"\f177"}.o_icon-long-arrow-right:before{content:"\f178"}.o_icon-apple:before{content:"\f179"}.o_icon-windows:before{content:"\f17a"}.o_icon-android:before{content:"\f17b"}.o_icon-linux:before{content:"\f17c"}.o_icon-dribbble:before{content:"\f17d"}.o_icon-skype:before{content:"\f17e"}.o_icon-foursquare:before{content:"\f180"}.o_icon-trello:before{content:"\f181"}.o_icon-female:before{content:"\f182"}.o_icon-male:before{content:"\f183"}.o_icon-gittip:before{content:"\f184"}.o_icon-sun-o:before{content:"\f185"}.o_icon-moon-o:before{content:"\f186"}.o_icon-archive:before,.o_st_icon:before{content:"\f187"}.o_icon-bug:before{content:"\f188"}.o_icon-vk:before{content:"\f189"}.o_icon-weibo:before{content:"\f18a"}.o_icon-renren:before{content:"\f18b"}.o_icon-pagelines:before{content:"\f18c"}.o_icon-stack-exchange:before{content:"\f18d"}.o_icon-arrow-circle-o-right:before{content:"\f18e"}.o_icon-arrow-circle-o-left:before{content:"\f190"}.o_icon-toggle-left:before,.o_icon-caret-square-o-left:before{content:"\f191"}.o_icon-dot-circle-o:before,.o_icon_status_dnd:before{content:"\f192"}.o_icon-wheelchair:before{content:"\f193"}.o_icon-vimeo-square:before{content:"\f194"}.o_icon-turkish-lira:before,.o_icon-try:before{content:"\f195"}.o_icon-plus-square-o:before{content:"\f196"}.o_icon_bookmark{color:#996633}.o_icon_bookmark_add{color:#999999}.o_icon_delete{color:#A87E7E}.o_icon_edit_metadata{color:#996633}.o_icon_help{cursor:help}.o_icon_new_document{color:pink}.o_icon_new_folder{color:violet}.o_icon_mandatory{color:#f0ad4e}.o_icon_read{color:green}.o_icon_readonly{color:red}.o_icon_status_available{color:#006633}.o_icon_status_dnd{color:#CCCC33}.o_icon_status_unavailable{color:#996633}.o_icon_to_read{color:blue}.o_portrait_dummy,.o_portrait_dummy_female_big,.o_portrait_dummy_male_big,.o_portrait_anonymous{width:100px;height:100px}.o_portrait_dummy{background-image:url("../light/images/portrait/dummy.png")}.o_portrait_dummy_female_big{background-image:url("../light/images/portrait/dummy_female_big.png")}.o_portrait_dummy_male_big{background-image:url("../light/images/portrait/dummy_male_big.png")}.o_portrait_anonymous{background-image:url("../light/images/portrait/dummy.png")}.o_portrait_dummy_small,.o_portrait_dummy_female_small,.o_portrait_dummy_male_small,.o_portrait_anonymous_small{width:30px;height:30px}.o_portrait_dummy_small{background-image:url("../light/images/portrait/dummy_small.png")}.o_portrait_dummy_female_small{background-image:url("../light/images/portrait/dummy_female_small.png")}.o_portrait_dummy_male_small{background-image:url("../light/images/portrait/dummy_male_small.png")}.o_portrait_anonymous_small{background-image:url("../light/images/portrait/dummy_small.png")}a.o_chelp{padding:1px 3px;font-size:10px;line-height:1.5;border-radius:2px}div.o_chelp_wrapper{position:relative}.o_undecorated:hover,a.o_icon:hover,a.o_sp_icon:hover,a.o_st_icon:hover,a.o_tu_icon:hover,a.o_midpub:hover,a.o_midwarn:hover,a.o_midlock:hover,a.o_miderr:hover,a.o_middel:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_undecorated:focus,a.o_icon:focus,a.o_sp_icon:focus,a.o_st_icon:focus,a.o_tu_icon:focus,a.o_midpub:focus,a.o_midwarn:focus,a.o_midlock:focus,a.o_miderr:focus,a.o_middel:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus{text-decoration:none}.o_nowrap{white-space:nowrap}.o_rotate_90,#o_main_wrapper #o_main_container #o_main_center #o_offcanvas_toggle{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}.o_segments_content{margin-top:20px}.o_info,.o_note,.o_form .o_desc,.o_important,.o_warning,.o_form .o_warning,.o_error,.o_form .o_info{margin:20px 0;padding:20px;background-color:#eee;border-left:3px solid #d4d4d4}.o_info h2,.o_note h2,.o_form .o_desc h2,.o_important h2,.o_warning h2,.o_form .o_warning h2,.o_error h2,.o_form .o_info h2,.o_info h3,.o_note h3,.o_form .o_desc h3,.o_important h3,.o_warning h3,.o_form .o_warning h3,.o_error h3,.o_form .o_info h3,.o_info h4,.o_note h4,.o_form .o_desc h4,.o_important h4,.o_warning h4,.o_form .o_warning h4,.o_error h4,.o_form .o_info h4,.o_info h5,.o_note h5,.o_form .o_desc h5,.o_important h5,.o_warning h5,.o_form .o_warning h5,.o_error h5,.o_form .o_info h5{color:#bbbbbb}p.o_info,p.o_note,.o_form p.o_desc,p.o_important,p.o_warning,.o_form p.o_warning,p.o_error,.o_form p.o_info,div.o_info,div.o_note,.o_form div.o_desc,div.o_important,div.o_warning,.o_form div.o_warning,div.o_error,.o_form div.o_info{margin:20px 0}.o_note,.o_form .o_desc{background-color:#f4f8fa;border-color:#5bc0de}.o_note h2,.o_form .o_desc h2,.o_note h3,.o_form .o_desc h3,.o_note h4,.o_form .o_desc h4,.o_note h5,.o_form .o_desc h5{color:#5bc0de}p.o_note,.o_form p.o_desc,div.o_note,.o_form div.o_desc{margin:20px 0}.o_important{background-color:#FFF1A4;border-color:#F4D000}.o_important h2,.o_important h3,.o_important h4,.o_important h5{color:#F4D000}p.o_important,div.o_important{margin:20px 0}.o_warning,.o_form .o_warning{background-color:#FFD5AA;border-color:#FF9E3E}.o_warning h2,.o_form .o_warning h2,.o_warning h3,.o_form .o_warning h3,.o_warning h4,.o_form .o_warning h4,.o_warning h5,.o_form .o_warning h5{color:#FF9E3E}o.b_warning,div.o_warning,.o_form div.o_warning{margin:20px 0}.o_error{background-color:#fdf7f7;border-color:#d9534f}.o_error h2,.o_error h3,.o_error h4,.o_error h5{color:#d9534f}o.b_error,div.o_error{margin:20px 0}.b_border_box{border:1px solid #999;padding:1em;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}p.b_border_box,div.b_border_box{margin:1em 0}table.b_grid{background:transparent;border-collapse:separate}table.b_grid td,table.b_grid th{padding:2px 5px;border:1px solid #888}table.b_grid thead th{background:#ccc}table.b_grid tbody th{background:#eee}table.b_border{background:transparent;border-collapse:collapse}table.b_border td,table.b_border th{padding:2px 5px;border:1px solid #888}table.b_full{width:99.5%}table td{vertical-align:top}table.b_middle{background:transparent}table.b_middle td{vertical-align:middle}.b_selected,p.b_selected,div.b_selected{font-weight:bold}.b_dimmed,p.b_dimmed,div.b_dimmed{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=40);-moz-opacity:0.4;-khtml-opacity:0.4;opacity:0.4}.b_disabled,p.b_disabled,div.b_disabled{color:#999}.b_deleted,p.b_deleted,div.b_deleted{text-decoration:line-through}.b_xsmall,sup,sub,p.b_xsmall,div.b_xsmall{font-size:80%}.b_small,small,p.b_small,div.b_small{font-size:90%}.b_large,p.b_large,div.b_large{font-size:110%}.b_xlarge,big,p.b_xlarge,div.b_xlarge{font-size:120%}.b_align_normal{text-align:left}.b_align_center{text-align:center}.b_align_inverse{text-align:right}.o_ochre{color:#c8a959}.o_blue{color:#12223F}a.b_link_extern{background:transparent url("../../openolat/images/external_link_trimmed.png") no-repeat right top;padding-right:13px}a.b_link_mailto{background:transparent url("../../openolat/images/mail_small.png") no-repeat left center;padding-left:18px}a.b_link_forward{background:transparent url("../../openolat/images/arrow_right.png") no-repeat right center;padding-right:18px}img.b_float_left{float:left;margin:0 2em 2em 0}img.b_float_right{float:right;margin:0 0 2em 2em}img.b_centered{display:block;margin:0 auto 2em auto}img.o_emoticons_angel{background:url(../light/images/emoticons/smiley-angel.png);width:16px;height:16px}img.o_emoticons_angry{background:url(../light/images/emoticons/smiley-mad.png);width:16px;height:16px}img.o_emoticons_blushing{background:url(../light/images/emoticons/smiley-red.png);width:16px;height:16px}img.o_emoticons_confused{background:url(../light/images/emoticons/smiley-confuse.png);width:16px;height:16px}img.o_emoticons_cool{background:url(../light/images/emoticons/smiley-cool.png);width:16px;height:16px}img.o_emoticons_cry{background:url(../light/images/emoticons/smiley-cry.png);width:16px;height:16px}img.o_emoticons_devil{background:url(../light/images/emoticons/smiley-evil.png);width:16px;height:16px}img.o_emoticons_grin{background:url(../light/images/emoticons/smiley-grin.png);width:16px;height:16px}img.o_emoticons_kiss{background:url(../light/images/emoticons/smiley-kiss.png);width:16px;height:16px}img.o_emoticons_ohoh{background:url(../light/images/emoticons/smiley-eek.png);width:16px;height:16px}img.o_emoticons_sad{background:url(../light/images/emoticons/smiley-sad.png);width:16px;height:16px}img.o_emoticons_sick{background:url(../light/images/emoticons/smiley-sad-blue.png);width:16px;height:16px}img.o_emoticons_smile{background:url(../light/images/emoticons/smiley.png);width:16px;height:16px}img.o_emoticons_tongue{background:url(../light/images/emoticons/smiley-razz.png);width:16px;height:16px}img.o_emoticons_ugly{background:url(../light/images/emoticons/smiley-money.png);width:16px;height:16px}img.o_emoticons_weird{background:url(../light/images/emoticons/smiley-nerd.png);width:16px;height:16px}img.o_emoticons_wink{background:url(../light/images/emoticons/smiley-wink.png);width:16px;height:16px}img.o_emoticons_worried{background:url(../light/images/emoticons/smiley-roll-blue.png);width:16px;height:16px}img.o_emoticons_up{background:url(../light/images/emoticons/thumb-up.png);width:16px;height:16px}img.o_emoticons_down{background:url(../light/images/emoticons/thumb.png);width:16px;height:16px}html{position:relative;min-height:100%}body{min-height:100%;margin-bottom:60px}#o_navbar_wrapper{z-index:4}#o_navbar_wrapper #o_navbar_container{position:relative}#o_navbar_wrapper #o_navbar_container a.o_navbar-brand{font-size:40px;vertical-align:top;font-weight:bold;color:#31729B}#o_navbar_wrapper #o_navbar_container a.o_navbar-brand:after{content:"\221E"}#o_navbar_wrapper #o_navbar_container .o_navbar_tabs li a{padding-right:30px}#o_navbar_wrapper #o_navbar_container .o_navbar_tabs .o_navbar_tab_close{position:absolute;top:15px;right:0.5em;padding:0;width:1em;height:1em}#o_navbar_wrapper #o_navbar_container .o_navbar_tabs .o_navbar_tab_close i:before{color:#A87E7E}#o_navbar_wrapper #o_navbar_container .o_navbar_tabs .o_navbar_tab_close:hover i:before{color:#CC0000}#o_navbar_wrapper #o_navbar_container #o_navbar_tools #o_navbar_langchooser{color:#777;padding:15px}#o_navbar_wrapper #o_navbar_container #o_navbar_tools #o_navbar_langchooser form span+div{display:inline}#o_navbar_wrapper #o_navbar_container #o_navbar_tools #o_navbar_help a i{margin-right:0.4em}#o_navbar_wrapper #o_navbar_container #o_navbar_tools #o_navbar_my_menu .dropdown-toggle{padding-left:45px}#o_navbar_wrapper #o_navbar_container #o_navbar_tools #o_navbar_my_menu img{position:absolute;left:7px;top:10px;height:30px;width:30px}.o_navbar{position:relative;min-height:50px;margin-bottom:0;border:1px solid transparent}.o_navbar:before,.o_navbar:after{content:" ";display:table}.o_navbar:after{clear:both}.o_navbar-collapse{max-height:100%;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.o_navbar-collapse:before,.o_navbar-collapse:after{content:" ";display:table}.o_navbar-collapse:after{clear:both}.o_navbar-collapse.o_collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.o_navbar-offcanvas .o_navbar-collapse{width:auto;border-top:0;box-shadow:none;margin-top:10px;margin-right:-15px;margin-left:-15px}.o_navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.o_navbar-brand:hover,.o_navbar-brand:focus{text-decoration:none}.o_navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.o_navbar-toggle:focus{outline:none}.o_navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.o_navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.o_navbar-nav{margin:7.5px -15px}.o_navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}.o_collapse .o_navbar-nav{float:left;margin:0}.o_collapse .o_navbar-nav>li{float:left}.o_collapse .o_navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.o_collapse .o_navbar-nav.o_navbar-right:last-child{margin-right:-15px}.o_collapse.o_navbar-collapse .o_navbar-left{float:left !important}.o_collapse.o_navbar-collapse .o_navbar-right{float:right !important}.o_navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (max-width: 767px){.o_navbar-form .form-group{margin-bottom:5px}}
 .o_collapse .o_navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.o_collapse .o_navbar-form.o_navbar-right:last-child{margin-right:-15px}.o_navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.o_navbar-fixed-bottom .o_navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.o_navbar-btn{margin-top:8px;margin-bottom:8px}.o_navbar-btn.btn-sm,.btn-group-sm>.o_navbar-btn.btn,.btn-group-sm>a.o_navbar-btn.o_chelp{margin-top:10px;margin-bottom:10px}.o_navbar-btn.btn-xs,.btn-group-xs>.o_navbar-btn.btn,.btn-group-xs>a.o_navbar-btn.o_chelp{margin-top:14px;margin-bottom:14px}.o_navbar-text{margin-top:15px;margin-bottom:15px}.o_collapse .o_navbar-text{float:left;margin-left:15px;margin-right:15px}.o_collapse .o_navbar-text.o_navbar-right:last-child{margin-right:0}.o_navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.o_navbar-default .o_navbar-brand{color:#777}.o_navbar-default .o_navbar-brand:hover,.o_navbar-default .o_navbar-brand:focus{color:#5e5e5e;background-color:transparent}.o_navbar-default .o_navbar-text{color:#777}.o_navbar-default .o_navbar-nav>li>a{color:#777}.o_navbar-default .o_navbar-nav>li>a:hover,.o_navbar-default .o_navbar-nav>li>a:focus{color:#333;background-color:transparent}.o_navbar-default .o_navbar-nav>.active>a,.o_navbar-default .o_navbar-nav>.active>a:hover,.o_navbar-default .o_navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.o_navbar-default .o_navbar-nav>.disabled>a,.o_navbar-default .o_navbar-nav>.disabled>a:hover,.o_navbar-default .o_navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.o_navbar-default .o_navbar-toggle{border-color:#ddd}.o_navbar-default .o_navbar-toggle:hover,.o_navbar-default .o_navbar-toggle:focus{background-color:#ddd}.o_navbar-default .o_navbar-toggle .icon-bar{background-color:#888}.o_navbar-default .o_navbar-collapse,.o_navbar-default .o_navbar-form{border-color:#e7e7e7}.o_navbar-default .o_navbar-nav>.open>a,.o_navbar-default .o_navbar-nav>.open>a:hover,.o_navbar-default .o_navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}.o_navbar-default .o_navbar-link{color:#777}.o_navbar-default .o_navbar-link:hover{color:#333}.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>li>a{color:#777}.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>li>a:hover,.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>.active>a,.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>.active>a:hover,.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>.disabled>a,.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>.disabled>a:hover,.o_navbar-offcanvas.o_navbar-default .o_navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}.o_navbar-inverse{background-color:#222;border-color:#090909}.o_navbar-inverse .o_navbar-brand{color:#999}.o_navbar-inverse .o_navbar-brand:hover,.o_navbar-inverse .o_navbar-brand:focus{color:#fff;background-color:transparent}.o_navbar-inverse .o_navbar-text{color:#999}.o_navbar-inverse .o_navbar-nav>li>a{color:#999}.o_navbar-inverse .o_navbar-nav>li>a:hover,.o_navbar-inverse .o_navbar-nav>li>a:focus{color:#fff;background-color:transparent}.o_navbar-inverse .o_navbar-nav>.active>a,.o_navbar-inverse .o_navbar-nav>.active>a:hover,.o_navbar-inverse .o_navbar-nav>.active>a:focus{color:#fff;background-color:#090909}.o_navbar-inverse .o_navbar-nav>.disabled>a,.o_navbar-inverse .o_navbar-nav>.disabled>a:hover,.o_navbar-inverse .o_navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.o_navbar-inverse .o_navbar-toggle{border-color:#333}.o_navbar-inverse .o_navbar-toggle:hover,.o_navbar-inverse .o_navbar-toggle:focus{background-color:#333}.o_navbar-inverse .o_navbar-toggle .icon-bar{background-color:#fff}.o_navbar-inverse .o_navbar-collapse,.o_navbar-inverse .o_navbar-form{border-color:#101010}.o_navbar-inverse .o_navbar-nav>.open>a,.o_navbar-inverse .o_navbar-nav>.open>a:hover,.o_navbar-inverse .o_navbar-nav>.open>a:focus{background-color:#090909;color:#fff}.o_navbar-inverse .o_navbar-nav .o_navbar-link{color:#999}.o_navbar-inverse .o_navbar-nav .o_navbar-link:hover{color:#fff}.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#090909}.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu .divider{background-color:#090909}.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>li>a{color:#999}.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>li>a:hover,.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>.active>a,.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>.active>a:hover,.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#090909}.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>.disabled>a,.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>.disabled>a:hover,.o_navbar-inverse .o_navbar-offcanvas.o_navbar-inverse .o_navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}#o_main_wrapper{background:#fff;z-index:3}#o_main_wrapper #o_main_container{background:#fff}#o_main_wrapper #o_main_container #o_main_left{position:absolute}#o_main_wrapper #o_main_container #o_main_left #o_main_left_content{padding:30px}#o_main_wrapper #o_main_container #o_main_right{position:relative;background:#999}#o_main_wrapper #o_main_container #o_main_right #o_main_right_content{padding:30px}#o_main_wrapper #o_main_container #o_main_center{position:relative}@media screen and (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center{margin-left:0 !important}}#o_main_wrapper #o_main_container #o_main_center #o_offcanvas_toggle{position:absolute;left:-4em;top:0;left:-2em;top:1.7em;z-index:2}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:30px}#o_main_wrapper #o_toplink{position:absolute;bottom:10px;right:10px}#o_footer_wrapper{position:absolute;bottom:0;width:100%;z-index:2;min-height:60px;background-color:#f5f5f5;color:#999;line-height:16px}#o_footer_wrapper a{color:#999}#o_footer_wrapper a:hover{color:#000}#o_footer_wrapper #o_footer_container{position:relative;padding-top:10px;min-height:60px;background:#f5f5f5}#o_footer_wrapper #o_footer_container #o_footer_user #o_counter{white-space:nowrap}#o_footer_wrapper #o_footer_container #o_footer_user #o_username{white-space:nowrap;margin-right:1em}#o_footer_wrapper #o_footer_container #o_footer_version{text-align:right}@media (max-width: 767px){#o_footer_wrapper #o_footer_container #o_footer_version{padding-top:10px;text-align:left}}#o_footer_wrapper #o_footer_container #o_footer_powered{text-align:center}#o_footer_wrapper #o_footer_container #o_footer_powered img{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6}#o_footer_wrapper #o_footer_container #o_footer_powered img:hover{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=100);-moz-opacity:1;-khtml-opacity:1;opacity:1}@media (max-width: 767px){#o_footer_wrapper #o_footer_container #o_footer_powered{display:none}}
 #o_share{margin-top:5px;width:250px}#o_share a{margin:0 3px 0 0;background-repeat:no-repeat;width:16px;height:16px;float:left;display:inline;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6}#o_share a:hover{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=100);-moz-opacity:1;-khtml-opacity:1;opacity:1}#o_share #o_facebook{background-image:url("../light/images/social/facebook_16.png")}#o_share #o_twitter{background-image:url("../light/images/social/twitter_16.png")}#o_share #o_google{background-image:url("../light/images/social/google_16.png")}#o_share #o_delicious{background-image:url("../light/images/social/delicious_16.png")}#o_share #o_digg{background-image:url("../light/images/social/digg_16.png")}#o_share #o_mail{background-image:url("../light/images/social/email_16.png")}#o_share #o_link{background-image:url("../light/images/social/link_16.png")}body{overflow-x:hidden}.o_container_offcanvas{position:relative;max-width:1324px;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;-m-transition:all .25s ease-in-out;transition:all .25s ease-in-out}#o_offcanvas_right{position:absolute;top:0;right:-250px;width:250px;padding:15px 15px;background-color:#222;color:#999;border:1px solid #090909;min-height:100%;z-index:10;-webkit-transition:all .25s ease-out;-moz-transition:all .25s ease-out;-o-transition:all .25s ease-out;-m-transition:all .25s ease-out;transition:all .25s ease-out}#o_offcanvas_right:before,#o_offcanvas_right:after{content:" ";display:table}#o_offcanvas_right:after{clear:both}@media screen and (min-width: 1324px) and (max-width: 1574px){body.o_offcanvas_right_visible .o_container_offcanvas{left:-125px;max-width:1074px}}@media screen and (min-width: 1574px) and (max-width: 1824px){body.o_offcanvas_right_visible .o_container_offcanvas{left:-125px}}body.o_offcanvas_right_visible #o_offcanvas_right{right:0;-webkit-box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25)}@media screen and (max-width: 767px){.row-offcanvas{position:relative;-webkit-transition:all .25s ease-out;-moz-transition:all .25s ease-out;transition:all .25s ease-out}.row-offcanvas-right{right:0}.row-offcanvas-right .sidebar-offcanvas{right:-50%}.row-offcanvas-right.active{right:50%}.row-offcanvas-left{left:0}.row-offcanvas-left .sidebar-offcanvas{left:-50%}.row-offcanvas-left.active{left:50%}.sidebar-offcanvas{position:absolute;top:0;width:50%}}div.o_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=1);-moz-opacity:0.01;-khtml-opacity:0.01;opacity:0.01}.alert-fixed-top,.alert-fixed-bottom{position:fixed;width:100%;z-index:1035;border-radius:0;margin:0;left:0}@media (min-width: 992px){.alert-fixed-top,.alert-fixed-bottom{width:992px;left:50%;margin-left:-496px}}
 .alert-fixed-top{top:0;border-width:0 0 1px 0}@media (min-width: 992px){.alert-fixed-top{border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-width:0 1px 1px 1px}}