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 cb4ccfc3858626ce1d2a253c7c4e0b2c3e3ff65d..22a5688277c4db67211e8086835bdd87e7a8ef0c 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 @@ -87,11 +87,15 @@ public class Dropdown extends AbstractComponent implements ComponentCollection { } public void addComponent(Link component) { - components.add(component); + if(component != null) { + components.add(component); + } } public void addComponent(Spacer spacer) { - components.add(spacer); + if(spacer != null) { + components.add(spacer); + } } public int size() { diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormLayoutContainer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormLayoutContainer.java index ae0824bd1175d6f2df5168553cfd3ab642aa934c..fb669cb849fd5c424f50b337d3a2ce2b3a1d4771 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormLayoutContainer.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormLayoutContainer.java @@ -114,7 +114,7 @@ public class FormLayoutContainer extends FormItemImpl implements FormItemContain private FormLayoutContainer(String id, String name, Translator formTranslator, String page) { super(id, name, false); formLayoutContainer = new VelocityContainer(id == null ? null : id + "_VC", name, page, formTranslator, null); - if (page.equals(LAYOUT_DEFAULT) || page.equals(LAYOUT_VERTICAL) || page.equals(LAYOUT_VERTICAL) || page.equals(LAYOUT_BUTTONGROUP)) { + if (page.equals(LAYOUT_DEFAULT) || page.equals(LAYOUT_VERTICAL) || page.equals(LAYOUT_HORIZONTAL) || page.equals(LAYOUT_BUTTONGROUP)) { // optimize for lower DOM element count - provides its own DOM ID in velocity template formLayoutContainer.setDomReplacementWrapperRequired(false); } diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/_content/form_buttongroup.html b/src/main/java/org/olat/core/gui/components/form/flexible/impl/_content/form_buttongroup.html index b2906f5bb55bfd2e23f20367a31554f95b3e5c27..db6d68d5105ac0f1292c94ddc2220911452411b1 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/_content/form_buttongroup.html +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/_content/form_buttongroup.html @@ -1,4 +1,4 @@ -<div id="$r.getCId()" class="form-inline $f.getContainerCssClass()"> +<div id="$r.getCId()" class="form-inline $f.getContainerCssClass()"> #foreach ($item in $formitemnames) $r.render("$item") #end diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextAreaElementRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextAreaElementRenderer.java index 2986046a865d819bfb540c2243eb9fe2ea827762..8fe70b3895be06e3e90a35dcfbab597d110d5c22 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextAreaElementRenderer.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextAreaElementRenderer.java @@ -114,19 +114,15 @@ class TextAreaElementRenderer extends DefaultComponentRenderer { sb.append(id); sb.append("\" name=\""); sb.append(id); - sb.append("\""); + sb.append("\" class='form-control'"); if (teC.getCols() != -1) { - sb.append(" cols=\""); - sb.append(teC.getCols()); - sb.append("\""); + sb.append(" cols=\"").append(teC.getCols()).append("\""); } if (teC.isAutoHeightEnabled()){ sb.append(" onkeyup='try{var iter=0; while ( this.scrollHeight>this.offsetHeight && iter < 99){ iter++; this.rows = this.rows + 1}} catch(e){}'"); } if (rows != -1) { - sb.append(" rows=\""); - sb.append(rows); - sb.append("\""); + sb.append(" rows=\"").append(rows).append("\""); } sb.append(FormJSHelper.getRawJSFor(te.getRootForm(), id, te.getAction())); sb.append(" >"); diff --git a/src/main/java/org/olat/core/gui/components/progressbar/ProgressBarRenderer.java b/src/main/java/org/olat/core/gui/components/progressbar/ProgressBarRenderer.java index c79dd9179db28426117093e902e97bc06a91caa0..d3c956d7178626ca062f50b4c8c3f1360b5585a9 100644 --- a/src/main/java/org/olat/core/gui/components/progressbar/ProgressBarRenderer.java +++ b/src/main/java/org/olat/core/gui/components/progressbar/ProgressBarRenderer.java @@ -27,10 +27,9 @@ package org.olat.core.gui.components.progressbar; 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.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; @@ -41,15 +40,7 @@ import org.olat.core.util.StringHelper; * * @author Andreas Ch. Kapp */ -public class ProgressBarRenderer implements ComponentRenderer { - - /** - * This is a singleton. There must be an empty contructor for the - * Class.forName() call. - */ - public ProgressBarRenderer() { - super(); - } +public class ProgressBarRenderer extends DefaultComponentRenderer { /** * @see org.olat.core.gui.render.ui.ComponentRenderer#render(org.olat.core.gui.render.Renderer, @@ -66,7 +57,7 @@ public class ProgressBarRenderer implements ComponentRenderer { if (!ubar.getIsNoMax()) percent = 100 * ubar.getActual() / ubar.getMax(); if (percent < 0) percent = 0; if (percent > 100) percent = 100; - target.append("<div class=\"b_progress\"><div class=\"b_progress_bar\" style=\"width:") + target.append("<div class='progress'><div class='progress-bar' style=\"width:") .append(ubar.getWidth()) .append("px;\"><div style=\"width:") .append(Math.round(percent * ubar.getWidth() / 100)) @@ -98,23 +89,4 @@ public class ProgressBarRenderer implements ComponentRenderer { } target.append("</div>"); } - - /** - * @see org.olat.core.gui.render.ui.ComponentRenderer#renderBodyOnLoadJSFunctionCall(org.olat.core.gui.render.Renderer, - * org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component) - */ - public void renderBodyOnLoadJSFunctionCall(Renderer renderer, StringOutput sb, Component source, RenderingState rstate) { - // - } - - /** - * @see org.olat.core.gui.render.ui.ComponentRenderer#renderHeaderIncludes(org.olat.core.gui.render.Renderer, - * org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component, - * org.olat.core.gui.render.URLBuilder, org.olat.core.gui.translator.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/stack/TooledStackedPanelRenderer.java b/src/main/java/org/olat/core/gui/components/stack/TooledStackedPanelRenderer.java index e69fd9b4529d283d3de4527b66217a885da16d84..62021f1b7877f0dd9fd5243d2eb3757d0ec661f8 100644 --- a/src/main/java/org/olat/core/gui/components/stack/TooledStackedPanelRenderer.java +++ b/src/main/java/org/olat/core/gui/components/stack/TooledStackedPanelRenderer.java @@ -120,7 +120,6 @@ public class TooledStackedPanelRenderer extends DefaultComponentRenderer { } private void renderTools(List<Tool> tools, Renderer renderer, StringOutput sb, String[] args) { - int numOfTools = tools.size(); for(int i=0; i<numOfTools; i++) { Tool tool = tools.get(i); @@ -137,7 +136,5 @@ public class TooledStackedPanelRenderer extends DefaultComponentRenderer { renderer.render(cmp, sb, args); sb.append("</li>"); } - - } } \ No newline at end of file diff --git a/src/main/java/org/olat/core/gui/components/tree/SelectionTreeRenderer.java b/src/main/java/org/olat/core/gui/components/tree/SelectionTreeRenderer.java index b20939521f6926b84528a56aa788cb816216c6d6..b8550b488d0bb0c97048a8858529fa7a8df7f5bf 100644 --- a/src/main/java/org/olat/core/gui/components/tree/SelectionTreeRenderer.java +++ b/src/main/java/org/olat/core/gui/components/tree/SelectionTreeRenderer.java @@ -140,20 +140,20 @@ public class SelectionTreeRenderer extends DefaultComponentRenderer { else target.append(internalTranslator.translate("selectiontree.noentries")); target.append("<br /><br />"); if (atLeastOneIsAccessible && tree.getFormButtonKey() != null) { - target.append("<button type=\"submit\" class=\"b_button o_sel_submit_selection\" name=\"" + Form.SUBMIT_IDENTIFICATION + "\" value=\""); + target.append("<button type=\"submit\" class=\"btn btn-primary o_sel_submit_selection\" name=\"" + Form.SUBMIT_IDENTIFICATION + "\" value=\""); target.append(StringEscapeUtils.escapeHtml(translator.translate(tree.getFormButtonKey()))); if (!tree.isAllowEmptySelection()) { target.append("\" onclick=\"return seltree_check();\" onkeypress=\"return seltree_check();\">"); } else { target.append("\">"); } - target.append("<span>").append(translator.translate(tree.getFormButtonKey())).append("</span></button>"); + target.append(translator.translate(tree.getFormButtonKey())).append("</button>"); } if(tree.isShowCancelButton()){ - target.append("<button type=\"submit\" class=\"b_button o_sel_cancel_selection\" name=\"" + Form.CANCEL_IDENTIFICATION + "\" value=\""); + target.append(" <button type=\"submit\" class=\"btn btn-default o_sel_cancel_selection\" name=\"" + Form.CANCEL_IDENTIFICATION + "\" value=\""); target.append(StringEscapeUtils.escapeHtml(translator.translate("cancel"))).append("\">"); - target.append("<span>").append(translator.translate("cancel")).append("</span></button>"); + target.append(translator.translate("cancel")).append("</button>"); } target.append("</form></div>"); } diff --git a/src/main/java/org/olat/ims/qti/container/qtielements/Render_choice.java b/src/main/java/org/olat/ims/qti/container/qtielements/Render_choice.java index 150e6f0c73c7953e9b6ba22d66732847ff86cd7a..ede0a5e7c31f0ecd6c7ed3d2b22cd4c9b8bc2370 100644 --- a/src/main/java/org/olat/ims/qti/container/qtielements/Render_choice.java +++ b/src/main/java/org/olat/ims/qti/container/qtielements/Render_choice.java @@ -125,8 +125,10 @@ public class Render_choice extends GenericQTIElement { public void render(StringBuilder buffer, RenderInstructions ri) { if (kprim) { ri.put(RenderInstructions.KEY_RENDER_CLASS, "kprim"); - buffer.append("<table class=\"o_qti_item_kprim\" cellpadding=\"2\" cellspacing=\"0\">"); - buffer.append("<tr><th align=\"center\">+</th><th align=\"center\">-</th><th></th></tr>"); + buffer.append("<table class='table o_qti_item_kprim'>") + .append("<thead><tr>") + .append("<th class='o_qti_item_kprim_input'>+</th><th class='o_qti_item_kprim_input'>-</th><th></th>") + .append("</tr></thead><tbody>"); } else { if (ri.containsKey(RenderInstructions.KEY_RENDER_AUTOENUM_LIST)) { ri.put(RenderInstructions.KEY_RENDER_AUTOENUM_IDX, "0"); @@ -137,7 +139,7 @@ public class Render_choice extends GenericQTIElement { super.render(buffer, ri); if (kprim) { - buffer.append("</table>"); + buffer.append("</tbody></table>"); } else { buffer.append("</div>"); } diff --git a/src/main/java/org/olat/ims/qti/container/qtielements/Response_label.java b/src/main/java/org/olat/ims/qti/container/qtielements/Response_label.java index ad587b38f8a517a74723a0d41fb35fe1b75cdeeb..61853840bc768469a7bfcbf5de38a2df92fe6d4f 100644 --- a/src/main/java/org/olat/ims/qti/container/qtielements/Response_label.java +++ b/src/main/java/org/olat/ims/qti/container/qtielements/Response_label.java @@ -72,9 +72,13 @@ public class Response_label extends GenericQTIElement { //we don't know what to do } else if (renderClass.equals("choice")) { // render multiple/single choice - buffer.append("<div class=\"o_qti_item_choice_option"); - if (!wantBr(ri)) buffer.append("_flow"); - buffer.append("\">"); + buffer.append("<div class='form-group o_qti_item_choice_option"); + if (!wantBr(ri)){ + buffer.append("_flow"); + } else { + buffer.append(" row"); + } + buffer.append("'>"); Object o = ri.get(RenderInstructions.KEY_RENDER_AUTOENUM_LIST); @@ -96,48 +100,45 @@ public class Response_label extends GenericQTIElement { if (rCardinality == null) throw new AssertException( "Cardinality must be set previousely to call respnse_label.render for a render_choice class."); - buffer.append("<div class=\"o_qti_item_choice_option_input\">"); + buffer.append(""); if (rCardinality.intValue() == Response_lid.RCARDINALITY_SINGLE) { // single choice - buffer.append("<input id=\"QTI_").append(ri.get(RenderInstructions.KEY_ITEM_IDENT)).append(getQTIIdent()).append("\" type=\"radio\" class=\"b_radio\" name=\""); - buffer.append("qti").append(PARA).append(ri.get(RenderInstructions.KEY_ITEM_IDENT)).append(PARA).append( - ri.get(RenderInstructions.KEY_RESPONSE_IDENT)).append(PARA).append("choice"); - buffer.append("\" value=\"").append(getQTIIdent()); + buffer.append("<div class='col-sm-1'>") + .append("<input id=\"QTI_").append(ri.get(RenderInstructions.KEY_ITEM_IDENT)).append(getQTIIdent()).append("\" type=\"radio\" class='form-control' name=\"") + .append("qti").append(PARA).append(ri.get(RenderInstructions.KEY_ITEM_IDENT)).append(PARA) + .append(ri.get(RenderInstructions.KEY_RESPONSE_IDENT)).append(PARA).append("choice") + .append("\" value=\"").append(getQTIIdent()); if (iinput != null && !iinput.isEmpty()) { String response = iinput.getSingle(responseIdent); if (response.equals(getQTIIdent())) buffer.append("\" checked=\"checked"); } - buffer.append("\" onchange=\"return setFormDirty('ofo_iq_item')\" onclick=\"return setFormDirty('ofo_iq_item')\" />"); + buffer.append("\" onchange=\"return setFormDirty('ofo_iq_item')\" onclick=\"return setFormDirty('ofo_iq_item')\" />") + .append("</div>"); } else if (rCardinality.intValue() == Response_lid.RCARDINALITY_MULTIPLE) { // multiple choice - buffer.append("<input id=\"QTI_").append(ri.get(RenderInstructions.KEY_ITEM_IDENT)).append(getQTIIdent()).append("\" type=\"checkbox\" class=\"b_checkbox\" name=\""); + buffer.append("<div class='col-sm-1'>") + .append("<input id=\"QTI_").append(ri.get(RenderInstructions.KEY_ITEM_IDENT)).append(getQTIIdent()).append("\" type=\"checkbox\" class=\"b_checkbox\" name=\""); appendParameterIdent(buffer, ri); buffer.append("\" value=\"").append(getQTIIdent()); if (iinput != null) { List<String> responses = iinput.getAsList(responseIdent); if (responses != null && responses.contains(getQTIIdent())) buffer.append("\" checked=\"checked"); } - buffer.append("\" onchange=\"return setFormDirty('ofo_iq_item')\" onclick=\"return setFormDirty('ofo_iq_item')\" />"); + buffer.append("\" onchange=\"return setFormDirty('ofo_iq_item')\" onclick=\"return setFormDirty('ofo_iq_item')\" />") + .append("</div>"); } - buffer.append("</div>"); - - + //support accessibility that plain HTML provides - buffer.append("<div class=\"o_qti_item_choice_option_value\">"); - buffer.append("<label for=\"QTI_").append(ri.get(RenderInstructions.KEY_ITEM_IDENT)).append(getQTIIdent()).append("\">"); - + buffer.append("<label class='col-sm-11' for=\"QTI_").append(ri.get(RenderInstructions.KEY_ITEM_IDENT)).append(getQTIIdent()).append("\">"); super.render(buffer, ri); - - buffer.append("</label>"); - buffer.append("</div>"); - - buffer.append("</div>"); + buffer.append("</label>") + .append("</div>"); } else if (renderClass.equals("kprim")) { - buffer.append("<tr><td align=\"center\"><input id=\"QTI_").append(ri.get(RenderInstructions.KEY_ITEM_IDENT)).append(getQTIIdent()).append("\" type=\"radio\" class=\"b_radio\" name=\""); + buffer.append("<tr><td class='o_qti_item_kprim_input'><input id=\"QTI_").append(ri.get(RenderInstructions.KEY_ITEM_IDENT)).append(getQTIIdent()).append("\" type=\"radio\" class=\"b_radio\" name=\""); appendParameterIdent(buffer, ri); buffer.append("\" value=\"" + getQTIIdent() + ":correct"); if (iinput != null && !iinput.isEmpty()) { @@ -145,7 +146,7 @@ public class Response_label extends GenericQTIElement { if (responses != null && responses.contains(getQTIIdent() + ":correct")) buffer.append("\" checked=\"checked"); } buffer.append("\" onchange=\"return setFormDirty('ofo_iq_item')\" onclick=\"return setFormDirty('ofo_iq_item')\"/>"); - buffer.append("</td><td align=\"center\"><input id=\"QTI_").append(ri.get(RenderInstructions.KEY_ITEM_IDENT)).append(getQTIIdent()).append("\" type=\"radio\" class=\"b_radio\" name=\""); + buffer.append("</td><td class='o_qti_item_kprim_input'><input id=\"QTI_").append(ri.get(RenderInstructions.KEY_ITEM_IDENT)).append(getQTIIdent()).append("\" type=\"radio\" class=\"b_radio\" name=\""); appendParameterIdent(buffer, ri); buffer.append("\" value=\"" + getQTIIdent() + ":wrong"); if (iinput != null && !iinput.isEmpty()) { @@ -169,7 +170,7 @@ public class Response_label extends GenericQTIElement { // render as textarea buffer.append("<textarea id=\"QTI_").append(getQTIIdent()).append("\" name=\""); appendParameterIdent(buffer, ri); - buffer.append("\" rows=\"").append(rows).append("\" cols=\"").append(columns) + buffer.append("\" class='form-control' rows=\"").append(rows).append("\" cols=\"").append(columns) .append("\" onchange=\"return setFormDirty('ofo_iq_item')\" onclick=\"return setFormDirty('ofo_iq_item')\">"); if (iinput != null && !iinput.isEmpty() && iinput.getSingle(responseIdent) != null) { buffer.append(iinput.getSingle(getQTIIdent())); diff --git a/src/main/java/org/olat/ims/qti/editor/AssessmentController.java b/src/main/java/org/olat/ims/qti/editor/AssessmentController.java index 01b244e31cd6fba8ef8a183c21541e3762752a49..762a0b0625b985991781339fadf60908bb8e4a69 100644 --- a/src/main/java/org/olat/ims/qti/editor/AssessmentController.java +++ b/src/main/java/org/olat/ims/qti/editor/AssessmentController.java @@ -67,7 +67,7 @@ public class AssessmentController extends TabbableDefaultController implements C this.assessment = assessment; this.qtiPackage = qtiPackage; - main = this.createVelocityContainer("tab_assess"); + main = createVelocityContainer("tab_assess"); main.contextPut("assessment", assessment); // fix missing selection ordering, new feature introduced in 9.3.3 if (assessment.getSelection_ordering() == null) { diff --git a/src/main/java/org/olat/ims/qti/editor/ChoiceItemController.java b/src/main/java/org/olat/ims/qti/editor/ChoiceItemController.java index ed6f0d565f3acba8c808105121d5261d99073b52..1f4f85bba9e20418c38a3da2c2210dd2cd4dadbe 100644 --- a/src/main/java/org/olat/ims/qti/editor/ChoiceItemController.java +++ b/src/main/java/org/olat/ims/qti/editor/ChoiceItemController.java @@ -126,13 +126,13 @@ public class ChoiceItemController extends DefaultController implements Controlle } } else if (cmd.equals("editq")) { editQuestion = item.getQuestion().getQuestion(); - displayMaterialFormController(ureq, editQuestion, restrictedEdit); - + displayMaterialFormController(ureq, editQuestion, restrictedEdit, + trnsltr.translate("fieldset.legend.question")); } else if (cmd.equals("editr")) { editResponse = item.getQuestion().getResponses().get(posid); Material responseMat = editResponse.getContent(); - displayMaterialFormController(ureq, responseMat, restrictedEdit); - + displayMaterialFormController(ureq, responseMat, restrictedEdit, + trnsltr.translate("fieldset.legend.answers")); } else if (cmd.equals("addchoice")) { ChoiceQuestion question = (ChoiceQuestion) item.getQuestion(); List<Response> choices = question.getResponses(); @@ -285,10 +285,11 @@ public class ChoiceItemController extends DefaultController implements Controlle * @param mat * @param isRestrictedEditMode */ - private void displayMaterialFormController(UserRequest ureq, Material mat, boolean isRestrictedEditMode) { + private void displayMaterialFormController(UserRequest ureq, Material mat, boolean isRestrictedEditMode, String title) { matFormCtr = new MaterialFormController(ureq, getWindowControl(), mat, qtiPackage, isRestrictedEditMode); matFormCtr.addControllerListener(this); - dialogCtr = new CloseableModalController(getWindowControl(), "close", matFormCtr.getInitialComponent()); + dialogCtr = new CloseableModalController(getWindowControl(), "close", + matFormCtr.getInitialComponent(), true, title); matFormCtr.addControllerListener(dialogCtr); dialogCtr.activate(); } diff --git a/src/main/java/org/olat/ims/qti/editor/EssayItemController.java b/src/main/java/org/olat/ims/qti/editor/EssayItemController.java index 4dcc69d94c3ec31d2acb0c0e260d67eaaba1077c..92e43fc787819a2f78a204cadfd896026e7f259e 100644 --- a/src/main/java/org/olat/ims/qti/editor/EssayItemController.java +++ b/src/main/java/org/olat/ims/qti/editor/EssayItemController.java @@ -203,7 +203,8 @@ public class EssayItemController extends DefaultController implements Controller private void displayMaterialFormController(UserRequest ureq, Material mat, boolean isRestrictedEditMode) { matFormCtr = new MaterialFormController(ureq, getWindowControl(), mat, qtiPackage, isRestrictedEditMode); matFormCtr.addControllerListener(this); - dialogCtr = new CloseableModalController(getWindowControl(), "close", matFormCtr.getInitialComponent()); + dialogCtr = new CloseableModalController(getWindowControl(), "close", + matFormCtr.getInitialComponent(), true, trnsltr.translate("fieldset.legend.question")); matFormCtr.addControllerListener(dialogCtr); dialogCtr.activate(); } diff --git a/src/main/java/org/olat/ims/qti/editor/FIBItemController.java b/src/main/java/org/olat/ims/qti/editor/FIBItemController.java index 27c3bba1dba4b7d670518b7c2e9a3454f81662de..d06c956fde5f1d0432a61ae5b7a36593a4e9a8b2 100644 --- a/src/main/java/org/olat/ims/qti/editor/FIBItemController.java +++ b/src/main/java/org/olat/ims/qti/editor/FIBItemController.java @@ -297,7 +297,8 @@ public class FIBItemController extends DefaultController implements ControllerEv private void displayMaterialFormController(UserRequest ureq, Material mat, boolean isRestrictedEditMode) { matFormCtr = new MaterialFormController(ureq, getWindowControl(), mat, qtiPackage, isRestrictedEditMode); matFormCtr.addControllerListener(this); - dialogCtr = new CloseableModalController(getWindowControl(), "close", matFormCtr.getInitialComponent()); + dialogCtr = new CloseableModalController(getWindowControl(), "close", + matFormCtr.getInitialComponent(), true, trnsltr.translate("questionform_answer")); matFormCtr.addControllerListener(dialogCtr); dialogCtr.activate(); } diff --git a/src/main/java/org/olat/ims/qti/editor/FeedbackFormController.java b/src/main/java/org/olat/ims/qti/editor/FeedbackFormController.java index 33d7b2c8f84d24e5944d43a395ca53d253af684c..75124633b31eb896684da88826ca952c9d157a56 100644 --- a/src/main/java/org/olat/ims/qti/editor/FeedbackFormController.java +++ b/src/main/java/org/olat/ims/qti/editor/FeedbackFormController.java @@ -187,9 +187,8 @@ public class FeedbackFormController extends FormBasicController { FormLayoutContainer switchLayout = FormLayoutContainer.createDefaultFormLayout("switchLayout", getTranslator()); overallFeedbackLayout = FormLayoutContainer.createDefaultFormLayout("overallFeedbackLayout", getTranslator()); - responseLevelHintsLayout = FormLayoutContainer.createCustomFormLayout("responseLevelHintsLayout", getTranslator(), Util - .getPackageVelocityRoot(this.getClass()) - + "/response_level_feedback.html"); + responseLevelHintsLayout = FormLayoutContainer.createCustomFormLayout("responseLevelHintsLayout", getTranslator(), + Util.getPackageVelocityRoot(this.getClass()) + "/response_level_feedback.html"); // add the layouts to the custom layout formLayout.add(switchLayout); formLayout.add(overallFeedbackLayout); @@ -226,14 +225,14 @@ public class FeedbackFormController extends FormBasicController { RichTextElement masteryFeedback = uifactory.addRichTextElementForStringData("richTextElement", "item_feedback_mastery", masteryMat .renderAsHtml(mediaBaseUrl), 4, -1, true, baseContainer, null, masteryEditLayout, ureq.getUserSession(), getWindowControl()); FormLink editLink = uifactory.addFormLink("editLink", masteryEditLayout, Link.NONTRANSLATED + Link.LINK_CUSTOM_CSS); - ((Link) editLink.getComponent()).setCustomDisplayText(""); - ((Link) editLink.getComponent()).setCustomEnabledLinkCSS("b_small_icon b_edit_icon qti_edit_link"); + ((Link) editLink.getComponent()).setCustomDisplayText(" "); + ((Link) editLink.getComponent()).setIconLeftCSS("o_icon o_icon_edit o_icon-lg qti_edit_link"); registerFeedbackElement(masteryMat, masteryFeedback, editLink); // One Failure Layout - FormLayoutContainer failureEditLayout = FormLayoutContainer.createCustomFormLayout("failureEditLayout", getTranslator(), Util - .getPackageVelocityRoot(this.getClass()) - + "/rich_text_and_edit_link.html"); + FormLayoutContainer failureEditLayout = FormLayoutContainer + .createCustomFormLayout("failureEditLayout", getTranslator(), Util + .getPackageVelocityRoot(this.getClass()) + "/rich_text_and_edit_link.html"); failureEditLayout.setLabel("item_feedback_fail", null); overallFeedbackLayout.add(failureEditLayout); RichTextElement failureFeedback = uifactory.addRichTextElementForStringData("richTextElement", "item_feedback_fail", failureMat @@ -241,7 +240,7 @@ public class FeedbackFormController extends FormBasicController { failureFeedback.setLabel("item_feedback_fail", null); FormLink failureLink = uifactory.addFormLink("editLink", failureEditLayout, Link.NONTRANSLATED + Link.LINK_CUSTOM_CSS); ((Link) failureLink.getComponent()).setCustomDisplayText(""); - ((Link) failureLink.getComponent()).setCustomEnabledLinkCSS("b_small_icon b_edit_icon"); + ((Link) failureLink.getComponent()).setIconLeftCSS("o_icon o_icon_edit o_icon-lg"); registerFeedbackElement(failureMat, failureFeedback, failureLink); // Feedback for each response when single or multiple choice question @@ -259,8 +258,8 @@ public class FeedbackFormController extends FormBasicController { .renderAsHtml(mediaBaseUrl), 4, -1, true, baseContainer, null, responseLevelHintsLayout, ureq.getUserSession(), getWindowControl()); FormLink link = uifactory.addFormLink("link_" + i, responseLevelHintsLayout, Link.NONTRANSLATED + Link.LINK_CUSTOM_CSS); - ((Link) link.getComponent()).setCustomDisplayText(""); - ((Link) link.getComponent()).setCustomEnabledLinkCSS("b_small_icon b_edit_icon"); + ((Link) link.getComponent()).setCustomDisplayText(" "); + ((Link) link.getComponent()).setIconLeftCSS("o_icon o_icon_edit o_icon-lg"); registerFeedbackElement(responseFeedbackMat, responseHintText, link); // get response for displaying Material responseMat = response.getContent(); @@ -272,7 +271,7 @@ public class FeedbackFormController extends FormBasicController { hasResponseLevelHints = i > 1; } - this.flc.contextPut("hasResponseLevelHints", hasResponseLevelHints); + flc.contextPut("hasResponseLevelHints", hasResponseLevelHints); responseLevelHintsLayout.contextPut("responses", responses); showHideFeedbackFields(); } diff --git a/src/main/java/org/olat/ims/qti/editor/QTIEditorMainController.java b/src/main/java/org/olat/ims/qti/editor/QTIEditorMainController.java index de3424be77bd6b453b2c6e53a8bf5612f1d7c16d..53f9fe5022fe7341d8e8ca4a6c7d2a6382b7c448 100644 --- a/src/main/java/org/olat/ims/qti/editor/QTIEditorMainController.java +++ b/src/main/java/org/olat/ims/qti/editor/QTIEditorMainController.java @@ -430,12 +430,12 @@ public class QTIEditorMainController extends MainLayoutBasicController implement } // enable/disable delete and move - // if (!restrictedEdit) { // only available in full edit mode if (clickedNode instanceof AssessmentNode) { deleteLink.setEnabled(false); moveLink.setEnabled(false); copyLink.setEnabled(false); + stackedPanel.setDirty(true); } else { deleteLink.setEnabled(true && !restrictedEdit); moveLink.setEnabled(true && !restrictedEdit); @@ -444,8 +444,8 @@ public class QTIEditorMainController extends MainLayoutBasicController implement } else { copyLink.setEnabled(false); } + stackedPanel.setDirty(true); } - // } } } else if (source == moveTree) { // catch move operations cmc.deactivate(); diff --git a/src/main/java/org/olat/ims/qti/editor/_content/response_level_feedback.html b/src/main/java/org/olat/ims/qti/editor/_content/response_level_feedback.html index 02d7a1f9bb3dbd49df3386803048f3dda4f96780..299c4310abf54c428160a0dd087a6175482c4d17 100644 --- a/src/main/java/org/olat/ims/qti/editor/_content/response_level_feedback.html +++ b/src/main/java/org/olat/ims/qti/editor/_content/response_level_feedback.html @@ -1,19 +1,10 @@ -<!-- Custom Layout for Response-Level Feedback --> - - <div class="b_form_element_wrapper b_clearfix"> - <div class="b_form_element_label"> - <span class="qti_response_level_feedback_label">$r.translate("questionform_answer")</span> - </div> - <div class="b_form_element"> - <span class="qti_response_level_feedback_label">$r.translate("answer_feedback")</span> - </div> - </div> +<div class="row"><div class="col-sm-offset-3 col-sm-9"> + <div class="o_desc">$r.translate("answer_feedback")</div> +</div></div> #foreach( $response in $responses ) - <div class="b_form_element_wrapper b_clearfix"> - <div class="b_form_element_label"> - $r.formatLatexFormulas($response.renderAsHtml($mediaBaseUrl)) - </div> - <div class="b_form_element"> + <div class="row"></div><div class="form-group"> + <label class="control-label col-sm-6">$r.formatLatexFormulas($response.renderAsHtml($mediaBaseUrl))</label> + <div class="col-sm-6"> <div class="qti_edit_layout"> $r.render("feedback_$velocityCount") <div class="edit_link"> @@ -21,5 +12,5 @@ </div> </div> </div> - </div> + </div></div> #end \ No newline at end of file diff --git a/src/main/java/org/olat/ims/qti/editor/_content/tab_assess.html b/src/main/java/org/olat/ims/qti/editor/_content/tab_assess.html index 34aea685fa4a0a14767d04f7efaeb0669a62b824..7bc22a39ef7d20f7bde6afdb15c61ebbf0ed78f2 100644 --- a/src/main/java/org/olat/ims/qti/editor/_content/tab_assess.html +++ b/src/main/java/org/olat/ims/qti/editor/_content/tab_assess.html @@ -11,75 +11,72 @@ document.getElementById('fswitch').style.display = ''; } </script> -<fieldset> - <legend>$r.translate("fieldset.legend.assessmentglobalsettings")</legend> +<fieldset class="o_form form-horizontal" role="form"> + <legend>$r.translate("fieldset.legend.assessmentglobalsettings") #if ($isRestrictedEdit) $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-meta-surv.html","help.hover.survey") + #elseif($isSurveyMode.equals("false")) + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-meta-test.html","help.hover.assess") #else - #if($isSurveyMode.equals("false")) - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-meta-test.html","help.hover.assess") - #else - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-meta-surv.html","help.hover.survey") - #end - #end - -<form action="$r.formURIbg('sao')" id="ofo_assessform" name="assessform" $r.bgTarget() method="post"> -<table border="0" width="100%"> - - <tr> - <td>$r.translate("form.metadata.title")</td> - <td><input type="text" size="30" name="title" value="$r.escapeHtml($!assessment.title)" onchange="return setFormDirty('ofo_assessform')" onclick="return setFormDirty('ofo_assessform')" /></td> - </tr> - - <tr> - <td valign="top">$r.translate("form.metadata.objectives")</td> - <td> - <textarea name="objectives" cols="35" rows="8" onchange="return setFormDirty('ofo_assessform')" onclick="return setFormDirty('ofo_assessform')" >$!assessment.objectives</textarea> - <br> - </td> - </tr> + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-meta-surv.html","help.hover.survey") + #end + </legend> + <form class="clearfix" action="$r.formURIbg('sao')" id="ofo_assessform" name="assessform" $r.bgTarget() method="post"> + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("form.metadata.title")</label> + <div class="col-sm-9"> + <input class="form-control" type="text" size="30" name="title" value="$r.escapeHtml($!assessment.title)" onchange="return setFormDirty('ofo_assessform')" onclick="return setFormDirty('ofo_assessform')" /> + </div> + </div> + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("form.metadata.objectives")</label> + <div class="col-sm-9"> + <textarea name="objectives" class="form-control" cols="35" rows="8" onchange="return setFormDirty('ofo_assessform')" onclick="return setFormDirty('ofo_assessform')" >$!assessment.objectives</textarea> + </div> + </div> + #if(!$isRestrictedEdit) - <tr> - <td>$r.translate("form.assessment.selection_pre")</td> - <td> - <select id="selection_number" name="selection_number" onchange="if(this.form.selection_number.options.selectedIndex==0){unShadeFormElement('order_type');}else{shadeFormElement('order_type');this.form.order_type.options.selectedIndex=0}return setFormDirty('ofo_assessform')" onclick="return setFormDirty('ofo_assessform')"> - <option value="0" - #if ($selection_number == "0") + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("form.assessment.selection_pre")</label> + <div class="col-sm-9"> + <select id="selection_number" name="selection_number" class="form-control" onchange="if(this.form.selection_number.options.selectedIndex==0){unShadeFormElement('order_type');}else{shadeFormElement('order_type');this.form.order_type.options.selectedIndex=0}return setFormDirty('ofo_assessform')" onclick="return setFormDirty('ofo_assessform')"> + <option value="0" + #if ($selection_number == "0") + selected="selected" + #set ($readonly = "") + #set ($css = "") + #else + #set ($readonly = 'readonly="readonly"') + #set ($css = "b_disabled") + #end + >$r.translate("form.section.selection_all")</option> + #foreach($section in $assessment.sections) + <option value="$velocityCount" + #if ($selection_number == "$velocityCount") selected="selected" - #set ($readonly = "") - #set ($css = "") - #else - #set ($readonly = 'readonly="readonly"') - #set ($css = "b_disabled") - #end - >$r.translate("form.section.selection_all")</option> - #foreach($section in $assessment.sections) - <option value="$velocityCount" - #if ($selection_number == "$velocityCount") - selected="selected" + #end + >$velocityCount</option> #end - >$velocityCount</option> - #end - </select> - </td> - </tr> + </select> + </div> + </div> - <tr> - <td>$r.translate("form.assessment.order_type")</td> - <td> - <select id="order_type" name="order_type" onchange="return setFormDirty('ofo_assessform')" onclick="return setFormDirty('ofo_assessform')" $readonly class="$css"> + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("form.assessment.order_type")</label> + <div class="col-sm-9"> + <select id="order_type" name="order_type" class="form-control" onchange="return setFormDirty('ofo_assessform')" onclick="return setFormDirty('ofo_assessform')" $readonly class="$css"> <option value="Random" #if ($order_type == "Random") selected="selected" #end >$r.translate("form.section.order_type.random")</option> <option value="Sequential" #if ($order_type == "Sequential") selected="selected" #end >$r.translate("form.section.order_type.sequential")</option> </select> - </tr> + </div> + </div> #end -#if($isSurveyMode.equals("false") && !$isRestrictedEdit) - - <tr> +#if($isSurveyMode.equals("false") && !$isRestrictedEdit) + <div class="form-group"> #set ($yeschecked = "") #set ($nochecked = "") #set ($readonly = "") @@ -94,9 +91,9 @@ #set ($secval = "0") #set ($readonly = 'readonly="readonly"') #set ($css = "b_disabled") - #end - <td>$r.translate("form.metadata.duration")</td> - <td nowrap="true"> + #end + <label class="control-label col-sm-3">$r.translate("form.metadata.duration")</label> + <div class="col-sm-9"> <input type="radio" name="duration" value="Yes" $yeschecked onclick="unShadeFormElement('sec');unShadeFormElement('min');return setFormDirty('ofo_assessform')" onkeypress="unShadeFormElement('sec');unShadeFormElement('min');return setFormDirty('ofo_assessform')" onchange="return setFormDirty('ofo_assessform')" class="b_radio"/>$r.translate("yes") <input type="radio" name="duration" value="No" $nochecked onclick="shadeFormElement('sec');shadeFormElement('min');return setFormDirty('ofo_assessform')" onkeypress="shadeFormElement('sec');shadeFormElement('min');return setFormDirty('ofo_assessform')" onchange="return setFormDirty('ofo_assessform')" class="b_radio"/>$r.translate("no") @@ -104,27 +101,26 @@ <input id="min" type="text" name="duration_min" value="$minval" size="3" onchange="return setFormDirty('ofo_assessform')" onclick="return setFormDirty('ofo_assessform')" $!readonly class="$css"/>: <input id="sec" type="text" name="duration_sec" value="$secval" size="3" maxlength="2" onchange="return setFormDirty('ofo_assessform')" onclick="return setFormDirty('ofo_assessform')" $!readonly class="$css"/> <i>($r.translate("form.metadata.minutes"):$r.translate("form.metadata.seconds"))</i> - </td> - </tr> + </div> + </div> - - #set ($yeschecked = "") - #set ($nochecked = "") - #if ($assessment.isInheritControls()) - #set ($yeschecked = 'checked="checked"') - #else - #set ($nochecked = 'checked="checked"') - #end - <tr> - <td>$r.translate("form.metadata.globalfeedbackNsolution")</td> - <td> + <div class="form-group"> + #set ($yeschecked = "") + #set ($nochecked = "") + #if ($assessment.isInheritControls()) + #set ($yeschecked = 'checked="checked"') + #else + #set ($nochecked = 'checked="checked"') + #end + <label class="control-label col-sm-3">$r.translate("form.metadata.globalfeedbackNsolution")</label> + <div class="col-sm-9"> <input type="radio" name="inheritswitch" value="Yes" $!yeschecked onclick="return setFormDirty('ofo_assessform');showSwitches();" onkeypress="return setFormDirty('ofo_assessform');showSwitches();" onchange="return setFormDirty('ofo_assessform')" class="b_radio"/>$r.translate("yes") <input type="radio" name="inheritswitch" value="No" $!nochecked onclick="return setFormDirty('ofo_assessform');hideSwitches();" onkeypress="return setFormDirty('ofo_assessform');hideSwitches();" onchange="return setFormDirty('ofo_assessform')" class="b_radio"/>$r.translate("no") - </td> - </tr> + </div> + </div> - <tr id="fswitch"> + <div id="fswitch" class="form-group"> #set ($yeschecked = "") #set ($nochecked = "") #set ($readonly = 'readonly="readonly"') @@ -138,15 +134,14 @@ #set ($readonly = 'readonly="readonly"') #set ($css = "b_disabled") #end - <td> <i>$r.translate("form.metadata.show.feedback")</i></td> - <td> + <label class="control-label col-sm-3">$r.translate("form.metadata.show.feedback")</label> + <div class="col-sm-9"> <input type="radio" name="feedbackswitch" value="Yes" $!yeschecked onchange="return setFormDirty('ofo_assessform');" class="b_radio"/>$r.translate("yes") <input type="radio" name="feedbackswitch" value="No" $!nochecked onchange="return setFormDirty('ofo_assessform');" class="b_radio"/>$r.translate("no") - </td> - </tr> - - <tr id="sswitch"> + </div> + </div> + <div id="sswitch" class="form-group"> #set ($yeschecked = "") #set ($nochecked = "") #set ($readonly = 'readonly="readonly"') @@ -160,14 +155,14 @@ #set ($readonly = 'readonly="readonly"') #set ($css = "b_disabled") #end - <td> <i>$r.translate("form.metadata.show.hints")</i></td> - <td> + <label class="control-label col-sm-3">$r.translate("form.metadata.show.hints")</label> + <div class="col-sm-9"> <input type="radio" name="hintswitch" value="Yes" $yeschecked onchange="return setFormDirty('ofo_assessform')" class="b_radio"/>$r.translate("yes") <input type="radio" name="hintswitch" value="No" $nochecked onchange="return setFormDirty('ofo_assessform')" class="b_radio"/>$r.translate("no") - </td> - </tr> - <tr id="hswitch"> + </div> + </div> + <div id="hswitch" class="form-group"> #set ($yeschecked = "") #set ($nochecked = "") #set ($readonly = 'readonly="readonly"') @@ -181,13 +176,13 @@ #set ($readonly = 'readonly="readonly"') #set ($css = "b_disabled") #end - <td> <i>$r.translate("form.metadata.show.solution")</i></td> - <td> + <label class="control-label col-sm-3">$r.translate("form.metadata.show.solution")</label> + <div class="col-sm-9"> <input type="radio" name="solutionswitch" value="Yes" $yeschecked onchange="return setFormDirty('ofo_assessform')" onclick="return setFormDirty('ofo_assessform')" class="b_radio"/>$r.translate("yes") <input type="radio" name="solutionswitch" value="No" $nochecked onchange="return setFormDirty('ofo_assessform')" onclick="return setFormDirty('ofo_assessform')" class="b_radio"/>$r.translate("no") - </td> - </tr> + </div> + </div> #if ($assessment.isInheritControls() && !$isRestrictedEdit) <script type="text/javascript">showSwitches();</script> #else @@ -197,17 +192,14 @@ #end #if($isSurveyMode.equals("false") && !$isRestrictedEdit) - <tr> - <td>$r.translate("form.metadata.cutvalue")</td> - <td> - <input type="text" name="cutvalue" value="$!cutvalue" size="4" onchange="return setFormDirty('ofo_assessform')" onclick="return setFormDirty('ofo_assessform')"/> - </td> - </tr> + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("form.metadata.cutvalue")</label> + <div class="col-sm-9"> + <input type="text" class="form-control" name="cutvalue" value="$!cutvalue" size="4" onchange="return setFormDirty('ofo_assessform')" onclick="return setFormDirty('ofo_assessform')"/> + </div> + </div> #end - - </table> - -<br> -<div class="btn-group"><input type="submit" value="$r.translateInAttribute("submit")" class="btn btn-primary" name="olat_fosm" /></div> -</form> -</fieldset> + <div class="col-sm-offset-3 col-sm-9 "><div class="btn-group"> + <input type="submit" value="$r.translateInAttribute("submit")" class="btn btn-primary" name="olat_fosm" /> + </div></div> +</form></fieldset> \ No newline at end of file diff --git a/src/main/java/org/olat/ims/qti/editor/_content/tab_essayItem.html b/src/main/java/org/olat/ims/qti/editor/_content/tab_essayItem.html index 19db2b261d0312bed1e6cb6b24f6e7368c3183ce..ac138cd11bc860dca13d104dbe4229fd40d1ba2c 100644 --- a/src/main/java/org/olat/ims/qti/editor/_content/tab_essayItem.html +++ b/src/main/java/org/olat/ims/qti/editor/_content/tab_essayItem.html @@ -1,68 +1,53 @@ <fieldset> - <legend>$r.translate("fieldset.legend.question")</legend> - - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-quest-surv-4.html","help.hover.qti-quest-4") - - - - <table class="b_table b_grid_row b_full"> - <thead> - <tr> - <th>$r.translate("fieldset.legend.question")</th> - <th width="15%">$r.translate("questionform_actions")</th> - </tr> - </thead> - <tbody> - <tr class="b_table_odd"> - <td> - $r.formatLatexFormulas($question.getQuestion().renderAsHtml($mediaBaseURL)) - </td> - <td align="center"> - <a title="$r.translateInAttribute("mat.edit.question")" href="$r.commandURIbg('editq')" $r.bgTarget()><img alt="$r.translateInAttribute("mat.edit.question")" src="$r.staticLink("images/qti/page_edit.png")"></a> - </td> - </tr> - </tbody> - </table> -</fieldset> - -<fieldset> - <legend>$r.translate("fieldset.legend.answers")</legend> - - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-surv-4.html","help.hover.qti-answer-4") - - <form action="$r.formURIbg("sessay")" id="ofo_tab_essavitem" $r.bgTarget() method="post"> - <table class="table table-bordered"> - <thead> - <tr> - <th>$r.translate("essay.dimension.header")</th> - <th width="15%">$r.translate("essay.dimension")</th> - </tr> - </thead> - <tbody> - <tr class="b_table_odd"> - <td> - $r.translate("essay.columns") - </td> - <td align="center"> - <input type="text" name="columns_q" value="$response.getColumns()" size="3" maxlength="3" onchange="return setFormDirty('ofo_tab_essavitem')" onclick="return setFormDirty('ofo_tab_essavitem')"/> - </td> - </tr> + <legend>$r.translate("fieldset.legend.question") + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-quest-surv-4.html","help.hover.qti-quest-4") + </legend> + <table class="table"> + <thead><tr> + <th>$r.translate("fieldset.legend.question")</th> + <th width="15%">$r.translate("questionform_actions")</th> + </tr></thead> + <tbody> <tr> - <td> - $r.translate("essay.rows") - </td> + <td>$r.formatLatexFormulas($question.getQuestion().renderAsHtml($mediaBaseURL))</td> <td align="center"> - <input type="text" name="rows_q" value="$response.getRows()" size="3" maxlength="3" onchange="return setFormDirty('ofo_tab_essavitem')" onclick="return setFormDirty('ofo_tab_essavitem')"/> + <a title="$r.translateInAttribute("mat.edit.question")" href="$r.commandURIbg('editq')" $r.bgTarget()><img alt="$r.translateInAttribute("mat.edit.question")" src="$r.staticLink("images/qti/page_edit.png")"></a> </td> </tr> </tbody> - </table> - <br><br> + </table> +</fieldset> +<fieldset class="o_form form-horizontal" role="form"> + <legend>$r.translate("fieldset.legend.answers") + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-surv-4.html","help.hover.qti-answer-4") + </legend> + <form action="$r.formURIbg("sessay")" id="ofo_tab_essavitem" $r.bgTarget() method="post"> + <div class="row"><div class="col-sm-offset-3 col-sm-9"> + <div class="o_desc">$r.translate("essay.dimension.header")</div> + </div></div> + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("essay.columns")</label> + <div class="col-sm-9"> + <input type="text" name="columns_q" value="$response.getColumns()" class="form-control" size="3" maxlength="3" onchange="return setFormDirty('ofo_tab_essavitem')" onclick="return setFormDirty('ofo_tab_essavitem')"/> + </div> + </div> + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("essay.rows")</label> + <div class="col-sm-9"> + <input type="text" name="rows_q" value="$response.getRows()" class="form-control" size="3" maxlength="3" onchange="return setFormDirty('ofo_tab_essavitem')" onclick="return setFormDirty('ofo_tab_essavitem')"/> + </div> + </div> + #if($isSurveyMode.equals("false") && !$isRestrictedEdit) - $r.translate("score") - <input type="text" name="single_score" value="$question.getMaxValue()" size="4" onchange="return setFormDirty('ofo_tab_scitem')" onclick="return setFormDirty('ofo_tab_scitem')"/> - <br /> + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("score")</label> + <div class="col-sm-9"> + <input type="text" name="single_score" value="$question.getMaxValue()" class="form-control" size="4" onchange="return setFormDirty('ofo_tab_scitem')" onclick="return setFormDirty('ofo_tab_scitem')"/> + </div> + </div> #end -<div class="btn-group"><input type="submit" value="$r.translateInAttribute("submit")" class="btn btn-primary" name="olat_fosm" /></div> -</form> + <div class="col-sm-offset-3 col-sm-9 "><div class="btn-group"> + <input type="submit" value="$r.translateInAttribute("submit")" class="btn btn-primary" name="olat_fosm" /> + </div></div> + </form> </fieldset> diff --git a/src/main/java/org/olat/ims/qti/editor/_content/tab_fibItem.html b/src/main/java/org/olat/ims/qti/editor/_content/tab_fibItem.html index 442d1f2482b25f6cdc16b5b286b965c809e867d7..71c36f38fe0dc41fc422e64ec38d13f67e0a3982 100644 --- a/src/main/java/org/olat/ims/qti/editor/_content/tab_fibItem.html +++ b/src/main/java/org/olat/ims/qti/editor/_content/tab_fibItem.html @@ -1,16 +1,13 @@ -<fieldset> - <legend>$r.translate("fieldset.legend.answers")</legend> +<fieldset class="o_form form-horizontal" role="form"> + <legend>$r.translate("fieldset.legend.answers") #if ($isSurveyMode == "true") - - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-surv-3.html","help.hover.qti-answer-3") - + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-surv-3.html","help.hover.qti-answer-3") #else - - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-test-3.html","help.hover.qti-answer-3") - + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-test-3.html","help.hover.qti-answer-3") #end + </legend> - <form action="$r.formURIbg("sfib")" id="ofo_tab_fibitem" $r.bgTarget() method="post"> + <form action="$r.formURIbg("sfib")" id="ofo_tab_fibitem" $r.bgTarget() method="post"> #if ($question.getResponses().size() > 0) <table class="table table-bordered"> <thead> @@ -122,23 +119,20 @@ </table> #end - <p> <br /> #if(!$isRestrictedEdit) - <a href="$r.commandURIbg("addtext")" $r.bgTarget() onclick="return o2cl()" onkeypress="return o2cl()" class="b_button"><span>$r.translate("add_text")</span></a> + <a href="$r.commandURIbg("addtext")" $r.bgTarget() onclick="return o2cl()" onkeypress="return o2cl()" class="btn btn-default"><span>$r.translate("add_text")</span></a> - <a href="$r.commandURIbg("addblank")" $r.bgTarget() onclick="return o2cl()" onkeypress="return o2cl()" class="b_button"><span>$r.translate("add_blank")</span></a> + <a href="$r.commandURIbg("addblank")" $r.bgTarget() onclick="return o2cl()" onkeypress="return o2cl()" class="btn btn-default"><span>$r.translate("add_blank")</span></a> <br /> #end </p> #if($isSurveyMode.equals("false") && !$isRestrictedEdit) - <table> - <tr> - <td>$r.translate("valuation_method")</td> - <td> - <select id="valmethod" name="valuation_method" size="1" onchange="if(this.form.valmethod.options.selectedIndex==0){shadeFormElement('single');}else{unShadeFormElement('single');}" onclick="return setFormDirty('ofo_tab_fibitem')" > + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("valuation_method")</label> + <div class="col-sm-9"><select id="valmethod" name="valuation_method" class="form-control" onchange="if(this.form.valmethod.options.selectedIndex==0){shadeFormElement('single');}else{unShadeFormElement('single');}" onclick="return setFormDirty('ofo_tab_fibitem')" > <option value="multi" #if(!$question.isSingleCorrect()) selected @@ -153,33 +147,29 @@ #set ($readonly = "") #end >$r.translate("valuation_method_single")</option> - </select> - </td> - </tr> - <tr> - <td>$r.translate("single_score") <i>$r.translate("valuation_method_single")</i></td> - <td> - <input id="single" type="text" name="single_score" value="$!question.getSingleCorrectScore()" size="4" class="$css" $readonly onchange="return setFormDirty('ofo_tab_fibitem')" onclick="return setFormDirty('ofo_tab_fibitem')"/> - </td> - </tr> + </select></div> + </div> + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("single_score") <i>$r.translate("valuation_method_single")</i></label> + <div class="col-sm-9"> + <input id="single" type="text" name="single_score" value="$!question.getSingleCorrectScore()" size="4" class="form-control $css" $readonly onchange="return setFormDirty('ofo_tab_fibitem')" onclick="return setFormDirty('ofo_tab_fibitem')"/> + </div> + </div> - <tr> - <td>$r.translate("min_value")</td> - <td> - <input type="text" name="min_value" value="$!question.getMinValue()" size="4" onchange="return setFormDirty('ofo_tab_fibitem')" onclick="return setFormDirty('ofo_tab_fibitem')"/> - </td> - </tr> - <tr> - <td>$r.translate("max_value")</td> - <td> - <input type="text" name="max_value" value="$!question.getMaxValue()" size="4" onchange="return setFormDirty('ofo_tab_fibitem')" onclick="return setFormDirty('ofo_tab_fibitem')"/> - </td> - </tr> - </table> + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("min_value")</label> + <div class="col-sm-9"> + <input type="text" name="min_value" value="$!question.getMinValue()" size="4" class="form-control" onchange="return setFormDirty('ofo_tab_fibitem')" onclick="return setFormDirty('ofo_tab_fibitem')"/> + </div> + </div> + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("max_value")</label> + <div class="col-sm-9"> + <input type="text" name="max_value" value="$!question.getMaxValue()" size="4" class="form-control" onchange="return setFormDirty('ofo_tab_fibitem')" onclick="return setFormDirty('ofo_tab_fibitem')"/> + </div> + </div> #end - -<br /> -<div class="btn-group"><input type="submit" value="$r.translateInAttribute("submit")" class="btn btn-primary" name="olat_fosm"/></div> -</form> - -</fieldset> + <div class="col-sm-offset-3 col-sm-9 "><div class="btn-group"> + <input type="submit" value="$r.translateInAttribute("submit")" class="btn btn-primary" name="olat_fosm"/> + </div> +</form></fieldset> \ No newline at end of file diff --git a/src/main/java/org/olat/ims/qti/editor/_content/tab_itemMetaData.html b/src/main/java/org/olat/ims/qti/editor/_content/tab_itemMetaData.html deleted file mode 100644 index 1759e1c30dccd801920517a46a5fead6f82801e3..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/ims/qti/editor/_content/tab_itemMetaData.html +++ /dev/null @@ -1,25 +0,0 @@ -<fieldset> - <legend>$r.translate("fieldset.legend.metadata")</legend> - #if ($isRestrictedEdit) - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-meta-surv-fibess.html","help.hover.qti-meta-fibess") - #else - ## Fill in the Blank or Essay or Kprim - #if (($questionType == "3") || ($questionType == "4") || ($questionType == "5")) - #if ($isSurveyMode == "true") - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-meta-surv-fibess.html","help.hover.qti-meta-fibess") - #else - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-meta-test-fib.html","help.hover.qti-meta-fib") - #end - - ## Single Choice or Multiple Choice - #else - #if ($isSurveyMode == "true") - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-meta-surv-mcsc.html","help.hover.qti-meta-scmc") - #else - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-meta-test-mcsc.html","help.hover.qti-meta-scmc") - #end - #end - #end - - $r.render("itemMetaDataForm") -</fieldset> diff --git a/src/main/java/org/olat/ims/qti/editor/_content/tab_kprimItem.html b/src/main/java/org/olat/ims/qti/editor/_content/tab_kprimItem.html index 2e9ecc1a8f3575bc84c6f5da269b2ed48fdfda2e..d0c18a26795562b364dce46e709581c57ff4b522 100644 --- a/src/main/java/org/olat/ims/qti/editor/_content/tab_kprimItem.html +++ b/src/main/java/org/olat/ims/qti/editor/_content/tab_kprimItem.html @@ -1,43 +1,37 @@ <fieldset> - <legend>$r.translate("fieldset.legend.question")</legend> + <legend>$r.translate("fieldset.legend.question") + #if ($isSurveyMode == "true") + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-quest-surv-mcsc.html","help.hover.qti-quest-5") + #else + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-quest-test-5.html","help.hover.qti-quest-5") + #end + </legend> - #if ($isSurveyMode == "true") - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-quest-surv-mcsc.html","help.hover.qti-quest-5") - #else - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-quest-test-5.html","help.hover.qti-quest-5") - #end - - <table class="b_table b_grid_row b_full"> - <thead> - <tr> - <th>$r.translate("fieldset.legend.question")</th> - <th width="15%">$r.translate("questionform_actions")</th> - </tr> - </thead> + <table class="table"> + <thead><tr> + <th>$r.translate("fieldset.legend.question")</th> + <th width="15%">$r.translate("questionform_actions")</th> + </tr></thead> <tbody> <tr class="b_table_odd"> - <td> - $r.formatLatexFormulas($question.getQuestion().renderAsHtml($mediaBaseURL)) - </td> + <td>$r.formatLatexFormulas($question.getQuestion().renderAsHtml($mediaBaseURL))</td> <td align="center"> <a title="$r.translateInAttribute("mat.edit.question")" href="$r.commandURIbg('editq')" $r.bgTarget() onclick="return o2cl()"><img alt="$r.translateInAttribute("mat.edit.question")" src="$r.staticLink("images/qti/page_edit.png")"></a> </td> </tr> </tbody> - </table> - - </fieldset> - - <fieldset> - <legend>$r.translate("fieldset.legend.answers")</legend> - - #if ($isSurveyMode == "true") - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-surv-2.html","help.hover.qti-quest-5") - #else - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-test-5.html","help.hover.qti-answer-5") - #end + </table> +</fieldset> +<fieldset class="o_form form-horizontal" role="form"> + <legend>$r.translate("fieldset.legend.answers") + #if ($isSurveyMode == "true") + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-surv-2.html","help.hover.qti-quest-5") + #else + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-test-5.html","help.hover.qti-answer-5") + #end + </legend> - <form action="$r.formURIbg("skprim")" id="ofo_tab_kprimitem" $r.bgTarget() method="post"> + <form action="$r.formURIbg("skprim")" id="ofo_tab_kprimitem" $r.bgTarget() method="post"> #if ($question.getResponses().size() > 0) <table class="table table-bordered" style="position:relative"> <thead> @@ -58,7 +52,7 @@ #if ($velocityCount % 2 == 0) #set ($rowclass="") #else - #set ($rowclass="b_table_odd") + #set ($rowclass="b_table_odd") #end #set ($count = ($velocityCount - 1)) <tr class="$rowclass"> @@ -69,11 +63,8 @@ <a href="$r.commandURI("down", "posid", "$count")" onclick="return o2cl()" onkeypress="return o2cl()" title="$r.translateInAttribute("mat.move_down")"><img src="$r.staticLink("images/qti/move_down.png")" alt="$r.translateInAttribute("mat.move_down")" border="0"></a> #end </td> - <td> - $r.formatLatexFormulas($content.getContent().renderAsHtml($mediaBaseURL)) - </td> - - + <td>$r.formatLatexFormulas($content.getContent().renderAsHtml($mediaBaseURL))</td> + #if($isSurveyMode.equals("false") && !$isRestrictedEdit) <td valign="middle" align="center"> @@ -91,7 +82,7 @@ #end </td> #else - <td > </td> + <td > </td> #end <td valign="middle" align="center"> <a href="$r.commandURI("editr", "posid", "$count")" onclick="return o2cl()" onkeypress="return o2cl()" title="$r.translateInAttribute("mat.edit.response")"> @@ -103,25 +94,18 @@ </table> #end - #if($isSurveyMode.equals("false") && !$isRestrictedEdit) - <table style="position:relative"> - <tr> - <td>$r.translate("kprim_info")</td> - </tr> - - <tr> - <td>$r.translate("max_value")</td> - <td> - <input type="text" name="max_value" value="$!question.getMaxValue()" size="4" onchange="return setFormDirty('ofo_tab_kprimitem')" onclick="return setFormDirty('ofo_tab_kprimitem')"/> - </td> - </tr> - </table> -#end - -#if($isSurveyMode.equals("false") && !$isRestrictedEdit) -<br /> -<div class="btn-group"><input type="submit" value="$r.translateInAttribute("submit")" class="btn btn-primary" name="olat_fosm" /></div> + <div class="row"><div class="col-sm-offset-3 col-sm-9"> + <div class="o_desc">$r.translate("kprim_info")</div> + </div></div> + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("max_value")</label> + <div class="col-sm-9"> + <input type="text" name="max_value" class="form-control" value="$!question.getMaxValue()" size="4" onchange="return setFormDirty('ofo_tab_kprimitem')" onclick="return setFormDirty('ofo_tab_kprimitem')"/> + </div> + </div> + <div class="col-sm-offset-3 col-sm-9 "><div class="btn-group"> + <input type="submit" value="$r.translateInAttribute("submit")" class="btn btn-primary" name="olat_fosm" /> + </div></div> #end - </form> -</fieldset> +</form></fieldset> \ No newline at end of file diff --git a/src/main/java/org/olat/ims/qti/editor/_content/tab_mcItem.html b/src/main/java/org/olat/ims/qti/editor/_content/tab_mcItem.html index 54863ac5b02f3261c578e056e0a94437d8b0915a..e5ccb5bdd6a59d6122c17d439e1e3648eb40d9fe 100644 --- a/src/main/java/org/olat/ims/qti/editor/_content/tab_mcItem.html +++ b/src/main/java/org/olat/ims/qti/editor/_content/tab_mcItem.html @@ -1,54 +1,38 @@ <fieldset> - <legend>$r.translate("fieldset.legend.question")</legend> - - #if ($isSurveyMode == "true") - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-quest-surv-2.html","help.hover.qti-quest-2") - #else - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-quest-test-2.html","help.hover.qti-quest-2") - #end - - - - <table class="b_table b_grid_row b_full" style="position:relative"> - <thead> - <tr> - <th>$r.translate("fieldset.legend.question")</th> - <th width="15%">$r.translate("questionform_actions")</th> - </tr> - </thead> - <tbody> - <tr class="b_table_odd"> - <td> - $r.formatLatexFormulas($question.getQuestion().renderAsHtml($mediaBaseURL)) - </td> - <td align="center"> - <a title="$r.translateInAttribute("mat.edit.question")" href="$r.commandURIbg('editq')" $r.bgTarget() onclick="return o2cl()"><img alt="$r.translateInAttribute("mat.edit.question")" src="$r.staticLink("images/qti/page_edit.png")"></a> - </td> - </tr> - </tbody> - </table> + <legend>$r.translate("fieldset.legend.question") + #if ($isSurveyMode == "true") + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-quest-surv-2.html","help.hover.qti-quest-2") + #else + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-quest-test-2.html","help.hover.qti-quest-2") + #end + </legend> - </fieldset> - - <fieldset> - <legend>$r.translate("fieldset.legend.answers")</legend> - - #if ($isSurveyMode == "true") - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-surv-2.html","help.hover.qti-answer-2") - #else - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-test-2.html","help.hover.qti-answer-2") - #end - - - - - + <table class="table" style="position:relative"> + <thead><tr> + <th>$r.translate("fieldset.legend.question")</th> + <th width="15%">$r.translate("questionform_actions")</th> + </tr></thead> + <tbody><tr> + <td>$r.formatLatexFormulas($question.getQuestion().renderAsHtml($mediaBaseURL))</td> + <td align="center"> + <a title="$r.translateInAttribute("mat.edit.question")" href="$r.commandURIbg('editq')" $r.bgTarget() onclick="return o2cl()"><img alt="$r.translateInAttribute("mat.edit.question")" src="$r.staticLink("images/qti/page_edit.png")"></a> + </td> + </tr></tbody> + </table> +</fieldset> +<fieldset class="o_form form-horizontal" role="form"> + <legend>$r.translate("fieldset.legend.answers") + #if ($isSurveyMode == "true") + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-surv-2.html","help.hover.qti-answer-2") + #else + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-test-2.html","help.hover.qti-answer-2") + #end + </legend> - <form action="$r.formURIbg("smc")" id="ofo_tab_mcitem" $r.bgTarget() method="post"> + <form action="$r.formURIbg("smc")" id="ofo_tab_mcitem" $r.bgTarget() method="post"> #if ($question.getResponses().size() > 0) <table class="table table-bordered" style="position:relative"> - <thead> - <tr> + <thead><tr> <th width="5">Pos</th> <th>$r.translate("fieldset.legend.answers")</th> #if($isSurveyMode.equals("false") && !$isRestrictedEdit) @@ -61,9 +45,7 @@ <th width="15%">$r.translate("questionform_actions")</th> </tr> </thead> - <tbody> - <tr> - </tr> + <tbody> #foreach($content in $question.getResponses()) #if ($velocityCount % 2 == 0) #set ($rowclass="") @@ -79,9 +61,7 @@ <a href="$r.commandURI("down", "posid", "$count")" onclick="return o2cl()" onkeypress="return o2cl()" title="$r.translateInAttribute("mat.move_down")"><img src="$r.staticLink("images/qti/move_down.png")" alt="$r.translateInAttribute("mat.move_down")" border="0"></a> #end </td> - <td> - $r.formatLatexFormulas($content.getContent().renderAsHtml($mediaBaseURL)) - </td> + <td>$r.formatLatexFormulas($content.getContent().renderAsHtml($mediaBaseURL))</td> #if($isSurveyMode.equals("false") && !$isRestrictedEdit) #if(!$question.isSingleCorrect()) @@ -102,7 +82,6 @@ </td> #end #end - <td valign="middle" align="center"> <a href="$r.commandURI("editr", "posid", "$count")" onclick="return o2cl()" onkeypress="return o2cl()" title="$r.translateInAttribute("mat.edit.response")"> <img src="$r.staticLink("images/qti/page_edit.png")" alt="$r.translateInAttribute("mat.edit.response")" border="0"></a> @@ -119,17 +98,14 @@ #end #if(!$isRestrictedEdit) - <a href="$r.commandURI("addchoice")" onclick="return o2cl()" onkeypress="return o2cl()" class="b_button"><span>$r.translate("add_answer")</span></a> + <a href="$r.commandURI("addchoice")" onclick="return o2cl()" onkeypress="return o2cl()" class="btn btn-default"><span>$r.translate("add_answer")</span></a> #end - <br /> - <br /> #if($isSurveyMode.equals("false") && !$isRestrictedEdit) - <table style="position:relative"> - <tr> - <td>$r.translate("valuation_method")</td> - <td> - <select id="valmethod" name="valuation_method" size="1" onchange="if(this.form.valmethod.options.selectedIndex==0){shadeFormElement('single');}else{unShadeFormElement('single');}return setFormDirty('ofo_tab_mcitem')" onclick="return setFormDirty('ofo_tab_mcitem')"> + <br /><br /> + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("valuation_method")</label> + <div class="col-sm-9"><select id="valmethod" name="valuation_method" class="form-control" onchange="if(this.form.valmethod.options.selectedIndex==0){shadeFormElement('single');}else{unShadeFormElement('single');}return setFormDirty('ofo_tab_mcitem')" onclick="return setFormDirty('ofo_tab_mcitem')"> <option value="multi" #if(!$question.isSingleCorrect()) selected @@ -144,34 +120,28 @@ #set ($css = "") #end >$r.translate("valuation_method_single")</option> - </select> - </td> - </tr> - <tr> - <td>$r.translate("single_score") <i>$r.translate("valuation_method_single")</i></td> - <td> - <input id="single" type="text" name="single_score" value="$!question.getSingleCorrectScore()" size="4" class="$css" $readonly onchange="return setFormDirty('ofo_tab_mcitem')" onclick="return setFormDirty('ofo_tab_mcitem')"/> - </td> - </tr> - - <tr> - <td>$r.translate("min_value")</td> - <td> - <input type="text" name="min_value" value="$!question.getMinValue()" size="4" onchange="return setFormDirty('ofo_tab_mcitem')" onclick="return setFormDirty('ofo_tab_mcitem')"/> - </td> - </tr> - <tr> - <td>$r.translate("max_value")</td> - <td> - <input type="text" name="max_value" value="$!question.getMaxValue()" size="4" onchange="return setFormDirty('ofo_tab_mcitem')" onclick="return setFormDirty('ofo_tab_mcitem')"/> - </td> - </tr> - </table> + </select></div> + </div> + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("single_score") <i>$r.translate("valuation_method_single")</i></label> + <div class="col-sm-9"> + <input id="single" type="text" name="single_score" value="$!question.getSingleCorrectScore()" size="4" class="form-control $css" $readonly onchange="return setFormDirty('ofo_tab_mcitem')" onclick="return setFormDirty('ofo_tab_mcitem')"/> + </div> + </div> + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("min_value")</label> + <div class="col-sm-9"> + <input type="text" name="min_value" value="$!question.getMinValue()" size="4" class="form-control" onchange="return setFormDirty('ofo_tab_mcitem')" onclick="return setFormDirty('ofo_tab_mcitem')"/> + </div> + </div> + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("max_value")</label> + <div class="col-sm-9"> + <input type="text" name="max_value" value="$!question.getMaxValue()" size="4" class="form-control" onchange="return setFormDirty('ofo_tab_mcitem')" onclick="return setFormDirty('ofo_tab_mcitem')"/> + </div> + </div> + <div class="col-sm-offset-3 col-sm-9 "><div class="btn-group"> + <input type="submit" value="$r.translateInAttribute("submit")" class="btn btn-primary" name="olat_fosm" /> + </div></div> #end - -#if($isSurveyMode.equals("false") && !$isRestrictedEdit) -<br /> -<div class="btn-group"><input type="submit" value="$r.translateInAttribute("submit")" class="btn btn-primary" name="olat_fosm" /></div> -#end - </form> -</fieldset> +</form></fieldset> \ No newline at end of file diff --git a/src/main/java/org/olat/ims/qti/editor/_content/tab_scItem.html b/src/main/java/org/olat/ims/qti/editor/_content/tab_scItem.html index b8aa239dc0586bbad65790bfcad8c2a27d70f68f..99fc3947608809ea634e4ae8c6fc4d101f624962 100644 --- a/src/main/java/org/olat/ims/qti/editor/_content/tab_scItem.html +++ b/src/main/java/org/olat/ims/qti/editor/_content/tab_scItem.html @@ -1,58 +1,45 @@ <fieldset> - <legend>$r.translate("fieldset.legend.question")</legend> - - #if ($isSurveyMode == "true") - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-quest-surv-1.html","help.hover.qti-quest-1") - #else - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-quest-test-1.html","help.hover.qti-quest-1") - #end - - - <table class="b_table b_grid_row b_full"> - <thead> - <tr> - <th>$r.translate("fieldset.legend.question")</th> - <th width="15%">$r.translate("questionform_actions")</th> - </tr> - </thead> - <tbody> - <tr class="b_table_odd"> - <td> - $r.formatLatexFormulas($question.getQuestion().renderAsHtml($mediaBaseURL)) - </td> - <td align="center"> - <a title="$r.translateInAttribute("mat.edit.question")" href="$r.commandURIbg('editq')" $r.bgTarget() onclick="return o2cl()"><img alt="$r.translateInAttribute("mat.edit.question")" src="$r.staticLink("images/qti/page_edit.png")"></a> - </td> - </tr> - </tbody> - </table> - - </fieldset> - - <fieldset> - <legend>$r.translate("fieldset.legend.answers")</legend> - - #if ($isSurveyMode == "true") - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-surv-1.html","help.hover.qti-answer-1") - #else - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-test-1.html","help.hover.qti-answer-1") - #end - + <legend>$r.translate("fieldset.legend.question") + #if ($isSurveyMode == "true") + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-quest-surv-1.html","help.hover.qti-quest-1") + #else + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-quest-test-1.html","help.hover.qti-quest-1") + #end + </legend> + <table class="table"> + <thead><tr> + <th>$r.translate("fieldset.legend.question")</th> + <th width="15%">$r.translate("questionform_actions")</th> + </tr></thead> + <tbody><tr> + <td>$r.formatLatexFormulas($question.getQuestion().renderAsHtml($mediaBaseURL))</td> + <td align="center"> + <a title="$r.translateInAttribute("mat.edit.question")" href="$r.commandURIbg('editq')" $r.bgTarget() onclick="return o2cl()"><img alt="$r.translateInAttribute("mat.edit.question")" src="$r.staticLink("images/qti/page_edit.png")"></a> + </td> + </tr></tbody> + </table> +</fieldset> +<fieldset class="o_form form-horizontal" role="form"> + <legend>$r.translate("fieldset.legend.answers") + #if ($isSurveyMode == "true") + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-surv-1.html","help.hover.qti-answer-1") + #else + $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-answer-test-1.html","help.hover.qti-answer-1") + #end + </legend> #if ($question.getResponses().size() > 0) - <form action="$r.formURIbg("ssc")" id="ofo_tab_scitem" $r.bgTarget() method="post"> + <form action="$r.formURIbg("ssc")" id="ofo_tab_scitem" $r.bgTarget() method="post"> <table class="table table-bordered"> - <thead> - <tr> + <thead><tr> <th width="5">Pos</th> <th>$r.translate("fieldset.legend.answers")</th> #if($isSurveyMode.equals("false") && !$isRestrictedEdit) <th width="15%">$r.translate("questionform_correct")</th> #end <th width="15%">$r.translate("questionform_actions")</th> - </tr> - </thead> - <tbody> + </tr></thead> + <tbody> #foreach($content in $question.getResponses()) #if ($velocityCount % 2 == 0) #set ($rowclass="") @@ -60,18 +47,14 @@ #set ($rowclass="b_table_odd") #end #set ($count = ($velocityCount - 1)) - <tr class="$rowclass"> - <td> + <tr><td> #if(!$isRestrictedEdit) <a href="$r.commandURI("up", "posid", "$count")" onclick="return o2cl()" onkeypress="return o2cl()" title="$r.translateInAttribute("mat.move_up")"><img src="$r.staticLink("images/qti/move_up.png")" alt="$r.translateInAttribute("mat.move_up")" border="0"></a> <br> <a href="$r.commandURI("down", "posid", "$count")" onclick="return o2cl()" onkeypress="return o2cl()" title="$r.translateInAttribute("mat.move_down")"><img src="$r.staticLink("images/qti/move_down.png")" alt="$r.translateInAttribute("mat.move_down")" border="0"></a> #end - </td> - <td class="$rowclass"> - $r.formatLatexFormulas($content.getContent().renderAsHtml($mediaBaseURL)) - </td> - + </td><td>$r.formatLatexFormulas($content.getContent().renderAsHtml($mediaBaseURL))</td> + #if($isSurveyMode.equals("false") && !$isRestrictedEdit) <td valign="middle" align="center"> #if($content.isCorrect()) @@ -90,27 +73,29 @@ <a href="$r.commandURI("del", "posid", "$count")" onclick="return o2cl()" onkeypress="return o2cl()" title="$r.translateInAttribute("mat.edit.delete")"> <img src="$r.staticLink("images/qti/delete.png")" alt="$r.translateInAttribute("mat.edit.delete")" border="0"></a> #end - </td> - </tr> + </td></tr> #end - </tbody> + </tbody> </table> #if(!$isRestrictedEdit) - <a href="$r.commandURI("addchoice")" onclick="return o2cl()" onkeypress="return o2cl()" class="b_button"><span>$r.translate("add_answer")</span></a> -#end - <br /> - <br /> + <a href='$r.commandURI("addchoice")' onclick="return o2cl()" onkeypress="return o2cl()" class="btn btn-default">$r.translate("add_answer")</a> +#end #if($isSurveyMode.equals("false") && !$isRestrictedEdit) - $r.translate("score") - <input type="text" name="single_score" value="$!question.getSingleCorrectScore()" size="4" onchange="return setFormDirty('ofo_tab_scitem')" onclick="return setFormDirty('ofo_tab_scitem')"/> + <br /><br /> + <div class="form-group"> + <label class="control-label col-sm-3">$r.translate("score")</label> + <div class="col-sm-9"> + <input type="text" class="form-control" name="single_score" value="$!question.getSingleCorrectScore()" size="4" onchange="return setFormDirty('ofo_tab_scitem')" onclick="return setFormDirty('ofo_tab_scitem')"/> + </div> + </div> #end #if($isSurveyMode.equals("false")) - <br /> - <div class="btn-group"><input type="submit" value="$r.translateInAttribute("submit")" class="btn btn-primary" name="olat_fosm" /></div> + <div class="col-sm-offset-3 col-sm-9 "><div class="btn-group"> + <input type="submit" value="$r.translateInAttribute("submit")" class="btn btn-primary" name="olat_fosm" /> + </div></div> #end </form> #end - </fieldset> diff --git a/src/main/java/org/olat/ims/qti/editor/_content/tab_section.html b/src/main/java/org/olat/ims/qti/editor/_content/tab_section.html deleted file mode 100644 index c1f67db21644e17d6d8aaa53497c3c3ade17104b..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/ims/qti/editor/_content/tab_section.html +++ /dev/null @@ -1,109 +0,0 @@ -<fieldset> - <legend>$r.translate("fieldset.legend.sectionsettings")</legend> - - #if($isSurveyMode.equals("false")) - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-meta-test-sect.html","help.hover.section-assess") - #else - $r.contextHelpWithWrapper("org.olat.ims.qti.editor","qed-meta-surv-sect.html","help.hover.section-survey") - #end - - - -<form action="$r.formURIbg("ssec")" id="ofo_tab_section" $r.bgTarget() method="post"> -<table border="0" width="100%"> -<tr><td valign="top"> - <table border="0" width="100%"> - - <tr> - <td>$r.translate("form.metadata.title")</td> - <td><input type="text" size="30" name="title" value="$r.escapeHtml($!section.title)" onchange="return setFormDirty('ofo_tab_section')" onclick="return setFormDirty('ofo_tab_section')" /></td> - </tr> - - <tr> - <td valign="top">$r.translate("form.metadata.objectives")</td> - <td> - <textarea name="objectives" cols="35" rows="8" onchange="return setFormDirty('ofo_tab_section')" onclick="return setFormDirty('ofo_tab_section')" >$!section.objectives</textarea> - <br> - </td> - </tr> -#if($isSurveyMode.equals("false") && !$isRestrictedEdit) - <tr> - #set ($yeschecked = "") - #set ($nochecked = "") - #set ($readonly = "") - #if($duration) - #set ($yeschecked = 'checked="checked"') - #set ($minval = $duration.getMin()) - #set ($secval = $duration.getSec()) - #set ($css = "") - #else - #set ($nochecked = 'checked="checked"') - #set ($minval = "0") - #set ($secval = "0") - #set ($readonly = 'readonly="readonly"') - #set ($css = "b_disabled") - #end - <td>$r.translate("form.section.durationswitch")</td> - <td nowrap="nowrap"> - <input type="radio" class="b_radio" name="duration" value="Yes" $yeschecked onchange="unShadeFormElement('sec');unShadeFormElement('min');return setFormDirty('ofo_tab_section')" onclick="return setFormDirty('ofo_tab_section')"/>$r.translate("yes") - - <input type="radio" class="b_radio" name="duration" value="No" $nochecked onchange="shadeFormElement('sec');shadeFormElement('min');return setFormDirty('ofo_tab_section')" onclick="return setFormDirty('ofo_tab_section')"/>$r.translate("no") - - <input id="min" type="text" name="duration_min" value="$minval" size="3" onchange="return setFormDirty('ofo_tab_section')" $!readonly class="$css"/>: - <input id="sec" type="text" name="duration_sec" value="$secval" size="3" maxlength="2" onchange="return setFormDirty('ofo_tab_section')" $!readonly class="$css"/> - <i>($r.translate("form.metadata.minutes"):$r.translate("form.metadata.seconds"))</i> - </td> - </tr> -#end - -#if(!$isRestrictedEdit) - <tr> - <td>$r.translate("form.section.selection_pre")</td> - <td> - <select id="selection_number" name="selection_number" onchange="if(this.form.selection_number.options.selectedIndex==0){unShadeFormElement('order_type');}else{shadeFormElement('order_type');this.form.order_type.options.selectedIndex=0}return setFormDirty('ofo_tab_section')" onclick="return setFormDirty('ofo_tab_section')"> - <option value="0" - #if ($selection_number == "0") - selected="selected" - #set ($readonly = "") - #set ($css = "") - #else - #set ($readonly = 'readonly="readonly"') - #set ($css = "b_disabled") - #end - >$r.translate("form.section.selection_all")</option> - #foreach($item in $section.items) - <option value="$velocityCount" - #if ($selection_number == "$velocityCount") - selected="selected" - #end - >$velocityCount</option> - #end - </select> - </td> - </tr> - - <tr> - <td>$r.translate("form.section.order_type")</td> - <td> - <select id="order_type" name="order_type" onchange="return setFormDirty('ofo_tab_section')" onclick="return setFormDirty('ofo_tab_section')" $readonly class="$css"> - <option value="Random" - #if ($order_type == "Random") - selected="selected" - #end - >$r.translate("form.section.order_type.random")</option> - <option value="Sequential" - #if ($order_type == "Sequential") - selected="selected" - #end - >$r.translate("form.section.order_type.sequential")</option> - </select> - </tr> -#end - - </table> -</td></tr> -</table> -<br> -<div class="btn-group"><input type="submit" value="$r.translateInAttribute("submit")" class="btn btn-primary" name="olat_fosm"/></div> -</form> -</fieldset> diff --git a/src/main/java/org/olat/ims/qti/editor/tree/AssessmentNode.java b/src/main/java/org/olat/ims/qti/editor/tree/AssessmentNode.java index 4b1e750952738826ac55145ef67e7e0ebd7a365b..8de263c4fd724583d27bde733eac380835e86f8f 100644 --- a/src/main/java/org/olat/ims/qti/editor/tree/AssessmentNode.java +++ b/src/main/java/org/olat/ims/qti/editor/tree/AssessmentNode.java @@ -140,7 +140,7 @@ public class AssessmentNode extends GenericQtiNode { public Memento createMemento() { // so far only TITLE and OBJECTIVES are stored in the memento QtiNodeMemento qnm = new QtiNodeMemento(); - Map qtiState = new HashMap(); + Map<String,Object> qtiState = new HashMap<>(); qtiState.put("ID", assmnt.getIdent()); qtiState.put("TITLE", assmnt.getTitle()); qtiState.put("OBJECTIVES", assmnt.getObjectives()); @@ -156,7 +156,7 @@ public class AssessmentNode extends GenericQtiNode { String retVal = null; if (mem instanceof QtiNodeMemento) { QtiNodeMemento qnm = (QtiNodeMemento) mem; - Map qtiState = qnm.getQtiState(); + Map<String,Object> qtiState = qnm.getQtiState(); String oldTitle = (String) qtiState.get("TITLE"); String newTitle = assmnt.getTitle(); String titleChange = null; diff --git a/src/main/java/org/olat/ims/qti/editor/tree/ItemNode.java b/src/main/java/org/olat/ims/qti/editor/tree/ItemNode.java index 0e6565b7bfee8a0e01a4bae02612f23cbd082fae..c9fb561108da0de0eca9940c659171505eb3ca6d 100644 --- a/src/main/java/org/olat/ims/qti/editor/tree/ItemNode.java +++ b/src/main/java/org/olat/ims/qti/editor/tree/ItemNode.java @@ -179,7 +179,7 @@ public class ItemNode extends GenericQtiNode { // Item metadata QtiNodeMemento qnm = new QtiNodeMemento(); - Map qtiState = new HashMap(); + Map<String,Object> qtiState = new HashMap<>(); qtiState.put("ID", item.getIdent()); qtiState.put("TITLE", item.getTitle()); qtiState.put("OBJECTIVES", item.getObjectives()); @@ -253,7 +253,7 @@ public class ItemNode extends GenericQtiNode { String retVal = null; if (mem instanceof QtiNodeMemento) { QtiNodeMemento qnm = (QtiNodeMemento) mem; - Map qtiState = qnm.getQtiState(); + Map<String,Object> qtiState = qnm.getQtiState(); // String oldTitle = (String) qtiState.get("TITLE"); String newTitle = item.getTitle(); diff --git a/src/main/java/org/olat/ims/qti/editor/tree/QtiNodeMemento.java b/src/main/java/org/olat/ims/qti/editor/tree/QtiNodeMemento.java index 429d3c17512f7b034294a1e5cf3175f29aaad559..67f5935f3c93054e3a59ec9fd3754b77e53945c5 100644 --- a/src/main/java/org/olat/ims/qti/editor/tree/QtiNodeMemento.java +++ b/src/main/java/org/olat/ims/qti/editor/tree/QtiNodeMemento.java @@ -35,26 +35,20 @@ import org.olat.core.util.memento.DefaultMemento; * @author patrick */ public class QtiNodeMemento extends DefaultMemento { - /** - * - */ - public QtiNodeMemento() { - super(); - } /** * * @param qtiData */ - protected void setQtiState(Map qtiData){ + protected void setQtiState(Map<String,Object> qtiData){ super.setState(qtiData); } /** * * @return */ - protected Map getQtiState(){ - return (Map)super.getState(); + protected Map<String,Object> getQtiState(){ + return (Map<String,Object>)super.getState(); } } diff --git a/src/main/java/org/olat/ims/qti/editor/tree/SectionNode.java b/src/main/java/org/olat/ims/qti/editor/tree/SectionNode.java index fb27d49518386e922105a73c9431dcb858d8e309..af1ff2aa210aa1f0ae166d95273ffb831d4734d7 100644 --- a/src/main/java/org/olat/ims/qti/editor/tree/SectionNode.java +++ b/src/main/java/org/olat/ims/qti/editor/tree/SectionNode.java @@ -138,7 +138,7 @@ public class SectionNode extends GenericQtiNode { public Memento createMemento() { //so far only TITLE and OBJECTIVES are stored in the memento QtiNodeMemento qnm = new QtiNodeMemento(); - Map qtiState = new HashMap(); + Map<String,Object> qtiState = new HashMap<>(); qtiState.put("ID",section.getIdent()); qtiState.put("TITLE",section.getTitle()); qtiState.put("OBJECTIVES",section.getObjectives()); @@ -155,7 +155,7 @@ public class SectionNode extends GenericQtiNode { String retVal = null; if(mem instanceof QtiNodeMemento){ QtiNodeMemento qnm = (QtiNodeMemento)mem; - Map qtiState = qnm.getQtiState(); + Map<String,Object> qtiState = qnm.getQtiState(); String oldTitle = (String)qtiState.get("TITLE"); String newTitle = section.getTitle(); String titleChange = null; diff --git a/src/main/java/org/olat/modules/iq/IQComponentRenderer.java b/src/main/java/org/olat/modules/iq/IQComponentRenderer.java index 1bafd35410925bbca45b19e914190d7ed131bf9e..5bb9579b8a7c96fd48d932ecf83910b5443e7a88 100644 --- a/src/main/java/org/olat/modules/iq/IQComponentRenderer.java +++ b/src/main/java/org/olat/modules/iq/IQComponentRenderer.java @@ -219,8 +219,8 @@ public class IQComponentRenderer implements ComponentRenderer { } } - sb.append("<div class=\"b_subcolumns\">"); - sb.append("<div class='col-md-4'>"); + sb.append("<div class=\"row\">"); + sb.append("<div class='col-sm-offset-1 col-sm-3'>"); sb.append("<input class=\"btn btn-primary\" type=\"submit\" name=\"olat_fosm\" value=\""); if (ai.isSectionPage()) @@ -229,9 +229,8 @@ public class IQComponentRenderer implements ComponentRenderer { sb.append(StringEscapeUtils.escapeHtml(translator.translate("submitSingleAnswer"))); sb.append("\""); if (!displayForm) sb.append(" style=\"display: none;\""); - sb.append(" />"); - - sb.append("</div><div class='col-md-8'>"); + sb.append(" />") + .append("</div><div class='col-md-8'>"); if (memo && memoId != null) { sb.append("<div class=\"o_qti_item_note_box_title\">"); @@ -243,19 +242,16 @@ public class IQComponentRenderer implements ComponentRenderer { if (isDefaultMemo) { sb.append(" onfocus=\"clrMemo(this);\""); } - sb.append(">"); - sb.append(memoTx); - sb.append("</textarea>"); - sb.append("</div>"); - sb.append("</div>"); + sb.append(">") + .append(memoTx) + .append("</textarea>") + .append("</div>") + .append("</div>"); } - sb.append("</div>"); - - sb.append("</form>"); - - - sb.append("</div>"); + sb.append("</div>")//end memo + .append("</div>")//end row + .append("</form>"); } if (status == QTIConstants.ASSESSMENT_FINISHED) { diff --git a/src/main/java/org/olat/modules/iq/_content/qti.html b/src/main/java/org/olat/modules/iq/_content/qti.html index ebe51e38b94a3852921803f4f2ba6da8a6d05cb0..5b2245866c3e1e49554ce4ce35da50734293ace2 100644 --- a/src/main/java/org/olat/modules/iq/_content/qti.html +++ b/src/main/java/org/olat/modules/iq/_content/qti.html @@ -1,8 +1,6 @@ <script type="text/javascript"> -/* -* little hack to allow next clicks after clicking cancel on the js confirm dialog. -* Should be properly done by olat modal dialog and get rid of js dialogs: gs -*/ +## little hack to allow next clicks after clicking cancel on the js confirm dialog. +## Should be properly done by olat modal dialog and get rid of js dialogs: gs function confirmSubmit() { if (!confirm("$r.translate('confirmSubmit')")){ o_allowNextClick(); @@ -29,9 +27,9 @@ function confirmSuspend() { } </script> -<div id="o_qti_run" class="#if($qtistatus.isSurvey())o_qti_survey #else o_qti_test #end"> +<div id="o_qti_run" class="#if($qtistatus.isSurvey())o_qti_survey #else o_qti_test #end clearfix"> <div id="o_qti_run_title"> - <strong>$qtistatus.getTitle()</strong> + <div class="pull-right"> #if ($qtistatus.isOpen()) #if ($qtistatus.isSurvey()) <a class="btn btn-default #if($allQuestionsAnswered) o_button_dirty #end" href="$r.commandURI("sas")" onclick="{if (o2cl()) return confirmSubmit(); else return false;}"><span>$r.translate("submitSurvey")</span></a> @@ -53,12 +51,14 @@ function confirmSuspend() { #elseif(!$qtistatus.isPreview()) $r.render("close") #end + </div> + <h3>$qtistatus.getTitle()</h3> </div> <div id="o_qti_run_score"> #if (!$qtistatus.isSurvey() && $displayScoreProgress && $qtistatus.score) - <div id="o_qti_scoreinfo"> - <div id="o_qti_run_scoreinfo"> + <div id="o_qti_scoreinfo" class="panel panel-default"><div class="panel-body"> + <div id="o_qti_run_scoreinfo" class="col-sm-3"> #if ($qtistatus.hasMaxScore()) #if ($qtistatus.maxScore == "-1.0") $r.translate("actualPoints"): $qtistatus.score / $r.translate("noMaxScore") @@ -69,130 +69,97 @@ function confirmSuspend() { $r.translate("actualPoints"): $qtistatus.score #end </div> - <div id="o_qti_run_scoreprogress"> - $r.render("qtiscoreprogress", "nl") - </div> - </div> + <div id="o_qti_run_scoreprogress" class="col-sm-3">$r.render("qtiscoreprogress", "nl")</div> + </div></div> #end #if ($displayQuestionProgress) - <div id="o_qti_questioninfo"> - <div id="o_qti_run_questioninfo"> + <div id="o_qti_questioninfo" class="row"> + <div id="o_qti_run_questioninfo" class="col-sm-3"> $qtistatus.getQuestionProgressLabel() </div> - <div id="o_qti_run_questionprogress" > - $r.render("qtiquestionprogress", "nl") - </div> + <div id="o_qti_run_questionprogress" class="col-sm-3">$r.render("qtiquestionprogress", "nl")</div> </div> #end </div> - - <div id="o_qti_run_status"> + <div id="o_qti_run_status" class="clearfix"> #if ($qtistatus.hasAssessTimeLimit()) - <div class="b_with_small_icon_left o_qti_timelimit_icon">$r.translate("timelimit.assessment"): $qtistatus.getAssessTimeLimit()</div> + <i class="o_icon o_icon_timelimit"> </i>$r.translate("timelimit.assessment"): $qtistatus.getAssessTimeLimit() #end </div> - <div id="o_qti_run_main" class="b_subcolumns clearfix"> + <div id="o_qti_run_main" class="clearfix"> #if ($displayMenu) - <div id="o_qti_run_menu" class="col-md-4"> - <div class="b_subcl"> - <div id="o_qti_run_menu_inner" class="b_floatbox"> - $r.render("qticomp", "menu") - </div> + <div id="o_qti_run_menu" class="col-md-4"> + <div id="o_qti_run_menu_inner" class="b_floatbox"> + $r.render("qticomp", "menu") </div> </div> #end - <div id="o_qti_run_content" class="#if($displayMenu) col-md-8 #end"> - <div class="b_subcr"> #if ($qtistatus.hasError()) - <div class="b_warning">$qtistatus.error</div> + <div class="o_warning">$qtistatus.error</div> #end #if ($qtistatus.hasMessage()) - <div class="b_important">$qtistatus.message</div> + <div class="o_important">$qtistatus.message</div> #end - </div> - #if ($qtistatus.isOpen()) - <div class="b_subcr"> + #if ($qtistatus.isOpen()) <div id="o_qti_run_content_inner" class="b_floatscrollbox"> #if ($qtistatus.hasItemTimeLimit() && !$qtistatus.hasItemAttemptsLimit()) #if ($qtistatus.hasItemTimeLimitExeeded()) - <div class="b_warning"> - <div class="b_with_small_icon_left o_qti_timelimit_icon"> - $r.translate("timelimit.item"): $qtistatus.getItemTimeLimit() - </div> + <div class="o_warning"><i class="o_icon o_icon_timelimit"> </i> + $r.translate("timelimit.item"): $qtistatus.getItemTimeLimit() </div> #else - <div id="o_qti_info_timelimit" class="b_note"> - <div class="b_with_small_icon_left o_qti_timelimit_icon"> - $r.translate("timelimit.item"): $qtistatus.getItemTimeLimit() - </div> + <div id="o_qti_info_timelimit" class="o_note"><i class="o_icon o_icon_timelimit"> </i> + $r.translate("timelimit.item"): $qtistatus.getItemTimeLimit() </div> #end #end #if (!$qtistatus.hasItemTimeLimit() && $qtistatus.hasItemAttemptsLimit()) #if($qtistatus.hasAttemptsExeeded()) - <div class="b_warning"> - <div class="b_with_small_icon_left o_qti_attemptslimit_icon"> - $qtistatus.getItemAttemptsLeft() - </div> + <div class="o_warning"><i class="o_icon o_icon_attempt_limit"> </i> + $qtistatus.getItemAttemptsLeft() </div> #else - <div class="b_note"> - <div class="b_with_small_icon_left o_qti_attemptslimit_icon"> - $qtistatus.getItemAttemptsLeft() - </div> + <div class="o_note"><i class="o_icon o_icon_attempt_limit"> </i> + $qtistatus.getItemAttemptsLeft() </div> #end #end #if ($qtistatus.hasItemTimeLimit() && $qtistatus.hasItemAttemptsLimit()) #if($qtistatus.hasAttemptsExeeded()) - <div class="b_warning"> - <div class="b_with_small_icon_left o_qti_attemptslimit_icon">$qtistatus.getItemAttemptsLeft()</div> + <div class="o_warning"><i class="o_icon_ o_icon_attempt_limit"> </i> + $qtistatus.getItemAttemptsLeft() </div> #else - #if ($qtistatus.hasItemTimeLimitExeeded()) - <div class="b_warning"> - <div class="b_with_small_icon_left o_qti_timelimit_icon"> - $r.translate("timelimit.item"): $qtistatus.getItemTimeLimit() - </div> + <div class="o_warning"><i class="o_icon o_icon_timelimit"> </i> + $r.translate("timelimit.item"): $qtistatus.getItemTimeLimit() </div> #else - <div id="o_qti_info_timelimit" class="b_note"> - <div class="b_with_small_icon_left o_qti_timelimit_icon"> - $r.translate("timelimit.item"): $qtistatus.getItemTimeLimit() - </div> + <div id="o_qti_info_timelimit" class="o_note"><i class="o_icon o_icon_timelimit"> </i> + $r.translate("timelimit.item"): $qtistatus.getItemTimeLimit() </div> - <div class="b_note"> - <div class="b_with_small_icon_left o_qti_attemptslimit_icon"> - $qtistatus.getItemAttemptsLeft() - </div> + <div class="o_note"><i class="o_icon o_icon_attempt_limit"> </i> + $qtistatus.getItemAttemptsLeft() </div> #end #end - #end - - - $r.render("qticomp", "qtiform") - - - </div> + + $r.render("qticomp", "qtiform") </div> - #elseif($qtistatus.isClosed()) - <div class="b_subcr"> + #elseif($qtistatus.isClosed()) <div id="o_qti_run_content_inner" class="b_floatscrollbox"> - $r.render("qticomp", "qtiform") + $r.render("qticomp", "qtiform") </div> - </div> #end </div> </div> diff --git a/src/main/java/org/olat/modules/iq/_content/result.html b/src/main/java/org/olat/modules/iq/_content/result.html index 5c227a2406dcce3ca64bff8345fb5acf82d86a60..6a305435d0a4f82db5b43f17914c7d23776fcd91 100644 --- a/src/main/java/org/olat/modules/iq/_content/result.html +++ b/src/main/java/org/olat/modules/iq/_content/result.html @@ -1,7 +1,7 @@ -<div id="o_qti_run" class="#if($qtistatus.isSurvey())o_qti_survey #else o_qti_test #end"> +<div id="o_qti_run" class="#if($qtistatus.isSurvey())o_qti_survey #else o_qti_test #end clearfix"> <div id="o_qti_run_title"> - <strong>$qtistatus.getTitle()</strong> + <h3>$qtistatus.getTitle()</h3> #if(!$qtistatus.isPreview()) $r.render("close") #end @@ -10,65 +10,57 @@ #if (!$qtistatus.isSurvey() && $displayScoreProgress) <div id="o_qti_run_score"> #if ($qtistatus.score) - <div id="o_qti_run_scoreinfo"> - #if ($qtistatus.hasMaxScore()) - #if ($qtistatus.maxScore == "-1.0") - $r.translate("actualPoints"): $qtistatus.score / $r.translate("noMaxScore") - #else - $r.translate("actualPoints"): $qtistatus.score / $qtistatus.maxScore - #end - #else - $r.translate("actualPoints"): $qtistatus.score - #end - </div> - <div id="o_qti_run_scoreprogress"> - $r.render("qtiscoreprogress", "nl") - </div> + <div class="panel panel-default"><div class="panel-body"> + <div id="o_qti_run_scoreinfo" class="col-sm-3"> + #if ($qtistatus.hasMaxScore()) + #if ($qtistatus.maxScore == "-1.0") + $r.translate("actualPoints"): $qtistatus.score / $r.translate("noMaxScore") + #else + $r.translate("actualPoints"): $qtistatus.score / $qtistatus.maxScore + #end + #else + $r.translate("actualPoints"): $qtistatus.score + #end + </div> + <div id="o_qti_run_scoreprogress" class="col-sm-3">$r.render("qtiscoreprogress", "nl")</div> + </div></div> #end </div> #end #if ($qtistatus.hasError()) - <div class="b_warning">$qtistatus.error</div> + <div class="o_warning">$qtistatus.error</div> #end #if ($qtistatus.hasMessage()) - <div class="b_important">$qtistatus.message</div> + <div class="o_important">$qtistatus.message</div> #end - <div id="o_qti_run_main" class="b_subcolumns"> #if ($displayMenu) - <div id="o_qti_run_menu" class="b_c33l"> - <div class="b_subcl"> - <div id="o_qti_run_menu_inner" class="b_floatbox"> - $r.render("qticomp", "menu") - </div> + <div id="o_qti_run_menu" class="col-md-4"> + <div id="o_qti_run_menu_inner" class="b_floatbox"> + $r.render("qticomp", "menu") </div> </div> #end - <div id="o_qti_run_content" class="b_c66r"> - <div class="b_subcr"> - <div id="o_qti_run_content_inner" class="b_floatscrollbox"> - #if ($displayreporting) - <h3>$r.translate("DetailedResults")</h3> - <div id="o_qti_results"> - $!resreporting - </div> - #else - <h3>$!visibilityPeriod</h3> - #end - </div> + <div id="o_qti_run_content" class="col-md-8"> + <div id="o_qti_run_content_inner" class="b_floatscrollbox"> + #if ($displayreporting) + <h3>$r.translate("DetailedResults")</h3> + <div id="o_qti_results"> + $!resreporting + </div> + #else + <h3>$!visibilityPeriod</h3> + #end </div> </div> </div> - </div> - <script type="text/javascript"> -/* <![CDATA[ */ - +/* <![CDATA[ */ function mark (it) { // do nothing } /* ]]> */ -</script> +</script> \ No newline at end of file diff --git a/src/main/java/org/olat/repository/ui/author/ACRenderer.java b/src/main/java/org/olat/repository/ui/author/ACRenderer.java index bc2e65c4c036f3917a64004efb383ad21fc9224c..a5074a4a868387ec85c53d2c598d3967e92f7673 100644 --- a/src/main/java/org/olat/repository/ui/author/ACRenderer.java +++ b/src/main/java/org/olat/repository/ui/author/ACRenderer.java @@ -62,7 +62,7 @@ public class ACRenderer implements FlexiCellRenderer { for (PriceMethod priceMethod : methods) { String price = priceMethod.getPrice(); String type = priceMethod.getType(); - sb.append("<li title=\"").append(priceMethod.getDisplayName()).append("\"><i class='o_icon ").append(type).append(" o_icon-lg'></i></li>"); + sb.append("<li title=\"").append(priceMethod.getDisplayName()).append("\"><i class='o_icon ").append(type).append(" o_icon-lg'></i>"); if(price != null && !price.isEmpty()) { sb.append(" ").append(price); } diff --git a/src/main/webapp/static/js/functions.js b/src/main/webapp/static/js/functions.js index 45d71b0774fb8638ae77468dd72a741f31427a3f..7c365d19b2cc44cd9c0f7847bb348aaa66aded53 100644 --- a/src/main/webapp/static/js/functions.js +++ b/src/main/webapp/static/js/functions.js @@ -722,7 +722,7 @@ function setFormDirty(formId) { mySubmit = myForm.olat_fosm; } // set dirty css class - if(mySubmit) mySubmit.className ="o_button_dirty"; + if(mySubmit) mySubmit.className ="btn o_button_dirty"; } else if(jQuery(document).ooLog().isDebugEnabled()) { jQuery(document).ooLog('debug',"Error in setFormDirty, myForm was null for formId=" + formId, "functions.js"); } @@ -1077,7 +1077,7 @@ function setFlexiFormDirty(formId){ jQuery('#'+formId).each(function() { var submitId = jQuery(this).data('FlexiSubmit'); if(submitId != null) { - jQuery('#'+submitId).addClass('o_button_dirty'); + jQuery('#'+submitId).addClass('btn o_button_dirty'); o2c=1; } }); diff --git a/src/main/webapp/static/themes/light/_modules.scss b/src/main/webapp/static/themes/light/_modules.scss index 121f2dbcc3c1ae4202d1b126afbc6f139e23281b..9f22463700f8362e0fe3a092ac90a42367fd9806 100644 --- a/src/main/webapp/static/themes/light/_modules.scss +++ b/src/main/webapp/static/themes/light/_modules.scss @@ -41,6 +41,7 @@ @import "modules/repository"; @import "modules/course"; @import "modules/courseeditor"; +@import "modules/qti"; @import "modules/devel"; diff --git a/src/main/webapp/static/themes/light/modules/_bootstrap.scss b/src/main/webapp/static/themes/light/modules/_bootstrap.scss index caafb57c99de7e6862c64c23063ec82afe9cd03c..0f22505cb80b9d48faf19c8135ed6f43e96a4ae0 100644 --- a/src/main/webapp/static/themes/light/modules/_bootstrap.scss +++ b/src/main/webapp/static/themes/light/modules/_bootstrap.scss @@ -69,4 +69,8 @@ body div.popover { body .modal-body.alert { border-radius:0; +} + +body .progress { + margin-bottom:0; } \ 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 e12c7b5c3c443a511258bac0a8431bf5a25f6928..7bae76089c4480956f0cf8a009504f4ec863d1a8 100644 --- a/src/main/webapp/static/themes/light/modules/_icons.scss +++ b/src/main/webapp/static/themes/light/modules/_icons.scss @@ -12,6 +12,7 @@ $fa-css-prefix: "o_icon" !default; .o_icon_actions { @extend .o_icon-gears;} .o_icon_archive_tool{ @extend .o_icon-download;} .o_icon_assessment_tool{ @extend .o_icon-trophy;} +.o_icon_attempt_limit{ @extend .o_icon-refresh; } .o_icon_booking { @extend .o_icon-dollar; } .o_icon_bookmark { @extend .o_icon-bookmark; color: #996633; } .o_icon_bookmark_add { @extend .o_icon-bookmark-o; color: #999999;} @@ -104,6 +105,7 @@ $fa-css-prefix: "o_icon" !default; .o_icon_status_unavailable { @extend .o_icon-times-circle-o; color: #996633; } .o_icon_statistics_tool{ @extend .o_icon-tachometer;} .o_icon_table {@extend .o_icon-table; } +.o_icon_timelimit{ @extend .o_icon-bomb; } .o_icon_to_read { @extend .o_icon-fighter-jet; color:blue;} .o_icon_tool { @extend .o_icon-gear; } .o_icon_top {@extend .o_icon-chevron-up; } diff --git a/src/main/webapp/static/themes/light/modules/_qti.scss b/src/main/webapp/static/themes/light/modules/_qti.scss new file mode 100644 index 0000000000000000000000000000000000000000..64c255a1198372daeb536f6f9ec23768fbbc07b8 --- /dev/null +++ b/src/main/webapp/static/themes/light/modules/_qti.scss @@ -0,0 +1,14 @@ +table.table.o_qti_item_kprim>thead>tr>th,table.table.o_qti_item_kprim>tbody>tr>td, { + border:none; +} + +td.o_qti_item_kprim_input, th.o_qti_item_kprim_input { + text-align:center; +} + +div.o_qti_item_itemfeedback { + @extend .o_info; + background-color: #ffffff; + border-color: #000000; + +} \ No newline at end of file diff --git a/src/main/webapp/static/themes/light/theme.css b/src/main/webapp/static/themes/light/theme.css index 1500c2d5e067601ebbdbb3e4af313193f8e5ed66..72e797a04a0e247c24768d9b77e3f35265ff1ff7 100644 --- a/src/main/webapp/static/themes/light/theme.css +++ b/src/main/webapp/static/themes/light/theme.css @@ -39,16 +39,16 @@ small,.small,.o_comments .o_comment_wrapper h5,.o_comments .o_comment_wrapper .o @media (min-width: 768px){.navbar-left{float:left !important}.navbar-right{float:right !important}}.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){.navbar-form .form-group{margin-bottom:5px}}@media (min-width: 768px){.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}.navbar-form.navbar-right:last-child{margin-right:-15px}} .navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm,.btn-group-sm>.navbar-btn.btn,.btn-group-sm>a.navbar-btn.o_chelp{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs,.btn-group-xs>.navbar-btn.btn,.btn-group-xs>a.navbar-btn.o_chelp{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width: 768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}} .navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width: 767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#090909}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#090909;color:#fff}@media (max-width: 767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>a:focus,.pagination>li>span:hover,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:hover,.pagination>.active>a:focus,.pagination>.active>span,.pagination>.active>span:hover,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label,a.o_chelp .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge,a.o_chelp .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge,.btn-group-xs>a.o_chelp .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron,.o_repo_details .o_lead{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.o_repo_details .o_lead h1,.jumbotron .h1,.o_repo_details .o_lead .h1{color:inherit}.jumbotron p,.o_repo_details .o_lead p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron,.container .o_repo_details .o_lead,.o_repo_details .container .o_lead{border-radius:6px}.jumbotron .container,.o_repo_details .o_lead .container{max-width:100%}@media screen and (min-width: 768px){.jumbotron,.o_repo_details .o_lead{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container .o_repo_details .o_lead,.o_repo_details .container .o_lead{padding-left:60px;padding-right:60px}.jumbotron h1,.o_repo_details .o_lead h1,.jumbotron .h1,.o_repo_details .o_lead .h1{font-size:63px}} -.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,.o_catalog .o_sublevels .media>.o_sublevel,.o_repo_details .o_social .media>.o_rating_wrapper{margin-right:10px}.media>.pull-right,.media>div.o_chelp_wrapper,.o_withEllipsis .media>.o_ellipsis_links,#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,.o_repo_details .o_lead .media>.o_media{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,.modal-footer .o_repo_details .o_start+.btn-block,.o_repo_details .modal-footer .o_start+.btn-block,.modal-footer .o_repo_details .o_book+.btn-block,.o_repo_details .modal-footer .o_book+.btn-block,.modal-footer .o_repo_details .btn-block+.o_start,.o_repo_details .modal-footer .btn-block+.o_start,.modal-footer .o_repo_details .o_start+.o_start,.o_repo_details .modal-footer .o_start+.o_start,.modal-footer .o_repo_details .o_book+.o_start,.o_repo_details .modal-footer .o_book+.o_start,.modal-footer .o_repo_details .btn-block+.o_book,.o_repo_details .modal-footer .btn-block+.o_book,.modal-footer .o_repo_details .o_start+.o_book,.o_repo_details .modal-footer .o_start+.o_book,.modal-footer .o_repo_details .o_book+.o_book,.o_repo_details .modal-footer .o_book+.o_book{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,.o_catalog .o_sublevels:before,.o_repo_details .o_social:before,.clearfix:after,.o_catalog .o_sublevels:after,.o_repo_details .o_social:after{content:" ";display:table}.clearfix:after,.o_catalog .o_sublevels:after,.o_repo_details .o_social:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right,div.o_chelp_wrapper,.o_withEllipsis .o_ellipsis_links,#o_main_wrapper #o_main_container #o_main_right,.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete,.o_repo_details .o_lead .o_media{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,.o_catalog .o_sublevels .o_sublevel,.o_repo_details .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}body div.tooltip-inner{max-width:400px}body div.popover{max-width:450px}body .modal-body.alert{border-radius:0}/*! +.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,.o_catalog .o_sublevels .media>.o_sublevel,.o_repo_details .o_social .media>.o_rating_wrapper{margin-right:10px}.media>.pull-right,.media>div.o_chelp_wrapper,.o_withEllipsis .media>.o_ellipsis_links,#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,.o_repo_details .o_lead .media>.o_media{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,.modal-footer .o_repo_details .o_start+.btn-block,.o_repo_details .modal-footer .o_start+.btn-block,.modal-footer .o_repo_details .o_book+.btn-block,.o_repo_details .modal-footer .o_book+.btn-block,.modal-footer .o_repo_details .btn-block+.o_start,.o_repo_details .modal-footer .btn-block+.o_start,.modal-footer .o_repo_details .o_start+.o_start,.o_repo_details .modal-footer .o_start+.o_start,.modal-footer .o_repo_details .o_book+.o_start,.o_repo_details .modal-footer .o_book+.o_start,.modal-footer .o_repo_details .btn-block+.o_book,.o_repo_details .modal-footer .btn-block+.o_book,.modal-footer .o_repo_details .o_start+.o_book,.o_repo_details .modal-footer .o_start+.o_book,.modal-footer .o_repo_details .o_book+.o_book,.o_repo_details .modal-footer .o_book+.o_book{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,.o_catalog .o_sublevels:before,.o_repo_details .o_social:before,.clearfix:after,.o_catalog .o_sublevels:after,.o_repo_details .o_social:after{content:" ";display:table}.clearfix:after,.o_catalog .o_sublevels:after,.o_repo_details .o_social:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right,div.o_chelp_wrapper,.o_withEllipsis .o_ellipsis_links,#o_main_wrapper #o_main_container #o_main_right,.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete,.o_repo_details .o_lead .o_media{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,.o_catalog .o_sublevels .o_sublevel,.o_repo_details .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}body div.tooltip-inner{max-width:400px}body div.popover{max-width:450px}body .modal-body.alert{border-radius:0}body .progress{margin-bottom:0}/*! * Font Awesome 4.1.0 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.1.0");src:url("../../../font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.1.0") format("embedded-opentype"),url("../../../font-awesome/fonts/fontawesome-webfont.woff?v=4.1.0") format("woff"),url("../../../font-awesome/fonts/fontawesome-webfont.ttf?v=4.1.0") format("truetype"),url("../../../font-awesome/fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.o_icon{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_withEllipsis .o_ellipsis_links,#o_main_wrapper #o_main_container #o_main_right,.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete,.o_repo_details .o_lead .o_media{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,.o_catalog .o_sublevels .o_sublevel,.o_repo_details .o_social .o_rating_wrapper{float:left}.o_icon.pull-left,#o_main_wrapper #o_main_container .o_icon#o_main_left,#o_navbar_imclient .o_icon#o_im_message,#o_navbar_imclient .o_icon#o_im_status,#o_navbar_imclient .o_icon#o_im_summary,.o_comments .o_comment_wrapper .o_icon.o_avatar,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_icon.o_rating_wrapper,.o_catalog .o_sublevels .o_icon.o_sublevel,.o_repo_details .o_social .o_icon.o_rating_wrapper{margin-right:.3em}.o_icon.pull-right,div.o_icon.o_chelp_wrapper,.o_withEllipsis .o_icon.o_ellipsis_links,#o_main_wrapper #o_main_container .o_icon#o_main_right,.o_comments .o_comment_wrapper .o_icon.o_reply,.o_comments .o_comment_wrapper .o_icon.o_delete,.o_repo_details .o_lead .o_icon.o_media{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)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.o_icon-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-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=2);-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=3);-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=0);-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=2);-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,.o_icon_mail:before,.o_co_icon: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{content:"\f005"}.o_icon-star-o:before,.o_icon_rating_off:before{content:"\f006"}.o_icon-user:before,.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:before,.o_icon_close_tab:before,.o_icon_close_tool: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_edit_metadata:before,.o_icon_tool:before,.o_icon-cog:before{content:"\f013"}.o_icon-trash-o:before,.o_icon_delete_item:before{content:"\f014"}.o_icon-home:before{content:"\f015"}.o_icon-file-o:before,.o_filetype_file:before,.o_filetype_ico:before{content:"\f016"}.o_icon-clock-o:before,.o_icon_expenditure:before{content:"\f017"}.o_icon-road:before{content:"\f018"}.o_icon-download:before,.o_icon_archive_tool: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_icon_locked: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,.o_FileResource-PODCAST_icon:before,.o_podcast_icon:before{content:"\f03d"}.o_icon-photo:before,.o_icon-image:before,.o_icon-picture-o:before{content:"\f03e"}.o_icon-pencil:before,.o_icon_notes: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_readonly:before,.o_icon_readwrite:before,.o_icon-pencil-square-o:before,.o_FileResource-TEST_icon:before,.o_iqtest_icon:before,.o_iqself_icon:before{content:"\f044"}.o_icon-share-square-o:before{content:"\f045"}.o_icon-check-square-o:before,.o_cl_icon:before{content:"\f046"}.o_icon-arrows:before,.o_icon_move: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,.o_icon_info:before,.o_infomsg_icon: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,.o_icon_publish: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_new:before,.o_icon_mandatory:before{content:"\f069"}.o_icon-exclamation-circle:before,.o_icon_error: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,.o_icon_warn:before{content:"\f071"}.o_icon-plane:before{content:"\f072"}.o_icon-calendar:before,.o_icon_calendar:before,.o_icon_lifecycle:before,.o_calendar_icon:before,.o_cal_icon: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,.o_icon_top:before{content:"\f077"}.o_icon-chevron-down:before{content:"\f078"}.o_icon-retweet:before,.o_icon_managed:before{content:"\f079"}.o_icon-shopping-cart:before{content:"\f07a"}.o_icon-folder:before,.o_icon_new_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,.o_icon_twitter:before{content:"\f081"}.o_icon-facebook-square:before,.o_icon_facebook:before{content:"\f082"}.o_icon-camera-retro:before{content:"\f083"}.o_icon-key:before,.o_icon_password:before,.o_ac_token_icon:before{content:"\f084"}.o_icon-gears:before,.o_icon_actions:before,.o_icon_settings:before,.o_icon-cogs:before{content:"\f085"}.o_icon-comments:before,.o_icon_comments:before{content:"\f086"}.o_icon-thumbs-o-up:before,.o_ms_icon: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,.o_FileResource-SHAREDFOLDER:before,.o_tu_icon:before,.o_lti_icon:before{content:"\f08e"}.o_icon-sign-in:before,.o_icon_login:before,.o_en_icon:before{content:"\f090"}.o_icon-trophy:before,.o_icon_assessment_tool: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,.o_icon_notification:before,.o_icon_rss:before{content:"\f09e"}.o_icon-hdd-o:before{content:"\f0a0"}.o_icon-bullhorn:before,.o_FileResource-BLOG_icon:before,.o_blog_icon:before{content:"\f0a1"}.o_icon-bell:before{content:"\f0f3"}.o_icon-certificate:before,.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,.o_icon_previous:before{content:"\f0a8"}.o_icon-arrow-circle-right:before,.o_icon_next:before{content:"\f0a9"}.o_icon-arrow-circle-up:before{content:"\f0aa"}.o_icon-arrow-circle-down:before{content:"\f0ab"}.o_icon-globe:before,.o_icon_language:before,.o_FileResource-WIKI_icon:before,.o_wiki_icon:before{content:"\f0ac"}.o_icon-wrench:before{content:"\f0ad"}.o_icon-tasks:before,.o_ta_icon: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,.o_icon_group:before,.o_icon_membersmanagement:before,.o_cmembers_icon:before{content:"\f0c0"}.o_icon-chain:before,.o_icon-link:before,.o_icon_link:before,.o_ll_icon: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_copy:before,.o_icon-files-o:before,.o_dialog_icon: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-navicon:before,.o_icon-reorder:before,.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,.o_icon_wizard: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,.o_icon_google: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,.o_icon_close_togglebox:before,.o_togglebox_wrapper a.o_togglebox_opened i: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,.o_icon_open_togglebox:before,.o_togglebox_wrapper a.o_togglebox_closed i: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-desc:before,.o_icon_sort_desc:before{content:"\f0dd"}.o_icon-sort-up:before,.o_icon-sort-asc:before,.o_icon_sort_asc: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,.o_icon_statistics_tool:before{content:"\f0e4"}.o_icon-comment-o:before,.o_icon_chat:before,.o_icon_comments_none:before,.o_icon_post:before,.o_forum_message_icon:before{content:"\f0e5"}.o_icon-comments-o:before,.o_fo_icon: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_filetype_odf:before,.o_filetype_rtf:before,.o_filetype_readme:before,.o_filetype_README:before,.o_filetype_log:before,.o_filetype_txt:before,.o_filetype_htm:before,.o_filetype_html:before,.o_sp_icon:before,.o_cp_item: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_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,.o_icon_move_up:before{content:"\f102"}.o_icon-angle-double-down:before,.o_icon_move_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,.o_vc_icon:before,.o_vitero_icon:before,.o_openmeetings_icon: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,.o_projectbroker_icon: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,.o_icon_coursefolder:before,.o_filetype_folder:before{content:"\f114"}.o_icon-folder-open-o:before,.o_filetype_folder_open:before,.o_bc_icon:before{content:"\f115"}.o_icon-smile-o:before{content:"\f118"}.o_icon-frown-o:before{content:"\f119"}.o_icon-meh-o:before,.o_FileResource-SURVEY_icon:before,.o_iqsurv_icon: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-mail-reply-all:before,.o_icon-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{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,.o_icon_eportfolio_add:before,.o_EPStructuredMapTemplate_icon:before,.o_ep_icon: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_show_more:before,.o_icon-caret-square-o-down:before{content:"\f150"}.o_icon-toggle-up:before,.o_icon_show_less: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_booking: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,.o_icon_new_document: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_FileResource-IMSCP_icon:before,.o_FileResource-SCORMCP_icon:before,.o_cp_icon:before,.o_scorm_icon:before{content:"\f187"}.o_icon-bug:before,.o_icon_dev: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-space-shuttle:before{content:"\f197"}.o_icon-slack:before{content:"\f198"}.o_icon-envelope-square:before,.o_icon_mail:before{content:"\f199"}.o_icon-wordpress:before{content:"\f19a"}.o_icon-openid:before{content:"\f19b"}.o_icon-institution:before,.o_icon-bank:before,.o_icon-university:before{content:"\f19c"}.o_icon-mortar-board:before,.o_icon-graduation-cap:before{content:"\f19d"}.o_icon-yahoo:before{content:"\f19e"}.o_icon-google:before{content:"\f1a0"}.o_icon-reddit:before{content:"\f1a1"}.o_icon-reddit-square:before{content:"\f1a2"}.o_icon-stumbleupon-circle:before{content:"\f1a3"}.o_icon-stumbleupon:before{content:"\f1a4"}.o_icon-delicious:before,.o_icon_delicious:before{content:"\f1a5"}.o_icon-digg:before,.o_icon_digg:before{content:"\f1a6"}.o_icon-pied-piper-square:before,.o_icon-pied-piper:before{content:"\f1a7"}.o_icon-pied-piper-alt:before{content:"\f1a8"}.o_icon-drupal:before{content:"\f1a9"}.o_icon-joomla:before{content:"\f1aa"}.o_icon-language:before{content:"\f1ab"}.o_icon-fax:before{content:"\f1ac"}.o_icon-building:before{content:"\f1ad"}.o_icon-child:before{content:"\f1ae"}.o_icon-paw:before{content:"\f1b0"}.o_icon-spoon:before{content:"\f1b1"}.o_icon-cube:before,.o_icon_courseeditor:before,.o_CourseModule_icon:before{content:"\f1b2"}.o_icon-cubes:before,.o_st_icon:before{content:"\f1b3"}.o_icon-behance:before{content:"\f1b4"}.o_icon-behance-square:before{content:"\f1b5"}.o_icon-steam:before{content:"\f1b6"}.o_icon-steam-square:before{content:"\f1b7"}.o_icon-recycle:before,.o_icon_recycle:before{content:"\f1b8"}.o_icon-automobile:before,.o_icon-car:before{content:"\f1b9"}.o_icon-cab:before,.o_icon-taxi:before{content:"\f1ba"}.o_icon-tree:before{content:"\f1bb"}.o_icon-spotify:before{content:"\f1bc"}.o_icon-deviantart:before{content:"\f1bd"}.o_icon-soundcloud:before{content:"\f1be"}.o_icon-database:before,.o_icon_coursedb:before{content:"\f1c0"}.o_icon-file-pdf-o:before,.o_filetype_ps:before,.o_filetype_pdf:before{content:"\f1c1"}.o_icon-file-word-o:before,.o_filetype_pages:before,.o_filetype_doc:before,.o_filetype_docx:before{content:"\f1c2"}.o_icon-file-excel-o:before,.o_filetype_xls:before,.o_filetype_xlsx:before{content:"\f1c3"}.o_icon-file-powerpoint-o:before,.o_filetype_key:before,.o_filetype_odp:before,.o_filetype_ppt:before,.o_filetype_pptx:before{content:"\f1c4"}.o_icon-file-photo-o:before,.o_icon-file-picture-o:before,.o_icon-file-image-o:before,.o_filetype_png:before,.o_filetype_tiff:before,.o_filetype_webp:before,.o_filetype_gif:before,.o_filetype_ico:before,.o_filetype_jpeg:before,.o_filetype_bmp:before,.o_filetype_odg:before,.o_filetype_eps:before,.o_filetype_jpg:before{content:"\f1c5"}.o_icon-file-zip-o:before,.o_icon-file-archive-o:before,.o_filetype_zip:before,.o_filetype_gz:before,.o_filetype_tar:before,.o_filetype_tgz:before{content:"\f1c6"}.o_icon-file-sound-o:before,.o_icon-file-audio-o:before,.o_filetype_midi:before,.o_filetype_audio:before,.o_filetype_mp3:before,.o_filetype_m3u:before,.o_filetype_wav:before{content:"\f1c7"}.o_icon-file-movie-o:before,.o_icon-file-video-o:before,.o_filetype_psd:before,.o_filetype_avi:before,.o_filetype_dvi:before,.o_filetype_mp4:before,.o_filetype_m4v:before,.o_filetype_webm:before,.o_filetype_ogg:before,.o_filetype_video:before,.o_filetype_mov:before,.o_filetype_mpeg:before,.o_filetype_mpg:before,.o_filetype_qt:before,.o_filetype_ra:before,.o_filetype_ram:before,.o_filetype_swf:before,.o_filetype_flv:before{content:"\f1c8"}.o_icon-file-code-o:before,.o_filetype_css:before,.o_filetype_js:before,.o_filetype_java:before,.o_filetype_numbers:before,.o_filetype_ods:before,.o_filetype_xml:before,.o_filetype_xsl:before,.o_filetype_bat_icon:before,.o_filetype_bat:before,.o_filetype_exe:before,.o_filetype_app:before,.o_filetype_sh:before{content:"\f1c9"}.o_icon-vine:before{content:"\f1ca"}.o_icon-codepen:before{content:"\f1cb"}.o_icon-jsfiddle:before{content:"\f1cc"}.o_icon-life-bouy:before,.o_icon-life-saver:before,.o_icon-support:before,.o_icon-life-ring:before{content:"\f1cd"}.o_icon-circle-o-notch:before{content:"\f1ce"}.o_icon-ra:before,.o_icon-rebel:before{content:"\f1d0"}.o_icon-ge:before,.o_icon-empire:before{content:"\f1d1"}.o_icon-git-square:before{content:"\f1d2"}.o_icon-git:before{content:"\f1d3"}.o_icon-hacker-news:before{content:"\f1d4"}.o_icon-tencent-weibo:before{content:"\f1d5"}.o_icon-qq:before{content:"\f1d6"}.o_icon-wechat:before,.o_icon-weixin:before{content:"\f1d7"}.o_icon-send:before,.o_icon-paper-plane:before{content:"\f1d8"}.o_icon-send-o:before,.o_icon-paper-plane-o:before{content:"\f1d9"}.o_icon-history:before,.o_icon_version:before{content:"\f1da"}.o_icon-circle-thin:before,.o_icon_courseareas:before{content:"\f1db"}.o_icon-header:before{content:"\f1dc"}.o_icon-paragraph:before{content:"\f1dd"}.o_icon-sliders:before{content:"\f1de"}.o_icon-share-alt:before{content:"\f1e0"}.o_icon-share-alt-square:before{content:"\f1e1"}.o_icon-bomb:before{content:"\f1e2"}.o_icon_bookmark{color:#996633}.o_icon_bookmark_add{color:#999999}.o_icon_delete{color:#A87E7E}.o_icon_error{color:#d9534f}.o_icon_help{cursor:help}.o_icon_info{color:#5bc0de}.o_icon_new{color:#5cb85c}.o_icon_mandatory{color:#f0ad4e}.o_icon_managed{color:#999}.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_icon_warn{color:#f0ad4e}.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,.o_withEllipsis .o_morelink:hover,.o_withEllipsis .o_lesslink:hover,#o_main_wrapper #o_toplink: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_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover,.o_catalog .o_level .o_meta .o_title a:hover,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover,.o_repo_details .o_social .o_comments:hover,.o_undecorated:focus,a.o_icon:focus,.o_withEllipsis .o_morelink:focus,.o_withEllipsis .o_lesslink:focus,#o_main_wrapper #o_toplink: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_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:focus,.o_catalog .o_level .o_meta .o_title a:focus,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:focus,.o_repo_details .o_social .o_comments:focus{text-decoration:none}.o_block,.o_course_run .o_toc .o_entry{margin:1em 0}.o_block_large,.o_button_group{margin:2em 0}.o_scrollblock{overflow-x:auto;overflow-y:hidden}.o_button_group{text-align:center}.o_button_group a,.o_button_group input,.o_button_group button{margin-right:1em}.o_button_group a:last-child,.o_button_group input:last-child,.o_button_group button:last-child{margin-right:0}.o_nowrap{white-space:nowrap}.o_titled_wrapper{margin-top:20px}.o_titled_wrapper .o_content{margin-top:20px}.o_video{display:inline-block}.o_image{display:inline-block;max-width:100%}.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_withEllipsis .o_morelink,.o_withEllipsis .o_lesslink{display:none}.o_withEllipsis.o_hasOverflow .o_morelink{display:block}.o_withEllipsis.o_hasOverflow .o_lesslink{display:none}.o_withEllipsis.o_hasOverflow.o_showOverflow{height:auto !important}.o_withEllipsis.o_hasOverflow.o_showOverflow .o_morelink{display:none}.o_withEllipsis.o_hasOverflow.o_showOverflow .o_lesslink{display:block}.o_info,.o_note,.o_form .o_desc,.o_important,.o_bc_empty,.o_course_run .o_no_scoreinfo,.o_warning,.o_form .o_warning,.o_error,.o_form .o_info,.o_togglebox_wrapper div.o_togglebox{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_bc_empty h2,.o_course_run .o_no_scoreinfo h2,.o_warning h2,.o_form .o_warning h2,.o_error h2,.o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox h2,.o_info h3,.o_note h3,.o_form .o_desc h3,.o_important h3,.o_bc_empty h3,.o_course_run .o_no_scoreinfo h3,.o_warning h3,.o_form .o_warning h3,.o_error h3,.o_form .o_info h3,.o_togglebox_wrapper div.o_togglebox h3,.o_info h4,.o_note h4,.o_form .o_desc h4,.o_important h4,.o_bc_empty h4,.o_course_run .o_no_scoreinfo h4,.o_warning h4,.o_form .o_warning h4,.o_error h4,.o_form .o_info h4,.o_togglebox_wrapper div.o_togglebox h4,.o_info h5,.o_note h5,.o_form .o_desc h5,.o_important h5,.o_bc_empty h5,.o_course_run .o_no_scoreinfo h5,.o_warning h5,.o_form .o_warning h5,.o_error h5,.o_form .o_info h5,.o_togglebox_wrapper div.o_togglebox h5{color:#bbbbbb}p.o_info,p.o_note,.o_form p.o_desc,p.o_important,p.o_bc_empty,.o_course_run p.o_no_scoreinfo,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_bc_empty,.o_course_run div.o_no_scoreinfo,div.o_warning,.o_form div.o_warning,div.o_error,.o_form div.o_info,.o_togglebox_wrapper div.o_togglebox{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,.o_bc_empty,.o_course_run .o_no_scoreinfo{background-color:#FFF1A4;border-color:#F4D000}.o_important h2,.o_bc_empty h2,.o_course_run .o_no_scoreinfo h2,.o_important h3,.o_bc_empty h3,.o_course_run .o_no_scoreinfo h3,.o_important h4,.o_bc_empty h4,.o_course_run .o_no_scoreinfo h4,.o_important h5,.o_bc_empty h5,.o_course_run .o_no_scoreinfo h5{color:#F4D000}p.o_important,p.o_bc_empty,.o_course_run p.o_no_scoreinfo,div.o_important,div.o_bc_empty,.o_course_run div.o_no_scoreinfo{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.o_warning,.o_form o.o_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.o_error,div.o_error{margin:20px 0}.o_border_box{border:1px solid #999;padding:1em;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}p.o_border_box,div.o_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.1.0");src:url("../../../font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.1.0") format("embedded-opentype"),url("../../../font-awesome/fonts/fontawesome-webfont.woff?v=4.1.0") format("woff"),url("../../../font-awesome/fonts/fontawesome-webfont.ttf?v=4.1.0") format("truetype"),url("../../../font-awesome/fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.o_icon{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_withEllipsis .o_ellipsis_links,#o_main_wrapper #o_main_container #o_main_right,.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete,.o_repo_details .o_lead .o_media{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,.o_catalog .o_sublevels .o_sublevel,.o_repo_details .o_social .o_rating_wrapper{float:left}.o_icon.pull-left,#o_main_wrapper #o_main_container .o_icon#o_main_left,#o_navbar_imclient .o_icon#o_im_message,#o_navbar_imclient .o_icon#o_im_status,#o_navbar_imclient .o_icon#o_im_summary,.o_comments .o_comment_wrapper .o_icon.o_avatar,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_icon.o_rating_wrapper,.o_catalog .o_sublevels .o_icon.o_sublevel,.o_repo_details .o_social .o_icon.o_rating_wrapper{margin-right:.3em}.o_icon.pull-right,div.o_icon.o_chelp_wrapper,.o_withEllipsis .o_icon.o_ellipsis_links,#o_main_wrapper #o_main_container .o_icon#o_main_right,.o_comments .o_comment_wrapper .o_icon.o_reply,.o_comments .o_comment_wrapper .o_icon.o_delete,.o_repo_details .o_lead .o_icon.o_media{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)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.o_icon-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-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=2);-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=3);-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=0);-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=2);-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,.o_icon_mail:before,.o_co_icon: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{content:"\f005"}.o_icon-star-o:before,.o_icon_rating_off:before{content:"\f006"}.o_icon-user:before,.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:before,.o_icon_close_tab:before,.o_icon_close_tool: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_edit_metadata:before,.o_icon_tool:before,.o_icon-cog:before{content:"\f013"}.o_icon-trash-o:before,.o_icon_delete_item:before{content:"\f014"}.o_icon-home:before{content:"\f015"}.o_icon-file-o:before,.o_filetype_file:before,.o_filetype_ico:before{content:"\f016"}.o_icon-clock-o:before,.o_icon_expenditure:before{content:"\f017"}.o_icon-road:before{content:"\f018"}.o_icon-download:before,.o_icon_archive_tool: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_attempt_limit:before,.o_icon_refresh:before{content:"\f021"}.o_icon-list-alt:before{content:"\f022"}.o_icon-lock:before,.o_icon_locked: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,.o_FileResource-PODCAST_icon:before,.o_podcast_icon:before{content:"\f03d"}.o_icon-photo:before,.o_icon-image:before,.o_icon-picture-o:before{content:"\f03e"}.o_icon-pencil:before,.o_icon_notes: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_readonly:before,.o_icon_readwrite:before,.o_icon-pencil-square-o:before,.o_FileResource-TEST_icon:before,.o_iqtest_icon:before,.o_iqself_icon:before{content:"\f044"}.o_icon-share-square-o:before{content:"\f045"}.o_icon-check-square-o:before,.o_cl_icon:before{content:"\f046"}.o_icon-arrows:before,.o_icon_move: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,.o_icon_info:before,.o_infomsg_icon: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,.o_icon_publish: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_new:before,.o_icon_mandatory:before{content:"\f069"}.o_icon-exclamation-circle:before,.o_icon_error: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,.o_icon_warn:before{content:"\f071"}.o_icon-plane:before{content:"\f072"}.o_icon-calendar:before,.o_icon_calendar:before,.o_icon_lifecycle:before,.o_calendar_icon:before,.o_cal_icon: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,.o_icon_top:before{content:"\f077"}.o_icon-chevron-down:before{content:"\f078"}.o_icon-retweet:before,.o_icon_managed:before{content:"\f079"}.o_icon-shopping-cart:before{content:"\f07a"}.o_icon-folder:before,.o_icon_new_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,.o_icon_twitter:before{content:"\f081"}.o_icon-facebook-square:before,.o_icon_facebook:before{content:"\f082"}.o_icon-camera-retro:before{content:"\f083"}.o_icon-key:before,.o_icon_password:before,.o_ac_token_icon:before{content:"\f084"}.o_icon-gears:before,.o_icon_actions:before,.o_icon_settings:before,.o_icon-cogs:before{content:"\f085"}.o_icon-comments:before,.o_icon_comments:before{content:"\f086"}.o_icon-thumbs-o-up:before,.o_ms_icon: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,.o_FileResource-SHAREDFOLDER:before,.o_tu_icon:before,.o_lti_icon:before{content:"\f08e"}.o_icon-sign-in:before,.o_icon_login:before,.o_en_icon:before{content:"\f090"}.o_icon-trophy:before,.o_icon_assessment_tool: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,.o_icon_notification:before,.o_icon_rss:before{content:"\f09e"}.o_icon-hdd-o:before{content:"\f0a0"}.o_icon-bullhorn:before,.o_FileResource-BLOG_icon:before,.o_blog_icon:before{content:"\f0a1"}.o_icon-bell:before{content:"\f0f3"}.o_icon-certificate:before,.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,.o_icon_previous:before{content:"\f0a8"}.o_icon-arrow-circle-right:before,.o_icon_next:before{content:"\f0a9"}.o_icon-arrow-circle-up:before{content:"\f0aa"}.o_icon-arrow-circle-down:before{content:"\f0ab"}.o_icon-globe:before,.o_icon_language:before,.o_FileResource-WIKI_icon:before,.o_wiki_icon:before{content:"\f0ac"}.o_icon-wrench:before{content:"\f0ad"}.o_icon-tasks:before,.o_ta_icon: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,.o_icon_group:before,.o_icon_membersmanagement:before,.o_cmembers_icon:before{content:"\f0c0"}.o_icon-chain:before,.o_icon-link:before,.o_icon_link:before,.o_ll_icon: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_copy:before,.o_icon-files-o:before,.o_dialog_icon: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-navicon:before,.o_icon-reorder:before,.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,.o_icon_wizard: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,.o_icon_google: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,.o_icon_close_togglebox:before,.o_togglebox_wrapper a.o_togglebox_opened i: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,.o_icon_open_togglebox:before,.o_togglebox_wrapper a.o_togglebox_closed i: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-desc:before,.o_icon_sort_desc:before{content:"\f0dd"}.o_icon-sort-up:before,.o_icon-sort-asc:before,.o_icon_sort_asc: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,.o_icon_statistics_tool:before{content:"\f0e4"}.o_icon-comment-o:before,.o_icon_chat:before,.o_icon_comments_none:before,.o_icon_post:before,.o_forum_message_icon:before{content:"\f0e5"}.o_icon-comments-o:before,.o_fo_icon: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_filetype_odf:before,.o_filetype_rtf:before,.o_filetype_readme:before,.o_filetype_README:before,.o_filetype_log:before,.o_filetype_txt:before,.o_filetype_htm:before,.o_filetype_html:before,.o_sp_icon:before,.o_cp_item: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_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,.o_icon_move_up:before{content:"\f102"}.o_icon-angle-double-down:before,.o_icon_move_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,.o_vc_icon:before,.o_vitero_icon:before,.o_openmeetings_icon: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,.o_projectbroker_icon: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,.o_icon_coursefolder:before,.o_filetype_folder:before{content:"\f114"}.o_icon-folder-open-o:before,.o_filetype_folder_open:before,.o_bc_icon:before{content:"\f115"}.o_icon-smile-o:before{content:"\f118"}.o_icon-frown-o:before{content:"\f119"}.o_icon-meh-o:before,.o_FileResource-SURVEY_icon:before,.o_iqsurv_icon: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-mail-reply-all:before,.o_icon-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{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,.o_icon_eportfolio_add:before,.o_EPStructuredMapTemplate_icon:before,.o_ep_icon: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_show_more:before,.o_icon-caret-square-o-down:before{content:"\f150"}.o_icon-toggle-up:before,.o_icon_show_less: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_booking: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,.o_icon_new_document: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_FileResource-IMSCP_icon:before,.o_FileResource-SCORMCP_icon:before,.o_cp_icon:before,.o_scorm_icon:before{content:"\f187"}.o_icon-bug:before,.o_icon_dev: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-space-shuttle:before{content:"\f197"}.o_icon-slack:before{content:"\f198"}.o_icon-envelope-square:before,.o_icon_mail:before{content:"\f199"}.o_icon-wordpress:before{content:"\f19a"}.o_icon-openid:before{content:"\f19b"}.o_icon-institution:before,.o_icon-bank:before,.o_icon-university:before{content:"\f19c"}.o_icon-mortar-board:before,.o_icon-graduation-cap:before{content:"\f19d"}.o_icon-yahoo:before{content:"\f19e"}.o_icon-google:before{content:"\f1a0"}.o_icon-reddit:before{content:"\f1a1"}.o_icon-reddit-square:before{content:"\f1a2"}.o_icon-stumbleupon-circle:before{content:"\f1a3"}.o_icon-stumbleupon:before{content:"\f1a4"}.o_icon-delicious:before,.o_icon_delicious:before{content:"\f1a5"}.o_icon-digg:before,.o_icon_digg:before{content:"\f1a6"}.o_icon-pied-piper-square:before,.o_icon-pied-piper:before{content:"\f1a7"}.o_icon-pied-piper-alt:before{content:"\f1a8"}.o_icon-drupal:before{content:"\f1a9"}.o_icon-joomla:before{content:"\f1aa"}.o_icon-language:before{content:"\f1ab"}.o_icon-fax:before{content:"\f1ac"}.o_icon-building:before{content:"\f1ad"}.o_icon-child:before{content:"\f1ae"}.o_icon-paw:before{content:"\f1b0"}.o_icon-spoon:before{content:"\f1b1"}.o_icon-cube:before,.o_icon_courseeditor:before,.o_CourseModule_icon:before{content:"\f1b2"}.o_icon-cubes:before,.o_st_icon:before{content:"\f1b3"}.o_icon-behance:before{content:"\f1b4"}.o_icon-behance-square:before{content:"\f1b5"}.o_icon-steam:before{content:"\f1b6"}.o_icon-steam-square:before{content:"\f1b7"}.o_icon-recycle:before,.o_icon_recycle:before{content:"\f1b8"}.o_icon-automobile:before,.o_icon-car:before{content:"\f1b9"}.o_icon-cab:before,.o_icon-taxi:before{content:"\f1ba"}.o_icon-tree:before{content:"\f1bb"}.o_icon-spotify:before{content:"\f1bc"}.o_icon-deviantart:before{content:"\f1bd"}.o_icon-soundcloud:before{content:"\f1be"}.o_icon-database:before,.o_icon_coursedb:before{content:"\f1c0"}.o_icon-file-pdf-o:before,.o_filetype_ps:before,.o_filetype_pdf:before{content:"\f1c1"}.o_icon-file-word-o:before,.o_filetype_pages:before,.o_filetype_doc:before,.o_filetype_docx:before{content:"\f1c2"}.o_icon-file-excel-o:before,.o_filetype_xls:before,.o_filetype_xlsx:before{content:"\f1c3"}.o_icon-file-powerpoint-o:before,.o_filetype_key:before,.o_filetype_odp:before,.o_filetype_ppt:before,.o_filetype_pptx:before{content:"\f1c4"}.o_icon-file-photo-o:before,.o_icon-file-picture-o:before,.o_icon-file-image-o:before,.o_filetype_png:before,.o_filetype_tiff:before,.o_filetype_webp:before,.o_filetype_gif:before,.o_filetype_ico:before,.o_filetype_jpeg:before,.o_filetype_bmp:before,.o_filetype_odg:before,.o_filetype_eps:before,.o_filetype_jpg:before{content:"\f1c5"}.o_icon-file-zip-o:before,.o_icon-file-archive-o:before,.o_filetype_zip:before,.o_filetype_gz:before,.o_filetype_tar:before,.o_filetype_tgz:before{content:"\f1c6"}.o_icon-file-sound-o:before,.o_icon-file-audio-o:before,.o_filetype_midi:before,.o_filetype_audio:before,.o_filetype_mp3:before,.o_filetype_m3u:before,.o_filetype_wav:before{content:"\f1c7"}.o_icon-file-movie-o:before,.o_icon-file-video-o:before,.o_filetype_psd:before,.o_filetype_avi:before,.o_filetype_dvi:before,.o_filetype_mp4:before,.o_filetype_m4v:before,.o_filetype_webm:before,.o_filetype_ogg:before,.o_filetype_video:before,.o_filetype_mov:before,.o_filetype_mpeg:before,.o_filetype_mpg:before,.o_filetype_qt:before,.o_filetype_ra:before,.o_filetype_ram:before,.o_filetype_swf:before,.o_filetype_flv:before{content:"\f1c8"}.o_icon-file-code-o:before,.o_filetype_css:before,.o_filetype_js:before,.o_filetype_java:before,.o_filetype_numbers:before,.o_filetype_ods:before,.o_filetype_xml:before,.o_filetype_xsl:before,.o_filetype_bat_icon:before,.o_filetype_bat:before,.o_filetype_exe:before,.o_filetype_app:before,.o_filetype_sh:before{content:"\f1c9"}.o_icon-vine:before{content:"\f1ca"}.o_icon-codepen:before{content:"\f1cb"}.o_icon-jsfiddle:before{content:"\f1cc"}.o_icon-life-bouy:before,.o_icon-life-saver:before,.o_icon-support:before,.o_icon-life-ring:before{content:"\f1cd"}.o_icon-circle-o-notch:before{content:"\f1ce"}.o_icon-ra:before,.o_icon-rebel:before{content:"\f1d0"}.o_icon-ge:before,.o_icon-empire:before{content:"\f1d1"}.o_icon-git-square:before{content:"\f1d2"}.o_icon-git:before{content:"\f1d3"}.o_icon-hacker-news:before{content:"\f1d4"}.o_icon-tencent-weibo:before{content:"\f1d5"}.o_icon-qq:before{content:"\f1d6"}.o_icon-wechat:before,.o_icon-weixin:before{content:"\f1d7"}.o_icon-send:before,.o_icon-paper-plane:before{content:"\f1d8"}.o_icon-send-o:before,.o_icon-paper-plane-o:before{content:"\f1d9"}.o_icon-history:before,.o_icon_version:before{content:"\f1da"}.o_icon-circle-thin:before,.o_icon_courseareas:before{content:"\f1db"}.o_icon-header:before{content:"\f1dc"}.o_icon-paragraph:before{content:"\f1dd"}.o_icon-sliders:before{content:"\f1de"}.o_icon-share-alt:before{content:"\f1e0"}.o_icon-share-alt-square:before{content:"\f1e1"}.o_icon-bomb:before,.o_icon_timelimit:before{content:"\f1e2"}.o_icon_bookmark{color:#996633}.o_icon_bookmark_add{color:#999999}.o_icon_delete{color:#A87E7E}.o_icon_error{color:#d9534f}.o_icon_help{cursor:help}.o_icon_info{color:#5bc0de}.o_icon_new{color:#5cb85c}.o_icon_mandatory{color:#f0ad4e}.o_icon_managed{color:#999}.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_icon_warn{color:#f0ad4e}.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,.o_withEllipsis .o_morelink:hover,.o_withEllipsis .o_lesslink:hover,#o_main_wrapper #o_toplink: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_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover,.o_catalog .o_level .o_meta .o_title a:hover,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover,.o_repo_details .o_social .o_comments:hover,.o_undecorated:focus,a.o_icon:focus,.o_withEllipsis .o_morelink:focus,.o_withEllipsis .o_lesslink:focus,#o_main_wrapper #o_toplink: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_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:focus,.o_catalog .o_level .o_meta .o_title a:focus,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:focus,.o_repo_details .o_social .o_comments:focus{text-decoration:none}.o_block,.o_course_run .o_toc .o_entry{margin:1em 0}.o_block_large,.o_button_group{margin:2em 0}.o_scrollblock{overflow-x:auto;overflow-y:hidden}.o_button_group{text-align:center}.o_button_group a,.o_button_group input,.o_button_group button{margin-right:1em}.o_button_group a:last-child,.o_button_group input:last-child,.o_button_group button:last-child{margin-right:0}.o_nowrap{white-space:nowrap}.o_titled_wrapper{margin-top:20px}.o_titled_wrapper .o_content{margin-top:20px}.o_video{display:inline-block}.o_image{display:inline-block;max-width:100%}.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_withEllipsis .o_morelink,.o_withEllipsis .o_lesslink{display:none}.o_withEllipsis.o_hasOverflow .o_morelink{display:block}.o_withEllipsis.o_hasOverflow .o_lesslink{display:none}.o_withEllipsis.o_hasOverflow.o_showOverflow{height:auto !important}.o_withEllipsis.o_hasOverflow.o_showOverflow .o_morelink{display:none}.o_withEllipsis.o_hasOverflow.o_showOverflow .o_lesslink{display:block}.o_info,.o_note,.o_form .o_desc,.o_important,.o_bc_empty,.o_course_run .o_no_scoreinfo,.o_warning,.o_form .o_warning,.o_error,.o_form .o_info,.o_togglebox_wrapper div.o_togglebox,div.o_qti_item_itemfeedback{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_bc_empty h2,.o_course_run .o_no_scoreinfo h2,.o_warning h2,.o_form .o_warning h2,.o_error h2,.o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox h2,div.o_qti_item_itemfeedback h2,.o_info h3,.o_note h3,.o_form .o_desc h3,.o_important h3,.o_bc_empty h3,.o_course_run .o_no_scoreinfo h3,.o_warning h3,.o_form .o_warning h3,.o_error h3,.o_form .o_info h3,.o_togglebox_wrapper div.o_togglebox h3,div.o_qti_item_itemfeedback h3,.o_info h4,.o_note h4,.o_form .o_desc h4,.o_important h4,.o_bc_empty h4,.o_course_run .o_no_scoreinfo h4,.o_warning h4,.o_form .o_warning h4,.o_error h4,.o_form .o_info h4,.o_togglebox_wrapper div.o_togglebox h4,div.o_qti_item_itemfeedback h4,.o_info h5,.o_note h5,.o_form .o_desc h5,.o_important h5,.o_bc_empty h5,.o_course_run .o_no_scoreinfo h5,.o_warning h5,.o_form .o_warning h5,.o_error h5,.o_form .o_info h5,.o_togglebox_wrapper div.o_togglebox h5,div.o_qti_item_itemfeedback h5{color:#bbbbbb}p.o_info,p.o_note,.o_form p.o_desc,p.o_important,p.o_bc_empty,.o_course_run p.o_no_scoreinfo,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_bc_empty,.o_course_run div.o_no_scoreinfo,div.o_warning,.o_form div.o_warning,div.o_error,.o_form div.o_info,.o_togglebox_wrapper div.o_togglebox,div.o_qti_item_itemfeedback{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,.o_bc_empty,.o_course_run .o_no_scoreinfo{background-color:#FFF1A4;border-color:#F4D000}.o_important h2,.o_bc_empty h2,.o_course_run .o_no_scoreinfo h2,.o_important h3,.o_bc_empty h3,.o_course_run .o_no_scoreinfo h3,.o_important h4,.o_bc_empty h4,.o_course_run .o_no_scoreinfo h4,.o_important h5,.o_bc_empty h5,.o_course_run .o_no_scoreinfo h5{color:#F4D000}p.o_important,p.o_bc_empty,.o_course_run p.o_no_scoreinfo,div.o_important,div.o_bc_empty,.o_course_run div.o_no_scoreinfo{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.o_warning,.o_form o.o_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.o_error,div.o_error{margin:20px 0}.o_border_box{border:1px solid #999;padding:1em;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}p.o_border_box,div.o_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 15px}#o_main_wrapper #o_toplink{position:absolute;bottom:0;right:10px;text-align:center}@media (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:15px}} #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:10px;width:250px}#o_share a{margin:0 5px 0 0;float:left;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}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}} .alert-fixed-bottom{bottom:0;border-width:1px 0 0 0}@media (min-width: 992px){.alert-fixed-bottom{border-top-right-radius:4px;border-top-left-radius:4px;border-width:1px 1px 0 1px}} -.o_tree{position:relative;display:block;background-color:#fff;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.o_tree ul{background-color:white;margin:0;padding:0;list-style-type:none}.o_tree ul li{margin:0;padding:0}.o_tree ul li div{position:relative;margin-bottom:-1px;border-bottom:1px solid #ddd}.o_tree ul li div a.o_tree_oc_l0{position:absolute;top:8px;left:1px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l0,.o_tree ul .o_tree_level_close.b_tree_oc_l0{z-index:10}.o_tree ul li div a.o_tree_oc_l1{position:absolute;top:8px;left:16px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l1,.o_tree ul .o_tree_level_close.b_tree_oc_l1{z-index:10}.o_tree ul li div a.o_tree_oc_l2{position:absolute;top:8px;left:31px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l2,.o_tree ul .o_tree_level_close.b_tree_oc_l2{z-index:10}.o_tree ul li div a.o_tree_oc_l3{position:absolute;top:8px;left:46px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l3,.o_tree ul .o_tree_level_close.b_tree_oc_l3{z-index:10}.o_tree ul li div a.o_tree_oc_l4{position:absolute;top:8px;left:61px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l4,.o_tree ul .o_tree_level_close.b_tree_oc_l4{z-index:10}.o_tree ul li div a.o_tree_oc_l5{position:absolute;top:8px;left:76px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l5,.o_tree ul .o_tree_level_close.b_tree_oc_l5{z-index:10}.o_tree ul li div a.o_tree_oc_l6{position:absolute;top:8px;left:91px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l6,.o_tree ul .o_tree_level_close.b_tree_oc_l6{z-index:10}.o_tree ul li div a.o_tree_oc_l7{position:absolute;top:8px;left:106px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l7,.o_tree ul .o_tree_level_close.b_tree_oc_l7{z-index:10}.o_tree ul li div a.o_tree_oc_l8{position:absolute;top:8px;left:121px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l8,.o_tree ul .o_tree_level_close.b_tree_oc_l8{z-index:10}.o_tree ul li div a.o_tree_oc_l9{position:absolute;top:8px;left:136px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l9,.o_tree ul .o_tree_level_close.b_tree_oc_l9{z-index:10}.o_tree ul li div a.o_tree_oc_l10{position:absolute;top:8px;left:151px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l10,.o_tree ul .o_tree_level_close.b_tree_oc_l10{z-index:10}.o_tree ul li div a.o_tree_oc_l11{position:absolute;top:8px;left:166px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l11,.o_tree ul .o_tree_level_close.b_tree_oc_l11{z-index:10}.o_tree ul li div a.o_tree_l0{display:block;padding:10px 2px 10px 14px;z-index:9}.o_tree ul li div a.o_tree_l1{display:block;padding:10px 2px 10px 29px;z-index:9}.o_tree ul li div a.o_tree_l2{display:block;padding:10px 2px 10px 44px;z-index:9}.o_tree ul li div a.o_tree_l3{display:block;padding:10px 2px 10px 59px;z-index:9}.o_tree ul li div a.o_tree_l4{display:block;padding:10px 2px 10px 74px;z-index:9}.o_tree ul li div a.o_tree_l5{display:block;padding:10px 2px 10px 89px;z-index:9}.o_tree ul li div a.o_tree_l6{display:block;padding:10px 2px 10px 104px;z-index:9}.o_tree ul li div a.o_tree_l7{display:block;padding:10px 2px 10px 119px;z-index:9}.o_tree ul li div a.o_tree_l8{display:block;padding:10px 2px 10px 134px;z-index:9}.o_tree ul li div a.o_tree_l9{display:block;padding:10px 2px 10px 149px;z-index:9}.o_tree ul li div a.o_tree_l10{display:block;padding:10px 2px 10px 164px;z-index:9}.o_tree ul li div a.o_tree_l11{display:block;padding:10px 2px 10px 179px;z-index:9}.o_tree ul span.o_tree_leaf{display:none}.o_tree ul li .badge{float:right;font-size:70%}.o_tree ul li div.o_dnd_sibling{margin:0;padding:0;border-bottom:none}.o_tree ul li a.active{font-weight:bold}.o_tree ul li a.active_parent{color:black;font-weight:bold}.o_tree .o_dnd_item{cursor:move;z-index:100}.o_tree .o_dnd_proxy{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;background-color:yellow}.o_tree .o_dnd_item.o_dnd_over{background-color:#ffff60}.o_tree .o_dnd_sibling{height:3px;width:100%}.o_tree .o_dnd_sibling.o_dnd_over{background:transparent url(../openolat/images/arrow_dd.png) top left no-repeat}.o_tree .o_dnd_l1{margin-left:0 !important}.o_tree .o_dnd_l2{margin-left:1em !important}.o_tree .o_dnd_l3{margin-left:2em !important}.o_tree .o_dnd_l4{margin-left:3em !important}.o_tree .o_dnd_l5{margin-left:4em !important}.o_tree .o_dnd_l6{margin-left:5em !important}.o_tree .o_dnd_l7{margin-left:6em !important}.o_tree .o_dnd_l8{margin-left:7em !important}.o_tree .o_dnd_l9{margin-left:8em !important}.o_tree .o_dnd_l10{margin-left:9em !important}.o_tree .o_dnd_l11{margin-left:10em !important}.o_breadcrumb{position:relative}.o_breadcrumb .o_breadcrumb_close{float:right}.o_form .o_icon_mandatory{position:absolute;right:-0.25em;line-height:1.5em}.o_form.form-horizontal .o_icon_mandatory{position:relative;right:0;line-height:inherit;margin-left:0.25em}.o_form .o_error{margin-top:1px;margin-bottom:0;padding:10px}.o_form .o_picker_wrapper{position:absolute;top:0;right:0;height:34px;width:34px;text-align:right;vertical-align:middle;line-height:34px;font-size:22px;color:#428bca}.o_form .o_picker_wrapper:hover{color:#2a6496}.o_form .o_date{position:relative;padding-right:34px}.o_form .o_filepreview{margin-bottom:10px}.o_form .o_fileinput{cursor:pointer;position:relative}.o_form .o_fileinput .o_fakechooser{position:relative;padding-right:34px;z-index:1}.o_form .o_fileinput .o_realchooser{position:absolute;top:0;left:0;z-index:2;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity:0;opacity:0}.o_catalog .o_catalog_delete_img{position:relative;top:-0.5em}.o_table_wrapper.o_table_flexi .o_table_body{margin-top:20px}.o_table_wrapper.o_table_flexi .table{margin-top:20px}.o_table_wrapper .o_table_search{max-width:50em}.o_table_wrapper .o_table_footer .o_table_buttons{text-align:center}.o_table_wrapper .o_table_footer .o_table_buttons input{margin-right:1em}.o_table_wrapper .o_table_footer .o_table_buttons input:last-child{margin-right:0}.o_table_wrapper .o_table_footer .o_table_pagination{text-align:center}.o_table_wrapper a.b_sorting{padding:0 20px 0 0;text-decoration:none;background:url("../openolat/images/arrow-resize-090.png") no-repeat center right}.o_table_wrapper a.b_sorting_asc{padding:0 20px 0 0;text-decoration:none;background:url("../openolat/images/arrow_up.png") no-repeat center right}.o_table_wrapper a.b_sorting_desc{padding:0 20px 0 0;text-decoration:none;background:url("../openolat/images/arrow_down.png") no-repeat center right}.o_table_wrapper .o_table{margin-bottom:0}.o_table_tools{margin-left:0.5em}.o_info .table-bordered td,.o_note .table-bordered td,.o_form .o_desc .table-bordered td,.o_important .table-bordered td,.o_bc_empty .table-bordered td,.o_course_run .o_no_scoreinfo .table-bordered td,.o_warning .table-bordered td,.o_error .table-bordered td,.o_togglebox_wrapper div.o_togglebox .table-bordered td,o_note .table-bordered td,o_important .table-bordered td,o_warning .table-bordered td,o_error .table-bordered td{border-color:#333}#o_navbar_imclient #o_im_message,#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_summary{position:relative;padding:15px 3px}#o_navbar_imclient #o_im_summary{padding-right:15px}#o_navbar_imclient #o_im_status div.o_chelp_wrapper{right:0.5em}.o_flag{position:relative;top:1px;display:inline-block;line-height:1;width:16px;height:16px;background-repeat:no-repeat;background-position:0 100%}.o_flag_en{background-image:url("../light/images/flags/gb.png")}.o_flag_de{background-image:url("../light/images/flags/de.png")}.o_flag_fr{background-image:url("../light/images/flags/fr.png")}.o_flag_it{background-image:url("../light/images/flags/it.png")}.o_flag_es{background-image:url("../light/images/flags/es.png")}.o_flag_da{background-image:url("../light/images/flags/dk.png")}.o_flag_cs{background-image:url("../light/images/flags/cz.png")}.o_flag_el{background-image:url("../light/images/flags/gr.png")}.o_flag_ee{background-image:url("../light/images/flags/ee.png")}.o_flag_ru{background-image:url("../light/images/flags/ru.png")}.o_flag_pl{background-image:url("../light/images/flags/pl.png")}.o_flag_zh_CN{background-image:url("../light/images/flags/cn.png")}.o_flag_zh_TW{background-image:url("../light/images/flags/tw.png")}.o_flag_lt{background-image:url("../light/images/flags/lt.png")}.o_flag_fa{background-image:url("../light/images/flags/ir.png")}.o_flag_pt_PT{background-image:url("../light/images/flags/pt.png")}.o_flag_pt_BR{background-image:url("../light/images/flags/br.png")}.o_flag_tr{background-image:url("../light/images/flags/tr.png")}.o_flag_hu{background-image:url("../light/images/flags/hu.png")}.o_flag_sq{background-image:url("../light/images/flags/al.png")}.o_flag_in{background-image:url("../light/images/flags/id.png")}.o_flag_ar{background-image:url("../light/images/flags/eg.png")}.o_flag_rm{background-image:url("../light/images/flags/rm.png")}.o_flag_af{background-image:url("../light/images/flags/za.png")}.o_flag_vi{background-image:url("../light/images/flags/vn.png")}.o_flag_mn{background-image:url("../light/images/flags/mn.png")}.o_flag_iw{background-image:url("../light/images/flags/il.png")}.o_flag_ko{background-image:url("../light/images/flags/kr.png")}.o_flag_nl_NL{background-image:url("../light/images/flags/nl.png")}.o_flag_jp{background-image:url("../light/images/flags/jp.png")}.o_flag_nb_NO{background-image:url("../light/images/flags/no.png")}.o_flag_et_EE{background-image:url("../light/images/flags/ee.png")}.o_flag_bg{background-image:url("../light/images/flags/bg.png")}.o_flag_hi_IN_ASIA{background-image:url("../light/images/flags/in.png")}.o_flag_ar_LB{background-image:url("../light/images/flags/lb.png")}.o_flag_gl_ES{background-image:url("../light/images/flags/galicia.png")}.o_rating .o_rating_title{font-weight:bold;font-size:75%}.o_rating .o_rating_items{white-space:nowrap}.o_rating .o_rating_items .o_icon{color:#f0ad4e}.o_rating .o_rating_items .o_icon:hover{color:#428bca}.o_rating .o_rating_items .o_legend{margin-left:1em;font-size:75%;line-height:1em}.o_rating .o_rating_explanation{font-size:75%}@media (max-width: 991px){.o_rating .o_rating_title,.o_rating .o_rating_explanation{display:none}} +.o_tree{position:relative;display:block;background-color:#fff;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.o_tree ul{background-color:white;margin:0;padding:0;list-style-type:none}.o_tree ul li{margin:0;padding:0}.o_tree ul li div{position:relative;margin-bottom:-1px;border-bottom:1px solid #ddd}.o_tree ul li div a.o_tree_oc_l0{position:absolute;top:8px;left:1px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l0,.o_tree ul .o_tree_level_close.b_tree_oc_l0{z-index:10}.o_tree ul li div a.o_tree_oc_l1{position:absolute;top:8px;left:16px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l1,.o_tree ul .o_tree_level_close.b_tree_oc_l1{z-index:10}.o_tree ul li div a.o_tree_oc_l2{position:absolute;top:8px;left:31px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l2,.o_tree ul .o_tree_level_close.b_tree_oc_l2{z-index:10}.o_tree ul li div a.o_tree_oc_l3{position:absolute;top:8px;left:46px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l3,.o_tree ul .o_tree_level_close.b_tree_oc_l3{z-index:10}.o_tree ul li div a.o_tree_oc_l4{position:absolute;top:8px;left:61px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l4,.o_tree ul .o_tree_level_close.b_tree_oc_l4{z-index:10}.o_tree ul li div a.o_tree_oc_l5{position:absolute;top:8px;left:76px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l5,.o_tree ul .o_tree_level_close.b_tree_oc_l5{z-index:10}.o_tree ul li div a.o_tree_oc_l6{position:absolute;top:8px;left:91px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l6,.o_tree ul .o_tree_level_close.b_tree_oc_l6{z-index:10}.o_tree ul li div a.o_tree_oc_l7{position:absolute;top:8px;left:106px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l7,.o_tree ul .o_tree_level_close.b_tree_oc_l7{z-index:10}.o_tree ul li div a.o_tree_oc_l8{position:absolute;top:8px;left:121px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l8,.o_tree ul .o_tree_level_close.b_tree_oc_l8{z-index:10}.o_tree ul li div a.o_tree_oc_l9{position:absolute;top:8px;left:136px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l9,.o_tree ul .o_tree_level_close.b_tree_oc_l9{z-index:10}.o_tree ul li div a.o_tree_oc_l10{position:absolute;top:8px;left:151px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l10,.o_tree ul .o_tree_level_close.b_tree_oc_l10{z-index:10}.o_tree ul li div a.o_tree_oc_l11{position:absolute;top:8px;left:166px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l11,.o_tree ul .o_tree_level_close.b_tree_oc_l11{z-index:10}.o_tree ul li div a.o_tree_l0{display:block;padding:10px 2px 10px 14px;z-index:9}.o_tree ul li div a.o_tree_l1{display:block;padding:10px 2px 10px 29px;z-index:9}.o_tree ul li div a.o_tree_l2{display:block;padding:10px 2px 10px 44px;z-index:9}.o_tree ul li div a.o_tree_l3{display:block;padding:10px 2px 10px 59px;z-index:9}.o_tree ul li div a.o_tree_l4{display:block;padding:10px 2px 10px 74px;z-index:9}.o_tree ul li div a.o_tree_l5{display:block;padding:10px 2px 10px 89px;z-index:9}.o_tree ul li div a.o_tree_l6{display:block;padding:10px 2px 10px 104px;z-index:9}.o_tree ul li div a.o_tree_l7{display:block;padding:10px 2px 10px 119px;z-index:9}.o_tree ul li div a.o_tree_l8{display:block;padding:10px 2px 10px 134px;z-index:9}.o_tree ul li div a.o_tree_l9{display:block;padding:10px 2px 10px 149px;z-index:9}.o_tree ul li div a.o_tree_l10{display:block;padding:10px 2px 10px 164px;z-index:9}.o_tree ul li div a.o_tree_l11{display:block;padding:10px 2px 10px 179px;z-index:9}.o_tree ul span.o_tree_leaf{display:none}.o_tree ul li .badge{float:right;font-size:70%}.o_tree ul li div.o_dnd_sibling{margin:0;padding:0;border-bottom:none}.o_tree ul li a.active{font-weight:bold}.o_tree ul li a.active_parent{color:black;font-weight:bold}.o_tree .o_dnd_item{cursor:move;z-index:100}.o_tree .o_dnd_proxy{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;background-color:yellow}.o_tree .o_dnd_item.o_dnd_over{background-color:#ffff60}.o_tree .o_dnd_sibling{height:3px;width:100%}.o_tree .o_dnd_sibling.o_dnd_over{background:transparent url(../openolat/images/arrow_dd.png) top left no-repeat}.o_tree .o_dnd_l1{margin-left:0 !important}.o_tree .o_dnd_l2{margin-left:1em !important}.o_tree .o_dnd_l3{margin-left:2em !important}.o_tree .o_dnd_l4{margin-left:3em !important}.o_tree .o_dnd_l5{margin-left:4em !important}.o_tree .o_dnd_l6{margin-left:5em !important}.o_tree .o_dnd_l7{margin-left:6em !important}.o_tree .o_dnd_l8{margin-left:7em !important}.o_tree .o_dnd_l9{margin-left:8em !important}.o_tree .o_dnd_l10{margin-left:9em !important}.o_tree .o_dnd_l11{margin-left:10em !important}.o_breadcrumb{position:relative}.o_breadcrumb .o_breadcrumb_close{float:right}.o_form .o_icon_mandatory{position:absolute;right:-0.25em;line-height:1.5em}.o_form.form-horizontal .o_icon_mandatory{position:relative;right:0;line-height:inherit;margin-left:0.25em}.o_form .o_error{margin-top:1px;margin-bottom:0;padding:10px}.o_form .o_picker_wrapper{position:absolute;top:0;right:0;height:34px;width:34px;text-align:right;vertical-align:middle;line-height:34px;font-size:22px;color:#428bca}.o_form .o_picker_wrapper:hover{color:#2a6496}.o_form .o_date{position:relative;padding-right:34px}.o_form .o_filepreview{margin-bottom:10px}.o_form .o_fileinput{cursor:pointer;position:relative}.o_form .o_fileinput .o_fakechooser{position:relative;padding-right:34px;z-index:1}.o_form .o_fileinput .o_realchooser{position:absolute;top:0;left:0;z-index:2;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity:0;opacity:0}.o_catalog .o_catalog_delete_img{position:relative;top:-0.5em}.o_table_wrapper.o_table_flexi .o_table_body{margin-top:20px}.o_table_wrapper.o_table_flexi .table{margin-top:20px}.o_table_wrapper .o_table_search{max-width:50em}.o_table_wrapper .o_table_footer .o_table_buttons{text-align:center}.o_table_wrapper .o_table_footer .o_table_buttons input{margin-right:1em}.o_table_wrapper .o_table_footer .o_table_buttons input:last-child{margin-right:0}.o_table_wrapper .o_table_footer .o_table_pagination{text-align:center}.o_table_wrapper a.b_sorting{padding:0 20px 0 0;text-decoration:none;background:url("../openolat/images/arrow-resize-090.png") no-repeat center right}.o_table_wrapper a.b_sorting_asc{padding:0 20px 0 0;text-decoration:none;background:url("../openolat/images/arrow_up.png") no-repeat center right}.o_table_wrapper a.b_sorting_desc{padding:0 20px 0 0;text-decoration:none;background:url("../openolat/images/arrow_down.png") no-repeat center right}.o_table_wrapper .o_table{margin-bottom:0}.o_table_tools{margin-left:0.5em}.o_info .table-bordered td,.o_note .table-bordered td,.o_form .o_desc .table-bordered td,.o_important .table-bordered td,.o_bc_empty .table-bordered td,.o_course_run .o_no_scoreinfo .table-bordered td,.o_warning .table-bordered td,.o_error .table-bordered td,.o_togglebox_wrapper div.o_togglebox .table-bordered td,div.o_qti_item_itemfeedback .table-bordered td,o_note .table-bordered td,o_important .table-bordered td,o_warning .table-bordered td,o_error .table-bordered td{border-color:#333}#o_navbar_imclient #o_im_message,#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_summary{position:relative;padding:15px 3px}#o_navbar_imclient #o_im_summary{padding-right:15px}#o_navbar_imclient #o_im_status div.o_chelp_wrapper{right:0.5em}.o_flag{position:relative;top:1px;display:inline-block;line-height:1;width:16px;height:16px;background-repeat:no-repeat;background-position:0 100%}.o_flag_en{background-image:url("../light/images/flags/gb.png")}.o_flag_de{background-image:url("../light/images/flags/de.png")}.o_flag_fr{background-image:url("../light/images/flags/fr.png")}.o_flag_it{background-image:url("../light/images/flags/it.png")}.o_flag_es{background-image:url("../light/images/flags/es.png")}.o_flag_da{background-image:url("../light/images/flags/dk.png")}.o_flag_cs{background-image:url("../light/images/flags/cz.png")}.o_flag_el{background-image:url("../light/images/flags/gr.png")}.o_flag_ee{background-image:url("../light/images/flags/ee.png")}.o_flag_ru{background-image:url("../light/images/flags/ru.png")}.o_flag_pl{background-image:url("../light/images/flags/pl.png")}.o_flag_zh_CN{background-image:url("../light/images/flags/cn.png")}.o_flag_zh_TW{background-image:url("../light/images/flags/tw.png")}.o_flag_lt{background-image:url("../light/images/flags/lt.png")}.o_flag_fa{background-image:url("../light/images/flags/ir.png")}.o_flag_pt_PT{background-image:url("../light/images/flags/pt.png")}.o_flag_pt_BR{background-image:url("../light/images/flags/br.png")}.o_flag_tr{background-image:url("../light/images/flags/tr.png")}.o_flag_hu{background-image:url("../light/images/flags/hu.png")}.o_flag_sq{background-image:url("../light/images/flags/al.png")}.o_flag_in{background-image:url("../light/images/flags/id.png")}.o_flag_ar{background-image:url("../light/images/flags/eg.png")}.o_flag_rm{background-image:url("../light/images/flags/rm.png")}.o_flag_af{background-image:url("../light/images/flags/za.png")}.o_flag_vi{background-image:url("../light/images/flags/vn.png")}.o_flag_mn{background-image:url("../light/images/flags/mn.png")}.o_flag_iw{background-image:url("../light/images/flags/il.png")}.o_flag_ko{background-image:url("../light/images/flags/kr.png")}.o_flag_nl_NL{background-image:url("../light/images/flags/nl.png")}.o_flag_jp{background-image:url("../light/images/flags/jp.png")}.o_flag_nb_NO{background-image:url("../light/images/flags/no.png")}.o_flag_et_EE{background-image:url("../light/images/flags/ee.png")}.o_flag_bg{background-image:url("../light/images/flags/bg.png")}.o_flag_hi_IN_ASIA{background-image:url("../light/images/flags/in.png")}.o_flag_ar_LB{background-image:url("../light/images/flags/lb.png")}.o_flag_gl_ES{background-image:url("../light/images/flags/galicia.png")}.o_rating .o_rating_title{font-weight:bold;font-size:75%}.o_rating .o_rating_items{white-space:nowrap}.o_rating .o_rating_items .o_icon{color:#f0ad4e}.o_rating .o_rating_items .o_icon:hover{color:#428bca}.o_rating .o_rating_items .o_legend{margin-left:1em;font-size:75%;line-height:1em}.o_rating .o_rating_explanation{font-size:75%}@media (max-width: 991px){.o_rating .o_rating_title,.o_rating .o_rating_explanation{display:none}} .o_comments{margin-top:20px}.o_comments .o_comment_wrapper .o_avatar{margin:0 1em 0 0}.o_iframedisplay iframe{width:100%}.o_singlepage .o_edit{position:absolute;top:10px;right:37px}.o_content_popup{position:absolute;top:10px;right:12px}.o_module_cp_wrapper .o_tools{position:absolute;top:10px;right:12px;text-align:right;vertical-align:middle}.o_module_cp_wrapper .o_tools .o_search_wrapper{display:inline-block;position:relative;top:-2px}.o_bc_meta .o_thumbnail{width:200px;height:200px}.o_notifications_news_wrapper .o_notifications_news_subscription{margin:10px 0}.o_notifications_news_wrapper .o_notifications_news_subscription h4 i{display:none}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content{margin-left:1.5em;position:relative}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content .o_icon{position:absolute;left:-1.5em;line-height:1.5em;top:0}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_url{margin-left:1.5em}.o_togglebox_wrapper div.o_togglebox{position:relative;margin:0}.o_togglebox_wrapper div.o_togglebox .o_togglebox_hide{position:absolute;bottom:0.5em;right:1em}.o_visual{position:absolute;top:0;left:0;overflow:hidden;height:120px;width:180px;vertical-align:middle}@media (min-width: 768px) and (max-width: 991px){.o_visual{height:80px;width:120px}}@media (max-width: 767px){.o_visual{height:50px;width:75px}}.o_visual img{width:100%;height:auto}.o_visual .o_visual_not_available{width:100%;height:100%;background-image:url("../light/images/no_preview.png");background-repeat:no-repeat;background-position:50% 50%;background-size:contain}.o_coursetable.o_rendertype_custom .o_table_row{position:relative;border:1px solid #428bca;margin-bottom:10px}.o_coursetable.o_rendertype_custom .o_table_row .o_visual{border-right:1px solid #428bca}.o_coursetable.o_rendertype_custom .o_table_row .o_access{position:absolute;top:0;right:0;height:120px;width:180px;overflow:hidden;border-left:1px solid #428bca;padding-top:0.25em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{padding:0 1em;height:20px;line-height:20px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{position:relative;left:2px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social{position:absolute;width:100%;bottom:32px;height:20px;padding-left:1em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper .o_rating .o_rating_title,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper .o_rating o_rating_legend,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating_wrapper .o_rating .o_rating_explanation{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments{margin-left:1em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings{padding:0 0 0 1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label{margin-bottom:1em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_methods{color:#5bc0de}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{position:absolute;display:block;bottom:0;width:90px;height:30px;line-height:30px;text-align:center}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{right:0}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:90px}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{height:80px;width:120px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_comments,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_label{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{width:60px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:60px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:120px;margin:0 180px 0 180px;position:relative;padding:1em 0.5em 0.25em 1em;overflow:hidden}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{margin:0;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{display:block}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author{margin-top:0.5em;line-height:1em;font-size:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle{position:absolute;top:5px;right:40px;font-size:90%;line-height:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{margin-top:0.5em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark{position:absolute;top:-1px;right:15px}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:80px;margin:0 120px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:50px;margin:0 0 0 75px;padding:0 0 0 1em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{line-height:50px}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_go_xs{position:absolute;top:0;right:0;padding:0 1em;height:50px;line-height:50px}.o_coursetable.o_rendertype_classic .o_rating_explanation{display:none}.o_coursetable.o_rendertype_classic .o_start,.o_coursetable.o_rendertype_classic .o_book{white-space:nowrap}.o_coursetable.o_rendertype_classic .o_repoentry_type{color:#555}.o_coursetable.o_rendertype_classic .o_repoentry_ac{color:#555}.o_catalog .o_level{position:relative;margin-bottom:10px;padding:0;border-top:1px solid #428bca;border-bottom:1px solid #428bca}.o_catalog .o_level .o_visual{height:180px}.o_catalog .o_level .o_meta{position:relative;min-height:180px;height:180px;overflow:hidden;margin:0 0 0 180px;padding:1em 0.5em 0.5em 2em}.o_catalog .o_level .o_meta .o_title{margin:0}.o_catalog .o_level .o_meta .o_title a{display:block}.o_catalog .o_level .o_meta .o_desc{padding:1em 0 0.5em 0}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_level .o_visual{height:120px}.o_catalog .o_level .o_meta{min-height:120px;height:120px;margin:0 0 0 120px}}@media (max-width: 767px){.o_catalog .o_level .o_visual{height:75px}.o_catalog .o_level .o_meta{min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_level .o_meta .o_title{line-height:75px}.o_catalog .o_level .o_meta .o_desc{display:none}}.o_catalog .o_sublevels{position:relative;margin-bottom:20px}.o_catalog .o_sublevels .o_sublevel{position:relative;margin:0 20px 20px 0;width:180px}.o_catalog .o_sublevels .o_sublevel:last-child{margin-right:0}.o_catalog .o_sublevels .o_sublevel .o_visual{border:1px solid #428bca;position:relative;height:180px}.o_catalog .o_sublevels .o_sublevel .o_meta{position:absolute;left:0;bottom:0;width:100%;border:1px solid #428bca;border-top:0;background-color:rgba(255,255,255,0.8)}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title{margin:0;text-align:center;line-height:2em;height:2em;width:100%;overflow:hidden}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a{display:block}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 10px 10px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (max-width: 767px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 1px 1px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px;width:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}} .o_repo_details{position:relative}.o_repo_details .o_lead .o_media{margin-left:2em;margin-bottom:2em}.o_repo_details .o_lead h1 i{display:none}.o_repo_details .o_overview i{margin-right:0.5em}.o_repo_details .o_overview div{margin-bottom:0.25em}.o_repo_details .o_start,.o_repo_details .o_book{margin:2em 0}.o_repo_details .o_social .o_comments{margin-left:1em}@media (max-width: 767px){.o_repo_details .o_lead p{font-size:16px}.o_repo_details .o_lead .o_media{margin-top:0}}@media (max-width: 613px){.o_repo_details .o_subcolumn{width:100%}} -.o_midpub{color:green}.o_midwarn{color:orange}.o_miderr{color:red}.o_passed{font-weight:bold}.o_passed th{color:#333}.o_failed{font-weight:bold}.o_failed th{color:#333}.o_unknown{font-weight:bold}.o_unknown th{color:#333}.o_course_run .o_toc .o_entry .o_shorttitle{border-bottom:1px solid #999}.o_course_run .o_toc .o_entry .o_displaytitle{margin-top:5px}.o_course_run .o_toc .o_entry .o_objectives{margin-top:10px;font-style:italic}.o_st_peekview ul li{margin-bottom:0.5em}.o_course_editor .o_node_config{margin-bottom:20px}#o_dev_tool #o_dev_tool_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}a.o_dev{position:absolute;left:0;top:0;z-index:4000;background:#f0ad4e;border:1px solid #d59645;border-top:none;border-left:none;border-radius:0 0 4px 0;color:#fff}a.o_dev:hover{color:#d9534f}.o_dev_w{margin:1px}.o_dev_w .o_dev_h{color:#000;font-size:8px;line-height:10px;margin:0}.o_dev_w .o_dev_h span{background:#f4c37d;border:1px solid #f0ad4e;border-bottom:0}.o_dev_w .o_dev_c{position:relative;border:1px dotted #eee}.o_dev_w .o_dev_c .o_dev_i{position:absolute;top:0px;left:24px;height:auto;width:auto;padding:5px;border:1px solid black;display:none;margin:0px;z-index:999;font-size:11px;background-color:#BBF}.o_dev_w.o_dev_m>.o_dev_c{border:1px solid #f0ad4e;margin:0px;background-color:#f8e9d4} +.o_midpub{color:green}.o_midwarn{color:orange}.o_miderr{color:red}.o_passed{font-weight:bold}.o_passed th{color:#333}.o_failed{font-weight:bold}.o_failed th{color:#333}.o_unknown{font-weight:bold}.o_unknown th{color:#333}.o_course_run .o_toc .o_entry .o_shorttitle{border-bottom:1px solid #999}.o_course_run .o_toc .o_entry .o_displaytitle{margin-top:5px}.o_course_run .o_toc .o_entry .o_objectives{margin-top:10px;font-style:italic}.o_st_peekview ul li{margin-bottom:0.5em}.o_course_editor .o_node_config{margin-bottom:20px}table.table.o_qti_item_kprim>thead>tr>th,table.table.o_qti_item_kprim>tbody>tr>td{border:none}td.o_qti_item_kprim_input,th.o_qti_item_kprim_input{text-align:center}div.o_qti_item_itemfeedback{background-color:#ffffff;border-color:#000000}#o_dev_tool #o_dev_tool_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}a.o_dev{position:absolute;left:0;top:0;z-index:4000;background:#f0ad4e;border:1px solid #d59645;border-top:none;border-left:none;border-radius:0 0 4px 0;color:#fff}a.o_dev:hover{color:#d9534f}.o_dev_w{margin:1px}.o_dev_w .o_dev_h{color:#000;font-size:8px;line-height:10px;margin:0}.o_dev_w .o_dev_h span{background:#f4c37d;border:1px solid #f0ad4e;border-bottom:0}.o_dev_w .o_dev_c{position:relative;border:1px dotted #eee}.o_dev_w .o_dev_c .o_dev_i{position:absolute;top:0px;left:24px;height:auto;width:auto;padding:5px;border:1px solid black;display:none;margin:0px;z-index:999;font-size:11px;background-color:#BBF}.o_dev_w.o_dev_m>.o_dev_c{border:1px solid #f0ad4e;margin:0px;background-color:#f8e9d4}