+++ /dev/null
-@tool @tool_behat
-Feature: Page contents assertions
- In order to write good tests
- As a tests writer
- I need to check the page contents
-
- @javascript
- Scenario: Basic contents assertions
- Given I log in as "admin"
- And I am on site homepage
- And I expand "Users" node
- And I follow "Groups"
- And I press "Create group"
- And I set the following fields to these values:
- | Group name | I'm the name |
- | Group description | I'm the description |
- And I press "Save changes"
- When I follow "Overview"
- And I wait until the page is ready
- And I wait "2" seconds
- And I hover "#region-main .generaltable td span" "css_element"
- Then I should see "I'm the description"
- And "Grouping" "select" in the "region-main" "region" should be visible
- And "Group" "select" should be visible
- And "Activity report" "link" in the "Administration" "block" should not be visible
- And "Event monitoring rules" "link" should not be visible
- And I should see "Filter groups by"
- And I should not see "Filter groupssss by"
- And I should see "Group members" in the "#region-main table th.c1" "css_element"
- And I should not see "Group membersssss" in the "#region-main table th.c1" "css_element"
- And I follow "Groups"
- And the "#groupeditform #showcreateorphangroupform" "css_element" should be enabled
- And the "#groupeditform #showeditgroupsettingsform" "css_element" should be disabled
-
- @javascript
- Scenario: Locators inside specific DOM nodes using CSS selectors
- Given the following "courses" exist:
- | fullname | shortname | category |
- | Course 1 | C1 | 0 |
- And I log in as "admin"
- And I am on site homepage
- And I follow "Course 1"
- When I dock "Administration" block
- Then I should not see "Question bank" in the ".block-region" "css_element"
- And I click on "//div[@id='dock']/descendant::h2[normalize-space(.)='Administration']" "xpath_element"
-
- @javascript
- Scenario: Locators inside specific DOM nodes using XPath
- Given the following "courses" exist:
- | fullname | shortname | category |
- | Course 1 | C1 | 0 |
- And I log in as "admin"
- When I dock "Administration" block
- Then I should not see "Turn editing on" in the ".block-region" "css_element"
And I follow "Course 1"
And I navigate to "Grades" node in "Course administration"
And I expand "Setup" node
- And I follow "Categories and items"
+ And I follow "Gradebook setup"
Then I should see "Test Grade Item 1"
And I follow "Edit Test Grade Item 1"
And I expand all fieldsets
And I follow "Course 1"
And I navigate to "Grades" node in "Course administration"
And I expand "Setup" node
- And I follow "Categories and items"
+ And I follow "Gradebook setup"
Then I should see "Test Outcome Grade Item 1"
And I follow "Edit Test Outcome Grade Item 1"
And the field "Outcome" matches value "Grade outcome 1"
component: component,
template: name
}
- }]);
+ }], true, false);
// When returns a new promise that is resolved when all the passed in promises are resolved.
// The arguments to the done become the values of each resolved promise.
args: { component: componentStr, search: searchStr },
done: reloadListTemplate,
fail: notification.exception }
- ]);
+ ], true, false);
};
var throttle = null;
return new external_function_parameters($params);
}
- /**
- * Expose to AJAX
- * @return boolean
- */
- public static function list_templates_is_allowed_from_ajax() {
- return true;
- }
-
/**
* Loads the list of templates.
* @param string $component Limit the search to a component.
);
}
- /**
- * Can this function be called directly from ajax?
- *
- * @return boolean
- * @since Moodle 2.9
- */
- public static function load_canonical_template_is_allowed_from_ajax() {
- return true;
- }
-
/**
* Return a mustache template.
* Note - this function differs from the function core_output_load_template
'description' => 'List/search templates by component.',
'type' => 'read',
'capabilities'=> '',
+ 'ajax' => true,
+ 'loginrequired' => false,
),
'tool_templatelibrary_load_canonical_template' => array(
'classname' => 'tool_templatelibrary\external',
'methodname' => 'load_canonical_template',
'description' => 'Load a canonical template by name (not the theme overidden one).',
- 'type' => 'read'
+ 'type' => 'read',
+ 'ajax' => true,
+ 'loginrequired' => false,
),
);
*/
function is_captcha_enabled() {
global $CFG;
- return isset($CFG->recaptchapublickey) && isset($CFG->recaptchaprivatekey) && get_config("auth/{$this->authtype}", 'recaptcha');
+ return $this->config->recaptcha;
}
}
public function __construct($quiz, $questions, $manifest, $section, $question_node, $rootpath, $contextid, $outdir) {
parent::__construct($quiz, $questions, $manifest, $section, $question_node, $rootpath, $contextid, $outdir);
$this->qtype = cc_qti_profiletype::true_false;
- $this->correct_answer_node_id = $this->questions->nodeValue(
- 'plugin_qtype_truefalse_question/truefalse/trueanswer', $this->question_node);
+
+ // Determine the correct answer by finding out which answer has the non zero fraction...
+ // This is because a true / false question type can have 'false' as the correct answer.
+ $answers = $this->questions->nodeList('plugin_qtype_truefalse_question/answers/answer', $this->question_node);
+ foreach ($answers as $answer) {
+ $fraction = $this->questions->nodeValue('fraction', $answer);
+
+ if ($fraction != 0) {
+ $this->correct_answer_node_id = (int)$this->questions->nodeValue('@id', $answer);
+ }
+ }
+
$maximum_quiz_grade = (int)$this->quiz->nodeValue('/activity/quiz/grade');
$this->total_grade_value = ($maximum_quiz_grade + 1).'.0000000';
}
$sheet_question_categories_question = cc2moodle::loadsheet(SHEET_COURSE_QUESTION_CATEGORIES_QUESTION_CATEGORY_QUESTION_TRUE_FALSE);
- $max_score = 0;
- $true_answer_id = 0;
- $false_answer_id = 0;
+ $trueanswer = null;
+ $falseanswer = null;
if (!empty($question['answers'])) {
+ // Identify the true and false answers.
foreach ($question['answers'] as $answer) {
- if ($answer['score'] > $max_score) {
- $max_score = $answer['score'];
- $true_answer_id = $answer['id'];
+ if ($answer['identifier'] == 'true') {
+ $trueanswer = $answer;
+ } else if ($answer['identifier'] == 'false') {
+ $falseanswer = $answer;
+ } else {
+ // Should not happen, but just in case.
+ throw new coding_exception("Unknown answer identifier detected" .
+ " in true/false quiz question with id {$question['id']}.");
}
$node_course_question_categories_question_answer .= $this->create_node_course_question_categories_question_category_question_answer($answer);
}
- foreach ($question['answers'] as $answer) {
-
- if ($answer['id'] != $true_answer_id) {
- $max_score = $answer['score'];
- $false_answer_id = $answer['id'];
- }
+ // Make sure the true and false answer was found.
+ if (is_null($trueanswer) || is_null($falseanswer)) {
+ throw new coding_exception("Unable to correctly identify the " .
+ "true and false answers in the question with id {$question['id']}.");
}
}
'[#false_answer_id#]');
$replace_values = array($node_course_question_categories_question_answer,
- $true_answer_id,
- $false_answer_id);
+ $trueanswer['id'],
+ $falseanswer['id']);
$node_question_categories_question = str_replace($find_tags, $replace_values, $sheet_question_categories_question);
$sheet_question_categories_question = cc112moodle::loadsheet(SHEET_COURSE_QUESTION_CATEGORIES_QUESTION_CATEGORY_QUESTION_TRUE_FALSE);
- $max_score = 0;
- $true_answer_id = 0;
- $false_answer_id = 0;
+ $trueanswer = null;
+ $falseanswer = null;
if (!empty($question['answers'])) {
+ // Identify the true and false answers.
foreach ($question['answers'] as $answer) {
- if ($answer['score'] > $max_score) {
- $max_score = $answer['score'];
- $true_answer_id = $answer['id'];
+ if ($answer['identifier'] == 'true') {
+ $trueanswer = $answer;
+ } else if ($answer['identifier'] == 'false') {
+ $falseanswer = $answer;
+ } else {
+ // Should not happen, but just in case.
+ throw new coding_exception("Unknown answer identifier detected " .
+ "in true/false quiz question with id {$question['id']}.");
}
$node_course_question_categories_question_answer .= $this->create_node_course_question_categories_question_category_question_answer($answer);
}
- foreach ($question['answers'] as $answer) {
-
- if ($answer['id'] != $true_answer_id) {
- $max_score = $answer['score'];
- $false_answer_id = $answer['id'];
- }
+ // Make sure the true and false answer was found.
+ if (is_null($trueanswer) || is_null($falseanswer)) {
+ throw new coding_exception("Unable to correctly identify the " .
+ "true and false answers in the question with id {$question['id']}.");
}
}
'[#false_answer_id#]');
$replace_values = array($node_course_question_categories_question_answer,
- $true_answer_id,
- $false_answer_id);
+ $trueanswer['id'],
+ $falseanswer['id']);
$node_question_categories_question = str_replace($find_tags, $replace_values, $sheet_question_categories_question);
$PAGE->set_heading($SITE->fullname);
echo $OUTPUT->header();
+ // Output edit mode title.
+ echo $OUTPUT->heading($strblogs . ': ' . get_string('deleteentry', 'blog'), 2);
+
// Output the entry.
$entry->prepare_render();
echo $output->render($entry);
die;
}
} else if ($action == 'add') {
- $PAGE->set_title("$SITE->shortname: $strblogs: " . get_string('addnewentry', 'blog'));
+ $editmodetitle = $strblogs . ': ' . get_string('addnewentry', 'blog');
+ $PAGE->set_title("$SITE->shortname: $editmodetitle");
$PAGE->set_heading(fullname($USER));
} else if ($action == 'edit') {
- $PAGE->set_title("$SITE->shortname: $strblogs: " . get_string('editentry', 'blog'));
+ $editmodetitle = $strblogs . ': ' . get_string('editentry', 'blog');
+ $PAGE->set_title("$SITE->shortname: $editmodetitle");
$PAGE->set_heading(fullname($USER));
}
$entry->courseid = $courseid;
echo $OUTPUT->header();
+// Output title for editing mode.
+if (isset($editmodetitle)) {
+ echo $OUTPUT->heading($editmodetitle, 2);
+}
$blogeditform->display();
echo $OUTPUT->footer();
new Given('I press "'.get_string('savechangesanddisplay').'"')
);
}
+
+ /**
+ * Checks if the activity with specified name is maked as complete.
+ *
+ * @Given /^the "(?P<activityname_string>(?:[^"]|\\")*)" "(?P<activitytype_string>(?:[^"]|\\")*)" activity with "(manual|auto)" completion should be marked as complete$/
+ * @return array
+ */
+ public function activity_marked_as_complete($activityname, $activitytype, $completiontype) {
+ if ($completiontype == "manual") {
+ $imgalttext = get_string("completion-alt-manual-y", 'core_completion', $activityname);
+ } else {
+ $imgalttext = get_string("completion-alt-auto-y", 'core_completion', $activityname);
+ }
+ $csselementforactivitytype = "li.modtype_".strtolower($activitytype);
+
+ return new Given('"//img[contains(@alt, \''.$imgalttext.'\')]" "xpath_element" ' .
+ 'should exist in the "'.$csselementforactivitytype.'" "css_element"');
+ }
+
+ /**
+ * Checks if the activity with specified name is maked as complete.
+ *
+ * @Given /^the "(?P<activityname_string>(?:[^"]|\\")*)" "(?P<activitytype_string>(?:[^"]|\\")*)" activity with "(manual|auto)" completion should be marked as not complete$/
+ * @return array
+ */
+ public function activity_marked_as_not_complete($activityname, $activitytype, $completiontype) {
+ if ($completiontype == "manual") {
+ $imgalttext = get_string("completion-alt-manual-n", 'core_completion', $activityname);
+ } else {
+ $imgalttext = get_string("completion-alt-auto-n", 'core_completion', $activityname);
+ }
+ $csselementforactivitytype = "li.modtype_".strtolower($activitytype);
+
+ return new Given('"//img[contains(@alt, \''.$imgalttext.'\')]" "xpath_element" ' .
+ 'should exist in the "'.$csselementforactivitytype.'" "css_element"');
+ }
}
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
- * Edit and review page for grade categories and items
+ * The Gradebook setup page.
*
* @package core_grades
* @copyright 2008 Nicolas Connault
}
}
-print_grade_page_head($courseid, 'settings', 'setup', get_string('categoriesanditems', 'grades'));
+print_grade_page_head($courseid, 'settings', 'setup', get_string('gradebooksetup', 'grades'));
// Print Table of categories and items
echo $OUTPUT->box_start('gradetreebox generalbox');
return $str;
}
- //Trims trailing zeros
- //Used on the 'categories and items' page for grade items settings like aggregation co-efficient
- //Grader report has its own decimal place settings so they are handled elsewhere
+ // Trims trailing zeros.
+ // Used on the 'Gradebook setup' page for grade items settings like aggregation co-efficient.
+ // Grader report has its own decimal place settings so they are handled elsewhere.
static function format_number($number) {
$formatted = rtrim(format_float($number, 4),'0');
if (substr($formatted, -1)==get_string('decsep', 'langconfig')) { //if last char is the decimal point
$context = context_course::instance($courseid);
self::$managesetting = array();
if ($courseid != SITEID && has_capability('moodle/grade:manage', $context)) {
- self::$managesetting['categoriesanditems'] = new grade_plugin_info('setup',
+ self::$managesetting['gradebooksetup'] = new grade_plugin_info('setup',
new moodle_url('/grade/edit/tree/index.php', array('id' => $courseid)),
- get_string('categoriesanditems', 'grades'));
+ get_string('gradebooksetup', 'grades'));
self::$managesetting['coursesettings'] = new grade_plugin_info('coursesettings',
new moodle_url('/grade/edit/settings/index.php', array('id'=>$courseid)),
get_string('coursegradesettings', 'grades'));
GRADE_REPORT_SHOW_TOTAL_IF_CONTAINS_HIDDEN => get_string('hidetotalshowexhiddenitems', 'grades'),
GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN => get_string('hidetotalshowinchiddenitems', 'grades') );
- if (empty($CFG->grade_report_overview_showtotalsifcontainhidden)) {
+ if (!array_key_exists($CFG->grade_report_overview_showtotalsifcontainhidden, $options)) {
$options[-1] = get_string('defaultprev', 'grades', $options[0]);
} else {
- $options[-1] = get_string('defaultprev', 'grades', $options[1]);
+ $options[-1] = get_string('defaultprev', 'grades', $options[$CFG->grade_report_overview_showtotalsifcontainhidden]);
}
$mform->addElement('select', 'report_overview_showtotalsifcontainhidden', get_string('hidetotalifhiddenitems', 'grades'), $options);
}
/**
- * Sets a calculated manual grade item. Needs a table with item name - idnumber relation. The step requires you to be in categories and items page.
+ * Sets a calculated manual grade item. Needs a table with item name - idnumber relation.
+ * The step requires you to be in the 'Gradebook setup' page.
*
* @Given /^I set "(?P<calculation_string>(?:[^"]|\\")*)" calculation for grade item "(?P<grade_item_string>(?:[^"]|\\")*)" with idnumbers:$/
* @param string $calculation The calculation.
/**
* Sets a calculated manual grade category total. Needs a table with item name - idnumber relation.
- * The step requires you to be in categories and items page.
+ * The step requires you to be in the 'Gradebook setup' page.
*
* @Given /^I set "(?P<calculation_string>(?:[^"]|\\")*)" calculation for grade category "(?P<grade_item_string>(?:[^"]|\\")*)" with idnumbers:$/
* @param string $calculation The calculation.
| itemname | course | outcome | gradetype | scale |
| Test outcome item one | C1 | OT1 | Scale | Test Scale |
And I expand "Setup" node
- And I follow "Categories and items"
+ And I follow "Gradebook setup"
And I set the following settings for grade item "Course 1":
| Aggregation | Natural |
| Include outcomes in aggregation | 1 |
And I follow "Course 1"
And I navigate to "Grades" node in "Course administration"
And I expand "Setup" node
- And I follow "Categories and items"
+ And I follow "Gradebook setup"
And I set the following settings for grade item "Test outcome item one":
| Extra credit | 1 |
And I log out
And I follow "Course 1"
And I navigate to "Grades" node in "Course administration"
And I expand "Setup" node
- And I follow "Categories and items"
+ And I follow "Gradebook setup"
And I set the following settings for grade item "Course 1":
| Aggregation | Natural |
| Include outcomes in aggregation | 0 |
| Test outcome item one | C1 | OT1 | Scale | Test Scale |
And I navigate to "Grades" node in "Course administration"
And I expand "Setup" node
- And I follow "Categories and items"
+ And I follow "Gradebook setup"
And I set the following settings for grade item "Course 1":
| Aggregation | Natural |
| Include outcomes in aggregation | 1 |
And I set the following settings for grade item "Course 1":
| Aggregation | Natural |
| Exclude empty grades | 0 |
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I press "Add category"
And I set the following fields to these values:
| Category name | Sub category 3 |
And I press "Save changes"
And I turn editing mode off
And I should see "250.00 (25.25 %)" in the ".course" "css_element"
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I press "Add category"
And I set the following fields to these values:
| Category name | Sub sub category 1 |
@javascript
Scenario: Natural aggregation from the setup screen
- And I select "Categories and items" from the "Grade report" singleselect
+ And I select "Gradebook setup" from the "Grade report" singleselect
And I set the following settings for grade item "Course 1":
| Aggregation | Natural |
And I set the following settings for grade item "Sub category 1":
| Aggregation | Natural |
| Exclude empty grades | 0 |
And I turn editing mode off
- And I select "Categories and items" from the "Grade report" singleselect
+ And I select "Gradebook setup" from the "Grade report" singleselect
And I set the field "Override weight of Test assignment one" to "1"
And I set the field "Weight of Test assignment one" to "0"
And I set the field "Override weight of Test assignment six" to "1"
@javascript
Scenario: Switching grade items between categories
# Move to same aggregation (Natural).
- Given I navigate to "Categories and items" node in "Grade administration > Setup"
+ Given I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I set the field "Select Item a1" to "1"
And I set the field "Select Item a2" to "1"
And I set the field "Select Item a3" to "1"
And the field "Extra credit" matches value "1"
And I press "Cancel"
# Move to Mean of grades (with extra credit).
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I set the field "Select Item a1" to "1"
And I set the field "Select Item a2" to "1"
And I set the field "Select Item a3" to "1"
And the field "Extra credit" matches value "1"
And I press "Cancel"
# Move to Simple weight mean of grades.
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I set the field "Select Item a1" to "1"
And I set the field "Select Item a2" to "1"
And I set the field "Select Item a3" to "1"
And the field "Extra credit" matches value "1"
And I press "Cancel"
# Move to Weighted mean of grades.
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I set the field "Select Item a1" to "1"
And I set the field "Select Item a2" to "1"
And I set the field "Select Item a3" to "1"
And I set the field "Item weight" to "11"
And I press "Save changes"
# Move to same (Weighted mean of grades).
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I set the field "Select Item a1" to "1"
And I set the field "Select Item a2" to "1"
And I set the field "Select Item a3" to "1"
And the field "Item weight" matches value "11"
And I press "Save changes"
# Move back to Natural.
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I set the field "Select Item a1" to "1"
And I set the field "Select Item a2" to "1"
And I set the field "Select Item a3" to "1"
| Show average | Show |
And I press "Save changes"
# Add a manual grade item
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I press "Add grade item"
And I set the following fields to these values:
| Item name | Manual item 1 |
Feature: Calculated grade items can be used in the gradebook
In order to use calculated grade items in the gradebook
As a teacher
- I need setup calculated grade items in the categories and items page.
+ I need setup calculated grade items in the 'Gradebook setup' page.
Background:
Given the following "courses" exist:
And I am on site homepage
And I follow "Course 1"
And I navigate to "Grades" node in "Course administration"
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
@javascript
Scenario: The max grade for a category item, with a calculation using Natural aggregation, can be changed
| grade item 1 | - | 75.00 | 0–100 | 75.00 % | - |
| Calc cat totalInclude empty grades. | 100.00 % | 37.50 | 0–50 | 75.00 % | - |
| Course total | - | 37.50 | 0–50 | 75.00 % | - |
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I set the following settings for grade item "Calc cat":
| Maximum grade | 40 |
And I follow "Grader report"
| grade item 1 | 66.67 % | 75.00 | 0–100 | 75.00 % | 50.00 % |
| calc item | 33.33 % | 37.50 | 0–50 | 75.00 % | 25.00 % |
| Course total | - | 112.50 | 0–150 | 75.00 % | - |
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I set the following settings for grade item "calc item":
| Maximum grade | 40 |
And I follow "Grader report"
And I am on site homepage
And I follow "Course 1"
And I navigate to "Grades" node in "Course administration"
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
@javascript
Scenario: The max grade for a category item, with a calculation using Natural aggregation, can be changed
| grade item 1 | - | 75.00 | 0–100 | 75.00 % | - |
| Calc cat totalInclude empty grades. | 100.00 % | 37.50 | 0–100 | 37.50 % | - |
| Course total | - | 37.50 | 0–100 | 37.50 % | - |
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I set the following settings for grade item "Calc cat":
| Maximum grade | 40 |
And I follow "Grader report"
| grade item 1 | 50.00 % | 75.00 | 0–100 | 75.00 % | 37.50 % |
| calc item | 50.00 % | 37.50 | 0–100 | 37.50 % | 18.75 % |
| Course total | - | 112.50 | 0–200 | 56.25 % | - |
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I set the following settings for grade item "calc item":
| Maximum grade | 40 |
And I follow "Grader report"
And I set the field "Show weightings" to "Show"
And I set the field "Show contribution to course total" to "Show"
And I press "Save changes"
- And I set the field "Grade report" to "Categories and items"
+ And I set the field "Grade report" to "Gradebook setup"
And I press "Add category"
And I set the field "Category name" to "Sub category"
And I press "Save changes"
And I am on site homepage
And I follow "Course 1"
And I navigate to "Grades" node in "Course administration"
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I press "Add grade item"
And I set the following fields to these values:
| Item name | Manual item 1 |
And I press "Save changes"
Scenario Outline: The contribution of extra credit items is normalised
- Given I set the field "Grade report" to "Categories and items"
+ Given I set the field "Grade report" to "Gradebook setup"
When I set the following settings for grade item "Course 1":
| Aggregation | <aggregation> |
And I set the following settings for grade item "Manual item 2":
And I am on site homepage
And I follow "Course 1"
And I navigate to "Grades" node in "Course administration"
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I press "Add grade item"
And I set the following fields to these values:
| Item name | Manual item 1 |
@javascript
Scenario: Natural aggregation with negative and positive grade
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I set the following settings for grade item "Sub category 1":
| Aggregation | Natural |
| Exclude empty grades | 0 |
And I am on site homepage
And I follow "C1"
And I navigate to "Grades" node in "Course administration"
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I press "Add grade item"
And I set the following fields to these values:
| Item name | MI 1 |
And I set the field "Show weightings" to "Show"
And I set the field "Show contribution to course total" to "Show"
And I press "Save changes"
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I set the following settings for grade item "CAT1":
| Aggregation | Natural |
And I log out
| MI 5 | 33.33 % | 30.00 | 0–100 | 30.00 % | 10.00 % |
| CAT1 total | 33.33 % | 10.00 | 0–100 | 10.00 % | - |
| Course total | - | 60.00 | 0–300 | 20.00 % | - |
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I set the following settings for grade item "MI 1":
| Maximum grade | 50.00 |
| Minimum grade | 5.00 |
| MI 5 | 50.00 % | 30.00 | 0–100 | 30.00 % | 15.00 % |
| CAT1 total | 25.00 % | 10.00 | 0–50 | 20.00 % | - |
| Course total | - | 60.00 | 0–200 | 30.00 % | - |
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I set the following settings for grade item "MI 5":
| Maximum grade | 200.00 |
And I follow "User report"
And I log in as "teacher1"
And I follow "Course 1"
And I navigate to "Grades" node in "Course administration"
- And I set the field "Grade report" to "Categories and items"
+ And I set the field "Grade report" to "Gradebook setup"
And I set the following settings for grade item "Test assignment four (extra)":
| Extra credit | 1 |
And I set the following settings for grade item "Test assignment five (extra)":
And I log in as "teacher1"
And I follow "Course 1"
And I navigate to "Grades" node in "Course administration"
- And I set the field "Grade report" to "Categories and items"
+ And I set the field "Grade report" to "Gradebook setup"
And I set the following settings for grade item "Test assignment four (extra)":
| Extra credit | 1 |
And I set the following settings for grade item "Test assignment five (extra)":
And I log in as "teacher1"
And I follow "Course 1"
And I navigate to "Grades" node in "Course administration"
- And I set the field "Grade report" to "Categories and items"
+ And I set the field "Grade report" to "Gradebook setup"
@javascript
Scenario: Setting all weights in a category to exactly one hundred in total.
And I log in as "teacher1"
And I follow "Course 1"
And I navigate to "Grades" node in "Course administration"
- And I set the field "Grade report" to "Categories and items"
+ And I set the field "Grade report" to "Gradebook setup"
@javascript
Scenario: Grade items weights are normalised when all grade item weights are overridden (sum exactly 100). Extra credit is set to zero (before the fix 20150619).
| Test assignment one | C | F–A | 50.00 % | 60.00 % |
| Sub category 1 total | 3.00 | 0–5 | 60.00 % | - |
| Course total | 3.00 | 0–5 | 60.00 % | - |
- And I select "Categories and items" from the "Grade report" singleselect
+ And I select "Gradebook setup" from the "Grade report" singleselect
And the following should exist in the "grade_edit_tree_table" table:
| Name | Max grade |
| Test assignment one | 5.00 |
| Test assignment one | C | F–A | 50.00 % | <contrib3> |
| Sub category (<aggregation>) total<aggregation>. | 3.00 | 1–5 | 50.00 % | - |
| Course total<aggregation>. | <coursetotal3> | 0–100 | <courseperc3> | - |
- And I select "Categories and items" from the "Grade report" singleselect
+ And I select "Gradebook setup" from the "Grade report" singleselect
And the following should exist in the "grade_edit_tree_table" table:
| Name | Max grade |
| Test assignment one | A (5) |
And I turn editing mode on
When I set the following settings for grade item "Course 1":
| Aggregation | Natural |
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I set the field "Override weight of Grade me" to "1"
Then the field "Override weight of Grade me" matches value "100.00"
And I click on "Edit" "link" in the "Scale me" "table_row"
| grade_includescalesinaggregation | 1 |
And I follow "Course 1"
And I navigate to "Grades" node in "Course administration"
- And I navigate to "Categories and items" node in "Grade administration > Setup"
+ And I navigate to "Gradebook setup" node in "Grade administration > Setup"
And I set the field "Override weight of Grade me" to "1"
And the field "Override weight of Grade me" matches value "95.238"
And I set the field "Override weight of Scale me" to "1"
| Test assignment one | - | Ace!–Ace! | - |
| Sub category 1 total| - | 0–1 | - |
| Course total | - | 0–1 | - |
- And I set the field "jump" to "Categories and items"
+ And I set the field "jump" to "Gradebook setup"
And the following should exist in the "grade_edit_tree_table" table:
| Name | Max grade |
| Test assignment one | 1.00 |
| Test assignment one | Ace! | Ace!–Ace! | <contrib1> |
| Sub category (<aggregation>) total<aggregation>. | <cattotal1> | 0–100 | - |
| Course total<aggregation>. | <coursetotal1> | 0–100 | - |
- And I set the field "jump" to "Categories and items"
+ And I set the field "jump" to "Gradebook setup"
And the following should exist in the "grade_edit_tree_table" table:
| Name | Max grade |
| Test assignment one | Ace! (1) |
And "Course 1" row "Grade" column of "overview-grade" table should not contain "90.00"
Scenario: We can add a weighting to a grade item and it is displayed properly in the user report
- When I select "Categories and items" from the "Grade report" singleselect
+ When I select "Gradebook setup" from the "Grade report" singleselect
And I set the following settings for grade item "Course 1":
| Aggregation | Weighted mean of grades |
And I set the field "Extra credit value for Test assignment name" to "0.72"
/**
- * Tests grade_edit_tree (deals with the data on the categories and items page in the gradebook)
+ * Tests grade_edit_tree (deals with the data on the 'Gradebook setup' page in the gradebook)
*/
class core_grade_edittreelib_testcase extends advanced_testcase {
public function test_format_number() {
$string['courseblogs'] = 'Users can only see blogs for people who share a course';
$string['deleteblogassociations'] = 'Delete blog associations';
$string['deleteblogassociations_help'] = 'If ticked then blog entries will no longer be associated with this course or any course activities or resources. The blog entries themselves will not be deleted.';
+$string['deleteentry'] = 'Delete entry';
$string['deleteexternalblog'] = 'Unregister this external blog';
$string['deleteotagswarn'] = 'Are you sure you want to remove these tags from all blog posts and remove it from the system?';
$string['description'] = 'Description';
updated,core_tag
withselectedtags,core_tag
tag:create,core_role
+categoriesanditems,core_grades
$string['aggregationhintextra'] = '( Extra credit )';
$string['aggregation_link'] = 'grade/aggregation';
$string['aggregationcoef'] = 'Aggregation coefficient';
-$string['aggregationcoefextra'] = 'Extra credit'; // for the header of the table at Edit categories and items page
+$string['aggregationcoefextra'] = 'Extra credit'; // For the header of the table on the 'Gradebook setup' page.
$string['aggregationcoefextra_help'] = 'If the aggregation is \'Natural\' or \'Simple weighted mean\' and the extra credit checkbox is ticked, the grade item\'s maximum grade is not added to the category\'s maximum grade. This will result in the possibility of achieving the maximum grade in the category without having the maximum grade in all the grade items. If the site administrator has enabled grades over the maximum, there might be grades over the maximum.
If the aggregation is \'Mean of grades (with extra credits)\' and the extra credit is set to a value greater than zero, the extra credit is the factor by which the grade is multiplied before adding it to the total after the computation of the mean.';
$string['calculationview'] = 'View calculation';
$string['cannotaccessgroup'] = 'Can not access grades of selected group, sorry.';
$string['categories'] = 'Categories';
-$string['categoriesanditems'] = 'Categories and items';
$string['category'] = 'Category';
$string['categoryedit'] = 'Edit category';
$string['categoryname'] = 'Category name';
$string['gradebookcalculationswarning'] = 'Note: Some errors have been detected in calculating the grades displayed in the gradebook. It is recommended that the errors are fixed by clicking the button below, though this will result in some grades being changed. For details, see the changes between versions {$a->gradebookversion} and {$a->currentversion} in <a href="{$a->url}">Gradebook calculation changes</a>.';
$string['gradebookhiddenerror'] = 'The gradebook is currently set to hide everything from students.';
$string['gradebookhistories'] = 'Grade histories';
+$string['gradebooksetup'] = 'Gradebook setup';
$string['gradeboundary'] = 'Letter grade boundary';
$string['gradeboundary_help'] = 'This setting determines the minimum percentage over which grades will be assigned the grade letter.';
$string['gradecategories'] = 'Grade categories';
$string['xml'] = 'XML';
$string['yes'] = 'Yes';
$string['yourgrade'] = 'Your grade';
+
+// Deprecated since 3.0.
+$string['categoriesanditems'] = 'Categories and items';
$string['iprestriction_help'] = 'The user will need to call the web service from the listed IPs (separated by commas).';
$string['key'] = 'Key';
$string['keyshelp'] = 'The keys are used to access your Moodle account from external applications.';
+$string['loginrequired'] = 'Restricted to logged in users';
$string['manageprotocols'] = 'Manage protocols';
$string['managetokens'] = 'Manage tokens';
$string['missingcaps'] = 'Missing capabilities';
--- /dev/null
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * This file is used to call any registered externallib function in Moodle.
+ *
+ * It will process more than one request and return more than one response if required.
+ * It is recommended to add webservice functions and re-use this script instead of
+ * writing any new custom ajax scripts.
+ *
+ * @since Moodle 2.9
+ * @package core
+ * @copyright 2015 Damyon Wiese
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+define('NO_MOODLE_COOKIES', true);
+require_once('service.php');
require_once(dirname(__FILE__) . '/../../config.php');
require_once($CFG->libdir . '/externallib.php');
-require_login(null, true, null, true, true);
-require_sesskey();
-
$rawjson = file_get_contents('php://input');
$requests = json_decode($rawjson, true);
$externalfunctioninfo = external_function_info($methodname);
if (!$externalfunctioninfo->allowed_from_ajax) {
+ error_log('This external function is not available to ajax. Failed to call "' . $methodname . '"');
throw new moodle_exception('servicenotavailable', 'webservice');
}
+ // Do not allow access to write or delete webservices as a public user.
+ if ($externalfunctioninfo->loginrequired) {
+ if (defined('NO_MOODLE_COOKIES') && NO_MOODLE_COOKIES) {
+ error_log('Set "loginrequired" to false in db/service.php when calling entry point service-nologin.php. ' .
+ 'Failed to call "' . $methodname . '"');
+ throw new moodle_exception('servicenotavailable', 'webservice');
+ }
+ if (!isloggedin()) {
+ error_log('This external function is not available to public users. Failed to call "' . $methodname . '"');
+ throw new moodle_exception('servicenotavailable', 'webservice');
+ } else {
+ require_sesskey();
+ }
+ }
+
// Validate params, this also sorts the params properly, we need the correct order in the next part.
$callable = array($externalfunctioninfo->classname, 'validate_parameters');
$params = call_user_func($callable,
* can be attached to the promises returned by this function.
* @param {Boolean} async Optional, defaults to true.
* If false - this function will not return until the promises are resolved.
+ * @param {Boolean} loginrequired Optional, defaults to true.
+ * If false - this function will call the faster nologin ajax script - but
+ * will fail unless all functions have been marked as 'loginrequired' => false
+ * in services.php
* @return {Promise[]} Array of promises that will be resolved when the ajax call returns.
*/
- call: function(requests, async) {
+ call: function(requests, async, loginrequired) {
var ajaxRequestData = [],
i,
promises = [];
+ if (typeof loginrequired === "undefined") {
+ loginrequired = true;
+ }
if (typeof async === "undefined") {
async = true;
}
async: async
};
+ var script = config.wwwroot + '/lib/ajax/service.php?sesskey=' + config.sesskey;
+ if (!loginrequired) {
+ script = config.wwwroot + '/lib/ajax/service-nologin.php?sesskey=' + config.sesskey;
+ }
+
// Jquery deprecated done and fail with async=false so we need to do this 2 ways.
if (async) {
- $.ajax(config.wwwroot + '/lib/ajax/service.php?sesskey=' + config.sesskey, settings)
+ $.ajax(script, settings)
.done(requestSuccess)
.fail(requestFail);
} else {
settings.success = requestSuccess;
settings.error = requestFail;
- $.ajax(config.wwwroot + '/lib/ajax/service.php?sesskey=' + config.sesskey, settings);
+ $.ajax(script, settings);
}
return promises;
});
}
- var deferreds = ajax.call(ajaxrequests);
+ var deferreds = ajax.call(ajaxrequests, true, false);
$.when.apply(null, deferreds).done(
function() {
// Turn the list of arguments (unknown length) into a real array.
template: name,
themename: currentThemeName
}
- }], async);
+ }], async, false);
promises[0].done(
function (templateSource) {
);
}
- /**
- * Can this function be called directly from ajax?
- *
- * @return boolean
- * @since Moodle 2.9
- */
- public static function load_template_is_allowed_from_ajax() {
- return true;
- }
-
/**
* Return a mustache template, and all the strings it requires.
*
'classpath' => 'lib/external/externallib.php',
'description' => 'Return a translated string - similar to core get_string() call',
'type' => 'read',
+ 'loginrequired' => false,
+ 'ajax' => true,
),
'core_get_strings' => array(
'classpath' => 'lib/external/externallib.php',
'description' => 'Return some translated strings - like several core get_string() calls',
'type' => 'read',
+ 'loginrequired' => false,
+ 'ajax' => true,
),
'core_get_component_strings' => array(
'description' => 'Return all raw strings (with {$a->xxx}) for a specific component
- similar to core get_component_strings() call',
'type' => 'read',
+ 'loginrequired' => false,
+ 'ajax' => true,
),
'classname' => 'core\output\external',
'methodname' => 'load_template',
'description' => 'Load a template for a renderable',
- 'type' => 'read'
+ 'type' => 'read',
+ 'loginrequired' => false,
+ 'ajax' => true,
),
// Completion related functions.
'methodname' => 'update_tags',
'description' => 'Updates tags',
'type' => 'write',
+ 'ajax' => true
),
'core_tag_get_tags' => array(
'methodname' => 'get_tags',
'description' => 'Gets tags by their ids',
'type' => 'read',
+ 'ajax' => true
),
);
'mod_forum_get_forum_discussions_paginated',
'mod_forum_get_forum_discussion_posts',
'mod_forum_add_discussion_post',
+ 'mod_forum_add_discussion',
'core_files_get_files',
'core_message_get_messages',
'core_message_create_contacts',
'core_user_add_user_private_files',
'mod_assign_view_grading_table',
'mod_scorm_view_scorm',
+ 'mod_scorm_get_scorm_attempt_count',
'mod_page_view_page',
'mod_resource_view_resource',
'mod_folder_view_folder',
return $strparams;
}
- /**
- * Can this function be called directly from ajax?
- *
- * @return boolean
- * @since Moodle 2.9
- */
- public static function get_string_is_allowed_from_ajax() {
- return true;
- }
-
/**
* Returns description of get_string parameters
*
);
}
- /**
- * Can this function be called directly from ajax?
- *
- * @return boolean
- * @since Moodle 2.9
- */
- public static function get_strings_is_allowed_from_ajax() {
- return true;
- }
-
-
/**
* Return multiple call to core get_string()
*
);
}
- /**
- * Can this function be called directly from ajax?
- *
- * @return boolean
- * @since Moodle 2.9
- */
- public static function get_component_strings_is_allowed_from_ajax() {
- return true;
- }
-
/**
* Return all lang strings of a component - call to core get_component_strings().
*
}
}
$function->allowed_from_ajax = false;
- if (method_exists($function->classname, $function->ajax_method)) {
- if (call_user_func(array($function->classname, $function->ajax_method)) === true) {
- $function->allowed_from_ajax = true;
- }
- }
// fetch the parameters description
$function->parameters_desc = call_user_func(array($function->classname, $function->parameters_method));
if (isset($functions[$function->name]['testclientpath'])) {
$function->testclientpath = $functions[$function->name]['testclientpath'];
}
+ if (isset($functions[$function->name]['type'])) {
+ $function->type = $functions[$function->name]['type'];
+ }
+ if (isset($functions[$function->name]['ajax'])) {
+ $function->allowed_from_ajax = $functions[$function->name]['ajax'];
+ } else if (method_exists($function->classname, $function->ajax_method)) {
+ if (call_user_func(array($function->classname, $function->ajax_method)) === true) {
+ debugging('External function ' . $function->ajax_method . '() function is deprecated.' .
+ 'Set ajax=>true in db/service.php instead.', DEBUG_DEVELOPER);
+ $function->allowed_from_ajax = true;
+ }
+ }
+ if (isset($functions[$function->name]['loginrequired'])) {
+ $function->loginrequired = $functions[$function->name]['loginrequired'];
+ } else {
+ $function->loginrequired = true;
+ }
}
return $function;
* @return array An array containing 'object', 'type', 'depth' and optionally 'children'
*/
static private function _fetch_course_tree_recursion($category_array, &$sortorder) {
- // update the sortorder in db if needed
- //NOTE: This leads to us resetting sort orders every time the categories and items page is viewed :(
- //if ($category_array['object']->sortorder != $sortorder) {
- //$category_array['object']->set_sortorder($sortorder);
- //}
-
if (isset($category_array['object']->gradetype) && $category_array['object']->gradetype==GRADE_TYPE_NONE) {
return null;
}
FROM {message} m
JOIN {message_working} mw ON m.id=mw.unreadmessageid
JOIN {message_processors} p ON mw.processorid=p.id
- JOIN {user} u ON m.useridfrom=u.id
LEFT JOIN {message_contacts} c ON c.contactid = m.useridfrom
AND c.userid = m.useridto
WHERE m.useridto = :userid
$gradenode = $coursenode->add(get_string('grades'), $url, self::TYPE_SETTING, null, 'grades', new pix_icon('i/grades', ''));
}
+ // Check if we can view the gradebook's setup page.
+ if (has_capability('moodle/grade:manage', $coursecontext)) {
+ $url = new moodle_url('/grade/edit/tree/index.php', array('id' => $course->id));
+ $coursenode->add(get_string('gradebooksetup', 'grades'), $url, self::TYPE_SETTING,
+ null, 'gradebooksetup', new pix_icon('i/settings', ''));
+ }
+
// Add outcome if permitted
if (!empty($CFG->enableoutcomes) && has_capability('moodle/course:update', $coursecontext)) {
$url = new moodle_url('/grade/edit/outcome/course.php', array('id'=>$course->id));
--- /dev/null
+{{!
+ This file is part of Moodle - http://moodle.org/
+
+ Moodle is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Moodle is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+}}
+{{!
+ @template core/columns-1to1to1
+
+ Moodle columns-1to1to1 template.
+
+ The purpose of this template is to render a template with 3 columns.
+ On mobile the columns stack underneath each other.
+
+ Classes required for JS:
+ * none
+
+ Data attributes required for JS:
+ * none
+
+ Context variables required for this template:
+ * col1content Column 1 contents.
+ * col2content Column 2 contents.
+ * col3content Column 3 contents.
+
+ Example context (json):
+ {
+ "col1content": "<div class='alert alert-error'>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam pellentesque id urna sit amet tempor.</div>",
+ "col2content": "<div class='alert alert-success'>Donec lacus nisl, molestie eget sodales non, sodales et nibh. Praesent dignissim placerat sodales.</div>",
+ "col3content": "<div class='alert alert-info'>Praesent sit amet ante odio. In mollis nisl at mi bibendum venenatis.</div>"
+ }
+
+}}
+<div class="row-fluid rtl-compatible">
+ <div class="span4">{{$ column1 }}{{{ col1content }}}{{/ column1 }}</div>
+ <div class="span4">{{$ column2 }}{{{ col2content }}}{{/ column2 }}</div>
+ <div class="span4">{{$ column3 }}{{{ col3content }}}{{/ column3 }}</div>
+</div>
--- /dev/null
+{{!
+ This file is part of Moodle - http://moodle.org/
+
+ Moodle is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Moodle is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+}}
+{{!
+ @template core/columns-1to2
+
+ Moodle columns-1to2 template.
+
+ The purpose of this template is to render 2 columns where the second column has twice the width of the first one.
+ On mobile the second column collapses underneath the first.
+
+ Classes required for JS:
+ * none
+
+ Data attributes required for JS:
+ * none
+
+ Context variables required for this template:
+ * col1content Column 1 contents.
+ * col2content Column 2 contents.
+
+ Example context (json):
+ {
+ "col1content": "<div class='alert alert-info'>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In porttitor vulputate turpis, quis tempor arcu.</div>",
+ "col2content": "<div class='alert alert-success'>Vivamus ac orci in velit fringilla aliquam a a nisl. Cras luctus quam laoreet magna pulvinar aliquet.</div>"
+ }
+
+}}
+<div class="row-fluid rtl-compatible">
+ <div class="span4">{{$ column1 }}{{{ col1content }}}{{/ column1 }}</div>
+ <div class="span8">{{$ column2 }}{{{ col2content }}}{{/ column2 }}</div>
+</div>
--- /dev/null
+{{!
+ This file is part of Moodle - http://moodle.org/
+
+ Moodle is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Moodle is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+}}
+{{!
+ @template core/columns-2to1
+
+ Moodle columns-2to1 template.
+
+ The purpose of this template is to render 2 columns where the first column has twice the width of the second one.
+ On mobile the second column collapses underneath the first.
+
+ Classes required for JS:
+ * none
+
+ Data attributes required for JS:
+ * none
+
+ Context variables required for this template:
+ * col1content Column 1 contents.
+ * col2content Column 2 contents.
+
+ Example context (json):
+ {
+ "col1content": "<div class='alert alert-info'>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In porttitor vulputate turpis, quis tempor arcu.</div>",
+ "col2content": "<div class='alert alert-success'>Vivamus ac orci in velit fringilla aliquam a a nisl. Cras luctus quam laoreet magna pulvinar aliquet.</div>"
+ }
+}}
+<div class="row-fluid rtl-compatible">
+ <div class="span8">{{$ column1 }}{{{ col1content }}}{{/ column1 }}</div>
+ <div class="span4">{{$ column2 }}{{{ col2content }}}{{/ column2 }}</div>
+</div>
--- /dev/null
+{{!
+ This file is part of Moodle - http://moodle.org/
+
+ Moodle is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Moodle is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+}}
+{{!
+ @template core/columns-autoflow-1to1to1
+
+ Moodle columns-autoflow-1to1to1 template.
+
+ The purpose of this template is to render a template with 3 columns where the content automatically
+ flows from one column to the next in order to balance all 3 columns. Based on CSS3.
+
+ Classes required for JS:
+ * none
+
+ Data attributes required for JS:
+ * none
+
+ Context variables required for this template:
+ * message Content that will be displayed in three columns.
+
+ Example context (json):
+ {
+ "message": "<div class='alert alert-info'>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean tincidunt interdum tellus, id ullamcorper magna fringilla nec. Mauris lacinia ipsum vel mollis vehicula. Vivamus hendrerit lacinia efficitur. Sed feugiat nunc condimentum dui faucibus, nec facilisis ipsum egestas. Proin venenatis turpis nec felis molestie porttitor. Nulla et orci lectus.</div>"
+ }
+
+}}
+<div class="columns-autoflow-1to1to1">{{$ content }}{{{ message }}}{{/ content }}</div>
3) Create a forum 'f2'
4) Create a quiz 'q1' with one question (e.g. true/false question)
5) Create a quiz 'q2' with one question (can use same question)
-6) In gradebook/reports/categories and items, edit q2's grade (show advanced)
+6) In gradebook/reports/gradebook setup, edit q2's grade (show advanced)
to assign a 'grade to pass' of 5.0.
[Note: Due to a bug in gradebook at time of writing, you may have to go into
admin screens and make sure that 'Student' is included on the list of graded
=== 3.0 ===
+* External functions x_is_allowed_from_ajax() methods have been deprecated. Define 'ajax' => true in db/services.php instead.
+* External functions can be called without a session if they define 'loginrequired' => true in db/services.php.
* All plugins are required to declare their frankenstyle component name via
the $plugin->component property in their version.php file. See
https://docs.moodle.org/dev/version.php for details (MDL-48494).
// Technically, HTTP/1.1 requires Location: header to contain the absolute path.
// (In practice browsers accept relative paths - but still, might as well do it properly.)
// This code turns relative into absolute.
- if (!preg_match('|^[a-z]+:|', $url)) {
+ if (!preg_match('|^[a-z]+:|i', $url)) {
// Get host name http://www.wherever.com.
$hostpart = preg_replace('|^(.*?[^:/])/.*$|', '$1', $CFG->wwwroot);
if (preg_match('|^/|', $url)) {
*/
function signup_captcha_enabled() {
global $CFG;
- return !empty($CFG->recaptchapublickey) && !empty($CFG->recaptchaprivatekey) && get_config('auth/email', 'recaptcha');
+ $authplugin = get_auth_plugin($CFG->registerauth);
+ return !empty($CFG->recaptchapublickey) && !empty($CFG->recaptchaprivatekey) && $authplugin->is_captcha_enabled();
}
}
FROM {assign_submission}
GROUP BY assignment, groupid, userid';
- // Note: souterouter looks redundant below, but it forces
- // MySQL to use an in memory table to store the results of the
- // inner query. Without this MySQL would complain that the UPDATE
- // is operating on the same table as the FROM (which is true).
- $maxattemptidssql = 'SELECT souterouter.id FROM (
- SELECT souter.id
- FROM {assign_submission} souter
- JOIN (' . $maxattemptsql . ') sinner
- ON souter.assignment = sinner.assignment
- AND souter.userid = sinner.userid
- AND souter.groupid = sinner.groupid
- AND souter.attemptnumber = sinner.maxattempt
- ) souterouter';
- $select = 'id IN(' . $maxattemptidssql . ')';
- $DB->set_field_select('assign_submission', 'latest', 1, $select);
+ $maxattemptidssql = 'SELECT souter.id
+ FROM {assign_submission} souter
+ JOIN (' . $maxattemptsql . ') sinner
+ ON souter.assignment = sinner.assignment
+ AND souter.userid = sinner.userid
+ AND souter.groupid = sinner.groupid
+ AND souter.attemptnumber = sinner.maxattempt';
+
+ // We need to avoid using "WHERE ... IN(SELECT ...)" clause with MySQL for performance reason.
+ // TODO MDL-29589 Remove this dbfamily exception when implemented.
+ if ($DB->get_dbfamily() === 'mysql') {
+ $params = array('latest' => 1);
+ $sql = 'UPDATE {assign_submission}
+ INNER JOIN (' . $maxattemptidssql . ') souterouter ON souterouter.id = {assign_submission}.id
+ SET latest = :latest';
+ $DB->execute($sql, $params);
+ } else {
+ $select = 'id IN(' . $maxattemptidssql . ')';
+ $DB->set_field_select('assign_submission', 'latest', 1, $select);
+ }
// Look for grade records with no submission record.
// This is when a teacher has marked a student before they submitted anything.
$string['attempthistory'] = 'Previous attempts';
$string['attemptsettings'] = 'Attempt settings';
$string['attemptreopenmethod'] = 'Attempts reopened';
-$string['attemptreopenmethod_help'] = 'Determines how student submission attempts are reopened. The available options are: <ul><li>Never - The student submission cannot be reopened.</li><li>Manually - The student submission can be reopened by a teacher.</li><li>Automatically until pass - The student submission is automatically reopened until the student achieves the grade to pass value set in the Gradebook (Categories and items section) for this assignment.</li></ul>';
+$string['attemptreopenmethod_help'] = 'Determines how student submission attempts are reopened. The available options are: <ul><li>Never - The student submission cannot be reopened.</li><li>Manually - The student submission can be reopened by a teacher.</li><li>Automatically until pass - The student submission is automatically reopened until the student achieves the grade to pass value set in the Gradebook (Gradebook setup section) for this assignment.</li></ul>';
$string['attemptreopenmethod_manual'] = 'Manually';
$string['attemptreopenmethod_none'] = 'Never';
$string['attemptreopenmethod_untilpass'] = 'Automatically until pass';
// =====================================================
echo $OUTPUT->header();
-echo $OUTPUT->heading($book->name);
+echo $OUTPUT->heading(format_string($book->name));
$navclasses = book_get_nav_classes();
And I follow "Course 1"
And I turn editing mode on
- @javascript
Scenario: Publish anonymous results
Given I add a "Choice" to section "1" and I fill the form with:
| Choice name | Choice 1 |
And I follow "Choice 1"
Then I should not see "Student 1"
And I should not see "Users who chose this option"
- And I hover ".results .graph img" "css_element"
+ And ".results .graph img" "css_element" should exist
- @javascript
Scenario: Publish full results
Given I add a "Choice" to section "1" and I fill the form with:
| Choice name | Choice 1 |
'type' => 'write',
'capabilities' => 'mod/forum:replypost'
),
+
+ 'mod_forum_add_discussion' => array(
+ 'classname' => 'mod_forum_external',
+ 'methodname' => 'add_discussion',
+ 'classpath' => 'mod/forum/externallib.php',
+ 'description' => 'Add a new discussion into an existing forum.',
+ 'type' => 'write',
+ 'capabilities' => 'mod/forum:startdiscussion'
+ ),
);
);
}
+ /**
+ * Returns description of method parameters
+ *
+ * @return external_function_parameters
+ * @since Moodle 3.0
+ */
+ public static function add_discussion_parameters() {
+ return new external_function_parameters(
+ array(
+ 'forumid' => new external_value(PARAM_INT, 'Forum instance ID'),
+ 'subject' => new external_value(PARAM_TEXT, 'New Discussion subject'),
+ 'message' => new external_value(PARAM_RAW, 'New Discussion message (only html format allowed)'),
+ 'groupid' => new external_value(PARAM_INT, 'The group, default to -1', VALUE_DEFAULT, -1),
+ 'options' => new external_multiple_structure (
+ new external_single_structure(
+ array(
+ 'name' => new external_value(PARAM_ALPHANUM,
+ 'The allowed keys (value format) are:
+ discussionsubscribe (bool); subscribe to the discussion?, default to true
+ '),
+ 'value' => new external_value(PARAM_RAW, 'The value of the option,
+ This param is validated in the external function.'
+ )
+ )
+ ), 'Options', VALUE_DEFAULT, array())
+ )
+ );
+ }
+
+ /**
+ * Add a new discussion into an existing forum.
+ *
+ * @param int $forumid the forum instance id
+ * @param string $subject new discussion subject
+ * @param string $message new discussion message (only html format allowed)
+ * @param int $groupid the user course group
+ * @param array $options optional settings
+ * @return array of warnings and the new discussion id
+ * @since Moodle 3.0
+ * @throws moodle_exception
+ */
+ public static function add_discussion($forumid, $subject, $message, $groupid = -1, $options = array()) {
+ global $DB, $CFG;
+ require_once($CFG->dirroot . "/mod/forum/lib.php");
+
+ $params = self::validate_parameters(self::add_discussion_parameters(),
+ array(
+ 'forumid' => $forumid,
+ 'subject' => $subject,
+ 'message' => $message,
+ 'groupid' => $groupid,
+ 'options' => $options
+ ));
+ // Validate options.
+ $options = array(
+ 'discussionsubscribe' => true
+ );
+ foreach ($params['options'] as $option) {
+ $name = trim($option['name']);
+ switch ($name) {
+ case 'discussionsubscribe':
+ $value = clean_param($option['value'], PARAM_BOOL);
+ break;
+ default:
+ throw new moodle_exception('errorinvalidparam', 'webservice', '', $name);
+ }
+ $options[$name] = $value;
+ }
+
+ $warnings = array();
+
+ // Request and permission validation.
+ $forum = $DB->get_record('forum', array('id' => $params['forumid']), '*', MUST_EXIST);
+ list($course, $cm) = get_course_and_cm_from_instance($forum, 'forum');
+
+ $context = context_module::instance($cm->id);
+ self::validate_context($context);
+
+ // Normalize group.
+ if (!groups_get_activity_groupmode($cm)) {
+ // Groups not supported, force to -1.
+ $groupid = -1;
+ } else {
+ // Check if we receive the default or and empty value for groupid,
+ // in this case, get the group for the user in the activity.
+ if ($groupid === -1 or empty($params['groupid'])) {
+ $groupid = groups_get_activity_group($cm);
+ } else {
+ // Here we rely in the group passed, forum_user_can_post_discussion will validate the group.
+ $groupid = $params['groupid'];
+ }
+ }
+
+ if (!forum_user_can_post_discussion($forum, $groupid, -1, $cm, $context)) {
+ throw new moodle_exception('cannotcreatediscussion', 'forum');
+ }
+
+ $thresholdwarning = forum_check_throttling($forum, $cm);
+ forum_check_blocking_threshold($thresholdwarning);
+
+ // Create the discussion.
+ $discussion = new stdClass();
+ $discussion->course = $course->id;
+ $discussion->forum = $forum->id;
+ $discussion->message = $params['message'];
+ $discussion->messageformat = FORMAT_HTML; // Force formatting for now.
+ $discussion->messagetrust = trusttext_trusted($context);
+ $discussion->itemid = 0;
+ $discussion->groupid = $groupid;
+ $discussion->mailnow = 0;
+ $discussion->subject = $params['subject'];
+ $discussion->name = $discussion->subject;
+ $discussion->timestart = 0;
+ $discussion->timeend = 0;
+
+ if ($discussionid = forum_add_discussion($discussion)) {
+
+ $discussion->id = $discussionid;
+
+ // Trigger events and completion.
+
+ $params = array(
+ 'context' => $context,
+ 'objectid' => $discussion->id,
+ 'other' => array(
+ 'forumid' => $forum->id,
+ )
+ );
+ $event = \mod_forum\event\discussion_created::create($params);
+ $event->add_record_snapshot('forum_discussions', $discussion);
+ $event->trigger();
+
+ $completion = new completion_info($course);
+ if ($completion->is_enabled($cm) &&
+ ($forum->completiondiscussions || $forum->completionposts)) {
+ $completion->update_state($cm, COMPLETION_COMPLETE);
+ }
+
+ $settings = new stdClass();
+ $settings->discussionsubscribe = $options['discussionsubscribe'];
+ forum_post_subscription($settings, $forum, $discussion);
+ } else {
+ throw new moodle_exception('couldnotadd', 'forum');
+ }
+
+ $result = array();
+ $result['discussionid'] = $discussionid;
+ $result['warnings'] = $warnings;
+ return $result;
+ }
+
+ /**
+ * Returns description of method result value
+ *
+ * @return external_description
+ * @since Moodle 3.0
+ */
+ public static function add_discussion_returns() {
+ return new external_single_structure(
+ array(
+ 'discussionid' => new external_value(PARAM_INT, 'New Discussion ID'),
+ 'warnings' => new external_warnings()
+ )
+ );
+ }
+
}
}
}
}
- $returnto = forum_go_back_to("index.php?id=$course->id");
+ $returnto = forum_go_back_to(new moodle_url('/mod/forum/index.php', array('id' => $course->id)));
$shortname = format_string($course->shortname, true, array('context' => context_course::instance($course->id)));
if ($subscribe) {
redirect($returnto, get_string('nowallsubscribed', 'forum', $shortname), 1);
/**
* @global object
- * @param string $default
+ * @param string|\moodle_url $default
* @return string
*/
function forum_go_back_to($default) {
require_login($course, false, $cm);
if ($returnpage == 'index.php') {
- $returnto = forum_go_back_to($returnpage.'?id='.$course->id);
+ $returnto = forum_go_back_to(new moodle_url("/mod/forum/$returnpage", array('id' => $course->id)));
} else {
- $returnto = forum_go_back_to($returnpage.'?f='.$forum->id);
+ $returnto = forum_go_back_to(new moodle_url("/mod/forum/$returnpage", array('f' => $forum->id)));
}
if (isguestuser()) { // Guests can't change forum
$timepassed = time() - $post->created;
if (($timepassed > $CFG->maxeditingtime) && !has_capability('mod/forum:deleteanypost', $modcontext)) {
print_error("cannotdeletepost", "forum",
- forum_go_back_to("discuss.php?d=$post->discussion"));
+ forum_go_back_to(new moodle_url("/mod/forum/discuss.php", array('d' => $post->discussion))));
}
if ($post->totalscore) {
notice(get_string('couldnotdeleteratings', 'rating'),
- forum_go_back_to("discuss.php?d=$post->discussion"));
+ forum_go_back_to(new moodle_url("/mod/forum/discuss.php", array('d' => $post->discussion))));
} else if ($replycount && !has_capability('mod/forum:deleteanypost', $modcontext)) {
print_error("couldnotdeletereplies", "forum",
- forum_go_back_to("discuss.php?d=$post->discussion"));
+ forum_go_back_to(new moodle_url("/mod/forum/discuss.php", array('d' => $post->discussion))));
} else {
if (! $post->parent) { // post is a discussion topic as well, so delete discussion
if ($forum->type == 'single') {
notice("Sorry, but you are not allowed to delete that discussion!",
- forum_go_back_to("discuss.php?d=$post->discussion"));
+ forum_go_back_to(new moodle_url("/mod/forum/discuss.php", array('d' => $post->discussion))));
}
forum_delete_discussion($discussion, false, $course, $cm, $forum);
// Single discussion forums are an exception. We show
// the forum itself since it only has one discussion
// thread.
- $discussionurl = "view.php?f=$forum->id";
+ $discussionurl = new moodle_url("/mod/forum/view.php", array('f' => $forum->id));
} else {
- $discussionurl = "discuss.php?d=$post->discussion";
+ $discussionurl = new moodle_url("/mod/forum/discuss.php", array('d' => $discussion->id));
}
$params = array(
if ($replycount) {
if (!has_capability('mod/forum:deleteanypost', $modcontext)) {
print_error("couldnotdeletereplies", "forum",
- forum_go_back_to("discuss.php?d=$post->discussion"));
+ forum_go_back_to(new moodle_url('/mod/forum/discuss.php', array('d' => $post->discussion), 'p'.$post->id)));
}
echo $OUTPUT->header();
echo $OUTPUT->heading(format_string($forum->name), 2);
if ($prunemform->is_cancelled()) {
- redirect(forum_go_back_to("discuss.php?d=$post->discussion"));
+ redirect(forum_go_back_to(new moodle_url("/mod/forum/discuss.php", array('d' => $post->discussion))));
} else if ($fromform = $prunemform->get_data()) {
// User submits the data.
$newdiscussion = new stdClass();
$event->add_record_snapshot('forum_discussions', $discussion);
$event->trigger();
- redirect(forum_go_back_to("discuss.php?d=$newid"));
+ redirect(forum_go_back_to(new moodle_url("/mod/forum/discuss.php", array('d' => $newid))));
} else {
// Display the prune form.
// Single discussion forums are an exception. We show
// the forum itself since it only has one discussion
// thread.
- $discussionurl = "view.php?f=$forum->id";
+ $discussionurl = new moodle_url("/mod/forum/view.php", array('f' => $forum->id));
} else {
- $discussionurl = "discuss.php?d=$discussion->id#p$fromform->id";
+ $discussionurl = new moodle_url("/mod/forum/discuss.php", array('d' => $discussion->id), 'p' . $fromform->id);
}
$params = array(
$event->add_record_snapshot('forum_discussions', $discussion);
$event->trigger();
- redirect(forum_go_back_to("$discussionurl"), $message.$subscribemessage, $timemessage);
+ redirect(forum_go_back_to($discussionurl), $message.$subscribemessage, $timemessage);
exit;
// Single discussion forums are an exception. We show
// the forum itself since it only has one discussion
// thread.
- $discussionurl = "view.php?f=$forum->id";
+ $discussionurl = new moodle_url("/mod/forum/view.php", array('f' => $forum->id), 'p'.$fromform->id);
} else {
- $discussionurl = "discuss.php?d=$discussion->id";
+ $discussionurl = new moodle_url("/mod/forum/discuss.php", array('d' => $discussion->id), 'p'.$fromform->id);
}
$params = array(
$completion->update_state($cm,COMPLETION_COMPLETE);
}
- redirect(forum_go_back_to("$discussionurl#p$fromform->id"), $message.$subscribemessage, $timemessage);
+ redirect(forum_go_back_to($discussionurl), $message.$subscribemessage, $timemessage);
} else {
print_error("couldnotadd", "forum", $errordestination);
print_error('invalidcoursemodule');
}
require_login($course, false, $cm);
-
-$returnto = forum_go_back_to($returnpage.'?id='.$course->id.'&f='.$forum->id);
+$returnpageurl = new moodle_url('/mod/forum/' . $returnpage, array('id' => $course->id, 'f' => $forum->id));
+$returnto = forum_go_back_to($returnpageurl);
if (!forum_tp_can_track_forums($forum)) {
redirect($returnto);
} else {
print_error('cannottrack', '', get_local_referer(false));
}
-}
-
-
+}
\ No newline at end of file
As a teacher
I need to set a minimum number of discussions to mark the forum activity as completed
- @javascript
Scenario: Set X number of discussions as a condition
Given the following "users" exist:
| username | firstname | lastname | email |
And I log out
And I log in as "student1"
And I follow "Course 1"
- Then I hover "//li[contains(concat(' ', normalize-space(@class), ' '), ' modtype_forum ')]/descendant::img[@alt='Not completed: Test forum name']" "xpath_element"
+ Then the "Test forum name" "forum" activity with "auto" completion should be marked as not complete
And I add a new discussion to "Test forum name" forum with:
| Subject | Post 1 subject |
| Message | Body 1 content |
| Subject | Post 2 subject |
| Message | Body 2 content |
And I follow "Course 1"
- And I hover "//li[contains(concat(' ', normalize-space(@class), ' '), ' modtype_forum ')]/descendant::img[contains(@alt, 'Completed: Test forum name')]" "xpath_element"
+ Then the "Test forum name" "forum" activity with "auto" completion should be marked as complete
And I log out
And I log in as "teacher1"
And I follow "Course 1"
<?php
-
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
}
}
+
+ /*
+ * Test add_discussion. A basic test since all the API functions are already covered by unit tests.
+ */
+ public function test_add_discussion() {
+
+ $this->resetAfterTest(true);
+
+ // Create courses to add the modules.
+ $course = self::getDataGenerator()->create_course();
+
+ $user1 = self::getDataGenerator()->create_user();
+ $user2 = self::getDataGenerator()->create_user();
+
+ // First forum with tracking off.
+ $record = new stdClass();
+ $record->course = $course->id;
+ $record->type = 'news';
+ $forum = self::getDataGenerator()->create_module('forum', $record);
+
+ self::setUser($user1);
+ $this->getDataGenerator()->enrol_user($user1->id, $course->id);
+
+ try {
+ mod_forum_external::add_discussion($forum->id, 'the subject', 'some text here...');
+ $this->fail('Exception expected due to invalid permissions.');
+ } catch (moodle_exception $e) {
+ $this->assertEquals('cannotcreatediscussion', $e->errorcode);
+ }
+
+ self::setAdminUser();
+ $discussion = mod_forum_external::add_discussion($forum->id, 'the subject', 'some text here...');
+ $discussion = external_api::clean_returnvalue(mod_forum_external::add_discussion_returns(), $discussion);
+
+ $discussions = mod_forum_external::get_forum_discussions_paginated($forum->id);
+ $discussions = external_api::clean_returnvalue(mod_forum_external::get_forum_discussions_paginated_returns(), $discussions);
+
+ $this->assertCount(1, $discussions['discussions']);
+ $this->assertCount(0, $discussions['warnings']);
+
+ $this->assertEquals($discussion['discussionid'], $discussions['discussions'][0]['discussion']);
+ $this->assertEquals(-1, $discussions['discussions'][0]['groupid']);
+ $this->assertEquals('the subject', $discussions['discussions'][0]['subject']);
+ $this->assertEquals('some text here...', $discussions['discussions'][0]['message']);
+
+ }
+
+ /**
+ * Test adding discussions in a course with gorups
+ */
+ public function test_add_discussion_in_course_with_groups() {
+ global $CFG;
+
+ $this->resetAfterTest(true);
+
+ // Create course to add the module.
+ $course = self::getDataGenerator()->create_course(array('groupmode' => VISIBLEGROUPS, 'groupmodeforce' => 0));
+ $user = self::getDataGenerator()->create_user();
+ $this->getDataGenerator()->enrol_user($user->id, $course->id);
+
+ // Forum forcing separate gropus.
+ $record = new stdClass();
+ $record->course = $course->id;
+ $forum = self::getDataGenerator()->create_module('forum', $record, array('groupmode' => SEPARATEGROUPS));
+
+ // Try to post (user not enrolled).
+ self::setUser($user);
+
+ // The user is not enroled in any group, try to post in a forum with separate groups.
+ try {
+ mod_forum_external::add_discussion($forum->id, 'the subject', 'some text here...');
+ $this->fail('Exception expected due to invalid group permissions.');
+ } catch (moodle_exception $e) {
+ $this->assertEquals('cannotcreatediscussion', $e->errorcode);
+ }
+
+ try {
+ mod_forum_external::add_discussion($forum->id, 'the subject', 'some text here...', 0);
+ $this->fail('Exception expected due to invalid group permissions.');
+ } catch (moodle_exception $e) {
+ $this->assertEquals('cannotcreatediscussion', $e->errorcode);
+ }
+
+ // Create a group.
+ $group = $this->getDataGenerator()->create_group(array('courseid' => $course->id));
+
+ // Try to post in a group the user is not enrolled.
+ try {
+ mod_forum_external::add_discussion($forum->id, 'the subject', 'some text here...', $group->id);
+ $this->fail('Exception expected due to invalid group permissions.');
+ } catch (moodle_exception $e) {
+ $this->assertEquals('cannotcreatediscussion', $e->errorcode);
+ }
+
+ // Add the user to a group.
+ groups_add_member($group->id, $user->id);
+
+ // Try to post in a group the user is not enrolled.
+ try {
+ mod_forum_external::add_discussion($forum->id, 'the subject', 'some text here...', $group->id + 1);
+ $this->fail('Exception expected due to invalid group.');
+ } catch (moodle_exception $e) {
+ $this->assertEquals('cannotcreatediscussion', $e->errorcode);
+ }
+
+ // Nost add the discussion using a valid group.
+ $discussion = mod_forum_external::add_discussion($forum->id, 'the subject', 'some text here...', $group->id);
+ $discussion = external_api::clean_returnvalue(mod_forum_external::add_discussion_returns(), $discussion);
+
+ $discussions = mod_forum_external::get_forum_discussions_paginated($forum->id);
+ $discussions = external_api::clean_returnvalue(mod_forum_external::get_forum_discussions_paginated_returns(), $discussions);
+
+ $this->assertCount(1, $discussions['discussions']);
+ $this->assertCount(0, $discussions['warnings']);
+ $this->assertEquals($discussion['discussionid'], $discussions['discussions'][0]['discussion']);
+ $this->assertEquals($group->id, $discussions['discussions'][0]['groupid']);
+
+ // Now add a discussions without indicating a group. The function should guess the correct group.
+ $discussion = mod_forum_external::add_discussion($forum->id, 'the subject', 'some text here...');
+ $discussion = external_api::clean_returnvalue(mod_forum_external::add_discussion_returns(), $discussion);
+
+ $discussions = mod_forum_external::get_forum_discussions_paginated($forum->id);
+ $discussions = external_api::clean_returnvalue(mod_forum_external::get_forum_discussions_paginated_returns(), $discussions);
+
+ $this->assertCount(2, $discussions['discussions']);
+ $this->assertCount(0, $discussions['warnings']);
+ $this->assertEquals($group->id, $discussions['discussions'][0]['groupid']);
+ $this->assertEquals($group->id, $discussions['discussions'][1]['groupid']);
+
+ // Enrol the same user in other group.
+ $group2 = $this->getDataGenerator()->create_group(array('courseid' => $course->id));
+ groups_add_member($group2->id, $user->id);
+
+ // Now add a discussions without indicating a group. The function should guess the correct group (the first one).
+ $discussion = mod_forum_external::add_discussion($forum->id, 'the subject', 'some text here...');
+ $discussion = external_api::clean_returnvalue(mod_forum_external::add_discussion_returns(), $discussion);
+
+ $discussions = mod_forum_external::get_forum_discussions_paginated($forum->id);
+ $discussions = external_api::clean_returnvalue(mod_forum_external::get_forum_discussions_paginated_returns(), $discussions);
+
+ $this->assertCount(3, $discussions['discussions']);
+ $this->assertCount(0, $discussions['warnings']);
+ $this->assertEquals($group->id, $discussions['discussions'][0]['groupid']);
+ $this->assertEquals($group->id, $discussions['discussions'][1]['groupid']);
+ $this->assertEquals($group->id, $discussions['discussions'][2]['groupid']);
+
+ }
+
}
As a teacher
I need to set end of lesson reached to mark the lesson activity as completed
- @javascript
Scenario: Set end reached as a condition
Given the following "users" exist:
| username | firstname | lastname | email |
| id_answer_editor_0 | Next page |
| id_jumpto_0 | Next page |
And I press "Save page"
- And I set the field "qtype" to "Add a content page"
+ And I select "Add a content page" from the "qtype" singleselect
And I set the following fields to these values:
| Page title | Second page name |
| Page contents | Second page contents |
And I log out
When I log in as "student1"
And I follow "Course 1"
- Then I hover "//li[contains(concat(' ', normalize-space(@class), ' '), ' modtype_lesson ')]/descendant::img[@alt='Not completed: Test lesson']" "xpath_element"
+ Then the "Test lesson" "lesson" activity with "auto" completion should be marked as not complete
And I follow "Test lesson"
And I press "Next page"
And I follow "Course 1"
- And I hover "//li[contains(concat(' ', normalize-space(@class), ' '), ' modtype_lesson ')]/descendant::img[@alt='Not completed: Test lesson']" "xpath_element"
+ Then the "Test lesson" "lesson" activity with "auto" completion should be marked as not complete
And I follow "Course 1"
And I follow "Test lesson"
And I should see "You have seen more than one page of this lesson already."
And I press "Next page"
And I press "Next page"
And I follow "Course 1"
- And I hover "//li[contains(concat(' ', normalize-space(@class), ' '), ' modtype_lesson ')]/descendant::img[@alt='Completed: Test lesson']" "xpath_element"
+ Then the "Test lesson" "lesson" activity with "auto" completion should be marked as complete
And I log out
And I log in as "teacher1"
And I follow "Course 1"
| id_answer_editor_0 | Next page |
| id_jumpto_0 | Next page |
And I press "Save page"
- And I set the field "qtype" to "Add a content page"
+ And I select "Add a content page" from the "qtype" singleselect
And I set the following fields to these values:
| Page title | Second page name |
| Page contents | Second page contents |
And I log out
When I log in as "student1"
And I follow "Course 1"
- Then I hover "//li[contains(concat(' ', normalize-space(@class), ' '), ' modtype_lesson ')]/descendant::img[@alt='Not completed: Test lesson']" "xpath_element"
+ Then the "Test lesson" "lesson" activity with "auto" completion should be marked as not complete
And I follow "Test lesson"
And I press "Next page"
And I press "Next page"
And I should see "You completed this lesson in"
And I should see ", which is less than the required time of 1 min. You might need to attempt the lesson again."
And I follow "Course 1"
- And I hover "//li[contains(concat(' ', normalize-space(@class), ' '), ' modtype_lesson ')]/descendant::img[@alt='Not completed: Test lesson']" "xpath_element"
+ And the "Test lesson" "lesson" activity with "auto" completion should be marked as not complete
And I follow "Course 1"
And I follow "Test lesson"
And I press "Next page"
And I press "Next page"
And I should not see "You might need to attempt the lesson again."
And I follow "Course 1"
- And I hover "//li[contains(concat(' ', normalize-space(@class), ' '), ' modtype_lesson ')]/descendant::img[@alt='Completed: Test lesson']" "xpath_element"
+ And the "Test lesson" "lesson" activity with "auto" completion should be marked as complete
And I log out
And I log in as "teacher1"
And I follow "Course 1"
Scenario: student1 uses up both attempts without passing
When I log in as "student1"
And I follow "Course 1"
- And "//img[contains(@alt, 'Not completed: Test quiz name')]" "xpath_element" should exist in the "li.modtype_quiz" "css_element"
+ And the "Test quiz name" "quiz" activity with "auto" completion should be marked as not complete
And I follow "Test quiz name"
And I press "Attempt quiz now"
And I set the field "False" to "1"
And I press "Next"
And I press "Submit all and finish"
And I follow "C1"
- And "//img[contains(@alt, 'Not completed: Test quiz name')]" "xpath_element" should exist in the "li.modtype_quiz" "css_element"
+ And the "Test quiz name" "quiz" activity with "auto" completion should be marked as not complete
And I follow "Test quiz name"
And I press "Re-attempt quiz"
And I set the field "False" to "1"
Scenario: student1 passes on the first try
When I log in as "student1"
And I follow "Course 1"
- And "//img[contains(@alt, 'Not completed: Test quiz name')]" "xpath_element" should exist in the "li.modtype_quiz" "css_element"
+ And the "Test quiz name" "quiz" activity with "auto" completion should be marked as not complete
And I follow "Test quiz name"
And I press "Attempt quiz now"
And I set the field "True" to "1"
'scormtype' => 'local',
'sha1hash' => null,
'revision' => '0',
- 'forcecompleted' => 1,
+ 'forcecompleted' => 0,
'forcenewattempt' => 0,
'lastattemptlock' => 0,
'displayattemptstatus' => 1,
- 'displaycoursestructure' => 1,
+ 'displaycoursestructure' => 0,
'timeopen' => '0',
'timeclose' => '0',
'introformat' => '0',
require_once($CFG->libdir . '/externallib.php');
require_once($CFG->dirroot . '/mod/scorm/lib.php');
+require_once($CFG->dirroot . '/mod/scorm/locallib.php');
/**
* SCORM module external functions
)
);
}
+
+ /**
+ * Describes the parameters for get_scorm_attempt_count.
+ *
+ * @return external_function_parameters
+ * @since Moodle 3.0
+ */
+ public static function get_scorm_attempt_count_parameters() {
+ return new external_function_parameters(
+ array(
+ 'scormid' => new external_value(PARAM_INT, 'SCORM instance id'),
+ 'userid' => new external_value(PARAM_INT, 'User id'),
+ 'ignoremissingcompletion' => new external_value(PARAM_BOOL,
+ 'Ignores attempts that haven\'t reported a grade/completion',
+ VALUE_DEFAULT, false),
+ )
+ );
+ }
+
+ /**
+ * Return the number of attempts done by a user in the given SCORM.
+ *
+ * @param int $scormid the scorm id
+ * @param int $userid the user id
+ * @param bool $ignoremissingcompletion ignores attempts that haven't reported a grade/completion
+ * @return array of warnings and the attempts count
+ * @since Moodle 3.0
+ */
+ public static function get_scorm_attempt_count($scormid, $userid, $ignoremissingcompletion = false) {
+ global $USER, $DB;
+
+ $params = self::validate_parameters(self::get_scorm_attempt_count_parameters(),
+ array('scormid' => $scormid, 'userid' => $userid,
+ 'ignoremissingcompletion' => $ignoremissingcompletion));
+
+ $attempts = array();
+ $warnings = array();
+
+ $scorm = $DB->get_record('scorm', array('id' => $params['scormid']), '*', MUST_EXIST);
+ $cm = get_coursemodule_from_instance('scorm', $scorm->id);
+
+ $context = context_module::instance($cm->id);
+ self::validate_context($context);
+
+ // Validate the user obtaining the context, it will fail if the user doesn't exists or have been deleted.
+ context_user::instance($params['userid']);
+
+ // Extra checks so only users with permissions can view other users attempts.
+ if ($USER->id != $params['userid']) {
+ require_capability('mod/scorm:viewreport', $context);
+ }
+
+ // If the SCORM is not open this function will throw exceptions.
+ scorm_require_available($scorm);
+
+ $attemptscount = scorm_get_attempt_count($params['userid'], $scorm, false, $params['ignoremissingcompletion']);
+
+ $result = array();
+ $result['attemptscount'] = $attemptscount;
+ $result['warnings'] = $warnings;
+ return $result;
+ }
+
+ /**
+ * Describes the get_scorm_attempt_count return value.
+ *
+ * @return external_single_structure
+ * @since Moodle 3.0
+ */
+ public static function get_scorm_attempt_count_returns() {
+
+ return new external_single_structure(
+ array(
+ 'attemptscount' => new external_value(PARAM_INT, 'Attempts count'),
+ 'warnings' => new external_warnings(),
+ )
+ );
+ }
+
}
<FIELD NAME="grademethod" TYPE="int" LENGTH="2" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
<FIELD NAME="whatgrade" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
<FIELD NAME="maxattempt" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="1" SEQUENCE="false"/>
- <FIELD NAME="forcecompleted" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="1" SEQUENCE="false"/>
+ <FIELD NAME="forcecompleted" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
<FIELD NAME="forcenewattempt" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
<FIELD NAME="lastattemptlock" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
<FIELD NAME="displayattemptstatus" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="1" SEQUENCE="false"/>
- <FIELD NAME="displaycoursestructure" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="1" SEQUENCE="false"/>
+ <FIELD NAME="displaycoursestructure" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
<FIELD NAME="updatefreq" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="Define when the package must be automatically update"/>
<FIELD NAME="sha1hash" TYPE="char" LENGTH="40" NOTNULL="false" SEQUENCE="false" COMMENT="package content or ext path hash"/>
<FIELD NAME="md5hash" TYPE="char" LENGTH="32" NOTNULL="true" SEQUENCE="false" COMMENT="MD5 Hash of package file"/>
'type' => 'write',
'capabilities' => ''
),
+
+ 'mod_scorm_get_scorm_attempt_count' => array(
+ 'classname' => 'mod_scorm_external',
+ 'methodname' => 'get_scorm_attempt_count',
+ 'description' => 'Return the number of attempts done by a user in the given SCORM.',
+ 'type' => 'read',
+ 'capabilities' => ''
+ ),
);
// Moodle v2.9.0 release upgrade line.
// Put any upgrade step following this.
+ if ($oldversion < 2015091400) {
+ $table = new xmldb_table('scorm');
+
+ // Changing the default of field forcecompleted on table scorm to 0.
+ $field = new xmldb_field('forcecompleted', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, '0', 'maxattempt');
+ // Launch change of default for field forcecompleted.
+ $dbman->change_field_default($table, $field);
+
+ // Changing the default of field displaycoursestructure on table scorm to 0.
+ $field = new xmldb_field('displaycoursestructure', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, '0', 'displayattemptstatus');
+ // Launch change of default for field displaycoursestructure.
+ $dbman->change_field_default($table, $field);
+
+ // Scorm savepoint reached.
+ upgrade_mod_savepoint(true, 2015091400, 'scorm');
+ }
+
return true;
}
}
// Returning 0 will cause default behaviour which will find the first launchable sco in the package.
return 0;
-}
\ No newline at end of file
+}
+
+/**
+ * Check if a SCORM is available for the current user.
+ *
+ * @param stdClass $scorm SCORM record
+ * @param boolean $checkviewreportcap Check the scorm:viewreport cap
+ * @param stdClass $context Module context, required if $checkviewreportcap is set to true
+ * @return array status (available or not and possible warnings)
+ * @since Moodle 3.0
+ */
+function scorm_get_availability_status($scorm, $checkviewreportcap = false, $context = null) {
+ $open = true;
+ $closed = false;
+ $warnings = array();
+
+ $timenow = time();
+ if (!empty($scorm->timeopen) and $scorm->timeopen > $timenow) {
+ $open = false;
+ }
+ if (!empty($scorm->timeclose) and $timenow > $scorm->timeclose) {
+ $closed = true;
+ }
+
+ if (!$open or $closed) {
+ if ($checkviewreportcap and !empty($context) and has_capability('mod/scorm:viewreport', $context)) {
+ return array(true, $warnings);
+ }
+
+ if (!$open) {
+ $warnings['notopenyet'] = userdate($scorm->timeopen);
+ }
+ if ($closed) {
+ $warnings['expired'] = userdate($scorm->timeclose);
+ }
+ return array(false, $warnings);
+ }
+
+ // Scorm is available.
+ return array(true, $warnings);
+}
+
+/**
+ * Requires a SCORM package to be available for the current user.
+ *
+ * @param stdClass $scorm SCORM record
+ * @param boolean $checkviewreportcap Check the scorm:viewreport cap
+ * @param stdClass $context Module context, required if $checkviewreportcap is set to true
+ * @throws moodle_exception
+ * @since Moodle 3.0
+ */
+function scorm_require_available($scorm, $checkviewreportcap = false, $context = null) {
+
+ list($available, $warnings) = scorm_get_availability_status($scorm, $checkviewreportcap, $context);
+
+ if (!$available) {
+ $reason = current(array_keys($warnings));
+ throw new moodle_exception($reason, 'scorm', '', $warnings[$reason]);
+ }
+
+}
class mod_scorm_external_testcase extends externallib_advanced_testcase {
/**
- * Test view_scorm
+ * Set up for every test
*/
- public function test_view_scorm() {
+ public function setUp() {
global $DB;
-
- $this->resetAfterTest(true);
-
+ $this->resetAfterTest();
$this->setAdminUser();
+
// Setup test data.
- $course = $this->getDataGenerator()->create_course();
- $scorm = $this->getDataGenerator()->create_module('scorm', array('course' => $course->id));
- $context = context_module::instance($scorm->cmid);
- $cm = get_coursemodule_from_instance('scorm', $scorm->id);
+ $this->course = $this->getDataGenerator()->create_course();
+ $this->scorm = $this->getDataGenerator()->create_module('scorm', array('course' => $this->course->id));
+ $this->context = context_module::instance($this->scorm->cmid);
+ $this->cm = get_coursemodule_from_instance('scorm', $this->scorm->id);
+
+ // Create users.
+ $this->student = self::getDataGenerator()->create_user();
+ $this->teacher = self::getDataGenerator()->create_user();
+
+ // Users enrolments.
+ $this->studentrole = $DB->get_record('role', array('shortname' => 'student'));
+ $this->teacherrole = $DB->get_record('role', array('shortname' => 'editingteacher'));
+ $this->getDataGenerator()->enrol_user($this->student->id, $this->course->id, $this->studentrole->id, 'manual');
+ $this->getDataGenerator()->enrol_user($this->teacher->id, $this->course->id, $this->teacherrole->id, 'manual');
+ }
+
+ /**
+ * Test view_scorm
+ */
+ public function test_view_scorm() {
+ global $DB;
// Test invalid instance id.
try {
$user = self::getDataGenerator()->create_user();
$this->setUser($user);
try {
- mod_scorm_external::view_scorm($scorm->id);
+ mod_scorm_external::view_scorm($this->scorm->id);
$this->fail('Exception expected due to not enrolled user.');
} catch (moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
// Test user with full capabilities.
- $studentrole = $DB->get_record('role', array('shortname' => 'student'));
- $this->getDataGenerator()->enrol_user($user->id, $course->id, $studentrole->id);
+ $this->studentrole = $DB->get_record('role', array('shortname' => 'student'));
+ $this->getDataGenerator()->enrol_user($user->id, $this->course->id, $this->studentrole->id);
// Trigger and capture the event.
$sink = $this->redirectEvents();
- $result = mod_scorm_external::view_scorm($scorm->id);
+ $result = mod_scorm_external::view_scorm($this->scorm->id);
$result = external_api::clean_returnvalue(mod_scorm_external::view_scorm_returns(), $result);
$events = $sink->get_events();
// Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_scorm\event\course_module_viewed', $event);
- $this->assertEquals($context, $event->get_context());
- $moodleurl = new \moodle_url('/mod/scorm/view.php', array('id' => $cm->id));
+ $this->assertEquals($this->context, $event->get_context());
+ $moodleurl = new \moodle_url('/mod/scorm/view.php', array('id' => $this->cm->id));
$this->assertEquals($moodleurl, $event->get_url());
$this->assertEventContextNotUsed($event);
$this->assertNotEmpty($event->get_name());
}
+
+ /**
+ * Test get scorm attempt count
+ */
+ public function test_mod_scorm_get_scorm_attempt_count_own_empty() {
+ // Set to the student user.
+ self::setUser($this->student);
+
+ // Retrieve my attempts (should be 0).
+ $result = mod_scorm_external::get_scorm_attempt_count($this->scorm->id, $this->student->id);
+ $result = external_api::clean_returnvalue(mod_scorm_external::get_scorm_attempt_count_returns(), $result);
+ $this->assertEquals(0, $result['attemptscount']);
+ }
+
+ public function test_mod_scorm_get_scorm_attempt_count_own_with_complete() {
+ // Set to the student user.
+ self::setUser($this->student);
+
+ // Create attempts.
+ $scoes = scorm_get_scoes($this->scorm->id);
+ $sco = array_shift($scoes);
+ scorm_insert_track($this->student->id, $this->scorm->id, $sco->id, 1, 'cmi.core.lesson_status', 'completed');
+ scorm_insert_track($this->student->id, $this->scorm->id, $sco->id, 2, 'cmi.core.lesson_status', 'completed');
+
+ $result = mod_scorm_external::get_scorm_attempt_count($this->scorm->id, $this->student->id);
+ $result = external_api::clean_returnvalue(mod_scorm_external::get_scorm_attempt_count_returns(), $result);
+ $this->assertEquals(2, $result['attemptscount']);
+ }
+
+ public function test_mod_scorm_get_scorm_attempt_count_own_incomplete() {
+ // Set to the student user.
+ self::setUser($this->student);
+
+ // Create a complete attempt, and an incomplete attempt.
+ $scoes = scorm_get_scoes($this->scorm->id);
+ $sco = array_shift($scoes);
+ scorm_insert_track($this->student->id, $this->scorm->id, $sco->id, 1, 'cmi.core.lesson_status', 'completed');
+ scorm_insert_track($this->student->id, $this->scorm->id, $sco->id, 2, 'cmi.core.credit', '0');
+
+ $result = mod_scorm_external::get_scorm_attempt_count($this->scorm->id, $this->student->id, true);
+ $result = external_api::clean_returnvalue(mod_scorm_external::get_scorm_attempt_count_returns(), $result);
+ $this->assertEquals(1, $result['attemptscount']);
+ }
+
+ public function test_mod_scorm_get_scorm_attempt_count_others_as_teacher() {
+ // As a teacher.
+ self::setUser($this->teacher);
+
+ // Create a completed attempt for student.
+ $scoes = scorm_get_scoes($this->scorm->id);
+ $sco = array_shift($scoes);
+ scorm_insert_track($this->student->id, $this->scorm->id, $sco->id, 1, 'cmi.core.lesson_status', 'completed');
+
+ // I should be able to view the attempts for my students.
+ $result = mod_scorm_external::get_scorm_attempt_count($this->scorm->id, $this->student->id);
+ $result = external_api::clean_returnvalue(mod_scorm_external::get_scorm_attempt_count_returns(), $result);
+ $this->assertEquals(1, $result['attemptscount']);
+ }
+
+ public function test_mod_scorm_get_scorm_attempt_count_others_as_student() {
+ // Create a second student.
+ $student2 = self::getDataGenerator()->create_user();
+ $this->getDataGenerator()->enrol_user($student2->id, $this->course->id, $this->studentrole->id, 'manual');
+
+ // As a student.
+ self::setUser($student2);
+
+ // I should not be able to view the attempts of another student.
+ $this->setExpectedException('required_capability_exception');
+ mod_scorm_external::get_scorm_attempt_count($this->scorm->id, $this->student->id);
+ }
+
+ public function test_mod_scorm_get_scorm_attempt_count_invalid_instanceid() {
+ // As student.
+ self::setUser($this->student);
+
+ // Test invalid instance id.
+ $this->setExpectedException('moodle_exception');
+ mod_scorm_external::get_scorm_attempt_count(0, $this->student->id);
+ }
+
+ public function test_mod_scorm_get_scorm_attempt_count_invalid_userid() {
+ // As student.
+ self::setUser($this->student);
+
+ $this->setExpectedException('moodle_exception');
+ mod_scorm_external::get_scorm_attempt_count($this->scorm->id, -1);
+ }
}
*/
class mod_scorm_lib_testcase extends externallib_advanced_testcase {
+ /**
+ * Set up for every test
+ */
+ public function setUp() {
+ global $DB;
+ $this->resetAfterTest();
+ $this->setAdminUser();
+
+ // Setup test data.
+ $this->course = $this->getDataGenerator()->create_course();
+ $this->scorm = $this->getDataGenerator()->create_module('scorm', array('course' => $this->course->id));
+ $this->context = context_module::instance($this->scorm->cmid);
+ $this->cm = get_coursemodule_from_instance('scorm', $this->scorm->id);
+
+ // Create users.
+ $this->student = self::getDataGenerator()->create_user();
+ $this->teacher = self::getDataGenerator()->create_user();
+
+ // Users enrolments.
+ $this->studentrole = $DB->get_record('role', array('shortname' => 'student'));
+ $this->teacherrole = $DB->get_record('role', array('shortname' => 'editingteacher'));
+ $this->getDataGenerator()->enrol_user($this->student->id, $this->course->id, $this->studentrole->id, 'manual');
+ $this->getDataGenerator()->enrol_user($this->teacher->id, $this->course->id, $this->teacherrole->id, 'manual');
+ }
+
/**
* Test scorm_view
* @return void
public function test_scorm_view() {
global $CFG;
- $this->resetAfterTest();
-
- $this->setAdminUser();
- // Setup test data.
- $course = $this->getDataGenerator()->create_course();
- $scorm = $this->getDataGenerator()->create_module('scorm', array('course' => $course->id));
- $context = context_module::instance($scorm->cmid);
- $cm = get_coursemodule_from_instance('scorm', $scorm->id);
-
// Trigger and capture the event.
$sink = $this->redirectEvents();
- scorm_view($scorm, $course, $cm, $context);
+ scorm_view($this->scorm, $this->course, $this->cm, $this->context);
$events = $sink->get_events();
$this->assertCount(1, $events);
// Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_scorm\event\course_module_viewed', $event);
- $this->assertEquals($context, $event->get_context());
- $url = new \moodle_url('/mod/scorm/view.php', array('id' => $cm->id));
+ $this->assertEquals($this->context, $event->get_context());
+ $url = new \moodle_url('/mod/scorm/view.php', array('id' => $this->cm->id));
$this->assertEquals($url, $event->get_url());
$this->assertEventContextNotUsed($event);
$this->assertNotEmpty($event->get_name());
}
+ /**
+ * Test scorm_get_availability_status and scorm_require_available
+ * @return void
+ */
+ public function test_scorm_check_and_require_available() {
+ global $DB;
+
+ // Set to the student user.
+ self::setUser($this->student);
+
+ // Usual case.
+ list($status, $warnings) = scorm_get_availability_status($this->scorm, false);
+ $this->assertEquals(true, $status);
+ $this->assertCount(0, $warnings);
+
+ // SCORM not open.
+ $this->scorm->timeopen = time() + DAYSECS;
+ list($status, $warnings) = scorm_get_availability_status($this->scorm, false);
+ $this->assertEquals(false, $status);
+ $this->assertCount(1, $warnings);
+
+ // SCORM closed.
+ $this->scorm->timeopen = 0;
+ $this->scorm->timeclose = time() - DAYSECS;
+ list($status, $warnings) = scorm_get_availability_status($this->scorm, false);
+ $this->assertEquals(false, $status);
+ $this->assertCount(1, $warnings);
+
+ // SCORM not open and closed.
+ $this->scorm->timeopen = time() + DAYSECS;
+ list($status, $warnings) = scorm_get_availability_status($this->scorm, false);
+ $this->assertEquals(false, $status);
+ $this->assertCount(2, $warnings);
+
+ // Now additional checkings with different parameters values.
+ list($status, $warnings) = scorm_get_availability_status($this->scorm, true, $this->context);
+ $this->assertEquals(false, $status);
+ $this->assertCount(2, $warnings);
+
+ // SCORM not open.
+ $this->scorm->timeopen = time() + DAYSECS;
+ $this->scorm->timeclose = 0;
+ list($status, $warnings) = scorm_get_availability_status($this->scorm, true, $this->context);
+ $this->assertEquals(false, $status);
+ $this->assertCount(1, $warnings);
+
+ // SCORM closed.
+ $this->scorm->timeopen = 0;
+ $this->scorm->timeclose = time() - DAYSECS;
+ list($status, $warnings) = scorm_get_availability_status($this->scorm, true, $this->context);
+ $this->assertEquals(false, $status);
+ $this->assertCount(1, $warnings);
+
+ // SCORM not open and closed.
+ $this->scorm->timeopen = time() + DAYSECS;
+ list($status, $warnings) = scorm_get_availability_status($this->scorm, true, $this->context);
+ $this->assertEquals(false, $status);
+ $this->assertCount(2, $warnings);
+
+ // As teacher now.
+ self::setUser($this->teacher);
+
+ // SCORM not open and closed.
+ $this->scorm->timeopen = time() + DAYSECS;
+ list($status, $warnings) = scorm_get_availability_status($this->scorm, false);
+ $this->assertEquals(false, $status);
+ $this->assertCount(2, $warnings);
+
+ // Now, we use the special capability.
+ // SCORM not open and closed.
+ $this->scorm->timeopen = time() + DAYSECS;
+ list($status, $warnings) = scorm_get_availability_status($this->scorm, true, $this->context);
+ $this->assertEquals(true, $status);
+ $this->assertCount(0, $warnings);
+
+ // Check exceptions does not broke anything.
+ scorm_require_available($this->scorm, true, $this->context);
+ // Now, expect exceptions.
+ $this->setExpectedException('moodle_exception', get_string("notopenyet", "scorm", userdate($this->scorm->timeopen)));
+
+ // Now as student other condition.
+ self::setUser($this->student);
+ $this->scorm->timeopen = 0;
+ $this->scorm->timeclose = time() - DAYSECS;
+
+ $this->setExpectedException('moodle_exception', get_string("expired", "scorm", userdate($this->scorm->timeclose)));
+ scorm_require_available($this->scorm, false);
+ }
+
}
defined('MOODLE_INTERNAL') || die();
-$plugin->version = 2015051102; // The current module version (Date: YYYYMMDDXX).
+$plugin->version = 2015091400; // The current module version (Date: YYYYMMDDXX).
$plugin->requires = 2015050500; // Requires this Moodle version.
$plugin->component = 'mod_scorm'; // Full name of the plugin (used for diagnostics).
$plugin->cron = 300;
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
\ No newline at end of file
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
\ No newline at end of file
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
}
public function classify_response(array $response) {
- $selectedchoices = array();
+ $selectedchoicekeys = array();
foreach ($this->stemorder as $key => $stemid) {
if (array_key_exists($this->field($key), $response) && $response[$this->field($key)]) {
- $selectedchoices[$stemid] = $this->choiceorder[$response[$this->field($key)]];
+ $selectedchoicekeys[$stemid] = $this->choiceorder[$response[$this->field($key)]];
} else {
- $selectedchoices[$stemid] = 0;
+ $selectedchoicekeys[$stemid] = 0;
}
}
$parts = array();
foreach ($this->stems as $stemid => $stem) {
- if (empty($selectedchoices[$stemid])) {
+ if ($this->right[$stemid] == 0 || !isset($selectedchoicekeys[$stemid])) {
+ // Choice for a deleted subquestion, ignore. (See apply_attempt_state.)
+ continue;
+ }
+ $selectedchoicekey = $selectedchoicekeys[$stemid];
+ if (empty($selectedchoicekey)) {
$parts[$stemid] = question_classified_response::no_response();
continue;
}
- $choice = $this->choices[$selectedchoices[$stemid]];
+ $choice = $this->choices[$selectedchoicekey];
+ if ($choice == get_string('deletedchoice', 'qtype_match')) {
+ // Deleted choice, ignore. (See apply_attempt_state.)
+ continue;
+ }
$parts[$stemid] = new question_classified_response(
- $selectedchoices[$stemid], $choice,
- ($selectedchoices[$stemid] == $this->right[$stemid]) / count($this->stems));
+ $selectedchoicekey, $choice,
+ ($selectedchoicekey == $this->right[$stemid]) / count($this->stems));
}
return $parts;
}
), $match->classify_response($response));
}
+ public function test_classify_response_choice_deleted_after_attempt() {
+ $match = test_question_maker::make_a_matching_question();
+ $firststep = new question_attempt_step();
+
+ $match->start_attempt($firststep, 1);
+ $response = $match->prepare_simulated_post_data(array(
+ 'Dog' => 'Amphibian', 'Frog' => 'Insect', 'Toad' => '', 'Cat' => 'Mammal'));
+
+ $match = test_question_maker::make_a_matching_question();
+ unset($match->stems[4]);
+ unset($match->stemsformat[4]);
+ unset($match->right[4]);
+ $match->apply_attempt_state($firststep);
+
+ $this->assertEquals(array(
+ 1 => new question_classified_response(2, 'Amphibian', 0),
+ 2 => new question_classified_response(3, 'Insect', 0),
+ 3 => question_classified_response::no_response(),
+ ), $match->classify_response($response));
+ }
+
+ public function test_classify_response_choice_added_after_attempt() {
+ $match = test_question_maker::make_a_matching_question();
+ $firststep = new question_attempt_step();
+
+ $match->start_attempt($firststep, 1);
+ $response = $match->prepare_simulated_post_data(array(
+ 'Dog' => 'Amphibian', 'Frog' => 'Insect', 'Toad' => '', 'Cat' => 'Mammal'));
+
+ $match = test_question_maker::make_a_matching_question();
+ $match->stems[5] = "Snake";
+ $match->stemsformat[5] = FORMAT_HTML;
+ $match->choices[5] = "Reptile";
+ $match->right[5] = 5;
+ $match->apply_attempt_state($firststep);
+
+ $this->assertEquals(array(
+ 1 => new question_classified_response(2, 'Amphibian', 0),
+ 2 => new question_classified_response(3, 'Insect', 0),
+ 3 => question_classified_response::no_response(),
+ 4 => new question_classified_response(1, 'Mammal', 0.20),
+ ), $match->classify_response($response));
+ }
+
public function test_prepare_simulated_post_data() {
$m = test_question_maker::make_a_matching_question();
$m->start_attempt(new question_attempt_step(), 1);
);
}
- /**
- * Expose to AJAX
- *
- * @return boolean
- */
- public static function update_tags_is_allowed_from_ajax() {
- return true;
- }
-
/**
* Update tags
*
);
}
- /**
- * Expose to AJAX
- *
- * @return boolean
- */
- public static function get_tags_is_allowed_from_ajax() {
- return true;
- }
-
/**
* Get tags by their ids
*
)
);
}
-}
\ No newline at end of file
+}
'question',
'user',
'tabs',
- 'filemanager'
+ 'filemanager',
+ 'templates'
);
$THEME->editor_sheets = array('editor');
--- /dev/null
+/* Template styles for base theme. */
+
+/* Styles for column templates. */
+.row-fluid {
+ width: 100%;
+}
+
+.row-fluid::before {
+ display: table;
+ content: "";
+ line-height: 0;
+}
+
+.row-fluid::after {
+ display: table;
+ content: "";
+ line-height: 0;
+ clear: both;
+}
+
+.row-fluid [class*="span"] {
+ float: left;
+ margin-left: 1%;
+ margin-right: 0;
+}
+
+.row-fluid [class*="span"]:first-child {
+ margin-left: 0;
+}
+
+.row-fluid .span4 {
+ width: 32.666666667%;
+}
+
+.row-fluid .span8 {
+ width: 66%;
+}
+
+/* RTL styles for column templates. */
+.dir-rtl .row-fluid [class*="span"] {
+ float: right;
+ margin-left: 0;
+ margin-right: 1%;
+}
+
+.dir-rtl .row-fluid [class*="span"]:first-child {
+ margin-right: 0;
+}
+
+/* Style for template columns-autoflow-1to1to1. */
+.columns-autoflow-1to1to1 {
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+ column-count: 3;
+ -moz-column-gap: 20px;
+ -webkit-column-gap: 20px;
+ column-gap: 20px;
+}
+
+/* Responsive styles for smaller screens. */
+@media (max-width: 767px) {
+ /* For column templates. */
+ .row-fluid [class*="span"] {
+ width: 100%;
+ float: none;
+ margin-left: 0;
+ margin-right: 0;
+ }
+
+ .dir-rtl .row-fluid [class*="span"] {
+ margin-right: 0;
+ }
+
+ /* Change to a single column for smaller screens.*/
+ .columns-autoflow-1to1to1 {
+ -moz-column-count: 1;
+ -webkit-column-count: 1;
+ column-count: 1;
+ -moz-column-gap: 0;
+ -webkit-column-gap: 0;
+ column-gap: 0;
+ }
+}
@import "moodle/grade";
@import "moodle/dock";
+// Styles for mustache templates.
+@import "moodle/templates";
+
// Anything below this line is considered expendable,
// so it doesn't matter if it doesn't show up in ie < 9
// though at current time (2013-03-13) the whole file is
// The class gradetreebox matches the pages displaying the gradebook
-// "Categories and items" > "Simple view" and "Full view".
+// "Gradebook setup" > "Simple view" and "Full view".
.gradetreebox {
h4 {
// Force back the base font-size to minimise width.
--- /dev/null
+/* Styling for mustache templates */
+
+// RTL styles for column templates.
+#grid {
+ // A mixin to set styles for the fluid row when RTL language enabled.
+ .fluid-rtl(@fluidGridColumnWidth, @fluidGridGutterWidth) {
+ .dir-rtl {
+ .row-fluid.rtl-compatible {
+ [class*="span"] {
+ float: right;
+ margin-left: 0;
+ *margin-left: 0;
+ margin-right: @fluidGridGutterWidth;
+ *margin-right: @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%);
+ }
+ [class*="span"]:first-child {
+ margin-right: 0;
+ }
+ }
+ }
+ }
+}
+
+// Style for template 3 columns auto.
+.columns-autoflow-1to1to1 {
+ .content-columns(3);
+}
+
+@media(max-width: 767px) {
+ // Change to a single column for smaller screens.
+ .columns-autoflow-1to1to1 {
+ .content-columns(1, 0);
+ }
+}
+
+@media (min-width: 768px) and (max-width: 979px) {
+ // Include fluid-rtl mixin from grid namespace.
+ #grid > .fluid-rtl(@fluidGridColumnWidth768, @fluidGridGutterWidth768);
+}
+
+@media (min-width: 980px) and (max-width: 1199px) {
+ // Include fluid-rtl mixin from grid namespace.
+ #grid > .fluid-rtl(@fluidGridColumnWidth, @fluidGridGutterWidth);
+}
+
+@media (min-width: 1200px) {
+ // Include fluid-rtl mixin from grid namespace.
+ #grid > .fluid-rtl(@fluidGridColumnWidth1200, @fluidGridGutterWidth1200);
+}
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world @twitter by @mdo and @fat.
- */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}.img-responsive{width:auto\9;height:auto;max-width:100%;-ms-interpolation-mode:bicubic}img{vertical-align:middle;border:0}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#0070a8;text-decoration:none}a:hover,a:focus{color:#003d5c;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#8a6d3b}a.text-warning:hover,a.text-warning:focus{color:#66512c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:180px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:200px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#8a6d3b}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#8a6d3b}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:180px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:200px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:200px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:200px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("[[pix:theme|glyphicons-halflings]]");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("[[pix:theme|glyphicons-halflings-white]]")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#00699e;background-image:-moz-linear-gradient(top,#0070a8,#005f8f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0070a8),to(#005f8f));background-image:-webkit-linear-gradient(top,#0070a8,#005f8f);background-image:-o-linear-gradient(top,#0070a8,#005f8f);background-image:linear-gradient(to bottom,#0070a8,#005f8f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0070a8',endColorstr='#ff005f8f',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#00699e;background-image:-moz-linear-gradient(top,#0070a8,#005f8f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0070a8),to(#005f8f));background-image:-webkit-linear-gradient(top,#0070a8,#005f8f);background-image:-o-linear-gradient(top,#0070a8,#005f8f);background-image:linear-gradient(to bottom,#0070a8,#005f8f);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0070a8',endColorstr='#ff005f8f',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-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-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#005aa8;*background-color:#0038a8;background-image:-moz-linear-gradient(top,#0070a8,#0038a8);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0070a8),to(#0038a8));background-image:-webkit-linear-gradient(top,#0070a8,#0038a8);background-image:-o-linear-gradient(top,#0070a8,#0038a8);background-image:linear-gradient(to bottom,#0070a8,#0038a8);background-repeat:repeat-x;border-color:#0038a8 #0038a8 #001e5c;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0070a8',endColorstr='#ff0038a8',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#0038a8;*background-color:#002f8f}.btn-primary:active,.btn-primary.active{background-color:#002775 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#0070a8;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#003d5c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#0038a8}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#8a6d3b}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#0070a8}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a{background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs>.active>a:not([href]),.nav-tabs>.active>a:not([href]):hover,.nav-tabs>.active>a:not([href]):focus{color:#555;cursor:default}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#0070a8}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#0070a8;border-bottom-color:#0070a8}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#003d5c;border-bottom-color:#003d5c}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.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;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.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;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;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-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.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{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#0070a8;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;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{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-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;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-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-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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:-o-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);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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:-o-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-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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:-o-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-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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:-o-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-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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:-o-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)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;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:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}h1{font-size:32px}h2{font-size:28px}h3{font-size:24px}h4{font-size:20px}h5{font-size:16px}h6{font-size:12px}h1 small{font-size:24px}h2 small{font-size:20px}h3 small{font-size:16px}h4 small{font-size:12px}@media print{a[href]:after{content:""}}legend{color:#333;border-bottom-color:#ddd}.breadcrumb{background-color:#f5f5f5}.well{border-color:#e3e3e3}sup{vertical-align:super}sub{vertical-align:sub}li.activity.label,.file-picker td.label{display:block;padding:8px;font-size:inherit;line-height:inherit;color:inherit;text-shadow:none;white-space:normal;background:inherit;border:inherit}.file-picker td.label{display:table-cell;text-align:right}.choosercontainer #chooseform .option label{font-size:12px}li.section.hidden,.block.hidden,.block.invisible{display:block;visibility:visible}#turnitintool_style .row,.forumpost .row{margin-left:0!important}#turnitintool_style .row:before,#turnitintool_style .row:after,.forumpost .row:before,.forumpost .row:after{content:none}fieldset.hidden{display:inherit;visibility:inherit}div.c1.btn{display:block;padding:0;margin-bottom:0;font-size:inherit;line-height:inherit;color:inherit;text-align:inherit;text-shadow:inherit;vertical-align:inherit;cursor:default;background-color:inherit;background-image:none;background-repeat:none;border:0;border-radius:none;box-shadow:none}#questionbank+.container{width:auto}img.hide{display:inherit}.icon-bar,img.icon-post,img.icon-info,img.icon-warn,img.icon-pre{background-image:none}.loginbox.twocolumns .signuppanel,.loginbox.twocolumns .signuppanel,.loginbox.twocolumns .loginpanel,.loginbox.twocolumns .loginpanel{padding:0;margin:0}.tooltip{display:inline;opacity:1;filter:alpha(opacity=100)}body:not(.jsenabled) .dropdown:hover>.dropdown-menu{display:block;margin-top:-6px}body:not(.jsenabled) .langmenu:hover>.dropdown-menu,.langmenu.open>.dropdown-menu{display:block;max-height:150px;overflow-y:auto}ol{margin:0 0 10px 2.5em}.dir-rtl ol{margin:0 2.5em 10px 0}body{padding-top:60px}.block{min-height:20px;padding:19px;padding:8px 0;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-color:#e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.block blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.block .header h2{display:block;padding:3px 15px;margin:0;font-size:11px;font-size:1.1em;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase;word-wrap:break-word}.block .header .block_action{float:right;padding:3px 15px}.block .header .block_action>*{margin-left:3px}.block .header .block_action .block-hider-show,.block .header .block_action .block-hider-hide{cursor:pointer}.block .header .block_action .block-hider-show{display:none}.block .content{padding:4px 14px;word-wrap:break-word}.block .content h3{display:block;padding:3px 15px;font-size:11px;font-size:1.1em;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.block .content hr{margin:5px 0}.block .content .userpicture{width:16px;height:16px;margin-right:6px}.block .content .list li.listentry{clear:both}.block .content .list .c0{display:inline}.block .content .list .c1{display:inline;margin-left:5px}.block .footer{display:block;padding:3px 5px;margin-bottom:4px}.block.beingmoved{border-style:dashed;border-width:2px}.block.invisible .header h2{opacity:.5;filter:alpha(opacity=50)}.block.hidden .header .block_action .block-hider-hide{display:none}.block.hidden .header .block_action .block-hider-show{display:inline}.block.list_block .unlist>li>.column{display:inline-block;*display:inline;*zoom:1}.editing .block .header .commands{display:block;padding:3px 15px;clear:both;text-align:right}.editing .block .header .commands>a{margin:0 3px}.editing .block .header .commands .icon img{width:12px;height:12px}.editing .block .header .commands img.actionmenu{width:auto}.dir-rtl.editing .block .header .commands{text-align:left}.jsenabled .block.hidden .content{display:none}.blockmovetarget{display:block;height:1em;margin-bottom:20px;border-style:dashed;border-width:2px}.blockannotation{position:relative;top:-10px;margin-bottom:10px}.block_blog_menu #blogsearchquery{max-width:92%}.block_settings #adminsearchquery{max-width:92%}.block_search_forums #searchform_search{width:auto;max-width:92%}.block_calendar_upcoming .content .date{padding-left:22px}.block_calendar_upcoming .content .footer{padding-top:10px;padding-left:0;margin-top:.5em}.block_rss_client .content li{padding:5px;margin-bottom:10px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.block_rss_client .content li .link{font-weight:inherit}.block_rss_client .list li:first-child{border-top-width:1px}.block_news_items .content .newlink{padding-bottom:10px}.block_news_items .content ul li{display:table;width:100%;padding:2px;border-top:1px rgba(0,0,0,0.05) solid}.block_news_items .content ul li .info{display:table-header-group}.block_news_items .content ul li .date{display:inline;font-size:11.9px}.block_news_items .content ul li .name{display:inline;padding-left:1ex;font-size:11.9px}.block_news_items .content .footer{padding-top:10px;padding-left:0}.block_login input#login_username,.block_login input#login_password{width:95%}.block_login .content{max-width:280px;margin-right:auto;margin-left:auto}.block_login input[type="submit"]{margin:10px 0}.block_adminblock .content{display:block;padding:3px 5px}.block_adminblock select{max-width:92%}.dir-rtl .block .header{text-align:right}.dir-rtl .block .header h2{text-align:right}.dir-rtl .block .header .block_action{float:left}.dir-rtl .block .header .block_action>*{margin-right:3px;margin-left:0}.dir-rtl .block_calendar_upcoming .content .date{padding-right:22px}.dir-rtl .block_calendar_upcoming .content .footer{padding-right:0}.dir-rtl .block_news_items .content ul li .name{padding-right:1ex}.dir-rtl .block_news_items .content .footer{padding-left:0}form{margin:0}.mform fieldset .advancedbutton{text-align:right}.jsenabled .mform .containsadvancedelements .advanced{display:none}.mform .containsadvancedelements .advanced.show{display:block}.mform fieldset.group{margin-bottom:0}.mform fieldset.error{border:1px solid #b94a48}.mform span.error,#adminsettings span.error{display:inline-block;padding:4px;margin-bottom:4px;background-color:#f2dede;border:1px solid #eed3d7;border-radius:4px}.mform fieldset.collapsible legend a.fheader{padding:0 5px 0 20px;margin-left:-20px;background:url([[pix:t/expanded]]) 2px center no-repeat}.dir-rtl .mform fieldset.collapsible legend a.fheader{padding:0 20px 0 5px;margin-right:-20px;margin-left:0;background-position:right center}.mform fieldset.collapsed legend a.fheader{background-image:url([[pix:t/collapsed]])}.dir-rtl .mform fieldset.collapsed legend a.fheader{background-image:url([[pix:t/collapsed_rtl]])}.jsenabled .mform .collapsed .fcontainer{display:none}.mform .fitem .fitemtitle div{display:inline}#adminsettings .error,.loginpanel .error,.mform .error{color:#b94a48}.mform .fdescription.required{margin-left:200px}.mform .fpassword .unmask{display:inline-block;margin-left:.5em}.mform .fpassword .unmask>input{margin:0}.mform .fpassword .unmask>label{display:inline-block}.mform label{display:inline-block}.mform .iconhelp{margin-left:4px}.dir-rtl .mform .iconhelp{margin-right:4px}.mform .ftextarea #id_alltext{width:100%}.mform ul.file-list{padding:0;margin:0;list-style:none}.mform label .req,.mform label .adv{cursor:help}.mform .fcheckbox input{margin-left:0}.mform .fcheckbox>span,.mform .fradio>span,.mform .fgroup>span{display:inline-block;margin-top:5px}.mform .fitem fieldset.fgroup label,.mform fieldset.fdate_selector label{display:inline;float:none;width:auto}.mform .ftags label.accesshide{position:static;display:block}.mform .ftags select{min-width:22em;margin-bottom:.7em}.mform .helplink img{padding:0;margin:0 .45em}.mform legend .helplink img{margin:0 .2em}.singleselect label{margin-right:.3em}.dir-rtl .singleselect label{margin-right:0;margin-left:.3em}input#id_externalurl{direction:ltr}#portfolio-add-button{display:inline}.form-item,.mform .fitem{margin-bottom:20px;margin-bottom:10px;*zoom:1}.form-item:before,.mform .fitem:before,.form-item:after,.mform .fitem:after{display:table;line-height:0;content:""}.form-item:after,.mform .fitem:after{clear:both}.form-item .form-label,.mform .fitem div.fitemtitle{float:left;width:180px;padding-top:5px;text-align:right}.dir-rtl .form-item .form-label,.dir-rtl .mform .fitem div.fitemtitle{float:right;text-align:left}.form-defaultinfo,.form-label .form-shortname{color:#999}.form-label .form-shortname{display:block;font-size:10.5px}.dir-rtl .form-label .form-shortname{text-align:left}.form-item .form-setting,.form-item .form-description,.mform .fitem .felement,#page-mod-forum-search .c1{*display:inline-block;*padding-left:20px;margin-left:200px;*margin-left:0}.form-item .form-setting:first-child,.form-item .form-description:first-child,.mform .fitem .felement:first-child,#page-mod-forum-search .c1:first-child{*padding-left:200px}.formsettingheading{margin-bottom:0}.form-item .form-description,.felement.fstatic{display:block;padding-top:5px;margin-bottom:10px;color:#595959}.form-item .form-description{padding-top:0}.fitem .fstaticlabel{font-weight:bold}table#form td.submit,.form-buttons,.path-admin .buttons,#fitem_id_submitbutton,.fp-content-center form+div,div.backup-section+form,#fgroup_id_buttonar{padding:19px 20px 20px;padding-left:0;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}table#form td.submit:before,.form-buttons:before,.path-admin .buttons:before,#fitem_id_submitbutton:before,.fp-content-center form+div:before,div.backup-section+form:before,#fgroup_id_buttonar:before,table#form td.submit:after,.form-buttons:after,.path-admin .buttons:after,#fitem_id_submitbutton:after,.fp-content-center form+div:after,div.backup-section+form:after,#fgroup_id_buttonar:after{display:table;line-height:0;content:""}table#form td.submit:after,.form-buttons:after,.path-admin .buttons:after,#fitem_id_submitbutton:after,.fp-content-center form+div:after,div.backup-section+form:after,#fgroup_id_buttonar:after{clear:both}.path-admin .buttons,.form-buttons{padding-left:200px}.dir-rtl table#form td.submit,.dir-rtl .form-buttons,.dir-rtl .path-admin .buttons,.dir-rtl #fitem_id_submitbutton,.dir-rtl .fp-content-center form+div,.dir-rtl div.backup-section+form,.dir-rtl #fgroup_id_buttonar{padding:19px 20px 20px;padding-right:0;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.dir-rtl table#form td.submit:before,.dir-rtl .form-buttons:before,.dir-rtl .path-admin .buttons:before,.dir-rtl #fitem_id_submitbutton:before,.dir-rtl .fp-content-center form+div:before,.dir-rtl div.backup-section+form:before,.dir-rtl #fgroup_id_buttonar:before,.dir-rtl table#form td.submit:after,.dir-rtl .form-buttons:after,.dir-rtl .path-admin .buttons:after,.dir-rtl #fitem_id_submitbutton:after,.dir-rtl .fp-content-center form+div:after,.dir-rtl div.backup-section+form:after,.dir-rtl #fgroup_id_buttonar:after{display:table;line-height:0;content:""}.dir-rtl table#form td.submit:after,.dir-rtl .form-buttons:after,.dir-rtl .path-admin .buttons:after,.dir-rtl #fitem_id_submitbutton:after,.dir-rtl .fp-content-center form+div:after,.dir-rtl div.backup-section+form:after,.dir-rtl #fgroup_id_buttonar:after{clear:both}.dir-rtl .path-admin .buttons,.dir-rtl .form-buttons{padding-right:200px}.form-item .form-setting .form-checkbox.defaultsnext{display:inline-block;margin-top:5px}#adminsettings h3{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}.mform legend a,.mform legend a:hover{color:#333;text-decoration:none}.dir-rtl .mform .fitem .felement{margin-right:30%;margin-left:auto;text-align:right}.dir-rtl .mform .fitem .felement input[name=email],.dir-rtl .mform .fitem .felement input[name=email2],.dir-rtl .mform .fitem .felement input[name=url],.dir-rtl .mform .fitem .felement input[name=idnumber],.dir-rtl .mform .fitem .felement input[name=phone1],.dir-rtl .mform .fitem .felement input[name=phone2]{text-align:left;direction:ltr}.dir-rtl #id_s__pathtodu,.dir-rtl #id_s__aspellpath,.dir-rtl #id_s__pathtodot,.dir-rtl #id_s__supportemail,.dir-rtl #id_s__supportpage,.dir-rtl #id_s__sessioncookie,.dir-rtl #id_s__sessioncookiepath,.dir-rtl #id_s__sessioncookiedomain,.dir-rtl #id_s__proxyhost,.dir-rtl #id_s__proxyuser,.dir-rtl #id_s__proxypassword,.dir-rtl #id_s__proxybypass,.dir-rtl #id_s__jabberhost,.dir-rtl #id_s__jabberserver,.dir-rtl #id_s__jabberusername,.dir-rtl #id_s__jabberpassword,.dir-rtl #id_s__additionalhtmlhead,.dir-rtl #id_s__additionalhtmltopofbody,.dir-rtl #id_s__additionalhtmlfooter,.dir-rtl #id_s__docroot,.dir-rtl #id_s__filter_tex_latexpreamble,.dir-rtl #id_s__filter_tex_latexbackground,.dir-rtl #id_s__filter_tex_pathlatex,.dir-rtl #id_s__filter_tex_pathdvips,.dir-rtl #id_s__filter_tex_pathconvert,.dir-rtl #id_s__blockedip,.dir-rtl #id_s__pathtoclam,.dir-rtl #id_s__quarantinedir,.dir-rtl #id_s__sitepolicy,.dir-rtl #id_s__sitepolicyguest,.dir-rtl #id_s__cronremotepassword,.dir-rtl #id_s__allowedip,.dir-rtl #id_s__blockedip,.dir-rtl #id_s_enrol_meta_nosyncroleids,.dir-rtl #id_s_enrol_ldap_host_url,.dir-rtl #id_s_enrol_ldap_ldapencoding,.dir-rtl #id_s_enrol_ldap_bind_dn,.dir-rtl #id_s_enrol_ldap_bind_pw,.dir-rtl #admin-emoticons .form-text,.dir-rtl #admin-role_mapping input[type=text],.dir-rtl #id_s_enrol_paypal_paypalbusiness,.dir-rtl #id_s_enrol_flatfile_location,#page-admin-setting-enrolsettingsflatfile.dir-rtl input[type=text],#page-admin-setting-enrolsettingsdatabase.dir-rtl input[type=text],#page-admin-auth-db.dir-rtl input[type=text]{direction:ltr}#page-admin-setting-enrolsettingsflatfile.dir-rtl .informationbox{text-align:left;direction:ltr}#page-admin-grade-edit-scale-edit.dir-rtl .error input#id_name{margin-right:170px}#page-grade-edit-outcome-course .courseoutcomes{width:100%;margin-right:auto;margin-left:auto}#page-grade-edit-outcome-course .courseoutcomes td{text-align:center}#installform #id_wwwroot,#installform #id_dirroot,#installform #id_dataroot,#installform #id_dbhost,#installform #id_dbname,#installform #id_dbuser,#installform #id_dbpass,#installform #id_prefix{direction:ltr}.mdl-right>label{display:inline-block}input[type="radio"]+label,input[type="checkbox"]+label{display:inline;padding-left:.2em}input[type="radio"],input[type="checkbox"]{margin-top:-4px;margin-right:7px}.dir-rtl input[type="radio"],.dir-rtl input[type="checkbox"]{margin-right:auto;margin-left:7px}.singleselect{display:inline-block}.singleselect form,.singleselect select{margin:0}.form-item .form-label label{margin-bottom:0}.dir-rtl .form-item .form-label label{text-align:left}.felement.ffilepicker{margin-top:5px}div#dateselector-calendar-panel{z-index:3100}fieldset.coursesearchbox label{display:inline}#region-main .mform:not(.unresponsive) .fitem .fitemtitle label{font-weight:bold}@media(max-width:1199px){body #region-main .mform:not(.unresponsive) .fitem .fitemtitle{display:block;width:100%;margin-top:4px;margin-bottom:4px;text-align:left}body #region-main .mform:not(.unresponsive) .fitem .felement{float:left;width:100%;padding-right:0;padding-left:0;margin-left:0}body #region-main .mform:not(.unresponsive) .fitem .fstatic:empty{display:none}body #region-main .mform:not(.unresponsive) .fitem .fcheckbox>span,body #region-main .mform:not(.unresponsive) .fitem .fradio>span,body #region-main .mform:not(.unresponsive) .fitem .fgroup>span{margin-top:4px}body #region-main .mform:not(.unresponsive) .femptylabel .fitemtitle{display:inline-block;width:auto;margin-right:8px}body #region-main .mform:not(.unresponsive) .femptylabel .felement{display:inline-block;width:auto;padding-top:5px;margin-top:4px}body #region-main .mform:not(.unresponsive) .fitem_fcheckbox .fitemtitle,body #region-main .mform:not(.unresponsive) .fitem_fcheckbox .felement{display:inline-block;width:auto}body #region-main .mform:not(.unresponsive) .fitem_fcheckbox .felement{padding:6px}body.dir-rtl #region-main .mform:not(.unresponsive) .femptylabel .fitemtitle{margin-right:0;margin-left:8px}body.dir-rtl #region-main .mform:not(.unresponsive) .fitem .fitemtitle{text-align:right}body.dir-rtl #region-main .mform:not(.unresponsive) .fitem .felement{float:right;padding-right:0;padding-left:0;margin-right:0}body.dir-rtl #region-main .mform:not(.unresponsive) .fitem_fcheckbox .felement{float:right}}@media(max-width:1474px){.used-region-side-pre.used-region-side-post #region-main .mform:not(.unresponsive) .fitem .fitemtitle{display:block;width:100%;margin-top:4px;margin-bottom:4px;text-align:left}.used-region-side-pre.used-region-side-post #region-main .mform:not(.unresponsive) .fitem .felement{float:left;width:100%;padding-right:0;padding-left:0;margin-left:0}.used-region-side-pre.used-region-side-post #region-main .mform:not(.unresponsive) .fitem .fstatic:empty{display:none}.used-region-side-pre.used-region-side-post #region-main .mform:not(.unresponsive) .fitem .fcheckbox>span,.used-region-side-pre.used-region-side-post #region-main .mform:not(.unresponsive) .fitem .fradio>span,.used-region-side-pre.used-region-side-post #region-main .mform:not(.unresponsive) .fitem .fgroup>span{margin-top:4px}.used-region-side-pre.used-region-side-post #region-main .mform:not(.unresponsive) .femptylabel .fitemtitle{display:inline-block;width:auto;margin-right:8px}.used-region-side-pre.used-region-side-post #region-main .mform:not(.unresponsive) .femptylabel .felement{display:inline-block;width:auto;padding-top:5px;margin-top:4px}.used-region-side-pre.used-region-side-post #region-main .mform:not(.unresponsive) .fitem_fcheckbox .fitemtitle,.used-region-side-pre.used-region-side-post #region-main .mform:not(.unresponsive) .fitem_fcheckbox .felement{display:inline-block;width:auto}.used-region-side-pre.used-region-side-post #region-main .mform:not(.unresponsive) .fitem_fcheckbox .felement{padding:6px}.used-region-side-pre.used-region-side-post.dir-rtl #region-main .mform:not(.unresponsive) .femptylabel .fitemtitle{margin-right:0;margin-left:8px}.used-region-side-pre.used-region-side-post.dir-rtl #region-main .mform:not(.unresponsive) .fitem .fitemtitle{text-align:right}.used-region-side-pre.used-region-side-post.dir-rtl #region-main .mform:not(.unresponsive) .fitem .felement{float:right;padding-right:0;padding-left:0;margin-right:0}.used-region-side-pre.used-region-side-post.dir-rtl #region-main .mform:not(.unresponsive) .fitem_fcheckbox .felement{float:right}}#fitem_id_availabilityconditionsjson *[aria-hidden=true]{display:none}#fitem_id_availabilityconditionsjson select,#fitem_id_availabilityconditionsjson input[type=text]{position:relative;top:4px}#fitem_id_availabilityconditionsjson label{display:inline}#fitem_id_availabilityconditionsjson .availability-group{margin-right:8px}#fitem_id_availabilityconditionsjson .availability-item{margin-bottom:6px}#fitem_id_availabilityconditionsjson .availability-none{margin-bottom:4px;margin-left:20px}#fitem_id_availabilityconditionsjson .availability-plugincontrols{display:inline-block;padding:2px 0 0 4px;margin-right:8px;background:none repeat scroll 0 0 #f5f5f5;border:1px solid #eee;border-radius:4px}#fitem_id_availabilityconditionsjson .availability-eye,#fitem_id_availabilityconditionsjson .availability-delete{margin-right:8px}#fitem_id_availabilityconditionsjson .availability-eye[aria-hidden=true]{display:inline;visibility:hidden}#fitem_id_availabilityconditionsjson .availability-list>.availability-eye img{margin-top:12px;vertical-align:top}#fitem_id_availabilityconditionsjson .availability-button{margin-left:15px}#fitem_id_availabilityconditionsjson .availability-childlist>.availability-inner{display:inline-block;padding:6px;margin-bottom:6px;background:#f5f5f5;border:1px solid #eee;border-radius:4px}#fitem_id_availabilityconditionsjson .availability-childlist .availability-childlist>.availability-inner{background:white}#fitem_id_availabilityconditionsjson .availability-connector{margin-bottom:6px;margin-left:20px}.dir-rtl #fitem_id_availabilityconditionsjson .availability-group{margin-right:0;margin-left:8px}.dir-rtl #fitem_id_availabilityconditionsjson .availability-none{margin-right:20px;margin-left:0}.dir-rtl #fitem_id_availabilityconditionsjson .availability-plugincontrols{padding-right:4px;padding-left:0;margin-right:0;margin-left:8px}.dir-rtl #fitem_id_availabilityconditionsjson .availability-eye,.dir-rtl #fitem_id_availabilityconditionsjson .availability-delete{margin-right:0;margin-left:8px}.dir-rtl #fitem_id_availabilityconditionsjson .availability-button{margin-right:15px;margin-left:0}.dir-rtl #fitem_id_availabilityconditionsjson .availability-connector{margin-right:20px;margin-left:0}.mform .error .availability-field{color:#333}.availability-dialogue .moodle-dialogue .moodle-dialogue-bd{padding-right:0;padding-bottom:2px;padding-left:0}.availability-dialogue ul{display:block;margin:0}.availability-dialogue li{display:block;padding:0 0 4px;margin-bottom:4px;clear:both;list-style-type:none;border-bottom:1px solid #eee}.availability-dialogue ul button{float:left;min-width:140px;margin-top:4px;margin-left:1em}.availability-dialogue label{margin-right:1em;margin-bottom:0;margin-left:170px}.availability-dialogue .availability-buttons button{margin-top:4px;margin-right:1em;margin-left:1em}.dir-rtl .availability-dialogue ul button{float:right;margin-right:1em;margin-left:0}.dir-rtl .availability-dialogue label{margin-right:170px;margin-left:1em}textarea[cols],input[size]{width:auto}select{width:auto}.path-mod-forum .forumsearch input,.path-mod-forum .forumsearch .helptooltip{margin:0 3px}.path-mod-forum .forumheaderlist,.path-mod-forum .forumheaderlist td{border:0}.path-mod-forum .forumheaderlist thead .header,.path-mod-forum .forumheaderlist tbody .discussion td{padding-right:.5em;padding-left:.5em;white-space:normal;vertical-align:top}.path-mod-forum .forumheaderlist thead .header{white-space:normal;vertical-align:top}.path-mod-forum .forumheaderlist thead .header.replies{text-align:center}.path-mod-forum .forumheaderlist thead .header.lastpost{text-align:right}.path-mod-forum .forumheaderlist thead .header th.discussionsubscription,.path-mod-forum .forumheaderlist tbody .discussion td.discussionsubscription{width:16px;padding-right:.5em;padding-left:.5em}.path-mod-forum .forumheaderlist .discussion .author,.path-mod-forum .forumheaderlist .discussion .replies,.path-mod-forum .forumheaderlist .discussion .lastpost{white-space:normal}.path-mod-forum .forumheaderlist .discussion .discussionsubscription,.path-mod-forum .forumheaderlist .discussion .replies{text-align:center}.path-mod-forum .forumheaderlist .discussion .topic,.path-mod-forum .forumheaderlist .discussion .discussionsubscription,.path-mod-forum .forumheaderlist .discussion .topic.starter,.path-mod-forum .forumheaderlist .discussion .picture,.path-mod-forum .forumheaderlist .discussion .author,.path-mod-forum .forumheaderlist .discussion .replies,.path-mod-forum .forumheaderlist .discussion .lastpost{vertical-align:top}.path-mod-feedback .feedback_bar_image{height:5px}.forumpost{min-height:20px;padding:19px;padding:6px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-color:#e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.forumpost blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.forumpost .header{margin-bottom:3px}.forumpost .picture img{margin:3px}.forumpost .picture img.userpicture{margin-right:10px;margin-left:3px}.forumpost .content .posting.fullpost{margin-top:8px}.forumpost .row .topic,.forumpost .row .content-mask,.forumpost .row .options{margin-left:48px}.forumpost .row.side{clear:both}.dir-rtl .forumpost .picture img.userpicture{margin-right:3px;margin-left:10px}.dir-rtl .forumpost .row .topic,.dir-rtl .forumpost .row .content-mask,.dir-rtl .forumpost .row .options{margin-right:48px;margin-left:0}.forumpost .row .left{width:48px}.forumpost .options .commands{margin-left:0}.forumpost .subject{font-weight:bold}.forumsearch input[type=text]{margin-bottom:0!important}#page-mod-forum-discuss .discussioncontrols{width:auto;margin:0}#page-footer{padding:1em 0;margin-top:1em;border-top:2px solid #ddd}.maincalendar .calendarmonth td,.maincalendar .calendarmonth th{border:1px dotted #ddd}.path-grade-report-grader h1{text-align:inherit}#page-mod-chat-gui_basic input#message{max-width:100%}#page-mod-data-view #singleimage{width:auto}.path-mod-data form{margin-top:10px}.template_heading{margin-top:10px}.breadcrumb-button{float:right;margin-top:4px}.breadcrumb-button .singlebutton{float:left;margin-left:4px}.dir-rtl .nav-tabs>li,.dir-rtl .nav-pills>li{float:right}.dir-rtl .navbar .brand{float:right}.navbar-inverse .logininfo a{color:#999}.navbar-inverse .logininfo a:hover{color:#fff;background-color:transparent}.navbar-fixed-top,.navbar-fixed-bottom{z-index:4030}.dir-rtl .breadcrumb-button,.dir-rtl .navbar .btn-navbar{float:left}.dir-rtl .breadcrumb-button .singlebutton{float:right;margin-right:4px}.ie .row-fluid .desktop-first-column{margin-left:0}.langmenu form{margin:0}.container-fluid{max-width:1680px;margin:0 auto}canvas{-ms-touch-action:auto}div#dock{display:none}.path-mod-choice .horizontal .choices{margin:0}.path-mod-choice .horizontal .choices .option{display:inline-block;padding:10px}.path-mod-choice .results .data{white-space:normal}.path-mod-lesson .firstpageoptions{width:60%;min-width:280px;margin:auto}.path-mod-lesson .centerpadded{padding:5px;text-align:center}.path-mod-wiki .wiki_headingtitle,.path-mod-wiki .midpad,.path-mod-wiki .wiki_headingtime{text-align:inherit}.path-mod-wiki .wiki_contentbox{width:100%}.dropdown-menu>li>a{padding:3px 20px 3px 8px}.dir-rtl .dropdown-menu>li>a{padding:3px 8px 3px 20px}.dir-rtl .dropdown-submenu>.dropdown-menu{-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.path-mod-survey .surveytable>tbody>tr:nth-of-type(odd){background-color:transparent}.path-mod-survey .surveytable>tbody>tr:nth-of-type(even){background-color:#f9f9f9}.path-mod-survey .surveytable .rblock label{text-align:center}.path-mod-survey .resultgraph,.path-mod-survey .reportsummary,.path-mod-survey .studentreport,.path-mod-survey .reportbuttons,.path-mod-survey .centerpara{text-align:center}.dir-rtl.path-mod-forum .forumheaderlist thead .header.lastpost{text-align:left}.dir-rtl.path-mod-forum .forumheaderlist .discussion .lastpost{text-align:left}.nav .caret{margin-left:4px}.dir-rtl .nav .caret{margin-right:4px}.nav .divider{width:0;height:40px;overflow:hidden;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar-inverse .nav .divider{border-right-color:#515151;border-left-color:#111}.dropdown-menu .divider{width:auto;height:1px;border-right:0 none;border-left:0 none}.usermenu .login{line-height:40px;color:#777}.usermenu .login a{color:#0070a8}.usermenu .login a:hover,.usermenu .login a:focus{color:#003d5c;text-decoration:underline}.usermenu .moodle-actionmenu .toggle-display{display:block;height:40px;line-height:40px;color:#777;opacity:1}.usermenu .moodle-actionmenu .toggle-display:hover{color:#333}.usermenu .moodle-actionmenu .toggle-display .userbutton{height:40px;line-height:40px}.usermenu .moodle-actionmenu .toggle-display .userbutton .avatars{display:inline-block;width:36px;height:36px;margin-right:6px;margin-left:6px;vertical-align:middle}.usermenu .moodle-actionmenu .toggle-display .userbutton .avatars .avatar,.usermenu .moodle-actionmenu .toggle-display .userbutton .avatars img{display:block}.usermenu .moodle-actionmenu .toggle-display .userbutton .usertext{display:inline-block;line-height:1em;color:inherit;vertical-align:middle}.usermenu .moodle-actionmenu .toggle-display .userbutton .usertext .meta,.usermenu .moodle-actionmenu .toggle-display .userbutton .usertext .role{display:block;font-size:12px}.usermenu .moodle-actionmenu .toggle-display .userbutton .usertext .meta .value,.usermenu .moodle-actionmenu .toggle-display .userbutton .usertext .role .value{font-weight:bold}.usermenu .moodle-actionmenu .toggle-display .userbutton .usertext .role{font-weight:bold}.usermenu .moodle-actionmenu .toggle-display .caret{display:none}.usermenu .moodle-actionmenu .menu .menu-action.icon img{background:transparent;border-radius:0;box-shadow:none}.usermenu .moodle-actionmenu .menu .menu-action.icon:hover img{background:#fff;border-radius:4px;box-shadow:0 0 16px rgba(0,0,0,0.125)}.usermenu .moodle-actionmenu[data-enhanced] .menu .menu-action.icon img,.usermenu .moodle-actionmenu[data-enhanced] .menu .menu-action.icon:hover img{background:transparent;border-radius:0;box-shadow:none}.navbar-inverse .usermenu .login{color:#999}.navbar-inverse .usermenu .login a{color:#999}.navbar-inverse .usermenu .login a:hover{color:#fff}.navbar-inverse .usermenu .moodle-actionmenu .toggle-display{color:#999}.navbar-inverse .usermenu .moodle-actionmenu .userbutton .usertext{color:#999}.navbar-inverse .usermenu .moodle-actionmenu .userbutton .usertext .meta{color:#999}.navbar-inverse .usermenu .moodle-actionmenu .userbutton .usertext .meta .value{color:#999}.navbar-inverse .usermenu .moodle-actionmenu:hover .usertext{color:#fff}.navbar-inverse .usermenu .moodle-actionmenu:hover .usertext .meta{color:#999}.navbar-inverse .usermenu .moodle-actionmenu:hover .usertext .meta .value{color:#fff}.navbar-inverse .usermenu .moodle-actionmenu[data-enhanced] .toggle-display.textmenu .caret{border-top-color:#fff}.navbar-inverse .usermenu .moodle-actionmenu .menu .menu-action.icon img{background:transparent;border-radius:0;box-shadow:none}.navbar-inverse .usermenu .moodle-actionmenu .menu .menu-action.icon:hover img{background:#333;border-radius:4px;box-shadow:0 0 16px #fff}.navbar-inverse .usermenu .moodle-actionmenu[data-enhanced] .menu .menu-action.icon img,.navbar-inverse .usermenu .moodle-actionmenu[data-enhanced] .menu .menu-action.icon:hover img{background:transparent;border-radius:0;box-shadow:none}.jsenabled .usermenu .moodle-actionmenu .toggle-display{display:block}.jsenabled .usermenu .moodle-actionmenu .toggle-display.textmenu{padding-right:8px;padding-left:8px}.jsenabled .usermenu .moodle-actionmenu .toggle-display .caret{position:relative;top:9px;display:inline-block}.jsenabled .usermenu .moodle-actionmenu>.menubar{display:block;margin:0 0 2px 0}.jsenabled .usermenu .moodle-actionmenu>.menu{min-width:160px}.jsenabled .usermenu .moodle-actionmenu>.menu .filler{display:block;*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.jsenabled .usermenu .moodle-actionmenu.show{background-color:#e5e5e5}.jsenabled .usermenu .moodle-actionmenu.show .menu{padding:5px 0;margin:2px 0 0;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);background-clip:padding-box}.jsenabled .usermenu .moodle-actionmenu.show .menu:before{position:absolute;top:-7px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.jsenabled .usermenu .moodle-actionmenu.show .menu:after{position:absolute;top:-6px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.jsenabled .usermenu .moodle-actionmenu.show .menu a{border-radius:0}.jsenabled .usermenu .moodle-actionmenu.show .menu a:focus{text-decoration:none}.jsenabled .usermenu .moodle-actionmenu.show .menu a:hover{text-decoration:none;background-color:#00699e;background-image:-moz-linear-gradient(top,#0070a8,#005f8f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0070a8),to(#005f8f));background-image:-webkit-linear-gradient(top,#0070a8,#005f8f);background-image:-o-linear-gradient(top,#0070a8,#005f8f);background-image:linear-gradient(to bottom,#0070a8,#005f8f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0070a8',endColorstr='#ff005f8f',GradientType=0)}.jsenabled .usermenu .moodle-actionmenu.show .menu.align-tr-br{margin-top:2px}.jsenabled .navbar-inverse .usermenu .moodle-actionmenu.show{background-color:#111}.dir-ltr .usermenu{float:right}.dir-ltr .usermenu>.moodle-actionmenu>.menu:before{right:9px}.dir-ltr .usermenu>.moodle-actionmenu>.menu:after{right:10px}.dir-ltr .usermenu>.moodle-actionmenu>.menubar li a{text-align:right}.dir-ltr.userloggedinas .usermenu .userbutton .avatars .avatar.current{left:16px}.dir-rtl .usermenu{float:left}.dir-rtl .usermenu>.moodle-actionmenu>.menu{margin-right:0}.dir-rtl .usermenu>.moodle-actionmenu>.menu:before{left:9px}.dir-rtl .usermenu>.moodle-actionmenu>.menu:after{left:10px}.dir-rtl .usermenu>.moodle-actionmenu>.menubar li a{text-align:left}.dir-rtl.userloggedinas .usermenu .userbutton .avatars .avatar.current{left:-14px}.userloggedinas .usermenu .userbutton .avatars .avatar{overflow:hidden}.userloggedinas .usermenu .userbutton .avatars .avatar.current{position:relative;top:4px;left:4px;width:20px;height:20px;margin-top:11px;margin-bottom:-34px;border:1px solid #fff;border-radius:50%;box-shadow:-2px -2px 16px rgba(0,0,0,0.25)}.userloggedinas .usermenu .userbutton .avatars .avatar img{width:inherit;height:inherit}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax{background-color:#fff}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax .yui-layout-unit div.yui-layout-bd-nohd,.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax .yui-layout-unit div.yui-layout-bd-noft,.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax .yui-layout-unit div.yui-layout-bd,.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax .yui-layout-unit-right,.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax .yui-layout-unit-bottom{border:0}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax .yui-layout-unit-right,.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax .yui-layout-unit-bottom{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-color:#e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax .yui-layout-unit-right blockquote,.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax .yui-layout-unit-bottom blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax .yui-layout-unit div.yui-layout-bd{background-color:transparent}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-input-area table.generaltable,.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-input-area table.generaltable td.cell{padding:3px 15px;white-space:nowrap;border:0}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-input-area table.generaltable input,.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-input-area table.generaltable td.cell input{margin:0 10px}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-input-area table.generaltable input#input-message,.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-input-area table.generaltable td.cell input#input-message{width:45%;margin:auto}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-input-area table.generaltable a,.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-input-area table.generaltable td.cell a{margin:0 5px}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-userlist{padding:10px 5px}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-userlist #users-list{border-top:1px solid #ddd;border-bottom:1px solid #fff}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-userlist #users-list li{padding:5px 10px;border-top:1px solid #fff;border-bottom:1px solid #ddd}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-userlist #users-list img{max-width:none;margin-right:8px;border:1px solid #ccc;border-radius:4px}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-messages{margin:20px 25px}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-messages .chat-event.course-theme{margin:10px 0;font-size:11.9px;color:#777;text-align:center}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-messages .chat-message.course-theme{padding:4px 10px;margin:10px 0;background-color:#fff;border:1px dotted #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-messages .chat-message.course-theme .time{float:right;font-size:11px;color:#777}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-messages .mdl-chat-my-entry .chat-message.course-theme{background-color:#f6f6f6}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax #chat-messages .mdl-chat-my-entry .chat-message.course-theme .user{font-weight:bold}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax.dir-rtl .yui-layout-unit-right{padding:0}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax.dir-rtl .yui-layout-unit div.yui-layout-bd{text-align:right}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax.dir-rtl #chat-userlist #users-list img{margin-left:8px}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax.dir-rtl #chat-messages .chat-message.course-theme .time{float:left}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax.dir-rtl #chat-messages .chat-message.course-theme .user{float:right}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax.dir-rtl #chat-messages .chat-message.course-theme .chat-message-meta{height:20px}.yui-skin-sam .yui-layout.path-mod-chat-gui_ajax.dir-rtl #chat-messages .chat-message.course-theme .text{text-align:right}#page-report-participation-index .participationselectform div label{display:inline;margin:0 5px}#page-report-participation-index.dir-ltr .participationselectform div label[for=menuinstanceid]{margin-left:0}#page-report-participation-index.dir-rtl .participationselectform div label[for=menuinstanceid]{margin-right:0}.path-backup .mform .grouped_settings.section_level{min-height:20px;padding:19px;padding:10px 0 0 0;margin-bottom:20px;clear:both;background-color:#f5f5f5;border:1px solid #e3e3e3;border-color:#e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.path-backup .mform .grouped_settings.section_level blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.path-backup .mform .grouped_settings{overflow:hidden;clear:both}.path-backup .include_setting,.path-backup .grouped_settings .normal_setting{display:inline-block}.path-backup .include_setting.section_level label{font-weight:bold}.path-backup .mform .fitem .fitemtitle{width:260px}.path-backup .mform .fitem .felement{margin-left:280px}.path-backup .notification.dependencies_enforced{font-weight:bold;color:#b94a48;text-align:center}.path-backup .backup_progress{text-align:center}.path-backup .backup_progress .backup_stage{color:#999}.path-backup .backup_progress .backup_stage.backup_stage_current{font-weight:bold;color:inherit}.path-backup .backup_progress span.backup_stage.backup_stage_complete{color:inherit}#page-backup-restore .filealiasesfailures{background-color:#f2dede}#page-backup-restore .filealiasesfailures .aliaseslist{width:90%;margin:.8em auto;background-color:#fff;border:1px dotted #666}.path-backup .fitem .smallicon{vertical-align:text-bottom}.backup-restore .backup-section>h2.header,.backup-restore .backup-section .backup-sub-section h3{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}.backup-restore .backup-section .noticebox{width:60%;margin:1em auto;text-align:center}.backup-restore .backup-section.settings-section .detail-pair{display:inline-block;*display:inline;width:50%;*zoom:1}.backup-restore .backup-section.settings-section .detail-pair-label{width:65%}.backup-restore .backup-section.settings-section .detail-pair-value{width:25%}.backup-restore .activitytable{min-width:500px}.backup-restore .activitytable .modulename{width:100px}.backup-restore .activitytable .moduleincluded{width:50px}.backup-restore .activitytable .userinfoincluded{width:50px}.backup-restore .detail-pair-label{display:inline-block;*display:inline;width:25%;padding:8px;margin:0;font-weight:bold;text-align:right;vertical-align:top;*zoom:1}.backup-restore .detail-pair-value{display:inline-block;*display:inline;width:65%;padding:8px;margin:0;*zoom:1}.backup-restore .detail-pair-value>.sub-detail{display:block;font-size:11.9px;color:#999}.backup-restore>.singlebutton{text-align:right}.path-backup .mform .fgroup .proceedbutton{float:right;margin-right:5%}.path-backup .mform .fgroup .oneclickbackup{float:right}.restore-course-search .rcs-results{width:70%;min-width:400px}.restore-course-search .rcs-results table{width:100%;margin:0;border-width:0}.restore-course-search .rcs-results table .no-overflow{max-width:600px}.restore-course-search .rcs-results .paging{padding:3px;margin:0;text-align:left;background-color:#eee}.restore-course-category .rcs-results{width:70%;min-width:400px;margin:5px 0;border:1px solid #ddd}.restore-course-category .rcs-results table{width:100%;margin:0;border-width:0}.restore-course-category .rcs-results table .no-overflow{max-width:600px}.restore-course-category .rcs-results .paging{padding:3px;margin:0;text-align:left;background-color:#eee}.path-backup .wibbler{position:relative;width:500px;min-height:4px;margin:0 auto 10px;border-right:1px solid black;border-bottom:1px solid black;border-left:1px solid black}.path-backup .wibbler .wibble{position:absolute;top:0;right:0;left:0;height:4px}.path-backup .wibbler .state0{background:#eee}.path-backup .wibbler .state1{background:#ddd}.path-backup .wibbler .state2{background:#ccc}.path-backup .wibbler .state3{background:#bbb}.path-backup .wibbler .state4{background:#aaa}.path-backup .wibbler .state5{background:#999}.path-backup .wibbler .state6{background:#888}.path-backup .wibbler .state7{background:#777}.path-backup .wibbler .state8{background:#666}.path-backup .wibbler .state9{background:#555}.path-backup .wibbler .state10{background:#444}.path-backup .wibbler .state11{background:#333}.path-backup .wibbler .state12{background:#222}.path-backup .backup_log{margin-top:2em}.path-backup .backup_log h2{font-size:1em}.path-backup .backup_log_contents{height:300px;padding:10px;overflow-y:scroll;border:1px solid #ddd}.dir-rtl.path-backup .mform .fgroup .proceedbutton{float:left;margin-right:0;margin-left:5%}.dir-rtl.path-backup .mform .fgroup .oneclickbackup{float:left}table.flexible,.generaltable{width:100%;margin-bottom:20px}table.flexible th,.generaltable th,table.flexible td,.generaltable td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}table.flexible th,.generaltable th{font-weight:bold}table.flexible thead th,.generaltable thead th{vertical-align:bottom}table.flexible caption+thead tr:first-child th,.generaltable caption+thead tr:first-child th,table.flexible caption+thead tr:first-child td,.generaltable caption+thead tr:first-child td,table.flexible colgroup+thead tr:first-child th,.generaltable colgroup+thead tr:first-child th,table.flexible colgroup+thead tr:first-child td,.generaltable colgroup+thead tr:first-child td,table.flexible thead:first-child tr:first-child th,.generaltable thead:first-child tr:first-child th,table.flexible thead:first-child tr:first-child td,.generaltable thead:first-child tr:first-child td{border-top:0}table.flexible tbody+tbody,.generaltable tbody+tbody{border-top:2px solid #ddd}table.flexible .table,.generaltable .table{background-color:#fff}.singlebutton div{display:inline-block;margin-right:5px;margin-bottom:5px;margin-left:5px}#notice .buttons .singlebutton{display:inline-block}.continuebutton{text-align:center}.btn-lineup{margin:0 0 10px 5px}input[name="searchwikicontent"]+input[type="submit"],select+input[type="submit"],input[type="text"]+input[type="button"],input[type="password"]+input[type="submit"],input[type="text"]+button,input[type="text"]+input[type="submit"]{margin:0 0 10px 5px}p.arrow_button{margin-top:5em;text-align:center}p.arrow_button #remove{margin:3em auto 5em}p.arrow_button input{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#addcontrols{margin-top:30px;margin-bottom:3em;text-align:center}#addcontrols label{display:inline}#addcontrols input,#removecontrols input{display:block;width:100%;padding-right:0;padding-left:0;margin-right:auto;margin-left:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}button,input.form-submit,input[type="button"],input[type="submit"],input[type="reset"]{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}button:hover,input.form-submit:hover,input[type="button"]:hover,input[type="submit"]:hover,input[type="reset"]:hover,button:focus,input.form-submit:focus,input[type="button"]:focus,input[type="submit"]:focus,input[type="reset"]:focus,button:active,input.form-submit:active,input[type="button"]:active,input[type="submit"]:active,input[type="reset"]:active,button.active,input.form-submit.active,input[type="button"].active,input[type="submit"].active,input[type="reset"].active,button.disabled,input.form-submit.disabled,input[type="button"].disabled,input[type="submit"].disabled,input[type="reset"].disabled,button[disabled],input.form-submit[disabled],input[type="button"][disabled],input[type="submit"][disabled],input[type="reset"][disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}button:active,input.form-submit:active,input[type="button"]:active,input[type="submit"]:active,input[type="reset"]:active,button.active,input.form-submit.active,input[type="button"].active,input[type="submit"].active,input[type="reset"].active{background-color:#ccc \9}button:first-child,input.form-submit:first-child,input[type="button"]:first-child,input[type="submit"]:first-child,input[type="reset"]:first-child{*margin-left:0}button:hover,input.form-submit:hover,input[type="button"]:hover,input[type="submit"]:hover,input[type="reset"]:hover,button:focus,input.form-submit:focus,input[type="button"]:focus,input[type="submit"]:focus,input[type="reset"]:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}button:focus,input.form-submit:focus,input[type="button"]:focus,input[type="submit"]:focus,input[type="reset"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}button.active,input.form-submit.active,input[type="button"].active,input[type="submit"].active,input[type="reset"].active,button:active,input.form-submit:active,input[type="button"]:active,input[type="submit"]:active,input[type="reset"]:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}button.disabled,input.form-submit.disabled,input[type="button"].disabled,input[type="submit"].disabled,input[type="reset"].disabled,button[disabled],input.form-submit[disabled],input[type="button"][disabled],input[type="submit"][disabled],input[type="reset"][disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}button .label,input.form-submit .label,input[type="button"] .label,input[type="submit"] .label,input[type="reset"] .label,button .badge,input.form-submit .badge,input[type="button"] .badge,input[type="submit"] .badge,input[type="reset"] .badge{position:relative;top:-1px}button,input.form-submit,input[type="button"],input[type="submit"],input[type="reset"]{margin:0 0 10px 5px}button.yui3-button.closebutton,button.yui3-button.closebutton:hover{background-position:0 0}input.fp-btn-choose{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.user-enroller-panel .uep-search-results .user .options .enrol{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.user-enroller-panel .uep-search-results .user .options .enrol .label,.user-enroller-panel .uep-search-results .user .options .enrol .badge{top:0}.user-enroller-panel .uep-search-results .cohort .options .enrol{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.user-enroller-panel .uep-search-results .cohort .options .enrol .label,.user-enroller-panel .uep-search-results .cohort .options .enrol .badge{top:0}.gradetreebox h4{font-size:14px}.gradetreebox th.cell,.gradetreebox input[type=text]{width:auto}.gradetreebox input[type=text],.gradetreebox select{margin-bottom:0}.core_grades_notices .singlebutton{display:inline-block}#page-grade-grading-manage #activemethodselector label{display:inline-block}#page-grade-grading-manage #activemethodselector .helptooltip{margin-right:.5em}#page-grade-grading-manage .actions{display:block;margin-bottom:1em;text-align:center}#page-grade-grading-manage .actions .action{position:relative;display:inline-block;*display:inline;width:150px;padding:4px 12px;padding:11px 19px;padding:1em;margin:.5em;margin-bottom:0;*margin-left:.3em;overflow:hidden;font-size:14px;font-size:17.5px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;vertical-align:top;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;border:1px solid #aaa;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-webkit-border-radius:6px;-moz-border-radius:4px;-moz-border-radius:6px;border-radius:4px;border-radius:6px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}#page-grade-grading-manage .actions .action:hover,#page-grade-grading-manage .actions .action:focus,#page-grade-grading-manage .actions .action:active,#page-grade-grading-manage .actions .action.active,#page-grade-grading-manage .actions .action.disabled,#page-grade-grading-manage .actions .action[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}#page-grade-grading-manage .actions .action:active,#page-grade-grading-manage .actions .action.active{background-color:#ccc \9}#page-grade-grading-manage .actions .action:first-child{*margin-left:0}#page-grade-grading-manage .actions .action:hover,#page-grade-grading-manage .actions .action:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}#page-grade-grading-manage .actions .action:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}#page-grade-grading-manage .actions .action.active,#page-grade-grading-manage .actions .action:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}#page-grade-grading-manage .actions .action.disabled,#page-grade-grading-manage .actions .action[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#page-grade-grading-manage .actions .action .label,#page-grade-grading-manage .actions .action .badge{position:relative;top:-1px}#page-grade-grading-manage .actions .action .action-icon{position:relative;display:inline-block;width:64px;height:64px}#page-grade-grading-manage .actions .action .action-text{position:relative;top:.4em;font-size:14px}#page-grade-grading-form-rubric-edit .gradingform_rubric_editform .status{font-size:70%}.gradingform_rubric.editor .addlevel input,.gradingform_rubric.editor .addcriterion input{background:#fff none no-repeat top left}.dir-rtl #rubric-rubric.gradingform_rubric #rubric-criteria .criterion .level .score{float:right;margin-right:0;margin-left:28px;text-align:right}.dir-rtl #rubric-rubric.gradingform_rubric #rubric-criteria .criterion .level .delete{float:left}.dir-rtl #rubric-rubric.gradingform_rubric #rubric-criteria .criterion .level .delete input{right:auto;left:0}.dir-rtl #rubric-rubric.gradingform_rubric .addcriterion{margin-right:5px;margin-left:0}.dir-rtl #rubric-rubric.gradingform_rubric .addcriterion input{padding-right:26px;padding-left:10px;background-position:right 8px top 8px}.dir-rtl #rubric-rubric.gradingform_rubric .options .option .value{margin-right:5px;margin-left:0}.dir-rtl #rubric-rubric.gradingform_rubric .options .option input{margin-right:5px;margin-left:12px}#rubric-rubric.gradingform_rubric #rubric-criteria{margin-bottom:1em}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .description{padding:6px;vertical-align:top}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .description textarea{height:115px;margin-bottom:0}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .definition textarea{width:80%;margin-bottom:0}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .score{position:relative;float:left;margin-right:28px}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .score input{margin-bottom:0}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .level{padding:6px;vertical-align:top}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .level .delete{position:relative;float:right;width:32px;height:32px;margin-top:-32px;clear:both}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .level .delete input{position:absolute;right:0;bottom:0;display:block;width:24px;height:24px;margin:0}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .level .delete input:hover{background-color:#ddd}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .scorevalue input{float:none;width:2em}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .scorevalue input.hiddenelement,#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .scorevalue input.pseudotablink{width:0}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel{vertical-align:middle}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input{display:inline-block;*display:inline;height:30px;padding:4px 12px;margin-right:5px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-position:0 0;background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input:hover,#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input:focus,#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input:active,#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input.active,#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input.disabled,#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input:active,#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input.active{background-color:#ccc \9}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input:first-child{*margin-left:0}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input:hover,#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input.active,#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input.disabled,#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input .label,#rubric-rubric.gradingform_rubric #rubric-criteria .criterion .addlevel input .badge{position:relative;top:-1px}#rubric-rubric.gradingform_rubric .addcriterion{display:inline-block;*display:inline;padding:4px 12px;padding:0;margin-bottom:0;margin-bottom:1em;margin-left:5px;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}#rubric-rubric.gradingform_rubric .addcriterion:hover,#rubric-rubric.gradingform_rubric .addcriterion:focus,#rubric-rubric.gradingform_rubric .addcriterion:active,#rubric-rubric.gradingform_rubric .addcriterion.active,#rubric-rubric.gradingform_rubric .addcriterion.disabled,#rubric-rubric.gradingform_rubric .addcriterion[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}#rubric-rubric.gradingform_rubric .addcriterion:active,#rubric-rubric.gradingform_rubric .addcriterion.active{background-color:#ccc \9}#rubric-rubric.gradingform_rubric .addcriterion:first-child{*margin-left:0}#rubric-rubric.gradingform_rubric .addcriterion:hover,#rubric-rubric.gradingform_rubric .addcriterion:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}#rubric-rubric.gradingform_rubric .addcriterion:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}#rubric-rubric.gradingform_rubric .addcriterion.active,#rubric-rubric.gradingform_rubric .addcriterion:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}#rubric-rubric.gradingform_rubric .addcriterion.disabled,#rubric-rubric.gradingform_rubric .addcriterion[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#rubric-rubric.gradingform_rubric .addcriterion .label,#rubric-rubric.gradingform_rubric .addcriterion .badge{position:relative;top:-1px}#rubric-rubric.gradingform_rubric .addcriterion input{padding-left:26px;margin:0;line-height:inherit;color:inherit;text-shadow:inherit;background:transparent url([[pix:t/add]]) no-repeat 7px 8px;border:0 none}#rubric-rubric.gradingform_rubric .options{clear:both}#rubric-rubric.gradingform_rubric .options .option label{padding:0;margin:0;font-size:inherit;font-weight:normal;line-height:2em;color:inherit;text-shadow:none;background-color:transparent}#rubric-rubric.gradingform_rubric .options .option input{margin-right:12px;margin-left:5px}.path-grade-edit-tree .setup-grades h4{margin:0}.path-grade-edit-tree .setup-grades .column-rowspan{width:24px;max-width:24px;min-width:24px;padding:0}.path-grade-edit-tree .setup-grades .category td.column-name{padding-left:0}.path-grade-edit-tree .setup-grades td.column-name{padding-left:24px}.path-grade-edit-tree .setup-grades .column-name h4 img.icon{padding-left:0}.path-grade-edit-tree .setup-grades .category input[type="text"],.path-grade-edit-tree .setup-grades .category .column-range,.path-grade-edit-tree .setup-grades .categoryitem,.path-grade-edit-tree .setup-grades .courseitem{font-weight:bold}.path-grade-edit-tree .setup-grades .emptyrow{display:none}.path-grade-edit-tree .setup-grades .gradeitemdescription{padding-left:24px;font-weight:normal}.path-grade-edit-tree .setup-grades .column-weight{white-space:nowrap}.path-grade-edit-tree .setup-grades .column-weight.level3{padding-left:37px}.path-grade-edit-tree .setup-grades .column-weight.level4{padding-left:66px}.path-grade-edit-tree .setup-grades .column-weight.level5{padding-left:95px}.path-grade-edit-tree .setup-grades .column-weight.level6{padding-left:124px}.path-grade-edit-tree .setup-grades .column-weight.level7{padding-left:153px}.path-grade-edit-tree .setup-grades .column-weight.level8{padding-left:182px}.path-grade-edit-tree .setup-grades .column-weight.level9{padding-left:211px}.path-grade-edit-tree .setup-grades .column-weight.level10{padding-left:240px}.path-grade-edit-tree .setup-grades .column-range.level2{padding-left:37px}.path-grade-edit-tree .setup-grades .column-range.level3{padding-left:66px}.path-grade-edit-tree .setup-grades .column-range.level4{padding-left:95px}.path-grade-edit-tree .setup-grades .column-range.level5{padding-left:124px}.path-grade-edit-tree .setup-grades .column-range.level6{padding-left:153px}.path-grade-edit-tree .setup-grades .column-range.level7{padding-left:182px}.path-grade-edit-tree .setup-grades .column-range.level8{padding-left:211px}.path-grade-edit-tree .setup-grades .column-range.level9{padding-left:240px}.path-grade-edit-tree .setup-grades .column-range.level10{padding-left:269px}.path-grade-edit-tree .setup-grades.generaltable .levelodd{background-color:#f9f9f9}.path-grade-edit-tree .setup-grades.generaltable .leveleven{background-color:transparent}.dir-rtl.path-grade-edit-tree .setup-grades .category td.column-name{padding-right:0}.dir-rtl.path-grade-edit-tree .setup-grades td.column-name{padding-right:24px}.dir-rtl.path-grade-edit-tree .setup-grades .column-name h4 img.icon{padding-left:4px}.dir-rtl.path-grade-edit-tree .setup-grades .gradeitemdescription{padding-right:24px;padding-left:0}.dir-rtl.path-grade-edit-tree .setup-grades .column-weight.level3{padding-right:37px;padding-left:0}.dir-rtl.path-grade-edit-tree .setup-grades .column-weight.level4{padding-right:66px;padding-left:0}.dir-rtl.path-grade-edit-tree .setup-grades .column-weight.level5{padding-right:95px;padding-left:0}.dir-rtl.path-grade-edit-tree .setup-grades .column-weight.level6{padding-right:124px;padding-left:0}.dir-rtl.path-grade-edit-tree .setup-grades .column-weight.level7{padding-right:153px;padding-left:0}.dir-rtl.path-grade-edit-tree .setup-grades .column-weight.level8{padding-right:182px;padding-left:0}.dir-rtl.path-grade-edit-tree .setup-grades .column-weight.level9{padding-right:211px;padding-left:0}.dir-rtl.path-grade-edit-tree .setup-grades .column-weight.level10{padding-right:240px;padding-left:0}.dir-rtl.path-grade-edit-tree .setup-grades .column-range.level2{padding-right:37px;padding-left:0}.dir-rtl.path-grade-edit-tree .setup-grades .column-range.level3{padding-right:66px;padding-left:0}.dir-rtl.path-grade-edit-tree .setup-grades .column-range.level4{padding-right:95px;padding-left:0}.dir-rtl.path-grade-edit-tree .setup-grades .column-range.level5{padding-right:124px;padding-left:0}.dir-rtl.path-grade-edit-tree .setup-grades .column-range.level6{padding-right:153px;padding-left:0}.dir-rtl.path-grade-edit-tree .setup-grades .column-range.level7{padding-right:182px;padding-left:0}.dir-rtl.path-grade-edit-tree .setup-grades .column-range.level8{padding-right:211px;padding-left:0}.dir-rtl.path-grade-edit-tree .setup-grades .column-range.level9{padding-right:240px;padding-left:0}.dir-rtl.path-grade-edit-tree .setup-grades .column-range.level10{padding-right:269px;padding-left:0}.path-grade-report .gradeparent table{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.path-grade-report .gradeparent tr .cell{background-color:#fff}.path-grade-report .gradeparent table,.path-grade-report .gradeparent .cell{border-color:#ddd}.path-grade-report .gradeparent tr:nth-of-type(even) .cell,.path-grade-report .gradeparent .floater .cell,.path-grade-report .gradeparent .avg{background-color:#f9f9f9}.path-grade-report .gradeparent table .clickable{cursor:pointer}.path-grade-report-user .user-grade{border:0}.path-grade-report-user .user-grade.generaltable .levelodd{background-color:#f9f9f9}.path-grade-report-user .user-grade.generaltable .leveleven{background-color:transparent}.has_dock.path-grade-report-grader .gradeparent .sideonly.floating>.cell,.has_dock.path-grade-report-grader .gradeparent .sideonly.floating>.cell,.has_dock.path-grade-report-grader .gradeparent .sideonly.floating>.cell{padding-left:47px}.has_dock.path-grade-report-grader.dir-rtl .gradeparent .sideonly.floating>.cell,.has_dock.path-grade-report-grader.dir-rtl .gradeparent .sideonly.floating>.cell,.has_dock.path-grade-report-grader.dir-rtl .gradeparent .sideonly.floating>.cell{padding-right:47px;padding-left:5px}.content-only.path-grade-report-grader .gradeparent table{margin-left:42px}.content-only.path-grade-report-grader.dir-rtl .gradeparent table{margin-right:42px;margin-left:0}.transform-test-heading{padding:0;margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:11px;font-weight:bold;line-height:36px;text-align:center}body.has_dock #page{padding-right:20px;padding-left:45px}body.has_dock div#dock{display:inline}#dock{position:fixed;top:0;left:0;z-index:12000;width:42px;height:100%;background-color:transparent;border-right:0 none}#dock .nothingdocked{display:none;visibility:hidden}#dock .dockeditem_container{margin-top:68px}#dock .dockeditem .firstdockitem{margin-top:1em}#dock .dockedtitle{display:inline-block;display:block;*display:inline;width:36px;padding:4px 12px;padding:0;margin:3px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}#dock .dockedtitle:hover,#dock .dockedtitle:focus,#dock .dockedtitle:active,#dock .dockedtitle.active,#dock .dockedtitle.disabled,#dock .dockedtitle[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}#dock .dockedtitle:active,#dock .dockedtitle.active{background-color:#ccc \9}#dock .dockedtitle:first-child{*margin-left:0}#dock .dockedtitle:hover,#dock .dockedtitle:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}#dock .dockedtitle:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}#dock .dockedtitle.active,#dock .dockedtitle:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}#dock .dockedtitle.disabled,#dock .dockedtitle[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#dock .dockedtitle .label,#dock .dockedtitle .badge{position:relative;top:-1px}#dock .dockedtitle h2{padding:0;margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:11px;font-weight:bold;line-height:36px;text-align:center}#dock .dockedtitle .filterrotate{margin-left:8px}#dock .controls{position:absolute;bottom:1em;width:100%;text-align:center}#dock .controls img{cursor:pointer}#dock .editing_move,#dock .moodle-core-dragdrop-draghandle{display:none}#dockeditempanel{position:relative;left:100%;min-width:200px;padding-left:5px}#dockeditempanel.dockitempanel_hidden{display:none}#dockeditempanel .dockeditempanel_content{width:384px;background-color:#f5f5f5;border:1px solid #d5d5d5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:2px 4px 4px 2px #eee;-moz-box-shadow:2px 4px 4px 2px #eee;box-shadow:2px 4px 4px 2px #eee}#dockeditempanel .dockeditempanel_bd{overflow:auto}#dockeditempanel .dockeditempanel_bd>*{margin:1em}#dockeditempanel .dockeditempanel_bd .block_navigation .block_tree li{overflow:visible}#dockeditempanel .dockeditempanel_hd{padding:.5em 1em;border-bottom:1px solid #fff}#dockeditempanel .dockeditempanel_hd h2{display:block;padding:3px 15px;padding:0;margin:0;font-size:11px;font-size:1.1em;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}#dockeditempanel .dockeditempanel_hd .commands{display:block;text-align:right}#dockeditempanel .dockeditempanel_hd .commands>a,#dockeditempanel .dockeditempanel_hd .commands>span{margin-left:3px;cursor:pointer}#dockeditempanel .dockeditempanel_hd .commands img,#dockeditempanel .dockeditempanel_hd .commands input{margin-right:1px;vertical-align:middle}#dockeditempanel .dockeditempanel_hd .commands .hidepanelicon img{cursor:pointer}#dockeditempanel .dockeditempanel_hd .commands img.actionmenu{width:auto}.dir-rtl.has_dock #page{padding-right:45px;padding-left:20px}.dir-rtl #dock{right:0;left:auto}.dir-rtl #dock .dockedtitle h2{line-height:25px}.dir-rtl #dockeditempanel{right:100%}.dir-rtl #dockeditempanel .dockeditempanel_hd .commands{text-align:left}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-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)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}}@media(min-width:980px){.dir-rtl .navbar .nav.pull-right,.dir-rtl .navbar .logininfo{float:left}.dir-rtl .navbar .nav{float:right}.dir-rtl .navbar .nav>li{float:right}}@media(min-width:980px) and (max-width:1199px){.form-item .form-label,.mform .fitem div.fitemtitle,.userprofile dl.list dt,.form-horizontal .control-label{width:200px}.form-item .form-setting,.form-item .form-description,.mform .fitem .felement,#page-mod-forum-search .c1,.mform .fdescription.required,.userprofile dl.list dd,.form-horizontal .controls{margin-left:220px}.dir-rtl .form-item .form-setting,.dir-rtl .form-item .form-description,.dir-rtl .mform .fitem .felement,.dir-rtl .mform .fdescription.required,.dir-rtl .userprofile dl.list dd,.dir-rtl .form-horizontal .controls{margin-right:220px}#page-mod-forum-search.dir-lrt .c1{margin-right:220px}.path-admin .buttons,.form-buttons{padding-left:220px}}@media(max-width:767px){.file-picker .fp-repo-area{float:none;width:100%;height:auto;max-height:220px;border:0;y-scroll:auto}.file-picker .fp-repo-items{float:none;width:100%;margin-left:0}.file-picker .fp-login-form .fp-login-input label{text-align:left}.dir-rtl .file-picker .fp-login-form .fp-login-input label{text-align:right}.file-picker .fp-content form td{display:block;width:100%;text-align:left}.dir-rtl .file-picker .fp-content form td{text-align:right}.fp-content .mdl-right{text-align:left}.dir-rtl .fp-content .mdl-right{text-align:right}.fp-repo-items .fp-navbar{border-top:1px solid #bbb}.dir-rtl .userprofile dl.list dt,.dir-rtl .userprofile dl.list dd{float:none;margin-right:0;text-align:right}.fp-formset div{height:auto}}@media(min-width:1200px){.path-question #id_answerhdr div.fitem_feditor{padding-right:6px}.loginbox.twocolumns .loginpanel{margin-left:0}.loginbox.twocolumns .loginpanel,.loginbox.twocolumns .signuppanel{width:48.717948717948715%;*width:48.664757228587014%}.form-item .form-label,.mform .fitem div.fitemtitle,.userprofile dl.list dt,.form-horizontal .control-label{width:245px}.form-item .form-setting,.form-item .form-description,.mform .fitem .felement,#page-mod-forum-search .c1,.mform .fdescription.required,.userprofile dl.list dd,.form-horizontal .controls{margin-left:265px}.dir-rtl .form-item .form-setting,.dir-rtl .form-item .form-description,.dir-rtl .mform .fitem .felement,.dir-rtl .mform .fdescription.required,.dir-rtl .userprofile dl.list dd,.dir-rtl .form-horizontal .controls{margin-right:165px}.dir-rtl #page-mod-forum-search .c1{margin-right:265px}.dir-rtl .form-item .form-label,.dir-rtl .mform .fitem div.fitemtitle,.dir-rtl .userprofile dl.list dt,.dir-rtl .form-horizontal .control-label{width:145px}.path-admin .buttons,.form-buttons{padding-left:265px}.dir-rtl .path-admin .buttons,.dir-rtl .form-buttons{padding-right:265px}.empty-region-side-post.used-region-side-pre #region-main.span8,.jsenabled.docked-region-side-post.used-region-side-pre #region-main.span8{width:74.35897435897436%;*width:74.30578286961266%}.empty-region-side-post.used-region-side-pre #block-region-side-pre.span4,.jsenabled.docked-region-side-post.used-region-side-pre #block-region-side-pre.span4{width:23.076923076923077%;*width:23.023731587561375%}}@media(min-width:980px){.loginbox.twocolumns .loginpanel{margin-left:0}.loginbox.twocolumns .loginpanel,.loginbox.twocolumns .signuppanel{width:48.617948717948715%;*width:48.664757228587014%}}@media(min-width:768px) and (max-width:979px){.loginbox.twocolumns .loginpanel{margin-left:0}.loginbox.twocolumns .loginpanel,.loginbox.twocolumns .signuppanel{width:48.61878453038674%;*width:48.56559304102504%}.empty-region-side-post.used-region-side-pre #region-main.span8,.jsenabled.docked-region-side-post.used-region-side-pre #region-main.span8{width:74.30939226519337%;*width:74.25620077583166%}.empty-region-side-post.used-region-side-pre #block-region-side-pre.span4,.jsenabled.docked-region-side-post.used-region-side-pre #block-region-side-pre.span4{width:22.92817679558011%;*width:22.87498530621841%}}@media(max-width:767px){.loginbox.twocolumns .loginpanel,.loginbox.twocolumns .signuppanel{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#page-mod-quiz-edit div.quizcontents,.questionbankwindow.block{float:none;width:100%}#page-mod-quiz-edit #block-region-side-pre,#page-mod-quiz-edit #block-region-side-post{clear:both}}@media(max-width:480px){{}.nav-tabs>li{float:none}.nav-tabs>li>a{margin-right:0}.nav-tabs{border-bottom:0}.nav-tabs>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs>.active>a,.nav-tabs>.active>a:hover{border:1px solid #ddd}.nav-tabs>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{z-index:2;border-color:#ddd}.fp-content-center{display:block;vertical-align:top}.course-content ul.topics li.section,.course-content ul.topics li.section .content,.course-content ul.weeks li.section .content,.course-content ul.weeks li.section,.course-content ul.section{padding:0;margin-right:0;margin-left:0}.activityinstance{display:block}.editing .course-content .section .activity{padding-bottom:.2em;margin-bottom:.2em;border-bottom:thin solid #eee}.course-content .section .activity .commands{text-align:right}.jsenabled .choosercontainer #chooseform .alloptions{max-width:100%}.jsenabled .choosercontainer #chooseform .instruction,.jsenabled .choosercontainer #chooseform .typesummary{position:static}.que .info{float:none;width:auto}.que .content{margin:0}.path-mod-choice .horizontal .choices .option{display:block}.path-mod-forum .forumsearch #search{width:120px}.path-mod-forum .forumheaderlist .picture{display:none}}@media(min-width:768px){.row-fluid .desktop-first-column{margin-left:0}#page-navbar .breadcrumb-button{display:inline}}@media(max-width:767px){.row-fluid .desktop-first-column{clear:both}}@media(max-width:767px){.form-item .form-label,.mform .fitem div.fitemtitle{float:none;width:auto;padding-top:0;text-align:left}.form-item .form-label label{display:inline-block;margin-right:.5em}.form-item .form-setting .form-checkbox{margin-top:0}.form-label span.form-shortname{display:inline-block}.form-item .form-setting,.mform .fitem .felement,.path-backup .mform .fitem .felement,.mform .fdescription.required,.form-item .form-description{margin-left:0}table#form td.submit,.form-buttons,#fitem_id_submitbutton,.fp-content-center form+div,#fgroup_id_buttonar,.form-horizontal .form-actions,.fitem_fsubmit .felement.fsubmit{padding-right:10px;padding-left:10px}#helppopupbox{left:0!important;width:auto!important}}@media(min-width:768px) and (max-width:979px){.block_calendar_month .content,.block .minicalendar td{padding-right:0;padding-left:0}}.dir-rtl .dropdown-menu{right:0;left:auto;margin-right:0}.dir-rtl .navbar .nav>li>.dropdown-menu:before{right:9px;left:auto}.dir-rtl .navbar .nav>li>.dropdown-menu:after{right:10px;left:auto}.dir-rtl .dropdown-submenu>a:after{float:left;margin-right:0;margin-left:-10px;border-right-color:#ccc;border-left-color:transparent;border-width:5px 5px 5px 0}.dir-rtl .dropdown-submenu>.dropdown-menu{right:100%;left:auto}@media(max-width:979px){.nav-collapse{height:0}.nav-collapse .nav>li>a{color:#333}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus,.nav-collapse .dropdown-submenu a:focus,.nav-collapse .dropdown-submenu a:hover,.nav-collapse .dropdown-submenu a:active,.nav-collapse .dropdown-menu>li>a:hover,.nav-collapse .dropdown-menu>li>a:focus{color:#333;background-image:none}.nav-collapse.in{height:auto}.nav-collapse.in .usermenu .moodle-actionmenu[data-enhanced] .toggle-display{display:none}.nav-collapse.in .usermenu .moodle-actionmenu[data-enhanced] .menu{display:block}.nav-collapse.in .usermenu .moodle-actionmenu[data-enhanced] .menu li{margin:0 .5em}.path-mod-data .box>table>tbody>tr>td{display:block}.path-mod-forum .forumheaderlist thead .header{font-size:12px;font-weight:normal}.path-mod-forum .forumheaderlist .discussion .author,.path-mod-forum .forumheaderlist .discussion .replies,.path-mod-forum .forumheaderlist .discussion .lastpost{font-size:12px}.path-mod-forum .forumheaderlist .discussion .replies .unread a{padding:0}.navbar .nav-collapse.in{border-top:1px solid #d4d4d4}.navbar .nav-collapse.in.pull-left,.navbar .nav-collapse.in.pull-right{float:none}.navbar .nav-collapse.in>.nav{margin:0}.navbar .nav-collapse.in>.nav>li>a{padding-left:20px;border-radius:0}.navbar .nav-collapse.in>.nav .dropdown-menu{margin:0 0 0 15px}.navbar .nav-collapse.in>.nav .dropdown-menu li>a{border-radius:0}.navbar .nav-collapse.in .nav .dropdown-submenu .dropdown-toggle:after,.navbar .nav-collapse.in .nav .dropdown-menu .dropdown-submenu .dropdown-toggle:after{display:inline-block;float:none;width:0;height:0;margin-top:8px;margin-left:4px;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;border-top-color:#d4d4d4;content:""}.navbar .nav-collapse.in .nav .dropdown-submenu.open>a,.navbar .nav-collapse.in .nav .dropdown-menu .dropdown-submenu.open>a{background-color:#f2f2f2}.navbar .nav-collapse.in .nav .dropdown-submenu:hover .dropdown-menu,.navbar .nav-collapse.in .nav .dropdown-menu .dropdown-submenu:hover .dropdown-menu{display:none}.navbar .nav-collapse.in .nav .dropdown-submenu:hover.open>a,.navbar .nav-collapse.in .nav .dropdown-menu .dropdown-submenu:hover.open>a{background-color:#f2f2f2}.navbar .nav-collapse.in .nav .dropdown-submenu:hover.open>.dropdown-menu,.navbar .nav-collapse.in .nav .dropdown-menu .dropdown-submenu:hover.open>.dropdown-menu,.navbar .nav-collapse.in .nav .dropdown-submenu:hover.open .open>.dropdown-menu,.navbar .nav-collapse.in .nav .dropdown-menu .dropdown-submenu:hover.open .open>.dropdown-menu{display:block}.navbar .nav-collapse.in .nav .divider,.navbar .nav-collapse.in .nav .dropdown-menu .divider{display:block;width:auto;height:0;margin:4px 1px;border-top:1px solid #d4d4d4;border-right:0 none;border-bottom:1px solid #fff;border-left:0 none}.navbar-inverse .nav-collapse.in{border-top-color:#252525}.navbar-inverse .nav-collapse.in .nav .dropdown-submenu .dropdown-toggle:after,.navbar-inverse .nav-collapse.in .nav .dropdown-menu .dropdown-submenu .dropdown-toggle:after{border-top-color:#252525}.navbar-inverse .nav-collapse.in .nav .dropdown-submenu.open>a,.navbar-inverse .nav-collapse.in .nav .dropdown-menu .dropdown-submenu.open>a{background-color:#111}.navbar-inverse .nav-collapse.in .nav .dropdown-submenu:hover.open>a,.navbar-inverse .nav-collapse.in .nav .dropdown-menu .dropdown-submenu:hover.open>a{background-color:#111}.navbar-inverse .nav-collapse.in .nav .divider,.navbar-inverse .nav-collapse.in .nav .dropdown-menu .divider{display:block;width:auto;height:0;margin:4px 1px;border-top:1px solid #111;border-bottom:1px solid #515151}.navbar-inverse .nav-collapse.in .nav>li>a:hover,.navbar-inverse .nav-collapse.in .nav>li>a:focus{color:#fff}.navbar-inverse .nav-collapse.in .dropdown-menu a:hover,.navbar-inverse .nav-collapse.in .dropdown-menu a:focus{color:#fff}.navbar-inverse .nav-collapse.in .dropdown-menu a>li>a:hover,.navbar-inverse .nav-collapse.in .dropdown-menu a>li>a:focus{color:#fff}.navbar-inverse .nav-collapse.in .dropdown-submenu a:hover,.navbar-inverse .nav-collapse.in .dropdown-submenu a:focus,.navbar-inverse .nav-collapse.in .dropdown-submenu a:active{color:#fff}.dir-rtl .navbar .nav-collapse.in>.nav{margin:0}.dir-rtl .navbar .nav-collapse.in>.nav>li>a{padding-right:20px;padding-left:0}.dir-rtl .navbar .nav-collapse.in>.nav .dropdown-menu{margin:0 15px 0 0}.dir-rtl .navbar .nav-collapse.in .dropdown-menu>li>a{padding:9px 15px}.dir-rtl .navbar .nav-collapse.in .nav .dropdown-submenu .dropdown-toggle:after,.dir-rtl .navbar .nav-collapse.in .nav .dropdown-menu .dropdown-submenu .dropdown-toggle:after{margin-right:4px;margin-left:0}}@media(max-width:767px){#filesskin .yui3-panel,#filesskin .file-picker.fp-generallayout{left:0;width:100%}.userprofile dl.list dt{float:none;width:auto;clear:none;text-align:left}.userprofile dl.list dd{margin-left:0}#page-mod-wiki-create .mform .fitem div.fitemtitle{float:left}.container{width:auto}.row-fluid{width:100%}.row-fluid .span8.pull-right,.row-fluid .span9.pull-right{float:none}.row{margin-left:0}[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.empty-region-side-post.used-region-side-pre #block-region-side-pre.span4,.jsenabled.docked-region-side-post.used-region-side-pre #block-region-side-pre.span4,.empty-region-side-post.used-region-side-pre #region-main.span8,.jsenabled.docked-region-side-post.used-region-side-pre #region-main.span8{width:100%;*width:99.94680851063829%}.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}div[role=main]{margin-bottom:1em}.coursebox .info .name a{background-position:0 13px}.category-browse .coursebox .info .name a{background-position:0 13px}}@media(min-width:1200px) and (max-width:1600px){#course-category-listings.columns-3{background-color:transparent;border:0}#course-category-listings.columns-3 #category-listing,#course-category-listings.columns-3 #course-listing{width:48.717948717948715%;*width:48.664757228587014%;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%}#course-category-listings.columns-3 #category-listing:first-child,#course-category-listings.columns-3 #course-listing:first-child{margin-left:0}#course-category-listings.columns-3 #course-detail{width:100%;*width:99.94680851063829%;margin:1em 0 0}}@media(max-width:1199px){.path-question #id_answerhdr div.fitem{padding-right:6px;padding-left:4px}#course-category-listings.columns-3{background-color:transparent;border:0}#course-category-listings.columns-3 #category-listing,#course-category-listings.columns-3 #course-listing,#course-category-listings.columns-3 #course-detail{width:100%;*width:99.94680851063829%;margin:0 0 1em 0}#page-mod-forum-discuss .discussioncontrols{text-align:right}#page-mod-forum-discuss .discussioncontrols .discussioncontrol{display:inline-block;float:none;width:auto;margin:0 3px .5em}#page-mod-forum-discuss .discussioncontrols .discussioncontrol select,#page-mod-forum-discuss .discussioncontrols .discussioncontrol input{margin-bottom:0}#page-mod-forum-discuss .discussioncontrols .discussioncontrol.movediscussion{padding-right:0;margin-right:0}#page-mod-forum-discuss.dir-rtl .discussioncontrols{text-align:left}}@media(max-width:768px){.fp-forminset .control-group .controls{margin-left:0}.dir-rtl .fp-formset .control-group label.control-label{float:none;text-align:right}.dir-rtl .fp-forminset .control-group label.control-label{float:none;text-align:right}.dir-rtl .fp-forminset .control-group .controls{margin-right:0}}.phpinfo table,.phpinfo th,.phpinfo h2{margin:auto;text-align:left}.phpinfo h2{width:600px}.phpinfo .e,.phpinfo .v,.phpinfo .h{font-size:.8em;color:#000;vertical-align:baseline;background-color:#ccc;border:1px solid #000}.phpinfo .e{font-weight:bold;background-color:#ccf}.phpinfo .h{font-weight:bold;background-color:#99c}#page-footer .performanceinfo{margin:10px 20%}#page-footer .performanceinfo span{display:block}#page-footer .validators{padding-top:5px;margin-top:40px;border-top:1px dotted gray}#page-footer .validators ul{padding:0;margin:0;list-style-type:none}#page-footer .validators ul li{display:inline;margin-right:10px;margin-left:10px}#page-footer .performanceinfo .cachesused{margin-top:1em}#page-footer .performanceinfo .cachesused .cache-stats-heading,#page-footer .performanceinfo .cachesused .cache-total-stats{margin-top:.3em;font-size:110%;font-weight:bold}#page-footer .performanceinfo .cachesused .cache-definition-stats{display:inline-block;margin:.3em;vertical-align:top;background-color:#f5f5f5}#page-footer .performanceinfo .cachesused .cache-definition-stats .cache-definition-stats-heading span{display:inline-block;cursor:default}#page-footer .performanceinfo .cachesused .cache-definition-stats .cache-store-stats{padding:0 1.3em}#page-footer .performanceinfo .cachesused .cache-definition-stats .cache-store-stats.nohits{background-color:#f2dede}#page-footer .performanceinfo .cachesused .cache-definition-stats .cache-store-stats.lowhits{background-color:#fcf8e3}#page-footer .performanceinfo .cachesused .cache-definition-stats .cache-store-stats.hihits{background-color:#dff0d8}#page-footer,#page-footer .validators,#page-footer .purgecaches,#page-footer .performanceinfo{text-align:center}table#explaincaps tbody>tr:nth-child(odd)>td,table#defineroletable tbody>tr:nth-child(odd)>td,table.grading-report tbody>tr:nth-child(odd)>td,table#listdirectories tbody>tr:nth-child(odd)>td,table.rolecaps tbody>tr:nth-child(odd)>td,table.userenrolment tbody>tr:nth-child(odd)>td,table#form tbody>tr:nth-child(odd)>td,form#movecourses table tbody>tr:nth-child(odd)>td,#page-admin-course-index .editcourse tbody>tr:nth-child(odd)>td,.forumheaderlist tbody>tr:nth-child(odd)>td,table.flexible tbody>tr:nth-child(odd)>td,.generaltable tbody>tr:nth-child(odd)>td,table#explaincaps tbody>tr:nth-child(odd)>th,table#defineroletable tbody>tr:nth-child(odd)>th,table.grading-report tbody>tr:nth-child(odd)>th,table#listdirectories tbody>tr:nth-child(odd)>th,table.rolecaps tbody>tr:nth-child(odd)>th,table.userenrolment tbody>tr:nth-child(odd)>th,table#form tbody>tr:nth-child(odd)>th,form#movecourses table tbody>tr:nth-child(odd)>th,#page-admin-course-index .editcourse tbody>tr:nth-child(odd)>th,.forumheaderlist tbody>tr:nth-child(odd)>th,table.flexible tbody>tr:nth-child(odd)>th,.generaltable tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}table caption{font-size:24px;font-weight:bold;line-height:42px;text-align:left}.dir-rtl table#explaincaps td,.dir-rtl table#defineroletable td,.dir-rtl table.grading-report td,.dir-rtl table#listdirectories td,.dir-rtl table.rolecaps td,.dir-rtl table.userenrolment td,.dir-rtl table#form td,.dir-rtl form#movecourses table td,.dir-rtl .forumheaderlist td,.dir-rtl table.flexible td,.dir-rtl .generaltable td,.dir-rtl .generaltable thead:first-child tr:first-child td,.dir-rtl table#explaincaps th,.dir-rtl table#defineroletable th,.dir-rtl table.grading-report th,.dir-rtl table#listdirectories th,.dir-rtl table.rolecaps th,.dir-rtl table.userenrolment th,.dir-rtl table#form th,.dir-rtl form#movecourses table th,.dir-rtl .forumheaderlist th,.dir-rtl table.flexible th,.dir-rtl .generaltable th,.dir-rtl .generaltable thead:first-child tr:first-child th{text-align:right}.dir-rtl table caption{text-align:right}#page-admin-course-index.dir-rtl .editcourse td,#page-admin-course-index.dir-rtl .editcourse th{text-align:right}#page-report-loglive-index .generaltable th,#page-admin-report-log-index .generaltable th,#page-report-log-user .generaltable th,#page-admin-user table th,.environmenttable th,.category_subcategories th,.rcs-results th,table#listdirectories th,#page-report-loglive-index .generaltable td,#page-admin-report-log-index .generaltable td,#page-report-log-user .generaltable td,#page-admin-user table td,.environmenttable td,.category_subcategories td,.rcs-results td,table#listdirectories td{padding:4px 5px}.user-enroller-panel .uep-search-results .users tbody tr:hover>td,.user-enroller-panel .uep-search-results .cohorts tbody tr:hover>td,table.grading-report tbody tr:hover>td,.forumheaderlist tbody tr:hover>td,.generaltable tbody tr:hover>td,table.flexible tbody tr:hover>td,.category_subcategories tbody tr:hover>td,table#modules tbody tr:hover>td,table#permissions tbody tr:hover>td,.user-enroller-panel .uep-search-results .users tbody tr:hover>th,.user-enroller-panel .uep-search-results .cohorts tbody tr:hover>th,table.grading-report tbody tr:hover>th,.forumheaderlist tbody tr:hover>th,.generaltable tbody tr:hover>th,table.flexible tbody tr:hover>th,.category_subcategories tbody tr:hover>th,table#modules tbody tr:hover>th,table#permissions tbody tr:hover>th{background-color:#f5f5f5}div[id^="bar_pbar_"]{height:20px!important;margin-bottom:20px!important;overflow:hidden!important;background-color:#f7f7f7!important;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9)!important;background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9))!important;background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9)!important;background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9)!important;background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9)!important;background-repeat:repeat-x!important;border:none!important;-webkit-border-radius:4px!important;-moz-border-radius:4px!important;border-radius:4px!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0)!important;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)!important;-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)!important;box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)!important}div[id^="progress_pbar_"]{float:left!important;height:100%!important;padding-top:0!important;font-size:12px!important;color:#fff!important;text-align:center!important;text-shadow:0 -1px 0 rgba(0,0,0,0.25)!important;background-color:#0e90d2!important;background-image:-moz-linear-gradient(top,#149bdf,#0480be)!important;background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be))!important;background-image:-webkit-linear-gradient(top,#149bdf,#0480be)!important;background-image:-o-linear-gradient(top,#149bdf,#0480be)!important;background-image:linear-gradient(to bottom,#149bdf,#0480be)!important;background-repeat:repeat-x!important;border:none!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0)!important;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15)!important;-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15)!important;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15)!important;-webkit-box-sizing:border-box!important;-moz-box-sizing:border-box!important;box-sizing:border-box!important;-webkit-transition:width .6s ease!important;-moz-transition:width .6s ease!important;-o-transition:width .6s ease!important;transition:width .6s ease!important}input.form-submit,input#id_submitbutton,input#id_submitbutton2,.path-admin .buttons input[type="submit"],td.submit input{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#005aa8;*background-color:#0038a8;background-image:-moz-linear-gradient(top,#0070a8,#0038a8);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0070a8),to(#0038a8));background-image:-webkit-linear-gradient(top,#0070a8,#0038a8);background-image:-o-linear-gradient(top,#0070a8,#0038a8);background-image:linear-gradient(to bottom,#0070a8,#0038a8);background-repeat:repeat-x;border-color:#0038a8 #0038a8 #001e5c;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0070a8',endColorstr='#ff0038a8',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}input.form-submit:hover,input#id_submitbutton:hover,input#id_submitbutton2:hover,.path-admin .buttons input[type="submit"]:hover,td.submit input:hover,input.form-submit:focus,input#id_submitbutton:focus,input#id_submitbutton2:focus,.path-admin .buttons input[type="submit"]:focus,td.submit input:focus,input.form-submit:active,input#id_submitbutton:active,input#id_submitbutton2:active,.path-admin .buttons input[type="submit"]:active,td.submit input:active,input.form-submit.active,input#id_submitbutton.active,input#id_submitbutton2.active,.path-admin .buttons input[type="submit"].active,td.submit input.active,input.form-submit.disabled,input#id_submitbutton.disabled,input#id_submitbutton2.disabled,.path-admin .buttons input[type="submit"].disabled,td.submit input.disabled,input.form-submit[disabled],input#id_submitbutton[disabled],input#id_submitbutton2[disabled],.path-admin .buttons input[type="submit"][disabled],td.submit input[disabled]{color:#fff;background-color:#0038a8;*background-color:#002f8f}input.form-submit:active,input#id_submitbutton:active,input#id_submitbutton2:active,.path-admin .buttons input[type="submit"]:active,td.submit input:active,input.form-submit.active,input#id_submitbutton.active,input#id_submitbutton2.active,.path-admin .buttons input[type="submit"].active,td.submit input.active{background-color:#002775 \9}input.form-submit .caret,input#id_submitbutton .caret,input#id_submitbutton2 .caret,.path-admin .buttons input[type="submit"] .caret,td.submit input .caret{border-top-color:#fff;border-bottom-color:#fff}#notice .singlebutton+.singlebutton input,.submit.buttons input[name="cancel"]{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}#notice .singlebutton+.singlebutton input:hover,.submit.buttons input[name="cancel"]:hover,#notice .singlebutton+.singlebutton input:focus,.submit.buttons input[name="cancel"]:focus,#notice .singlebutton+.singlebutton input:active,.submit.buttons input[name="cancel"]:active,#notice .singlebutton+.singlebutton input.active,.submit.buttons input[name="cancel"].active,#notice .singlebutton+.singlebutton input.disabled,.submit.buttons input[name="cancel"].disabled,#notice .singlebutton+.singlebutton input[disabled],.submit.buttons input[name="cancel"][disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}#notice .singlebutton+.singlebutton input:active,.submit.buttons input[name="cancel"]:active,#notice .singlebutton+.singlebutton input.active,.submit.buttons input[name="cancel"].active{background-color:#ccc \9}#notice .singlebutton+.singlebutton input:first-child,.submit.buttons input[name="cancel"]:first-child{*margin-left:0}#notice .singlebutton+.singlebutton input:hover,.submit.buttons input[name="cancel"]:hover,#notice .singlebutton+.singlebutton input:focus,.submit.buttons input[name="cancel"]:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}#notice .singlebutton+.singlebutton input:focus,.submit.buttons input[name="cancel"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}#notice .singlebutton+.singlebutton input.active,.submit.buttons input[name="cancel"].active,#notice .singlebutton+.singlebutton input:active,.submit.buttons input[name="cancel"]:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}#notice .singlebutton+.singlebutton input.disabled,.submit.buttons input[name="cancel"].disabled,#notice .singlebutton+.singlebutton input[disabled],.submit.buttons input[name="cancel"][disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#notice .singlebutton+.singlebutton input .label,.submit.buttons input[name="cancel"] .label,#notice .singlebutton+.singlebutton input .badge,.submit.buttons input[name="cancel"] .badge{position:relative;top:-1px}#notice .singlebutton+.singlebutton input,.submit.buttons input[name="cancel"]{margin:0 0 10px 5px}input[id$="_clearbutton"],input[type="reset"]{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}input[id$="_clearbutton"]:hover,input[type="reset"]:hover,input[id$="_clearbutton"]:focus,input[type="reset"]:focus,input[id$="_clearbutton"]:active,input[type="reset"]:active,input[id$="_clearbutton"].active,input[type="reset"].active,input[id$="_clearbutton"].disabled,input[type="reset"].disabled,input[id$="_clearbutton"][disabled],input[type="reset"][disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}input[id$="_clearbutton"]:active,input[type="reset"]:active,input[id$="_clearbutton"].active,input[type="reset"].active{background-color:#c67605 \9}input[id$="_clearbutton"] .caret,input[type="reset"] .caret{border-top-color:#fff;border-bottom-color:#fff}
+ */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}.img-responsive{width:auto\9;height:auto;max-width:100%;-ms-interpolation-mode:bicubic}img{vertical-align:middle;border:0}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#0070a8;text-decoration:none}a:hover,a:focus{color:#003d5c;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#8a6d3b}a.text-warning:hover,a.text-warning:focus{color:#66512c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:180px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:200px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#8a6d3b}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#8a6d3b}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:180px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:200px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:200px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:200px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("[[pix:theme|glyphicons-halflings]]");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("[[pix:theme|glyphicons-halflings-white]]")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#00699e;background-image:-moz-linear-gradient(top,#0070a8,#005f8f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0070a8),to(#005f8f));background-image:-webkit-linear-gradient(top,#0070a8,#005f8f);background-image:-o-linear-gradient(top,#0070a8,#005f8f);background-image:linear-gradient(to bottom,#0070a8,#005f8f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0070a8',endColorstr='#ff005f8f',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#00699e;background-image:-moz-linear-gradient(top,#0070a8,#005f8f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0070a8),to(#005f8f));background-image:-webkit-linear-gradient(top,#0070a8,#005f8f);background-image:-o-linear-gradient(top,#0070a8,#005f8f);background-image:linear-gradient(to bottom,#0070a8,#005f8f);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0070a8',endColorstr='#ff005f8f',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-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-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#005aa8;*background-color:#0038a8;background-image:-moz-linear-gradient(top,#0070a8,#0038a8);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0070a8),to(#0038a8));background-image:-webkit-linear-gradient(top,#0070a8,#0038a8);background-image:-o-linear-gradient(top,#0070a8,#0038a8);background-image:linear-gradient(to bottom,#0070a8,#0038a8);background-repeat:repeat-x;border-color:#0038a8 #0038a8 #001e5c;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0070a8',endColorstr='#ff0038a8',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#0038a8;*background-color:#002f8f}.btn-primary:active,.btn-primary.active{background-color:#002775 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;backgro