@import url(https://fonts.googleapis.com/css2?family=Roboto+Mono&family=Roboto:wght@300&display=swap);@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap);@import url(https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap);.ai-drawer{position:fixed;top:60px;bottom:0;right:calc(-315px + -10px);width:315px;background-color:#f8f9fa;z-index:1016;transition:right 0.2s ease,top 0.2s ease,bottom 0.2s ease,visibility 0.2s ease,transform 0.5s ease;visibility:hidden}.ai-drawer.show{right:0;visibility:visible}.ai-drawer-header{padding:0;height:60px;display:flex;align-items:center}.ai-drawer-header .ai-drawer-button{margin-left:auto;margin-right:5px}.ai-drawer-body{position:relative;height:calc(100vh - 120px);display:flex;flex-direction:column;flex-wrap:nowrap;padding:.4rem;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#6a737b #f8f9fa}.course-assist-response-content{font-size:.875em}#ai-features .icon{min-width:16px}.course-assist-response-header .icon{width:30px;height:30px}.course-assist-controls .icon,.ai-course-assist-sparkles-icon .icon{margin-right:0}.course-assist-controls .ai-action{color:unset}.course-assist-controls .ai-action .ai-course-assist-sparkles-icon,.course-assist-controls .ai-action:not([disabled]):hover .ai-course-assist-sparkles-icon.white,.course-assist-controls.show .ai-action:not([disabled]) .ai-course-assist-sparkles-icon.white{display:inline-block}.course-assist-controls .ai-action .ai-course-assist-sparkles-icon.white,.course-assist-controls .ai-action:not([disabled]):hover .ai-course-assist-sparkles-icon,.course-assist-controls.show .ai-action:not([disabled]) .ai-course-assist-sparkles-icon{display:none}#availability_password_intro{border-bottom:1px solid #e9ecef;margin-bottom:1rem;padding-bottom:1rem}.availability_password_dialogue .moodle-dialogue-wrap{border-radius:.6rem}.availability_password_dialogue .moodle-dialogue-bd,.availability_password_dialogue .moodle-dialogue-ft{padding:1rem!important}.availability_password_dialogue .moodle-dialogue-hd h5{font-size:1.171875rem!important;font-weight:700!important}.availability_password_dialogue .moodle-dialogue-ft{border-top:1px solid #e9ecef;padding-top:1rem}.availability_password_dialogue .moodle-dialogue-ft .yui3-button{background-image:none!important;box-shadow:none!important}.advmultichoice.que .answers .animate__animated{opacity:0}.advmultichoice.que .answers .animate__animated.noanimation,.advmultichoice.que .answers .animate__animated[data-animation="noanimation"],.advmultichoice.que .answers .animate__animated.feedback-wrapper.noanimation[data-animation="noanimation"],.advmultichoice.que .answers .animate__animated.feedback-wrapper.noanimation{opacity:1}.que.advmultichoice .formulation{border:0;background:none}.que.advmultichoice .formulation>.qtext{font-size:2rem}.qtype-advmultichoice{container-name:answer-block;container-type:inline-size}.qtype-advmultichoice .answer-block{@container answer-block (min-width:831px){display:flex}align-items:center;gap:0 10px}.qtype-advmultichoice .answer-block{margin-bottom:20px}.qtype-advmultichoice .answer-block>div{width:100%}.qtype-advmultichoice .answer-block .answer-content{padding:10px 15px;display:flex;align-items:center;gap:0 15px}.qtype-advmultichoice .answer-block .answer-item-content .card{border:1px solid rgb(0 0 0 / .12);border-radius:.5rem;box-shadow:2px 0 7px 0 rgb(0 0 0 / .2);margin:10px 15px}.qtype-advmultichoice .answer-block .answer-content .choice-number{height:fit-content;border-radius:50px}.qtype-advmultichoice .answer-block .answer-content .choice-number .choice-number-text{width:50px;height:50px;font-size:2.4rem;font-weight:700;color:#fff;display:inline-flex;align-items:center;justify-content:center}.qtype-advmultichoice .answer-block .answer-content .card-img{width:70px;height:60px;display:flex;justify-content:center}.qtype-advmultichoice .answer-block .answer-content .card-img img{border-radius:0;object-fit:cover;overflow-clip-margin:unset}.qtype-advmultichoice .answer-block .answer-content .card-body{min-height:60px;padding:10px 15px;border-radius:5px;background-color:#f7f7f7;display:flex;align-items:center}.qtype-advmultichoice .answer-block .answer-content .card-body .card-title,.qtype-advmultichoice .answer-block .answer-content .card-body .card-title p{font-size:1.4rem;margin-bottom:0}.qtype-advmultichoice .answer-block .qtype-advmultichoice-answer-radio{display:none}.qtype-advmultichoice .answer-block.selected-answer .answer-item-content .card{box-shadow:2px 0 12px -2px var(--primary)}.qtype-advmultichoice .answer-block.selected-answer .answer-content>*{box-shadow:2px 3px 10px -4px rgb(0 0 0 / .2)}.immediatefeedback .qtype-advmultichoice .answers .correct .feedback-wrapper,.immediatefeedback .qtype-advmultichoice .answers .incorrect .feedback-wrapper{padding:0 15px}.immediatefeedback .qtype-advmultichoice .answers .correct .feedback-wrapper .feedback-content,.immediatefeedback .qtype-advmultichoice .answers .incorrect .feedback-wrapper .feedback-content{min-height:82px;width:100%;border:1px solid rgb(0 0 0 / .12);border-radius:.5rem;box-shadow:2px 8px 10px 0 rgb(0 0 0 / .2);padding:10px 15px;display:flex;align-items:center}.immediatefeedback .qtype-advmultichoice .answers .correct .feedback-wrapper .feedback-content .icon,.immediatefeedback .qtype-advmultichoice .answers .incorrect .feedback-wrapper .feedback-content .icon{max-width:none;max-height:none;font-size:40px}.immediatefeedback .qtype-advmultichoice .answers .correct .feedback-wrapper .feedback-content .specificfeedback,.immediatefeedback .qtype-advmultichoice .answers .incorrect .feedback-wrapper .feedback-content .specificfeedback{min-height:60px;width:100%;font-size:18px;border-radius:5px;background-color:#f7f7f7;padding:10px 15px;margin-bottom:0;display:flex;flex-direction:column;justify-content:center}@media (max-width:1155px){.qtype-advmultichoice .answer-block{margin-bottom:30px}}.que.advmultichoice .im-controls{display:none}.que.advmultichoice .submit-wrapper{text-align:center}.qtype-advmultichoice .answer-block .answer-content .choice-number{background-color:var(--primary)}.que.advmultichoice .qtype-advmultichoice .answers .answer-content audio{width:100%;height:35px;background:none}.que.advmultichoice .qtype-advmultichoice .answers audio.video-js{display:none}.que.advmultichoice .qtype-advmultichoice .answers audio.vjs-tech{display:block}.que.advmultichoice .qtype-advmultichoice .answers .video-js{border-radius:25px;background:#ebebeb}.que.advmultichoice .qtype-advmultichoice .answers .video-js .vjs-control-bar{background:none}.que.advmultichoice .qtype-advmultichoice .answers .video-js .vjs-control{color:#6b6c6c}.que.advmultichoice .qtype-advmultichoice .answers .video-js .vjs-playback-rate{display:none}.advmultichoice-feedback-listen .que.advmultichoice.reveal-feedback .vjs-playback-rate,.advmultichoice-feedback-listen .que.advmultichoice.reveal-feedback .vjs-remaining-time{display:none}.advmultichoice-feedback-listen .que.advmultichoice.reveal-feedback .vjs-progress-control{pointer-events:none;opacity:.5}.que.advmultichoice .answer-block.correct.show-feedback.selected-answer .card{border:1px solid var(--success);box-shadow:-1px 2px 21px -6px var(--success)}.que.advmultichoice .answer-block.incorrect.show-feedback.selected-answer .card{border:1px solid #ca3120;box-shadow:-1px 2px 21px -6px #ca3120}.que.advmultichoice .answer-block.partiallycorrect.show-feedback.selected-answer .card{border:1px solid #ffa;box-shadow:-1px 2px 21px -6px #ffa}.que.calculated .answer{padding:.3em;display:inline}.que.calculated .answer input[type="text"]{width:30%}#page-question-type-calculated input[name^="answer"],#page-question-type-calculated input[name^="unit"],#page-question-type-calculated input[name^="multiplier"],#page-question-type-calculated input[name^="calcmax"],#page-question-type-calculated input[name^="calcmin"],#page-question-type-calculated input[name^="number"],#page-question-type-calculated input[name^="tolerance"]{direction:ltr;text-align:left}body#page-question-type-calculated div[id^=fgroup_id_][id*=answeroptions_],body#page-question-type-calculatedmulti div[id^=fitem_id_][id*=answer_]{background:#eee;margin-top:0;margin-bottom:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-bottom:0}body#page-question-type-calculated div[id^=fgroup_id_][id*=answeroptions_] .fgrouplabel label,body#page-question-type-calculatedmulti div[id^=fitem_id_][id*=answer_] .fgrouplabel label{font-weight:700}body#page-question-type-calculated div[id^=fgroup_id_][id*=answeroptions_] label[for^='id_answer_'],body#page-question-type-calculated div[id^=fgroup_id_][id*=answertolerance_] label[for^='id_tolerance_'],body#page-question-type-calculated div[id^=fgroup_id_][id*=answerdisplay_] label[for^='id_correctanswerlength_'],body#page-question-type-calculatedmulti div[id^=fgroup_id_][id*=answerdisplay_] label[for^='id_correctanswerlength_']{position:absolute;left:-10000px;font-weight:400;font-size:1em}body#page-question-type-calculated div[id^=fgroup_id_][id*=answertolerance_],body#page-question-type-calculated div[id^=fgroup_id_][id*=answerdisplay_],body#page-question-type-calculatedmulti div[id^=fitem_id_][id*=fraction_],body#page-question-type-calculatedmulti div[id^=fgroup_id_][id*=answertolerance_],body#page-question-type-calculatedmulti div[id^=fgroup_id_][id*=answerdisplay_]{background:#eee;margin-bottom:0;margin-top:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-top:0;border-bottom:0}body#page-question-type-calculated div[id^=fitem_id_][id*=feedback_],body#page-question-type-calculatedmulti div[id^=fitem_id_][id*=feedback_]{background:#eee;margin-bottom:2em;margin-top:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-top:0}div[id^="fgroup_id_answeroptions_"].mb-3,div[id^="fgroup_id_answertolerance_"].mb-3,div[id^="fgroup_id_answerdisplay_"].mb-3{margin-bottom:0!important}.que.calculatedmulti .answer .specificfeedback{display:inline;padding:0 .7em;background:#fff3bf}.que.calculatedmulti .answer .specificfeedback *{display:inline;background:#fff3bf}.que.calculatedmulti .answer .specificfeedback script{display:none}.que.calculatedmulti .answer div.r0,.que.calculatedmulti .answer div.r1{display:flex;margin:.25rem 0;align-items:flex-start}.que.calculatedmulti .answer div.r0 input,.que.calculatedmulti .answer div.r1 input{margin:.3rem .5rem;width:14px;flex-shrink:0}.que.calculatedsimple .answer{padding:.3em;display:inline}.que.calculatedsimple .answer input[type="text"]{width:30%}body#page-question-type-calculatedsimple div[id^=fgroup_id_][id*=answeroptions_]{background:#eee;margin-top:0;margin-bottom:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-bottom:0}body#page-question-type-calculatedsimple div[id^=fgroup_id_][id*=answeroptions_] .fgrouplabel label{font-weight:700}body#page-question-type-calculatedsimple div[id^=fgroup_id_][id*=answeroptions_] label[for^='id_answer_'],body#page-question-type-calculatedsimple div[id^=fgroup_id_][id*=answertolerance_] label[for^='id_tolerance_'],body#page-question-type-calculatedsimple div[id^=fgroup_id_][id*=answerdisplay_] label[for^='id_correctanswerlength_']{position:absolute;left:-10000px;font-weight:400;font-size:1em}body#page-question-type-calculatedsimple div[id^=fgroup_id_][id*=answertolerance_],body#page-question-type-calculatedsimple div[id^=fgroup_id_][id*=answerdisplay_]{background:#eee;margin-bottom:0;margin-top:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-top:0;border-bottom:0}body#page-question-type-calculatedsimple div[id^=fitem_id_][id*=feedback_]{background:#eee;margin-bottom:2em;margin-top:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-top:0}#page-question-type-crossword #fitem_id_defaultmark{display:none}#page-question-type-crossword .mform .form-group.has-danger .col-md-9[data-fieldtype="group"]{border:none!important}#page-question-type-crossword .crossword-contain{max-width:fit-content;margin:20px auto}#page-question-type-crossword table.crossword-grid{width:100%;max-width:100%;border-spacing:0;border-collapse:separate}#page-question-type-crossword .grid-row{clear:left}#page-question-type-crossword fieldset#id_wordhdr .d-flex .form-group{margin-right:1em}#page-question-type-crossword fieldset#id_wordhdr .d-flex .form-group:last-child,.qtype_crossword-grid-wrapper .wrap-clue img.icon{margin-right:0}#page-question-type-crossword fieldset#id_words .fcontainer input[name^="answer"],.qtype_crossword-grid-wrapper .wrap-crossword #crossword form .crossword .formulation input[type="text"]{text-transform:uppercase}#page-question-type-crossword fieldset#id_wordhdr legend a{margin-top:15px}#page-question-type-crossword #crossword{overflow:auto}#page-question-type-crossword #crossword .crossword-grid .grid-square.background-white,#page-question-type-crossword #crossword .crossword-grid .cell-white,#page-question-type-crossword .grid-square.square-indicate-horizontal,#page-question-type-crossword .grid-square.square-indicate-vertical{background:#fff0}#page-question-type-crossword #crossword .crossword-grid .cell-white,#page-question-type-crossword .grid-square.square-indicate-horizontal,#page-question-type-crossword .grid-square.square-indicate-vertical{border:none}#page-question-type-crossword .grid-square.square-indicate-horizontal{border-bottom:1px solid #000}#page-question-type-crossword .grid-square.square-indicate-vertical{border-right:1px solid #000}#page-question-type-crossword .grid-square{position:relative;background-clip:padding-box;padding:20px 25px;text-align:center;background-color:#a6a6a6;border-left:0;border-top:0}#page-question-type-crossword .grid-square .word-label{position:absolute;top:2px;left:2px;line-height:1;font-size:10px;color:rgb(0 0 0 / .5);pointer-events:none}#page-mod-quiz-reviewquestion section#region-main .qtype_crossword-grid-wrapper div div{margin:0}.qtype_crossword-grid-wrapper .wrap-crossword #crossword{position:relative;max-width:700px}.qtype_crossword-grid-wrapper .wrap-crossword #crossword svg.adjust-crossword{min-width:800px}.qtype_crossword-grid-wrapper .wrap-crossword #crossword .crossword-cell{cursor:pointer;fill:#fff}.qtype_crossword-grid-wrapper .wrap-crossword #crossword .crossword-grid-background{fill:#000}.qtype_crossword-grid-wrapper .wrap-crossword #crossword .crossword-cell-highlighted{fill:#ffe500}.qtype_crossword-grid-wrapper .wrap-crossword #crossword .crossword-cell-focussed{fill:#fff7b2}.qtype_crossword-grid-wrapper .wrap-crossword #crossword .crossword-cell-number{font-size:.625rem}.qtype_crossword-grid-wrapper .wrap-crossword #crossword .crossword-hidden-input-wrapper{display:none;position:absolute;top:0;left:0;width:6.6%;height:6.6%}.qtype_crossword-grid-wrapper .wrap-crossword #crossword .crossword-cell-text{text-transform:uppercase;font-size:.65rem}.qtype_crossword-grid-wrapper .wrap-crossword #crossword .crossword-hidden-input-wrapper input{border:0;padding:0;width:100%;height:100%;color:#fff0;text-align:center;background-color:#fff0;margin:0;font-size:1rem;font-weight:800;text-transform:uppercase;text-anchor:middle;caret-color:#fff0}.qtype_crossword-grid-wrapper .wrap-clue .clue-id{border-radius:50%;flex-shrink:0;margin-right:.2em;text-align:center;width:1.75em;height:1.75em}.qtype_crossword-grid-wrapper .wrap-clue .clue-content{word-break:break-word}.qtype_crossword-grid-wrapper .wrap-clue .clue-content video,.qtype_crossword-grid-wrapper .wrap-clue .clue-content img,.qtype_crossword-grid-wrapper .sticky-clue video,.qtype_crossword-grid-wrapper .sticky-clue img{max-width:100%}.qtype_crossword-grid-wrapper .wrap-clue.focus .clue-id{background:#ffe500}.qtype_crossword-grid-wrapper .wrap-clue input[type="text"]{width:calc(100% - 3em);letter-spacing:.3em;text-transform:uppercase}.qtype_crossword-grid-wrapper .wrap-crossword .sticky-clue{top:0;left:0}@media (max-width:767.98px){.qtype_crossword-grid-wrapper .clue-id>span{font-weight:700;font-style:normal}.qtype_crossword-grid-wrapper .wrap-crossword #crossword .orientation{margin-bottom:0}.qtype_crossword-grid-wrapper .wrap-crossword{position:relative;padding-bottom:1.25rem}.qtype_crossword-grid-wrapper .wrap-crossword #crossword svg.adjust-small-crossword{min-width:800px}}@media (max-width:1199.98px){#page-question-type-crossword .clue-label label{margin-right:1.9em}#page-question-type-crossword .answer-clue{margin-bottom:15px}}@media print{.qtype_crossword-grid-wrapper #crossword svg g rect{stroke:#000;stroke-width:.5px}}.que.ddimageortext .qtext{margin-bottom:.5em;display:block}.que.ddimageortext div.ddarea,form.mform fieldset#id_previewareaheader div.ddarea{text-align:center}.que.ddimageortext div.droparea,form.mform fieldset#id_previewareaheader div.ddarea{position:relative}.que.ddimageortext div.droparea{display:inline-block}.que.ddimageortext div.droparea .draghome{position:absolute;cursor:move;white-space:nowrap}.que.ddimageortext div.droparea .dropzones{position:absolute;top:0;left:0}.que.ddimageortext .dropbackground,form.mform fieldset#id_previewareaheader .dropbackground{border:1px solid #000;margin:0 auto}form.mform fieldset#id_previewareaheader .dropbackground{max-width:none}.que.ddimageortext .dropzone{display:none;position:absolute;opacity:.5;border:1px solid #000}.que.ddimageortext .dropzone.active{display:block}.que.ddimageortext .dropzone:focus,.que.ddimageortext .droparea .draghome:focus,.que.ddimageortext .dropzone.valid-drag-over-drop,.que.ddimageortext .draghome.placed.valid-drag-over-drop{border-color:#0a0;box-shadow:0 0 5px 5px rgb(255 255 150);outline:0}.que.ddimageortext .draghome,.que.ddimageortext .drag,form.mform fieldset#id_previewareaheader .droppreview{border:1px solid #000;display:inline-block;font:13px/1.231 arial,helvetica,clean,sans-serif}.que.ddimageortext .draghomes .draghome{vertical-align:top;margin:5px;height:auto;width:auto;cursor:move}.que.ddimageortext .draghomes.readonly .draghome,.que.ddimageortext .droparea.readonly .draghome{cursor:auto}.que.ddimageortext .draghomes .draghome.dragplaceholder{display:none}.que.ddimageortext .MathJax_Display,.que.ddimageortext .MathJax_SVG{margin:0}.que.ddimageortext .draghomes .draghome.dragplaceholder.active{visibility:hidden;display:inline-block}.que.ddimageortext .dragitems,form.mform fieldset#id_previewareaheader .dragitems{height:0}.que.ddimageortext .drag,form.mform fieldset#id_previewareaheader .droppreview{position:absolute;cursor:move;white-space:nowrap}.que.ddimageortext .dragitems.readonly .drag{cursor:auto}form.mform fieldset#id_previewareaheader .drag.beingdragged,.que.ddimageortext .drag.beingdragged,.que.ddimageortext .draghomes .draghome.beingdragged,.que.ddimageortext .droparea .draghome.beingdragged{box-shadow:3px 3px 4px #000}.que.ddimageortext .draghomes .draghome.beingdragged,.que.ddimageortext .droparea .draghome.beingdragged{position:absolute}.que.ddimageortext .group1,form.mform fieldset#id_previewareaheader .group1{background-color:#fff}.que.ddimageortext .transparent .dropzones>img{border:none}.que.ddimageortext .transparent .dropzones>img:hover{border:1px solid #000}.que.ddimageortext .transparent img:not(.dropbackground):hover,.que.ddimageortext .droparea.transparent .dropzone,.que.ddimageortext .droparea.transparent .dropzone+img{background-color:#fff0}.que.ddimageortext .group2,form.mform fieldset#id_previewareaheader .group2{background-color:#b0c4de;border-radius:10px 0 0 0}.que.ddimageortext .group3,form.mform fieldset#id_previewareaheader .group3{background-color:#dcdcdc;border-radius:0 10px 0 0}.que.ddimageortext .group4,form.mform fieldset#id_previewareaheader .group4{background-color:thistle;border-radius:0 0 10px 0}.que.ddimageortext .group5,form.mform fieldset#id_previewareaheader .group5{background-color:#87cefa;border-radius:0 0 0 10px}.que.ddimageortext .group6,form.mform fieldset#id_previewareaheader .group6{background-color:#daa520;border-radius:0 10px 10px 0}.que.ddimageortext .group7,form.mform fieldset#id_previewareaheader .group7{background-color:gold;border-radius:10px 0 0 10px}.que.ddimageortext .group8,form.mform fieldset#id_previewareaheader .group8{background-color:khaki;border-radius:10px 10px 10px 10px}body#page-question-type-ddimageortext div[id^=fgroup_id_][id*=drags_]{background:#eee;margin-top:0;margin-bottom:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-bottom:0}body#page-question-type-ddimageortext div[id^=fgroup_id_][id*=drags_] .fgrouplabel label{font-weight:700}body#page-question-type-ddimageortext div[id^=fitem_id_][id*=dragitem_]{background:#eee;margin-bottom:0;margin-top:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-top:0;border-bottom:0}body#page-question-type-ddimageortext div[id^=fitem_id_][id*=draglabel_]{background:#eee;margin-bottom:2em;margin-top:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-top:0}div[id^="fgroup_id_drags_"].mb-3,div[id^="fitem_id_dragitem_"].mb-3{margin-bottom:0!important}.que.ddmarker .qtext{margin-bottom:.5em;display:block}.que.ddmarker .droparea{display:inline-block;position:relative}.que.ddmarker .droparea .dropzones,.que.ddmarker .droparea .markertexts{position:absolute;top:0;left:0}.que.ddmarker .draghomes .marker,.que.ddmarker .droparea .marker{vertical-align:top;cursor:move}.que.ddmarker .draghomes.readonly .marker,.que.ddmarker .droparea.readonly .marker{cursor:auto}.que.ddmarker .droparea .marker{position:absolute}.que.ddmarker .draghomes .marker{position:relative;display:inline-block;margin:10px}.que.ddmarker .draghomes .marker.dragplaceholder{display:none}.que.ddmarker .draghomes .marker.dragplaceholder.active{visibility:hidden;display:inline-block}.que.ddmarker div.ddarea,form.mform fieldset#id_previewareaheader div.ddarea{text-align:center}form.mform fieldset#id_previewareaheader div.ddarea .markertexts{min-height:80px}.que.ddmarker .dropbackground,form.mform fieldset#id_previewareaheader .dropbackground{margin:0 auto;border:1px solid #000}form.mform fieldset#id_previewareaheader .dropbackground{max-width:none}.que.ddmarker div.dragitems div.draghome,.que.ddmarker div.dragitems div.dragitem,form.mform fieldset#id_previewareaheader div.draghome,form.mform fieldset#id_previewareaheader div.drag{font:13px/1.231 arial,helvetica,clean,sans-serif}.que.ddmarker .droparea .marker span.markertext,.que.ddmarker .draghomes .marker span.markertext,.que.ddmarker div.markertexts span.markertext,form.mform fieldset#id_previewareaheader div.markertexts span.markertext{margin:0 5px;z-index:3;background-color:#fff;border:2px solid #000;padding:5px;display:inline-block;zoom:1;border-radius:10px;color:#000;opacity:.6}.que.ddmarker .droparea .marker span.markertext,.que.ddmarker .draghomes .marker span.markertext{white-space:nowrap}.que.ddmarker div.markertexts span.markertext{z-index:2;background-color:#ff0;border:2px solid khaki;position:absolute;white-space:nowrap}.que.ddmarker span.wrongpart{background-color:#ff0;border:2px solid khaki;padding:5px;border-radius:10px;opacity:.6;margin:5px;display:inline-block}.que.ddmarker .droparea .marker img.target,.que.ddmarker .draghomes .marker img.target{position:absolute;left:-7px;top:-7px}.que.ddmarker div.dragitems div.draghome img.target{display:none}.que.ddmarker .marker.beingdragged{position:absolute}.que.ddmarker .marker.beingdragged span.markertext{z-index:3;box-shadow:3px 3px 4px #000}.que.ddmarker .dropzone .shape{fill:#fff;fill-opacity:.5;stroke:#000;stroke-width:1}.que.ddmarker .dropzone.active .shape{stroke-width:2}.que.ddmarker .dropzone.color0 .shape{fill:#fff}.que.ddmarker .dropzone.color1 .shape{fill:#b0c4de}.que.ddmarker .dropzone.color2 .shape{fill:#dcdcdc}.que.ddmarker .dropzone.color3 .shape{fill:thistle}.que.ddmarker .dropzone.color4 .shape{fill:#87cefa}.que.ddmarker .dropzone.color5 .shape{fill:#daa520}.que.ddmarker .dropzone.color6 .shape{fill:gold}.que.ddmarker .dropzone.color7 .shape{fill:khaki}.que.ddmarker .dropzone .shapeLabel{text-anchor:middle}.que.ddmarker .dropzone .handle{fill:#fff;fill-opacity:.1;stroke-width:1;display:none;cursor:move}.que.ddmarker .dropzone .handle.move{stroke:#800}.que.ddmarker .dropzone .handle.edit{stroke:#008}.que.ddmarker .dropzone.active .handle{display:inherit}body#page-question-type-ddmarker div[id^=fitem_id_][id*=hint_]{background:#eee;margin-top:0;margin-bottom:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-bottom:0}body#page-question-type-ddmarker div[id^=fitem_id_][id*=hint_] .fitemtitle{font-weight:700}body#page-question-type-ddmarker div[id^=fitem_id_][id*=hintoptions_],body#page-question-type-ddmarker div[id^=fitem_id_][id*=hintshownumcorrect_]{background:#eee;margin-bottom:0;margin-top:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-top:0;border-bottom:0}body#page-question-type-ddmarker div[id^=fitem_id_][id*=hintclearwrong_]{background:#eee;margin-bottom:2em;margin-top:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-top:0}body#page-question-type-ddmarker #fitem_id_penalty{margin-bottom:2em}#page-question-type-ddmatch div.editor_atto_content_wrap{word-break:break-all}.ddmatch li{margin:.375rem;padding:.25rem}.ddmatch li.draghome{background-color:#fff;border:.06rem solid #908b8b;padding:.625rem;font-size:.938rem;color:#333;line-height:1.25rem;cursor:move}.que.ddmatch .draghome.beingdragged{z-index:3;box-shadow:.188rem .188rem .25rem #000;position:absolute;width:35%}.que.ddmatch .draghome.dragplaceholder{display:none}.que.ddmatch .draghome.dragplaceholder.active{visibility:hidden;display:inline-block;margin:0}li.matchdrag.copy{margin:.25rem}.que.ddmatch .draghome.placed{margin:0;margin-bottom:.125rem;list-style:none}.que.ddmatch .drop:focus,.que.ddmatch .drop.valid-drag-over-drop,.que.ddmatch .draghome.placed:focus:not(.beingdragged),.que.ddmatch .draghome.placed.valid-drag-over-drop{border-color:#0a0;box-shadow:0 0 .313rem .313rem rgb(255 255 150)}.ddmatch tr{word-break:break-all}.ddmatch li.placeholder{border:.06rem dotted #000;text-align:center}.ddmatch ul.draghomes{border:.06rem solid gray;float:right;list-style:none;margin:0;padding:.25rem;width:35%;max-height:fit-content}.ddmatch .draghomes li{list-style:none}.ddmatch .drop{display:none}.que.ddmatch .drop.active{display:inline-block;width:100%;text-align:center;border:.06rem solid #000;margin:0;margin-bottom:.125rem}.ddmatch .drop li{list-style:none;box-sizing:content-box}.ddmatch li p{display:table-cell;vertical-align:middle;word-break:break-word}.ddmatch ul.drop{border:.06rem solid gray;padding-left:0rem}.ddmatch .que .formulation{background:#f1f1f1 !Important;padding:1.25rem !Important}.ddmatch td.text{width:50%;padding:0}.ddmatch td.control{width:85%;margin-left:.938rem;margin-right:.938rem}.ddmatch table.answer{float:left;margin-bottom:.5em;width:100%}.ddmatch .correctanswertable{margin:.625rem}.ddmatch .drop.yui3-dd-drop-active-valid{border:.125rem dotted red}.ddmatch .drop.yui3-dd-drop-over{border:.125rem dotted green}.ddmatch .drop .placeholder.hidden{display:none}.ddmatch .drop.yui3-dd-drop-over li{opacity:.5}body#page-question-type-ddmatch div[id^=fitem_id_][id*=subquestions_]{background:#EEE;border:.06rem solid #BBB;border-bottom:0;margin-top:0;margin-bottom:0;padding-bottom:.313rem;padding-top:.313rem}body#page-question-type-ddmatch div[id^=fitem_id_][id*=subquestions_] .fitemtitle{font-weight:700}body#page-question-type-ddmatch div[id^=fitem_id_][id*=subanswers_]{background:#EEE;border:.06rem solid #BBB;border-top:0;margin-bottom:2em;margin-top:0;padding-bottom:.313rem;padding-top:.313rem}.ddmatch .divanswer{max-height:fit-content;width:60%;float:left}.ddmatch .qtext{margin-bottom:0}.ddmatch .qtext p{margin:0}.ddmatch .qtext p br{display:none}.ddmatch .divanswer .answer .visibleifjs{display:inline-block!important;margin-bottom:5px}.ddmatch p{font-size:.938rem !Important;word-break:break-word;line-height:1.25rem;color:#333}.ddmatch .text{font-size:.938rem !Important;word-break:break-word;line-height:1.25rem;color:#333}@media screen and (max-width:768px){.ddmatch li p{font-size:.75rem}.ddmatch .draghomes li{font-size:.75rem}.ddmatch td.control{width:100%;margin-left:0;margin-right:0}.ddmatch td.text{width:100%;padding:0;display:block}}.ddmatch .drop{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ddmatch ul.draghomes{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.que.ddmatch .draghome.dragplaceholder{display:none}.que.ddmatch .draghome.dragplaceholder.active{visibility:hidden;display:inline-block;width:100%}.dragdrop-choice{max-height:100px;overflow:auto}.dragdrop-question h3,.dragdrop-question p{max-height:100px;overflow:scroll;background-color:#f9f8fb;padding:.5rem 1rem}.dragdrop-choice::-webkit-scrollbar,.dragdrop-question h3::-webkit-scrollbar,.dragdrop-question p::-webkit-scrollbar{width:.125rem;height:.125rem}.dragdrop-choice::-webkit-scrollbar-thumb,.dragdrop-question h3::-webkit-scrollbar-thumb,.dragdrop-question p::-webkit-scrollbar-thumb{background:#888}.dragdrop-choice::-webkit-scrollbar-track,.dragdrop-question h3::-webkit-scrollbar-track,.dragdrop-question p::-webkit-scrollbar-track{background:#f1f1f1}.que.ddwtos .qtext{margin-bottom:.5em;display:block}.que.ddwtos .draghome{margin-bottom:1em}.que.ddwtos .answertext{margin-bottom:.5em}.que.ddwtos .drop.active{display:inline-block;text-align:center;border:1px solid #000;margin-bottom:2px}.que.ddwtos .drop{display:none}.que.ddwtos .drags{height:0}.que.ddwtos .draghome{display:inline-block;text-align:center;background:#fff0;border:1px solid #000;cursor:move}.que.ddwtos.qtype_ddwtos-readonly .draghome{cursor:default}.que.ddwtos .draghome.beingdragged{z-index:3;box-shadow:3px 3px 4px #000;position:absolute}.que.ddwtos .draghome.dragplaceholder{display:none}.que.ddwtos .draghome.dragplaceholder.active{visibility:hidden;display:inline-block}.que.ddwtos .draghome.placed{margin-bottom:2px}.que.ddwtos .drop:focus,.que.ddwtos .drop.valid-drag-over-drop,.que.ddwtos .draghome.placed:focus:not(.beingdragged),.que.ddwtos .draghome.placed.valid-drag-over-drop{border-color:#0a0;box-shadow:0 0 5px 5px rgb(255 255 150)}.que.ddwtos span.incorrect{background-color:#faa}.que.ddwtos span.correct{background-color:#afa}.que.ddwtos .group1{background-color:#fff}.que.ddwtos .group2{background-color:#dcdcdc;border-radius:10px 0 0 0}.que.ddwtos .group3{background-color:#b0c4de;border-radius:0 10px 0 0}.que.ddwtos .group4{background-color:thistle;border-radius:0 0 10px 0}.que.ddwtos .group5{background-color:#87cefa;border-radius:0 0 0 10px}.que.ddwtos .group6{background-color:#daa520;border-radius:0 10px 10px 0}.que.ddwtos .group7{background-color:gold;border-radius:10px 0 0 10px}.que.ddwtos .group8{background-color:khaki;border-radius:10px 10px 10px 10px}.que.ddwtos sub,.que.ddwtos sup{font-size:80%;position:relative;vertical-align:baseline}.que.ddwtos sup{top:-.4em}.que.ddwtos sub{bottom:-.2em}.que.ddwtos .MathJax{margin:0}@font-face{font-family:'MontserratRegular';src:url(/theme/font.php/academi/qtype_dynamicsorting/1790824836/Montserrat-Regular.woff),url(/theme/font.php/academi/qtype_dynamicsorting/1790824836/Montserrat-Regular.woff2)}body.qtype-imagechoice-question-page .dynamicsorting{font-family:'MontserratRegular'}.que.dynamicsorting .formulation{padding-top:20px;padding-bottom:20px}.que.dynamicsorting .outcome .feedback{margin-bottom:0}.que.dynamicsorting .outcome .feedback .specificfeedback{margin-bottom:0}.que.dynamicsorting .formulation .qtype_dynamicsorting-mutisubmit{margin:0 auto;display:block}.que.dynamicsorting .formulation .qtype-dynamicsorting-error{text-align:center;margin-top:10px;display:block}.que.dynamicsorting fieldset.qtype-dynamicsorting{margin-top:25px}.que.dynamicsorting fieldset.qtype-dynamicsorting .answers .sortable-list-is-dragged{max-width:210px;width:100%;position:absolute!important;z-index:0}.que.dynamicsorting fieldset.qtype-dynamicsorting .card{width:100%;height:100%;border:0;border-radius:20px;background:none;align-items:center;position:relative;z-index:0}.que.dynamicsorting fieldset.qtype-dynamicsorting .card .answer-content{width:13rem;height:100%;display:flex;flex-direction:column}.que.dynamicsorting fieldset.qtype-dynamicsorting .card img{height:100%;border-radius:5px;object-fit:cover;object-position:top}.que.dynamicsorting fieldset.qtype-dynamicsorting .card .card-img{border-radius:10px;background:#fff;padding:20px;position:relative;display:flex;align-items:center;flex-direction:column;min-height:250px;background:#fff;box-shadow:-3px 2px 15px 3px #b3d4e3;border:1px solid #919191}.que.dynamicsorting fieldset.qtype-dynamicsorting .card .card-img .img-block{width:100%;min-height:160px;max-height:160px}.que.dynamicsorting fieldset.qtype-dynamicsorting .card .card-img .card-title{height:100%;font-size:18px;font-weight:500;text-align:center;margin-top:20px;margin-bottom:5px;display:flex;align-items:center;justify-content:center}.qtype-dynamicsorting .answers .feedback-content i.icon.text-danger{background:#ca3120;color:#fff!important}.qtype-dynamicsorting .answers .feedback-content i.icon.text-success{background:#357a32!important;color:#fff!important}.qtype-dynamicsorting .answers .feedback-content i.icon{max-width:none;max-height:none;border-radius:50px;padding:5px 0}.dynamicsorting.que .ablock{padding:20px 0}.que.dynamicsorting .answers{width:100%;justify-content:center;flex-wrap:wrap;align-items:stretch;gap:50px;margin-bottom:30px}.dynamicsorting.que .answers .animate__animated{display:none}@media (min-width:1500px){.que.dynamicsorting fieldset.qtype-dynamicsorting .card{flex-basis:20%}}@media (min-width:1200px) and (max-width:1499px){.que.dynamicsorting fieldset.qtype-dynamicsorting .card{flex-basis:25%}}@media (min-width:992px) and (max-width:1199px){.que.dynamicsorting fieldset.qtype-dynamicsorting .card{flex-basis:33%}}@media (min-width:520px) and (max-width:991px){.que.dynamicsorting fieldset.qtype-dynamicsorting .card{flex-basis:50%}}@media (max-width:519px){.que.dynamicsorting fieldset.qtype-dynamicsorting .card{flex-basis:60%}}.dynamicsorting.que .answers .animate__animated.noanimation,.dynamicsorting.que .answers .animate__animated[data-animation="noanimation"]{display:block}.que.dynamicsorting .qtext{max-width:80%;font-size:2em;text-align:center;border-radius:5px;padding:10px;margin:10px auto 0}.que.dynamicsorting .qtext p{margin-bottom:0}.qtype-dynamicsorting-question-page .que.dynamicsorting .sortable-list-over-element,.qtype-dynamicsorting-question-page .que.dynamicsorting .sortable-list-current-position{box-shadow:0 0 5px 5px rgb(255 255 150)}@media (min-width:768px){body.qtype-dynamicsorting-question-page.limitedwidth #page.drawers .main-inner{max-width:none}}#id_answerhdrcontainer [id^="fitem_id_answerheader_"].row.fitem{border-bottom:1px solid #ccc;margin-bottom:2rem!important;margin-top:2rem}p.qtype-dynamicsorting-choice-head{font-weight:700;width:100%}.que.dynamicsorting .dropzone.correct .card .show-feedback .card-img{border:3px solid var(--success);box-shadow:-1px 2px 21px -6px var(--success)}.que.dynamicsorting .dropzone.incorrect .card .show-feedback .card-img{border:3px solid #ca3120;box-shadow:-1px 2px 21px -6px #ca3120}.que.dynamicsorting .dropzone.partiallycorrect .card .show-feedback .card-img{border:2px solid #ffa}.que.dynamicsorting .feedback-info{text-align:center;width:100%;display:block}.que.dynamicsorting.reveal-feedback .card.selected-answer .card-img{border:1px dotted #ccc}.que.dynamicsorting .card-title{font-size:1.4em;font-weight:400;margin:10px 0 0}.que.dynamicsorting .card-title p{font-size:18px;font-weight:500;border-radius:10px;background:#fff;padding:10px}.que.dynamicsorting .card-title span{min-width:40px;min-height:40px;color:#fff;border-radius:50%;background:var(--primary);margin-top:10px;display:inline-flex;align-items:center;justify-content:center}.que.dynamicsorting .card-title span:after{content:'';width:100%;height:3px;background-color:#fff;position:absolute;right:0;z-index:-1}.que.dynamicsorting .dropzones .dropzone .draghome.sortable-list-current-position .card-img .img-block{border:1px dashed #ccc}.que.dynamicsorting .dropzones .dropzone .draghome.sortable-list-current-position .card-img .img-block img,.que.dynamicsorting .dropzones .dropzone .draghome.sortable-list-current-position .card-img .card-title{visibility:hidden}.que.dynamicsorting .dropzones .card:first-child .card-body .card-title span:after{width:50%}.que.dynamicsorting .dropzones .card:last-child .card-body .card-title span:after{width:50%;left:0}@media (max-width:519px){.que.dynamicsorting .card-title span:after{display:none}}.que.dynamicsorting .dropzone{min-width:13rem;min-height:250px;height:100%;margin-bottom:50px;position:relative}.que.dynamicsorting .card div:not(.show-feedback) .card-img{height:100%}.qtype-dynamicsorting .dropzone .drop.active{height:90%;width:100%;flex-grow:4;width:100%;display:flex;border:2px dashed #919191;border-radius:15px}.qtype-dynamicsorting .dropzone .drop{display:none}.qtype-dynamicsorting .dropzone .dropzone-content{height:20%;margin:15px 0;padding:0 10px}.que.dynamicsorting .dropzone{min-width:13rem;min-height:300px;height:100%;margin-bottom:15px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between}.que.dynamicsorting .draghome.dragplaceholder.active{visibility:hidden;display:inline-block}.que.dynamicsorting .draghome.dragplaceholder{display:none}.que.dynamicsorting .draghomes{min-height:300px}.que.dynamicsorting .valid-drag-over-drop{box-shadow:-3px -1px 7px 1px #ccc}.que.dynamicsorting .draghome.beingdragged{position:absolute;z-index:3}.qtype-dynamicsorting .dropzones{align-items:end;display:inline-flex;flex-wrap:wrap;width:100%;justify-content:center;text-align:center;gap:50px}.que.dynamicsorting fieldset.qtype-dynamicsorting .card .card-img .img-block{width:100%;height:160px;padding:10px;margin:0 10px;border:2px dashed #919191;border-style:dashed;border-radius:15px}.que.dynamicsorting .answer-content-box{min-height:100%}.que.dynamicsorting div.dropzone-text{font-size:1.3rem}@media (max-width:575px){.que.dynamicsorting .draghome{width:42%}.que.dynamicsorting fieldset.qtype-dynamicsorting .card .answer-content{width:11rem}.que.dynamicsorting .dropzone{min-width:11rem;width:11rem}}.que.dynamicsorting .im-controls .float-btns{position:fixed;bottom:10px}.que.dynamicsorting .qtext .clearfix::after{clear:none}.que.essay textarea.qtype_essay_response{width:100%}.que.essay textarea.qtype_essay_response.qtype_essay_plain{white-space:pre-wrap;font:inherit}.que.essay textarea.qtype_essay_response.qtype_essay_monospaced{white-space:pre;font-family:Andale Mono,Monaco,Courier New,DejaVu Sans Mono,monospace}.que.essay .qtype_essay_response{min-height:3em}.que.essay .qtype_essay_response.readonly{background-color:#fff}.que.essay div.qtype_essay_response textarea{width:100%}.que.essay .ablock .filemanager .fp-restrictions{margin-top:1em}.tiny_select_area{background:lightgrey;border-radius:.25rem;border:1px solid rgb(0 0 0 / .15);color:#55595c;padding:.5rem .75rem}.gapfill .hascorrect{background:lightblue;border:solid thin #000}.gapfill .hasincorrect{background-color:red;border:solid thin #000;box-shadow:3px 3px #7bc1f7;font-style:italic}#tiny_select_area span[id^="id"].hascorrect{background:lightblue;border:solid thin #000}#tiny_select_area span[id^="id"].hasnocorrect{border:solid thin #000;box-shadow:3px 3px #7bc1f7;font-style:italic}#tiny_select_area span[id^="id"].item{padding:0}.gapfill .attobackground{background:lightgrey;border-radius:.25rem;border:1px solid rgb(0 0 0 / .15);color:#55595c;display:block;height:100%;left:0;line-height:1.25;padding:.5rem .75rem;position:absolute;top:0;width:100%}#tiny_select_area{border:2px dashed #ccc;padding:10px;background-color:#f9f9f9;min-height:100px}#tiny_select_area span[id^="id"]{background-color:#fff;border-radius:3px;padding:2px 4px;cursor:pointer;transition:all 0.2s ease;display:inline-block}#tiny_select_area span[id^="id"]:hover{background-color:#bbdefb;border-color:#64b5f6;transform:translateY(-1px)}#tiny_select_area .gap-clicked{animation:gap-pulse 0.3s ease;background-color:#fff3e0;border-color:#ffb74d;transform:scale(1.05)}@keyframes gap-pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}100%{transform:scale(1)}}.gapfill .item{background:#fff}.que.gapfill span.gapfeedbackincorrect{background:#faa;background-color:#faa;border-radius:.25em;box-shadow:2px 2px #7bc1f7;color:darkslategray}.que.gapfill span.gapfeedbackcorrect{background:#afa;background-color:#afa;border-radius:.25em;box-shadow:2px 2px #7bc1f7;color:darkslategray}.que.gapfill input[type=text]{background:#fff;border:solid #000 thin;border-radius:4px;color:#000;margin-bottom:1px;margin-top:1px;padding:1px;display:inline-block;height:inherit}.que.gapfill input.droptarget:hover{box-shadow:0 0 8px #7bc1f7}.que.gapfill input.droptarget:focus{box-shadow:0 0 8px #7bc1f7}.que.gapfill input.droptarget{text-align:center;cursor:pointer}.que.gapfill div.answeroptions{margin-bottom:15px}.que.gapfill span.draggable.answers{background:#fff;border:solid 1px;box-shadow:3px 3px 4px #000;cursor:pointer;display:inline-block;margin:1px;margin-right:4px;padding-left:4px;padding-right:4px;vertical-align:middle;z-index:3;border-radius:4px;width:max-content}.que.gapfill span.draggable.answers.hide{display:none}.que.gapfill span.draggable.answers:hover{box-shadow:2px 2px 6px #000}.que.gapfill span.aftergapfeedback{color:green;font-style:italic;font-weight:700}.que.gapfill .qtext select{display:inline;border:solid #000 thin;border-radius:3px;color:#000;padding-bottom:1px;padding-top:1px;-moz-border-radius:3px;-webkit-border-radius:3px}.gapfilltable td{border:solid;border-width:thin}.gapfillfirstcol{background-color:#bcbbbb}.gapfillcol{background-color:lightgray}.gapfilltable th{background-color:lightgray;border:solid;border-width:thin}.gapfilltable caption{border-bottom:solid;border-width:thin}.que.gapfill input.correctduplicate{background-color:#ff0}.que.gapfill input.correct{background-color:#afa}.que.gapfill select.incorrect{background-color:#faa}.que.gapfill input.incorrect{background-color:#faa}.que.gapselect .qtext{line-height:2em;margin-top:1px;margin-bottom:.5em;display:block}.que.gapselect .answercontainer{line-height:2em;margin-bottom:1em;display:block}.que.gapselect .answertext{padding-bottom:.5em}.que.sddl .control{padding:.2em}.guessit .item{background:#fff}.que.guessit input[type=text],.que.guessit .specific-feedback{font-family:'Roboto Mono','Lucida Console',Courier,monospace;font-size:1.2em;background:#fff;color:#000;margin-bottom:1px;margin-top:1px;padding:1px;display:inline-block;height:inherit;border-radius:.25em;border:1px solid #a0a0a0;padding-left:5px;padding-right:5px}.que.guessit .specific-feedback{cursor:default}.que.guessit div.answeroptions{margin-bottom:15px}.que.guessit .correct,.que.guessit input.correct{background-color:#afa}.que.guessit .incorrect,.que.guessit input.incorrect{background-color:#faa}.que.guessit .partiallycorrect,.que.guessit input.partiallycorrect{background-color:#ff9}.que.guessit .misplacedletter,.que.guessit input.misplacedletter{background-color:blue}.que.guessit .markup{font-family:"Lucida Console",Courier,monospace;font-size:1.2em;margin-left:5px;position:absolute;top:22px;left:0}.que.guessit .feedback-markup{font-family:"Lucida Console",Courier,monospace;margin-left:5px;position:absolute;top:22px;left:0}.que.guessit .input-wrapper{display:inline-block;position:relative;margin-bottom:12px}.que.guessit .specific-feedback.input-wrapper{margin-right:4px}.que.guessit .giveword{font-family:'Roboto Mono','Lucida Console',Courier,monospace;color:blue;font-size:1.2em;margin:inherit}.que.guessit .formulation{background-color:#f0f8ff}.que.guessit hr{border:none;height:1px;background-color:burlywood;margin-top:2px;margin-bottom:2px}.que.guessit .numpartscorrect{color:blue;margin-bottom:.8em}.que.guessit .minwidth{min-width:76px}.que.imagechoice .formulation{padding-top:20px;padding-bottom:20px}.que.imagechoice .outcome .feedback{margin-bottom:0}.que.imagechoice .formulation .qtype_imagechoice-mutisubmit{margin:0 auto;display:block}.que.imagechoice .formulation .qtype-imagechoice-error{text-align:center;margin-top:10px;display:block}.que.imagechoice .qtype-imagechoice .w-20{width:20%}.que.imagechoice .qtype-imagechoice .w-30{width:30%}.que.imagechoice .qtype-imagechoice .w-40{width:33%}.que.imagechoice .qtype-imagechoice .w-50{width:50%}.que.imagechoice fieldset.qtype-imagechoice{text-align:center;overflow:visible}.que.imagechoice fieldset.qtype-imagechoice .answers>div{min-height:100%;width:100%;margin:15px;flex-basis:21%;position:relative}.que.imagechoice fieldset.qtype-imagechoice .card{width:15rem;height:100%;border:0;border-radius:20px;margin:0 auto;align-items:center}.que.imagechoice fieldset.qtype-imagechoice .card .answer-content{width:100%;height:100%;display:flex;flex-direction:column}.que.imagechoice fieldset.qtype-imagechoice .card img{height:100%;object-fit:contain}body:not(#page-mod-quiz-attempt) .que.imagechoice fieldset.qtype-imagechoice .card-body{width:100%;display:inline-flex;justify-content:center;align-items:center}.que.imagechoice fieldset.qtype-imagechoice .card .card-img{height:175px;display:flex;align-items:center;justify-content:center;margin:15px;position:relative;max-width:86%;padding:15px}.que.imagechoice fieldset.qtype-imagechoice .card .card-body{height:100%;padding-top:0;padding-bottom:15px}.que.imagechoice fieldset.qtype-imagechoice .card .card-body .card-title{height:100%;margin-bottom:0;display:flex;align-items:center;justify-content:center}.qtype-imagechoice .answers .feedback-content i.icon.text-danger{background:#ca3120;color:#fff!important}.qtype-imagechoice .answers .feedback-content i.icon.text-success{background:#357a32!important;color:#fff!important}.qtype-imagechoice .answers .feedback-content i.icon{max-width:none;max-height:none;border-radius:50px;padding:5px 0;width:1.25em;height:inherit}.imagechoice.que .ablock{padding:20px 0}.que.imagechoice .card .card-img{border:1px dotted #ccc}.que.imagechoice .card.selected-answer .card-img{border:4px solid var(--info)}.que.imagechoice .card.selected-answer{box-shadow:-3px 2px 15px 6px #b3d4e3}.que.imagechoice .answers{width:100%;justify-content:center;flex-wrap:wrap}.imagechoice.que .answers .animate__animated{display:none}.imagechoice.que .answers .animate__animated.noanimation,.imagechoice.que .answers .animate__animated[data-animation="noanimation"]{display:block}.que.imagechoice .qtype-imagechoice .answers .feedback-content{display:none;padding:15px}.que.imagechoice .qtype-imagechoice .answers .show-feedback .answer-content{display:none}.que.imagechoice .qtype-imagechoice .answers .show-feedback .feedback-content{width:15rem;display:block}.que.imagechoice .qtype-imagechoice .answers .answer-content audio{width:100%;height:35px;background:none}.que.imagechoice .qtype-imagechoice .answers .card audio.video-js{display:none}.que.imagechoice .qtype-imagechoice .answers .card audio.vjs-tech{display:block}.que.imagechoice .qtype-imagechoice .answers .card .video-js{border-radius:25px;background:#ebebeb}.que.imagechoice .qtype-imagechoice .answers .card .video-js .vjs-control-bar{background:none}.que.imagechoice .qtype-imagechoice .answers .card .video-js .vjs-control{color:#6b6c6c}.que.imagechoice .qtype-imagechoice .answers .card .video-js .vjs-playback-rate{display:none}.que.imagechoice.correct.reveal-feedback .card.selected-answer{border:4px solid var(--success)}.que.imagechoice.partiallycorrect.reveal-feedback .card.selected-answer{border:4px solid var(--warning)}.que.imagechoice.wrong.reveal-feedback .card.selected-answer,.que.imagechoice.incorrect.reveal-feedback .card.selected-answer{border:4px solid var(--danger)}.qtype-imagechoice input[type="radio"].qtype-imagechoice-answer-radio,.qtype-imagechoice input[type="checkbox"].qtype-imagechoice-answer-radio{position:absolute}.que .qtype-imagechoice .answers .feedback-content i.icon{font-size:3rem}.que .qtype-imagechoice .answers .feedback-content p.feedback-string{font-size:1.8em}.que.imagechoice .qtext{font-size:2em;text-align:center;border-radius:5px;background:#fff;padding:10px}.que.imagechoice .qtext>p{margin-bottom:0}.que.imagechoice .im-controls{display:none}@media (min-width:768px){body.qtype-imagechoice-question-page.limitedwidth #page.drawers .main-inner{max-width:none}}#id_answerhdrcontainer [id^="fitem_id_answerheader_"].row.fitem{border-bottom:1px solid #ccc;margin-bottom:2rem!important;margin-top:2rem}p.qtype-imagechoice-choice-head{font-weight:700;width:100%}.que.imagechoice.reveal-feedback .correct.show-feedback .card.selected-answer{border:4px solid var(--success)}.que.imagechoice.reveal-feedback .incorrect.show-feedback .card.selected-answer{border:4px solid #ca3120;box-shadow:-1px 2px 21px -6px #ca3120}.que.imagechoice.reveal-feedback .partiallycorrect .card.selected-answer{border:4px solid #ffa}form.imagechoice-feedback-listen :not(.que.imagechoice.reveal-feedback).que.imagechoice{pointer-events:none;opacity:.5}.que.imagechoice .feedback-info{text-align:center;width:100%;display:block}.que.imagechoice.reveal-feedback .card.selected-answer .card-img{border:1px dotted #ccc}.imagechoice-feedback-listen .que.imagechoice.reveal-feedback .vjs-playback-rate,.imagechoice-feedback-listen .que.imagechoice.reveal-feedback .vjs-remaining-time{display:none}.imagechoice-feedback-listen .que.imagechoice.reveal-feedback .vjs-progress-control{pointer-events:none;opacity:.5}.que.imagechoice .card-title{font-size:1.4em;font-weight:400}.que.imagechoice .card-title p{margin-bottom:0}@font-face{font-family:'MontserratRegular';src:url(/theme/font.php/academi/qtype_imagetimeline/1790824836/Montserrat-Regular.woff),url(/theme/font.php/academi/qtype_imagetimeline/1790824836/Montserrat-Regular.woff2)}body.qtype-imagechoice-question-page .imagetimeline{font-family:'MontserratRegular'}.que.imagetimeline .formulation{padding-top:20px;padding-bottom:20px}.que.imagetimeline .outcome .feedback{margin-bottom:0}.que.imagetimeline .formulation .qtype_imagetimeline-mutisubmit{margin:0 auto;display:block}.que.imagetimeline .formulation .qtype-imagetimeline-error{text-align:center;margin-top:10px;display:block}.que.imagetimeline .qtype-imagetimeline .w-20{width:20%}.que.imagetimeline .qtype-imagetimeline .w-30{width:30%}.que.imagetimeline .qtype-imagetimeline .w-40{width:33%}.que.imagetimeline .qtype-imagetimeline .w-50{width:50%}.que.imagetimeline fieldset.qtype-imagetimeline{text-align:center;overflow:visible;margin-top:50px}.que.imagetimeline fieldset.qtype-imagetimeline .instructions{max-width:80%;color:#fff;text-align:center;border-radius:5px;background:#000;padding:20px;margin:50px auto 0;display:flex;align-items:center;justify-content:center}.que.imagetimeline fieldset.qtype-imagetimeline .instructions i{width:30px;height:30px;color:#fff;text-align:center;border:2px solid #fff;border-radius:50%;padding:5px;margin-right:10px;display:inline-block}.que.imagetimeline fieldset.qtype-imagetimeline .instructions legend{width:auto;font-size:24px;color:#fff;border-radius:5px;background:#000;padding:0;margin-bottom:0;display:flex;align-items:center;justify-content:center}.que.imagetimeline fieldset.qtype-imagetimeline .answers>.card .draghome{height:100%}.que.imagetimeline fieldset.qtype-imagetimeline .answers .sortable-list-is-dragged{max-width:210px;width:100%;position:absolute!important;z-index:0}.que.imagetimeline fieldset.qtype-imagetimeline .card{min-height:300px;width:100%;border:0;border-radius:20px;background:none;margin:15px 0;align-items:center;position:relative;z-index:0}.que.imagetimeline fieldset.qtype-imagetimeline .card .answer-content{width:13rem;height:100%;display:flex;flex-direction:column}.que.imagetimeline fieldset.qtype-imagetimeline .card .answer-content .card-body{min-width:10rem;padding:1.25rem 0;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-end}.que.imagetimeline fieldset.qtype-imagetimeline .card img{height:100%;border-radius:5px;object-fit:cover;object-position:top}.que.imagetimeline fieldset.qtype-imagetimeline .card .card-img{border-radius:10px;background:#fff;padding:15px;position:relative;display:flex;align-items:center;flex-direction:column}.que.imagetimeline fieldset.qtype-imagetimeline .card .card-img .img-block{width:100%;min-height:180px;max-height:180px}.que.imagetimeline fieldset.qtype-imagetimeline .card .card-img .card-title{height:100%;font-size:18px;font-weight:500;margin-top:20px;margin-bottom:5px;display:flex;align-items:center;justify-content:center}.que.imagetimeline fieldset.qtype-imagetimeline .card .card-img .card-title p{margin-bottom:0}.qtype-imagetimeline .answers .feedback-content i.icon.text-danger{background:#ca3120;color:#fff!important}.qtype-imagetimeline .answers .feedback-content i.icon.text-success{background:#357a32!important;color:#fff!important}.qtype-imagetimeline .answers .feedback-content i.icon{max-width:none;max-height:none;border-radius:50px;padding:5px 0}.imagetimeline.que .ablock{padding:20px 0}.que.imagetimeline .card.selected-answer .card-img{border:4px solid var(--info)}.que.imagetimeline .card.selected-answer{box-shadow:-3px 2px 15px 6px #b3d4e3}.que.imagetimeline .answers{width:100%;justify-content:center;flex-wrap:wrap}.imagetimeline.que .answers .animate__animated{display:none}@media (min-width:1500px){.que.imagetimeline fieldset.qtype-imagetimeline .card{flex-basis:20%}}@media (min-width:1200px) and (max-width:1499px){.que.imagetimeline fieldset.qtype-imagetimeline .card{flex-basis:25%}}@media (min-width:992px) and (max-width:1199px){.que.imagetimeline fieldset.qtype-imagetimeline .card{flex-basis:33%}}@media (min-width:520px) and (max-width:991px){.que.imagetimeline fieldset.qtype-imagetimeline .card{flex-basis:50%}}@media (max-width:519px){.que.imagetimeline fieldset.qtype-imagetimeline .card{flex-basis:60%}}.imagetimeline.que .answers .animate__animated.noanimation,.imagetimeline.que .answers .animate__animated[data-animation="noanimation"]{display:block}.que.imagetimeline .qtext{max-width:80%;font-size:2em;text-align:center;background:#fff;border-radius:5px;padding:10px;margin:30px auto 0}.que.imagetimeline .qtext p{margin-bottom:0}.qtype-imagetimeline-question-page .que.imagetimeline .sortable-list-over-element,.qtype-imagetimeline-question-page .que.imagetimeline .sortable-list-current-position{box-shadow:0 0 5px 5px rgb(255 255 150)}@media (min-width:768px){body.qtype-imagetimeline-question-page.limitedwidth #page.drawers .main-inner{max-width:none}}#id_answerhdrcontainer [id^="fitem_id_answerheader_"].row.fitem{border-bottom:1px solid #ccc;margin-bottom:2rem!important;margin-top:2rem}p.qtype-imagetimeline-choice-head{font-weight:700;width:100%}.que.imagetimeline .card .correct.show-feedback .card-img{border:3px solid var(--success);box-shadow:-1px 2px 21px -6px var(--success)}.que.imagetimeline .card .incorrect.show-feedback .card-img{border:3px solid #ca3120;box-shadow:-1px 2px 21px -6px #ca3120}.que.imagetimeline .card .partiallycorrect.show-feedback .card-img{border:2px solid #ffa}.que.imagetimeline .feedback-info{text-align:center;width:100%;display:block}.que.imagetimeline.reveal-feedback .card.selected-answer .card-img{border:1px dotted #ccc}.imagetimeline-feedback-listen .que.imagetimeline.reveal-feedback .vjs-playback-rate,.imagetimeline-feedback-listen .que.imagetimeline.reveal-feedback .vjs-remaining-time{display:none}.imagetimeline-feedback-listen .que.imagetimeline.reveal-feedback .vjs-progress-control{pointer-events:none;opacity:.5}.que.imagetimeline .card-title{font-size:1.4em;font-weight:400;margin:10px 0 0}.que.imagetimeline .card-title p{font-size:18px;font-weight:500;border-radius:10px;background:#fff;padding:10px}.que.imagetimeline .card-title span{min-width:40px;min-height:40px;color:#fff;border-radius:50%;background:var(--primary);margin-top:10px;display:inline-flex;align-items:center;justify-content:center}.que.imagetimeline .card-title span:after{content:'';width:100%;height:3px;background-color:#fff;position:absolute;right:0;z-index:-1}.que.imagetimeline .dropzones .dropzone .draghome.sortable-list-current-position .card-img .img-block{border:1px dashed #ccc}.que.imagetimeline .dropzones .dropzone .draghome.sortable-list-current-position .card-img .img-block img,.que.imagetimeline .dropzones .dropzone .draghome.sortable-list-current-position .card-img .card-title{visibility:hidden}.que.imagetimeline .dropzones .card:first-child .card-body .card-title span:after{width:50%}.que.imagetimeline .dropzones .card:last-child .card-body .card-title span:after{width:50%;left:0}@media (max-width:519px){.que.imagetimeline .card-title span:after{display:none}}#responseform .imagetimeline .timeline{display:inline-block;background:#fff;padding:10px 20px}.que.imagetimeline .dropzone{min-width:13rem;min-height:250px;height:100%;margin-bottom:50px;position:relative}.que.imagetimeline .card div:not(.show-feedback) .card-img{height:100%;box-shadow:-3px 2px 15px 3px #b3d4e3}.que.imagetimeline .dropzone .sortable-list-is-dragged{z-index:100}.que.imagetimeline .card.sortable-list-dragged-parent{z-index:1000!important}body#page-question-type-match div[id^=fitem_id_][id*=subquestions_]{background:#eee;margin-top:0;margin-bottom:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-bottom:0}body#page-question-type-match div[id^=fitem_id_][id*=subquestions_] .fitemtitle{font-weight:700}body#page-question-type-match div[id^=fitem_id_][id*=subanswers_]{background:#eee;margin-bottom:2em;margin-top:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-top:0}div[id^="fitem_id_subquestions_"].mb-3{margin-bottom:0!important}.que.multianswer .feedbackspan{display:block;max-width:70%;background:#fff3bf;padding:.5em;margin-top:1em;box-shadow:.5em .5em 1em #000}body.ie6 .que.multianswer .feedbackspan,body.ie7 .que.multianswer .feedbackspan,body.ie8 .que.multianswer .feedbackspan,body.ie9 .que.multianswer .feedbackspan{width:70%}.que.multianswer .answer .specificfeedback{display:inline;padding:0 .7em;background:#fff3bf}.que.multianswer .answer .specificfeedback *{display:inline;background:#fff3bf}.que.multianswer .answer .specificfeedback script{display:none}.que.multianswer .answer div.r0,.que.multianswer .answer div.r1{padding:.3em}.que.multianswer table.answer{margin-bottom:0;width:100%}.que.multichoice .answer div.r0,.que.multichoice .answer div.r1{display:flex;margin:.25rem 0;align-items:flex-start}.que.multichoice .answer div.r0 input,.que.multichoice .answer div.r1 input{margin:.3rem .5rem;width:14px;flex-shrink:0}.que.multichoice .answer .answernumber{min-width:1.5em}.que.multichoice .answer .specificfeedback{display:inline;padding:0 .7em;background:#fff3bf}body#page-question-type-multichoice div[id^=fitem_id_][id*=answer_]{background:#eee;margin-top:0;margin-bottom:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-bottom:0}body#page-question-type-multichoice div[id^=fitem_id_][id*=answer_] .fitemtitle{font-weight:700}body#page-question-type-multichoice div[id^=fitem_id_] .fitemtitle{margin-left:0;margin-right:0;padding-left:6px;padding-right:0}body#page-question-type-multichoice div[id^=fitem_id_][id*=fraction_]{background:#eee;margin-bottom:0;margin-top:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-top:0;border-bottom:0}body#page-question-type-multichoice div[id^=fitem_id_][id*=feedback_]{background:#eee;margin-bottom:2em;margin-top:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-top:0}div[id^="fitem_id_answer_"].mb-3,div[id^="fitem_id_fraction_"].mb-3{margin-bottom:0!important}.que.multiorder .formulation .que-multiorder-head{text-align:center;padding:10px 0;margin:10px 0 0}.que.multiorder .formulation .que-multiorder-head p{font-size:24px;background:#fff;border-radius:5px;padding:20px;margin-bottom:0}.que.multiorder .formulation .que-multiorder-head p:empty{display:none}.que.multiorder .formulation .choice-group{margin:50px auto 20px;display:flex;justify-content:center;align-items:normal;flex-wrap:wrap}.que.multiorder .formulation .choice-group:nth-child(2){margin-top:0}.que.multiorder .formulation .qtext-info-block{color:#fff;border-radius:5px;background:#000;padding:10px;display:flex;align-items:center;justify-content:center}.que.multiorder .formulation .qtext-info-block i{width:30px;height:30px;text-align:center;border:2px solid #fff;border-radius:50%;padding:5px;margin-right:10px;display:inline-block}.que.multiorder .formulation .qtext-info-block p{font-size:17px;margin-bottom:0}.que.multiorder .formulation .choice-group h3{width:100%;text-align:center;border-radius:5px;background-color:#fff;padding:10px 0;margin-bottom:0}.que.multiorder .formulation .choice-group .answercontainer{width:49%;position:relative}.que.multiorder .formulation .choice-group .answercontainer .user-select-none{display:flex;flex-direction:column}.que.multiorder .formulation .choice-group .answercontainer .user-select-none .dragplaceholder-block{width:100%;border-radius:5px;background:#fff;margin:10px auto;position:relative}.que.multiorder .formulation .choice-group .answercontainer .user-select-none .options-head,.que.multiorder .formulation .choice-group .qtext-block .qtext-correct-order-block{min-width:185px;width:100%;height:70px;font-size:20px;font-weight:700;color:#fff;border-radius:5px;background:var(--primary);padding:0 10px;margin:30px 0 10px;display:flex;align-items:center;justify-content:center}.que.multiorder .formulation .choice-group .answercontainer .user-select-none .draghome,.que.multiorder .formulation .choice-group .answercontainer .user-select-none .draghome.active{min-width:185px;width:100%!important;height:auto!important;font-size:18px;font-weight:600;line-height:70px!important;padding:0 10px;margin:0;border:0;border-radius:5px;background-color:#fff}.que.multiorder .formulation .choice-group .answercontainer .user-select-none .draghome.qtype-multiorder-line-break.beingdragged,.que.multiorder .formulation .choice-group .answercontainer .user-select-none .draghome.qtype-multiorder-line-break:not(.beingdragged):not(.active),.que.multiorder .formulation .choice-group .qtext-block .answer-order-block .qtext .draghome.qtype-multiorder-line-break{line-height:35px!important}.que.multiorder .formulation .choice-group .answercontainer .user-select-none .draghome.active{text-indent:-999em}.que.multiorder .formulation .choice-group .qtext-block{width:49%;text-align:center}.que.multiorder .formulation .choice-group .qtext-block:empty{display:none}.que.multiorder .formulation .choice-group .qtext-block .qtext{margin:10px 0 18px;display:flex;align-items:center}.que.multiorder .formulation .choice-group .qtext-block .qtext .qorder-element{width:100%;display:flex;align-items:center;position:relative}#page-mod-quiz-review .que.multiorder .formulation .choice-group .ind-block{margin-right:5px}body:not(#page-mod-quiz-review) .que.multiorder .formulation .choice-group .block-order-heading i.icon{display:none}.que.multiorder .formulation .choice-group .ind-block{max-width:35px;width:100%;height:35px;font-weight:600;color:#fff;line-height:34px;border-radius:50%;background:var(--primary);margin-right:10px}.que.multiorder .formulation .choice-group .block-order-heading{margin:0;display:flex;align-items:center}.que.multiorder .formulation .choice-group .block-order-heading .ind-block{background:none}.que.multiorder .formulation .choice-group .drag-info-block{display:flex;align-items:center}.que.multiorder .formulation .choice-group .drag-info-block .ind-block{background:none}.que.multiorder .formulation .choice-group .qtext-block .qtext .drop{width:100%!important;height:70px!important;line-height:70px!important;border:0;border-radius:5px;background-color:#fff;padding:0 10px}.que.multiorder .formulation .choice-group .qtext-block .qtext .draghome .user-select-none,.que.multiorder .formulation .choice-group .qtext-block .qtext .draghome{font-size:18px;font-weight:600;border:0;border-radius:5px;padding:0 10px;background-color:#fff}.que.multiorder .formulation .choice-group .qtext-block .qtext .draghome:not(.being-dragged){width:100%!important;height:auto!important;line-height:70px!important}@media (min-width:1200px){.que.multiorder .formulation .choice-group h3{width:85%}.que.multiorder .formulation .choice-group .answercontainer .user-select-none,.que.multiorder .formulation .choice-group .qtext-block .answer-order-block{width:80%;margin:0 auto}}@media (min-width:768px) and (max-width:991px){.que.multiorder .formulation .choice-group .answercontainer,.que.multiorder .formulation .choice-group .qtext-block{width:48%}}@media (max-width:509px){.que.multiorder .formulation .choice-group .answercontainer .user-select-none .draghome,.que.multiorder .formulation .choice-group .answercontainer .user-select-none .draghome.active{min-width:auto}.que.multiorder .formulation .choice-group .answercontainer .user-select-none .options-head,.que.multiorder .formulation .choice-group .qtext-block .qtext-correct-order-block{min-width:auto}.que.multiorder .formulation .choice-group .drag-info-block .ind-block,.que.multiorder .formulation .choice-group>div div:not(.answer-order-block) .block-order-heading .ind-block{width:auto}}.que.multiorder .qtext{margin-bottom:.5em;display:block}.que.multiorder .draghome{margin-bottom:1em}.que.multiorder .answertext{margin-bottom:.5em}.que.multiorder .drop.active{display:inline-block;text-align:center;border:1px solid #000;margin-bottom:2px}.que.multiorder .drop{display:none}.que.multiorder .drags{height:0}.que.multiorder .draghome{display:inline-block;text-align:center;background:#fff0;border:1px solid #000;cursor:move}.que.multiorder.qtype_multiorder-readonly .draghome{cursor:default}.que.multiorder .draghome.beingdragged{z-index:3;box-shadow:3px 3px 4px #000;position:absolute}.que.multiorder .draghome.dragplaceholder{display:none}.que.multiorder .draghome.dragplaceholder.active{visibility:hidden;display:inline-block}.que.multiorder .draghome.placed{margin-bottom:2px}.que.multiorder .drop:focus,.que.multiorder .drop.valid-drag-over-drop,.que.multiorder .draghome.placed:focus:not(.beingdragged),.que.multiorder .draghome.placed.valid-drag-over-drop{border-color:#0a0;box-shadow:0 0 5px 5px rgb(255 255 150)}.que.multiorder span.incorrect{background-color:#faa}.que.multiorder span.correct{background-color:#afa}.que.multiorder .drop{background-color:#fff}.que.multiorder .group2{background-color:#dcdcdc;border-radius:10px 0 0 0}.que.multiorder .group3{background-color:#b0c4de;border-radius:0 10px 0 0}.que.multiorder .group4{background-color:thistle;border-radius:0 0 10px 0}.que.multiorder .group5{background-color:#87cefa;border-radius:0 0 0 10px}.que.multiorder .group6{background-color:#daa520;border-radius:0 10px 10px 0}.que.multiorder .group7{background-color:gold;border-radius:10px 0 0 10px}.que.multiorder .group8{background-color:khaki;border-radius:10px 10px 10px 10px}.que.multiorder sub,.que.multiorder sup{font-size:80%;position:relative;vertical-align:baseline}.que.multiorder sup{top:-.4em}.que.multiorder sub{bottom:-.2em}.que.numerical .answer{padding:.3em;display:inline}#page-question-type-numerical input[name="unitpenalty"],#page-question-type-numerical input[name^="answer"],#page-question-type-numerical input[name^="tolerance"],#page-question-type-numerical input[name^="multiplier"],#page-question-type-numerical input[name^="unit"]{direction:ltr;text-align:left}body#page-question-type-numerical div[id^=fgroup_id_][id*=answeroptions_]{background:#eee;margin-top:0;margin-bottom:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-bottom:0}body#page-question-type-numerical div[id^=fgroup_id_][id*=answeroptions_] .fgrouplabel label{font-weight:700}body.path-question-type div#fgroup_id_penaltygrp label[for^=id_unitpenalty],body.path-question-type div[id^=fgroup_id_units_] label[for^='id_unit_'],body#page-question-type-numerical div[id^=fgroup_id_][id*=answeroptions_] label[for^='id_answer_']{position:absolute;left:-10000px;font-weight:400;font-size:1em}body#page-question-type-numerical div[id^=fitem_id_][id*=fraction_]{background:#eee;margin-bottom:0;margin-top:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-top:0;border-bottom:0}body#page-question-type-numerical div[id^=fitem_id_][id*=feedback_]{background:#eee;margin-bottom:2em;margin-top:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-top:0}.que.ordering div.answer.ordering{overflow:auto}.que.ordering .sortablelist{float:left;list-style-type:none;margin:0 0 0 8px}.que.ordering .sortablelist.active{border:1px dotted #333;border-radius:4px}.que.ordering .sortablelist li{background-color:#fff;border:1px solid #000;border-radius:4px;list-style-type:none;margin:4px}.que.ordering .sortablelist li .grip{opacity:.45}.que.ordering .sortablelist li.sortableitem{position:relative;cursor:move;margin-left:26px}.que.ordering .sortablelist li.sortableitem:first-of-type [data-action="move-backward"],.que.ordering .sortablelist li.sortableitem:last-of-type [data-action="move-forward"]{visibility:hidden}.que.ordering .sortableitem .btn.btn-icon{height:32px;width:32px;border-radius:.5rem}.que.ordering .sortablelist.numbering123 li,.que.ordering .sortablelist.numberingabc li,.que.ordering .sortablelist.numberingABCD li,.que.ordering .sortablelist.numberingiii li,.que.ordering .sortablelist.numberingIIII li{margin-left:26px}.que.ordering .sortablelist.numberingnone li{list-style-type:none;margin-left:0}.que.ordering .sortablelist.numbering123 li{list-style-type:decimal}.que.ordering .sortablelist.numberingabc li{list-style-type:lower-alpha}.que.ordering .sortablelist.numberingABCD li{list-style-type:upper-alpha}.que.ordering .sortablelist.numberingiii li{list-style-type:lower-roman}.que.ordering .sortablelist.numberingIIII li{list-style-type:upper-roman}.que.ordering .sortablelist.horizontal{display:flex;flex-wrap:wrap}.que.ordering .sortablelist.horizontal{display:flex;flex-wrap:wrap;align-items:flex-start}.que.ordering .sortablelist.vertical li{min-height:18px}.que.ordering.dragproxy{margin:0;padding:0;border:0 none}.que.ordering.dragproxy .sortablelist{margin:0;padding:0;float:none}.que.ordering.dragproxy .sortablelist li{margin:0;padding:6px 0 6px 12px;width:100%}.que.ordering.dragproxy .sortablelist li.horizontal{float:none}.item-moving{box-shadow:3px 3px 4px #000}.current-drop{visibility:hidden}.que.ordering .sortablelist.notactive li.correct{background-color:#dff4d8;border-color:#9f6}.que.ordering .sortablelist.notactive li.partial66{background-color:#dff4d8;border-color:#f90}.que.ordering .sortablelist.notactive li.partial33{background-color:#ffebcc;border-color:#f90}.que.ordering .sortablelist.notactive li.partial00{background-color:#fdd;border-color:#f90}.que.ordering .sortablelist.notactive li.incorrect{background-color:#fdd;border-color:#ff7373}.que.ordering div.rightanswer{overflow:auto}.que.ordering div.rightanswer ol.correctorder{padding-inline-start:16px}.que.ordering div.rightanswer ol.correctorder.horizontal{display:flex;flex-wrap:wrap;align-items:baseline}.que.ordering div.rightanswer ol.correctorder li.horizontal{margin-left:24px;margin-right:24px}.que.ordering div.rightanswer ol.correctorder li.vertical{margin-left:24px}#page-question-type-ordering form.mform fieldset:nth-child(n+4) div.feditor{max-width:480px}.que.shortanswer .answer{padding:.3em;display:inline}.que.shortanswer .answer input{width:80%}body#page-question-type-shortanswer div[id^=fgroup_id_][id*=answeroptions_]{background:#eee;margin-top:0;margin-bottom:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-bottom:0}body#page-question-type-shortanswer div[id^=fgroup_id_][id*=answeroptions_] .fgrouplabel label{font-weight:700}body#page-question-type-shortanswer div[id^=fgroup_id_][id*=answeroptions_] label[for^='id_answer_']{position:absolute;left:-10000px;font-weight:400;font-size:1em}body#page-question-type-shortanswer div[id^=fitem_id_][id*=fraction_]{background:#eee;margin-bottom:0;margin-top:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-top:0;border-bottom:0}body#page-question-type-shortanswer div[id^=fitem_id_][id*=feedback_]{background:#eee;margin-bottom:2em;margin-top:0;padding-bottom:5px;padding-top:5px;border:1px solid #bbb;border-top:0}.que.truefalse .answer div.r0,.que.truefalse .answer div.r1{padding:.3em}.que.wordselect .qtext input[type=checkbox]{display:none}.que.wordselect .qtext .selectable{background-attachment:scroll;background-clip:border-box;background-image:none;background-repeat:repeat;background-position:0 0;background-origin:padding-box;background-size:auto auto;border-radius:.25em;cursor:pointer;display:inline}.que.wordselect .qtext .multiword{border:thin solid #000;border-radius:.25em}.que.wordselect .qtext .selected{border-radius:.25em;background-color:#cbcfd4;background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0 0;background-clip:border-box;background-origin:padding-box;background-size:auto auto;border:solid thin #000;margin:0 2px 0 2px;display:inline;-moz-box-shadow:1px 1px 2px rgb(0 0 0 / .9);-webkit-box-shadow:1px 1px 2px rgb(0 0 0 / .9);box-shadow:1px 1px 2px rgb(0 0 0 / .9);outline-style:solid;outline-width:thin}.que.wordselect .qtext .keyboard_focus{border-color:#0a0;box-shadow:0 0 5px 5px rgb(255 255 150)}.que.wordselect .qtext .incorrect{background-attachment:scroll;background-color:#f7d0d0;background-image:none;background-repeat:repeat;background-position:0 0;background-clip:border-box;background-origin:padding-box;background-size:auto auto;border-radius:.25em;border:solid thin #000;color:#b71c1c;display:inline;text-decoration:line-through;-moz-box-shadow:1px 1px 2px rgb(0 0 0 / .8);-webkit-box-shadow:1px 1px 2px rgb(0 0 0 / .8);box-shadow:1px 1px 2px rgb(0 0 0 / .8)}.que.wordselect .qtext .correct{background-color:#ee2;border-radius:.25em;background-clip:border-box;background-origin:padding-box;background-size:auto auto;border:solid thin}.que.wordselect .qtext .correctresponse{background:#9dd8bb;border-radius:.25em;background-image:none;background-repeat:repeat;background-attachment:scroll;background-position:0 0;background-clip:border-box;background-origin:padding-box;background-size:auto auto;border:solid thin #000;color:#255c41;display:inline;-moz-box-shadow:1px 1px 2px rgb(0 0 0 / .8);-webkit-box-shadow:1px 1px 2px rgb(0 0 0 / .8);box-shadow:1px 1px 2px rgb(0 0 0 / .8)}.path-mod-assign div.gradingnavigation div{float:left;margin-left:2em}.path-mod-assign div.submissionstatustable,.path-mod-assign div.submissionfull,.path-mod-assign div.submissionlinks,.path-mod-assign div.usersummary,.path-mod-assign div.feedback,.path-mod-assign div.gradingsummary{margin-bottom:1.5em}.path-mod-assign div.submissionstatus .generaltable,.path-mod-assign div.submissionlinks .generaltable,.path-mod-assign div.feedback .generaltable,.path-mod-assign div.submissionsummarytable .generaltable,.path-mod-assign div.attempthistory table,.path-mod-assign div.gradingsummary .generaltable{width:100%}.path-mod-assign table.generaltable table td{border:0 none}.path-mod-assign .gradingsummarytable,.path-mod-assign .feedbacktable,.path-mod-assign .lockedsubmission,.path-mod-assign .submissionsummarytable{margin-top:1em}.path-mod-assign div.submissionsummarytable table tbody tr td.c0{width:30%}.path-mod-assign .submittedlate{color:red;font-weight:900}.path-mod-assign.jsenabled .gradingtable .c1 select{display:none}.path-mod-assign .quickgradingform .mform fieldset{margin:0;padding:0}.path-mod-assign textarea.quickgrade{resize:both}.path-mod-assign td.submissionstatus,.path-mod-assign div.submissionstatus,.path-mod-assign a:link.submissionstatus{color:#000;background-color:#efefef}.path-mod-assign td.submissionstatusdraft,.path-mod-assign div.submissionstatusdraft,.path-mod-assign a:link.submissionstatusdraft{color:#000;background-color:#efefcf}.path-mod-assign td.submissionstatussubmitted,.path-mod-assign div.submissionstatussubmitted,.path-mod-assign a:link.submissionstatussubmitted{color:#000;background-color:#cfefcf}.path-mod-assign td.submissionlocked,.path-mod-assign div.submissionlocked{color:#000;background-color:#efefcf}.path-mod-assign td.submissionreopened,.path-mod-assign div.submissionreopened{color:#000;background-color:#efefef}.path-mod-assign td.submissiongraded,.path-mod-assign div.submissiongraded{color:#000;background-color:#cfefcf}.path-mod-assign td.submissionnotgraded,.path-mod-assign div.submissionnotgraded{color:#000}.path-mod-assign td.latesubmission,.path-mod-assign a:link.latesubmission,.path-mod-assign div.latesubmission{color:#000;background-color:#efcfcf}.path-mod-assign td.earlysubmission,.path-mod-assign div.earlysubmission{color:#000;background-color:#cfefcf}.path-mod-assign td.gradingreminder,.path-mod-assign div.gradingreminder{color:#000;background-color:#efcfcf}.path-mod-assign div.dropdown.extrafilters .dropdown-menu{width:300px}.path-mod-assign .gradingtable .c0{display:none}.path-mod-assign.jsenabled .gradingtable .c0{display:table-cell}.path-mod-assign .gradingtable table{border-collapse:separate;border-spacing:0}.path-mod-assign .gradingtable thead th{background-color:#fff}.path-mod-assign .gradingtable tr.selectedrow td{background-color:#fec}.path-mod-assign .gradingtable tr.unselectedrow td{background-color:#fff}.path-mod-assign .gradingtable .yui3-menu ul{margin:0}.path-mod-assign .gradingtable .yui3-menu-label{padding-left:0;line-height:12px}.path-mod-assign .gradingtable .yui3-menu-label img{padding:0 3px}.path-mod-assign .gradingtable .yui3-menu li{list-style-type:none}.path-mod-assign.jsenabled .gradingtable .yui3-loading{display:none}.path-mod-assign .gradingtable .yui3-menu .yui3-menu-content{border:0;padding-top:0}.path-mod-assign div.gradingtable tr .quickgrademodified{background-color:#fc9}.path-mod-assign .gradingtable .commentscontainer .comment-ctrl .comment-area textarea{resize:both}.path-mod-assign td.submissioneditable{color:red}.path-mod-assign .expandsummaryicon{display:none}.path-mod-assign.jsenabled .expandsummaryicon{display:inline-block}.path-mod-assign .hidefull{display:none}.path-mod-assign .quickgradingform form .commentscontainer input,.path-mod-assign .quickgradingform form .commentscontainer textarea{display:none}.path-mod-assign.jsenabled .quickgradingform form .commentscontainer input,.path-mod-assign.jsenabled .quickgradingform form .commentscontainer textarea{display:inline}.path-mod-assign .previousfeedbackwarning{font-size:140%;font-weight:700;text-align:center;color:#500}.path-mod-assign .submissionhistory{background-color:#b0b0b0}.path-mod-assign .submissionhistory .cell.historytitle{background-color:gray}.path-mod-assign .submissionhistory .cell{background-color:#d0d0d0}.path-mod-assign.jsenabled .mod-assign-history-link{background:none 2px 4px / 16px 16px no-repeat;display:block;cursor:pointer;margin-bottom:7px;padding-left:20px}.path-mod-assign.jsenabled .mod-assign-history-link h4{display:inline}.path-mod-assign.jsenabled .attempthistory h4{margin-bottom:7px;text-align:left}.path-mod-assign.jsenabled.dir_rtl .attempthistory h4{text-align:right}.path-mod-assign.jsenabled .mod-assign-history-link-open{background-image:url(/theme/image.php/academi/core/1790824836/t/expanded)}.path-mod-assign.jsenabled .mod-assign-history-link-closed{background-image:url(/theme/image.php/academi/core/1790824836/t/collapsed)}.path-mod-assign .submithelp{padding:1em}.path-mod-assign .feedbacktitle{font-weight:700}.path-mod-assign .submitconfirm,.path-mod-assign .submissionlinks,.path-mod-assign .submissionaction{text-align:center}.path-mod-assign .submissionsummarytable .c0,.path-mod-assign .gradingsummarytable .c0,.path-mod-assign .mod-assign-history-panel .c0{width:15em}.path-mod-assign .gradingtable .moodle-actionmenu{white-space:nowrap}.path-mod-assign .gradingtable .username .d-inline-block{white-space:nowrap}.path-mod-assign .gradingtable .moodle-actionmenu[data-enhanced].show .menu a{padding-left:12px;padding-right:12px}.path-mod-assign .gradingtable .menu-action img{display:none}.path-mod-assign .editsubmissionform input[name="submissionstatement"]{vertical-align:top}.path-mod-assign .editsubmissionform label[for="id_submissionstatement"]{display:inline-block}.path-mod-assign.layout-option-nonavbar{padding-top:0}.path-mod-assign [data-region="user-selector"] select{margin-bottom:0}.path-mod-assign [data-region="user-selector"] .alignment{float:right;width:320px;text-align:center;margin-top:7px}.path-mod-assign [data-region="user-selector"] [data-action="previous-user"],.path-mod-assign [data-region="user-selector"] [data-action="next-user"]{font-size:26px}.path-mod-assign [data-region="user-selector"] [data-action="next-user"]{margin-left:-10px}.path-mod-assign [data-region="user-selector"] .alignment input{margin-bottom:5px}.path-mod-assign [data-region="user-selector"] .alignment .form-autocomplete-downarrow{top:0}.path-mod-assign [data-region="user-selector"] .form-autocomplete-selection{display:none}.path-mod-assign [data-region="user-selector"] .form-autocomplete-suggestions{text-align:left}.path-mod-assign [data-region="user-selector"] .form-autocomplete-suggestions{margin-left:48px}.path-mod-assign [data-region="user-filters"]{font-size:small}.path-mod-assign [data-region="configure-filters"]{display:none;text-align:left;width:480px;background-color:#fff;background-clip:padding-box;box-shadow:0 5px 10px rgb(0 0 0 / .2);border-radius:6px;position:absolute;margin-top:28px;margin-left:-452px;padding:10px 0;z-index:1}.path-mod-assign [data-region="configure-filters"]::before,.path-mod-assign [data-region="configure-filters"]::after{position:absolute;left:auto;display:inline-block;content:'';border-style:solid;border-color:#fff0;border-top:none}.path-mod-assign [data-region="configure-filters"]::before{top:-7px;right:12px;border-width:7px;border-bottom-color:rgb(0 0 0 / .2)}.path-mod-assign [data-region="configure-filters"]::after{top:-6px;right:13px;border-width:6px;border-bottom-color:#fff}.path-mod-assign .alignment [data-region="configure-filters"] input{margin-bottom:0}.path-mod-assign [data-region="grading-navigation-panel"]{position:absolute;top:0;left:0;width:100%;height:6em;margin:0;border-bottom:1px solid #ddd}.path-mod-assign [data-region="grading-navigation"]{padding:1em}.path-mod-assign [data-region="assignment-info"]{white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}.path-mod-assign [data-region="assignment-info"] small[data-region="assignment-tooltip"]{margin-left:.5em}.path-mod-assign [data-region="user-info"]{height:60px}.path-mod-assign [data-region="user-info"] a{text-decoration:none}.path-mod-assign [data-region="user-info"] .img-rounded{display:block;float:left;margin-top:-3px;margin-right:10px}.path-mod-assign [data-region="user-info"] em{display:block;font-style:normal}.path-mod-assign [data-region="user-info"] em.nowrap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.path-mod-assign [data-region="grading-actions-form"] label{display:inline-block}.path-mod-assign.pagelayout-embedded{overflow:hidden}.path-mod-assign [data-region="review-panel"]{position:absolute;top:85px;bottom:60px;left:0;right:30%;width:auto;box-sizing:border-box;-webkit-transition:right 0.5s,left 0.5s;-moz-transition:right 0.5s,left 0.5s;transition:right 0.5s,left 0.5s}.path-mod-assign [data-region="review-panel"].grade-panel-collapsed{right:30px}.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"]{display:none;height:30px;width:30px;position:absolute;top:0;right:0;left:auto;box-sizing:border-box;border-radius:0 0 0 4px;border:1px solid #ccc;border-top:none;background-color:#fff}.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] .expand-icon,.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] .collapse-icon{width:100%;height:100%;text-align:center;line-height:30px}.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] .expand-icon .toggle-text,.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] .collapse-icon .toggle-text{visibility:hidden;opacity:0;height:0;overflow:hidden}.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] img{height:100%;float:right}.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] .expand-icon{display:none}.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] .collapse-icon{display:block}.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] .collapse-icon.full-width{display:none}.path-mod-assign [data-region="review-panel"] .pageheader{border-right:1px solid #ddd}.path-mod-assign [data-region="review-panel"]+[data-region="grade-panel"] [data-region="grade"]{margin-left:auto;margin-right:auto;max-width:100%;-webkit-transition:max-width 0.5s;-moz-transition:max-width 0.5s;transition:max-width 0.5s}.path-mod-assign [data-region="review-panel"] .drawingregion{left:0;right:0;border-color:#ddd}.path-mod-assign [data-region="review-panel"].collapsed{left:calc(30px - 70%);right:calc(100% - 30px);-webkit-transition:right 0.5s,left 0.5s;-moz-transition:right 0.5s,left 0.5s;transition:right 0.5s,left 0.5s}.path-mod-assign [data-region="review-panel"].collapsed [data-region="review-panel-content"]{visibility:hidden;-webkit-transition:visibility 0s 0.5s;-moz-transition:visibility 0s 0.5s;transition:visibility 0s 0.5s}.path-mod-assign [data-region="review-panel"].collapsed [data-region="review-panel-toggle"] .expand-icon{display:block}.path-mod-assign [data-region="review-panel"].collapsed [data-region="review-panel-toggle"] .collapse-icon{display:none}.path-mod-assign [data-region="review-panel"].collapsed+[data-region="grade-panel"]{position:absolute;left:30px;right:0;width:calc(100% - 30px);overflow:auto;-webkit-transition:width 0.5s,right 0.5s,left 0.5s;-moz-transition:width 0.5s,right 0.5s,left 0.5s;transition:width 0.5s,right 0.5s,left 0.5s}.path-mod-assign [data-region="review-panel"].collapsed+[data-region="grade-panel"] [data-region="grade"],.path-mod-assign [data-region="grade-panel"].fullwidth [data-region="grade"]{max-width:800px;margin-left:auto;margin-right:auto}.path-mod-assign [data-region="grade-panel"]{position:absolute;top:85px;bottom:60px;right:0;left:70%;width:30%;overflow:auto;box-sizing:border-box;background-color:#f5f5f5;padding:15px;padding-top:0;-webkit-transition:width 0.5s,right 0.5s,left 0.5s;-moz-transition:width 0.5s,right 0.5s,left 0.5s;transition:width 0.5s,right 0.5s,left 0.5s}.path-mod-assign [data-region="grade-panel"].collapsed{left:calc(100% - 30px);right:calc(30px - 100%);visibility:hidden;-webkit-transition:right 0.5s,left 0.5s,visibility 0s 0.5s;-moz-transition:right 0.5s,left 0.5s,visibility 0s 0.5s;transition:right 0.5s,left 0.5s,visibility 0s 0.5s}.path-mod-assign [data-region="grade-panel"].fullwidth{left:0;width:100%;overflow:auto}.path-mod-assign [data-region="grade-panel"] h3{font-size:18px;font-weight:500}.path-mod-assign [data-region="grade-panel"] div.submissionstatustable{margin-bottom:2em}.path-mod-assign [data-region="grade-panel"] .submissionsummarytable{margin-left:5px;margin-right:5px}.path-mod-assign [data-region="grade-panel"] .submissionsummarytable table.generaltable td{padding:8px 0;background-color:#fff0}.path-mod-assign [data-region="grade-panel"] .submissionsummarytable .generaltable tbody>tr:nth-child(2n+1)>td,.path-mod-assign [data-region="grade-panel"] .submissionsummarytable .generaltable tbody tr:hover>td{background-color:#fff0}.path-mod-assign [data-region="grade-panel"] div.submissionsummarytable table tbody tr td.c0{width:auto}.path-mod-assign [data-region="grade-panel"] div.submissionsummarytable table tbody tr.lastrow td.c0,.path-mod-assign [data-region="grade-panel"] div.submissionsummarytable table tbody tr.lastrow td.c1{border-bottom:1px solid #ddd}.path-mod-assign .overdue,.path-mod-assign .overduesubmission,.path-mod-assign [data-region="grade-panel"] td.submissionnotgraded,.path-mod-assign [data-region="grade-panel"] div.submissionnotgraded{color:#ca3120;background-color:#fff0}.path-mod-assign div.fileuploadsubmission{float:left;min-width:300px}.path-mod-assign div.fileuploadsubmissiontime{float:right}.path-mod-assign [data-region="grade-panel"] #id_gradeheader{display:table-cell;min-width:0}.path-mod-assign [data-region="grade-panel"] #id_gradeheader>legend{visibility:hidden;height:0;margin-bottom:0}.path-mod-assign [data-region="grade-panel"] .comment-area textarea[cols]{width:100%;box-sizing:border-box}.path-mod-assign [data-region="grade-panel"] .mform .fitem.fitem_ftext,.path-mod-assign [data-region="grade-panel"] .mform .fitem.fitem_f,.path-mod-assign [data-region="grade-panel"] .mform .fitem.fitem_feditor,.path-mod-assign [data-region="grade-panel"] .mform .fitem.fitem_fgrading,.path-mod-assign [data-region="grade-panel"] .mform .fitem.fitem_ffilemanager{background-color:#fff;border:1px solid #ddd;margin-bottom:20px}.path-mod-assign [data-region="grade-panel"] .mform .fitem.fitem_ftext .fitemtitle,.path-mod-assign [data-region="grade-panel"] .mform .fitem.fitem_f .fitemtitle,.path-mod-assign [data-region="grade-panel"] .mform .fitem.fitem_feditor .fitemtitle,.path-mod-assign [data-region="grade-panel"] .mform .fitem.fitem_fgrading .fitemtitle,.path-mod-assign [data-region="grade-panel"] .mform .fitem.fitem_ffilemanager .fitemtitle{padding-left:5px;padding-right:5px}.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fcontainer .fitem.fitem_ftext .felement,.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fcontainer .fitem.fitem_f .felement,.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fcontainer .fitem.fitem_feditor .felement,.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fcontainer .fitem.fitem_fgrading .felement,.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fcontainer .fitem.fitem_ffilemanager .felement{padding:6px 10px 10px;box-sizing:border-box}.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fitem.fitem_ftext .fitemtitle,.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fitem.fitem_f .fitemtitle,.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fitem.fitem_feditor .fitemtitle,.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fitem.fitem_fgrading .fitemtitle,.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fitem.fitem_ffilemanager .fitemtitle{border-bottom:1px solid #ddd;box-shadow:0 1px 1px rgb(0 0 0 / .05);padding:6px 10px 3px;box-sizing:border-box}.path-mod-assign #page-content [data-region="grade-panel"] [data-region="popout-button"] img{margin-left:2px;margin-right:2px;margin-top:-2px}.path-mod-assign #page-content [data-region="grade-panel"] .popout [data-region="popout-button"] img{margin-left:-6px;margin-right:-6px;margin-top:4px}.path-mod-assign [data-region="grade-panel"] .fitem .fstaticlabel,.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fitem .fitemtitle label{font-weight:500}.path-mod-assign [data-region="grade-panel"] .mform #fitem_id_grade.fitem{padding-top:5px}.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) #fitem_id_grade.fitem .fitemtitle{display:inline-block;width:auto;border-bottom:none;box-shadow:none}.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) #fitem_id_grade.fitem .felement{width:auto;float:right}.path-mod-assign #page-content .mform:not(.unresponsive) #fitem_id_grade.fitem .felement input{width:80px;margin-bottom:0}.path-mod-assign [data-region="grade-panel"] .gradingform_rubric{max-width:100%;padding-bottom:0}.path-mod-assign .gradingform_rubric{max-width:calc(100vw - 200px)}.path-mod-assign [data-region="grade-panel"] .gradingform_rubric .criterion .description{font-weight:500;min-width:150px}.path-mod-assign [data-region="grade-panel"] .gradingform_rubric .criterion .levels{background-color:#fff}.path-mod-assign [data-region="grade-panel"] .gradingform_rubric .criterion,.path-mod-assign [data-region="grade-panel"] .gradingform_rubric .criterion.even{background-color:#fff0}.path-mod-assign [data-region="grade-panel"] .gradingform_rubric .criterion .remark textarea{margin-bottom:0}.path-mod-assign [data-region="grade-panel"] .gradingform_guide{margin-bottom:10px}.path-mod-assign [data-region="grade-panel"] .gradingform_guide .descriptionreadonly,.path-mod-assign [data-region="grade-panel"] .gradingform_guide .remark,.path-mod-assign [data-region="grade-panel"] .gradingform_guide .score{display:block}.path-mod-assign [data-region="grade-panel"] .gradingform_guide .descriptionreadonly{padding-top:10px}.path-mod-assign [data-region="grade-panel"] .gradingform_guide .criteriondescription{margin-top:5px}.path-mod-assign [data-region="grade-panel"] .gradingform_guide .criteriondescriptionmarkers{width:auto;margin-top:5px}.path-mod-assign [data-region="grade-panel"] .gradingform_guide .markingguideremark{margin-bottom:10px}.path-mod-assign [data-region="grade-panel"] .gradingform_guide .remark .commentchooser{float:right;margin-top:2px;margin-left:0}.path-mod-assign [data-region="grade-panel"] .gradingform_guide .score{float:left;padding-bottom:8px}.path-mod-assign [data-region="grade-panel"] .gradingform_guide .score input,.path-mod-assign [data-region="grade-panel"] .gradingform_guide .score div{display:inline-block}.path-mod-assign [data-region="grade-panel"] .gradingform_guide .criterion,.path-mod-assign [data-region="grade-panel"] .gradingform_guide .criterion.even{background-color:#fff0;border-width:0 0 1px 0;padding:8px 0}.path-mod-assign [data-region="grade-panel"] .showmarkerdesc,.path-mod-assign [data-region="grade-panel"] .showstudentdesc{background-color:#f5f5f5;padding:10px}.path-mod-assign [data-region="grade-panel"] .fitem.fitem_ffilemanager{margin-bottom:0}.path-mod-assign [data-region="grade-panel"] .fitem.popout{position:fixed;left:20%;right:20%;top:20%;bottom:20%;z-index:1000;border:1px solid rgb(0 0 0 / .3);border-radius:6px;box-shadow:0 3px 7px rgb(0 0 0 / .3)}.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fcontainer .fitem.popout .fitemtitle{text-align:center;padding-left:15px;padding-right:15px;height:45px}.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fcontainer .fitem.popout .fitemtitle label{font-size:16px;line-height:30px}.path-mod-assign #page-content [data-region="grade-panel"] [data-region="popout-button"]{float:right}.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fitem.popout .fitemtitle [data-region="popout-button"] img{margin-top:-10px;margin-right:-7px}.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fcontainer .fitem.popout .felement{padding:10px 15px 15px;height:calc(100% - 54px);overflow:auto}.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fcontainer .fitem.popout .felement .gradingform_rubric{overflow:visible}.path-mod-assign [data-region="grade-panel"] #id_attemptsettings>legend{font-size:18px;font-weight:500;line-height:40px;border-bottom:0;margin-bottom:10px}.path-mod-assign [data-region="grade-panel"] #id_attemptsettings .fcontainer{display:table;width:100%;padding-left:5px;padding-right:5px;margin-bottom:10px;box-sizing:border-box}.path-mod-assign [data-region="grade-panel"] .mform #id_attemptsettings .fitem{display:table-row}.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) #id_attemptsettings .fitem:last-of-type .fitemtitle,.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) #id_attemptsettings .fitem:last-of-type .felement{border-bottom:1px solid #ddd}.path-mod-assign [data-region="grade-panel"] #id_attemptsettings .fitem .fstaticlabel,.path-mod-assign [data-region="grade-panel"] .mform:not(.unresponsive) #id_attemptsettings .fitem .fitemtitle label{font-weight:400}.path-mod-assign [data-region="grade-panel"] .mform:not(.unresponsive) #id_attemptsettings .fitem .felement select{margin-bottom:0}.path-mod-assign [data-region="grade-panel"] [data-region="attempt-chooser"]{margin-bottom:10px;vertical-align:text-bottom}.path-mod-assign [data-region="grade-actions-panel"]{border-top:1px solid #ddd;position:absolute;bottom:0;left:0;width:100%;height:60px}.path-mod-assign [data-region="grade-actions"]{padding:1em;text-align:center}.path-mod-assign [data-region="submissions-list"]{text-align:inherit}.path-mod-assign [data-region="submissions-list"] label.radio input{margin-top:4px;min-width:inherit}.path-mod-assign [data-region="overlay"]{display:none;z-index:100;position:absolute;top:0;left:0;width:100%;overflow:auto;bottom:0;background-color:#ddd;opacity:.4;padding-top:4em;text-align:center}@media (max-width:767px){.path-mod-assign.pagelayout-embedded{overflow:auto}.path-mod-assign [data-region="assignment-info"]{border-bottom:1px solid #ddd;padding-bottom:5px}.path-mod-assign .page-context-header .page-header-headings{margin-top:13px}.path-mod-assign [data-region="grade-actions-panel"] [data-region="grade-actions"] .collapse-buttons{display:none}.path-mod-assign [data-region="grading-navigation-panel"],.path-mod-assign [data-region="review-panel"],.path-mod-assign [data-region="grade-panel"],.path-mod-assign [data-region="review-panel"].collapsed+[data-region="grade-panel"],.path-mod-assign [data-region="grade-actions-panel"]{position:inherit;width:100%;top:0;left:0;right:auto;overflow:auto;height:auto;margin-bottom:1em}.path-mod-assign [data-region="grade-panel"].collapsed{visibility:visible}.path-mod-assign [data-region="grading-navigation"]{padding:0;text-align:center}.path-mod-assign [data-region="grade-panel"]{margin-bottom:2em}.path-mod-assign [data-region="grade-panel"] [data-region="popout-button"]{display:none}.path-mod-assign [data-region="review-panel"]{position:relative;max-height:2000px;-webkit-transition:max-height 0.25s linear;-moz-transition:max-height 0.25s linear;transition:max-height 0.25s linear}.path-mod-assign [data-region="review-panel"] .pageheader{border-right:none;padding-right:20px;padding-left:40px}.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"]{display:block;height:20px;width:20px;position:absolute;top:0;left:0;right:auto;box-sizing:border-box;border:1px solid #ccc;border-radius:0 0 4px 0;background-color:#fff}.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] .expand-icon,.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] .collapse-icon{width:100%;height:100%;text-align:center;line-height:30px}.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] .ltr-icon,.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] .rtl-icon{height:100%}.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] .ltr-icon{float:left}.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] .rtl-icon{float:right}.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] .expand-icon .toggle-text,.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] .collapse-icon .toggle-text{line-height:20px;visibility:visible;opacity:1;height:auto;-webkit-transition:visibility 0s 0.25s,opacity 0s 0.25s;-moz-transition:visibility 0s 0.25s,opacity 0s 0.25s;transition:visibility 0s 0.25s,opacity 0s 0.25s}.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] .expand-icon .rtl-icon{display:none}.path-mod-assign [data-region="review-panel"].collapsed{max-height:20px;top:0;left:0;overflow:hidden;-webkit-transition:max-height 0.25s linear;-moz-transition:max-height 0.25s linear;transition:max-height 0.25s linear}.path-mod-assign [data-region="review-panel"].collapsed [data-region="review-panel-toggle"]{width:100%;border-radius:0 0 0 0;-webkit-transition:all 0s 0.25s;-moz-transition:all 0s 0.25s;transition:all 0s 0.25s}.path-mod-assign [data-region="review-panel"].collapsed [data-region="review-panel-toggle"] img{height:100%}.path-mod-assign [data-region="review-panel"] [data-region="review-panel-toggle"] .collapse-icon{display:block}.path-mod-assign [data-region="review-panel"].collapsed [data-region="review-panel-toggle"] .collapse-icon{display:none}.path-mod-assign.pagelayout-popup{overflow:inherit}.path-mod-assign [data-region="grading-navigation"] [data-region="user-info"]{text-align:left;width:auto;display:inline-block;margin:0 auto;height:auto}.path-mod-assign [data-region="user-selector"] .alignment{float:none;margin:0 auto 10px}body.tox-fullscreen.path-mod-assign [data-region="grading-navigation"]{display:none}}.path-mod-assign [data-region="grade-panel"] .mform .fitem .fitemtitle{display:block;margin-top:4px;margin-bottom:4px;text-align:left;width:100%}.path-mod-assign [data-region="grade-panel"] .mform .fitem .felement{margin-left:0;width:100%;float:left;padding-left:0;padding-right:0}.path-mod-assign [data-region="grade-panel"] .mform .fitem .fstatic:empty{display:none}.path-mod-assign [data-region="grade-panel"] .mform .fitem .fcheckbox>span,.path-mod-assign [data-region="grade-panel"] .mform .fitem .fradio>span,.path-mod-assign [data-region="grade-panel"] .mform .fitem .fgroup>span{margin-top:4px}.path-mod-assign [data-region="grade-panel"] .mform .femptylabel .fitemtitle{display:inline-block;width:auto;margin-right:8px}.path-mod-assign [data-region="grade-panel"] .mform .femptylabel .felement{display:inline-block;margin-top:4px;padding-top:5px;width:auto}.path-mod-assign [data-region="grade-panel"] .mform .fitem_fcheckbox .fitemtitle,.path-mod-assign [data-region="grade-panel"] .mform .fitem_fcheckbox .felement{display:inline-block;width:auto}.path-mod-assign [data-region="grade-panel"] .mform .fitem_fcheckbox .felement{padding:6px}.path-mod-assign #page,.path-mod-assign #page-content{position:inherit}.path-mod-assign table.generaltable table td.ygtvcell{border:0;padding:0}div[id*='mod_assign-timer-']{display:block;font-weight:600;font-size:1.4em}body.tox-fullscreen.path-mod-assign [data-region="grade-panel"]{position:unset}body.path-mod-assign [data-region="grade-panel"] .mform .fitem.has-popout .felement[data-fieldtype="editor"]{overflow:unset}.path-mod-assign .initialsdropdown{width:460px}.path-mod-assign .initialsdropdown::after{content:''}.path-mod-attendance .attbtn{border:1px solid #aaa;border-radius:5px;margin:2px;padding:5px;display:inline-block}.path-mod-attendance .attcurbtn{margin-left:2px;margin-right:2px;padding:5px}.path-mod-attendance .attfiltercontrols{margin-bottom:10px}.path-mod-attendance .attfiltercontrols #currentdate{display:inline}.path-mod-attendance .attwidth{margin:auto}.path-mod-attendance .userwithoutenrol,.path-mod-attendance .userwithoutenrol a{color:gray}.path-mod-attendance .userwithoutdata,.path-mod-attendance .userwithoutdata a{color:red}.path-mod-attendance .takelist td{vertical-align:middle}.path-mod-attendance .takelist .userpicture{margin:0 3px;vertical-align:middle}.path-mod-attendance .takegrid input{margin:0 3px 0 6px}.path-mod-attendance .takegrid .fullname{font-size:.8em}.path-mod-attendance div.allsessionssummary+form#attendancetakeform>div{width:100%}.path-mod-attendance table.controls{text-align:center;width:100%}.path-mod-attendance table.controls tr{vertical-align:top}.path-mod-attendance table.controls td.right,.path-mod-attendance table.controls td.left{padding:4px}.path-mod-attendance table.controls .right{text-align:right}.path-mod-attendance .filtercontrols td{padding:6px}.path-mod-attendance .takecontrols{margin:0 auto 20px auto;width:800px}.path-mod-attendance .takecontrols table{margin:0 auto}.path-mod-attendance .takecontrols .c0{text-align:left;width:500px}.path-mod-attendance .takecontrols .c1{text-align:right}.path-mod-attendance .inline,.path-mod-attendance .inline form,.path-mod-attendance .inline div{display:inline}.path-mod-attendance table.userinfobox{border:1px solid #eee;padding:0}.path-mod-attendance table.userinfobox td.left{background-color:#eee;padding:30px 10px}.path-mod-attendance table.userinfobox .userpicture{margin:0}.path-mod-attendance table.attlist td.c0{text-align:right}.path-mod-attendance table.allsessions tr.grouper td{background-color:#eee}.path-mod-attendance table.allsessions td.groupheading{font-weight:700}.path-mod-attendance .allsessionssummary .float-right{float:right}.path-mod-attendance .allsessionssummary .float-left{float:left}#page-mod-attendance-preferences .generalbox{text-align:center}.path-mod-attendance .attsessions_manage_table .action-icon img.smallicon{margin-left:5px}#page-mod-attendance-sessions input[type="checkbox"]{margin-right:2px}.path-mod-attendance .setallstatuses{text-align:right}.path-mod-attendance .remarkholder{position:relative}.path-mod-attendance .remarkholder .remarkcontent{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:3px 3px 5px #ccc;display:none;left:20px;padding:5px;position:absolute;top:0;width:150px;z-index:5000}.path-mod-attendance .remarkholder:hover .remarkcontent{display:inline-block}.path-mod-attendance .attendancestatus-P{color:green}.path-mod-attendance .attendancestatus-E{color:#00aee3}.path-mod-attendance .attendancestatus-L{color:#f7931e}.path-mod-attendance .attendancestatus-A{color:red}.path-mod-attendance .attreport .contrast{background-color:#eaeaea}.path-mod-attendance .attreport .center{text-align:center}.path-mod-attendance .attreport .left{text-align:left}.path-mod-attendance .attreport .bottom{vertical-align:bottom}.path-mod-attendance .attreport .nowrap{white-space:nowrap}.path-mod-attendance .attreport .narrow{width:1px}.path-mod-attendance .attreport img.userpicture{max-width:inherit}.path-mod-attendance .student-password{font-size:x-large;text-align:center}.path-mod-attendance .ungraded{font-size:smaller;font-style:italic}#page-mod-attendance-sessions .statusgroup .statusdesc{margin-right:12px}#page-mod-attendance-view .averageattendance{font-weight:700}#page-mod-attendance-preferences .form-control{width:inherit;display:inherit}@media (max-width:767px){.path-mod-attendance .remarkscol{display:none}.path-mod-attendance .statusgroup .form-check-inline{display:block;padding-top:10px;padding-bottom:10px}#page-mod-attendance-view .colatt{display:none}.path-mod-attendance .attfiltercontrols,.path-mod-attendance .attwidth{width:100%}}@media (max-width:480px){.path-mod-attendance .desccol{display:none}.path-mod-attendance .pointscol{display:none}.path-mod-attendance .attfiltercontrols #currentdate{display:none}#page-mod-attendance-view .colsessionscompleted,#page-mod-attendance-view .colpointssessionscompleted{display:none}}#page-mod-attendance-report div[role=main]{position:relative}#page-mod-attendance-report .attendancereporttable{padding:0}#page-mod-attendance-report .attendancereporttable .headcol{position:sticky;width:200px;left:0;vertical-align:top;background:#fff;border-top-width:1px}#page-mod-attendance-report .attendancereporttable .headcol input[type='checkbox']{margin-right:4px}#page-mod-attendance-report .attendancereporttable tr:first-of-type th,#page-mod-attendance-manage .attsessions_manage_table tr:first-of-type th,#page-mod-attendance-preferences #preferencesform tr:first-of-type th,#page-mod-attendance-index tr:first-of-type th{position:sticky;top:0;background:#fff}#page-mod-attendance-report .attendancereporttable tr:nth-of-type(2) th{position:sticky;top:3rem;background:#fff}#page-mod-attendance-report .attendancereporttable tr:first-of-type .headcol,#page-mod-attendance-report .attendancereporttable tr:nth-of-type(2) .headcol{z-index:1}.attendancereporttable img.icon{padding-left:5px}#page-mod-attendance-password #page{text-align:center}#page-mod-attendance-password #page #qrcode img{display:inline!important;margin:40px}#page-mod-attendance-password .qrcodevalid,#page-mod-attendance-password .qrcodeheader{font-size:larger}#page-mod-attendance-report .attendancereporttable .table-responsive,#page-mod-attendance-manage .attsessions_manage_table .table-responsive,#page-mod-attendance-preferences #preferencesform .table-responsive,#page-mod-attendance-index .table-responsive{overflow-x:initial}#page-mod-attendance-report .attendancereporttable tbody tr,#page-mod-attendance-manage .attsessions_manage_table tbody tr,#page-mod-attendance-preferences #preferencesform tbody tr,#page-mod-attendance-index tbody tr{background-color:#fff}#page-mod-attendance-report .attendancereporttable tbody tr:nth-of-type(odd),#page-mod-attendance-manage .attsessions_manage_table tbody tr:nth-of-type(odd),#page-mod-attendance-preferences #preferencesform tbody tr:nth-of-type(odd),#page-mod-attendance-index tbody tr:nth-of-type(odd){background-color:#f7f7f7}#page-mod-attendance-preferences .form-control.studentavailability,.form-control.studentavailability{display:none;margin:3% auto;width:50%;text-align:center}@charset "UTF-8";.recording-thumbnail{border:1px solid #ddd;border-radius:4px;padding:0 0 0 0;transition:transform .2s;width:113px;height:64px}.recording-thumbnail:hover{box-shadow:0 0 2px 1px rgb(0 140 186 / .5);transform:scale(2);-moz-transform:scale(2);-webkit-transform:scale(2);-o-transform:scale(2);position:relative;display:block;z-index:999}.fa-disabled{cursor:not-allowed;opacity:.2}.fa-invisible{cursor:not-allowed;visibility:hidden}.bbb_index_form{display:inline-block}.bigbluebuttonbn_icon_btn i.icon{margin-right:auto}input.form-control[readonly][name="guestpassword"],input.form-control[readonly][name="guestjoinurl"]{background:initial}.path-mod-book .book_toc .action-list img.smallicon{margin:0 3px}.path-mod-book .book_toc ul{display:flex;flex-direction:column}.path-mod-book .book_toc li{flex:1 1 100%}.path-mod-book .book_toc_indented>ul{margin-left:0;padding-left:0}.path-mod-book .book_toc_indented li{list-style:none}.path-mod-book .book_toc_bullets>ul{margin-left:0;padding-left:1.3rem}.path-mod-book .book_toc_bullets li{list-style:disc}.path-mod-book .book_toc_numbered>ul{margin-left:0;padding-left:0}.path-mod-book .book_toc_numbered li{list-style:none}.path-mod-book .book_toc_none ul{margin-left:0;padding-left:0}.path-mod-book .book_toc_none li{list-style:none}.path-mod-book #mod_book-chaptersnavigation{top:80px;width:inherit;margin:0 -35px;position:sticky}.path-mod-book #mod_book-chaptersnavigation .tertiary-navigation .navitem{margin-bottom:-52px}.path-mod-book .book_content{margin:0 5px;padding-right:15px;padding-left:15px;position:relative}.path-mod-book .btn-previous,.path-mod-book .btn-next{background:#dee2e6;box-shadow:0 .125rem .25rem rgb(0 0 0 / .075);padding:13px 10px}.path-mod-book .btn-previous{border-radius:200px 0 0 200px}.path-mod-book .btn-next{border-radius:0 200px 200px 0}.path-mod-book.dir-rtl .btn-previous .icon,.path-mod-book.dir-rtl .btn-next .icon{transform:scale(-1,-1)}.path-mod-book .btn-previous .icon,.path-mod-book .btn-next .icon{font-size:24px;width:auto;height:auto;margin:auto}@media (max-width:768px){.path-mod-book #mod_book-chaptersnavigation{top:calc(100% - 250px);margin:0 -.5rem;z-index:1}.path-mod-book .btn-previous,.path-mod-book .btn-next{opacity:.85;border-radius:25px;padding:10px;width:45px;height:45px}.path-mod-book .book_content{margin-left:-5px;margin-right:-5px}}ol.checklist{margin-top:10px;margin-bottom:0}ol.checklist ol.checklist{margin-top:0}ol.checklist li{list-style-type:none}ol.checklist .useritem{font-style:italic;color:#404090}ol.checklist .note{font-style:italic;color:#a0a0e0;padding:0 0 0 20px}ol.checklist .itemoptional{font-style:italic}ol.checklist .itemheading{font-weight:700}ol.checklist .itemblack{color:#000}ol.checklist .itemblack.itemoptional{color:#a0a0a0}ol.checklist .itemred{color:red}ol.checklist .itemred.itemoptional{color:#ffa0a0}ol.checklist .itemorange{color:#ffba00}ol.checklist .itemorange.itemoptional{color:#ffdaa0}ol.checklist .itemgreen{color:lime}ol.checklist .itemgreen.itemoptional{color:#a0ffa0}ol.checklist .itempurple{color:#d000ff}ol.checklist .itempurple.itemoptional{color:#d0a0ff}ol.checklist .teachercomment{color:#000;background-color:#ffffb0;border:solid #000 1px;margin:0 0 0 20px}ol.checklist .studentcomment{display:inline-block;color:#000;background-color:#dbffb0;border:solid #000 1px;margin:0 0 0 20px;padding:3px;border-radius:7px}ol.checklist .itemauto.itemdisabled{text-decoration:line-through;background-color:#bcc4c4}ol.checklist .itemauto{background-color:#d6e6e7}ol.checklist li .itemuserdate{background-color:#b0ffb0;position:absolute;width:10em;left:75%;z-index:100}ol.checklist li .itemteacherdate{background-color:#b0ffb0;position:absolute;width:10em;left:60%;z-index:100}ol.checklist li .itemteachername{background-color:#b0ffb0;position:absolute;width:10em;left:45%;z-index:100}.checklist-itemdue{font-style:italic;color:#095c09}.checklist-itemoverdue{font-style:italic;color:#c71212}.checklistreport .header{background-color:#e1e1df}.checklistreport .head0{font-weight:700}.checklistreport .head1{font-weight:400}.checklistreport .head2{font-weight:400;font-style:italic}.checklistreport .cell.reportheading{background-color:#000}.checklistreport .cell.level0{background-color:#e7e7e7}.checklistreport .cell.level1{background-color:#c7c7c7}.checklistreport .cell.level2{background-color:#afafaf}.checklistreport .cell.level0-checked{background-color:lime}.checklistreport .cell.level1-checked{background-color:#00df00}.checklistreport .cell.level2-checked{background-color:#00bf00}.checklistreport .cell.level0-unchecked{background-color:red}.checklistreport .cell.level1-unchecked{background-color:#df0000}.checklistreport .cell.level2-unchecked{background-color:#bf0000}.checklist_progress_bar{display:flex}.checklist_progress_heading{display:block;width:150px}.checklist_progress_outer{border-width:1px;border-style:solid;border-color:#000;width:300px;background-color:#fff0;height:15px;overflow:hidden;position:relative;box-shadow:2px 2px 3px #ccc;border-radius:5px}.checklist_progress_inner{background-color:#229b15;background-image:url(/theme/image.php/academi/mod_checklist/1790824836/progress);height:100%;width:100%;background-repeat:repeat-x;background-position:top;z-index:10;display:block;position:absolute;top:0;left:0;box-shadow:0 0 4px #229b15;border-radius:2px}.checklist_progress_anim{background-color:#98c193;background-image:url(/theme/image.php/academi/mod_checklist/1790824836/progress-fade);height:15px;width:0;background-repeat:repeat-x;background-position:top;position:absolute;left:0;top:0;z-index:5;display:block;box-shadow:0 0 4px #98c193;border-radius:2px}.checklistimportexport{text-align:right;width:90%}p.checklistwarning{margin-top:1em;color:maroon;font-weight:700}.checklist_progress_percent{padding-left:.5em}.jsenabled #checklistsavechecks{display:none}#checklistspinner{display:none;position:absolute;top:5px;left:5px;width:16px;height:16px;background-image:url(/theme/image.php/academi/core/1790824836/i/loading_small)}.checklistspinnerstudent{display:none;top:5px;margin-left:5px;width:16px;height:16px;background-image:url(/theme/image.php/academi/core/1790824836/i/loading_small)}.checklistbox{position:relative;top:0;left:0}ol.checklist label{display:inline}.checklist-extendedit .checklist-edititem{border:1px solid #ddd;padding:10px 0 5px;margin:5px 0}.checklist-extendedit .checklist-edititem label,.checklist-extendedit .checklist-edititem input{margin:0 3px}.checklist-groupingname{color:#ccc}#page-mod-customcert-edit .deletebutton{text-align:right}#page-mod-customcert-edit .addpage{border-top:1px solid #f4f4f4;text-align:right}#page-mod-customcert-edit #id_replace{margin-left:10px}#page-mod-customcert-report .centre{margin-left:auto;margin-right:auto}#page-mod-customcert-rearrange .savepositionsbtn,#page-mod-customcert-rearrange .applypositionsbtn,#page-mod-customcert-rearrange .cancelbtn{float:left}#page-mod-customcert-rearrange .element{display:inline-block;position:absolute;word-wrap:break-word}#page-mod-customcert-rearrange .element:before{background-image:url(/theme/image.php/academi/mod_customcert/1790824836/target);background-repeat:no-repeat;content:"";display:block;float:left;height:9px;width:100%}#page-mod-customcert-rearrange .element:hover{cursor:move}#page-mod-customcert-rearrange .element.refpoint-left:before{background-position:left top;margin:-4px -5px -5px -4px}#page-mod-customcert-rearrange .element.refpoint-center:before{background-position:center top;margin:-4px 0 -5px 0}#page-mod-customcert-rearrange .element.refpoint-right:before{background-position:right top;margin:-4px -5px -5px 4px}#page-mod-customcert-rearrange .element.align-left{text-align:left}#page-mod-customcert-rearrange .element.align-center{text-align:center}#page-mod-customcert-rearrange .element.align-right{text-align:right}#page-mod-customcert-rearrange #pdf{border-style:solid;border-width:1px;clear:both;position:relative}#page-mod-customcert-rearrange div#leftmargin{border-left:1px dotted #000}#page-mod-customcert-rearrange div#rightmargin{border-right:1px dotted #000}.moodle-dialogue #editelementform fieldset.hidden{display:block}.path-mod-data-field .c0,#page-mod-data-view #sortsearch .c0{text-align:right}#page-mod-data-view .approve img.icon{width:34px;height:34px}.path-mod-data #id_entrieshdr div .alert.alert-danger{margin-bottom:2rem}#page-mod-data-view img.list_picture{border:0}#page-mod-data-view div.search_none{display:none}#page-mod-data-view div.search_inline,#page-mod-data-view form#latlongfieldbrowse{display:inline}#page-mod-data-view div#data_adv_form{margin-left:auto;margin-right:auto}#page-mod-data-edit .basefieldinput{width:300px}#page-mod-data-preset .presetmapping table{text-align:left;margin-left:auto;margin-right:auto}#page-mod-data-preset .overwritesettings{margin-bottom:1em}#page-mod-data-preset table.presets{margin-left:auto;margin-right:auto}#page-mod-data-view .datapreferences label{display:inline-block}.path-mod-data-field .sortdefault{margin:1em 0}.path-mod-data-field .fieldname,.path-mod-data-field .fielddescription{width:300px}.path-mod-data-field textarea.optionstextarea{width:300px;height:150px}.path-mod-data-field input.textareafieldsize{width:50px}.path-mod-data-field input.picturefieldsize{width:70px}.path-mod-data .action-icon img.portfolio-add-icon{margin-left:0}#page-mod-data-export #notice span{padding:0 10px}#page-mod-data-edit input[id*="url"]{text-align:left;direction:ltr}.mod-data-default-template td{vertical-align:top}.mod-data-default-template .template-field{text-align:right}.mod-data-default-template .template-token{text-align:left}.mod-data-default-template .controls{text-align:center}.mod-data-default-template .searchcontrols{text-align:right}#page-mod-data-view .notapproved{background-color:#fff3cd;color:#856404;border-radius:.5em;padding:.5em 1em;gap:1em}#page-mod-data-templates td.save_template,#page-mod-data-templates .template_heading{text-align:center}#page-mod-data-templates #availabletags_wrapper{max-width:250px}#page-mod-data-edit .req{cursor:help}#page-mod-data-edit .inline-req .req{position:absolute}#page-mod-data-edit .inline-req{text-align:left}#page-mod-data-edit .datatagcontrol{padding-left:10px}.preset_action_menu .dropdown-toggle::after,.entry-actionsmenu .dropdown-toggle::after,.fields-actions .dropdown-toggle::after{display:none}.defaulttemplate-single-body img.list_picture{max-width:100%}.defaulttemplate-list-body img.list_picture{max-width:100%}.data-timeinfo{color:var(–gray)}.dataicon,.portfolio-add-icon{color:var(--dark)}#page-mod-data-preset .nopreview{border:1px solid var(--secondary);padding:.2rem;border-radius:5px}.template-preview-content .preview-disabled,.template-preview-content .action-icon,.template-preview-content .dropdown-menu a,.template-preview-content .data-field-link,.template-preview-content .data-field-html a,.template-preview-content .data-field-html button{pointer-events:none}.presetsactions .dropdown-toggle,.presetsactions .dropdown-toggle:hover,.presetsactions .show>.btn-secondary.dropdown-toggle,.entriesactions .dropdown-toggle,.entriesactions .dropdown-toggle:hover,.entriesactions .show>.btn-secondary.dropdown-toggle,#page-mod-data-view .whitebutton .btn-secondary,#page-mod-data-preset .whitebutton .btn-secondary,#page-mod-data-field- .whitebutton .btn-secondary,#page-mod-data-templates .whitebutton .btn-secondary{background:#fff;border-color:var(--bs-primary);color:var(--bs-primary)}#page-mod-data-preset .generaltable{margin-bottom:10rem}div.course-content div.generalbox.folderbuttons{padding-left:35px}.forumpost{display:block;position:relative;margin:0 0 1em 0;padding:0;border:1px solid #000;max-width:100%}.forumpost .row{width:100%;position:relative}.forumpost .row .left{float:left;width:43px;overflow:hidden}.forumpost .row .left .grouppictures a{text-align:center;display:block;margin:6px 2px 0 2px}.forumpost .row .left .grouppicture{width:20px;height:20px}.forumpost .row .topic,.forumpost .row .content-mask,.forumpost .row .options{margin-left:43px}.forumpost .picture img{margin:4px}.forumpost .options .commands,.forumpost .content .attachments,.forumpost .options .footer,.forumpost .options .link{text-align:right}.forumpost .options .forum-post-rating{float:left}.forumpost .content .posting{overflow:auto;max-width:100%}.forumpost .content .attachedimages img{max-width:100%}.forumpost .post-word-count{font-size:.85em;font-style:italic}.forumpost .shortenedpost .post-word-count{display:inline;padding:0 .3em}.path-mod-forum .forumolddiscuss,#page-mod-forum-search .c0{text-align:right}.path-mod-forum .indent{margin-left:3%}.path-mod-forum .forumheaderlist{width:100%;border-width:1px;border-style:solid;border-collapse:separate;margin-top:10px}.path-mod-forum .forumheaderlist td{border-width:1px 0 0 1px;border-style:solid}.path-mod-forum .forumheaderlist th.header.replies .iconsmall{margin:0 .3em}.path-mod-forum .forumheaderlist .discussion .starter{vertical-align:middle}.path-mod-forum .forumheaderlist .discussion .pinned img{padding:5px}.path-mod-forum .forumheaderlist .discussion .lastpost{white-space:nowrap;text-align:right}.path-mod-forum .forumheaderlist .replies{white-space:nowrap}.path-mod-forum .forumheaderlist thead .discussionsubscription{text-align:center}#page-mod-forum-subscribers .subscriberdiv,#page-mod-forum-subscribers .subscribertable{width:100%;vertical-align:top}#page-mod-forum-subscribers .subscribertable tr td{vertical-align:top}#page-mod-forum-subscribers .subscribertable tr td.actions{width:16%;padding-top:3em}#page-mod-forum-subscribers .subscribertable tr td.actions .actionbutton{margin:.3em 0;padding:.5em 0;width:100%}#page-mod-forum-subscribers .subscribertable tr td.existing,#page-mod-forum-subscribers .subscribertable tr td.potential{width:42%}#page-mod-forum-discuss .discussioncontrols{width:100%;margin:5px}#page-mod-forum-discuss .discussioncontrols .controlscontainer{width:100%;float:right}#page-mod-forum-discuss .discussioncontrols .discussioncontrol{float:left}#page-mod-forum-discuss .discussioncontrol.exporttoportfolio{text-align:left}#page-mod-forum-discuss .discussioncontrol.displaymode{padding-right:10px}#page-mod-forum-discuss .discussioncontrol.movediscussion{padding-right:10px}#page-mod-forum-view .forumaddnew{margin-bottom:20px}#page-mod-forum-view .groupmenu{float:left;text-align:left;white-space:nowrap}#page-mod-forum-index .subscription,#page-mod-forum-view .subscription{float:right;text-align:right;white-space:nowrap;margin:5px 0}.discussion-list .userpicture,.discussion-list .grouppicture{height:35px;width:35px}#page-mod-forum-search .introcontent{padding:15px;font-weight:700}.path-mod-forum span.unread a:first-child{padding-right:10px}.path-mod-forum span.unread img{margin-left:5px}#email .unsubscribelink{margin-top:20px}.forumpost.unread .header,.path-course-view .unread,span.unread{background-color:#ffd}.forumpost.unread .header{border-bottom:1px solid #ddd}.path-mod-forum :target>.forumpost:before{display:block;content:'';width:4px;position:absolute;background:#0070a8;left:-1px;top:-1px;bottom:-1px}.path-mod-forum .discussion-nav{margin:.5em 0}.path-mod-forum .discussion-nav ul{margin:0;list-style:none;padding-left:0}.path-mod-forum .discussion-nav .next-discussion{float:right}.path-mod-forum .discussion-nav .prev-discussion{float:left}.path-mod-forum .preload-subscribe{background:url(/theme/image.php/academi/mod_forum/1790824836/t/subscribed) no-repeat -9999px -9999px}.path-mod-forum .preload-unsubscribe{background:url(/theme/image.php/academi/mod_forum/1790824836/t/unsubscribed) no-repeat -9999px -9999px}.path-mod-forum .discussionsubscription,.path-mod-forum .discussion-settings-menu,.path-mod-forum .discussionsubscription{margin-top:-10px;text-align:right;margin-bottom:10px}.path-mod-forum .discussionsubscription>a>img,.path-mod-forum .discussionlock>a>img,.path-mod-forum .favourite-discussion>a>img,.path-mod-forum .discussion-settings-menu>a>img{width:12px;padding:0 4px}#page-mod-forum-view img.timedpost{margin-right:5px}.path-mod-forum article .nav .nav-link:first-of-type{margin-left:auto}.path-mod-forum.dir-rtl article .nav .nav-link:first-of-type{margin-left:0;margin-right:auto}.path-mod-forum article .nav .nav-link+.nav-link{border-left:1px solid #ddd}.privatereplyinfo{font-size:80%}.forum-post-container:focus{outline:0}.post-actions .btn:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.forum-post-container:focus>.focus-target{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.hr-sect{display:flex;flex-basis:100%;font-weight:700;align-items:center;margin:8px 0}.hr-sect::before,.hr-sect::after{content:"";flex-grow:1;background:rgb(0 0 0 / .35);height:1px;font-size:0;line-height:0}.hr-sect::before{margin-right:15px}.hr-sect::after{margin-left:15px}.path-mod-glossary .glossarypost{width:95%;border-collapse:separate;margin:0 auto;text-align:left}.path-mod-glossary .glossarypost.entrylist{border-width:0}.path-mod-glossary .glossarypost.continuous .concept{display:inline}.path-mod-glossary .glossarypost .commands{width:200px;white-space:nowrap}.path-mod-glossary .glossarypost td.picture{width:35px}.path-mod-glossary .glossarypost .entrylowersection .icons{text-align:right;padding-right:5px}.path-mod-glossary .glossarypost .entrylowersection .ratings{text-align:right;padding-right:5px;padding-bottom:2px}.path-mod-glossary .glossarypost .glossary-hidden-note{margin:0 .45em}.path-mod-glossary .glossarydisplay{margin-left:auto;margin-right:auto}.path-mod-glossary .glossarydisplay .tabs{width:100%;margin-bottom:0}.path-mod-glossary .glossarydisplay .tabs .side{border-style:none;border-width:0;width:auto}.path-mod-glossary .glossarydisplay .separator{width:4px}.path-mod-glossary table.glossarypopup{width:95%}.path-mod-glossary .entrybox,.path-mod-glossary table.glossaryapproval,.path-mod-glossary .glossarypost .entrylowersection table{width:100%;margin-bottom:0}.glossary-activity-picture{float:left}.glossary-activity-content{margin-left:40px}#page-mod-glossary-view .glossarycontrol{float:right;text-align:right;white-space:nowrap;margin:5px 0}#page-mod-glossary-view table.glossarycategoryheader,#page-mod-glossary-import table.glossaryimportexport{margin-left:auto;margin-right:auto}#page-mod-glossary-view table.glossarycategoryheader{margin-bottom:0}#page-mod-glossary-view table.glossarycategoryheader th{padding:0}#page-mod-glossary-view td.glossarysearchbox label{display:inline-block}@media (min-width:768px){#page-mod-glossary-showentry #page-content{min-width:600px}}#page-mod-glossary-print .mod-glossary-entrylist .mod-glossary-entry{vertical-align:top}#page-mod-glossary-print .displayprinticon,#page-mod-glossary-print .displaydate{text-align:right;font-size:.75em}#page-mod-glossary-print .strong{font-weight:700}.path-mod-glossary .printicon{background:url(/theme/image.php/academi/core/1790824836/t/print) no-repeat scroll 2px center #fff0;padding-left:20px}#page-mod-googlemeet-mod #generateurlroomLoading{background:url(/theme/image.php/academi/mod_googlemeet/1790824836/i/processing64) no-repeat;background-size:32px;margin-left:4px;height:32px;width:32px;display:none}#googlemeetcontentlog{color:#990006;display:none;margin:10px;word-break:break-word;white-space:break-spaces}#page-mod-googlemeet-mod #fgroup_id_generateurlgroup .form-group.fitem[data-groupname="timeopen"],#page-mod-googlemeet-mod #fgroup_id_generateurlgroup .form-group.fitem[data-groupname="timeclose"]{width:100%}#googlemeet_auth-info{display:flex;align-items:center;justify-content:end;padding:8px}#googlemeet_picture-user{color:#000;cursor:pointer;text-decoration:none;padding:4px;border-radius:50%;display:inline-block;outline:none;vertical-align:middle;box-sizing:border-box;height:72px;width:72px}#googlemeet_picture-user:hover,#googlemeet_picture-user:focus{background-color:rgb(60 64 67 / .08);box-shadow:none}#googlemeet_picture-user>img{background-size:64px 64px;border:0;border-radius:50%;display:block;margin:0;position:relative;height:64px;width:64px;z-index:0}#googlemeet_picture-user>img:hover{box-shadow:0 1px 0 rgb(0 0 0 / .15)}#googlemeet_user-name{display:flex;flex-direction:column;margin-left:10px;margin-right:20px;line-height:1}#googlemeet_user-name span:nth-child(1){font-size:11px}#googlemeet_user-name span:nth-child(2){font-weight:500}#page-admin-setting-modsettinggooglemeet .form-item:last-child .form-description{margin-left:-200px}#googlemeet_upcoming_events span+span{white-space:nowrap;border-left:1px solid #999;padding-left:4px}#googlemeet_upcoming_events,#googlemeet_recordings{margin:20px 0}#googlemeet_recordings{max-width:900px}#googlemeet_recordings_table{position:relative;max-width:900px;overflow:auto}#googlemeet_recordings_table table{min-width:500px}#googlemeet_recordings_table table td{vertical-align:middle}#googlemeet_recordings_table table tr.warning{color:#aaa;font-weight:400}#googlemeet_recordings_table .icon{padding:0}#googlemeet_recordings_table .btn .icon{margin-left:.5rem}#googlemeet_syncimg{position:absolute;top:0;width:100%;height:100%;align-items:center;place-content:center;background-color:#fff;opacity:.6;display:none}#googlemeet_syncimg .icon{height:64px;width:64px}#googlemeet_recordings #recordings{display:flex;justify-content:space-between}#googlemeet_recordings #syncbutton{max-width:600px;padding:10px;background:#f5f5f5;border-radius:4px;border:1px solid #e3e3e3}.path-mod-googlemeet .items-center,#id_eventenddate_calendar,#id_eventdate_calendar{display:flex;margin-right:.25em;align-items:center}#googlemeet_recordings_table .dt-container{overflow-x:auto;margin:10px 0}#googlemeet_recordings_table .dt-bottom{margin-bottom:10px}#googlemeet_recordings_table .dt-top,#googlemeet_recordings_table .dt-bottom{display:flex;justify-content:space-between;align-items:center}#googlemeet_recordings_table .dt-search{flex:1;justify-content:flex-end;display:flex}#googlemeet_recordings_table .dt-top .dt-selector,#googlemeet_recordings_table .dt-bottom .dt-selector,#googlemeet_recordings_table .dt-top .dt-input,#googlemeet_recordings_table .dt-bottom .dt-input,#googlemeet_recordings_table .dt-top label,#googlemeet_recordings_table .dt-bottom label{margin-bottom:0}@media only screen and (max-width:950px){#googlemeet_recordings #recordings{display:block}#googlemeet_auth-info{justify-content:start}}@media only screen and (max-width:767px){#googlemeet_auth-info{justify-content:center}}#page-mod-imscp-view #imscp_nav{text-align:center;margin-bottom:5px;margin-top:10px}#page-mod-imscp-view #imscp_toc .ygtv-highlight1{font-weight:700}#page-mod-imscp-view .yui-layout-hd{background-image:none;background-color:#ddd}#page-mod-imscp-view .yui-layout-hd h2{color:#000}.path-mod-imscp #imscp_child_list{margin-left:1em;width:auto;height:auto}.path-mod-knowledgecheck .knowledgecheck-container{max-width:800px;margin:0 auto;padding:20px}.path-mod-knowledgecheck .knowledgecheck-progress-container{display:flex;flex-wrap:nowrap;gap:8px;padding:8px;overflow-x:auto}.path-mod-knowledgecheck .knowledgecheck-progress-item{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1 0 auto}.path-mod-knowledgecheck .knowledgecheck-progress-bar{width:100%;min-width:20px;height:8px;background-color:#e5e7eb;border-radius:4px;transition:all 0.3s ease}.path-mod-knowledgecheck .knowledgecheck-progress-icon{width:35px;height:35px;border-radius:50%;display:flex;justify-content:center;font-size:25px;font-weight:700;color:#fff;margin-top:5px}.path-mod-knowledgecheck .knowledgecheck-progress-item.current .knowledgecheck-progress-bar{background-color:#00bcd4}.path-mod-knowledgecheck .knowledgecheck-progress-item.correct .knowledgecheck-progress-bar{background-color:#4caf50}.path-mod-knowledgecheck .knowledgecheck-progress-item.incorrect .knowledgecheck-progress-bar{background-color:#f44336}.path-mod-knowledgecheck .knowledgecheck-progress-item.correct .knowledgecheck-progress-icon{background-color:#4caf50}.path-mod-knowledgecheck .knowledgecheck-progress-item.incorrect .knowledgecheck-progress-icon{background-color:#f44336}.path-mod-knowledgecheck .knowledgecheck-progress-item.correct .knowledgecheck-progress-icon::after{content:"✓"}.path-mod-knowledgecheck .knowledgecheck-progress-item.incorrect .knowledgecheck-progress-icon::after{content:"✗"}.path-mod-knowledgecheck .question-counter{display:inline-block;background-color:#2d3748;color:#fff;padding:8px 16px;border-radius:8px;font-size:14px;margin-bottom:24px}.path-mod-knowledgecheck .question-text{font-size:24px;font-weight:600;margin-bottom:32px;color:#1a202c}.path-mod-knowledgecheck .knowledgecheck-answers{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;min-height:350px}.path-mod-knowledgecheck .answer-box{border:2px solid #e5e7eb;border-radius:8px;padding:15px;cursor:pointer;transition:all 0.3s ease;display:flex;align-items:center;justify-content:center;background-color:#fff;height:100%}.path-mod-knowledgecheck .answer-box:hover{border-color:#00bcd4}.path-mod-knowledgecheck .answer-box.selected{border-color:#00bcd4;border-width:2px}.path-mod-knowledgecheck .answer-box.correct{border-color:#4caf50;background-color:rgb(76 175 80 / .1)}.path-mod-knowledgecheck .answer-box.incorrect{border-color:#f44336;background-color:rgb(244 67 54 / .1)}.path-mod-knowledgecheck .answer-box label{display:flex;align-items:center;justify-content:center;text-align:center;width:100%;height:100%;margin:0;font-size:20px;color:#1a202c;cursor:pointer}.path-mod-knowledgecheck .answer-box input[type="radio"]{display:none}.path-mod-knowledgecheck .knowledgecheck-feedback{display:block;visibility:hidden;opacity:0;transition:visibility 0s,opacity 0.3s linear;border-radius:8px;padding:16px;border:1px solid #dee2e6;align-self:flex-start;width:100%;max-width:100%}body:not(.knowledgecheck-onloading).path-mod-knowledgecheck .knowledgecheck-feedback:not(:empty){visibility:visible;opacity:1}.path-mod-knowledgecheck .knowledgecheck-feedback .feedback-icon{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;font-size:2rem}.path-mod-knowledgecheck .knowledgecheck-feedback.correct .feedback-icon .fa{background-color:#4caf50;border-color:#4caf50}.path-mod-knowledgecheck .knowledgecheck-feedback .feedback-icon .fa{width:50px;height:50px;border-radius:50%;font-size:35px;font-weight:700;color:#fff;justify-content:center;display:flex;align-items:center}.path-mod-knowledgecheck .knowledgecheck-feedback.incorrect .feedback-icon .fa{background-color:#f44336;border-color:#f44336}.path-mod-knowledgecheck .knowledgecheck-feedback-container{display:flex;justify-content:flex-start;width:100%}.path-mod-knowledgecheck #knowledgecheck-quiz{min-height:45vh;display:flex;flex-direction:column}.path-mod-knowledgecheck .knowledgecheck-question-wrapper{display:flex;flex-direction:column;margin-top:20px;min-height:400px}.path-mod-knowledgecheck .knowledgecheck-question-section{flex:1;display:flex;flex-direction:column}.path-mod-knowledgecheck .knowledgecheck-attempt-page .knowledgecheck-question{display:none;flex-direction:column;flex:1}.path-mod-knowledgecheck .knowledgecheck-attempt-page .knowledgecheck-question.active{display:flex}.path-mod-knowledgecheck .knowledgecheck-attempt-page .answer-box{pointer-events:none;opacity:.8}.path-mod-knowledgecheck .submission-containers{display:flex;justify-content:space-between;margin-top:16px}.path-mod-knowledgecheck .left-buttons{display:flex;gap:16px}.path-mod-knowledgecheck #check-answer,.path-mod-knowledgecheck #next-question,.path-mod-knowledgecheck #finish-attempt,.path-mod-knowledgecheck #try-again{background-color:#00bcd4;color:#fff;border:none;border-radius:8px;padding:12px 32px;font-size:16px;cursor:pointer;transition:background-color 0.3s ease}.path-mod-knowledgecheck #check-answer:hover,.path-mod-knowledgecheck #next-question:hover,.path-mod-knowledgecheck #finish-attempt:hover,.path-mod-knowledgecheck #try-again:hover{background-color:#00acc1}.path-mod-knowledgecheck #try-again{background-color:#f44336}.path-mod-knowledgecheck #try-again:hover{background-color:#e53935}.path-mod-knowledgecheck .question-wrapper{display:flex;flex-direction:row;gap:32px;align-items:flex-start}.path-mod-knowledgecheck .answers-feedback-wrapper{display:flex;gap:32px;align-items:stretch;margin-bottom:30px}.path-mod-knowledgecheck .knowledgecheck-answers{flex:1;display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.path-mod-knowledgecheck .knowledgecheck-feedback-container{flex:0 0 30%;display:flex;flex-direction:column}.path-mod-knowledgecheck .knowledgecheck-feedback{flex-grow:1;display:flex;flex-direction:column;text-align:center;align-items:center}.path-mod-knowledgecheck audio.audio-feedback{height:35px}.path-mod-knowledgecheck .knowledgecheck-feedback-container{flex:0 0 30%;order:1}.path-mod-knowledgecheck .question-content{flex:1}@media (max-width:768px){.path-mod-knowledgecheck .question-wrapper{flex-direction:column}.path-mod-knowledgecheck .answers-feedback-wrapper{flex-direction:column}.path-mod-knowledgecheck .knowledgecheck-feedback-container{flex:1;order:1;width:100%}}.path-mod-knowledgecheck #attempt-summary{text-align:center;margin-top:45px}.path-mod-knowledgecheck .no-questions{text-align:center}.path-mod-knowledgecheck .no-questions .no-questions-text{margin-bottom:30px}body.knowledgecheck-onloading #page{visibility:hidden}.path-mod-knowledgecheck .vjs-playback-rate,.path-mod-knowledgecheck .vjs-remaining-time{display:none}.path-mod-knowledgecheck .vjs-progress-control{pointer-events:none;opacity:.5}.path-mod-knowledgecheck .qtype-imagechoice .answers .card audio.video-js{display:none}.path-mod-knowledgecheck .qtype-imagechoice .answers .card audio.vjs-tech{display:block}.path-mod-knowledgecheck.qtype-imagechoice .answers .card .video-js{border-radius:25px;background:#ebebeb}.path-mod-knowledgecheck .qtype-imagechoice .answers .card .video-js .vjs-control-bar{background:none}.path-mod-knowledgecheck .qtype-imagechoice .answers .card .video-js .vjs-control{color:#6b6c6c}.path-mod-knowledgecheck .qtype-imagechoice .answers .card .video-js .vjs-playback-rate{display:none}.path-mod-knowledgecheck .knowledgecheck-feedback-container audio::-webkit-media-controls-timeline,.path-mod-knowledgecheck .knowledgecheck-feedback-container audio::-webkit-media-controls-seek-back-button,.path-mod-knowledgecheck .knowledgecheck-feedback-container audio::-webkit-media-controls-seek-forward-button{pointer-events:none}.path-mod-knowledgecheck .submission-containers button:disabled{opacity:.3}.knowledgecheck-question.answered .answer-box{pointer-events:none}.nct-config-warning{display:flex;flex-direction:column-reverse;flex-wrap:wrap-reverse;.ffmpeg-instruction,.ffmpeg-missing{text-align:left;padding:10px;margin-bottom:20px;font-weight:700;float:right;width:75%;color:#008196}}.path-mod-lti .ltiframe{position:relative;width:100%;height:100%}.path-mod-lti .userpicture,.path-mod-lti .picture.user,.path-mod-lti .picture.teacher{width:35px;height:35px;vertical-align:top}.path-mod-lti .feedback .files,.path-mod-lti .feedback .grade,.path-mod-lti .feedback .outcome,.path-mod-lti .feedback .finalgrade{float:right}.path-mod-lti .feedback .disabledfeedback{width:500px;height:250px}.path-mod-lti .feedback .from{float:left}.path-mod-lti .files img{margin-right:4px}.path-mod-lti .files a{white-space:nowrap}.path-mod-lti .late{color:red}.path-admin-mod-lti .mform .fitem .fitemtitle{min-width:18em;padding-right:1em}.path-mod-lti .mform .fitem .fitemtitle{min-width:14em;padding-right:1em}#registration-choice-container .buffer-text{margin:20px}#choice-list{list-style:none;border-bottom:1px solid #e3e3e3;padding-bottom:1em;margin-left:0}#choice-list>li{display:inline-block}#external-registration-container iframe{border:1px solid #e5e5e5;border-radius:10px;width:100%;min-height:800px}.loading-screen{text-align:center;padding:3em}.loading-screen .loading-text{font-size:2em}.loading-screen .loader{margin-left:auto;margin-right:auto;margin-bottom:1em;height:2em;width:2em;font-size:2em}#registration-submit{min-width:140px}#registration-form-container{min-height:260px}#registration-form-container .card{margin-bottom:0}#registration-form-container .control-group:last-child{margin-bottom:0}#registration-choice-container .card{text-align:center}#registration-choice-container .btn-toolbar{margin-bottom:0}#registration-choice-container p:last-child{margin-top:20px}#tool-type-capabilities-container .registration-loading-container{display:none}#tool-type-capabilities-container.loading .registration-loading-container{display:block}#tool-type-capabilities-container.loading #tool-type-capabilities-template-container{display:none}.centered-menu{max-width:70%;margin-left:auto;margin-right:auto}.btn-text{display:block}.btn-loader{display:none}.loading .btn-text{display:none}.loading .btn-loader{display:block}.btn .loader{margin-left:auto;margin-right:auto}.btn .loader img{height:1.5em}#tool-list-container h3{display:inline-block}#tool-list-loader-container{display:inline-block}#tool-list-loader-container .loader{display:none}#tool-list-loader-container .loader img{height:2em}.loading #tool-list-loader-container .loader{display:block}.loading #tool-notools-text{display:none}.tool-card{display:inline-block;width:250px;height:300px;border:1px solid #e5e5e5;border-radius:10px;margin:5px;position:relative;box-sizing:border-box;vertical-align:top}.tool-card:hover,.tool-card:focus{border-color:#08c;box-shadow:0 1px 4px rgb(0 105 214 / .25);-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;-moz-transition:border linear 0.2s,box-shadow linear 0.2s;-o-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s}.tool-card .overlay-container{background-color:rgb(255 255 255 / .8);border-radius:10px;display:none;height:100%;left:0;position:absolute;text-align:center;top:0;width:100%;z-index:100;box-sizing:border-box;padding:10px}.tool-card .overlay-container .img-container{position:absolute;top:115px;left:90px;display:block;width:70px;height:70px}.tool-card .overlay-container .img-container img{height:100%;width:100%}.tool-card.announcement>.overlay-container{display:block}.tool-card.announcement .overlay-container .loader{display:none}.tool-card.announcement.loading .overlay-container .loader{display:block;width:100%;height:100%}.tool-card.announcement .overlay-container .success-icon-container{display:none}.tool-card.announcement.success .overlay-container .success-icon-container{display:block}.tool-card.announcement .overlay-container .fail-icon-container{display:none}.tool-card.announcement.fail .overlay-container .fail-icon-container{display:block}.tool-card.announcement .overlay-container .capabilities-container{display:none}.tool-card.announcement.capabilities .overlay-container .capabilities-container{display:block}.tool-card.announcement.capabilities .overlay-container{background-color:#fff}.tool-card.announcement.capabilities .overlay-container .img-container{display:none}.tool-card-content{z-index:1}.tool-card-header{text-align:center;background-color:#f5f5f5;padding:10px;border-top-left-radius:10px;border-top-right-radius:10px;box-sizing:border-box;height:125px}.tool-card-subheader{margin-bottom:10px;text-align:left}.tool-card-header .tool-card-icon{width:35px;height:35px}.tool-card-header .name{margin-bottom:0;white-space:nowrap}.tool-card-header .tool-card-actions{float:right}.tool-card-header .tool-card-actions img{width:15px;height:15px;margin-left:7px}.tool-card-body{border-top:1px solid #e5e5e5;box-sizing:border-box;padding:5px;height:125px}.tool-card-body .description{max-height:100px;word-wrap:break-word}.tool-card-footer{height:50px;text-align:center;padding-top:10px;box-sizing:border-box}.tool-card .contenteditable-container{position:relative}.tool-card [contenteditable=true]{border:1px solid #fff0;padding:.25em;position:relative;z-index:1;overflow:auto}.tool-card [contenteditable=true]:hover{border-radius:4px;box-shadow:inset 0 1px 1px rgb(0 0 0 / .075);background-color:#fff;border:1px solid #e3e3e3;-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;-moz-transition:border linear 0.2s,box-shadow linear 0.2s;-o-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;cursor:text}.tool-card [contenteditable=true]:focus{outline:0;border-radius:4px;box-shadow:inset 0 1px 1px rgb(0 0 0 / .075),0 0 8px rgb(82 168 236 / .6);background-color:#fff;border:1px solid rgb(82 168 236 / .8);-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;-moz-transition:border linear 0.2s,box-shadow linear 0.2s;-o-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;cursor:text}.tool-card [contenteditable=true].loading+.overlay-container{border-radius:4px;display:block}.tool-card [contenteditable=true]+.overlay-container .loader{display:inline-block;vertical-align:middle}#accordion.modltitree{border-radius:4px;padding-left:8px}#accordion.modltitree .accordion-inner{padding-left:20px}#accordion.modltitree .accordion-inner .accordion p{margin-bottom:0;padding-left:15px}#accordion.modltitree .accordion-group{padding-left:15px;padding-bottom:4px;position:relative}#accordion.modltitree .accordion-group span{padding:0 4px 0}#accordion.modltitree .accordion-group .accordion-heading .accordion-toggle::before{content:url(/theme/image.php/academi/core/1790824836/t/expanded);position:absolute;left:-5px}#accordion.modltitree .accordion-group .accordion-heading .accordion-toggle.collapsed::before{content:url(/theme/image.php/academi/core/1790824836/t/collapsed)}#contentframe{border:1px solid #ddd;border-radius:4px}#page-mod-lti-coursetools a.dropdown-toggle::after{display:none}#page-mod-lti-coursetools table div.tool-action-icon-container{display:flex;align-items:center;justify-content:center;width:36px;height:36px}#page-mod-lti-coursetools table div.tool-action-icon-container i{margin:0}#page-mod-lti-coursetools table.generaltable tbody tr:nth-of-type(2n+1),#page-mod-lti-coursetools table.table-striped tbody tr:nth-of-type(2n+1){background:inherit}#page-mod-lti-coursetools table.generaltable tbody tr:hover,#page-mod-lti-coursetools table.table-striped tbody tr:hover{background:#fff}#page-content .nctimagetext-view-content .nctimagetext-content:not(.viewed){visibility:hidden}body.nctimageview-onloading #page{visibility:hidden}#page-content .nctimagetext-view-content .nctimagetext-content{visibility:hidden}#page-content .nctimagetext-view-content .clicktoview.animate__animated,#page-content .nctimagetext-view-content .nctimagetext-imagesection.animate__animated{visibility:hidden}#page-content .nctimagetext-view-content .animate__animated.noanimation,#page-content .nctimagetext-view-content .nctimagetext-content.viewed:not(.animate__animated){visibility:visible}.path-mod-nctimagetext #page.drawers .nctimagetext-view-content{background-color:#f1f1f1;position:relative}.path-mod-nctimagetext #page.drawers .nctimagetext-view-content .content-wrapper{max-width:none;padding:30px}.path-mod-nctimagetext #page.drawers .main-inner #region-main{background:none}.nctimagetext-view-content .title-block{border-radius:7px;text-align:center;background-color:#fff;padding:5px 10px;margin-bottom:30px;color:var(--primary)}.nctimagetext-view-content .title-block .no-overflow p{margin-top:1rem}.nctimagetext-view-content #content-section .box{border-radius:7px;background:#fff;padding-left:1rem;padding-right:1rem;margin-bottom:30px}.nctimagetext-view-content #content-section .clicktoview.box{background:none;cursor:pointer;transition:all .5s ease}.nctimagetext-view-content #content-section .clicktoview.box:hover{box-shadow:0 0 11px -1px var(--primary)}.nctimagetext-view-content #content-section .box.nctimagetext-audio-playing{box-shadow:0 0 11px -1px var(--primary)}.nctimagetext-view-content #content-section .box p{margin-bottom:0}.nctimagetext-view-content #image-section{display:flex;align-items:center;justify-content:center}.nctimagetext-view-content #image-section .nctimagetext-imagesection{width:100%;height:100%;text-align:center;padding-top:0!important;padding-bottom:0!important;display:flex!important;align-items:center;justify-content:center}.nctimagetext-view-content #image-section .nctimagetext-imagesection img{width:100%;height:100%;object-position:top;object-fit:cover;transform:translate3d(0,0,0)}.nctimagetext-view-content .navigation-block{width:100%}.nctimagetext-view-content .navigation-block .pagination{margin-bottom:0;flex-wrap:nowrap}.nctimagetext-view-content .navigation-block .pagination li{max-width:120px;width:100%}.nctimagetext-view-content .navigation-block .pagination li a{height:100%;color:#fff;font-size:20px;border-color:var(--primary);border-radius:0;background-color:var(--primary);display:flex;align-items:center;justify-content:center}.nctimagetext-view-content .navigation-block .pagination li:nth-child(2){max-width:none;width:100%;color:#fff;text-align:center;background:#2b2b2b}.nctimagetext-view-content .navigation-block .pagination li p{width:100%;height:100%;font-size:24px;line-height:36px;margin-bottom:0;display:flex;align-items:center;justify-content:center}.nctimagetext-view-content .nctimagetext-content audio{width:100%;height:30px;background:none}.nctimagetext-view-content .nctimagetext-content audio.video-js{visibility:hidden}.nctimagetext-view-content .nctimagetext-content audio.vjs-tech{visibility:visible;display:inherit!important}.nctimagetext-view-content .nctimagetext-content .video-js{border-radius:25px;background:#ebebeb}.nctimagetext-view-content .nctimagetext-content .video-js .vjs-control-bar{background:none}.nctimagetext-view-content .nctimagetext-content .video-js .vjs-control{color:#6b6c6c}.nctimagetext-view-content .nctimagetext-content .video-js .vjs-playback-rate{display:none}.nctimagetext-view-content .nctimagetext-content.viewed .vjs-audio{display:inline-block!important}.nctimagetext-view-content .nctimagetext-content:not(.viewed) .vjs-audio{display:none}.nctimagetext-view-content .navigation-block .pagination li a.disabled{pointer-events:none;opacity:.5}.nctimagetext-view-content .imagetext-contents.hide-audio-audotext audio,.nctimagetext-view-content .imagetext-contents.hide-audio-audotext .vjs-audio{display:none!important}.nctimagetext-view-content .clicktoview{padding:30px 10px;text-align:center;border:3px dashed #ccc;font-size:16px;margin-bottom:30px}.nctimagetext-view-content .loading-spinner{text-align:center;font-size:20px;height:25px;position:absolute;left:50%;bottom:50px}div#fitem_id_updatedynamic .loading-icon{margin:10px}#page-content .nctimagetext-view-content .nctimagetext-content:nth-child(3){margin-bottom:0}.nctimagetext-view-content .show-afterloading{opacity:0}body#page-mod-nctimagetext-mod .ffmpeg-missing{text-align:left;padding:10px;margin-bottom:20px;font-weight:700;float:right;width:75%;color:#ca3120!important}body#page-mod-nctimagetext-mod .nct-config-warning{display:flex;flex-direction:column-reverse;flex-wrap:wrap-reverse}body#page-mod-nctimagetext-mod .nct-config-warning .ffmpeg-instruction{text-align:left;padding:10px;margin-bottom:20px;font-weight:700;float:right;width:75%;color:#008196!important}body#page-mod-nctimagetext-mod div#fitem_id_dynamicaudio{margin-bottom:0px!important}#page-content .ncttabs-view-content .ncttabs-content:not(.viewed){visibility:hidden}body.ncttabsview-onloading #page{visibility:hidden}#page-content .ncttabs-view-content .ncttabs-content{visibility:hidden}#page-content .ncttabs-view-content .clicktoview.animate__animated,#page-content .ncttabs-view-content .ncttabs-imagesection.animate__animated{visibility:hidden}#page-content .ncttabs-view-content .animate__animated.noanimation,#page-content .ncttabs-view-content .ncttabs-content.viewed:not(.animate__animated){visibility:visible}.path-mod-ncttabs #page.drawers .ncttabs-view-content{background-color:#f1f1f1;position:relative}.path-mod-ncttabs .tabs-block{>.d-flex{gap:0 50px;align-items:normal!important;.nav-pills{flex:0 0 14%;flex-direction:row!important;button{width:100%;font-size:20px;color:#fff;border-bottom:1px solid var(--primary);border-radius:0;background:#2b2b2b;padding:20px 0;box-shadow:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px 0;&.active{background:var(--primary)}i{width:35px;height:35px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:25px;&.fa-times{background:#ff3b3b}&.fa-check{background:#00b836}}}}.tab-content{width:100%;.tab-pane{gap:0 50px;.alert{margin:35px 30px 0 0}&:not(.fullcontent){&.active{display:flex;justify-content:end}.show-afterloading{width:60%;margin:35px 0}}.show-afterloading{margin:35px 30px;&.content-section{height:100%}.title-block .no-overflow{overflow:visible;p{margin-top:1rem}}div:not(.title-block) .no-overflow{border-radius:7px;background:#fff;padding:1rem;margin-bottom:30px}.ncttabs-content:last-child .no-overflow:last-child{margin-bottom:0}}.media-block{width:38%}}}}}.path-mod-ncttabs #page.drawers .ncttabs-view-content .content-wrapper{padding:0;position:relative}.path-mod-ncttabs #page.drawers .main-inner #region-main{background:none}.ncttabs-view-content .title-block{border-radius:7px;text-align:center;background-color:#fff;padding:5px 10px;margin-bottom:30px;color:var(--primary)}.ncttabs-view-content #content-section .clicktoview.box{background:none;cursor:pointer;transition:all .5s ease}.ncttabs-view-content #content-section .clicktoview.box:hover{box-shadow:0 0 11px -1px var(--primary)}.ncttabs-view-content #content-section .box.ncttabs-audio-playing{box-shadow:0 0 11px -1px var(--primary)}.ncttabs-view-content #content-section .box p{margin-bottom:0}.ncttabs-view-content .media-block{height:100%;display:flex;justify-content:center}.ncttabs-view-content .media-block .ncttabs-imagesection{width:100%;height:100%;text-align:center;padding-top:0!important;padding-bottom:0!important;display:flex!important;align-items:center;justify-content:center}.ncttabs-view-content .media-block .ncttabs-imagesection img{width:100%;height:100%;object-position:top;object-fit:cover;transform:translate3d(0,0,0)}.ncttabs-view-content .navigation-block{width:100%}.ncttabs-view-content .navigation-block.hide{display:none}.ncttabs-view-content .navigation-block .pagination{margin-bottom:0;flex-wrap:nowrap}.ncttabs-view-content .navigation-block .pagination li{max-width:10%;width:100%}.ncttabs-view-content .navigation-block .pagination li a{height:100%;color:#fff;font-size:20px;border-color:var(--primary);border-radius:0;background-color:var(--primary);box-shadow:none;display:flex;align-items:center;justify-content:center}.ncttabs-view-content .navigation-block .pagination li:nth-child(2){max-width:none;width:100%;color:#fff;text-align:center;background:#2b2b2b;padding:0 10px}.ncttabs-view-content .navigation-block .pagination li p{width:100%;height:100%;font-size:24px;line-height:36px;margin-bottom:0;display:flex;align-items:center;justify-content:center}.ncttabs-view-content .ncttabs-content audio{width:100%;height:35px;background:none}.ncttabs-view-content .ncttabs-content audio.video-js{visibility:hidden}.ncttabs-view-content .ncttabs-content audio.vjs-tech{visibility:visible}.ncttabs-view-content .ncttabs-content .video-js{border-radius:25px;background:#ebebeb}.ncttabs-view-content .ncttabs-content .video-js .vjs-control-bar{background:none}.ncttabs-view-content .ncttabs-content .video-js .vjs-control{color:#6b6c6c}.ncttabs-view-content .ncttabs-content .video-js .vjs-playback-rate{display:none}.ncttabs-view-content .ncttabs-content.viewed .vjs-audio{display:inline-block}.ncttabs-view-content .ncttabs-content:not(.viewed) .vjs-audio{display:none}.ncttabs-view-content .navigation-block .pagination li a.disabled{pointer-events:none;opacity:.5}.ncttabs-view-content .tabs-contents.hide-audio-audotext audio,.ncttabs-view-content .tabs-contents.hide-audio-audotext .vjs-audio{display:none!important}.ncttabs-view-content .clicktoview{padding:30px 10px;text-align:center;border:3px dashed #ccc;font-size:16px;margin-bottom:30px}.ncttabs-view-content .loading-spinner{height:25px;font-size:20px;text-align:center;position:absolute;left:50%}div#fitem_id_updatedynamic .loading-icon{margin:10px}#page-content .ncttabs-view-content .ncttabs-content:last-child{margin-bottom:0}.ncttabs-view-content .show-afterloading{opacity:0}.ncttabs-view-content .instructions .instruction-content.hide{display:none}.ncttabs-view-content .nct-update-disabled.nav-link{color:#6a737b;pointer-events:none;cursor:default}.ncttabs-view-content .tab-pane.find-auto-text-size{height:0;overflow:hidden;display:flex;justify-content:end}body#page-mod-ncttabs-mod .ffmpeg-missing{text-align:left;padding:10px;margin-bottom:20px;font-weight:700;float:right;width:75%;color:#ca3120!important}body#page-mod-ncttabs-mod .nct-config-warning{display:flex;flex-direction:column-reverse;flex-wrap:wrap-reverse}body#page-mod-ncttabs-mod .nct-config-warning .ffmpeg-instruction{text-align:left;padding:10px;margin-bottom:20px;font-weight:700;float:right;width:75%;color:#008196!important}body#page-mod-ncttabs-mod div#fitem_id_dynamicaudio{margin-bottom:0px!important}.path-mod-pdfannotator .pdf-annotator-hidden{display:none;visibility:hidden}.path-mod-pdfannotator .pdfannotator_index .toolbar{background-color:#eaeaea;border-bottom:1px solid #d0d0d0;top:0;left:0;right:0;padding:0 0 3px 5px;text-shadow:1px 1px 0 #fff;z-index:50;-webkit-box-shadow:inset 0 1px 1px 0 rgb(255 255 255);-moz-box-shadow:inset 0 1px 1px 0 rgb(255 255 255);box-shadow:inset 0 1px 1px 0 rgb(255 255 255)}.path-mod-pdfannotator .pdfannotator_index .toolbar .spacer{display:inline-block;border-left:1px solid #c1c1c1;height:34px;margin:0 5px -11px}.path-mod-pdfannotator .toolbar .toolbaritem{display:inline-block}.path-mod-pdfannotator .toolbar button{background-color:#fff0;border:0 solid #fff0;border-radius:0;font-size:15px;padding:3px;margin:0 0 0 0;text-align:center;text-shadow:0 0 0 #fff;position:relative;min-width:27px;min-height:27px;background-image:none}.path-mod-pdfannotator .toolbar.fullscreen{margin-left:15px}.path-mod-pdfannotator .toolbar button.active{background-image:radial-gradient(ellipse at center,#e6f2ff 40%,#8ebae5 100%);background-color:#8ebae5;border-color:#bababa;-webkit-box-shadow:inset 0 0 1px rgb(0 0 0 / .25);-moz-box-shadow:inset 0 0 1px rgb(0 0 0 / .25);box-shadow:inset 0 0 1px rgb(0 0 0 / .25)}.path-mod-pdfannotator .toolbar select{margin-bottom:0}.path-mod-pdfannotator .toolbar button .icon{color:#999;margin-right:0}.path-mod-pdfannotator .color{display:inline-block;width:20px;height:20px;border:1px solid #000;vertical-align:middle;margin:0}.path-mod-pdfannotator .color-selected{border:3px solid #666;width:30px;height:30px;margin-top:-1px;margin-left:-2px;margin-right:-2px}.path-mod-pdfannotator .text-color,.path-mod-pdfannotator .pen-color{z-index:100;display:inline-block}.path-mod-pdfannotator .textLayer{position:absolute;text-align:initial;left:0;top:0;right:0;bottom:0;overflow:hidden;opacity:.2;line-height:1;text-size-adjust:none;z-index:20}.path-mod-pdfannotator .textLayer>span:not(.helperLayer){color:#fff0;position:absolute;white-space:pre;cursor:text;-webkit-transform-origin:0% 0%;-moz-transform-origin:0% 0%;-o-transform-origin:0% 0%;-ms-transform-origin:0% 0%;transform-origin:0% 0%}.path-mod-pdfannotator .textLayer br{color:#fff0;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%}.path-mod-pdfannotator .textLayer span.markedContent{top:0;height:0}.path-mod-pdfannotator .textLayer .highlight{margin:-1px;padding:1px;background-color:rgb(180 0 170);border-radius:4px}.path-mod-pdfannotator .textLayer .highlight.appended{position:initial}.path-mod-pdfannotator .textLayer .highlight.begin{border-radius:4px 0 0 4px}.path-mod-pdfannotator .textLayer .highlight.end{border-radius:0 4px 4px 0}.path-mod-pdfannotator .textLayer .highlight.middle{border-radius:0}.path-mod-pdfannotator .textLayer .highlight.selected{background-color:#006400}.path-mod-pdfannotator .textLayer ::selection{background:rgb(0 0 255)}.path-mod-pdfannotator .textLayer br::selection{background:#fff0}.path-mod-pdfannotator .textLayer .endOfContent{display:block;position:absolute;left:0;top:100%;right:0;bottom:0;z-index:-1;cursor:default;user-select:none;-webkit-user-select:none;-ms-user-select:none;-moz-user-select:none}.path-mod-pdfannotator .textLayer .endOfContent.active{top:0}.path-mod-pdfannotator{--annotation-unfocused-field-background:url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");
}

.path-mod-pdfannotator .annotationLayer section {
    position: absolute;
}

.path-mod-pdfannotator .annotationLayer .linkAnnotation > a,
.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.pushButton > a {
    position: absolute;
    font-size: 1em;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.pushButton > canvas {
    position: relative;
    top: 0;
    left: 0;
    z-index: -1;
}

.path-mod-pdfannotator .annotationLayer .linkAnnotation > a /* -ms-a */ {
    background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) 0 0 repeat;
}

.path-mod-pdfannotator .annotationLayer .linkAnnotation > a:hover,
.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.pushButton > a:hover {
    opacity: 0.2;
    background: rgba(255, 255, 0, 1);
    box-shadow: 0 2px 10px rgba(255, 255, 0, 1);;
}

.path-mod-pdfannotator .annotationLayer .textAnnotation img {
    position: absolute;
    cursor: pointer;
}

.path-mod-pdfannotator .annotationLayer .textWidgetAnnotation input,
.path-mod-pdfannotator .annotationLayer .textWidgetAnnotation textarea,
.path-mod-pdfannotator .annotationLayer .choiceWidgetAnnotation select,
.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.checkBox input,
.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.radioButton input {
  background-image: var(--annotation-unfocused-field-background);
  border: 1px solid transparent;
  box-sizing: border-box;
  font-size: 9px;
  height: 100%;
  margin: 0;
  padding: 0 3px;
  vertical-align: top;
  width: 100%;
}

.path-mod-pdfannotator .annotationLayer .choiceWidgetAnnotation select option {
    padding: 0;
}

.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.radioButton input {
    border-radius: 50%;
}

.path-mod-pdfannotator .annotationLayer .textWidgetAnnotation textarea {
    font: message-box;
    font-size: 9px;
    resize: none;
}

.path-mod-pdfannotator .annotationLayer .textWidgetAnnotation input[disabled],
.path-mod-pdfannotator .annotationLayer .textWidgetAnnotation textarea[disabled],
.path-mod-pdfannotator .annotationLayer .choiceWidgetAnnotation select[disabled],
.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.checkBox input[disabled],
.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.radioButton input[disabled] {
    background: none;
    border: 1px solid transparent;
    cursor: not-allowed;
}

.path-mod-pdfannotator .annotationLayer .textWidgetAnnotation input:hover,
.path-mod-pdfannotator .annotationLayer .textWidgetAnnotation textarea:hover,
.path-mod-pdfannotator .annotationLayer .choiceWidgetAnnotation select:hover,
.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.checkBox input:hover,
.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.radioButton input:hover {
  border: 1px solid rgba(0, 0, 0, 1);
}

.path-mod-pdfannotator .annotationLayer .textWidgetAnnotation input:focus,
.path-mod-pdfannotator .annotationLayer .textWidgetAnnotation textarea:focus,
.path-mod-pdfannotator .annotationLayer .choiceWidgetAnnotation select:focus {
  background: none;
  border: 1px solid transparent;
}

.path-mod-pdfannotator .annotationLayer .textWidgetAnnotation input :focus,
.path-mod-pdfannotator .annotationLayer .textWidgetAnnotation textarea :focus,
.path-mod-pdfannotator .annotationLayer .choiceWidgetAnnotation select :focus,
.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.checkBox :focus,
.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.radioButton :focus {
  background-image: none;
  background-color: transparent;
  outline: auto;
}

.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,
.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,
.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before {
  background-color: rgba(0, 0, 0, 1);
  content: "";
  display: block;
  position: absolute;
}

.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,
.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after {
  height: 80%;
  left: 45%;
  width: 1px;
}

.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before {
  transform: rotate(45deg);
}

.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after {
  transform: rotate(-45deg);
}

.path-mod-pdfannotator .annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before {
    border-radius: 50%;
    height: 50%;
    left: 30%;
    top: 20%;
    width: 50%;
}

.path-mod-pdfannotator .annotationLayer .textWidgetAnnotation input.comb {
    font-family: monospace;
    padding-left: 2px;
    padding-right: 0;
}

.path-mod-pdfannotator .annotationLayer .textWidgetAnnotation input.comb:focus {
    /*
     * Letter spacing is placed on the right side of each character. Hence, the
     * letter spacing of the last character may be placed outside the visible
     * area, causing horizontal scrolling. We avoid this by extending the width
     * when the element has focus and revert this when it loses focus.
     */
    width: 103%;
}

.path-mod-pdfannotator  .annotationLayer .buttonWidgetAnnotation.checkBox input,
.path-mod-pdfannotator  .annotationLayer .buttonWidgetAnnotation.radioButton input {
  appearance: none;
  padding: 0;
}

.path-mod-pdfannotator .annotationLayer .popupWrapper {
    position: absolute;
    width: 20em;
}

.path-mod-pdfannotator .annotationLayer .popup {
    position: absolute;
    z-index: 200;
    max-width: 20em;
    background-color: rgba(255, 255, 153, 1);
    box-shadow: 0 2px 5px rgba(136, 136, 136, 1);
    border-radius: 2px;
    padding: 6px;
    margin-left: 5px;
    cursor: pointer;
    font: message-box;
    font-size: 9px;
    white-space: normal;
    word-wrap: break-word;
}

.path-mod-pdfannotator .annotationLayer .popup > * {
    font-size: 9px;
}

.path-mod-pdfannotator .annotationLayer .popup h1 {
    display: inline-block;
}

.path-mod-pdfannotator .annotationLayer .popupDate {
    display: inline-block;
    margin-left: 5px;
}

.path-mod-pdfannotator .annotationLayer .popupContent {
    border-top: 1px solid rgba(51, 51, 51, 1);
    margin-top: 2px;
    padding-top: 2px;
  }

.path-mod-pdfannotator .annotationLayer .richText > * {
  white-space: pre-wrap;
}

.path-mod-pdfannotator .annotationLayer .highlightAnnotation,
.path-mod-pdfannotator .annotationLayer .underlineAnnotation,
.path-mod-pdfannotator .annotationLayer .squigglyAnnotation,
.path-mod-pdfannotator .annotationLayer .strikeoutAnnotation,
.path-mod-pdfannotator .annotationLayer .freeTextAnnotation,
.path-mod-pdfannotator .annotationLayer .lineAnnotation svg line,
.path-mod-pdfannotator .annotationLayer .squareAnnotation svg rect,
.path-mod-pdfannotator .annotationLayer .circleAnnotation svg ellipse,
.path-mod-pdfannotator .annotationLayer .polylineAnnotation svg polyline,
.path-mod-pdfannotator .annotationLayer .polygonAnnotation svg polygon,
.path-mod-pdfannotator .annotationLayer .caretAnnotation,
.path-mod-pdfannotator .annotationLayer .inkAnnotation svg polyline,
.path-mod-pdfannotator .annotationLayer .stampAnnotation,
.path-mod-pdfannotator .annotationLayer .fileAttachmentAnnotation {
  cursor: pointer;
}

/******* pdfViewer *******/
.path-mod-pdfannotator {
    --pdfViewer-padding-bottom: 0;
    --page-margin: 1px auto -8px auto;
    --page-border: 9px solid transparent;
    --spreadHorizontalWrapped-margin-LR: -3.5px;
    --zoom-factor: 1;
    --viewport-scale-factor: 1;
}

@media screen and (forced-colors: active) {
    .path-mod-pdfannotator {
    --pdfViewer-padding-bottom: 9px;
    --page-margin: 9px auto 0 auto;
    --page-border: none;
    --spreadHorizontalWrapped-margin-LR: 4.5px;
  }
}

.path-mod-pdfannotator .pdfViewer {
  padding-bottom: var(--pdfViewer-padding-bottom);
}

.path-mod-pdfannotator .pdfViewer .canvasWrapper {
    overflow: hidden;
}

.path-mod-pdfannotator .pdfViewer .page {
    direction: ltr;
    width: 816px;
    height: 1056px;
    margin: var(--page-margin);
    position: relative;
    overflow: visible;
    border: var(--page-border);
    background-clip: content-box;
    border-image: url(images/shadow.png) 9 9 repeat;
    background-color: rgba(255, 255, 255, 1);
}

.path-mod-pdfannotator .pdfViewer .dummyPage {
    position: relative;
    width: 0;
    /* The height is set via JS, see `BaseViewer.#ensurePageViewVisible`. */
}

.path-mod-pdfannotator .pdfViewer.removePageBorders .page {
    margin: 0 auto 10px;
    border: none;
}

.path-mod-pdfannotator .pdfViewer.singlePageView {
    display: inline-block;
}

.path-mod-pdfannotator .pdfViewer.singlePageView .page {
  margin: 0;
  border: none;
}

.path-mod-pdfannotator .pdfViewer.scrollHorizontal,
.path-mod-pdfannotator .pdfViewer.scrollWrapped,
.path-mod-pdfannotator .spread {
  margin-left: 3.5px;
  margin-right: 3.5px;
  text-align: center;
}

.path-mod-pdfannotator .pdfViewer.scrollHorizontal,
.path-mod-pdfannotator .spread {
  white-space: nowrap;
}

.path-mod-pdfannotator .pdfViewer.removePageBorders,
.path-mod-pdfannotator .pdfViewer.scrollHorizontal .spread,
.path-mod-pdfannotator .pdfViewer.scrollWrapped .spread {
  margin-left: 0;
  margin-right: 0;
}

.path-mod-pdfannotator .spread .page,
.path-mod-pdfannotator .spread .dummyPage,
.path-mod-pdfannotator .pdfViewer.scrollHorizontal .page,
.path-mod-pdfannotator .pdfViewer.scrollWrapped .page,
.path-mod-pdfannotator .pdfViewer.scrollHorizontal .spread,
.path-mod-pdfannotator .pdfViewer.scrollWrapped .spread {
  display: inline-block;
  vertical-align: middle;
}

.path-mod-pdfannotator .spread .page,
.path-mod-pdfannotator .pdfViewer.scrollHorizontal .page,
.path-mod-pdfannotator .pdfViewer.scrollWrapped .page {
  margin-left: var(--spreadHorizontalWrapped-margin-LR);
  margin-right: var(--spreadHorizontalWrapped-margin-LR);
}

.path-mod-pdfannotator .pdfViewer.removePageBorders .spread .page,
.path-mod-pdfannotator .pdfViewer.removePageBorders.scrollHorizontal .page,
.path-mod-pdfannotator .pdfViewer.removePageBorders.scrollWrapped .page {
  margin-left: 5px;
  margin-right: 5px;
}

.path-mod-pdfannotator .pdfViewer .page canvas {
    margin: 0;
    display: block;
}

.path-mod-pdfannotator .pdfViewer .page canvas[hidden] {
    display: none;
}


.path-mod-pdfannotator .pdfViewer .page .loadingIcon {
    position: absolute;
    display: block;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    background: url(images/loading-icon.gif) center no-repeat;
}

.path-mod-pdfannotator .pdfViewer .page .loadingIcon.notVisible {
    background: none;
}

.path-mod-pdfannotator .pdfViewer.enablePermissions .textLayer span {
    user-select: none !important;
    cursor: not-allowed;
}

.path-mod-pdfannotator .pdfPresentationMode .pdfViewer {
  padding-bottom: 0;
}

.path-mod-pdfannotator .pdfPresentationMode .spread {
  margin: 0;
}

.path-mod-pdfannotator .pdfPresentationMode .pdfViewer .page {
  margin: 0 auto;
  border: 2px solid transparent;
}

.path-mod-pdfannotator .pdfPresentationMode:-webkit-full-screen .pdfViewer .page {
    margin-bottom: 100%;
    border: 0;
}

.path-mod-pdfannotator .pdfPresentationMode:-moz-full-screen .pdfViewer .page {
    margin-bottom: 100%;
    border: 0;
}

.path-mod-pdfannotator .pdfPresentationMode:-ms-fullscreen .pdfViewer .page {
    margin-bottom: 100% !important;
    border: 0;
}

.path-mod-pdfannotator .pdfPresentationMode:fullscreen .pdfViewer .page {
    margin-bottom: 100%;
    border: 0;
}

body {
    background-color: #eee;
    font-family: sans-serif;
    margin: 0;
}

.path-mod-pdfannotator .pdfViewer .canvasWrapper {
    box-shadow: 0 0 3px #bbb;
    position: absolute;
}
.path-mod-pdfannotator .pdfViewer .page {
    margin-bottom: 10px;
}

.path-mod-pdfannotator .annotationLayer {
    position: absolute;
    z-index: 2;
}

.path-mod-pdfannotator #content-wrapper {
    display: inline-block;
    overflow: auto;
    bottom: 0;
    height: 100%;
}

.path-mod-pdfannotator #comment-wrapper {
    display: inline-block;
    overflow: auto;
    background: #eaeaea;
    border-left: 1px solid #d0d0d0;
    bottom: 0;
    height: 100%;
    margin: 0;
}

.path-mod-pdfannotator #comment-wrapper button .icon {
    color: #999;
    margin-right: 0;
}

@media only screen and (max-width: 991px) {
    .path-mod-pdfannotator #content-wrapper,
    .path-mod-pdfannotator #comment-wrapper {
        height: 50%;
    }
}

.path-mod-pdfannotator #comment-wrapper h4,
.path-mod-pdfannotator #comment-nav {
    margin: 10px;
}

.path-mod-pdfannotator #comment-nav button {
    border: none;
    background-color: transparent;
}

.path-mod-pdfannotator #comment-nav .icon {
    color: #999 !important;
}

.path-mod-pdfannotator #searchForm {
    display: flex;
    margin-top: 10px;
}

.path-mod-pdfannotator #searchPattern {
    padding-right: 25px;
    height: 30px;
}

.path-mod-pdfannotator #searchClear {
    margin-left: -25px;
    padding: 0;
}

.path-mod-pdfannotator #comment-wrapper .pdfannotator-comment-list {
    font-size: 12px;
    position: relative;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    overflow: visible;
}
.path-mod-pdfannotator #comment-wrapper .comment-list-item {
    padding: 10px;
}
.path-mod-pdfannotator #comment-wrapper .comment-list-item.questions {
    overflow: auto;
}
.path-mod-pdfannotator #comment-wrapper .comment-list-container {
    position: relative;
    top: 0;
    left: 0;
    right: 0;
    bottom: 47px;
    overflow: visible;
}
.path-mod-pdfannotator #comment-wrapper .comment-list-form {
    position: relative;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 10px;
}

.path-mod-pdfannotator #comment-wrapper .comment-list-form .tox.tox-tinymce,
.path-mod-pdfannotator .edit-comment-form .tox.tox-tinymce {
    min-height: 350px;
}

.path-mod-pdfannotator #comment-wrapper .comment-list-form .tox.tox-tinymce:has(.tox-toolbar.tox-toolbar--scrolling),
.path-mod-pdfannotator .edit-comment-form .tox.tox-tinymce:has(.tox-toolbar.tox-toolbar--scrolling) {
    min-height: 250px;
}

.path-mod-pdfannotator #comment-wrapper .editor_atto { /* Editor in fullscreen must be over the toolbar and annotations. */
    z-index: 60;
}
.path-mod-pdfannotator #comment-wrapper .editor_atto_content {
    border-width: 0px 1px 1px 1px;
    border-style: solid;
    border-color: #8f959e;
}
.path-mod-pdfannotator div.row {
    margin-left: 0;
}
.path-mod-pdfannotator #comment-wrapper .comment-list-form input {
    padding: 5px;
    width: 100%;
}
.path-mod-pdfannotator .pdfViewer .page {
    border-image: none;
}

.path-mod-pdfannotator .chat-message {
    border-radius: 4px;
    padding: 4px 10px;
    margin: 0 0 10px 0;
    background-color: #fefefe;
}

.path-mod-pdfannotator .chat-message-container {
    flex-grow: 1;
    word-break: break-word;
}

.path-mod-pdfannotator .chat-message.owner:not(.questioncomment) {
    margin: 0 10px 10px 10px;
    border: 3px solid #c7ddf2;
}

.path-mod-pdfannotator .chat-message.mark {
    border: 3px solid red !important;
}

.path-mod-pdfannotator .chat-message.correct {
    border: 3px solid green !important;
}

.path-mod-pdfannotator .chat-message:not(.questioncomment) {
    margin: 0 10px 10px 10px;
}

.path-mod-pdfannotator .chat-message.comment-list-item:not(.questions) {
    display: flex;
    padding-left: 0 !important;
}

.path-mod-pdfannotator .chat-message .wrappervotessolved {
    text-align: center;
}

.path-mod-pdfannotator .chat-message .wrappervotessolved .solved .icon {
    color: green !important;
}

.path-mod-pdfannotator .chat-message .wrappervotessolved .icon {
    margin-right: 0 !important;
}

.path-mod-pdfannotator .chat-message:not(.questions) .wrappervotessolved .icon,
.path-mod-pdfannotator .chat-message:not(.questions) .dropdown .icon {
    color: #999 !important;
}

.path-mod-pdfannotator .chat-message button:disabled .icon {
    color: rgba(0, 0, 0, .15) !important;
}

.path-mod-pdfannotator .chat-message .time,
.path-mod-pdfannotator .chat-message .edited {
    float: right;
    font-size: 11px;
    color: #777;
}
.path-mod-pdfannotator .chat-message .user {
    font-weight: 700;
}

.path-mod-pdfannotator .chat-message .wrappervotessolved button,
.path-mod-pdfannotator #comment-nav button {
    border-color: transparent;
    background-color: transparent;
}

.path-mod-pdfannotator #comment-nav .spacer {
    display: inline-block;
    border-left: 1px solid #c1c1c1;
    height: 34px;
    margin: 0 5px -11px;
}

.path-mod-pdfannotator .chat-message.questioncomment {
    margin: 0 0 10px 0;
    background-color: #c7ddf2;
}

.path-mod-pdfannotator .chat-message.questions:not(.page) {
    background-color: #c7ddf2;
    color: rgb(0, 84, 159);
}

.path-mod-pdfannotator .chat-message.questions.questions-private:not(.page) {
    background-color: #FDEFDF;
    color: #e48312;
}

.path-mod-pdfannotator .chat-message.questioncomment.questions-private:not(.page) {
    background-color: #FDEFDF;
    color: #e48312;
}

.path-mod-pdfannotator .chat-message.questions.page {
    background-color: #dff0d8 !important;
    border-color: #d0e9c6;
    color: #3c763d;
}

.path-mod-pdfannotator .chat-message-text {
    display: inline-block;
    width: 100%;
}

.path-mod-pdfannotator :not(.questioncomment) > .chat-message-text p {
    margin-bottom: 0;
}

.path-mod-pdfannotator .chat-message .dropdown {
    float: right;
}

.path-mod-pdfannotator .chat-message #dropdownMenuButton {
    padding-left: 5px;
}

.path-mod-pdfannotator .questionanswercount {
    padding: 0 2px 0 2px;
    margin: 0;
    border-radius: 8px;
}

.path-mod-pdfannotator .solvedicon {
    padding-right: 3px;
}

.path-mod-pdfannotator .icon-wrapper {
    float: right;
}

.path-mod-pdfannotator #anonymousLabel,
.path-mod-pdfannotator #privateLabel,
.path-mod-pdfannotator #protectedLabel {
    margin-left: 5px;
    margin-bottom: 0;
}

.path-mod-pdfannotator #comment-list-form > div {
    margin: 5px 0;
    display: block;
}

.path-mod-pdfannotator #comment-list-form > div > * {
    vertical-align: middle;
}

.path-mod-pdfannotator .helperLayer {
    width: 100%;
    height: 100%;

}

/*AnkerToolbar*/
.path-mod-pdfannotator .fixtool {
    position: fixed !important;
    overflow-x: auto;
    overflow-y: visible;
    left: unset !important;
    right: unset !important;
}

.path-mod-pdfannotator.fullscreenWrapper #region-main {
    position: fixed;
    top: 0;
    left: 0;
    max-width: 100%;
    width: 100%;
    max-height: 100%;
    overflow-x: auto;
}

.path-mod-pdfannotator.fullscreenWrapper #nav-drawer {
    display: none;
    visibility: hidden;
}

.path-mod-pdfannotator.fullscreenWrapper header {
    display: none;
    visibility: hidden;
}

.path-mod-pdfannotator.fullscreenWrapper nav {
    display: none;
    visibility: hidden;
}

.path-mod-pdfannotator.fullscreenWrapper #block-region-side-pre {
    display: none;
    visibility: hidden;
}

.path-mod-pdfannotator.fullscreenWrapper #page-footer {
    display: none;
    visibility: hidden;
}

.path-mod-pdfannotator.fullscreenWrapper #footnote {
    display: none;
    visibility: hidden;
}

.path-mod-pdfannotator.fullscreenWrapper .drawer-toggler {
    display: none;
    visibility: hidden;
}

.path-mod-pdfannotator.fullscreenWrapper #region-main{
    padding-bottom: 50px;
}

.path-mod-pdfannotator.fullscreenWrapper .m-t-2.m-b-1,
.path-mod-pdfannotator.fullscreenWrapper .m-t-1.m-b-1 {
    display: none;
    visibility: hidden;
}

.path-mod-pdfannotator #myarea,
.path-mod-pdfannotator .chat-message textarea,
.path-mod-pdfannotator #comment-wrapper .editor_atto_content {
    width: 100%;
    min-height: 10em !important;
}

.path-mod-pdfannotator .cursor-area * {
    cursor: crosshair;
}

.path-mod-pdfannotator .cursor-highlight {
    cursor: url(/theme/image.php/academi/pdfannotator/1790824836/text_highlight_picker) 8 8, auto;
}
.path-mod-pdfannotator .cursor-strikeout {
    cursor: url(/theme/image.php/academi/pdfannotator/1790824836/strikethrough) 8 8, auto;
}
.path-mod-pdfannotator .cursor-pen * {
    cursor: url(/theme/image.php/academi/pdfannotator/1790824836/editstring) 0 12, auto !important;
}
.path-mod-pdfannotator .cursor-text * {
    cursor: url(/theme/image.php/academi/pdfannotator/1790824836/text_color_picker) 0 0, auto !important;
}
.path-mod-pdfannotator .cursor-point * {
    cursor: url(/theme/image.php/academi/pdfannotator/1790824836/pinbild) 8 16, auto !important;
}
.path-mod-pdfannotator .cursor-edit * {
    cursor: pointer !important;
}

/******************************************** START: mainly for overview page *******************************************/

/******************************** OPTION 4

/*
* Foundation v2.1.4 http://foundation.zurb.com */
/* Artfully masterminded by ZURB  */

/* --------------------------------------------------
   Table of Contents
-----------------------------------------------------
:: Shared Styles
:: Page Name 1
:: Page Name 2
*/


/* -----------------------------------------
   Shared Styles
----------------------------------------- */

/*table th { font-weight: bold; }
table td, table th { padding: 9px 10px; text-align: left; }

 Mobile
@media only screen and (max-width: 767px) {

        table.flexible { margin-bottom: 0; }

        .pinned {
            position: absolute;
            left: 0;
            top: 0;
            background: #fff;
            width: 35%;
            overflow: hidden;
            overflow-x: scroll;
            border-right: 1px solid #ccc;
            border-left: 1px solid #ccc;
        }
        .pinned table { border-right: none; border-left: none; width: 100%; }
        .pinned table th, .pinned table td { white-space: nowrap; }
        .pinned td:last-child { border-bottom: 0; }

        div.table-wrapper { position: relative; margin-bottom: 20px; overflow: hidden; border-right: 1px solid #ccc; }
        div.table-wrapper div.scrollable { margin-left: 35%; }
        div.table-wrapper div.scrollable { overflow: scroll; overflow-y: hidden; }

        table.flexible td, table.flexible th { position: relative; white-space: nowrap; overflow: hidden; }
        table.flexible th:first-child,
        table.flexible td:first-child,
        table.flexible td:first-child,
        table.flexible.pinned td {
            display: none;
        }

}*/

/******************************** OPTION 3 */

/*@media only screen and (min-width: 421px) and (max-width: 768px) {

}*/

@media only screen and (min-width: 421px) {
    .path-mod-pdfannotator h2,
    .path-mod-pdfannotator .resettable.mdl-right {
        display: inline !important;
    }
}

@media only screen and (min-width: 670px) {
    .path-mod-pdfannotator .resettable.mdl-right {
        float: right;
    }
}

/*@media only screen and (min-width: 1025px) {
    #itemsPerPageWrapper {
            margin-top: 1rem !important;
    }
}*/

/*@media only screen and (min-width: 415px) and (max-width: 1024px) {
}*/

@media only screen and (max-width: 414px) {
    #mod-pdfannotator-questions th:nth-child(2),
    #mod-pdfannotator-questions td:nth-child(2),
    #mod-pdfannotator-questions th:nth-child(3),
    #mod-pdfannotator-questions td:nth-child(3),
    #mod-pdfannotator-questions th:nth-child(4),
    #mod-pdfannotator-questions td:nth-child(4),
    #mod-pdfannotator-questions th:nth-child(5),
    #mod-pdfannotator-questions td:nth-child(5),
    #mod-pdfannotator-questions th:nth-child(6),
    #mod-pdfannotator-questions td:nth-child(6),
    #mod-pdfannotator-answers th:nth-child(2),
    #mod-pdfannotator-answers td:nth-child(2),
    #mod-pdfannotator-answers th:nth-child(3),
    #mod-pdfannotator-answers td:nth-child(3),
    #mod-pdfannotator-answers th:nth-child(5),
    #mod-pdfannotator-answers td:nth-child(5),
    #mod-pdfannotator-answers th:nth-child(6),
    #mod-pdfannotator-answers td:nth-child(6),
    #mod-pdfannotator-ownposts th:nth-child(2),
    #mod-pdfannotator-ownposts td:nth-child(2),
    #mod-pdfannotator-ownposts th:nth-child(3),
    #mod-pdfannotator-ownposts td:nth-child(3),
    #mod-pdfannotator-ownposts th:nth-child(4),
    #mod-pdfannotator-ownposts td:nth-child(4),
    #mod-pdfannotator-reports th:nth-child(2),
    #mod-pdfannotator-reports td:nth-child(2),
    #mod-pdfannotator-reports th:nth-child(3),
    #mod-pdfannotator-reports td:nth-child(3),
    #mod-pdfannotator-reports th:nth-child(4),
    #mod-pdfannotator-reports td:nth-child(4),
    #mod-pdfannotator-reports th:nth-child(5),
    #mod-pdfannotator-reports td:nth-child(5),
    .path-mod-pdfannotator .text {
        display: none;
        visibility: hidden;
    }
    .path-mod-pdfannotator #region-main-box {
        padding-right: 0;
        padding-left: 0;
        /*overflow: visible;*/
    }
    .path-mod-pdfannotator .text_to_html {
        word-break: break-all;
    }
    .path-mod-pdfannotator #itemsperpagewrapper {
        display: block;
    }
}

.path-mod-pdfannotator nav.pagination:nth-of-type(1) {
    display: none;
}

/*Information for older browsers
header, section, footer, aside, nav, main, article, figure {
    display: block;
}

.path-mod-pdfannotator #itemsPerPage {
    padding: 5px;
}*/

.path-mod-pdfannotator .dropdown-toggle.icon-no-margin {
    text-decoration: none;
}

/* Dropdown Button */
.path-mod-pdfannotator .dropbtn {
    background-color: #3498db;
    color: white;
    padding: 16px;
    font-size: 16px;
    border: none;
    cursor: pointer;
}

/* For mobile phones: */  /* Only overview tables. Not table in reportform */
.path-mod-pdfannotator .flexible .header,
.path-mod-pdfannotator .flexible .cell {
    width: 100%;
}

/* Dropdown button on hover & focus */
.path-mod-pdfannotator .dropbtn:hover,
.path-mod-pdfannotator .dropbtn:focus {
    background-color: #2980b9;
}

/* The container <div> - needed to position the dropdown content */
.path-mod-pdfannotator .dropdown {
    position: relative;
    display: inline-block;
}

/* Dropdown Content (Hidden by Default) */
.path-mod-pdfannotator .dropdown-content {
    display: none;
    position: absolute;
    background-color: #f1f1f1;
    min-width: 160px;
    box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.2);
    z-index: 55;
}

/* Links inside the dropdown */
.path-mod-pdfannotator .dropdown-content a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}

/* Change color of dropdown links on hover */
.path-mod-pdfannotator .dropdown-content a:hover {
    background-color: #ddd;
}

.path-mod-pdfannotator .dropdown [type="button"] {
    -webkit-appearance: none;
}

/* Show the dropdown menu (use JS to add this class to the .dropdown-content container when the user clicks on the dropdown button)
*/
.path-mod-pdfannotator .show {
    display: block;
}

.path-mod-pdfannotator a.morelink {
    text-decoration: none !important;
    outline: none;
}

.path-mod-pdfannotator .morecontent > span {
    display: none;
}

.path-mod-pdfannotator .annotator {
    text-decoration: none !important;
}

/******************************************** END: mainly for overview.mustache *******************************************/


.path-mod-pdfannotator :disabled img {
    opacity: 0.4;
}

.path-mod-pdfannotator #currentPage {
    width: 50px;
    text-align: right;
}

.path-mod-pdfannotator .pdfannotatornavbar.nav.nav-tabs.m-b-1 {
    border-bottom: 0 !important;
    margin-bottom: 0 !important;
}

.path-mod-pdfannotator #loader {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 99;
    margin: -75px 0 0 -75px;
    border: 16px solid #f3f3f3;
    border-radius: 50%;
    border-top: 16px solid #3498db;
    width: 120px;
    height: 120px;
    -webkit-animation: spin 2s linear infinite;
    animation: spin 2s linear infinite;
}

@-webkit-keyframes spin {
    0% {
        -webkit-transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(360deg);
    }
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

/* Add animation to "page content" */
.path-mod-pdfannotator .animate-bottom {
    position: relative;
    -webkit-animation-name: animatebottom;
    -webkit-animation-duration: 1s;
    animation-name: animatebottom;
    animation-duration: 1s;
}

@-webkit-keyframes animatebottom {
    from {
        bottom: -100px;
        opacity: 0;
    }
    to {
        bottom: 0;
        opacity: 1;
    }
}

@keyframes animatebottom {
    from {
        bottom: -100px;
        opacity: 0;
    }
    to {
        bottom: 0;
        opacity: 1;
    }
}

.path-mod-pdfannotator .pdfannotator-statistic #chart-container {
    min-height: 500px;
}

.toolbaritem .pdfannotator_text {
    display: inline-block;
    visibility: visible;
}

.path-mod-pdfannotator [contenteditable] {
    -webkit-user-select: text;
    user-select: text;
}

.path-mod-pdfannotator #id_pdfannotator_content {
    display: none !important;
}

.path-mod-pdfannotator .comment-visibility-button[data-active="true"]{
    border-bottom: 2px solid #0f6cbf !important;
}

.path-mod-pdfannotator .comment-all[data-active="true"] {
    border-bottom: 2px solid rgb(153,153,153) !important;
}

.path-mod-pdfannotator .comment-private[data-active="true"] {
    border-bottom: 2px solid #e48312 !important;
}

.path-mod-pdfannotator .question-private-icon {
    position: absolute;
    top: 12px;
    right: 16px;
    width: 16px;
    height: 16px;
}

.path-mod-pdfannotator .question-public-icon {
    position: absolute;
    top: 12px;
    right: 16px;
    width: 16px;
    height: 16px;
}

.path-mod-pdfannotator .printannotations-dropdown-container {
    position: relative;
    display: inline-block;
}

.path-mod-pdfannotator .pdfannotator_print_dropdown {
    position: relative;
    display: inline-block;
}

.path-mod-pdfannotator .printAnnotationsOptionsContent {
    position: absolute;
    top: 100%;
    left: 0;
    background-color: #eaeaea;
    border: 1px solid #ccc;
    min-width: 120px;
    box-shadow: 0px 8px 16px rgba(0,0,0,0.2);
    z-index: 1000;
    display: flex;
    flex-direction: column;
}

.path-mod-pdfannotator .toolbar button.pdfannotator_print {
    background: none;
    border: none;
    text-align: left;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.path-mod-pdfannotator .pdfannotator_print#pdfannotator_printannotations_button,
.path-mod-pdfannotator .pdfannotator_print#pdfannotator_printannotations_buttonCSV {
    padding: 8px;
}

.path-mod-pdfannotator .pdfannotator_print#pdfannotator_printannotations_button:hover,
.path-mod-pdfannotator .pdfannotator_print#pdfannotator_printannotations_buttonCSV:hover {
  background-color: lightgray;
}

.path-mod-pdfannotator .pdfannotator_print#pdfannotator_printannotations_button img,
.path-mod-pdfannotator .pdfannotator_print#pdfannotator_printannotations_buttonCSV img {
    margin-right: 8px;
    margin-bottom: 2px;
    vertical-align: middle;
    width: 20px;
    height: auto;
}

.path-mod-pdfannotator .printAnnotationsOptionsContent.hidden {
    display: none;
}
/** Question editing **/

#page-mod-questionnaire-questions .qcontainer .fitemtitle,
#page-mod-questionnaire-questions #id_questionhdr .fitemtitle {
    display: none;
}

#page-mod-questionnaire-questions .qcontainer .qnums {
    font-weight: bold;
    float: left;
    color: gray;
}

#page-mod-questionnaire-questions .qcontainer .fstatic {
    width: 97%;
    margin-right: 1em;
    margin-left: 5px;
    /* Set a negative margin-bottom to save some vertical space! */
    margin-bottom: -10px;
}

#page-mod-questionnaire-questions .mform .fitem fieldset.felement {
    margin-left: 0;
    padding-left: 1%;
    margin-bottom: 0;
}

#page-mod-questionnaire-preview fieldset,
#page-mod-questionnaire-complete fieldset {
    margin-bottom: 0;
}

#page-mod-questionnaire-questions .mform .fitem .fitemtitle {
    text-align: left;
    margin-left: 10px;
    margin-bottom: 0;
}

#page-mod-questionnaire-questions .moving {
    border: medium dotted maroon;
}

div.qoptcontainer div.ftextarea {
    clear: both;
    float: none;
    width: 600px;
    margin: 0 auto 10px;
}

div.qoptcontainer div.ftextarea textarea.qopts {
    width: 600px;
    height: 10em;
    margin-left: 1px;
}

.response span.selected,
.generalboxcontent span.selected {
    font-weight: bold;
}

td.selected {
    background-color: #e4f1fa;
    border: 1px solid gray;
}

#page-mod-questionnaire-myreport div.respdate {
    font-size: 0.8em;
    font-weight: bold;
    margin-bottom: 6px;
    padding-top: 6px;
    border-bottom: 1px dashed gray;
}

#page-mod-questionnaire-complete .message,
#page-mod-questionnaire-complete .notifyproblem,
#page-mod-questionnaire-preview .message,
#page-mod-questionnaire-preview .notifyproblem,
#page-mod-questionnaire-complete .thankbody,
#page-mod-questionnaire-complete .thankhead {
    background-color: #fff;
    border-style: solid;
    border-width: 2px;
    margin-bottom: 10px;
    padding: 5px;
}

#page-mod-questionnaire-complete .notifyproblem,
#page-mod-questionnaire-preview .notifyproblem {
    border-color: red;
}

#page-mod-questionnaire-fbsections .notifyproblem {
    text-align: left;
    padding: 0;
}

#page-mod-questionnaire-complete .message,
#page-mod-questionnaire-preview .message,
#page-mod-questionnaire-complete .thankbody,
#page-mod-questionnaire-complete .thankhead {
    border-color: blue;
}

.surveyPage {
    background-color: #eee;
    border-bottom-color: #000;
    border-bottom-style: solid;
    border-bottom-width: 1px;
    clear: right;
    padding: 3px;
    margin-bottom: 5px;
    margin-top: 0;
}

/* alternate columns formatting */

#page-mod-questionnaire-complete .c0,
#page-mod-questionnaire-preview .c0,
#page-mod-questionnaire-print .c0,
#page-mod-questionnaire-report .individual .c0,
#page-mod-questionnaire-myreport .individual .c0 {
    background-color: #fafafa;
    border: 1px solid silver;
    padding-left: 5px;
    padding-right: 5px;
}

#page-mod-questionnaire-complete .raterow:hover,
#page-mod-questionnaire-preview .raterow:hover {
    background-color: #e4f1fa;
}

#page-mod-questionnaire-complete td.raterow:hover,
#page-mod-questionnaire-preview td.raterow:hover {
    border: 1px solid navy;
}

#page-mod-questionnaire-complete td.notanswered,
#page-mod-questionnaire-preview td.notanswered {
    /* border: none; */
    background-color: #fafafa;
}

#page-mod-questionnaire-complete td.notcompleted,
#page-mod-questionnaire-preview td.notcompleted {
    border: 2px solid red;
    background-color: #fafafa;
}

#page-mod-questionnaire-complete .c1,
#page-mod-questionnaire-preview .c1,
#page-mod-questionnaire-print .c1,
#page-mod-questionnaire-report .individual .c1,
#page-mod-questionnaire-myreport .individual .c1 {
    background-color: #eee;
    border: 1px solid silver;
    padding-left: 5px;
    padding-right: 5px;
}

#page-mod-questionnaire-myreport .individualresp,
#page-mod-questionnaire-preview .individualresp,
#page-mod-questionnaire-print .individualresp {
    border: #c0c0c0 1px solid;
    padding-left: 5px;
    padding-right: 5px;
    padding-top: 5px;
    padding-bottom: 0;
    margin-bottom: 10px;
    margin-top: 10px;
}

#page-mod-questionnaire-complete .notice .buttons div,
#page-mod-questionnaire-complete .notice .buttons form {
    display: inline;
}

#page-mod-questionnaire-complete .notice .buttons input {
    margin-bottom: 10px;
}

.floatprinticon {
    margin-top: -30px;
    float: right;
}

#page-mod-questionnaire-complete .mod_questionnaire_controlbuttons {
    text-align: center;
    width: 100%;
    position: relative;
}

#page-mod-questionnaire-complete .mod_questionnaire_controlbuttons .control-button-prev {
    float: left;
}

#page-mod-questionnaire-complete .mod_questionnaire_controlbuttons .control-button-save {
    margin-left: 20%;
}

#page-mod-questionnaire-complete .mod_questionnaire_controlbuttons .control-button-prev + .control-button-save {
    margin-left: 0;
}

#page-mod-questionnaire-complete .mod_questionnaire_controlbuttons .control-button-next,
#page-mod-questionnaire-complete .mod_questionnaire_controlbuttons .control-button-submit {
    float: right;
}

#page-mod-questionnaire-complete .mod_questionnaire_controlbuttons input {
    margin-right: 0;
}

#page-mod-questionnaire-complete .mod_questionnaire_completepage .generalbox .notice {
    padding: 0.5em 0 0.5em 0;
}

/* progress bar styling */

#page-mod-questionnaire-complete .questionnaire-progressbar {
    height: 14px;
    margin-top: 5px;
    border: 1px solid #dedede;
    border-radius: 5px;
    width: auto;
    overflow: hidden;
}

#page-mod-questionnaire-complete .questionnaire-progressbar-progress {
    background-color: #1177d1;
    height: 100%;
    border-bottom-left-radius: 5px;
    border-top-left-radius: 5px;
}

#page-mod-questionnaire-complete .questionnaire-progressbar-info {
    float: right;
}

#page-mod-questionnaire-complete #questionnaire-progressbar-percent {
    margin-left: 5px;
    margin-right: 5px;
    min-width: 25px;
    text-align: center;
}

#page-mod-questionnaire-complete .questionnaire-progressbar-wrapper {
    margin-top: 15px;
    margin-bottom: 15px;
    margin-left: 10px;
    height: auto;
    overflow: hidden;
}

#page-mod-questionnaire-complete .mod_questionnaire_completepage.generalbox .homelink ~ .homelink {
    padding-top: 10px;
}

.qn-legend {
    float: left;
    font-size: inherit;
    width: auto;
}

/* format paragraph top and bottom margins for better vertical positioning in questions text */
.qn-question p {
    margin-bottom: 0.6em;
    margin-top: 0.5em;
}

.qn-question {
    padding-left: 5px;
    padding-right: 5px;
    padding-bottom: 0.1em;
    padding-top: 0.1em;
    /* make background same color as quiz question text */
    background-color: #e4f1fa;
}

#page-mod-questionnaire-questions .qn-question {
    margin-left: 40px;
}

.unselected {
    color: gray;
}

/*respondents list feature*/

.respondentscolumn {
    float: left;
    margin-left: 20px;
}
.respondentsnavbar {
    text-align: center;
    padding-bottom: 5px;
    padding-top: 5px;
    margin-bottom: 5px;
    background-color: #f2f2f2;
}

/* new quiz-like formatting for 2.5 */

#page-mod-questionnaire-questions .qn-container {
    border: 1px dotted gray;
    margin-bottom: 1em;
}

.dir-rtl .qn-container {
    text-align: right;
}
.qn-info {
    float: left;
    width: auto;
    padding: 7px;
    background: #eee;
    font-weight: bold;
}

.qn-info h2.qn-number {
    margin: 0;
    font-size: 1.5em;
    line-height: 1.2em;
}

.qn-question,
.qn-answer {
    margin: 0 0 0.5em;
    overflow: auto;
}

.qn-answer input[type=radio] {
    margin-left: 0.5em;
}

.qn-answer > label + input[type=radio] {
    margin-left: 0;
}

.qn-answer > textarea,
.qn-content .editor_atto_wrap .editor_atto_content {
    resize: vertical;
}

.qn-answer textarea,
.qn-answer input[type="text"] {
    box-sizing: border-box;
    height: auto;
}

#notice .qn-question {
    margin: 0;
}

.req {
    font-size: x-small;
}

.qdepend {
    color: red;
    padding-left: 5px;
    margin-bottom: 5px;
}

.qdepend-or {
    color: orange;
    padding-left: 5px;
    margin-bottom: 5px;
}
.qn-content {
    margin-bottom: 10px;
    margin-left: 55px;
}

/* move horizontal radio buttons closer to their labels */
.qn-answer input[type="radio"],
.qn-answer input[type="checkbox"] {
    margin-right: 3px;
}

#page-mod-questionnaire-show_nonrespondents input[type="radio"] {
    margin-right: 1px;
}

.qn-answer label,
#page-mod-questionnaire-show_nonrespondents label {
    margin-right: 0.6em;
}

.hidedependquestion {
    color: red;
    display: none;
}

#page-mod-questionnaire-fbsections .c0,
#page-mod-questionnaire-fbsections .c1 {
    border: 1px solid silver;
    padding-left: 4px;
    padding-right: 4px;
}

#page-mod-questionnaire-fbsections .c0 {
    background-color: #fafafa;
}

#page-mod-questionnaire-fbsections .c1 {
    background-color: #eee;
}

#page-mod-questionnaire-fbsections input[type="radio"] {
    margin-right: 0;
}

#page-mod-questionnaire-fbsections .qn-legend {
    padding-left: 8px;
}

#page-mod-questionnaire-fbsections .qcontainer.qcontent {
    margin-bottom: -5em;
}
#page-mod-questionnaire-report div.chart {
    overflow: auto;
    margin-left: -40px;
}

#page-mod-questionnaire-report .generaltable.questionnairereport td {
    border: 1px solid silver;
}

.qn-container .smalltext {
    font-size: 0.75em;
}

#page-mod-questionnaire-questions #region-main .mform .fitem .felement {
    margin-bottom: 0;
}

.qn-indent {
    margin-left: 20px;
}

.mod_questionnaire_flex-container {
    display: inline-flex;
}

#page-mod-questionnaire-view .mod_questionnaire_viewpage div.complete,
#page-mod-questionnaire-view .mod_questionnaire_viewpage div.yourresponse,
#page-mod-questionnaire-view .mod_questionnaire_viewpage div.allresponses {
    flex-grow: 1;
    margin-right: 10px;
}

#page-mod-questionnaire-questions #fitem_id_allchoices #id_allchoices,
#page-mod-questionnaire-questions #fitem_id_allnameddegrees #id_allnameddegrees {
    resize: both;
}

.path-mod-questionnaire .slidecontainer {
    width: 100%;
}

.path-mod-questionnaire .slider {
    -webkit-appearance: none;
    width: 100%;
    outline: none;
    opacity: 0.7;
    -webkit-transition: .2s;
    transition: opacity .2s;
    float: left;
    margin-top: 40px;
}
.path-mod-questionnaire .slider input {
    width: 100%;
}

.path-mod-questionnaire .slider:hover {
    opacity: 1;
}

.path-mod-questionnaire .slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 25px;
    background: #04aa6d;
    cursor: pointer;
    border-radius: 50%;
}

.path-mod-questionnaire .slider::-moz-range-thumb {
    width: 25px;
    height: 25px;
    background: #04aa6d;
    cursor: pointer;
}

.path-mod-questionnaire .question-slider {
    display: flex;
    align-items: baseline;
}

.path-mod-questionnaire .left-side-label {
    text-align: right;
    padding-right: 20px;
    margin-top: 40px;
    flex-grow: 1;
}

.path-mod-questionnaire .right-side-label {
    text-align: left;
    padding-left: 20px;
    margin-top: 40px;
    flex-grow: 1;
}

.path-mod-questionnaire .middle-side-content {
    flex-grow: 8;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.path-mod-questionnaire .middle-side-label {
    text-align: center;
}

.path-mod-questionnaire .bubble {
    background: #000;
    color: white;
    padding: 3px;
    border-radius: 10px;
    left: 50%;
    transform: translate(-52%, -50px);
    position: relative;
    text-align: center;
    width: 40px;
}
.path-mod-questionnaire .bubble::after {
    content: "";
    position: absolute;
    width: 2px;
    height: 2px;
    left: 50%;
}

/** Bits that can appear on any page. */
.path-mod-quiz .statedetails {
    display: block;
    font-size: 0.7em;
}

/** Attempt and review pages **/
#page-mod-quiz-attempt #page .controls,
#page-mod-quiz-summary #page .controls,
#page-mod-quiz-review #page .controls {
    text-align: center;
    margin: 8px auto;
}

#page-mod-quiz-attempt .submitbtns,
#page-mod-quiz-review .submitbtns {
    display: flex;
}

#page-mod-quiz-attempt .submitbtns .mod_quiz-next-nav,
#page-mod-quiz-review .submitbtns .mod_quiz-next-nav {
    margin-left: auto;
}

.path-mod-quiz .mod_quiz-redo_question_button {
    margin: 0;
}

.path-mod-quiz input[type="submit"].mod_quiz-redo_question_button {
    padding: 2px 0.8em;
    font-size: 1em;
}

#page-mod-quiz-attempt .mod_quiz-blocked_question_warning .que .formulation,
#page-mod-quiz-review .mod_quiz-blocked_question_warning .que .formulation {
    background: #eee;
    border: 1px solid #dcdcdc;
}

#page-mod-quiz-attempt #connection-ok,
#page-mod-quiz-attempt #connection-error {
    position: fixed;
    top: 0;
    width: 80%;
    left: 10%;
    color: #555;
    border-radius: 0 0 10px 10px;
    box-shadow: 5px 5px 20px 0 #666;
    padding: 1em 1em 0;
    z-index: 10000;
}

#page-mod-quiz-attempt #connection-error {
    background-color: #fcc;
}

#page-mod-quiz-attempt #connection-ok {
    background-color: #cfb;
    width: 60%;
    left: 20%;
}

/** Mod quiz attempt **/
.generalbox#passwordbox {
    /* Should probably match .generalbox#intro above */
    width: 70%;
    margin-left: auto;
    margin-right: auto;
}

#passwordform {
    margin: 1em 0;
}

/* Question navigation block. */
#quiznojswarning {
    color: red;
}

#quiznojswarning {
    font-size: 0.7em;
    line-height: 1.1;
}

.jsenabled #quiznojswarning {
    display: none;
}

.path-mod-quiz #user-picture {
    margin: 0.5em 0;
}

.path-mod-quiz #user-picture img {
    width: auto;
    height: auto;
    vertical-align: bottom;
}

.path-mod-quiz #mod_quiz_navblock h3.mod_quiz-section-heading {
    padding: 0.7em 0 0;
    margin: 0;
    clear: both;
}

.path-mod-quiz #mod_quiz_navblock h3.mod_quiz-section-heading:first-child {
    padding-top: 0;
}

.path-mod-quiz .qnbutton {
    display: block;
    position: relative;
    float: left;
    width: 1.5em;
    height: 1.5em;
    overflow: hidden;
    margin: 0.3em 0.3em 0.3em 0;
    padding: 0;
    border: 1px solid #bbb;
    background: #ddd;
    text-align: center;
    line-height: 1.5em;
    font-weight: bold;
    text-decoration: none;
}

.path-mod-quiz .qnbutton:visited:hover,
.path-mod-quiz .qnbutton:link:hover {
    text-decoration: underline;
}

.path-mod-quiz .qnbutton .trafficlight,
.path-mod-quiz .qnbutton .thispageholder {
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

.path-mod-quiz .qnbutton.thispage {
    border-color: #666;
}

.path-mod-quiz .qnbutton.thispage .thispageholder {
    border: 1px solid #666;
}

.path-mod-quiz .qnbutton.flagged .trafficlight {
    background: url(/theme/image.php/academi/quiz/1790824836/navflagged) no-repeat top right;
}

.qnbutton.flagged .thispageholder {
    background: transparent url(/theme/image.php/academi/quiz/1790824836/flag-on) 15px 0 no-repeat;
}

.qnbutton.invalidanswer .trafficlight {
    background-image: url(/theme/image.php/academi/quiz/1790824836/warningtriangle) !important; /* stylelint-disable-line declaration-no-important */
}

.path-mod-quiz .qnbutton.blocked,
.path-mod-quiz .qnbutton.notyetanswered,
.path-mod-quiz .qnbutton.requiresgrading,
.path-mod-quiz .qnbutton.invalidanswer {
    background-color: white;
}

.path-mod-quiz .qnbutton.correct {
    background-color: #cfc;
}

.path-mod-quiz .qnbutton.correct .trafficlight {
    border-bottom: 3px solid #080;
}

.path-mod-quiz .qnbutton.partiallycorrect {
    background-color: #ffa;
}

.path-mod-quiz .qnbutton.notanswered,
.path-mod-quiz .qnbutton.incorrect {
    background-color: #fcc;
}

.path-mod-quiz .qnbutton.blocked {
    color: #999;
}

.path-mod-quiz .qnbutton.notanswered .trafficlight,
.path-mod-quiz .qnbutton.incorrect .trafficlight {
    border-top: 3px solid #800;
}

.path-mod-quiz .othernav {
    clear: both;
    margin: 0.5em 0;
}

.path-mod-quiz .autosave_info {
    font-size: small;
}

.path-mod-quiz .othernav a,
.path-mod-quiz .othernav input {
    display: block;
    margin: 0.5em 0;
}

#mod_quiz_navblock.nav-disabled > * {
    opacity: .65;
    pointer-events: none;
    cursor: not-allowed;
}

/** mod quiz mod **/
#page-mod-quiz-mod #id_reviewoptionshdr .fitem {
    width: 23%;
    margin-left: 10px;
}

#page-mod-quiz-mod #id_reviewoptionshdr fieldset.fgroup {
    width: 100%;
    text-align: left;
    margin-left: 0;
}

#page-mod-quiz-mod #id_reviewoptionshdr .fitem {
    float: left;
    width: 23%;
    clear: none;
}

#page-mod-quiz-mod #id_reviewoptionshdr .fitemtitle {
    width: 100%;
    font-weight: bold;
    text-align: left;
    height: 2.5em;
    margin-left: 0;
}

#page-mod-quiz-mod #id_reviewoptionshdr fieldset.fgroup {
    clear: left;
    margin: 0 0 1em;
}

#page-mod-quiz-mod #id_reviewoptionshdr fieldset.fgroup > span {
    float: left;
    clear: left;
    line-height: 1.7;
}

#page-mod-quiz-mod #id_reviewoptionshdr fieldset.fgroup span label {
    margin-left: 0.4em;
}

/** Mod quiz view **/
#page-mod-quiz-view .quizinfo,
#page-mod-quiz-view #page .quizgradefeedback {
    text-align: center;
}

#page-mod-quiz-view .generalbox#feedback .overriddennotice {
    text-align: center;
    font-size: 0.7em;
}

.quizstartbuttondiv.quizsecuremoderequired input,
.quizstartbuttondiv.quizsecuremoderequired button {
    display: none;
}

.jsenabled .quizstartbuttondiv.quizsecuremoderequired input,
.jsenabled .quizstartbuttondiv.quizsecuremoderequired button {
    display: inline;
}

.quizattempt #mod_quiz_preflight_form {
    display: none;
}

#mod_quiz_preflight_form .femptylabel .fitemtitle {
    display: none;
}

.moodle-dialogue-base .moodle-dialogue.mod_quiz_preflight_popup {
    width: 600px;
}
.moodle-dialogue-base .moodle-dialogue.mod_quiz_preflight_popup .moodle-dialogue-wrap {
    overflow: hidden;
}

.moodle-dialogue-base .moodle-dialogue.mod_quiz_preflight_popup .moodle-dialogue-bd {
    padding: 1rem;
}

/* Standard Moodle rule that needs to be more specific here. */
.moodle-dialogue-bd #mod_quiz_preflight_form fieldset.hidden {
    display: inherit;
    visibility: inherit;
}

body.path-mod-quiz .gradedattempt,
body.path-mod-quiz table tbody tr.gradedattempt > td,
body.path-mod-quiz table tbody tr.gradedattempt > td.sticky-column {
    border-color: #bce8f1;
    background-color: #d9edf7;
}

/** Mod quiz summary **/
#page-mod-quiz-summary #content {
    text-align: center;
}

#page-mod-quiz-summary #quiz-timer {
    text-align: center;
    margin-top: 1em;
}

#page-mod-quiz-summary .submitbtns {
    margin-top: 1.5em;
}

@media print {
    .quiz-secure-window * {
        display: none;
    }
}

/** Mod quiz review **/
table.quizreviewsummary {
    width: 100%;
}

table.quizreviewsummary th.cell {
    padding: 1px 0.5em 1px 1em;
    font-weight: bold;
    text-align: right;
    width: 10em;
    background: #f0f0f0;
}

table.quizreviewsummary td.cell {
    padding: 1px 1em 1px 0.5em;
    text-align: left;
    background: #fafafa;
}

/** Mod quiz make comment or override grade popup. **/
#page-mod-quiz-comment .mform {
    width: 100%;
}

#page-mod-quiz-comment .mform fieldset {
    margin: 0;
    border-bottom: none;
}

#page-mod-quiz-comment .que {
    margin: 0;
}

/** Mod quiz report **/
#page-mod-quiz-report h2.main {
    clear: both;
}

#page-mod-quiz-report .controls {
    text-align: center;
}

#page-mod-quiz-report .dubious {
    background-color: #fcc;
}

#page-mod-quiz-report .highlight {
    border: 1px solid #bce8f1;
    background-color: #d9edf7;
}

#page-mod-quiz-report .negcovar {
    border: medium solid pink;
}

#page-mod-quiz-report .gradetheselink {
    font-size: 0.8em;
}

#page-mod-quiz-report .mform fieldset.fgroup span label {
    margin-right: 14px;
}

#page-mod-quiz-report table th {
    white-space: normal;
}

#page-mod-quiz-report table#attempts td,
#page-mod-quiz-report table.quizresponseanalysis td {
    word-wrap: break-word;
    max-width: 20em;
}

#page-mod-quiz-report table.titlesleft td.c0 {
    font-weight: bold;
}

#page-mod-quiz-report table .numcol {
    text-align: center;
    vertical-align: middle;
}

#page-mod-quiz-report table#attempts {
    clear: both;
    margin: 0.2em auto;
}

#page-mod-quiz-report table#attempts .header,
#page-mod-quiz-report table#attempts .cell {
    padding: 4px;
}

#page-mod-quiz-report table#attempts .header .commands {
    display: inline;
}

#page-mod-quiz-report table#attempts .picture {
    width: 40px;
}

#page-mod-quiz-report table#attempts td {
    border-left-width: 1px;
    border-right-width: 1px;
    border-left-style: solid;
    border-right-style: solid;
    vertical-align: middle;
}

#page-mod-quiz-report table#attempts .header {
    text-align: left;
}

#page-mod-quiz-report table#attempts .picture {
    text-align: center;
}

#page-mod-quiz-report table#attempts.grades span.que,
#page-mod-quiz-report table#attempts span.avgcell {
    white-space: nowrap;
}

#page-mod-quiz-report table#attempts span.que .requiresgrading {
    white-space: normal;
}

#page-mod-quiz-report table#attempts .questionflag {
    vertical-align: text-bottom;
    padding-left: 6px;
}

#page-mod-quiz-report .graph.flexible-wrap {
    text-align: center;
    overflow: auto;
}

#page-mod-quiz-report #cachingnotice {
    margin-bottom: 1em;
    padding: 0.2em;
}

#page-mod-quiz-report #cachingnotice .singlebutton {
    margin: 0.5em 0 0;
}

#page-mod-quiz-report .bold .reviewlink {
    font-weight: normal;
}

#page-mod-quiz-report tr.lastrowforattempt {
    border-bottom: lightgrey solid 0.2em;
}

#page-mod-quiz-report tr.quiz_statistics-summaryrow td.cell {
    padding-top: 1px;
    padding-bottom: 1px;
    border-top: none;
}

/** Mod quiz edit **/
#page-mod-quiz-edit .statusdisplay {
    background-color: #ffc;
    clear: both;
    margin: 0.3em 0;
    padding: 1px 10px;
}

#page-mod-quiz-edit .statusdisplay p {
    margin: 4px 0;
}

#page-mod-quiz-edit .mod_quiz-edit-top-controls {
    position: relative;
}
#page-mod-quiz-edit .mod_quiz-edit-action-buttons {
    display: block;
    min-height: 2.85em;
}

#page-mod-quiz-edit .maxgrade label {
    display: inline;
}
#page-mod-quiz-edit .maxgrade input[type="submit"] {
    margin: 0;
}

#page-mod-quiz-edit li.activity > div,
#page-mod-quiz-edit li.pagenumber {
    position: relative;
}

#page-mod-quiz-edit ul.section li.pagenumber:first-child .add-menu-outer .menu > :last-child,
#page-mod-quiz-edit .last-add-menu .add-menu-outer .menu > :last-child {
    display: none;
}

#page-mod-quiz-edit .last-add-menu {
    position: relative;
    height: 1.5em;
    margin: 0 20px;
}

#page-mod-quiz-edit .add-menu-outer {
    position: absolute;
    right: 0;
}

#page-mod-quiz-edit .slotnumber {
    text-align: center;
    margin: 0.1em 0.5em;
    display: inline-block;
}
#page-mod-quiz-edit li.section .slotnumber.shuffled {
    display: none;
}
#page-mod-quiz-edit li.section.shuffled .slotnumber.unshuffled {
    display: none;
}
#page-mod-quiz-edit li.section.shuffled .slotnumber.shuffled {
    display: inline-block;
}

#page-mod-quiz-edit .slotnumber .inplaceeditable {
    white-space: nowrap;
}

#page-mod-quiz-edit .section-heading {
    margin-left: 20px;
    margin-bottom: 0;
    height: 40px;
}

#page-mod-quiz-edit .section-heading .instancesectioncontainer {
    display: inline;
}

#page-mod-quiz-edit .section-heading .instancesectioncontainer h3 {
    display: inline;
    color: #555;
}

#page-mod-quiz-edit .section-heading .editing_section,
#page-mod-quiz-edit .section-heading .editing_delete {
    margin-left: 10px;
}

#page-mod-quiz-edit .section-heading .sectioninstance {
    position: relative;
}

#page-mod-quiz-edit .section-heading .instancesection {
    white-space: nowrap;
    max-width: 72%;
    display: inline-block;
    text-overflow: ellipsis;
    overflow: hidden;
    vertical-align: bottom;
}

#page-mod-quiz-edit .section-heading form {
    display: inline;
    position: relative;
    top: 3px;
    left: -7px;
}

#page-mod-quiz-edit .section-heading form input {
    font-size: 24px;
    font-weight: bold;
    width: 50%;
}

#page-mod-quiz-edit .section-heading .instanceshufflequestions {
    float: right;
    margin: 0.3em 20px 0 0;
}

.instanceshufflequestions [type="checkbox"] {
    vertical-align: middle;
    margin-right: .5rem;
}

#page-mod-quiz-edit ul.section {
    margin: 0;
    padding: 0 20px;
}

#page-mod-quiz-edit ul.slots {
    margin: 0;
    padding: 0;
}

#page-mod-quiz-edit ul.slots li.section {
    border: 0;
}

#page-mod-quiz-edit ul.slots li.section .content {
    background-color: #fafafa;
    padding: 1px 0;
}

#page-mod-quiz-edit ul.slots li.section {
    list-style: none;
    margin: 0;
    padding: 0;
}

#page-mod-quiz-edit ul.slots li.section li.activity {
    background: #e6e6e6;
    margin: 3px 0;
    padding: 0.2em;
    position: relative;
}

#page-mod-quiz-edit ul.slots li.section li.activity.qtype_missingtype {
    background-color: #f0c5c1;
}

#page-mod-quiz-edit ul.slots li.section li.activity.qtype_missingtype .actions {
    background-color: inherit;
}

#page-mod-quiz-edit ul.slots li.section li.activity.page {
    background: transparent;
}

#page-mod-quiz-edit ul.slots li.section li.activity.page h4 {
    display: inline;
    font-weight: normal;
    font-size: 1em;
}

#page-mod-quiz-edit ul.slots li.section li.activity .instancemaxmarkcontainer {
    background: white;
    padding: 0.5em 0 0.5em 0.1em;
    margin: 2px;
}

#page-mod-quiz-edit ul.slots li.section li.activity .instancemaxmarkcontainer .editicon {
    width: 13px;
}

#page-mod-quiz-edit ul.slots li.section li.activity .instancemaxmarkcontainer.infoitem {
    background: transparent;
}

#page-mod-quiz-edit ul.slots li.section li.activity .instancemaxmarkcontainer form {
    display: inline;
}

#page-mod-quiz-edit ul.slots li.section li.activity .instancemaxmark {
    display: inline-block;
    text-align: right;
}

#page-mod-quiz-edit ul.slots li.section li.activity .page_split_join_wrapper {
    position: absolute;
    left: -20px;
    bottom: -11px;
}

#page-mod-quiz-edit ul.slots li.section li.activity .instancemaxmark.decimalplaces_0 {
    min-width: 1.3em;
}

#page-mod-quiz-edit ul.slots li.section li.activity .instancemaxmark.decimalplaces_1 {
    min-width: 2em;
}

#page-mod-quiz-edit ul.slots li.section li.activity .instancemaxmark.decimalplaces_2 {
    min-width: 2.6em;
}

#page-mod-quiz-edit ul.slots li.section li.activity .instancemaxmark.decimalplaces_3 {
    min-width: 3.2em;
}

#page-mod-quiz-edit ul.slots li.section li.activity .instancemaxmark.decimalplaces_4 {
    min-width: 3.7em;
}

#page-mod-quiz-edit ul.slots li.section li.activity .instancemaxmark.decimalplaces_5 {
    min-width: 4.3em;
}

#page-mod-quiz-edit ul.slots li.section li.activity .instancemaxmark.decimalplaces_6 {
    min-width: 4.8em;
}

#page-mod-quiz-edit ul.slots li.section li.activity .instancemaxmark.decimalplaces_7 {
    min-width: 5.45em;
}

#page-mod-quiz-edit ul.slots li.section li.activity .edit_icon,
#page-mod-quiz-edit ul.slots li.section li.activity a.preview,
#page-mod-quiz-edit ul.slots li.section li.activity .editing_delete,
#page-mod-quiz-edit ul.slots li.section li.activity .editing_maxmark {
    margin: 0 2px;
}

#page-mod-quiz-edit ul.slots li.section.only-has-one-slot li.activity .editing_move,
#page-mod-quiz-edit ul.slots li.section.only-has-one-slot li.activity .editing_delete {
    visibility: hidden;
}

#page-mod-quiz-edit ul.slots.only-one-section li.section.only-has-one-slot li.activity .editing_delete {
    visibility: visible;
}

#page-mod-quiz-edit ul.slots li.section li.activity .question_dependency_wrapper {
    position: absolute;
    top: -1em;
    right: -20px;
}

#page-mod-quiz-edit ul.slots li.section li.activity .question_dependency_wrapper.question_dependency_cannot_depend {
    display: none;
}

#page-mod-quiz-edit ul.slots li.section li.activity .activityinstance {
    display: flex;
    flex-wrap: wrap;
    flex: 1 1 auto;
    min-height: 1.7em;
    padding-right: 2px;
}

#page-mod-quiz-edit ul.slots li.section li.activity .mod-indent-outer {
    display: flex;
    padding-left: 22px;
}

#page-mod-quiz-edit ul.slots .activityinstance form {
    display: inline;
}

#page-mod-quiz-edit span.editinstructions {
    right: 0;
}

#page-mod-quiz-edit ul.slots .activityinstance span.instancename {
    overflow-x: hidden;
    overflow-y: hidden;
    text-overflow: ellipsis;
}

#page-mod-quiz-edit ul.slots .activityinstance span.instancename img {
    margin: 0 0.2em;
}

#page-mod-quiz-edit .question-bank-table .questionname,
#page-mod-quiz-edit ul.slots li.activity div.activityinstance .questionname {
    font-weight: bold;
    color: #555;
    overflow: hidden;
    text-overflow: ellipsis;
}

#page-mod-quiz-edit ul.slots li.activity div.activityinstance .questiontext {
    color: #555;
}

#page-mod-quiz-edit .sharedbank .badge {
    white-space: initial;
}

#page-mod-quiz-edit .section .activity .editing_move {
    position: absolute;
    left: 0;
    top: 0;
}

#page-mod-quiz-edit ul.slots li.activity div.activityinstance .mod_quiz_random_qbank_link {
    font-size: 0.8em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin-left: 0.25rem;
}

#page-mod-quiz-edit ul.slots .activityinstance img.activityicon {
    float: inherit;
    margin: .2em 0 0;
    padding: 0;
}

#page-mod-quiz-edit .section .activity .actions {
    position: inherit;
    white-space: nowrap;
    background: #e6e6e6;
    padding: 0.1em 0;
    display: flex;
    align-items: baseline;
}

#page-mod-quiz-edit .mod_quiz_edit_forms {
    display: none;
}

#page-mod-quiz-edit .question-bank-table {
    width: 100%;
}

#page-mod-quiz-edit .question-bank-table .header {
    text-align: center;
    padding: 0 2px;
    border: 0 none;
    vertical-align: top;
    width: auto;
}

#page-mod-quiz-edit .question-bank-table .header.checkbox {
    vertical-align: bottom;
    text-align: center;
}

#page-mod-quiz-edit .question-bank-table .header.qtype .sorters {
    white-space: nowrap;
}

#page-mod-quiz-edit .question-bank-table th .sorters {
    font-weight: normal;
    font-size: 0.8em;
}

#page-mod-quiz-edit .question-bank-table td.modifiername,
#page-mod-quiz-edit .question-bank-table td.creatorname,
#page-mod-quiz-edit .question-bank-table td.questionlastused {
    line-height: 1em;
}

#page-mod-quiz-edit .question-bank-table td.modifiername span.date,
#page-mod-quiz-edit .question-bank-table td.creatorname span.date {
    font-weight: normal;
    font-size: 0.8em;
}

#page-mod-quiz-edit table.question-bank-table {
    table-layout: fixed;
    overflow-x: visible;
    border-collapse: separate;
    border-spacing: 0;
}

#page-mod-quiz-edit .question-bank-table .iconcol {
    width: 16px;
    text-align: center;
    padding: 0;
}
#page-mod-quiz-edit .question-bank-table .iconcol .icon {
    width: 16px;
}

#page-mod-quiz-edit .question-bank-table .checkbox {
    width: 32px;
    text-align: center;
    padding: 0;
}

#page-mod-quiz-edit .question-bank-table .editmenu {
    width: 5em;
}

#page-mod-quiz-edit .question-bank-table .qtype {
    text-align: center;
}

#page-mod-quiz-edit .question-bank-table .qtype {
    width: 28px;
    padding: 0;
}

#page-mod-quiz-edit .question-bank-table .questionnametext {
    padding: 0 0.2em;
    width: 100% !important; /* stylelint-disable-line declaration-no-important */
}

#page-mod-quiz-edit .question-bank-table .questiontext {
    position: relative;
    zoom: 1;
    padding: 0.3em;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

#page-mod-quiz-edit .question-bank-table .questionname {
    white-space: nowrap;
    overflow: hidden;
    zoom: 1;
    position: relative;
}

#page-mod-quiz-edit .question-bank-table .questiontext p {
    margin: 0;
}

#page-mod-quiz-edit table.question-bank-table td,
#page-mod-quiz-edit table.question-bank-table th {
    overflow: hidden;
    white-space: nowrap;
    width: 1.2em !important; /* stylelint-disable-line declaration-no-important */
}

#page-mod-quiz-edit table.question-bank-table td.questionnametext > div {
    overflow: hidden;
    text-overflow: ellipsis;
}

.mod_quiz_qbank_dialogue {
    width: 80%;
    min-height: 200px;
}

.mod_quiz_qbank_dialogue.moodle-dialogue-fullscreen {
    width: 100%;
}

.mod_quiz_qbank_dialogue .questionbankloading {
    position: absolute;
    top: 30px;
    bottom: 0;
    left: 0;
    right: 0;
    background: #fff;
    text-align: center;
    opacity: 0.5;
    padding-top: 50px;
}

.mod_quiz_qbank_dialogue #advancedsearch label {
    font-size: 100%;
}

.quizquestionlistcontrols {
    text-align: center;
}

.categoryinfo {
    padding: 0.3em;
}

.path-mod-quiz .gradingdetails {
    font-size: small;
}

#page-mod-quiz-edit div#repaginatedialog .mform {
    margin-left: auto;
    margin-right: auto;
}

#page-mod-quiz-edit div.container div.generalbox {
    position: relative;
    display: block;
    border: 0 none;
    margin: 0;
    padding: 0;
}

#page-mod-quiz-edit .paging {
    margin-top: 0;
    margin-bottom: 0;
    padding: 0.1em 0.3em;
    display: block;
    background-color: #ddd;
}

#page-mod-quiz-edit #page-footer {
    clear: both;
    padding-top: 1em;
}

#page-mod-quiz-edit .categoryinfofield {
    font-style: italic;
}

#page-mod-quiz-edit .categorynamefield {
    font-weight: bold;
}

#page-mod-quiz-edit .questionsortoptions {
    background-color: #ddd;
}

#page-mod-quiz-edit div.questionbank .categorysortopotionscontainer {
    padding-top: 0.5em;
    margin-top: 0.3em;
}

#page-mod-quiz-edit div.questionbank .categoryquestionscontainer,
.questionbank .categorysortopotionscontainer,
.questionbank .categorypagingbarcontainer,
.questionbank .categoryselectallcontainer {
    background-color: #fff;
}

/* Bulk edit actions */

#page-mod-quiz-edit .btn-group.selectmultiplecommand,
#page-mod-quiz-edit .selectmultiplecommandbuttons,
#page-mod-quiz-edit .select-multiple-checkbox {
    display: none;
}

#page-mod-quiz-edit.select-multiple .selectmultiplecommand,
#page-mod-quiz-edit.select-multiple .selectmultiplecommandbuttons,
#page-mod-quiz-edit.select-multiple .select-multiple-checkbox {
    display: inline-block;
}

#page-mod-quiz-edit.select-multiple input.select-multiple-checkbox[type="checkbox"] {
    display: inline;
}

#page-mod-quiz-edit.select-multiple .mod-quiz-edit-content .section .activity .editing_move,
#page-mod-quiz-edit.select-multiple .mod-quiz-edit-content .section .activity .commands {
    display: none;
}

#page-mod-quiz-edit.select-multiple .mod-quiz-edit-content .section .page_split_join_wrapper {
    display: none;
}

#page-mod-quiz-edit.select-multiple .mod-quiz-edit-content .section .activity .actions .editing_delete,
#page-mod-quiz-edit.select-multiple .mod-quiz-edit-content .section .activity .actions .editing_maxmark {
    display: none;
}

#page-mod-quiz-edit.select-multiple#page-mod-quiz-edit .maxgrade,
#page-mod-quiz-edit.select-multiple .mod-quiz-edit-content .last-add-menu {
    display: none;
}

#page-mod-quiz-edit.select-multiple .mod-quiz-edit-content .section-heading a,
#page-mod-quiz-edit.select-multiple .mod-quiz-edit-content .section-heading form,
#page-mod-quiz-edit.select-multiple .mod-quiz-edit-content .section-heading .instanceshufflequestions {
    display: none;
}

#page-mod-quiz-edit.select-multiple .mod-quiz-edit-content .edit-toolbar .mb-1 {
    display: none;
}

#page-mod-quiz-edit.select-multiple#page-mod-quiz-edit ul.slots li.section li.activity .mod-indent-outer {
    padding-left: 3px;
}

#page-mod-quiz-edit .section .summary .iconsmall,
#page-mod-quiz-edit .section .activity .iconsmall {
    float: left;
}

/* Base theme needs extra support. */
#page-mod-quiz-edit ul.slots li.section ul.section {
    list-style: none;
}

#page-mod-quiz-edit .inplaceeditable {
    box-sizing: border-box;
    background: #fdfdfe;
    display: inline-block;
    margin: 2px;
    padding: 0.5em 0 0.5em 0.1em;
}
#page-mod-quiz-edit .inplaceeditable.inplaceeditingon input {
    width: 64px;
    vertical-align: middle;
}
#page-mod-quiz-edit .inplaceeditable-text {
    color: #000;
    text-align: right;
}
#page-mod-quiz-editgrading .inplaceeditable .quickeditlink {
    color: var(--bs-primary);
}
#page-mod-quiz-edit .inplaceeditable .quickeditlink {
    color: var(--bs-primary);
    text-decoration: none;
    background-color: transparent;
    padding-left: 1px;
    margin: 0;
}
#page-mod-quiz-edit .quickeditlink .aalink {
    color: var(--bs-primary);
    text-align: right;
    width: 10px;
    margin: 2px;
}
#page-mod-quiz-edit .quickedition {
    color: var(--bs-primary);
    text-align: right;
    width: 10px;
    margin: 2px;
}
#page-mod-quiz-edit .quickedition .visibleifjs {
    text-align: right;
}
#page-mod-quiz-edit .quickeditlink {
    text-align: right;
}

@media (max-width: 576px) {
    #page-mod-quiz-edit ul.slots li.section li.activity .mod-indent {
        display: none;
    }
    #page-mod-quiz-edit ul.slots li.section li.activity .mod-indent-outer,
    #page-mod-quiz-edit li.section .slotnumber.unshuffled,
    #page-mod-quiz-edit li.section.shuffled .slotnumber.shuffled,
    #page-mod-quiz-edit ul.slots li.section li.activity .activityinstance,
    #page-mod-quiz-edit ul.slots li.section li.activity .actions {
        display: block;
    }
}

/** Print formatting for attempt and review pages **/

@media print {
    #page-mod-quiz-attempt header.navbar,
    #page-mod-quiz-review header.navbar {
        display: none;
    }

    #page-mod-quiz-attempt #dock,
    #page-mod-quiz-review #dock {
        display: none;
    }

    #page-mod-quiz-attempt #page #page-header h1,
    #page-mod-quiz-review #page #page-header h1 {
        display: none;
    }

    #page-mod-quiz-attempt #region-main,
    #page-mod-quiz-review #region-main {
        width: 100%;
    }

    #page-mod-quiz-attempt #block-region-side-pre,
    #page-mod-quiz-attempt #block-region-side-post,
    #page-mod-quiz-review #block-region-side-pre,
    #page-mod-quiz-review #block-region-side-post {
        display: none;
    }

    #page-mod-quiz-attempt #page-footer,
    #page-mod-quiz-review #page-footer {
        display: none;
    }

    #page-mod-quiz-attempt .editquestion,
    #page-mod-quiz-review .editquestion,
    #page-mod-quiz-attempt .questionflag,
    #page-mod-quiz-review .questionflag {
        display: none;
    }

    #page-mod-quiz-attempt .submitbtns,
    #page-mod-quiz-review .submitbtns {
        display: none;
    }

    #page-mod-quiz-review .que .commentlink {
        display: none;
    }

    #page-mod-quiz-attempt .que,
    #page-mod-quiz-review .que {
        page-break-inside: avoid;
    }
}

.path-mod-resource .resourcecontent {
    text-align: center;
}

.path-mod-resource .resourcedetails {
    font-size: 0.8em;
    color: #555;
}

.resourcelinkdetails {
    font-size: 0.8em;
    color: #555;
}

.path-mod-scorm .top {
    vertical-align: top;
}

.path-mod-scorm .scorm-left {
    text-align: left;
}

.path-mod-scorm .scorm-right {
    text-align: right;
}

.path-mod-scorm .scoframe {
    position: relative;
    width: 100%;
    height: 100%;
}

.ios #scormpage #scorm_content {
    -webkit-overflow-scrolling: touch;
    overflow: scroll;
}

#page-mod-scorm-player #scormtop {
    position: relative;
    width: 100%;
    height: 30px;
}

#page-mod-scorm-player #scormbrowse {
    position: absolute;
    left: 5px;
    top: 0;
}

#page-mod-scorm-player #scormnav {
    position: absolute;
    right: 5px;
    text-align: center;
    top: 3px;
    width: 100%;
}

#page-mod-scorm-player #scormbox {
    width: 74%;
    height: 100%;
    position: absolute;
    right: 0;
    top: 0;
}

#page-mod-scorm-player #scormpage {
    position: relative;
    width: 100%;
    height: 100%;
}

#page-mod-scorm-player #scormpage #toctree {
    position: relative;
    width: 100%;
}

#page-mod-scorm-player #tocbox {
    position: relative;
    left: 0;
    width: 100%;
    height: 100%;
    font-size: 0.8em;
}

#page-mod-scorm-player #toctree {
    overflow: visible;
}

#page-mod-scorm-player #tochead {
    position: relative;
    text-align: center;
    top: 3px;
    height: 30px;
}

#page-mod-scorm-player #scormpage .scoframe {
    border: 0;
}

#page-mod-scorm-player #scormpage #scorm_object {
    border: none;
    width: 98%;
    height: 98%;
}

#page-mod-scorm-player #scormpage #scorm_object.scorm_nav_under_content {
    height: 95%;
}

#page-mod-scorm-player #scormpage #scorm_content {
    height: 100%;
}

#page-mod-scorm-player #scormpage #scorm_toc {
    position: relative;
}

#page-mod-scorm-player #scormpage #scorm_toc_title {
    font-size: 1.2em;
    font-weight: bold;
}

#page-mod-scorm-player #scormpage #scorm_tree {
    border-right: 5px solid rgb(239, 245, 255);
}

#page-mod-scorm-player #scormpage #scorm_navpanel {
    text-align: center;
}

#page-mod-scorm-player .toc,
#page-mod-scorm-player .no-toc {
    width: 100%;
}

#page-mod-scorm-player .structlist {
    list-style-type: none;
    white-space: nowrap;
}

#page-mod-scorm-player .structurelist {
    position: relative;
    list-style-type: none;
    width: 96%;
    margin: 0;
    padding: 0;
}

#page-mod-scorm-player .structurelist ul {
    padding-left: 0.5em;
    margin-left: 0.5em;
}

#page-mod-scorm-player #scormpage #scorm_toc.disabled,
#page-mod-scorm-player #scormpage #scorm_toc.loading,
#page-mod-scorm-player #scormpage #scorm_toc_toggle.disabled,
#page-mod-scorm-player #scormpage #scorm_toc_toggle.loading {
    display: none;
}

#page-mod-scorm-view .structurelist {
    list-style-type: none;
    white-space: nowrap;
}

#page-mod-scorm-view .structurelist {
    list-style-type: none;
    white-space: nowrap;
}

#page-mod-scorm-view .exceededmaxattempts {
    color: #c00;
}

#page-mod-scorm-player #altfinishlink {
    font-size: 140%;
    border: 0;
    padding: 0;
}

#page-mod-scorm-player #scormmode {
    float: left;
    border: 0;
}

#page-mod-scorm-player.pagelayout-popup #page-content .region-content {
    padding: 0;
}

#page-mod-scorm-player.pagelayout-popup #page-wrapper {
    width: 100%;
}

#page-mod-scorm-player .yui-layout-scroll div.yui-layout-bd {
    overflow: visible;
}

#page-mod-scorm-player .yui-layout-unit-left div.yui-layout-bd {
    overflow: auto;
}

.path-mod-scorm.forcejavascript .toc {
    display: none;
}

.path-mod-scorm.forcejavascript #scormpage #tocbox {
    display: none;
}

.path-mod-scorm.jsenabled .forcejavascriptmessage {
    display: none;
}

.path-mod-scorm.jsenabled .toc {
    display: block;
}

.path-mod-scorm.jsenabled #scormpage #tocbox {
    display: block;
}

#page-mod-scorm-report-userreporttracks table .c1 {
    word-wrap: break-word;
    word-break: break-all;
}

#page-mod-scorm-report .scormattemptcounts {
    clear: left;
    text-align: center;
    display: inline;
    margin-left: 20%;
}

#page-mod-scorm-player #scormpage span.yui3-treeview-icon {
    display: none;
}

#page-mod-scorm-player #scormpage li.yui3-treeview-has-children > div.yui3-treeview-row > span.yui3-treeview-icon {
    display: block;
}

#page-mod-scorm-player #scormpage div.yui3-u-1,
#page-mod-scorm-player #scormpage div.yui3-u-3-4,
#page-mod-scorm-player #scormpage div.yui3-u-1-5,
#page-mod-scorm-player #scormpage div.yui3-u-1-24 {
    display: inline-block;
    *display: inline; /* stylelint-disable-line */
    zoom: 1;
    letter-spacing: normal;
    word-spacing: normal;
    vertical-align: top;
    text-rendering: auto;
}

#page-mod-scorm-player #scormpage div.yui3-u-1 {
    display: block;
}

#page-mod-scorm-player #scormpage div.yui3-u-3-4 {
    width: 75%;
}

#page-mod-scorm-player #scormpage div.yui3-u-1-5 {
    width: 20%;
}

#page-mod-scorm-player #scormpage div.yui3-u-1-24 {
    width: 4.1666%;
}

#page-mod-scorm-player #scormpage div.yui3-g-r {
    letter-spacing: normal;
    word-spacing: -0.43em;
}

#scorm_layout {
    margin-bottom: 50px;
}

/**
* Opera as of 12 on Windows needs word-spacing.
* The ".opera-only" selector is used to prevent actual prefocus styling
* and is not required in markup.
*/
#page-mod-scorm-player .opera-only :-o-prefocus,
#page-mod-scorm-player #scormpage div.yui3-g-r img {
    max-width: 100%;
}

/* === Player boundary wrapper === */
/* z-index: 1 prevents slideshow from overlapping Moodle primary/secondary navigation */
.nctslidesshow-content {
  position: relative;
  z-index: 1;
  max-width: 1100px;
  margin: 0 auto;
  padding: 24px 64px;
  background: #f5f6f8;
  border-radius: 12px;
  border: 1px solid #e8eaed;
  overflow: hidden;
}

/* === Player area wrapper (carousel + navigation) - excludes teacher panel === */
.nctslidesshow-content .slideshow-player-area {
  position: relative;
}

/* === Slideshow container === */
.nctslidesshow-content .nct-slideshow-carousel {
  max-width: 100%;
  margin: 0 auto;
  width: 100%;
  position: relative;
}

/* Inner wrapper */
.nctslidesshow-content .nct-slideshow-carousel .carousel-inner {
  width: 100%;
  height: 100%;
  padding: 0;
  margin-bottom: 0;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}

/* Each item */
.nctslidesshow-content .nct-slideshow-carousel .carousel-inner .carousel-item {
  width: 100%;
  height: 100%;
  padding: 0;
}

/* From `.slide-image { &.active { ... } }` */
.nctslidesshow-content .nct-slideshow-carousel .carousel-inner .carousel-item .slide-image.active {
  height: 100%;
  display: flex;
  flex-direction: column;
}

/* Image wrapper + img - uses object-fit:contain to show full image within the aspect ratio box */
.nctslidesshow-content .nct-slideshow-carousel .carousel-inner .carousel-item .slideshow-image-only-wrapper {
  width: 100%;
  height: 100%;
  margin-bottom: 0;
  overflow: hidden;
}
.nctslidesshow-content .nct-slideshow-carousel .carousel-inner .carousel-item .slideshow-image-only-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* Counter */
.nctslidesshow-content .nct-slideshow-carousel .slideshow-pagination-counter {
  text-align: right;
  margin-bottom: 12px;
}
.nctslidesshow-content .nct-slideshow-carousel .slideshow-pagination-counter .current-slide,
.nctslidesshow-content .nct-slideshow-carousel .slideshow-pagination-counter .total-slides {
  width: 36px;
  height: 36px;
  border: 1px solid #dde0e4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  background: #fff;
}
.nctslidesshow-content .nct-slideshow-carousel .slideshow-pagination-counter .total-slides {
  color: #64748b;
}
.nctslidesshow-content .nct-slideshow-carousel .slideshow-pagination-counter .pagination-separator {
  margin: 0 4px;
  color: #94a3b8;
}
.nctslidesshow-content .nct-slideshow-carousel .slideshow-pagination-counter .current-slide {
  color: var(--bs-primary, #0d6efd);
  border-color: var(--bs-primary, #0d6efd);
  background-color: #fff;
}

/* ==================== NAVIGATION BUTTONS ==================== */

/* Navigation wrapper - positioned relative to .slideshow-player-area (excludes teacher panel) */
.nctslidesshow-content .slideshow-navigation {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  z-index: 5;
}

.nctslidesshow-content .slideshow-navigation .carousel-control {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

/* Nav buttons: positioned in the player boundary gutters */
.nctslidesshow-content .carousel-control-prev,
.nctslidesshow-content .carousel-control-next {
  z-index: 5 !important;
  pointer-events: auto !important;
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid #d1d5db !important;
  background: #fff !important;
  opacity: 1 !important;
  cursor: pointer !important;
  transition: background .15s, border-color .15s, box-shadow .15s;
  box-shadow: 0 1px 3px rgba(0,0,0,.08) !important;
  padding: 0 !important;
}

.nctslidesshow-content .carousel-control-prev:hover,
.nctslidesshow-content .carousel-control-next:hover {
  background: #f0f2f5 !important;
  border-color: #b0b5bd !important;
}

/* Place buttons in the padding gutters of .nctslidesshow-content.
   .slideshow-player-area fills the content box (inside 64px padding).
   Negative offsets push buttons into the padding area (still visible
   because overflow:hidden clips to the padding-box). */
.nctslidesshow-content .carousel-control-prev {
  left: -54px !important;
}
.nctslidesshow-content .carousel-control-next {
  right: -54px !important;
}

/* Chevron icons - dark SVG arrows to contrast against white button background */
.nctslidesshow-content .carousel-control-prev-icon {
  width: 16px !important;
  height: 16px !important;
  background-size: 100% 100% !important;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23333'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e") !important;
  opacity: 0.8 !important;
}
.nctslidesshow-content .carousel-control-next-icon {
  width: 16px !important;
  height: 16px !important;
  background-size: 100% 100% !important;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23333'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e") !important;
  opacity: 0.8 !important;
}

/* Disabled state */
.nctslidesshow-content .carousel-control-prev[disabled],
.nctslidesshow-content .carousel-control-next[disabled],
.nctslidesshow-content .carousel-control-prev[aria-disabled="true"],
.nctslidesshow-content .carousel-control-next[aria-disabled="true"] {
  background: #eceef0 !important;
  border-color: #e5e5e5 !important;
  cursor: default !important;
  opacity: 0.4 !important;
  pointer-events: none !important;
  box-shadow: none !important;
}

/* Enabled (active) state */
.nctslidesshow-content .carousel-control-prev.next-slide-available,
.nctslidesshow-content .carousel-control-next.next-slide-available {
  border-color: var(--bs-primary, #0d6efd) !important;
  background: #fff !important;
}
.nctslidesshow-content .carousel-control-prev.next-slide-available:hover,
.nctslidesshow-content .carousel-control-next.next-slide-available:hover {
  background: #f0f4ff !important;
  border-color: var(--bs-primary, #0d6efd) !important;
}

/* visually-hidden label */
.nctslidesshow-content .visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ==================== RESPONSIVE ==================== */

@media (max-width: 991px) {
  .nctslidesshow-content {
    padding: 20px 56px;
  }
  /* 56px gutter, 44px button: (56-44)/2=6px from edge => -50px */
  .nctslidesshow-content .carousel-control-prev {
    left: -50px !important;
  }
  .nctslidesshow-content .carousel-control-next {
    right: -50px !important;
  }
}

@media (max-width: 767px) {
  .nctslidesshow-content {
    padding: 16px 48px;
    border-radius: 8px;
  }
  .nctslidesshow-content .carousel-control-prev,
  .nctslidesshow-content .carousel-control-next {
    width: 38px !important;
    height: 38px !important;
  }
  /* 48px gutter, 38px button: (48-38)/2=5px from edge => -43px */
  .nctslidesshow-content .carousel-control-prev {
    left: -43px !important;
  }
  .nctslidesshow-content .carousel-control-next {
    right: -43px !important;
  }
  .nctslidesshow-content .carousel-control-prev-icon,
  .nctslidesshow-content .carousel-control-next-icon {
    width: 14px !important;
    height: 14px !important;
  }
}

@media (max-width: 480px) {
  .nctslidesshow-content {
    padding: 12px 40px;
  }
  .nctslidesshow-content .carousel-control-prev,
  .nctslidesshow-content .carousel-control-next {
    width: 34px !important;
    height: 34px !important;
  }
  /* 40px gutter, 34px button: (40-34)/2=3px from edge => -37px */
  .nctslidesshow-content .carousel-control-prev {
    left: -37px !important;
  }
  .nctslidesshow-content .carousel-control-next {
    right: -37px !important;
  }
}

/* ======================================================= */

#nct-slideshow-carousel {
  height: auto !important;
  position: relative;
}

/* Aspect-ratio container: carousel fills its aspect-ratio box */
#nct-slideshow-carousel .carousel-inner,
#nct-slideshow-carousel .carousel-item,
#nct-slideshow-carousel .slideshow-image-only-wrapper {
  width: 100%;
  height: 100%;
}
#nct-slideshow-carousel .slideshow-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* === Sorter UI === */
.slideshow-sorter-wrapper {
  max-height: none;
  overflow: visible;
  width: 100%;
}
#slideshow-sorter {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}
#slideshow-sorter > li.slideshow-sorter-item {
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
  transition: box-shadow .2s ease, transform .1s ease;
}
.slideshow-sorter-item-inner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
}
.slideshow-sorter-wrapper .ss-handle {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: grab;
  -webkit-user-select: none;
  user-select: none;
  color: #6b7280;
}
.slideshow-sorter-wrapper .ss-handle::before {
  content: "⋮⋮";
  line-height: 1;
  font-size: 18px;
}
.slideshow-sorter-item.dragging .ss-handle {
  cursor: grabbing;
}
.slideshow-sorter-item-inner > img {
  width: 80px !important;
  height: 60px !important;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid rgba(0,0,0,.08);
  flex: 0 0 auto;
}
.slideshow-sorter-name {
  flex: 1 1 auto;
  min-width: 0;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.slideshow-sorter-controls {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}
.slideshow-sorter-controls .ss-move {
  -webkit-appearance: none;
  appearance: none;
  border: 0;
  background: transparent;
  padding: 6px;
  border-radius: 8px;
  min-width: 30px;
  min-height: 30px;
  cursor: pointer;
}
.slideshow-sorter-controls .ss-move:hover {
  background: rgba(0,0,0,.06);
}
#slideshow-sorter > li.slideshow-sorter-item:hover {
  box-shadow: 0 4px 10px rgba(0,0,0,.08);
}
#slideshow-sorter > li.slideshow-sorter-item.dragging {
  transform: scale(.995);
  box-shadow: 0 8px 18px rgba(0,0,0,.12);
}
#slideshow-sorter > li.slideshow-sorter-placeholder {
  border: 2px dashed rgba(0,0,0,.15);
  border-radius: 12px;
  background: rgba(0,0,0,.02);
  height: 72px;
}
@media (max-width: 640px) {
  .slideshow-sorter-item-inner > img {
    width: 64px !important;
    height: 48px !important;
  }
  .slideshow-sorter-item-inner {
    padding: 8px 10px;
    gap: 10px;
  }
}
#fitem_id_reorderui .col-md-3 {
  display: none;
}
#fitem_id_reorderui .col-md-9 {
  flex: 0 0 100%;
  max-width: 100%;
}
#fitem_id_reorderui .slideshow-sorter-wrapper,
#fitem_id_reorderui #slideshow-sorter,
#fitem_id_reorderui .slideshow-sorter-item-inner {
  width: 100%;
}
@media (prefers-reduced-motion: reduce) {
  #slideshow-sorter > li.slideshow-sorter-item {
    transition: none;
  }
}


#nct-slideshow-carousel .carousel-item {
  position: relative;
}

/* Smooth slide animation even without Bootstrap JS */
#nct-slideshow-carousel .carousel-item {
  position: relative;
  display: none;
  transition: transform .6s ease;
}

#nct-slideshow-carousel .carousel-item.active,
#nct-slideshow-carousel .carousel-item-next,
#nct-slideshow-carousel .carousel-item-prev {
  display: block;
}

/* initial positions of the incoming/outgoing items */
#nct-slideshow-carousel .carousel-item-next {
  transform: translateX(100%);
}
#nct-slideshow-carousel .carousel-item-prev {
  transform: translateX(-100%);
}

/* when the transition starts */
#nct-slideshow-carousel .carousel-item-start {
  transform: translateX(0);
}
#nct-slideshow-carousel .carousel-item-end {
  transform: translateX(0);
}

/* current active moves out */
#nct-slideshow-carousel .active.carousel-item-start {
  transform: translateX(-100%);
}
#nct-slideshow-carousel .active.carousel-item-end {
  transform: translateX(100%);
}

/* incoming item moves into place */
#nct-slideshow-carousel .carousel-item-next.carousel-item-start {
  transform: translateX(0);
}
#nct-slideshow-carousel .carousel-item-prev.carousel-item-end {
  transform: translateX(0);
}

/* === Voiceover Controls === */
.slideshow-voiceover-controls {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: rgba(0, 0, 0, 0.75);
  border-radius: 24px;
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  min-width: 200px;
  max-width: 90%;
}

.slideshow-image-only-wrapper {
  position: relative;
}

.slideshow-vo-btn {
  background: none;
  border: none;
  color: #fff;
  cursor: pointer;
  padding: 4px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  transition: background 0.2s;
}

.slideshow-vo-btn:hover {
  background: rgba(255, 255, 255, 0.2);
}

.slideshow-vo-progress {
  flex: 1;
  height: 4px;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 2px;
  overflow: hidden;
  min-width: 80px;
}

.slideshow-vo-progress-bar {
  height: 100%;
  width: 0%;
  background: #3b82f6;
  border-radius: 2px;
  transition: width 0.1s linear;
}

.slideshow-vo-status {
  color: rgba(255, 255, 255, 0.8);
  font-size: 11px;
  white-space: nowrap;
  flex-shrink: 0;
}

/* === Teacher Voiceover Panel === */
.slideshow-teacher-panel {
  max-width: 1100px;
  margin: 0 auto 16px;
  border: 1px solid #e0e7ff;
  border-radius: 10px;
  background: #f0f4ff;
  overflow: hidden;
}
.slideshow-teacher-panel-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  border-bottom: 1px solid #e0e7ff;
  color: #1e3a5f;
}
.slideshow-teacher-panel-status {
  margin-left: auto;
}
.slideshow-vo-badge {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 600;
}
.slideshow-vo-badge-ready {
  background: #d1fae5;
  color: #065f46;
}
.slideshow-vo-badge-pending {
  background: #fef3c7;
  color: #92400e;
}
.slideshow-vo-badge-error {
  background: #fee2e2;
  color: #991b1b;
}
.slideshow-vo-badge-disabled {
  background: #e5e7eb;
  color: #6b7280;
}
.slideshow-teacher-panel-body {
  padding: 12px 16px;
}
.slideshow-teacher-panel-desc {
  margin: 0 0 12px;
  font-size: 13px;
  color: #475569;
  line-height: 1.5;
}
.slideshow-teacher-panel-actions {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.slideshow-teacher-panel-actions .btn {
  display: inline-flex;
  align-items: center;
}
.slideshow-vo-progress-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 200px;
}
.slideshow-vo-gen-bar-bg {
  flex: 1;
  height: 6px;
  background: #cbd5e1;
  border-radius: 3px;
  overflow: hidden;
}
.slideshow-vo-gen-bar {
  height: 100%;
  width: 30%;
  background: #3b82f6;
  border-radius: 3px;
  animation: slideshow-vo-pulse 1.5s ease-in-out infinite;
}
@keyframes slideshow-vo-pulse {
  0%, 100% {
    width: 30%;
  }
  50% {
    width: 70%;
  }
}
.slideshow-vo-gen-text {
  font-size: 12px;
  color: #64748b;
  white-space: nowrap;
}

/* === Per-Slide Voiceover Editor === */
.slideshow-vo-slides-list {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.slideshow-vo-slide-row {
  border: 1px solid #e0e7ff;
  border-radius: 8px;
  background: #fff;
  padding: 12px;
}
.slideshow-vo-slide-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.slideshow-vo-slide-thumb-wrap {
  position: relative;
  flex-shrink: 0;
  cursor: pointer;
}
.slideshow-vo-slide-thumb {
  width: 64px;
  height: 48px;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid rgba(0,0,0,.08);
  flex-shrink: 0;
}
.slideshow-vo-slide-thumb-expanded {
  display: none;
  position: fixed;
  z-index: 10000;
  max-width: 600px;
  max-height: 450px;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 8px;
  border: 2px solid #6366f1;
  box-shadow: 0 12px 40px rgba(0,0,0,.3);
  background: #fff;
  padding: 4px;
  pointer-events: none;
}
.slideshow-vo-slide-info {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.slideshow-vo-slide-label {
  font-weight: 600;
  font-size: 13px;
  color: #1e3a5f;
  white-space: nowrap;
}
.slideshow-vo-slide-text-wrap {
  position: relative;
}
.slideshow-vo-slide-textarea {
  width: 100%;
  font-size: 13px;
  line-height: 1.5;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  padding: 8px 10px;
  resize: vertical;
  min-height: 60px;
  color: #374151;
  background: #fafbfc;
}
.slideshow-vo-slide-textarea:focus {
  border-color: #6366f1;
  outline: none;
  box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.15);
  background: #fff;
}
.slideshow-vo-slide-text-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 4px;
}
.slideshow-vo-slide-gen-btn {
  flex-shrink: 0;
  font-size: 12px;
}
.slideshow-vo-toggle-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border-radius: 6px;
  border: 1px solid #d1d5db;
  background: #f9fafb;
  color: #6b7280;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.slideshow-vo-toggle-btn:hover {
  background: #f3f4f6;
  border-color: #9ca3af;
  color: #374151;
}
.slideshow-vo-toggle-btn.is-disabled {
  background: #fee2e2;
  border-color: #fca5a5;
  color: #dc2626;
}
.slideshow-vo-toggle-btn.is-disabled:hover {
  background: #fecaca;
  border-color: #f87171;
}
.slideshow-vo-slide-row.vo-disabled {
  opacity: 0.55;
  background: #f9fafb;
}
.slideshow-vo-slide-row.vo-disabled .slideshow-vo-slide-textarea {
  background: #f3f4f6;
  color: #9ca3af;
}
@media (max-width: 640px) {
  .slideshow-vo-slide-thumb {
    width: 48px;
    height: 36px;
  }
  .slideshow-vo-slide-thumb-expanded {
    max-width: 90vw;
    max-height: 300px;
  }
  .slideshow-vo-slide-header {
    flex-wrap: wrap;
    gap: 6px;
  }
}

.slideshow-vo-reload-hint {
  margin: 8px 0;
  text-align: center;
}

/* === PowerPoint Import Dropzone === */
.slideshow-pptx-import {
  margin-bottom: 16px;
}
.slideshow-pptx-dropzone {
  border: 2px dashed #cbd5e1;
  border-radius: 12px;
  padding: 32px 24px;
  text-align: center;
  cursor: pointer;
  transition: border-color .2s, background .2s;
  background: #fafbfc;
}
.slideshow-pptx-dropzone:hover,
.slideshow-pptx-dropzone.dragover {
  border-color: #3b82f6;
  background: #eff6ff;
}
.slideshow-pptx-dropzone-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.slideshow-pptx-dropzone-inner svg {
  opacity: 0.5;
}
.slideshow-pptx-dropzone:hover .slideshow-pptx-dropzone-inner svg,
.slideshow-pptx-dropzone.dragover .slideshow-pptx-dropzone-inner svg {
  opacity: 0.8;
  stroke: #3b82f6;
}
.slideshow-pptx-dropzone-text {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  color: #475569;
}
.slideshow-pptx-dropzone-formats {
  margin: 0;
  font-size: 12px;
  color: #94a3b8;
}
.slideshow-pptx-dropzone-sizelimit {
  margin: 6px 0 0;
  font-size: 12px;
  font-weight: 600;
  color: #64748b;
}
.slideshow-pptx-dropzone-compress {
  margin: 4px 0 0;
  font-size: 11px;
  color: #94a3b8;
  line-height: 1.4;
  max-width: 480px;
}
.slideshow-pptx-progress {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  padding: 10px 16px;
  background: #f0f4ff;
  border-radius: 8px;
  border: 1px solid #dbeafe;
}
.slideshow-pptx-progress-bar-bg {
  flex: 1;
  height: 6px;
  background: #cbd5e1;
  border-radius: 3px;
  overflow: hidden;
}
.slideshow-pptx-progress-bar {
  height: 100%;
  width: 0%;
  background: #3b82f6;
  border-radius: 3px;
  transition: width 0.3s ease;
}
.slideshow-pptx-progress-text {
  font-size: 12px;
  color: #475569;
  white-space: nowrap;
  min-width: 100px;
}
.slideshow-pptx-result {
  margin-top: 10px;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
}
.slideshow-pptx-result.success {
  background: #ecfdf5;
  border: 1px solid #10b981;
  color: #065f46;
}
.slideshow-pptx-result.error {
  background: #fef2f2;
  border: 1px solid #ef4444;
  color: #991b1b;
}
/* Full-width PPTX import: hide label column, expand content column.
   NOTE: Do NOT use :has() pseudo-class — Moodle's PHP CSS minifier does not
   handle it correctly and will corrupt the entire site CSS cache, breaking
   navigation menus. The JS in pptximport.js handles layout via DOM instead.
   IMPORTANT: Bootstrap's .d-flex uses display:flex!important which overrides
   non-important display:none. Must use !important to counter it. */
#fitem_id_pptximport .col-md-3,
[data-groupname="pptximport"] .col-md-3 {
  display: none !important;
}
#fitem_id_pptximport .col-md-9,
[data-groupname="pptximport"] .col-md-9 {
  -webkit-flex: 0 0 100% !important;
  flex: 0 0 100% !important;
  max-width: 100% !important;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}
#fitem_id_pptximport .col-md-9 .form-control-static,
[data-groupname="pptximport"] .col-md-9 .form-control-static {
  width: 100%;
}
#fitem_id_pptximport,
[data-groupname="pptximport"] {
  flex-wrap: wrap;
  padding-left: 0;
  padding-right: 0;
}
.slideshow-pptx-dropzone {
  width: 100%;
  box-sizing: border-box;
}

/* === Prevent slideshow from overlapping Moodle navigation === */
/* Moodle Boost nav typically uses z-index 1030+. Force slideshow stacking context low.   */
/* Scoped to slideshow view page only so admin pages are never affected.                  */
/* NOTE: .navbar intentionally omitted here — Boost sets position:sticky on the navbar.  */
/* Overriding it with position:relative breaks sticky behaviour and causes the site logo  */
/* to scroll down and overlap the course-index drawer. z-index alone is sufficient since  */
/* the navbar already has a positioning context from Boost.                               */
#page-mod-slideshow-view .primary-navigation,
#page-mod-slideshow-view .secondary-navigation,
#page-mod-slideshow-view .moremenu {
  position: relative;
  z-index: 1030;
}
#page-mod-slideshow-view .navbar {
  z-index: 1030;
}

/* ============================================================
   VIDEO & POSTER SLIDE STYLES  (mod_slideshow v1.6.26)
   ============================================================ */

/* Video wrapper — fills the carousel-item box */
.nctslidesshow-content .slideshow-video-wrapper {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  background: #000;
}

/* Ratio box for iframe / HTML5 video: fills available height */
.nctslidesshow-content .slideshow-video-ratio-box {
  flex: 1 1 auto;
  position: relative;
  overflow: hidden;
  min-height: 0;
}

.nctslidesshow-content .slideshow-video-frame,
.nctslidesshow-content .slideshow-video-element {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  background: #000;
}

/* Slide title (shown below video or poster image) */
.nctslidesshow-content .slideshow-slide-title {
  padding: 8px 14px 10px;
  font-size: 0.92rem;
  font-weight: 500;
  color: #374151;
  background: rgba(255,255,255,0.92);
  border-top: 1px solid #e5e7eb;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 0 0 auto;
}

/* Watch-time gating bar — shown inside video slide when requirement not yet met */
.nctslidesshow-content .slideshow-video-watch-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  background: rgba(245, 158, 11, 0.12);
  border-top: 2px solid #f59e0b;
  color: #92400e;
  font-size: 0.88rem;
  font-weight: 500;
  flex: 0 0 auto;
  transition: opacity 0.5s ease;
}

.nctslidesshow-content .slideshow-video-watch-inner {
  display: flex;
  align-items: center;
  gap: 8px;
}

.nctslidesshow-content .slideshow-video-watch-inner svg {
  flex-shrink: 0;
  color: #d97706;
}

/* Satisfied state — turns green before fading */
.nctslidesshow-content .slideshow-video-watch-bar.ss-watch-satisfied {
  background: rgba(16, 185, 129, 0.12);
  border-color: #10b981;
  color: #064e3b;
}

.nctslidesshow-content .slideshow-video-watch-bar.ss-watch-satisfied svg {
  color: #059669;
}

/* Shake animation when student tries to skip past gated video */
@keyframes ss-shake {
  0%,100%{ transform:translateX(0); }
  20%    { transform:translateX(-6px); }
  40%    { transform:translateX(6px); }
  60%    { transform:translateX(-4px); }
  80%    { transform:translateX(4px); }
}
.nctslidesshow-content .slideshow-video-watch-bar.ss-watch-shake {
  animation: ss-shake 0.5s ease;
}

/* ============================================================
   EXTRA SLIDE SORTER ITEM STYLES
   ============================================================ */

.slideshow-sorter-item.ss-extra-sorter-item {
  background: #f0f4ff;
  border-color: #c7d2fe;
}

.slideshow-sorter-item.ss-extra-sorter-item:hover {
  background: #e5edff;
}

.slideshow-sorter-extra-inner {
  gap: 8px;
}

.ss-extra-type-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 3px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
  flex-shrink: 0;
}

.ss-extra-type-badge.ss-type-video {
  background: #dbeafe;
  color: #1d4ed8;
  border: 1px solid #93c5fd;
}

.ss-extra-type-badge.ss-type-poster {
  background: #f0fdf4;
  color: #15803d;
  border: 1px solid #86efac;
}

.slideshow-sorter-name.ss-extra-name {
  font-size: 0.82rem;
  color: #374151;
}

.ss-extra-delete-inline {
  font-size: 0.72rem;
  padding: 2px 6px;
  margin-left: 4px;
  border-radius: 3px;
}

/* ============================================================
   EXTRA SLIDES MANAGER (in mod_form.php)
   ============================================================ */

.ss-extra-manager {
  padding: 12px 0 4px;
}

.ss-extra-add-btns {
  margin-bottom: 16px;
}

.ss-add-panel {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 18px 20px 14px;
  margin-top: 12px;
  margin-bottom: 4px;
}

.ss-panel-title {
  margin: 0 0 14px;
  font-size: 1rem;
  font-weight: 600;
  color: #1e293b;
}

.ss-form-row {
  margin-bottom: 12px;
}

.ss-form-label {
  display: block;
  font-size: 0.86rem;
  font-weight: 500;
  color: #475569;
  margin-bottom: 4px;
}

.ss-form-actions {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid #e2e8f0;
}

.ss-add-status {
  min-height: 0;
}

.path-mod-url .resourcecontent {
    text-align: center;
}

/*
 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/>.
*/ /**
 * Wiki module style sheet
 *
 * @package mod-wiki-2.0
 * @copyright 2009 Marc Alier, Jordi Piguillem marc.alier@upc.edu
 * @copyright 2009 Universitat Politecnica de Catalunya http://www.upc.edu
 *
 * @author Jordi Piguillem
 * @author Marc Alier
 * @author David Jimenez
 * @author Josep Arus
 * @author Kenneth Riba
 *
 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
.wiki_contentbox {
    width: 80%;
    margin: auto;
    min-width: 200px;
    min-height: 100px;
}

.wiki_previewbox {
    width: 50%;
    margin: auto;
    border: thin solid blue;
}

.wiki_button {
    margin: 5px;
}

.wiki_warning {
    color: red;
}

.emptycomments {
    color: red;
    display: inline;
}

.wiki-toc {
    border: 1px solid #bbb;
    background: #eee;
    margin: 16px;
    padding: 8px;
}

.wiki-toc-title {
    color: #666;
    font-size: 1.1em;
    font-variant: small-caps;
    text-align: center;
}

.wiki-toc-section {
    padding: 0;
    margin: 2px 8px;
}

.wiki-toc-section-2 {
    padding-left: 12px;
}

.wiki-toc-section-3 {
    padding-left: 24px;
}

.wiki_form-button {
    margin-left: 0%;
}

.wiki-upload-table {
    margin: 8px auto;
    clear: both;
}

.wiki-upload-table table {
    margin: auto;
}

.wiki-upload-table h3 {
    margin: 4px 0;
    text-align: center;
}

.wiki-upload-section {
    border: 1px solid #eee;
    width: 400px;
    margin: 8px auto;
}

.wiki-upload-section legend {
    font-weight: bold;
    font-size: 0.9em;
    margin-left: 16px;
}

.wiki-tags {
    text-align: right;
}

.wiki_modifieduser p {
    line-height: 35px;
}

.wiki_modifieduser img {
    border: thin solid black;
}

.wiki_restoreform,
.wiki_deletecommentform {
    width: 10%;
    margin: auto;
}

.wiki_versionuser {
    float: left;
}

.wiki_diffuserleft,
.wiki_diffuserright {
    font-weight: normal;
    padding-top: 1%;
}

.wiki_diffuserleft {
    float: right;
}

.wiki_diffuserright {
    float: left;
}

.wiki_compareheading {
    font-weight: normal;
}

.wiki_restore,
.wiki_diffview,
.wiki_difftime,
.wiki_headingtime {
    font-size: 0.8em;
    font-weight: normal;
}

.wiki_difftime,
.wiki_headingtime {
    font-style: oblique;
    text-align: center;
}

.wiki_diff_oldpaging {
    float: left;
    width: 40%;
    min-width: 200px;
    margin-left: 5%;
}

.wiki_diff_newpaging {
    float: right;
    width: 40%;
    min-width: 200px;
    margin-right: 5%;
}

.wiki_diff_old,
.wiki_diff_new {
    float: left;
    min-width: 200px;
    width: 40%;
}

.wiki_difftable td {
    width: 50%;
    float: left;
}

.wiki_histdate {
    text-align: left;
}

.wiki_histnewdate {
    border-top: 1px dotted gray;
}

.ouw_deleted {
    background: #ffa;
    color: red;
    text-decoration: line-through;
}

.ouw_added {
    background: #cfc;
    color: red;
}

a.wiki_newentry:link,
a.wiki_newentry:visited {
    color: red;
    font-style: italic;
}

.wiki_newentry a {
    color: red;
    font-style: italic;
}

.wiki_navigation_container {
    margin: 0 auto;
}

.wiki_navigation_from {
    float: left;
    width: 40%;
    min-width: 200px;
    margin-left: 5%;
}

.wiki_navigation_to {
    float: left;
    width: 40%;
    min-width: 200px;
    margin-right: 5%;
}

.wiki_headingtitle {
    text-align: center;
}

.wiki_clear {
    clear: both;
}

.wiki_right {
    text-align: right;
}

.wiki_index {
    text-align: right;
}

.notunderlined {
    text-decoration: none;
}

a.wiki_edit_section {
    font-size: 0.6em;
    position: relative;
    float: right;
}

.midpad {
    text-align: center;
    margin-top: 0.4em;
    margin-bottom: 0.4em;
}

.block_wiki_search ul {
    margin-top: 0.5em;
    margin-bottom: 3px;
}

.wiki-attachment:before {
    content: url(/mod/wiki/pix/attachment.png);
    padding-right: 2px;
}

/** Print CSS */
#wiki_printable_content {
    text-align: left;
}

#wiki_printable_content a {
    color: black;
}

#wiki_printable_title {
    font-size: 2.2em;
    text-decoration: underline;
}

.wiki_diff_boxes {
    width: 100%;
    clear: both;
}

.wiki_diff_paging {
    width: 100%;
    clear: both;
}

.wiki_grayline {
    color: gray;
}

.wikisearchresults {
    padding-left: 50px;
    padding-top: 20px;
}

.wiki-diff-container {
    width: 95%;
    margin: 10px auto;
}

.wiki-diff-container .wiki-diff-leftside,
.wiki-diff-container .wiki-diff-rightside {
    width: 49.5%;
    margin: 0;
    padding: 0;
    float: left;
}

.wiki-diff-container .wiki-diff-rightside {
    margin-left: 1%;
}

.wiki-diff-container .wiki-diff-heading,
.wiki-diff-container .no-overflow {
    padding: 10px;
    border: 1px solid #ddd;
}

.wiki-diff-container .wiki-diff-rightside .wiki_diffversion {
    text-align: right;
}

.path-mod-wiki .printicon {
    background: url(/theme/image.php/academi/core/1790824836/t/print) no-repeat scroll 2px center transparent;
    padding-left: 20px;
}

#page-mod-wiki-prettyview .displayprinticon {
    text-align: right;
}

#page-mod-wiki-prettyview {
    background-image: none;
}

.path-mod-workshop .collapsibleregion {
    margin-bottom: 0.75em;
}

.path-mod-workshop .collapsibleregioncaption {
    font-weight: bold;
    font-size: 120%;
}

.path-mod-workshop .collapsibleregioncaption img {
    max-width: 16px;
    max-height: 16px;
}

.path-mod-workshop div.singlebutton {
    text-align: center;
    margin: 0.75em auto;
}

.path-mod-workshop #workshop-viewlet-assignedassessments div.singlebutton,
.path-mod-workshop #workshop-viewlet-allexamples div.singlebutton,
.path-mod-workshop #workshop-viewlet-examples div.singlebutton {
    text-align: left;
}

.path-mod-workshop .groupwidget {
    text-align: center;
    margin: 0.75em auto;
}

.path-mod-workshop .perpagewidget {
    text-align: center;
    margin: 0.75em auto;
}

/**
 * Submission - one line summary display
 */
.path-mod-workshop .submission-summary {
    position: relative;
    margin-bottom: 10px;
}

.path-mod-workshop .submission-summary .title,
.path-mod-workshop .submission-summary .author,
.path-mod-workshop .submission-summary .author .fullname,
.path-mod-workshop .submission-summary .author .picture {
    display: inline;
}

.path-mod-workshop .submission-summary .title,
.path-mod-workshop .submission-summary .userdate,
.path-mod-workshop .submission-summary .grade-status {
    margin: 0 0 0 40px;
}

.path-mod-workshop .submission-summary .author {
    margin-left: 1ex;
}

.path-mod-workshop .submission-summary.anonymous .title,
.path-mod-workshop .submission-summary.anonymous .author,
.path-mod-workshop .submission-summary.anonymous .userdate,
.path-mod-workshop .submission-summary.anonymous .grade-status {
    margin: 0 0 0 5px;
}

.path-mod-workshop .submission-summary .userdate {
    font-size: x-small;
    color: #333;
}

.path-mod-workshop .submission-summary .userdate span {
    font-style: italic;
}

.path-mod-workshop .submission-summary .author .picture {
    position: absolute;
    top: 0;
    left: 0;
}

/**
 * Submission - full display
 */
.path-mod-workshop .submission-full {
    border: 1px solid #ddd;
    margin: 0 0 1em 0;
}

.path-mod-workshop .submission-full .header {
    position: relative;
    background-color: #ddd;
    padding: 3px;
    min-height: 67px;
}

.path-mod-workshop .submission-full .header .title,
.path-mod-workshop .submission-full .header .author,
.path-mod-workshop .submission-full .header .userdate {
    margin: 0 0 0 80px;
}

.path-mod-workshop .submission-full.anonymous .header .title,
.path-mod-workshop .submission-full.anonymous .header .author,
.path-mod-workshop .submission-full.anonymous .header .userdate {
    margin: 0 0 0 5px;
}

.path-mod-workshop .submission-full .header .userdate.created {
    padding-right: 10px;
}

.path-mod-workshop .submission-full .header .userdate.modified {
    padding-left: 10px;
    margin-left: 0;
    border-left: 1px solid #000;
}

.path-mod-workshop .submission-full .header .userdate {
    font-size: x-small;
    color: #333;
    display: inline;
}

.path-mod-workshop .submission-full .header .userdate span {
    font-style: italic;
}

.path-mod-workshop .submission-full .header .author .picture {
    position: absolute;
    top: 3px;
    left: 3px;
}

.path-mod-workshop .submission-full .content,
.path-mod-workshop .submission-full .attachments {
    padding: 5px 10px;
}

.path-mod-workshop .submission-full .attachments .files img.icon {
    margin-right: 5px;
}

.path-mod-workshop .submission-full .attachments .images div {
    display: inline-block;
    margin: 5px;
    padding: 5px;
    border: 1px solid #ddd;
}

/**
 * Example submission - summary display
 */
.path-mod-workshop .submission-summary.example .title,
.path-mod-workshop .submission-summary.example .userdate {
    margin: 0 0 0 0;
}

/**
 * Example submission - full display
 */
.path-mod-workshop .submission-full.example .header {
    min-height: 0;
}

.path-mod-workshop .submission-full.example .header .title {
    margin: 0 0 0 0;
}

/**
 * Elements generated by the workshop renderer
 */
.path-mod-workshop .message {
    padding: 5px 5em 5px 15px;
    margin: 0 auto 20px auto;
    width: 100%;
    font-size: 80%;
    position: relative;
}

.path-mod-workshop .message .singlebutton {
    text-align: left;
    margin: 0;
}

.path-mod-workshop .message.ok {
    color: #547c22;
    background-color: #e7f1c3;
}

.path-mod-workshop .message.error {
    color: #dd0221;
    background-color: #ffd3d9;
}

.path-mod-workshop .message.info {
    color: #1666a9;
    background-color: #d2ebff;
}

/**
 * Allocators
 */

.path-mod-workshop .allocation-init-results {
    margin: 10px auto;
    width: 100%;
    font-size: 80%;
}

.path-mod-workshop .allocation-init-results .indent {
    margin-left: 20px;
}

.path-mod-workshop .allocation-init-results .ok {
    color: #547c22;
    background-color: #e7f1c3;
}

.path-mod-workshop .allocation-init-results .error {
    color: #dd0221;
    background-color: #ffd3d9;
}

.path-mod-workshop .allocation-init-results .info {
    color: #1666a9;
    background-color: #d2ebff;
}

.path-mod-workshop .allocation-init-results .debug {
    color: black;
    background-color: #ddd;
}

/**
 * User plan
 */
.path-mod-workshop .userplan {
    width: 100%;
    margin: 1em auto 1em auto;
    font-size: 80%;
    border: 1px solid #ddd;
    position: relative;
    overflow: hidden;
}

.path-mod-workshop .userplan dt {
    vertical-align: bottom;
    white-space: normal;
    color: #495057;
    background-color: #f5f5f5;
    border-bottom: 1px solid #ced4da;
    padding: 3px;
}

.path-mod-workshop .userplan dt.active {
    vertical-align: top;
    color: #212529;
    border: 1px solid #ced4da;
    border-bottom: 0;
    border-top: 0;
    background: #e7f1c3;
}

.path-mod-workshop .userplan dt.active .phasetitle {
    font-size: 140%;
}

.path-mod-workshop .userplan dl {
    width: 20%;
    float: left;
    margin: 0;
}

@media only screen and (max-width: 768px) {
    .path-mod-workshop .userplan {
        border-right: none;
        border-top: none;
    }

    .path-mod-workshop .userplan dl {
        width: 102%;
        border-right: none;
    }

    .path-mod-workshop .userplan dt {
        float: left;
        width: 30%;
        border-bottom: none;
        border-top: 1px solid #ddd;
    }
    .path-mod-workshop .userplan dt.active {
        border: none;
    }

    .path-mod-workshop .userplan dd {
        float: left;
        width: 65%;
        border-left: 1px solid #ddd;
        border-top: 1px solid #ddd;
    }
}

@media only screen and (max-width: 420px) {
    .path-mod-workshop .userplan {
        border-bottom: none;
    }

    .path-mod-workshop .userplan dt {
        float: left;
        width: 70%;
        border-bottom: none;
        border-right: 1px solid #ddd;
        border-left: 1px solid #ddd;
        margin: 0;
        padding: 5px;
    }

    .path-mod-workshop .userplan dd {
        float: left;
        width: 70%;
        border-left: 1px solid #ddd;
        border-top: 1px solid #ddd;
        border-bottom: 1px solid #ddd;
    }
}

.path-mod-workshop .userplan dd {
    vertical-align: top;
    border-right: 1px solid #ced4da;
    background-color: #f5f5f5;
    margin: 0;
    min-height: 180px;
    padding: 5px;
}

.path-mod-workshop .userplan dd,
.path-mod-workshop .userplan dd a,
.path-mod-workshop .userplan dd a:link,
.path-mod-workshop .userplan dd a:hover,
.path-mod-workshop .userplan dd a:visited,
.path-mod-workshop .userplan dd a:active {
    color: #495057;
}

.path-mod-workshop .userplan dd.active,
.path-mod-workshop .userplan dd.active a,
.path-mod-workshop .userplan dd.active a:link,
.path-mod-workshop .userplan dd.active a:hover,
.path-mod-workshop .userplan dd.active a:visited,
.path-mod-workshop .userplan dd.active a:active {
    color: #212529;
}

.path-mod-workshop .userplan dd.lastcol {
    border-right: 0;
}

.path-mod-workshop .userplan dd.active {
    border-left: 1px solid #ddd;
    border-right: 1px solid #ddd;
    background-color: #e7f1c3;
}

.path-mod-workshop .userplan dt .actions {
    font-size: smaller;
}

.path-mod-workshop .userplan dd.phasetasks li {
    background-image: url(/theme/image.php/academi/mod_workshop/1790824836/userplan/task-todo);
    background-position: top left;
    background-repeat: no-repeat;
    list-style-type: none;
    min-height: 20px;
    margin: .2em 0;
    background-size: 15px;
}

.dir-rtl.path-mod-workshop .userplan dd.phasetasks li {
    background-position: top right;
}

.path-mod-workshop .userplan dd.phasetasks li.completed {
    background-image: url(/theme/image.php/academi/mod_workshop/1790824836/userplan/task-done);
}

.path-mod-workshop .userplan dd.phasetasks li.fail {
    background-image: url(/theme/image.php/academi/mod_workshop/1790824836/userplan/task-fail);
}

.path-mod-workshop .userplan dd.phasetasks li.info {
    background-image: url(/theme/image.php/academi/mod_workshop/1790824836/userplan/task-info);
}

.path-mod-workshop .userplan dd.phasetasks .tasks {
    list-style: none;
    margin: 0;
    padding: 0;
}

.path-mod-workshop .userplan dd.phasetasks .title {
    padding: 0 10px 0 20px;
}

.dir-rtl.path-mod-workshop .userplan dd.phasetasks .title {
    padding: 0 20px 0 10px;
}

.path-mod-workshop .userplan dd.phasetasks .details {
    padding: 0 10px 0 25px;
    font-size: 80%;
}

.dir-rtl.path-mod-workshop .userplan dd.phasetasks .details {
    padding: 0 25px 0 10px;
}

/**
 * Assessment - full display
 */
.path-mod-workshop .assessment-full {
    border: 1px solid #ddd;
    margin: 0 auto 1em auto;
}

.path-mod-workshop .assessment-full .header {
    position: relative;
    background-color: #ddd;
    padding: 3px;
    min-height: 35px;
}

.path-mod-workshop .assessment-full .header .title {
    font-weight: bold;
}

.path-mod-workshop .assessment-full .header .title,
.path-mod-workshop .assessment-full .header .reviewer,
.path-mod-workshop .assessment-full .header .grade,
.path-mod-workshop .assessment-full .header .weight {
    margin: 0 0 0 40px;
}

.path-mod-workshop .assessment-full.anonymous .header .title,
.path-mod-workshop .assessment-full.anonymous .header .reviewer,
.path-mod-workshop .assessment-full.anonymous .header .grade,
.path-mod-workshop .assessment-full.anonymous .header .weight {
    margin: 0 0 0 5px;
}

.path-mod-workshop .assessment-full .header .reviewer .picture {
    position: absolute;
    top: 3px;
    left: 3px;
}
.dir-rtl.path-mod-workshop .assessment-full .header .reviewer .picture {
    right: 3px;
    left: auto;
}

.path-mod-workshop .assessment-full .header .actions {
    position: absolute;
    top: 5px;
    right: 5px;
    text-align: right;
}

.path-mod-workshop .assessment-full .header .actions .singlebutton,
.path-mod-workshop .assessment-full .header .actions .singlebutton form,
.path-mod-workshop .assessment-full .header .actions .singlebutton form div {
    display: inline;
}

.path-mod-workshop .assessment-full .assessment-form-wrapper,
.path-mod-workshop .assessment-full .overall-feedback-wrapper {
    margin-top: 0.5em;
    padding: 0 1em;
}

.path-mod-workshop .assessment-summary.graded .singlebutton input[type="submit"],
.path-mod-workshop .example-summary.graded .singlebutton input[type="submit"] {
    background-color: #e7f1c3;
}

.path-mod-workshop .assessment-summary.notgraded .singlebutton input[type="submit"],
.path-mod-workshop .example-summary.notgraded .singlebutton input[type="submit"] {
    background-color: #ffd3d9;
}

/**
 * Overall feedback
 */
.path-mod-workshop .assessment-full .overallfeedback .content,
.path-mod-workshop .assessment-full .overallfeedback .attachments {
    padding: 5px 10px;
}

.path-mod-workshop .assessment-full .overallfeedback .attachments .files img.icon {
    margin-right: 5px;
}

.path-mod-workshop .assessment-full .overallfeedback .attachments .images div {
    display: inline-block;
    margin: 5px;
    padding: 5px;
    border: 1px solid #ddd;
}

/**
 * Assessment form
 */
.path-mod-workshop .assessmentform .description {
    margin: 0 1em;
}

/**
 * Grading report
 */
.path-mod-workshop .grading-report {
    width: 100%;
    margin: 1em auto 1em auto;
    font-size: 80%;
    border: 1px solid #ddd;
}

.path-mod-workshop .grading-report .userpicture {
    margin: 0 3px;
    vertical-align: middle;
}

.path-mod-workshop .grading-report del {
    color: red;
    font-size: 90%;
    text-decoration: line-through;
}

.path-mod-workshop .grading-report ins {
    color: green;
    font-weight: bold;
    text-decoration: underline;
}

.path-mod-workshop .grading-report th {
    white-space: normal;
}

.path-mod-workshop .grading-report td {
    vertical-align: top;
    border: 1px solid #ddd;
}

.path-mod-workshop .grading-report tr.published td.submission {
    background-color: #d2ebff;
}

.path-mod-workshop .grading-report tr.published td.submission a {
    font-weight: bold;
}

.path-mod-workshop .grading-report .assessmentdetails {
    white-space: nowrap;
}

.path-mod-workshop .grading-report .receivedgrade span.grade,
.path-mod-workshop .grading-report .givengrade span.gradinggrade {
    font-weight: bold;
}

.path-mod-workshop .grading-report .submissiongrade.cell,
.path-mod-workshop .grading-report .gradinggrade.cell {
    text-align: center;
    font-size: 200%;
    white-space: nowrap;
}

.path-mod-workshop .grading-report .givengrade.null .user,
.path-mod-workshop .grading-report .receivedgrade.null .user {
    color: #e00;
}

/**
 * Final grades
 */
.path-mod-workshop #workshop-viewlet-yourgrades .finalgrades {
    text-align: center;
}

.path-mod-workshop #workshop-viewlet-yourgrades .finalgrades .grade {
    border: 1px solid #ddd;
    margin: 1em;
    padding: 2em;
    display: inline-block;
    -webkit-border-radius: 15px;
    -moz-border-radius: 15px;
    border-radius: 15px;
}

.path-mod-workshop #workshop-viewlet-yourgrades .finalgrades .grade.submissiongrade {
    background-color: #d2ebff;
}

.path-mod-workshop #workshop-viewlet-yourgrades .finalgrades .grade.assessmentgrade {
    background-color: #eee;
    /*background-color: #e7f1c3;*/
}

.path-mod-workshop #workshop-viewlet-yourgrades .finalgrades .grade .gradevalue {
    font-weight: bold;
    font-size: x-large;
    margin: 10px;
}

/**
 * Edit assessment form
 */
#mod-workshop-editform fieldset.fgroup * {
    vertical-align: top;
}

/**
 * Feedback
 */
.path-mod-workshop .feedback {
    border: 1px solid #ddd;
    margin: 0 auto 1em auto;
    width: 100%;
}

.path-mod-workshop .feedback .header {
    position: relative;
    background-color: #ddd;
    padding: 3px;
    min-height: 35px;
}

.path-mod-workshop .feedback .header .title {
    margin: 0 0 0 40px;
}

.path-mod-workshop .feedback .header .picture {
    position: absolute;
    top: 3px;
    left: 3px;
}

.path-mod-workshop .feedback .content {
    padding: 5px 10px;
}

/**
 * Misc
 */
.path-mod-workshop div.buttonsbar {
    text-align: center;
}

.path-mod-workshop div.buttonsbar .singlebutton {
    display: inline;
}

.path-mod-workshop .toolboxaction {
    margin-right: 1em;
}

.path-mod-workshop .toolboxaction,
.path-mod-workshop .toolboxaction .singlebutton,
.path-mod-workshop .toolboxaction .singlebutton form,
.path-mod-workshop .toolboxaction .singlebutton form div {
    display: inline;
}

.path-mod-workshop div.buttonwithhelp div {
    display: inline;
}

.path-mod-workshop #evaluationmethodchooser {
    margin: 2em auto;
    text-align: center;
}

.path-mod-workshop .lastmodified {
    line-height: 1.0em;
}

.path-mod-workshop .workshop-risk-dataloss {
    vertical-align: text-bottom;
}

#page-mod-zoom-view a .btn-primary .icon {
    color: white;
}

#mod-zoom-old-meetings-header {
    float: left;
}

#mod-zoom-meeting-room-participants,
#mod-zoom-meeting-room-participant-groups {
    list-style-type: none;
}

#mod-zoom-meeting-rooms-list .empty-alert {
    margin: auto;
    width: 80%;
    padding: 40% 0;
}

#mod-zoom-breakout-rooms-table {
    width: 100%;
    height: 400px;
}

#mod-zoom-breakout-rooms-table td:first-child {
    width: 20%;
}

#mod-zoom-breakout-rooms-table td:nth-child(2) {
    width: 80%;
}

#mod-zoom-breakout-rooms-table .delete-room {
    margin: -34px 5px;
    background: transparent;
    border: none;
}

#page-mod-zoom-participants .mimetypeicon {
    width: 24px;
    height: 24px;
}


/* enrol_lti styles */

#registration-tab-content .input-group button.btn {
    border: solid 1px #8f959e;
}
form#auto_submit {
    display: none;
}
#registration-tab-content .input-group button.btn span.pix {
    padding-left: 0.5rem;
}

.block_accessreview_success,
.block_accessreview.block_accessreview_success.hasinfo {
    color: #1e451e;
    background: #eff5ef;
    box-shadow: 0 0 2px 2px #619a61;
}

.block_accessreview_danger,
.block_accessreview.block_accessreview_danger.hasinfo {
    color: #6e211e;
    background: #fdf7f7;
    box-shadow: 0 0 2px 2px #da6960;
}

.block_accessreview_warning,
.block_accessreview.block_accessreview_warning.hasinfo {
    color: #694b21;
    background: #fdf2e3;
    box-shadow: 0 0 2px 2px #c97a0e;
}

.block_accessreview_table {
    border-bottom: 1px solid;
    border-color: #eee8e8;
}

.block_accessreview_links {
    display: flex;
    flex-flow: row;
    flex-wrap: wrap;
    justify-content: center;
}

.block_accessreview_link {
    padding-left: 10px;
    padding-right: 10px;
}

.block_accessreview_analysisbutton {
    text-align: center;
}

.block_activity_results h1 {
    margin: 4px;
    font-size: 1.1em;
}

.block_activity_results table.grades {
    text-align: left;
    width: 100%;
}

.block_activity_results table.grades .number {
    text-align: left;
    width: 10%;
}

.block_activity_results table.grades .name {
    text-align: left;
    width: 77%;
}

.block_activity_results table.grades .grade {
    text-align: right;
}

/**
 * AI Plugin Navigation Block Styles
 * Matches lms-labs.com design with solid blue (#3b82f6)
 * Mobile-first design with min 16px font sizes
 *
 * @package    block_aiplugin_nav
 * @copyright  2025 Essay Grader AI
 */



/* Plugin spotlight fonts, bundled in fonts/ (SIL OFL 1.1, see thirdpartylibs.xml). Moodle
   resolves the /theme/font.php/academi/core/1790824836/... placeholders, so no external font service is contacted. */

@font-face {
    font-family: "Archivo";
    font-style: normal;
    font-weight: 100 900;
    font-stretch: 62% 125%;
    font-display: swap;
    src: url(/theme/font.php/academi/block_aiplugin_nav/1790824836/archivo-latin-wdth.woff2) format("woff2");
}

@font-face {
    font-family: "Public Sans";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(/theme/font.php/academi/block_aiplugin_nav/1790824836/public-sans-latin-400.woff2) format("woff2");
}

@font-face {
    font-family: "Public Sans";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(/theme/font.php/academi/block_aiplugin_nav/1790824836/public-sans-latin-500.woff2) format("woff2");
}

@font-face {
    font-family: "Public Sans";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(/theme/font.php/academi/block_aiplugin_nav/1790824836/public-sans-latin-600.woff2) format("woff2");
}

@font-face {
    font-family: "Public Sans";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(/theme/font.php/academi/block_aiplugin_nav/1790824836/public-sans-latin-700.woff2) format("woff2");
}

@font-face {
    font-family: "Public Sans";
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url(/theme/font.php/academi/block_aiplugin_nav/1790824836/public-sans-latin-800.woff2) format("woff2");
}

@font-face {
    font-family: "IBM Plex Mono";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(/theme/font.php/academi/block_aiplugin_nav/1790824836/ibm-plex-mono-latin-500.woff2) format("woff2");
}

@font-face {
    font-family: "IBM Plex Mono";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(/theme/font.php/academi/block_aiplugin_nav/1790824836/ibm-plex-mono-latin-600.woff2) format("woff2");
}

/* Container - Full width horizontal bar */

/* Brand/Logo */

/* Navigation sections container */

/* Dropdown container */

/* Dropdown trigger button */

/* AI Moodle Support Button */

/* Dropdown menu */

/* Two-column dropdown for settings */

/* Install First badge for Central Config */

/* Configured badge (Central Config is installed) */

/* Dropdown items */

/* External links section */

/* Credits badge styles */

/* Credits display in top bar */

/* Icon base styles */

/* Use default Moodle block styling - background, border, shadow, and header */

/* AI Tools Quick Access Section */

/* Site Quick Links Section */

/* Responsive adjustments */

/* Dark mode support */

/* Create Link Button */

/* Custom Link with delete button */

/* Modal Overlay */

/* Modal */

/* Form Elements */

/* Icon Picker */

/* Buttons */

/* Dark mode for Create Link and Modal */

/* Custom Report in Dropdown */

/* Create Report Button in Dropdown */

/* Dark mode for custom reports */

/* ============================================
   Plugin Management Section (v1.6.0)
   ============================================ */

/* Plugin Management Header */

/* ========================================
   4-COLUMN GRID LAYOUT - Premium SaaS Design
   AI plugins span 2 columns, Blocks & Utilities each get 1 column
   ======================================== */

/* Group header for organizing plugins within a category */

/* AI plugins section uses 2-column grid inside */

/* Responsive: 2 columns stacked on large-medium screens (AI + Blocks row, then Time Saving row) */

/* Responsive: Single column on medium screens */

/* Responsive: 1 column on small screens */
@media (max-width: 768px) {

    /* Make plugin cards stack better on mobile */

    /* Hide docs link text on mobile, show only icon */
}

/* Plugin Grid (legacy) */

/* Plugin Card */

/* Compact icon variant - same as base but explicit */

/* Status Labels - Icon-only colored dots with tooltips */

/* Orange dot - In Testing */

/* Green dot - Ready */

/* Red/Orange dot - Update Available */

/* Purple dot - Purchase Required */

/* Update Button */

/* Not Installed Card Styling */

/* Install Now Button */

/* Action Column (v2.1.5) - Download/Purchase icons */

/* Download button - Green */

/* Install button - Blue (auto-install via AJAX) */

/* Install button - Testing mode (Orange - matches status-testing dot) */

/* Install success state */

/* Purchase button - Orange/Amber */

/* Go to plugin button - Blue */

/* Settings icon */

/* Installed indicator - Green circle with tick (1px border, not filled) */

/* Update available icon - Green square (same style as go to icon) */

/* Install First icon - Orange/Amber exterior link style */

/* Download button - Blue for uninstalled plugins */

/* Success Modal */

/* All-up-to-date toast (v2.3.81)
 * Appears inside the block when version check confirms every installed plugin is current.
 * Accent colour comes from var(--primary) which is set dynamically from the Moodle theme,
 * so it matches the site's brand colour with no hardcoded value. */

/* Plugin Update Popup (v2.3.83)
 * Full-screen modal shown after "Check for Updates" fires.
 * Orange gradient = updates available; green = all current. */

/* Up-to-date state */

/* Footer buttons */

/* Loading spinner */

@keyframes ainav-spin {
    to {
        transform: rotate(360deg);
    }
}

/* Auto-update button (v1.8.0) */

/* Upgrade prompt modal */

/* Dark mode for plugin management */
@media (prefers-color-scheme: dark) {

    /* Action column dark mode (v2.1.6) */
}

/* ==========================================
   MODERN ROW LAYOUT & BEAUTIFUL TOOLTIPS (v1.9.1)
   Mobile-first design with 16px base font
   ========================================== */

/* Mobile-first base - 16px font size */

/* Category Section - Full Width Row */

/* Plugin Grid - Responsive */

/* Category Header with Badge */

/* Category Title Row */

/* Plugin Card - Modern with Docs Link */

/* Left side: Icon + Name */

/* Right side: Docs Link + Version - Right-aligned */

/* Docs Link Button */

/* Compact Docs Link for Plugin Cards */

/* Version Badge */

/* Mobile Responsive */

/* ==========================================
   BEAUTIFUL HOVER TOOLTIPS
   ========================================== */

/* Tooltip Arrow */

/* Tooltip Content */

/* Tooltip Header */

/* Tooltip Description */

/* Tooltip Access Info */

/* Tooltip animation enhancement */

@keyframes tooltipPulse {
    0% {
        box-shadow:
            0 20px 25px -5px rgba(0, 0, 0, 0.1),
            0 8px 10px -6px rgba(0, 0, 0, 0.1),
            0 0 0 1px rgba(0, 0, 0, 0.05);
    }
    50% {
        box-shadow:
            0 25px 30px -5px rgba(59, 130, 246, 0.15),
            0 10px 12px -6px rgba(59, 130, 246, 0.1),
            0 0 0 2px rgba(59, 130, 246, 0.1);
    }
    100% {
        box-shadow:
            0 20px 25px -5px rgba(0, 0, 0, 0.1),
            0 8px 10px -6px rgba(0, 0, 0, 0.1),
            0 0 0 1px rgba(0, 0, 0, 0.05);
    }
}

/* Tooltip positioning for edge cards */

/* Dark mode tooltips */
/* ================================================
   CACHE MANAGEMENT SECTION (v2.0.4)
   Balanced design - not too big, not too small
   ================================================ */

/* Toggle switch */

/* Form select styling */

/* Modal footer */

/* Dark mode support for cache section */

/* ===== COLLAPSIBLE SECTION STYLES (v2.2.53) ===== */

/* Toggle button */

/* Toggle arrow icon */

/* Collapsed state - rotate arrow */

/* Collapsible content wrapper */

/* Collapsed content */

/* Header alignment with toggle */

/* Dark mode adjustments */

/* ========================================
   v2.4.51 — SUPER-GROUP LAYOUT
   AI & Learning Intelligence + Administration & Operations
   ======================================== */

/* Outer wrapper for both super-groups */

/* Super-group section header (the ✦ / ⚙ bar) */

/* Horizontal rule that fills remaining space */

/* Foundation plugin bar (Central Config) at the top of AI group */

/* Category column grid for AI super-group — 5 equal columns */

/* Category column grid for Admin super-group — adaptive columns */

/* AI-toned category card */

/* Admin-toned category card */

/* Responsive: collapse AI grid to 3 cols on medium screens */

/* ── Settings dropdown subheadings (v2.4.51) ─────────────────────────────── */

/* ===== World-class plugin finder (v2.4.56) ===== */
/**
 * AI Dashboard Quick Links block — v2 UI styles (block_aiplugin_nav v2.5.0).
 *
 * Styles for the new four-panel UI rendered by amd/src/ui.js into
 * <div class="ainav2" id="ainav2-root">. Ported from the approved mockup
 * (quicklinks.html). Appended to the end of the existing styles.css —
 * every selector below is scoped under .ainav2 so it cannot collide with,
 * or leak into, the legacy .ainav-* styles above or the host Moodle theme.
 *
 * Class names all start "ainav2-"; see amd/src/ui.js for the markup that
 * consumes them. The accent colour derives from the Moodle theme primary
 * via the --primary custom property the block root carries inline
 * (style="--primary:..."); see "Design tokens & theming" below.
 *
 * @package    block_aiplugin_nav
 * @copyright  2025 Essay Grader AI
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

/* ================================================================== *
 * Design tokens & theming
 *
 * Light tokens live on .ainav2 itself. Dark tokens are re-declared
 * twice: once under prefers-color-scheme so the block follows the
 * visitor's OS/browser preference, and once under the explicit
 * .ainav2-dark hook so a Moodle theme's own dark-mode toggle can force
 * it regardless of OS preference (higher specificity wins over the
 * media-query block). The 12 plugin-type hues and the semantic
 * ok/credit/warn colours are fixed brand colours and do NOT derive from
 * --primary.
 * ================================================================== */
.ainav2 {
    --ground: #ebe8e1;
    --surface: #fff;
    --surface-2: #f7f5f1;
    --surface-3: #f0ede7;
    --line: #ddd8cf;
    --line-soft: #e9e5dd;
    --ink: #12161b;
    --ink-2: #4b525a;
    --ink-3: #7e858e;
    /* Moodle theme primary drives the accent; the hex is only a fallback. */
    --accent: var(--primary, #0e6e68);
    --accent-2: color-mix(in srgb, var(--accent) 80%, white);
    --accent-soft: color-mix(in srgb, var(--accent) 11%, white);
    --accent-ink: color-mix(in srgb, var(--accent) 72%, black);
    --credit: #a9690c;
    --credit-soft: #f9efdd;
    --ok: #2c7643;
    --ok-soft: #e3f0e7;
    --warn: #b4472c;
    --warn-soft: #fae9e4;
    --e1: 0 1px 2px rgba(18, 22, 27, .05);
    --e2: 0 1px 2px rgba(18, 22, 27, .05), 0 6px 16px -8px rgba(18, 22, 27, .16);
    --e3: 0 1px 2px rgba(18, 22, 27, .06), 0 18px 40px -20px rgba(18, 22, 27, .3);
    --r: 10px;

    box-sizing: border-box;
    background: var(--surface);
    color: var(--ink);
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: var(--e3);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    font-family: "Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    font-size: 14.5px;
    line-height: 1.4;
    -webkit-font-smoothing: antialiased;
    max-width: 100%;
}
.ainav2 *,
.ainav2 *::before,
.ainav2 *::after {
    box-sizing: border-box;
}
.ainav2 img,
.ainav2 svg {
    max-width: 100%;
}

/* ------------------------------------------------------------------ *
 * Theme isolation.
 *
 * Moodle themes are Bootstrap-based and style bare <a> and <button>
 * elements hard: a:hover / a:focus repaint text in the theme link
 * colour, and button carries the theme's own background. Inside this
 * block every interactive surface paints itself, so the theme's
 * colouring is neutralised here first. Without this you get the
 * theme's link blue landing on our accent-blue hover backgrounds, and
 * white theme text landing on our white hover surfaces.
 *
 * Specificity is deliberately low (0,2,1 at most) so every
 * .ainav2 .ainav2-* rule below still wins. Do not add !important.
 * ------------------------------------------------------------------ */
.ainav2 a,
.ainav2 a:link,
.ainav2 a:visited,
.ainav2 a:hover,
.ainav2 a:focus,
.ainav2 a:active {
    color: inherit;
    text-decoration: none;
    background-color: transparent;
}
.ainav2 button,
.ainav2 button:hover,
.ainav2 button:focus,
.ainav2 button:active {
    color: inherit;
    font-family: inherit;
    text-decoration: none;
    box-shadow: none;
}

@media (prefers-color-scheme: dark) {
    .ainav2 {
        --ground: #0b0e11;
        --surface: #151a20;
        --surface-2: #1c222a;
        --surface-3: #222a33;
        --line: #2b333d;
        --line-soft: #242b34;
        --ink: #e9ebee;
        --ink-2: #a9b1ba;
        --ink-3: #79818b;
        --accent: color-mix(in srgb, var(--primary, #0e6e68) 68%, #8fe6dc);
        --accent-2: color-mix(in srgb, var(--accent) 82%, white);
        --accent-soft: color-mix(in srgb, var(--accent) 20%, #0b0e11);
        --accent-ink: color-mix(in srgb, var(--accent) 72%, white);
        --credit: #dfa349;
        --credit-soft: #31250f;
        --ok: #5fba7b;
        --ok-soft: #152e1e;
        --warn: #e0785c;
        --warn-soft: #33190f;
        --e1: 0 1px 2px rgba(0, 0, 0, .4);
        --e2: 0 1px 2px rgba(0, 0, 0, .4), 0 6px 16px -8px rgba(0, 0, 0, .6);
        --e3: 0 1px 2px rgba(0, 0, 0, .5), 0 18px 40px -20px rgba(0, 0, 0, .9);
    }
}
/* Explicit override hook: a Moodle theme's own dark-mode class wins over
   both the light default and the OS media query above. */
.ainav2.ainav2-dark {
    --ground: #0b0e11;
    --surface: #151a20;
    --surface-2: #1c222a;
    --surface-3: #222a33;
    --line: #2b333d;
    --line-soft: #242b34;
    --ink: #e9ebee;
    --ink-2: #a9b1ba;
    --ink-3: #79818b;
    --accent: color-mix(in srgb, var(--primary, #0e6e68) 68%, #8fe6dc);
    --accent-2: color-mix(in srgb, var(--accent) 82%, white);
    --accent-soft: color-mix(in srgb, var(--accent) 20%, #0b0e11);
    --accent-ink: color-mix(in srgb, var(--accent) 72%, white);
    --credit: #dfa349;
    --credit-soft: #31250f;
    --ok: #5fba7b;
    --ok-soft: #152e1e;
    --warn: #e0785c;
    --warn-soft: #33190f;
    --e1: 0 1px 2px rgba(0, 0, 0, .4);
    --e2: 0 1px 2px rgba(0, 0, 0, .4), 0 6px 16px -8px rgba(0, 0, 0, .6);
    --e3: 0 1px 2px rgba(0, 0, 0, .5), 0 18px 40px -20px rgba(0, 0, 0, .9);
}

/* Text colour on the accent fill flips between white (light theme) and a
   near-black ink (dark theme, where --accent is already a pale mix). */
.ainav2 .ainav2-mark,
.ainav2 .ainav2-ico,
.ainav2 .ainav2-sico,
.ainav2 .ainav2-tico,
.ainav2 .ainav2-aico,
.ainav2 .ainav2-chip[aria-pressed="true"],
.ainav2 .ainav2-bulk:hover,
.ainav2 .ainav2-rowact,
.ainav2 .ainav2-rowact:hover,
.ainav2 .ainav2-rowact:focus,
.ainav2 .ainav2-rowact:active,
.ainav2 .ainav2-get,
.ainav2 .ainav2-get:hover,
.ainav2 .ainav2-get:focus,
.ainav2 .ainav2-get:active,
.ainav2 .ainav2-savebtn:hover,
.ainav2 .ainav2-docs:hover,
.ainav2 .ainav2-btn.ainav2-primary,
.ainav2 .ainav2-btn.ainav2-primary:hover,
.ainav2 .ainav2-btn.ainav2-primary:focus,
.ainav2 .ainav2-btn.ainav2-primary:active,
.ainav2 .ainav2-ibtn[aria-pressed="true"],
.ainav2 .ainav2-ibtn[aria-pressed="true"]:hover,
.ainav2 .ainav2-ibtn[aria-pressed="true"]:focus,
.ainav2 .ainav2-ibtn[aria-pressed="true"]:active,
.ainav2 .ainav2-alert .ainav2-act,
.ainav2 .ainav2-alert .ainav2-act:hover,
.ainav2 .ainav2-alert .ainav2-act:focus,
.ainav2 .ainav2-alert .ainav2-act:active {
    color: #fff;
}

@media (prefers-color-scheme: dark) {
    .ainav2 .ainav2-mark,
    .ainav2 .ainav2-ico,
    .ainav2 .ainav2-sico,
    .ainav2 .ainav2-tico,
    .ainav2 .ainav2-aico,
    .ainav2 .ainav2-chip[aria-pressed="true"],
    .ainav2 .ainav2-bulk:hover,
    .ainav2 .ainav2-rowact,
    .ainav2 .ainav2-rowact:hover,
    .ainav2 .ainav2-rowact:focus,
    .ainav2 .ainav2-rowact:active,
    .ainav2 .ainav2-get,
    .ainav2 .ainav2-get:hover,
    .ainav2 .ainav2-get:focus,
    .ainav2 .ainav2-get:active,
    .ainav2 .ainav2-savebtn:hover,
    .ainav2 .ainav2-docs:hover,
    .ainav2 .ainav2-btn.ainav2-primary,
    .ainav2 .ainav2-btn.ainav2-primary:hover,
    .ainav2 .ainav2-btn.ainav2-primary:focus,
    .ainav2 .ainav2-btn.ainav2-primary:active,
    .ainav2 .ainav2-ibtn[aria-pressed="true"],
    .ainav2 .ainav2-ibtn[aria-pressed="true"]:hover,
    .ainav2 .ainav2-ibtn[aria-pressed="true"]:focus,
    .ainav2 .ainav2-ibtn[aria-pressed="true"]:active {
        color: #04201d;
    }
    .ainav2 .ainav2-alert .ainav2-act,
    .ainav2 .ainav2-alert .ainav2-act:hover,
    .ainav2 .ainav2-alert .ainav2-act:focus,
    .ainav2 .ainav2-alert .ainav2-act:active {
        color: #0b0e11;
    }
}
.ainav2.ainav2-dark .ainav2-mark,
.ainav2.ainav2-dark .ainav2-ico,
.ainav2.ainav2-dark .ainav2-sico,
.ainav2.ainav2-dark .ainav2-tico,
.ainav2.ainav2-dark .ainav2-aico,
.ainav2.ainav2-dark .ainav2-chip[aria-pressed="true"],
.ainav2.ainav2-dark .ainav2-bulk:hover,
.ainav2.ainav2-dark .ainav2-rowact,
.ainav2.ainav2-dark .ainav2-rowact:hover,
.ainav2.ainav2-dark .ainav2-rowact:focus,
.ainav2.ainav2-dark .ainav2-rowact:active,
.ainav2.ainav2-dark .ainav2-get,
.ainav2.ainav2-dark .ainav2-get:hover,
.ainav2.ainav2-dark .ainav2-get:focus,
.ainav2.ainav2-dark .ainav2-get:active,
.ainav2.ainav2-dark .ainav2-savebtn:hover,
.ainav2.ainav2-dark .ainav2-docs:hover,
.ainav2.ainav2-dark .ainav2-btn.ainav2-primary,
.ainav2.ainav2-dark .ainav2-btn.ainav2-primary:hover,
.ainav2.ainav2-dark .ainav2-btn.ainav2-primary:focus,
.ainav2.ainav2-dark .ainav2-btn.ainav2-primary:active,
.ainav2.ainav2-dark .ainav2-ibtn[aria-pressed="true"],
.ainav2.ainav2-dark .ainav2-ibtn[aria-pressed="true"]:hover,
.ainav2.ainav2-dark .ainav2-ibtn[aria-pressed="true"]:focus,
.ainav2.ainav2-dark .ainav2-ibtn[aria-pressed="true"]:active {
    color: #04201d;
}
.ainav2.ainav2-dark .ainav2-alert .ainav2-act,
.ainav2.ainav2-dark .ainav2-alert .ainav2-act:hover,
.ainav2.ainav2-dark .ainav2-alert .ainav2-act:focus,
.ainav2.ainav2-dark .ainav2-alert .ainav2-act:active {
    color: #0b0e11;
}

/* ================================================================== *
 * Reduced motion — turned off wherever the mockup animates or
 * transitions. Grouped here as one blanket kill-switch plus the two
 * transform-specific exceptions the mockup calls out individually.
 * ================================================================== */
@media (prefers-reduced-motion: reduce) {
    .ainav2 .ainav2-card,
    .ainav2 .ainav2-fam,
    .ainav2 .ainav2-support,
    .ainav2 .ainav2-pl,
    .ainav2 .ainav2-chev,
    .ainav2 .ainav2-sw,
    .ainav2 .ainav2-sw::after,
    .ainav2-rowtip,
    .ainav2 .ainav2-helpcard {
        transition: none;
    }
    .ainav2 .ainav2-creditbox.ainav2-low .ainav2-lamp {
        animation: none;
    }
    .ainav2-rowtip,
    .ainav2-rowtip.ainav2-show,
    .ainav2 .ainav2-helpcard,
    .ainav2 .ainav2-helpcard.ainav2-show {
        transform: none;
    }
    .ainav2-rowtip {
        transition: opacity .12s ease;
    }
    .ainav2 .ainav2-helpcard {
        transition: opacity .12s ease;
    }
}

/* ================================================================== *
 * Block head — brand / credits / search, three-panel grid
 * ================================================================== */
.ainav2 .ainav2-bhead {
    position: relative;
    padding: 14px 18px 13px;
    border-bottom: 1px solid var(--line);
    background: linear-gradient(180deg, var(--surface-2), var(--surface));
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: stretch;
    gap: 12px;
}
.ainav2 .ainav2-bhead::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 1px;
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 45%, transparent), transparent);
}

.ainav2 .ainav2-brandrow {
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 58px;
    padding: 9px 12px;
    border-radius: 9px;
    background: linear-gradient(135deg, var(--accent-soft), var(--surface));
    border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line));
    box-shadow: var(--e1);
}
.ainav2 .ainav2-btext {
    min-width: 0;
}
.ainav2 .ainav2-brandrow h2 {
    font-family: Archivo, sans-serif;
    font-size: 17px;
    font-weight: 600;
    margin: 0;
    flex: 1;
    letter-spacing: -.015em;
    white-space: nowrap;
    color: var(--ink);
}
.ainav2 .ainav2-bsub {
    font-size: 13px;
    color: var(--ink-3);
    margin-top: 2px;
    white-space: nowrap;
}
.ainav2 .ainav2-blink {
    color: var(--accent-ink);
    text-decoration: none;
    font-weight: 600;
}
.ainav2 .ainav2-blink:hover {
    color: var(--accent-ink);
    text-decoration: underline;
}
.ainav2 .ainav2-blink:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
    border-radius: 3px;
}
.ainav2 .ainav2-mark {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    flex: none;
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, var(--accent-2), var(--accent));
    box-shadow: var(--e1);
}
.ainav2 .ainav2-mark svg {
    width: 16px;
    height: 16px;
}

.ainav2 .ainav2-creditbox {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    padding: 9px 12px;
    border-radius: 9px;
    box-shadow: var(--e1);
    min-height: 58px;
    /* Traffic-light state. The plain --surface background and --line-soft border
       these replaced were dead declarations, overridden on the very next lines. */
    border: 1px solid color-mix(in srgb, var(--sig) 34%, var(--line));
    background: linear-gradient(135deg, color-mix(in srgb, var(--sig) 13%, var(--surface)), var(--surface));
}
.ainav2 .ainav2-creditbox.ainav2-ok {
    --sig: var(--ok);
}
.ainav2 .ainav2-creditbox.ainav2-warn {
    --sig: var(--credit);
}
.ainav2 .ainav2-creditbox.ainav2-low {
    --sig: var(--warn);
}
.ainav2 .ainav2-creditrow {
    display: flex;
    align-items: baseline;
    gap: 6px;
}
.ainav2 .ainav2-amt {
    font-family: "IBM Plex Mono", monospace;
    font-size: 18.5px;
    font-weight: 500;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    color: var(--sig);
}
.ainav2 .ainav2-lab {
    font-size: 13px;
    color: var(--ink-3);
    letter-spacing: .04em;
    text-transform: uppercase;
    flex: 1;
}
.ainav2 .ainav2-topup {
    border: 1px solid var(--line);
    background: var(--surface-2);
    color: var(--ink-2);
    border-radius: 6px;
    padding: 3px 9px;
    font: inherit;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}
.ainav2 .ainav2-topup:hover {
    border-color: var(--credit);
    color: var(--credit);
    background: var(--credit-soft);
}
.ainav2 .ainav2-topup:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}
.ainav2 .ainav2-topup.ainav2-urgent {
    border-color: var(--warn);
    color: var(--warn);
    background: var(--warn-soft);
    font-weight: 600;
}
.ainav2 .ainav2-topup.ainav2-urgent:hover {
    background: var(--warn);
    color: #fff;
}
.ainav2 .ainav2-lamp {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--sig);
    flex: none;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--sig) 18%, transparent);
}
.ainav2 .ainav2-creditbox.ainav2-low .ainav2-lamp {
    animation: ainav2-pulse 1.15s ease-in-out infinite;
}

@keyframes ainav2-pulse {
    0%,
    100% {
        box-shadow: 0 0 0 3px color-mix(in srgb, var(--sig) 18%, transparent);
        opacity: 1;
    }
    50% {
        box-shadow: 0 0 0 7px color-mix(in srgb, var(--sig) 6%, transparent);
        opacity: .55;
    }
}
.ainav2 .ainav2-meterlab {
    font-size: 12.5px;
    color: var(--ink-3);
}
.ainav2 .ainav2-creditbox.ainav2-low .ainav2-meterlab {
    color: var(--warn);
    font-weight: 500;
}

.ainav2 .ainav2-searchwrap {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 58px;
    padding: 0 12px;
    border-radius: 9px;
    background: var(--surface);
    border: 1px solid var(--line-soft);
    box-shadow: var(--e1);
}
.ainav2 .ainav2-searchwrap:focus-within {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}
.ainav2 .ainav2-searchwrap > svg {
    position: absolute;
    left: 14px;
    width: 14px;
    height: 14px;
    color: var(--ink-3);
    pointer-events: none;
}
.ainav2 #ainav2-q {
    width: 100%;
    height: 100%;
    font: inherit;
    font-size: 15px;
    padding: 8px 26px 8px 24px;
    border: 0;
    background: none;
    color: var(--ink);
}
.ainav2 #ainav2-q::placeholder {
    color: var(--ink-3);
}
.ainav2 #ainav2-q:focus {
    outline: none;
}
.ainav2 .ainav2-clearq {
    position: absolute;
    right: 8px;
    border: 0;
    background: none;
    cursor: pointer;
    color: var(--ink-3);
    font-size: 16.5px;
    line-height: 1;
    padding: 4px 6px;
    border-radius: 5px;
}
.ainav2 .ainav2-clearq:hover {
    color: var(--ink);
    background: var(--surface-2);
}
.ainav2 .ainav2-clearq:focus-visible {
    outline: 2px solid var(--accent);
}

@media (max-width: 860px) {
    .ainav2 .ainav2-bhead {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .ainav2 .ainav2-brandrow,
    .ainav2 .ainav2-creditbox,
    .ainav2 .ainav2-searchwrap {
        min-height: 52px;
    }
}

/* ================================================================== *
 * Home view — Moodle tiles, nav cards, status strip, product cards
 * ================================================================== */
.ainav2 .ainav2-home.ainav2-hide {
    display: none;
}

.ainav2 .ainav2-corehead {
    font-family: Archivo, sans-serif;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ink-3);
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 14px 18px 0;
}
.ainav2 .ainav2-corehead::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--line-soft);
}
.ainav2 .ainav2-core {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
    gap: 8px;
    padding: 12px 18px 4px;
}
.ainav2 .ainav2-corebtn {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    padding: 9px 5px;
    border-radius: 9px;
    border: 1px solid var(--line-soft);
    background: var(--surface-2);
    color: var(--ink-2);
    text-decoration: none;
    font-size: 12.5px;
    text-align: center;
    line-height: 1.25;
}
.ainav2 .ainav2-corebtn:hover {
    border-color: var(--accent);
    color: var(--accent-ink);
    background: var(--accent-soft);
}
.ainav2 .ainav2-corebtn:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}
.ainav2 .ainav2-corebtn svg {
    width: 15px;
    height: 15px;
}
.ainav2 .ainav2-corebtn.ainav2-mine {
    border-style: solid;
    border-color: color-mix(in srgb, var(--accent) 35%, var(--line));
    background: var(--accent-soft);
    color: var(--accent-ink);
}
.ainav2 .ainav2-del {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--ink-3);
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 0;
    box-shadow: var(--e1);
}
.ainav2 .ainav2-corebtn:hover .ainav2-del,
.ainav2 .ainav2-corebtn:focus-within .ainav2-del {
    display: flex;
}
.ainav2 .ainav2-del:hover {
    border-color: var(--warn);
    color: var(--warn);
    background: var(--warn-soft);
}
.ainav2 .ainav2-del:focus-visible {
    outline: 2px solid var(--accent);
}

@media (hover: none) {
    .ainav2 .ainav2-del {
        display: flex;
    }
}
/* Inline delete button used on custom link/report rows (not the
   corebtn positioning context above): sits in the flow, always visible. */
.ainav2 .ainav2-del.ainav2-inline {
    position: static;
    margin-left: auto;
    display: inline-flex;
}

.ainav2 .ainav2-addtile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 9px 5px;
    border: 1px dashed var(--line);
    border-radius: 9px;
    background: none;
    color: var(--ink-3);
    cursor: pointer;
    font: inherit;
    font-size: 12.5px;
    line-height: 1.25;
}
.ainav2 .ainav2-addtile:hover {
    border-color: var(--accent);
    color: var(--accent-ink);
    background: var(--accent-soft);
    border-style: solid;
}
.ainav2 .ainav2-addtile:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}
.ainav2 .ainav2-addtile svg {
    width: 15px;
    height: 15px;
}

.ainav2 .ainav2-cards {
    display: grid;
    /* Sized from the block's own width — see .ainav2-strip. */
    grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
    gap: 12px;
    padding: 14px 18px 6px;
}
.ainav2 .ainav2-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding: 13px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--line));
    border-radius: 11px;
    background: linear-gradient(135deg, var(--accent-soft), var(--surface));
    box-shadow: var(--e1);
    cursor: pointer;
    text-align: left;
    font: inherit;
    color: var(--ink);
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
    min-width: 0;
}
.ainav2 .ainav2-card:hover {
    border-color: var(--accent);
    box-shadow: var(--e2);
    transform: translateY(-2px);
}
.ainav2 .ainav2-card:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}
.ainav2 .ainav2-ico {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    display: grid;
    place-items: center;
    background: var(--accent);
    box-shadow: var(--e1);
}
.ainav2 .ainav2-ico svg {
    width: 16px;
    height: 16px;
}
.ainav2 .ainav2-card .ainav2-lbl {
    font-family: Archivo, sans-serif;
    font-weight: 600;
    font-size: 16px;
    letter-spacing: -.01em;
}
.ainav2 .ainav2-card .ainav2-meta {
    display: flex;
    align-items: baseline;
    gap: 5px;
    margin-top: -5px;
}
.ainav2 .ainav2-card .ainav2-n {
    font-family: "IBM Plex Mono", monospace;
    font-size: 23px;
    font-weight: 500;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.ainav2 .ainav2-card .ainav2-unit {
    font-size: 13px;
    color: var(--ink-3);
}
.ainav2 .ainav2-card .ainav2-sub {
    font-size: 13.5px;
    color: var(--ink-3);
    line-height: 1.4;
}
.ainav2 .ainav2-flag {
    position: absolute;
    top: 11px;
    right: 11px;
    font-family: "IBM Plex Mono", monospace;
    font-size: 12px;
    padding: 2px 6px;
    border-radius: 999px;
    background: var(--warn-soft);
    color: var(--warn);
    border: 1px solid color-mix(in srgb, var(--warn) 25%, transparent);
}

.ainav2 .ainav2-strip {
    padding: 10px 18px 16px;
    display: grid;
    /* The block lives in a dashboard column that is often far narrower than the
       window, so viewport media queries never fire when this row runs out of
       room. Auto-fit sizes the row from its own width instead. */
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 10px;
    align-items: stretch;
}
.ainav2 .ainav2-support {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 0;
    padding: 12px;
    border-radius: 10px;
    text-decoration: none;
    border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line));
    background: linear-gradient(135deg, var(--accent-soft), var(--surface));
    box-shadow: var(--e1);
    transition: transform .16s ease, box-shadow .16s ease;
    min-width: 0;
}
.ainav2 .ainav2-support:hover {
    transform: translateY(-1px);
    box-shadow: var(--e2);
    border-color: var(--accent);
}
.ainav2 .ainav2-support:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}
.ainav2 .ainav2-support .ainav2-sico {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    flex: none;
    display: grid;
    place-items: center;
    background: var(--accent);
    box-shadow: var(--e1);
}
.ainav2 .ainav2-support .ainav2-sico svg {
    width: 16px;
    height: 16px;
}
.ainav2 .ainav2-support .ainav2-sbody {
    flex: 1;
    min-width: 0;
}
.ainav2 .ainav2-support .ainav2-stitle {
    font-family: Archivo, sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -.01em;
}
.ainav2 .ainav2-support .ainav2-sdesc {
    font-size: 13.5px;
    color: var(--ink-3);
    margin-top: 2px;
    line-height: 1.4;
}
.ainav2 .ainav2-support .ainav2-sarrow {
    color: var(--accent-ink);
    flex: none;
    line-height: 0;
}
.ainav2 .ainav2-support .ainav2-sarrow svg {
    width: 15px;
    height: 15px;
}

.ainav2 .ainav2-alert {
    --sc: var(--warn);
    position: relative;
    display: flex;
    /* The body sits between a fixed icon and one or two nowrap buttons. Without
       wrapping the buttons win every time and the text is squeezed to a single
       character per line, so the buttons drop to their own row instead. */
    flex-wrap: wrap;
    align-items: center;
    gap: 11px;
    padding: 12px;
    border-radius: 10px;
    background: linear-gradient(135deg, color-mix(in srgb, var(--sc) 13%, var(--surface)), var(--surface));
    border: 1px solid color-mix(in srgb, var(--sc) 32%, var(--line));
    box-shadow: var(--e1);
    overflow: hidden;
    min-width: 0;
}
.ainav2 .ainav2-alert.ainav2-clickable {
    cursor: pointer;
}
.ainav2 .ainav2-alert.ainav2-clickable:hover {
    border-color: var(--sc);
    box-shadow: var(--e2);
}
.ainav2 .ainav2-alert.ainav2-calm {
    --sc: var(--ok);
}
.ainav2 .ainav2-alert .ainav2-aico {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    flex: none;
    display: grid;
    place-items: center;
    background: var(--sc);
    box-shadow: var(--e1);
}
.ainav2 .ainav2-alert .ainav2-aico svg {
    width: 16px;
    height: 16px;
}
.ainav2 .ainav2-alert .ainav2-abody {
    /* A real flex-basis is what makes the line overflow and therefore wrap;
       with a basis of 0 the buttons always appear to fit. */
    flex: 1 1 150px;
    min-width: 0;
}
.ainav2 .ainav2-alert .ainav2-atop {
    display: flex;
    align-items: baseline;
    gap: 6px;
}
.ainav2 .ainav2-alert .ainav2-anum {
    font-family: "IBM Plex Mono", monospace;
    font-size: 21px;
    font-weight: 500;
    line-height: 1;
    color: var(--sc);
    font-variant-numeric: tabular-nums;
}
.ainav2 .ainav2-alert .ainav2-atitle {
    font-family: Archivo, sans-serif;
    font-size: 14.5px;
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -.01em;
}
.ainav2 .ainav2-alert .ainav2-adesc {
    font-size: 13.5px;
    color: var(--ink-3);
    margin-top: 3px;
    line-height: 1.4;
}
.ainav2 .ainav2-alert .ainav2-act {
    border: 1px solid var(--sc);
    background: var(--sc);
    border-radius: 7px;
    padding: 5px 11px;
    font: inherit;
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    flex: none;
    white-space: nowrap;
}
.ainav2 .ainav2-alert .ainav2-act:hover {
    filter: brightness(1.08);
}
.ainav2 .ainav2-alert .ainav2-act:focus-visible {
    outline: 2px solid var(--sc);
    outline-offset: 2px;
}
.ainav2 .ainav2-pulse {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--sc);
    flex: none;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--sc) 20%, transparent);
}

@media (max-width: 420px) {
    .ainav2 .ainav2-support,
    .ainav2 .ainav2-alert {
        padding: 11px;
    }
    .ainav2 .ainav2-alert .ainav2-anum {
        font-size: 18.5px;
    }
    .ainav2 .ainav2-support .ainav2-sdesc,
    .ainav2 .ainav2-alert .ainav2-adesc {
        font-size: 13px;
    }
}

/* ---- "our other products" cross-sell cards ---- */
.ainav2 .ainav2-family {
    padding: 2px 18px 16px;
    display: grid;
    /* Sized from the block's own width — see .ainav2-strip. */
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
}
.ainav2 .ainav2-famhead {
    grid-column: 1 / -1;
    font-family: Archivo, sans-serif;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ink-3);
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 4px 0 2px;
}
.ainav2 .ainav2-famhead::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--line-soft);
}
.ainav2 .ainav2-fam {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px;
    border-radius: 10px;
    text-decoration: none;
    border: 1px solid color-mix(in srgb, var(--fc) 30%, var(--line));
    background: linear-gradient(135deg, color-mix(in srgb, var(--fc) 12%, var(--surface)), var(--surface));
    box-shadow: var(--e1);
    overflow: hidden;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
    min-width: 0;
}
.ainav2 .ainav2-fam:hover {
    transform: translateY(-2px);
    box-shadow: var(--e2);
    border-color: color-mix(in srgb, var(--fc) 55%, var(--line));
}
.ainav2 .ainav2-fam:focus-visible {
    outline: 2px solid var(--fc);
    outline-offset: 2px;
}
.ainav2 .ainav2-fam .ainav2-fico.ainav2-logo {
    background: none;
    box-shadow: none;
    padding: 0;
    overflow: hidden;
}
.ainav2 .ainav2-fam .ainav2-fico.ainav2-logo svg,
.ainav2 .ainav2-fam .ainav2-fico.ainav2-logo img {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    display: block;
    object-fit: contain;
}
.ainav2 .ainav2-fam .ainav2-fico {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    flex: none;
    display: grid;
    place-items: center;
    background: var(--fc);
    color: #fff;
    box-shadow: var(--e1);
    font-family: Archivo, sans-serif;
    font-weight: 700;
    font-size: 14px;
    letter-spacing: -.02em;
}
.ainav2 .ainav2-fam .ainav2-fbody {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}
.ainav2 .ainav2-fam .ainav2-fname {
    display: flex;
    align-items: baseline;
    gap: 6px;
    flex-wrap: wrap;
}
.ainav2 .ainav2-fam .ainav2-fname b {
    font-family: Archivo, sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -.01em;
}
.ainav2 .ainav2-fam .ainav2-fkind {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--fc);
    background: color-mix(in srgb, var(--fc) 12%, transparent);
    border-radius: 999px;
    padding: 1px 7px;
}
.ainav2 .ainav2-fam .ainav2-fdesc {
    font-size: 13.5px;
    color: var(--ink-3);
    line-height: 1.45;
    margin-top: 3px;
}
.ainav2 .ainav2-fam .ainav2-fprice {
    font-family: "IBM Plex Mono", monospace;
    font-size: 13px;
    color: var(--ink-2);
    margin-top: 6px;
    font-variant-numeric: tabular-nums;
}
.ainav2 .ainav2-fam .ainav2-farrow {
    position: absolute;
    top: 10px;
    right: 10px;
    color: var(--ink-3);
    flex: none;
    line-height: 0;
}
.ainav2 .ainav2-fam .ainav2-farrow svg {
    width: 13px;
    height: 13px;
}
.ainav2 .ainav2-fam .ainav2-ftop {
    display: flex;
    align-items: center;
    gap: 9px;
}
.ainav2 .ainav2-fam:hover .ainav2-farrow {
    color: var(--fc);
}

@media (prefers-reduced-motion: reduce) {
    .ainav2 .ainav2-card:hover,
    .ainav2 .ainav2-fam:hover {
        transform: none;
    }
}

@media (hover: none) {
    .ainav2 .ainav2-card:hover,
    .ainav2 .ainav2-fam:hover {
        transform: none;
    }
}

/* ================================================================== *
 * Panel — header, toolbar (chips / status / type / sort), row list
 * ================================================================== */
.ainav2 .ainav2-panel {
    display: none;
    flex-direction: column;
}
.ainav2 .ainav2-panel.ainav2-show {
    display: flex;
}
.ainav2 .ainav2-phead {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 18px 10px;
}
.ainav2 .ainav2-back {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--ink-2);
    border-radius: 7px;
    padding: 5px 10px 5px 7px;
    font: inherit;
    font-size: 14px;
    cursor: pointer;
    box-shadow: var(--e1);
}
.ainav2 .ainav2-back:hover {
    border-color: var(--accent);
    color: var(--accent-ink);
    background: var(--accent-soft);
}
.ainav2 .ainav2-back:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}
.ainav2 .ainav2-back svg {
    width: 12px;
    height: 12px;
}
.ainav2 .ainav2-ptitle {
    font-family: Archivo, sans-serif;
    font-weight: 600;
    font-size: 15px;
    letter-spacing: .03em;
    text-transform: uppercase;
    flex: 1;
}
.ainav2 .ainav2-pcount {
    font-family: "IBM Plex Mono", monospace;
    font-size: 13px;
    color: var(--ink-3);
    background: var(--surface-2);
    border: 1px solid var(--line-soft);
    border-radius: 6px;
    padding: 2px 7px;
    font-variant-numeric: tabular-nums;
}

.ainav2 .ainav2-toolbar {
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding: 0 18px 11px;
    border-bottom: 1px solid var(--line-soft);
    min-width: 0;
}
.ainav2 .ainav2-chips {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
    min-width: 0;
}
.ainav2 .ainav2-chip {
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--ink-2);
    border-radius: 999px;
    padding: 3px 10px;
    font: inherit;
    font-size: 13.5px;
    cursor: pointer;
    white-space: nowrap;
}
.ainav2 .ainav2-chip:hover {
    border-color: var(--accent);
    color: var(--accent-ink);
}
.ainav2 .ainav2-chip:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}
.ainav2 .ainav2-chip[aria-pressed="true"] {
    background: var(--accent);
    border-color: var(--accent);
    font-weight: 500;
}
.ainav2 .ainav2-chip .ainav2-cn {
    font-family: "IBM Plex Mono", monospace;
    font-size: 12px;
    opacity: .7;
    margin-left: 3px;
}

.ainav2 .ainav2-subbar {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    flex-wrap: wrap;
}

/* ---- "Check for updates" on the updates card, and its failed state ---- */
.ainav2 .ainav2-recheck {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--ink-2);
    border-radius: 8px;
    padding: 6px 11px;
    font: inherit;
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: border-color .12s ease, color .12s ease, background .12s ease;
}
.ainav2 .ainav2-recheck svg {
    width: 13px;
    height: 13px;
}
.ainav2 .ainav2-recheck:hover {
    border-color: var(--accent);
    color: var(--accent-ink);
    background: var(--accent-soft);
}
.ainav2 .ainav2-recheck:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}
.ainav2 .ainav2-recheck[disabled] {
    opacity: .6;
    cursor: default;
}
.ainav2 .ainav2-recheck[disabled] svg {
    animation: ainav2-spin .9s linear infinite;
}

@keyframes ainav2-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ainav2 .ainav2-recheck[disabled] svg {
        animation: none;
    }
}
/* A failed check is a warning, not a clean zero. */
.ainav2 .ainav2-alert.ainav2-warnstate {
    border-color: color-mix(in srgb, var(--warn) 40%, var(--line));
    background: linear-gradient(180deg, var(--warn-soft), var(--surface));
}
.ainav2 .ainav2-alert.ainav2-warnstate .ainav2-anum {
    color: var(--warn);
}

/* ---- install receipt: what the last unlocks actually cost ---- */
.ainav2 .ainav2-spend {
    margin: 0 0 14px;
    border: 1px solid color-mix(in srgb, var(--ok) 30%, var(--line));
    background: linear-gradient(180deg, var(--ok-soft), var(--surface));
    border-radius: var(--r);
    padding: 12px 14px;
}
.ainav2 .ainav2-sphead {
    display: flex;
    align-items: center;
    gap: 10px;
}
.ainav2 .ainav2-sptitle {
    flex: 1;
    min-width: 0;
    font-weight: 650;
    font-size: 14px;
    color: var(--ink);
}
.ainav2 .ainav2-spx {
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--ink-2);
    border-radius: 7px;
    padding: 3px 9px;
    font: inherit;
    font-size: 13px;
    cursor: pointer;
    flex: none;
}
.ainav2 .ainav2-spx:hover {
    border-color: var(--accent);
    color: var(--accent-ink);
    background: var(--accent-soft);
}
.ainav2 .ainav2-spx:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}
.ainav2 .ainav2-splist {
    list-style: none;
    margin: 9px 0 0;
    padding: 0;
}
.ainav2 .ainav2-splist li {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 4px 0;
    border-top: 1px solid var(--line-soft);
    font-size: 14px;
}
.ainav2 .ainav2-splist li:first-child {
    border-top: 0;
}
.ainav2 .ainav2-spn {
    flex: 1;
    min-width: 0;
    color: var(--ink-2);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ainav2 .ainav2-spc {
    flex: none;
    font-family: "IBM Plex Mono", monospace;
    font-size: 13.5px;
    color: var(--credit);
    font-weight: 600;
}
.ainav2 .ainav2-spc.ainav2-spfree {
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    color: var(--ok);
}
.ainav2 .ainav2-spfoot {
    margin-top: 9px;
    font-size: 13px;
    color: var(--ink-3);
}

/* ---- per-panel search: sits first in every panel's filter bar ---- */
.ainav2 .ainav2-psearchwrap {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 200px;
    min-width: 150px;
    max-width: 300px;
}
.ainav2 .ainav2-psearchwrap > svg {
    position: absolute;
    left: 8px;
    width: 13px;
    height: 13px;
    color: var(--ink-3);
    pointer-events: none;
}
.ainav2 .ainav2-psearch {
    width: 100%;
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--ink);
    border-radius: 7px;
    padding: 4px 26px 4px 26px;
    font: inherit;
    font-size: 13.5px;
    line-height: 1.5;
    transition: border-color .12s ease, box-shadow .12s ease;
    -webkit-appearance: none;
    appearance: none;
}
.ainav2 .ainav2-psearch::placeholder {
    color: var(--ink-3);
}
.ainav2 .ainav2-psearch::-webkit-search-cancel-button {
    /* Our own clear button replaces the browser's, which ignores our palette. */
    -webkit-appearance: none;
    appearance: none;
}
.ainav2 .ainav2-psearch:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}
.ainav2 .ainav2-pclear {
    position: absolute;
    right: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 17px;
    height: 17px;
    padding: 0;
    border: 0;
    border-radius: 5px;
    background: none;
    color: var(--ink-3);
    cursor: pointer;
}
.ainav2 .ainav2-pclear svg {
    width: 11px;
    height: 11px;
}
.ainav2 .ainav2-pclear:hover {
    color: var(--ink);
    background: var(--surface-2);
}
.ainav2 .ainav2-pclear:focus-visible {
    outline: 2px solid var(--accent);
}

@media (max-width: 640px) {
    .ainav2 .ainav2-psearchwrap {
        flex: 1 1 100%;
        max-width: none;
    }
}
.ainav2 .ainav2-sortsel {
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--ink-2);
    border-radius: 7px;
    padding: 4px 8px;
    font: inherit;
    font-size: 13.5px;
    cursor: pointer;
}
.ainav2 .ainav2-sortsel:focus-visible {
    outline: 2px solid var(--accent);
}
.ainav2 .ainav2-resn {
    flex: 1;
    font-size: 13.5px;
    color: var(--ink-3);
}
.ainav2 .ainav2-bulk {
    border: 1px solid var(--accent);
    background: var(--accent-soft);
    color: var(--accent-ink);
    border-radius: 7px;
    padding: 4px 10px;
    font: inherit;
    font-size: 13.5px;
    font-weight: 500;
    cursor: pointer;
}
.ainav2 .ainav2-bulk:hover {
    background: var(--accent);
}
.ainav2 .ainav2-bulk:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}
.ainav2 .ainav2-typewrap {
    display: flex;
    align-items: center;
    gap: 7px;
}
.ainav2 .ainav2-typewrap label {
    font-size: 13px;
    color: var(--ink-3);
    white-space: nowrap;
}
.ainav2 .ainav2-clearf {
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--ink-3);
    border-radius: 7px;
    padding: 4px 9px;
    font: inherit;
    font-size: 13.5px;
    cursor: pointer;
}
.ainav2 .ainav2-clearf:hover {
    border-color: var(--warn);
    color: var(--warn);
    background: var(--warn-soft);
}
.ainav2 .ainav2-clearf:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}
.ainav2 .ainav2-savebtn {
    border: 1px solid var(--accent);
    background: var(--accent-soft);
    color: var(--accent-ink);
    border-radius: 7px;
    padding: 4px 10px;
    font: inherit;
    font-size: 13.5px;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
}
.ainav2 .ainav2-savebtn:hover {
    background: var(--accent);
}
.ainav2 .ainav2-savebtn:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}
.ainav2 .ainav2-savebtn.ainav2-saved {
    background: var(--ok-soft);
    border-color: var(--ok);
    color: var(--ok);
}

.ainav2 .ainav2-plist {
    padding: 12px 18px 18px;
    -webkit-overflow-scrolling: touch;
}

/* ---- filter-type colour pills (12 hues), fixed and NOT tied to accent ---- */
.ainav2 .ainav2-ptype {
    --pc: #475569;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    padding: 2px 7px;
    border-radius: 999px;
    white-space: nowrap;
    background: color-mix(in srgb, var(--pc) 13%, var(--surface));
    color: color-mix(in srgb, var(--pc) 80%, black);
    border: 1px solid color-mix(in srgb, var(--pc) 34%, transparent);
}
.ainav2 .ainav2-ptype[data-t="mod"] {
    --pc: #2563eb;
}
.ainav2 .ainav2-ptype[data-t="block"] {
    --pc: #7c3aed;
}
.ainav2 .ainav2-ptype[data-t="quizaccess"] {
    --pc: #0891b2;
}
.ainav2 .ainav2-ptype[data-t="assignfeedback"] {
    --pc: #4338ca;
}
.ainav2 .ainav2-ptype[data-t="availability"] {
    --pc: #0f766e;
}
.ainav2 .ainav2-ptype[data-t="enrol"] {
    --pc: #15803d;
}
.ainav2 .ainav2-ptype[data-t="format"] {
    --pc: #be185d;
}
.ainav2 .ainav2-ptype[data-t="local"] {
    --pc: #475569;
}
.ainav2 .ainav2-ptype[data-t="theme"] {
    --pc: #9333ea;
}
.ainav2 .ainav2-ptype[data-t="auth"] {
    --pc: #b45309;
}
.ainav2 .ainav2-ptype[data-t="paygw"] {
    --pc: #047857;
}
.ainav2 .ainav2-ptype[data-t="plagiarism"] {
    --pc: #be123c;
}

@media (prefers-color-scheme: dark) {
    .ainav2 .ainav2-ptype {
        background: color-mix(in srgb, var(--pc) 24%, var(--surface));
        color: color-mix(in srgb, var(--pc) 42%, white);
        border-color: color-mix(in srgb, var(--pc) 45%, transparent);
    }
}
.ainav2.ainav2-dark .ainav2-ptype {
    background: color-mix(in srgb, var(--pc) 24%, var(--surface));
    color: color-mix(in srgb, var(--pc) 42%, white);
    border-color: color-mix(in srgb, var(--pc) 45%, transparent);
}

/* ---- Docs pill ---- */
.ainav2 .ainav2-docs {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    text-decoration: none;
    flex: none;
    cursor: pointer;
    border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
    background: var(--accent-soft);
    color: var(--accent-ink);
    padding: 2px 9px;
    border-radius: 999px;
    font: inherit;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .02em;
}
.ainav2 .ainav2-docs:hover {
    background: var(--accent);
    border-color: var(--accent);
    text-decoration: none;
}
.ainav2 .ainav2-docs svg {
    width: 11px;
    height: 11px;
}
.ainav2 .ainav2-docs:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}
.ainav2 .ainav2-docs.ainav2-generic {
    background: none;
    color: var(--ink-3);
    border-color: var(--line-soft);
}
.ainav2 .ainav2-docs.ainav2-generic:hover {
    background: var(--accent-soft);
    color: var(--accent-ink);
    border-color: var(--accent);
}

/* ---- accordion groups ---- */
.ainav2 .ainav2-grp {
    border-top: 1px solid var(--line-soft);
}
.ainav2 .ainav2-grp:first-child {
    border-top: 0;
}
.ainav2 .ainav2-grphead {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 8px;
    background: none;
    border: 0;
    cursor: pointer;
    color: var(--ink-2);
    font: inherit;
    font-size: 14px;
    text-align: left;
}
.ainav2 .ainav2-grphead:hover {
    color: var(--ink);
}
.ainav2 .ainav2-grphead:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}
.ainav2 .ainav2-grp.ainav2-open .ainav2-grphead {
    color: var(--accent-ink);
    font-weight: 600;
}
.ainav2 .ainav2-chev {
    width: 11px;
    height: 11px;
    flex: none;
    color: var(--ink-3);
    transition: transform .16s ease;
}
.ainav2 .ainav2-grp.ainav2-open .ainav2-chev {
    transform: rotate(90deg);
}
.ainav2 .ainav2-grpname {
    flex: 1;
}
.ainav2 .ainav2-count {
    font-family: "IBM Plex Mono", monospace;
    font-size: 12.5px;
    color: var(--ink-3);
    background: var(--surface-2);
    border: 1px solid var(--line-soft);
    border-radius: 5px;
    padding: 1px 6px;
    font-variant-numeric: tabular-nums;
}
.ainav2 .ainav2-grp.ainav2-open .ainav2-count {
    color: var(--accent-ink);
    background: var(--accent-soft);
    border-color: transparent;
}
.ainav2 .ainav2-grpbody {
    display: none;
    padding: 2px 0 10px 4px;
}
.ainav2 .ainav2-grp.ainav2-open .ainav2-grpbody {
    display: block;
}

/* ---- rows: shared by every panel (plugins / settings / manage / reports) ---- */
.ainav2 .ainav2-rows {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 0 22px;
    min-width: 0;
}
.ainav2 .ainav2-row {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 9px;
    border-radius: 8px;
    color: var(--ink-2);
    text-decoration: none;
    font-size: 14.5px;
    border: 1px solid transparent;
    min-width: 0;
}
.ainav2 .ainav2-row:hover {
    background: color-mix(in srgb, var(--accent) 5%, var(--surface));
    color: var(--ink);
    border-color: color-mix(in srgb, var(--accent) 25%, transparent);
}
.ainav2 .ainav2-row:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}
.ainav2 .ainav2-row .ainav2-nm {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ainav2 .ainav2-row .ainav2-desc {
    display: block;
    font-size: 13px;
    color: var(--ink-3);
    margin-top: 1px;
}
.ainav2 .ainav2-famrow {
    text-decoration: none;
    color: var(--ink-2);
}

.ainav2 .ainav2-pl {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 6px;
    font-size: 14px;
    color: var(--ink-2);
    background: none;
    border: 0;
    border-bottom: 1px solid var(--line-soft);
    border-radius: 0;
    box-shadow: none;
    transition: background .12s ease;
    min-width: 0;
}
.ainav2 .ainav2-pl:last-child {
    border-bottom: 0;
}
.ainav2 .ainav2-pl:hover {
    background: color-mix(in srgb, var(--accent) 6%, transparent);
    color: var(--ink-2);
}
.ainav2 .ainav2-pl:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}
.ainav2 .ainav2-pl .ainav2-nm {
    font-weight: 500;
    color: var(--ink);
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ainav2 .ainav2-pl .ainav2-star {
    margin-right: 1px;
}
.ainav2 .ainav2-pl.ainav2-custom {
    border-left: 2px solid var(--accent);
    padding-left: 7px;
}

.ainav2 .ainav2-star {
    border: 0;
    background: none;
    color: var(--line);
    cursor: pointer;
    padding: 2px;
    border-radius: 4px;
    flex: none;
    line-height: 0;
}
.ainav2 .ainav2-star svg {
    width: 13px;
    height: 13px;
}
.ainav2 .ainav2-star:hover {
    color: var(--credit);
}
.ainav2 .ainav2-star[aria-pressed="true"] {
    color: var(--credit);
}
.ainav2 .ainav2-star:focus-visible {
    outline: 2px solid var(--accent);
}
.ainav2 .ainav2-pl:has(.ainav2-star[aria-pressed="true"]) .ainav2-nm {
    color: var(--ink);
}
.ainav2 .ainav2-pl:has(.ainav2-star[aria-pressed="true"]) {
    background: color-mix(in srgb, var(--credit) 6%, transparent);
}

.ainav2 .ainav2-found {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .05em;
    padding: 1px 6px;
    border-radius: 999px;
    background: var(--ok-soft);
    color: var(--ok);
    white-space: nowrap;
}

.ainav2 .ainav2-tailwrap {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-left: auto;
    flex: none;
}
.ainav2 .ainav2-tag {
    font-size: 12px;
    padding: 1px 6px;
    border-radius: 999px;
    background: var(--surface-3);
    color: var(--ink-3);
    border: 1px solid var(--line-soft);
    white-space: nowrap;
}
.ainav2 .ainav2-ver {
    font-family: "IBM Plex Mono", monospace;
    font-size: 12.5px;
    color: var(--ok);
    background: var(--ok-soft);
    border: 1px solid color-mix(in srgb, var(--ok) 28%, transparent);
    border-radius: 999px;
    padding: 1px 8px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    font-weight: 500;
}
.ainav2 .ainav2-ver.ainav2-up {
    color: var(--warn);
    background: var(--warn-soft);
}
.ainav2 .ainav2-cost {
    font-family: "IBM Plex Mono", monospace;
    font-size: 12.5px;
    color: var(--credit);
    background: var(--credit-soft);
    border: 1px solid color-mix(in srgb, var(--credit) 30%, transparent);
    border-radius: 999px;
    padding: 1px 8px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    font-weight: 500;
}
.ainav2 .ainav2-cost.ainav2-free {
    color: var(--ok);
    background: var(--ok-soft);
    border-color: color-mix(in srgb, var(--ok) 28%, transparent);
}

.ainav2 .ainav2-state {
    font-family: "IBM Plex Mono", monospace;
    font-size: 12.5px;
    padding: 1px 8px;
    border-radius: 999px;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    font-weight: 500;
}
.ainav2 .ainav2-state.ainav2-ok {
    color: var(--ok);
    background: var(--ok-soft);
    border: 1px solid color-mix(in srgb, var(--ok) 28%, transparent);
}
.ainav2 .ainav2-state.ainav2-warn {
    color: var(--credit);
    background: var(--credit-soft);
    border: 1px solid color-mix(in srgb, var(--credit) 30%, transparent);
}
.ainav2 .ainav2-state.ainav2-testing {
    color: var(--warn);
    background: var(--warn-soft);
    border: 1px solid color-mix(in srgb, var(--warn) 30%, transparent);
}
.ainav2 .ainav2-state.ainav2-off {
    color: color-mix(in srgb, var(--accent-ink) 70%, var(--ink-2));
    background: color-mix(in srgb, var(--accent) 8%, var(--surface));
    border: 1px solid color-mix(in srgb, var(--accent) 18%, transparent);
}

.ainav2 .ainav2-rowact,
.ainav2 .ainav2-get {
    border: 1px solid var(--accent);
    background: var(--accent);
    border-radius: 7px;
    padding: 4px 11px;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    flex: none;
    box-shadow: var(--e1);
}
.ainav2 .ainav2-rowact:hover,
.ainav2 .ainav2-get:hover {
    background: var(--accent-2);
    border-color: var(--accent-2);
}
/* An accent-coloured ring on an accent-filled button is invisible — the focus
   ring on every filled control uses the ink colour and sits clear of the fill. */
.ainav2 .ainav2-rowact:focus-visible,
.ainav2 .ainav2-get:focus-visible,
.ainav2 .ainav2-bulk:focus-visible,
.ainav2 .ainav2-savebtn:focus-visible,
.ainav2 .ainav2-btn.ainav2-primary:focus-visible,
.ainav2 .ainav2-alert .ainav2-act:focus-visible,
.ainav2 .ainav2-docs:focus-visible {
    outline: 2px solid var(--ink);
    outline-offset: 2px;
}
.ainav2 .ainav2-get.ainav2-upd {
    border-color: var(--warn);
    background: var(--warn);
    color: #fff;
}
.ainav2 .ainav2-get.ainav2-upd:hover {
    filter: brightness(1.08);
}
.ainav2 .ainav2-get.ainav2-testing-disabled,
.ainav2 .ainav2-testing-disabled {
    background: var(--warn-soft);
    border-color: color-mix(in srgb, var(--warn) 40%, transparent);
    color: var(--warn);
    cursor: not-allowed;
    box-shadow: none;
    opacity: .9;
}
.ainav2 .ainav2-get.ainav2-testing-disabled:hover {
    background: var(--warn-soft);
    border-color: color-mix(in srgb, var(--warn) 40%, transparent);
}

/* ---- row description floats above the row (flips below near viewport top) ----
 * This element is appended to <body>, i.e. OUTSIDE .ainav2, so it does NOT
 * inherit the palette custom properties declared on .ainav2. Every var() here
 * must carry a literal fallback or the tooltip renders with no background. */
.ainav2-rowtip {
    position: fixed;
    z-index: 65;
    max-width: 420px;
    pointer-events: none;
    background: var(--ink, #12161b);
    color: var(--surface, #fff);
    border-radius: 8px;
    padding: 8px 11px;
    font-size: 14px;
    line-height: 1.45;
    box-shadow: var(--e3, 0 1px 2px rgba(18, 22, 27, .06), 0 18px 40px -20px rgba(18, 22, 27, .3));
    opacity: 0;
    transform: translateY(6px);
    transition: opacity .14s ease, transform .18s cubic-bezier(.2, .8, .3, 1);
    font-family: "Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
.ainav2-rowtip.ainav2-show {
    opacity: 1;
    transform: translateY(0);
}
.ainav2-rowtip .ainav2-tipcost {
    display: block;
    margin-top: 6px;
    padding-top: 6px;
    font-family: "IBM Plex Mono", monospace;
    font-size: 13px;
    color: #d0ad79;
    border-top: 1px solid rgba(255, 255, 255, .14);
}
.ainav2-rowtip::after {
    content: "";
    position: absolute;
    left: var(--ax, 20px);
    bottom: -5px;
    width: 10px;
    height: 10px;
    background: var(--ink, #12161b);
    transform: rotate(45deg);
    border-radius: 2px;
}

/* ---- empty state / search-result section headers ---- */
.ainav2 .ainav2-empty {
    padding: 26px 14px;
    text-align: center;
    color: var(--ink-3);
}
.ainav2 .ainav2-empty svg {
    width: 26px;
    height: 26px;
    margin-bottom: 8px;
    opacity: .5;
}
.ainav2 .ainav2-empty p {
    margin: 0;
    font-size: 14.5px;
}
.ainav2 .ainav2-empty .ainav2-hintline {
    font-size: 13.5px;
    margin-top: 4px;
}
.ainav2 .ainav2-srchead {
    font-family: Archivo, sans-serif;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ink-3);
    padding: 12px 9px 5px;
    display: flex;
    gap: 6px;
    align-items: center;
}
.ainav2 .ainav2-srchead::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--line-soft);
}

/* ---- Manage panel: cache-maintenance tool card ---- */
.ainav2 .ainav2-tool {
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding: 12px;
    border-radius: 10px;
    margin-bottom: 10px;
    border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--line));
    background: linear-gradient(135deg, var(--accent-soft), var(--surface));
    box-shadow: var(--e1);
}
.ainav2 .ainav2-toolrow {
    display: flex;
    align-items: center;
    gap: 9px;
}
.ainav2 .ainav2-toolrow .ainav2-tico {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    flex: none;
    display: grid;
    place-items: center;
    background: var(--accent);
    box-shadow: var(--e1);
}
.ainav2 .ainav2-toolrow .ainav2-tico svg {
    width: 14px;
    height: 14px;
}
.ainav2 .ainav2-toolrow .ainav2-tbody {
    flex: 1;
    min-width: 0;
}
.ainav2 .ainav2-toolrow .ainav2-ttitle {
    font-size: 14.5px;
    font-weight: 600;
    color: var(--ink);
}
.ainav2 .ainav2-toolrow .ainav2-tmeta {
    font-family: "IBM Plex Mono", monospace;
    font-size: 12px;
    color: var(--ink-3);
    margin-top: 2px;
}
.ainav2 .ainav2-toolbtns {
    display: flex;
    gap: 6px;
}
.ainav2 .ainav2-btn {
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--ink-2);
    border-radius: 7px;
    padding: 5px 10px;
    font: inherit;
    font-size: 13.5px;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
}
.ainav2 .ainav2-btn:hover {
    border-color: var(--accent);
    color: var(--accent-ink);
    background: var(--accent-soft);
}
.ainav2 .ainav2-btn:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}
.ainav2 .ainav2-btn.ainav2-primary {
    background: var(--accent);
    border-color: var(--accent);
}
.ainav2 .ainav2-btn.ainav2-primary:hover {
    background: var(--accent-2);
    border-color: var(--accent-2);
}
.ainav2 .ainav2-schedtag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: var(--ok);
    background: var(--ok-soft);
    border-radius: 999px;
    padding: 2px 8px;
}
.ainav2 .ainav2-schedtag.ainav2-off {
    color: var(--ink-3);
    background: var(--surface-3);
}

/* ---- custom link / report blocks (Manage / Reports panels) ---- */
.ainav2 .ainav2-addbtn {
    border: 1px dashed var(--line);
    background: none;
    color: var(--ink-3);
    border-radius: 8px;
    padding: 8px;
    font: inherit;
    font-size: 14px;
    cursor: pointer;
    width: 100%;
    margin-top: 8px;
}
.ainav2 .ainav2-addbtn:hover {
    border-color: var(--accent);
    color: var(--accent-ink);
    background: var(--accent-soft);
    border-style: solid;
}
.ainav2 .ainav2-addbtn:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}

/* ================================================================== *
 * Footer
 * ================================================================== */
.ainav2 .ainav2-bfoot {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 16px;
    padding: 16px 18px;
    border-top: 1px solid var(--line);
    background: var(--surface-2);
    font-size: 13.5px;
    color: var(--ink-3);
}
.ainav2 .ainav2-bfoot .ainav2-fleft {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    min-width: 0;
}
.ainav2 .ainav2-bfoot .ainav2-flinks {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: flex-end;
    min-width: 0;
}
.ainav2 .ainav2-bfoot .ainav2-fcentre {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    justify-content: center;
    min-width: 0;
}
.ainav2 .ainav2-bfoot .ainav2-dotok {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--ok);
    display: inline-block;
    margin-right: 5px;
}
.ainav2 .ainav2-bfoot a {
    color: var(--ink-3);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.ainav2 .ainav2-bfoot a:hover {
    color: var(--accent-ink);
}
.ainav2 .ainav2-bfoot a:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
    border-radius: 4px;
}
.ainav2 .ainav2-bfoot a svg {
    width: 12px;
    height: 12px;
}
.ainav2 .ainav2-bfoot span {
    font-family: "IBM Plex Mono", monospace;
    font-variant-numeric: tabular-nums;
}
/* Partner / host logos: PHP may render these into .ainav2-fcentre as part
   of the server-side shell (contract: "footer with logos"). Not emitted
   by ui.js itself, kept here so PHP-authored markup is styled correctly. */
.ainav2 .ainav2-hostlogo {
    height: 34px;
    width: auto;
    display: block;
}
.ainav2 .ainav2-partner {
    height: 30px;
    width: auto;
    display: block;
}

@media (prefers-color-scheme: dark) {
    .ainav2 .ainav2-partner {
        background: #fff;
        border-radius: 5px;
        padding: 2px 4px;
    }
}
.ainav2.ainav2-dark .ainav2-partner {
    background: #fff;
    border-radius: 5px;
    padding: 2px 4px;
}
.ainav2 .ainav2-fpartner {
    display: flex;
    align-items: center;
    padding: 4px 8px;
    border-radius: 9px;
    text-decoration: none;
    transition: background .14s ease;
}
.ainav2 .ainav2-fpartner:hover {
    background: var(--surface);
}
.ainav2 .ainav2-fpartner:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}
.ainav2 .ainav2-fbrand {
    display: flex;
    align-items: center;
    text-decoration: none;
    padding: 4px 10px;
    border-radius: 9px;
    transition: background .14s ease;
}
.ainav2 .ainav2-fbrand:hover {
    background: var(--surface);
}
.ainav2 .ainav2-fbrand:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.ainav2 .ainav2-helptoggle {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    cursor: pointer;
    user-select: none;
    font-size: 13.5px;
    color: var(--ink-3);
}
.ainav2 .ainav2-helptoggle input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}
.ainav2 .ainav2-sw {
    width: 30px;
    height: 17px;
    border-radius: 999px;
    background: var(--surface-3);
    border: 1px solid var(--line);
    position: relative;
    transition: background .15s ease, border-color .15s ease;
    flex: none;
}
.ainav2 .ainav2-sw::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--ink-3);
    transition: transform .15s ease, background .15s ease;
}
.ainav2 .ainav2-helptoggle input:checked + .ainav2-sw {
    background: var(--accent-soft);
    border-color: var(--accent);
}
.ainav2 .ainav2-helptoggle input:checked + .ainav2-sw::after {
    transform: translateX(13px);
    background: var(--accent);
}
.ainav2 .ainav2-helptoggle input:focus-visible + .ainav2-sw {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

@media (max-width: 820px) {
    .ainav2 .ainav2-bfoot {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
        gap: 12px;
    }
    .ainav2 .ainav2-bfoot .ainav2-flinks {
        justify-content: center;
    }
}

/* ================================================================== *
 * Toast confirmation
 * ================================================================== */
.ainav2 .ainav2-toast {
    position: absolute;
    left: 50%;
    bottom: 16px;
    transform: translateX(-50%);
    z-index: 30;
    background: var(--ink);
    color: var(--surface);
    border-radius: 8px;
    padding: 9px 14px;
    font-size: 14px;
    box-shadow: var(--e3);
    display: none;
    align-items: center;
    gap: 8px;
}
.ainav2 .ainav2-toast.ainav2-show {
    display: flex;
}
.ainav2 .ainav2-toast svg {
    width: 14px;
    height: 14px;
}

/* ================================================================== *
 * Hover / focus help cards + pro tip
 * ================================================================== */
.ainav2 .ainav2-helpcard {
    position: fixed;
    z-index: 60;
    width: 300px;
    max-width: calc(100vw - 24px);
    pointer-events: none;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 14px 15px;
    opacity: 0;
    transform: translateY(12px) scale(.985);
    box-shadow: 0 1px 2px rgba(18, 22, 27, .05);
    transition: opacity .19s cubic-bezier(.2, .8, .3, 1), transform .26s cubic-bezier(.2, .8, .3, 1), box-shadow .26s ease;
    font-family: "Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    color: var(--ink);
    --pro: #8a5a00;
}
.ainav2 .ainav2-helpcard.ainav2-show {
    opacity: 1;
    transform: translateY(0) scale(1);
    box-shadow: 0 2px 4px rgba(18, 22, 27, .06), 0 12px 24px -10px rgba(18, 22, 27, .22), 0 34px 60px -28px rgba(18, 22, 27, .4);
}

@media (prefers-color-scheme: dark) {
    .ainav2 .ainav2-helpcard {
        --pro: #e9b23c;
    }
    .ainav2 .ainav2-helpcard.ainav2-show {
        box-shadow: 0 2px 4px rgba(0, 0, 0, .5), 0 12px 24px -10px rgba(0, 0, 0, .7), 0 34px 64px -28px rgba(0, 0, 0, 1);
    }
}
.ainav2.ainav2-dark .ainav2-helpcard {
    --pro: #e9b23c;
}
.ainav2.ainav2-dark .ainav2-helpcard.ainav2-show {
    box-shadow: 0 2px 4px rgba(0, 0, 0, .5), 0 12px 24px -10px rgba(0, 0, 0, .7), 0 34px 64px -28px rgba(0, 0, 0, 1);
}
.ainav2 .ainav2-helpcard h4 {
    font-family: Archivo, sans-serif;
    font-size: 15px;
    font-weight: 600;
    margin: 0 0 6px;
    color: var(--ink);
    letter-spacing: -.01em;
    display: flex;
    align-items: center;
    gap: 7px;
}
.ainav2 .ainav2-helpcard h4 .ainav2-hb {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .06em;
    padding: 1px 6px;
    border-radius: 999px;
    background: var(--accent-soft);
    color: var(--accent-ink);
    font-weight: 600;
}
.ainav2 .ainav2-helpcard p {
    margin: 0 0 7px;
    font-size: 14px;
    line-height: 1.55;
    color: var(--ink-2);
}
.ainav2 .ainav2-helpcard p:last-child {
    margin-bottom: 0;
}
.ainav2 .ainav2-helpcard ul {
    margin: 6px 0 0;
    padding-left: 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.ainav2 .ainav2-helpcard li {
    font-size: 14px;
    line-height: 1.45;
    color: var(--ink-3);
}
.ainav2 .ainav2-helpcard b {
    color: var(--ink);
    font-weight: 600;
}
.ainav2 .ainav2-helpcard .ainav2-protip {
    margin-top: 11px;
    padding-top: 10px;
    border-top: 1px dashed color-mix(in srgb, var(--pro) 35%, transparent);
    display: flex;
    gap: 8px;
    align-items: flex-start;
}
.ainav2 .ainav2-helpcard .ainav2-protip .ainav2-pico {
    width: 20px;
    height: 20px;
    border-radius: 6px;
    flex: none;
    display: grid;
    place-items: center;
    background: color-mix(in srgb, var(--pro) 16%, transparent);
    color: var(--pro);
}
.ainav2 .ainav2-helpcard .ainav2-protip .ainav2-pico svg {
    width: 12px;
    height: 12px;
}
.ainav2 .ainav2-helpcard .ainav2-protip .ainav2-ptxt {
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--ink-2);
}
.ainav2 .ainav2-helpcard .ainav2-protip .ainav2-plabel {
    display: block;
    font-family: Archivo, sans-serif;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .09em;
    color: var(--pro);
    margin-bottom: 3px;
}

/* ================================================================== *
 * Modals: builder (icon picker), purge schedule, credit unlock
 * ================================================================== */
.ainav2 .ainav2-ov {
    position: fixed;
    inset: 0;
    background: color-mix(in srgb, var(--ink) 55%, transparent);
    display: none;
    align-items: flex-start;
    justify-content: center;
    /* Top padding clears the theme's fixed navbar (Boost's is 56–60px) so a
       tall modal's header is never hidden behind it. */
    padding: 76px 18px 28px;
    /* Above the theme's fixed navbar (Boost uses 1030) but below Moodle's own
       modal layer, so our dialog is never half-covered by the site header. */
    z-index: 1040;
    backdrop-filter: blur(2px);
    overflow: auto;
}
.ainav2 .ainav2-ov.ainav2-show {
    display: flex;
}
.ainav2 .ainav2-modal {
    width: 100%;
    max-width: 460px;
    /* margin:auto rather than align-items:center — a modal shorter than the
       viewport centres, a taller one scrolls without its top being clipped. */
    margin: auto;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: var(--e3);
    overflow: hidden;
    color: var(--ink);
}
.ainav2 .ainav2-mhead {
    padding: 12px 14px;
    border-bottom: 1px solid var(--line-soft);
    display: flex;
    align-items: center;
    gap: 8px;
}
.ainav2 .ainav2-mhead h3 {
    font-family: Archivo, sans-serif;
    font-size: 15px;
    font-weight: 600;
    margin: 0;
    flex: 1;
    letter-spacing: -.01em;
}
.ainav2 .ainav2-mclose {
    border: 0;
    background: none;
    color: var(--ink-3);
    font-size: 18.5px;
    line-height: 1;
    cursor: pointer;
    padding: 3px 6px;
    border-radius: 5px;
}
.ainav2 .ainav2-mclose:hover {
    background: var(--surface-2);
    color: var(--ink);
}
.ainav2 .ainav2-mclose:focus-visible {
    outline: 2px solid var(--accent);
}
.ainav2 .ainav2-mbody {
    padding: 13px 14px;
    display: flex;
    flex-direction: column;
    gap: 11px;
    -webkit-overflow-scrolling: touch;
}
.ainav2 .ainav2-fld {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.ainav2 .ainav2-fld label {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--ink-3);
    font-weight: 600;
}
.ainav2 .ainav2-fld input,
.ainav2 .ainav2-fld select {
    font: inherit;
    font-size: 14.5px;
    padding: 7px 9px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: var(--surface);
    color: var(--ink);
    width: 100%;
}
.ainav2 .ainav2-fld input:focus,
.ainav2 .ainav2-fld select:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}
.ainav2 .ainav2-hint {
    font-size: 13px;
    color: var(--ink-3);
}
.ainav2 .ainav2-icons {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(30px, 1fr));
    gap: 4px;
    padding: 4px;
    border: 1px solid var(--line-soft);
    border-radius: 8px;
    background: var(--surface-2);
}
.ainav2 .ainav2-ibtn {
    width: 100%;
    height: 30px;
    display: grid;
    place-items: center;
    border: 1px solid transparent;
    border-radius: 6px;
    background: var(--surface);
    color: var(--ink-2);
    cursor: pointer;
    padding: 0;
}
.ainav2 .ainav2-ibtn svg {
    width: 15px;
    height: 15px;
}
.ainav2 .ainav2-ibtn:hover {
    border-color: var(--accent);
    color: var(--accent-ink);
}
.ainav2 .ainav2-ibtn:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}
.ainav2 .ainav2-ibtn[aria-pressed="true"] {
    background: var(--accent);
    border-color: var(--accent);
}
.ainav2 .ainav2-iconsearch {
    font: inherit;
    font-size: 14px;
    padding: 6px 9px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: var(--surface);
    color: var(--ink);
    width: 100%;
    margin-bottom: 6px;
}
.ainav2 .ainav2-iconsearch:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}
.ainav2 .ainav2-toggle {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 9px 10px;
    border: 1px solid var(--line-soft);
    border-radius: 8px;
    background: var(--surface-2);
}
.ainav2 .ainav2-toggle input {
    width: 16px;
    height: 16px;
    accent-color: var(--accent);
}
.ainav2 .ainav2-toggle span {
    font-size: 14px;
    color: var(--ink-2);
    flex: 1;
}
.ainav2 .ainav2-mfoot {
    padding: 11px 14px;
    border-top: 1px solid var(--line-soft);
    display: flex;
    gap: 7px;
    justify-content: flex-end;
    background: var(--surface-2);
}
.ainav2 .ainav2-costline {
    display: flex;
    align-items: baseline;
    gap: 6px;
    padding: 11px;
    border-radius: 9px;
    background: var(--credit-soft);
    border: 1px solid color-mix(in srgb, var(--credit) 22%, transparent);
}
.ainav2 .ainav2-costline .ainav2-big {
    font-family: "IBM Plex Mono", monospace;
    font-size: 21px;
    font-weight: 500;
    color: var(--credit);
    font-variant-numeric: tabular-nums;
    line-height: 1;
}
.ainav2 .ainav2-costline .ainav2-small {
    font-size: 13.5px;
    color: var(--credit);
    flex: 1;
}
.ainav2 .ainav2-balline {
    font-size: 13.5px;
    color: var(--ink-3);
    font-family: "IBM Plex Mono", monospace;
}

@media (max-width: 430px) {
    .ainav2 .ainav2-icons {
        grid-template-columns: repeat(6, 1fr);
    }
    .ainav2 .ainav2-ov {
        padding: 66px 10px 14px;
    }
}

/* ================================================================== *
 * Responsive breakpoints (block-body layout)
 * ================================================================== */
@media (max-width: 800px) {
    .ainav2 {
        border-radius: 12px;
    }
    .ainav2 .ainav2-bhead,
    .ainav2 .ainav2-cards,
    .ainav2 .ainav2-core,
    .ainav2 .ainav2-family,
    .ainav2 .ainav2-strip,
    .ainav2 .ainav2-corehead,
    .ainav2 .ainav2-phead,
    .ainav2 .ainav2-toolbar,
    .ainav2 .ainav2-plist {
        padding-left: 13px;
        padding-right: 13px;
    }
    .ainav2 .ainav2-rows,
    .ainav2 .ainav2-grp.ainav2-open .ainav2-grpbody {
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
        gap: 0 16px;
    }
}

@media (max-width: 430px) {
    .ainav2 {
        border-radius: 10px;
    }
    .ainav2 .ainav2-bhead {
        padding: 12px 11px 10px;
    }
    .ainav2 .ainav2-cards {
        gap: 8px;
        padding: 11px 11px 4px;
    }
    .ainav2 .ainav2-rows,
    .ainav2 .ainav2-grp.ainav2-open .ainav2-grpbody {
        grid-template-columns: 1fr;
    }
    .ainav2 .ainav2-card {
        padding: 12px;
    }
    .ainav2 .ainav2-family {
        padding: 2px 11px 12px;
    }
    .ainav2 .ainav2-core {
        grid-template-columns: repeat(3, 1fr);
        padding: 10px 11px 4px;
    }
    .ainav2 .ainav2-corehead,
    .ainav2 .ainav2-strip {
        padding-left: 11px;
        padding-right: 11px;
    }
    .ainav2 .ainav2-phead,
    .ainav2 .ainav2-toolbar {
        padding-left: 11px;
        padding-right: 11px;
    }
    .ainav2 .ainav2-plist {
        padding: 9px 11px 12px;
        max-height: none;
    }
    .ainav2 .ainav2-chips {
        gap: 4px;
    }
    .ainav2 .ainav2-chip {
        padding: 4px 9px;
        font-size: 14px;
    }
    /* rows: let the tail drop to a second line rather than crushing the name */
    .ainav2 .ainav2-pl {
        flex-wrap: wrap;
        row-gap: 6px;
        padding: 10px 4px;
    }
    .ainav2 .ainav2-pl .ainav2-nm {
        flex: 1 1 100%;
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }
    .ainav2 .ainav2-tailwrap {
        margin-left: 0;
    }
    .ainav2 .ainav2-star {
        order: -1;
    }
    /* control bar stacks */
    .ainav2 .ainav2-subbar {
        flex-wrap: wrap;
        gap: 8px;
    }
    .ainav2 .ainav2-typewrap {
        flex: 1 1 100%;
    }
    .ainav2 .ainav2-sortsel {
        flex: 1;
    }
    .ainav2 .ainav2-resn {
        flex: 1 1 100%;
        order: 9;
    }
    .ainav2 .ainav2-phead {
        flex-wrap: wrap;
        row-gap: 6px;
    }
    .ainav2 .ainav2-ptitle {
        flex: 1 1 auto;
    }
}

/* touch targets + no sideways scroll anywhere */
@media (hover: none) {
    .ainav2 .ainav2-row,
    .ainav2 .ainav2-pl {
        padding-top: 10px;
        padding-bottom: 10px;
    }
    .ainav2 .ainav2-corebtn {
        padding: 11px 5px;
    }
    .ainav2 .ainav2-chip {
        padding: 6px 11px;
    }
    .ainav2 .ainav2-get,
    .ainav2 .ainav2-btn,
    .ainav2 .ainav2-topup {
        padding-top: 7px;
        padding-bottom: 7px;
    }
    .ainav2 .ainav2-star,
    .ainav2 .ainav2-docs {
        padding: 6px;
    }
}

.ainav2 {
    overflow-x: hidden;
}
.ainav2 .ainav2-chips,
.ainav2 .ainav2-subbar,
.ainav2 .ainav2-flinks,
.ainav2 .ainav2-fcentre,
.ainav2 .ainav2-fleft {
    min-width: 0;
}

/* Minimum width.
 *
 * Boost has no content-width setting, so the block can sit in a column too narrow to lay
 * the cards out well. The "Minimum block width" setting lets it widen past its column.
 *
 * The widening itself is applied by JavaScript (applyMinWidth in amd/src/ui.js), not here,
 * because it cannot be done safely in CSS alone: centring the block with negative margins
 * assumes its parent is centred in the viewport. Boost's dashboard container is, but a
 * left-aligned theme or a narrow side region is not, and there the block was pushed off
 * the left edge of the screen. JavaScript can measure the room actually available on each
 * side and clamp to it. If the script never runs, nothing here changes the layout. */
.ainav2 {
    --ainav2-minw: 0;
}

/* Plugin spotlight (2.5.35) — rotating hero and numbered poster row, admin only.
 *
 * Everything is scoped under .ainav2 .ainav2-sp. Sizing follows the spotlight's own width
 * (ainav2-sp-narrow / ainav2-sp-tiny, set by amd/src/spotlight.js) rather than viewport media
 * queries, because the block often sits in a column far narrower than the window. Container
 * queries are deliberately not used: containment would trap the fixed-position dialog. Each
 * plugin's colours arrive as custom properties (--sp-a, --sp-b and pre-mixed rgba variants). */
.ainav2 .ainav2-spot:empty {
    display: none;
}

.ainav2 .ainav2-sp {
    --sp-cin: #0a0c11;
    --sp-a: #ff6a0f;
    --sp-b: #ff8a3d;
    --sp-a60: rgba(255, 106, 15, 0.6);
    --sp-b55: rgba(255, 138, 61, 0.55);
    --sp-a30: rgba(255, 106, 15, 0.3);
    --sp-a70: rgba(255, 106, 15, 0.7);
    --sp-mx: 0;
    --sp-my: 0;
    --sp-dur: 5s;
    position: relative;
    margin: 28px 18px;
    font-family: "Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

.ainav2 .ainav2-sp.ainav2-sp-tiny {
    margin: 20px 10px;
}

.ainav2 .ainav2-sp[data-sp-state="off"] {
    display: none;
}

.ainav2 .ainav2-sp[data-sp-state="collapsed"] .ainav2-sp-cinema {
    display: none;
}

.ainav2 .ainav2-sp-cinema {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border-radius: 16px;
    background: var(--sp-cin);
    color: #fff;
    box-shadow: 0 30px 60px -30px rgba(10, 12, 17, 0.6);
}

/* Collapsed bar. */
.ainav2 .ainav2-sp-bar {
    display: none;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 9px 10px 9px 14px;
    border: 0;
    border-radius: 12px;
    background: var(--sp-cin);
    color: #fff;
    text-align: left;
    cursor: pointer;
    box-shadow: 0 12px 30px -20px rgba(0, 0, 0, 0.6);
}

.ainav2 .ainav2-sp[data-sp-state="collapsed"] .ainav2-sp-bar {
    display: flex;
    animation: ainav2-sp-barin 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.ainav2 .ainav2-sp-bartxt {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    color: #c9ced8;
    font-size: 13px;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.ainav2 .ainav2-sp-bartxt b {
    color: #fff;
    font-weight: 600;
}

.ainav2 .ainav2-sp-bargo {
    display: inline-flex;
    flex: none;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    font-size: 12.5px;
    font-weight: 700;
}

.ainav2 .ainav2-sp-bargo svg {
    width: 14px;
    height: 14px;
}

@keyframes ainav2-sp-barin {
    from {
        opacity: 0;
        transform: translateY(-6px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

/* Hero. */
.ainav2 .ainav2-sp-hero {
    position: relative;
    display: grid;
    min-height: 480px;
    overflow: hidden;
}

.ainav2 .ainav2-sp-bgs {
    position: absolute;
    inset: 0;
}

.ainav2 .ainav2-sp-bg {
    position: absolute;
    inset: -8%;
    background:
        radial-gradient(55% 75% at 80% 38%, var(--sp-a60), transparent 70%),
        radial-gradient(45% 55% at 100% 100%, var(--sp-b55), transparent 70%),
        radial-gradient(35% 45% at 42% 118%, var(--sp-a30), transparent 70%),
        var(--sp-cin);
    opacity: 0;
    transition: opacity 1.1s ease;
}

.ainav2 .ainav2-sp-bg.ainav2-sp-in {
    opacity: 1;
    animation: ainav2-sp-kb 9s ease-out forwards;
}

@keyframes ainav2-sp-kb {
    from {
        transform: scale(1.12) translate3d(2%, 1%, 0);
    }

    to {
        transform: scale(1) translate3d(0, 0, 0);
    }
}

.ainav2 .ainav2-sp-beams {
    position: absolute;
    inset: -40%;
    background:
        conic-gradient(
            from 0deg at 70% 45%,
            transparent 0deg 20deg,
            rgba(255, 255, 255, 0.07) 26deg,
            transparent 34deg 110deg,
            rgba(255, 255, 255, 0.05) 118deg,
            transparent 128deg 220deg,
            rgba(255, 255, 255, 0.06) 228deg,
            transparent 238deg
        );
    opacity: 0.35;
    mix-blend-mode: screen;
    pointer-events: none;
    animation: ainav2-sp-spin 40s linear infinite;
}

@keyframes ainav2-sp-spin {
    to {
        transform: rotate(360deg);
    }
}

.ainav2 .ainav2-sp-vig {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(90deg, #0a0c11 0%, rgba(10, 12, 17, 0.92) 30%, rgba(10, 12, 17, 0.35) 58%, rgba(10, 12, 17, 0) 75%),
        linear-gradient(0deg, #0a0c11 0%, rgba(10, 12, 17, 0) 34%),
        linear-gradient(180deg, rgba(10, 12, 17, 0.55) 0%, rgba(10, 12, 17, 0) 18%);
    pointer-events: none;
}

.ainav2 .ainav2-sp-top {
    position: absolute;
    z-index: 5;
    top: 18px;
    right: 24px;
    left: 40px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.ainav2 .ainav2-sp-badge {
    display: inline-grid;
    flex: none;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 6px;
    background: linear-gradient(160deg, #ff8a3d, #ff6a0f);
    color: #fff;
    font: 900 9.5px/1 Archivo, "Public Sans", system-ui, sans-serif;
    letter-spacing: 0.02em;
    text-align: center;
    text-transform: uppercase;
    box-shadow: 0 6px 16px -6px rgba(255, 106, 15, 0.8);
}

.ainav2 .ainav2-sp-badge b {
    display: block;
    font-size: 15px;
    letter-spacing: -0.02em;
}

.ainav2 .ainav2-sp-kicker {
    min-width: 0;
    overflow: hidden;
    color: #aeb4c0;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.ainav2 .ainav2-sp-kicker b {
    color: #fff;
}

.ainav2 .ainav2-sp-tools,
.ainav2 .ainav2-sp-rowtools {
    display: flex;
    flex: none;
    gap: 6px;
    margin-left: auto;
}

.ainav2 .ainav2-sp-ib {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 50%;
    background: rgba(10, 12, 17, 0.45);
    color: #fff;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s;
}

.ainav2 .ainav2-sp-ib:hover,
.ainav2 .ainav2-sp-ib:focus-visible {
    border-color: rgba(255, 255, 255, 0.4);
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
}

.ainav2 .ainav2-sp-ib svg {
    width: 15px;
    height: 15px;
}

.ainav2 .ainav2-sp-stage {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr);
    gap: 28px;
    align-items: center;
    padding: 70px 56px 54px 40px;
}

.ainav2 .ainav2-sp-copyslot,
.ainav2 .ainav2-sp-shotslot {
    position: relative;
    display: grid;
    align-items: center;
    height: 100%;
}

.ainav2 .ainav2-sp-copy,
.ainav2 .ainav2-sp-shotwrap {
    grid-area: 1 / 1;
}

/* Keep the preview inside the stage, clear of the top bar and the progress bar. */
.ainav2 .ainav2-sp-shotslot {
    justify-items: center;
}

.ainav2 .ainav2-sp-shotwrap {
    width: 100%;
    max-width: 560px;
}

/* Hero copy: children rise in, staggered. */
.ainav2 .ainav2-sp-copy {
    max-width: 540px;
}

.ainav2 .ainav2-sp-copy > * {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.6s cubic-bezier(0.2, 0.8, 0.2, 1), transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.ainav2 .ainav2-sp-copy.ainav2-sp-in > * {
    opacity: 1;
    transform: none;
}

.ainav2 .ainav2-sp-copy.ainav2-sp-in > *:nth-child(2) {
    transition-delay: 0.1s;
}

.ainav2 .ainav2-sp-copy.ainav2-sp-in > *:nth-child(3) {
    transition-delay: 0.18s;
}

.ainav2 .ainav2-sp-copy.ainav2-sp-in > *:nth-child(4) {
    transition-delay: 0.26s;
}

.ainav2 .ainav2-sp-copy.ainav2-sp-in > *:nth-child(5) {
    transition-delay: 0.34s;
}

.ainav2 .ainav2-sp-copy.ainav2-sp-in > *:nth-child(6) {
    transition-delay: 0.42s;
}

.ainav2 .ainav2-sp-copy.ainav2-sp-out > * {
    opacity: 0;
    transform: translateX(-26px);
    transition-duration: 0.35s;
    transition-delay: 0s;
}

.ainav2 .ainav2-sp-rank {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #e8eaef;
    font-size: 14px;
    font-weight: 600;
}

.ainav2 .ainav2-sp-n {
    color: transparent;
    font: 900 24px/1 Archivo, "Public Sans", system-ui, sans-serif;
    font-stretch: 112%;
    letter-spacing: -0.02em;
    -webkit-text-stroke: 1.4px #fff;
}

.ainav2 .ainav2-sp-title {
    margin: 10px 0 12px;
    color: #fff;
    font-family: Archivo, "Public Sans", system-ui, sans-serif;
    font-size: 38px;
    font-weight: 900;
    font-stretch: 118%;
    line-height: 0.95;
    letter-spacing: -0.02em;
    text-shadow: 0 10px 40px rgba(0, 0, 0, 0.25);
}

.ainav2 .ainav2-sp-title em {
    display: block;
    margin-bottom: 8px;
    color: var(--sp-a);
    font-size: 0.42em;
    font-style: normal;
    font-weight: 700;
    font-stretch: 100%;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.ainav2 .ainav2-sp-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ainav2 .ainav2-sp-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 24px;
    padding: 0 8px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.1);
    color: #e6e9ee;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.ainav2 .ainav2-sp-chipok {
    border-color: rgba(98, 210, 130, 0.35);
    background: rgba(58, 166, 90, 0.22);
    color: #a9f0bf;
}

.ainav2 .ainav2-sp-chip svg {
    width: 12px;
    height: 12px;
}

.ainav2 .ainav2-sp-desc {
    display: -webkit-box;
    max-width: 500px;
    margin: 10px 0;
    overflow: hidden;
    color: #cfd4dc;
    font-size: 14px;
    line-height: 1.5;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.ainav2 .ainav2-sp-feats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px 18px;
    max-width: 520px;
    margin: 0 0 14px;
    padding: 0;
    list-style: none;
}

.ainav2 .ainav2-sp-feats li {
    display: flex;
    gap: 8px;
    color: #e4e7ec;
    font-size: 13px;
    line-height: 1.35;
}

.ainav2 .ainav2-sp-feats svg {
    flex: none;
    width: 15px;
    height: 15px;
    margin-top: 1px;
    color: var(--sp-a);
}

.ainav2 .ainav2-sp-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.ainav2 .ainav2-sp-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 38px;
    padding: 0 18px;
    border: 0;
    border-radius: 8px;
    font-size: 14.5px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: transform 0.15s, background 0.2s;
}

.ainav2 .ainav2-sp-btn svg {
    width: 17px;
    height: 17px;
}

.ainav2 .ainav2-sp-btn:active {
    transform: scale(0.97);
}

.ainav2 .ainav2-sp-btnp {
    background: #fff;
    color: #0b0d12;
}

.ainav2 .ainav2-sp-btnp:hover,
.ainav2 .ainav2-sp-btnp:focus-visible {
    background: #e9ebef;
    color: #0b0d12;
}

.ainav2 .ainav2-sp-price {
    margin-left: 2px;
    padding-left: 10px;
    border-left: 1px solid #d4d7dd;
    color: #ff6a0f;
    font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace;
    font-size: 13px;
    font-weight: 600;
}

.ainav2 .ainav2-sp-price:empty {
    display: none;
}

.ainav2 .ainav2-sp-btng {
    background: rgba(120, 126, 140, 0.42);
    color: #fff;
}

.ainav2 .ainav2-sp-btng:hover,
.ainav2 .ainav2-sp-btng:focus-visible {
    background: rgba(120, 126, 140, 0.62);
    color: #fff;
}

.ainav2 .ainav2-sp-usage {
    margin-left: 4px;
    color: #9aa1ad;
    font-size: 12px;
}

/* Preview: state (enter/leave) > tilt (pointer parallax) > float (idle drift). */
.ainav2 .ainav2-sp-shotwrap {
    opacity: 0;
    transform: perspective(1500px) translateX(90px) rotateY(-30deg) scale(0.9);
    transition: opacity 0.8s cubic-bezier(0.2, 0.8, 0.2, 1), transform 1.1s cubic-bezier(0.16, 0.9, 0.2, 1);
}

.ainav2 .ainav2-sp-shotwrap.ainav2-sp-in {
    opacity: 1;
    transform: perspective(1500px);
}

.ainav2 .ainav2-sp-shotwrap.ainav2-sp-out {
    opacity: 0;
    transform: perspective(1500px) translateX(-50px) scale(0.94);
    transition-duration: 0.45s;
}

.ainav2 .ainav2-sp-tilt {
    transform:
        perspective(1500px)
        rotateY(calc(-8deg + var(--sp-mx) * 5deg))
        rotateX(calc(3deg - var(--sp-my) * 3deg));
    transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.ainav2 .ainav2-sp-float {
    position: relative;
    animation: ainav2-sp-float 7s ease-in-out infinite;
}

@keyframes ainav2-sp-float {
    0%,
    100% {
        transform: translate3d(0, 0, 0);
    }

    50% {
        transform: translate3d(0, -10px, 0);
    }
}

.ainav2 .ainav2-sp-shot {
    position: relative;
    aspect-ratio: 1120 / 728;
    overflow: hidden;
    border-radius: 10px;
    background: #f5f6f8;
}

.ainav2 .ainav2-sp-shot img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ainav2 .ainav2-sp-shotwrap .ainav2-sp-shot {
    box-shadow: 0 50px 90px -30px rgba(0, 0, 0, 0.85), 0 0 90px -20px var(--sp-a70), 0 0 0 1px rgba(255, 255, 255, 0.12);
}

.ainav2 .ainav2-sp-shotwrap .ainav2-sp-shot::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, 0.55) 45%, transparent 60%);
    transform: translateX(-120%);
    pointer-events: none;
}

.ainav2 .ainav2-sp-shotwrap.ainav2-sp-in .ainav2-sp-shot::after {
    animation: ainav2-sp-glare 1.6s 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}

@keyframes ainav2-sp-glare {
    to {
        transform: translateX(120%);
    }
}

.ainav2 .ainav2-sp-stat {
    position: absolute;
    top: -22px;
    left: -28px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 12px;
    background: rgba(18, 21, 28, 0.82);
    box-shadow: 0 20px 40px -16px rgba(0, 0, 0, 0.8);
    animation: ainav2-sp-float 7s ease-in-out -2.5s infinite;
}

.ainav2 .ainav2-sp-stat b {
    color: #fff;
    font: 900 26px/1 Archivo, "Public Sans", system-ui, sans-serif;
    font-stretch: 110%;
}

.ainav2 .ainav2-sp-stat span {
    max-width: 110px;
    color: #c3c8d1;
    font-size: 11.5px;
    line-height: 1.25;
}

/* Arrows and progress. */
.ainav2 .ainav2-sp-arrow {
    position: absolute;
    z-index: 6;
    top: 50%;
    display: grid;
    place-items: center;
    width: 40px;
    height: 84px;
    padding: 0;
    border: 0;
    background: linear-gradient(90deg, rgba(10, 12, 17, 0.6), transparent);
    color: #fff;
    opacity: 0;
    cursor: pointer;
    transform: translateY(-50%);
    transition: opacity 0.25s;
}

.ainav2 .ainav2-sp-arrowl {
    left: 0;
}

.ainav2 .ainav2-sp-arrowr {
    right: 0;
    background: linear-gradient(270deg, rgba(10, 12, 17, 0.6), transparent);
}

.ainav2 .ainav2-sp-arrow svg {
    width: 26px;
    height: 26px;
}

.ainav2 .ainav2-sp-hero:hover .ainav2-sp-arrow,
.ainav2 .ainav2-sp-arrow:focus-visible {
    opacity: 1;
}

.ainav2 .ainav2-sp-foot {
    position: absolute;
    z-index: 6;
    right: 24px;
    bottom: 16px;
    left: 40px;
    display: flex;
    align-items: center;
    gap: 14px;
}

.ainav2 .ainav2-sp-prog {
    display: flex;
    flex: 1;
    gap: 3px;
    max-width: 640px;
}

.ainav2 .ainav2-sp-prog button {
    position: relative;
    flex: 1;
    min-width: 0;
    height: 14px;
    padding: 5px 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.ainav2 .ainav2-sp-prog button::before {
    content: "";
    position: absolute;
    inset: 5px 0;
    border-radius: 2px;
    background: rgba(255, 255, 255, 0.2);
}

.ainav2 .ainav2-sp-prog button:hover::before {
    background: rgba(255, 255, 255, 0.4);
}

.ainav2 .ainav2-sp-prog i {
    position: absolute;
    top: 5px;
    bottom: 5px;
    left: 0;
    width: 0;
    border-radius: 2px;
    background: #fff;
}

.ainav2 .ainav2-sp-prog .ainav2-sp-done i {
    width: 100%;
    background: rgba(255, 255, 255, 0.65);
}

.ainav2 .ainav2-sp-prog .ainav2-sp-cur i {
    animation: ainav2-sp-fill var(--sp-dur) linear forwards;
}

.ainav2 .ainav2-sp-paused .ainav2-sp-prog .ainav2-sp-cur i,
.ainav2 .ainav2-sp-hero:hover .ainav2-sp-prog .ainav2-sp-cur i,
.ainav2 .ainav2-sp-paused .ainav2-sp-iscur .ainav2-sp-cardbar {
    animation-play-state: paused;
}

@keyframes ainav2-sp-fill {
    from {
        width: 0;
    }

    to {
        width: 100%;
    }
}

.ainav2 .ainav2-sp-count {
    flex: none;
    color: #aeb4c0;
    font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
}

.ainav2 .ainav2-sp-count b {
    color: #fff;
}

.ainav2 .ainav2-sp-hint {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
    color: #8f96a3;
    font-size: 11.5px;
    white-space: nowrap;
    opacity: 0;
    transition: opacity 0.3s;
}

.ainav2 .ainav2-sp-hint svg {
    width: 12px;
    height: 12px;
}

.ainav2 .ainav2-sp-hero:hover .ainav2-sp-hint {
    opacity: 1;
}

/* Poster row: scrolls on its own, never driven by the hero. */
.ainav2 .ainav2-sp-rowwrap {
    position: relative;
    z-index: 3;
    padding: 0 0 18px;
    background: linear-gradient(180deg, transparent, var(--sp-cin) 20px);
}

.ainav2 .ainav2-sp-rowhead {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    padding: 0 22px 0 40px;
}

.ainav2 .ainav2-sp-rowtitle {
    margin: 0;
    color: #fff;
    font-family: Archivo, "Public Sans", system-ui, sans-serif;
    font-size: 20px;
    font-weight: 800;
    font-stretch: 108%;
}

.ainav2 .ainav2-sp-filters {
    display: flex;
    flex: 1 0 100%;
    flex-wrap: wrap;
    order: 3;
    gap: 6px;
    padding: 2px 0;
}

.ainav2 .ainav2-sp-f {
    flex: none;
    height: 26px;
    padding: 0 12px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 999px;
    background: transparent;
    color: #c9ced8;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    transition: color 0.2s, border-color 0.2s, background 0.2s;
}

.ainav2 .ainav2-sp-f:hover,
.ainav2 .ainav2-sp-f:focus-visible {
    border-color: rgba(255, 255, 255, 0.4);
    color: #fff;
}

.ainav2 .ainav2-sp-f[aria-pressed="true"] {
    border-color: #fff;
    background: #fff;
    color: #0b0d12;
}

.ainav2 .ainav2-sp-f span {
    margin-left: 4px;
    font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace;
    font-size: 11px;
    opacity: 0.55;
}

.ainav2 .ainav2-sp-row {
    display: flex;
    padding: 10px 40px 4px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
}

.ainav2 .ainav2-sp-row::-webkit-scrollbar {
    display: none;
}

.ainav2 .ainav2-sp-poster {
    position: relative;
    display: flex;
    flex: none;
    align-items: flex-end;
    margin-right: 10px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
    text-align: left;
    cursor: pointer;
    scroll-snap-align: start;
    animation: ainav2-sp-posterin 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

@keyframes ainav2-sp-posterin {
    from {
        opacity: 0;
        transform: translateY(16px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.ainav2 .ainav2-sp-num {
    position: relative;
    z-index: 0;
    margin-right: -20px;
    padding-bottom: 2px;
    color: var(--sp-cin);
    font-family: Archivo, "Public Sans", system-ui, sans-serif;
    font-size: 132px;
    font-weight: 900;
    line-height: 0.74;
    letter-spacing: -0.06em;
    -webkit-text-stroke: 3px rgba(255, 255, 255, 0.62);
    user-select: none;
    transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.ainav2 .ainav2-sp-num.ainav2-sp-two {
    margin-right: -22px;
    font-stretch: 62%;
    letter-spacing: -0.09em;
}

.ainav2 .ainav2-sp-card {
    position: relative;
    z-index: 1;
    width: 120px;
    height: 160px;
    overflow: hidden;
    border-radius: 8px;
    background: #171b23;
    box-shadow: 0 14px 30px -14px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(255, 255, 255, 0.08);
    transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.45s;
}

.ainav2 .ainav2-sp-cardart {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(120% 80% at 100% 0%, var(--sp-b55), transparent 60%),
        radial-gradient(110% 90% at 0% 30%, var(--sp-a60), transparent 65%),
        #141821;
}

.ainav2 .ainav2-sp-cardimg {
    position: absolute;
    top: 34px;
    left: 14px;
    width: 210px;
    max-width: none;
    border-radius: 6px;
    box-shadow: 0 18px 30px -10px rgba(0, 0, 0, 0.7);
    transform: perspective(600px) rotateY(-18deg) rotateX(8deg) rotateZ(-4deg);
    transform-origin: left top;
    transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.ainav2 .ainav2-sp-flag {
    position: absolute;
    top: 10px;
    right: 9px;
    padding: 4px 5px;
    border-radius: 3px;
    background: #ff6a0f;
    font-size: 9px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ainav2 .ainav2-sp-flag.ainav2-sp-flagok {
    background: #2f9e55;
}

.ainav2 .ainav2-sp-cardfoot {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 34px 10px 10px;
    background: linear-gradient(0deg, rgba(8, 10, 14, 0.97) 30%, rgba(8, 10, 14, 0));
}

.ainav2 .ainav2-sp-cardtitle {
    display: block;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
    font-family: Archivo, "Public Sans", system-ui, sans-serif;
    font-size: 14px;
    font-weight: 800;
    font-stretch: 88%;
    line-height: 1.02;
    text-transform: uppercase;
}

.ainav2 .ainav2-sp-cardmeta {
    display: block;
    margin-top: 5px;
    color: #aab1bd;
    font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace;
    font-size: 10.5px;
    font-weight: 600;
}

.ainav2 .ainav2-sp-cardbar {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 3px;
    background: #ff6a0f;
}

.ainav2 .ainav2-sp-poster:hover .ainav2-sp-card,
.ainav2 .ainav2-sp-poster:focus-visible .ainav2-sp-card {
    transform: translateY(-8px) scale(1.07);
    box-shadow: 0 26px 40px -14px rgba(0, 0, 0, 0.95), 0 0 0 2px rgba(255, 255, 255, 0.9);
}

.ainav2 .ainav2-sp-poster:hover .ainav2-sp-cardimg {
    transform: perspective(600px) rotateY(-8deg) rotateX(4deg) rotateZ(-2deg) translateY(-6px);
}

.ainav2 .ainav2-sp-poster:hover .ainav2-sp-num {
    transform: translateX(-4px);
    -webkit-text-stroke-color: #fff;
}

.ainav2 .ainav2-sp-poster:focus-visible {
    outline: none;
}

.ainav2 .ainav2-sp-poster.ainav2-sp-iscur .ainav2-sp-card {
    box-shadow: 0 14px 30px -14px rgba(0, 0, 0, 0.9), 0 0 0 2px #ff6a0f;
}

.ainav2 .ainav2-sp-poster.ainav2-sp-iscur .ainav2-sp-num {
    -webkit-text-stroke-color: #ff8a3d;
}

.ainav2 .ainav2-sp-poster.ainav2-sp-iscur .ainav2-sp-cardbar {
    animation: ainav2-sp-fill var(--sp-dur) linear forwards;
}

/* Details dialog. */
.ainav2 .ainav2-sp-ov {
    position: fixed;
    z-index: 1060;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 84px 16px 36px;
    overflow-y: auto;
    background: rgba(5, 6, 9, 0.72);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s;
}

.ainav2 .ainav2-sp-ov.ainav2-sp-ovopen {
    opacity: 1;
    pointer-events: auto;
}

.ainav2 .ainav2-sp-modal {
    position: relative;
    width: 100%;
    max-width: 820px;
    max-height: calc(100vh - 120px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 14px;
    background: #15181f;
    color: #fff;
    box-shadow: 0 40px 100px -20px rgba(0, 0, 0, 0.9);
    transform: translateY(30px) scale(0.96);
    transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.ainav2 .ainav2-sp-ovopen .ainav2-sp-modal {
    transform: none;
}

.ainav2 .ainav2-sp-mscroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: none;
}

.ainav2 .ainav2-sp-mscroll::-webkit-scrollbar {
    display: none;
}

.ainav2 .ainav2-sp-mban {
    position: relative;
    height: 220px;
    overflow: hidden;
    background:
        radial-gradient(70% 90% at 70% 20%, var(--sp-a60), transparent 70%),
        radial-gradient(60% 80% at 100% 100%, var(--sp-b55), transparent 70%),
        #15181f;
}

.ainav2 .ainav2-sp-mban::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(0deg, #15181f 4%, rgba(21, 24, 31, 0.6) 35%, rgba(21, 24, 31, 0) 65%),
        linear-gradient(90deg, rgba(21, 24, 31, 0.8), transparent 55%);
}

.ainav2 .ainav2-sp-mshot {
    position: absolute;
    top: 28px;
    right: -4%;
    width: 76%;
    transform: perspective(1400px) rotateY(-12deg) rotateX(5deg);
}

.ainav2 .ainav2-sp-mhead {
    position: absolute;
    z-index: 2;
    right: 32px;
    bottom: 22px;
    left: 32px;
}

.ainav2 .ainav2-sp-mhead .ainav2-sp-title {
    margin: 10px 0 0;
    font-size: 40px;
}

.ainav2 .ainav2-sp-mx {
    position: absolute;
    z-index: 3;
    top: 14px;
    right: 14px;
}

.ainav2 .ainav2-sp-mbody {
    padding: 6px 32px 28px;
}

.ainav2 .ainav2-sp-mgrid {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 28px;
    margin-top: 16px;
}

.ainav2 .ainav2-sp-mbody .ainav2-sp-desc {
    display: block;
    margin: 0 0 14px;
}

.ainav2 .ainav2-sp-mbody .ainav2-sp-feats {
    grid-template-columns: 1fr;
    margin: 0;
}

.ainav2 .ainav2-sp-dl {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 7px 12px;
    align-content: start;
    margin: 0;
    font-size: 13px;
}

.ainav2 .ainav2-sp-dl dt {
    color: #8b92a0;
    font-weight: 400;
}

.ainav2 .ainav2-sp-dl dd {
    margin: 0;
    color: #e6e9ee;
    overflow-wrap: anywhere;
}

.ainav2 .ainav2-sp-dl code {
    color: #c9ced8;
    font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace;
    font-size: 12px;
}

.ainav2 .ainav2-sp-mcta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 22px 0 4px;
}

.ainav2 .ainav2-sp-mnote {
    margin-top: 10px;
    color: #8b92a0;
    font-size: 12px;
}

.ainav2 .ainav2-sp-more {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, 0.09);
}

.ainav2 .ainav2-sp-more h4 {
    margin: 0 0 12px;
    color: #fff;
    font-family: Archivo, "Public Sans", system-ui, sans-serif;
    font-size: 17px;
    font-weight: 800;
}

.ainav2 .ainav2-sp-moreg {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 12px;
}

.ainav2 .ainav2-sp-mc {
    display: block;
    overflow: hidden;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 10px;
    background: #262b36;
    color: #fff;
    text-align: left;
    cursor: pointer;
    box-shadow: 0 14px 28px -14px rgba(0, 0, 0, 0.9), inset 0 1px 0 rgba(255, 255, 255, 0.08);
    transition: transform 0.3s, box-shadow 0.3s;
}

.ainav2 .ainav2-sp-mc:hover,
.ainav2 .ainav2-sp-mc:focus-visible {
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.8);
    transform: translateY(-4px);
}

.ainav2 .ainav2-sp-mcart {
    position: relative;
    display: block;
    height: 76px;
    overflow: hidden;
    background:
        radial-gradient(90% 90% at 0 0, var(--sp-a60), transparent),
        radial-gradient(90% 90% at 100% 0, var(--sp-b55), transparent),
        #141821;
}

.ainav2 .ainav2-sp-mcart .ainav2-sp-shot {
    position: absolute;
    top: 16px;
    left: 12%;
    width: 150%;
    transform: rotate(-4deg);
}

.ainav2 .ainav2-sp-mctx {
    display: block;
    padding: 10px 12px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.ainav2 .ainav2-sp-mctx b {
    display: block;
    font-size: 13.5px;
}

.ainav2 .ainav2-sp-mctx small {
    color: #a3aab8;
    font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace;
    font-size: 11px;
}

/* Narrow column: stack, and put the preview behind the copy. */
.ainav2 .ainav2-sp-narrow .ainav2-sp-hero {
    min-height: 420px;
}

.ainav2 .ainav2-sp-narrow .ainav2-sp-top {
    left: 22px;
}

.ainav2 .ainav2-sp-narrow .ainav2-sp-stage {
    grid-template-columns: 1fr;
    padding: 58px 22px 46px;
}

.ainav2 .ainav2-sp-narrow .ainav2-sp-shotwrap {
    max-width: none;
}

.ainav2 .ainav2-sp-narrow .ainav2-sp-shotslot {
    position: absolute;
    top: 70px;
    right: -18%;
    width: 78%;
    height: auto;
    opacity: 0.32;
    pointer-events: none;
}

.ainav2 .ainav2-sp-narrow .ainav2-sp-stat {
    display: none;
}

.ainav2 .ainav2-sp-narrow .ainav2-sp-vig {
    background:
        linear-gradient(90deg, #0a0c11 0%, rgba(10, 12, 17, 0.8) 60%, rgba(10, 12, 17, 0.5)),
        linear-gradient(0deg, #0a0c11 0%, transparent 40%);
}

.ainav2 .ainav2-sp-narrow .ainav2-sp-title {
    font-size: 36px;
}

.ainav2 .ainav2-sp-narrow .ainav2-sp-foot {
    left: 22px;
}

.ainav2 .ainav2-sp-narrow .ainav2-sp-rowhead,
.ainav2 .ainav2-sp-narrow .ainav2-sp-row {
    padding-left: 22px;
}

.ainav2 .ainav2-sp-narrow .ainav2-sp-mgrid {
    grid-template-columns: 1fr;
}

.ainav2 .ainav2-sp-tiny .ainav2-sp-hero {
    min-height: 460px;
}

.ainav2 .ainav2-sp-tiny .ainav2-sp-title {
    font-size: 30px;
}

.ainav2 .ainav2-sp-tiny .ainav2-sp-feats {
    grid-template-columns: 1fr;
}

.ainav2 .ainav2-sp-tiny .ainav2-sp-feats li:nth-child(n+3),
.ainav2 .ainav2-sp-tiny .ainav2-sp-kicker span,
.ainav2 .ainav2-sp-tiny .ainav2-sp-rowtools {
    display: none;
}

.ainav2 .ainav2-sp-tiny .ainav2-sp-filters {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
}

.ainav2 .ainav2-sp-tiny .ainav2-sp-mban {
    height: 180px;
}

.ainav2 .ainav2-sp-tiny .ainav2-sp-mhead .ainav2-sp-title {
    font-size: 28px;
}

.ainav2 .ainav2-sp-tiny .ainav2-sp-mbody {
    padding: 6px 18px 22px;
}

@media (prefers-reduced-motion: reduce) {
    .ainav2 .ainav2-sp-bg.ainav2-sp-in,
    .ainav2 .ainav2-sp-beams,
    .ainav2 .ainav2-sp-float,
    .ainav2 .ainav2-sp-stat,
    .ainav2 .ainav2-sp-poster,
    .ainav2 .ainav2-sp-shotwrap.ainav2-sp-in .ainav2-sp-shot::after {
        animation: none;
    }

    .ainav2 .ainav2-sp-shotwrap,
    .ainav2 .ainav2-sp-shotwrap.ainav2-sp-in,
    .ainav2 .ainav2-sp-shotwrap.ainav2-sp-out,
    .ainav2 .ainav2-sp-copy > *,
    .ainav2 .ainav2-sp-copy.ainav2-sp-out > * {
        transform: none;
    }

    .ainav2 .ainav2-sp-tilt {
        transform: perspective(1500px) rotateY(-12deg) rotateX(6deg);
    }
}

/* Spotlight button text colours, pinned for every state. The block's own button reset
   (.ainav2 button:hover { color: inherit }) and theme button:hover rules are otherwise more
   specific than the single-class rules above, and turned the text dark on dark backgrounds. */
.ainav2 .ainav2-sp button.ainav2-sp-bar,
.ainav2 .ainav2-sp button.ainav2-sp-bar:hover,
.ainav2 .ainav2-sp button.ainav2-sp-bar:focus,
.ainav2 .ainav2-sp button.ainav2-sp-bar:active,
.ainav2 .ainav2-sp button.ainav2-sp-arrow,
.ainav2 .ainav2-sp button.ainav2-sp-arrow:hover,
.ainav2 .ainav2-sp button.ainav2-sp-arrow:focus,
.ainav2 .ainav2-sp button.ainav2-sp-arrow:active,
.ainav2 .ainav2-sp button.ainav2-sp-ib,
.ainav2 .ainav2-sp button.ainav2-sp-ib:hover,
.ainav2 .ainav2-sp button.ainav2-sp-ib:focus,
.ainav2 .ainav2-sp button.ainav2-sp-ib:active,
.ainav2 .ainav2-sp button.ainav2-sp-btng,
.ainav2 .ainav2-sp button.ainav2-sp-btng:hover,
.ainav2 .ainav2-sp button.ainav2-sp-btng:focus,
.ainav2 .ainav2-sp button.ainav2-sp-btng:active,
.ainav2 .ainav2-sp button.ainav2-sp-poster,
.ainav2 .ainav2-sp button.ainav2-sp-poster:hover,
.ainav2 .ainav2-sp button.ainav2-sp-poster:focus,
.ainav2 .ainav2-sp button.ainav2-sp-poster:active,
.ainav2 .ainav2-sp button.ainav2-sp-mc,
.ainav2 .ainav2-sp button.ainav2-sp-mc:hover,
.ainav2 .ainav2-sp button.ainav2-sp-mc:focus,
.ainav2 .ainav2-sp button.ainav2-sp-mc:active,
.ainav2 .ainav2-sp button.ainav2-sp-f:hover,
.ainav2 .ainav2-sp button.ainav2-sp-f:focus-visible {
    color: #fff;
}

.ainav2 .ainav2-sp button.ainav2-sp-f {
    color: #c9ced8;
}

.ainav2 .ainav2-sp button.ainav2-sp-btnp,
.ainav2 .ainav2-sp button.ainav2-sp-btnp:hover,
.ainav2 .ainav2-sp button.ainav2-sp-btnp:focus,
.ainav2 .ainav2-sp button.ainav2-sp-btnp:active,
.ainav2 .ainav2-sp button.ainav2-sp-f[aria-pressed="true"],
.ainav2 .ainav2-sp button.ainav2-sp-f[aria-pressed="true"]:hover,
.ainav2 .ainav2-sp button.ainav2-sp-f[aria-pressed="true"]:focus,
.ainav2 .ainav2-sp button.ainav2-sp-f[aria-pressed="true"]:active {
    color: #0b0d12;
}

.ainav2 .ainav2-sp-chip[hidden] {
    display: none;
}

/* Theme-proofing. Many Moodle themes style headings and spacing inside blocks with rules
   such as ".block .card-body h3" that out-rank single-class selectors, which shrank the slide
   title and could drop the spotlight's outer margin. These selectors win over those. */
.ainav2 #ainav2-sp {
    margin: 28px 18px;
}

.ainav2 #ainav2-sp.ainav2-sp-tiny {
    margin: 18px 10px;
}

.ainav2 div.ainav2-sp h3.ainav2-sp-title {
    margin: 8px 0 10px;
    padding: 0;
    color: #fff;
    font-family: Archivo, "Public Sans", system-ui, sans-serif;
    font-size: 32px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.02em;
    text-transform: none;
}

.ainav2 div.ainav2-sp-tiny h3.ainav2-sp-title {
    font-size: 26px;
}

.ainav2 div.ainav2-sp .ainav2-sp-mhead h3.ainav2-sp-title {
    margin: 10px 0 0;
    font-size: 34px;
}

.ainav2 div.ainav2-sp-tiny .ainav2-sp-mhead h3.ainav2-sp-title {
    font-size: 28px;
}

.ainav2 div.ainav2-sp h3.ainav2-sp-rowtitle {
    margin: 0;
    padding: 0;
    color: #fff;
    font-family: Archivo, "Public Sans", system-ui, sans-serif;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: none;
}

/* Short screens (e.g. 1366x768 laptops): keep the whole spotlight on screen. */
@media (max-height: 820px) {
    .ainav2 #ainav2-sp {
        margin: 20px 18px;
    }

    .ainav2 .ainav2-sp-hero {
        min-height: 372px;
    }

    .ainav2 .ainav2-sp-stage {
        padding-top: 62px;
        padding-bottom: 44px;
    }

    .ainav2 .ainav2-sp-feats {
        display: none;
    }

    .ainav2 .ainav2-sp-shotwrap {
        max-width: 400px;
    }
}

.block_blog_tags .s20 {
    font-size: 1.5em;
    font-weight: bold;
}

.block_blog_tags .s19 {
    font-size: 1.5em;
}

.block_blog_tags .s18 {
    font-size: 1.4em;
    font-weight: bold;
}

.block_blog_tags .s17 {
    font-size: 1.4em;
}

.block_blog_tags .s16 {
    font-size: 1.3em;
    font-weight: bold;
}

.block_blog_tags .s15 {
    font-size: 1.3em;
}

.block_blog_tags .s14 {
    font-size: 1.2em;
    font-weight: bold;
}

.block_blog_tags .s13 {
    font-size: 1.2em;
}

.block_blog_tags .s12,
.block_blog_tags .s11 {
    font-size: 1.1em;
    font-weight: bold;
}

.block_blog_tags .s10,
.block_blog_tags .s9 {
    font-size: 1.1em;
}

.block_blog_tags .s8,
.block_blog_tags .s7 {
    font-size: 1em;
    font-weight: bold;
}

.block_blog_tags .s6,
.block_blog_tags .s5 {
    font-size: 1em;
}

.block_blog_tags .s4,
.block_blog_tags .s3 {
    font-size: 0.9em;
    font-weight: bold;
}

.block_blog_tags .s2,
.block_blog_tags .s1 {
    font-size: 0.9em;
}
.block_course_list .footer {
    margin-top: 5px;
}

.block_course_list .content li {
    margin-bottom: .3em;
}

.block_course_summary .content {
    padding: 10px;
}

.block_course_summary .editbutton {
    text-align: right;
}
.block_globalsearch .searchform {
    text-align: center;
}

.block_globalsearch .footer {
    text-align: center;
}

.block_lp.block .content h3 {
    padding: 0;
    text-transform: none;
}

.block_lp .sub-content {
    padding: 0 15px;
}

.block_lp ul {
    list-style: none;
    margin: 0;
}

.block_lp ul .more {
    padding-top: 10px;
}

/* Hide the first dropdown-divider if no filter option element is listed before it.
   This can happen for some subset configurations of the block_myoverview course filter. */
.block_myoverview button#groupingdropdown + .dropdown-menu li:first-of-type.dropdown-divider:first-of-type {
    display: none;
}
.block_myoverview .whitebutton .btn-secondary {
    background: white;
    border-color: var(--bs-primary);
    color: var(--bs-primary);
}

.page-mycourses .block_myoverview .block-controls {
    display: none;
}

.block_myprofile img.profilepicture {
    height: 50px;
    width: 50px;
}

.block_myprofile .myprofileitem.fullname {
    font-size: 1.5em;
    font-weight: bold;
    margin-bottom: 0.5rem;
}

.block_myprofile .myprofileitem.edit {
    text-align: right;
}

.block_myprofile .content {
    display: flex;
}

.block_myprofile .myprofileitem.picture img {
    width: 50px;
    height: 50px;
    margin-right: 1rem;
}

.block_myprofile .myprofileitem span {
    font-weight: bold;
}

.block_navigation .block_tree .depth_1 > .tree_item.branch {
    padding-left: 0;
    background-image: none;
}

.block_navigation .block_tree .depth_1 > ul {
    margin: 0;
}

.block_navigation .block_tree ul {
    margin-left: 18px;
}

.block_navigation .block_tree p.hasicon {
    text-indent: -21px;
    padding-left: 21px;
}

.block_navigation .block_tree p.hasicon img {
    width: 16px;
    height: 16px;
    margin-top: 3px;
    margin-right: 5px;
    vertical-align: top;
}

.block_navigation .block_tree p.hasicon.visibleifjs {
    display: block;
}

.block_navigation .block_tree .tree_item {
    cursor: pointer;
    padding-left: 0;
    margin: 3px 0;
    background-position: 0 50%;
    background-repeat: no-repeat;
    word-wrap: break-word;
}

.block_navigation .block_tree .tree_item.branch {
    padding-left: 21px;
}

.block_navigation .block_tree .active_tree_node {
    font-weight: bold;
}

.block_navigation .block_tree [aria-expanded="true"] {
    background-image: url(/theme/image.php/academi/core/1790824836/t/expanded);
}

.block_navigation .block_tree [aria-expanded="false"] {
    background-image: url(/theme/image.php/academi/core/1790824836/t/collapsed);
}

.block_navigation .block_tree [aria-expanded="true"].emptybranch {
    background-image: url(/theme/image.php/academi/core/1790824836/t/collapsed_empty);
}

.block_navigation .block_tree [aria-expanded="false"] p.loading {
    background-image: url(/theme/image.php/academi/core/1790824836/i/loading_small);
}

/*rtl:raw:
.block_navigation .block_tree [aria-expanded="false"] {background-image: url(/theme/image.php/academi/core/1790824836/t/collapsed_rtl);}
.block_navigation .block_tree [aria-expanded="true"].emptybranch {background-image: url(/theme/image.php/academi/core/1790824836/t/collapsed_empty_rtl);}
.block_navigation .block_tree [aria-expanded="false"].loading {background-image: url(/theme/image.php/academi/core/1790824836/i/loading_small);}
*/

.block_navigation .block_tree [aria-hidden="false"] {
    display: block;
}

.block_navigation .block_tree [aria-hidden="true"]:not(.icon) {
    display: none;
}

.block_online_users .content .list li.listentry {
    clear: both;
}

.block_online_users .content .list li.listentry:not(:first-child) {
    padding-top: 3px;
}

.block_online_users .content .list li.listentry .user {
    float: left;
    position: relative;
}

.block_online_users .content .list li.listentry .otherusers {
    margin-left: 1.5rem;
}

.block_online_users .content .list li.listentry .user .userpicture {
    vertical-align: text-bottom;
}

.block_online_users .content .list li.listentry .message,
.block_online_users .content .list li.listentry .uservisibility {
    float: right;
    margin-top: 3px;
}

.block_online_users .content .info {
    text-align: center;
}

/* Rule so that the table tree view works with word-wrap: break-word. */
.block_private_files .content table {
    table-layout: fixed;
    width: 100%;
}

.block_private_files .content .footer {
    padding: 10px 0 0;
    margin-top: .5em;
}

.block_private_files ul[role="tree"] {
    margin: 0;
    padding: 0;
}
.block_private_files ul,
.block_private_files li {
    list-style: none;
}

.block_private_files [role="treeitem"] {
    padding-left: 22px;
    cursor: pointer;
}

.block_private_files [role="treeitem"] p {
    margin-bottom: 0;
}

.block_private_files [role="treeitem"][aria-expanded] {
    padding-left: 0;
}

.block_private_files [role="treeitem"][aria-expanded="false"] > p {
    /*rtl:remove*/
    background-image: url(/theme/image.php/academi/core/1790824836/t/collapsed);
    /*rtl:raw:
        background-image: url(/theme/image.php/academi/core/1790824836/t/collapsed_rtl);
    */
    background-size: 16px 16px;
    background-position: 1px 1px;
    background-repeat: no-repeat;
    padding-left: 22px;
}

.block_private_files [role="treeitem"][aria-expanded="true"] > p {
    background-image: url(/theme/image.php/academi/core/1790824836/t/expanded);
    background-size: 16px 16px;
    background-position: 1px 1px;
    background-repeat: no-repeat;
    padding-left: 22px;
}

.block_private_files [role="treeitem"]:not([aria-expanded]) {
    background-image:
        repeating-linear-gradient(
            to right,
            rgba(0, 0, 0, .5) 0,
            rgba(0, 0, 0, .5) 1px,
            rgba(255, 255, 255, 0) 1px,
            rgba(255, 255, 255, 0) 2px
        ),
        repeating-linear-gradient(
            to top,
            rgba(0, 0, 0, 0.5) 0,
            rgba(0, 0, 0, 0.5) 1px,
            rgba(255, 255, 255, 0) 1px,
            rgba(255, 255, 255, 0) 2px
        );
    background-repeat: no-repeat, no-repeat;
    /*rtl:remove*/
    background-position: left 10px top 50%, left 8px top 0;
    /*rtl:raw:
        background-position: right 10px top 50%, right 8px top 0;
    */
    background-size: 11px 1px, 1px 100%;
}

.block_private_files [role="treeitem"]:not([aria-expanded]):last-child {
    background-size: 11px 1px, 1px 50%;
}

.block_private_files [role="group"] {
    background-image:
        repeating-linear-gradient(
            to top,
            rgba(0, 0, 0, 0.5) 0,
            rgba(0, 0, 0, 0.5) 1px,
            rgba(255, 255, 255, 0) 1px,
            rgba(255, 255, 255, 0) 2px
        );
    background-repeat: no-repeat;
    background-position: left 8px top 100%;
    background-size: 1px 100%;
    padding-left: 22px;
    margin-left: 0;
}

.block_private_files [aria-hidden="true"]:not(.icon) {
    display: none;
}

.block_recent_activity .unlist li {
    margin-bottom: 1em;
}

.block_recent_activity li .head .date {
    float: right;
}

/* RSS Feeds
-------------------------*/
.block_rss_client .list li:first-child {
    border-top-width: 0;
}

.block_rss_client .list li {
    border-top: 1px solid;
    padding: 5px;
}
.block_search_forums .searchform {
    text-align: center;
}

.block_search_forums .searchform img {
    vertical-align: middle;
}

.block_search_forums .searchform img.resize {
    width: 1em;
    height: 1.1em;
}

.block_search_forums .invisiblefieldset {
    display: block;
}
.block_settings .block_tree ul {
    margin-left: 18px;
}

.block_settings .block_tree p.hasicon {
    text-indent: -21px;
    padding-left: 21px;
}

.block_settings .block_tree p.hasicon img {
    width: 16px;
    height: 16px;
    margin-top: 3px;
    margin-right: 5px;
    vertical-align: top;
}

.block_settings .block_tree p.hasicon.visibleifjs {
    display: block;
}

.block_settings .block_tree .tree_item.branch {
    padding-left: 21px;
}

.block_settings .block_tree .tree_item {
    cursor: pointer;
    margin: 3px 0;
    background-position: 0 50%;
    background-repeat: no-repeat;
}

.block_settings .block_tree .active_tree_node {
    font-weight: bold;
}

.block_settings .block_tree [aria-expanded="true"] {
    background-image: url(/theme/image.php/academi/core/1790824836/t/expanded);
}

.block_settings .block_tree [aria-expanded="false"] {
    background-image: url(/theme/image.php/academi/core/1790824836/t/collapsed);
}

.block_settings .block_tree [aria-expanded="true"].emptybranch {
    background-image: url(/theme/image.php/academi/core/1790824836/t/collapsed_empty);
}

.block_settings .block_tree [aria-expanded="false"] p.loading {
    background-image: url(/theme/image.php/academi/core/1790824836/i/loading_small);
}
/*rtl:raw:
.block_settings .block_tree [aria-expanded="false"] {background-image: url(/theme/image.php/academi/core/1790824836/t/collapsed_rtl);}
.block_settings .block_tree [aria-expanded="true"].emptybranch {background-image: url(/theme/image.php/academi/core/1790824836/t/collapsed_empty_rtl);}
.block_settings .block_tree [aria-expanded="false"].loading {background-image: url(/theme/image.php/academi/core/1790824836/i/loading_small);}
*/
.block_settings .block_tree [aria-hidden="false"] {
    display: block;
}

.block_settings .block_tree  [aria-hidden="true"]:not(.icon) {
    display: none;
}

/* Imitate mobile grid for activity card. */
.block_site_main_menu .activity-item .activity-grid {
    grid-template-columns: min-content 1fr min-content min-content min-content;
    grid-template-rows: 1fr repeat(4, min-content);
    grid-template-areas:
        "icon name actions"
        "visibility visibility visibility"
        "dates dates dates"
        "completion completion completion"
        "altcontent altcontent altcontent"
        "afterlink afterlink afterlink"
        "availability availability availability";
}

.block_site_main_menu .activity-item .activity-grid.noname-grid {
    grid-template-columns: 1fr min-content;
    grid-template-areas:
        "actions"
        "visibility"
        "altcontent"
        "groupmode"
        "afterlink"
        "completion"
        "availability";
}

.block_site_main_menu .activity-item .activity-grid.noname-grid .activity-actions {
    justify-self: end;
}

/* Hide extra edit elements in block space. */
.block_site_main_menu .activity-groupmode-info {
    display: none;
}

/* Imitate mobile grid for activity card. */
.block_social_activities .activity-item .activity-grid {
    grid-template-columns: min-content 1fr min-content min-content min-content;
    grid-template-rows: 1fr repeat(4, min-content);
    grid-template-areas:
        "icon name actions"
        "visibility visibility visibility"
        "dates dates dates"
        "completion completion completion"
        "altcontent altcontent altcontent"
        "afterlink afterlink afterlink"
        "availability availability availability";
}

.block_social_activities .activity-item .activity-grid.noname-grid {
    grid-template-columns: 1fr min-content;
    grid-template-areas:
        "actions"
        "visibility"
        "altcontent"
        "groupmode"
        "afterlink"
        "completion"
        "availability";
}

.block_social_activities .activity-item .activity-grid.noname-grid .activity-actions {
    justify-self: end;
}

/* Hide extra edit elements in block space. */
.block_social_activities .activity-groupmode-info {
    display: none;
}

.block_social_activities .inplaceeditable.inplaceeditingon input {
    width: 100%;
}

.block_tag_flickr .flickr-photos {
    padding: 3px;
}
.block_tag_youtube .youtube-thumb {
    padding: 3px;
    padding-bottom: 0.5em;
    display: block;
    float: left;
}

.block_tag_youtube .yt-video-entry li {
    clear: left;
}
#block-region-side-pre .block_timeline .nav-search {
    flex: 0 0 100%;
    max-width: 100%;
}

.block_timeline .input-group.searchbar {
    width: 100%;
}

#block-region-side-pre .block_timeline h6.event-action {
    flex-basis: 100%;
}
#block-region-side-pre .block_timeline .event-name-container {
    flex-basis: 50%;
}
#block-region-side-pre .block_timeline h6.event-action a.btn {
    width: auto;
}

.block_timeline .timeline-action-button {
    margin-left: auto;
}

@media (max-width: 480px) {
    .block_timeline .timeline-name {
        width: 100%;
    }

    .block_timeline .timeline-action-button {
        margin-left: 0;
    }
}

:root{
    --c-body-font-clr: #000;
    --c-primary-focus-color: #03a9f5;
    --c-primary-anchor-clr: #03a9f5;
    --c-primary-btn-bg: #f0483e;
    --c-white: #fff;
    --c-zsh-place-fontcolor: #878787;
    --c-zf-hover: #f6f8fb;
    --c-highlight:#448FF7;
    --c-primary-color:#272F43;
    --c-top-bar-color:#262F45;
    --c-cta:#1AB394;
    --c-cta-padding:12px 20px;
    --c-dark-text:#333333;
    --c-text-color:#272F43;
    --c-b-radius: 3px;
    --c-fontsize14 : 14px;
    --c-fontsize16 : 16px;
    --c-fontsize12 : 12px;
    --c-gray :#555555;
    --c-body-bg:#F5F6F8;
    --c-discard:#A8A8A8;
    --c-gray-100: #ECECEC;
    --c-gray-60: #9d9d9d;
    --c-gray-50: #f5f6f8;
    --c-gray-10: #bbbbbb;
    --c-gray-200: #d6d4d4;
    --c-light-gray:#F4F4F4;
    --c-dark-blue-gray:#464D5D;
    --c-charcoal-blue: #464D5D;
    --c-sonic-silver:#7C7C7C;
    --c-light-black: rgba(0,0,0,0.7);
    --c-silver-gray:#D3D3D3;
    --c-corl:#ff6347;
    --c-off-gray:#FAFAFA;
    --c-mist-slate:#DDDDDD80;
    --c-dark-charcoal: #333;
    --c-soft-silver:#E3E3E3;
    --c-granite-gray:#848484;
    --c-red: red;
    --c-teal: #20A58A;
    --c-celadon-green:#52AD93;
    --c-dodger-blue:#2680EB;
    --c-alice-blue: #edf4fd;
    --c-border-gray: #ddd;
    --c-pale-gray:#eee;
    --c-vibrant-red:#EF4C4C;
    --c-aliceBlue: #ECF4FE;
    --c-mintcream:#EEF6F5;
    --c-drak-sea-green: #88bcaa;
    --c-keppel: #36bc9e;
}

.block_ungraded_assignments ul li {
    list-style: none;
}

.block_ungraded_assignments .tree .parent {
    position: relative;
    padding-block: 4px;
}

.block_ungraded_assignments .tree .parent::before,
.block_ungraded_assignments .tree .parent::after {
  content: '';
  position: absolute;
}


.block_ungraded_assignments .tree .parent::before {
  width: 18px;
  top: 13px;
  left: -18px;
  border-bottom: 1px dashed var(--c-gray-200);
}

.block_ungraded_assignments .tree .parent::after {
  display: block;
  width: 0;
  top: 0;
  left: -27.5px;
  height: 39px;
  border-left: 1px solid var(--c-gray-200);
  bottom: 0;
}


.block_ungraded_assignments .tree .parent:last-child::after {
  height: 5px;
  bottom: auto;
}

.block_ungraded_assignments .tree .parent::after {
  height: 100%;
  top: 23px;
}

.block_ungraded_assignments .tree details[open] > .parent::before,
.block_ungraded_assignments .tree details[open] > .nested-item::after {
  border-left-color: var(--c-drak-sea-green);
}

.block_ungraded_assignments .tree .parent.parent:last-child::after {
  content: none;
  bottom: auto;
}

.block_ungraded_assignments .tree details {
  margin: 0 auto;
}

.details > .nested-list {
  padding: 15px;
}

.block_ungraded_assignments .tree summary {
  display: block;
  position: relative;
  cursor: pointer;
}

.block_ungraded_assignments .tree summary::before {
  content: '+';
  position: absolute;
  top: 0;
  left: -37px;
  width: 18px;
  height: 18px;
  text-align: center;
  color: var(--c-gray-200);
  border: 1px solid var(--c-gray-200);
  border-radius: 50%;
  background-color: var(--c-white);
  z-index: 10;
  line-height: 13px;
}

.block_ungraded_assignments .tree details[open] > summary::before {
  content: '-';
  border: 1px solid var(--c-drak-sea-green);
  color: var(--c-drak-sea-green);
}


.block_ungraded_assignments .tree details[open] > .tree.parent::after {
  display: block;
  width: 0;
  top: 0;
  left: -27.5px;
  height: 39px;
  border-left: 1px solid var(--c-drak-sea-green); /* Change border color here */
  bottom: 0;
}


.block_ungraded_assignments .tree .nested-list {
  padding: 5px 0 0 45px;
}

.block_ungraded_assignments .tree .nested-item {
  position: relative;
  padding: 5px 0 5px 0;
  margin-top: 0;
}

.block_ungraded_assignments .tree .nested-item:hover {
    border-color: #ced4da;
    background-color: #ced4da;
}

.block_ungraded_assignments .tree .nested-item::before,
.block_ungraded_assignments .tree .nested-item::after {
  content: '';
  position: absolute;
  left: -17px;
}


.block_ungraded_assignments .tree .nested-item::before {
  width: 28px;
  top: 22px;
  left: -27px;
  border-bottom: 1px dashed var(--c-gray-200);
}

.block_ungraded_assignments .tree .nested-item::after {
  display: block;
  width: 0;
  top: 0;
  left: -27px;
  height: 45px;
  height: 100%;
  border-left: 1px solid var(--c-gray-200);
  bottom: 0;
}

.block_ungraded_assignments .tree .nested-item:last-child::after {
  top: 0px;
  height: 22px ;
  bottom: auto;
}

.block_ungraded_assignments .tree .label {
  display: inline-block;
  font-size: 10px;
  padding-inline: 3px;
  color: #929292;
  margin-right: 10px;
  border: 1px solid var(--c-gray-100);
}

.block_ungraded_assignments .tree > .parent:last-child {
  padding-bottom: 0;
}

.block_ungraded_assignments .tree-title {
  font-size: 12px;
}

.block_ungraded_assignments .tree-title:hover {
  color: var(--c-keppel);
  cursor: pointer;
}
/* stylelint-disable */
.vjs-svg-icon {
  display: inline-block;
  background-repeat: no-repeat;
  background-position: center;
  fill: currentColor;
  height: 1.8em;
  width: 1.8em;
}
.vjs-svg-icon:before {
  content: none !important;
}

.vjs-svg-icon:hover,
.vjs-control:focus .vjs-svg-icon {
  filter: drop-shadow(0 0 0.25em #fff);
}

.vjs-modal-dialog .vjs-modal-dialog-content, .video-js .vjs-modal-dialog, .vjs-button > .vjs-icon-placeholder:before, .video-js .vjs-big-play-button .vjs-icon-placeholder:before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.vjs-button > .vjs-icon-placeholder:before, .video-js .vjs-big-play-button .vjs-icon-placeholder:before {
  text-align: center;
}

@font-face {
  font-family: VideoJS;
  src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABTsAAsAAAAAIpAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAAPgAAAFZRiV32Y21hcAAAAYQAAAEJAAAD5p42+VxnbHlmAAACkAAADtIAABckI4l972hlYWQAABFkAAAAKwAAADYsvIjpaGhlYQAAEZAAAAAdAAAAJA+RCL1obXR4AAARsAAAABcAAAC8Q2YAAGxvY2EAABHIAAAAYAAAAGB7CIGGbWF4cAAAEigAAAAfAAAAIAFAAI9uYW1lAAASSAAAASUAAAIK1cf1oHBvc3QAABNwAAABfAAAAnXdFqh1eJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGR7yDiBgZWBgaWQ5RkDA8MvCM0cwxDOeI6BgYmBlZkBKwhIc01hcPjI+FGPHcRdyA4RZgQRADaGCyYAAHic7dPXbcMwAEXRK1vuvffem749XAbKV3bjBA6fXsaIgMMLEWoQJaAEFKNnlELyQ4K27zib5PNF6vl8yld+TKr5kH0+cUw0xv00Hwvx2DResUyFKrV4XoMmLdp06NKjz4AhI8ZMmDJjzoIlK9Zs2LJjz4EjJ85cuHLjziPe/0UWL17mf2tqKLz/9jK9f8tXpGCoRdPKhtS0RqFkWvVQNtSKoVYNtWaoddPXEBqG2jQ9XWgZattQO4baNdSeofYNdWCoQ0MdGerYUCeGOjXUmaHODXVhqEtDXRnq2lA3hro11J2h7g31YKhHQz0Z6tlQL4Z6NdSbod4N9WGoT9MfHF6GmhnZLxyDcRMAAAB4nJ1YC1hU17U+a5/HMA4iA3NmVBDmoQwP5TFnHlFeA4gYiUFRQINoSCBAyK3G2yi+0aipYtFcHYo2xsb4NiY3+VrNxSaX5uvt495ozNdoYoxmem2/L8HGpLc+InB279pnhlGr5mvL4eyz99nrrL32eu1/DQcc/okdYgdHOA6MQKp4r9gx0EcMHMezOalVasW5BM7NcXoSb9fFgE6KtSSBxWz1FYDPG+vMBGcKb9cebu2VS5s2aaTkCvRSf6C7Y+Ppibm5E09v7IDs2/3uZQtbD0zIyppwoHXh/93ukmyYgdePNRp65p5v+3v/9otQl2O7wP34cT88p8Md2YxpYLQZoRcy6FlSBRnwnGAe6BPMSCZo+7NJVqS0cE4uHendzhSnbPH6TDqL1+Nme5LZXkCHnGyoH0kne30WH+gswhm3q+pt/mTas9NLS64GnjmSlTPw0wVQT/ewRaBgxtydy3cuUB9/6SW+vb5yRvr+t0eOfPKJZ/9t3+4tL7xj32Xd3thCxi+ge6ifdsAN+l5+wi5HQ/cCoeull1AszS7CUfEcJzK7sKWJAdJhCd0sPM4+EY7QDm5ov08hXRQXE5bf6PV5Q5+IjW7X7Nku92Ask4l2hCRRD6TPqISiCJeQna3SCFwrhrNzXHzo4yFevBwxpzxk8WCIIfkvVEKVy32SbT8n68gzgaslpaiO2zIGIyuSb7RNf9HSuN26y/7OC1tgEmpiyA6aD4qcgTOiLThwGG0eB694FI8NHLLN6OBlRVaMxNAFS4JdXUG6mW8PwpKuYLCLXKGbu8iwYNdgO06Sn3Th+/vyZAxs8Ro30DjHe9gy8Fywi24OMm7Qyzh3MTZVOMYhLBnoC+J79lpTUyQmorjhnMwlcQ5uPEYGpDjsOkkH49BjQLQBqs3jFtFdJNlksYmoQFDArLh8Xh+Qd6Ghcsb6FUuehDi+U/lqD71K/qiegeV1imcwjl7ExwiSrf4BZyCujV6cVcFo6VX+G9IcPyFjJnUufbU/jzrL1X99as36reXl8K32nFaOr+E8jWJEcJ55DpMVfSMe95/AJaOsGBH2GJCNpiRQbK4C8BjdmQA22QY2j03Em13i2YHqtNLU1NI04Yj2HJgA6fQc6VPNpA/D+Ryks554NnVy2mB72uRUfPLsqR4N0LOBQKArwJYO+5W2fgZX8oC1HR6HjNaQTVIG2FPwnTcXXGZZfNB7TE6pTKZUwaw91XWLAoFFGcnB5PHjsckgBjbWutrL+0h5Y1xw3DRGDumsnXb3MJwXrJIN5U7m0rgJ3yG5w4he5ckFG4pmNEkOm0/xOO4r4yL87wqtQM+hiJIVp+6iG2wPBKD35ElGkDx+UfC2v1mFG1o+M3AjNFty8biKMXwzyxnZLds8wYD2BxmCPHAldPOeLsy/0BugftYhVYFAhO8SqQ0j3oK7dHJZnI/jxmUS4onlxskSF8thmvNZjIrRZwEPxr0lBuLRuz3oy/FOHCsxwOPYh2M+e9u3J5pgPYz9gp6G7C9m0A11F9ddqKMfV+4sbq45/YspOysXvT+3pdFdYNg2fHbW8Dz301MqDVuGrz0Fuh0YMW8mddrpqzST7rV9BcvqPoNvadRndWp0p8HvbiqrFj5yFQ/vNFSXDpxpLEFWp+DcrF3FT1afWshFcmCfeAMjEvO65i0Y6XijQfSRPWx3TV/Df7Km3E1l+kLt56s/rwVzuRusNMhudznkwdLaS+QNdeal2jDPP4l9qHc98vTYZOSkxzD+njBWVWjFPKgipx6DkWvXQiW8OYcewVHE5yukinDMcfGgc0opDltYKDxIGBedkzc6jSfE7tlvESCDFUw0Hx0opS+U0lHCxNottbNWSxX9zZVvEhKWUSyBpaXwBc2a98M6UqPeXAs/GDon8Ax7hsthO8cM5HU7Ad0UvRR9lHmtyQKZ4MAe814X5h9MSUkQmhf96eVJ6p90OjIiqSIjvykvr2l5U55O/fPQKD+jIomYpNyGJQ25uQ2kIikRfAmuBHCPsWqkSDEqgZ5KDI2sifS/R43MbZg0idFHbCPNxXxZws1ACVE6hAhOdJwRkJLFBLPZpRGYJ50pko6XzMkgmSx40ljik6AQcKhFnLcQE6rF7PXFe1Ocoj0T3AXgSgJTDIhHRfHlYZKuSzc6uievOJGXY+i5GJkkTp7UM3y0LqATDbtFcbdBxO7o4T25JYlEjoH0uynUh8rapkxp62QN70svSF+hT4gGPlovlmcm/ComLi7mV4kTykV9NFWjE/QrwgQ4uIcAP0rQF4VZYRP2o3PhHHzfPMJj9Ir+uzKUlrH49ntT18AVvj1sc3YGjUT/Mt2Dxawa8ArcA7bCQIpvfwAYu22vEG/No/5RvPdA7g+AelLrPwzy+LtkLPhnpIxH14m4EYq8eeMHbPEPNm6G7Nv9B4jcFPZ8bJj0SEjP3MPgQdKTqqEoy2v6G32P/Y6dxOv04AxnoAeq+GILvUavtYCBXm+BaIhuodcfrN5B/V2EYMCPh+SxavjGyPwV0x4CJgUPGT0mQaODGBACIJZGsMXwAD0LGXx7l3CdAcKMIKI+f5CepWeD0BvyU/GcdBxPF8SwejC6LGZmAURFdsSWKR5HyHld2kbdIZO1Ixx+bnnzU7n5+blPNV9jnUDWhP2tC68tbN3PVIldsQPxSAcSpjOav7Q05uXn5zW2LLvDXn9B6syscPy9iDLEMmSrJz6nYuWMipukjM0AH8JkGS+XFyMRkzSCH7KD/hwm172SAyZYumHlefr5AddrtA0O0TnwaVZxcRY9Bfukn9Gf05N1r9DV9MoBsJ1f+ZrqUvtPHizJAntWybv7hmqLt6QLuK6ZS9Fqi1jO5rDoWPZXXII5Tgajg53cIXCjDCGIcYrRIY2n6+mXOa/W0bdhau3ryiEYe2FV/5oeaIYK/5w5frCyll6/cYO8DiNhw6t1MBWmznt91QX62UF1N7l0eHBZTRGpKaqpKVIPF9UcIzmReud9TSY75+K899GHbBu6wjoR7RKKZVYiYxSPf5/2wJT5e3NAhmUbVn5KLx1Ujg0+BGvpAIh0DezInTkzF37KVocxrKU3r1+XLtAe2lO3l66kfQfB/unKY+q8N375Ru8bc4pJXfEcESU95q+p8ZNZRTWH1d9FzvUdYXk5rLkcdkEisoKKVHQW/b3GEx6tPaYcoJfOr9wAbSBnv1IHpep0OExr4LPMkpJM+j7sly7UHkOzXjoAZljHCGiyegtNlwljM0v+c19ET9Pvst09a2Mtgcf5/ZSzYO5h1156+eyydfAsxGa9XAuF6vzjh6CssLq6ECysperXX0sX5h5ZdpZe3guxsGIPEtHk/aqXX1hVqP5HYVVVISkrrNqvXorIc+5Ou91Hnr/LcD2afi6eX7UBloOcs7cOpqgGaNfs1g7bNbs9z6wASaylN69d0/TFTIz6Ws8+oGV3mE2612wRTHKcVUbhjKadebloMc+dyXgMVtVK6BwMB/+mVW09igdRBWaRtNQX59d/VD//xdQ0TCiYNj1KT9sq6Wdu5WTbqk3qDXyDaLa1fv621LS01G3z61sD6lH8lAxDLicV921s6Bf92JOYvzNYCL1khbqBXEFUzC521N5NyzNaQIWhjyFyDoBIVrAjmv2UEaLlI+c6zw1jmVIPLLLZZUTj6GxGHW+mq1tgHXR2D85p4Q934+jLbtjVLcyCdS10NVzpHqxp4Q/hK7WopY/NRGx9HGsPGdFjOjcpjBnGYMVqY/4eqT5khWEHWUup2A/pTw7pdWgsWft7ETUERL96nRg0HNFPmCYba6pylECaExX89A9WLUOVB4oKLu/o1oqSYHCgLzBUlAz8hNFDRpeSU1XT+LRmDUgPaKbYdHDn9suF/tu13nHJij0N97LfS0QmqONuyONk7zvUI6Qa0pF9f2+oABL92AT6e0U//z9YqAiWtJLU1JK0gS+1aacwamiNqK067u9ZQ8f1d4qLodMzz3uL89Z68V/Hnr++hXWUuHgw8dfi972PeTyPefu3aNNucemQ74qFuIaJnVkOu4Q+yjuwmmC1FqZpl1i4uzoPxjkpPf3Xv545tl26Rr+dOvUd+omqJzch9dOeU7f10Y64nMcKK137DccIZq2WdXtdZjbEoLSzHwiMtrjYLDxpHQW8gjMX6XFYAE2zSWVD04EGYSs9MbO6sEo20BMEAB4mpvSypsKjZ4Stgzb+c3A9/MQT2+vrBy+qvyFxLUtLlSRF/Ri2wjfZ2dus2Q8lXx4608/jnqK5OOap6NY2PSjYYnECCjiEeLJll/pbmqfeIK+ps3+MxrlEhqmTPipVP7kqlF4VhpEb6r+Q7YOJg38kJ9SHBf3NBl6+9YchfbUjb5ahLSzUM3kPHmwFAsZ5rpai0S7E5xWzZ1j+fW7zsUWP2g5NXTw52ySCTrgG0+lbw60l2Y/CB185CoA8NK+tbRKxfjy6pm5hzQRRR+cMqv1Jbiw6STivtEvt3DRcy0QEh92JlUGo2PG4tSKHl00YD6xc8CK+YPYyy3io2lN8BcSjKRzrIV6ypOAobqxViJPaT9M9Hy5szY33mp7OX/Zu89L/7Ww5vqY2Y8b0pKgoiUhG5cPDPzq8qTV/WkzUOIvXVVA96kmjcBrr3HrYC/Wn+fYP6Z7T1rqy3zknbvqma/FvVk96fNXGkuaXrdHW5JGSxZT/2I/O73v+yNWafMdzc5NdxYurHs6h86e01sLKLz9EBrg+x36rxAaED7hRnAMx7Vzu+9wabh3zG8XLQjx0ablUJzmxdErxYT3kzQSd0SSafVqF5PXgpp0OyYJ1EyNHpGUZmvK575ySzd85JSqF7IBzSAbMM04+MbE58xF3/njXOGecSaermlw2y9PsSQdytLJVr8t+wg+rR8cZYoeNxVIzNdk3Bngi8U5LAlgTFoQnzJCa5EsCgYhCaGL+qPj7TdhG31p9tej3R04N//PXxNwJvyUqwaJqRPJY98TJ5TPndmflRAkAhBfe46sfKW5wizSge08Xb7Ca/GUVs55trngkKkrUS2WPzKttaaqq+idmahugkY+W6fN0I6i3gPt/x88U4wAAeJxjYGRgYADiGU9YXsXz23xl4GZnAIFH7fO+IdMc/WBxDgYmEAUASbMKwAB4nGNgZGBgZwABjj4Ghv//OfoZGBlQgT4ARicDZAAAAHicY2BgYGAfxJijD8Fmu4EqBwCSpgKpAAAAAAAADgBoAH4AzADgAQIBQgFsAZgB7gIuAooC0AL8A2IDjAOoA+AEMASwBNoFCAVaBcAGCAYuBnAGrAb2B04HigfSCCoIcAiGCJwIyAkkCVYJiAmsCfIKIApWCsQLknicY2BkYGDQZ2hmYGcAASYg5gJCBob/YD4DABqrAdAAeJxdkE1qg0AYhl8Tk9AIoVDaVSmzahcF87PMARLIMoFAl0ZHY1BHdBJIT9AT9AQ9RQ9Qeqy+yteNMzDzfM+88w0K4BY/cNAMB6N2bUaPPBLukybCLvleeAAPj8JD+hfhMV7hC3u4wxs7OO4NzQSZcI/8Ltwnfwi75E/hAR7wJTyk/xYeY49fYQ/PztM+jbTZ7LY6OWdBJdX/pqs6NYWa+zMxa13oKrA6Uoerqi/JwtpYxZXJ1coUVmeZUWVlTjq0/tHacjmdxuL90OR8O0UEDYMNdtiSEpz5XQGqzlm30kzUdAYFFOb8R7NOZk0q2lwAyz1i7oAr1xoXvrOgtYhZx8wY5KRV269JZ5yGpmzPTjQhvY9je6vEElPOuJP3mWKnP5M3V+YAAAB4nG2ReVPbMBDF/ULi2EkDBFqO3gdHLxUzDB9IkdexBllydRD49ihO3Ckz7B/a31utZnafkkGyiXnyclxhgB0MMUKKMTLkmGCKV5hhF3vYxxwHOMRrvMERjnGCU7zFO7zHB3zEJ3zGF3zFN5zhHBe4xHf8wE/8wm8w/MEVimTYKv44XR9MSCsUjVoeHE3vjQoNsSZ4mmxZmVWPjSz7jlou6/0qKOWEJdKMtCe793/hQfqxa6XWZHMXFl56RS4TvPXSaDeoy0zUUZB109KstDK8lHo5q6Qi1hcOnqkImubPS6aqRq7mlnaEWabub4iYblba3SRmgldS0+FWdhNtt04F14JUaqkl7tcpOpJtErvNt3Bd9HRT5JWxK25Ldjvp6br4hzfFiIdSmlzTg2fSUzNrLd1LE1ynxq4OVaVoKLjzJ60UPtj1RKzHzsbjly6inVnFBS2MucviPncU7Rr7lfTxRepDs1A2j3ZHRc7PuzFYSfE3ZOd4kjwBy227hA==) format("woff");
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-play, .video-js .vjs-play-control .vjs-icon-placeholder, .video-js .vjs-big-play-button .vjs-icon-placeholder:before {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-play:before, .video-js .vjs-play-control .vjs-icon-placeholder:before, .video-js .vjs-big-play-button .vjs-icon-placeholder:before {
  content: "\f101";
}

.vjs-icon-play-circle {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-play-circle:before {
  content: "\f102";
}

.vjs-icon-pause, .video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-pause:before, .video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder:before {
  content: "\f103";
}

.vjs-icon-volume-mute, .video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-volume-mute:before, .video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder:before {
  content: "\f104";
}

.vjs-icon-volume-low, .video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-volume-low:before, .video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder:before {
  content: "\f105";
}

.vjs-icon-volume-mid, .video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-volume-mid:before, .video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder:before {
  content: "\f106";
}

.vjs-icon-volume-high, .video-js .vjs-mute-control .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-volume-high:before, .video-js .vjs-mute-control .vjs-icon-placeholder:before {
  content: "\f107";
}

.vjs-icon-fullscreen-enter, .video-js .vjs-fullscreen-control .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-fullscreen-enter:before, .video-js .vjs-fullscreen-control .vjs-icon-placeholder:before {
  content: "\f108";
}

.vjs-icon-fullscreen-exit, .video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-fullscreen-exit:before, .video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder:before {
  content: "\f109";
}

.vjs-icon-spinner {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-spinner:before {
  content: "\f10a";
}

.vjs-icon-subtitles, .video-js .vjs-subs-caps-button .vjs-icon-placeholder,
.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder,
.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder,
.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder,
.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder, .video-js .vjs-subtitles-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-subtitles:before, .video-js .vjs-subs-caps-button .vjs-icon-placeholder:before,
.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder:before,
.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder:before,
.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder:before,
.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder:before, .video-js .vjs-subtitles-button .vjs-icon-placeholder:before {
  content: "\f10b";
}

.vjs-icon-captions, .video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder,
.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder, .video-js .vjs-captions-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-captions:before, .video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder:before,
.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder:before, .video-js .vjs-captions-button .vjs-icon-placeholder:before {
  content: "\f10c";
}

.vjs-icon-hd {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-hd:before {
  content: "\f10d";
}

.vjs-icon-chapters, .video-js .vjs-chapters-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-chapters:before, .video-js .vjs-chapters-button .vjs-icon-placeholder:before {
  content: "\f10e";
}

.vjs-icon-downloading {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-downloading:before {
  content: "\f10f";
}

.vjs-icon-file-download {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-file-download:before {
  content: "\f110";
}

.vjs-icon-file-download-done {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-file-download-done:before {
  content: "\f111";
}

.vjs-icon-file-download-off {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-file-download-off:before {
  content: "\f112";
}

.vjs-icon-share {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-share:before {
  content: "\f113";
}

.vjs-icon-cog {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-cog:before {
  content: "\f114";
}

.vjs-icon-square {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-square:before {
  content: "\f115";
}

.vjs-icon-circle, .vjs-seek-to-live-control .vjs-icon-placeholder, .video-js .vjs-volume-level, .video-js .vjs-play-progress {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-circle:before, .vjs-seek-to-live-control .vjs-icon-placeholder:before, .video-js .vjs-volume-level:before, .video-js .vjs-play-progress:before {
  content: "\f116";
}

.vjs-icon-circle-outline {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-circle-outline:before {
  content: "\f117";
}

.vjs-icon-circle-inner-circle {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-circle-inner-circle:before {
  content: "\f118";
}

.vjs-icon-cancel, .video-js .vjs-control.vjs-close-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-cancel:before, .video-js .vjs-control.vjs-close-button .vjs-icon-placeholder:before {
  content: "\f119";
}

.vjs-icon-repeat {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-repeat:before {
  content: "\f11a";
}

.vjs-icon-replay, .video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-replay:before, .video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder:before {
  content: "\f11b";
}

.vjs-icon-replay-5, .video-js .vjs-skip-backward-5 .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-replay-5:before, .video-js .vjs-skip-backward-5 .vjs-icon-placeholder:before {
  content: "\f11c";
}

.vjs-icon-replay-10, .video-js .vjs-skip-backward-10 .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-replay-10:before, .video-js .vjs-skip-backward-10 .vjs-icon-placeholder:before {
  content: "\f11d";
}

.vjs-icon-replay-30, .video-js .vjs-skip-backward-30 .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-replay-30:before, .video-js .vjs-skip-backward-30 .vjs-icon-placeholder:before {
  content: "\f11e";
}

.vjs-icon-forward-5, .video-js .vjs-skip-forward-5 .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-forward-5:before, .video-js .vjs-skip-forward-5 .vjs-icon-placeholder:before {
  content: "\f11f";
}

.vjs-icon-forward-10, .video-js .vjs-skip-forward-10 .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-forward-10:before, .video-js .vjs-skip-forward-10 .vjs-icon-placeholder:before {
  content: "\f120";
}

.vjs-icon-forward-30, .video-js .vjs-skip-forward-30 .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-forward-30:before, .video-js .vjs-skip-forward-30 .vjs-icon-placeholder:before {
  content: "\f121";
}

.vjs-icon-audio, .video-js .vjs-audio-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-audio:before, .video-js .vjs-audio-button .vjs-icon-placeholder:before {
  content: "\f122";
}

.vjs-icon-next-item {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-next-item:before {
  content: "\f123";
}

.vjs-icon-previous-item {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-previous-item:before {
  content: "\f124";
}

.vjs-icon-shuffle {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-shuffle:before {
  content: "\f125";
}

.vjs-icon-cast {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-cast:before {
  content: "\f126";
}

.vjs-icon-picture-in-picture-enter, .video-js .vjs-picture-in-picture-control .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-picture-in-picture-enter:before, .video-js .vjs-picture-in-picture-control .vjs-icon-placeholder:before {
  content: "\f127";
}

.vjs-icon-picture-in-picture-exit, .video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-picture-in-picture-exit:before, .video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder:before {
  content: "\f128";
}

.vjs-icon-facebook {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-facebook:before {
  content: "\f129";
}

.vjs-icon-linkedin {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-linkedin:before {
  content: "\f12a";
}

.vjs-icon-twitter {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-twitter:before {
  content: "\f12b";
}

.vjs-icon-tumblr {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-tumblr:before {
  content: "\f12c";
}

.vjs-icon-pinterest {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-pinterest:before {
  content: "\f12d";
}

.vjs-icon-audio-description, .video-js .vjs-descriptions-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-audio-description:before, .video-js .vjs-descriptions-button .vjs-icon-placeholder:before {
  content: "\f12e";
}

.video-js {
  display: inline-block;
  vertical-align: top;
  box-sizing: border-box;
  color: #fff;
  background-color: #000;
  position: relative;
  padding: 0;
  font-size: 10px;
  line-height: 1;
  font-weight: normal;
  font-style: normal;
  font-family: Arial, Helvetica, sans-serif;
  word-break: initial;
}
.video-js:-moz-full-screen {
  position: absolute;
}
.video-js:-webkit-full-screen {
  width: 100% !important;
  height: 100% !important;
}

.video-js[tabindex="-1"] {
  outline: none;
}

.video-js *,
.video-js *:before,
.video-js *:after {
  box-sizing: inherit;
}

.video-js ul {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  list-style-position: outside;
  margin-left: 0;
  margin-right: 0;
  margin-top: 0;
  margin-bottom: 0;
}

.video-js.vjs-fluid,
.video-js.vjs-16-9,
.video-js.vjs-4-3,
.video-js.vjs-9-16,
.video-js.vjs-1-1 {
  width: 100%;
  max-width: 100%;
}

.video-js.vjs-fluid:not(.vjs-audio-only-mode),
.video-js.vjs-16-9:not(.vjs-audio-only-mode),
.video-js.vjs-4-3:not(.vjs-audio-only-mode),
.video-js.vjs-9-16:not(.vjs-audio-only-mode),
.video-js.vjs-1-1:not(.vjs-audio-only-mode) {
  height: 0;
}

.video-js.vjs-16-9:not(.vjs-audio-only-mode) {
  padding-top: 56.25%;
}

.video-js.vjs-4-3:not(.vjs-audio-only-mode) {
  padding-top: 75%;
}

.video-js.vjs-9-16:not(.vjs-audio-only-mode) {
  padding-top: 177.7777777778%;
}

.video-js.vjs-1-1:not(.vjs-audio-only-mode) {
  padding-top: 100%;
}

.video-js.vjs-fill:not(.vjs-audio-only-mode) {
  width: 100%;
  height: 100%;
}

.video-js .vjs-tech {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.video-js.vjs-audio-only-mode .vjs-tech {
  display: none;
}

body.vjs-full-window,
body.vjs-pip-window {
  padding: 0;
  margin: 0;
  height: 100%;
}

.vjs-full-window .video-js.vjs-fullscreen,
body.vjs-pip-window .video-js {
  position: fixed;
  overflow: hidden;
  z-index: 1000;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
}

.video-js.vjs-fullscreen:not(.vjs-ios-native-fs),
body.vjs-pip-window .video-js {
  width: 100% !important;
  height: 100% !important;
  padding-top: 0 !important;
  display: block;
}

.video-js.vjs-fullscreen.vjs-user-inactive {
  cursor: none;
}

.vjs-pip-container .vjs-pip-text {
  position: absolute;
  bottom: 10%;
  font-size: 2em;
  background-color: rgba(0, 0, 0, 0.7);
  padding: 0.5em;
  text-align: center;
  width: 100%;
}

.vjs-layout-tiny.vjs-pip-container .vjs-pip-text,
.vjs-layout-x-small.vjs-pip-container .vjs-pip-text,
.vjs-layout-small.vjs-pip-container .vjs-pip-text {
  bottom: 0;
  font-size: 1.4em;
}

.vjs-hidden {
  display: none !important;
}

.vjs-disabled {
  opacity: 0.5;
  cursor: default;
}

.video-js .vjs-offscreen {
  height: 1px;
  left: -9999px;
  position: absolute;
  top: 0;
  width: 1px;
}

.vjs-lock-showing {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.vjs-no-js {
  padding: 20px;
  color: #fff;
  background-color: #000;
  font-size: 18px;
  font-family: Arial, Helvetica, sans-serif;
  text-align: center;
  width: 300px;
  height: 150px;
  margin: 0px auto;
}

.vjs-no-js a,
.vjs-no-js a:visited {
  color: #66A8CC;
}

.video-js .vjs-big-play-button {
  font-size: 3em;
  line-height: 1.5em;
  height: 1.63332em;
  width: 3em;
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  padding: 0;
  margin-top: -0.81666em;
  margin-left: -1.5em;
  cursor: pointer;
  opacity: 1;
  border: 0.06666em solid #fff;
  background-color: #2B333F;
  background-color: rgba(43, 51, 63, 0.7);
  border-radius: 0.3em;
  transition: all 0.4s;
}
.vjs-big-play-button .vjs-svg-icon {
  width: 1em;
  height: 1em;
  position: absolute;
  top: 50%;
  left: 50%;
  line-height: 1;
  transform: translate(-50%, -50%);
}

.video-js:hover .vjs-big-play-button,
.video-js .vjs-big-play-button:focus {
  border-color: #fff;
  background-color: #73859f;
  background-color: rgba(115, 133, 159, 0.5);
  transition: all 0s;
}

.vjs-controls-disabled .vjs-big-play-button,
.vjs-has-started .vjs-big-play-button,
.vjs-using-native-controls .vjs-big-play-button,
.vjs-error .vjs-big-play-button {
  display: none;
}

.vjs-has-started.vjs-paused.vjs-show-big-play-button-on-pause:not(.vjs-seeking, .vjs-scrubbing, .vjs-error) .vjs-big-play-button {
  display: block;
}

.video-js button {
  background: none;
  border: none;
  color: inherit;
  display: inline-block;
  font-size: inherit;
  line-height: inherit;
  text-transform: none;
  text-decoration: none;
  transition: none;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}

.video-js.vjs-spatial-navigation-enabled .vjs-button:focus {
  outline: 0.0625em solid white;
  box-shadow: none;
}

.vjs-control .vjs-button {
  width: 100%;
  height: 100%;
}

.video-js .vjs-control.vjs-close-button {
  cursor: pointer;
  height: 3em;
  position: absolute;
  right: 0;
  top: 0.5em;
  z-index: 2;
}
.video-js .vjs-modal-dialog {
  background: rgba(0, 0, 0, 0.8);
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.8), rgba(255, 255, 255, 0));
  overflow: auto;
}

.video-js .vjs-modal-dialog > * {
  box-sizing: border-box;
}

.vjs-modal-dialog .vjs-modal-dialog-content {
  font-size: 1.2em;
  line-height: 1.5;
  padding: 20px 24px;
  z-index: 1;
}

.vjs-menu-button {
  cursor: pointer;
}

.vjs-menu-button.vjs-disabled {
  cursor: default;
}

.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu {
  display: none;
}

.vjs-menu .vjs-menu-content {
  display: block;
  padding: 0;
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  overflow: auto;
}

.vjs-menu .vjs-menu-content > * {
  box-sizing: border-box;
}

.vjs-scrubbing .vjs-control.vjs-menu-button:hover .vjs-menu {
  display: none;
}

.vjs-menu li {
  display: flex;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0.2em 0;
  line-height: 1.4em;
  font-size: 1.2em;
  text-align: center;
  text-transform: lowercase;
}

.vjs-menu li.vjs-menu-item:focus,
.vjs-menu li.vjs-menu-item:hover,
.js-focus-visible .vjs-menu li.vjs-menu-item:hover {
  background-color: #73859f;
  background-color: rgba(115, 133, 159, 0.5);
}

.vjs-menu li.vjs-selected,
.vjs-menu li.vjs-selected:focus,
.vjs-menu li.vjs-selected:hover,
.js-focus-visible .vjs-menu li.vjs-selected:hover {
  background-color: #fff;
  color: #2B333F;
}
.vjs-menu li.vjs-selected .vjs-svg-icon,
.vjs-menu li.vjs-selected:focus .vjs-svg-icon,
.vjs-menu li.vjs-selected:hover .vjs-svg-icon,
.js-focus-visible .vjs-menu li.vjs-selected:hover .vjs-svg-icon {
  fill: #000000;
}

.video-js .vjs-menu *:not(.vjs-selected):focus:not(:focus-visible),
.js-focus-visible .vjs-menu *:not(.vjs-selected):focus:not(.focus-visible) {
  background: none;
}

.vjs-menu li.vjs-menu-title {
  text-align: center;
  text-transform: uppercase;
  font-size: 1em;
  line-height: 2em;
  padding: 0;
  margin: 0 0 0.3em 0;
  font-weight: bold;
  cursor: default;
}

.vjs-menu-button-popup .vjs-menu {
  display: none;
  position: absolute;
  bottom: 0;
  width: 10em;
  left: -3em;
  height: 0em;
  margin-bottom: 1.5em;
  border-top-color: rgba(43, 51, 63, 0.7);
}

.vjs-pip-window .vjs-menu-button-popup .vjs-menu {
  left: unset;
  right: 1em;
}

.vjs-menu-button-popup .vjs-menu .vjs-menu-content {
  background-color: #2B333F;
  background-color: rgba(43, 51, 63, 0.7);
  position: absolute;
  width: 100%;
  bottom: 1.5em;
  max-height: 15em;
}

.vjs-layout-tiny .vjs-menu-button-popup .vjs-menu .vjs-menu-content,
.vjs-layout-x-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content {
  max-height: 5em;
}

.vjs-layout-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content {
  max-height: 10em;
}

.vjs-layout-medium .vjs-menu-button-popup .vjs-menu .vjs-menu-content {
  max-height: 14em;
}

.vjs-layout-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,
.vjs-layout-x-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,
.vjs-layout-huge .vjs-menu-button-popup .vjs-menu .vjs-menu-content {
  max-height: 25em;
}

.vjs-workinghover .vjs-menu-button-popup.vjs-hover .vjs-menu,
.vjs-menu-button-popup .vjs-menu.vjs-lock-showing {
  display: block;
}

.video-js .vjs-menu-button-inline {
  transition: all 0.4s;
  overflow: hidden;
}

.video-js .vjs-menu-button-inline:before {
  width: 2.222222222em;
}

.video-js .vjs-menu-button-inline:hover,
.video-js .vjs-menu-button-inline:focus,
.video-js .vjs-menu-button-inline.vjs-slider-active {
  width: 12em;
}

.vjs-menu-button-inline .vjs-menu {
  opacity: 0;
  height: 100%;
  width: auto;
  position: absolute;
  left: 4em;
  top: 0;
  padding: 0;
  margin: 0;
  transition: all 0.4s;
}

.vjs-menu-button-inline:hover .vjs-menu,
.vjs-menu-button-inline:focus .vjs-menu,
.vjs-menu-button-inline.vjs-slider-active .vjs-menu {
  display: block;
  opacity: 1;
}

.vjs-menu-button-inline .vjs-menu-content {
  width: auto;
  height: 100%;
  margin: 0;
  overflow: hidden;
}

.video-js .vjs-control-bar {
  display: none;
  width: 100%;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3em;
  background-color: #2B333F;
  background-color: rgba(43, 51, 63, 0.7);
}

.video-js.vjs-spatial-navigation-enabled .vjs-control-bar {
  gap: 1px;
}

.video-js:not(.vjs-controls-disabled, .vjs-using-native-controls, .vjs-error) .vjs-control-bar.vjs-lock-showing {
  display: flex !important;
}

.vjs-has-started .vjs-control-bar,
.vjs-audio-only-mode .vjs-control-bar {
  display: flex;
  visibility: visible;
  opacity: 1;
  transition: visibility 0.1s, opacity 0.1s;
}

.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
  visibility: visible;
  opacity: 0;
  pointer-events: none;
  transition: visibility 1s, opacity 1s;
}

.vjs-controls-disabled .vjs-control-bar,
.vjs-using-native-controls .vjs-control-bar,
.vjs-error .vjs-control-bar {
  display: none !important;
}

.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar,
.vjs-audio-only-mode.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.video-js .vjs-control {
  position: relative;
  text-align: center;
  margin: 0;
  padding: 0;
  height: 100%;
  width: 4em;
  flex: none;
}

.video-js .vjs-control.vjs-visible-text {
  width: auto;
  padding-left: 1em;
  padding-right: 1em;
}

.vjs-button > .vjs-icon-placeholder:before {
  font-size: 1.8em;
  line-height: 1.67;
}

.vjs-button > .vjs-icon-placeholder {
  display: block;
}

.vjs-button > .vjs-svg-icon {
  display: inline-block;
}

.video-js .vjs-control:focus:before,
.video-js .vjs-control:hover:before,
.video-js .vjs-control:focus {
  text-shadow: 0em 0em 1em white;
}

.video-js *:not(.vjs-visible-text) > .vjs-control-text {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.video-js .vjs-custom-control-spacer {
  display: none;
}

.video-js .vjs-progress-control {
  cursor: pointer;
  flex: auto;
  display: flex;
  align-items: center;
  min-width: 4em;
  touch-action: none;
}

.video-js .vjs-progress-control.disabled {
  cursor: default;
}

.vjs-live .vjs-progress-control {
  display: none;
}

.vjs-liveui .vjs-progress-control {
  display: flex;
  align-items: center;
}

.video-js .vjs-progress-holder {
  flex: auto;
  transition: all 0.2s;
  height: 0.3em;
}

.video-js .vjs-progress-control .vjs-progress-holder {
  margin: 0 10px;
}

.video-js .vjs-progress-control:hover .vjs-progress-holder,
.video-js.vjs-scrubbing.vjs-touch-enabled .vjs-progress-control .vjs-progress-holder {
  font-size: 1.6666666667em;
}

.video-js .vjs-progress-control:hover .vjs-progress-holder.disabled {
  font-size: 1em;
}

.video-js .vjs-progress-holder .vjs-play-progress,
.video-js .vjs-progress-holder .vjs-load-progress,
.video-js .vjs-progress-holder .vjs-load-progress div {
  position: absolute;
  display: block;
  height: 100%;
  margin: 0;
  padding: 0;
  width: 0;
}

.video-js .vjs-play-progress {
  background-color: #fff;
}
.video-js .vjs-play-progress:before {
  font-size: 0.9em;
  position: absolute;
  right: -0.5em;
  line-height: 0.35em;
  z-index: 1;
}

.vjs-svg-icons-enabled .vjs-play-progress:before {
  content: none !important;
}

.vjs-play-progress .vjs-svg-icon {
  position: absolute;
  top: -0.35em;
  right: -0.4em;
  width: 0.9em;
  height: 0.9em;
  pointer-events: none;
  line-height: 0.15em;
  z-index: 1;
}

.video-js .vjs-load-progress {
  background: rgba(115, 133, 159, 0.5);
}

.video-js .vjs-load-progress div {
  background: rgba(115, 133, 159, 0.75);
}

.video-js .vjs-time-tooltip {
  background-color: #fff;
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 0.3em;
  color: #000;
  float: right;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1em;
  padding: 6px 8px 8px 8px;
  pointer-events: none;
  position: absolute;
  top: -3.4em;
  visibility: hidden;
  z-index: 1;
}

.video-js .vjs-progress-holder:focus .vjs-time-tooltip {
  display: none;
}

.video-js .vjs-progress-control:hover .vjs-time-tooltip,
.video-js .vjs-progress-control:hover .vjs-progress-holder:focus .vjs-time-tooltip,
.video-js.vjs-scrubbing.vjs-touch-enabled .vjs-progress-control .vjs-time-tooltip {
  display: block;
  font-size: 0.6em;
  visibility: visible;
}

.video-js .vjs-progress-control.disabled:hover .vjs-time-tooltip {
  font-size: 1em;
}

.video-js .vjs-progress-control .vjs-mouse-display {
  display: none;
  position: absolute;
  width: 1px;
  height: 100%;
  background-color: #000;
  z-index: 1;
}

.video-js .vjs-progress-control:hover .vjs-mouse-display {
  display: block;
}

.video-js.vjs-scrubbing.vjs-touch-enabled .vjs-progress-control .vjs-mouse-display {
  display: block;
}

.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display {
  visibility: hidden;
  opacity: 0;
  transition: visibility 1s, opacity 1s;
}

.vjs-mouse-display .vjs-time-tooltip {
  color: #fff;
  background-color: #000;
  background-color: rgba(0, 0, 0, 0.8);
}

.video-js .vjs-slider {
  position: relative;
  cursor: pointer;
  padding: 0;
  margin: 0 0.45em 0 0.45em;
  /* iOS Safari */
  -webkit-touch-callout: none;
  /* Safari, and Chrome 53 */
  -webkit-user-select: none;
  /* Non-prefixed version, currently supported by Chrome and Opera */
  -moz-user-select: none;
       user-select: none;
  background-color: #73859f;
  background-color: rgba(115, 133, 159, 0.5);
}

.video-js .vjs-slider.disabled {
  cursor: default;
}

.video-js .vjs-slider:focus {
  text-shadow: 0em 0em 1em white;
  box-shadow: 0 0 1em #fff;
}

.video-js.vjs-spatial-navigation-enabled .vjs-slider:focus {
  outline: 0.0625em solid white;
}

.video-js .vjs-mute-control {
  cursor: pointer;
  flex: none;
}
.video-js .vjs-volume-control {
  cursor: pointer;
  margin-right: 1em;
  display: flex;
}

.video-js .vjs-volume-control.vjs-volume-horizontal {
  width: 5em;
}

.video-js .vjs-volume-panel .vjs-volume-control {
  visibility: visible;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin-left: -1px;
}

.video-js .vjs-volume-panel {
  transition: width 1s;
}
.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control, .video-js .vjs-volume-panel:active .vjs-volume-control, .video-js .vjs-volume-panel:focus .vjs-volume-control, .video-js .vjs-volume-panel .vjs-volume-control:active, .video-js .vjs-volume-panel.vjs-hover .vjs-mute-control ~ .vjs-volume-control, .video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active {
  visibility: visible;
  opacity: 1;
  position: relative;
  transition: visibility 0.1s, opacity 0.1s, height 0.1s, width 0.1s, left 0s, top 0s;
}
.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-horizontal, .video-js .vjs-volume-panel.vjs-hover .vjs-mute-control ~ .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-horizontal {
  width: 5em;
  height: 3em;
  margin-right: 0;
}
.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-vertical, .video-js .vjs-volume-panel.vjs-hover .vjs-mute-control ~ .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-vertical {
  left: -3.5em;
  transition: left 0s;
}
.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover, .video-js .vjs-volume-panel.vjs-volume-panel-horizontal:active, .video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active {
  width: 10em;
  transition: width 0.1s;
}
.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-mute-toggle-only {
  width: 4em;
}

.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical {
  height: 8em;
  width: 3em;
  left: -3000em;
  transition: visibility 1s, opacity 1s, height 1s 1s, width 1s 1s, left 1s 1s, top 1s 1s;
}

.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal {
  transition: visibility 1s, opacity 1s, height 1s 1s, width 1s, left 1s 1s, top 1s 1s;
}

.video-js .vjs-volume-panel {
  display: flex;
}

.video-js .vjs-volume-bar {
  margin: 1.35em 0.45em;
}

.vjs-volume-bar.vjs-slider-horizontal {
  width: 5em;
  height: 0.3em;
}

.vjs-volume-bar.vjs-slider-vertical {
  width: 0.3em;
  height: 5em;
  margin: 1.35em auto;
}

.video-js .vjs-volume-level {
  position: absolute;
  bottom: 0;
  left: 0;
  background-color: #fff;
}
.video-js .vjs-volume-level:before {
  position: absolute;
  font-size: 0.9em;
  z-index: 1;
}

.vjs-slider-vertical .vjs-volume-level {
  width: 0.3em;
}
.vjs-slider-vertical .vjs-volume-level:before {
  top: -0.5em;
  left: -0.3em;
  z-index: 1;
}

.vjs-svg-icons-enabled .vjs-volume-level:before {
  content: none;
}

.vjs-volume-level .vjs-svg-icon {
  position: absolute;
  width: 0.9em;
  height: 0.9em;
  pointer-events: none;
  z-index: 1;
}

.vjs-slider-horizontal .vjs-volume-level {
  height: 0.3em;
}
.vjs-slider-horizontal .vjs-volume-level:before {
  line-height: 0.35em;
  right: -0.5em;
}

.vjs-slider-horizontal .vjs-volume-level .vjs-svg-icon {
  right: -0.3em;
  transform: translateY(-50%);
}

.vjs-slider-vertical .vjs-volume-level .vjs-svg-icon {
  top: -0.55em;
  transform: translateX(-50%);
}

.video-js .vjs-volume-panel.vjs-volume-panel-vertical {
  width: 4em;
}

.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level {
  height: 100%;
}

.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level {
  width: 100%;
}

.video-js .vjs-volume-vertical {
  width: 3em;
  height: 8em;
  bottom: 8em;
  background-color: #2B333F;
  background-color: rgba(43, 51, 63, 0.7);
}

.video-js .vjs-volume-horizontal .vjs-menu {
  left: -2em;
}

.video-js .vjs-volume-tooltip {
  background-color: #fff;
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 0.3em;
  color: #000;
  float: right;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1em;
  padding: 6px 8px 8px 8px;
  pointer-events: none;
  position: absolute;
  top: -3.4em;
  visibility: hidden;
  z-index: 1;
}

.video-js .vjs-volume-control:hover .vjs-volume-tooltip,
.video-js .vjs-volume-control:hover .vjs-progress-holder:focus .vjs-volume-tooltip {
  display: block;
  font-size: 1em;
  visibility: visible;
}

.video-js .vjs-volume-vertical:hover .vjs-volume-tooltip,
.video-js .vjs-volume-vertical:hover .vjs-progress-holder:focus .vjs-volume-tooltip {
  left: 1em;
  top: -12px;
}

.video-js .vjs-volume-control.disabled:hover .vjs-volume-tooltip {
  font-size: 1em;
}

.video-js .vjs-volume-control .vjs-mouse-display {
  display: none;
  position: absolute;
  width: 100%;
  height: 1px;
  background-color: #000;
  z-index: 1;
}

.video-js .vjs-volume-horizontal .vjs-mouse-display {
  width: 1px;
  height: 100%;
}

.video-js .vjs-volume-control:hover .vjs-mouse-display {
  display: block;
}

.video-js.vjs-user-inactive .vjs-volume-control .vjs-mouse-display {
  visibility: hidden;
  opacity: 0;
  transition: visibility 1s, opacity 1s;
}

.vjs-mouse-display .vjs-volume-tooltip {
  color: #fff;
  background-color: #000;
  background-color: rgba(0, 0, 0, 0.8);
}

.vjs-poster {
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
  margin: 0;
  padding: 0;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  height: 100%;
}

.vjs-has-started .vjs-poster,
.vjs-using-native-controls .vjs-poster {
  display: none;
}

.vjs-audio.vjs-has-started .vjs-poster,
.vjs-has-started.vjs-audio-poster-mode .vjs-poster,
.vjs-pip-container.vjs-has-started .vjs-poster {
  display: block;
}

.vjs-poster img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.video-js .vjs-live-control {
  display: flex;
  align-items: flex-start;
  flex: auto;
  font-size: 1em;
  line-height: 3em;
}

.video-js:not(.vjs-live) .vjs-live-control,
.video-js.vjs-liveui .vjs-live-control {
  display: none;
}

.video-js .vjs-seek-to-live-control {
  align-items: center;
  cursor: pointer;
  flex: none;
  display: inline-flex;
  height: 100%;
  padding-left: 0.5em;
  padding-right: 0.5em;
  font-size: 1em;
  line-height: 3em;
  width: auto;
  min-width: 4em;
}

.video-js.vjs-live:not(.vjs-liveui) .vjs-seek-to-live-control,
.video-js:not(.vjs-live) .vjs-seek-to-live-control {
  display: none;
}

.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge {
  cursor: auto;
}

.vjs-seek-to-live-control .vjs-icon-placeholder {
  margin-right: 0.5em;
  color: #888;
}

.vjs-svg-icons-enabled .vjs-seek-to-live-control {
  line-height: 0;
}

.vjs-seek-to-live-control .vjs-svg-icon {
  width: 1em;
  height: 1em;
  pointer-events: none;
  fill: #888888;
}

.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-icon-placeholder {
  color: red;
}

.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-svg-icon {
  fill: red;
}

.video-js .vjs-time-control {
  flex: none;
  font-size: 1em;
  line-height: 3em;
  min-width: 2em;
  width: auto;
  padding-left: 1em;
  padding-right: 1em;
}

.vjs-live .vjs-time-control,
.vjs-live .vjs-time-divider,
.video-js .vjs-current-time,
.video-js .vjs-duration {
  display: none;
}

.vjs-time-divider {
  display: none;
  line-height: 3em;
}

.vjs-normalise-time-controls:not(.vjs-live) .vjs-time-control {
  display: flex;
}

.video-js .vjs-play-control {
  cursor: pointer;
}

.video-js .vjs-play-control .vjs-icon-placeholder {
  flex: none;
}

.vjs-text-track-display {
  position: absolute;
  bottom: 3em;
  left: 0;
  right: 0;
  top: 0;
  pointer-events: none;
}

.vjs-error .vjs-text-track-display {
  display: none;
}

.video-js.vjs-controls-disabled .vjs-text-track-display,
.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display {
  bottom: 1em;
}

.video-js .vjs-text-track {
  font-size: 1.4em;
  text-align: center;
  margin-bottom: 0.1em;
}

.vjs-subtitles {
  color: #fff;
}

.vjs-captions {
  color: #fc6;
}

.vjs-tt-cue {
  display: block;
}

video::-webkit-media-text-track-display {
  transform: translateY(-3em);
}

.video-js.vjs-controls-disabled video::-webkit-media-text-track-display,
.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display {
  transform: translateY(-1.5em);
}

.video-js.vjs-force-center-align-cues .vjs-text-track-cue {
  text-align: center !important;
  width: 80% !important;
}

@supports not (inset: 10px) {
  .video-js .vjs-text-track-display > div {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
  }
}
.video-js .vjs-picture-in-picture-control {
  cursor: pointer;
  flex: none;
}
.video-js.vjs-audio-only-mode .vjs-picture-in-picture-control,
.vjs-pip-window .vjs-picture-in-picture-control {
  display: none;
}

.video-js .vjs-fullscreen-control {
  cursor: pointer;
  flex: none;
}
.video-js.vjs-audio-only-mode .vjs-fullscreen-control,
.vjs-pip-window .vjs-fullscreen-control {
  display: none;
}

.vjs-playback-rate > .vjs-menu-button,
.vjs-playback-rate .vjs-playback-rate-value {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.vjs-playback-rate .vjs-playback-rate-value {
  pointer-events: none;
  font-size: 1.5em;
  line-height: 2;
  text-align: center;
}

.vjs-playback-rate .vjs-menu {
  width: 4em;
  left: 0em;
}

.vjs-error .vjs-error-display .vjs-modal-dialog-content {
  font-size: 1.4em;
  text-align: center;
}

.vjs-loading-spinner {
  display: none;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0.85;
  text-align: left;
  border: 0.6em solid rgba(43, 51, 63, 0.7);
  box-sizing: border-box;
  background-clip: padding-box;
  width: 5em;
  height: 5em;
  border-radius: 50%;
  visibility: hidden;
}

.vjs-seeking .vjs-loading-spinner,
.vjs-waiting .vjs-loading-spinner {
  display: flex;
  justify-content: center;
  align-items: center;
  animation: vjs-spinner-show 0s linear 0.3s forwards;
}

.vjs-error .vjs-loading-spinner {
  display: none;
}

.vjs-loading-spinner:before,
.vjs-loading-spinner:after {
  content: "";
  position: absolute;
  box-sizing: inherit;
  width: inherit;
  height: inherit;
  border-radius: inherit;
  opacity: 1;
  border: inherit;
  border-color: transparent;
  border-top-color: white;
}

.vjs-seeking .vjs-loading-spinner:before,
.vjs-seeking .vjs-loading-spinner:after,
.vjs-waiting .vjs-loading-spinner:before,
.vjs-waiting .vjs-loading-spinner:after {
  animation: vjs-spinner-spin 1.1s cubic-bezier(0.6, 0.2, 0, 0.8) infinite, vjs-spinner-fade 1.1s linear infinite;
}

.vjs-seeking .vjs-loading-spinner:before,
.vjs-waiting .vjs-loading-spinner:before {
  border-top-color: rgb(255, 255, 255);
}

.vjs-seeking .vjs-loading-spinner:after,
.vjs-waiting .vjs-loading-spinner:after {
  border-top-color: rgb(255, 255, 255);
  animation-delay: 0.44s;
}

@keyframes vjs-spinner-show {
  to {
    visibility: visible;
  }
}
@keyframes vjs-spinner-spin {
  100% {
    transform: rotate(360deg);
  }
}
@keyframes vjs-spinner-fade {
  0% {
    border-top-color: #73859f;
  }
  20% {
    border-top-color: #73859f;
  }
  35% {
    border-top-color: white;
  }
  60% {
    border-top-color: #73859f;
  }
  100% {
    border-top-color: #73859f;
  }
}
.video-js.vjs-audio-only-mode .vjs-captions-button {
  display: none;
}

.vjs-chapters-button .vjs-menu ul {
  width: 24em;
}

.video-js.vjs-audio-only-mode .vjs-descriptions-button {
  display: none;
}

.vjs-subs-caps-button + .vjs-menu .vjs-captions-menu-item .vjs-svg-icon {
  width: 1.5em;
  height: 1.5em;
}

.video-js .vjs-subs-caps-button + .vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder {
  vertical-align: middle;
  display: inline-block;
  margin-bottom: -0.1em;
}

.video-js .vjs-subs-caps-button + .vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before {
  font-family: VideoJS;
  content: "\f10c";
  font-size: 1.5em;
  line-height: inherit;
}

.video-js.vjs-audio-only-mode .vjs-subs-caps-button {
  display: none;
}

.video-js .vjs-audio-button + .vjs-menu .vjs-descriptions-menu-item .vjs-menu-item-text .vjs-icon-placeholder,
.video-js .vjs-audio-button + .vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder {
  vertical-align: middle;
  display: inline-block;
  margin-bottom: -0.1em;
}

.video-js .vjs-audio-button + .vjs-menu .vjs-descriptions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before,
.video-js .vjs-audio-button + .vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before {
  font-family: VideoJS;
  content: " \f12e";
  font-size: 1.5em;
  line-height: inherit;
}

.video-js.vjs-layout-small .vjs-current-time,
.video-js.vjs-layout-small .vjs-time-divider,
.video-js.vjs-layout-small .vjs-duration,
.video-js.vjs-layout-small .vjs-remaining-time,
.video-js.vjs-layout-small .vjs-playback-rate,
.video-js.vjs-layout-small .vjs-volume-control, .video-js.vjs-layout-x-small .vjs-current-time,
.video-js.vjs-layout-x-small .vjs-time-divider,
.video-js.vjs-layout-x-small .vjs-duration,
.video-js.vjs-layout-x-small .vjs-remaining-time,
.video-js.vjs-layout-x-small .vjs-playback-rate,
.video-js.vjs-layout-x-small .vjs-volume-control, .video-js.vjs-layout-tiny .vjs-current-time,
.video-js.vjs-layout-tiny .vjs-time-divider,
.video-js.vjs-layout-tiny .vjs-duration,
.video-js.vjs-layout-tiny .vjs-remaining-time,
.video-js.vjs-layout-tiny .vjs-playback-rate,
.video-js.vjs-layout-tiny .vjs-volume-control {
  display: none;
}
.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover, .video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:active, .video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active, .video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover, .video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover, .video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:active, .video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active, .video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover, .video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:hover, .video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:active, .video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active, .video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover {
  width: auto;
  width: initial;
}
.video-js.vjs-layout-x-small .vjs-progress-control, .video-js.vjs-layout-tiny .vjs-progress-control {
  display: none;
}
.video-js.vjs-layout-x-small .vjs-custom-control-spacer {
  flex: auto;
  display: block;
}

.vjs-modal-dialog.vjs-text-track-settings {
  background-color: #2B333F;
  background-color: rgba(43, 51, 63, 0.75);
  color: #fff;
  height: 70%;
}
.vjs-spatial-navigation-enabled .vjs-modal-dialog.vjs-text-track-settings {
  height: 80%;
}

.vjs-error .vjs-text-track-settings {
  display: none;
}

.vjs-text-track-settings .vjs-modal-dialog-content {
  display: table;
}

.vjs-text-track-settings .vjs-track-settings-colors,
.vjs-text-track-settings .vjs-track-settings-font,
.vjs-text-track-settings .vjs-track-settings-controls {
  display: table-cell;
}

.vjs-text-track-settings .vjs-track-settings-controls {
  text-align: right;
  vertical-align: bottom;
}

@supports (display: grid) {
  .vjs-text-track-settings .vjs-modal-dialog-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
    padding: 20px 24px 0px 24px;
  }
  .vjs-track-settings-controls .vjs-default-button {
    margin-bottom: 20px;
  }
  .vjs-text-track-settings .vjs-track-settings-controls {
    grid-column: 1/-1;
  }
  .vjs-layout-small .vjs-text-track-settings .vjs-modal-dialog-content,
  .vjs-layout-x-small .vjs-text-track-settings .vjs-modal-dialog-content,
  .vjs-layout-tiny .vjs-text-track-settings .vjs-modal-dialog-content {
    grid-template-columns: 1fr;
  }
}
.vjs-text-track-settings select {
  font-size: inherit;
}

.vjs-track-setting > select {
  margin-right: 1em;
  margin-bottom: 0.5em;
}

.vjs-text-track-settings fieldset {
  margin: 10px;
  border: none;
}

.vjs-text-track-settings fieldset span {
  display: inline-block;
  padding: 0 0.6em 0.8em;
}

.vjs-text-track-settings fieldset span > select {
  max-width: 7.3em;
}

.vjs-text-track-settings legend {
  color: #fff;
  font-weight: bold;
  font-size: 1.2em;
}

.vjs-text-track-settings .vjs-label {
  margin: 0 0.5em 0.5em 0;
}

.vjs-track-settings-controls button:focus,
.vjs-track-settings-controls button:active {
  outline-style: solid;
  outline-width: medium;
  background-image: linear-gradient(0deg, #fff 88%, #73859f 100%);
}

.vjs-track-settings-controls button:hover {
  color: rgba(43, 51, 63, 0.75);
}

.vjs-track-settings-controls button {
  background-color: #fff;
  background-image: linear-gradient(-180deg, #fff 88%, #73859f 100%);
  color: #2B333F;
  cursor: pointer;
  border-radius: 2px;
}

.vjs-track-settings-controls .vjs-default-button {
  margin-right: 1em;
}

.vjs-title-bar {
  background: rgba(0, 0, 0, 0.9);
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.7) 60%, rgba(0, 0, 0, 0) 100%);
  font-size: 1.2em;
  line-height: 1.5;
  transition: opacity 0.1s;
  padding: 0.666em 1.333em 4em;
  pointer-events: none;
  position: absolute;
  top: 0;
  width: 100%;
}

.vjs-error .vjs-title-bar {
  display: none;
}

.vjs-title-bar-title,
.vjs-title-bar-description {
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vjs-title-bar-title {
  font-weight: bold;
  margin-bottom: 0.333em;
}

.vjs-playing.vjs-user-inactive .vjs-title-bar {
  opacity: 0;
  transition: opacity 1s;
}

.video-js .vjs-skip-forward-5 {
  cursor: pointer;
}
.video-js .vjs-skip-forward-10 {
  cursor: pointer;
}
.video-js .vjs-skip-forward-30 {
  cursor: pointer;
}
.video-js .vjs-skip-backward-5 {
  cursor: pointer;
}
.video-js .vjs-skip-backward-10 {
  cursor: pointer;
}
.video-js .vjs-skip-backward-30 {
  cursor: pointer;
}
.video-js .vjs-transient-button {
  position: absolute;
  height: 3em;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(50, 50, 50, 0.5);
  cursor: pointer;
  opacity: 1;
  transition: opacity 1s;
}

.video-js:not(.vjs-has-started) .vjs-transient-button {
  display: none;
}

.video-js.not-hover .vjs-transient-button:not(.force-display),
.video-js.vjs-user-inactive .vjs-transient-button:not(.force-display) {
  opacity: 0;
}

.video-js .vjs-transient-button span {
  padding: 0 0.5em;
}

.video-js .vjs-transient-button.vjs-left {
  left: 1em;
}

.video-js .vjs-transient-button.vjs-right {
  right: 1em;
}

.video-js .vjs-transient-button.vjs-top {
  top: 1em;
}

.video-js .vjs-transient-button.vjs-near-top {
  top: 4em;
}

.video-js .vjs-transient-button.vjs-bottom {
  bottom: 4em;
}

.video-js .vjs-transient-button:hover {
  background-color: rgba(50, 50, 50, 0.9);
}

@media print {
  .video-js > *:not(.vjs-tech):not(.vjs-poster) {
    visibility: hidden;
  }
}
.vjs-resize-manager {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
  z-index: -1000;
}

.js-focus-visible .video-js *:focus:not(.focus-visible) {
  outline: none;
}

.video-js *:focus:not(:focus-visible) {
  outline: none;
}

/* Modifications of player made by Moodle: */

/* Audio: https://github.com/videojs/video.js/issues/2777 */

/* Audio: Remove big play button (leave only the button in controls). */
.video-js.vjs-audio .vjs-big-play-button {
  display: none;
}
/* Audio: Make the controlbar visible by default */
.video-js.vjs-audio .vjs-control-bar {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
/* Make player height minimum to the controls height so when we hide video/poster area the controls are displayed correctly. */
.video-js.vjs-audio {
  min-height: 3em;
}
/* In case of error reset height to the default (otherwise no aspect ratio is available and height becomes 0). */
.video-js.vjs-error {
  height: 150px;
}
/* Minimum height for videos should not be less than the size of play button. */
.mediaplugin_videojs video {
  min-height: 32px;
}

/* MDL-61020: VideoJS timeline progress bar should not be flipped in RTL mode. */

/* Prevent the progress bar from being flipped in RTL. */
/*rtl:ignore*/
.video-js .vjs-progress-holder .vjs-play-progress,
.video-js .vjs-progress-holder .vjs-load-progress,
.video-js .vjs-progress-holder .vjs-load-progress div {
  left: 0;
  right: auto;
}
/* Keep the video scrubber button at the end of the progress bar in RTL. */
/*rtl:ignore*/
.video-js .vjs-play-progress:before {
  left: auto;
  right: -0.5em;
}
/* Prevent the volume slider from being flipped in RTL. */
/*rtl:ignore*/
.video-js .vjs-volume-level {
  left: 0;
  right: auto;
}
/* Keep the volume slider handle at the end of the volume slider in RTL. */
/*rtl:ignore*/
.vjs-slider-horizontal .vjs-volume-level:before {
  left: auto;
  right: -0.5em;
}

.dir-rtl .vjs-loading-spinner:before,
.dir-rtl .vjs-loading-spinner:after {
   right: 0;
 }

/**
 * prism.js default theme for JavaScript, CSS and HTML
 * Based on dabblet (http://dabblet.com)
 * @author Lea Verou
 */

pre[class*="language-"] {
    color: black;
    background: none;
    text-shadow: 0 1px white;
    font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
    font-size: 1em;
    text-align: left;
    white-space: pre;
    word-spacing: normal;
    word-break: normal;
    word-wrap: normal;
    line-height: 1.5;

    -moz-tab-size: 4;
    -o-tab-size: 4;
    tab-size: 4;

    -webkit-hyphens: none;
    -moz-hyphens: none;
    -ms-hyphens: none;
    hyphens: none;
}

pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection {
    text-shadow: none;
    background: #b3d4fc;
}

pre[class*="language-"]::selection,
pre[class*="language-"] ::selection {
    text-shadow: none;
    background: #b3d4fc;
}

@media print {
    pre[class*="language-"] {
        text-shadow: none;
    }
}

/* Code blocks */
pre[class*="language-"] {
    padding: 1em;
    margin: .5em 0;
    overflow: auto;
}

pre[class*="language-"] {
    background: #f5f2f0;
}

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
    color: slategray;
}

.token.punctuation {
    color: #999;
}

.token.namespace {
    opacity: .7;
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
    color: #905;
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
    color: #690;
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
    color: #9a6e3a;
    /* This background color was intended by the author of this theme. */
    background: hsla(0, 0%, 100%, .5);
}

.token.atrule,
.token.attr-value,
.token.keyword {
    color: #07a;
}

.token.function,
.token.class-name {
    color: #dd4a68;
}

.token.regex,
.token.important,
.token.variable {
    color: #e90;
}

.token.important,
.token.bold {
    font-weight: bold;
}
.token.italic {
    font-style: italic;
}

.token.entity {
    cursor: help;
}

#glossaryfilteroverlayprogress {
    position: fixed;
    top: 50%;
    width: 100%;
    text-align: center;
}

.jsenabled #MathJax_ZoomFrame {
    position: absolute;
}

/**
 * Filters
 */
.mediaplugin {
    display: block;
    margin-top: 5px;
    margin-bottom: 5px;
    text-align: center;
}

.mediaplugin,
.mediaplugin video {
    /* Make videos as wide as possible without being wider than their containers */
    width: 100%;
    max-width: 100%;
}

.mediaplugin > div {
    margin: auto;
}

/* This is needed to display videos in an adequate size and without too much space
   withing the specific mod assign table views. */
.path-mod-assign .gradingtable .mediaplugin,
.path-mod-assign .submissionsummarytable .mediaplugin {
    width: 400px;
    height: auto;
}

/* Make media plugin behave properly in mod summaries and labels */
.mod-indent-outer .mediaplugin {
    display: table-cell;
}

/* Make media plugin behave properly in Modal dialog. */
.modal-dialog .mediaplugin {
    width: 100vw;
}

.jsenabled .tox-shadowhost.tox-fullscreen,
.jsenabled .tox.tox-tinymce.tox-fullscreen {
    z-index: 1050;
}

/**
 * These styles are required to ensure that icons loaded from Moodle are displayed correctly in TinyMCE.
 * The first selector targets the menu.
 * The second selector targets the context menu.
 */
.tox .tox-tbtn svg[data-buttonsource="moodle"] image,
.tox-collection__item-icon svg[data-buttonsource="moodle"] image {
    width: inherit;
    height: inherit;
}

.tox.tox-tinymce .tox-toolbar__group {
    padding-right: 0;
}

/* Prevent navbar obscuring modal content (ignores fullscreen). */
.tox.tox-tinymce:not(.tox-fullscreen) + .tox .tox-dialog-wrap {
    padding-top: var(--navbar-height);
}

/* Modify Tiny's max-height calculation here to factor in navbar height on small viewports (ignores fullscreen). */
@media only screen and (max-width: 767px) {
    body:not(.tox-force-desktop) .tox.tox-tinymce:not(.tox-fullscreen) + .tox .tox-dialog-wrap .tox-dialog {
        max-height: calc((100vh - 8px * 2) - var(--navbar-height)) !important; /* stylelint-disable-line declaration-no-important */
    }
}

/* ==========================================================================
   AI Course Format (format_aicourse) — design system stylesheet
   --------------------------------------------------------------------------
   Moodle 4.4 / 5.x  •  Boost + Bootstrap 4/5 compatible  •  single file, no build step

   ARCHITECTURE
     1  Breakpoint ladder (documentation only — CSS cannot tokenise @media)
     2  Design tokens — primitives
     3  Design tokens — semantic (light)
     4  Design tokens — dark (data-bs-theme / .dark-mode / prefers-color-scheme)
     5  Design tokens — user preferences (contrast, transparency, motion, print)
     6  Base, focus system and shared primitives
     7  Moodle / Boost compatibility layer
     8  Hero banner
     9  Progress ring, progress bar, activity numbers
    10  Activity completion (activity hero)
    11  Section cards
    12  General section (section 0)
    13  Activity cards
    14  Status badges + completion toggle
    15  Add-section card
    16  Empty state
    17  Icon picker modal
    18  AI chatbox
    19  AI banner generate / remove modals
    20  Course index (Boost drawer)
    21  Report pages
    22  Motion (keyframes + reduced-motion guard)
    23  Print
    24  Forced colours / Windows High Contrast

   SCOPING CONTRACT
     Moodle concatenates every plugin styles.css into the site-wide theme sheet,
     served on EVERY page. Therefore every rule below is scoped to
     `body.format-aicourse` (added by core for any course-scoped page) or to an
     `.aicourse-` prefixed class. There are no unscoped rules.

   CASCADE NOTE (important)
     lib/outputlib.php::get_css_content() concatenates plugin sheets BEFORE the
     theme's own compiled SCSS. Boost therefore wins every specificity TIE.
     That is why component rules are prefixed with `body.format-aicourse`
     (specificity 0,2,1+) rather than a bare class, and why CSS cascade layers
     (@layer) are deliberately NOT used — layered rules always lose to Boost's
     unlayered rules, which would invert the intended cascade.

   !important POLICY
     Every surviving `!important` carries a comment naming what it overrides.
     They exist only to beat (a) Bootstrap display utilities, which are
     themselves `!important`, (b) inline style attributes written by lib.php,
     and (c) third-party themes that force `height: 100vh` on page containers.

   COLOUR CONTRACT
     Every text/background pair meets WCAG 2.1 AA. Computed ratios are noted in
     comments beside each semantic text token and beside any pair that is not
     self-evident. UI boundaries and focus rings meet 1.4.11 (3:1).
   ========================================================================== */

/* ==========================================================================
   1. BREAKPOINT LADDER  (documentation)
   --------------------------------------------------------------------------
   One ladder, used everywhere. Mobile-first: `min-width` unless a rule can
   only be expressed as a ceiling.

     xs   480px   large phone
     sm   640px   phablet / small tablet portrait
     md   768px   tablet portrait
     lg  1024px   tablet landscape / small laptop
     xl  1280px   desktop
     2xl 1536px   wide desktop

   Card grids intentionally use `repeat(auto-fill, minmax(...))` plus container
   queries instead of viewport breakpoints, so a card inside a drawer-narrowed
   region sizes itself correctly. That removes the whole class of
   "4 columns in a 900px region" bugs.
   ========================================================================== */

/* ==========================================================================
   2. DESIGN TOKENS — PRIMITIVES
   --------------------------------------------------------------------------
   Tier 1. Raw values. Components MUST NOT reference these directly; they exist
   only to be aliased by the semantic tokens in section 3.

   TOKEN ROOTS (sections 2-5)
     `body.format-aicourse` is added by core to every course-scoped page, so it
     is the root for everything the format renders in a course. It is NOT added
     to admin_report.php or index.php, which both call
     $PAGE->set_pagelayout('admin'). Those two pages would therefore resolve
     every `--acf-*` to nothing, so the plugin-owned roots they DO emit —
     `.aicadmin-wrap` and `.aitutor-report-index` — carry the same token set.
     They are declared in the same blocks rather than duplicated, so light,
     dark, contrast and motion stay a single source of truth. Custom properties
     inherit and paint nothing, so widening the selector cannot leak a style.
   ========================================================================== */

body.format-aicourse,
.aicadmin-wrap,
.aitutor-report-index {

    /* --- Neutral ramp: ONE ramp (Tailwind slate). ------------------------ */
    --acf-neutral-0: #fff;
    --acf-neutral-50: #f8fafc;
    --acf-neutral-100: #f1f5f9;
    --acf-neutral-200: #e2e8f0;
    --acf-neutral-300: #cbd5e1;
    --acf-neutral-400: #94a3b8;
    --acf-neutral-500: #64748b;
    --acf-neutral-600: #475569;
    --acf-neutral-700: #334155;
    --acf-neutral-800: #1e293b;
    --acf-neutral-900: #0f172a;
    --acf-neutral-950: #020617;

    /* --- Brand: resolved ONCE, here. -------------------------------------
       Bootstrap 5 (Moodle 5) emits --bs-primary; Bootstrap 4 (Moodle 4.4)
       emits --primary. Falling back to the plugin's navy. This single
       definition replaces the three divergent fallbacks (#194866 / #1a4b6e /
       #2563eb) that previously rendered navy cards next to blue titles. */
    --acf-brand: var(--bs-primary, var(--primary, #194866));

    /* --- Status ramps: one per semantic, no duplicates. ------------------ */
    --acf-green-300: #86efac;
    --acf-green-500: #22c55e;
    --acf-green-600: #16a34a;
    --acf-green-700: #15803d;
    --acf-green-800: #166534;

    --acf-amber-300: #fcd34d;
    --acf-amber-400: #fbbf24;
    --acf-amber-500: #f59e0b;
    --acf-amber-800: #92400e;

    --acf-red-300: #fca5a5;
    --acf-red-400: #f87171;
    --acf-red-500: #ef4444;
    --acf-red-700: #b91c1c;

    --acf-blue-300: #93c5fd;
    --acf-blue-700: #1d4ed8;

    /* --- AI accent: one indigo/violet ramp for BOTH AI features
       (chatbox + banner generator). Replaces 16 unrelated purples. -------- */
    --acf-ai-300: #c7d2fe;
    --acf-ai-400: #a5b4fc;
    --acf-ai-500: #6366f1;
    --acf-ai-600: #4f46e5;
    --acf-ai-700: #4338ca;
    --acf-ai-violet-600: #7c3aed;

    /* --- Fixed-dark "inverse" surfaces (the AI modals are dark in both
       themes by design — a deliberate product moment, not an oversight). -- */
    --acf-inverse-surface: #16182a;
    --acf-inverse-surface-2: #1f2138;
    --acf-inverse-text: #f2f3f8;           /* 15.8:1 on #16182a */
    --acf-inverse-text-muted: rgba(255, 255, 255, 0.74); /* 9.6:1 on #16182a */
    --acf-inverse-border: rgba(255, 255, 255, 0.13);
    --acf-inverse-fill: rgba(255, 255, 255, 0.09);
    --acf-inverse-fill-hover: rgba(255, 255, 255, 0.16);

    /* ======================================================================
       SPACE — 4px base grid. Replaces 22 ad-hoc pixel values.
       ====================================================================== */
    --acf-space-0: 0;
    --acf-space-1: 0.25rem;   /*  4px */
    --acf-space-2: 0.5rem;    /*  8px */
    --acf-space-3: 0.75rem;   /* 12px */
    --acf-space-4: 1rem;      /* 16px */
    --acf-space-5: 1.25rem;   /* 20px */
    --acf-space-6: 1.5rem;    /* 24px */
    --acf-space-7: 1.75rem;   /* 28px */
    --acf-space-8: 2rem;      /* 32px */
    --acf-space-10: 2.5rem;    /* 40px */
    --acf-space-12: 3rem;      /* 48px */
    --acf-space-16: 4rem;      /* 64px */

    /* Fluid page gutter — replaces --aicourse-gutter and its 4 breakpoint
       redefinitions with a single continuous value. */
    --acf-gutter: clamp(0.75rem, 0.35rem + 1.6vw, 1.5rem);

    /* ======================================================================
       RADIUS — 7 steps. Replaces 20.
       ====================================================================== */
    --acf-radius-xs: 4px;
    /* ACF-FIX-2.1.106: square corners throughout.
       Set at the token rather than rule by rule, so nothing is missed and nothing can drift back:
       every card, panel and banner reads from these four. The pill token below is deliberately
       untouched -- the status badges and the time pills are meant to be pills, and squaring them
       would turn a deliberate shape into a mistake. */
    --acf-radius-sm: 0;
    --acf-radius-md: 0;
    --acf-radius-lg: 0;
    --acf-radius-xl: 0;
    --acf-radius-2xl: 24px;
    --acf-radius-pill: 999px;
    --acf-radius-full: 50%;

    /* ======================================================================
       TYPE — rem-based so it honours the user's font-size preference.
       Replaces 28 values (17 of them px). 11px is the absolute floor;
       nothing renders at 7/8/9px any more.
       ====================================================================== */
    --acf-font-family: inherit;                 /* always defer to the theme */

    --acf-font-size-2xs: 0.6875rem;            /* 11px — floor */
    --acf-font-size-xs: 0.75rem;              /* 12px */
    --acf-font-size-sm: 0.8125rem;            /* 13px */
    --acf-font-size-md: 0.875rem;             /* 14px */
    --acf-font-size-base: 1rem;                 /* 16px */
    --acf-font-size-lg: 1.125rem;             /* 18px */
    --acf-font-size-xl: 1.25rem;              /* 20px */
    --acf-font-size-2xl: clamp(1.25rem, 1.05rem + 1vw, 1.5rem);
    --acf-font-size-3xl: clamp(1.375rem, 1rem + 2.1vw, 2.125rem);  /* hero, image mode */

    /* ACF-FIX-2.1.188: ONE hero heading size, for every page type.
       The course/section heading read --acf-font-size-3xl (max 34px) and the activity heading was
       repeatedly reported as smaller. Making them equal at 34px then made the section heading too
       big -- so the answer was never "match one to the other", it was that neither number was
       right and they were declared in two places.
       This is the single declaration all three page types read. 24px on a desktop, 18px on a
       phone: a course name is often a long string and at 28px it dominated the banner, while an
       activity name still reads as the page's heading rather than as a caption at 24.
       Change it HERE and every hero on every page type moves together -- that is the whole point
       of it existing. Do not add a second size for one page type; that is what produced four
       rounds of "one is bigger than the other". */
    --acf-hero-heading: clamp(1.125rem, 0.95rem + 0.85vw, 1.5rem);   /* 18 -> 24px */

    /* The line ABOVE the activity heading, carrying the course name. Declared next to the heading
       it sits under, because the two are only right relative to each other. */
    /* 12px floor, not 13. At 320px -- the width WCAG 2.2 SC 1.4.10 specifies, and what any screen
       becomes at 400% zoom -- a 13px eyebrow under an 18px title is only 1.38x apart, which reads
       as two headings rather than a heading and its eyebrow. 12px restores the 1.5x step while
       staying on the legibility floor. */
    --acf-hero-eyebrow: clamp(0.75rem, 0.66rem + 0.45vw, 0.9375rem);   /* 12 -> 15px */
    /* Gradient-mode hero title. Sits between 2xl and 3xl: enough presence to
       anchor the banner without competing with the page <h1> in edit mode. */
    --acf-font-size-hero: clamp(1.3125rem, 1.02rem + 1.35vw, 1.75rem); /* 21 -> 28px */

    --acf-weight-regular: 400;
    --acf-weight-medium: 500;
    --acf-weight-semibold: 600;
    --acf-weight-bold: 700;
    --acf-weight-black: 800;

    --acf-leading-none: 1;
    --acf-leading-tight: 1.2;
    --acf-leading-snug: 1.35;
    --acf-leading-normal: 1.5;
    --acf-leading-relaxed: 1.65;

    --acf-tracking-tight: -0.02em;
    --acf-tracking-normal: 0;
    --acf-tracking-wide: 0.04em;
    --acf-tracking-wider: 0.08em;               /* uppercase micro-labels */

    /* ======================================================================
       MOTION — 5 durations, 4 curves. Replaces 13 durations and 6 curves.
       Every duration is a token so `prefers-reduced-motion` can zero them
       from one place (section 5).
       ====================================================================== */
    --acf-duration-instant: 80ms;
    --acf-duration-fast: 140ms;
    --acf-duration-base: 220ms;
    --acf-duration-slow: 340ms;
    --acf-duration-slower: 560ms;

    --acf-ease-standard: cubic-bezier(0.2, 0, 0, 1);
    --acf-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --acf-ease-in: cubic-bezier(0.7, 0, 0.84, 0);
    --acf-ease-spring: cubic-bezier(0.34, 1.42, 0.64, 1);

    /* ======================================================================
       Z-INDEX — named scale. Chosen to sit correctly against Boost:
       Boost drawers ~1020, Bootstrap modal-backdrop 1050 / modal 1055.
       ====================================================================== */
    --acf-z-base: 0;
    --acf-z-raised: 1;
    --acf-z-content: 2;
    --acf-z-overlay-art: 3;     /* hero gradient scrim */
    --acf-z-floating: 10;    /* card chrome, hero icon pill */
    --acf-z-sticky: 20;
    --acf-z-chatbox: 1035;  /* above Boost drawers, below Bootstrap modals */
    --acf-z-modal: 1060;  /* icon picker */
    --acf-z-modal-alert: 1070;  /* banner generate / remove — always on top */

    /* ======================================================================
       LAYOUT + SIZING
       ====================================================================== */
    --acf-container-max: 87.5rem;   /* 1400px */
    --acf-card-min: 15.5rem;   /* 248px — section card grid track floor */
    --acf-activity-min: 16.5rem;   /* 264px — activity card grid track floor */
    --acf-target-min: 44px;      /* every interactive element honours this */

    --acf-icon-xs: 14px;
    --acf-icon-sm: 16px;
    --acf-icon-md: 20px;
    --acf-icon-lg: 24px;
    --acf-icon-xl: 28px;

    /* Gradient-mode hero. Was clamp(3.25rem .. 4.5rem) = a 52-72px bar, which
       read as a toolbar rather than a banner. The new floor gives the title,
       the ring and the action cluster room to breathe at every width. The
       `herobannerheight` setting is still honoured as documented — it only ever
       wrote an inline `max-height`, which gradient mode overrides (see the
       `!important` note in section 8) so tall content is never clipped. */
    --acf-hero-min-h: clamp(4.75rem, 3.4rem + 4.4vw, 7.25rem);   /* 76 -> 116px */
    --acf-hero-image-min-h: clamp(9.5rem, 5.5rem + 13vw, 14.5rem);

    /* Progress ring. The gradient-mode ring was 44px — smaller than a single
       hero button — so it read as a status chip rather than the hero's anchor. */
    --acf-hero-ring: clamp(3.5rem, 2.4rem + 3.6vw, 5.25rem);    /* 56 -> 84px */
    --acf-hero-ring-image: clamp(3.75rem, 3rem + 2.4vw, 5rem);        /* 60 -> 80px */
    --acf-ring-inline: 2.75rem;   /* 44px — the small inline ring elsewhere */

    --acf-blur-sm: 6px;
    --acf-blur-md: 10px;
    --acf-blur-lg: 18px;
}

/* ==========================================================================
   3. DESIGN TOKENS — SEMANTIC (light)
   --------------------------------------------------------------------------
   Tier 2. THE ONLY TOKENS COMPONENT RULES ARE ALLOWED TO USE.
   Dark mode, high contrast, reduced transparency and print each override this
   layer only — never a component rule.

   The two admin-page roots are included for the reason given in section 2.
   ========================================================================== */

body.format-aicourse,
.aicadmin-wrap,
.aitutor-report-index {

    /* --- Surfaces -------------------------------------------------------- */
    --acf-surface-page: transparent;
    --acf-surface-raised: var(--acf-neutral-0);
    --acf-surface-sunken: var(--acf-neutral-50);
    --acf-surface-muted: var(--acf-neutral-100);

    /* ACF-FIX-2.1.123: the section and activity cards.
       Their own token rather than --acf-surface-raised, which is pure white and is also used by
       the course index, the sidebar header and the settings cards -- tinting that would have
       greyed half the plugin. #fafbfc is a touch above --acf-neutral-50: enough to separate a card
       from the page behind it, not enough to read as a filled panel or to cost contrast against
       the text on it. */
    --acf-surface-card: #fafbfc;

    /* ACF-FIX-2.1.131: the height of the block at the top of the sidebar, and of the banner.
       Measured before setting: the sidebar's drawer strip plus its header came to 185px against a
       119px banner -- a 66px step where the two meet, which is what stopped the panel and the
       content reading as one interface. Both now derive from this, so they cannot drift apart when
       either is restyled. */
    /* ACF-FIX-2.1.146: 164, not 152. The header's height is fixed and its contents are centred, so
       padding under the progress ring had nowhere to go -- it measured 5px against the 16px asked
       for. The block itself has to grow. Raising the token does both sides at once: the banner
       reads the same number, so the two edges stay aligned without a second change. */
    --acf-topblock: 164px;
    --acf-drawerstrip: 44px;
    --acf-surface-overlay: var(--acf-neutral-0);
    --acf-surface-scrim: rgba(2, 6, 23, 0.55);
    --acf-surface-hover: rgba(15, 23, 42, 0.05);
    --acf-surface-active: rgba(15, 23, 42, 0.09);

    /* --- Text (contrast measured against --acf-surface-raised) ----------- */
    --acf-text-primary: var(--acf-neutral-800);   /* 14.63:1 */
    --acf-text-secondary: var(--acf-neutral-600);   /*  7.58:1 */
    /* ACF-FIX-2.1.170: was --acf-neutral-500 (#64748b). 4.76:1 is a true measurement and it was
       taken against the wrong thing: --acf-surface-raised is white, but this token is also used on
       the sidebar header (#eceff4) and other tinted surfaces, where the same colour measures
       4.13:1 and fails WCAG 2.2 AA for body text. The sidebar's duration line ("2 hr 40 min") was
       shipping at 4.13:1. The floor now clears 4.5:1 on every surface this token is used on --
       4.92:1 on the sidebar, 5.42:1 sunken, 5.67:1 raised -- while staying a clear step lighter
       than --acf-text-secondary (7.58:1), so the type hierarchy is unchanged. */
    --acf-text-tertiary: #5b6879;   /* 4.92:1 on the DARKEST surface it is used on — the FLOOR */
    --acf-text-inverse: var(--acf-neutral-0);
    --acf-text-brand: var(--acf-brand);         /*  9.72:1 at the default navy */
    --acf-text-on-brand: var(--acf-neutral-0);
    --acf-text-on-media: var(--acf-neutral-0);     /* always over a >=0.62 scrim */

    /* --- Borders --------------------------------------------------------- */
    --acf-border-subtle: rgba(15, 23, 42, 0.08);

    /* ACF-FIX-2.1.84: the course index dividers, deliberately a shade darker than
       --acf-border-subtle. That token is right for a card edge, which is reinforced by the card's
       own background and elevation; a bare line on white has nothing helping it and at 8% it was
       barely visible. Kept separate rather than darkening --acf-border-subtle globally, which
       would have changed every card border in the plugin along with it. */
    --acf-player-line: rgba(15, 23, 42, 0.16);

    /* ACF-FIX-2.1.85: the sidebar header band. A shade darker than --acf-surface-sunken, which
       was too close to white to read as a distinct band once the panel around it went white. */
    --acf-player-header-default: #eceff4;
    --acf-border-default: var(--acf-neutral-200);
    --acf-border-strong: var(--acf-neutral-300);
    --acf-border-brand: var(--acf-brand);
    --acf-border-media: rgba(255, 255, 255, 0.24);

    /* --- Brand tints -----------------------------------------------------
       rgba() first as a universal fallback, then color-mix() so the tint
       tracks the SITE's brand colour rather than the plugin's navy.
       Progressive enhancement: silently ignored by older engines. */
    --acf-brand-tint-weak: rgba(25, 72, 102, 0.08);
    --acf-brand-tint-weak: color-mix(in srgb, var(--acf-brand) 8%, transparent);
    --acf-brand-tint: rgba(25, 72, 102, 0.11);
    --acf-brand-tint: color-mix(in srgb, var(--acf-brand) 11%, transparent);
    --acf-brand-tint-strong: rgba(25, 72, 102, 0.18);
    --acf-brand-tint-strong: color-mix(in srgb, var(--acf-brand) 18%, transparent);

    /* ACF-FIX-2.1.204. The course index's selected row needs an OPAQUE tint, not a
       translucent one. A translucent highlight lets whatever the theme painted on the
       drawer show through, so on a theme with a dark course index the row went dark and
       the dark brand text on top of it disappeared. Mixing into the raised surface instead
       of into `transparent` gives the same tint with nothing showing through. */
    --acf-index-selected-bg: #edf0f3;
    --acf-index-selected-bg: color-mix(in srgb, var(--acf-brand) 8%, var(--acf-surface-raised));

    /* --- Status: bg + fg + border declared together so every pair is
           auditable in one place. All ratios measured on the stated bg. ---- */
    --acf-status-done-bg: rgba(22, 163, 74, 0.13);
    --acf-status-done-fg: var(--acf-green-800);  /* 6.17:1 on the tint */
    --acf-status-done-border: rgba(22, 163, 74, 0.32);
    /* FILL: anything with white text on it. White on green-700 = 5.02:1. */
    --acf-status-done-solid: var(--acf-green-700);
    /* LINE: rings, bars, dots — no text, so it only needs 3:1 vs the surface.
       green-600 on white = 3.30:1. A single token cannot serve both roles:
       green-600 behind white text is 3.30:1, which fails AA for the 12px
       numerals in the hero. */
    --acf-status-done-line: var(--acf-green-600);

    --acf-status-doing-bg: rgba(245, 158, 11, 0.15);
    --acf-status-doing-fg: var(--acf-amber-800); /* 6.4:1 on the tint */
    --acf-status-doing-border: rgba(245, 158, 11, 0.42);
    --acf-status-doing-solid: var(--acf-amber-500);

    --acf-status-todo-bg: var(--acf-neutral-100);
    --acf-status-todo-fg: var(--acf-neutral-600); /* 6.91:1 — was 2.27:1 */
    --acf-status-todo-border: var(--acf-neutral-300);

    --acf-status-danger-bg: rgba(239, 68, 68, 0.12);
    --acf-status-danger-fg: var(--acf-red-700);   /* 6.1:1 on the tint */
    --acf-status-danger-border: rgba(239, 68, 68, 0.35);
    --acf-status-danger-solid: var(--acf-red-500);

    --acf-status-info-bg: rgba(29, 78, 216, 0.10);
    --acf-status-info-fg: var(--acf-blue-700);        /* 6.4:1 on the tint */

    /* --- AI accent, resolved for text use ------------------------------- */
    --acf-ai-bg: rgba(99, 102, 241, 0.09);
    --acf-ai-border: rgba(99, 102, 241, 0.28);
    --acf-ai-fg: var(--acf-ai-700);              /* 7.04:1 on --acf-ai-bg */
    --acf-ai-gradient: linear-gradient(135deg, var(--acf-ai-600) 0%, var(--acf-ai-violet-600) 100%);
    /* White on that gradient: 6.29:1 at the start, 5.70:1 at the end.
       (The old #6366f1 -> #8b5cf6 gradient bottomed out at 4.40:1.) */

    /* --- Tracks (progress backgrounds) ---------------------------------- */
    --acf-track: rgba(15, 23, 42, 0.12);
    --acf-track-media: rgba(255, 255, 255, 0.28);

    /* --- Media chrome ----------------------------------------------------
       Controls and text that sit on an arbitrary course photo. These do NOT
       flip in dark mode: the backdrop is the image, not the theme. Every alpha
       here is the value at which white text clears AA over a PURE WHITE photo
       (the worst case, and exactly what the AI banner generator produces).
         0.55 -> 4.76:1   0.62 -> 6.20:1 */
    --acf-media-scrim: rgba(2, 6, 23, 0.55);
    --acf-media-scrim-strong: rgba(2, 6, 23, 0.62);
    /* ACF-FIX-2.1.166: was used with a literal fallback and never defined. A token that only ever
       resolves to its fallback is a token nobody can theme. */
    --acf-media-scrim-stronger: rgba(2, 6, 23, 0.72);
    --acf-media-hover: rgba(255, 255, 255, 0.22);
    --acf-media-hover-strong: rgba(255, 255, 255, 0.36);
    --acf-media-line: rgba(255, 255, 255, 0.85);
    --acf-media-line-soft: rgba(255, 255, 255, 0.70);
    --acf-media-text-shadow: 0 1px 3px rgba(2, 6, 23, 0.60);
    /* CONTRAST-CORRECTED. The previous ramp assumed the hero text sat in the
       bottom 42% of the banner ("the bottom stop is .62 where the summary sits"). It does not: .aicourse-hero-content is bottom-packed but only as
       tall as its own content, so on a banner at its minimum height the TITLE
       starts about 10% down — where the old ramp was still at 0.03 alpha and
       white-on-white measured 1.1:1. The 0.55+ band now begins at 8%.
       Black over a PURE WHITE photo (the worst case, and exactly what the AI
       banner generator produces) at alpha a, versus white text:
           a = 0.38 ->  2.60:1   (top 8%: frosted icon pill only, no text)
           a = 0.58 ->  5.32:1   (from 8% down: title, summary, ring label)
           a = 0.66 ->  7.06:1
           a = 0.88 -> 15.30:1
       So every piece of hero text clears AA (4.5:1) on any image, and the
       image is still legible through the top band. */
    --acf-hero-scrim:
        linear-gradient(
            to bottom,
            rgba(2, 6, 23, 0.38)  0%,
            rgba(2, 6, 23, 0.58)  8%,
            rgba(2, 6, 23, 0.66) 58%,
            rgba(2, 6, 23, 0.88) 100%
        );

    /* --- Banner overlay strength -----------------------------------------
       ACF-FIX-2.1.12. The ramp above is the "strong" setting and it is far
       heavier than accessibility requires: its bottom stop reaches 16.2:1
       against white text where AA asks for 4.5:1, so a dark photograph is
       crushed almost to black. The minimum alpha that clears AA on a worst-case
       pure-white image is 0.539, so every level below keeps the whole text band
       at 0.56 or above and only relaxes the top and bottom stops, where no text
       sits. Contrast measured on the worst case, not the typical one, so these
       remain safe on any image the generator produces. */
    /* stylelint-disable-next-line no-descending-specificity */
}

/* ACF-FIX-2.1.20: darken where the text is, not the whole picture.
   The earlier ramps were vertical, which meant a near-uniform 0.56-0.68 blanket across 92% of
   the banner: the "Light" setting still crushed a dark photograph because every pixel got the
   same treatment. Hero text (title, summary, meta, progress ring) all sits in the left half, so
   the scrim now runs LEFT TO RIGHT -- heavier than before where the text actually is, and
   nearly clear on the right where the image should be visible.

   Contrast is better, not worse: the text band now sits at 0.62-0.72 alpha against the old
   0.56-0.57. Measured on a worst-case pure-white image that is 5.8:1 to 8.4:1, comfortably above
   the 4.5:1 AA floor, while the right-hand 30% of the banner drops to 0.06-0.20 and the photo
   reads properly for the first time.

   Below 600px the title wraps to the full width, so there is no "text side" to protect and the
   vertical ramp is kept -- see the media query after these rules. */
body.format-aicourse.aicourse-scrim-medium {
    --acf-hero-scrim:
        linear-gradient(
            to right,
            rgba(2, 6, 23, 0.78)  0%,
            rgba(2, 6, 23, 0.70) 38%,
            rgba(2, 6, 23, 0.34) 66%,
            rgba(2, 6, 23, 0.16) 100%
        );
}

body.format-aicourse.aicourse-scrim-light {
    --acf-hero-scrim:
        linear-gradient(
            to right,
            rgba(2, 6, 23, 0.72)  0%,
            rgba(2, 6, 23, 0.62) 34%,
            rgba(2, 6, 23, 0.20) 62%,
            rgba(2, 6, 23, 0.06) 100%
        );
}

/* Narrow screens: the title wraps across the whole banner, so a horizontal fade would leave the
   end of each line unprotected. Fall back to the vertical ramp, which is correct there. */
@media (max-width: 599px) {
    body.format-aicourse.aicourse-scrim-medium {
        --acf-hero-scrim:
            linear-gradient(
                to bottom,
                rgba(2, 6, 23, 0.22)  0%,
                rgba(2, 6, 23, 0.57)  8%,
                rgba(2, 6, 23, 0.60) 58%,
                rgba(2, 6, 23, 0.68) 100%
            );
    }

    body.format-aicourse.aicourse-scrim-light {
        --acf-hero-scrim:
            linear-gradient(
                to bottom,
                rgba(2, 6, 23, 0.12)  0%,
                rgba(2, 6, 23, 0.56)  8%,
                rgba(2, 6, 23, 0.57) 58%,
                rgba(2, 6, 23, 0.60) 100%
            );
    }
}

body.format-aicourse {
    /* --- Gradient-mode hero wash ----------------------------------------
       CONTRAST-CHECKED. The old banner was surface-sunken -> surface-muted:
       two neutrals two steps apart, i.e. a flat pale bar. This is a real
       brand-derived wash, but capped at 13% brand so the title never loses
       contrast. Measured at the darkest stop with the Boost default brand
       #0f6cbf (the site under test):
         16% #0f6cbf on #ffffff = #d9e8f5
           --acf-text-primary  (#1e293b) on #d9e8f5 = 11.66:1  (14.63:1 on white)
           --acf-text-secondary(#475569) on #d9e8f5 =  6.05:1  ( 7.58:1 on white)
       Both still clear AA for body text and AAA for large text.
       rgba() first as the universal fallback, then color-mix() so the wash
       tracks the SITE's brand rather than the plugin's navy. */
    /* Soft off-centre bloom behind the progress ring, so the hero's right side
       has a reason to be the anchor. Decorative only — no text sits on it. */
    --acf-hero-border: var(--acf-brand-tint);

    /* --- Fixed-dark modal chrome (see --acf-inverse-* primitives) -------- */
    --acf-inverse-scrim: rgba(2, 6, 23, 0.72);
    --acf-inverse-ai-tint: rgba(99, 102, 241, 0.16);
    --acf-inverse-ai-wash:
        linear-gradient(
            135deg,
            rgba(79, 70, 229, 0.20) 0%,
            rgba(124, 58, 237, 0.20) 100%
        );
    --acf-inverse-danger-bg: rgba(239, 68, 68, 0.16);
    --acf-inverse-danger-border: rgba(239, 68, 68, 0.40);

    /* --- Elevation: 5 real layered steps. Replaces 35 bespoke shadows.
           Tinted (222 47% 11%) rather than pure black so shadows read as
           depth, not dirt. --------------------------------------------------- */
    --acf-elevation-0: none;
    --acf-elevation-1:
        0 1px 2px rgba(15, 23, 42, 0.05),
        0 1px 3px rgba(15, 23, 42, 0.04);
    --acf-elevation-2:
        0 1px 2px rgba(15, 23, 42, 0.04),
        0 2px 6px rgba(15, 23, 42, 0.05),
        0 6px 14px rgba(15, 23, 42, 0.05);
    --acf-elevation-3:
        0 1px 2px rgba(15, 23, 42, 0.04),
        0 4px 10px rgba(15, 23, 42, 0.06),
        0 12px 26px rgba(15, 23, 42, 0.08);
    --acf-elevation-4:
        0 2px 4px rgba(15, 23, 42, 0.05),
        0 8px 20px rgba(15, 23, 42, 0.08),
        0 24px 48px rgba(15, 23, 42, 0.11);
    --acf-elevation-5:
        0 4px 8px rgba(15, 23, 42, 0.06),
        0 16px 32px rgba(15, 23, 42, 0.11),
        0 40px 80px rgba(15, 23, 42, 0.16);

    /* --- Focus -----------------------------------------------------------
       ACF-FIX-2.1.35: the ring now follows the site's own primary colour.

       It used to be pinned to #1d4ed8 on the reasoning that a pale --primary
       would ship an invisible focus ring. That risk is real -- WCAG 1.4.11
       wants 3:1 for a focus indicator -- but pinning it meant every site got a
       stock blue ring that belonged to no theme, which is what made it look
       like a stray colour rather than a deliberate one.

       Both are satisfied by keeping the ring branded and guaranteeing its
       visibility with the halo rather than with the ring's own hue. The halo is
       drawn FIRST in the surface colour, separating the ring from whatever sits
       behind it, and a third outer band in near-black backs the whole indicator
       so it reads against a pale primary, a white card, a photograph or a dark
       gradient alike. A pale brand ring on a dark outer band still clears 3:1
       against its immediate surround, because the surround is the band.

       Sites that want the old fixed blue can set --acf-focus-color themselves;
       it is still a token. */
    --acf-focus-color: var(--acf-brand);
    --acf-focus-halo: var(--acf-surface-raised);
    --acf-focus-backing: rgba(2, 6, 23, 0.55);
    --acf-focus-width: 2px;
    --acf-focus-offset: 2px;
    --acf-focus-ring:
        0 0 0 var(--acf-focus-offset) var(--acf-focus-halo),
        0 0 0 calc(var(--acf-focus-offset) + var(--acf-focus-width)) var(--acf-focus-color),
        0 0 0 calc(var(--acf-focus-offset) + var(--acf-focus-width) + 1px) var(--acf-focus-backing);
    /* Variant for controls sitting on imagery / dark gradients. */
    --acf-focus-ring-media:
        0 0 0 2px rgba(2, 6, 23, 0.85),
        0 0 0 4px #fff;
}

/* ==========================================================================
   4. DESIGN TOKENS — DARK
   --------------------------------------------------------------------------
   Four triggers, one palette:
     a) Moodle 5 / Bootstrap 5    html[data-bs-theme="dark"]
     b) the legacy body class already in the wild   body.dark-mode
     c) the site setting forcing dark   body.aicourse-force-dark
     d) the OS preference, but ONLY when the theme has declared a mode, or when
        the site has explicitly opted in with body.aicourse-follow-os

   Every trigger yields to .aicourse-force-light, which is what the site setting
   emits for "Always light". The point of (c) and (d) is that a theme is free to
   declare nothing at all -- theme_academi declares nothing -- so the plugin must
   let the site say what the page actually looks like rather than guess from the
   device. See \format_aicourse\local\callbacks::get_colour_mode_class().

   Because everything is tokenised this is a ~40-declaration override, not the
   ~350 lines of duplicated component rules it replaces. The block appears
   twice only because plain CSS cannot share a declaration block between a
   selector list and an @media rule.
   ========================================================================== */

html[data-bs-theme="dark"] body.format-aicourse:not(.aicourse-force-light),
body.format-aicourse[data-bs-theme="dark"]:not(.aicourse-force-light),
body.format-aicourse.dark-mode:not(.aicourse-force-light),
body.format-aicourse.aicourse-force-dark,
html[data-bs-theme="dark"] body:not(.aicourse-force-light) :is(.aicadmin-wrap, .aitutor-report-index),
body.dark-mode:not(.aicourse-force-light) :is(.aicadmin-wrap, .aitutor-report-index),
body.aicourse-force-dark :is(.aicadmin-wrap, .aitutor-report-index) {
    --acf-surface-raised: var(--acf-neutral-800);
    --acf-surface-card: var(--acf-neutral-800);
    --acf-surface-sunken: var(--acf-neutral-900);
    --acf-surface-muted: var(--acf-neutral-700);
    --acf-surface-overlay: var(--acf-neutral-800);
    --acf-surface-scrim: rgba(2, 6, 23, 0.72);
    --acf-surface-hover: rgba(255, 255, 255, 0.07);
    --acf-surface-active: rgba(255, 255, 255, 0.12);

    --acf-text-primary: var(--acf-neutral-100);   /* 13.35:1 on neutral-800 */
    --acf-text-secondary: var(--acf-neutral-300);   /*  9.85:1 */
    --acf-text-tertiary: var(--acf-neutral-400);   /*  5.71:1 — was 1.93:1 */
    --acf-text-brand: var(--acf-blue-300);      /*  8.10:1 */

    --acf-border-subtle: rgba(255, 255, 255, 0.10);
    --acf-player-line: rgba(255, 255, 255, 0.20);
    --acf-player-header-default: rgba(255, 255, 255, 0.06);
    --acf-border-default: var(--acf-neutral-700);
    --acf-border-strong: var(--acf-neutral-600);
    --acf-border-media: rgba(255, 255, 255, 0.20);

    --acf-brand-tint-weak: rgba(148, 163, 184, 0.12);
    --acf-brand-tint-weak: color-mix(in srgb, var(--acf-brand) 22%, transparent);
    --acf-brand-tint: rgba(148, 163, 184, 0.18);
    --acf-brand-tint: color-mix(in srgb, var(--acf-brand) 30%, transparent);
    --acf-brand-tint-strong: rgba(148, 163, 184, 0.28);
    --acf-brand-tint-strong: color-mix(in srgb, var(--acf-brand) 42%, transparent);

    /* Opaque selected row, dark scheme. See the light-scheme note. */
    --acf-index-selected-bg: #2e3b4e;
    --acf-index-selected-bg: color-mix(in srgb, var(--acf-brand) 22%, var(--acf-surface-raised));

    --acf-status-done-bg: rgba(22, 163, 74, 0.20);
    --acf-status-done-fg: var(--acf-green-300);   /* 7.93:1 on the tint */
    --acf-status-done-border: rgba(134, 239, 172, 0.34);
    --acf-status-done-solid: var(--acf-green-700);   /* white on it = 5.02:1 */
    --acf-status-done-line: var(--acf-green-500);   /* 6.42:1 on neutral-800 */

    --acf-status-doing-bg: rgba(245, 158, 11, 0.20);
    --acf-status-doing-fg: var(--acf-amber-300); /* 8.9:1 on the tint */
    --acf-status-doing-border: rgba(252, 211, 77, 0.36);

    --acf-status-todo-bg: rgba(255, 255, 255, 0.10);
    --acf-status-todo-fg: var(--acf-neutral-300); /* 7.24:1 — was 4.47:1 */
    --acf-status-todo-border: rgba(255, 255, 255, 0.22);

    --acf-status-danger-bg: rgba(239, 68, 68, 0.20);
    --acf-status-danger-fg: var(--acf-red-300);       /* 6.5:1 on the tint */
    --acf-status-info-bg: rgba(147, 197, 253, 0.16);
    --acf-status-info-fg: var(--acf-blue-300);

    --acf-ai-bg: rgba(99, 102, 241, 0.22);
    --acf-ai-border: rgba(165, 180, 252, 0.34);
    --acf-ai-fg: var(--acf-ai-400);               /* 7.33:1 on neutral-800 */

    --acf-track: rgba(255, 255, 255, 0.16);

    /* Hero wash, dark. Same shape as light, deeper mix because the base surface
       is neutral-800. At the darkest stop (34% #0f6cbf on #1e293b = #194068):
         --acf-text-primary (#f1f5f9) on #194068 = 9.74:1 (13.35:1 on the flat
         surface) — still comfortably AA/AAA. */
    --acf-hero-wash:
        linear-gradient(
            135deg,
            rgba(15, 108, 191, 0.34) 0%,
            rgba(15, 108, 191, 0.16) 46%,
            rgba(15, 108, 191, 0.06) 100%
        ),
        linear-gradient(var(--acf-surface-raised), var(--acf-surface-raised));
    --acf-hero-wash:
        linear-gradient(
            135deg,
            color-mix(in srgb, var(--acf-brand) 34%, var(--acf-surface-raised)) 0%,
            color-mix(in srgb, var(--acf-brand) 16%, var(--acf-surface-raised)) 46%,
            color-mix(in srgb, var(--acf-brand)  6%, var(--acf-surface-raised)) 100%
        );

    /* Dark shadows need more opacity AND a hairline ring to read at all. */
    --acf-elevation-1:
        0 1px 2px rgba(2, 6, 23, 0.5),
        0 0 0 1px rgba(255, 255, 255, 0.05);
    --acf-elevation-2:
        0 2px 6px rgba(2, 6, 23, 0.5),
        0 6px 14px rgba(2, 6, 23, 0.4),
        0 0 0 1px rgba(255, 255, 255, 0.05);
    --acf-elevation-3:
        0 4px 10px rgba(2, 6, 23, 0.55),
        0 12px 26px rgba(2, 6, 23, 0.45),
        0 0 0 1px rgba(255, 255, 255, 0.06);
    --acf-elevation-4:
        0 8px 20px rgba(2, 6, 23, 0.6),
        0 24px 48px rgba(2, 6, 23, 0.5),
        0 0 0 1px rgba(255, 255, 255, 0.07);
    --acf-elevation-5:
        0 16px 32px rgba(2, 6, 23, 0.65),
        0 40px 80px rgba(2, 6, 23, 0.55),
        0 0 0 1px rgba(255, 255, 255, 0.08);

    /* ACF-FIX-2.1.35: keep the brand hue in dark mode too; only the halo and the
       backing band change, so the ring stays the site's colour rather than
       reverting to a stock blue the moment the page goes dark. */
    --acf-focus-halo: var(--acf-neutral-900);
    --acf-focus-backing: rgba(255, 255, 255, 0.65);

    color-scheme: dark;
}

/* --- Small-screen legibility ----------------------------------------------
   ACF-FIX-2.1.15. The 2xs step is 11px: a deliberate, dense chip size that works at desk
   viewing distance. On a phone held at arm's length, 11px set in uppercase with wide tracking
   -- which is exactly how the status badges are set -- sits below comfortable reading. Lifting
   the token to 12px under 600px raises every 2xs use on mobile at once, and leaves desktop
   density untouched. Measured on an iPhone SE viewport, where the badges were the only plugin
   text below 12px. */
@media (max-width: 599px) {
    body.format-aicourse,
    body :is(.aicadmin-wrap, .aitutor-report-index) {
        --acf-font-size-2xs: 0.75rem;
    }
}

@media (prefers-color-scheme: dark) {
    /* ACF-FIX-2.1.8: the theme must DECLARE a colour mode before the OS preference is honoured.
       This block used to be guarded by `html:not([data-bs-theme="light"])` alone. An element
       carrying no data-bs-theme attribute at all satisfies :not([data-bs-theme="light"]), so on
       any theme that never sets the attribute -- theme_academi sets it nowhere -- these dark
       tokens were applied to every user whose OPERATING SYSTEM was in dark mode, while the theme
       itself stayed light. The result was near-white text on white: the course index titles, and
       everything else coloured from --acf-text-primary, became invisible for those users only.
       It looked like a permissions bug because it varied per person, not per course.

       Requiring the attribute to be present means a mode-aware theme (Boost 4.4+ sets
       data-bs-theme on <html>) still gets automatic dark mode, and a theme that is light-only by
       omission is left alone. `.aicourse-force-light` remains as an explicit opt-out. */
    html[data-bs-theme]:not([data-bs-theme="light"]) body.format-aicourse:not(.aicourse-force-light):not([data-bs-theme="light"]),
    body.format-aicourse.aicourse-follow-os:not(.aicourse-force-light),
    html[data-bs-theme]:not([data-bs-theme="light"]) body:not(.aicourse-force-light):not([data-bs-theme="light"])
    :is(.aicadmin-wrap, .aitutor-report-index),
    body.aicourse-follow-os:not(.aicourse-force-light) :is(.aicadmin-wrap, .aitutor-report-index) {
        --acf-surface-raised: var(--acf-neutral-800);
        --acf-surface-sunken: var(--acf-neutral-900);
        --acf-surface-muted: var(--acf-neutral-700);
        --acf-surface-overlay: var(--acf-neutral-800);
        --acf-surface-scrim: rgba(2, 6, 23, 0.72);
        --acf-surface-hover: rgba(255, 255, 255, 0.07);
        --acf-surface-active: rgba(255, 255, 255, 0.12);

        --acf-text-primary: var(--acf-neutral-100);
        --acf-text-secondary: var(--acf-neutral-300);
        --acf-text-tertiary: var(--acf-neutral-400);
        --acf-text-brand: var(--acf-blue-300);

        --acf-border-subtle: rgba(255, 255, 255, 0.10);
        --acf-player-line: rgba(255, 255, 255, 0.20);
        --acf-player-header-default: rgba(255, 255, 255, 0.06);
        --acf-border-default: var(--acf-neutral-700);
        --acf-border-strong: var(--acf-neutral-600);
        --acf-border-media: rgba(255, 255, 255, 0.20);

        --acf-brand-tint-weak: rgba(148, 163, 184, 0.12);
        --acf-brand-tint-weak: color-mix(in srgb, var(--acf-brand) 22%, transparent);
        --acf-brand-tint: rgba(148, 163, 184, 0.18);
        --acf-brand-tint: color-mix(in srgb, var(--acf-brand) 30%, transparent);
        --acf-brand-tint-strong: rgba(148, 163, 184, 0.28);
        --acf-brand-tint-strong: color-mix(in srgb, var(--acf-brand) 42%, transparent);

        /* Opaque selected row, dark scheme. See the light-scheme note. */
        --acf-index-selected-bg: #2e3b4e;
        --acf-index-selected-bg: color-mix(in srgb, var(--acf-brand) 22%, var(--acf-surface-raised));

        --acf-status-done-bg: rgba(22, 163, 74, 0.20);
        --acf-status-done-fg: var(--acf-green-300);
        --acf-status-done-border: rgba(134, 239, 172, 0.34);
        --acf-status-done-solid: var(--acf-green-700);
        --acf-status-done-line: var(--acf-green-500);

        --acf-status-doing-bg: rgba(245, 158, 11, 0.20);
        --acf-status-doing-fg: var(--acf-amber-300);
        --acf-status-doing-border: rgba(252, 211, 77, 0.36);

        --acf-status-todo-bg: rgba(255, 255, 255, 0.10);
        --acf-status-todo-fg: var(--acf-neutral-300);
        --acf-status-todo-border: rgba(255, 255, 255, 0.22);

        --acf-status-danger-bg: rgba(239, 68, 68, 0.20);
        --acf-status-danger-fg: var(--acf-red-300);
        --acf-status-info-bg: rgba(147, 197, 253, 0.16);
        --acf-status-info-fg: var(--acf-blue-300);

        --acf-ai-bg: rgba(99, 102, 241, 0.22);
        --acf-ai-border: rgba(165, 180, 252, 0.34);
        --acf-ai-fg: var(--acf-ai-400);

        --acf-track: rgba(255, 255, 255, 0.16);

        /* Hero wash, dark — see the note in section 4. */
        --acf-hero-wash:
            linear-gradient(
                135deg,
                rgba(15, 108, 191, 0.34) 0%,
                rgba(15, 108, 191, 0.16) 46%,
                rgba(15, 108, 191, 0.06) 100%
            ),
            linear-gradient(var(--acf-surface-raised), var(--acf-surface-raised));
        --acf-hero-wash:
            linear-gradient(
                135deg,
                color-mix(in srgb, var(--acf-brand) 34%, var(--acf-surface-raised)) 0%,
                color-mix(in srgb, var(--acf-brand) 16%, var(--acf-surface-raised)) 46%,
                color-mix(in srgb, var(--acf-brand)  6%, var(--acf-surface-raised)) 100%
            );

        --acf-elevation-1:
            0 1px 2px rgba(2, 6, 23, 0.5),
            0 0 0 1px rgba(255, 255, 255, 0.05);
        --acf-elevation-2:
            0 2px 6px rgba(2, 6, 23, 0.5),
            0 6px 14px rgba(2, 6, 23, 0.4),
            0 0 0 1px rgba(255, 255, 255, 0.05);
        --acf-elevation-3:
            0 4px 10px rgba(2, 6, 23, 0.55),
            0 12px 26px rgba(2, 6, 23, 0.45),
            0 0 0 1px rgba(255, 255, 255, 0.06);
        --acf-elevation-4:
            0 8px 20px rgba(2, 6, 23, 0.6),
            0 24px 48px rgba(2, 6, 23, 0.5),
            0 0 0 1px rgba(255, 255, 255, 0.07);
        --acf-elevation-5:
            0 16px 32px rgba(2, 6, 23, 0.65),
            0 40px 80px rgba(2, 6, 23, 0.55),
            0 0 0 1px rgba(255, 255, 255, 0.08);

        /* ACF-FIX-2.1.35: see the note in the explicit dark block above. */
        --acf-focus-halo: var(--acf-neutral-900);
        --acf-focus-backing: rgba(255, 255, 255, 0.65);

        color-scheme: dark;
    }
}

/* ==========================================================================
   5. DESIGN TOKENS — USER PREFERENCES
   --------------------------------------------------------------------------
   Each of these is a token override. Not one component rule changes.
   ========================================================================== */

/* --- More contrast --------------------------------------------------------
   Collapse the tertiary tier into the secondary tier, harden every border,
   and drop decorative tints that reduce effective contrast. */
@media (prefers-contrast: more) {
    body.format-aicourse,
    .aicadmin-wrap,
    .aitutor-report-index {
        --acf-text-tertiary: var(--acf-text-secondary);
        --acf-border-subtle: var(--acf-border-strong);
        --acf-border-default: var(--acf-border-strong);
        --acf-border-media: #fff;
        --acf-status-todo-bg: transparent;
        --acf-status-todo-border: var(--acf-neutral-600);
        --acf-surface-hover: rgba(15, 23, 42, 0.12);
        --acf-focus-width: 3px;
        /* stylelint-disable length-zero-no-unit -- these feed blur(var(--acf-blur-*));
           blur(0px) is unambiguous where a bare 0 is a known cross-browser sharp edge. */
        --acf-blur-sm: 0px;
        --acf-blur-md: 0px;
        --acf-blur-lg: 0px;
        /* stylelint-enable length-zero-no-unit */
    }

    html[data-bs-theme="dark"] body.format-aicourse,
    body.format-aicourse.dark-mode,
    html[data-bs-theme="dark"] :is(.aicadmin-wrap, .aitutor-report-index),
    body.dark-mode :is(.aicadmin-wrap, .aitutor-report-index) {
        --acf-border-subtle: var(--acf-neutral-400);
        --acf-border-default: var(--acf-neutral-400);
        --acf-surface-hover: rgba(255, 255, 255, 0.16);
    }

}

/* High contrast AND an OS dark preference. Separate from the block above
   because the OS-preference selector must not match a light page, and separate
   from the dark token block because that one is (0,4,2) and would otherwise
   win. Both media features are required, so this can only ever apply when the
   page really is dark. */
@media (prefers-contrast: more) and (prefers-color-scheme: dark) {
    /* ACF-FIX-2.1.8: same attribute-presence guard as the main dark block above. */
    html[data-bs-theme]:not([data-bs-theme="light"]) body.format-aicourse:not(.aicourse-force-light):not([data-bs-theme="light"]),
    body.format-aicourse.aicourse-follow-os:not(.aicourse-force-light) {
        --acf-border-subtle: var(--acf-neutral-400);
        --acf-border-default: var(--acf-neutral-400);
        --acf-surface-hover: rgba(255, 255, 255, 0.16);
    }
}

/* --- Reduced transparency -------------------------------------------------
   13 backdrop-filter layers previously ignored this preference. Every blur in
   this sheet reads --acf-blur-*, so zeroing them here removes all of them. */
@media (prefers-reduced-transparency: reduce) {
    body.format-aicourse {
        /* stylelint-disable length-zero-no-unit -- these feed blur(var(--acf-blur-*));
           blur(0px) is unambiguous where a bare 0 is a known cross-browser sharp edge. */
        --acf-blur-sm: 0px;
        --acf-blur-md: 0px;
        --acf-blur-lg: 0px;
        /* stylelint-enable length-zero-no-unit */
        --acf-surface-scrim: rgba(2, 6, 23, 0.92);
        --acf-surface-overlay: var(--acf-surface-raised);
    }
}

/* --- Reduced motion (token half; the animation guard is in section 22) --- */
@media (prefers-reduced-motion: reduce) {
    body.format-aicourse,
    .aicadmin-wrap,
    .aitutor-report-index {
        --acf-duration-instant: 1ms;
        --acf-duration-fast: 1ms;
        --acf-duration-base: 1ms;
        --acf-duration-slow: 1ms;
        --acf-duration-slower: 1ms;
    }
}

/* ==========================================================================
   6. BASE, FOCUS SYSTEM AND SHARED PRIMITIVES
   ========================================================================== */

body.format-aicourse .format-aicourse-container {
    position: relative;
    inline-size: 100%;
    max-inline-size: 100%;
}

/* Section summary rendered by format.php between hero and activity list. */
/* Lead paragraph, not a stray line: it is the only prose between the hero and
   the activity grid, so it gets a lead size and real space around it. Colour is
   unchanged (--acf-text-secondary on the page surface = 7.58:1); the measure is
   capped at 78ch by the shared prose rule in section 7. */
body.format-aicourse .format-aicourse-section-summary {
    margin-block: calc(-1 * var(--acf-space-2)) var(--acf-space-6);
    padding-block: var(--acf-space-2);
    padding-inline: var(--acf-gutter);
    max-inline-size: 78ch;
    font-size: var(--acf-font-size-lg);
    line-height: var(--acf-leading-relaxed);
    color: var(--acf-text-secondary);
}

body.format-aicourse .format-aicourse-section-summary > :last-child {
    margin-block-end: 0;
}

/* --------------------------------------------------------------------------
   FOCUS SYSTEM
   --------------------------------------------------------------------------
   One rule covers every interactive element the plugin renders. There were
   previously ZERO :focus-visible rules and six unreplaced `outline: none`
   declarations, one of which stripped focus from the whole course index.

   `outline` is used where nothing clips it and `box-shadow` where an ancestor
   has `overflow: hidden`; both are listed so the ring is never lost.
   -------------------------------------------------------------------------- */
body.format-aicourse :is(
.aicourse-activity-count, .aicourse-activity-number, .aicourse-completion-toggle,
.aicourse-hero-completion-toggle, .aicourse-hero-nav, .aicourse-hero-home,
.aicourse-hero-grades, .aicourse-hero-back, .aicourse-hero-ai-btn,
.aicourse-icon-picker-item, .aicourse-icon-picker-close,
.aicourse-icon-search-input, .aicourse-ai-quick-btn, .aicourse-ai-send-btn,
.aicourse-ai-rate-btn, .aicourse-ai-chatbox-close, .aicourse-bgen-btn,
.aicourse-bgen-close, .aicourse-tab, .aicourse-rating-btn, .aicourse-correction-btn,
.aicourse-filter-input, .aicourse-filter-select):focus-visible {
    outline: var(--acf-focus-width) solid var(--acf-focus-color);
    outline-offset: var(--acf-focus-offset);
    box-shadow: var(--acf-focus-ring);
    z-index: var(--acf-z-floating);
    position: relative;
}

/* Controls that sit on imagery or on the AI gradient need the inverted halo. */
body.format-aicourse .aicourse-hero-has-image :is(
.aicourse-hero-nav, .aicourse-hero-home, .aicourse-hero-grades, .aicourse-hero-back,
.aicourse-hero-ai-btn, .aicourse-activity-number, .aicourse-hero-completion-toggle):focus-visible,
body.format-aicourse .aicourse-ai-chatbox-close:focus-visible,
body.format-aicourse .aicourse-bgen-close:focus-visible,
body.format-aicourse .aicourse-bgen-btn:focus-visible {
    outline-color: var(--acf-neutral-0);
    box-shadow: var(--acf-focus-ring-media);
}

/* Shared touch-target floor. Applied to every control the plugin owns.
   WCAG 2.2 SC 2.5.8 requires 24px; 44px is the premium bar. */
body.format-aicourse :is(
.aicourse-hero-nav, .aicourse-hero-home, .aicourse-hero-grades, .aicourse-hero-back,
.aicourse-hero-ai-btn, .aicourse-hero-completion-toggle, .aicourse-icon-picker-close,
.aicourse-ai-chatbox-close, .aicourse-ai-send-btn, .aicourse-bgen-close) {
    min-inline-size: var(--acf-target-min);
    min-block-size: var(--acf-target-min);
}

/* ==========================================================================
   7. MOODLE / BOOST COMPATIBILITY LAYER
   --------------------------------------------------------------------------
   The only place in this sheet that touches core markup. Everything here is
   scoped to body.format-aicourse so it can never affect a course using another
   format — the previous sheet leaked `.path-mod .completion-info`,
   `.path-mod [data-region="completion-info"]`,
   `.path-mod .automatic-completion-conditions`, `body.path-mod #region-main`
   and `body.dark-mode` to every page of the site.
   ========================================================================== */

/* --- Themes that force `height: 100vh` on page containers cut the course
   content off. Reset heights without touching the display/flex model.
   `!important` #1-#4: beats the theme's own `height: 100vh` declarations. */
body.format-aicourse #page,
body.format-aicourse #page-content,
body.format-aicourse #region-main,
body.format-aicourse #region-main-box,
body.format-aicourse #topofscroll,
body.format-aicourse .main-inner,
body.format-aicourse .course-content,
body.format-aicourse [role="main"] {
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    block-size: auto !important;
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    min-block-size: 0 !important;
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    max-block-size: none !important;
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    overflow: visible !important;
}

/* The course-index drawer must stay scrollable despite the reset above.
   `!important` #5: re-beats the `overflow: visible !important` on the line above. */
body.format-aicourse .drawer,
body.format-aicourse .drawers .drawer-left,
body.format-aicourse .drawer-content-wrapper,
body.format-aicourse [data-region="fixed-drawer"] {
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    overflow-y: auto !important;
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    overflow-x: hidden !important;
}

/* Sticky footer: page column grows, footer pinned to the bottom.
   `!important` #6-#7: themes set `flex: 0 0 auto` / fixed heights here. */
body.format-aicourse #page-content,
body.format-aicourse #region-main-box,
body.format-aicourse #topofscroll,
body.format-aicourse .main-inner {
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    flex: 1 0 auto !important;
}

body.format-aicourse #page-footer,
body.format-aicourse .footer-bottom {
    flex-shrink: 0;
    margin-block-start: auto;
    inline-size: 100%;
}

/* Course content sits directly beneath the hero. */
body.format-aicourse .course-content {
    padding-block-start: var(--acf-space-2);
}

body.format-aicourse #page-header {
    max-inline-size: none;
    margin-block: 0 var(--acf-space-1);
    padding-block-start: 0;
}

/* --- Clean view -----------------------------------------------------------
   The hero banner already shows the course/section/activity title, so the
   duplicate core heading is hidden for non-editors. `aicourse-clean-view` is
   added by lib.php early (page_set_course) to avoid a flash of the heading.
   `!important` #8: Bootstrap's own display utilities are `!important`. */
body.format-aicourse.aicourse-clean-view:not(.editing):not(.editingon):not(.editing-mode) #page-header h1,
body.format-aicourse:not(.editing):not(.editingon):not(.editing-mode) #page-header h1 {
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    display: none !important;
}

/* Restore the heading in edit mode, and for read-only graders, who get no hero banner
   and would otherwise have no course title at all. ACF-FIX-2.1.4 added
   :not(.aicourse-can-edit) to the grader arm: an editing teacher outside edit mode now
   receives the hero, so restoring the heading for them as well showed the title twice.
   `!important` #9: must beat the rule above, which is itself `!important`. */
body.format-aicourse.editing #page-header h1,
body.format-aicourse.editingon #page-header h1,
body.format-aicourse.editing-mode #page-header h1,
body.format-aicourse.aicourse-is-grader:not(.aicourse-can-edit) #page-header h1 {
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    display: block !important;
}

/* Secondary navigation (Course / Settings / Participants / Grades) must stay
   visible for everyone, on every page type.
   `!important` #10: beats Bootstrap's `.d-none` utility. */
body.format-aicourse .secondary-navigation {
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    display: flex !important;
}

body.format-aicourse:not(.editing):not(.editingon):not(.editing-mode) #page-header {
    margin-block-end: 0;
}

/* --- Activity pages -------------------------------------------------------
   The hero renders the activity icon, title and completion requirements, so
   the core duplicates are hidden — but only for users who actually get a hero.
   `!important` #11-#12: core marks these with display utilities. */
body.format-aicourse.path-mod:not(.aicourse-is-grader) :is(
.activityiconcontainer, #region-main > .activity-icon, .completion-info,
[data-region="completion-info"], .automatic-completion-conditions) {
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    display: none !important;
}

body.format-aicourse.path-mod:not(.aicourse-is-grader) #region-main > a[href*="/mod/"] > img.activityicon,
body.format-aicourse.path-mod:not(.aicourse-is-grader) #region-main-box > a[href*="/mod/"] > img.activityicon {
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    display: none !important;
}

body.format-aicourse .path-mod .activity-header:not(:empty) {
    background-color: transparent;
}

/* Read-only graders (a non-editing teacher, say) get no hero banner, so the page
   heading is restored for them instead -- see the #page-header h1 rules above.

   ACF-FIX-2.1.4: this used to be `.aicourse-is-grader` alone, which is true for EVERY
   teacher, manager and admin. format.php deliberately renders the hero for anyone who
   can edit, so they can reach the "Generate banner" button (FIX-ACF-EDITOR-HERO,
   v1.7.68) -- so the banner was rendered on the server and then hidden again here, for
   every editing user, both in and out of edit mode. Scoping with :not(.aicourse-can-edit)
   makes this rule the exact complement of the PHP condition rather than a contradiction
   of it.

   `!important` #13: beats the `display: none !important` above. */
body.format-aicourse.aicourse-is-grader:not(.aicourse-can-edit) .aicourse-hero-sticky-wrap {
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    display: none !important;
}

/* --- Card view / activity card view ---------------------------------------
   Hide the traditional section/activity list, never the container that holds
   the cards. `!important` #14-#15: core section markup carries `.d-block`. */
/* ACF-FIX-2.0: `.section-summary` and `.course-section` are deliberately matched only as
   DIRECT children of `.course-content`. Previously they were unscoped, so they also matched
   the core section markup that the General (section 0) block renders inside its own wrapper
   in edit mode and in "standard activity display" mode — silently blanking it. That was the
   same failure the original General-section bug produced, reintroduced from the stylesheet.
   Core always emits sections inside `[data-for="course_sectionlist"]` (already listed), so
   the direct-child scope loses no coverage.

   ACF-FIX-2.1: the card grid now carries `data-for="course_sectionlist"` itself, so that
   core_courseformat's reactive state manager can find it. The `:not(.acf-grid)`
   guard (2.5.0; previously `.aicourse-cards-grid`) keeps this rule pointed at CORE's list and stops it hiding our own grid —
   without it the entire card layout computes to `display: none`. */
body.format-aicourse.aicourse-cardview :is(
.course-content > ul.aicourse, .course-content > ul.topics, .course-content > ul.sections,
.course-content > .topics, .course-content > .sections, [data-for="course_sectionlist"]:not(.acf-grid),
.course-content > .section-summary, .course-content > .course-section) {
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    display: none !important;
}

body.format-aicourse.aicourse-activitycards :is(
.course-content > ul.aicourse, .course-content > ul.topics, .course-content > ul.sections,
[data-for="course_sectionlist"]:not(.acf-grid), .course-content > .section-summary,
.course-content > .course-section) {
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    display: none !important;
}

/* ACF-FIX-2.0: The General (section 0) block deliberately renders core's own section
   output in edit mode and in "standard activity display" mode, so teachers keep drag
   handles, action menus and "Add an activity or resource". The two blanket hide rules
   above match `.course-section` anywhere on the page, which silently blanked that
   content — the same class of defect as the original General-section bug. Re-assert
   display for core markup that lives *inside* our own General wrapper.
   `!important` #14b: must beat the `display: none !important` directly above. */
body.format-aicourse .aicourse-general-section .course-section {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Core emits the section as a bare <li>; without a list ancestor it needs the reset. */
body.format-aicourse .aicourse-general-section > .course-section {
    margin-block-end: var(--acf-space-4);
}

/* --- Hidden course index --------------------------------------------------
   Driven by the `showcourseindex` bitmask; always restored in edit mode.
   `!important` #16-#18: Boost sets the drawer width from a CSS variable and
   marks the drawer with display utilities. */
body.format-aicourse.aicourse-hideindex:not(.editing):not(.editingon):not(.editing-mode) :is(
.courseindex, [data-region="courseindex"], [data-region="course-index"], #courseindex,
#theme_boost-drawers-courseindex) {
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    display: none !important;
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    inline-size: 0 !important;
}

body.format-aicourse.aicourse-hideindex:not(.editing):not(.editingon):not(.editing-mode) {
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    --drawer-left-width: 0 !important; /* Boost-owned variable; scoped to this state only */
}

body.format-aicourse.aicourse-hideindex:not(.editing):not(.editingon):not(.editing-mode) :is(#page.drawers, .drawers) {
    margin-inline-start: 0;
    padding-inline-start: 0;
}

body.format-aicourse.aicourse-hideindex:not(.editing):not(.editingon):not(.editing-mode)
:is(#page-content, .main-inner, #region-main-box, #region-main) {
    margin-inline: auto;
    max-inline-size: var(--acf-container-max);
}

body.format-aicourse.aicourse-hideindex:not(.editing):not(.editingon):not(.editing-mode)
:is(.aicourse-cards-container, .aicourse-activity-cards-container, .format-aicourse-container) {
    max-inline-size: var(--acf-container-max);
    margin-inline: auto;
    padding-inline: var(--acf-gutter);
}

/* --- Content width --------------------------------------------------------
   ACF-FIX-2.0: Boost caps the content region at $course-content-maxwidth (830px)
   via `body.limitedwidth #page.drawers .main-inner`. That measure is tuned for a
   single column of prose; it squeezes a responsive card grid down to two columns
   on a 1600px display and is the main reason the format read as cramped.
   This format is a dashboard, not an article, so it opts into a wider measure.
   Specificity (1,4,1) beats Boost's (1,3,1) — no `!important` needed. Prose blocks
   are separately capped to a readable line length below, so widening the shell
   does not produce 200-character lines. */
body.format-aicourse:is(.limitedwidth, .mediumwidth, .pagelayout-standard) #page.drawers .main-inner,
body.format-aicourse #page.drawers .main-inner {
    max-inline-size: var(--acf-container-max);
}

/* Keep long-form text at a comfortable measure even though the shell is wide.
   `ch` is relative to the current font, so this tracks the theme's type scale. */
body.format-aicourse :is(.aicourse-general-summary, .format-aicourse-section-summary) > * {
    max-inline-size: 78ch;
}

body.format-aicourse .aicourse-activity-content > * {
    max-inline-size: 78ch;
}

/* Media and tables inside prose are exempt — they should use the full width. */
/* stylelint-disable-next-line max-line-length -- cannot be wrapped: Moodle's
   selector-combinator-space-before forbids a newline before the ">" combinator. */
body.format-aicourse :is(.aicourse-general-summary, .format-aicourse-section-summary, .aicourse-activity-content) > :is(img, video, iframe, table, figure, .mediaplugin, .table-responsive) {
    max-inline-size: 100%;
}

/* --- Core section list, when the format falls back to it ------------------ */
body.format-aicourse :is(.section-item, ul.section, .course-content .section, .activity-grid) {
    padding-inline-start: 0;
    margin-inline-start: 0;
}

body.format-aicourse .course-section-header {
    padding-inline-start: var(--acf-space-3);
    margin-inline-start: 0;
}

body.format-aicourse .activity-grid {
    align-items: center;
}

body.format-aicourse :is(.activity-icon, .activity-completion) {
    align-self: center;
}

body.format-aicourse .activityname a {
    font-size: var(--acf-font-size-md);
}

body.format-aicourse :is(.sectionname, .sectionname a, h3.sectionname, .course-section-header h3) {
    color: var(--acf-text-brand);
    font-size: var(--acf-font-size-base);
    font-weight: var(--acf-weight-semibold);
    padding-inline-start: 0;
    margin-inline-start: 0;
}

/* Collapse chevron in the main content area. */
body.format-aicourse .icons-collapse-expand {
    inline-size: var(--acf-target-min);
    block-size: var(--acf-target-min);
    min-inline-size: var(--acf-target-min);
    border-radius: var(--acf-radius-full);
    border: 1px solid var(--acf-border-default);
    background: var(--acf-surface-sunken);
    color: var(--acf-text-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-sizing: border-box;
    cursor: pointer;
    transition:
        background var(--acf-duration-fast) var(--acf-ease-standard),
        border-color var(--acf-duration-fast) var(--acf-ease-standard);
}

body.format-aicourse .icons-collapse-expand:hover {
    background: var(--acf-surface-hover);
    border-color: var(--acf-border-strong);
}

body.format-aicourse .icons-collapse-expand:focus-visible {
    outline: var(--acf-focus-width) solid var(--acf-focus-color);
    outline-offset: var(--acf-focus-offset);
}

/* Guidance alert rendered by lib.php with role="note". */
body.format-aicourse .aicourse-banner-guidance {
    margin-block: var(--acf-space-3);
    padding: var(--acf-space-3) var(--acf-space-4);
    border: 1px solid var(--acf-status-info-fg);
    border-inline-start-width: 3px;
    border-radius: var(--acf-radius-md);
    background: var(--acf-status-info-bg);
    color: var(--acf-text-primary);
    font-size: var(--acf-font-size-md);
    line-height: var(--acf-leading-normal);
}

/* ==========================================================================
   8. HERO BANNER
   --------------------------------------------------------------------------
   Three variants share one shell:
     • course home      title + progress ring + progress bar
     • section page     title + progress ring + numbered activity circles
     • activity page    section label + title + completion ring + requirements
   Two modes: gradient (no course image) and image (cinematic).
   ========================================================================== */

body.format-aicourse .aicourse-hero-sticky-wrap {
    position: relative;
    z-index: var(--acf-z-raised);
    display: block;
    margin-inline: auto;
}

/* ACF-FIX-2.1.106: square corners on the banner, in both its modes.
   The rounded corners read as a card floating on the page; square reads as a header belonging to
   it, which is the shape a dedicated player has. Both the plain and the image mode are set, or the
   two would disagree depending on whether a course had a banner image. */
body.format-aicourse .aicourse-hero-banner {
    position: relative;
    display: flex;
    align-items: center;
    inline-size: 100%;
    /* ACF-FIX-2.0: the teacher's `herobannerheight` setting arrives as --acf-hero-h (an inline
       custom property written by lib.php) and acts as a FLOOR, not a cap. It previously arrived
       as an inline `max-height`, which clipped wrapped titles and the numbered activity circles
       — so the stylesheet had to neutralise it, making the setting inert at every value. */
    /* ACF-FIX-2.1.26: --acf-hero-h is gone with the "Hero banner height" setting; the
       banner's floor is the token alone and it grows from there to fit its content. */
    min-block-size: var(--acf-topblock);
    box-sizing: border-box;
    border: 1px solid var(--acf-hero-border);
    background: var(--acf-hero-wash);
    box-shadow: var(--acf-elevation-2);
    overflow: hidden;
    isolation: isolate;
    /* Only composited properties are transitioned. The previous sheet
       transitioned `min-height`, which reflowed the whole page on scroll. */
    transition:
        box-shadow var(--acf-duration-base) var(--acf-ease-standard),
        border-color var(--acf-duration-base) var(--acf-ease-standard);
}

/* ACF-FIX-2.0: the inline `max-height` this rule existed to neutralise is gone — lib.php now
   emits --acf-hero-h and the banner treats it as a floor (see min-block-size above). One
   `!important` removed. Older sites may still have a cached page carrying the old inline
   style, so the cap is explicitly cleared for one release. */
body.format-aicourse .aicourse-hero-banner {
    max-block-size: none;
}

/* --- Hero meta row --------------------------------------------------------
   ACF-FIX-2.0: the gradient hero previously held only a title and a progress ring, leaving a
   wide empty band between them at desktop widths. This row ("5 modules · 32 activities · 4 hr 30 min") gives the hero something to say and anchors the title block. Separators are drawn
   with ::before so they are never read aloud by a screen reader and never copied with the text. */
body.format-aicourse .aicourse-hero-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0 var(--acf-space-3);
    margin: var(--acf-space-2) 0 0;
    padding: 0;
    color: var(--acf-text-secondary);          /* 6.05:1 on --acf-surface-raised */
    font-size: var(--acf-font-size-md);
    font-weight: var(--acf-weight-medium);
    line-height: var(--acf-leading-snug);
}

body.format-aicourse .aicourse-hero-meta > span {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}

body.format-aicourse .aicourse-hero-meta > span + span::before {
    content: "";
    inline-size: 3px;
    block-size: 3px;
    margin-inline-end: var(--acf-space-3);
    border-radius: var(--acf-radius-full);
    background: currentColor;
    opacity: 0.55;
}

/* Over a background image the meta row sits on the scrim, not on the surface. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-meta {
    color: var(--acf-text-on-media);
    text-shadow: var(--acf-media-text-shadow);
}

@media (max-width: 640px) {
    body.format-aicourse .aicourse-hero-meta {
        font-size: var(--acf-font-size-sm);
        gap: 0 var(--acf-space-2);
    }

    body.format-aicourse .aicourse-hero-meta > span + span::before {
        margin-inline-end: var(--acf-space-2);
    }
}

/* Decorative bloom behind the progress ring — gives the gradient banner a
   focal point on the inline-end side instead of a flat wash. Sits at
   --acf-z-base, below .aicourse-hero-content (--acf-z-content), so it can never
   affect the contrast of anything readable. Mirrored in RTL below. */
body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image)::after {
    position: absolute;
    inset: 0;
    z-index: var(--acf-z-base);
    border-radius: inherit;
    background: var(--acf-hero-glow);
    pointer-events: none;
}

[dir="rtl"] body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image)::after {
    transform: scaleX(-1);
}

body.format-aicourse.scrolled .aicourse-hero-banner {
    box-shadow: var(--acf-elevation-3);
}

/* --- Image mode ---------------------------------------------------------- */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image {
    min-block-size: var(--acf-topblock);
    align-items: stretch;
    border: none;
    border-radius: 0;
    background: var(--acf-neutral-900);
    box-shadow: var(--acf-elevation-4);
}

body.format-aicourse .aicourse-hero-bg-img {
    position: absolute;
    inset: 0;
    z-index: var(--acf-z-base);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-radius: inherit;
    transition: transform var(--acf-duration-slower) var(--acf-ease-out);
}

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image:hover .aicourse-hero-bg-img,
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image:focus-within .aicourse-hero-bg-img {
    transform: scale(1.04);
}

/* Gradient mode has no scrim. */
body.format-aicourse .aicourse-hero-overlay {
    display: none;
}

/* --- The scrim -----------------------------------------------------------
   CONTRAST-CRITICAL. The previous scrim reached 0.52 alpha behind the text
   band, which gives white text only 4.40:1 over a white/pastel image — and the
   "Generate AI Banner" feature produces exactly those images.
   White (#fff) over black at alpha a on a pure-white photo:
        a = 0.52 -> 4.40:1   (fails AA for body text)
        a = 0.62 -> 6.20:1   (passes AA comfortably)
   The bottom stop is therefore 0.62 where the summary sits and 0.88 at the
   very bottom. Worst case across every possible image is 6.20:1.
   The inline-start wash is a logical-property gradient so it follows the text
   in RTL instead of darkening the wrong edge. */
/* z-index: the scrim MUST sit between the photo and the text. It was on
   --acf-z-overlay-art (3), which is ABOVE --acf-z-content (2) — so the scrim was
   painting on top of the hero title, summary and progress label and dimming
   them instead of backing them. (With the old near-transparent top stop the
   symptom was subtle; it is not subtle at any usable scrim strength.) Order is
   now photo 0 -> scrim 1 -> content 2 -> icon pill 10. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-overlay {
    position: absolute;
    inset: 0;
    display: block;
    z-index: var(--acf-z-raised);
    border-radius: inherit;
}

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-overlay::before {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background:
        linear-gradient(
            to right,
            rgba(2, 6, 23, 0.45) 0%,
            rgba(2, 6, 23, 0.14) 42%,
            rgba(2, 6, 23, 0.00) 70%
        );
}

[dir="rtl"] body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-overlay::before {
    background:
        linear-gradient(
            to left,
            rgba(2, 6, 23, 0.45) 0%,
            rgba(2, 6, 23, 0.14) 42%,
            rgba(2, 6, 23, 0.00) 70%
        );
}

/* --- Content row ---------------------------------------------------------
   The old rule was `flex-wrap: nowrap` with a ~236px nav-progress block and up
   to five 40px non-shrinking buttons — a 436px minimum inside a 320px phone.
   The overflow was masked by `overflow-x: hidden` on <body>, which made the
   AI-tutor and generate-banner buttons permanently unreachable. It now wraps. */
body.format-aicourse .aicourse-hero-content {
    position: relative;
    z-index: var(--acf-z-content);
    inline-size: 100%;
    min-inline-size: 0;
    box-sizing: border-box;
    /* Was 12px block padding, which is what made a 180px banner render as an
       80px strip. The block padding now scales with the banner so the title,
       the ring and the actions each get real breathing room. */
    padding: clamp(var(--acf-space-4), 2.2vw, var(--acf-space-6)) var(--acf-space-6);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--acf-space-3) var(--acf-space-5);
}

/* Image mode lays the content out as a COLUMN, so the title block's flex-basis
   would be read as a block size — 16rem of forced height. It hugs its content
   there and the column's `justify-content: flex-end` does the positioning. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image :is(.aicourse-hero-title-group, .aicourse-hero-title-wrap) {
    flex: 0 0 auto;
}

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-content {
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: flex-end;
    align-items: flex-start;
    min-block-size: inherit;
    gap: var(--acf-space-2);
    padding: var(--acf-space-6) var(--acf-gutter) var(--acf-space-7);
    /* stylelint-disable-next-line time-min-milliseconds --
       80ms here is the animation DELAY, not its duration; the rule targets durations. */
    animation: acf-hero-enter var(--acf-duration-slower) var(--acf-ease-out) 80ms both;
}

body.format-aicourse .aicourse-hero-title-group,
body.format-aicourse .aicourse-hero-title-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    /* Grows into the space the centred progress block used to waste. */
    flex: 1 1 16rem;
    min-inline-size: 0;
    gap: var(--acf-space-1);
}

body.format-aicourse .aicourse-hero-title-wrap {
    inline-size: 100%;
}

body.format-aicourse .aicourse-hero-title {
    margin: 0;
    font-size: var(--acf-font-size-hero);
    font-weight: var(--acf-weight-bold);
    line-height: var(--acf-leading-tight);
    letter-spacing: var(--acf-tracking-tight);
    color: var(--acf-text-primary);
    /* Two-line clamp instead of a single ellipsised line: long course names
       are readable on a phone rather than truncated at the first word. */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    overflow-wrap: anywhere;
}

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-title {
    /* ACF-FIX-2.1.188: the shared heading size -- see --acf-hero-heading. */
    font-size: var(--acf-hero-heading);
    font-weight: var(--acf-weight-bold);
    color: var(--acf-text-on-media);
    max-inline-size: 46rem;
    /* Shadow is depth, not a contrast crutch — the 0.62 scrim already carries
       the ratio. Kept subtle so it never muddies the glyphs. */
    text-shadow: var(--acf-media-text-shadow);
}

/* ACF-FIX-2.1.189: the course-name line on an activity banner is 15px, not 11px.
   This is the element that was being reported as "the activity heading is too small" -- not
   `.aicourse-hero-title`, which is the activity's own name and was already correct. Four rounds
   were spent resizing the wrong element because the complaint says "heading" and this line looks
   like one: on a SECTION page the same course name is the 24px heading, and on an ACTIVITY page it
   was rendering at 11px, uppercase, with wide tracking. Reading the same string at 24px on one
   page and 11px on the next is the inconsistency that was actually being described.
   15px keeps it clearly subordinate to the 24px title above the fold -- it is still an eyebrow,
   not a second heading -- while being legible. Tracking comes in a step too: `wider` is tuned for
   an 11px label, and at 15px it reads as spaced-out rather than as small caps. */
body.format-aicourse .aicourse-hero-section-label {
    font-size: var(--acf-hero-eyebrow);
    font-weight: var(--acf-weight-semibold);
    line-height: var(--acf-leading-snug);
    text-transform: uppercase;
    letter-spacing: var(--acf-tracking-wide);
    /* Was brand @ opacity .55 = 2.89:1. Full-opacity secondary = 7.23:1. */
    color: var(--acf-text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-inline-size: 100%;
}

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-section-label {
    color: var(--acf-text-on-media);
    text-shadow: var(--acf-media-text-shadow);
}

body.format-aicourse .aicourse-hero-summary {
    margin: 0;
    max-inline-size: 44rem;
    /* Was rgba(255,255,255,.80) = 3.38:1 on a bright image. Solid white on the
       0.62 scrim = 6.20:1 worst case. */
    color: var(--acf-text-on-media);
    font-size: var(--acf-font-size-md);
    font-weight: var(--acf-weight-regular);
    line-height: var(--acf-leading-normal);
    text-shadow: var(--acf-media-text-shadow);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* --- Nav + progress row ---------------------------------------------------
   Was `flex: 1 1 auto` + `justify-content: center`: the block absorbed every
   spare pixel and then centred a 44px ring inside it, which is exactly what
   produced the dead horizontal band between the title and the ring. It now
   hugs its content and parks against the action cluster on the inline-end
   side, so the ring and the buttons read as one right-hand group. */
body.format-aicourse .aicourse-hero-nav-progress {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--acf-space-3);
    flex: 0 1 auto;
    min-inline-size: 0;
}

/* The spacers exist only to keep a CENTRED circle row balanced when one of the
   prev/next chevrons is absent. Right-aligned, they are 44px of dead space. */
body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image) .aicourse-hero-nav-spacer {
    display: none;
}

/* A hairline rule earns the gap between the progress group and the actions,
   instead of leaving it as unexplained emptiness. Only drawn when both exist. */
body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image)
.aicourse-hero-nav-progress + .aicourse-hero-icons {
    padding-inline-start: var(--acf-space-5);
    border-inline-start: 1px solid var(--acf-border-subtle);
}

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-nav-progress {
    inline-size: 100%;
    justify-content: flex-start;
    flex: 0 0 auto;
}

/* --- Hero controls: nav chevrons, home, grades, back, AI -------------------
   All were 34-40px (below the 44px bar, and below it on mobile specifically —
   the previous sheet grew them to 44px only at >=992px, exactly backwards).
   The visual chip stays 40px; the hit area is 44px. */
body.format-aicourse :is(.aicourse-hero-nav, .aicourse-hero-home, .aicourse-hero-grades, .aicourse-hero-back) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* ACF-FIX-2.1.184: border-box, so 44 means 44.
       These four carry `border: 1px solid transparent` (the resting state of their focus ring) and
       were sizing content-box, so they measured 46x46. The AI button beside them declares
       `border: none` and measured 44x44 -- a 2px difference between neighbours in the same row,
       produced by a border nobody can see. */
    box-sizing: border-box;
    inline-size: var(--acf-target-min);
    block-size: var(--acf-target-min);
    flex-shrink: 0;
    padding: 0;
    border: 1px solid transparent;
    border-radius: var(--acf-radius-md);
    background: transparent;
    color: var(--acf-text-secondary);
    text-decoration: none;
    cursor: pointer;
    transition:
        background var(--acf-duration-fast) var(--acf-ease-standard),
        color var(--acf-duration-fast) var(--acf-ease-standard),
        transform var(--acf-duration-fast) var(--acf-ease-spring);
}

body.format-aicourse :is(.aicourse-hero-nav, .aicourse-hero-home, .aicourse-hero-grades, .aicourse-hero-back):hover {
    background: var(--acf-surface-hover);
    color: var(--acf-text-primary);
    text-decoration: none;
}

body.format-aicourse :is(.aicourse-hero-nav, .aicourse-hero-home, .aicourse-hero-grades, .aicourse-hero-back):active {
    background: var(--acf-surface-active);
    transform: scale(0.94);
}

body.format-aicourse :is(.aicourse-hero-nav, .aicourse-hero-home, .aicourse-hero-grades, .aicourse-hero-back) svg {
    inline-size: var(--acf-icon-lg);
    block-size: var(--acf-icon-lg);
    stroke: currentColor;
    flex-shrink: 0;
}

/* Directional affordance: prev/next mirror in RTL. */
[dir="rtl"] body.format-aicourse :is(.aicourse-hero-nav-prev, .aicourse-hero-nav-next) svg,
[dir="rtl"] body.format-aicourse .aicourse-hero-back svg {
    transform: scaleX(-1);
}

body.format-aicourse .aicourse-hero-nav-spacer {
    inline-size: var(--acf-target-min);
    block-size: var(--acf-target-min);
    flex-shrink: 0;
    pointer-events: none;
}

/* --- Image-mode controls: frosted glass pill, WCAG-safe -------------------
   Old: rgba(0,0,0,0.30) pill + rgba(255,255,255,0.88) glyphs = 1.96:1 over a
   bright photo. New: 0.62 fill + solid white glyphs = 6.20:1 worst case. */
/* ACF-FIX-2.1.15: the icon pill is absolutely positioned over the top-right of the banner while
   .aicourse-hero-title is inline-size: 100%, so nothing reserved space for it. Measured across
   seven viewports the two boxes overlapped by 198px horizontally at EVERY width. On desktop the
   course name is usually short enough that the text never visually reaches the pill, which is why
   it went unnoticed; on a phone the title wraps to the full width and runs straight underneath
   it. The title now reserves the pill's width on its first lines, and below 600px -- where
   reserving ~200px of a 320px banner would leave nothing for the title -- the pill stops being
   absolute and takes its own row. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-icons {
    position: absolute;
    inset-block-start: var(--acf-space-3);
    inset-inline-end: var(--acf-gutter);
    z-index: var(--acf-z-floating);
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: var(--acf-space-1);
    max-inline-size: calc(100% - (2 * var(--acf-gutter)));
    padding: var(--acf-space-1);
    border: 1px solid var(--acf-border-media);
    border-radius: var(--acf-radius-lg);
    background: var(--acf-media-scrim-strong);
    backdrop-filter: blur(var(--acf-blur-md));
    -webkit-backdrop-filter: blur(var(--acf-blur-md));
    box-shadow: var(--acf-elevation-2);
}

/* Below 600px there is not enough width to reserve for the pill, so it leaves the corner and
   flows as a normal row under the hero content instead of sitting on top of the title. */
@media (max-width: 599px) {
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-icons {
        justify-content: flex-start;
        margin-block-start: var(--acf-space-3);
    }
}

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-icons :is(a, button) {
    color: var(--acf-text-on-media);
    border-color: transparent;
    background: transparent;
}

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-icons :is(a, button):hover {
    background: var(--acf-media-hover);
    color: var(--acf-text-on-media);
}

/* ACF-FIX-2.1.184: the 22px glyph applies to BOTH ends of the banner, not just the left one.
   This rule was scoped to `.aicourse-hero-icons`, which is the LEFT cluster only. The chevron at
   the inline-end lives in `.aicourse-hero-nav-progress`, so it kept the 24px default and every
   icon on the right rendered 2px larger than every icon on the left -- on the same row, a few
   hundred pixels apart, which is exactly where a 2px difference is visible.

   Reported twice. The first fix matched the CONTAINERS (both 46px) and the boxes did agree; what
   was never compared was what is drawn inside them. Measured from the browser's own matched-rules
   rather than read out of the sheet, which is how the second one was found in a single pass.

   Scoped to the icon BUTTONS by name rather than to "any svg in these containers". The first
   attempt at this widened the container list and excluded only `.aicourse-completion-ring` -- and
   `.aicourse-hero-nav-progress` also holds the COURSE banner's progress ring, so that version
   crushed a 58px progress ring to 22px on every course and section page. Caught by re-measuring
   the course hero rather than only the activity hero it was written for.

   Naming the buttons cannot do that: an indicator is not in the list, so it cannot be caught by
   it, whatever container a future template puts it in. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image
:is(.aicourse-hero-nav, .aicourse-hero-home, .aicourse-hero-grades, .aicourse-hero-back,
.aicourse-hero-ai-btn, .aicourse-hero-completion-toggle) svg:not(.aicourse-completion-ring) {
    inline-size: 22px;
    block-size: 22px;
}

/* ACF-FIX-2.1.184c: `:not(.aicourse-completion-ring)` above is load-bearing, not belt-and-braces.
   On a manual-completion activity the template wraps the ring in the toggle BUTTON --
   `.aicourse-hero-completion-toggle > .aicourse-completion-ring-container > svg` -- so naming the
   buttons is not enough on its own: one of them contains an indicator. Without the exclusion the
   36px ring rendered at 22px on every manual-completion activity.
   Third time in this change that widening a selector caught an indicator that only looked like an
   icon. The exclusion is by the indicator's own class, so it holds wherever a template puts it. */

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-nav:hover {
    transform: scale(1.06);
}

/* --- Icon cluster (gradient mode) ----------------------------------------- */
body.format-aicourse .aicourse-hero-icons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--acf-space-1);
    flex: 0 1 auto;
}

/* --- AI assistant button -------------------------------------------------- */
body.format-aicourse .aicourse-hero-ai-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* Same box model as the four icon links beside it -- see the note there. */
    box-sizing: border-box;
    inline-size: var(--acf-target-min);
    block-size: var(--acf-target-min);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--acf-radius-md);
    background: var(--acf-ai-gradient);
    color: var(--acf-text-inverse);
    cursor: pointer;
    overflow: hidden;
    box-shadow: var(--acf-elevation-2);
    transition:
        transform var(--acf-duration-fast) var(--acf-ease-spring),
        box-shadow var(--acf-duration-fast) var(--acf-ease-standard),
        filter var(--acf-duration-fast) var(--acf-ease-standard);
}

body.format-aicourse .aicourse-hero-ai-btn::before {
    content: "";
    position: absolute;
    inset: -50%;
    background:
        linear-gradient(
            45deg,
            transparent 40%,
            var(--acf-media-hover) 50%,
            transparent 60%
        );
    animation: acf-shine 3.6s var(--acf-ease-standard) infinite;
    pointer-events: none;
}

body.format-aicourse .aicourse-hero-ai-btn:hover {
    filter: brightness(1.08);
    transform: scale(1.04);
    box-shadow: var(--acf-elevation-3);
}

body.format-aicourse .aicourse-hero-ai-btn:active {
    transform: scale(0.96);
}

body.format-aicourse .aicourse-hero-ai-btn[aria-expanded="true"] {
    filter: brightness(0.9);
    box-shadow: var(--acf-elevation-3), inset 0 0 0 2px var(--acf-media-line);
}

body.format-aicourse .aicourse-hero-ai-btn svg {
    position: relative;
    z-index: var(--acf-z-raised);
    inline-size: 22px;
    block-size: 22px;
    stroke: currentColor;
    fill: none;
}

body.format-aicourse .aicourse-hero-ai-btn.aicourse-ai-delete-banner {
    background: var(--acf-status-danger-solid);
}

body.format-aicourse .aicourse-hero-ai-btn.aicourse-ai-delete-banner::before {
    display: none;
}

/* ==========================================================================
   9. PROGRESS RING, PROGRESS BAR, ACTIVITY NUMBERS
   --------------------------------------------------------------------------
   lib.php writes presentation attributes on the SVG circles
   (stroke="rgb(0 0 0 / .1)" / stroke="#357a32"). Presentation attributes have
   LOWER priority than any CSS declaration, so the rules below override them
   with no `!important` at all — the previous sheet used `!important` here
   unnecessarily.
   ========================================================================== */

body.format-aicourse .aicourse-hero-progress {
    display: flex;
    align-items: center;
    gap: var(--acf-space-3);
    flex-shrink: 0;
    min-inline-size: 0;
    padding: 0;
    border: none;
    background: transparent;
}

/* The linear bar duplicates the ring and, because .aicourse-progress-bar-track
   is `inline-size: 100%`, it contributed ZERO max-content width inside the
   shrink-to-fit progress cluster — it has been rendering at 0px in gradient
   mode all along. The track is `aria-hidden="true"` in lib.php and the ring
   carries role="progressbar", so nothing accessible is lost by making that
   explicit; the ring is now the single, much larger anchor.
   ONLY the track: on a SECTION page lib.php puts the numbered activity circles
   inside .aicourse-progress-bar-container, so hiding the container would blank
   the section navigator. Image mode, where the cluster is a full-width column
   and the bar does render, is untouched. */
body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image)
.aicourse-hero-progress .aicourse-progress-bar-track {
    display: none;
}

/* ACF-FIX-2.1.13: one row, not a column.
   The column stacked the ring above the bar and left-packed the pair, so on a wide banner the
   ring floated alone at the left, the bar sat orphaned beneath it capped at 22rem, and the
   remaining ~60% of the banner was empty. Laying them along a single row lets the bar consume
   the free width, which is what makes the cluster read as one control instead of two strays.
   Gradient mode is unaffected: it hides the bar entirely (see the rule above) because there the
   ring alone is the anchor. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-progress {
    flex-direction: row;
    align-items: center;
    gap: var(--acf-space-3);
    flex: 1 1 auto;
    min-inline-size: 0;
    padding: 0;
    border: none;
    background: transparent;
    text-align: start;
}

/* Image mode stacks the progress cluster as a COLUMN, where `flex: 1 1 8rem`
   is read as a BLOCK size: the bar container was reserving 128px of height for
   a track that measured 0px wide (its `inline-size: 100%` contributes nothing
   to a shrink-to-fit column). Every image banner was therefore ~128px taller
   than its content, and on a section page the numbered circles inside it were
   pushed into that void. Basis auto + a stretched cross size gives the bar its
   width back and the banner its real height. */
/* ACF-FIX-2.1.13: the bar now takes the width the row leaves it rather than being pinned to a
   22rem block. max-inline-size keeps it from stretching absurdly wide on an ultrawide banner. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-progress-bar-container {
    flex: 1 1 auto;
    inline-size: auto;
    min-inline-size: 0;
    max-inline-size: 34rem;
}

/* ACF-FIX-2.1.13: was flex-start, which made sense when the ring sat atop a column. On a row it
   left the ring riding high against the bar's centreline. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-progress-ring-container {
    align-self: center;
}

/* --- Ring ---------------------------------------------------------------- */
body.format-aicourse .aicourse-progress-ring-container {
    position: relative;
    inline-size: var(--acf-ring-inline);   /* 44px — the inline/list-context ring */
    block-size: var(--acf-ring-inline);
    flex-shrink: 0;
    border-radius: var(--acf-radius-full);
}

/* Hero ring, gradient mode: the anchor of the banner's inline-end side.
   The SVG is `viewBox="0 0 200 200"` with r=90 / stroke-width=12, so it scales
   proportionally — at 84px the stroke resolves to ~5px, which is a deliberate
   weight rather than the hairline it was at 44px. */
body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image) .aicourse-progress-ring-container {
    inline-size: var(--acf-hero-ring);
    block-size: var(--acf-hero-ring);
}

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-progress-ring-container {
    inline-size: var(--acf-hero-ring-image);
    block-size: var(--acf-hero-ring-image);
}

body.format-aicourse .aicourse-progress-ring {
    position: absolute;
    inset: 0;
    inline-size: 100%;
    block-size: 100%;
    z-index: var(--acf-z-raised);
    shape-rendering: geometricPrecision;
}

body.format-aicourse .aicourse-progress-ring-bg {
    stroke: var(--acf-track);
}

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-progress-ring-bg {
    stroke: var(--acf-track-media);
}

body.format-aicourse .aicourse-progress-ring-fill {
    stroke: var(--acf-status-done-line);   /* 3.30:1 on white, 6.42:1 on dark */
    transition: stroke-dashoffset var(--acf-duration-slower) var(--acf-ease-out);
}

body.format-aicourse .aicourse-progress-ring-text {
    position: absolute;
    inset-block-start: 50%;
    inset-inline-start: 50%;
    transform: translate(-50%, -50%);
    z-index: var(--acf-z-content);
    /* Was 8px (and 7px when complete) — below any legible floor. */
    font-size: var(--acf-font-size-2xs);
    font-weight: var(--acf-weight-bold);
    line-height: var(--acf-leading-none);
    letter-spacing: var(--acf-tracking-tight);
    font-variant-numeric: tabular-nums;
    color: var(--acf-text-primary);
    white-space: nowrap;
}

[dir="rtl"] body.format-aicourse .aicourse-progress-ring-text {
    transform: translate(50%, -50%);
}

/* The hero ring stretches to fill instead of being translated, in both
   directions, so RTL must not re-apply the translate either. */
[dir="rtl"] body.format-aicourse .aicourse-hero-banner .aicourse-progress-ring-text {
    transform: none;
}

/* The label scales with the ring. At 56-84px a 11px numeral read as an
   afterthought; 15-20px reads as a figure. Contrast is unchanged — the same
   --acf-text-primary on the same hero wash (12.45:1 light / 10.15:1 dark) —
   and larger type only ever improves legibility. */
body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image) .aicourse-progress-ring-text {
    font-size: clamp(0.9375rem, 0.72rem + 1vw, 1.25rem);   /* 15 -> 20px */
    letter-spacing: var(--acf-tracking-normal);
}

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-progress-ring-text {
    /* The FLOOR for this element lives in section 15's rule, which outranks this one. See the
       ACF-FIX-2.1.162 note there before changing the size here. */
    font-size: var(--acf-font-size-base);
    color: var(--acf-text-on-media);
    text-shadow: var(--acf-media-text-shadow);
}

/* Completed, in the hero. The shared treatment is a solid disc, which at the
   old 44px was a neat little badge but at 56-84px became a green blob that
   broke the geometric rhythm with the 43%-style ring beside it on other pages.
   In the hero the ring stays drawn (the SVG already renders a full circle at
   100%) and the tick sits inside it, so "in progress" and "complete" are the
   same shape. `em` sizing means the tick tracks the ring's own type scale.
   Tick colour: --acf-status-done-fg on the hero wash = 6.07:1 light,
   7.92:1 dark. Both clear AA for non-text contrast and for text. */
body.format-aicourse .aicourse-hero-banner .aicourse-progress-ring-container.completed {
    background: transparent;
    box-shadow: none;
}

body.format-aicourse .aicourse-hero-banner .aicourse-progress-ring-container.completed .aicourse-progress-ring {
    display: block;
}

body.format-aicourse .aicourse-hero-banner .aicourse-progress-complete {
    color: var(--acf-status-done-fg);
}

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-progress-complete {
    color: var(--acf-text-on-media);
}

body.format-aicourse .aicourse-hero-banner .aicourse-progress-complete svg {
    inline-size: 1.75em;
    block-size: 1.75em;
}

/* Complete: solid disc + tick. White on --acf-status-done-solid = 5.01:1. */
body.format-aicourse .aicourse-progress-ring-container.completed {
    background: var(--acf-status-done-solid);
    border-radius: var(--acf-radius-full);
    box-shadow: 0 0 0 2px var(--acf-status-done-solid);
}

body.format-aicourse .aicourse-progress-ring-container.completed .aicourse-progress-ring {
    display: none;
}

body.format-aicourse .aicourse-progress-ring-container.completed .aicourse-progress-ring-text,
body.format-aicourse .aicourse-progress-complete {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--acf-text-inverse);
    text-shadow: none;
}

body.format-aicourse .aicourse-progress-complete svg {
    inline-size: var(--acf-icon-md);
    block-size: var(--acf-icon-md);
    stroke: currentColor;
}

/* Celebration pulse fired by courseformat.js when progress increases.
   The previous sheet defined `@keyframes aicourse-pulse` twice; the later
   opacity definition silently overrode the ripple, so this animation had been
   broken. There is now exactly one keyframe per name (section 22). */
body.format-aicourse .aicourse-progress-ring-container.pulse {
    animation: acf-ring-pulse var(--acf-duration-slower) var(--acf-ease-out);
}

body.format-aicourse .aicourse-progress-ring-fill.glow {
    filter: drop-shadow(0 0 6px var(--acf-status-done-line));
}

/* --- Progress bar --------------------------------------------------------- */
body.format-aicourse .aicourse-progress-bar-container {
    display: flex;
    flex-direction: column;
    gap: var(--acf-space-1);
    flex: 1 1 8rem;
    min-inline-size: 0;
    max-inline-size: 22rem;
}

body.format-aicourse .aicourse-progress-bar-track {
    inline-size: 100%;
    block-size: 6px;   /* 2px was a hairline; 6px reads as a real control */
    border-radius: var(--acf-radius-pill);
    background: var(--acf-track);
    overflow: hidden;
}

body.format-aicourse .aicourse-progress-bar-fill {
    block-size: 100%;
    inline-size: 0;
    border-radius: inherit;
    background: var(--acf-status-done-line);
    /* JS animates the inline `width`; `will-change: width` was removed because
       declaring will-change on a layout property mis-hints the compositor. */
    transition: width var(--acf-duration-slower) var(--acf-ease-out);
}

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-progress-bar-track {
    background: var(--acf-track-media);
}

/* --- Numbered activity circles (section view) -----------------------------
   Old: `flex-wrap: wrap; max-width: 240px` inside an `overflow: hidden` banner
   with an inline max-height — every circle past the first row or two was
   silently clipped. Now a single horizontally-scrollable row: nothing is ever
   clipped, at any activity count, at any banner height. */
body.format-aicourse .aicourse-activity-number-circles {
    align-items: center;
    inline-size: 100%;
    min-inline-size: 0;
    padding-block: var(--acf-space-1);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline proximity;
}

body.format-aicourse .aicourse-activity-number-circles::-webkit-scrollbar {
    block-size: 4px;
}

body.format-aicourse .aicourse-activity-number-circles::-webkit-scrollbar-thumb {
    background: var(--acf-border-strong);
    border-radius: var(--acf-radius-pill);
}

body.format-aicourse .aicourse-activity-number {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 2.25rem;   /* 36px visual */
    block-size: 2.25rem;
    flex-shrink: 0;
    box-sizing: border-box;
    border-radius: var(--acf-radius-full);
    border: 2px solid var(--acf-status-todo-border);
    background: var(--acf-status-todo-bg);
    color: var(--acf-status-todo-fg);
    font-size: var(--acf-font-size-xs);
    font-weight: var(--acf-weight-bold);
    line-height: var(--acf-leading-none);
    font-variant-numeric: tabular-nums;
    text-decoration: none;
    scroll-snap-align: start;
    transition:
        transform var(--acf-duration-fast) var(--acf-ease-spring),
        background var(--acf-duration-fast) var(--acf-ease-standard);
}

/* `not_started` is the base appearance above; the modifier is declared
   explicitly so the four statuses lib.php emits are all visible in this file. */
body.format-aicourse .aicourse-activity-number.aicourse-number-not_started {
    background: var(--acf-status-todo-bg);
    border-color: var(--acf-status-todo-border);
    color: var(--acf-status-todo-fg);
}

/* 36px visual + a ::after hit area of exactly 44x44. The 8px gap means the
   pitch is 44px, so adjacent targets touch but never overlap. */
body.format-aicourse .aicourse-activity-number::after {
    content: "";
    position: absolute;
    inset: -4px;
    border-radius: inherit;
}

body.format-aicourse a.aicourse-activity-number:hover {
    transform: scale(1.08);
    text-decoration: none;
    background: var(--acf-surface-hover);
}

body.format-aicourse .aicourse-activity-number.aicourse-number-completed {
    background: var(--acf-status-done-solid);
    border-color: var(--acf-status-done-solid);
    color: var(--acf-text-inverse);      /* 5.01:1 */
}

body.format-aicourse a.aicourse-activity-number.aicourse-number-completed:hover {
    background: var(--acf-status-done-solid);
}

body.format-aicourse .aicourse-activity-number.aicourse-number-in_progress {
    background: var(--acf-status-doing-bg);
    border-color: var(--acf-status-doing-border);
    color: var(--acf-status-doing-fg);   /* 6.4:1 */
}

/* Not colour alone: "no completion tracking" is signalled by a DASHED border
   as well as by tone, satisfying SC 1.4.1. */
body.format-aicourse .aicourse-activity-number.aicourse-number-no_completion {
    border-style: dashed;
    border-color: var(--acf-border-strong);
    background: transparent;
    color: var(--acf-text-tertiary);
}

/* Image mode: every circle gets its own scrim so it is readable on any photo. */
body.format-aicourse .aicourse-hero-has-image .aicourse-activity-number {
    background: var(--acf-media-scrim);    /* white text = 4.76:1 worst case */
    border-color: var(--acf-media-line);
    color: var(--acf-text-on-media);
    backdrop-filter: blur(var(--acf-blur-sm));
    -webkit-backdrop-filter: blur(var(--acf-blur-sm));
}

body.format-aicourse .aicourse-hero-has-image .aicourse-activity-number.aicourse-number-completed {
    background: var(--acf-status-done-solid);
    border-color: var(--acf-green-300);
}

body.format-aicourse .aicourse-hero-has-image .aicourse-activity-number.aicourse-number-in_progress {
    background: var(--acf-media-scrim);
    border-color: var(--acf-amber-400);
    color: var(--acf-text-on-media);
}

body.format-aicourse .aicourse-hero-has-image .aicourse-activity-number.aicourse-number-no_completion {
    background: var(--acf-media-scrim);
    border-style: dashed;
    border-color: var(--acf-media-line-soft);
    color: var(--acf-text-on-media);
}

/* ==========================================================================
   10. ACTIVITY COMPLETION (activity hero)
   ========================================================================== */

body.format-aicourse .aicourse-completion-ring-container {
    flex-shrink: 0;
}

/* ACF-FIX-2.1.161: the same token the course ring reads, so the two cannot drift again. They were
   56x56 and 54x54 -- two pixels, invisible on either page alone and obvious the moment a learner
   moves between them, because the banner is otherwise identical. A hard-coded 3.375rem was always
   going to disagree with a clamp() the day the clamp changed. */
body.format-aicourse .aicourse-hero-has-image .aicourse-completion-ring-container {
    inline-size: var(--acf-hero-ring-image);
    block-size: var(--acf-hero-ring-image);
}

body.format-aicourse .aicourse-completion-ring {
    display: block;
    inline-size: 100%;
    block-size: 100%;
}

body.format-aicourse .aicourse-completion-ring.aicourse-completion-done :is(circle, path) {
    stroke: var(--acf-status-done-line);
}

body.format-aicourse .aicourse-completion-ring.aicourse-completion-pending circle {
    stroke: var(--acf-border-strong);
}

body.format-aicourse .aicourse-completion-ring.aicourse-completion-pending path {
    stroke: var(--acf-text-tertiary);
}

body.format-aicourse .aicourse-hero-has-image .aicourse-completion-ring.aicourse-completion-pending circle {
    stroke: var(--acf-media-line);
}

body.format-aicourse .aicourse-hero-has-image .aicourse-completion-ring.aicourse-completion-pending path {
    stroke: var(--acf-media-line-soft);
}

body.format-aicourse .aicourse-hero-completion-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: none;
    border-radius: var(--acf-radius-full);
    background: transparent;
    cursor: pointer;
    transition: transform var(--acf-duration-fast) var(--acf-ease-spring);
}

body.format-aicourse .aicourse-hero-completion-toggle:hover {
    transform: scale(1.06);
}

body.format-aicourse .aicourse-hero-completion-done .aicourse-completion-ring-container {
    opacity: 1;
}

/* Pending reads as an invitation, not as a disabled control. */
body.format-aicourse .aicourse-hero-completion-pending .aicourse-completion-ring-container {
    opacity: 0.9;
}

body.format-aicourse .aicourse-hero-completion-pending:hover .aicourse-completion-ring-container {
    opacity: 1;
}

body.format-aicourse .aicourse-hero-completion-toggle.aicourse-loading {
    opacity: 0.55;
    pointer-events: none;
}

body.format-aicourse .aicourse-completion-requirements {
    display: flex;
    flex-direction: column;
    gap: var(--acf-space-1);
    flex: 1 1 10rem;
    min-inline-size: 0;
    max-inline-size: 26rem;
}

body.format-aicourse .aicourse-completion-label {
    font-size: var(--acf-font-size-md);
    line-height: var(--acf-leading-snug);
    color: var(--acf-text-secondary);
}

body.format-aicourse .aicourse-hero-has-image .aicourse-completion-label {
    font-size: var(--acf-font-size-base);
    color: var(--acf-text-on-media);
    text-shadow: var(--acf-media-text-shadow);
}

body.format-aicourse .aicourse-completion-clickable {
    cursor: pointer;
    text-decoration: underline;
    text-decoration-style: dotted;
    text-underline-offset: 3px;
}

/* ACF-FIX-2.3.2: the grade is bare text. No ring, no fill, no border.
   It was a circle, then briefly a pill, and the whole exercise was about making a shape hold a
   value that varies in length -- "-/100", "100/100", "1000/1000" all come from the activity's
   grade item. Removing the shape removes the problem rather than accommodating it: text has no
   width to overflow.

   It stays legible without a container because of where it sits. On a banner with an image the
   right-hand cluster already has its own dark glass panel behind it (see
   .aicourse-hero-nav-progress), and in gradient mode the text takes --acf-text-primary against
   the gradient. Neither case was relying on this element's own background.

   The height is still declared. ACF-FIX-2.1.186 levelled the two hero clusters against each
   other and that only holds while this box keeps the height of the ring it replaces. */
body.format-aicourse .aicourse-grade-display {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* Still a flex item in the icon cluster: without this it is squeezed by its siblings and
       the nowrap value spills, container or no container. */
    flex: 0 0 auto;
    inline-size: auto;
    block-size: 2.75rem;
    /* Keeps the number off whatever sits beside it; nothing is drawn, so this is spacing only. */
    padding-inline: 0.35rem;
}

body.format-aicourse .aicourse-grade-text {
    font-size: var(--acf-font-size-sm);
    font-weight: var(--acf-weight-semibold);
    line-height: var(--acf-leading-none);
    font-variant-numeric: tabular-nums;
    color: var(--acf-text-primary);
    white-space: nowrap;
}

body.format-aicourse .aicourse-hero-has-image .aicourse-grade-text {
    color: var(--acf-text-on-media);
}

/* ==========================================================================
   11. SECTION CARDS
   --------------------------------------------------------------------------
   Grid tracks are container-driven (`auto-fill` + `minmax`) rather than tied to
   viewport breakpoints, so a card inside a drawer-narrowed region is sized by
   the space it actually has. This removes the "4 columns crushed into a 900px region" failure the previous breakpoint ladder produced at >=1200px.
   ========================================================================== */

body.format-aicourse .aicourse-cards-container {
    container-type: inline-size;
    container-name: acf-cards;
}

/* --- Header: icon column + time badge ------------------------------------- */

/* --- Body ----------------------------------------------------------------- */

/* ACF-FIX-2.1.5: font-size and line-height are forced so the course's own
   "Card title size" setting is authoritative.
   The value comes from --aicourse-card-title-size, which format.php injects on
   .format-aicourse-container, and a teacher who changes that setting should see it take effect
   whatever theme the site runs. Themes size headings by element -- theme_academi, for one, sets
   h3 to 26px -- and while a (0,3,1) selector beats a bare `h3` at (0,0,1), that margin is thin
   and depends entirely on the theme not reaching for an id or !important of its own. Pinning
   these two declarations removes the question. Only these two are forced; colour, weight and
   spacing still yield to the theme. */

/* --- Compact activity list ------------------------------------------------
   Rendered only when the course turns "Show activities on cards" on; with the
   option off (the default) the template emits none of this markup, so a
   default card is unchanged to the pixel.

   Deliberately NOT the activity-card treatment used on section pages: one line
   per activity, name plus completion state, because the grid's whole value is
   that it is scannable. It sits in normal flow between the summary and the
   footer, so .aicourse-card-footer's `margin-block-start: auto` still pins the
   footer to the bottom edge of a stretched card and a row of cards still ends
   level. */

/* ==========================================================================
   SECTION CARD ROWS, BROUGHT LEVEL WITH THE COURSE INDEX (ACF-FIX-2.1.178)
   --------------------------------------------------------------------------
   The card listed a coloured dot and a name. The course index sitting beside it
   on the same screen listed the module's own icon, an estimated time and a
   completion tick. Two descriptions of the same activities in two different
   visual languages, a few hundred pixels apart.

   The row is brought up to the index rather than the index down to the row. The
   sizes below are the index's own numbers (17px tick, 2xs time, 10px glyph), not
   numbers picked to look similar -- so the two lists read as one system.

   Order in the row is deliberate: icon, name, time, state. Identity first, then
   what it is, then what it costs, then whether it is done. The state is last
   because it is the thing the eye scans DOWN the column for, and a column only
   forms if the item is at a fixed edge.
   ========================================================================== */

/* --- The card's progress: the hero's indicator, at card scale ---------------
   The footer showed a flat "33%" pill. The hero shows a ring that fills and a
   number that counts up, and the card is reporting the same quantity -- so it
   now uses the same instrument. A learner reads one thing in two places rather
   than learning two notations for progress in one product. */

/* --- Footer --------------------------------------------------------------- */

/* --- Card edit chrome ------------------------------------------------------
   Was three bare 20x20 controls — below even the WCAG 2.2 24px floor — hidden
   at opacity 0 and revealed only on hover, so keyboard users could focus
   invisible buttons. Now a 44x44 toolbar revealed on hover OR focus-within,
   with a 32px visual chip drawn by ::before so the layout stays compact. */

/* --- Bulk selection --------------------------------------------------------
   Moodle's "Bulk actions" header button turns core's per-section checkboxes on. Core emits the
   checkbox itself (core_courseformat/local/content/section/bulkselect) and toggles Bootstrap's
   .d-none on it; the rules below only place it on the card and give it the same 44px target as
   the rest of the card chrome.

   The wrapper is a normal flex item at the top of the card rather than an absolutely positioned
   overlay, exactly as core's own section header carries its checkbox in flow: while bulk editing
   is off the inner .bulkselect is display:none, so the wrapper is zero-height and the card is
   pixel-identical to before; while it is on, the row pushes the card header down instead of
   sitting on top of the section icon. No new colour pair is introduced. */

/* ==========================================================================
   12. GENERAL SECTION (section 0, rendered inline above the card grid)
   ========================================================================== */

body.format-aicourse .aicourse-general-section {
    margin-block-end: var(--acf-space-8);
    padding-block-end: var(--acf-space-7);
    border-block-end: 1px solid var(--acf-border-subtle);
}

/* --- Core section markup rendered inside the format -----------------------
   Two places hand markup to CORE's section renderer rather than drawing cards:
   the General block (section 0) in edit mode or "standard activity display",
   and the whole single-section page in edit mode
   (.format-aicourse-container .single-section). In both cases what lands is
   what lands inside .aicourse-general-section is Boost's own markup: a bare
   <li class="course-section">, a collapse chevron, "Collapse all", the cmlist
   <ul>, the activity chooser dividers. Unstyled, that read as leaked default
   Moodle sitting above a designed card grid. These rules re-express core's
   structure in the format's own tokens WITHOUT touching a single core class
   name outside our wrapper — every selector below is scoped to
   .aicourse-general-section, so no other page in Moodle is affected.

   Nothing here sets `overflow`, because core's action menus and the group-mode
   dropdown are absolutely positioned and would be clipped by it. */
body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .course-section {
    position: relative;
    padding: var(--acf-space-5) var(--acf-space-5) var(--acf-space-4);
    border: 1px solid var(--acf-border-subtle);
    border-radius: var(--acf-radius-xl);
    background: var(--acf-surface-raised);
    box-shadow: var(--acf-elevation-1);
}

/* Boost gives .section-item its own card chrome. Nested inside the wrapper
   above that produced a box-in-a-box; the outer card is the one that belongs
   to this design, so the inner one is flattened. */
body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .section-item {
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

/* With the card treatment, the wrapper's own trailing rule is a second divider
   under a bordered box. `:has()` keeps the student-side (summary + activity
   cards) variant, which still wants the rule, exactly as it was. */
body.format-aicourse .aicourse-general-section:has(> .course-section) {
    padding-block-end: 0;
    border-block-end: none;
}

/* The same brand rail the section cards carry, so the General block reads as
   part of the same family instead of a different component. */
body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .course-section::before {
    content: "";
    position: absolute;
    inset-block-start: 0;
    inset-inline: 0;
    block-size: 3px;
    border-start-start-radius: var(--acf-radius-xl);
    border-start-end-radius: var(--acf-radius-xl);
    background:
        linear-gradient(
            to right,
            var(--acf-brand) 0%,
            var(--acf-brand-tint-strong) 100%
        );
    opacity: 0.7;
    pointer-events: none;
}

/* No bottom rule here: core already emits a dashed `.divider` immediately
   below as the "insert an activity here" affordance, and two lines 12px apart
   is exactly the stitched-together look this section is meant to remove. */
body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .course-section-header {
    align-items: center;
    gap: var(--acf-space-2);
    padding-inline-start: 0;
    margin-block-end: var(--acf-space-2);
}

/* Core renders this as `h3.h4` and Boost colours it with the link colour, so
   it arrived a different size AND a different colour from every other heading
   the format draws. Matched to .aicourse-general-heading. */
body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .sectionname,
body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .sectionname > a {
    font-size: var(--acf-font-size-xl);
    font-weight: var(--acf-weight-semibold);
    line-height: var(--acf-leading-snug);
    letter-spacing: var(--acf-tracking-tight);
    color: var(--acf-text-primary);
}

body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .icons-collapse-expand {
    color: var(--acf-text-secondary);
    border-radius: var(--acf-radius-md);
}

body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .icons-collapse-expand:hover {
    background: var(--acf-surface-hover);
    color: var(--acf-text-primary);
}

body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .section-collapsemenu {
    font-size: var(--acf-font-size-sm);
    font-weight: var(--acf-weight-medium);
    color: var(--acf-text-secondary);
}

body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .section-collapsemenu:hover {
    color: var(--acf-text-brand);
}

/* Activity rows: given the same hairline-card language as .aicourse-activity-card
   so the edit-mode list and the student-facing card grid are visibly the same
   product. Kept as rows, not a grid — teachers need the drag order to be
   obvious and the action menus to line up. */
body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .activity-item {
    padding: var(--acf-space-3);
    border: 1px solid var(--acf-border-subtle);
    border-radius: var(--acf-radius-lg);
    background: var(--acf-surface-raised);
    box-shadow: var(--acf-elevation-1);
    transition:
        border-color var(--acf-duration-fast) var(--acf-ease-standard),
        box-shadow var(--acf-duration-fast) var(--acf-ease-standard);
}

body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .activity-item:hover {
    border-color: var(--acf-brand-tint-strong);
    box-shadow: var(--acf-elevation-2);
}

body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) li.activity + li.activity {
    margin-block-start: var(--acf-space-3);
}

/* Boost's own `.activityiconcontainer` carries a background and a size, so the
   selector has to name it to reach the same tinted tile the activity cards use
   on the student side. */
body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section)
:is(.activity-icon, .activityiconcontainer) {
    display: flex;
    align-items: center;
    justify-content: center;
    inline-size: 2.5rem;
    block-size: 2.5rem;
    flex: none;
    padding: 0;
    border-radius: var(--acf-radius-md);
    background: var(--acf-brand-tint-weak);
}

body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section)
:is(.activity-icon, .activityiconcontainer) img {
    inline-size: 22px;
    block-size: 22px;
    max-inline-size: none;
}

body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .instancename {
    font-size: var(--acf-font-size-md);
    font-weight: var(--acf-weight-semibold);
    letter-spacing: var(--acf-tracking-tight);
}

body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .activity-item .aalink {
    color: var(--acf-text-primary);
}

body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .activity-item .aalink:hover {
    color: var(--acf-text-brand);
}

/* The label / "Text and media area" body inside an activity row. Same prose
   treatment as .aicourse-activity-content on the student side. */
body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .activity-altcontent {
    margin-block-start: var(--acf-space-2);
    padding: 0;
    background: transparent;
    color: var(--acf-text-primary);
    line-height: var(--acf-leading-relaxed);
}

body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .activity-altcontent > * {
    max-inline-size: 78ch;
}

body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .activity-altcontent
:is(h1, h2, h3, h4, h5, h6) {
    margin-block: 0 var(--acf-space-2);
    font-size: var(--acf-font-size-base);
    font-weight: var(--acf-weight-semibold);
    color: var(--acf-text-primary);
}

body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .activity-altcontent > :last-child,
body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .activity-altcontent
.no-overflow > :last-child {
    margin-block-end: 0;
}

/* Chooser dividers: core draws an <hr> plus a floating button. Toned down to a
   hairline so the block does not look stitched together from three components. */
body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .divider hr {
    border-block-start: 1px dashed var(--acf-border-subtle);
    opacity: 1;
}

/* --- Edit mode: strip the container chrome ---------------------------------
   ACF-FIX-2.1.21. In edit mode the format hands rendering back to core's standard renderer so
   teachers keep drag handles, action menus and bulk selection. Core's section then sat inside
   this sheet's card treatment -- a 1px border, an 18px radius, a shadow and a raised background
   -- with a brand-coloured rule along the top and dashed <hr> dividers between every activity.

   The result was a box around a box: each activity already carries its own rectangle, so the
   outer card, its accent rule and the dividers were three layers of chrome describing a grouping
   the activity rectangles already make obvious. Removed, leaving the activities to speak for
   themselves. Nothing that carries meaning is touched -- drag handles, availability badges,
   completion controls and the "Add an activity" affordance are all untouched. View mode is
   unaffected; it never used this container. */
body.format-aicourse.editing
:is(.aicourse-general-section, .format-aicourse-container .single-section) .course-section,
body.format-aicourse.editingon
:is(.aicourse-general-section, .format-aicourse-container .single-section) .course-section,
body.format-aicourse.editing-mode
:is(.aicourse-general-section, .format-aicourse-container .single-section) .course-section {
    padding-inline: 0;
    padding-block: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

/* The dashed rules between activities describe the same grouping. */
body.format-aicourse.editing
:is(.aicourse-general-section, .format-aicourse-container .single-section) .divider hr,
body.format-aicourse.editingon
:is(.aicourse-general-section, .format-aicourse-container .single-section) .divider hr,
body.format-aicourse.editing-mode
:is(.aicourse-general-section, .format-aicourse-container .single-section) .divider hr {
    border-block-start: 0;
}

/* The 3px brand rule along the top of the container is the last piece of the box. It was the
   card's accent; with the card gone it is a line with nothing to accent. */
body.format-aicourse.editing
:is(.aicourse-general-section, .format-aicourse-container .single-section) .course-section::before,
body.format-aicourse.editingon
:is(.aicourse-general-section, .format-aicourse-container .single-section) .course-section::before,
body.format-aicourse.editing-mode
:is(.aicourse-general-section, .format-aicourse-container .single-section) .course-section::before {
    content: none;
}

body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .section-modchooser {
    min-block-size: var(--acf-target-min);
    padding-inline: var(--acf-space-3);
    border: 1px dashed var(--acf-border-strong);
    border-radius: var(--acf-radius-pill);
    background: var(--acf-surface-raised);
    color: var(--acf-text-secondary);
    font-size: var(--acf-font-size-sm);
    font-weight: var(--acf-weight-medium);
    transition:
        border-color var(--acf-duration-fast) var(--acf-ease-standard),
        color var(--acf-duration-fast) var(--acf-ease-standard),
        background var(--acf-duration-fast) var(--acf-ease-standard);
}

body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .section-modchooser:hover {
    border-color: var(--acf-border-brand);
    background: var(--acf-brand-tint-weak);
    color: var(--acf-text-brand);
}

body.format-aicourse :is(.aicourse-general-section, .format-aicourse-container .single-section) .section-modchooser:focus-visible {
    outline: var(--acf-focus-width) solid var(--acf-focus-color);
    outline-offset: var(--acf-focus-offset);
}

/* The "add section" affordance belongs to the card grid below, not to the
   General block; core emits it inside the same <li>. */
body.format-aicourse .aicourse-general-section .changenumsections {
    display: none;
}

body.format-aicourse .aicourse-general-summary {
    margin-block-end: var(--acf-space-4);
    font-size: var(--acf-font-size-base);
    line-height: var(--acf-leading-relaxed);
    color: var(--acf-text-secondary);
}

body.format-aicourse .aicourse-general-summary > :last-child {
    margin-block-end: 0;
}

body.format-aicourse .aicourse-general-section .aicourse-activity-cards-container {
    margin-block-start: 0;
    padding: 0;
    max-inline-size: none;
}

/* ==========================================================================
   13. ACTIVITY CARDS
   ========================================================================== */

body.format-aicourse .aicourse-activity-cards-container {
    container-type: inline-size;
    container-name: acf-activities;
    margin-block-start: var(--acf-space-6);
}

/* --- Sparse grids: one or two items ---------------------------------------
   A lone activity card in a 1205px region rendered as a 286px chip pinned to
   the inline-start corner with 900px of nothing beside it — it read as a
   fragment of a grid that had failed to load, which is exactly how the
   General block (usually one forum) looked. With one or two items there is no
   grid to imply, so the cards become full-measure ROWS instead: the icon, the
   name and the type/status meta spread across the available width, which is a
   deliberate list treatment rather than a broken grid.

   `:has()` is the whole mechanism, so this degrades silently to the previous
   behaviour on engines without it (Firefox < 121) — no fallback needed, the
   grid layout is still correct there, just narrower. */

/* Was #9ca3af on white = 2.54:1. Tertiary token = 4.76:1, at 12px not 11px. */
/* --- Estimated duration pill on an activity card ---------------------------
   ACF-FIX-2.1.47. Sits beside the module type and before the status badge, so the footer reads
   "what it is,how long it takes,where you are with it".

   Quieter than the status badge on purpose. The badge is about the learner -- have they done it --
   and changes as they work; this is a fixed property of the activity. Giving them equal weight
   made the row read as two competing claims, so the duration takes the same muted treatment as
   the type label it sits next to, with a pill outline to mark it as a distinct fact rather than
   more of the type name. */

/* URL-less content modules (mod_label, "Text and media area"). lib.php renders
   these as full-width rows AFTER .aicourse-activity-cards-grid, inside
   .aicourse-activity-cards-container — so they are siblings of the grid, not
   grid items, and must read as prose rather than as a card. */
body.format-aicourse .aicourse-activity-content-row {
    inline-size: 100%;
    min-inline-size: 0;
    margin-block-start: var(--acf-space-4);
}

body.format-aicourse .aicourse-activity-content-row + .aicourse-activity-content-row {
    margin-block-start: var(--acf-space-3);
}

body.format-aicourse .aicourse-activity-content {
    min-inline-size: 0;
    padding: var(--acf-space-4) var(--acf-space-5);
    border: 1px solid var(--acf-border-subtle);
    border-inline-start: 3px solid var(--acf-brand-tint-strong);
    border-radius: var(--acf-radius-lg);
    background: var(--acf-surface-sunken);
    color: var(--acf-text-primary);
    font-size: var(--acf-font-size-md);
    line-height: var(--acf-leading-relaxed);
    overflow-wrap: anywhere;
}

body.format-aicourse .aicourse-activity-content > :last-child {
    margin-block-end: 0;
}

body.format-aicourse .aicourse-activity-content :is(h1, h2, h3, h4, h5, h6) {
    margin-block: 0 var(--acf-space-2);
    font-size: var(--acf-font-size-base);
    font-weight: var(--acf-weight-semibold);
    line-height: var(--acf-leading-snug);
    color: var(--acf-text-primary);
}

body.format-aicourse .aicourse-activity-content :is(ul, ol) {
    margin-block: 0 var(--acf-space-3);
    padding-inline-start: var(--acf-space-5);
}

body.format-aicourse .aicourse-activity-content li + li {
    margin-block-start: var(--acf-space-1);
}

body.format-aicourse .aicourse-activity-content :is(img, video, iframe) {
    max-inline-size: 100%;
    block-size: auto;
    border-radius: var(--acf-radius-md);
}

body.format-aicourse .aicourse-activity-content a {
    color: var(--acf-text-brand);
    text-underline-offset: 2px;
}

body.format-aicourse .aicourse-activity-content p {
    margin-block: 0 var(--acf-space-3);
}

body.format-aicourse .aicourse-activity-content :is(table, pre) {
    max-inline-size: 100%;
    overflow-x: auto;
}

/* --- Region headings ------------------------------------------------------
   lib.php renders <h2> landmarks so the <h3> card and activity titles do not
   skip a level. Two of them always carry core's .accesshide, and the General
   heading carries it only while the section still has its default name — so
   these rules must never fight .accesshide, which is why nothing here sets
   `position`, `clip-path` or `display`. */

body.format-aicourse .aicourse-general-heading {
    margin: 0 0 var(--acf-space-3);
    font-size: var(--acf-font-size-xl);
    font-weight: var(--acf-weight-semibold);
    line-height: var(--acf-leading-snug);
    letter-spacing: var(--acf-tracking-tight);
    /* ACF-FIX-2.1.19: inherit, not --acf-text-primary. This heading sits ABOVE the card, directly
       on the theme's own page background, which the plugin does not control. Taking the plugin's
       text token meant that in dark mode it turned light while the page behind it stayed white:
       measured 1.10:1. Inheriting the theme's page colour is correct in all four combinations of
       colour mode and theme, because the surface underneath is always the theme's. */
    color: inherit;
}

/* .accesshide is applied by core with high specificity and wins; this is only
   a guard for themes that redefine it without the off-screen positioning. */
body.format-aicourse .aicourse-general-heading.accesshide {
    margin: 0;
}

/* ==========================================================================
   14. STATUS BADGES + COMPLETION TOGGLE
   ========================================================================== */

/* --- Manual completion toggle -------------------------------------------- */
body.format-aicourse .aicourse-completion-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--acf-space-2);
    flex-shrink: 0;
    margin-inline-start: auto;
    min-block-size: var(--acf-target-min);
    min-inline-size: var(--acf-target-min);
    padding: var(--acf-space-2) var(--acf-space-3);
    border: 1px solid transparent;
    border-radius: var(--acf-radius-md);
    font-size: var(--acf-font-size-xs);
    font-weight: var(--acf-weight-semibold);
    cursor: pointer;
    transition:
        background var(--acf-duration-base) var(--acf-ease-standard),
        color var(--acf-duration-base) var(--acf-ease-standard),
        border-color var(--acf-duration-base) var(--acf-ease-standard);
}

body.format-aicourse .aicourse-completion-toggle-pending {
    background: var(--acf-status-todo-bg);
    border-color: var(--acf-status-todo-border);
    color: var(--acf-status-todo-fg);
}

body.format-aicourse .aicourse-completion-toggle-pending:hover {
    background: var(--acf-status-done-bg);
    border-color: var(--acf-status-done-border);
    color: var(--acf-status-done-fg);
}

body.format-aicourse .aicourse-completion-toggle-done {
    background: var(--acf-status-done-bg);
    border-color: var(--acf-status-done-border);
    color: var(--acf-status-done-fg);
}

body.format-aicourse .aicourse-completion-toggle-done:hover {
    background: var(--acf-status-done-solid);
    border-color: var(--acf-status-done-solid);
    color: var(--acf-text-inverse);
}

body.format-aicourse .aicourse-completion-toggle.aicourse-loading {
    opacity: 0.55;
    pointer-events: none;
}

body.format-aicourse .aicourse-toggle-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

body.format-aicourse .aicourse-toggle-check svg {
    inline-size: var(--acf-icon-sm);
    block-size: var(--acf-icon-sm);
    flex: none;
    stroke: currentColor;
}

/* Icon-only below the sm breakpoint — the target stays 44x44. */
@media (max-width: 639px) {
    body.format-aicourse .aicourse-toggle-label {
        position: absolute;
        inline-size: 1px;
        block-size: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
        border: 0;
    }

    body.format-aicourse .aicourse-completion-toggle {
        padding: var(--acf-space-2);
    }
}

/* ==========================================================================
   15. ADD-SECTION CARD
   ========================================================================== */

/* ==========================================================================
   16. EMPTY STATE
   ========================================================================== */

body.format-aicourse .aicourse-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-block: var(--acf-space-4);
    padding: var(--acf-space-12) var(--acf-space-6);
    border: 1px dashed var(--acf-border-default);
    border-radius: var(--acf-radius-xl);
    background: var(--acf-surface-sunken);
    color: var(--acf-text-secondary);
    text-align: center;
}

body.format-aicourse .aicourse-empty-state svg {
    color: var(--acf-text-tertiary);
    margin-block-end: var(--acf-space-3);
    flex: none;
}

body.format-aicourse .aicourse-empty-state p {
    margin: 0;
    max-inline-size: 24rem;
    font-size: var(--acf-font-size-md);
    line-height: var(--acf-leading-normal);
}

/* ==========================================================================
   17. ICON PICKER MODAL
   ========================================================================== */

body.format-aicourse .aicourse-icon-picker-modal {
    position: fixed;
    inset: 0;
    z-index: var(--acf-z-modal);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--acf-space-4);
}

body.format-aicourse .aicourse-icon-picker-backdrop {
    position: absolute;
    inset: 0;
    background: var(--acf-surface-scrim);
    backdrop-filter: blur(var(--acf-blur-sm));
    -webkit-backdrop-filter: blur(var(--acf-blur-sm));
}

body.format-aicourse .aicourse-icon-picker-content {
    position: relative;
    display: flex;
    flex-direction: column;
    inline-size: 100%;
    max-inline-size: 36rem;
    max-block-size: min(82vh, 46rem);
    /* stylelint-disable-next-line declaration-block-no-duplicate-properties --
       deliberate progressive enhancement: vh first for browsers without dvh support,
       dvh second so iOS does not push the input row below the shrinking URL bar. */
    max-block-size: min(82dvh, 46rem);
    overflow: hidden;
    border: 1px solid var(--acf-border-subtle);
    border-radius: var(--acf-radius-2xl);
    background: var(--acf-surface-overlay);
    box-shadow: var(--acf-elevation-5);
}

body.format-aicourse .aicourse-icon-picker-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--acf-space-3);
    flex-shrink: 0;
    padding: var(--acf-space-4) var(--acf-space-5);
    border-block-end: 1px solid var(--acf-border-subtle);
}

body.format-aicourse .aicourse-icon-picker-header :is(h2, h4) {
    margin: 0;
    font-size: var(--acf-font-size-base);
    font-weight: var(--acf-weight-semibold);
    line-height: var(--acf-leading-snug);
    color: var(--acf-text-primary);
}

body.format-aicourse .aicourse-icon-picker-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 0;
    border: 1px solid transparent;
    border-radius: var(--acf-radius-md);
    background: transparent;
    color: var(--acf-text-secondary);
    font-size: var(--acf-font-size-xl);
    line-height: var(--acf-leading-none);
    cursor: pointer;
    transition:
        background var(--acf-duration-fast) var(--acf-ease-standard),
        color var(--acf-duration-fast) var(--acf-ease-standard);
}

body.format-aicourse .aicourse-icon-picker-close:hover {
    background: var(--acf-surface-hover);
    color: var(--acf-text-primary);
}

/* --- Search --------------------------------------------------------------- */
body.format-aicourse .aicourse-icon-picker-search {
    display: flex;
    align-items: center;
    gap: var(--acf-space-2);
    flex-shrink: 0;
    margin: var(--acf-space-3) var(--acf-space-5) 0;
    padding: var(--acf-space-1) var(--acf-space-3);
    border: 1px solid var(--acf-border-default);
    border-radius: var(--acf-radius-md);
    background: var(--acf-surface-sunken);
    transition:
        border-color var(--acf-duration-fast) var(--acf-ease-standard),
        box-shadow var(--acf-duration-fast) var(--acf-ease-standard);
}

body.format-aicourse .aicourse-icon-picker-search:focus-within {
    border-color: var(--acf-focus-color);
    box-shadow: 0 0 0 3px var(--acf-status-info-bg);
}

body.format-aicourse .aicourse-icon-search-icon {
    inline-size: var(--acf-icon-sm);
    block-size: var(--acf-icon-sm);
    flex: none;
    color: var(--acf-text-tertiary);
    stroke: currentColor;
}

body.format-aicourse .aicourse-icon-search-input {
    flex: 1 1 auto;
    min-inline-size: 0;
    min-block-size: 2.5rem;
    border: none;
    background: transparent;
    color: var(--acf-text-primary);
    font-family: var(--acf-font-family);
    font-size: var(--acf-font-size-md);
    /* The previous rule set `outline: none` with no replacement. It is gone;
       the shared :focus-visible rule in section 6 supplies the ring, and the
       wrapper's :focus-within above provides the resting affordance. */
}

body.format-aicourse .aicourse-icon-search-input::placeholder {
    color: var(--acf-text-tertiary);   /* 4.76:1 light / 5.71:1 dark */
    opacity: 1;
}

/* --- Body / categories ---------------------------------------------------- */
body.format-aicourse .aicourse-icon-picker-body {
    flex: 1 1 auto;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-block: var(--acf-space-3) var(--acf-space-4);
}

body.format-aicourse .aicourse-icon-picker-category {
    padding-inline: var(--acf-space-5);
    padding-block-end: var(--acf-space-1);
}

/* Was #94a3b8 at 10px = 2.56:1 (and #475569 on dark = 1.93:1). */
body.format-aicourse .aicourse-icon-picker-category-label {
    padding-block: var(--acf-space-3) var(--acf-space-2);
    font-size: var(--acf-font-size-2xs);
    font-weight: var(--acf-weight-bold);
    letter-spacing: var(--acf-tracking-wider);
    text-transform: uppercase;
    color: var(--acf-text-tertiary);
}

body.format-aicourse .aicourse-icon-picker-grid {
    display: grid;
    /* Auto-fit keeps a legible tile at every width instead of forcing 7 columns
       down to 5 at 320px, where the labels became unreadable. */
    grid-template-columns: repeat(auto-fill, minmax(4.25rem, 1fr));
    gap: var(--acf-space-2);
}

body.format-aicourse .aicourse-icon-picker-grid--remove {
    grid-template-columns: minmax(0, max-content);
    margin-block-end: var(--acf-space-2);
    padding-block-end: var(--acf-space-3);
    border-block-end: 1px solid var(--acf-border-subtle);
}

body.format-aicourse .aicourse-icon-picker-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--acf-space-1);
    inline-size: 100%;
    min-block-size: 4.25rem;   /* 68px — comfortably above 44px */
    padding: var(--acf-space-2) var(--acf-space-1);
    border: 2px solid transparent;
    border-radius: var(--acf-radius-md);
    background: var(--acf-surface-sunken);
    color: var(--acf-text-secondary);
    cursor: pointer;
    /* `transition: all` replaced with an explicit list: with 60+ buttons in the
       grid, `all` forced the engine to check every animatable property. */
    transition:
        background var(--acf-duration-fast) var(--acf-ease-standard),
        border-color var(--acf-duration-fast) var(--acf-ease-standard),
        color var(--acf-duration-fast) var(--acf-ease-standard),
        transform var(--acf-duration-fast) var(--acf-ease-spring);
}

body.format-aicourse .aicourse-icon-picker-item:hover {
    border-color: var(--acf-border-brand);
    background: var(--acf-brand-tint-weak);
    color: var(--acf-text-brand);
    transform: translateY(-2px);
}

body.format-aicourse .aicourse-icon-picker-item:active {
    transform: scale(0.96);
}

body.format-aicourse .aicourse-icon-picker-item.selected {
    border-color: var(--acf-border-brand);
    background: var(--acf-brand-tint);
    color: var(--acf-text-brand);
}

body.format-aicourse .aicourse-icon-picker-item svg {
    inline-size: 22px;
    block-size: 22px;
    flex: none;
    stroke: currentColor;
}

/* Was 9px — unreadable. 11px is the floor; colour is inherited from the item,
   which is --acf-text-secondary on --acf-surface-sunken (7.23:1). */
body.format-aicourse .aicourse-icon-picker-label {
    max-inline-size: 100%;
    font-size: var(--acf-font-size-2xs);
    font-weight: var(--acf-weight-medium);
    line-height: var(--acf-leading-tight);
    text-align: center;
    color: inherit;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.format-aicourse .aicourse-icon-remove-btn {
    flex-direction: row;
    gap: var(--acf-space-2);
    inline-size: auto;
    min-block-size: var(--acf-target-min);
    padding-inline: var(--acf-space-4);
    background: var(--acf-status-danger-bg);
    border-color: var(--acf-status-danger-border);
    color: var(--acf-status-danger-fg);
}

body.format-aicourse .aicourse-icon-remove-btn:hover {
    background: var(--acf-status-danger-bg);
    border-color: var(--acf-status-danger-solid);
    color: var(--acf-status-danger-fg);
    transform: translateY(-1px);
}

body.format-aicourse .aicourse-icon-remove-btn .aicourse-icon-picker-label {
    font-size: var(--acf-font-size-xs);
    font-weight: var(--acf-weight-semibold);
}

/* Below the xs breakpoint the picker becomes a bottom sheet. */
@media (max-width: 479px) {
    body.format-aicourse .aicourse-icon-picker-modal {
        align-items: flex-end;
        padding: 0;
    }

    body.format-aicourse .aicourse-icon-picker-content {
        max-inline-size: none;
        max-block-size: 88dvh;
        border-start-start-radius: var(--acf-radius-2xl);
        border-start-end-radius: var(--acf-radius-2xl);
        border-end-start-radius: 0;
        border-end-end-radius: 0;
    }
}

/* ==========================================================================
   18. AI CHATBOX
   ========================================================================== */

body.format-aicourse .aicourse-ai-chatbox {
    position: fixed;
    inset-block-end: var(--acf-space-5);
    inset-inline-end: var(--acf-space-5);
    z-index: var(--acf-z-chatbox);
    display: flex;
    flex-direction: column;
    inline-size: 24rem;
    max-inline-size: calc(100vw - (2 * var(--acf-space-5)));
    block-size: 32rem;
    /* dvh, not vh: on iOS the shrinking URL bar previously pushed the input row
       and send button below the visible viewport. */
    max-block-size: calc(100vh - 6rem);
    /* stylelint-disable-next-line declaration-block-no-duplicate-properties --
       deliberate progressive enhancement; see the note on the chat panel above. */
    max-block-size: calc(100dvh - 6rem);
    overflow: hidden;
    border: 1px solid var(--acf-border-subtle);
    border-radius: var(--acf-radius-2xl);
    background: var(--acf-surface-overlay);
    box-shadow: var(--acf-elevation-5);
    animation: acf-slide-up var(--acf-duration-slow) var(--acf-ease-out);
}

body.format-aicourse .aicourse-ai-chatbox-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--acf-space-3);
    flex-shrink: 0;
    padding: var(--acf-space-3) var(--acf-space-4);
    /* White on this gradient: 6.29:1 -> 5.70:1. The old #6366f1 -> #8b5cf6
       gradient bottomed out at 4.40:1. */
    background: var(--acf-ai-gradient);
    color: var(--acf-text-inverse);
}

body.format-aicourse .aicourse-ai-chatbox-title {
    display: flex;
    align-items: center;
    gap: var(--acf-space-2);
    min-inline-size: 0;
    font-size: var(--acf-font-size-base);
    font-weight: var(--acf-weight-semibold);
}

body.format-aicourse .aicourse-ai-chatbox-title svg {
    flex: none;
    stroke: currentColor;
}

body.format-aicourse .aicourse-ai-chatbox-close {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--acf-radius-full);
    background: transparent;
    color: var(--acf-text-inverse);
    font-size: var(--acf-font-size-xl);
    line-height: var(--acf-leading-none);
    cursor: pointer;
}

/* 32px visual chip inside the 44px target. */
body.format-aicourse .aicourse-ai-chatbox-close::before {
    content: "";
    position: absolute;
    inset: 6px;
    border-radius: inherit;
    background: var(--acf-media-hover);
    transition: background var(--acf-duration-fast) var(--acf-ease-standard);
}

body.format-aicourse .aicourse-ai-chatbox-close:hover::before {
    background: var(--acf-media-hover-strong);
}

body.format-aicourse .aicourse-ai-chatbox-close > * {
    position: relative;
    z-index: var(--acf-z-raised);
}

body.format-aicourse .aicourse-ai-chatbox-messages {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: var(--acf-space-3);
    padding: var(--acf-space-4);
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--acf-surface-sunken);
    /* ACF-FIX-2.1.18: same invariant the section card was missing. This surface takes its
       background from --acf-surface-sunken, which flips with colour mode, but message text was
       inheriting the host theme's colour -- Boost hands down rgb(29, 33, 37). In dark mode that
       is near-black text on a rgb(15, 23, 42) panel: measured 1.1:1 where AA needs 4.5:1, i.e.
       the tutor's answers were unreadable. Anchoring the colour here makes background and text
       flip together for every message bubble, present and future. */
    color: var(--acf-text-primary);
}

body.format-aicourse .aicourse-ai-message {
    max-inline-size: 85%;
    animation: acf-fade-in var(--acf-duration-base) var(--acf-ease-out);
}

body.format-aicourse .aicourse-ai-message-user {
    align-self: flex-end;
}

body.format-aicourse .aicourse-ai-message-bot {
    align-self: flex-start;
}

body.format-aicourse .aicourse-ai-message-content {
    padding: var(--acf-space-3) var(--acf-space-4);
    border-radius: var(--acf-radius-xl);
    font-size: var(--acf-font-size-md);
    line-height: var(--acf-leading-normal);
    overflow-wrap: anywhere;
}

/* Logical corner properties: the bubble "tails" point the right way in RTL. */
body.format-aicourse .aicourse-ai-message-user .aicourse-ai-message-content {
    background: var(--acf-ai-gradient);
    color: var(--acf-text-inverse);
    border-end-end-radius: var(--acf-radius-xs);
}

body.format-aicourse .aicourse-ai-message-bot .aicourse-ai-message-content {
    background: var(--acf-surface-raised);
    color: var(--acf-text-primary);
    border: 1px solid var(--acf-border-subtle);
    border-end-start-radius: var(--acf-radius-xs);
    box-shadow: var(--acf-elevation-1);
}

body.format-aicourse .aicourse-ai-chatbox-input {
    display: flex;
    align-items: flex-end;
    gap: var(--acf-space-2);
    flex-shrink: 0;
    padding: var(--acf-space-3) var(--acf-space-4);
    border-block-start: 1px solid var(--acf-border-subtle);
    background: var(--acf-surface-raised);
    /* ACF-FIX-2.1.19: the same invariant missed on the section card and the message list. The
       <label> for the textarea was inheriting the theme's colour against this mode-aware
       background: measured 1.11:1 in dark mode. Third occurrence of the pattern. */
    color: var(--acf-text-primary);
}

body.format-aicourse .aicourse-ai-chatbox-input textarea {
    flex: 1 1 auto;
    min-inline-size: 0;
    min-block-size: var(--acf-target-min);
    max-block-size: 7rem;
    padding: var(--acf-space-3);
    border: 1px solid var(--acf-border-default);
    border-radius: var(--acf-radius-lg);
    background: var(--acf-surface-raised);
    color: var(--acf-text-primary);
    font-family: var(--acf-font-family);
    font-size: var(--acf-font-size-md);
    line-height: var(--acf-leading-snug);
    resize: none;
    transition:
        border-color var(--acf-duration-fast) var(--acf-ease-standard),
        box-shadow var(--acf-duration-fast) var(--acf-ease-standard);
}

/* The previous rule set `outline: none` and changed only the border hue by one
   step — a 1px change that fails SC 2.4.13. A real ring is used now. */
body.format-aicourse .aicourse-ai-chatbox-input textarea:focus {
    border-color: var(--acf-focus-color);
    box-shadow: 0 0 0 3px var(--acf-status-info-bg);
}

body.format-aicourse .aicourse-ai-chatbox-input textarea:focus-visible {
    outline: var(--acf-focus-width) solid var(--acf-focus-color);
    outline-offset: 1px;
}

body.format-aicourse .aicourse-ai-chatbox-input textarea::placeholder {
    color: var(--acf-text-tertiary);
    opacity: 1;
}

body.format-aicourse .aicourse-ai-send-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--acf-radius-full);
    background: var(--acf-ai-gradient);
    color: var(--acf-text-inverse);
    cursor: pointer;
    box-shadow: var(--acf-elevation-1);
    transition:
        transform var(--acf-duration-fast) var(--acf-ease-spring),
        box-shadow var(--acf-duration-fast) var(--acf-ease-standard),
        filter var(--acf-duration-fast) var(--acf-ease-standard);
}

body.format-aicourse .aicourse-ai-send-btn:hover {
    transform: scale(1.05);
    filter: brightness(1.08);
    box-shadow: var(--acf-elevation-3);
}

body.format-aicourse .aicourse-ai-send-btn:active {
    transform: scale(0.95);
}

body.format-aicourse .aicourse-ai-send-btn svg {
    inline-size: var(--acf-icon-md);
    block-size: var(--acf-icon-md);
    flex: none;
    stroke: currentColor;
}

[dir="rtl"] body.format-aicourse .aicourse-ai-send-btn svg {
    transform: scaleX(-1);
}

/* --- Loading dots --------------------------------------------------------- */
body.format-aicourse .aicourse-ai-dots {
    display: inline-flex;
    align-items: center;
    gap: var(--acf-space-1);
}

body.format-aicourse .aicourse-ai-dots span {
    inline-size: 8px;
    block-size: 8px;
    border-radius: var(--acf-radius-full);
    background: var(--acf-ai-fg);
    animation: acf-dots-bounce 1.4s var(--acf-ease-standard) infinite both;
}

body.format-aicourse .aicourse-ai-dots span:nth-child(1) {
    animation-delay: -0.32s;
}
body.format-aicourse .aicourse-ai-dots span:nth-child(2) {
    animation-delay: -0.16s;
}
body.format-aicourse .aicourse-ai-dots span:nth-child(3) {
    animation-delay: 0s;
}

/* --- Quick actions -------------------------------------------------------- */
body.format-aicourse .aicourse-ai-quick-actions {
    padding: 0 var(--acf-space-1) var(--acf-space-2);
}

body.format-aicourse .aicourse-ai-quick-label {
    margin-block-end: var(--acf-space-2);
    font-size: var(--acf-font-size-2xs);
    font-weight: var(--acf-weight-semibold);
    letter-spacing: var(--acf-tracking-wider);
    text-transform: uppercase;
    color: var(--acf-text-tertiary);
}

body.format-aicourse .aicourse-ai-quick-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--acf-space-2);
}

/* Was #6366f1 on rgba(99,102,241,.08) = 3.87:1. --acf-ai-fg on --acf-ai-bg
   is 7.04:1 light / 7.33:1 dark. */
body.format-aicourse .aicourse-ai-quick-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--acf-space-1);
    min-block-size: 2.25rem;
    padding: var(--acf-space-1) var(--acf-space-3);
    border: 1px solid var(--acf-ai-border);
    border-radius: var(--acf-radius-pill);
    background: var(--acf-ai-bg);
    color: var(--acf-ai-fg);
    font-family: var(--acf-font-family);
    font-size: var(--acf-font-size-xs);
    font-weight: var(--acf-weight-medium);
    white-space: nowrap;
    cursor: pointer;
    transition:
        background var(--acf-duration-fast) var(--acf-ease-standard),
        border-color var(--acf-duration-fast) var(--acf-ease-standard),
        transform var(--acf-duration-fast) var(--acf-ease-spring);
}

body.format-aicourse .aicourse-ai-quick-btn:hover {
    background: var(--acf-ai-bg);
    border-color: var(--acf-ai-fg);
    transform: translateY(-1px);
}

body.format-aicourse .aicourse-ai-quick-btn:active {
    transform: translateY(0);
}

body.format-aicourse .aicourse-ai-quick-btn svg {
    inline-size: var(--acf-icon-xs);
    block-size: var(--acf-icon-xs);
    flex: none;
    stroke: currentColor;
}

/* --- Rating --------------------------------------------------------------- */
body.format-aicourse .aicourse-ai-rating {
    display: flex;
    align-items: center;
    gap: var(--acf-space-2);
    margin-block-start: var(--acf-space-2);
    padding-block-start: var(--acf-space-2);
    border-block-start: 1px solid var(--acf-border-subtle);
}

body.format-aicourse .aicourse-ai-rate-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-inline-size: 2.25rem;
    min-block-size: 2.25rem;
    padding: var(--acf-space-1);
    border: 1px solid var(--acf-border-default);
    border-radius: var(--acf-radius-md);
    background: transparent;
    font-size: var(--acf-font-size-md);
    line-height: var(--acf-leading-none);
    cursor: pointer;
    transition:
        background var(--acf-duration-fast) var(--acf-ease-standard),
        border-color var(--acf-duration-fast) var(--acf-ease-standard),
        transform var(--acf-duration-fast) var(--acf-ease-spring);
}

body.format-aicourse .aicourse-ai-rate-btn:hover {
    background: var(--acf-ai-bg);
    border-color: var(--acf-ai-border);
    transform: scale(1.08);
}

body.format-aicourse .aicourse-ai-rating-done {
    margin-block-start: var(--acf-space-2);
    padding-block-start: var(--acf-space-2);
    border-block-start: 1px solid var(--acf-border-subtle);
    font-size: var(--acf-font-size-xs);
    color: var(--acf-ai-fg);
}

/* Below the sm breakpoint the chatbox is a full-width bottom sheet. */
@media (max-width: 639px) {
    body.format-aicourse .aicourse-ai-chatbox {
        inset-block-end: 0;
        inset-inline: 0;
        inline-size: 100%;
        max-inline-size: 100%;
        block-size: 76dvh;
        max-block-size: 76dvh;
        border-inline: none;
        border-block-end: none;
        border-start-start-radius: var(--acf-radius-2xl);
        border-start-end-radius: var(--acf-radius-2xl);
        border-end-start-radius: 0;
        border-end-end-radius: 0;
    }
}

/* ==========================================================================
   19. AI BANNER GENERATE / REMOVE MODALS
   --------------------------------------------------------------------------
   Built in courseformat.js and appended to <body>. Deliberately dark in both
   themes — a focused, cinematic moment. It therefore reads the fixed
   --acf-inverse-* tokens rather than the theme-flipping surface tokens, and
   the two modals now share one surface, one radius and one accent instead of
   #1a1b2e / #1e1e2e and two unrelated purple families.
   ========================================================================== */

body.format-aicourse :is(.aicourse-bgen-overlay, .aicourse-bdel-overlay) {
    position: fixed;
    inset: 0;
    z-index: var(--acf-z-modal-alert);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--acf-space-5);
    background: var(--acf-inverse-scrim);
    backdrop-filter: blur(var(--acf-blur-sm));
    -webkit-backdrop-filter: blur(var(--acf-blur-sm));
}

body.format-aicourse :is(.aicourse-bgen-card, .aicourse-bdel-card) {
    inline-size: 100%;
    overflow: hidden;
    border: 1px solid var(--acf-inverse-border);
    border-radius: var(--acf-radius-2xl);
    background: var(--acf-inverse-surface);
    color: var(--acf-inverse-text);
    font-family: var(--acf-font-family);
    box-shadow: var(--acf-elevation-5);
}

body.format-aicourse .aicourse-bgen-card {
    max-inline-size: 30rem;
}

body.format-aicourse .aicourse-bdel-card {
    max-inline-size: 25rem;
    padding: var(--acf-space-8) var(--acf-space-7) var(--acf-space-6);
    text-align: center;
}

/* --- Header --------------------------------------------------------------- */
body.format-aicourse .aicourse-bgen-header {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--acf-space-3);
    padding: var(--acf-space-5) var(--acf-space-5) var(--acf-space-5);
    padding-inline-end: calc(var(--acf-target-min) + var(--acf-space-3));
    border-block-end: 1px solid var(--acf-inverse-border);
    background:
        linear-gradient(
            135deg,
            var(--acf-inverse-surface-2) 0%,
            var(--acf-inverse-surface) 100%
        );
}

body.format-aicourse .aicourse-bgen-header-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    inline-size: 2.875rem;
    block-size: 2.875rem;
    flex-shrink: 0;
    border-radius: var(--acf-radius-lg);
    background: var(--acf-ai-gradient);
    color: var(--acf-text-inverse);
}

body.format-aicourse .aicourse-bgen-header-text {
    flex: 1 1 auto;
    min-inline-size: 0;
}

body.format-aicourse .aicourse-bgen-title {
    margin: 0 0 2px;
    font-size: var(--acf-font-size-lg);
    font-weight: var(--acf-weight-bold);
    line-height: var(--acf-leading-snug);
    letter-spacing: var(--acf-tracking-tight);
    color: var(--acf-inverse-text);
}

body.format-aicourse .aicourse-bgen-subtitle {
    margin: 0;
    font-size: var(--acf-font-size-xs);
    font-weight: var(--acf-weight-medium);
    letter-spacing: var(--acf-tracking-wide);
    text-transform: uppercase;
    color: var(--acf-inverse-text-muted);   /* 9.6:1 */
}

body.format-aicourse .aicourse-bgen-close {
    position: absolute;
    inset-block-start: var(--acf-space-3);
    inset-inline-end: var(--acf-space-3);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: none;
    border-radius: var(--acf-radius-md);
    background: transparent;
    color: var(--acf-inverse-text-muted);
    cursor: pointer;
    transition:
        background var(--acf-duration-fast) var(--acf-ease-standard),
        color var(--acf-duration-fast) var(--acf-ease-standard);
}

body.format-aicourse .aicourse-bgen-close:hover {
    background: var(--acf-inverse-fill-hover);
    color: var(--acf-inverse-text);
}

/* --- Body ----------------------------------------------------------------- */
body.format-aicourse .aicourse-bgen-body {
    padding: var(--acf-space-5);
}

body.format-aicourse .aicourse-bgen-course-name {
    margin-block-end: var(--acf-space-3);
    padding: var(--acf-space-2) var(--acf-space-3);
    border: 1px solid var(--acf-ai-border);
    border-radius: var(--acf-radius-md);
    background: var(--acf-inverse-ai-tint);
    color: var(--acf-ai-400);
    font-size: var(--acf-font-size-base);
    font-weight: var(--acf-weight-semibold);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Was rgba(255,255,255,.45) = 4.17:1; 0.74 alpha = 9.6:1. */
body.format-aicourse .aicourse-bgen-course-name::before {
    content: "Course:";
    color: var(--acf-inverse-text-muted);
    font-size: var(--acf-font-size-xs);
    font-weight: var(--acf-weight-regular);
    letter-spacing: var(--acf-tracking-wide);
    text-transform: uppercase;
}

body.format-aicourse :is(.aicourse-bgen-desc, .aicourse-bdel-desc) {
    margin: 0 0 var(--acf-space-5);
    font-size: var(--acf-font-size-md);
    line-height: var(--acf-leading-relaxed);
    color: var(--acf-inverse-text-muted);
}

body.format-aicourse .aicourse-bgen-cost-box {
    margin-block-end: var(--acf-space-5);
    padding: var(--acf-space-4);
    border: 1px solid var(--acf-ai-border);
    border-radius: var(--acf-radius-lg);
    background: var(--acf-inverse-ai-wash);
    text-align: center;
}

body.format-aicourse .aicourse-bgen-cost-amount {
    margin-block-end: var(--acf-space-1);
    font-size: var(--acf-font-size-xl);
    font-weight: var(--acf-weight-black);
    letter-spacing: var(--acf-tracking-tight);
    color: var(--acf-ai-400);
}

body.format-aicourse .aicourse-bgen-cost-detail {
    font-size: var(--acf-font-size-xs);
    color: var(--acf-inverse-text-muted);
}

/* --- Actions -------------------------------------------------------------- */
body.format-aicourse :is(.aicourse-bgen-actions, .aicourse-bdel-actions) {
    display: flex;
    flex-wrap: wrap;
    gap: var(--acf-space-3);
    justify-content: flex-end;
}

body.format-aicourse .aicourse-bdel-actions {
    justify-content: center;
}

body.format-aicourse .aicourse-bgen-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--acf-space-2);
    min-block-size: var(--acf-target-min);
    padding: var(--acf-space-2) var(--acf-space-5);
    border: 1px solid transparent;
    border-radius: var(--acf-radius-md);
    font-family: var(--acf-font-family);
    font-size: var(--acf-font-size-md);
    font-weight: var(--acf-weight-semibold);
    line-height: var(--acf-leading-snug);
    cursor: pointer;
    transition:
        filter var(--acf-duration-fast) var(--acf-ease-standard),
        background var(--acf-duration-fast) var(--acf-ease-standard),
        transform var(--acf-duration-instant) var(--acf-ease-spring);
}

body.format-aicourse .aicourse-bgen-btn:active {
    transform: scale(0.97);
}

body.format-aicourse .aicourse-bgen-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

body.format-aicourse .aicourse-bgen-btn-cancel {
    background: var(--acf-inverse-fill);
    border-color: var(--acf-inverse-border);
    color: var(--acf-inverse-text);
}

body.format-aicourse .aicourse-bgen-btn-cancel:hover {
    background: var(--acf-inverse-fill-hover);
}

body.format-aicourse :is(.aicourse-bgen-btn-generate, .aicourse-bgen-btn-retry) {
    background: var(--acf-ai-gradient);
    color: var(--acf-text-inverse);
}

body.format-aicourse .aicourse-bgen-btn-done {
    background: var(--acf-status-done-solid);
    color: var(--acf-text-inverse);   /* 5.01:1 */
    padding-inline: var(--acf-space-7);
}

body.format-aicourse .aicourse-bdel-btn-confirm {
    flex: 1 1 auto;
    background: var(--acf-red-700);
    border-color: var(--acf-red-700);
    color: var(--acf-text-inverse);   /* 6.47:1 */
}

body.format-aicourse .aicourse-bdel-btn-confirm:hover {
    background: var(--acf-red-500);
    border-color: var(--acf-red-500);
}

body.format-aicourse :is(.aicourse-bgen-btn-generate, .aicourse-bgen-btn-retry, .aicourse-bgen-btn-done):hover {
    filter: brightness(1.1);
}

body.format-aicourse .aicourse-bgen-btn svg {
    inline-size: var(--acf-icon-sm);
    block-size: var(--acf-icon-sm);
    flex: none;
    stroke: currentColor;
}

/* --- States --------------------------------------------------------------- */
body.format-aicourse .aicourse-bgen-state-center {
    padding: var(--acf-space-5);
    text-align: center;
}

body.format-aicourse .aicourse-bgen-spinner {
    inline-size: 2.75rem;
    block-size: 2.75rem;
    margin: 0 auto var(--acf-space-4);
    border: 3px solid var(--acf-inverse-fill);
    border-block-start-color: var(--acf-ai-400);
    border-radius: var(--acf-radius-full);
    animation: acf-spin 0.8s linear infinite;
}

body.format-aicourse :is(.aicourse-bgen-loading-title, .aicourse-bgen-error-title, .aicourse-bdel-title) {
    margin: 0 0 var(--acf-space-2);
    font-size: var(--acf-font-size-lg);
    font-weight: var(--acf-weight-bold);
    line-height: var(--acf-leading-snug);
    color: var(--acf-inverse-text);
}

body.format-aicourse :is(.aicourse-bgen-loading-sub, .aicourse-bgen-success-msg, .aicourse-bgen-error-msg) {
    margin: 0 0 var(--acf-space-5);
    font-size: var(--acf-font-size-md);
    line-height: var(--acf-leading-relaxed);
    color: var(--acf-inverse-text-muted);
}

body.format-aicourse .aicourse-bgen-preview-wrap {
    position: relative;
    margin-block-end: var(--acf-space-4);
    border-radius: var(--acf-radius-lg);
    background: var(--acf-inverse-fill);
    overflow: hidden;
    line-height: 0;
}

body.format-aicourse .aicourse-bgen-preview-img {
    display: block;
    inline-size: 100%;
    block-size: 7rem;
    object-fit: cover;
}

body.format-aicourse .aicourse-bgen-preview-badge {
    position: absolute;
    inset-block-end: var(--acf-space-2);
    inset-inline-start: var(--acf-space-2);
    display: inline-flex;
    align-items: center;
    gap: var(--acf-space-1);
    padding: var(--acf-space-1) var(--acf-space-3);
    border-radius: var(--acf-radius-pill);
    background: var(--acf-status-done-solid);
    color: var(--acf-text-inverse);   /* 5.02:1 */
    font-size: var(--acf-font-size-2xs);
    font-weight: var(--acf-weight-semibold);
    line-height: var(--acf-leading-snug);
}

body.format-aicourse .aicourse-bgen-error-icon {
    margin-block-end: var(--acf-space-3);
    color: var(--acf-red-300);
}

body.format-aicourse .aicourse-bdel-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 3.5rem;
    block-size: 3.5rem;
    margin: 0 auto var(--acf-space-4);
    border-radius: var(--acf-radius-full);
    background: var(--acf-inverse-danger-bg);
    color: var(--acf-red-300);
}

body.format-aicourse .aicourse-bdel-errmsg {
    margin: 0 0 var(--acf-space-4);
    padding: var(--acf-space-2) var(--acf-space-3);
    border: 1px solid var(--acf-inverse-danger-border);
    border-radius: var(--acf-radius-md);
    background: var(--acf-inverse-danger-bg);
    color: var(--acf-red-300);
    font-size: var(--acf-font-size-sm);
    text-align: start;
}

/* ==========================================================================
   20. COURSE INDEX (Boost drawer)
   --------------------------------------------------------------------------
   The previous version of this block contained a universal-selector hover
   override with `outline: none !important` that destroyed keyboard focus for
   every descendant of the selected item, plus six `::before`/`::after`
   `display: none !important` rules arrived at by trial and error. All of that
   is gone. What remains is typography, a selected/hover surface, and a focus
   ring — expressed with normal specificity.
   ========================================================================== */

body.format-aicourse .courseindex-section {
    border-block-end: 1px solid var(--acf-border-subtle);
    padding-block: var(--acf-space-1);
}

body.format-aicourse .courseindex-section:last-child {
    border-block-end: none;
}

body.format-aicourse .courseindex-sectionname,
body.format-aicourse .courseindex-sectionname a {
    flex: 1 1 auto;
    min-inline-size: 0;
    font-size: var(--acf-font-size-base);
    font-weight: var(--acf-weight-semibold);
    line-height: var(--acf-leading-snug);
    color: var(--acf-text-brand);
    text-decoration: none;
}

body.format-aicourse .courseindex-item {
    display: flex;
    align-items: center;
    gap: var(--acf-space-2);
    padding: var(--acf-space-1) var(--acf-space-2);
    border: 1px solid transparent;   /* reserves space so hover cannot shift */
    border-radius: var(--acf-radius-sm);
    transition: background var(--acf-duration-fast) var(--acf-ease-standard);
}

body.format-aicourse .courseindex-item:hover {
    background: var(--acf-surface-hover);
}

/* ACF-FIX-2.1.204: the selected item's background and its text colour must be won TOGETHER.
   If a theme takes one and this sheet keeps the other, the row is painted in the theme's
   dark primary and then lettered in this sheet's dark brand navy: a 1.00:1 contrast ratio,
   which is literally invisible. That is what the course index showed for the section you
   were editing -- its name vanished into the highlight.

   2.1.6 tried to make the pair inseparable with !important alone. That is only half the
   cascade. Importance is settled first, so !important beats any number of plain theme
   declarations -- but between two !important declarations of the same origin, SPECIFICITY
   still decides. theme_academi's

       .drawer .drawercontent .courseindex .courseindex-section
       .courseindex-sectioncontent .courseindex-item.pageitem { background-color: $primary; }

   is (0,7,0). The moment a theme marks a rule like that !important it outranks the (0,4,1)
   selector 2.1.6 used, takes the background, and leaves the colour rule below untouched --
   the split reappears.

   So the pair is pinned on BOTH axes. `:not(#_acf_never)` matches every element (no such id
   exists anywhere in Moodle) and contributes an id's worth of specificity each time, giving
   these rules (2,3,1). No class-only theme selector can reach that however deeply it nests,
   so background and colour can no longer be separated by anything short of a theme that
   writes three ids into one course-index selector. Two tokens, no arms race, and it does
   not depend on which stylesheet a theme happens to load last. */
body.format-aicourse .courseindex-item:is(.pageitem, [data-selected="true"]):not(#_acf_never):not(#_acf_never) {
    /* stylelint-disable-next-line declaration-no-important -- see the note above. */
    background: var(--acf-index-selected-bg) !important;
    /* A theme gradient would otherwise paint over the flat colour set above. */
    /* stylelint-disable-next-line declaration-no-important -- must travel with the background. */
    background-image: none !important;
    /* stylelint-disable-next-line declaration-no-important -- must travel with the background. */
    border-color: var(--acf-brand-tint) !important;
}

body.format-aicourse .courseindex-item a,
body.format-aicourse .courseindex-item .text-truncate {
    font-size: var(--acf-font-size-md);
    font-weight: var(--acf-weight-regular);
    line-height: var(--acf-leading-snug);
    color: var(--acf-text-primary);
    text-decoration: none;
}

/* The other half of the pair. Same (2,3,1) base so it cannot be separated from the
   background, and the descendant list now names the section-title elements as well as the
   activity ones: in edit mode the section name is wrapped in core's inplace-editable markup
   (.inplaceeditable > a.quickeditlink > span), so a rule that only reached `a` and `span`
   left the theme free to colour the parts in between.

   The colour is --acf-text-primary, NOT --acf-text-brand. The background here is 8% of the
   site's brand over the page surface, and --acf-text-brand is that same brand at full
   strength, so lettering one on the other means the contrast ratio is decided entirely by
   how dark the site's theme primary happens to be. Measured across the brands Moodle sites
   actually use: navy 8.51:1 and Boost blue 4.80:1 pass, but azure 2.31:1, teal 2.00:1 and
   amber 1.96:1 all fail WCAG AA -- on the same code, with nothing wrong but the site's
   colour choice. That is the shape of bug that gets reported as "it works for me but not for them" and is never reproducible by the person fixing it. The selection is already
   carried by the tint, the border and the semibold weight, so the text can safely stay the
   colour the rest of the index uses and be legible on every site. */
body.format-aicourse .courseindex-item:is(.pageitem, [data-selected="true"]):not(#_acf_never):not(#_acf_never),
body.format-aicourse .courseindex-item:is(.pageitem, [data-selected="true"]):not(#_acf_never):not(#_acf_never)
    :is(a, span, .text-truncate, .courseindex-link, .courseindex-sectionname, .inplaceeditable, .quickeditlink):not(.badge) {
    /* stylelint-disable-next-line declaration-no-important -- pinned to the background above. */
    color: var(--acf-text-primary) !important;
    font-weight: var(--acf-weight-semibold);
}

/* Focus is restored, not removed. */
body.format-aicourse .courseindex-item a:focus-visible,
body.format-aicourse .courseindex-sectionname a:focus-visible,
body.format-aicourse .courseindex-chevron:focus-visible,
body.format-aicourse .courseindex .btn.btn-icon:focus-visible {
    outline: var(--acf-focus-width) solid var(--acf-focus-color);
    outline-offset: var(--acf-focus-offset);
    border-radius: var(--acf-radius-xs);
}

/* Completion icons stay visible in edit mode, where core hides them.
   `!important` #20: core marks them with a display utility. */
body.format-aicourse .courseindex :is(.completioninfo, [data-region="completioninfo"], .completion-icon, .courseindex-completion) {
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    display: inline-flex !important;
    visibility: visible;
    opacity: 1;
}

body.format-aicourse .courseindex .completioninfo :is(img, svg, i) {
    inline-size: var(--acf-icon-sm);
    block-size: var(--acf-icon-sm);
    flex: none;
}

/* Chevrons: icon-only, no chrome, but a real 44px target.
   `!important` #21-#22: fights Bootstrap `.btn` and Boost `.btn-icon`, which
   set their own padding, background, border and box-shadow at equal
   specificity — and Boost is concatenated after this sheet, so it wins ties. */
body.format-aicourse .courseindex .btn.btn-icon,
body.format-aicourse .courseindex .icons-collapse-expand,
body.format-aicourse .courseindex-chevron {
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    inline-size: var(--acf-target-min) !important;
    /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
    block-size: var(--acf-target-min) !important;
    min-inline-size: var(--acf-target-min);
    min-block-size: var(--acf-target-min);
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    border-radius: var(--acf-radius-sm);
    box-shadow: none;
    color: var(--acf-text-secondary);
    cursor: pointer;
}

body.format-aicourse .courseindex .btn.btn-icon:hover,
body.format-aicourse .courseindex-chevron:hover {
    background: var(--acf-surface-hover);
}

body.format-aicourse .courseindex .btn.btn-icon i,
body.format-aicourse .courseindex-chevron i {
    font-size: var(--acf-font-size-md);
    color: inherit;
}

/* Boost animates the chevron with a class swap, not a transform; any inherited
   rotation would double-rotate it. */
body.format-aicourse .courseindex :is(i, .fa, [class*="fa-"]) {
    transform: none;
}

/* ==========================================================================
   21. REPORT PAGES
   --------------------------------------------------------------------------
   report.php sets pagelayout `incourse`, so body.format-aicourse is present and
   these rules are correctly scoped.

   The three report pages used to ship an inline <style> block per page. Those
   blocks are gone: the pages are renderables + mustache templates now, and this
   sheet is the ONLY source of styling for them. Everything the old inline
   blocks provided is therefore expressed here, tokenised — which is what buys
   them dark mode, high contrast, reduced motion and print for the first time.

   admin_report.php and index.php use pagelayout `admin` (no format-aicourse
   body class) and their own `.aicadmin-` / `.aitutor-` namespaces. Those rules
   are scoped to the plugin-owned `.aicadmin-wrap` / `.aitutor-report-index`
   roots, which is as tight a guarantee as `.aicourse-`. Both roots carry the
   token set (see section 2), so the rules below use the same `--acf-*` tokens
   as the in-course pages and need no hardcoded colour.

   SURFACES ON THE ADMIN PAGES
     Every admin/index rule that sets a text colour also owns the surface that
     text sits on. Bootstrap's own `.card` / `.badge` backgrounds do not follow
     the plugin's tokens, so inheriting them would put light-mode white behind
     dark-mode text the moment the tokens flip.
   ========================================================================== */

/* The report canvas. Sunken so the cards, the filter bar and the results table read as objects
   sitting ON a surface rather than as floating fragments — the same figure/ground relationship
   the course page gets from its hero and card grid. It also means every piece of text on these
   pages sits on a surface this plugin owns, which is what makes dark mode work: the page
   background belongs to the theme and does not follow the plugin's tokens. */
body.format-aicourse .aicourse-report-container {
    container-type: inline-size;
    max-inline-size: var(--acf-container-max);
    margin-inline: auto;
    padding: var(--acf-space-5) var(--acf-gutter);
    border: 1px solid var(--acf-border-subtle);
    border-radius: var(--acf-radius-xl);
    background: var(--acf-surface-sunken);
    color: var(--acf-text-primary);
}

body.format-aicourse .aicourse-report-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--acf-space-3);
    margin-block-end: var(--acf-space-5);
}

body.format-aicourse .aicourse-report-title {
    margin: 0;
    font-size: var(--acf-font-size-xl);
    font-weight: var(--acf-weight-semibold);
    letter-spacing: var(--acf-tracking-tight);
    color: var(--acf-text-primary);
}

body.format-aicourse .aicourse-stats-row {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 12rem), 1fr));
    gap: var(--acf-space-4);
    margin-block-end: var(--acf-space-5);
}

body.format-aicourse .aicourse-stat-card {
    min-inline-size: 0;
    padding: var(--acf-space-4);
    border: 1px solid var(--acf-border-subtle);
    border-radius: var(--acf-radius-lg);
    background: var(--acf-surface-raised);
    box-shadow: var(--acf-elevation-1);
}

body.format-aicourse .aicourse-stat-value {
    font-size: var(--acf-font-size-xl);
    font-weight: var(--acf-weight-bold);
    font-variant-numeric: tabular-nums;
    color: var(--acf-text-primary);
}

body.format-aicourse .aicourse-stat-label {
    font-size: var(--acf-font-size-xs);
    font-weight: var(--acf-weight-medium);
    letter-spacing: var(--acf-tracking-wide);
    text-transform: uppercase;
    color: var(--acf-text-tertiary);
}

body.format-aicourse .aicourse-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--acf-space-1);
    margin-block-end: var(--acf-space-4);
    border-block-end: 1px solid var(--acf-border-default);
}

body.format-aicourse .aicourse-tab {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--acf-target-min);
    padding: var(--acf-space-2) var(--acf-space-4);
    border: none;
    border-block-end: 2px solid transparent;
    background: transparent;
    color: var(--acf-text-secondary);   /* was #64748b on #f1f5f9 = 4.34:1 */
    font-size: var(--acf-font-size-md);
    font-weight: var(--acf-weight-medium);
    text-decoration: none;
    cursor: pointer;
}

body.format-aicourse .aicourse-tab:hover {
    color: var(--acf-text-primary);
    background: var(--acf-surface-hover);
}

body.format-aicourse .aicourse-tab.active {
    color: var(--acf-ai-fg);            /* was #6366f1 on #fff = 4.47:1 */
    border-block-end-color: var(--acf-ai-fg);
    font-weight: var(--acf-weight-semibold);
}

body.format-aicourse .aicourse-filters {
    display: flex;
    flex-wrap: wrap;
    gap: var(--acf-space-3);
    margin-block-end: var(--acf-space-4);
}

body.format-aicourse :is(.aicourse-filter-input, .aicourse-filter-select) {
    flex: 1 1 12rem;
    min-inline-size: 0;
    min-block-size: var(--acf-target-min);
    padding: var(--acf-space-2) var(--acf-space-3);
    border: 1px solid var(--acf-border-default);
    border-radius: var(--acf-radius-md);
    background: var(--acf-surface-raised);
    color: var(--acf-text-primary);
    font-family: var(--acf-font-family);
    font-size: var(--acf-font-size-md);
}

/* THE mobile fix: the chat tables have a ~44rem minimum and previously
   overflowed #region-main with no way to reach the hidden columns, because the
   old sheet also forced `overflow-x: hidden` on <body>. That body rule is gone
   and the container now scrolls. */
body.format-aicourse :is(.aicourse-report-container, .aicourse-content-grid) {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}

body.format-aicourse .aicourse-chat-table {
    inline-size: 100%;
    min-inline-size: 44rem;
    border-collapse: collapse;
    font-size: var(--acf-font-size-md);
    color: var(--acf-text-primary);
    background: var(--acf-surface-raised);
    border-radius: var(--acf-radius-lg);
    box-shadow: var(--acf-elevation-1);
}

/* The caption is the table's accessible name and stays visible, but it is a label, not a
   heading: the page already has an <h1> and an <h2>. It sits outside the table's own background
   box, so it carries its own surface — otherwise it is the one piece of text on the page with
   nothing behind it. */
body.format-aicourse .aicourse-chat-table caption {
    caption-side: top;
    padding: var(--acf-space-3) var(--acf-space-3) var(--acf-space-2);
    border-start-start-radius: var(--acf-radius-lg);
    border-start-end-radius: var(--acf-radius-lg);
    background: var(--acf-surface-raised);
    color: var(--acf-text-tertiary);
    font-size: var(--acf-font-size-sm);
    text-align: start;
}

body.format-aicourse .aicourse-chat-table :is(th, td) {
    padding: var(--acf-space-3);
    border-block-end: 1px solid var(--acf-border-subtle);
    text-align: start;
    vertical-align: top;
}

body.format-aicourse .aicourse-chat-table th {
    position: sticky;
    inset-block-start: 0;
    z-index: var(--acf-z-raised);
    background: var(--acf-surface-sunken);
    font-size: var(--acf-font-size-xs);
    font-weight: var(--acf-weight-semibold);
    letter-spacing: var(--acf-tracking-wide);
    text-transform: uppercase;
    color: var(--acf-text-secondary);
}

body.format-aicourse .aicourse-chat-table tbody tr:hover {
    background: var(--acf-surface-hover);
}

body.format-aicourse :is(.aicourse-chat-question, .aicourse-chat-response) {
    max-inline-size: 28rem;
    overflow-wrap: anywhere;
}

body.format-aicourse .aicourse-chat-user {
    display: inline-flex;
    align-items: center;
    gap: var(--acf-space-2);
    white-space: nowrap;
}

body.format-aicourse .aicourse-chat-avatar {
    inline-size: 2rem;
    block-size: 2rem;
    flex: none;
    border-radius: var(--acf-radius-full);
    object-fit: cover;
}

body.format-aicourse .aicourse-content-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
    gap: var(--acf-space-4);
}

body.format-aicourse .aicourse-content-card {
    min-inline-size: 0;
    padding: var(--acf-space-4);
    border: 1px solid var(--acf-border-subtle);
    border-radius: var(--acf-radius-lg);
    background: var(--acf-surface-raised);
    box-shadow: var(--acf-elevation-1);
}

body.format-aicourse .aicourse-content-card-status {
    color: var(--acf-status-done-fg);   /* was #16a34a on white = 3.30:1 */
    font-size: var(--acf-font-size-xs);
    font-weight: var(--acf-weight-semibold);
}

body.format-aicourse :is(.aicourse-correction-btn, .aicourse-rating-btn) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--acf-space-2);
    min-block-size: var(--acf-target-min);
    padding: var(--acf-space-2) var(--acf-space-4);
    border: 1px solid var(--acf-border-default);
    border-radius: var(--acf-radius-md);
    background: var(--acf-surface-raised);
    color: var(--acf-text-primary);
    font-family: var(--acf-font-family);
    font-size: var(--acf-font-size-md);
    cursor: pointer;
}

body.format-aicourse .aicourse-correction-textarea {
    inline-size: 100%;
    min-block-size: 6rem;
    padding: var(--acf-space-3);
    border: 1px solid var(--acf-border-default);
    border-radius: var(--acf-radius-md);
    background: var(--acf-surface-raised);
    color: var(--acf-text-primary);
    font-family: var(--acf-font-family);
    font-size: var(--acf-font-size-md);
    resize: vertical;
}

body.format-aicourse .aicourse-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--acf-space-1);
    margin-block-start: var(--acf-space-5);
}

/* Core's paging_bar renders Bootstrap `.page-link` anchors, which bring their own white
   background. Setting only the colour here is what used to leave the numbers invisible as soon
   as the tokens flipped, so the surface is set alongside it. */
body.format-aicourse .aicourse-pagination a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-inline-size: var(--acf-target-min);
    min-block-size: var(--acf-target-min);
    padding-inline: var(--acf-space-2);
    border: 1px solid var(--acf-border-default);
    border-radius: var(--acf-radius-md);
    background-color: var(--acf-surface-raised);
    color: var(--acf-text-primary);
    font-variant-numeric: tabular-nums;
    text-decoration: none;
}

body.format-aicourse .aicourse-pagination a:hover {
    background-color: var(--acf-surface-hover);
    border-color: var(--acf-border-strong);
}

/* The current page. Core marks it with .active on the wrapping <li>. */
body.format-aicourse .aicourse-pagination .active a,
body.format-aicourse .aicourse-pagination a.active {
    border-color: transparent;
    background-color: var(--acf-ai-600);
    color: var(--acf-text-inverse);
    font-weight: var(--acf-weight-semibold);
}

body.format-aicourse .aicourse-pagination :is(.page-item.disabled a, .disabled) {
    color: var(--acf-text-tertiary);
}

/* --- Admin report (own namespace, own page layout) ------------------------ */
.aicadmin-wrap .aicadmin-table-wrap {
    inline-size: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}

.aicadmin-wrap .aicadmin-table {
    inline-size: 100%;
    min-inline-size: 52rem;
    border-collapse: collapse;
}

.aicadmin-wrap .aicadmin-table :is(th, td) {
    text-align: start;
    vertical-align: top;
}

.aicadmin-wrap .aicadmin-table th {
    position: sticky;
    inset-block-start: 0;
    z-index: 1;
}

.aicadmin-wrap .aicadmin-stats {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 11rem), 1fr));
    gap: 1rem;
}

.aicadmin-wrap .aicadmin-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.aicadmin-wrap :is(.aicadmin-btn, .aicadmin-toggle-link, .aicadmin-course-link, .aicadmin-user-link):focus-visible {
    outline: 2px solid #1d4ed8;
    outline-offset: 2px;
}

.aicadmin-wrap .aicadmin-btn {
    min-block-size: var(--acf-target-min);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* --------------------------------------------------------------------------
   21a. report.php — the rules the removed inline <style> block used to carry
   -------------------------------------------------------------------------- */

body.format-aicourse .aicourse-report-title {
    display: flex;
    align-items: center;
    gap: var(--acf-space-3);
}

body.format-aicourse .aicourse-report-title svg {
    flex: none;
    color: var(--acf-ai-fg);
}

body.format-aicourse .aicourse-section-card {
    padding: var(--acf-space-4);
    border: 1px solid var(--acf-border-subtle);
    border-radius: var(--acf-radius-lg);
    background: var(--acf-surface-raised);
    box-shadow: var(--acf-elevation-1);
    margin-block-end: var(--acf-space-4);
}

body.format-aicourse .aicourse-section-title {
    display: flex;
    align-items: center;
    gap: var(--acf-space-2);
    margin-block-end: var(--acf-space-3);
    font-size: var(--acf-font-size-lg);
    font-weight: var(--acf-weight-semibold);
    color: var(--acf-text-primary);
}

body.format-aicourse .aicourse-course-summary {
    color: var(--acf-text-secondary);
    line-height: var(--acf-leading-relaxed);
}

body.format-aicourse .aicourse-course-summary > :last-child {
    margin-block-end: 0;
}

body.format-aicourse .aicourse-content-card-header {
    display: flex;
    align-items: center;
    gap: var(--acf-space-3);
    margin-block-end: var(--acf-space-2);
}

body.format-aicourse .aicourse-content-card-icon {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    inline-size: 2.25rem;
    block-size: 2.25rem;
    border-radius: var(--acf-radius-md);
    background: var(--acf-ai-bg);
    color: var(--acf-ai-fg);
}

body.format-aicourse .aicourse-content-card-icon img.icon {
    inline-size: 1.25rem;
    block-size: 1.25rem;
    margin: 0;
}

body.format-aicourse .aicourse-content-card-title {
    margin: 0;
    font-size: var(--acf-font-size-md);
    font-weight: var(--acf-weight-semibold);
    color: var(--acf-text-primary);
    overflow-wrap: anywhere;
}

body.format-aicourse .aicourse-content-card-type {
    font-size: var(--acf-font-size-xs);
    text-transform: capitalize;
    color: var(--acf-text-tertiary);
}

body.format-aicourse .aicourse-content-card-status {
    display: flex;
    align-items: center;
    gap: var(--acf-space-2);
    margin-block-start: var(--acf-space-2);
}

body.format-aicourse .aicourse-content-card-status svg {
    flex: none;
    inline-size: 0.875rem;
    block-size: 0.875rem;
}

body.format-aicourse .aicourse-content-card-preview {
    margin-block-start: var(--acf-space-2);
    font-size: var(--acf-font-size-sm);
    line-height: var(--acf-leading-normal);
    color: var(--acf-text-secondary);
    overflow-wrap: anywhere;
}

/* The filter row is a <fieldset>; Boost gives fieldsets a bottom margin only. */
body.format-aicourse .aicourse-filter-form {
    margin-block-end: var(--acf-space-4);
}

body.format-aicourse .aicourse-report-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--acf-space-3);
    margin-block-end: var(--acf-space-3);
}

body.format-aicourse .aicourse-report-count {
    margin: 0;
    font-size: var(--acf-font-size-sm);
    color: var(--acf-text-tertiary);
}

/* The "rows per page" control is core's single_select, which renders its own <select> and
   ignores the class the renderable puts on the wrapper. Boost sizes it at 37px and paints it
   white, so it needs both the touch target and the token treatment the filter controls get. */
body.format-aicourse .aicourse-report-perpage select {
    min-block-size: var(--acf-target-min);
    /* The inline-end padding leaves room for Boost's own dropdown arrow, which is a background
       image on .custom-select and would otherwise sit on top of the number. */
    padding: var(--acf-space-2) var(--acf-space-7) var(--acf-space-2) var(--acf-space-3);
    border: 1px solid var(--acf-border-default);
    border-radius: var(--acf-radius-md);
    background-color: var(--acf-surface-raised);
    color: var(--acf-text-primary);
    font-size: var(--acf-font-size-md);
}

body.format-aicourse .aicourse-report-perpage :is(label, .singleselect) {
    display: inline-flex;
    align-items: center;
    gap: var(--acf-space-2);
    margin: 0;
    font-size: var(--acf-font-size-sm);
    color: var(--acf-text-tertiary);
}

body.format-aicourse .aicourse-sort-link {
    display: inline-flex;
    align-items: center;
    gap: var(--acf-space-1);
    min-block-size: var(--acf-target-min);
    color: inherit;
    text-decoration: none;
}

body.format-aicourse .aicourse-sort-link:hover {
    color: var(--acf-text-primary);
    text-decoration: underline;
}

body.format-aicourse .aicourse-chat-username {
    font-weight: var(--acf-weight-medium);
}

body.format-aicourse .aicourse-chat-date {
    color: var(--acf-text-secondary);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

body.format-aicourse .aicourse-chat-rating {
    display: flex;
    gap: var(--acf-space-1);
}

/* ACF-FIX-2.1: on the teacher report the rating belongs to the LEARNER — it is their judgement
   of the AI answer, and the signal the report exists to surface — so it is shown read-only
   rather than as a control a teacher could overwrite. Teachers give feedback via Correct. */
body.format-aicourse .aicourse-chat-rating-readonly {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--acf-target-min);
}

body.format-aicourse .aicourse-rating-state {
    display: inline-flex;
    align-items: center;
    gap: var(--acf-space-1);
    padding: var(--acf-space-1) var(--acf-space-2);
    border: 1px solid var(--acf-border-subtle);
    border-radius: var(--acf-radius-pill);
    background: var(--acf-surface-muted);
    color: var(--acf-text-secondary);
    font-size: var(--acf-font-size-2xs);
    font-weight: var(--acf-weight-medium);
    line-height: var(--acf-leading-tight);
    white-space: nowrap;
}

body.format-aicourse .aicourse-rating-state.helpful {
    border-color: var(--acf-status-done-border);
    background: var(--acf-status-done-bg);
    color: var(--acf-status-done-fg);
}

body.format-aicourse .aicourse-rating-state.not-helpful {
    border-color: var(--acf-status-danger-border);
    background: var(--acf-status-danger-bg);
    color: var(--acf-status-danger-fg);
}

/* The rating buttons are icon-only, so they are square rather than pill-wide.
   .aicourse-rating-btn already has the shared button treatment above. */
body.format-aicourse .aicourse-rating-btn {
    inline-size: var(--acf-target-min);
    min-inline-size: var(--acf-target-min);
    padding-inline: 0;
    color: var(--acf-text-secondary);
    transition:
        background var(--acf-duration-fast) var(--acf-ease-standard),
        border-color var(--acf-duration-fast) var(--acf-ease-standard),
        color var(--acf-duration-fast) var(--acf-ease-standard);
}

body.format-aicourse :is(.aicourse-rating-btn, .aicourse-correction-btn):hover {
    background: var(--acf-surface-hover);
    border-color: var(--acf-border-strong);
}

/* Button hierarchy. The templates already mark the primary action of each
   cluster with Bootstrap's `.btn-primary` (Apply filters, Save correction), so
   that class is what selects the filled AI accent — no new class name, and the
   secondary actions keep the neutral treatment above.
   White on --acf-ai-600 is 6.29:1, on --acf-ai-700 8.59:1. */
body.format-aicourse .aicourse-correction-btn.btn-primary {
    border-color: transparent;
    background: var(--acf-ai-600);
    color: var(--acf-text-inverse);
    font-weight: var(--acf-weight-medium);
}

body.format-aicourse .aicourse-correction-btn.btn-primary:hover {
    border-color: transparent;
    background: var(--acf-ai-700);
    color: var(--acf-text-inverse);
}

body.format-aicourse a.aicourse-correction-btn {
    text-decoration: none;
}

/* The same accent on the two `admin` pagelayout pages, so "Apply filters" and "View report"
   are one button in three places rather than three different blues. The CSV download keeps
   Boost's success colour: it is a different kind of action, and it is the only one on the page
   that leaves the site. */
.aicadmin-wrap .aicadmin-btn-primary,
.aitutor-report-index .aitutor-course-btn.btn-primary {
    border-color: transparent;
    background-color: var(--acf-ai-600);
    color: var(--acf-text-inverse);
}

.aicadmin-wrap .aicadmin-btn-primary:hover,
.aitutor-report-index .aitutor-course-btn.btn-primary:hover {
    border-color: transparent;
    background-color: var(--acf-ai-700);
    color: var(--acf-text-inverse);
}

/* The outline button on the index page. Boost's .btn-outline-primary is its own blue, which is
   3.33:1 on the dark canvas — the one AA failure the audit found on these pages. The brand text
   token is 9.72:1 light and 8.10:1 dark. */
.aitutor-report-index .aitutor-course-btn.btn-outline-primary {
    border-color: var(--acf-border-strong);
    background-color: var(--acf-surface-raised);
    color: var(--acf-text-brand);
}

.aitutor-report-index .aitutor-course-btn.btn-outline-primary:hover {
    border-color: var(--acf-border-brand);
    background-color: var(--acf-surface-hover);
    color: var(--acf-text-brand);
}

/* The two rating states. Both fg tokens are audited against the tint they sit
   on and against the raised surface (6.17:1 and 6.1:1 in light mode). */
body.format-aicourse .aicourse-rating-btn.helpful {
    border-color: var(--acf-status-done-border);
    background: var(--acf-status-done-bg);
    color: var(--acf-status-done-fg);
}

body.format-aicourse .aicourse-rating-btn.not-helpful {
    border-color: var(--acf-status-danger-border);
    background: var(--acf-status-danger-bg);
    color: var(--acf-status-danger-fg);
}

body.format-aicourse .aicourse-rating-btn[aria-pressed="true"] {
    box-shadow: inset 0 0 0 1px currentcolor;
}

/* A rating that is neither pressed state must still read as "off" rather than
   as an unavailable control, so only the disabled case is dimmed. */
body.format-aicourse .aicourse-rating-btn[disabled] {
    opacity: 0.55;
    cursor: not-allowed;
}

body.format-aicourse .aicourse-chat-correction {
    margin-block-start: var(--acf-space-2);
    padding: var(--acf-space-2);
    border-inline-start: 3px solid var(--acf-status-doing-border);
    border-radius: var(--acf-radius-sm);
    background: var(--acf-status-doing-bg);
    color: var(--acf-text-primary);
    font-size: var(--acf-font-size-sm);
}

body.format-aicourse .aicourse-chat-correction strong {
    display: block;
    color: var(--acf-status-doing-fg);
    font-size: var(--acf-font-size-xs);
    letter-spacing: var(--acf-tracking-wide);
    text-transform: uppercase;
}

/* The correction panel is toggled with the HTML `hidden` attribute, so it needs
   NO display rule to start closed. These are the open-state styles only. */
body.format-aicourse .aicourse-correction-form {
    margin-block-start: var(--acf-space-3);
    padding: var(--acf-space-3);
    border: 1px solid var(--acf-border-subtle);
    border-radius: var(--acf-radius-md);
    background: var(--acf-surface-sunken);
    min-inline-size: 16rem;
}

body.format-aicourse .aicourse-correction-form label {
    font-size: var(--acf-font-size-xs);
    font-weight: var(--acf-weight-semibold);
    letter-spacing: var(--acf-tracking-wide);
    text-transform: uppercase;
    color: var(--acf-text-tertiary);
}

body.format-aicourse .aicourse-correction-actions {
    display: flex;
    gap: var(--acf-space-2);
    margin-block-start: var(--acf-space-2);
}

body.format-aicourse .aicourse-empty-state h3 {
    font-size: var(--acf-font-size-lg);
    font-weight: var(--acf-weight-semibold);
    color: var(--acf-text-primary);
}

/* The row the AMD module has just written to. Confirms an in-place update that
   would otherwise be invisible when the change is off-screen colour only.
   `format_aicourse/report` adds the class and removes it on animationend; the
   reduced-motion guard in section 22 already covers it because the class is
   `aicourse-` prefixed. */
body.format-aicourse tr.aicourse-row-updated > td {
    animation: acf-row-flash var(--acf-duration-slower) var(--acf-ease-out) 1;
}

/* Visually hidden, still announced: the module's aria-live region. Not
   `display: none`, which would silence it. */
body.format-aicourse .aicourse-report-live {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

/* Focus. Section 6 already covers the tabs, the rating and correction buttons
   and the two filter controls; these are the report controls it does not name,
   including the ones on the two `admin` pagelayout pages, which never match a
   `body.format-aicourse` selector. */
body.format-aicourse :is(
.aicourse-sort-link, .aicourse-correction-textarea, .aicourse-pagination a):focus-visible,
body.format-aicourse .aicourse-report-perpage select:focus-visible,
.aicadmin-wrap :is(.aicadmin-sort-link, .aicadmin-pagination a):focus-visible,
.aicadmin-wrap :is(.aicadmin-filter-group, .aicadmin-result-bar) :is(select, input):focus-visible,
.aitutor-report-index :is(.aitutor-course-btn, a):focus-visible {
    outline: var(--acf-focus-width) solid var(--acf-focus-color);
    outline-offset: var(--acf-focus-offset);
    border-radius: var(--acf-radius-xs);
}

/* --------------------------------------------------------------------------
   21b. admin_report.php — `.aicadmin-` namespace, `admin` pagelayout
   -------------------------------------------------------------------------- */

/* Same canvas as the in-course report (section 21a): cards on a sunken surface, and every piece
   of text on a surface the plugin owns so the tokens can flip as one. */
.aicadmin-wrap {
    max-inline-size: 1500px;
    margin-inline: auto;
    padding: var(--acf-space-5) var(--acf-gutter);
    border: 1px solid var(--acf-border-subtle);
    border-radius: var(--acf-radius-xl);
    background: var(--acf-surface-sunken);
    color: var(--acf-text-primary);
}

/* Every plugin-owned surface on this page, so text and background flip
   together. These carry their own padding: the templates no longer wrap them in
   a Bootstrap `.card-body`, which restores the DOM the string builder emitted. */
.aicadmin-wrap :is(.aicadmin-stat, .aicadmin-filter-card, .aicadmin-table-wrap) {
    border: 1px solid var(--acf-border-subtle);
    border-radius: var(--acf-radius-lg);
    background: var(--acf-surface-raised);
    box-shadow: var(--acf-elevation-1);
    color: var(--acf-text-primary);
}

.aicadmin-wrap .aicadmin-stats {
    margin-block-end: var(--acf-space-6);
}

.aicadmin-wrap .aicadmin-stat {
    padding: var(--acf-space-4);
}

.aicadmin-wrap .aicadmin-filter-card {
    padding: var(--acf-space-4);
    margin-block-end: var(--acf-space-5);
}

.aicadmin-wrap .aicadmin-filter-row {
    align-items: flex-end;
}

.aicadmin-wrap .aicadmin-result-bar-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--acf-space-3);
}

.aicadmin-wrap .aicadmin-date-time {
    color: var(--acf-text-tertiary);
    font-size: var(--acf-font-size-xs);
}

.aicadmin-wrap .aicadmin-nodata {
    color: var(--acf-text-tertiary);
}

/* The filter groups already carry Boost's .form-group bottom margin; the row
   supplies the horizontal rhythm, so the vertical one is not doubled. */
.aicadmin-wrap .aicadmin-filter-group.form-group {
    margin-block-end: 0;
}

.aicadmin-wrap .aicadmin-stat-val {
    font-size: var(--acf-font-size-xl);
    font-weight: var(--acf-weight-bold);
    font-variant-numeric: tabular-nums;
    line-height: var(--acf-leading-tight);
    color: var(--acf-ai-fg);
}

.aicadmin-wrap .aicadmin-stat-lbl {
    margin-block-start: var(--acf-space-1);
    font-size: var(--acf-font-size-xs);
    color: var(--acf-text-tertiary);
}

.aicadmin-wrap .aicadmin-filter-group {
    display: flex;
    flex-direction: column;
    gap: var(--acf-space-1);
    flex: 1 1 10rem;
    min-inline-size: 8rem;
}

.aicadmin-wrap .aicadmin-filter-group label {
    font-size: var(--acf-font-size-2xs);
    font-weight: var(--acf-weight-semibold);
    letter-spacing: var(--acf-tracking-wide);
    text-transform: uppercase;
    color: var(--acf-text-tertiary);
}

/* 44px touch target on every filter control. Boost's .form-control /
   .custom-select are 37px. */
.aicadmin-wrap .aicadmin-filter-group :is(select, input),
.aicadmin-wrap .aicadmin-result-bar select {
    min-block-size: var(--acf-target-min);
    border: 1px solid var(--acf-border-default);
    border-radius: var(--acf-radius-md);
    background-color: var(--acf-surface-raised);
    color: var(--acf-text-primary);
}

.aicadmin-wrap .aicadmin-filter-btns {
    display: flex;
    align-items: flex-end;
    gap: var(--acf-space-2);
}

.aicadmin-wrap .aicadmin-result-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--acf-space-2);
    margin-block-end: var(--acf-space-3);
}

.aicadmin-wrap .aicadmin-result-bar-count {
    font-size: var(--acf-font-size-sm);
    color: var(--acf-text-tertiary);
}

.aicadmin-wrap .aicadmin-table {
    color: var(--acf-text-primary);
    font-size: var(--acf-font-size-md);
}

/* The caption is the table's accessible name, not a heading — Boost renders it at 24px. */
.aicadmin-wrap .aicadmin-table caption {
    caption-side: top;
    padding: var(--acf-space-3) var(--acf-space-3) var(--acf-space-2);
    color: var(--acf-text-tertiary);
    font-size: var(--acf-font-size-sm);
    text-align: start;
}

/* Same treatment for the admin pagination, which is the same core component. */
.aicadmin-wrap .aicadmin-pagination a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-inline-size: var(--acf-target-min);
    min-block-size: var(--acf-target-min);
    padding-inline: var(--acf-space-2);
    border: 1px solid var(--acf-border-default);
    border-radius: var(--acf-radius-md);
    background-color: var(--acf-surface-raised);
    color: var(--acf-text-primary);
    font-variant-numeric: tabular-nums;
    text-decoration: none;
}

.aicadmin-wrap .aicadmin-pagination a:hover {
    background-color: var(--acf-surface-hover);
    border-color: var(--acf-border-strong);
}

.aicadmin-wrap .aicadmin-pagination :is(.active a, a.active) {
    border-color: transparent;
    background-color: var(--acf-ai-600);
    color: var(--acf-text-inverse);
    font-weight: var(--acf-weight-semibold);
}

.aicadmin-wrap .aicadmin-table :is(th, td) {
    padding: var(--acf-space-3);
    border-block-end: 1px solid var(--acf-border-subtle);
}

.aicadmin-wrap .aicadmin-table th {
    background: var(--acf-surface-sunken);
    color: var(--acf-text-secondary);
    font-size: var(--acf-font-size-xs);
    font-weight: var(--acf-weight-semibold);
    letter-spacing: var(--acf-tracking-wide);
    text-transform: uppercase;
    white-space: nowrap;
}

.aicadmin-wrap .aicadmin-table tbody tr:hover td {
    background: var(--acf-surface-hover);
}

.aicadmin-wrap .aicadmin-sort-link {
    display: inline-flex;
    align-items: center;
    gap: var(--acf-space-1);
    min-block-size: var(--acf-target-min);
    color: inherit;
    text-decoration: none;
}

.aicadmin-wrap .aicadmin-sort-link:hover {
    text-decoration: underline;
}

.aicadmin-wrap .aicadmin-text-truncated {
    max-inline-size: 18rem;
    overflow-wrap: anywhere;
}

.aicadmin-wrap .aicadmin-text-short {
    display: block;
}

/* The show-more control is now a native <details>/<summary>; no JS, no .active
   class. */
.aicadmin-wrap .aicadmin-toggle-link {
    display: inline-block;
    min-block-size: var(--acf-target-min);
    color: var(--acf-ai-fg);
    font-size: var(--acf-font-size-2xs);
    cursor: pointer;
}

.aicadmin-wrap .aicadmin-text-full {
    display: block;
    margin-block-start: var(--acf-space-1);
}

.aicadmin-wrap .aicadmin-badge {
    display: inline-block;
    padding: 0.125rem var(--acf-space-2);
    border: 1px solid transparent;
    border-radius: var(--acf-radius-pill);
    font-size: var(--acf-font-size-2xs);
    font-weight: var(--acf-weight-semibold);
    white-space: nowrap;
}

/* Each pair is one of the audited status pairs from section 3, so the ratios
   (6.17:1, 6.1:1, 6.91:1, 6.4:1) hold in both themes. */
.aicadmin-wrap .aicadmin-badge-helpful {
    background: var(--acf-status-done-bg);
    border-color: var(--acf-status-done-border);
    color: var(--acf-status-done-fg);
}

.aicadmin-wrap .aicadmin-badge-nothelpful {
    background: var(--acf-status-danger-bg);
    border-color: var(--acf-status-danger-border);
    color: var(--acf-status-danger-fg);
}

.aicadmin-wrap .aicadmin-badge-unrated {
    background: var(--acf-status-todo-bg);
    border-color: var(--acf-status-todo-border);
    color: var(--acf-status-todo-fg);
}

.aicadmin-wrap .aicadmin-badge-refused {
    background: var(--acf-status-doing-bg);
    border-color: var(--acf-status-doing-border);
    color: var(--acf-status-doing-fg);
}

.aicadmin-wrap .aicadmin-badge-answered {
    background: var(--acf-status-done-bg);
    border-color: var(--acf-status-done-border);
    color: var(--acf-status-done-fg);
}

.aicadmin-wrap .aicadmin-activity-pill {
    display: inline-block;
    padding: 0.125rem var(--acf-space-2);
    border-radius: var(--acf-radius-xs);
    background: var(--acf-status-info-bg);
    color: var(--acf-status-info-fg);
    font-size: var(--acf-font-size-2xs);
    font-weight: var(--acf-weight-medium);
    white-space: normal;
}

.aicadmin-wrap .aicadmin-course-link {
    color: var(--acf-text-brand);
    font-weight: var(--acf-weight-medium);
}

.aicadmin-wrap .aicadmin-user-link {
    color: inherit;
}

.aicadmin-wrap :is(.aicadmin-course-link, .aicadmin-user-link):hover {
    text-decoration: underline;
}

.aicadmin-wrap .aicadmin-pagination {
    margin-block-start: var(--acf-space-4);
}

/* --------------------------------------------------------------------------
   21c. index.php — `.aitutor-` namespace, `admin` pagelayout
   --------------------------------------------------------------------------
   styles.css previously had NO rules at all for `.aitutor-*`: they lived only
   in the inline <style> block index.php used to print.
   -------------------------------------------------------------------------- */

/* Same canvas as the two report pages above. */
.aitutor-report-index {
    max-inline-size: 1200px;
    margin-inline: auto;
    padding: var(--acf-space-5) var(--acf-gutter);
    border: 1px solid var(--acf-border-subtle);
    border-radius: var(--acf-radius-xl);
    background: var(--acf-surface-sunken);
    color: var(--acf-text-primary);
}

.aitutor-report-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--acf-space-3);
    margin-block-end: var(--acf-space-6);
}

/* `card-columns` is a Bootstrap 4 masonry helper that turns the grid into CSS
   columns, which reorders the courses down each column. Grid keeps reading
   order and gives every card the same width. */
.aitutor-course-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr));
    gap: var(--acf-space-4);
    column-count: initial;
}

.aitutor-course-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--acf-space-2);
    min-inline-size: 0;
    padding: var(--acf-space-5);
    border: 1px solid var(--acf-border-subtle);
    border-radius: var(--acf-radius-lg);
    background: var(--acf-surface-raised);
    box-shadow: var(--acf-elevation-1);
    color: var(--acf-text-primary);
    transition: box-shadow var(--acf-duration-fast) var(--acf-ease-standard);
}

.aitutor-course-card:hover {
    box-shadow: var(--acf-elevation-2);
}

.aitutor-course-card h2 {
    margin: 0;
    font-size: var(--acf-font-size-base);
    font-weight: var(--acf-weight-semibold);
    color: var(--acf-text-primary);
    overflow-wrap: anywhere;
}

.aitutor-course-card p {
    margin: 0;
    font-size: var(--acf-font-size-md);
    color: var(--acf-text-tertiary);
    overflow-wrap: anywhere;
}

.aitutor-course-stats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--acf-space-4);
    margin-block: var(--acf-space-2);
}

.aitutor-course-stat {
    min-inline-size: 0;
}

.aitutor-course-stat-value {
    font-size: var(--acf-font-size-xl);
    font-weight: var(--acf-weight-bold);
    font-variant-numeric: tabular-nums;
    line-height: var(--acf-leading-tight);
    color: var(--acf-text-primary);
}

.aitutor-course-stat-label {
    font-size: var(--acf-font-size-xs);
    color: var(--acf-text-tertiary);
}

/* 44px touch target — Boost's .btn is 37px and the utility classes on the link
   get it to 41. */
.aitutor-course-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--acf-space-2);
    min-block-size: var(--acf-target-min);
}

.aitutor-empty-state {
    text-align: center;
    padding: var(--acf-space-16) var(--acf-space-5);
    border: 1px dashed var(--acf-border-default);
    border-radius: var(--acf-radius-xl);
    background: var(--acf-surface-sunken);
    color: var(--acf-text-tertiary);
}

.aitutor-empty-state svg {
    color: var(--acf-border-strong);
}

.aitutor-empty-state h2 {
    margin-block: var(--acf-space-3) var(--acf-space-2);
    font-size: var(--acf-font-size-lg);
    font-weight: var(--acf-weight-semibold);
    color: var(--acf-text-primary);
}

.aitutor-empty-state p {
    margin: 0;
    font-size: var(--acf-font-size-md);
}

/* ==========================================================================
   22. MOTION
   --------------------------------------------------------------------------
   One keyframe per name — the previous sheet defined `aicourse-pulse` twice,
   and the later definition silently replaced the progress-ring celebration
   with a plain opacity fade.
   ========================================================================== */

@keyframes acf-hero-enter {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes acf-card-enter {
    from {
        opacity: 0;
        transform: translateY(18px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes acf-slide-up {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes acf-fade-in {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes acf-ring-pulse {
    0% {
        box-shadow: 0 0 0 0 var(--acf-status-done-bg);
    }
    70% {
        box-shadow: 0 0 0 12px transparent;
    }
    100% {
        box-shadow: 0 0 0 0 transparent;
    }
}

@keyframes acf-dots-bounce {
    0%,
    80%,
    100% {
        transform: scale(0.4);
        opacity: 0.5;
    }
    40% {
        transform: scale(1);
        opacity: 1;
    }
}

@keyframes acf-spin {
    to {
        transform: rotate(360deg);
    }
}

/* The report row the AMD module has just updated in place (section 21a). */
@keyframes acf-row-flash {
    from {
        background: var(--acf-status-done-bg);
    }
    to {
        background: transparent;
    }
}

@keyframes acf-shine {
    0% {
        transform: translateX(-100%) rotate(45deg);
    }
    100% {
        transform: translateX(100%) rotate(45deg);
    }
}

/* --------------------------------------------------------------------------
   Reduced motion. The previous sheet covered 4 selectors and left every
   keyframe animation running, including four infinite ones (the AI-button
   shine, two status pulses and the typing dots). This guard covers all of
   them, scoped to the plugin's own subtree so it never disables a theme's or
   another plugin's motion.
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    body.format-aicourse .format-aicourse-container,
    body.format-aicourse .format-aicourse-container *,
    body.format-aicourse .format-aicourse-container *::before,
    body.format-aicourse .format-aicourse-container *::after,
    body.format-aicourse [class^="aicourse-"],
    body.format-aicourse [class*=" aicourse-"],
    body.format-aicourse [class^="aicourse-"]::before,
    body.format-aicourse [class*=" aicourse-"]::before,
    body.format-aicourse [class^="aicourse-"]::after,
    body.format-aicourse [class*=" aicourse-"]::after {
        /* `!important` #23: keyframe animations cannot be neutralised by
           specificity alone when an element sets `animation` shorthand. */
        /* stylelint-disable time-min-milliseconds -- inside prefers-reduced-motion the
           near-zero duration IS the intent; 1ms rather than 0 so animationend still fires. */
        /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
        animation-duration: 1ms !important;
        /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
        animation-delay: 0ms !important;
        /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
        animation-iteration-count: 1 !important;
        /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
        transition-duration: 1ms !important;
        /* stylelint-enable time-min-milliseconds */
        /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
        transition-delay: 0ms !important;
        /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
        scroll-behavior: auto !important;
    }

    /* Hover transforms are the other half of the problem: they are not
       animations, so zeroing the duration is not enough — the element still
       jumps. Suppress the displacement itself. */

    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image:hover .aicourse-hero-bg-img,
    /* ACF-FIX-2.1.133: the course index row icon joins the list rather than carrying its own
       media query, so every hover displacement in the plugin is suppressed from one place. */
    body.aicourse-player-on .courseindex-item.aicourse-player-row:hover .aicourse-player-row-icon {
        transform: none;
    }
}

/* ==========================================================================
   23. PRINT
   --------------------------------------------------------------------------
   There were previously zero print rules. A printed course page emitted the
   full-bleed hero (whose title is white, so it printed invisible once the
   browser stripped the background), four shadow layers per card, and any open
   chatbox or modal on top of page 1.
   ========================================================================== */

@media print {
    /* Specificity note: this must out-rank the dark-mode token blocks, or printing from a
       dark page produces white-on-white -- exactly when it matters most. The selectors below
       mirror those blocks' shapes and, being later in the file, win the tie without a single
       `!important`.
       ACF-FIX-2.1.8: the third selector gained `html[data-bs-theme]` when the dark blocks did.
       Without it that selector sits at (0,4,2) against the dark block's new (0,5,2) and would
       silently start losing. Keep these two in step: if the dark-mode guard changes again, this
       must change with it. */
    html body.format-aicourse,
    html[data-bs-theme] body.format-aicourse,
    html[data-bs-theme]:not([data-bs-theme="light"]) body.format-aicourse:not(.aicourse-force-light):not([data-bs-theme="light"]),
    body.format-aicourse.aicourse-follow-os:not(.aicourse-force-light),
    body.format-aicourse.aicourse-force-dark,
    body.format-aicourse.dark-mode {
        /* Token-level, so every component follows without a single override. */
        --acf-surface-raised: #fff;
        --acf-surface-sunken: #fff;
        --acf-surface-muted: #fff;
        --acf-surface-overlay: #fff;
        --acf-surface-hover: transparent;
        --acf-surface-active: transparent;
        --acf-text-primary: #000;
        --acf-text-secondary: #333;
        --acf-text-tertiary: #555;
        --acf-text-brand: #000;
        --acf-text-on-media: #000;
        --acf-border-subtle: #999;
        --acf-border-default: #999;
        --acf-border-strong: #666;
        --acf-brand-tint-weak: transparent;
        --acf-brand-tint: transparent;
        --acf-brand-tint-strong: transparent;
        --acf-elevation-0: none;
        --acf-elevation-1: none;
        --acf-elevation-2: none;
        --acf-elevation-3: none;
        --acf-elevation-4: none;
        --acf-elevation-5: none;
        /* stylelint-disable length-zero-no-unit -- these feed blur(var(--acf-blur-*));
           blur(0px) is unambiguous where a bare 0 is a known cross-browser sharp edge. */
        --acf-blur-sm: 0px;
        --acf-blur-md: 0px;
        --acf-blur-lg: 0px;
        /* stylelint-enable length-zero-no-unit */
    }

    /* Interactive-only chrome and anything overlaid on the page.
       `!important` #24: several of these are toggled by inline `style`. */
    body.format-aicourse :is(
    .aicourse-ai-chatbox, .aicourse-icon-picker-modal, .aicourse-bgen-overlay,
    .aicourse-bdel-overlay,
    .aicourse-hero-icons, .aicourse-hero-nav, .aicourse-hero-nav-spacer) {
        /* stylelint-disable-next-line declaration-no-important -- deliberate; see the numbered note above. */
        display: none !important;
    }

    body.format-aicourse .aicourse-hero-bg-img,
    body.format-aicourse .aicourse-hero-overlay {
        display: none;
    }

    body.format-aicourse .aicourse-hero-banner,
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image {
        min-block-size: 0;
        border: 1px solid var(--acf-border-default);
        background: var(--acf-surface-raised);
        color: var(--acf-text-primary);
    }

    body.format-aicourse .aicourse-hero-title,
    body.format-aicourse .aicourse-hero-summary,
    body.format-aicourse .aicourse-hero-section-label {
        color: var(--acf-text-primary);
        text-shadow: none;
    }

    body.format-aicourse .aicourse-general-section {
        break-inside: avoid;
        page-break-inside: avoid;
        border: 1px solid var(--acf-border-default);
    }

    /* Line clamps hide content on paper; print the whole thing. */

    body.format-aicourse .aicourse-hero-summary,
    body.format-aicourse .aicourse-hero-title {
        display: block;
        -webkit-line-clamp: none;
        line-clamp: none;
        overflow: visible;
        white-space: normal;
    }

    body.format-aicourse .aicourse-activity-number-circles {
        flex-wrap: wrap;
        overflow: visible;
    }

    body.format-aicourse .aicourse-chat-table {
        min-inline-size: 0;
        table-layout: fixed;
        inline-size: 100%;
    }

    body.format-aicourse .aicourse-report-container {
        overflow: visible;
    }

    /* --- The two `admin` pagelayout report pages -------------------------
       Same token flattening as above. These roots never carry the
       format-aicourse body class, so they need their own block; the selectors
       match the shape of the dark blocks in section 4 for the same
       specificity reason. */
    html :is(.aicadmin-wrap, .aitutor-report-index),
    html[data-bs-theme] :is(.aicadmin-wrap, .aitutor-report-index),
    body.dark-mode :is(.aicadmin-wrap, .aitutor-report-index) {
        --acf-surface-raised: #fff;
        --acf-surface-sunken: #fff;
        --acf-surface-muted: #fff;
        --acf-surface-hover: transparent;
        --acf-surface-active: transparent;
        --acf-text-primary: #000;
        --acf-text-secondary: #333;
        --acf-text-tertiary: #555;
        --acf-text-brand: #000;
        --acf-ai-fg: #000;
        --acf-border-subtle: #999;
        --acf-border-default: #999;
        --acf-border-strong: #666;
        --acf-status-done-bg: transparent;
        --acf-status-danger-bg: transparent;
        --acf-status-doing-bg: transparent;
        --acf-status-todo-bg: transparent;
        --acf-status-info-bg: transparent;
        --acf-status-done-fg: #000;
        --acf-status-danger-fg: #000;
        --acf-status-doing-fg: #000;
        --acf-status-todo-fg: #000;
        --acf-status-info-fg: #000;
        --acf-elevation-1: none;
        --acf-elevation-2: none;
    }

    /* Controls that cannot be operated on paper. */
    body.format-aicourse :is(
    .aicourse-filter-form, .aicourse-report-perpage, .aicourse-chat-rating,
    .aicourse-correction-btn, .aicourse-correction-form, .aicourse-pagination),
    .aicadmin-wrap :is(.aicadmin-filter-card, .aicadmin-pagination, .aicadmin-btn-csv),
    .aicadmin-wrap .aicadmin-result-bar select,
    .aitutor-report-index .aitutor-course-btn {
        display: none;
    }

    /* A sticky header repeats on top of the first printed row. */
    body.format-aicourse .aicourse-chat-table th,
    .aicadmin-wrap .aicadmin-table th {
        position: static;
    }

    body.format-aicourse .aicourse-chat-table tr,
    .aicadmin-wrap .aicadmin-table tr,
    .aitutor-course-card,
    body.format-aicourse .aicourse-content-card {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .aicadmin-wrap .aicadmin-table-wrap {
        overflow: visible;
        border: none;
    }

    .aicadmin-wrap .aicadmin-table {
        min-inline-size: 0;
        table-layout: fixed;
        inline-size: 100%;
    }

    .aicadmin-wrap :is(.aicadmin-badge, .aicadmin-activity-pill) {
        border: 1px solid #666;
    }
}

/* ==========================================================================
   24. FORCED COLOURS / WINDOWS HIGH CONTRAST
   --------------------------------------------------------------------------
   Under `forced-colors: active` the whole visual language previously collapsed:
   gradients were stripped, transparent buttons became invisible and every
   rgba() badge background vanished. Each surviving affordance is re-expressed
   with a system colour and a real border.
   ========================================================================== */

@media (forced-colors: active) {
    body.format-aicourse :is(
    .aicourse-activity-content,
    .aicourse-hero-banner, .aicourse-icon-picker-content, .aicourse-ai-chatbox,
    .aicourse-bgen-card, .aicourse-bdel-card, .aicourse-stat-card, .aicourse-content-card,
    .aicourse-empty-state) {
        border: 1px solid CanvasText;
    }

    body.format-aicourse :is(
    .aicourse-activity-number, .aicourse-completion-toggle, .aicourse-ai-quick-btn,
    .aicourse-bgen-btn, .aicourse-icon-picker-item,
    .aicourse-hero-nav, .aicourse-hero-home, .aicourse-hero-grades, .aicourse-hero-back,
    .aicourse-hero-ai-btn, .aicourse-ai-send-btn, .aicourse-ai-chatbox-close,
    .aicourse-icon-picker-close, .aicourse-bgen-close) {
        border: 1px solid ButtonBorder;
        background: ButtonFace;
        color: ButtonText;
        forced-color-adjust: none;
    }

    /* Gradients and image scrims carry no meaning here. */
    body.format-aicourse :is(
    .aicourse-hero-overlay, .aicourse-hero-bg-img,
    .aicourse-hero-ai-btn::before) {
        display: none;
    }

    body.format-aicourse .aicourse-hero-title,
    body.format-aicourse .aicourse-hero-summary,
    body.format-aicourse .aicourse-hero-section-label,
    body.format-aicourse .aicourse-hero-has-image .aicourse-activity-number {
        color: CanvasText;
        text-shadow: none;
    }

    /* Status that was conveyed by tint alone gets a border style instead. */

    body.format-aicourse .aicourse-activity-number.aicourse-number-completed {
        background: Highlight;
        border-color: Highlight;
        forced-color-adjust: none;
    }

    body.format-aicourse .aicourse-activity-number.aicourse-number-no_completion {
        background: Canvas;
        border: 2px dashed CanvasText;
    }

    body.format-aicourse .aicourse-progress-bar-fill,
    body.format-aicourse .aicourse-progress-ring-fill {
        background: Highlight;
        stroke: Highlight;
        forced-color-adjust: none;
    }

    /* Focus must survive: `outline` is preserved by forced colours, box-shadow
       is not, so the outline half of the focus system does the work here. */
    body.format-aicourse *:focus-visible,
    :is(.aicadmin-wrap, .aitutor-report-index) *:focus-visible {
        outline: 3px solid Highlight;
        outline-offset: 2px;
    }

    /* Report pages. Every status here is carried by a tint, and forced colours
       drops tints, so each one gets a real edge and a system colour instead. */
    body.format-aicourse :is(.aicourse-rating-btn, .aicourse-correction-btn),
    .aicadmin-wrap :is(.aicadmin-badge, .aicadmin-activity-pill, .aicadmin-btn) {
        border: 1px solid ButtonBorder;
        background: ButtonFace;
        color: ButtonText;
        forced-color-adjust: none;
    }

    body.format-aicourse .aicourse-rating-btn[aria-pressed="true"] {
        background: Highlight;
        color: HighlightText;
    }

    body.format-aicourse .aicourse-chat-correction,
    body.format-aicourse .aicourse-correction-form,
    .aicadmin-wrap :is(.aicadmin-stat, .aicadmin-filter-card, .aicadmin-table-wrap),
    .aitutor-course-card,
    .aitutor-empty-state {
        border: 1px solid CanvasText;
    }
}

/* ==========================================================================
   12. COMPACT HERO, EDGE ALIGNMENT AND LIST LAYOUT  (ACF-FIX-2.1.23)
   --------------------------------------------------------------------------
   Everything in this section is an intentional late override of the rules
   above. It is kept as one block, at the end of the sheet, so the whole
   revision can be read — or reverted — in one place.

   Four problems it fixes, all reported against 2.1.22:

   1. HEIGHT. The image-mode banner floored at 9.5rem-14.5rem (152-232px) and
      laid its content out as a bottom-packed COLUMN with 24px/32px block
      padding around an 80px ring. On a 1400px shell that is ~230px of banner
      carrying about 90px of content: the rest was empty. It is now a single
      ROW — title/meta on the inline-start, progress on the inline-end, actions
      last — floored at 5.5rem-7.5rem (88-120px).

   2. EDGE ALIGNMENT. format.php echoes the hero OUTSIDE
      .format-aicourse-container by design (so a teacher's banner width setting
      is not clipped), which means the hero never received the container's
      gutter. Worse, the hide-course-index rule applied `padding-inline` to
      .format-aicourse-container AND to .aicourse-cards-container nested inside
      it, so the cards were inset by two gutters against the hero's zero. The
      hero and the container are now given one identical box, and the doubled
      inner padding is removed (see the override of the 1268 rule below).

   3. DARKNESS. .aicourse-hero-overlay::before adds a 0.45-alpha inline-start
      wash. That was written for the old TOP-TO-BOTTOM scrim, where it was the
      only horizontal shaping. Since 2.1.20 the scrim itself runs LEFT TO RIGHT
      at 0.78 alpha on that edge, so the two now multiply: 1-(1-0.78)(1-0.45)
      = 0.88 effective alpha over the title. The ::before is retired for the
      directional scrims and kept only where the vertical ramp is still in use
      (the <600px media query at the end of section 8).

   4. LIST LAYOUT. Section cards had no way to stack full-width down the page.
      `body.aicourse-cardlist` switches the grid to a single column and lets the
      card lay itself out horizontally, which is the readable shape at that
      width.
   ========================================================================== */

/* --- 12.1 Compact metrics ------------------------------------------------- */
body.format-aicourse {
    /* 60 -> 76px. Gradient mode has no photograph to show, so it can be
       tighter still than image mode. */
    --acf-hero-min-h: clamp(3.75rem, 3.1rem + 2.1vw, 4.75rem);
    /* 88 -> 120px, replacing 152 -> 232px. */
    --acf-hero-image-min-h: clamp(5.5rem, 4.6rem + 3vw, 7.5rem);
    /* The ring can no longer be the tallest thing in the banner: at 84px it
       alone exceeded the new floor. 44 -> 56px keeps the digits legible while
       fitting inside the row's block padding. */
    --acf-hero-ring: clamp(2.75rem, 2.3rem + 1.5vw, 3.5rem);
    --acf-hero-ring-image: clamp(2.75rem, 2.3rem + 1.5vw, 3.5rem);
    /* The hero's own type scale, decoupled from --acf-font-size-3xl (which is
       shared with card headings and must not shrink with the banner). */
    --acf-hero-title-compact: clamp(1.125rem, 0.85rem + 1.35vw, 1.625rem);
}

/* --- 12.2 One shared content box: hero == container ----------------------- */
/* The hero wrap and the content container are now the same box at every
   viewport, whether or not the course index is hidden, so their inline edges
   line up to the pixel. box-sizing is restated because the padding is what
   creates the alignment and it must sit inside the max-inline-size. */
body.format-aicourse :is(.aicourse-hero-sticky-wrap, .format-aicourse-container) {
    box-sizing: border-box;
    inline-size: 100%;
    max-inline-size: var(--acf-container-max);
    margin-inline: auto;
    padding-inline: var(--acf-gutter);
}

/* Retire the doubled gutter. The outer .format-aicourse-container already
   carries it from the rule above; the nested card containers must not add a
   second one or the cards sit two gutters in from the hero. */
body.format-aicourse.aicourse-hideindex:not(.editing):not(.editingon):not(.editing-mode)
:is(.aicourse-cards-container, .aicourse-activity-cards-container) {
    max-inline-size: none;
    margin-inline: 0;
    padding-inline: 0;
}

/* Left-aligned banners keep the gutter but drop the auto centring. */
body.format-aicourse .aicourse-hero-sticky-wrap.aicourse-hero-align-left {
    margin-inline: 0 auto;
}

/* The banner sat 24px below whatever preceded it and 40px above the cards.
   With the header band collapsed (12.6) it should read as the top of the page —
   but not welded to the theme's navbar. A deliberate 12px keeps the banner's
   rounded corners and drop shadow from colliding with whatever sits above it,
   which on most themes is a solid-coloured bar. Zero looked like a rendering
   fault rather than a decision. The value is a token, so a theme that already
   leaves a gap of its own can be trimmed here in one place. */
body.format-aicourse .aicourse-hero-sticky-wrap {
    /* PADDING, not margin, on the top edge. The hero is the first child of the
       content column, which has no border or padding of its own, so a
       margin-block-start collapses straight through it and reappears above an
       ancestor — the gap either vanishes or lands in the wrong place depending
       on the theme. Padding cannot collapse. The wrap has no background, so
       12px of padding is simply 12px of space. */
    margin-block: 0 var(--acf-space-4);
}

body.format-aicourse .aicourse-cards-container {
    margin-block-start: var(--acf-space-4);
}

/* --- 12.3 Image-mode hero as a single row --------------------------------- */
/* Base behaviour of the new .aicourse-hero-lede wrapper, before the compact row
   kicks in. In gradient mode it inherits the flex basis the title wrap used to
   carry. In image mode the content box is a COLUMN below 700px, where a
   flex-basis would be read as a BLOCK size — 16rem of forced height, the exact
   bug section 8 fixed for .aicourse-hero-title-wrap — so it hugs its content. */
body.format-aicourse .aicourse-hero-lede {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    inline-size: 100%;
    min-inline-size: 0;
    gap: var(--acf-space-1);
    flex: 1 1 16rem;
}

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-lede {
    flex: 0 0 auto;
}

/* Below 700px the title needs the full width and the row would crush it, so
   the column layout from section 8 is left in place there. */
@media (min-width: 700px) {
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-content {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: space-between;
        gap: var(--acf-space-5);
        /* Was space-6 / space-7 (24px / 32px) block padding. */
        padding: var(--acf-space-3) var(--acf-gutter);
    }

    /* The lede (title + summary + meta) takes the space the progress cluster
       does not need. See the note in hero.mustache: these three used to be
       three separate row items, which is what stacked the meta row into a
       narrow column beside the title. */
    /* .aicourse-hero-title-group is the activity page's equivalent of the lede
       (activity_hero.mustache wraps the section label and title in it), so the
       two are treated as one role here. Only ONE of them is ever present. */
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image :is(
    .aicourse-hero-lede,
    .aicourse-hero-title-group) {
        flex: 1 1 auto;
        min-inline-size: 0;
        display: flex;
        flex-direction: column;
        gap: 2px;
    }

    /* The title wrap is a child of whichever of the two is present, so it fills
       it rather than competing with it. */
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-title-wrap {
        flex: 0 0 auto;
        inline-size: 100%;
        min-inline-size: 0;
        gap: 2px;
    }

    /* One line, not two: the second line is what forced the extra 34px of
       banner. Long names ellipsise, and the full name is still the region's
       aria-label and the browser tab title. */
    /* ACF-FIX-2.1.161: the compact size is now a FALLBACK, not an override.
       This rule is (0,4,1); the tier classes `aicourse-title-xs` … `-xl` that hero.mustache emits
       from the course's own "Card title size" setting are (0,3,1). So this won every time and the
       setting did nothing to the banner at any width above the breakpoint -- on every course, not
       just the ones anyone noticed. Measured: a course set to xl and a course set to xs rendered
       the same 26px.

       `:not([class*="aicourse-title-"])` steps aside the moment a tier class is present, so the
       compact size still governs the activity banner (which emits no tier) and a course that has
       chosen a size finally gets it. */
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image
    .aicourse-hero-title:not([class*="aicourse-title-"]) {
        font-size: var(--acf-hero-title-compact);
    }

    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-title {
        line-height: 1.15;
        -webkit-line-clamp: 1;
        line-clamp: 1;
        max-inline-size: 100%;
    }

    /* The summary is prose and cannot fit a 96px row. It is still rendered for
       screen readers and still shown in the <700px column layout. */
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-summary {
        display: none;
    }

    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-meta {
        margin: 0;
        line-height: 1.2;
    }

    /* The progress cluster stops being a full-width column and becomes the
       row's inline-end group. flex-basis is a preference, not a floor: it
       yields to a long title before the title truncates. */
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-nav-progress {
        inline-size: auto;
        justify-content: flex-end;
        min-inline-size: 0;
    }

    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-progress-bar-container {
        max-inline-size: 20rem;
    }

    /* The action pill was absolutely positioned at the top-right, which is
       exactly where the progress cluster now sits. In row layout it joins the
       row as its last item instead, so nothing overlaps and the banner needs
       no reserved dead zone. */
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-icons {
        position: static;
        flex: 0 0 auto;
        flex-wrap: nowrap;
        max-inline-size: none;
        align-self: center;
    }
}

/* Below the row breakpoint the banner stays a column, but it should not stay
   285px tall either. The summary is the single biggest contributor and it
   duplicates the course description shown further down the page, so it goes;
   the block padding comes down to match the desktop trim. */
@media (max-width: 699px) {
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-content {
        padding: var(--acf-space-4) var(--acf-gutter);
        gap: var(--acf-space-2);
    }

    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-summary {
        display: none;
    }

    /* Same split as above: a course that has chosen a title size keeps it. */
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image
    .aicourse-hero-title:not([class*="aicourse-title-"]) {
        font-size: var(--acf-hero-title-compact);
    }

    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-title {
        line-height: 1.15;
    }
}

/* Gradient mode: same block-padding trim, so the two modes agree in height. */
body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image) .aicourse-hero-content {
    padding-block: var(--acf-space-3);
    padding-inline: var(--acf-gutter);
}

/* --- 12.4 Stop the scrim double-darkening the title side ------------------ */
/* Retired for the directional scrims (see note 3 in the section header). The
   <600px vertical-ramp media query in section 8 re-enables it there, because
   with a vertical scrim this wash is the only horizontal shaping. */
@media (min-width: 600px) {
    body.format-aicourse:is(.aicourse-scrim-medium, .aicourse-scrim-light)
    .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-overlay::before {
        display: none;
    }
}

/* The default (no scrim class = "strong") ramp is vertical and reaches 0.88 at
   its foot, which crushes a dark photograph on its own. Softened to the same
   left-to-right shaping as "medium" but two points heavier, so the strong
   setting still means something without turning the image black. */
@media (min-width: 600px) {
    body.format-aicourse:not(.aicourse-scrim-medium):not(.aicourse-scrim-light) {
        --acf-hero-scrim:
            linear-gradient(
                to right,
                rgba(2, 6, 23, 0.82)  0%,
                rgba(2, 6, 23, 0.74) 40%,
                rgba(2, 6, 23, 0.40) 68%,
                rgba(2, 6, 23, 0.20) 100%
            );
    }
}

@media (min-width: 600px) {
    body.format-aicourse:not(.aicourse-scrim-medium):not(.aicourse-scrim-light)
    .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-overlay::before {
        display: none;
    }
}

/* --- 12.5 Section cards as a stacked list --------------------------------- */

/* --- 12.6 Reclaim the top of the page ------------------------------------- */
/* Boost renders an empty #page-header band above the secondary navigation on a
   course page: no heading, no breadcrumb, just margin. On this format the hero
   IS the page header, so the band is collapsed and the hero rises to the top
   of the content column. Edit mode is excluded — teachers rely on the header
   region for course-level controls. */
body.format-aicourse:not(.editing):not(.editingon):not(.editing-mode) #page-header {
    margin-block: 0;
    padding-block: 0;
}

body.format-aicourse:not(.editing):not(.editingon):not(.editing-mode) #page-header:empty,
body.format-aicourse:not(.editing):not(.editingon):not(.editing-mode) #page-header .page-context-header,
body.format-aicourse:not(.editing):not(.editingon):not(.editing-mode) #page-header .page-header-headings {
    display: none;
}

body.format-aicourse:not(.editing):not(.editingon):not(.editing-mode) #region-main {
    padding-block-start: 0;
}

/* Secondary navigation (Course / Settings / Participants / Grades / Reports /
   More). Hidden by course setting, never for a user who is editing — losing
   the Settings tab mid-edit would be a trap. Two levels:
     .aicourse-hidenav-students  hide for everyone without moodle/course:update
     .aicourse-hidenav-all       hide for everyone, editors included
   The class is added in lib.php::page_set_course(). */
/* ACF-FIX-2.1.73: every hook the tab bar exposes, not just its outer wrapper.
   The bar is rendered as `.secondary-navigation` wrapping `nav.moremenu.navigation` wrapping
   `ul.nav.more-nav.nav-tabs`, and the <ul> carries an id of the form `moremenu-<hash>-nav-tabs`
   where the hash is regenerated on every page load -- so the id can only be matched on its
   prefix, never in full. Hiding the outer wrapper is enough when the whole structure is nested;
   matching the inner elements as well covers a theme that renders the nav or the list outside
   that wrapper, which is why the bar could survive on one theme while disappearing on another. */
body.format-aicourse.aicourse-hidenav-students:not(.aicourse-is-grader):not(.editing):not(.editingon):not(.editing-mode)
:is(.secondary-navigation, nav.moremenu.navigation, .moremenu, ul.more-nav, [id^="moremenu-"]),
body.format-aicourse.aicourse-hidenav-all:not(.editing):not(.editingon):not(.editing-mode)
:is(.secondary-navigation, nav.moremenu.navigation, .moremenu, ul.more-nav, [id^="moremenu-"]) {
    /* stylelint-disable-next-line declaration-no-important --
       deliberate: line 1141 forces `display: flex !important` on the secondary
       nav to beat Bootstrap's .d-none utility. An !important declaration can
       only be beaten by another one, whatever the specificity, so hiding the
       nav by course setting has to match it. */
    display: none !important;
}

/* --- 12.7 Card top accent line -------------------------------------------- */

/* --- 12.8 Compact row order: actions | title | progress -------------------
   Requested arrangement, and the conventional one: the home affordance sits at
   the far inline-start where people reach for it, the course name is the centre
   of gravity, and the progress readout closes the row on the inline-end with
   the ring — the thing you actually read — furthest out.

   All of this is `order` and `row-reverse`, not new markup: the DOM order
   (lede, progress, actions) is the correct READING order for a screen reader
   and for a no-CSS render, and it stays untouched. Only the visual order moves,
   which is exactly what `order` is for. It applies solely inside the >=700px
   compact row; below that the banner is a column and source order is what
   renders. */
@media (min-width: 700px) {
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-icons {
        order: 1;
    }

    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image :is(
    .aicourse-hero-lede,
    .aicourse-hero-title-group) {
        order: 2;
        align-items: center;
        text-align: center;
    }

    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-nav-progress {
        order: 3;
    }

    /* Home first, then grades, the AI tutor, and the teacher-only banner
       buttons last so the student-facing pair never shifts position when a
       teacher looks at the same course. */
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-home {
        order: 1;
    }

    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-grades {
        order: 2;
    }

    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-ai-toggle {
        order: 3;
    }

    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-ai-delete-banner {
        order: 4;
    }

    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-ai-generate-banner {
        order: 5;
    }

    /* Bar then ring, so the ring lands furthest inline-end. row-reverse rather
       than order values because the progress cluster has exactly two children
       and this survives the section-page variant, where the bar container holds
       the numbered activity circles instead of a track. */
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-progress {
        flex-direction: row-reverse;
    }
}

/* --- 12.9 Flat gradient-mode banner --------------------------------------- */
/* No gradients on the banner, by request. --acf-hero-wash was a three-stop
   135deg ramp from 16% brand down to 2.5%; it is now flat at the LIGHTEST of
   those three stops, so the banner is the palest blue that appeared in the old
   ramp rather than an average of it.

   One number controls it. If it reads too washed out on your brand, raise
   --acf-hero-wash-tint: 8% is the old ramp's midpoint, 16% its darkest stop.
   Contrast is unaffected at any of those values — the darkest stop already
   measured 11.66:1 for primary text, and every lighter value is better.

   rgba() first as the universal fallback, then color-mix() so the tint tracks
   the SITE's brand colour, exactly as the original pair did.

   --acf-hero-glow, the radial bloom behind the progress ring, goes with it:
   it is also a gradient, and on a flat banner it was the only thing left
   making the right-hand side look unevenly lit. */
body.format-aicourse {
    --acf-hero-wash-tint: 2.5%;
    --acf-hero-wash: rgba(15, 108, 191, 0.025);
    --acf-hero-wash: color-mix(in srgb, var(--acf-brand) var(--acf-hero-wash-tint), var(--acf-surface-raised));
    --acf-hero-glow: none;
}

body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image)::after {
    content: none;
}

/* --- 12.10 Order applies in gradient mode too ------------------------------
   12.8 scoped the actions | title | progress order to .aicourse-hero-has-image,
   because that was the mode being looked at. A course with no banner image has
   the same row and the same expectations, so the order is lifted to both modes
   here rather than duplicated. */
@media (min-width: 700px) {
    body.format-aicourse .aicourse-hero-banner .aicourse-hero-icons {
        order: 1;
    }

    body.format-aicourse .aicourse-hero-banner :is(
    .aicourse-hero-lede,
    .aicourse-hero-title-group) {
        order: 2;
    }

    body.format-aicourse .aicourse-hero-banner .aicourse-hero-nav-progress {
        order: 3;
    }

    body.format-aicourse .aicourse-hero-banner .aicourse-hero-home {
        order: 1;
    }

    body.format-aicourse .aicourse-hero-banner .aicourse-hero-grades {
        order: 2;
    }

    body.format-aicourse .aicourse-hero-banner .aicourse-ai-toggle {
        order: 3;
    }

    body.format-aicourse .aicourse-hero-banner .aicourse-ai-delete-banner {
        order: 4;
    }

    body.format-aicourse .aicourse-hero-banner .aicourse-ai-generate-banner {
        order: 5;
    }

    body.format-aicourse .aicourse-hero-banner .aicourse-hero-progress {
        flex-direction: row-reverse;
    }

    /* The hairline that section 8 draws between the progress group and the
       actions assumed the actions came last. They now come first, so the rule
       is moved to the other side of the pair — or it would float in the middle
       of the row separating nothing. */
    body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image)
    .aicourse-hero-nav-progress + .aicourse-hero-icons {
        padding-inline-start: 0;
        border-inline-start: none;
    }
}

/* The prev/next spacers exist only to keep a CENTRED circle row balanced. In
   the compact row nothing is centred, so on the course home page — which has
   no chevrons at all — a spacer was 44px of dead air to the right of the ring,
   stopping it being the last thing in the banner. Gradient mode already hid
   them (section 8); image mode now does too. */
@media (min-width: 700px) {
    body.format-aicourse .aicourse-hero-banner .aicourse-hero-nav-spacer {
        display: none;
    }
}

/* --- 12.11 Chevrons ahead of the progress cluster -------------------------
   On a section page the next-section chevron follows the progress block in
   source order, so after 12.8 it — not the ring — was the last thing in the
   banner. Both chevrons are ordered ahead of the cluster, which keeps the
   ring as the final element on every page type. Source order is untouched:
   for a screen reader the chevrons still read either side of the progress,
   which is the correct relationship. */
@media (min-width: 700px) {
    body.format-aicourse .aicourse-hero-banner .aicourse-hero-nav-prev {
        order: 1;
    }

    body.format-aicourse .aicourse-hero-banner .aicourse-hero-nav-next {
        order: 2;
    }

    body.format-aicourse .aicourse-hero-banner .aicourse-hero-progress {
        order: 3;
    }

    /* The section page's numbered circles need more room than the home page's
       bar: at a 26rem basis only two of eight were on screen before the row
       started scrolling. */
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-nav-progress {
        flex: 0 1 auto;
    }
}

/* --- 12.12 Gradient mode gets the compact row too -------------------------
   12.3 scoped the row to image mode, so a course with no banner image kept the
   old wrapping layout: with the 12.10 order values applied to a `flex-wrap:
   wrap` container the three groups broke onto three lines and the banner grew
   to 338px — taller than the version this revision set out to shrink. Same
   row, same rules, no image-specific parts (no scrim, no summary to suppress —
   hero.php only emits the summary in image mode). */
@media (min-width: 700px) {
    body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image) .aicourse-hero-content {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: space-between;
        gap: var(--acf-space-5);
    }

    body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image) .aicourse-hero-lede {
        flex: 1 1 auto;
        min-inline-size: 0;
        align-items: center;
        text-align: center;
        gap: 2px;
    }

    body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image) .aicourse-hero-title {
        font-size: var(--acf-hero-title-compact);
        line-height: 1.15;
        -webkit-line-clamp: 1;
        line-clamp: 1;
    }

    body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image) .aicourse-hero-meta {
        margin: 0;
        line-height: 1.2;
    }

    body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image) .aicourse-hero-nav-progress {
        flex: 0 1 auto;
        inline-size: auto;
    }

    body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image) .aicourse-hero-icons {
        flex: 0 0 auto;
        flex-wrap: nowrap;
    }
}

/* The lede is always a COLUMN, and section 8 gives .aicourse-hero-title-wrap
   `flex: 1 1 16rem`. In a column that basis is read as a BLOCK size, so the
   title wrap reserved 256px of height inside the lede and the gradient-mode
   banner came out 324px tall. Unconditional, because the lede is a column at
   every width and in both modes. */
body.format-aicourse .aicourse-hero-lede .aicourse-hero-title-wrap {
    flex: 0 0 auto;
    inline-size: 100%;
    min-inline-size: 0;
}

/* Gradient mode never emits the summary today (hero.php gates it on image
   mode), but it inherits --acf-text-on-media — white — so if that gate ever
   changes the text lands invisible on the pale banner. Cheap insurance. */
body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image) .aicourse-hero-summary {
    color: var(--acf-text-secondary);
    text-shadow: none;
}

/* --- 12.13 Flat scrim, with a per-course opacity --------------------------
   No gradients anywhere on the banner, by request. 12.9 flattened the
   gradient-mode background; this flattens the last one — the scrim that sits
   between the banner photo and the text.

   The scrim cannot simply be deleted: white text over a near-white photo (which
   is exactly what the AI banner generator produces) measures 1.1:1 without it.
   So it becomes a FLAT alpha, published as a number in --acf-hero-scrim-a so a
   course can set its own value. Contrast on the worst case — white text on a
   pure-white image, black scrim at alpha a:
       a = 0.40 ->  2.78:1   (below AA; only safe on images you control)
       a = 0.55 ->  4.71:1   (Light,  clears WCAG AA's 4.5:1)
       a = 0.62 ->  6.20:1   (Medium, the default)
       a = 0.72 ->  9.24:1   (Strong)
   Every pixel now gets the same treatment, which is the trade: the old ramps
   left the right-hand 30% of the picture nearly clear, and a flat scrim cannot.

   Precedence: the course setting (Hero image overlay opacity) wins, because it
   arrives as an inline custom property on the banner. The site-wide Banner
   overlay strength is the fallback for any course that has not set one.

   The ::before wash is switched off outright rather than per-breakpoint — with
   a flat scrim there is no vertical ramp left for it to shape. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-overlay::before {
    content: none;
}

/* One declaration, at the end, so it resolves whatever set the alpha — the
   site class above or the course's inline --acf-hero-scrim-a. The <600px
   vertical ramp from section 8 is overridden here too; it no longer applies. */
body.format-aicourse,
body.format-aicourse.aicourse-scrim-light,
body.format-aicourse.aicourse-scrim-medium {
    --acf-hero-scrim: rgba(2, 6, 23, var(--acf-hero-scrim-a, 0.62));
}

@media (max-width: 599px) {
    body.format-aicourse {
        --acf-hero-scrim: rgba(2, 6, 23, var(--acf-hero-scrim-a, 0.62));
    }
}

/* --- 12.14 AI tutor chrome follows the accent colour -----------------------
   The AI tutor's header, send button, buttons and message chips were pinned to
   a fixed indigo ramp (--acf-ai-500/600/700 plus a violet), so on any site
   whose brand is not indigo the tutor looked like a different product bolted
   onto the course. They now derive from --acf-brand, which is the theme's
   primary unless the site or the course overrides it with the Accent colour
   setting — so one value drives the whole format, tutor included.

   --acf-ai-gradient is kept as a NAME because ~6 rules reference it, but it is
   no longer a gradient: same no-gradients rule as the banner.

   Contrast: --acf-ai-fg is the accent darkened towards black rather than a
   fixed indigo-700, so it holds its ratio against --acf-ai-bg (the accent at
   9% on white / 22% on the dark surface) for any hue. White on the solid accent
   is the theme's own primary-on-white pairing, which a theme is responsible
   for keeping legible — the same assumption every button on the site makes. */
body.format-aicourse {
    --acf-ai-bg: color-mix(in srgb, var(--acf-brand) 9%, transparent);
    --acf-ai-border: color-mix(in srgb, var(--acf-brand) 28%, transparent);
    --acf-ai-fg: color-mix(in srgb, var(--acf-brand) 82%, #000);
    --acf-ai-gradient: var(--acf-brand);
    --acf-inverse-ai-tint: color-mix(in srgb, var(--acf-brand) 16%, transparent);
}

body.format-aicourse.aicourse-force-dark {
    --acf-ai-bg: color-mix(in srgb, var(--acf-brand) 22%, transparent);
    --acf-ai-border: color-mix(in srgb, var(--acf-brand) 34%, transparent);
    /* Lightened, not darkened, so it stays readable on a dark surface. */
    --acf-ai-fg: color-mix(in srgb, var(--acf-brand) 55%, #fff);
}

@media (prefers-color-scheme: dark) {
    body.format-aicourse.aicourse-follow-os:not(.aicourse-force-light) {
        --acf-ai-bg: color-mix(in srgb, var(--acf-brand) 22%, transparent);
        --acf-ai-border: color-mix(in srgb, var(--acf-brand) 34%, transparent);
        --acf-ai-fg: color-mix(in srgb, var(--acf-brand) 55%, #fff);
    }
}

/* --- 12.15 Centre the title on the same axis as the meta row --------------
   The title is a flex item with `min-inline-size: auto` (the default) and
   `line-clamp: 1`, so it cannot wrap and its max-content width is the whole
   unbroken line. That let it grow past its wrap, and because the wrap packs
   items to flex-start the overflow all went one way: the title's optical
   centre sat ~100px to the right of the meta row's. Pinning it to its wrap's
   width and allowing it to shrink puts both rows on one axis. */
body.format-aicourse .aicourse-hero-title-wrap {
    align-items: center;
}

body.format-aicourse .aicourse-hero-title {
    inline-size: 100%;
    max-inline-size: 100%;
    min-inline-size: 0;
    align-self: stretch;
}

/* The bar container shrank to zero once the progress cluster stopped growing
   (12.11 set the cluster to `flex: 0 1 auto`, and the track's `inline-size:
   100%` contributes no max-content width to a shrink-to-fit parent). It gets an
   explicit basis so the bar is actually drawn beside the ring. */
@media (min-width: 700px) {
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-progress-bar-container {
        flex: 0 1 18rem;
        min-inline-size: 7rem;
    }
}

/* --- 12.16 Section-page circle row: size to content, never scroll ----------
   The previous rule capped .aicourse-progress-bar-container at 18rem so the
   home page's progress BAR had a sensible width. On a section page that same
   container holds the numbered activity circles instead, and the cap turned it
   into a ~100px scroll box: the circles overlapped the ring, circle 1 sat under
   the prev chevron, and a horizontal scrollbar appeared inside the banner.

   The two cases are told apart by what the container actually holds, so each
   gets the sizing it needs and neither has to know about the other. :has() is
   the right tool: the parent's layout genuinely depends on its child here. */
@media (min-width: 700px) {
    /* Home page: the bar. A basis, so it shares the row. */
    body.format-aicourse .aicourse-hero-banner
    .aicourse-progress-bar-container:has(.aicourse-progress-bar-track) {
        flex: 0 1 18rem;
        min-inline-size: 7rem;
        max-inline-size: 20rem;
    }

    /* Section page: the circles. Sized by content and NOT allowed to shrink —
       the title beside it has min-inline-size 0 and truncates instead, which is
       the right thing to give up. */
    body.format-aicourse .aicourse-hero-banner
    .aicourse-progress-bar-container:has(.aicourse-activity-number-circles) {
        flex: 0 0 auto;
        min-inline-size: 0;
        max-inline-size: none;
    }

    /* The whole cluster follows: it may not be squeezed below its contents. */
    body.format-aicourse .aicourse-hero-banner
    .aicourse-hero-nav-progress:has(.aicourse-activity-number-circles) {
        flex: 0 0 auto;
    }
}

/* Section 8 makes the circle row a horizontally scrollable strip so a long
   course can never clip circles. With the row now sized to its content the
   scrollbar is dead chrome that was drawing across the banner — and on a
   narrow viewport, where scrolling IS still needed, it should be invisible
   rather than a grey bar over the photo. Scrolling itself is untouched. */
body.format-aicourse .aicourse-activity-number-circles {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

body.format-aicourse .aicourse-activity-number-circles::-webkit-scrollbar {
    display: none;
}

/* ==========================================================================
   13. THE THREE THINGS 12.x GOT WRONG  (ACF-FIX-2.1.25)
   ========================================================================== */

/* --- 13.1 The title's off-centre text -------------------------------------
   ROOT CAUSE, and it is not the alignment properties. Section 8 reserves
   `padding-inline-end: 13rem` (208px) on the title and summary, to clear the
   icon pill that used to be ABSOLUTELY POSITIONED in the banner's top-right
   corner. 12.3 took the pill out of absolute positioning and made it a normal
   item at the start of the row — but the reservation stayed. 208px of dead
   padding on the inline-end of a centred text block moves its optical centre
   exactly 104px towards the inline-start, which is the offset that was visible
   against the meta row (which has no such padding and so was centred properly).

   Everything else I checked and ruled out: `text-align: center` was applied and
   inherited; `align-items: center` was set on the lede and the title wrap;
   `max-inline-size: 46rem` was already overridden to 100%; the lede and the
   title wrap measured identical boxes. The title's border box measured
   1217px inside a 1009px wrap — 1009 + 208. That was the whole story.

   The reservation is only correct while the pill is absolute, which is now
   only below 600px, so it is scoped to exactly that case. */
@media (min-width: 600px) {
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image
    :is(.aicourse-hero-title, .aicourse-hero-summary) {
        padding-inline-end: 0;
    }
}

/* --- 13.2 The overlay opacity setting that did nothing --------------------
   ROOT CAUSE, also mine. 12.13 declared

       body.format-aicourse { --acf-hero-scrim: rgba(2, 6, 23, var(--acf-hero-scrim-a, 0.62)); }

   and expected the course's inline --acf-hero-scrim-a (written onto the hero
   wrap by get_accent_style()) to feed it. It cannot: a custom property's value
   is substituted at the element where the property is DECLARED, not where it is
   used. --acf-hero-scrim was therefore resolved once, on <body>, against the
   body's own alpha — so the course setting was inherited by the banner and then
   never read by anything.

   The fix is to resolve the alpha on the element that actually paints it. The
   overlay inherits --acf-hero-scrim-a from the hero wrap, so the course value
   wins there, and the site-wide Banner overlay strength classes still provide
   the fallback on <body>. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-overlay {
    background: rgba(2, 6, 23, var(--acf-hero-scrim-a, 0.45));
}

/* Belt and braces: every other dark layer that could stack on top of the
   overlay is accounted for here, so "the overlay" means exactly one thing.
     - the ::before inline-start wash (12.13 retired it; restated)
     - the banner's own --acf-neutral-900 backdrop, which is only ever visible
       through a transparent image, never over one. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-overlay::before,
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-overlay::after {
    content: none;
}

/* Lighter out of the box. 45% still clears WCAG AA (4.5:1) on a mid-tone image;
   it is below the 55% needed for the pure-white worst case, which is the
   deliberate trade for images that are not white. Raise "Hero image overlay opacity" per course if your banners are pale. */
body.format-aicourse,
body.format-aicourse.aicourse-scrim-medium {
    --acf-hero-scrim-a: 0.45;
}

body.format-aicourse.aicourse-scrim-light {
    --acf-hero-scrim-a: 0.32;
}

body.format-aicourse:not(.aicourse-scrim-medium):not(.aicourse-scrim-light) {
    --acf-hero-scrim-a: 0.62;
}

/* --- 13.3 Nothing is truncated -------------------------------------------
   The title takes two lines and the banner grows to fit them, rather than
   clipping to one. min-block-size stays a floor, so a one-line title keeps the
   compact 88-120px banner and only a long name makes it taller. */
body.format-aicourse .aicourse-hero-banner .aicourse-hero-title {
    -webkit-box-orient: vertical;
}

body.format-aicourse .aicourse-hero-banner {
    block-size: auto;
}

/* ==========================================================================
   14. FIXED ZONES, AUTO-SIZED CONTENT  (ACF-FIX-2.1.26)
   --------------------------------------------------------------------------
   The banner is three zones that cannot collide, because they are grid tracks
   rather than flex items competing for the same space:

       [ actions ]   [ title + meta ]   [ progress ]
          auto             1fr             auto

   The outer two are sized by their content and never shrink. The middle takes
   whatever is left. Nothing overlaps by construction, so no rule in here has
   to nudge anything back into place.

   Inside the middle and the right-hand zones the CONTENT resizes instead of
   being cut off:
     - the title gets two lines and steps down through a type scale as the
       course name gets longer (tier class from hero.php);
     - the activity circles get two rows and step down through a size scale as
       the count rises (tier class from hero.php).
   Nothing is ever truncated, ellipsised or scrolled.
   ========================================================================== */

@media (min-width: 700px) {
    body.format-aicourse .aicourse-hero-banner .aicourse-hero-content {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        align-items: center;
        column-gap: var(--acf-space-5);
        row-gap: 0;
    }

    /* Explicit placement, so the visual order no longer depends on `order`
       values and the DOM order stays free to be the reading order. */
    body.format-aicourse .aicourse-hero-banner .aicourse-hero-icons {
        grid-column: 1;
    }

    body.format-aicourse .aicourse-hero-banner :is(
    .aicourse-hero-lede,
    .aicourse-hero-title-group) {
        grid-column: 2;
        min-inline-size: 0;
    }

    body.format-aicourse .aicourse-hero-banner .aicourse-hero-nav-progress {
        grid-column: 3;
    }
}

/* --- 14.1 Title: two lines, auto-sized, never cut ------------------------- */
body.format-aicourse .aicourse-hero-banner .aicourse-hero-title {
    display: block;
    overflow: visible;
    text-overflow: clip;
    -webkit-line-clamp: none;
    line-clamp: none;
    overflow-wrap: break-word;
    /* Two lines is the zone. A title that needs more than two lines at its tier
       has already stepped down to a smaller tier, so it fits. */
    line-height: 1.15;
    text-wrap: balance;
}

/* The tiers. Each is roughly 0.85x the one above, which is a big enough step to
   buy a whole line back and small enough that adjacent courses do not look like
   they use different designs. */
body.format-aicourse .aicourse-hero-title.aicourse-title-xl {
    font-size: clamp(1.25rem, 0.95rem + 1.5vw, 1.75rem);
}

body.format-aicourse .aicourse-hero-title.aicourse-title-lg {
    font-size: clamp(1.125rem, 0.9rem + 1.15vw, 1.5rem);
}

body.format-aicourse .aicourse-hero-title.aicourse-title-md {
    font-size: clamp(1rem, 0.85rem + 0.8vw, 1.25rem);
}

body.format-aicourse .aicourse-hero-title.aicourse-title-sm {
    font-size: clamp(0.9375rem, 0.82rem + 0.6vw, 1.125rem);
}

body.format-aicourse .aicourse-hero-title.aicourse-title-xs {
    font-size: clamp(0.875rem, 0.8rem + 0.4vw, 1rem);
}

/* --- 14.2 Circles: two rows, auto-sized, never scrolled ------------------- */
/* Section 8 made this a single scrolling strip. It is now a wrapping grid with
   a hard two-row zone: the tier classes shrink the circles so every one of them
   fits inside it. max-inline-size keeps the zone from eating the title's track
   on a wide banner. */
body.format-aicourse .aicourse-activity-number-circles {
    display: flex;
    flex-wrap: wrap;
    align-content: center;
    justify-content: flex-end;
    gap: 4px;
    overflow: visible;
    max-inline-size: 22rem;
}

body.format-aicourse .aicourse-circles-xl .aicourse-activity-number {
    inline-size: 2rem;
    block-size: 2rem;
    font-size: 0.8125rem;
}

body.format-aicourse .aicourse-circles-lg .aicourse-activity-number {
    inline-size: 1.75rem;
    block-size: 1.75rem;
    font-size: 0.75rem;
}

body.format-aicourse .aicourse-circles-md .aicourse-activity-number {
    inline-size: 1.5rem;
    block-size: 1.5rem;
    font-size: 0.6875rem;
}

body.format-aicourse .aicourse-circles-sm .aicourse-activity-number {
    inline-size: 1.25rem;
    block-size: 1.25rem;
    font-size: 0.625rem;
}

body.format-aicourse .aicourse-circles-xs .aicourse-activity-number {
    inline-size: 1rem;
    block-size: 1rem;
    font-size: 0.5625rem;
}

/* A circle is a touch target, so below the row breakpoint -- where the banner is
   a column with room to spare -- they go back to full size regardless of tier.
   Shrinking them to 16px on the device with the least precise pointer would be
   exactly backwards. */
@media (max-width: 699px) {
    body.format-aicourse [class*="aicourse-circles-"] .aicourse-activity-number {
        inline-size: 1.75rem;
        block-size: 1.75rem;
        font-size: 0.75rem;
    }

    body.format-aicourse .aicourse-activity-number-circles {
        max-inline-size: none;
        justify-content: flex-start;
    }
}

/* ==========================================================================
   15. CLOSING THE BAND ABOVE THE CONTENT  (ACF-FIX-2.1.28)
   --------------------------------------------------------------------------
   Hiding the secondary navigation with `display: none` removes the tabs but
   NOT the space they sat in: the theme's #page-header band above them, the
   nav's own container margin, and the top padding on the content region all
   survive, so the cards stayed pinned a long way below the banner with nothing
   in between. Every one of those is collapsed here, but only in the exact case
   where it is safe to: the tabs are hidden AND the user is not editing.
   ========================================================================== */

/* --- Space under the banner -----------------------------------------------
   ACF-FIX-2.1.83. The gap between the banner and the first card was never stated: it was whatever
   happened to sit between them, which is normally the course tab bar. Hide the tab bar and the two
   ended up 1px apart.

   A margin on the banner does not work here, because the banner is lifted out to #page while the
   cards stay inside #region-main -- they are not siblings, so nothing of the banner's pushes the
   cards down. The spacing therefore goes on the content, and only in the case where the tab bar is
   not there to provide it, so a page that still shows the tab bar keeps its existing spacing and
   nothing doubles up. */
body.format-aicourse:is(.aicourse-hidenav-all, .aicourse-hidenav-students)
:is(.format-aicourse-container, .aicourse-cards-container, .aicourse-activity-cards-container) {
    padding-block-start: var(--acf-space-7);
}

/* --- The theme's logo band -------------------------------------------------
   ACF-FIX-2.1.80. Themes commonly render two bands: a compact bar carrying notifications, the user
   menu and the Edit mode toggle, and beneath it a taller band holding the site logo and the site
   links. theme_academi calls the second `.header-main`, and it costs well over a hundred pixels of
   vertical space on every course page.

   This hides the second band only. The bar with the profile and the Edit mode toggle is never
   touched, which is the whole difference from the previous version of this setting: nothing has to
   be moved into the sidebar to compensate, because nothing functional is being taken away.

   The logo is still in the course player sidebar for sites that use it, and the site itself is
   still one click away from the bar above.

   Never in edit mode. */
body.format-aicourse.aicourse-hidelogoband-all:not(.editing):not(.editingon):not(.editing-mode)
:is(.header-main, #page-header),
body.format-aicourse.aicourse-hidelogoband-students:not(.aicourse-is-grader):not(.editing):not(.editingon):not(.editing-mode)
:is(.header-main, #page-header) {
    /* stylelint-disable-next-line declaration-no-important */
    display: none !important;
}

/* --- Course tabs moved into the site header --------------------------------
   ACF-FIX-2.1.89. Once the bar is a row of links beside Home and Dashboard rather than a band of
   its own, it has to stop behaving like a band: no full width, no background, no bottom border,
   and the tabs themselves sized to sit in a header rather than to be a page-level tab strip. */
body.format-aicourse .secondary-navigation.aicourse-coursenav-moved {
    display: flex;
    align-items: center;
    inline-size: auto;
    max-inline-size: none;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

body.format-aicourse .secondary-navigation.aicourse-coursenav-moved .nav-tabs {
    border: 0;
    flex-wrap: nowrap;
}

body.format-aicourse .secondary-navigation.aicourse-coursenav-moved .nav-link {
    padding-block: var(--acf-space-1);
    padding-inline: var(--acf-space-2);
    border: 0;
    font-size: var(--acf-font-size-sm);
    white-space: nowrap;
}

/* The active tab keeps a marker, but an underline rather than the boxed tab shape, which does not
   belong in a header row. */
body.format-aicourse .secondary-navigation.aicourse-coursenav-moved .nav-link.active {
    background: transparent;
    border-block-end: 2px solid var(--acf-brand);
}

/* --- Site footer ----------------------------------------------------------
   ACF-FIX-2.1.50. On a course page the footer is the last thing a learner needs and the first
   thing between them and the bottom of the content. Same three states as the settings around it:

     (no class)                    show it, unchanged
     .aicourse-hidefooter-students hide for everyone without moodle/course:update
     .aicourse-hidefooter-all      hide for everyone, editors included

   Targets core's own `<footer id="page-footer">`, which theme_academi also uses -- checked
   against both rather than guessed, after a selector written from assumption once hid that
   theme's entire site navigation.

   `.stickyfooter` is deliberately NOT matched. It is a separate element carrying the bulk-action
   bar in edit mode, and hiding it would take away Move, Duplicate and Delete from a teacher
   mid-edit. The `:not(.editing)` guards make that doubly certain. */
body.format-aicourse.aicourse-hidefooter-all:not(.editing):not(.editingon):not(.editing-mode)
:is(#page-footer, .footer-popover),
body.format-aicourse.aicourse-hidefooter-students:not(.aicourse-is-grader):not(.editing):not(.editingon):not(.editing-mode)
:is(#page-footer, .footer-popover) {
    display: none;
}

/* --- Breadcrumb -----------------------------------------------------------
   ACF-FIX-2.1.36. The activity hero already names the course, the section and
   the activity, so Moodle's breadcrumb repeats all three directly beneath it.
   Same three states as the tab setting:

     (no class)                    show it, unchanged
     .aicourse-hidecrumb-students  hide for everyone without moodle/course:update
     .aicourse-hidecrumb-all       hide for everyone, editors included

   Never applied while editing: a teacher rearranging a course needs every
   navigational handle the page has. This hides a trail, it restricts nothing —
   every destination in it remains reachable by its own link and its own
   capability check.

   Targets core's own markup: `lib/templates/navbar.mustache` emits
   `<nav aria-label="Breadcrumb"><ol class="breadcrumb">`, wrapped by
   `full_header.mustache` in `#page-navbar`. Both the wrapper and the list are
   matched, because `display: none` on the <nav> alone does not collapse a
   margin or border on its parent.

   ACF-FIX-2.1.39: `.navbar-nav` was in this list and has been removed. It is a
   Bootstrap utility class, not a breadcrumb class, and themes use it for the
   SITE navigation: theme_academi's navbar.mustache applies it four times, to
   the bar holding the logo, the Home/Dashboard/My courses links and the user
   menu. Hiding it would have removed the whole top navigation on that theme
   the moment an administrator turned this setting on. `nav:has(> .breadcrumb)`
   replaces it -- it matches only a <nav> that actually contains a breadcrumb
   list, whatever the theme labels it. */
body.format-aicourse.aicourse-hidecrumb-all:not(.editing):not(.editingon):not(.editing-mode)
:is(#page-navbar, .page-navbar, nav:has(> .breadcrumb), .breadcrumb),
body.format-aicourse.aicourse-hidecrumb-students:not(.aicourse-is-grader):not(.editing):not(.editingon):not(.editing-mode)
:is(#page-navbar, .page-navbar, nav:has(> .breadcrumb), .breadcrumb) {
    display: none;
}

/* The header band. It is empty on a course page for a student — no heading, no
   breadcrumb — so with the tabs gone there is nothing left in it to show. */
body.format-aicourse.aicourse-hidenav-all:not(.editing):not(.editingon):not(.editing-mode) #page-header,
body.format-aicourse.aicourse-hidenav-students:not(.aicourse-is-grader):not(.editing):not(.editingon):not(.editing-mode) #page-header {
    display: none;
}

/* The nav's own spacing, and the wrappers that carry it. `display: none` on the
   <nav> does not collapse a margin on its parent. */
/* 2.1.197: `.secondary-navigation` is no longer in this list. It was redundant -- measured in a
   browser across all four class combinations, the nav is `display: none` in exactly the states
   where this rule applies, so zeroing its margin achieved nothing -- and it was the last remaining
   specificity trap in the sheet: at (1,5,1) this rule outranked the (0,7,1) rule below that gives
   the tab row its top gap, purely because an id inside an :is() outweighs seven classes. Harmless
   while the nav is hidden, and a live bug the moment anyone made it visible in that state. The
   wrappers are what this rule is actually for; the comment above says so. */
body.format-aicourse.aicourse-hidenav-all:not(.editing):not(.editingon):not(.editing-mode)
:is(#page-content, #region-main-box, #region-main, .main-inner),
body.format-aicourse.aicourse-hidenav-students:not(.aicourse-is-grader):not(.editing):not(.editingon):not(.editing-mode)
:is(#page-content, #region-main-box, #region-main, .main-inner) {
    margin-block-start: 0;
    padding-block-start: 0;
}

/* And the banner keeps its own 12px, so the cards sit one gutter below it
   rather than welded to its lower edge. */
body.format-aicourse.aicourse-hidenav-all:not(.editing):not(.editingon):not(.editing-mode) .aicourse-cards-container,
body.format-aicourse.aicourse-hidenav-students:not(.aicourse-is-grader):not(.editing):not(.editingon):not(.editing-mode) .aicourse-cards-container {
    margin-block-start: var(--acf-space-4);
}

/* --- 15.1 The percentage inside the ring ---------------------------------
   The ring shrank from 80px to 56px in the compact banner but its text did
   not, so "43%" ran to the inner edge of the stroke and read as clipped. The
   type is now sized as a fraction of the ring itself and the box is inset by
   the stroke width, which keeps a real gap at every ring size instead of one
   that happens to work at the size it was designed against. */
/* Specificity note: two rules in section 9 set this font-size at (0,3,0) —
   one for each banner mode — so a (0,2,0) selector loses to both. Matching
   their shape rather than reaching for !important. */
body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image) .aicourse-progress-ring-text,
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-progress-ring-text {
    display: flex;
    align-items: center;
    justify-content: center;
    /* Section 9 centres this with inset-*-start: 50% plus a -50%/-50% translate.
       Stretching it to fill the ring instead lets flexbox do the centring, and
       the padding then reads as a real inset from the stroke. The translate MUST
       be cleared with it or the box is dragged half its size up and to the
       start — which put the percentage outside the circle entirely. */
    inset: 0;
    transform: none;
    padding: 18%;
    /* ACF-FIX-2.1.162: lower bound raised from 0.625rem (10px) to 0.6875rem (11px). 11px is the
       floor this sheet's type scale declares and the clamp fell straight through it on a phone,
       where the vw term contributes almost nothing. Fixed HERE because this is the rule that
       wins -- three separate rules set this one property, at (0,2,0), (0,3,0) and (0,3,0), and
       a floor added to either of the others would have been silently discarded. */
    font-size: clamp(0.6875rem, 0.42rem + 0.55vw, 0.8125rem);
    line-height: 1;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}

/* ==========================================================================
   16. THE BAND ABOVE THE TABS  (ACF-FIX-2.1.30)
   --------------------------------------------------------------------------
   Section 15 only collapsed the top-of-page whitespace when the navigation
   tabs were HIDDEN. That was too narrow: the empty band is there whether or
   not the tabs are shown — it is the theme's #page-header region, which on a
   course page carries a heading this format already renders in the banner and
   is therefore blank, plus the top padding of the content region.

   With the banner lifted to the top of the page (heroattop) the result was
   banner, ~90px of nothing, tabs, more nothing, cards.

   So the collapse is now tied to the banner being at the top, which is the
   condition that actually makes the band redundant, rather than to the tabs
   being hidden. Edit mode is still excluded — a teacher needs the header
   region for course-level controls — and if the banner has NOT been lifted
   nothing here applies, so a site that turns heroattop off keeps the theme's
   normal spacing untouched.

   Scoped by [data-aicourse-atop], the attribute heroatop.js sets on the banner
   once it has actually moved it. That means the rule cannot fire on a theme
   where the move silently failed, which would otherwise strip the header band
   and leave the banner still sitting below it.
   ========================================================================== */

body.format-aicourse:not(.editing):not(.editingon):not(.editing-mode):has(.aicourse-hero-sticky-wrap[data-aicourse-atop]) #page-header {
    display: none;
}

body.format-aicourse:not(.editing):not(.editingon):not(.editing-mode):has(.aicourse-hero-sticky-wrap[data-aicourse-atop])
:is(#page-content, #region-main-box, #region-main, .main-inner) {
    margin-block-start: 0;
    padding-block-start: 0;
}

/* The tab row's own breathing space, when it is shown. It should sit close
   under the banner, not float in the middle of a band. */
body.format-aicourse:not(.editing):not(.editingon):not(.editing-mode):has(.aicourse-hero-sticky-wrap[data-aicourse-atop]) .secondary-navigation {
    margin-block: 0 var(--acf-space-3);
}

/* :has() is unsupported on a small tail of older browsers, where the rules
   above are simply skipped and the theme's spacing survives — a cosmetic
   fallback, not a broken page. For those, the same collapse keyed off the body
   class the server writes, which is the closest signal available without it. */
/* ACF-FIX-2.1.37: line the lifted banner up with the content column beneath it.
   heroatop.js measures the column once it has moved the banner and publishes the two
   offsets as custom properties on the banner itself; they default to 0, so a page where
   the JS has not run, or a theme where the banner already shares the content's box, is
   unchanged. Padding rather than margin, so the banner's own background still spans its
   full box and only its contents are inset -- the alignment the eye reads is the card
   edge against the banner edge, and both are content edges. */
body.format-aicourse.aicourse-hero-attop:not(.editing):not(.editingon):not(.editing-mode)
.aicourse-hero-sticky-wrap {
    padding-inline-start: calc(var(--acf-gutter) + var(--acf-hero-align-start, 0px));
    padding-inline-end: calc(var(--acf-gutter) + var(--acf-hero-align-end, 0px));
}

@supports not selector(:has(*)) {

    body.format-aicourse.aicourse-hero-attop:not(.editing):not(.editingon):not(.editing-mode) #page-header {
        display: none;
    }

    body.format-aicourse.aicourse-hero-attop:not(.editing):not(.editingon):not(.editing-mode)
    :is(#page-content, #region-main-box, #region-main, .main-inner) {
        margin-block-start: 0;
        padding-block-start: 0;
    }
}

/* ==========================================================================
   17. TIGHTENING THE TOP OF THE PAGE  (ACF-FIX-2.1.31)
   --------------------------------------------------------------------------
   Measured on the preview at 1440px with the banner lifted and the tabs shown:
   banner -> tabs 46px, tabs -> cards 36px. With the tabs HIDDEN those two
   collapse into one gap, and 46 + 36 of inherited spacing is far more than the
   one deliberate step the design wants there.

   Zero is wrong, though: the banner has a drop shadow and a rounded lower edge,
   and butting the first card straight against it reads as a rendering fault
   rather than as a decision. A negative value would clip the shadow outright.
   One space-4 (20px) is the smallest gap that still lets the banner's shadow
   resolve — that is the value below, and it replaces everything else rather
   than adding to it.
   ========================================================================== */

body.format-aicourse:not(.editing):not(.editingon):not(.editing-mode):has(.aicourse-hero-sticky-wrap[data-aicourse-atop]) {
    /* One place to change the whole top-of-page rhythm. */
    --acf-topgap: var(--acf-space-4);
}

body.format-aicourse:not(.editing):not(.editingon):not(.editing-mode):has(.aicourse-hero-sticky-wrap[data-aicourse-atop])
.aicourse-hero-sticky-wrap {
    margin-block-end: 0;
}

/* Whichever comes first after the banner — the tab row, or the cards when the
   tabs are hidden — carries the single gap. */
body.format-aicourse:not(.editing):not(.editingon):not(.editing-mode):has(.aicourse-hero-sticky-wrap[data-aicourse-atop])
:is(.secondary-navigation, .format-aicourse-container) {
    margin-block-start: var(--acf-topgap);
}

body.format-aicourse:not(.editing):not(.editingon):not(.editing-mode):has(.aicourse-hero-sticky-wrap[data-aicourse-atop])
:is(.aicourse-cards-container, .aicourse-activity-cards-container) {
    margin-block-start: 0;
}

/* When the tabs ARE shown they own the gap above them, and the cards sit their
   own step below the tabs rather than inheriting a second full gap. */
body.format-aicourse:not(.editing):not(.editingon):not(.editing-mode):has(.aicourse-hero-sticky-wrap[data-aicourse-atop])
.secondary-navigation {
    margin-block-end: var(--acf-space-3);
}

body.format-aicourse:not(.editing):not(.editingon):not(.editing-mode):has(.aicourse-hero-sticky-wrap[data-aicourse-atop])
.secondary-navigation ~ * .format-aicourse-container {
    margin-block-start: 0;
}

/* Section 15 gives .aicourse-cards-container a 20px top margin when the tabs
   are hidden, and section 17 zeroes it — but 15's selector carries the
   .aicourse-hidenav-* class and therefore wins on specificity, so the two
   margins stacked and the measured banner-to-card gap came out at 54px instead
   of 20. Matching 15's selector shape settles it, and .course-content's own 8px
   goes with it so the single deliberate gap is the only thing left. */
body.format-aicourse:is(.aicourse-hidenav-all, .aicourse-hidenav-students):not(.editing):not(.editingon):not(.editing-mode):has(.aicourse-hero-sticky-wrap[data-aicourse-atop])
:is(.aicourse-cards-container, .aicourse-activity-cards-container, .course-content) {
    margin-block-start: 0;
    padding-block-start: 0;
}

body.format-aicourse:not(.editing):not(.editingon):not(.editing-mode):has(.aicourse-hero-sticky-wrap[data-aicourse-atop])
.course-content {
    padding-block-start: 0;
}

/* --- Hero title vs the numbered circle strip -------------------------------
   ACF-FIX-2.1.40. On a section hero the progress cluster carries one numbered circle per
   activity. With eleven activities that strip is wide, and nothing stopped it taking the width
   it wanted: the title was squeezed into a column a few characters across and wrapped down the
   banner, which is unreadable.

   The title now claims a guaranteed share of the row and the circle strip gives way -- it may
   shrink and, past its minimum, scroll horizontally rather than push the heading aside. The
   circles are a secondary navigation aid; the section name is the heading and must stay legible.

   Placed here, after the hero section, because the earlier rules set inline-size: 100% on the
   cluster and would otherwise win on source order. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image
:is(.aicourse-hero-title-wrap, .aicourse-hero-title-group, .aicourse-hero-lede),
body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image)
:is(.aicourse-hero-title-wrap, .aicourse-hero-title-group, .aicourse-hero-lede) {
    flex: 1 1 auto;
    min-inline-size: min(48%, 24rem);
}

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-nav-progress,
body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image) .aicourse-hero-nav-progress {
    inline-size: auto;
    min-inline-size: 0;
    flex: 0 1 auto;
}

body.format-aicourse .aicourse-hero-banner .aicourse-activity-number-circles {
    min-inline-size: 0;
    overflow-x: auto;
    flex-wrap: nowrap;
    scrollbar-width: none;
}

body.format-aicourse .aicourse-hero-banner .aicourse-activity-number-circles::-webkit-scrollbar {
    display: none;
}

/* Below 700px the hero stacks, so the title has the full width and needs no floor. */
@media (max-width: 699px) {
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image
    :is(.aicourse-hero-title-wrap, .aicourse-hero-title-group, .aicourse-hero-lede),
    body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image)
    :is(.aicourse-hero-title-wrap, .aicourse-hero-title-group, .aicourse-hero-lede) {
        min-inline-size: 0;
    }
}

/* ==========================================================================
   FIRST-RUN TOUR (ACF-FIX-2.1.43)
   A spotlight over the real page rather than screenshots, so what is described
   is the course the user is actually looking at. The scrim is a single element
   with a cut-out drawn by an outsized box-shadow on the spotlight, which keeps
   the highlighted control genuinely visible instead of dimmed-but-outlined.
   ========================================================================== */

body.aicourse-tour-open {
    overflow: hidden;
}

.aicourse-tour {
    position: fixed;
    inset: 0;
    z-index: 1080;
}

.aicourse-tour-scrim {
    position: absolute;
    inset: 0;
    background: rgba(2, 6, 23, 0.62);
    backdrop-filter: blur(1.5px);
}

/* The cut-out. A very large spread on the shadow paints everything OUTSIDE this
   box, so the element itself stays perfectly clear. */
.aicourse-tour-spot {
    position: fixed;
    border-radius: 14px;
    box-shadow:
        0 0 0 9999px rgba(2, 6, 23, 0.62),
        0 0 0 2px var(--acf-brand, #194866),
        0 0 0 6px rgba(255, 255, 255, 0.55);
    transition:
        inset-inline-start 220ms var(--acf-ease-out, ease),
        inset-block-start 220ms var(--acf-ease-out, ease),
        inline-size 220ms var(--acf-ease-out, ease),
        block-size 220ms var(--acf-ease-out, ease);
    pointer-events: none;
}

/* With the cut-out painting the dim, the flat scrim would double it. */
.aicourse-tour-spot[style*="display:block"] ~ .aicourse-tour-scrim,
.aicourse-tour:has(.aicourse-tour-spot[style*="display:block"]) .aicourse-tour-scrim {
    background: transparent;
    backdrop-filter: none;
}

/* --- The pointer -----------------------------------------------------------
   ACF-FIX-2.1.49. A ring tells you where to look but not what the card is talking about, and on a
   busy page -- a course index full of links, a row of cards -- the connection between the two is
   not obvious. The arrow draws it explicitly. It flies in from the card's side on each step, then
   nudges toward the target on a loop so the eye keeps being led back to it.

   Motion is the whole point of it, so under prefers-reduced-motion the arrow still appears and
   still points, it simply stops moving. */
.aicourse-tour-arrow {
    position: fixed;
    inline-size: 56px;
    block-size: 56px;
    rotate: var(--acf-tour-arrow-angle, 0deg);
    pointer-events: none;
    filter: drop-shadow(0 2px 6px rgba(2, 6, 23, 0.45));
}

.aicourse-tour-arrow svg {
    inline-size: 100%;
    block-size: 100%;
    fill: none;
    stroke: var(--acf-brand, #194866);
    stroke-width: 7;
    stroke-linecap: round;
    stroke-linejoin: round;
    /* A white underlay so the arrow reads on a photograph as well as on a card. */
    paint-order: stroke;
}

.aicourse-tour-arrow::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.85) 0%, rgba(255, 255, 255, 0) 68%);
    z-index: -1;
}

.aicourse-tour-arrow-in {
    animation:
        acf-tour-arrow-in 380ms var(--acf-ease-out, cubic-bezier(0.22, 1, 0.36, 1)) both,
        acf-tour-arrow-nudge 1400ms 380ms ease-in-out infinite;
}

@keyframes acf-tour-arrow-in {
    from {
        opacity: 0;
        translate: -28px 0;
    }

    to {
        opacity: 1;
        translate: 0 0;
    }
}

@keyframes acf-tour-arrow-nudge {
    0%,
    100% {
        translate: 0 0;
    }

    50% {
        translate: 9px 0;
    }
}

/* A soft pulse on the ring itself, so the highlight reads as active rather than as a static
   border drawn round something. */
@keyframes acf-tour-pulse {
    0%,
    100% {
        box-shadow:
            0 0 0 9999px rgba(2, 6, 23, 0.62),
            0 0 0 2px var(--acf-brand, #194866),
            0 0 0 6px rgba(255, 255, 255, 0.55);
    }

    50% {
        box-shadow:
            0 0 0 9999px rgba(2, 6, 23, 0.62),
            0 0 0 3px var(--acf-brand, #194866),
            0 0 0 11px rgba(255, 255, 255, 0.28);
    }
}

.aicourse-tour-spot {
    animation: acf-tour-pulse 2000ms ease-in-out infinite;
}

.aicourse-tour-card {
    position: fixed;
    inline-size: min(26rem, calc(100vw - 24px));
    padding: 20px 22px 18px;
    border-radius: 18px;
    background: var(--acf-surface-raised, #fff);
    color: var(--acf-text-primary, #1e293b);
    box-shadow:
        0 18px 40px rgba(2, 6, 23, 0.28),
        0 2px 6px rgba(2, 6, 23, 0.16);
    outline: none;
}

.aicourse-tour-card-centre {
    inset-inline-start: 50%;
    inset-block-start: 50%;
    transform: translate(-50%, -50%);
}

.aicourse-tour-count {
    margin: 0 0 6px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--acf-text-secondary, #475569);
}

.aicourse-tour-title {
    margin: 0 0 8px;
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.3;
    color: inherit;
}

.aicourse-tour-body {
    margin: 0 0 14px;
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--acf-text-secondary, #475569);
}

.aicourse-tour-dots {
    display: flex;
    gap: 6px;
    margin-block-end: 14px;
}

.aicourse-tour-dot {
    inline-size: 6px;
    block-size: 6px;
    border-radius: 50%;
    background: var(--acf-border-strong, #cbd5e1);
}

.aicourse-tour-dot-on {
    inline-size: 20px;
    border-radius: 3px;
    background: var(--acf-brand, #194866);
}

.aicourse-tour-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.aicourse-tour-spacer {
    flex: 1 1 auto;
}

.aicourse-tour-actions button,
.aicourse-tour-offer-actions button {
    min-block-size: 44px;
    padding: 0 16px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-size: 0.9375rem;
    font-weight: 600;
    cursor: pointer;
}

.aicourse-tour-next,
.aicourse-tour-offer-start {
    background: var(--acf-brand, #194866);
    color: #fff;
}

.aicourse-tour-back,
.aicourse-tour-skip,
.aicourse-tour-offer-dismiss {
    background: transparent;
    border-color: var(--acf-border-subtle, #e2e8f0);
    color: var(--acf-text-secondary, #475569);
}

.aicourse-tour-mute {
    position: absolute;
    inset-block-start: 12px;
    inset-inline-end: 12px;
    inline-size: 44px;
    block-size: 44px;
    display: grid;
    place-items: center;
    border: 1px solid var(--acf-border-subtle, #e2e8f0);
    border-radius: 10px;
    background: transparent;
    cursor: pointer;
}

.aicourse-tour-mute::before {
    content: "\1F50A";
    font-size: 1rem;
}

.aicourse-tour-mute.aicourse-tour-muted::before {
    content: "\1F507";
    opacity: 0.6;
}

/* The opening offer. Deliberately a card in the corner rather than a modal: it
   interrupts nobody, and the tour only takes over once it is accepted. */
.aicourse-tour-offer {
    position: fixed;
    inset-block-end: 20px;
    inset-inline-end: 20px;
    z-index: 1070;
    inline-size: min(22rem, calc(100vw - 24px));
    padding: 18px 20px 16px;
    border-radius: 16px;
    background: var(--acf-surface-raised, #fff);
    box-shadow: 0 16px 36px rgba(2, 6, 23, 0.24);
}

.aicourse-tour-offer-title {
    margin: 0 0 6px;
    font-size: 1rem;
    font-weight: 700;
}

.aicourse-tour-offer-body {
    margin: 0 0 14px;
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--acf-text-secondary, #475569);
}

.aicourse-tour-offer-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

@media (prefers-reduced-motion: reduce) {
    .aicourse-tour-spot {
        transition: none;
        animation: none;
    }

    /* The arrow still appears and still points; it simply stops moving. */
    .aicourse-tour-arrow-in {
        animation: none;
    }
}

/* ==========================================================================
   COURSE PLAYER SIDEBAR (ACF-FIX-2.1.52)
   Core's course index is a list of links. This turns it into something a learner can plan with --
   a header carrying the course, its progress and its total time, and rows that say how long each
   activity takes and whether it is done -- without replacing core's drawer, which would mean
   reimplementing its collapse behaviour, its drag and drop and the JS that keeps it in step.
   ========================================================================== */

/* The header is the hero's smaller sibling: same raised surface, same radius family, same single
   step of elevation, so the top of the sidebar and the top of the page belong together. */
/* ACF-FIX-2.1.60: the header sits on the panel edge rather than floating in it, matching the
   rows below. A card here framed a panel that is already a frame. */
/* ACF-FIX-2.1.62: a plain separator, not an accent rule.
   The coloured lines read as decoration rather than structure, and stacked against core's own
   dividers they doubled up. The accent stays on the headings and the icons, where it labels
   something; the lines go back to the theme's ordinary border colour. */
/* ACF-FIX-2.1.81: the header keeps the drawer's own tint, so it reads as a band at the top of an
   otherwise white panel -- that contrast is what makes the course name, ring and total time sit
   apart from the list beneath them. */
/* ACF-FIX-2.1.85: the shaded band must reach all four edges.
   It sat inside whatever inset the drawer's own wrapper carries, so a strip of white showed down
   each side and along the top -- and that strip, meeting the band's border, read as a second line.
   Negative margins pull the band out to the panel edges and the padding is put back inside it, so
   the shading is flush and only one line is drawn.

   The colour is a token so a site can change it: --acf-player-header-bg is published from the
   course settings when one is chosen, and falls back to the shade below otherwise. */
body.aicourse-player-on .aicourse-player-header {
    margin-block: 0;
    margin-inline: 0;
    /* ACF-FIX-2.1.131: the remainder of the top block, so the drawer strip plus this header equals
       the banner exactly. Stated as a height rather than left to the content, because the content
       varies -- a long course name wraps -- and the two edges have to line up regardless. Centred
       vertically so a short course name does not sit high in the band. */
    block-size: calc(var(--acf-topblock) - var(--acf-drawerstrip));
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--acf-space-2);
    padding: var(--acf-space-3) var(--acf-space-4);
    /* ACF-FIX-2.3.2: room below the progress ring and the time, so they do not sit hard against
       the first section band.
       This declaration existed since 2.1.146 but was written ABOVE the `padding` shorthand two
       lines down, which resets all four sides -- so it had been doing nothing at all, and the
       header stayed cramped no matter what the value said. It is now after the shorthand, which
       is the only place a single-side override can survive one.
       Because the contents are centred, padding at the end shortens the content box from the
       bottom and lifts everything up, which is what puts the new space under the ring rather
       than splitting it evenly above and below. */
    padding-block-end: var(--acf-space-6);
    background: var(--acf-player-header-bg, var(--acf-player-header-default));
    border-block-end: 1px solid var(--acf-player-line);
}

/* ACF-FIX-2.1.101: the drawer's own header strip takes the same colour.
   That strip -- the one carrying the close button and the options menu -- sits directly above the
   band and was left at the theme's colour, so the top of the panel was two different shades with a
   seam between them. It reads as one surface now, and because it uses the same token, a site that
   changes the header colour in the settings changes both together rather than discovering the
   second one later. */
body.aicourse-player-on #theme_boost-drawers-courseindex .drawerheader {
    background: var(--acf-player-header-bg, var(--acf-player-header-default));
    border-block-end: 0;
    /* 60px of chrome for a close button and a menu is more than either needs. */
    min-block-size: var(--acf-drawerstrip);
    block-size: var(--acf-drawerstrip);
    padding-block: 0;
}

/* Whatever the drawer wraps its content in must not inset the band -- measured at 6px above it,
   which showed as a strip of white between the drawer's top and the shading. */
/* The header is itself the first child of .drawercontent, so a blanket rule on that child
   stripped the band's own side padding and pushed the course name to the panel edge. Excluded. */
body.aicourse-player-on .drawercontent,
body.aicourse-player-on .drawercontent > :first-child:not(.aicourse-player-header),
body.aicourse-player-on .courseindex {
    padding-inline: 0;
    padding-block-start: 0;
    margin-block-start: 0;
}

/* The panel itself, and everything below the header, goes white with no shadow, so the sidebar
   reads as part of the page rather than a floating tray laid over it. The drawer's own shadow is
   the theme's, so it is cleared here too. */
/* ACF-FIX-2.1.125: the course index takes the card surface by default, so the two match without
   anyone having to set them the same. --acf-index-bg is published only when a course or the site
   chooses one; otherwise this falls through to whatever the cards are using, and changing the card
   colour moves both together. */
body.aicourse-player-on :is(#theme_boost-drawers-courseindex, .drawercontent, .courseindex, .courseindex-section,
.courseindex-sectioncontent) {
    background: var(--acf-index-bg, var(--acf-surface-card));
    box-shadow: none;
}

body.aicourse-player-on #theme_boost-drawers-courseindex {
    border-inline-end: 1px solid var(--acf-player-line);
}

.aicourse-player-brand {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--acf-space-3);
    margin-block-end: var(--acf-space-3);
}

.aicourse-player-logo {
    max-block-size: 30px;
    max-inline-size: 55%;
    object-fit: contain;
}

.aicourse-player-nav {
    display: flex;
    gap: 2px;
    margin-inline-start: auto;
}

.aicourse-player-nav a {
    display: grid;
    place-items: center;
    inline-size: 36px;
    block-size: 36px;
    border-radius: var(--acf-radius-md);
    color: var(--acf-text-secondary);
}

.aicourse-player-nav a:hover,
.aicourse-player-nav a:focus-visible {
    background: var(--acf-surface-hover);
    color: var(--acf-brand);
}

.aicourse-player-nav svg {
    inline-size: 17px;
    block-size: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.aicourse-player-title-row {
    display: flex;
    align-items: center;
    gap: var(--acf-space-3);
}

.aicourse-player-titles {
    min-inline-size: 0;
    flex: 1 1 auto;
}

.aicourse-player-coursename {
    /* -webkit-box is what makes -webkit-line-clamp work; it is still the only cross-browser
       way to clamp to a line count. */
    display: -webkit-box;
    font-size: var(--acf-font-size-md);
    font-weight: var(--acf-weight-semibold);
    line-height: var(--acf-leading-snug);
    color: var(--acf-text-primary);
    text-decoration: none;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.aicourse-player-meta {
    margin: 2px 0 0;
    font-size: var(--acf-font-size-2xs);
    color: var(--acf-text-tertiary);
}

.aicourse-player-ring {
    position: relative;
    flex: none;
    inline-size: 44px;
    block-size: 44px;
}

.aicourse-player-ring svg {
    inline-size: 100%;
    block-size: 100%;
    rotate: -90deg;
}

.aicourse-player-ring circle {
    fill: none;
    stroke-width: 4;
}

.aicourse-player-ring-bg {
    stroke: var(--acf-border-subtle);
}

.aicourse-player-ring-fill {
    stroke: var(--acf-status-completed, #2f855a);
    stroke-linecap: round;
    transition: stroke-dasharray var(--acf-duration-slow) var(--acf-ease-out);
}

.aicourse-player-ring-text {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    font-size: var(--acf-font-size-2xs);
    font-weight: var(--acf-weight-bold);
    color: var(--acf-text-primary);
}

/* --- Full-width banner ----------------------------------------------------
   ACF-FIX-2.1.103. The banner normally sits inside the content column, aligned with the cards
   beneath it. Set to full width it spans the whole area right of the course index and loses the
   gap above, which is the shape a dedicated e-learning player has rather than a page with a
   picture on it.

   The alignment insets that heroatop.js measures are cleared, since their whole purpose is to keep
   the banner lined up with the content column -- exactly what is being given up here. Leaving them
   would fight the width and produce a banner that is neither aligned nor full. */
body.format-aicourse .aicourse-hero-sticky-wrap {
    /* Kept as 0px rather than 0: these are consumed by calc() in the alignment rules, and a
       bare 0 there is invalid. */
    /* stylelint-disable length-zero-no-unit */
    --acf-hero-align-start: 0px;
    --acf-hero-align-end: 0px;
    /* stylelint-enable length-zero-no-unit */

    inline-size: 100%;
    max-inline-size: none;
    margin-block-start: 0;
    padding-block-start: 0;
    padding-inline: 0;
}

/* Two things hold the width, both found by walking the ancestor chain and reading each box rather
   than guessing at which one it was:

   1. The wrap carries 47px of its own inline padding -- the gutter that keeps the banner aligned
      with the content column. The earlier rule setting `padding-inline: 0` was losing to the base
      rule's specificity, so it measured 47px regardless.
   2. `#page` adds 48px of padding on the trailing edge.

   With the drawer open the banner then spans 342 to 1452 of a 1500px window: full width of the
   area beside the course index, which is what was wanted. With the drawer closed the content is
   centred instead, so the centring is released too -- otherwise "full width" would depend on
   whether the sidebar happened to be open. */
body.format-aicourse #page > .aicourse-hero-sticky-wrap,
body.format-aicourse .main-inner > .aicourse-hero-sticky-wrap,
body.format-aicourse .aicourse-hero-sticky-wrap[data-aicourse-hero] {
    max-inline-size: none;
    margin-inline: 0;
    padding-inline: 0;
}

body.format-aicourse #page.drawers {
    padding-inline-end: 0;
}

/* An ACTIVITY page keeps the banner inside #region-main rather than lifting it to #page, so none
   of the rules above reach it and the banner stayed inset. Measured on an activity page: the wrap
   carried 24px of its own inline padding and #page-content another 48px, against 0/0 on the course
   page.

   Rather than adding #region-main to the list above -- which would only work until the next
   wrapper differs -- the wrap is pulled back out to the edges of its container with a negative
   margin equal to the padding it sits inside. That works wherever it is nested, because it is
   stated relative to its own surroundings rather than to a particular ancestor. */
body.format-aicourse
:is(#region-main, #region-main-box) .aicourse-hero-sticky-wrap {
    inline-size: auto;
    margin-inline: calc(var(--acf-fw-gap) * -1);
    padding-inline: 0;
}

body.format-aicourse #page-content {
    padding-inline: var(--acf-fw-gap);
}

/* --- One gutter for everything in full-width mode --------------------------
   ACF-FIX-2.1.110. The gaps were coming from three different places: the container's own padding,
   the space under the banner, and the grid's gap between cards. Three values that happened to look
   close but were never the same, so the eye caught the difference even where the numbers did not
   look far apart.

   They now all read from one token. Whatever it is set to, the distance from the course index to
   the first card, from the banner down to the cards, and between every pair of cards is identical
   -- horizontally and vertically. Change the number in one place and the whole grid stays square.

   24px at the default, stepping up on wider screens where the same gap starts to look mean against
   a bigger card. */
body.format-aicourse {
    --acf-fw-gap: 24px;
}

@media (min-width: 1200px) {
    body.format-aicourse {
        --acf-fw-gap: 32px;
    }
}

@media (min-width: 1600px) {
    body.format-aicourse {
        --acf-fw-gap: 40px;
    }
}

body.format-aicourse
:is(.format-aicourse-container, .aicourse-cards-container, .aicourse-activity-cards-container) {
    padding-block-start: var(--acf-fw-gap);
    padding-inline: 0;
    /* The container carries a 16px top margin of its own on top of the padding, so the space under
       the banner was 48px against a 32px token. The token sets the whole distance; the margin goes
       or the two add up. */
    margin-block-start: 0;
}

/* The horizontal inset was 55px against the same 32px token, and it came from two places rather
   than one: the region-main wrapper sits 40px inside #page, and a div within it adds another 15px
   of its own padding. Both are cleared and the gutter is stated once, on #page-content, so the
   distance from the course index to the first card is the token and nothing else. */
body.format-aicourse
:is(#region-main, #region-main-box, #region-main > div, #region-main-box > div) {
    padding-inline: 0;
    margin-inline: 0;
}

/* The last 8px. Dumping every box between #page and the cards grid in one pass -- rather than
   testing the elements I suspected -- showed the inset was 8px on #topofscroll.main-inner plus
   32px on #page-content: 40 against a 32px token. The gutter is stated once on #page-content, so
   main-inner contributes nothing. */
body.format-aicourse #topofscroll.main-inner {
    padding-inline: 0;
}

/* And the last 17px. The container's own 16px top margin survived the earlier rule because that
   rule sets `margin-block-start` while the theme sets the physical `margin-top`, which wins on a
   tie. Both are stated. */
body.format-aicourse .format-aicourse-container {
    margin-top: 0;
    margin-block-start: 0;
}

body.format-aicourse .aicourse-hero-banner {
    border-radius: 0;
}

/* --- Hiding the General section -------------------------------------------
   ACF-FIX-2.1.102. Section 0 is Moodle's "General" -- it holds the announcements forum and little
   else, and on a course whose content starts at Section 1 it is a heading a learner has to read
   past before reaching anything they came for.

   Section 0 is matched by `data-number="0"`, which core sets, rather than by :first-child: a
   course can have section 0 hidden or delegated and something else sitting first, and matching on
   position would then hide the wrong thing.

   Never in edit mode -- a teacher needs to reach it to manage announcements, and it returns the
   moment editing is switched on, like every other visibility rule here.

   3.0.0: never while the learner is ON one of its activities (core marks that row .pageitem), so
   someone reading an announcement still sees where they are. The server also leaves the setting
   off entirely when General holds anything besides Announcements; see
   activityinfo::general_has_content(). */
body.format-aicourse.aicourse-hidegeneral-all:not(.editing):not(.editingon):not(.editing-mode)
:is(.courseindex-section[data-number="0"]):not(:has(.pageitem)),
body.format-aicourse.aicourse-hidegeneral-students:not(.aicourse-is-grader):not(.editing):not(.editingon):not(.editing-mode)
:is(.courseindex-section[data-number="0"]):not(:has(.pageitem)) {
    display: none;
}

/* --- The whole row is the click target ------------------------------------
   ACF-FIX-2.1.97. Core sizes the link to its text, so on a 342px row only the words themselves
   were clickable -- a learner aiming at the row and landing an inch to the right of a short name
   got nothing, with no way to tell why. The icon, the duration and all the empty space between
   them were dead.

   The link is stretched over the row with an absolutely positioned ::after rather than by making
   the link itself fill the row, because the icon and the time pill are siblings of the link, not
   children of it: sizing the link to the row would push them out of place. The overlay leaves the
   layout untouched and simply covers it.

   The section chevron is lifted above the overlay so collapsing a section still works -- without
   that, stretching the link would take the collapse control away, which is a worse problem than
   the one being fixed. */
body.aicourse-player-on .courseindex-item.aicourse-player-row,
body.aicourse-player-on .courseindex-item.courseindex-section-title {
    position: relative;
}

/* The link must NOT be a positioned ancestor, or the overlay below resolves against the link's own
   box -- which is the text -- and covers exactly the area that was already clickable. Measured:
   with the link positioned, a click in the empty space still missed. */
body.aicourse-player-on .courseindex-item.aicourse-player-row .courseindex-link,
body.aicourse-player-on .courseindex-item.courseindex-section-title .courseindex-link {
    position: static;
}

body.aicourse-player-on .courseindex-item.aicourse-player-row .courseindex-link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}

/* On a section heading the overlay starts AFTER the chevron rather than covering the whole row.
   Raising the chevron above the overlay with z-index did not hold -- measured unreachable at both
   2 and 3, the two elements being in stacking contexts a single step could not reliably resolve.
   Leaving a gap is not subject to that: the overlay simply is not there, so the chevron is hit
   because nothing is on top of it. Losing the ability to collapse a section would be a worse fault
   than the one being fixed. */
body.aicourse-player-on .courseindex-item.courseindex-section-title .courseindex-link::after {
    content: "";
    position: absolute;
    inset-block: 0;
    inset-inline: 2rem 0;
    z-index: 1;
}

/* Anything on the row with its own job stays above the overlay. Measured at z-index 2 the chevron
   was still being covered, so it sits at 3: the overlay and the chevron are in different stacking
   contexts and a single step was not reliably winning. Losing the chevron would be a worse fault
   than the one being fixed -- a section that cannot be collapsed. */
body.aicourse-player-on .courseindex-item .courseindex-chevron,
body.aicourse-player-on .courseindex-item [data-action],
body.aicourse-player-on .courseindex-item .dropdown,
body.aicourse-player-on .courseindex-item .courseindex-locked {
    position: relative;
    z-index: 3;
}

/* --- Panel width and section heading spacing -------------------------------
   ACF-FIX-2.1.86. Core's drawer is 285px, which was chosen for a plain list of links. This panel
   carries an icon, a name, a duration and a completion tick on every row, so names were being
   truncated far earlier than they need to be. Widened by 20% to 342px, with the off-screen
   position and the content offset moved with it -- all three are keyed to the same width in core,
   and changing one without the others leaves the drawer either peeking on screen when closed or
   overlapping the content when open.

   The chevron on a section heading also sat in a large fixed gutter sized for a plain list. Halved,
   which is the single biggest recovery of horizontal space in the panel. */
/* ACF-FIX-2.1.105: the widened drawer is DESKTOP ONLY.
   These rules shipped in 2.1.86 with no media query. Below Moodle's drawer breakpoint the course
   index is an overlay that slides over the content, and the content has no offset at all -- so
   forcing a 342px width and a 342px margin pushed the page off the side of the screen. Measured on
   a 390px phone: the content started at 342px, leaving 48px of usable width, the banner rendered
   8px wide and the document scrolled horizontally to 541px.

   The breakpoint is 992px, not 768px. At 768 the offset was still being applied and squeezed the
   content to 296px on a 768px screen -- an iPad in portrait is 768-834 wide, so it landed exactly
   in the range this breaks. 992px keeps tablets on the overlay behaviour, where the course index
   slides over the content instead of taking a column from it. */
@media (min-width: 992px) {
    body.aicourse-player-on #theme_boost-drawers-courseindex {
        /* Core sets `width` on `.drawer` from a SCSS variable, at a specificity this cannot reach
           and in the physical property rather than the logical one -- so both are stated. */
        /* stylelint-disable-next-line declaration-no-important */
        width: 342px !important;
        /* Core also caps it with max-width at the same value, so width alone changes nothing.
           Both have to move. */
        /* stylelint-disable-next-line declaration-no-important */
        max-width: 342px !important;
    }
}

/* Core offsets the content with MARGIN, not padding. Adding padding on top of it produced
   285 + 342 = 627px of gap to the right of the panel. The margin is what has to move.
   Desktop only, for the reason above: on a phone the drawer overlays the content and there is no
   offset to correct. */
@media (min-width: 992px) {
    /* `.show-drawer-left` is on the content wrapper and tracks the drawer's real state; the body
       class alone was leaving a 342px offset behind for a drawer that had closed. Both are listed
       so the offset applies only when core says the drawer is actually open. */
    body.aicourse-player-on.drawer-open-index .drawers.show-drawer-left,
    body.aicourse-player-on #page.drawers.show-drawer-left {
        /* stylelint-disable-next-line declaration-no-important */
        margin-left: 342px !important;
        padding-left: 0;
    }

    body.aicourse-player-on #page.drawers:not(.show-drawer-left) {
        /* stylelint-disable-next-line declaration-no-important */
        margin-left: 0 !important;
    }
}

/* ACF-FIX-2.1.116: the off-screen position is no longer forced.
   The rule that lived here set `left: -342px !important` on a drawer without `.show`, to match the
   widened width. It also fought core's own open/close handling: measured across a toggle, the
   drawer ended up off-screen while <body> still carried `drawer-open-index`, and the content kept
   its 342px offset for a drawer that was not there. A hard refresh corrected it, which is why it
   read as a caching fault.

   Core already positions the drawer off-screen by its own width. Since the width is now 342px, that
   calculation is correct without help -- the !important was solving a problem that no longer
   existed once the width rule was in place, and creating a worse one. */
/* The closed position has to move with the width. Core parks the drawer at its own default width
   off-screen, so a 342px drawer left at core's -295px peeks 47px onto the page -- measured, after
   an attempt to let core own it entirely.

   Stated without `!important` this time. The original `!important` was the thing fighting core's
   open/close handling: it kept applying while core animated, which is how the drawer ended up
   off-screen with the content still offset for it. Ordinary specificity is enough here, because
   this selector carries two body classes against core's one. */
/* ACF-FIX-2.1.120: the closed position is stated the way core states it, and the OPEN position is
   restated too. Read from theme_boost's drawer.scss rather than inferred:

       &.drawer-left {
           width: 285px; max-width: 285px;
           left: calc(-285px + -10px);
           visibility: hidden;
           &.show { left: 0; visibility: visible; }
       }

   So core hides the drawer with a negative `left` and reveals it with `left: 0` on `.show`. Two
   consequences that the earlier rules got wrong:

   1. The closed offset must match the WIDTH. With the width raised to 342px and core's `left` still
      calculated from 285px, a closed drawer peeked 47px onto the page. Hence -352px here: 342 plus
      core's own 10px gutter, keeping the same relationship core uses.
   2. The open position must be restated. A live page reported `show-drawer-left=true` with the
      drawer at `L=-342 R=0` -- classes saying open, drawer parked off-screen, and the content still
      offset by 342px for a drawer nobody could see. That is this rule winning over core's
      `&.show { left: 0 }` during the moment `.show` is applied. Stating the open case at the same
      specificity removes the race entirely rather than hoping the timing works out.

   theme_academi inherits Boost's drawer rules unchanged -- checked, it adds hover and background
   styling for the course index but does not reposition the drawer -- so one rule covers both. */
@media (min-width: 992px) {
    body.aicourse-player-on #theme_boost-drawers-courseindex:not(.show) {
        left: calc(-342px + -10px);
        visibility: hidden;
    }

    body.aicourse-player-on #theme_boost-drawers-courseindex.show {
        left: 0;
        visibility: visible;
    }

    /* ACF-FIX-2.1.121: the drawer follows the same signal that offsets the content.
       Reported from a live page: `#page` carried `show-drawer-left` while the drawer had no
       `.show` -- so the content was pushed 342px right for a drawer that was parked off-screen and
       invisible. Both classes are written by the same server-side flag in core's drawers.mustache
       (`{{#courseindexopen}}`), so they begin in agreement; something removes `.show` afterwards.

       Rather than guess what, the drawer is made to follow `#page.show-drawer-left` as well as its
       own `.show`. That class is the one that survived in the reported state, and it is the same
       class that decides the content offset -- so the drawer and the content can no longer
       disagree, whichever of the two core ends up setting.

       `:has()` is needed because the drawer is a PRECEDING sibling of `#page` in core's template,
       which no combinator can reach; it is supported by every browser Moodle 4.5 targets. */
    body.aicourse-player-on:has(#page.drawers.show-drawer-left) #theme_boost-drawers-courseindex {
        left: 0;
        visibility: visible;
    }

    /* And the mirror: no offset when the drawer is genuinely not shown by either signal. */
    body.aicourse-player-on:not(:has(#page.drawers.show-drawer-left)) #theme_boost-drawers-courseindex:not(.show) {
        left: calc(-342px + -10px);
        visibility: hidden;
    }
}

body.aicourse-player-on .courseindex-item.courseindex-section-title .courseindex-chevron {
    inline-size: auto;
    min-inline-size: 0;
    margin-inline-end: var(--acf-space-1);
    padding-inline: 2px;
}

body.aicourse-player-on .courseindex-item.courseindex-section-title {
    gap: var(--acf-space-1);
}

/* --- Rows -----------------------------------------------------------------
   ACF-FIX-2.1.60: full-bleed rows, not cards.

   The previous version borrowed the activity card's treatment -- border, radius, elevation, a
   status bar on the leading edge -- which is right for a card floating on a page and wrong inside
   a 280px panel. Fifteen bordered rectangles nested inside a bordered panel is a box in a box in
   a box, and the eye spends its effort on the containers rather than the list.

   A sidebar list wants the opposite: rows that run edge to edge, separated by nothing more than a
   hairline. The card vocabulary stays where it belongs, on the cards.

   The accent is carried by the section heading and the activity icon; the completion tick at the
   end of the row says what the old leading edge said, so the edge has gone with it. */
/* Every wrapper between the drawer and the row contributes a little inset; measured, the rows
   came out 269px inside a 272px panel. Zeroing the inline padding on all of them is what makes
   "edge to edge" actually reach the edge. */
body.aicourse-player-on
:is(.courseindex, .courseindex-section, .courseindex-sectioncontent, .courseindex-item-content) {
    padding-inline: 0;
    margin-inline: 0;
}

/* .courseindex-item-content is the one that actually held the last 3px -- it sat at x=9 inside a
   section at x=6, and it is not a class the other rules touch. Found by walking the ancestor
   chain and measuring each box, rather than adding likely-looking selectors until something
   moved. */
body.aicourse-player-on .courseindex-item-content {
    inline-size: 100%;
}

body.aicourse-player-on .courseindex-item.aicourse-player-row {
    display: flex;
    align-items: center;
    gap: var(--acf-space-2);
    margin: 0;
    padding: 9px var(--acf-space-4) 9px var(--acf-space-3);
    background: var(--acf-index-bg, var(--acf-surface-card));
    border: 0;
    border-block-end: 1px solid var(--acf-player-line);
    border-radius: 0;
    box-shadow: none;
    transition: background var(--acf-duration-fast) var(--acf-ease-standard);
}

/* ACF-FIX-2.1.61: hover is a leading marker, not a filled block.
   A full-width tint across the row painted the site colour behind the completion tick and the
   activity icon, which on a dark primary looked like a bruise rather than a highlight. A 3px
   leading edge plus a barely-there wash says "this row" without repainting everything in it --
   and it uses the same shape the current-page marker does, so hover reads as a lighter version of
   selection rather than a different idea. */
/* --- theme_academi's own course index hover -------------------------------
   ACF-FIX-2.1.69. Read from that theme's standard.scss rather than guessed at. It sets, inside
   `.drawercontent .courseindex`:

     .courseindex-item:hover, .courseindex-item:hover a { color: white; background: primary; }
     .courseindex-section .courseindex-item:hover        { background: primary; border-color: primary; }
     .courseindex-sectioncontent .courseindex-item.pageitem { background-color: primary; }

   That is a solid block of the site's primary with white text on every hover, and the same for the
   current activity -- which is the "big ugly primary rectangle". Nothing written against core's
   selectors could reach it, because the theme's rules are more specific and load later, which is
   why the previous three attempts at this had no effect on that theme.

   These match the theme's own shape, so they land at equal specificity and win on order, with
   !important for the declarations the theme sets directly. The row keeps the same faint wash used
   everywhere else and the text keeps its colour. */
body.aicourse-player-on .drawercontent .courseindex .courseindex-item.aicourse-player-row:hover,
body.aicourse-player-on .drawercontent .courseindex .courseindex-item.aicourse-player-row:hover a,
body.aicourse-player-on .drawercontent .courseindex .courseindex-section
.courseindex-item.aicourse-player-row:hover {
    /* stylelint-disable-next-line declaration-no-important */
    /* ACF-FIX-2.1.133: no wash. A row already sits on the tinted panel, so a slightly darker
       rectangle behind it is a weak signal that also fights the card surface. The icon moves
       instead -- see below. !important because theme_academi sets its own hover background here. */
    /* stylelint-disable-next-line declaration-no-important */
    background: transparent !important;
    /* stylelint-disable-next-line declaration-no-important */
    color: var(--acf-text-primary) !important;
    /* stylelint-disable-next-line declaration-no-important */
    border-color: var(--acf-border-subtle) !important;
}

body.aicourse-player-on .drawercontent .courseindex
.courseindex-item.aicourse-player-row:hover :is(.courseindex-link, .courseindex-link span) {
    /* stylelint-disable-next-line declaration-no-important */
    color: var(--acf-text-primary) !important;
}

/* The current activity: a tint of the primary rather than a solid fill of it. */
body.aicourse-player-on .drawercontent .courseindex .courseindex-sectioncontent
.courseindex-item.aicourse-player-row.pageitem {
    /* stylelint-disable-next-line declaration-no-important */
    background-color: var(--acf-brand-tint-weak) !important;
}

/* ACF-FIX-2.1.132: a section heading does not change on hover at all.
   These rules date from 2.1.71, when a heading was plain text on a white panel and the job was to
   stop theme_academi drawing a primary-coloured border round it. `background: transparent` was
   correct then. It is wrong now that the heading is a filled band -- transparent lets the panel
   show through, so the band flashed white under the pointer.
   The band, its text and its borders are all held to their resting values instead. There is
   nothing a hover state needs to communicate here: the whole row is one link and the cursor
   already says so. */
/* ACF-FIX-2.1.149: the band holds its colour in every state, not only at rest.
   Hover was fixed in 2.1.132, but a heading has other states that carry their own colour: `active`
   and `pageitem` while the section is the current one, `focus` from the keyboard, and the expanded
   state once its chevron is turned down. Core styles `pageitem` with the theme's primary and
   theme_academi restyles the hover -- so an expanded or current heading changed colour under the
   pointer even though the resting band was correct.
   Every state listed together, so there is one rule to find rather than four that can disagree. */
body.aicourse-player-on .drawercontent .courseindex
.courseindex-item.courseindex-section-title:hover,
body.aicourse-player-on .drawercontent .courseindex .courseindex-section
.courseindex-item.courseindex-section-title:hover,
body.aicourse-player-on .courseindex-item.courseindex-section-title:hover,
body.aicourse-player-on .courseindex-item.courseindex-section-title:focus,
body.aicourse-player-on .courseindex-item.courseindex-section-title:focus-within,
body.aicourse-player-on .courseindex-item.courseindex-section-title.active,
/* ACF-FIX-2.1.204: the two `.pageitem` selectors here carry the same `:not(#_acf_never)`
   specificity tokens as the generic selected-row rule further up this sheet, for the same
   reason and by the same convention. Without them the generic rule -- which is deliberately
   pitched high enough that no theme can outrank it -- would also outrank THIS rule, and the
   player's solid brand heading would be replaced by the generic pale highlight. The tokens
   name one extra class than the generic rule does, so the more specific intent wins, and
   both stay out of reach of a theme. */
body.aicourse-player-on .courseindex-item.courseindex-section-title.pageitem:not(#_acf_never):not(#_acf_never),
body.aicourse-player-on .courseindex-section.current
.courseindex-item.courseindex-section-title,
body.aicourse-player-on .drawercontent .courseindex
.courseindex-item.courseindex-section-title.pageitem:not(#_acf_never):not(#_acf_never),
body.aicourse-player-on .drawercontent .courseindex
.courseindex-item.courseindex-section-title.active {
    /* stylelint-disable-next-line declaration-no-important */
    background: var(--acf-index-heading-bg, var(--acf-brand)) !important;
    /* stylelint-disable-next-line declaration-no-important */
    border-color: transparent !important;
}

body.aicourse-player-on .drawercontent .courseindex
.courseindex-item.courseindex-section-title:hover a,
body.aicourse-player-on .courseindex-item.courseindex-section-title:hover a,
body.aicourse-player-on .courseindex-item.courseindex-section-title:hover .courseindex-chevron,
body.aicourse-player-on .courseindex-item.courseindex-section-title.active a,
/* Specificity tokens, as on the background rule above -- the pair has to travel together. */
body.aicourse-player-on .courseindex-item.courseindex-section-title.pageitem:not(#_acf_never):not(#_acf_never) a,
body.aicourse-player-on .courseindex-item.courseindex-section-title.pageitem:not(#_acf_never):not(#_acf_never)
:is(span, .text-truncate, .courseindex-link),
body.aicourse-player-on .courseindex-item.courseindex-section-title:focus-within a,
body.aicourse-player-on .courseindex-item.courseindex-section-title.active .courseindex-chevron,
body.aicourse-player-on .courseindex-item.courseindex-section-title.pageitem:not(#_acf_never):not(#_acf_never)
.courseindex-chevron {
    /* stylelint-disable-next-line declaration-no-important */
    background: transparent !important;
    /* stylelint-disable-next-line declaration-no-important */
    color: #fff !important;
}

/* ACF-FIX-2.1.68: core's hover forces the text to pure black.
   `$courseindex-link-hover-color: black` is applied to the row, the link and the chevron, so
   hovering jumped the label from the theme's body colour to #000 -- a visible flicker on every
   row, and wrong in dark mode where the text should get lighter, not black. The row also has to
   keep its own hover background rather than inherit core's.

   Text stays put; only the background moves. That is the whole hover effect now: a wash you can
   barely see, which is enough to say "this row" without repainting anything on it.

   !important because core sets these on the same elements at a specificity this cannot outrank. */
body.aicourse-player-on .courseindex-item.aicourse-player-row:hover,
body.aicourse-player-on .courseindex-item.aicourse-player-row:focus-within {
    background: transparent;
    box-shadow: none;
    /* stylelint-disable-next-line declaration-no-important */
    color: var(--acf-text-primary) !important;
}

body.aicourse-player-on .courseindex-item.aicourse-player-row:hover .courseindex-link,
body.aicourse-player-on .courseindex-item.aicourse-player-row:hover .courseindex-chevron,
body.aicourse-player-on .courseindex-item.aicourse-player-row:focus-within .courseindex-link,
body.aicourse-player-on .courseindex-item.aicourse-player-row:focus-within .courseindex-chevron {
    /* stylelint-disable-next-line declaration-no-important */
    color: var(--acf-text-primary) !important;
}

/* Section headings keep the accent on hover too, rather than dropping to black. */
body.aicourse-player-on .courseindex-item.courseindex-section-title:hover .courseindex-link,
body.aicourse-player-on .courseindex-item.courseindex-section-title:hover .courseindex-chevron {
    /* stylelint-disable-next-line declaration-no-important */
    color: var(--acf-brand) !important;
}

/* The current page. A single leading marker in the accent, which is the one place a row needs to
   assert itself over its neighbours. */
/* ACF-FIX-2.1.65: core fills the current item with the theme's PRIMARY at full strength
   ($courseindex-item-page-bg: $primary), which on a dark navy paints a solid block behind the
   activity icon and the completion tick and reads as a selection error rather than a highlight.
   A tint of the same colour marks the row just as clearly and lets everything on it stay legible.

   !important because core's own declaration reaches the same element and cannot otherwise be
   outranked; the colour is still the theme's, only its weight has changed. */
body.aicourse-player-on .courseindex-item.aicourse-player-row.pageitem {
    /* stylelint-disable-next-line declaration-no-important */
    background: var(--acf-brand-tint-weak) !important;
    box-shadow: none;
    font-weight: var(--acf-weight-semibold);
}

/* Core also forces the text on that row to the contrast colour it picked for a solid primary
   background. With the background now a tint, that text needs to go back to normal or it is
   white on near-white. */
body.aicourse-player-on .courseindex-item.aicourse-player-row.pageitem,
body.aicourse-player-on .courseindex-item.aicourse-player-row.pageitem .courseindex-link {
    /* stylelint-disable-next-line declaration-no-important */
    color: var(--acf-text-primary) !important;
}

/* ACF-FIX-2.1.66: the last row in a section drops its rule, because whatever follows already
   separates the sections and two lines a few pixels apart is what the doubling was.

   The previous selector had a SPACE before .aicourse-player-row, so it looked for a row nested
   INSIDE the last <li> -- but the <li> IS the row. It matched nothing, which is why the doubled
   line survived being "fixed". Written without the space it targets the element itself. */
body.aicourse-player-on .courseindex-sectioncontent > li:last-child.aicourse-player-row,
body.aicourse-player-on .courseindex-item.aicourse-player-row:last-child {
    border-block-end: 0;
}

/* Core draws its own separator around the section wrapper. With rows carrying one too, the two
   met at the section boundary. Ours is the one that goes. */
body.aicourse-player-on .courseindex-section {
    border-block-end: 0;
    border-block-start: 0;
}

/* Moodle's module icons are monochrome SVGs served as images, so they cannot inherit a colour
   directly. Masking with the image lets the accent show through, which is what makes the icon
   column read as part of the course's palette rather than a row of stock greys. The image itself
   is kept as a fallback for a browser without mask support. */
/* ACF-FIX-2.1.133: the same movement the cards use, so hovering a row and hovering a card feel
   like the same gesture. The numbers are the section card's -- scale 1.08, rotate -4deg -- rather
   than new ones, or the two would drift apart the next time either is touched.

   Movement rather than colour: it reads clearly on a tinted panel where a background wash does
   not, and it costs nothing to anyone who cannot perceive the colour difference.

   Suppressed under prefers-reduced-motion, where a transform on hover is exactly the kind of
   incidental animation that setting exists to stop. */
body.aicourse-player-on .courseindex-item.aicourse-player-row .aicourse-player-row-icon {
    /* inline-flex, because an inline box ignores `transform` outright -- the rule below was
       present and matching and the icon still measured `transform: none`. Also centres the glyph
       in its box, which an inline element does not. */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform var(--acf-duration-slow) var(--acf-ease-spring);
}

body.aicourse-player-on .courseindex-item.aicourse-player-row:hover .aicourse-player-row-icon,
body.aicourse-player-on .courseindex-item.aicourse-player-row:focus-within
.aicourse-player-row-icon {
    transform: scale(1.08) rotate(-4deg);
}

/* ACF-FIX-2.1.153: "I chose orange and it looks brown."

   The mask was doing half a job. `background: currentColor` plus `mask-image` paints the chosen
   colour in the shape of the icon -- but an <img> also paints its OWN bitmap, on top of that
   background, and Moodle's module icons are a dark navy. Dark navy over orange, both clipped to
   the same silhouette, is brown. Every colour a site picked was being muddied by the artwork it
   was supposed to be replacing; darker choices simply hid it better.

   The raster is replaced with a transparent pixel INSIDE the @supports block only, so the element
   still has the right box and the right mask source, and the fallback path below -- a browser with
   no mask support -- keeps the real artwork rather than showing an empty row.

   -webkit- prefixes added with it: Safari needs them, and without them Safari took the fallback
   branch visually while @supports reported the unprefixed property as supported. */
@supports (mask-image: url("")) {
    .aicourse-player-row-icon img {
        background: currentColor;
        /* A 1x1 fully transparent GIF. The smallest thing that reliably replaces an <img>'s
           content without removing the element. */
        content: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
        mask-image: var(--acf-player-icon);
        mask-repeat: no-repeat;
        mask-position: center;
        mask-size: contain;
        -webkit-mask-image: var(--acf-player-icon);
        -webkit-mask-repeat: no-repeat;
        -webkit-mask-position: center;
        -webkit-mask-size: contain;
    }
}

/* --- Scrolling ------------------------------------------------------------
   ACF-FIX-2.1.61. Two separate problems that look like one.

   Scroll chaining: the drawer's scrollers ship with `overscroll-behavior: auto`, which means a
   wheel gesture that reaches the top or bottom of the index carries on into the page behind it.
   The reader is looking at the sidebar and the course jumps. `contain` stops the gesture at the
   boundary, so the two scroll independently, which is what a panel pinned beside the content
   should do.

   The scrollbar itself: a permanent track down a 280px panel is a visible seam beside content
   that has none. Hidden visually only -- the element still scrolls by wheel, trackpad, touch,
   Page Up and Down, and arrow keys, and the content stays reachable. Nothing here sets
   `overflow: hidden`, which would genuinely trap it. */
body.aicourse-player-on
:is(#theme_boost-drawers-courseindex, .drawercontent, .courseindex) {
    overscroll-behavior: contain;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

body.aicourse-player-on
:is(#theme_boost-drawers-courseindex, .drawercontent, .courseindex)::-webkit-scrollbar {
    inline-size: 0;
    block-size: 0;
    display: none;
}

/* --- Section headings and dividers ----------------------------------------
   ACF-FIX-2.1.59. The accent reached the sidebar but only ever showed in hover and active states
   -- the row hover border, the current-page edge, the icon tile tint -- so at rest a course with a
   custom colour looked identical to one without. A per-course accent nobody can see until they
   move the mouse is not doing its job.

   It now carries the three things that structure the panel: the course name at the top, each
   section heading, and the rule that separates one section from the next. Those are the parts a
   reader uses to orient, which is exactly where a course's own colour belongs -- and it leaves the
   activity rows themselves neutral, so the accent marks structure rather than shouting over the
   content. */
body.aicourse-player-on .aicourse-player-coursename {
    color: var(--acf-brand);
}

/* ACF-FIX-2.1.74: one divider above every section heading.
   2.1.62 removed this because it doubled with the separator on the last activity row. That
   doubling was fixed properly in 2.1.66 -- the last row in a section now drops its rule -- so the
   heading is free to carry the line again, and it needs to: with sections COLLAPSED there are no
   rows at all, so nothing was drawing a divider and the list ran together.

   Same weight and colour as the row separators, so every line in the panel matches whether the
   sections are open or closed. */
/* ACF-FIX-2.1.126: section headings are a filled band, not text on the panel.
   With the panel itself tinted, a heading in the same grey no longer separated one section from
   the next. Filling it with the site's primary gives the list a structure the eye can follow, and
   the text goes white to sit on it. --acf-index-heading-bg is published when a course or the site
   chooses one; otherwise this is the theme's primary. */
body.aicourse-player-on .courseindex-item.courseindex-section-title {
    background: var(--acf-index-heading-bg, var(--acf-brand));
    /* The heading's own vertical padding is inside the band, so it sets the band's height rather
       than the space between bands -- but an uneven top and bottom shifted the text off centre and
       left 3px more above than below. Even, so the gap either side of a band is the 5px margin and
       nothing else. */
    /* ACF-FIX-2.1.128: the band reaches both edges. The padding indents the TEXT; any margin or
       inline padding on the item itself would indent the fill, leaving a sliver of panel showing
       down the left. Margins zeroed so the colour runs edge to edge. */
    margin-inline: 0;
    padding-inline: var(--acf-space-3);
    /* The 3px was two borders, not a margin: core puts a 3px left border on .courseindex-section
       as its current-section marker and a 1px one on the item. Both sit outside the band's fill,
       so the colour started 3px in while the right edge was already flush. Found by walking up
       from the heading and reading each box rather than adjusting the padding and hoping. */
    border-inline-start: 0;
}

body.aicourse-player-on .courseindex-section:has(> .courseindex-item.courseindex-section-title),
body.aicourse-player-on .courseindex-section {
    border-inline-start: 0;
}

body.aicourse-player-on .courseindex-item.courseindex-section-title,
body.aicourse-player-on .courseindex-item.courseindex-section-title .courseindex-link,
body.aicourse-player-on .courseindex-item.courseindex-section-title .courseindex-chevron {
    /* stylelint-disable-next-line declaration-no-important */
    color: #fff !important;
}

/* Hover keeps the band; only the text lifts, or the heading flashes to the panel colour. */
body.aicourse-player-on .drawercontent .courseindex
.courseindex-item.courseindex-section-title:hover,
body.aicourse-player-on .drawercontent .courseindex
.courseindex-item.courseindex-section-title:hover a {
    /* stylelint-disable-next-line declaration-no-important */
    background: var(--acf-index-heading-bg, var(--acf-brand)) !important;
    /* stylelint-disable-next-line declaration-no-important */
    color: #fff !important;
}

/* The 4px between the band's bottom border and the first heading -- enough to read as a second
   line under the first -- comes from `padding-top` on `.courseindex-section`, not from anything on
   the heading itself. Found by walking down from the header and measuring each box in turn rather
   than guessing at the heading, which is where the two previous attempts went. Cleared on the
   first section only, so the spacing between later sections is untouched. */
/* ACF-FIX-2.1.128: the first section that is actually SHOWN, not the first in the DOM.
   With the General section hidden, section 0 is still the DOM's :first-child -- so the rule
   clearing the space above the first heading was landing on an invisible element and the first
   visible section kept its gap. Matching on "not preceded by a visible section" reaches whichever
   one is really at the top. */
body.aicourse-player-on .courseindex-section:first-child,
body.aicourse-player-on .courseindex-section:not(:has(~ .courseindex-section)):first-of-type,
body.aicourse-player-on .courseindex-section:first-child + .courseindex-section {
    padding-block-start: 0;
}

body.format-aicourse:is(.aicourse-hidegeneral-all, .aicourse-hidegeneral-students)
.courseindex-section[data-number="0"] + .courseindex-section {
    padding-block-start: 0;
    margin-block-start: 0;
}

body.format-aicourse:is(.aicourse-hidegeneral-all, .aicourse-hidegeneral-students)
.courseindex-section[data-number="0"] + .courseindex-section
.courseindex-item.courseindex-section-title {
    margin-block-start: 0;
    padding-block-start: var(--acf-space-2);
    border-block-start: 0;
}

body.aicourse-player-on .courseindex-section:first-child .courseindex-item.courseindex-section-title {
    border-block-start: 0;
}

/* ACF-FIX-2.1.154: THE 6px. Found, after four attempts that did not.
   This rule put `margin-block-start: 8px` on every section heading. The heading is the first child
   of `.courseindex-section`, and the section has no padding, no border and no inline formatting
   context at its top edge -- so that margin COLLAPSES THROUGH the section and becomes the
   section's own top margin. Adjacent margins then collapse to the LARGER of the two, so the
   section's `margin-block-end: 2px` was never additive and never visible: max(8, 2) = 8.

   Every earlier measurement is explained by this and none of them contradicts it:
     - 5px section margin gave 8px, and 2px gave 8px .... max(8, n) is 8 for any n <= 8.
     - a flex column with a 2px gap gave 10px ........... flex containers do not collapse margins,
                                                          so the 8 and the 2 finally added up.
     - tracing the space between two bands found nothing  a collapsed margin belongs to neither
                                                          box's border box; there is nothing in it
                                                          to find.
     - the gap under the General section looked correct .. the rule below zeroes margin-block-start
                                                          on :first-child, so section 0 alone was
                                                          never affected. That difference is what
                                                          identified this; it was reported from the
                                                          live site with editing on, where General
                                                          is visible.

   Zeroed, along with the padding and the border it carried: the section's own 2px bottom margin is
   now the only thing between two bands, which is what 2.1.136 asked for and 2.1.141 could not
   deliver. Do not reintroduce a top margin here -- put any separation on the SECTION, where it
   cannot collapse through a child. */
body.aicourse-player-on .courseindex-item.courseindex-section-title {
    margin-block-start: 0;
    padding-block-start: 0;
    border-block-start: 0;
}

body.aicourse-player-on .courseindex-section:first-child .courseindex-item.courseindex-section-title {
    margin-block-start: 0;
    padding-block-start: 0;
}

/* ACF-FIX-2.1.160: the colour declaration that was here is gone. It set the band's TEXT to
   --acf-brand while the band's own FILL is `var(--acf-index-heading-bg, var(--acf-brand))` -- so on
   any site that has not chosen a heading colour, which is the default, it asked for brand text on a
   brand background. It never showed because the rule ~90 lines above sets `#fff !important` and
   wins, but two rules disagreeing about the same property is how the last four regressions in this
   sheet happened. One rule owns this colour now. */
body.aicourse-player-on .courseindex-item.courseindex-section-title .courseindex-link,
body.aicourse-player-on .courseindex-item.courseindex-section-title .courseindex-chevron {
    font-weight: var(--acf-weight-semibold);
    letter-spacing: var(--acf-tracking-tight);
}

/* The activity icon at the head of the row, in the same rounded tile the activity cards use so
   the two read as the same object at different sizes. Core's completion circle is hidden with it:
   it duplicated the tick at the end of the row, and it told a learner nothing about what the
   activity actually is. */
.aicourse-player-row-icon {
/* The activity icon at the head of the row, in the accent so the row is identifiable by shape and
   colour before it is read. Core's completion circle is hidden with it: it duplicated the tick at
   the end of the row and told a learner nothing about what the activity is. */
    display: flex;
    align-items: center;
    justify-content: center;
    flex: none;
    inline-size: 1.5rem;
    block-size: 1.5rem;
    /* ACF-FIX-2.1.126: no tile behind the icon. A filled square on every row reads as a chip
       rather than an icon, and twenty of them stacked is a column of boxes. The glyph itself
       carries the colour instead -- it is masked below, so it takes currentColor. */
    /* ACF-FIX-2.1.129: the icons take the accent by default. 2.1.128 matched them to the activity
       name for a row that read as one object; on balance the accent is preferred -- it gives the
       panel a second place the course's own colour appears, alongside the section headings.
       --acf-index-icon still overrides it, and setting that to the text colour reproduces the
       2.1.128 behaviour exactly. */
    color: var(--acf-index-icon, var(--acf-brand));
}

.aicourse-player-row-icon img {
    inline-size: 15px;
    block-size: 15px;
    object-fit: contain;
}

/* Core's own rule wins on specificity here, and the element is 24x0 -- invisible but still
   reserving 24px at the head of every row, which left the icons indented against nothing.
   !important is the sheet's established remedy for a core rule that cannot otherwise be reached;
   see the numbered rationales elsewhere in this file. */
body.aicourse-player-on .courseindex-item.aicourse-player-row .completioninfo {
    /* stylelint-disable-next-line declaration-no-important */
    display: none !important;
}

/* The time pill: the same bordered, clock-marked treatment as an activity card's. */
.aicourse-player-row-time {
/* The time, quiet and right-aligned. No pill here: a bordered chip on every row rebuilds the
   boxed look the rows just shed. */
    display: inline-flex;
    align-items: center;
    gap: 3px;
    flex: none;
    margin-inline-start: auto;
    padding: 1px var(--acf-space-2);
    border: 1px solid var(--acf-border-subtle);
    border-radius: var(--acf-radius-pill);
    font-size: var(--acf-font-size-2xs);
    font-weight: var(--acf-weight-medium);
    color: var(--acf-text-secondary);
    white-space: nowrap;
}

.aicourse-player-row-time svg {
    inline-size: 10px;
    block-size: 10px;
    flex: none;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: 0.75;
}

/* The tick. Shape as well as colour: an outlined circle when incomplete and a filled one with a
   check when done, because colour alone would fail WCAG 1.4.1. The green is the same
   --acf-status-done token the cards and the hero ring use. */
.aicourse-player-tick {
/* The tick. Shape as well as colour: an outlined circle when incomplete and a filled one with a
   check when done, because colour alone would fail WCAG 1.4.1. */
    flex: none;
    display: grid;
    place-items: center;
    inline-size: 18px;
    block-size: 18px;
    border: 2px solid var(--acf-border-strong);
    border-radius: 50%;
}

.aicourse-player-tick-done {
    border-color: var(--acf-status-done-line);
    background: var(--acf-status-done-line);
}

.aicourse-player-tick svg {
    inline-size: 11px;
    block-size: 11px;
    fill: none;
    stroke: var(--acf-surface-raised);
    stroke-width: 3.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* ==========================================================================
   IMMERSIVE MODE (ACF-FIX-2.1.56)
   Hides the site header on course pages so the learning content has the full height.

   This one is deliberately opt-in and deliberately paired with the player sidebar, because it
   takes things away: the site header carries notifications, messaging, the user menu and log out,
   and Moodle's accessibility conformance assumes those are reachable. The sidebar header grows a
   compact set of the same links when this is on, so nothing is actually lost -- it moves.

   Never in edit mode: a teacher needs the full page furniture while arranging a course.
   ========================================================================== */
/* --- The line between collapsed sections (ACF-FIX-2.1.136) -----------------
   With sections collapsed the headings stack, and a 16px gap between two coloured bands read as
   space rather than as a division. 5px is enough to draw a clean white line between them without
   the bands drifting apart.

   Applied to the section wrapper rather than the heading, so it holds whether the section is open
   or closed -- when one is expanded its activities sit between the bands anyway and the gap is not
   seen. Stated once, on the bottom, so two adjacent sections cannot contribute a margin each and
   double it. */
body.aicourse-player-on .courseindex-section {
    /* ACF-FIX-2.1.141: 2px, and the visible gap is 8px -- the margin is not what sets it.
       Four measurements now agree on this: 5px margin gave 8px, 2px gave 8px, a flex column with a
       2px gap gave 10px, and a trace of the space between two bands found nothing in it -- no
       element, no padding, no border, no margin anywhere along the chain. Whatever adds the
       remaining 6px has not been identified.

       Left at 2px because that is what was asked for and it is the correct property; the value is
       honest even though the result is not yet. Do not nudge this again -- the next step is to find
       the 6px, not to change this number. */
    margin-block-end: 2px;
    /* The section's own padding sits between the margin and the band, so it added to the gap: the
       margin measured 5px between sections while the coloured bands were still 17px apart. Zeroed
       here and the heading keeps its own padding, which is inside the band and does not separate
       anything. */
    padding-block: 0;
}

/* Nothing after the last one: a trailing gap at the foot of the list is a stray line, not a
   division between anything. */
body.aicourse-player-on .courseindex-section:last-child {
    margin-block-end: 0;
}

/* --- Hiding the estimated-time pills (ACF-FIX-2.1.130) ---------------------
   Four places, four switches, because a site may want the per-activity times but not the totals,
   or the reverse. Each hides only its own.

   display:none rather than visibility, so the row closes up rather than leaving the gap the pill
   occupied. */
body.format-aicourse.aicourse-notime-index .aicourse-player-row-time {
    display: none;
}

body.format-aicourse.aicourse-notime-total .aicourse-player-meta {
    display: none;
}

/* --- Sticky banner (ACF-FIX-2.1.144) ---------------------------------------
   The banner follows the page, so the progress ring and the next/previous controls stay reachable
   however far down a learner scrolls.

   `top` is set from the same measured header offset the banner already uses, rather than a fixed
   number: the height of what is above it varies by theme and by which bands a course hides, and a
   guess would either leave a gap or slide the banner under the header.

   Not while editing -- a teacher dragging an activity needs the page to behave normally -- and not
   under prefers-reduced-motion, where an element that moves against the scroll is exactly what that
   setting is for. */
body.format-aicourse.aicourse-hero-sticky:not(.editing):not(.editingon):not(.editing-mode)
.aicourse-hero-sticky-wrap {
    position: sticky;
    inset-block-start: var(--acf-hero-sticky-top, 0);
    z-index: var(--acf-z-sticky, 20);
}

@media (prefers-reduced-motion: reduce) {
    body.format-aicourse.aicourse-hero-sticky .aicourse-hero-sticky-wrap {
        position: relative;
    }
}

/* Below the drawer breakpoint the banner is a large share of a small screen, and pinning it would
   leave very little room for the content it introduces. */
@media (max-width: 991px) {
    body.format-aicourse.aicourse-hero-sticky .aicourse-hero-sticky-wrap {
        position: relative;
    }
}

/* --- Hero variants brought into line (ACF-FIX-2.1.150) ---------------------
   Three heroes are rendered -- course, section and activity -- and they had drifted. Measured
   across all three before changing anything:

     course/section   icon group  rgba(2,6,23,0.62) + blur(10px) + 1px white border
     activity         icon group  identical
     activity         completion  transparent, no blur, no border, no radius

   So the green tick sat on the image with nothing behind it while every other control on the same
   banner had a glass panel. That is the inconsistency, not the tick itself.

   The activity title was also smaller: the course hero adds `aicourse-title-{{titlesize}}`, which
   carries the font size, and the activity hero never gets that class -- so it fell back to the base
   and rendered smaller than the course title beside it in the same course. */
body.format-aicourse .aicourse-completion-ring-container {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 54px;
    block-size: 54px;
    /* The same glass the icon group uses, read from the same values rather than approximated --
       two panels on one banner that are nearly the same read worse than two that differ clearly. */
    background: rgba(2, 6, 23, 0.62);
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    backdrop-filter: blur(10px);
    box-shadow: var(--acf-elevation-2);
    transition:
        background var(--acf-duration-fast) var(--acf-ease-standard),
        border-color var(--acf-duration-fast) var(--acf-ease-standard);
}

/* Hover matches the icon buttons: the panel lifts slightly, nothing changes hue. */
body.format-aicourse .aicourse-completion-label:hover .aicourse-completion-ring-container,
body.format-aicourse .aicourse-completion-ring-container:hover {
    background: rgba(2, 6, 23, 0.72);
    border-color: rgba(255, 255, 255, 0.38);
}

/* The activity title takes the same size as a course title. The template does not add a size class,
   so the base is set here rather than by editing the template -- one place, and it cannot fall out
   of step with the size options a course can choose. */
body.format-aicourse .aicourse-hero-title:not([class*="aicourse-title-"]) {
    font-size: clamp(1.25rem, 0.95rem + 1.5vw, 1.75rem);
}

@media (prefers-reduced-motion: reduce) {
    body.format-aicourse .aicourse-completion-ring-container {
        transition: none;
    }
}

/* --- The course hero's ring gets the same glass (ACF-FIX-2.1.152) ----------
   2.1.150 gave the glass panel to `.aicourse-completion-ring-container` -- the ACTIVITY hero's
   tick. A probe of the live banner listed every circular element in it and that class was not
   among them; what it found was:

     aicourse-progress-ring-container   56x56  bg=rgba(0,0,0,0)  radius=50%  blur=none
     aicourse-hero-home / -grades / -ai-btn   44x44  bg=rgba(0,0,0,0)  blur=none

   Two things follow. First, the page measured was a COURSE page, not an activity page -- only
   `hero.mustache` emits `aicourse-progress-ring-container`, and only `activity_hero.mustache`
   emits the completion ring. Second, and this is the actual complaint: on the course banner the
   percentage ring sits bare on the photo while the icon group beside it carries a dark blurred
   panel. The buttons themselves measure transparent because the panel belongs to their wrapper,
   `.aicourse-hero-icons` -- so the ring needs a panel of its own, not a background on the SVG.

   Image mode only. In gradient mode the banner is already a flat surface and a scrim on it would
   read as a smudge. The values are read from the same tokens `.aicourse-hero-icons` uses, so the
   two panels cannot drift apart again. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-progress-ring-container {
    border: 1px solid var(--acf-border-media);
    background: var(--acf-media-scrim-strong);
    backdrop-filter: blur(var(--acf-blur-md));
    -webkit-backdrop-filter: blur(var(--acf-blur-md));
    box-shadow: var(--acf-elevation-2);
}

/* The SVG is `inset: 0`, so on a 56px container the arc's outer edge lands within about a pixel
   of the panel's border and the two read as one thick rim. Inset it instead -- the ring keeps its
   size relationship to the text in the middle and gains a margin from the edge. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-progress-ring {
    inset: 4px;
    inline-size: auto;
    block-size: auto;
}

/* The track is NOT restyled here: `--acf-track-media` already covers image mode at line 2131, and
   a second value would be one more pair that can drift. */

/* --- Section bands, a quarter shorter (ACF-FIX-2.1.153) --------------------
   The bands were sized for a heading; at 46px each they read as buttons stacked in a column rather
   than as dividers in a list, and on a course with several modules they took more of the panel than
   the activities they introduce.

   The height comes from the heading's own vertical padding plus its line box -- there is no
   explicit height on the band -- so both are brought down together. Padding alone would leave the
   line box carrying most of it; line-height alone would crowd the text against the fill. Measured
   target is 34px, from 46px.

   Stated as a token so a site can put it back, and so the next person changing it changes one
   number rather than hunting two. */
body.aicourse-player-on {
    /* Zero, because the chevron below sets the band's height and the text is centred in it --
       padding here would only add to a height that is already decided. */
    --acf-index-band-pad: 0;
    --acf-index-band-leading: 1.25;
    /* 34px, from 46px -- the quarter that was asked for, near enough that the difference is not
       visible and the number is a round one. */
}

body.aicourse-player-on .courseindex-item.courseindex-section-title {
    padding-block: var(--acf-index-band-pad);
}

body.aicourse-player-on .courseindex-item.courseindex-section-title
:is(.courseindex-link, .courseindex-sectionname, .courseindex-sectionname a) {
    line-height: var(--acf-index-band-leading);
}

/* THE thing that actually sets the band's height, and it is not on the band.
   Measured: the heading's own padding contributes 6px and its text 20px, but the band renders at
   46px -- because `.courseindex-chevron` beside it is pinned to --acf-target-min (44px) with
   `block-size: ... !important` at line 5530, and a flex row is as tall as its tallest child.
   Reducing the heading's padding alone moved nothing at all; the earlier attempts at this gap were
   the same shape of mistake.

   The chevron comes down to the band height instead. That gives up the 44px premium target on
   this one control -- but the sheet's own note at the target-size block says it plainly: WCAG 2.2
   SC 2.5.8 requires 24px and 44px is the premium bar. At 34px the chevron still clears the AA
   requirement by 10px, and the whole band remains the click target regardless, because the row's
   link overlay covers it. !important because the rule it has to beat carries one. */
body.aicourse-player-on .courseindex-item.courseindex-section-title .courseindex-chevron {
    /* stylelint-disable-next-line declaration-no-important -- beats the !important at line 5530. */
    block-size: var(--acf-index-band-height) !important;
    min-block-size: var(--acf-index-band-height);
}

/* --- The completion tooltip (ACF-FIX-2.1.153) ------------------------------
   A learner hovering a tick is asking three things: what was required, did I pass, and when did I
   finish. The title attribute could answer only the first, in one undifferentiated sentence, after
   the browser's own delay. This is the panel that answers all three.

   Fixed positioning and appended to <body>, so it is never clipped by the drawer's overflow and
   never inherits the panel's own stacking context. The tick has to be lifted above the row's link
   overlay first -- the overlay is what makes the whole row clickable, and it was also swallowing
   every pointer event before the tick could see one. */
body.aicourse-player-on .aicourse-player-tick {
    position: relative;
    z-index: 2;
    cursor: help;
}

body.aicourse-player-on .aicourse-player-tick:focus-visible {
    outline: none;
    box-shadow: var(--acf-focus-ring);
}

.aicourse-tip {
    position: fixed;
    /* Above the drawer (1035 is where the chatbox sits, deliberately above Boost's drawers) and
       below Bootstrap's modals at 1060, so a tooltip can never cover a dialogue. */
    z-index: 1040;
    inline-size: max-content;
    max-inline-size: 17rem;
    padding: var(--acf-space-3);
    border: 1px solid var(--acf-border-subtle);
    border-radius: var(--acf-radius-md);
    background: var(--acf-surface-raised);
    color: var(--acf-text-primary);
    box-shadow: var(--acf-elevation-4);
    font-size: var(--acf-font-size-xs);
    line-height: var(--acf-leading-snug);
    text-align: start;
    /* The panel is placed before it is shown, so it must not intercept the pointer on its way
       there -- and a tooltip that can be hovered is a tooltip that can trap focus-follows-mouse. */
    pointer-events: none;
    opacity: 0;
    transform: translateY(2px);
    transition:
        opacity var(--acf-duration-fast) var(--acf-ease-standard),
        transform var(--acf-duration-fast) var(--acf-ease-standard);
}

.aicourse-tip.aicourse-tip-in {
    opacity: 1;
    transform: none;
}

.aicourse-tip[hidden] {
    display: none;
}

/* The verdict first, in one word, because that is what the tick already said and the panel should
   confirm it rather than make the reader assemble it from the conditions below. */
.aicourse-tip-status {
    margin: 0 0 var(--acf-space-2);
    font-size: var(--acf-font-size-2xs);
    font-weight: var(--acf-weight-bold);
    letter-spacing: var(--acf-tracking-wide);
    text-transform: uppercase;
}

.aicourse-tip-status-done {
    color: var(--acf-status-done-line);
}

.aicourse-tip-status-pending {
    color: var(--acf-text-tertiary);
}

.aicourse-tip-head {
    margin: 0 0 var(--acf-space-1);
    color: var(--acf-text-secondary);
    font-size: var(--acf-font-size-2xs);
    font-weight: var(--acf-weight-medium);
}

.aicourse-tip-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.aicourse-tip-item {
    display: flex;
    align-items: flex-start;
    gap: var(--acf-space-2);
}

/* Shape as well as colour, the same rule the tick itself follows: a check for met, a cross for
   failed, an empty ring for not attempted. Colour alone would fail WCAG 1.4.1 here exactly as it
   would there. */
.aicourse-tip-marker {
    flex: none;
    display: grid;
    place-items: center;
    inline-size: 13px;
    block-size: 13px;
    margin-block-start: 1px;
    border: 1.5px solid var(--acf-border-strong);
    border-radius: 50%;
}

.aicourse-tip-marker svg {
    inline-size: 8px;
    block-size: 8px;
    fill: none;
    stroke: var(--acf-surface-raised);
    stroke-width: 3.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.aicourse-tip-met .aicourse-tip-marker {
    border-color: var(--acf-status-done-line);
    background: var(--acf-status-done-line);
}

.aicourse-tip-failed .aicourse-tip-marker {
    border-color: var(--acf-status-danger-solid);
    background: var(--acf-status-danger-solid);
}

.aicourse-tip-unmet .aicourse-tip-text {
    color: var(--acf-text-secondary);
}

/* The grade and the date are facts about what happened, not conditions to satisfy, so they sit
   below a rule rather than in the list -- otherwise "Grade 18/20" reads as a fourth requirement. */
.aicourse-tip-facts {
    margin-block-start: var(--acf-space-2);
    padding-block-start: var(--acf-space-2);
    border-block-start: 1px solid var(--acf-border-subtle);
}

.aicourse-tip-fact {
    margin: 0;
    color: var(--acf-text-secondary);
    font-variant-numeric: tabular-nums;
}

.aicourse-tip-fact + .aicourse-tip-fact {
    margin-block-start: 2px;
}

@media (prefers-reduced-motion: reduce) {
    .aicourse-tip {
        transition: none;
        transform: none;
    }
}

/* --- The merged sidebar header (ACF-FIX-2.1.154) ---------------------------
   Three rows became two. Core's own 44px strip carried a close button and a collapse/expand
   dropdown; amd/src/player.js moves both into the brand row and sets `aicourse-index-merged` once
   the move has actually succeeded, so everything below is keyed off a fact rather than a hope --
   if the adopt fails on some future Moodle, the panel keeps the three-row layout it has now
   instead of collapsing a strip that still has controls in it.

   Measured on the live site: `.drawer-left` matches TWO drawers stacked at 0,60 --
   `theme_boost-drawers-primary` and `theme_boost-drawers-courseindex`, both 342x851, each with a
   341x44 `.drawerheader`. Every selector here names the course index by id, and the pre-existing
   `.drawer-left` selectors elsewhere in this sheet were narrowed to the id at the same time; the
   old ones were reaching the site's primary navigation drawer as well, which is why hiding the
   course index could take the site's own nav drawer with it. */

/* The strip is emptied by the JS, then collapsed. Not `display: none`: core measures the drawer's
   own children when it opens and closes, and a box that has left the layout entirely is a
   different thing to a box with no height. */
body.aicourse-index-merged #theme_boost-drawers-courseindex .drawerheader {
    block-size: 0;
    min-block-size: 0;
    padding-block: 0;
    border: 0;
    overflow: hidden;
}

/* The top block is now the header band alone. --acf-topblock is the shared token: the banner reads
   the same number, so the page's top edge follows the sidebar's without either being told about
   the other. 164px was 44 of strip plus 120 of band; the strip is gone, so 120 is the whole of it. */
body.aicourse-index-merged {
    --acf-drawerstrip: 0px;
    /* ACF-FIX-2.3.4: 126px -- 168 reduced by a quarter. 2.3.2 raised this from 120 to 168 to
       recover image height that `background-size: cover` was cropping away, and overshot: the
       band read as too tall for what it holds. 126 keeps a little of that gain (the banner is
       ~11:1 at 1440px rather than 8.3:1) without the top of the page claiming so much of it.

       One number, two elements. The banner reads this as its min-block-size and the sidebar
       header reads it as block-size less the drawer strip, so they cannot drift apart -- never
       size either one independently. The header's own contents are ~90px including the 24px
       under the progress ring, so 126 still clears them; below about 116 that padding starts
       to be squeezed and the ring crowds the edge again. */
    --acf-topblock: 126px;
}

/* The adopted controls, at the end of the icon row. A hairline separates them from the site nav
   beside them -- "go somewhere else" and "act on this panel" are different kinds of button, and
   without the rule they read as one undifferentiated run of five icons. */
/* ACF-FIX-2.1.160: THIS is why the close button was invisible.
   The console diagnostic reported `close: true` -- the element existed -- and measuring the row
   reproduced it exactly: the brand row's scrollWidth was 349px inside a 310px content box. Every
   child was `flex: 0 1 auto` with the default `min-width: auto`, which means "shrink,but never below my own content" -- so nothing shrank, the row overflowed by 39px, and the LAST item was
   pushed past the drawer's edge. The drawer sets `overflow-x: hidden !important`, so it was
   clipped: present, measurable, and off-screen.

   Three rules fix it and they have to be stated together.

   1. The controls never shrink. A close button is not decoration; it is the only way to shut the
      panel, and it is the last item in the row -- exactly the position an overflow sacrifices.
   2. The nav never shrinks either, for the same reason: those are the sidebar's only links out.
   3. The LOGO shrinks instead. It carries `min-inline-size: 0` so flex is actually allowed to take
      space from it, and `object-fit: contain` means a narrower box scales the image rather than
      cropping it. If anything on this row has to give, it should be the picture. */
.aicourse-player-drawerctl {
    display: flex;
    align-items: center;
    flex: none;
    /* ACF-FIX-2.1.175: 0, was 2px. The two controls read as one pair. */
    gap: 0;
    margin-inline-start: var(--acf-space-2);
    /* ACF-FIX-2.1.165: no divider rule. It was drawn to separate "go somewhere else" from "act on this panel" when there were three nav icons and two controls -- five things that needed
       grouping. With one nav icon there is nothing to disambiguate, and a hairline between two
       items reads as debris rather than as structure. */
}

.aicourse-player-drawerctl > * {
    flex: none;
}

body.aicourse-index-merged .aicourse-player-brand {
    flex-wrap: nowrap;
    min-inline-size: 0;
}

body.aicourse-index-merged .aicourse-player-nav {
    flex: none;
}

/* ACF-FIX-2.1.161: the logo takes the leftover, and the leftover is made worth taking.
   2.1.160 stopped the close button being pushed out of the drawer, but it paid for that entirely
   out of the logo -- which ended up around 80px wide and 14px tall, while a 28px gap sat between the
   nav icons and the controls doing nothing.

   The row is 310px of content box. Budgeting it explicitly:

     nav       3 x 30px                      90px
     controls  32 + 2 + 32, +6 margin, +6 pad, +1 border   79px
     gaps      2 x 8px                       16px
     ------------------------------------------------
     logo                                   125px  (was ~80)

   `flex: 1 1 auto` rather than a percentage ceiling: the logo now GROWS into whatever the row does
   not need, so it is as large as it can be at any panel width instead of as large as one hard-coded
   fraction allows. `object-fit: contain` means a wider box scales the image rather than cropping
   it, and the block cap is what actually stops it -- raised to 34px, because 30px was leaving
   headroom in a 36px row. */
/* ACF-FIX-2.1.163: the free space collects in ONE place, and it is not between the icons.
   `.aicourse-player-brand` is `justify-content: space-between`, which spreads every spare pixel
   evenly between its three children -- so a small logo did not leave a big gap next to itself, it
   left a big gap between the nav icons and the controls as well. That is the space the icons
   appeared to be swimming in.

   Left-aligned instead, with the nav keeping its `margin-inline-start: auto`: the logo sits against
   the panel edge, the icons and controls sit together at the other end, and the single pool of
   spare width lands between them where it belongs. */
body.aicourse-index-merged .aicourse-player-brand {
    justify-content: flex-start;
    gap: 6px;
}

/* The band's own side padding comes in from 16 to 12, which is 8px more for the logo and puts the
   controls closer to the panel edge where they belong. */
body.aicourse-index-merged .aicourse-player-header {
    padding-inline: var(--acf-space-3);
}

/* The logo is sized by HEIGHT, which is how a logo should be sized, and the width follows from its
   own aspect ratio. `max-block-size` alone could never make it bigger -- it is a ceiling, and the
   binding constraint was always the width of the box flex left it. `block-size` is a floor and a
   ceiling at once: 32px tall, whatever the row does around it.

   It may still shrink if the row genuinely runs out of room (`flex: 0 1 auto` with
   `min-inline-size: 0`), because the close button must never be evicted again -- but with the gaps
   above tightened there is now ~130px for it rather than ~80. */
/* ACF-FIX-2.1.165: an EXPLICIT width, because the image may have no intrinsic one.
   The live site reported `logoNatural: "0x0"` and `logo: {w: 0, h: 32}` -- the logo is an SVG whose
   markup carries a viewBox and no width/height attributes, which is normal for an SVG and means the
   browser has no intrinsic size to compute `inline-size: auto` from. It computed zero. Every round
   of this fix was tuning the height of a box with no width.

   A stated width plus `object-fit: contain` sizes any logo correctly: a raster keeps its aspect
   inside the box, and an SVG with no intrinsic size scales into it instead of collapsing. The
   percentage cap keeps it from crowding the controls on a narrow panel, and flex may still shrink
   it -- but never below something visible. */
body.aicourse-index-merged .aicourse-player-logo {
    /* ACF-FIX-2.1.168: `flex: 0 0 auto` — it does not shrink any more.
       Every previous attempt left it shrinkable so the close button could never be evicted again,
       and flex duly took the space out of the logo: 80px, then 122px, never the size asked for. The
       row is budgeted so nothing has to give (logo 170 + gap 6 + nav 30 + controls 82 = 288 in a
       ~300px row), so the logo is now simply the size it is stated to be. */
    /* ACF-FIX-2.1.170: shrink restored. `0 0 auto` was correct for the stated 342px panel and wrong
       everywhere else -- Moodle themes ship the course index anywhere from 285px up and the user
       can drag it narrower still. With no shrink here the row simply grew past the panel and the
       close button was pushed outside it and clipped: the exact 2.1.154 fault, live again below a
       327px panel, invisible until the permanent 8px overflow reading was removed. The logo is the
       only item on this row that can afford to give (the nav is the sidebar's way out, the controls
       are how the panel is closed), so it is the one that gives. `object-fit: contain` scales the
       image into the narrower box instead of cropping it. */
    flex: 0 1 auto;
    min-inline-size: 0;
    /* ACF-FIX-2.1.168b: 195px — half again as big as the 130px it was rendering at.
       The budget, stated so the next person can check it rather than re-derive it:
         panel 342 − header padding 2x12 = 318 usable
         controls  32 + 2 + 32, +8 margin ...... 74
         nav icon  30, +6 gap ................... 36
         ---------------------------------------------
         logo ................................. 208 available, 195 taken
       No percentage cap: a percentage of a box whose width depends on this element is how the
       previous three attempts each ended up smaller than the number they asked for. */
    /* ACF-FIX-2.1.175: 205px, up from 187. The row is budgeted below and still fits. */
    inline-size: 205px;
    max-inline-size: none;
    /* block-size is explicit, so a max-block-size beside it can only ever contradict it -- and did:
       the base rule's 30px cap, then a 32px cap here, both silently winning over a 34px request.
       One declaration owns the height. */
    /* 40px tall. The band is 120px and this is its top row; a 34px logo in it was reading as a
       caption. The width above is what the image is drawn INTO -- `contain` keeps its aspect, so a
       wide logo letterboxes vertically rather than stretching. */
    block-size: 46px;
    max-block-size: none;
    object-fit: contain;
    object-position: left center;
}

body.aicourse-index-merged .aicourse-player-drawerctl {
    /* ACF-FIX-2.1.175: 2px, was 8. With one nav icon and two controls this row holds three things
       that all mean "act on this panel or leave it", and an 8px seam in the middle of them read as
       two separate groups. 2px matches the gap INSIDE this control pair, so the three now sit as
       one cluster hard against the panel's right edge. */
    margin-inline-start: 2px;
    /* ACF-FIX-2.1.170: the -8px end margin that was here is gone. It pulled the controls out into
       the header's right padding, which left the close button 5px from the panel edge while the
       logo sat 12px in from the left -- an asymmetry that reads as a mistake -- and it made the row
       report an 8px scroll overflow permanently, masking the width at which a real clip would
       begin. The nav's `margin-inline-start: auto` already pushes this group as far right as the
       row allows, so the correct inset falls out of the header's own padding at any drawer width. */
    margin-inline-end: 0;
}

/* Five controls in a 310px row is tight, so they come down a step in merged mode. 30px still clears
   the WCAG 2.2 AA target minimum of 24px. */
body.aicourse-index-merged .aicourse-player-nav {
    gap: 0;
}

body.aicourse-index-merged .aicourse-player-nav a {
    inline-size: 30px;
    block-size: 30px;
}

/* Both controls take the nav icon's box exactly, so the row is one rhythm rather than core's
   button chrome sitting next to this plugin's. Core's .btn and .btn-icon bring their own padding,
   border, radius and line-height; all of it is reset here. */
.aicourse-player-drawerctl :is(.aicourse-player-close, .drawertoggle, .btn, .btn-icon) {
    display: grid;
    place-items: center;
    /* ACF-FIX-2.1.175: 30px, was 32 -- matching the nav icon beside them exactly, so the three
       boxes are one rhythm. Still clears the WCAG 2.2 AA 24px target minimum. */
    inline-size: 30px;
    block-size: 30px;
    padding: 0;
    border: 0;
    border-radius: var(--acf-radius-md);
    background: transparent;
    color: var(--acf-text-secondary);
    line-height: 1;
    box-shadow: none;
}

.aicourse-player-drawerctl :is(.aicourse-player-close, .drawertoggle, .btn, .btn-icon):hover,
.aicourse-player-drawerctl :is(.aicourse-player-close, .drawertoggle, .btn, .btn-icon):focus-visible {
    background: var(--acf-surface-hover);
    color: var(--acf-brand);
}

.aicourse-player-drawerctl .icon {
    inline-size: auto;
    block-size: auto;
    margin: 0;
    font-size: 15px;
}

/* ACF-FIX-2.1.156: only the dropdown wrapper needs unhiding now. Core marks it `hidden` on the
   drawer it is not currently serving, and the one adopted here belongs to the open course index.
   The close button is this plugin's own element (see player.js) precisely so that core's drawer JS
   -- which rewrites `hidden`, `tabindex` and `data-aria-hidden-tab-index` on its own toggle as the
   drawer opens and closes -- has nothing here to reach for. 2.1.154 moved core's button and it
   arrived invisible; the merged row rendered with a menu and no way to close the panel. */
body.aicourse-index-merged .aicourse-player-drawerctl .drawerheadercontent {
    /* stylelint-disable-next-line declaration-no-important -- beats Moodle's own .hidden. */
    display: flex !important;
}

/* Our close button. Sized and coloured with the nav icons above rather than with core's button
   chrome, and drawn as an SVG so it does not depend on the icon font being loaded. */
.aicourse-player-close svg {
    inline-size: 16px;
    block-size: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body.aicourse-index-merged .aicourse-player-drawerctl .drawerheadercontent {
    align-items: center;
}

/* The dropdown opens downward out of a band that is only 120px tall, so nothing in its ancestor
   chain may clip it. The band's own overflow was never set; core's drawer content sets one. */
body.aicourse-index-merged .aicourse-player-header,
body.aicourse-index-merged .aicourse-player-brand,
body.aicourse-index-merged .aicourse-player-drawerctl {
    overflow: visible;
}

body.aicourse-index-merged .aicourse-player-drawerctl .dropdown-menu {
    z-index: 1041;
}

/* ACF-FIX-2.1.168b: the 42% cap that was here is gone. It was written when the row held five icons
   and it outlived them — with one nav icon there is room for a proper logo, and this rule was
   quietly clamping every later attempt to widen it to 133px. Sixth instance in this sheet of a
   stale duplicate declaration beating the rule that was actually being edited. */

/* --- The activity hero, brought level with the course hero (ACF-FIX-2.1.158) ----
   Rendered both banners side by side against this stylesheet and diffed every computed box. The
   banner height, the content grid, the padding and the alignment all matched exactly -- so the
   height difference reported from the live site is the block gap ABOVE the banner, corrected in
   heroatop.js, not the banner itself.

   What genuinely differed is the type. Two causes, and the second is the one that shows:

   1. `hero.mustache` emits `aicourse-title-{{titlesize}}`; `activity_hero.mustache` does not. So
      the course's own "Card title size" tier never reaches an activity page. (Both are then beaten
      by --acf-hero-title-compact at (0,4,1) in image mode, which is why the measured sizes agree at
      desktop width -- the tier system is inert there for BOTH heroes. That is a separate defect,
      noted rather than changed, because fixing it would resize every course banner at once.)

   2. The activity title is the only thing in its slot. A course banner carries a title AND a summary
      line; an activity banner carries an eyebrow and a title, and the eyebrow is deliberately small.
      At the same font size the activity title therefore reads smaller -- it has nothing beneath it
      to give it scale. It is given its own step up, which is what "the heading is too small" is
      asking for. */
body.format-aicourse .aicourse-hero-banner .aicourse-hero-title-group .aicourse-hero-title {
    line-height: 1.15;
}

/* ACF-FIX-2.1.176: the activity title reads the COURSE title's own size token, at a specificity
   nothing else on the page outranks. This is the fourth attempt at "the activity heading is too small" and the first that addresses why the previous three failed.

   FOUR rules were competing for this one property, and the smallest was winning:

     (0,5,1)  ....has-image .aicourse-hero-title:not([class*="aicourse-title-"])
                                                        --acf-hero-title-compact   max 26px
     (0,4,1)  ....aicourse-hero-title-group .aicourse-hero-title                   max 32px
     (0,4,1)  ....has-image .aicourse-hero-title        --acf-font-size-3xl        max 34px
     (0,3,1)  .aicourse-hero-title.aicourse-title-xl    tier                       max 28px

   The :not() rule scores highest, so on an activity page -- which emitted no tier class -- it won,
   and the heading rendered at the COMPACT size on a banner that is not compact.

   Adding the tier class in 2.1.172 was a real fix to a real gap and STILL did not solve this: all
   it does is stop the :not() rule matching, after which the winner becomes a 32px rule -- and the
   tier itself tops out at 28px, BELOW the compact size it was supposedly overriding. Three
   attempts, each aimed at a different one of these four rules, none of them the one in charge.

   The size is now stated once, here, last in the sheet, at (0,5,1), reading the same token the
   course banner reads. The two headings match because they are the same declaration -- not because
   two numbers were tuned to agree and will drift apart the next time either is touched. It no
   longer depends on the tier class being emitted at all, so a stale template cache cannot bring
   the small heading back. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image
.aicourse-hero-title-group .aicourse-hero-title {
    font-size: var(--acf-hero-heading);
}

/* Gradient mode: the course banner uses --acf-font-size-hero there, so this does too. */
body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image)
.aicourse-hero-title-group .aicourse-hero-title {
    font-size: var(--acf-hero-heading);
}

/* The eyebrow keeps its place in the hierarchy: still clearly subordinate, but no longer so faint
   against a photograph that it reads as an artefact. */
/* ACF-FIX-2.1.189: this block used to restate `font-size: var(--acf-font-size-2xs)` at (0,3,1),
   beating the (0,2,1) rule further up that actually owns this element's type. Editing that rule
   therefore did nothing -- the size is now declared in exactly one place, and this block keeps only
   what is genuinely specific to the banner: the opacity lift over a photograph.
   Ninth instance in this sheet of a duplicate declaration silently beating the rule being edited.
   Run /tmp/dupcheck.py on a selector BEFORE editing it. */
body.format-aicourse .aicourse-hero-banner .aicourse-hero-section-label {
    opacity: 0.92;
}

/* The activity progress cluster is a ring plus a text label, and `row-reverse` -- written for the
   course hero's "bar then ring" -- put the label before the ring, which is neither what the markup
   says nor what the course hero shows. Stated here rather than unpicking the shared rule, which is
   correct for the banner it was written for. */
body.format-aicourse .aicourse-hero-banner .aicourse-hero-progress:has(.aicourse-completion-ring-container) {
    flex-direction: row;
}

/* 2.1.150's glass panel was never scoped to image mode, so on a gradient banner the activity tick
   wore a dark disc that the same release's own note says should not be there. It also hard-coded
   the three values, so it ignored dark mode, prefers-contrast, prefers-reduced-transparency and
   print -- all of which the icon group honours. Both fixed by reading the tokens and scoping the
   rule, exactly as the course ring was in 2.1.152. */
body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image) .aicourse-completion-ring-container {
    border-color: transparent;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: none;
}

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-completion-ring-container {
    border: 1px solid var(--acf-border-media);
    background: var(--acf-media-scrim-strong);
    backdrop-filter: blur(var(--acf-blur-md));
    -webkit-backdrop-filter: blur(var(--acf-blur-md));
}

/* ==========================================================================
   SETTINGS PAGE — one feature at a time (ACF-FIX-2.1.161)
   --------------------------------------------------------------------------
   2.1.159 put ten cards in a three-across grid. It was measured, it did not
   overflow, and it was still the wrong design: ten cards, thirty jump links and
   a preview each, all competing at once. "Comprehensive" and "overwhelming" are
   the same layout seen from two distances.

   This is the opposite bet. One column, one measure, one thing open at a time.

     * A single 46rem column, centred. That is roughly 75 characters of body
       text — the measure typography has settled on for prose, and a setting's
       description IS prose. A 1400px-wide row of small grey text is not
       something anyone reads; it is something they skim and give up on.
     * Every category is a collapsed row. The whole page is ten rows and a
       search box on first paint: the reader sees the SHAPE of the plugin before
       any of its detail, and chooses where to go.
     * Opening one closes the others. Not a preference — the point. There is no
       arrangement of sixty-five settings that is calm if they are all on screen.
     * The wireframe preview moves INSIDE the open panel, where it explains the
       settings you are actually looking at, instead of being one of ten
       thumbnails competing for attention.

   Scoped by page id; nothing here reaches another admin page.
   ========================================================================== */

body#page-admin-setting-formatsettingaicourse,
body.path-course-edit {
    --acfs-bg: #f6f8fb;
    --acfs-card: #fff;
    --acfs-sunken: #f2f5f9;
    --acfs-line: rgba(15, 23, 42, 0.09);
    --acfs-line-strong: rgba(15, 23, 42, 0.16);
    --acfs-ink: #0f172a;
    --acfs-ink-2: #475569;
    --acfs-ink-3: #64748b;
    --acfs-brand: var(--bs-primary, #194866);

    --acfs-r-sm: 8px;
    --acfs-r: 12px;
    --acfs-r-lg: 16px;

    --acfs-sh-1: 0 1px 2px rgba(15, 23, 42, 0.04), 0 1px 3px rgba(15, 23, 42, 0.06);
    --acfs-sh-2: 0 4px 12px rgba(15, 23, 42, 0.07), 0 2px 4px rgba(15, 23, 42, 0.04);
    --acfs-ring: 0 0 0 2px #fff, 0 0 0 4px var(--acfs-brand);
    --acfs-ease: cubic-bezier(0.4, 0, 0.2, 1);

    /* The measure. One number governs the width of everything on this page. */
    --acfs-measure: 46rem;

    --acfs-c-tutor: 139 92 246;
    --acfs-c-index: 16 148 136;
    --acfs-c-banner: 217 119 6;
    --acfs-c-cards: 37 99 235;
    --acfs-c-activity: 5 150 105;
    --acfs-c-nav: 219 39 119;
    --acfs-c-colour: 147 51 234;
    --acfs-c-time: 2 132 199;
    --acfs-c-tour: 100 116 139;
    --acfs-c-other: 71 85 105;
}

@media (prefers-color-scheme: dark) {
    body#page-admin-setting-formatsettingaicourse:not([data-acfs-theme="light"]) {
        --acfs-bg: #0b1220;
        --acfs-card: #131c2b;
        --acfs-sunken: #0e1626;
        --acfs-line: rgba(255, 255, 255, 0.10);
        --acfs-line-strong: rgba(255, 255, 255, 0.18);
        --acfs-ink: #e8eef7;
        --acfs-ink-2: #b3c0d1;
        --acfs-ink-3: #8b9ab0;
        --acfs-ring: 0 0 0 2px #131c2b, 0 0 0 4px var(--acfs-brand);
    }
}

/* --- The column ----------------------------------------------------------- */
/* Applied to the JS-built wrapper AND to anything Moodle leaves outside it, so
   the page has one edge rather than two. */
/* ACF-FIX-2.1.164: full width, left aligned, generous gutters.
   2.1.161 centred everything in a 46rem column. The reasoning -- prose wants a measure -- was sound
   for the DESCRIPTIONS and wrong for the page: a settings form centred in a narrow strip on a wide
   admin screen reads as a mistake, with acres of empty page either side of a 736px ribbon.

   The page takes the width it is given. The measure moves to where it actually belongs: the
   description paragraphs, which are the only prose here. Everything else -- labels, controls,
   panel headers -- is left-aligned to one edge, which is what makes a form scannable. */
body#page-admin-setting-formatsettingaicourse #adminsettings {
    max-inline-size: none;
    margin-inline: 0;
    padding-inline: clamp(1.5rem, 4vw, 4.5rem);
    color: var(--acfs-ink);
}

/* --- Search --------------------------------------------------------------- */
.acfs-controls {
    position: sticky;
    inset-block-start: 0;
    z-index: 5;
    margin-block: 0.5rem 1rem;
    padding: 0.6rem;
    border: 1px solid var(--acfs-line);
    border-radius: var(--acfs-r);
    background: color-mix(in srgb, var(--acfs-card) 90%, transparent);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: var(--acfs-sh-1);
}

.acfs-search {
    position: relative;
    min-inline-size: 0;
}

.acfs-search > svg {
    position: absolute;
    inset-block-start: 50%;
    inset-inline-start: 0.7rem;
    inline-size: 15px;
    block-size: 15px;
    transform: translateY(-50%);
    fill: none;
    stroke: var(--acfs-ink-3);
    stroke-width: 2;
    pointer-events: none;
}

.acfs-searchinput {
    inline-size: 100%;
    min-inline-size: 0;
    box-sizing: border-box;
    padding: 0.55rem 0.75rem 0.55rem 2.1rem;
    border: 1px solid var(--acfs-line-strong);
    border-radius: 9px;
    background: var(--acfs-card);
    color: var(--acfs-ink);
    line-height: 1.4;
}

.acfs-searchinput:focus-visible {
    outline: none;
    border-color: var(--acfs-brand);
    box-shadow: var(--acfs-ring);
}

/* ACF-FIX-2.1.166: --acf-ink-3 measured 4.47:1 against the page here -- three hundredths under the
   4.5:1 AA floor for text this size. Stepped up to ink-2. */
/* ACF-FIX-2.1.169: the hint had 0.5rem above it and NOTHING below — it finished 3px from the top
   of the first panel, so it read as part of that panel rather than as a caption over the list. A
   line of guidance needs air under it more than over it. */
.acfs-hint {
    margin: 1.25rem 0.15rem 0.85rem;
    color: var(--acfs-ink-2);
}

/* --- The ten rows --------------------------------------------------------- */
.acfs-list {
    display: flex;
    flex-direction: column;
    margin-block-end: 2rem;
}

.acfs-panel {
    --c: var(--acfs-c-other);
    min-inline-size: 0;
    border: 1px solid var(--acfs-line);
    border-radius: var(--acfs-r-lg);
    background: var(--acfs-card);
    box-shadow: var(--acfs-sh-1);
    /* The colour lives on the leading edge, where it labels the row without
       tinting a whole card the reader has to look past. */
    border-inline-start: 3px solid rgb(var(--c) / 0.45);
    overflow: hidden;
    scroll-margin-block-start: 5rem;
    transition: box-shadow 200ms var(--acfs-ease), border-color 200ms var(--acfs-ease);
}

.acfs-panel:hover {
    border-color: var(--acfs-line-strong);
    border-inline-start-color: rgb(var(--c) / 0.8);
}

.acfs-panel.is-open {
    border-inline-start-color: rgb(var(--c) / 1);
    box-shadow: var(--acfs-sh-2);
}

/* The header is the whole row and it is a real button, so it is reachable by
   keyboard and announces its own expanded state. */
.acfs-head {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    inline-size: 100%;
    min-inline-size: 0;
    box-sizing: border-box;
    padding: 0.9rem 1rem;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: start;
    cursor: pointer;
    transition: background 160ms var(--acfs-ease);
}

.acfs-head:hover {
    background: rgb(var(--c) / 0.05);
}

.acfs-head:focus-visible {
    outline: none;
    box-shadow: var(--acfs-ring);
}

.acfs-icon {
    flex: none;
    display: grid;
    place-items: center;
    inline-size: 2.1rem;
    block-size: 2.1rem;
    border-radius: 9px;
    background: rgb(var(--c) / 0.13);
    color: rgb(var(--c) / 1);
    font-size: 1rem;
    line-height: 1;
}

.acfs-headtext {
    flex: 1 1 auto;
    min-inline-size: 0;
}

.acfs-title {
    margin: 0;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.01em;
    color: var(--acfs-ink);
    overflow-wrap: anywhere;
}

.acfs-sub {
    display: block;
    margin-block-start: 1px;
    line-height: 1.4;
    color: var(--acfs-ink-3);
    overflow-wrap: anywhere;
}

.acfs-count {
    flex: none;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: rgb(var(--c) / 0.13);
    color: rgb(var(--c) / 1);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.acfs-chev {
    flex: none;
    inline-size: 16px;
    block-size: 16px;
    fill: none;
    stroke: var(--acfs-ink-3);
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform 220ms var(--acfs-ease);
}

.acfs-panel.is-open .acfs-chev {
    transform: rotate(180deg);
    stroke: rgb(var(--c) / 1);
}

/* --- The open panel ------------------------------------------------------- */
.acfs-body {
    border-block-start: 1px solid rgb(var(--c) / 0.16);
    margin-block-start: -1px;
}

.acfs-panel:not(.is-open) .acfs-body {
    display: none;
}

/* The wireframe, inside the panel it explains. Capped so it stays an
   illustration rather than becoming the content. */
.acfs-preview {
    max-inline-size: 22rem;
    margin: 1rem 0 1.1rem;
    border: 1px solid rgb(var(--c) / 0.18);
    border-radius: 10px;
    background: var(--acfs-sunken);
    overflow: hidden;
}

body#page-admin-setting-formatsettingaicourse .acfs-preview svg {
    display: block;
    inline-size: 100%;
    block-size: auto;
    aspect-ratio: 200 / 112;
    color: var(--acfs-ink-3);
}

/* --- The settings, one per row -------------------------------------------- */
body#page-admin-setting-formatsettingaicourse #adminsettings .form-item {
    display: block;
    min-inline-size: 0;
    /* No block-size, no max-block-size, anywhere on this page. */
    margin: 0;
    padding: 1rem 0;
    border: 0;
    border-block-start: 1px solid var(--acfs-line);
    background: transparent;
    box-shadow: none;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-body
.form-item:first-of-type {
    border-block-start: 0;
}

/* Moodle floats the label and the setting; a float adds nothing to its parent's
   height, which is how a long description used to run out through the bottom of
   its box. flow-root contains them. */
/* ACF-FIX-2.1.167: the illustration is excluded. This blanket rule exists to contain Moodle's
   floated label and setting columns, and `display: flow-root` is right for both of them — but it
   also caught the wireframe wrapper this plugin adds, overrode its `display: grid`, and stacked the
   three little courses vertically instead of placing them in a row. A rule aimed at "whatever core put here" has to say so, or it silently governs everything added afterwards too. */
body#page-admin-setting-formatsettingaicourse #adminsettings .form-item > *:not(.acfs-sfig) {
    display: flow-root;
    min-inline-size: 0;
    float: none;
    inline-size: auto;
    max-inline-size: 100%;
    padding: 0;
    text-align: start;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .form-label label {
    display: block;
    margin: 0;
    font-weight: 600;
    color: var(--acfs-ink);
    overflow-wrap: anywhere;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .form-shortname {
    margin-block-start: 3px;
    padding: 1px 5px;
    border-radius: 4px;
    background: var(--acfs-sunken);
    color: var(--acfs-ink-3);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0;
    overflow-wrap: anywhere;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .form-description {
    /* THE measure, and the only place it is applied. ~75 characters, left aligned against the same
       edge as the label above it. */
    max-inline-size: 72ch;
    color: var(--acfs-ink-2);
    overflow-wrap: anywhere;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .form-description p {
    margin: 0 0 0.45rem;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .form-description p:last-child {
    margin-block-end: 0;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .form-description code,
body#page-admin-setting-formatsettingaicourse #adminsettings .form-defaultinfo code {
    padding: 1px 4px;
    border-radius: 4px;
    background: var(--acfs-sunken);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.9em;
    overflow-wrap: anywhere;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .form-defaultinfo {
    color: var(--acfs-ink-3);
    overflow-wrap: anywhere;
}

/* Controls stop at a comfortable width rather than stretching the full measure:
   a select 736px wide with four words in it looks broken. */
/* ACF-FIX-2.1.167: the `background:` SHORTHAND that was here is gone, and with it the last thing
   competing for this property. A shorthand resets background-image, and because this selector uses
   :is() containing attribute selectors it scores (2,1,2) -- higher than a plain `select` rule at
   (2,0,2) -- so it beat the chevron regardless of which came first in the file. That is why a
   dropdown did not look like a dropdown, and why moving the fix further down the sheet never
   helped. Sizing and colour now live in the 2.1.167 block below; this one keeps only what nothing
   else claims. */
body#page-admin-setting-formatsettingaicourse #adminsettings
:is(select, input[type="text"], input[type="password"], input[type="url"], textarea) {
    inline-size: 100%;
    min-inline-size: 0;
    box-sizing: border-box;
    color: var(--acfs-ink);
}

body#page-admin-setting-formatsettingaicourse #adminsettings
:is(select, input[type="text"], input[type="password"], input[type="url"], textarea):focus-visible {
    outline: none;
    border-color: var(--acfs-brand);
    box-shadow: var(--acfs-ring);
}

body#page-admin-setting-formatsettingaicourse #adminsettings textarea {
    max-inline-size: 100%;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

body#page-admin-setting-formatsettingaicourse #adminsettings input[type="checkbox"] {
    inline-size: 1.1rem;
    block-size: 1.1rem;
    margin-inline-end: 0.4rem;
    accent-color: var(--acfs-brand);
}

/* --- Headings Moodle renders as settings ---------------------------------- */
.acfs-note {
    min-inline-size: 0;
    margin-block: 0.5rem 1rem;
    padding: 0.9rem 1rem;
    border: 1px solid var(--acfs-line);
    border-inline-start: 3px solid rgb(var(--acfs-c-other) / 0.5);
    border-radius: var(--acfs-r);
    background: var(--acfs-card);
    overflow-wrap: anywhere;
}

.acfs-note h3 {
    margin: 0 0 0.3rem;
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--acfs-ink);
}

/* --- Empty state and jump flash ------------------------------------------- */
.acfs-empty {
    margin: 1.5rem 0;
    padding: 2rem 1rem;
    border: 1px dashed var(--acfs-line-strong);
    border-radius: var(--acfs-r);
    color: var(--acfs-ink-3);
    text-align: center;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .form-item.acfs-flash {
    animation: acfs-flash 1.6s var(--acfs-ease);
}

@keyframes acfs-flash {
    0%, 12% { background: rgb(var(--c) / 0.16); }
    100%    { background: transparent; }
}

/* An SVG with a viewBox and no width/height attribute falls back to 300x150.
   That inflated a hub card to 1576px in 2.1.159; the backstop stays. */
/* ACF-FIX-2.1.167: the backstop is scoped to ICONS, which is the only place the fault it guards
   against occurs.
   As written in 2.1.159 it was `:not(.acfs-preview) > svg` — an exclusion list of one, at (1,3,2),
   which then beat every rule that sizes an illustration and crushed the per-setting wireframes to
   18px. A guard that has to be excluded from by name will always be one name behind. Naming the
   places an unsized icon actually appears is both narrower and self-maintaining. */
body#page-admin-setting-formatsettingaicourse
:is(.acfs-head, .acfs-search, .acfs-chevwrap, .acfs-jump, button, a, label) >
svg:not([width]):not([height]) {
    inline-size: 1em;
    block-size: 1em;
}

@media (prefers-reduced-motion: reduce) {
    .acfs-panel,
    .acfs-head,
    .acfs-chev {
        transition: none;
    }

    body#page-admin-setting-formatsettingaicourse #adminsettings .form-item.acfs-flash {
        animation: none;
    }
}

@media (max-width: 720px) {
    .acfs-controls {
        position: static;
    }
}

/* --- The right-hand cluster gets the left-hand cluster's panel (ACF-FIX-2.1.161) ----
   The nav icons sit in a dark, blurred, rounded panel. The controls at the other end of the same
   banner -- the chevrons, the progress ring or completion tick, and the label beside it -- sat bare
   on the photograph. One end of the banner had been designed and the other had not, and on a light
   patch of image the right-hand controls lost their edges entirely.

   The same treatment, read from the SAME tokens rather than approximated, so the two panels cannot
   drift apart the way the two rings did. Applied to `.aicourse-hero-nav-progress`, which is the
   cluster on every variant -- course, section and activity -- so this is one rule for all three
   rather than three that have to be kept in step.

   Image mode only: on a gradient banner the surface is already flat and a scrim over it reads as a
   smudge, which is the mistake 2.1.150 made with the completion ring. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-nav-progress {
    padding: var(--acf-space-1);
    border: 1px solid var(--acf-border-media);
    border-radius: var(--acf-radius-lg);
    background: var(--acf-media-scrim-strong);
    backdrop-filter: blur(var(--acf-blur-md));
    -webkit-backdrop-filter: blur(var(--acf-blur-md));
    box-shadow: var(--acf-elevation-2);
    transition:
        background var(--acf-duration-fast) var(--acf-ease-standard),
        border-color var(--acf-duration-fast) var(--acf-ease-standard);
}

/* The same lift on hover the icon group has, so the two ends of the banner behave identically as
   well as looking identical. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image
.aicourse-hero-nav-progress:hover {
    background: var(--acf-media-scrim-stronger);
    border-color: rgba(255, 255, 255, 0.38);
}

/* A panel inside a panel is one panel too many. The ring and the tick were each given their own
   glass in 2.1.150 and 2.1.152, at a time when nothing surrounded them; now that the cluster
   carries it, theirs is removed rather than nested. The ring keeps its shape, its colour and its
   size -- only the disc behind it goes. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image
:is(.aicourse-progress-ring-container, .aicourse-completion-ring-container) {
    border-color: transparent;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: none;
}

/* ACF-FIX-2.1.186b: the chevron carries no surface of its own, exactly like the icons opposite it.
   THE ASYMMETRY WAS NEVER THE ICON. Reported four times as "the right side is bigger", and the
   first three fixes measured the glyph (22px, matched), the button box (44px, matched) and the
   panel height (68px, matched) and each time reported symmetry. What none of them compared was the
   per-button BACKGROUND: the four icons on the left are transparent inside the shared glass pill,
   and the chevron on the right had its own tinted, blurred tile behind it. A visible square behind
   one control and nothing behind the other reads as a size difference, because a filled 44px box
   simply IS bigger than an unfilled one -- which is what the eye was reporting all along and the
   measurements could not see.
   The comment this replaces argued the chevron needed a surface so it would not read as an artefact
   against a busy photo. That was true when the chevron sat directly on the image; it stopped being
   true when the cluster gained the glass pill both ends now share. The pill IS the surface.
   Two rules were setting this, with different radii and different fills -- the duplicate-declaration
   trap again -- so they are consolidated here into one that sets nothing. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-nav {
/* ACF-FIX-2.1.186b: the chevron has NO surface of its own. See the consolidated note further down
   -- this block used to give it a scrim, a border and a blur, and the block below gave it a second,
   different one. Only the colour survives here. */
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-color: transparent;
    color: var(--acf-text-on-media);
    transition: background var(--acf-duration-fast) var(--acf-ease-standard);
}

/* Hover is the one place it does gain a surface -- the same one the left icons gain. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-nav:hover {
    background: var(--acf-surface-hover);
}

@media (prefers-reduced-motion: reduce) {
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image
    :is(.aicourse-hero-nav-progress, .aicourse-hero-nav) {
        transition: none;
    }
}

/* prefers-contrast and reduced-transparency: the icon group already drops its blur under both;
   the cluster now does the same, from the same media queries' tokens. */
@media (prefers-reduced-transparency: reduce) {
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-nav-progress {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        background: rgba(2, 6, 23, 0.88);
    }
}

@media print {
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-nav-progress {
        border-color: #000;
        background: transparent;
        box-shadow: none;
    }
}

/* ==========================================================================
   MOBILE (ACF-FIX-2.1.162)
   --------------------------------------------------------------------------
   A full pass at 360, 390 and 414px against every component, measured rather
   than eyeballed. Three real faults, and the first one made the activity banner
   unusable on a phone.

   Honest note on method: this sheet was written desktop-first and this is a
   correction pass, not a rewrite. What follows is therefore stated as widths
   BELOW which things change, and every fix is a constraint being ADDED rather
   than a value being tuned — because a value tuned for 390px is wrong at 360.
   ========================================================================== */

/* --- 1. The banner title overflowed the screen ----------------------------
   Measured on an activity banner at 390px: `.aicourse-hero-title-group` was
   482px wide inside a 390px banner — 92px of the module's own name off the side
   of the phone, at every width tested.

   Cause: in image mode `.aicourse-hero-content` becomes a column, and a column's
   CROSS axis is the inline one. `align-items: flex-start` therefore tells every
   child to shrink-wrap its content instead of filling the width — so the title
   group sized itself to the longest unbroken run of text in it and simply ran
   off the edge. `.aicourse-hero-title-wrap` already carried `inline-size: 100%`;
   its parent did not, and the parent is what was measuring.

   Fixed at every width, not just on phones: the same rule was overflowing a
   desktop banner too, it was just off the edge of a much wider box and nobody
   saw it. */
/* ACF-FIX-2.1.165: `inline-size: 100%` only -- the `align-self: stretch` that came with it in
   2.1.162 has been removed.
   At desktop widths `.aicourse-hero-content` is a GRID, and in a grid `align-self` governs the
   BLOCK axis. Stretching the title block therefore made it fill the banner's full height and its
   text sat at the top of that box instead of on the centre line, which is why the heading suddenly
   looked top-aligned. `inline-size: 100%` fixes the overflow on its own, in both the grid and the
   mobile column, and leaves the vertical alignment to the rule that owns it. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image
:is(.aicourse-hero-title-group, .aicourse-hero-lede) {
    inline-size: 100%;
    max-inline-size: 100%;
    min-inline-size: 0;
}

body.format-aicourse .aicourse-hero-banner
:is(.aicourse-hero-title, .aicourse-hero-section-label, .aicourse-hero-summary) {
    max-inline-size: 100%;
    /* A course name can contain a URL or an unbroken code with no space in it —
       `anywhere` is what stops one of those setting the width of the banner. */
    overflow-wrap: anywhere;
}

/* --- 2. Text below the legibility floor -----------------------------------
   The percentage inside the progress ring measured 10px. This sheet's own type
   scale sets 11px as the absolute floor and says so; the ring was reading from a
   clamp whose lower bound fell through it once the ring itself got smaller on a
   phone. Raised to the floor rather than to a comfortable size, because the ring
   is only 44px across down there and the number has to fit inside it. */
body.format-aicourse .aicourse-progress-ring-text,
body.format-aicourse .aicourse-player-ring-text {
    font-size: max(11px, var(--acf-font-size-2xs));
}

/* --- 3. The sidebar header clipped its own contents -----------------------
   `.aicourse-player-header` is given an exact `block-size` so the sidebar's top
   block and the banner line up to the pixel. That is right on a desktop, where
   the course name fits on one line. On a phone the drawer is narrower, the name
   wraps to two or three lines, and an exact height then CLIPS it — measured:
   `.aicourse-player-title-row` and the progress ring both had content past their
   own box.

   Below the drawer breakpoint the height becomes a floor instead. The banner
   alignment it was protecting does not apply there anyway: the banner is not
   beside the sidebar on a phone, it is above the content with the drawer closed
   over it. */
@media (max-width: 991px) {
    body.aicourse-player-on .aicourse-player-header {
        block-size: auto;
        min-block-size: calc(var(--acf-topblock) - var(--acf-drawerstrip));
    }
}

/* --- 4. Touch targets ------------------------------------------------------
   WCAG 2.2 SC 2.5.8 requires 24x24 CSS pixels for a pointer target. The course
   name and the meta line in the sidebar header are links and were 19px and 16px
   tall. They are given the height rather than a bigger font, so the type scale
   is unchanged and only the hit area grows. */
/* 2.1.195: the course name is NO LONGER given `display: inline-flex` here.
   It is clamped to two lines at 9596 with `display: -webkit-box`, which is the only display value
   -webkit-line-clamp works on, and setting flex on it silently turned the clamp off. The height
   this rule wants does not need flex -- min-block-size applies to a -webkit-box exactly as it does
   to anything else -- so the two are simply separated. They were only ever grouped because they
   wanted the same number.

   Splitting the :is() also removes a specificity trap: `:is()` takes the specificity of its most
   specific argument, so `.aicourse-player-meta a` was lending an extra element to the course name's
   half of the selector. A later single-class rule written to correct the display would have LOST to
   it, at equal-looking specificity, which is exactly what happened on the first attempt at this. */
body.aicourse-player-on .aicourse-player-coursename {
    min-block-size: 24px;
}

body.aicourse-player-on .aicourse-player-meta a {
    display: inline-flex;
    align-items: center;
    min-block-size: 24px;
}

/* --- 5. Nothing on a phone may scroll sideways ----------------------------
   The backstop, and the one rule here that is a blunt instrument on purpose. A
   single overflowing child anywhere makes the WHOLE page pan horizontally, which
   is the single most damaging thing that can happen to a page on a phone: every
   vertical swipe drifts, and the layout appears broken even where it is not.

   Scoped to this format's own containers, so it cannot mask an overflow in
   somebody else's markup. */
@media (max-width: 767px) {
    body.format-aicourse :is(.format-aicourse-container, .aicourse-cards-container,
    .aicourse-activity-cards-container, .aicourse-hero-banner) {
        max-inline-size: 100%;
        overflow-x: clip;
    }

}

/* --- The introduction, and the save button (ACF-FIX-2.1.164) --------------- */
.acfs-intro {
    margin-block: 0.5rem 1.25rem;
    padding: 1.1rem 1.25rem 0.9rem;
    border: 1px solid var(--acfs-line);
    border-inline-start: 3px solid rgb(var(--acfs-c-other) / 0.5);
    border-radius: var(--acfs-r-lg);
    background: var(--acfs-card);
    box-shadow: var(--acfs-sh-1);
}

.acfs-introtitle {
    margin: 0 0 0.6rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--acfs-ink);
}

/* Inside the introduction the notes are prose, not settings: no card of their own, no rule down
   the side, just headings and paragraphs at a readable measure. */
body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-intro .form-item {
    margin: 0;
    padding: 0;
    border: 0;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-intro .form-item + .form-item {
    margin-block-start: 0.9rem;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-intro h3 {
    margin: 0 0 0.2rem;
    font-weight: 700;
    color: var(--acfs-ink);
}

body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-intro .form-description {
    margin-block-start: 0.2rem;
}

/* Save, pinned to the bottom of the viewport. A sixty-five setting page is long enough that a
   button which scrolls away means scrolling back to commit a change made at the top. */
body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-save {
    position: sticky;
    inset-block-end: 0;
    z-index: 6;
    margin-block-start: 1.5rem;
    /* Pulled out to the page's own edges so the bar reads as page chrome rather than as one more
       item in the list, then given the gutter back as padding. */
    margin-inline: calc(clamp(1.5rem, 4vw, 4.5rem) * -1);
    padding: 0.85rem clamp(1.5rem, 4vw, 4.5rem);
    border-block-start: 1px solid var(--acfs-line);
    background: color-mix(in srgb, var(--acfs-card) 92%, transparent);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    text-align: start;
}

@media (max-width: 720px) {
    body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-save {
        position: static;
        margin-inline: 0;
        padding-inline: 0;
    }
}

/* --- The sheen, on both panels (ACF-FIX-2.1.165) ---------------------------
   The light that sweeps left-to-right across the left-hand group is `acf-shine`, and it was on the
   AI button alone -- a 44px square, which is why it reads as a flash passing through the glass
   rather than as one control lighting up. The right-hand cluster now carries the same sweep, from
   the same keyframes at the same 3.6s, so the two ends of the banner breathe together instead of
   one being alive and the other inert.

   Drawn by a pseudo-element inset -50% and clipped by the panel, exactly as the button does it.
   `pointer-events: none` and `z-index: 0` keep it behind the controls and out of their way. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-nav-progress {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image
.aicourse-hero-nav-progress::after {
    content: "";
    position: absolute;
    inset: -50%;
    z-index: 0;
    background:
        linear-gradient(
            45deg,
            transparent 40%,
            var(--acf-media-hover) 50%,
            transparent 60%
        );
    animation: acf-shine 3.6s var(--acf-ease-standard) infinite;
    pointer-events: none;
}

/* Everything real in the cluster sits above the sweep. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image
.aicourse-hero-nav-progress > * {
    position: relative;
    z-index: 1;
}

@media (prefers-reduced-motion: reduce) {
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image
    .aicourse-hero-nav-progress::after {
        animation: none;
    }
}

/* ==========================================================================
   SETTINGS PAGE — beating Bootstrap's utilities (ACF-FIX-2.1.166)
   --------------------------------------------------------------------------
   Every rule in the block above was losing an argument it did not know it was
   having. Moodle's admin form carries Bootstrap utility classes on the markup
   itself — `text-sm-right`, `d-block`, `col-sm-3`, `col-sm-9` — and Bootstrap
   declares those with `!important`. So `text-align: start` on `.form-label` was
   overruled by `.text-sm-right`, every label sat right-aligned against its own
   description, and `display: inline-block` on the setting's code name was
   overruled by `.d-block`, which stretched a 200px pill into a 962px grey bar
   across the page.

   This was invisible in testing because the local harness had no Bootstrap in
   it. It does now — the same five utilities, with the same `!important` — so
   this class of fault reproduces locally instead of being reported from a live
   site. That is the actual fix; the declarations below are the consequence.

   `!important` is used deliberately and only where a Bootstrap utility carries
   it. That is the same rationale the compatibility layer earlier in this sheet
   documents for core's own rules.
   ========================================================================== */

/* Left aligned, both halves of the row. A right-aligned label above a
   left-aligned description is two reading edges where there should be one. */
body#page-admin-setting-formatsettingaicourse #adminsettings
:is(.form-item, .form-label, .form-setting, .form-label label, .form-description,
.form-defaultinfo) {
    /* stylelint-disable-next-line declaration-no-important -- beats .text-sm-right. */
    text-align: start !important;
}

/* The column classes stop being columns. The label sits above the control in
   one flow, so a 25/75 split has nothing to split. */
body#page-admin-setting-formatsettingaicourse #adminsettings
:is(.form-label, .form-setting) {
    /* stylelint-disable-next-line declaration-no-important -- beats .col-sm-*. */
    flex: 1 1 100% !important;
    /* stylelint-disable-next-line declaration-no-important -- beats .col-sm-*. */
    max-inline-size: 100% !important;
    padding-inline: 0;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .form-item.row {
    display: block;
    margin-inline: 0;
}

/* The code name is a pill, not a bar. */
body#page-admin-setting-formatsettingaicourse #adminsettings .form-shortname {
    /* stylelint-disable-next-line declaration-no-important -- beats .d-block. */
    display: inline-block !important;
    inline-size: auto;
    max-inline-size: 100%;
}

/* --- The accordion, as an accordion (ACF-FIX-2.1.166) ---------------------
   Three things were missing and each of them is what tells a reader a row can
   be opened: air between the rows, a control that looks like a control, and a
   hover state that belongs to this page rather than to whatever the theme does
   to a <button>. */

/* Air. 0.5rem read as a list of stripes; 0.85rem reads as ten separate things. */
.acfs-list {
    gap: 0.85rem;
}

/* The chevron becomes a button-shaped affordance rather than a stroke floating
   in the corner: a circle that fills on hover, which is the same language the
   rest of this plugin uses for "this does something". */
.acfs-chevwrap {
    flex: none;
    display: grid;
    place-items: center;
    inline-size: 30px;
    block-size: 30px;
    border: 1px solid var(--acfs-line);
    border-radius: 50%;
    background: var(--acfs-card);
    transition: background 180ms var(--acfs-ease), border-color 180ms var(--acfs-ease);
}

.acfs-head:hover .acfs-chevwrap {
    border-color: rgb(var(--c) / 0.45);
    background: rgb(var(--c) / 0.12);
}

.acfs-panel.is-open .acfs-chevwrap {
    border-color: rgb(var(--c) / 0.55);
    background: rgb(var(--c) / 0.14);
}

/* Moodle and its themes style bare <button> elements — background, border,
   shadow, and a hover that has nothing to do with this page. All of it off, so
   the only hover here is the one designed for it. */
body#page-admin-setting-formatsettingaicourse .acfs-head,
body#page-admin-setting-formatsettingaicourse .acfs-head:hover,
body#page-admin-setting-formatsettingaicourse .acfs-head:focus,
body#page-admin-setting-formatsettingaicourse .acfs-head:active {
    /* stylelint-disable-next-line declaration-no-important -- beats theme button rules. */
    border: 0 !important;
    /* stylelint-disable-next-line declaration-no-important -- beats theme button rules. */
    box-shadow: none !important;
    /* stylelint-disable-next-line declaration-no-important -- beats theme button rules. */
    color: inherit !important;
    text-decoration: none;
    outline: none;
}

body#page-admin-setting-formatsettingaicourse .acfs-head {
    /* stylelint-disable-next-line declaration-no-important -- beats theme button rules. */
    background: transparent !important;
}

body#page-admin-setting-formatsettingaicourse .acfs-head:hover {
    /* stylelint-disable-next-line declaration-no-important -- beats theme button rules. */
    background: rgb(var(--c) / 0.05) !important;
}

body#page-admin-setting-formatsettingaicourse .acfs-head:focus-visible {
    /* stylelint-disable-next-line declaration-no-important -- restores the ring the reset removed. */
    box-shadow: var(--acfs-ring) !important;
}

/* A closed panel says so in words as well as in shape, for the same reason the
   completion tick carries a shape and not only a colour. */
.acfs-toggleword {
    flex: none;
    color: var(--acfs-ink-3);
    font-size: 0.875rem;
    font-weight: 600;
}

@media (max-width: 599px) {
    .acfs-toggleword {
        display: none;
    }
}

/* --- Type scale (ACF-FIX-2.1.166) -----------------------------------------
   Reported as "very small writing", and correctly. The scale was 15px labels,
   13px descriptions, 12px default-info and 11px code names — sizes borrowed
   from a dense dashboard, on a page whose job is reading. Moodle's admin base
   is 16px; a 13px paragraph next to it reads as fine print, and fine print is
   exactly what an administrator skips before getting a setting wrong.

   Everything moves up roughly one step. The relationships are unchanged, so the
   hierarchy still reads — it is simply legible now. Stated in rem so a browser
   or OS text-size preference still scales all of it. */
/* ACF-FIX-2.1.170: up one more step. 17/15/14 was legible; it was not confident, and the page has
   width it was not spending. The measure is narrowed to compensate (62ch -> 58ch below), so the
   line length in millimetres is close to unchanged -- the type is bigger, not the paragraph. */
body#page-admin-setting-formatsettingaicourse #adminsettings .form-label label {
    font-size: 1.1875rem;   /* 19px, was 17 */
    line-height: 1.35;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .form-description {
    font-size: 1rem;        /* 16px, was 15 — matches Moodle's own body size */
    line-height: 1.6;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .form-defaultinfo {
    font-size: 0.9375rem;   /* 15px, was 14 */
}

body#page-admin-setting-formatsettingaicourse #adminsettings .form-shortname {
    font-size: 0.8125rem;   /* 13px, was 11 */
}

body#page-admin-setting-formatsettingaicourse #adminsettings
:is(select, input[type="text"], input[type="password"], input[type="url"], textarea) {
    /* 16px is also what stops iOS zooming the page when a field takes focus —
       any smaller and Safari scales the whole layout up on tap. */
    font-size: 1rem;
}

.acfs-title {
    font-size: 1.0625rem;
}

.acfs-sub {
    font-size: 0.9375rem;
}

.acfs-count {
    font-size: 0.8125rem;
}

.acfs-searchinput {
    font-size: 1rem;
    padding-block: 0.65rem;
}

.acfs-hint {
    font-size: 0.875rem;
    line-height: 1.5;
}

.acfs-introtitle {
    font-size: 1.125rem;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-intro h3 {
    font-size: 1.0625rem;
}

.acfs-empty {
    font-size: 1rem;
}

/* --- Settings page on a phone (ACF-FIX-2.1.166) ---------------------------
   The page was never audited at phone widths WITH Bootstrap present, which is
   the only configuration that matters — the utilities it carries are what the
   layout has to survive. */
@media (max-width: 599px) {
    body#page-admin-setting-formatsettingaicourse #adminsettings {
        padding-inline: 1rem;
    }

    /* The header stacks: an icon, a title and a count competing for 360px with a
       30px control on the end is how a title ends up two words per line. */
    .acfs-head {
        flex-wrap: wrap;
        gap: 0.6rem;
        padding: 0.85rem;
        /* ACF-FIX-2.1.170: start, not centre. On a phone the description under the title wraps to
           three lines, so a centred icon floats down beside the second line and the title appears
           to start from nowhere -- the row reads as broken alignment rather than as an icon and a
           heading. Aligning to the start puts the icon back on the title's own line. */
        align-items: flex-start;
    }

    /* The optical correction that goes with it: the icon box is 34px and the title's cap-height
       starts a little below its own line box, so a hard top alignment sits the icon fractionally
       high. 2px puts the two centres level. */
    .acfs-head > .acfs-icon,
    .acfs-head > [class*="acfs-ic"] {
        margin-block-start: 2px;
    }

    .acfs-headtext {
        flex: 1 1 60%;
    }

    .acfs-count {
        order: 3;
    }

    /* Full-width controls: a 30rem cap is wider than the phone, so the cap does
       nothing and the padding is what needs to give. */
    body#page-admin-setting-formatsettingaicourse #adminsettings
    :is(select, input[type="text"], input[type="password"], input[type="url"], textarea) {
        max-inline-size: 100%;
    }

    .acfs-preview {
        max-inline-size: 100%;
    }
}

/* --- The drawer never exceeds the screen (ACF-FIX-2.1.166) ------------------
   Found by testing at 320 CSS pixels, which is the width WCAG 2.2 SC 1.4.10
   (Reflow) specifies -- it is both a small phone and what any screen becomes at
   400% browser zoom. The course index is pinned to 342px, so at 320 it was
   23px wider than the viewport and the whole page panned sideways.

   A hard cap rather than a new width: 342px stays the design wherever there is
   room for it, and below that the drawer is simply as wide as the screen. The
   sidebar is the navigation for the entire course; it is the last thing that
   should be reachable only by scrolling the page horizontally. */
@media (max-width: 400px) {
    body.aicourse-player-on #theme_boost-drawers-courseindex,
    body.format-aicourse #theme_boost-drawers-courseindex {
        /* stylelint-disable-next-line declaration-no-important -- beats the 342px pin. */
        width: 100vw !important;
        /* stylelint-disable-next-line declaration-no-important -- beats the 342px pin. */
        max-width: 100vw !important;
        max-inline-size: 100vw;
    }

    /* The brand row's budget is recalculated from the wider panel rather than
       being left with the 310px assumption baked into it. */
    body.aicourse-index-merged .aicourse-player-logo {
        max-inline-size: 60%;
    }
}

/* ==========================================================================
   SETTINGS PAGE — controls and rhythm (ACF-FIX-2.1.167)
   --------------------------------------------------------------------------
   Three faults, all measured on a harness that now carries Bootstrap's REAL
   `.custom-select` rule rather than a simplified stand-in:

     backgroundImage : none        <- the dropdown arrow was gone
     appearance      : none        <- and the browser's native arrow with it
     height          : 38px fixed  <- against 41.6px of content: text clipped
     gap between settings : 0px    <- rows flush against each other

   1. A `background:` SHORTHAND resets `background-image`. Bootstrap draws the
      select's chevron with a background-image and sets `appearance: none` so the
      browser draws nothing itself. The plugin's `background: var(--acfs-card)`
      therefore removed the only arrow on the control, which is why a dropdown
      did not look like a dropdown. The arrow is now this plugin's own, so it
      cannot be taken away by a theme that styles selects differently either.

   2. Bootstrap gives the select `height: calc(1.5em + .75rem + 2px)` — a FIXED
      38px. With 9.6px of padding top and bottom and a 22.4px line box that is
      41.6px of content in a 38px box, so the bottom of every value was shaved
      off. Fixed heights on a text control are the same mistake as fixed heights
      on a card; there are no more of them on this page.

   3. Settings were separated by a 1px rule and nothing else. Reading a form is
      not the same as reading a table.
   ========================================================================== */

body#page-admin-setting-formatsettingaicourse {
    /* The chevron, drawn here so no theme can remove it. Two colours, because a
       dark #343a40 arrow is invisible on a dark control. */
    --acfs-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23475569' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

@media (prefers-color-scheme: dark) {
    body#page-admin-setting-formatsettingaicourse:not([data-acfs-theme="light"]) {
        --acfs-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23b3c0d1' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    }
}

/* Every control: no fixed height, a real minimum, and room for the arrow. */
body#page-admin-setting-formatsettingaicourse #adminsettings
:is(select, input[type="text"], input[type="password"], input[type="url"], input[type="number"],
textarea) {
    /* stylelint-disable-next-line declaration-no-important -- beats Bootstrap's fixed height. */
    height: auto !important;
    max-block-size: none;
    padding: 0.65rem 0.85rem;
    line-height: 1.45;
    /* ACF-FIX-2.1.167: background-COLOR only, and no background-image here at all.
       This selector uses :is(), and :is() takes the specificity of its most specific argument —
       `input[type="text"]` is an attribute selector, so the whole thing scores (2,1,2) while a plain
       `select` rule scores (2,0,2). A `background-image: none` in this block therefore beat the rule
       that draws the chevron, no matter how far below it sat. That is the same specificity trap that
       made the hero title tiers inert for four releases; it is avoided here by not competing. */
    background-color: var(--acfs-card);
    border: 1px solid var(--acfs-line-strong);
    border-radius: 10px;
}

[dir="rtl"] body#page-admin-setting-formatsettingaicourse #adminsettings select {
    background-position: left 0.85rem center;
}

body#page-admin-setting-formatsettingaicourse #adminsettings select:hover {
    border-color: var(--acfs-brand);
}

/* 2.1.197: the 44px touch-target floor is set HERE rather than in the shared block above, and
   deliberately excludes <textarea>.

   In the shared block it applied to the textarea too, at (2,1,2) -- the :is() there contains
   `input[type="text"]`, whose attribute selector sets the specificity for every branch. The
   textarea's own 8rem below scores (2,0,2) and lost, so the settings textarea rendered 44px tall
   instead of 128px. The comment in that block warns about this exact trap for background-image;
   the same trap was live four declarations further down.

   Splitting the property out means the two rules no longer describe the same element at all, so
   there is nothing left to lose -- no specificity escalation, and nothing for a later reader to
   have to work out. */
body#page-admin-setting-formatsettingaicourse #adminsettings
:is(select, input[type="text"], input[type="password"], input[type="url"], input[type="number"]) {
    /* 44px: no clipping, and a comfortable touch target on a phone. */
    min-block-size: 44px;
}

body#page-admin-setting-formatsettingaicourse #adminsettings textarea {
    min-block-size: 8rem;
}

/* --- Rhythm ---------------------------------------------------------------
   Each setting is its own block of air with a rule between, rather than rows
   packed against a divider. The label group, the control and the description
   are three steps apart, which is what lets the eye find the control without
   reading the prose first. */
body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-body .form-item {
    /* ACF-FIX-2.1.170: 1.35rem, was 1.6. The type and the illustration both went up a step, so the
       row is taller on its own; keeping the old padding on top of that turns the panel into a
       column of widely spaced islands. The divider does the separating. */
    padding-block: 1.35rem;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-body
.form-item:first-of-type {
    padding-block-start: 0.5rem;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .form-label {
    margin-block-end: 0.75rem;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .form-description {
    margin-block-start: 0.85rem;
}

/* "Default:…" moves under the control instead of sitting beside it, where it
   collided with the select on any label long enough to matter. */
body#page-admin-setting-formatsettingaicourse #adminsettings .form-defaultinfo {
    display: block;
    margin-block-start: 0.5rem;
    padding-inline-start: 0.1rem;
}

/* The control gets its own breathing room from the label above it. */
body#page-admin-setting-formatsettingaicourse #adminsettings .form-text,
body#page-admin-setting-formatsettingaicourse #adminsettings .defaultsnext {
    display: block;
    margin-block-start: 0.1rem;
}

/* More air inside the open panel, and above the first setting under the
   preview, so the wireframe is not touching the form. */
.acfs-body {
    padding: 0 1.5rem 1.5rem;
}

.acfs-preview {
    margin-block: 1.25rem 1.5rem;
}

@media (max-width: 599px) {
    .acfs-body {
        padding-inline: 1rem;
    }

    body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-body .form-item {
        padding-block: 1.35rem;
    }
}

/* ==========================================================================
   SETTINGS PAGE — the two-column setting (ACF-FIX-2.1.167)
   --------------------------------------------------------------------------
   The page was given the full width and then used the left half of it: text
   capped at 72ch, controls at 30rem, and an empty column running the whole
   height of the panel. Widening the prose is not the answer — a 1600px line of
   body copy is unreadable — so the empty half gets a job instead.

   Left column: number, label, code name, control, default, description.
   Right column: a wireframe of what this setting does to the course page.

   The illustration is the point. Nearly every setting here is a layout choice,
   and a picture of the layout answers in a glance what a paragraph answers in
   fifteen seconds. It is inline SVG drawn from the same tokens: a few hundred
   bytes, sharp at any zoom, correct in dark mode, and impossible to leave stale
   the way a screenshot would be.

   `force…` settings show the SAME diagram three times, captioned Course 1, 2, 3.
   The default/override distinction is the single most misunderstood thing about
   this plugin; three little courses say "all of them" better than the sentence
   underneath ever has.
   ========================================================================== */

/* One column by default — phones first. The figure sits under the control and
   above the prose, where it introduces the description rather than trailing it. */
body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-body .form-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0 2.5rem;
    align-items: start;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-body .form-label {
    grid-column: 1;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-body .form-setting {
    grid-column: 1;
}

body#page-admin-setting-formatsettingaicourse .acfs-sfig {
    grid-column: 1;
    min-inline-size: 0;
    margin-block-start: 1rem;
}

/* Two columns once there is genuinely room for both. 1080px, not a breakpoint
   borrowed from somewhere else: below it the illustration column would be
   narrower than the diagram is legible at. */
@media (min-width: 1080px) {
    body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-body .form-item {
        /* ACF-FIX-2.1.170: 24rem, was 20. The illustration is the thing on this page that explains
           a setting fastest, and it was the smallest thing on the row -- a 320px picture beside
           573px of prose. The left column still clears the 58ch measure below at every width. */
        grid-template-columns: minmax(0, 1fr) minmax(17rem, 24rem);
    }

    body#page-admin-setting-formatsettingaicourse .acfs-sfig {
        grid-column: 2;
        grid-row: 1 / span 2;
        margin-block-start: 0.35rem;
    }

    /* The prose keeps its own measure inside the wider left column. 58ch at 16px is the same
       physical line length 62ch was at 15px, so the paragraph shape is unchanged by the type
       going up a step -- the words are bigger, the column is not wider. */
    body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-body .form-description {
        max-inline-size: 58ch;
    }
}

/* ACF-FIX-2.1.173: the 1500px tier that widened the illustration to 30rem is gone. It was written
   to soak up empty width on a wide screen, which is treating the symptom -- the page now carries a
   1120px measure (see "The page has a measure" below), so that width never arrives and a 30rem
   wireframe would only push the prose column below its own measure. One cap, one column width. */

/* --- The figure ----------------------------------------------------------- */
.acfs-sfigone {
    margin: 0;
    min-inline-size: 0;
}

body#page-admin-setting-formatsettingaicourse .acfs-sfigone svg {
    display: block;
    inline-size: 100%;
    block-size: auto;
    aspect-ratio: 200 / 112;
    border: 1px solid rgb(var(--c) / 0.18);
    border-radius: 10px;
    background: var(--acfs-sunken);
}

/* ACF-FIX-2.1.167: 13px, not 11. These are the smallest labels on the page and the page has
   already been reported once as hard to read; a caption nobody can read is decoration. */
.acfs-sfigone figcaption {
    margin-block-start: 0.4rem;
    color: var(--acfs-ink-2);
    /* ACF-FIX-2.1.170: 14px, was 13. Up with the rest of the page. */
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-align: center;
}

/* Three courses, side by side. They stay side by side on a phone — the row of
   three IS the message, and stacking them would say "three settings" instead of
   "every course". They simply get smaller. */
body#page-admin-setting-formatsettingaicourse .acfs-sfig-all {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
}

.acfs-sfignote {
    grid-column: 1 / -1;
    margin: 0.45rem 0 0;
    color: rgb(var(--c) / 1);
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.35;
    text-align: center;
}

/* On a phone the single diagram is capped so it stays an illustration rather
   than becoming a full-width picture the reader has to scroll past — but it is
   never hidden. A setting whose meaning is a layout should show the layout on
   the device most people are using. */
@media (max-width: 1079px) {
    /* ACF-FIX-2.1.170: 16rem / 28rem, up from 13 / 24. Both are still capped -- the diagram stays
       an illustration rather than becoming a full-bleed picture -- but at 13rem the single
       wireframe was 208px on a 390px phone and its internal detail was reading as texture. */
    body#page-admin-setting-formatsettingaicourse .acfs-sfig:not(.acfs-sfig-all) {
        max-inline-size: 16rem;
    }

    body#page-admin-setting-formatsettingaicourse .acfs-sfig-all {
        max-inline-size: 28rem;
        gap: 0.4rem;
    }
}

/* --- The number ----------------------------------------------------------
   The panel header promises "7 settings"; this says which of the seven you are
   looking at. Tabular figures so the column does not jitter between 1/7 and
   10/22, and aria-hidden because the count is decoration for a reader who can
   see the list, not information a screen reader needs repeated on every row. */
.acfs-num {
    display: inline-block;
    margin-inline-end: 0.55rem;
    padding: 0.1rem 0.45rem;
    border: 1px solid var(--acfs-line);
    border-radius: 999px;
    background: var(--acfs-sunken);
    color: var(--acfs-ink-2);
    font-size: 0.8125rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    vertical-align: 2px;
}

/* --- The control keeps its chevron at any specificity ---------------------
   `:not([multiple])` is not decoration: it raises this rule to (2,1,2), which is
   what the :is() rules above score, and it is honest — a multi-select is not a
   dropdown and should not be given a dropdown's arrow. */
body#page-admin-setting-formatsettingaicourse #adminsettings select:not([multiple]) {
    /* ACF-FIX-2.1.170: this is now the ONLY place the chevron and its gutter are declared. There
       were two rules for it -- a plain `select` block at (2,0,2) asking for 2.5rem/0.85rem and this
       one at (2,1,2) asking for 2.75rem/0.9rem -- so every edit to the weaker one did nothing, and
       the gutter reduction below was measured as having no effect. Seventh instance in this sheet
       of the same duplicate-declaration trap; the weaker block is deleted rather than corrected.

       2.1rem, not 2.75: a native select does not wrap or ellipsize, it stops mid-word, and on a
       280px panel the longest option here was cut to "...own setti", which reads as a rendering
       fault rather than as truncation. This buys back 11px. It does not fully solve it -- at 360px
       a 32-character option cannot fit a 244px control at a legible size, and shrinking the type
       to force it would trade a visible truncation for an illegible label. */
    padding-inline-end: 2.1rem;
    background-image: var(--acfs-chevron);
    background-repeat: no-repeat;
    background-position: right 0.7rem center;
    background-size: 12px 8px;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

[dir="rtl"] body#page-admin-setting-formatsettingaicourse #adminsettings
select:not([multiple]) {
    background-position: left 0.9rem center;
    padding-inline-end: 0.85rem;
    padding-inline-start: 2.75rem;
}

/* --- The course-index open button stays reachable (ACF-FIX-2.1.167) --------
   Making the banner span the full width when the course index is closed put it
   over the top-left corner of the page - which is exactly where the theme puts the
   button that opens the index again. The banner is `position: sticky` at
   `--acf-z-sticky` (20), so it won not because it was later but because it was
   higher, and the only way back into the course index disappeared underneath it.

   The toggle is lifted above the banner rather than the banner being inset around
   it: a banner that stops short of the corner is not full width, and full width is
   the thing that was asked for. The button carries its own background, so it reads
   perfectly well sitting on top of the image.

   ACF-FIX-2.1.172 - DO NOT ADD `position` TO THIS RULE. Measured, from the live
   activity page, not assumed:

       .drawer-toggles  position: static   (wrapper, parent #topofscroll)
       .drawer-toggler  position: fixed    x 0, y 71, 38x45
       hero             y 61 - 181, full width

   The toggler is FIXED. Two consequences, and two shipped bugs, one from each:

   1. It is already a positioned box, so `z-index` applies to it as it stands. It
      needs nothing else from us. 2.1.167-2.1.170 wrote `position: relative` here
      "so z-index would work", which instead REPLACED `fixed` and dropped the button
      into normal document flow. On an activity page that flow is the banner's own,
      so the button rendered inside the banner beside the nav icons rather than
      pinned at the page edge. That is the "activity page does not match the section page" report.

   2. Removing the position override is correct, but the rule still has to REACH the
      browser. 2.1.171 removed it and simultaneously left a stray comment-close
      sequence in the prose above, which ended the comment early; everything after
      parsed as a selector and this entire rule was discarded. With no z-index the
      fixed button sat under the sticky banner on all three page types. Two separate
      faults, opposite causes, identical symptom - which is why "it is hidden again"
      after a fix that was itself correct.

   Never write the two-character comment-close sequence inside comment prose. The
   gate script at /root/harness/cssvalidate.py fails the build on it now.

   Every selector core and the themes use for this control is listed, because the
   markup has moved between Moodle versions and a control that vanishes is far worse
   than a redundant selector. */
body.format-aicourse :is(
.drawer-toggles,
.drawer-toggler,
[data-toggler="drawers"][data-action="toggle"],
[data-region="drawer-toggle"]) {
    /* One step above --acf-z-sticky (20). Not --acf-z-modal, which a dialogue
       needs to sit above this. NO `position` - see above. */
    z-index: 25;
}

/* Inside the pinned container, where a local stacking context changes no placement.
   The button needs its own z-index because the wrapper is static: a static parent
   creates no stacking context, so the button does not inherit the lift above. */
body.format-aicourse .drawer-toggler .btn,
body.format-aicourse .drawer-toggles .btn {
    position: relative;
    z-index: 25;
}

/* And it must not be clipped by anything the format sets to hide overflow. */
body.format-aicourse :is(.drawer-toggles, [data-region="drawer-toggle"]) {
    overflow: visible;
}

/* --- The activity banner's cluster matches the section banner's (ACF-FIX-2.1.167) ----
   Reported: the controls at the right of an activity banner look bigger than the
   same corner of a section banner, which was called correct.

   Measured against a rendered copy of both, the chevrons ARE identical (46x46)
   and the two ring CONTAINERS are identical (58x58, one token since 2.1.161).
   What differs is what sits inside them:

     section  : chevron + four 36px numbered circles + the percentage ring
     activity : chevron + one completion ring + a 16px text label

   So the activity cluster reads heavier not because anything is out of spec but
   because a single large ring and a line of body-sized text carry more weight
   than four small circles. Matching the SPEC was never going to fix it; matching
   the visual weight is what was actually being asked for.

   The completion ring is brought to 36px — the same as the numbered circles that
   were called perfect — and its label down one step to the size the section
   banner's own meta line uses. The ring's stroke scales with its viewBox, so it
   stays proportionate rather than becoming a thick blob at the smaller size. */
body.format-aicourse .aicourse-hero-banner .aicourse-completion-ring-container {
    inline-size: 2.25rem;   /* 36px, matching .aicourse-activity-number */
    block-size: 2.25rem;
    flex: none;
}

/* ACF-FIX-2.3.1: the container sizes to the grade chip when it is holding one.
   Everywhere else this container wraps the completion RING -- an SVG that fills it -- so it is
   given a fixed square: 36px here, and --acf-hero-ring-image in image mode. A grade chip is not
   square. "85/100" needs 63px, so it overflowed its own container by 13px and came to rest ON
   TOP of the "Required grade" label beside it. Widening the chip alone stopped the text spilling
   out of the chip and left the chip spilling out of the container instead.

   This has to sit AFTER the rule above, not with the other container rules further up the sheet,
   because that is where it was first written and the rule above -- same specificity, later in
   the file -- simply won. The measurement said 36px while the class was present and the
   declaration was served, which is what specificity ties look like from the outside.

   The modifier class comes from the template rather than :has(), so the intent is visible in the
   markup and there is no selector-support question. */
body.format-aicourse .aicourse-ring-container-grade,
body.format-aicourse .aicourse-hero-banner .aicourse-ring-container-grade,
body.format-aicourse .aicourse-hero-has-image .aicourse-ring-container-grade {
    inline-size: auto;
    block-size: auto;
}

body.format-aicourse .aicourse-hero-banner .aicourse-completion-ring {
    inline-size: 100%;
    block-size: 100%;
}

body.format-aicourse .aicourse-hero-banner .aicourse-completion-label {
    font-size: var(--acf-font-size-sm);
    font-weight: var(--acf-weight-medium);
    line-height: var(--acf-leading-snug);
}

/* The grade chip that can replace the tick keeps the same box height, so the cluster does not
   change height depending on whether an activity is graded.
   ACF-FIX-2.3.1: the width is a floor, not a fixed size -- see the base rule. This override
   used to set `min-block-size` alongside it, which could never do anything: the base rule sets
   `block-size` outright, and a minimum cannot shrink a declared size. Replaced with the height
   this cluster actually wants, so the intent and the effect finally agree. */
body.format-aicourse .aicourse-hero-banner .aicourse-grade-display {
    block-size: 2.25rem;
    font-size: var(--acf-font-size-xs);
}

/* ACF-FIX-2.1.186: the floor applies to BOTH clusters, not just the right-hand one.
   The note this replaces said "both clusters end up the same height", and the rule under it set a
   floor on `.aicourse-hero-nav-progress` alone. It was solving the wrong symmetry: it levelled the
   right-hand corner of the ACTIVITY banner with the right-hand corner of the SECTION banner -- two
   different pages, compared from memory -- while leaving the left and right pills of the SAME
   banner 12px apart, which is a comparison the eye makes in a single glance and cannot miss.

   Reported three times as "the right side is bigger". The first two fixes measured the icon
   BUTTONS, found them identical, and declared it done. The buttons were never the problem: the
   panels around them were, and nothing had ever measured those.

   One floor, both clusters, sized to clear the tallest thing either can hold (the course banner's
   progress ring, which is larger than the activity banner's completion ring). Cross-page symmetry
   is preserved because both pages read the same token; same-page symmetry now holds too, because
   the same declaration sets both ends. */
body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image
:is(.aicourse-hero-icons, .aicourse-hero-nav-progress) {
    min-block-size: calc(var(--acf-hero-ring-image) + var(--acf-space-2) + 4px);
    box-sizing: border-box;
}

/* ==========================================================================
   THE BANNER ON A PHONE (ACF-FIX-2.1.169)
   --------------------------------------------------------------------------
   Rendered at 390px and looked at, rather than only checked for overflow. It
   passed every automated test and was still wrong: in image mode the content
   becomes a column, so the title, the progress cluster and the icon group each
   took their own line, each shrink-wrapped to its own contents and left-aligned.
   The result was a tall dark panel with three floating boxes down the left and a
   third of the width empty — nothing overflowed, nothing clipped, and it looked
   unfinished.

   An overflow check cannot see that. This is the fix for what it looked like.

   Two rows, which is what a banner is:
     row 1 — the eyebrow and the title, across the full width
     row 2 — one control strip: the icon group at the start, the progress cluster
             at the end, both on the same line and both reaching the edges

   The banner also comes down in height. --acf-topblock is whatever the sidebar's
   header measures beside it (126px as of 2.3.4) — but on a phone the sidebar is
   not beside anything, so matching it costs a fifth of a small screen for no
   reason at all. This block zeroes the token instead of tracking its value.
   ========================================================================== */

@media (max-width: 599px) {
    /* A row that wraps, not a column. The title takes a full line of its own and
       the two clusters share the next one. */
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-content,
    body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image) .aicourse-hero-content {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: var(--acf-space-3);
        padding: var(--acf-space-4) var(--acf-gutter);
    }

    body.format-aicourse .aicourse-hero-banner
    :is(.aicourse-hero-title-group, .aicourse-hero-lede) {
        flex: 1 1 100%;
        inline-size: 100%;
        min-inline-size: 0;
    }

    /* Icon group first, at the start of the control row. It is absolutely
       positioned on a desktop banner; here it rejoins the flow. */
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-icons {
        position: static;
        flex: 0 0 auto;
        order: 2;
        margin: 0;
        max-inline-size: none;
    }

    /* Progress cluster at the end of the same row. `margin-inline-start: auto`
       pushes it right; `flex-shrink` lets it give way first if a long completion
       label would otherwise force a third row. */
    body.format-aicourse .aicourse-hero-banner .aicourse-hero-nav-progress {
        flex: 0 1 auto;
        order: 3;
        min-inline-size: 0;
        margin-inline-start: auto;
    }

    /* The label is the one part of the cluster that can be long. It gets one line
       and an ellipsis rather than wrapping the whole strip onto another row. */
    body.format-aicourse .aicourse-hero-banner .aicourse-completion-label {
        min-inline-size: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    /* Height: a floor that suits a phone, not one borrowed from the sidebar. */
    body.format-aicourse .aicourse-hero-banner {
        min-block-size: 0;
    }

    body.format-aicourse .aicourse-hero-sticky-wrap {
        --acf-topblock: 0px;
    }

    /* The title is the reason the banner exists; it keeps its two lines. */
    body.format-aicourse .aicourse-hero-banner.aicourse-hero-has-image .aicourse-hero-title {
        -webkit-line-clamp: 2;
        line-clamp: 2;
    }

    /* Chevrons and icon buttons come down a step. 40px still clears the WCAG 2.2
       AA target minimum of 24px comfortably, and three of them plus a ring have
       to share 390px with the progress cluster. */
    body.format-aicourse .aicourse-hero-banner
    :is(.aicourse-hero-nav, .aicourse-hero-home, .aicourse-hero-grades, .aicourse-hero-back,
    .aicourse-hero-ai-btn) {
        inline-size: 40px;
        block-size: 40px;
        min-inline-size: 40px;
        min-block-size: 40px;
    }
}

/* The activity banner carries one more icon (Back) and a text label the course
   banner does not have, so at 390px its control row wanted a third line. The
   label is the part that can go: the tick beside it already says the same thing,
   and it keeps its accessible name for anyone who cannot see the tick. */
@media (max-width: 519px) {
    body.format-aicourse .aicourse-hero-banner .aicourse-completion-label {
        position: absolute;
        inline-size: 1px;
        block-size: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
        border: 0;
    }

    body.format-aicourse .aicourse-hero-banner
    :is(.aicourse-hero-nav, .aicourse-hero-home, .aicourse-hero-grades, .aicourse-hero-back,
    .aicourse-hero-ai-btn) {
        inline-size: 36px;
        block-size: 36px;
        min-inline-size: 36px;
        min-block-size: 36px;
    }

    body.format-aicourse .aicourse-hero-banner
    :is(.aicourse-hero-icons, .aicourse-hero-nav-progress) {
        gap: 2px;
        padding: 3px;
    }
}

/* Consistent vertical rhythm down the page: search, then the introduction, then the caption, then
   the list. Each was spaced by whichever rule happened to set it, which is why one gap read as
   deliberate and the next as a mistake. */
body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-controls {
    margin-block: 0.75rem 1.25rem;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-intro {
    margin-block: 0 1.25rem;
}

body#page-admin-setting-formatsettingaicourse #adminsettings .acfs-list {
    margin-block: 0 2.5rem;
}

/* --- The page has a measure, not just a width (ACF-FIX-2.1.173) -------------
   Reported from the live page: a large empty band running down the middle of every
   setting, between the end of the prose and the start of the illustration.

   The cause is that this page had no maximum width at all. "Use the full width,left aligned" was the instruction and it was taken literally, so on a wide theme
   container the row stretched to ~1700px while its two occupants did not: the prose
   stops at its 58ch measure because a 1700px line of body copy is unreadable, and
   the illustration stops at its own cap because a wireframe blown up to 600px is
   just a big rectangle. Neither should grow, so all the extra width went into the
   gap between them. Widening the two to close the gap would fix the emptiness by
   making both elements worse.

   The row is given a maximum instead, computed from what actually has to fit
   rather than picked to look right at one screen size:

       prose measure  58ch at 16px .................  ~570px
       column gap  2.5rem .........................     40px
       illustration  24rem ........................    384px
       panel body padding  2 x 1.5rem .............     48px
       accent rail + borders ......................     ~6px
       ------------------------------------------------------
                                                      ~1048px

   1120px leaves a little slack for a wider default font without the gap reopening.
   Left aligned, so it stays where it was rather than centring into a new position.

   Applied to every top-level block so they share one left edge and one right edge;
   capping only the list would leave the search field and the intro running wider
   than the panels beneath them, which reads as a mistake rather than as a measure. */
body#page-admin-setting-formatsettingaicourse #adminsettings :is(
.acfs-controls,
.acfs-intro,
.acfs-hint,
.acfs-list,
.acfs-save) {
    max-inline-size: 1120px;
    margin-inline-end: auto;
}

/* ==========================================================================
   2.1.191
   ========================================================================== */

/* --- Hero progress ring: cannot be crushed, cannot be invisible -----------
   Reported against Moodle 5.2.2: the banner showed the progress BAR and the
   "0%" text with no ring around the number, on both the course home and the
   section page. Two failure modes produce exactly that picture and only one
   of them was already guarded against, so both are closed here.

   1. SIZE. The ring is an absolutely-positioned SVG filling its container,
      so a container collapsed to nothing takes the ring with it while the
      percentage text -- which sizes itself -- carries on rendering. This
      plugin has crushed its own rings twice before with icon-sizing rules
      that matched a wrapper the ring happens to live inside, and a host
      theme can do the same thing from outside. A floor on the container and
      on the SVG makes that impossible rather than merely unlikely.

   2. CONTRAST. The track circle carries an inline stroke of rgba(0,0,0,0.1)
      as its presentation attribute. Over a dark banner photograph that is
      invisible, and at 0% the fill arc is zero-length -- so the whole ring
      disappears. The stylesheet already sets a light track for banners with
      an image; this repeats it at a specificity nothing in a theme is likely
      to beat, and gives the no-image case a floor too. Presentation
      attributes lose to any declaration, so these win wherever the
      stylesheet is loaded at all.

   The templates were changed in the same release so the inline attribute is
   itself a visible colour: that is the state a site sees if this stylesheet
   is stale in its cache, which is the one condition CSS cannot fix. */
body.format-aicourse .aicourse-progress-ring-container {
    min-inline-size: var(--acf-ring-inline);
    min-block-size: var(--acf-ring-inline);
}

body.format-aicourse .aicourse-hero-banner .aicourse-progress-ring-container {
    min-inline-size: var(--acf-hero-ring-image);
    min-block-size: var(--acf-hero-ring-image);
}

/* The SVG itself is deliberately NOT given a size floor. In image mode it is inset 4px inside the
   container (rule at ~10833, which is more specific than anything written here and wins), so a
   min-inline-size of 100% would make a 100%-wide SVG start 4px in and overflow the panel by 4px on
   the trailing edge. The container's floor above is what keeps the ring from being crushed; the
   SVG is `inset`-positioned and follows it. */

body.format-aicourse .aicourse-hero-banner .aicourse-progress-ring-bg {
    stroke: var(--acf-track-media);
}

body.format-aicourse .aicourse-hero-banner:not(.aicourse-hero-has-image) .aicourse-progress-ring-bg {
    stroke: var(--acf-track);
}

/* --- Course index row height ---------------------------------------------
   Reported as looking cramped. The two row types are raised by DIFFERENT
   mechanisms, because they are built differently and treating them alike
   would have broken one of them:

   * A section band's height is set outright by --acf-index-band-height (34px
     since 2.1.153), with its padding deliberately at zero -- the comment on
     that token says so. Adding padding here would have stacked on top of the
     explicit height rather than replacing it, giving a 58px band from a 34px
     one. The token is raised instead, which is the single number that
     rule exists to expose.

   * An activity row has no explicit height; it is padding plus its line box.
     3px a side takes it from ~38px to ~44px, which is also the WCAG 2.2
     SC 2.5.8 target size, so the row stops being a near-miss on that as well.

   Both are appended rather than edited in place so the reasoning at the
   original sites stays readable, and both sit later in the file than every
   rule they need to beat -- checked, not assumed: the section band is set at
   10866 and the row's padding shorthand at 10047. */
body.aicourse-player-on {
    --acf-index-band-height: 44px;
}

body.aicourse-player-on .courseindex-item.aicourse-player-row {
    padding-block: 10px;
}

/* --- Site footer: themes that do not use core's own footer element --------
   2.1.191. The hide-footer feature has existed since 2.1.50, but its selector list was
   `#page-footer, .footer-popover` -- core's markup, and theme_academi's. A site running a theme
   that renders its own <footer> outside #page kept its copyright band with the setting on, which
   reads as the setting being broken rather than as the selector missing a case.

   The classes and the :not() guards are the ones the original rule established and are unchanged:
   this widens WHAT is matched, not WHO it is hidden from, and edit mode is still exempt so a
   teacher never loses the sticky bulk-action bar. `.stickyfooter` remains deliberately unmatched
   for that same reason.

   `body > footer` cannot be written inside the descendant list -- it would ask for a <body> inside
   a <body> -- so the direct-child case is its own rule below.

   FIX-ACF-MODAL-FOOTER (2.1.202): `[data-region="footer"]` is NOT ours. Core's modal template
   emits its button row as `<div class="modal-footer" data-region="footer">`, so this descendant
   selector reached inside every core save/cancel dialog on the page and computed its footer to
   display:none -- buttons present in the DOM, fully wired, invisible. A confirmation dialog that
   cannot be confirmed or cancelled.

   Reported against mod_contentcreator, whose "Reset & Start Over" dialog became unreachable, but
   nothing about it was specific to that plugin: every core ModalSaveCancel on these pages was
   affected.

   The `:not(.editing)` guards did not save it. Moodle does not add the `editing` body class on an
   activity's view page even with edit mode switched on, so an activity page is exactly where the
   rule applied and exactly where the dialogs live.

   (That sentence originally wrote the path as mod-slash-star-slash-view.php. The star-slash
   closed this comment early and silently swallowed the rule below it -- the harness caught it
   because the "before" run had failed in specific rows and the "after" run failed in different
   ones. Never write a glob containing a star followed by a slash inside a CSS comment.)

   `:not(.modal-footer)` is the narrowest fix that keeps the case the attribute was added for --
   a theme rendering its page footer as `[data-region="footer"]`, which may be a <div> and so
   cannot simply be narrowed to `footer[data-region="footer"]`. Core always pairs the attribute
   with the class on a modal, never on a page footer. */
body.format-aicourse.aicourse-hidefooter-all:not(.editing):not(.editingon):not(.editing-mode)
:is(footer#page-footer, .footer-dark, .footer-light, [data-region="footer"]:not(.modal-footer), #page > footer,
footer[role="contentinfo"]),
body.format-aicourse.aicourse-hidefooter-students:not(.aicourse-is-grader):not(.editing):not(.editingon):not(.editing-mode)
:is(footer#page-footer, .footer-dark, .footer-light, [data-region="footer"]:not(.modal-footer), #page > footer,
footer[role="contentinfo"]) {
    display: none;
}

body.format-aicourse.aicourse-hidefooter-all:not(.editing):not(.editingon):not(.editing-mode) > footer,
body.format-aicourse.aicourse-hidefooter-students:not(.aicourse-is-grader):not(.editing):not(.editingon):not(.editing-mode)
> footer {
    display: none;
}

/* --- AI banner modal: the teacher's own prompt detail ---------------------
   2.1.191. The modal is a dark surface, and a textarea left to the browser's
   defaults renders white-on-white inside it -- the field looked like a hole
   punched in the card. Every colour is therefore stated rather than
   inherited, including the placeholder, which browsers derive from their own
   default rather than from `color`.

   Sized in rows plus a min-block-size rather than a fixed height so the field
   grows with the user's own text size, and resize is limited to the block
   axis: a horizontally resizable field inside a fixed-width dialog can be
   dragged past the card's edge. */
body.format-aicourse .aicourse-bgen-extra {
    margin-block-end: var(--acf-space-5);
}

body.format-aicourse .aicourse-bgen-extra-label {
    display: block;
    margin-block-end: var(--acf-space-2);
    font-size: var(--acf-font-size-sm);
    font-weight: var(--acf-weight-semibold);
    color: var(--acf-inverse-text);
}

body.format-aicourse .aicourse-bgen-extra-input {
    display: block;
    inline-size: 100%;
    min-block-size: 4.5rem;
    box-sizing: border-box;
    padding: var(--acf-space-3);
    border: 1px solid var(--acf-ai-border);
    border-radius: var(--acf-radius-lg);
    background: var(--acf-inverse-ai-wash);
    color: var(--acf-inverse-text);
    font-family: inherit;
    font-size: var(--acf-font-size-md);
    line-height: var(--acf-leading-relaxed);
    resize: vertical;
}

body.format-aicourse .aicourse-bgen-extra-input::placeholder {
    color: var(--acf-inverse-text-muted);
    opacity: 1;
}

body.format-aicourse .aicourse-bgen-extra-input:focus-visible {
    outline: 2px solid var(--acf-ai-400);
    outline-offset: 2px;
    border-color: var(--acf-ai-400);
}

body.format-aicourse .aicourse-bgen-extra-hint {
    margin: var(--acf-space-2) 0 0;
    font-size: var(--acf-font-size-xs);
    line-height: var(--acf-leading-normal);
    color: var(--acf-inverse-text-muted);
}

/* --- Logo band: themes whose band is their own navbar ---------------------
   2.1.192. The immersive rules matched `.header-main, #page-header` -- core's markup, checked
   against theme_academi at the time for the elements it shares with core. theme_academi renders
   the band the setting is actually about somewhere else entirely: its own

       <nav class="navbar navbar-light bg-faded navbar-expand">
         <a class="navbar-brand has-logo">...</a>
         <div class="primary-navigation">Dashboard / My courses / Site administration</div>
       </nav>

   which the old selector never touched, so the setting appeared to do nothing on that theme.

   `.navbar` on its own is far too blunt to hide: on Boost the element with that class carries the
   user menu, the notification and message popovers and the drawer toggles, and hiding it would
   take a student's way of logging out. The two :not(:has()) guards are what make this safe rather
   than lucky -- they say "a navbar that is ONLY a logo and a nav", which is precisely the thing
   the setting exists to remove, and they exclude every toolbar that carries controls by testing
   for the controls themselves rather than by naming themes.

   Requiring a brand keeps it from matching a bare secondary nav; the plugin's own hero panel
   already offers Home and My courses, so nothing here is a learner's only route anywhere.

   :has() is unsupported only on engines older than every browser Moodle 4.4 targets, and there
   the rule simply does not apply -- the band stays, which is the previous behaviour. */
body.format-aicourse.aicourse-hidelogoband-all:not(.editing):not(.editingon):not(.editing-mode)
nav.navbar:has(.navbar-brand):not(:has(.usermenu)):not(:has(#user-menu-toggle)):not(:has([data-region="drawer-toggle"])):not(:has(.editmode-switch-form)),
body.format-aicourse.aicourse-hidelogoband-students:not(.aicourse-is-grader):not(.editing):not(.editingon):not(.editing-mode)
nav.navbar:has(.navbar-brand):not(:has(.usermenu)):not(:has(#user-menu-toggle)):not(:has([data-region="drawer-toggle"])):not(:has(.editmode-switch-form)) {
    /* stylelint-disable-next-line declaration-no-important */
    display: none !important;
}

/* --- Footer: themes whose footer is a DIV, not a <footer> -----------------
   2.1.193/2.1.194. theme_academi emits

       <div id="footer">
         <div class="footer-bottom"><p>Copyright ... </p></div>      <- the visible band
         <div data-region="footer-container-popover">...</div>       <- the "?" button
         <div class="footer-content-popover">...</div>               <- the popover's contents
       </div>

   Every selector added in 2.1.191 missed it, and the reason is worth writing down: they all
   assumed the element was a <footer> (or core's #page-footer). This one is a plain div with an
   id, so `footer[role="contentinfo"]`, `#page > footer` and `body > footer` could none of them
   match. Checking against core's markup and one other theme was not enough.

   2.1.193 hid only `.footer-bottom`, holding back from the container because the popover inside it
   carries "You are logged in as ... (Log out)". 2.1.194 takes the whole thing, which was asked for
   and is safe on the evidence: that popover is a SECOND route to logging out, not the only one --
   the primary is the user menu in the site header, which this plugin never touches. Nothing in the
   footer is a learner's sole route anywhere.

   Hiding the container does not disturb the page's JavaScript. Moodle emits every queued script
   inside that popover, and `display: none` has no bearing on whether a script runs -- scripts
   execute when the parser reaches them, long before style is applied to their container. Verified
   rather than assumed: /root/harness/footband.js asserts the modules inside still execute.

   `.stickyfooter` is still deliberately unmatched, and edit mode is still exempt, so a teacher
   never loses the bulk-action bar. */
body.format-aicourse.aicourse-hidefooter-all:not(.editing):not(.editingon):not(.editing-mode)
:is(#footer, #page-footer),
body.format-aicourse.aicourse-hidefooter-students:not(.aicourse-is-grader):not(.editing):not(.editingon):not(.editing-mode)
:is(#footer, #page-footer) {
    display: none;
}

/* ==========================================================================
   2.4.0 — THE COLLAPSIBLE TOP BAND

   The band is the hero banner and, in merged course index mode, the drawer header beside it.
   Collapsing is one body class, aicourse-hero-collapsed, written into the <body> tag server-side
   (see \format_aicourse\local\herocollapse) so a page whose band is shut never paints it open
   first. The JavaScript only toggles the class on click.

   Three things have to give way for the band to actually reach zero, and missing any one of them
   leaves a stubborn strip behind:

     1. --acf-topblock, the shared token. On its own this only removes the FLOOR -- the banner
        would still be as tall as its own contents.
     2. An explicit block-size: 0 on the banner, which its existing overflow: hidden then clips.
     3. The drawer header's padding. It is box-sizing: border-box with 12px/24px of padding, so
        block-size: 0 alone still renders a 36px strip -- the padding is the height.

   The handle is NOT hidden with the band; it is the way back.
   ========================================================================== */

body.format-aicourse.aicourse-hero-collapsed {
    --acf-topblock: 0px;
}

/* The banner. The second selector is deliberately more specific than image mode's own
   `.aicourse-hero-banner.aicourse-hero-has-image` rule rather than merely later than it: at equal
   specificity this would be decided by file order alone, which is how the 2.3.1 chip fix came to
   need relocating. Stated once, it wins in both modes wherever it sits. */
body.format-aicourse.aicourse-hero-collapsed .aicourse-hero-banner,
body.format-aicourse.aicourse-hero-collapsed .aicourse-hero-banner.aicourse-hero-has-image {
    block-size: 0;
    min-block-size: 0;
    border-block: 0;
    box-shadow: none;
    /* Taken out of the accessibility tree as well as hidden: a collapsed banner's title and
       progress ring should not still be read out, and its links should not still be tab stops. */
    visibility: hidden;
}

/* The drawer header beside it. Higher specificity than the rule that sizes it
   (body.aicourse-player-on .aicourse-player-header), so the two stay level when shut just as
   they do when open. */
body.aicourse-player-on.aicourse-hero-collapsed .aicourse-player-header {
    block-size: 0;
    min-block-size: 0;
    padding-block: 0;
    border-block: 0;
    overflow: hidden;
    visibility: hidden;
}

/* --- The handle ---------------------------------------------------------

   One control, centred, in both states -- it never moves horizontally, so the click target is
   where the user last left it.

   Expanded, it is pulled up onto the banner's bottom edge by exactly its own height, so the
   handle costs the band nothing. That negative margin is undone when collapsed, where there is
   no banner left to sit on and the pull would drag it up behind the page furniture.

   48x24 rather than something daintier because 24x24 CSS pixels is the WCAG 2.2 minimum target
   size, and a control whose whole job is to be clickable should not be the one that fails it. */
body.format-aicourse .aicourse-hero-collapse {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    inline-size: 48px;
    block-size: 24px;
    margin-inline: auto;
    /* Pulled up by exactly its own height, so the handle costs the expanded band nothing. */
    margin-block-start: -24px;
    padding: 0;
    border: 1px solid var(--acf-hero-border, rgba(2, 6, 23, 0.18));
    border-radius: var(--acf-radius-pill, 999px);
    /* One appearance in both states, not two. The handle sits on a light page when the band is
       shut and on the banner -- which may be a dark photograph -- when it is open, so it carries
       its own opaque surface and border rather than borrowing either background. Styling the two
       states differently was tried and read as two different controls. */
    background: var(--acf-surface-raised);
    color: var(--acf-text-secondary, #475569);
    box-shadow: var(--acf-elevation-1, 0 1px 2px rgba(2, 6, 23, 0.16));
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

body.format-aicourse .aicourse-hero-collapse:hover,
body.format-aicourse .aicourse-hero-collapse:focus-visible {
    background: var(--acf-surface-2, #f1f5f9);
    color: var(--acf-text-primary, #0f172a);
}

body.format-aicourse .aicourse-hero-collapse-icon {
    display: block;
    transition: transform 0.18s ease;
}

/* Collapsed: back into the flow. The negative pull is undone -- there is no banner left to sit
   on, and keeping it would drag the handle up under the site navigation -- and a few pixels of
   clearance stop the pill reading as something clipped by the top of the page. */
body.format-aicourse.aicourse-hero-collapsed .aicourse-hero-collapse {
    margin-block-start: var(--acf-space-1, 4px);
}

/* The chevron points the way the band will move: up to close it, down to bring it back. */
body.format-aicourse.aicourse-hero-collapsed .aicourse-hero-collapse-icon {
    transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce) {

    body.format-aicourse .aicourse-hero-collapse,
    body.format-aicourse .aicourse-hero-collapse-icon {
        transition: none;
    }
}

/* ==========================================================================
   2.5.0  THE CARD COMPONENT (.acf-card)
   --------------------------------------------------------------------------
   Section cards (course home) and activity cards (section pages) are one
   component with two sizes. It replaces the card styles above: every class
   here starts with "acf-", which no earlier rule selects, so nothing from
   the previous twelve releases of card rules reaches it and nothing here
   needs to out-bid them. Behaviour hooks are data attributes.

   Anatomy
     .acf-card            the surface: white, 1px hairline, 16px radius
       .acf-media         16:9, inset 6px, 12px radius
         .acf-media__img    the teacher's picture or the AI image
         .acf-media__panel  no image: a field of the card colour carrying the
                            label and title in large type (the approved "A")
         .acf-status        on the image, only for In progress / Completed
         .acf-tools         edit mode: upload, AI image, colour, remove
       .acf-card__body    label, title, summary, meta, progress, action

   The card colour is --acf-card-c: the teacher's choice (inline, validated
   hex) or the course accent. No text is smaller than 13px.
   ========================================================================== */

body.format-aicourse .acf-cards {
    container-type: inline-size;
    container-name: acf-cardarea;
}

body.format-aicourse .acf-toolbar {
    display: flex;
    justify-content: flex-end;
    margin-block-end: 16px;
}

/* --- Grids ------------------------------------------------------------------ */

body.format-aicourse .acf-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    align-items: stretch;
    margin: 0;
    padding: 0;
    list-style: none;
}

@container acf-cardarea (min-width: 580px) {
    body.format-aicourse .acf-grid--sections {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@container acf-cardarea (min-width: 960px) {
    body.format-aicourse .acf-grid--sections {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 24px;
    }
}

body.format-aicourse .acf-grid--activities {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
}

body.format-aicourse.aicourse-cardlist .acf-grid--sections {
    grid-template-columns: minmax(0, 1fr);
}

/* --- The surface --------------------------------------------------------------- */

body.format-aicourse .acf-card {
    --acf-card-c: var(--acf-card-colour, var(--acf-brand));
    --acf-card-radius: 16px;
    --acf-card-inset: 6px;
    position: relative;
    display: flex;
    flex-direction: column;
    min-inline-size: 0;
    margin: 0;
    padding: 0;
    color: var(--acf-text-primary);
    text-align: start;
    text-decoration: none;
    background: var(--acf-surface-card);
    border: 1px solid var(--acf-border-default);
    border-radius: var(--acf-card-radius);
    box-shadow: 0 1px 2px rgba(14, 23, 38, .04), 0 1px 3px rgba(14, 23, 38, .06);
    transition:
        transform .3s cubic-bezier(.2, .8, .2, 1),
        box-shadow .3s cubic-bezier(.2, .8, .2, 1),
        border-color .3s ease;
}

body.format-aicourse .acf-card:hover {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--acf-card-c) 22%, var(--acf-border-default));
    box-shadow: 0 2px 4px rgba(14, 23, 38, .04), 0 16px 32px -12px rgba(14, 23, 38, .20);
    color: var(--acf-text-primary);
    text-decoration: none;
}

body.format-aicourse .acf-card:focus-within,
body.format-aicourse a.acf-card:focus-visible {
    border-color: var(--acf-focus-color);
    outline: none;
}

body.format-aicourse a.acf-card:focus-visible {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--acf-focus-color) 35%, transparent);
}

body.format-aicourse.editing .acf-card:hover {
    transform: none;
}

/* Hidden from students: dimmed, as core dims a hidden section. */
body.format-aicourse .acf-card.is-hidden .acf-media,
body.format-aicourse .acf-card.is-hidden .acf-card__body {
    opacity: .55;
}

/* Core's drag and drop states. */
body.format-aicourse .acf-card.dragging {
    opacity: .5;
}

body.format-aicourse .acf-card.dropzone,
body.format-aicourse .acf-card.drop-up,
body.format-aicourse .acf-card.drop-down {
    border-color: var(--acf-focus-color);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--acf-focus-color) 40%, transparent);
}

body.format-aicourse .acf-card.selected {
    border-color: var(--acf-focus-color);
    box-shadow: 0 0 0 2px var(--acf-focus-color);
}

/* --- Media ---------------------------------------------------------------------- */

body.format-aicourse .acf-media {
    position: relative;
    flex: 0 0 auto;
    aspect-ratio: 16 / 9;
    margin: var(--acf-card-inset) var(--acf-card-inset) 0;
    overflow: hidden;
    border-radius: calc(var(--acf-card-radius) - 4px);
    background: var(--acf-card-c);
    isolation: isolate;
}

/* A hairline inside the edge, so a pale photograph keeps its shape on a white card. */
body.format-aicourse .acf-media::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    border-radius: inherit;
    box-shadow: inset 0 0 0 1px rgba(14, 23, 38, .08);
    pointer-events: none;
}

body.format-aicourse .acf-media__img {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: block;
    inline-size: 100%;
    max-inline-size: none;
    block-size: 100%;
    object-fit: cover;
    transition: transform .6s cubic-bezier(.2, .8, .2, 1);
}

body.format-aicourse .acf-card:hover .acf-media__img {
    transform: scale(1.03);
}

/* The panel: a clean field of the card colour carrying the card's own label and title. It is
   always in the markup and hidden while an image is shown, so edit mode switches in place. */
body.format-aicourse .acf-media__panel {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 18px 18px;
    color: #fff;
    background:
        linear-gradient(
            160deg,
            color-mix(in srgb, var(--acf-card-c) 88%, #fff) 0%,
            var(--acf-card-c) 55%,
            color-mix(in srgb, var(--acf-card-c) 86%, #000) 100%
        );
}

body.format-aicourse .acf-media--image .acf-media__panel {
    display: none;
}

body.format-aicourse .acf-media__top {
    display: flex;
    align-items: center;
    gap: 10px;
    min-block-size: 34px;
}

body.format-aicourse .acf-media__icon {
    display: grid;
    flex: none;
    place-items: center;
    inline-size: 34px;
    block-size: 34px;
    border-radius: 10px;
    background: rgba(255, 255, 255, .16);
}

body.format-aicourse .acf-media__icon svg,
body.format-aicourse .acf-media__icon img {
    inline-size: 18px;
    block-size: 18px;
}

body.format-aicourse .acf-media__icon img {
    filter: brightness(0) invert(1);
}

body.format-aicourse .acf-media__eyebrow {
    font-size: .8125rem;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: .06em;
    text-transform: uppercase;
    opacity: .85;
}

body.format-aicourse .acf-media__title {
    display: -webkit-box;
    overflow: hidden;
    font-size: 1.4375rem;
    font-weight: 650;
    line-height: 1.2;
    letter-spacing: -.018em;
    text-wrap: balance;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

body.format-aicourse .acf-card--activity .acf-media__title {
    font-size: 1.25rem;
}

/* A light custom colour takes dark text, decided server side and by the colour picker. */
body.format-aicourse .acf-media--light .acf-media__panel {
    color: #0e1726;
}

body.format-aicourse .acf-media--light .acf-media__icon {
    background: rgba(14, 23, 38, .08);
}

body.format-aicourse .acf-media--light .acf-media__icon img {
    filter: brightness(0);
}

/* Status: on the image, top left; in the panel, top right. Only In progress and Completed. */
body.format-aicourse .acf-status {
    position: absolute;
    inset-block-start: 10px;
    inset-inline-start: 10px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px 5px 8px;
    border-radius: 999px;
    font-size: .8125rem;
    font-weight: 600;
    line-height: 1.2;
    color: #0e1726;
    background: rgba(255, 255, 255, .92);
    -webkit-backdrop-filter: blur(10px) saturate(150%);
    backdrop-filter: blur(10px) saturate(150%);
    box-shadow: 0 2px 8px -2px rgba(14, 23, 38, .2);
}

body.format-aicourse .acf-media:not(.acf-media--image) .acf-status {
    inset-block-start: 16px;
    inset-inline: auto 16px;
}

body.format-aicourse .acf-status svg {
    inline-size: 14px;
    block-size: 14px;
    color: var(--acf-status-done-solid);
}

body.format-aicourse .acf-status__dot {
    inline-size: 8px;
    block-size: 8px;
    border-radius: 50%;
    background: var(--acf-brand);
}

/* --- Edit-mode tools on the image ----------------------------------------------- */

body.format-aicourse .acf-tools {
    position: absolute;
    inset-block-end: 10px;
    inset-inline-end: 10px;
    z-index: 5;
    display: flex;
    gap: 2px;
    padding: 3px;
    border-radius: 12px;
    background: rgba(255, 255, 255, .94);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    box-shadow: 0 6px 18px -6px rgba(14, 23, 38, .35), 0 0 0 1px rgba(14, 23, 38, .06);
}

body.format-aicourse .acf-tools__btn {
    display: grid;
    place-items: center;
    inline-size: 36px;
    block-size: 36px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 9px;
    color: #0e1726;
    background: transparent;
    cursor: pointer;
    transition: background-color .15s ease;
}

body.format-aicourse .acf-tools__btn svg {
    inline-size: 17px;
    block-size: 17px;
}

body.format-aicourse .acf-tools__btn:hover {
    background: rgba(14, 23, 38, .07);
}

body.format-aicourse .acf-tools__btn:focus-visible {
    outline: 2px solid var(--acf-focus-color);
    outline-offset: 1px;
}

body.format-aicourse .acf-tools__btn[hidden] {
    display: none;
}

body.format-aicourse .acf-tools__btn:disabled {
    opacity: .4;
    cursor: default;
}

body.format-aicourse .acf-tools__btn--ai {
    color: #6b3fd6;
}

body.format-aicourse .acf-tools__btn--remove:hover {
    color: #b42318;
    background: rgba(180, 35, 24, .08);
}

/* Keep the panel title clear of the tools while editing. */
body.format-aicourse .acf-media:has(.acf-tools):not(.acf-media--image) .acf-media__title {
    padding-inline-end: 150px;
}

body.format-aicourse .acf-media__busy {
    position: absolute;
    inset: 0;
    z-index: 6;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px;
    text-align: center;
    font-size: .875rem;
    font-weight: 600;
    color: #fff;
    background: rgba(14, 23, 38, .64);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
}

body.format-aicourse .acf-media__busy[hidden] {
    display: none;
}

body.format-aicourse .acf-media__spinner {
    inline-size: 26px;
    block-size: 26px;
    border: 3px solid rgba(255, 255, 255, .3);
    border-block-start-color: #fff;
    border-radius: 50%;
    animation: acf-spin .9s linear infinite;
}

@keyframes acf-spin {
    to {
        transform: rotate(360deg);
    }
}

/* --- Section admin buttons (edit mode), over the image top right ---------------- */

body.format-aicourse .acf-card__admin {
    position: absolute;
    inset-block-start: 16px;
    inset-inline-end: 16px;
    z-index: 6;
    display: flex;
    gap: 2px;
    padding: 3px;
    border-radius: 12px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 6px 18px -6px rgba(14, 23, 38, .35), 0 0 0 1px rgba(14, 23, 38, .06);
}

body.format-aicourse .acf-card__adminbtn {
    display: grid;
    place-items: center;
    inline-size: 32px;
    block-size: 32px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 8px;
    color: #3d4757;
    background: transparent;
    cursor: pointer;
}

body.format-aicourse .acf-card__adminbtn svg {
    inline-size: 16px;
    block-size: 16px;
}

body.format-aicourse .acf-card__adminbtn:hover {
    color: #0e1726;
    background: rgba(14, 23, 38, .07);
}

body.format-aicourse .acf-card__adminbtn--danger:hover {
    color: #b42318;
    background: rgba(180, 35, 24, .08);
}

body.format-aicourse .acf-card__adminbtn:focus-visible {
    outline: 2px solid var(--acf-focus-color);
    outline-offset: 1px;
}

body.format-aicourse .acf-card__adminbtn[data-action="moveSection"] {
    cursor: grab;
}

/* The status chip moves down when the admin bar sits over the panel's top right. */
body.format-aicourse .acf-card:has(.acf-card__admin) .acf-media:not(.acf-media--image) .acf-status {
    inset-block-start: 56px;
}

body.format-aicourse .acf-card__bulk {
    position: absolute;
    inset-block-start: 16px;
    inset-inline-start: 16px;
    z-index: 6;
}

/* --- Body --------------------------------------------------------------------------- */

body.format-aicourse .acf-card__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 6px;
    min-inline-size: 0;
    padding: 16px 18px 18px;
}

body.format-aicourse .acf-card--activity .acf-card__body {
    padding: 14px 16px 16px;
}

body.format-aicourse .acf-card__eyebrow {
    font-size: .8125rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--acf-text-tertiary);
}

body.format-aicourse .acf-card__link,
body.format-aicourse .acf-card__link:hover,
body.format-aicourse .acf-card__link:focus {
    display: block;
    color: inherit;
    text-decoration: none;
}

/* The title link covers the whole card, so the card is one click target. */
body.format-aicourse .acf-card__link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 4;
    border-radius: var(--acf-card-radius);
}

body.format-aicourse .acf-card__link:focus-visible {
    outline: none;
}

body.format-aicourse .acf-card__link:focus-visible::after {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--acf-focus-color) 45%, transparent);
}

/* Anything else interactive inside a section card sits above that link. */
body.format-aicourse .acf-card--section .acf-list {
    position: relative;
    z-index: 5;
}

body.format-aicourse .acf-card__title {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    padding: 0;
    font-family: inherit;
    font-size: 1.1875rem;
    font-weight: 650;
    line-height: 1.3;
    letter-spacing: -.012em;
    color: var(--acf-text-primary);
    text-wrap: balance;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

body.format-aicourse .acf-card--activity .acf-card__title {
    font-size: 1.0625rem;
}

body.format-aicourse .acf-card:hover .acf-card__title {
    color: color-mix(in srgb, var(--acf-card-c) 65%, var(--acf-text-primary));
}

body.format-aicourse .acf-card__summary {
    display: -webkit-box;
    overflow: hidden;
    margin: 2px 0 0;
    font-size: .9375rem;
    line-height: 1.5;
    color: var(--acf-text-secondary);
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

body.format-aicourse .acf-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 14px;
    margin-block-start: 6px;
    font-size: .875rem;
    line-height: 1.4;
    color: var(--acf-text-tertiary);
}

body.format-aicourse .acf-card__metaitem {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

body.format-aicourse .acf-card__metaitem svg,
body.format-aicourse .acf-card__typeicon {
    flex: none;
    inline-size: 16px;
    block-size: 16px;
}

body.format-aicourse .acf-card__typeicon {
    opacity: .75;
}

/* With no image the panel already carries the label and title: the body drops its copies from
   view. The title stays in the page for assistive technology, and its link still covers the card. */
body.format-aicourse .acf-card--noimage .acf-card__eyebrow {
    display: none;
}

body.format-aicourse .acf-card--noimage .acf-card__title {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

body.format-aicourse .acf-card--noimage .acf-card__summary,
body.format-aicourse .acf-card--noimage .acf-card__meta {
    margin-block-start: 0;
}

body.format-aicourse.aicourse-notime-sectioncards .acf-card--section .acf-card__time,
body.format-aicourse.aicourse-notime-activitycards .acf-card--activity .acf-card__time {
    display: none;
}

/* --- Optional activity list ("Show activities on cards") ---------------------- */

body.format-aicourse .acf-list {
    display: grid;
    gap: 2px;
    margin: 10px 0 0;
    padding: 0;
    list-style: none;
}

body.format-aicourse .acf-list__link,
body.format-aicourse .acf-list__more {
    display: flex;
    align-items: center;
    gap: 10px;
    min-block-size: 36px;
    padding: 6px 8px;
    margin-inline: -8px;
    border-radius: 8px;
    font-size: .9375rem;
    color: var(--acf-text-secondary);
    text-decoration: none;
}

body.format-aicourse .acf-list__link:hover,
body.format-aicourse .acf-list__more:hover {
    color: var(--acf-text-primary);
    background: var(--acf-surface-muted);
    text-decoration: none;
}

body.format-aicourse .acf-list__icon {
    flex: none;
    inline-size: 18px;
    block-size: 18px;
}

body.format-aicourse .acf-list__name {
    flex: 1 1 auto;
    min-inline-size: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.format-aicourse .acf-list__time {
    flex: none;
    font-size: .8125rem;
    color: var(--acf-text-tertiary);
    font-variant-numeric: tabular-nums;
}

body.format-aicourse .acf-list__state {
    flex: none;
    inline-size: 10px;
    block-size: 10px;
    border: 2px solid var(--acf-border-strong, #94a3b8);
    border-radius: 50%;
}

body.format-aicourse .acf-list__state--in_progress {
    border-color: var(--acf-brand);
    background: linear-gradient(90deg, var(--acf-brand) 50%, transparent 50%);
}

body.format-aicourse .acf-list__state--completed {
    border-color: var(--acf-status-done-solid);
    background: var(--acf-status-done-solid);
}

/* --- Footer: progress and the one action ------------------------------------------ */

body.format-aicourse .acf-card__foot {
    display: grid;
    gap: 12px;
    margin-block-start: auto;
    padding-block-start: 16px;
}

body.format-aicourse .acf-progress {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
}

body.format-aicourse .acf-progress__track {
    display: block;
    block-size: 6px;
    overflow: hidden;
    border-radius: 999px;
    background: color-mix(in srgb, var(--acf-card-c) 10%, var(--acf-surface-muted));
}

body.format-aicourse .acf-progress__fill {
    display: block;
    block-size: 100%;
    border-radius: inherit;
    background: var(--acf-card-c);
    transition: width 1.2s cubic-bezier(.2, .8, .2, 1);
}

body.format-aicourse .acf-card--complete .acf-progress__fill {
    background: var(--acf-status-done-solid);
}

body.format-aicourse .acf-progress__count {
    font-size: .875rem;
    font-weight: 600;
    color: var(--acf-text-secondary);
    font-variant-numeric: tabular-nums;
}

body.format-aicourse .acf-card__cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-block-start: 12px;
    border-block-start: 1px solid var(--acf-border-default);
    font-size: .875rem;
    color: var(--acf-text-tertiary);
}

body.format-aicourse .acf-card__action {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-inline-start: auto;
    font-size: .9375rem;
    font-weight: 600;
    color: color-mix(in srgb, var(--acf-card-c) 80%, var(--acf-text-primary));
}

body.format-aicourse .acf-card__action svg {
    inline-size: 16px;
    block-size: 16px;
    transition: transform .25s cubic-bezier(.2, .8, .2, 1);
}

body.format-aicourse .acf-card:hover .acf-card__action svg {
    transform: translateX(3px);
}

body.format-aicourse .acf-card__action--review {
    color: var(--acf-status-done-fg);
}

/* --- List layout: image on the left ------------------------------------------------- */

@container acf-cardarea (min-width: 600px) {
    body.format-aicourse.aicourse-cardlist .acf-card--section {
        flex-direction: row;
    }

    body.format-aicourse.aicourse-cardlist .acf-card--section .acf-media {
        inline-size: clamp(200px, 30%, 320px);
        aspect-ratio: auto;
        min-block-size: 170px;
        margin: var(--acf-card-inset) 0 var(--acf-card-inset) var(--acf-card-inset);
    }

    body.format-aicourse.aicourse-cardlist .acf-card--section .acf-card__body {
        padding: 18px 22px;
    }
}

/* --- Add section ---------------------------------------------------------------------- */

body.format-aicourse .acf-card--add {
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-block-size: 220px;
    border: 1.5px dashed var(--acf-border-strong, #cbd5e1);
    font-size: .9375rem;
    font-weight: 600;
    color: var(--acf-text-secondary);
    background: transparent;
    box-shadow: none;
    cursor: pointer;
}

body.format-aicourse .acf-card--add:hover {
    color: var(--acf-text-primary);
    border-color: var(--acf-brand);
    background: color-mix(in srgb, var(--acf-brand) 4%, transparent);
    box-shadow: none;
}

body.format-aicourse .acf-card--add:focus-visible {
    outline: 2px solid var(--acf-focus-color);
    outline-offset: 2px;
}

body.format-aicourse .acf-card__addicon {
    display: grid;
    place-items: center;
    inline-size: 40px;
    block-size: 40px;
    border-radius: 12px;
    background: var(--acf-surface-muted);
}

body.format-aicourse .acf-card__addicon svg {
    inline-size: 20px;
    block-size: 20px;
}

body.format-aicourse .acf-card--add[data-loading] {
    opacity: .6;
    cursor: progress;
}

/* --- Empty section ---------------------------------------------------------------------- */

body.format-aicourse .acf-empty {
    display: grid;
    justify-items: center;
    gap: 10px;
    padding: 48px 16px;
    text-align: center;
    font-size: .9375rem;
    color: var(--acf-text-secondary);
    border: 1.5px dashed var(--acf-border-default);
    border-radius: 16px;
}

body.format-aicourse .acf-empty svg {
    inline-size: 40px;
    block-size: 40px;
    opacity: .45;
}

body.format-aicourse .acf-contentrow {
    margin-block-start: 20px;
}

/* --- Buttons used around the cards ------------------------------------------------------ */

body.format-aicourse .acf-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-block-size: 40px;
    padding: 0 16px;
    border: 1px solid var(--acf-border-default);
    border-radius: 10px;
    font-size: .9375rem;
    font-weight: 600;
    color: var(--acf-text-primary);
    background: var(--acf-surface-card);
    cursor: pointer;
}

body.format-aicourse .acf-btn svg {
    inline-size: 16px;
    block-size: 16px;
}

body.format-aicourse .acf-btn--ai {
    border-color: rgba(107, 63, 214, .3);
    color: #5b2fc4;
    background: #f3eefe;
}

body.format-aicourse .acf-btn--ai:hover {
    background: #ebe3fd;
}

body.format-aicourse .acf-btn:focus-visible {
    outline: 2px solid var(--acf-focus-color);
    outline-offset: 2px;
}

/* --- Phone -------------------------------------------------------------------------------- */

@media (max-width: 575.98px) {
    body.format-aicourse .acf-grid {
        gap: 16px;
    }

    body.format-aicourse .acf-grid--activities {
        grid-template-columns: minmax(0, 1fr);
    }

    body.format-aicourse .acf-tools__btn {
        inline-size: 40px;
        block-size: 40px;
    }

    body.format-aicourse .acf-card__adminbtn {
        inline-size: 36px;
        block-size: 36px;
    }

    body.format-aicourse .acf-toolbar .acf-btn {
        inline-size: 100%;
        justify-content: center;
    }
}

/* --- Dark mode: the surfaces come from the plugin's tokens; only the shadows change ------- */

body.format-aicourse[data-bs-theme="dark"] .acf-card,
[data-bs-theme="dark"] body.format-aicourse .acf-card,
body.format-aicourse.dark-mode .acf-card {
    box-shadow: 0 1px 2px rgba(0, 0, 0, .4);
}

body.format-aicourse[data-bs-theme="dark"] .acf-btn--ai,
[data-bs-theme="dark"] body.format-aicourse .acf-btn--ai,
body.format-aicourse.dark-mode .acf-btn--ai {
    color: #c9b6ff;
    background: rgba(107, 63, 214, .22);
}

/* --- Motion and contrast preferences ------------------------------------------------------ */

@media (prefers-reduced-motion: reduce) {
    body.format-aicourse .acf-card,
    body.format-aicourse .acf-card:hover,
    body.format-aicourse .acf-media__img,
    body.format-aicourse .acf-card:hover .acf-media__img,
    body.format-aicourse .acf-card__action svg,
    body.format-aicourse .acf-progress__fill {
        transform: none;
        transition: none;
    }

    body.format-aicourse .acf-media__spinner {
        animation-duration: 2.4s;
    }
}

@media (forced-colors: active) {
    body.format-aicourse .acf-card {
        border-color: CanvasText;
    }

    body.format-aicourse .acf-media__panel {
        border: 1px solid CanvasText;
    }
}

/* --- Edit-mode dialogues and the activity-row image strip (core modals, class-led) --------- */

.aicourse-cardimage-dialog .aicourse-cardimage-for {
    margin: 0 0 12px;
    font-weight: 600;
}

.aicourse-cardimage-dialog .aicourse-cardimage-meta,
.aicourse-cardimage-dialog .aicourse-cardimage-summary {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px;
    margin: 14px 0 0;
    padding: 10px 12px;
    border-radius: 10px;
    font-size: .875rem;
    background: rgba(107, 63, 214, .08);
}

.aicourse-cardimage-dialog .aicourse-cardimage-cost,
.aicourse-cardimage-dialog .aicourse-cardimage-summary {
    font-weight: 700;
    color: #5b2fc4;
}

.aicourse-cardimage-dialog .aicourse-cardcolour-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
    margin-block: 8px 14px;
}

.aicourse-cardimage-dialog .aicourse-cardcolour-option {
    position: relative;
    display: block;
    margin: 0;
    cursor: pointer;
}

.aicourse-cardimage-dialog .aicourse-cardcolour-input {
    position: absolute;
    inset: 0;
    inline-size: 100%;
    block-size: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
}

.aicourse-cardimage-dialog .aicourse-cardcolour-swatch {
    display: grid;
    place-items: center;
    aspect-ratio: 1;
    border-radius: 10px;
    font-size: .75rem;
    font-weight: 600;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .12);
}

.aicourse-cardimage-dialog .aicourse-cardcolour-default {
    color: #475467;
    background: #fff;
    box-shadow: inset 0 0 0 1px #d0d5dd;
}

.aicourse-cardimage-dialog .aicourse-cardcolour-input:checked + .aicourse-cardcolour-swatch {
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px #0e1726;
}

.aicourse-cardimage-dialog .aicourse-cardcolour-input:focus-visible + .aicourse-cardcolour-swatch {
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--bs-primary, #0f6cbf);
}

.aicourse-cardimage-dialog .aicourse-cardcolour-customrow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 0;
    padding-block-start: 14px;
    border-block-start: 1px solid #e4e7ec;
    font-size: .9375rem;
    font-weight: 600;
}

.aicourse-cardimage-dialog .aicourse-cardcolour-custom {
    inline-size: 48px;
    block-size: 34px;
    padding: 0;
    border: 1px solid #d0d5dd;
    border-radius: 8px;
    background: none;
}

.aicourse-cardimage-dialog .aicourse-cardimage-fieldset {
    margin-block-end: 10px;
}

.aicourse-cardimage-dialog .aicourse-cardimage-fieldset legend {
    float: none;
    inline-size: auto;
    margin-block-end: 6px;
    font-size: 1rem;
    font-weight: 600;
}

.aicourse-cardimage-dialog .aicourse-cardimage-radio {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 6px;
    font-size: .9375rem;
}

/* The card image dialog for an activity (3.0.0). While editing, Moodle's activity list stays as
   Moodle draws it; the image tools open from the activity's own menu into this dialog: a preview
   drawn like the real card, then the four tools with their names written out. */
body.format-aicourse .acf-cmdialog {
    --acf-card-c: var(--acf-card-colour, var(--acf-brand));
    display: grid;
    gap: 16px;
}

body.format-aicourse .acf-cmdialog .acf-media {
    margin: 0;
    border-radius: 12px;
}

body.format-aicourse .acf-cmdialog__tools {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

body.format-aicourse .acf-cmdialog__tool.acf-tools__btn {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    inline-size: auto;
    block-size: auto;
    min-block-size: 56px;
    padding: 10px 14px;
    border: 1px solid var(--acf-border-default);
    border-radius: 12px;
    color: var(--acf-text-primary);
    background: var(--acf-surface-raised);
    text-align: start;
}

body.format-aicourse .acf-cmdialog__tool.acf-tools__btn:hover {
    border-color: var(--acf-border-strong);
    background: var(--acf-surface-muted);
}

body.format-aicourse .acf-cmdialog__tool svg {
    flex: none;
    inline-size: 20px;
    block-size: 20px;
}

body.format-aicourse .acf-cmdialog__words {
    display: grid;
    gap: 2px;
}

body.format-aicourse .acf-cmdialog__label {
    font-size: .9375rem;
    font-weight: 600;
    line-height: 1.3;
}

body.format-aicourse .acf-cmdialog__hint {
    font-size: .8125rem;
    line-height: 1.35;
    color: var(--acf-text-secondary);
}

body.format-aicourse .acf-cmdialog__tool.acf-tools__btn--ai .acf-cmdialog__label {
    color: #6b3fd6;
}

@media (max-width: 575.98px) {
    body.format-aicourse .acf-cmdialog__tools {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* While editing, the image area rises above the card's stretched title link so its tools can be
   clicked; the link still covers the body. */
body.format-aicourse .acf-card--section .acf-media:has(.acf-tools) {
    z-index: 5;
}

.format-singleactivity .tree_item.orphaned a {
    color: red;
}

/* CSS Document */

#benchmark h3 {
    border: 1px solid #ddd;
    width: 450px;
    margin: 20px auto 30px auto;
    padding: 10px 0;
    border-radius: 4px;
    background: #f5f5f5;
    text-align: center;
}

#benchmark h3 span {
    color: #0a0;
}

#benchmark h5 {
    margin-top: 16px;
    font-size: 14px;
}

#benchmark .continuebutton a.btn {
    margin: 0 10px 10px 10px;
}

#benchmarkresult td {
    vertical-align: middle;
}

#benchmarkresult td.success {
    background-color: #dff0d8;
}
#benchmarkresult td.warning {
    background-color: #fcf8e3;
}
#benchmarkresult td.danger {
    background-color: #f2dede;
}

#benchmarkresult .cell.c1 small {
    color: #888;
}

#benchmarkresult .cell.c0,
#benchmarkresult .footer {
    font-weight: bold;
}
#benchmarkresult .c0,
#benchmarkresult .c2,
#benchmarkresult .c3,
#benchmarkresult .c4 {
    text-align: center;
}

#benchmarkresult .footer td {
    background-color: #fff;
}
#benchmarkresult .footer .cell.c0 {
    text-align: right;
}
#benchmarkresult .footer .cell.c1 {
    text-align: center;
}

@media (max-width: 500px) {
    #benchmark h3 {
        font-size: 20px;
        width: 348px;
    }
}

#page-report-completion-index table#completion-progress {
    margin-top: 20px;
    margin-bottom: 30px;
}

#page-report-completion-index .export-actions {
    text-align: center;
    list-style: none;
}

#page-report-completion-index .criterianame,
#page-report-completion-index .criteriaicon,
#page-report-completion-index .completion-progresscell {
    text-align: center;
}

/* Custom CSS for rotated header.. */
#page-report-completion-index .rotated-text-container {
    display: inline-block;
    width: 16px;
}

/*rtl:begin:ignore*/
#page-report-completion-index .rotated-text {
    display: inline-block;
    white-space: nowrap;

    transform: translate(0, 100%) rotate(-90deg);
    transform-origin: 0 0;
    vertical-align: middle;
}

#page-report-completion-index .rotated-text:after {
    content: "";
    float: left;
    margin-top: 100%;
}
/*rtl:end:ignore*/
.report-eventlist-name {
    color: #888;
    font-size: 0.75em;
}

.report-eventlist-datatable-table > div > table {
    width: 100%;
}

#page-admin-report-eventlist-index dt {
    float: left;
    text-align: right;
    width: 20em;
}

#page-admin-report-eventlist-index dd {
    display: block;
    text-align: left;
    margin-left: 21em;
}

#page-admin-report-eventlist-index dd + dd {
    clear: left;
}

@media (max-width: 767px) {
    #page-admin-report-eventlist-index dt {
        width: 100%;
        text-align: left;
    }

    #page-admin-report-eventlist-index dd {
        margin-left: 0;
    }

    #page-admin-report-eventlist-index dd + dd {
        margin-left: 0;
    }
}

/* Reports block */
.lmsace-reports-body .navbar.navbar-expand-lg .navbar-collapse {
    display: none !important; /* stylelint-disable-line declaration-no-important */
}
#page-local-lmsace_reports-index #page #page-content #region-main {
    padding: 0;
    border: 0;
    overflow: visible;
}
.lmsace-reports-body .reports-block {
    margin-top: 25px;
}
.lmsace-reports-body .reports-block .info-block {
    padding: 30px;
    margin-bottom: 40px;
}
.lmsace-reports-body .reports-block .info-block h2 {
    font-size: 26px;
    font-weight: bold;
    margin-bottom: 20px;
}
.lmsace-reports-body .reports-block .info-block .title-block {
    width: 46%;
    display: inline-block;
    vertical-align: middle;
}
.lmsace-reports-body .reports-block .info-block .right-block {
    width: 53%;
    display: inline-block;
}
.lmsace-reports-body .reports-block .info-block .right-block .progress {
    width: 61%;
    display: inline-block;
    margin-right: 10px;
}
.lmsace-reports-body .reports-block .info-block .right-block .btn-block {
    width: auto;
    display: inline-block;
}
.lmsace-reports-body .reports-block .info-block .right-block .btn-block a {
    height: 40px;
    line-height: 40px;
    text-align: center;
    border-radius: 5px;
    padding: 0 15px;
    display: inline-block;
}
.lmsace-reports-body .reports-block .nav-tabs {
    text-align: right;
    display: block;
}
.lmsace-reports-body .reports-block h3 {
    font-size: 30px;
    font-weight: bold;
    float: left;
}
.lmsace-reports-body .reports-block .tab-element > h3 {
    float: none;
}
.lmsace-reports-body .reports-block .nav-tabs .nav-item {
    display: inline-block;
}
.lmsace-reports-body .reports-block .nav-tabs .nav-item .nav-link {
    font-size: 18px;
    font-weight: bold;
    background: none;
    border: 0;
    border-bottom: 2px solid transparent;
    padding-bottom: 15px;
}
.lmsace-reports-body .reports-block .nav-tabs .nav-item .nav-link.active {
    margin-bottom: -1px;
}
.lmsace-reports-body .reports-block .nav-tabs .nav-item .nav-link.active,
.lmsace-reports-body .reports-block .nav-tabs .nav-link.active:not(:disabled):not(.disabled):active,
.lmsace-reports-body .reports-block .nav-tabs .nav-link.active:not(:disabled):not(.disabled).active,
.lmsace-reports-body .reports-block .show > .nav-tabs .nav-link.active.dropdown-toggle,
.lmsace-reports-body .reports-block .nav-pills .nav-link.active:not(:disabled):not(.disabled):active,
.lmsace-reports-body .reports-block .nav-pills .nav-link.active:not(:disabled):not(.disabled).active,
.lmsace-reports-body .reports-block .show > .nav-pills .nav-link.active.dropdown-toggle,
.lmsace-reports-body .reports-block .nav-tabs .nav-link.active:not(:disabled):not(.disabled):active:focus,
.lmsace-reports-body .reports-block .nav-tabs .nav-link.active:not(:disabled):not(.disabled).active:focus,
.lmsace-reports-body .reports-block .show > .nav-tabs .nav-link.active.dropdown-toggle:focus,
.lmsace-reports-body .reports-block .nav-pills .nav-link.active:not(:disabled):not(.disabled):active:focus,
.lmsace-reports-body .reports-block .nav-pills .nav-link.active:not(:disabled):not(.disabled).active:focus,
.lmsace-reports-body .reports-block .show > .nav-pills .nav-link.active.dropdown-toggle:focus {
    border-bottom-color: #999;
    background: none;
    box-shadow: none;
}
.lmsace-reports-body .reports-block .tab-content {
    margin-top: 40px;
    clear: both;
}
.lmsace-reports-body .reports-block .lmsace-reports.count-block {
    background-color: #e9edf4;
    padding: 30px 20px;
    border-radius: 5px;
}
.lmsace-reports-body .reports-block .tab-content .row .col-md-6,
.lmsace-reports-body .reports-block .tab-content .row .col-md-12 {
    margin-bottom: 30px;
}
.lmsace-reports-body .reports-block .tab-content .row .block-report {
    height: 100%;
    padding: 20px;
    border-radius: 5px;
    border: 1px solid #ebf0f9;
    box-shadow: 0 13px 37px rgba(92, 107, 121, 0.1);
}
.lmsace-reports-body .reports-block .tab-content .row .col-md-6 .main-panel {
    height: 100%;
}
.lmsace-reports-body .reports-block .tab-content .high-score-course-block {
    padding: 15px;
    border-radius: 5px;
}
.lmsace-reports-body .reports-block .tab-content .header-panel {
    margin-bottom: 20px;
}
.lmsace-reports-body .reports-block .tab-content .heading-block {
    margin-bottom: 0;
    display: inline-block;
    vertical-align: middle;
}
.lmsace-reports-body .reports-block .tab-content .filter-block {
    float: right;
}
.lmsace-reports-body .reports-block .tab-content .filter-block .dropdown .dropdown-menu {
    left: auto !important; /* stylelint-disable-line declaration-no-important */
    right: 0;
}
.lmsace-reports-body .reports-block .tab-content .filter-block a {
    font-size: 14px;
    border-color: transparent;
}
.lmsace-reports-body .reports-block .tab-content .filter-block a.dropdown-toggle {
    color: #333;
    background: none;
}
.lmsace-reports-body .reports-block .tab-content .heading-block h5 {
    font-size: 18px;
    /* text-transform: capitalize; */
    display: inline-block;
    vertical-align: middle;
    margin-bottom: 0;
}
.lmsace-reports-body .reports-block .tab-content .heading-block .filter-block {
    float: right;
}
.lmsace-reports-body .reports-block .tab-content .heading-block .filter-block .dropdown a {
    background: none;
    border: 0;
}
.lmsace-reports-body .reports-block .tab-content .heading-block .filter-block .dropdown .dropdown-menu {
    left: auto !important; /* stylelint-disable-line declaration-no-important */
    right: 0;
}
.lmsace-reports-body .reports-block .tab-content .report-element .enrol-block {
    padding: 15px;
    margin-bottom: 30px;
    border-radius: 5px;
}
.lmsace-reports-body .reports-block .tab-content .report-element img {
    width: 100%;
    height: auto;
}
.lmsace-reports.count-block {
    margin-bottom: 50px;
}
.lmsace-reports.count-block ul {
    padding-left: 0;
    display: flex;
    margin: 0;
}
.lmsace-reports.count-block ul li {
    width: 100%;
    text-align: center;
    margin-right: 20px;
    list-style: none;
    background: #fff;
    padding: 20px;
    border-radius: 10px;
}
.lmsace-reports-body .reports-block .lmsace-reports.count-block li a {
    color: inherit;
}
.lmsace-reports.count-block ul li:last-child {
    margin-right: 0;
}
.lmsace-reports.count-block ul li a,
.lmsace-reports.count-block ul li span {
    font-size: 26px;
    text-decoration: none;
}
.lmsace-reports.count-block ul li span:hover {
    color: #333;
}

.lmsace-reports.count-block ul li i {
    font-size: 20px;
    /* display: block; */
    margin-bottom: 10px;
    background: rgb(251 7 7 / 70%);
    color: #fff;
    padding: 10px;
    border-radius: 10px;
}
.lmsace-reports.count-block ul li a span {
    font-size: 17px;
    text-transform: capitalize;
    display: block;
    font-weight: 500;
    color: #595858;
}

.lmsace-reports.count-block ul li a span b {
    display: block;
    color: #141414;
    font-size: 22px;
}

/*User report*/

.lmsace-reports-body .reports-block .tab-element .tab-content .course-report-block .course-block,
.lmsace-reports-body .reports-block .tab-element .tab-content .user-report-block > .user-block {
    display: flex;
    margin-bottom: 50px;
    justify-content: center;
}
.lmsace-reports-body .reports-block .tab-element .tab-content .user-report-block .user-detail .username {
    margin-bottom: 15px;
}
.lmsace-reports-body .reports-block .tab-element .tab-content .user-report-block .user-detail .username a {
    margin-right: 5px;
}
.lmsace-reports-body .reports-block .tab-element .tab-content .user-report-block .user-detail .username .user-block {
    display: inline-block;
    vertical-align: middle;
}

.lmsace-reports-body .reports-block .tab-element .tab-content .course-report-block .course-block .bsearch,
.lmsace-reports-body .reports-block .tab-element .tab-content .user-report-block .user-block .bsearch {
    max-width: 560px;
    text-align: left;
    display: inline-block;
    vertical-align: middle;
}
.lmsace-reports-body .reports-block .tab-element .tab-content .course-report-block .course-block .bsearch form select,
.lmsace-reports-body .reports-block .tab-element .tab-content .user-report-block .user-block .bsearch form select {
    max-width: 450px;
    height: 40px;
    color: #999;
    border-color: #ccc;
    border-radius: 3px;
    background: none;
    padding: 0 5px;
}
.lmsace-reports-body .reports-block .tab-element .tab-content .course-report-block .course-block .bsearch form button,
.lmsace-reports-body .reports-block .tab-element .tab-content .user-report-block .user-block .bsearch form button {
    height: 40px;
    vertical-align: top;
    margin-left: 10px;
}
.lmsace-reports-body .reports-block .tab-element .tab-content .course-report-block .course-block .bsearch form input[type="text"],
.lmsace-reports-body .reports-block .tab-element .tab-content .user-report-block .user-block .bsearch form input[type="text"] {
    max-width: 360px;
    width: 100%;
    border-radius: 5px;
}
.lmsace-reports-body .reports-block .tab-element .tab-content .course-report-block .course-block .bsearch form input[type="submit"],
.lmsace-reports-body .reports-block .tab-element .tab-content .user-report-block .user-block .bsearch form input[type="submit"] {
    max-width: 150px;
    width: 100%;
    height: 40px;
    border-radius: 5px;
}

.lmsace-reports-body .reports-block .tab-element .tab-content .user-report-block .row .col-md-6 .body-panel > div > div {
    display: inline-block;
    margin-right: 10px;
}

.lmsace-reports-body .reports-block .tab-element .tab-content .user-report-block .row .col-md-6 .body-panel > div > div span {
    font-size: 16px;
    color: #333;
    margin-right: 10px;
    margin-bottom: 10px;
    display: inline-block;
}
.lmsace-reports-body .reports-block .tab-element .tab-content .user-report-block .row .col-md-6 .body-panel > div > div span b {
    font-weight: 500;
}
.lmsace-reports-body .reports-block .tab-element .tab-content .user-report-block .row .col-md-6 .body-panel > div > div i {
    margin-right: 5px;
}
.lmsace-reports-body .reports-block .tab-element
.tab-content .user-report-block .row .col-md-6 .body-panel > div > div span:first-child {
    color: #999;
    margin-right: 5px;
}
/*Course report*/
.lmsace-reports-body .reports-block .tab-element .tab-content .course-report-block .info-count-block {
    padding: 15px 10px;
    margin-bottom: 50px;
    border-radius: 5px;
}
.lmsace-reports-body .reports-block .tab-element .tab-content .course-report-block .info-count-block ul {
    padding-left: 0;
    display: flex;
    margin: 0;
}
.lmsace-reports-body .reports-block .tab-element .tab-content .course-report-block .info-count-block ul li {
    width: 100%;
    text-align: center;
    list-style: none;
}
.lmsace-reports-body .reports-block .tab-element .tab-content .course-report-block .info-count-block ul li:last-child {
    border: 0;
}
.lmsace-reports-body .reports-block .tab-element .tab-content .course-report-block .info-count-block ul li span {
    display: block;
}

@media (max-width: 767px) {
    .lmsace-reports-body .reports-block .nav-tabs {
        background: none;
    }
    .lmsace-reports-body .reports-block .lmsace-reports.count-block ul {
        text-align: center;
        display: block;
        margin-bottom: 0;
    }
    .lmsace-reports-body .reports-block .lmsace-reports.count-block ul li {
        width: auto;
        display: inline-block;
        margin-left: 30px;
        margin-bottom: 30px;
    }
    .lmsace-reports-body .reports-block .tab-content .active-user-block .table-block .table {
        margin-bottom: 0;
    }
    .lmsace-reports-body .reports-block .tab-content .active-user-block .table-block .table tr:last-child td {
        padding-bottom: 0;
    }
    .lmsace-reports-body .reports-block .tab-element .tab-content .course-report-block .course-block span {
        margin-bottom: 15px;
        display: inline-block;
    }
    .lmsace-reports-body .reports-block .tab-element .tab-content
    .course-report-block .course-block .bsearch form input[type="text"] {
        margin-bottom: 15px;
    }
    .lmsace-reports-body .reports-block .tab-element .tab-content .course-report-block .course-block {
        margin-bottom: 30px;
    }
    .lmsace-reports-body .reports-block .tab-element .tab-content .course-report-block .info-count-block {
        border: 0;
    }
    .lmsace-reports-body .reports-block .tab-content .heading-block h5 {
        margin-bottom: 0;
    }
    .lmsace-reports-body .reports-block .tab-element .tab-content .course-report-block .info-count-block ul {
        text-align: center;
        display: block;
    }
    .lmsace-reports-body .reports-block .tab-element .tab-content .course-report-block .info-count-block ul li {
        width: auto;
        padding: 15px;
        display: inline-block;
        border-radius: 3px;
        margin-bottom: 20px;
    }
}

.report-lmsace-selector .form-inline,
.report-lmsace-selector .form-inline #fitem_id_courseinfo,
.report-lmsace-selector .form-inline #fitem_id_userinfo {
    align-items: flex-end;
    width: 65%;
}

.report-lmsace-selector .form-inline #id_userinfo_label,
.report-lmsace-selector .form-inline #id_courseinfo_label {
    padding-bottom: 10px;
}

.lmsace-reports-body #site-info-reports tbody tr td:nth-child(2) {
    font-weight: 600;
}

.lmsace-reports-body p.noresult {
    text-align: center;
    margin-top: 15%;
    margin-bottom: 15%;
}

.lmsace-reports-body .nav-item.refresh-button {
    float: left;
}

.lmsace-reports.count-block ul li:nth-child(6) i {
    background: rgba(27, 58, 95, 0.7);
}
.lmsace-reports.count-block ul li:nth-child(7) i {
    background: rgba(48, 190, 207, 0.7);
}
.lmsace-reports.count-block ul li:nth-child(4) i {
    background: rgba(239, 77, 97, 0.7);
}
.lmsace-reports.count-block ul li:nth-child(5) i {
    background: rgba(251, 178, 24, 0.7);
}
.lmsace-reports.count-block ul li:nth-child(8) i {
    background: rgba(165, 165, 165, 0.7);
}
.lmsace-reports.count-block ul li:nth-child(3) i {
    background: rgba(12, 203, 150, 0.7);
}
.lmsace-reports.count-block ul li:nth-child(2) i {
    background: rgba(153, 102, 255, 0.7);
}
.lmsace-reports.count-block ul li:nth-child(1) i {
    background: rgba(57, 155, 226, 0.7);
}

/* Course module grade */
/* Move the assignment section downwards */
.lmsace-reports-body .course-module-assignment-grade {
    margin-top: 30px;
}
/* Padding for both assignment and quiz */
.lmsace-reports-body .course-module-assignment-grade,
.lmsace-reports-body .course-module-quiz-grade {
    padding: 10px;
    margin-top: 0;
}
.lmsace-reports-body .course-module-assignment-grade > div:nth-child(1),
.lmsace-reports-body .course-module-quiz-grade > div:nth-child(1) {
    margin-left: 0;
    color: #000;
    font-size: 1.1em;
    margin-bottom: 19px;
}
.lmsace-reports-body .course-module-assignment-grade > div,
.lmsace-reports-body .course-module-quiz-grade > div {
    margin-bottom: 10px;
    color: #666;
    margin-left: 25px;
}
.lmsace-reports-body .course-module-assignment-grade > div:nth-child(1) span i,
.lmsace-reports-body .course-module-quiz-grade > div:nth-child(1) span i {
    margin-right: 5px;
}

.lmsace-reports-body .nav-item.refresh-button.position-absolute {
    top: -50px;
    right: 0;
}

#page-report-log-index .info {
    margin: 10px;
}

#page-report-log-index .logselectform {
    margin: 10px auto;
}

#page-report-log-user .info {
    margin: 10px;
    text-align: center;
}

#page-report-loglive-index .info {
    margin: 10px;
}

table.flexible > tbody > tr:nth-child(n).newrow > td {
    background: #d4d4d4;
}
#page-report-outline-user table tr td {
    padding: 10px 3px;
    min-width: 20px;
}

#page-report-outline-user .subsection .icon {
    padding-left: 10px;
}

#page-report-participation-index .participationselectform {
    margin: 10px auto;
}

#page-report-participation-index .participationselectform label {
    margin-left: 15px;
    margin-right: 5px;
}

/* Die to css conflicts with form-inline, we have to create a specific class to fix submit button alignment on clean */
#page-report-participation-index .participationselectform input[type="submit"] {
    margin-bottom: 0;
}

#page-report-progress-index #completion-progress th,
#page-report-progress-index #completion-progress td {
    padding: 2px 2px;
    font-weight: normal;
    border-right: 1px solid #eee;
}

#page-report-progress-index .progress-actions {
    text-align: center;
    list-style: none;
}

#page-report-progress-index .completion_pagingbar {
    margin: 1em 0;
    text-align: center;
}

#page-report-progress-index .completion_prev {
    display: inline;
    margin-right: 2em;
}

#page-report-progress-index .completion_pagingbar p {
    display: inline;
}

#page-report-progress-index .completion_next {
    display: inline;
    margin-left: 2em;
}

#page-report-progress-index .completion-header,
#page-report-progress-index .completion-progresscell {
    text-align: center;
}

/* Custom CSS for rotated header.. */
#page-report-progress-index .rotated-text-container {
    display: inline-block;
    width: 16px;
}

#page-report-progress-index .rotated-text {
    display: inline-block;
    white-space: nowrap;
    /*rtl:remove*/
    transform: translate(0, 100%) rotate(-90deg);
    /*rtl:raw:
    transform: translate(0, 100%) rotate(90deg);
    */
    transform-origin: 0 0;
    vertical-align: middle;
}

#page-report-progress-index .rotated-text:after {
    content: "";
    float: left;
    margin-top: 100%;
}

#page-report-progress-index .modicon {
    padding-top: 5px;
}
#completion-progress .icon {
    margin-left: 0.5rem;
}

#page-report-stats-index .graph {
    margin-bottom: 1em;
}

.checklist_export_options {
    width: 800px;
    margin: 0 auto;
}

.checklist_export_options label {
    width: 200px;
    text-align: right;
    display: inline-block;
}
/**
 * Styles for the CoIFish grade report plugin.
 *
 * @package    gradereport_coifish
 * @copyright  2026 South African Theological Seminary (ict@sats.ac.za)
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

/* Grade Tracker report styles. */

.gradereport-coifish .gradeoverview-category-header {
    border-bottom: 2px solid #dee2e6;
    padding-bottom: 0.5rem;
    font-size: 1.1rem;
}

.gradereport-coifish .gradeoverview-weight-badge {
    background-color: #0d553f;
    color: #fff;
}

.gradereport-coifish .gradeoverview-coursetotal {
    font-size: 1.05em;
}

.gradereport-coifish .text-muted td,
.gradereport-coifish tr.text-muted td {
    color: #495057;
    font-style: italic;
}

.gradereport-coifish .gradeoverview-category td a {
    text-decoration: none;
    color: #0d553f;
    font-weight: 500;
}

.gradereport-coifish .gradeoverview-category td a:hover {
    text-decoration: underline;
}

.gradereport-coifish-actionbar .form-select-sm {
    min-width: 200px;
}

.gradereport-coifish-summary .table td a {
    text-decoration: none;
    font-weight: 500;
}

.gradereport-coifish-summary .table td a:hover {
    text-decoration: underline;
}

/* Late and extension badge styles. */
.gradereport-coifish .gradeoverview-late-badge {
    background-color: #dc3545;
    color: #fff;
    font-size: 0.75em;
}

.gradereport-coifish .gradeoverview-extension-badge {
    background-color: #0dcaf0;
    color: #000;
    font-size: 0.75em;
}

#gradetracker-view-table-btn.active,
#gradetracker-view-progress-btn.active,
#gradetracker-view-insights-btn.active,
#gradetracker-summary-table-btn.active,
#gradetracker-summary-insights-btn.active {
    font-weight: 600;
}

/* ── Progress view ── */

/* Wrapper gives space above/below for threshold markers and labels. */
.gradetracker-progress-bar-group {
    padding-top: 22px;
}

.gradetracker-bar-wrapper {
    position: relative;
}

.gradetracker-stacked-bar {
    position: relative;
    display: flex;
    height: 28px;
    background: #e9ecef;
    border-radius: 6px;
    overflow: hidden;
}

.gradetracker-stacked-bar-lg {
    height: 36px;
    border-radius: 8px;
}

.gradetracker-bar-fill {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 0;
    border-radius: 6px 0 0 6px;
    transition: width 800ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Best possible ghost outline — sits in the wrapper, overlays the bar. */
.gradetracker-best-possible {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 0;
    border-right: 3px dashed rgba(25, 135, 84, 0.5);
    background: rgba(25, 135, 84, 0.08);
    border-radius: inherit;
    transition: width 1000ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
    pointer-events: none;
    z-index: 1;
}

/* Running total marker — vertical line showing graded-only percentage. */
.gradetracker-running-total-marker {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 3px;
    left: 0;
    background: #0d6efd;
    border-radius: 2px;
    z-index: 3;
    transition: left 800ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
    cursor: help;
    box-shadow: 0 0 4px rgba(13, 110, 253, 0.5);
}

.gradetracker-running-total-label {
    white-space: nowrap;
}

.gradereport-coifish .gradetracker-running-percentage,
.gradetracker-running-percentage.text-primary {
    color: #0d6efd;
}

/* Threshold markers — positioned in the wrapper OUTSIDE the overflow:hidden bar. */
.gradetracker-threshold-markers {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 3;
}

.gradetracker-threshold-marker {
    position: absolute;
    top: -4px;
    height: calc(100% + 8px);
    width: 3px;
    padding: 0 8px;
    margin-left: -8px;
    background-clip: content-box;
    pointer-events: auto;
    cursor: help;
}

/* Coloured threshold lines — pass (green), merit (blue), distinction (gold). */
.gradetracker-threshold-pass {
    background-color: #198754;
    box-shadow: -1px 0 0 rgba(255, 255, 255, 0.7), 1px 0 0 rgba(255, 255, 255, 0.7);
}

.gradetracker-threshold-merit {
    background-color: #0d6efd;
    box-shadow: -1px 0 0 rgba(255, 255, 255, 0.7), 1px 0 0 rgba(255, 255, 255, 0.7);
}

.gradetracker-threshold-distinction {
    background-color: #d4a017;
    box-shadow: -1px 0 0 rgba(255, 255, 255, 0.7), 1px 0 0 rgba(255, 255, 255, 0.7);
}

/* Label above the marker. */
.gradetracker-threshold-marker::before {
    content: attr(data-label);
    position: absolute;
    bottom: calc(100% + 3px);
    left: 50%;
    transform: translateX(-50%);
    font-size: 0.7em;
    font-weight: 700;
    white-space: nowrap;
    pointer-events: none;
    padding: 1px 4px;
    border-radius: 3px;
    line-height: 1.2;
}

.gradetracker-threshold-pass::before {
    color: #198754;
    background: rgba(25, 135, 84, 0.1);
}

.gradetracker-threshold-merit::before {
    color: #0d6efd;
    background: rgba(13, 110, 253, 0.1);
}

.gradetracker-threshold-distinction::before {
    color: #d4a017;
    background: rgba(212, 160, 23, 0.12);
}

/* Arrow pointing down into the bar. */
.gradetracker-threshold-marker::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 50%;
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    transform: translateX(-50%);
}

.gradetracker-threshold-pass::after {
    border-top: 5px solid #198754;
}

.gradetracker-threshold-merit::after {
    border-top: 5px solid #0d6efd;
}

.gradetracker-threshold-distinction::after {
    border-top: 5px solid #d4a017;
}

/* Completion ring. */
.gradetracker-completion-ring {
    display: inline-block;
    width: 36px;
    height: 36px;
    cursor: help;
}

.gradetracker-ring-svg {
    width: 100%;
    height: 100%;
}

.gradetracker-ring-bg {
    fill: none;
    stroke: #e9ecef;
    stroke-width: 3;
}

.gradetracker-ring-fill {
    fill: none;
    stroke: #198754;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-dasharray: 0, 100;
    transition: stroke-dasharray 800ms ease-out;
}

.gradetracker-ring-text {
    fill: #495057;
    font-size: 9px;
    text-anchor: middle;
    font-weight: 600;
}

/* Progress bar percentage label. */
.gradetracker-bar-percentage {
    min-width: 50px;
    text-align: right;
}

/* Course total bar emphasis. */
.gradetracker-course-total-bar .gradetracker-stacked-bar {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

/* Threshold legend. */
.gradetracker-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.85em;
    color: #6c757d;
}

.gradetracker-legend-line {
    display: inline-block;
    width: 14px;
    height: 3px;
    background: rgba(0, 0, 0, 0.7);
    vertical-align: middle;
}

.gradetracker-legend-line-pass {
    background: #198754;
}

.gradetracker-legend-line-merit {
    background: #0d6efd;
}

.gradetracker-legend-line-distinction {
    background: #d4a017;
}

.gradetracker-legend-ghost {
    display: inline-block;
    width: 14px;
    height: 10px;
    border-right: 2px dashed rgba(25, 135, 84, 0.5);
    background: rgba(25, 135, 84, 0.08);
    vertical-align: middle;
}

.gradetracker-legend-running {
    display: inline-block;
    width: 3px;
    height: 14px;
    background: #0d6efd;
    border-radius: 2px;
    vertical-align: middle;
    margin-right: 4px;
    box-shadow: 0 0 4px rgba(13, 110, 253, 0.5);
}

/* Goal planner. */
.gradetracker-goal-planner {
    border-top: 1px solid #dee2e6;
    padding-top: 1rem;
}

.gradetracker-goal-planner-title {
    font-weight: 600;
    color: #495057;
}

.gradetracker-goal-card {
    flex: 1 1 140px;
    max-width: 220px;
    padding: 1rem;
    border-radius: 8px;
    border: 1px solid #dee2e6;
    background: #fff;
    text-align: center;
    transition: transform 200ms ease, box-shadow 200ms ease;
}

.gradetracker-goal-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.gradetracker-goal-card-label {
    font-size: 0.8em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #6c757d;
    margin-bottom: 0.5rem;
}

.gradetracker-goal-card-value {
    font-size: 1.6em;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 0.5rem;
}

.gradetracker-goal-card-message {
    font-size: 0.8em;
    color: #6c757d;
    line-height: 1.3;
}

/* Achieved state. */
.gradetracker-goal-achieved {
    border-color: rgba(25, 135, 84, 0.3);
    background: rgba(25, 135, 84, 0.05);
}

.gradetracker-goal-achieved .gradetracker-goal-card-value {
    color: #198754;
}

.gradetracker-goal-check {
    display: inline-block;
    animation: gradetracker-check-pop 400ms ease-out 600ms both;
}

@keyframes gradetracker-check-pop {
    0% {
        transform: scale(0);
        opacity: 0;
    }

    60% {
        transform: scale(1.2);
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

/* Not achievable state. */
.gradetracker-goal-missed {
    border-color: rgba(220, 53, 69, 0.2);
    background: rgba(220, 53, 69, 0.03);
    opacity: 0.7;
}

.gradetracker-goal-missed .gradetracker-goal-card-value {
    color: #6c757d;
}

/* Achievable but not yet met — colour the number based on difficulty. */
.gradetracker-goal-required {
    transition: color 400ms ease;
}

/* ── Gamification widgets ── */

.gradetracker-widgets {
    border-top: 1px solid #dee2e6;
    padding-top: 1rem;
}

.gradetracker-widget {
    flex: 1 1 160px;
    max-width: 200px;
    padding: 1rem;
    border-radius: 10px;
    border: 1px solid #dee2e6;
    background: #fff;
    text-align: center;
    transition: transform 200ms ease, box-shadow 200ms ease;
}

.gradetracker-widget:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
}

.gradetracker-widget-wide {
    flex: 2 1 320px;
    max-width: 420px;
}

.gradetracker-widget-header {
    font-size: 0.75em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #6c757d;
    margin-bottom: 0.6rem;
}

.gradetracker-widget-hero {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 0.3rem;
}

.gradetracker-widget-sub {
    font-size: 0.8em;
    color: #6c757d;
    line-height: 1.3;
}

.gradetracker-widget-footnote {
    font-size: 0.7em;
    color: #adb5bd;
    margin-top: 0.4rem;
}

/* Overall percentile. */
.gradetracker-widget-overall .gradetracker-widget-hero {
    color: #0d6efd;
}

/* Nearest neighbours. */
.gradetracker-neighbour-row {
    display: flex;
    justify-content: space-between;
    padding: 0.25rem 0.4rem;
    font-size: 0.85em;
    border-radius: 4px;
}

.gradetracker-neighbour-you {
    background: rgba(13, 110, 253, 0.08);
    font-weight: 700;
    border-left: 3px solid #0d6efd;
    padding-left: calc(0.4rem - 3px);
}

.gradetracker-neighbour-pct {
    font-weight: 600;
}

/* Improvement. */
.gradetracker-widget-improvement .gradetracker-widget-hero.text-success {
    color: #198754;
}

.gradetracker-widget-improvement .gradetracker-widget-hero.text-danger {
    color: #dc3545;
}

/* Trend sparkline. */
.gradetracker-sparkline-container {
    margin: 0.4rem auto;
    width: 160px;
    height: 48px;
}

.gradetracker-sparkline {
    display: block;
}

.gradetracker-trend-direction {
    font-weight: 600;
}

.gradetracker-trend-up {
    color: #198754;
}

.gradetracker-trend-up::before {
    content: "\2191 ";
}

.gradetracker-trend-down {
    color: #dc3545;
}

.gradetracker-trend-down::before {
    content: "\2193 ";
}

.gradetracker-trend-steady {
    color: #6c757d;
}

.gradetracker-trend-steady::before {
    content: "\2192 ";
}

/* Streak. */
.gradetracker-streak-flame {
    font-size: 1.2em;
    margin-right: 0.15em;
}

.gradetracker-streak-number {
    font-size: 1.8em;
    font-weight: 800;
    line-height: 1;
}

.gradetracker-streak-active .gradetracker-streak-number {
    color: #fd7e14;
}

.gradetracker-streak-zero {
    color: #adb5bd;
}

/* Milestone badges grid. */
.gradetracker-badge-count {
    font-weight: 400;
    font-size: 0.9em;
    color: #adb5bd;
    margin-left: 0.3em;
}

.gradetracker-badges-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
    margin-top: 0.5rem;
}

.gradetracker-badge {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1em;
    transition: transform 200ms ease;
    cursor: help;
}

.gradetracker-badge:hover {
    transform: scale(1.15);
}

.gradetracker-badge-earned {
    background: linear-gradient(135deg, #ffc107 0%, #fd7e14 100%);
    color: #fff;
    box-shadow: 0 2px 6px rgba(253, 126, 20, 0.3);
}

.gradetracker-badge-locked {
    background: #e9ecef;
    color: #adb5bd;
}

/* Unlock message. */
.gradetracker-widget-unlock {
    border-radius: 8px;
}

/* Preview banner. */
.gradetracker-preview-banner {
    border-radius: 8px;
    border-left: 4px solid #ffc107;
}

/* Feedback engagement card (goal-card style). */
.gradetracker-feedback-card {
    text-align: center;
}

.gradetracker-feedback-card .gradetracker-feedback-ring {
    width: 56px;
    height: 56px;
    display: inline-block;
}

.gradetracker-feedback-card .gradetracker-ring-bg {
    stroke-width: 2.5;
}

.gradetracker-feedback-card .gradetracker-ring-fill {
    stroke-width: 2.5;
}

.gradetracker-feedback-details {
    background: #f8f9fa;
    border-radius: 8px;
    padding: 0.75rem 1rem;
}

.gradetracker-feedback-checklist {
    font-size: 0.82rem;
}

.gradetracker-feedback-item {
    display: flex;
    align-items: center;
    padding: 0.3rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.gradetracker-feedback-item:last-child {
    border-bottom: none;
}

.gradetracker-feedback-link {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gradetracker-feedback-item .badge {
    font-size: 0.7rem;
    flex-shrink: 0;
}

.gradetracker-feedback-details-btn {
    font-size: 0.8rem;
    text-decoration: none;
}

.gradetracker-feedback-viewed .gradetracker-feedback-link {
    color: #6c757d;
}

/* ── Risk state and action messages ── */

.gradetracker-widget-risk {
    border-left: 3px solid #fd7e14;
    background: rgba(253, 126, 20, 0.03);
}

.gradetracker-widget-risk .gradetracker-widget-header {
    color: #e65100;
}

.gradetracker-risk-icon {
    color: #fd7e14;
    font-size: 0.9em;
}

.gradetracker-widget-action {
    margin-top: 0.5rem;
    padding: 0.4rem 0.5rem;
    background: rgba(253, 126, 20, 0.08);
    border-radius: 6px;
    font-size: 0.72em;
    line-height: 1.4;
    color: #6c3b00;
    text-align: left;
    border-left: 2px solid #fd7e14;
}

.gradetracker-widget-guidance {
    background: rgba(13, 110, 253, 0.06);
    color: #084298;
    border-left-color: #0d6efd;
}

.gradetracker-stale-badge {
    font-size: 0.7em;
    font-weight: 500;
}

/* ── Self-regulation tracker ── */

.gradetracker-selfregulation-strong {
    color: #198754;
}

.gradetracker-selfregulation-moderate {
    color: #0d6efd;
}

.gradetracker-selfregulation-low {
    color: #fd7e14;
}

.gradetracker-selfreg-hero {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
}

.gradetracker-selfreg-hero small {
    font-size: 0.75rem;
    font-weight: 400;
    opacity: 0.7;
}

.gradetracker-selfreg-sparkline {
    max-width: 120px;
    height: 30px;
    margin: 0.3rem auto;
}

/* ── Consistency tracker ── */

.gradetracker-consistency-excellent {
    color: #198754;
}

.gradetracker-consistency-good {
    color: #0d6efd;
}

.gradetracker-consistency-needswork {
    color: #fd7e14;
}

.gradetracker-consistency-timeline {
    display: flex;
    align-items: flex-end;
    gap: 3px;
    height: 40px;
    margin: 0.5rem auto;
    justify-content: center;
    max-width: 140px;
}

.gradetracker-consistency-bar {
    flex: 1;
    max-width: 14px;
    min-width: 6px;
    background: #0d6efd;
    border-radius: 2px 2px 0 0;
    opacity: 0.6;
    transition: opacity 200ms ease;
    cursor: help;
}

.gradetracker-consistency-bar:hover {
    opacity: 1;
}

/* ── Early bird ── */

.gradetracker-earlybird-ahead {
    color: #198754;
}

.gradetracker-earlybird-ontrack {
    color: #0d6efd;
}

.gradetracker-earlybird-close {
    color: #fd7e14;
}

.gradetracker-earlybird-behind {
    color: #dc3545;
}

/* ── Community of Inquiry (COI) widgets ── */

.gradetracker-coi-section {
    border-top: 1px solid #dee2e6;
    padding-top: 1rem;
}

.gradetracker-coi-title {
    font-weight: 600;
    color: #495057;
}

.gradetracker-coi-widgets {
    padding-top: 0;
    padding-bottom: 50px;
    justify-content: center;
}

.gradetracker-coi-widget {
    flex: 1 1 160px;
    max-width: 220px;
    border-left: 3px solid #dee2e6;
    position: relative;
}

.gradetracker-coi-method-link {
    margin-top: 0.5rem;
    text-align: center;
    font-size: 0.75rem;
}

/* COI level badge. */
.gradetracker-coi-level-badge {
    display: inline-block;
    font-size: 0.7em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.15rem 0.5rem;
    border-radius: 10px;
    margin-bottom: 0.4rem;
}

.gradetracker-coi-level-none {
    background: #6c757d;
    color: #fff;
}

.gradetracker-coi-level-emerging {
    background: #0d6efd;
    color: #fff;
}

.gradetracker-coi-level-developing {
    background: #198754;
    color: #fff;
}

.gradetracker-coi-level-established {
    background: #fd7e14;
    color: #fff;
}

.gradetracker-coi-level-exemplary {
    background: #d4a017;
    color: #fff;
}

/* Border colour matches the level. */
.gradetracker-coi-none {
    border-left-color: #e9ecef;
}

.gradetracker-coi-emerging {
    border-left-color: #0d6efd;
}

.gradetracker-coi-developing {
    border-left-color: #198754;
}

.gradetracker-coi-established {
    border-left-color: #fd7e14;
}

.gradetracker-coi-exemplary {
    border-left-color: #d4a017;
}

/* COI breakdown list. */
.gradetracker-coi-breakdown {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem 0.6rem;
    justify-content: center;
    margin-top: 0.5rem;
    font-size: 0.75em;
    color: #6c757d;
}

.gradetracker-coi-breakdown-count {
    font-weight: 700;
    color: #495057;
}

/* COI feedback loop ring. */
.gradetracker-coi-ring {
    width: 48px;
    height: 48px;
}

/* ── Intervention history timeline ── */

.gradetracker-intervention-timeline-marker {
    min-width: 80px;
}

.gradetracker-intervention-timeline .gradetracker-intervention-timeline-item .border-start {
    border-color: #dee2e6;
}

/* ── Longitudinal profile ── */

.gradetracker-longitudinal-profile {
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 1rem;
    background: #f8f9fa;
}

.gradetracker-profile-rec {
    border-left: 3px solid #dee2e6;
    background: #fff;
}

.gradetracker-profile-rec-danger {
    border-left-color: #dc3545;
    background: #fff5f5;
}

.gradetracker-profile-rec-warning {
    border-left-color: #ffc107;
    background: #fffdf0;
}

.gradetracker-profile-rec-success {
    border-left-color: #198754;
    background: #f0fdf4;
}

.gradetracker-profile-rec-info {
    border-left-color: #0dcaf0;
    background: #f0faff;
}

/* ── Teacher Insights view ── */

.gradetracker-insights {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}

/* Risk summary header. */
.gradetracker-insights-header {
    border-radius: 8px;
    border-left: 4px solid #dee2e6;
}

.gradetracker-risk-healthy {
    background: rgba(25, 135, 84, 0.06);
    border-left-color: #198754;
}

.gradetracker-risk-healthy .gradetracker-insights-risk-icon {
    color: #198754;
}

.gradetracker-risk-moderate {
    background: rgba(253, 126, 20, 0.06);
    border-left-color: #fd7e14;
}

.gradetracker-risk-moderate .gradetracker-insights-risk-icon {
    color: #fd7e14;
}

.gradetracker-risk-high {
    background: rgba(220, 53, 69, 0.06);
    border-left-color: #dc3545;
}

.gradetracker-risk-high .gradetracker-insights-risk-icon {
    color: #dc3545;
}

/* Quick stats chips. */
.gradetracker-stat-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.75rem;
    border-radius: 20px;
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    font-size: 0.85em;
}

.gradetracker-stat-label {
    color: #6c757d;
    font-weight: 500;
}

.gradetracker-stat-value {
    font-weight: 700;
    color: #212529;
}

.gradetracker-stat-risk {
    border-color: rgba(220, 53, 69, 0.3);
    background: rgba(220, 53, 69, 0.05);
}

.gradetracker-stat-risk .gradetracker-stat-value {
    color: #dc3545;
}

/* Diagnostic insight cards. */
.gradetracker-insight-card {
    border-radius: 8px;
    border: 1px solid #dee2e6;
    overflow: hidden;
}

.gradetracker-insight-card-header {
    padding: 0.6rem 1rem;
    font-weight: 600;
    font-size: 0.95em;
}

.gradetracker-insight-card-body {
    padding: 0.75rem 1rem;
    font-size: 0.88em;
    line-height: 1.5;
}

.gradetracker-insight-diagnostic {
    margin-bottom: 0.5rem;
}

.gradetracker-insight-label {
    font-weight: 600;
    margin-right: 0.3rem;
}

/* Danger severity card. */
.gradetracker-insight-danger .gradetracker-insight-card-header {
    background: rgba(220, 53, 69, 0.08);
    color: #842029;
    border-bottom: 1px solid rgba(220, 53, 69, 0.15);
}

.gradetracker-insight-danger {
    border-color: rgba(220, 53, 69, 0.25);
}

.gradetracker-insight-danger .gradetracker-insight-action {
    color: #842029;
}

/* Warning severity card. */
.gradetracker-insight-warning .gradetracker-insight-card-header {
    background: rgba(253, 126, 20, 0.08);
    color: #6c3b00;
    border-bottom: 1px solid rgba(253, 126, 20, 0.15);
}

.gradetracker-insight-warning {
    border-color: rgba(253, 126, 20, 0.25);
}

.gradetracker-insight-warning .gradetracker-insight-action {
    color: #6c3b00;
}

.gradetracker-insight-info .gradetracker-insight-card-header {
    background: rgba(13, 110, 253, 0.08);
    color: #084298;
    border-bottom: 2px solid rgba(13, 110, 253, 0.15);
}

.gradetracker-insight-info {
    border-color: rgba(13, 110, 253, 0.2);
}

.gradetracker-insight-info .gradetracker-insight-action {
    color: #084298;
}

.gradetracker-coursedesign-notice {
    border-left: 3px solid #0d6efd;
    padding-left: 0;
}

.gradetracker-cohort-crossgroup-diagnostics {
    border-top: 1px solid #dee2e6;
    padding-top: 0.75rem;
}

.gradetracker-cohort-subsection-title {
    font-size: 0.9rem;
    font-weight: 600;
    color: #6c757d;
}

/* ── Cohort Insights view ── */

.gradetracker-cohort-insights {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}

.gradetracker-cohort-section-title {
    font-size: 1rem;
    font-weight: 600;
    color: #495057;
}

/* Presence cards. */
.gradetracker-presence-card {
    min-width: 220px;
    padding: 1.1rem 1.2rem;
    border-radius: 10px;
    border: 1px solid #dee2e6;
    background: #fff;
}

.gradetracker-presence-card-title {
    font-size: 0.92em;
}

.gradetracker-presence-bars {
    height: 100px;
    padding-top: 20px;
    background: #f8f9fa;
    border-radius: 6px;
    padding-left: 4px;
    padding-right: 4px;
    padding-bottom: 2px;
}

.gradetracker-presence-bar-group {
    min-width: 0;
    position: relative;
    height: 100%;
}

.gradetracker-presence-bar {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 65%;
    max-width: 32px;
    border-radius: 4px 4px 0 0;
    transition: height 600ms ease;
}

.gradetracker-presence-count {
    position: absolute;
    top: -18px;
    left: 0;
    right: 0;
    text-align: center;
    font-size: 0.72em;
    font-weight: 700;
    color: #495057;
}

.gradetracker-presence-bar-none {
    background: #adb5bd;
}

.gradetracker-presence-bar-emerging {
    background: #0d6efd;
}

.gradetracker-presence-bar-developing {
    background: #198754;
}

.gradetracker-presence-bar-established {
    background: #fd7e14;
}

.gradetracker-presence-bar-exemplary {
    background: #d4a017;
}

.gradetracker-presence-bar-label {
    font-size: 0.72em;
    color: #495057;
    white-space: nowrap;
    font-weight: 500;
}

/* Presence legend dots. */
.gradetracker-presence-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 2px;
    vertical-align: middle;
}

.gradetracker-presence-dot-none {
    background: #e9ecef;
}

.gradetracker-presence-dot-emerging {
    background: #0d6efd;
}

.gradetracker-presence-dot-developing {
    background: #198754;
}

.gradetracker-presence-dot-established {
    background: #fd7e14;
}

.gradetracker-presence-dot-exemplary {
    background: #d4a017;
}

.gradetracker-presence-health {
    font-size: 0.8em;
}

.gradetracker-presence-subtitle {
    font-size: 0.78em;
    font-style: italic;
}

.gradetracker-tp-teacher-panel {
    border-color: #dee2e6;
}

/* Grade distribution chart. */
.gradetracker-distribution-chart {
    height: 140px;
    align-items: flex-end;
    padding-bottom: 0;
}

.gradetracker-distribution-bar-group {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    height: 100%;
}

.gradetracker-distribution-bar {
    width: 70%;
    max-width: 60px;
    min-height: 2px;
    background: #0d6efd;
    border-radius: 3px 3px 0 0;
    transition: height 600ms ease;
}

.gradetracker-distribution-count {
    font-size: 0.75em;
    font-weight: 600;
}

.gradetracker-distribution-label {
    font-size: 0.7em;
    white-space: nowrap;
}

/* Stale student chips. */
.gradetracker-stale-chip {
    font-size: 0.82em;
    padding: 0.3rem 0.6rem;
}

.gradetracker-stale-chip:hover {
    opacity: 0.85;
}

/* Cross-group and cross-teacher comparison tables. */
.gradetracker-crossgroup-table,
.gradetracker-crossteacher-table {
    font-size: 0.88em;
}

.gradetracker-crossgroup-table th,
.gradetracker-crossteacher-table th {
    font-weight: 600;
    white-space: nowrap;
}

.gradetracker-crossgroup-table .table-active {
    background-color: rgba(13, 110, 253, 0.06);
}

.gradetracker-crossgroup-table tfoot td {
    border-top: 2px solid #dee2e6;
}

/* Diagnostic card detail link. */
.gradetracker-insight-card-footer {
    padding: 0.5rem 1rem 0.7rem;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.gradetracker-detail-link {
    font-size: 0.78em;
    color: #6c757d;
    text-decoration: none;
    transition: color 200ms ease;
}

.gradetracker-detail-link:hover {
    color: #0d6efd;
    text-decoration: underline;
}

/* Detail modal styles. */
.gradetracker-detail-header {
    border-bottom: 2px solid;
}

.gradetracker-detail-header-warning {
    background: #fff8e1;
    border-color: #ffc107;
    color: #856404;
}

.gradetracker-detail-header-danger {
    background: #fce4ec;
    border-color: #dc3545;
    color: #842029;
}

.gradetracker-detail-header-info {
    background: #e7f1ff;
    border-color: #0d6efd;
    color: #084298;
}

.gradetracker-detail-section-title {
    font-size: 0.88rem;
    font-weight: 600;
    color: #495057;
    margin-bottom: 0.6rem;
}

.gradetracker-detail-text {
    font-size: 0.88em;
    line-height: 1.65;
    color: #495057;
}

.gradetracker-logdata-table-wrap {
    max-height: 280px;
    overflow-y: auto;
    border: 1px solid #dee2e6;
    border-radius: 4px;
}

.gradetracker-logdata-table {
    font-size: 0.82em;
    margin-bottom: 0;
}

.gradetracker-logdata-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    font-size: 0.85em;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #6c757d;
}

.gradetracker-logdata-highlight td {
    background-color: rgba(255, 193, 7, 0.12);
}

.gradetracker-detail-metric-chip {
    display: flex;
    flex-direction: column;
    padding: 0.5rem 0.85rem;
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    min-width: 120px;
}

.gradetracker-detail-metric-label {
    font-size: 0.72em;
    color: #6c757d;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-weight: 600;
}

.gradetracker-detail-metric-value {
    font-size: 1.05em;
    font-weight: 700;
    color: #212529;
}

.gradetracker-detail-threshold-table {
    font-size: 0.88em;
}

.gradetracker-detail-threshold-label {
    font-weight: 600;
    color: #495057;
    white-space: nowrap;
    width: 1%;
    padding-right: 1rem;
}

.gradetracker-detail-student-table {
    font-size: 0.88em;
}

/* Risk quadrant scatter chart */
.gradetracker-riskquadrant-container {
    position: relative;
    max-width: 800px;
    min-height: 400px;
}

/* Sociogram */
.gradetracker-sociogram-container {
    position: relative;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    background: #fafbfc;
    overflow: hidden;
    min-height: 300px;
}

.gradetracker-sociogram-svg {
    display: block;
    width: 100%;
    height: auto;
}

.gradetracker-sociogram-label {
    font-size: 10px;
    fill: #6c757d;
    pointer-events: none;
}

.gradetracker-sociogram-node {
    cursor: pointer;
}

.gradetracker-sociogram-node:hover circle {
    stroke: #343a40;
    stroke-width: 3;
}

.gradetracker-sociogram-tooltip {
    position: absolute;
    background: rgba(33, 37, 41, 0.92);
    color: #fff;
    padding: 6px 10px;
    border-radius: 6px;
    font-size: 0.82em;
    line-height: 1.4;
    pointer-events: none;
    z-index: 10;
    white-space: nowrap;
}

.gradetracker-sociogram-legend-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-right: 4px;
    vertical-align: middle;
}

.gradetracker-sociogram-dot-green {
    background: #28a745;
}

.gradetracker-sociogram-dot-amber {
    background: #ffc107;
}

.gradetracker-sociogram-dot-red {
    background: #dc3545;
}

.gradetracker-sociogram-dot-grey {
    background: #adb5bd;
}

/* Self-regulation composite indicators */
.gradetracker-selfreg-indicators {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin: 0.35rem 0 0.25rem;
}

.gradetracker-selfreg-indicator {
    position: relative;
    height: 18px;
    background: #f0f0f0;
    border-radius: 9px;
    overflow: hidden;
    cursor: default;
}

.gradetracker-selfreg-indicator-bar {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background: linear-gradient(90deg, #28a745 0%, #1c8c3a 100%);
    border-radius: 9px;
    min-width: 2px;
    transition: width 0.6s ease;
}

.gradetracker-widget-risk .gradetracker-selfreg-indicator-bar {
    background: linear-gradient(90deg, #dc3545 0%, #c82333 100%);
}

.gradetracker-selfreg-indicator-label {
    position: relative;
    z-index: 1;
    display: block;
    font-size: 0.68em;
    line-height: 18px;
    padding: 0 6px;
    color: #333;
    white-space: nowrap;
}

/* Self-regulation explanation panel */
.gradetracker-selfreg-explain-btn {
    font-size: 0.72em;
    color: #6c757d;
}

.gradetracker-selfreg-explain {
    font-size: 0.78em;
    line-height: 1.5;
    color: #495057;
}

.gradetracker-selfreg-explain dt {
    font-weight: 600;
    margin-top: 0.3rem;
}

.gradetracker-selfreg-explain dd {
    margin-left: 0;
    margin-bottom: 0.15rem;
    color: #6c757d;
}

/* ── Coordinator tab ── */

.gradereport-coifish-coordinator .card {
    border-radius: 0.5rem;
}

.gradereport-coifish-coordinator .card-header {
    background-color: #f8f9fa;
    border-bottom: 1px solid #dee2e6;
}

.gradereport-coifish-coordinator .table th {
    font-size: 0.8rem;
    white-space: nowrap;
    vertical-align: middle;
}

.gradereport-coifish-coordinator .table td {
    vertical-align: middle;
    font-size: 0.85rem;
}

.gradetracker-coordinator-chart {
    min-height: 200px;
}

/* ── Slider settings (from setting_configslider template) ── */

.gradetracker-slider-wrap {
    min-width: 320px;
}
.gradetracker-slider-input {
    flex: 1;
    min-width: 180px;
    height: 6px;
    -webkit-appearance: none;
    appearance: none;
    background: #dee2e6;
    border-radius: 3px;
    outline: none;
    cursor: pointer;
}
.gradetracker-slider-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #0d6efd;
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.gradetracker-slider-input::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #0d6efd;
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.gradetracker-slider-input:focus::-webkit-slider-thumb {
    box-shadow: 0 0 0 3px rgba(13, 110, 253, .25);
}
.gradetracker-slider-input:disabled {
    opacity: .5;
    cursor: not-allowed;
}
.gradetracker-slider-value {
    min-width: 50px;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

/* ── Optional slider settings (from setting_configoptionalslider template) ── */

.gradetracker-optslider-disabled {
    opacity: .4;
    pointer-events: none;
}
.gradetracker-optslider-wrap .gradetracker-slider-input {
    flex: 1;
    min-width: 180px;
    height: 6px;
    -webkit-appearance: none;
    appearance: none;
    background: #dee2e6;
    border-radius: 3px;
    outline: none;
    cursor: pointer;
}
.gradetracker-optslider-wrap .gradetracker-slider-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #0d6efd;
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.gradetracker-optslider-wrap .gradetracker-slider-input::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #0d6efd;
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.gradetracker-optslider-wrap .gradetracker-slider-value {
    min-width: 50px;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

/* ── Level boundary settings (from setting_configlevels template) ── */

.gradetracker-levels-wrap {
    max-width: 500px;
}
.gradetracker-levels-bar {
    display: flex;
    height: 14px;
    border-radius: 7px;
    overflow: hidden;
    border: 1px solid #dee2e6;
}
.gradetracker-levels-zone {
    transition: width .15s ease;
}
.gradetracker-zone-none {
    background: #e9ecef;
}

.gradetracker-zone-emerging {
    background: #ffc107;
}

.gradetracker-zone-developing {
    background: #0dcaf0;
}

.gradetracker-zone-established {
    background: #198754;
}

.gradetracker-zone-exemplary {
    background: #6f42c1;
}

.gradetracker-zone-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}
.gradetracker-zone-dot-0 {
    background: #ffc107;
}

.gradetracker-zone-dot-1 {
    background: #0dcaf0;
}

.gradetracker-zone-dot-2 {
    background: #198754;
}

.gradetracker-zone-dot-3 {
    background: #6f42c1;
}

.gradetracker-levels-slider {
    flex: 1;
    min-width: 140px;
    height: 5px;
    -webkit-appearance: none;
    appearance: none;
    background: #dee2e6;
    border-radius: 3px;
    outline: none;
    cursor: pointer;
}
.gradetracker-levels-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #495057;
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}
.gradetracker-levels-slider::-moz-range-thumb {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #495057;
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}
.gradetracker-levels-val {
    min-width: 42px;
    text-align: center;
    font-variant-numeric: tabular-nums;
    font-size: 0.8rem;
}
.gradetracker-levels-label-text {
    color: #6c757d;
}

/* Sortable-table styling: subtle hover hint + brighter chevron once a column is active. */
.gradetracker-sortable-table th.gradetracker-sortable {
    user-select: none;
}
.gradetracker-sortable-table th.gradetracker-sortable:hover {
    background-color: rgba(0, 0, 0, 0.04);
}
.gradetracker-sortable-table th[data-sortdir] .gradetracker-sort-icon.gradetracker-sort-icon {
    /* Higher-specificity selector so we can drop the !important previously needed
       to win over .text-muted in the same FA icon — stylelint rejects !important. */
    color: #495057;
}

/* ── Student pulse modal (dashboard layout) ── */
.gradereport-coifish-pulse {
    --coifish-pulse-accent: #0d553f;
    --coifish-pulse-track: #e9ecef;
    --coifish-pulse-up: #198754;
    --coifish-pulse-down: #b54708;
    --coifish-pulse-same: #6c757d;
}
.gradereport-coifish-pulse-sub {
    margin-top: 0.1rem;
    font-size: 0.8rem;
    color: #6c757d;
}
.gradereport-coifish-pulse-help-btn {
    margin-left: calc(0.4rem + 5px);
    color: #888;
    font-size: 0.8rem;
    line-height: 1;
    text-decoration: none;
}
.gradereport-coifish-pulse-help-btn:hover,
.gradereport-coifish-pulse-help-btn:focus {
    color: var(--coifish-pulse-accent);
}
.gradereport-coifish-pulse-help-inner {
    margin-bottom: 1rem;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    background: rgba(13, 85, 63, 0.05);
    font-size: 0.88rem;
    color: #495057;
}
.gradereport-coifish-pulse-help-inner strong {
    display: block;
    margin-bottom: 0.25rem;
    color: #0d553f;
}
.gradereport-coifish-pulse-hero-ring {
    position: relative;
    width: 140px;
    height: 140px;
    margin: 0.25rem auto 0;
    border-radius: 50%;
    box-shadow: 0 6px 18px rgba(13, 85, 63, 0.18);
}
.gradereport-coifish-pulse-hero-inner {
    position: absolute;
    inset: 15px;
    border-radius: 50%;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}
.gradereport-coifish-pulse-hero-icon {
    font-size: 3.2rem;
    color: var(--coifish-pulse-accent);
}
.gradereport-coifish-pulse-hero-band {
    margin-top: 0.5rem;
    font-size: 1.5rem;
    font-weight: 800;
    color: #212529;
    line-height: 1.2;
}
.gradereport-coifish-pulse-hero-caption {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #6c757d;
}
.gradereport-coifish-pulse-trend {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--coifish-pulse-same);
}
.gradereport-coifish-pulse-trend-up {
    color: var(--coifish-pulse-up);
}
.gradereport-coifish-pulse-trend-down {
    color: var(--coifish-pulse-down);
}
.gradereport-coifish-pulse-trend-same,
.gradereport-coifish-pulse-trend-first {
    color: var(--coifish-pulse-same);
}
.gradereport-coifish-pulse-badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.25rem;
    margin-top: 1.1rem;
}
.gradereport-coifish-pulse-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    width: 96px;
}
.gradereport-coifish-pulse-badge-medal {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    font-size: 1.7rem;
    color: #fff;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.18), inset 0 0 0 3px rgba(255, 255, 255, 0.5);
    transition: transform 200ms ease;
}
.gradereport-coifish-pulse-badge:hover .gradereport-coifish-pulse-badge-medal {
    transform: scale(1.08);
}
.gradereport-coifish-pulse-badge-streak {
    background: linear-gradient(135deg, #fd9843 0%, #e8590c 100%);
}
.gradereport-coifish-pulse-badge-best {
    background: linear-gradient(135deg, #ffd24a 0%, #f08c00 100%);
}
.gradereport-coifish-pulse-badge-name {
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.1;
    color: #212529;
    text-align: center;
}
.gradereport-coifish-pulse-badge-sub {
    font-size: 0.72rem;
    line-height: 1.1;
    color: #6c757d;
    text-align: center;
}
.gradereport-coifish-pulse-card {
    height: 100%;
    border: 1px solid #e6e8eb;
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
    transition: box-shadow 150ms ease, border-color 150ms ease;
}
.gradereport-coifish-pulse-card:hover {
    border-color: #cfd4da;
    box-shadow: 0 4px 12px rgba(16, 24, 40, 0.08);
}
.gradereport-coifish-pulse-card-face {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    width: 100%;
    padding: 0.7rem 0.5rem;
    background: transparent;
    border: 0;
    text-align: center;
    cursor: pointer;
}
.gradereport-coifish-pulse-card-face:focus-visible {
    outline: 3px solid rgba(13, 85, 63, 0.4);
    outline-offset: -3px;
}
.gradereport-coifish-pulse-card-label {
    margin-top: 0.2rem;
    font-size: 0.82rem;
    font-weight: 700;
    color: #212529;
    line-height: 1.2;
}
.gradereport-coifish-pulse-card-level {
    font-size: 0.9rem;
    font-weight: 800;
    color: var(--coifish-pulse-accent);
    line-height: 1.2;
}
.gradereport-coifish-pulse-ring {
    position: relative;
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    border-radius: 50%;
}
.gradereport-coifish-pulse-ring-inner {
    position: absolute;
    inset: 5px;
    border-radius: 50%;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--coifish-pulse-accent);
    font-size: 1rem;
}
.gradereport-coifish-pulse-chevron {
    margin-top: 0.15rem;
    font-size: 0.7rem;
    color: #adb5bd;
    transition: transform 200ms ease;
}
.gradereport-coifish-pulse-card-face[aria-expanded="true"] .gradereport-coifish-pulse-chevron {
    transform: rotate(180deg);
}
.gradereport-coifish-pulse-drill-inner {
    padding: 0 0.7rem 0.7rem;
    border-top: 1px solid #f0f1f3;
    text-align: left;
}
.gradereport-coifish-pulse-drill-heading {
    margin: 0.6rem 0 0.2rem;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 700;
    color: #6c757d;
}
.gradereport-coifish-pulse-drill-text {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.45;
    color: #495057;
}
.gradereport-coifish-pulse-suggestions {
    border-left: 3px solid var(--coifish-pulse-accent);
    border-radius: 8px;
    background: rgba(13, 85, 63, 0.04);
    padding: 0.7rem 0.9rem;
}
.gradereport-coifish-pulse-suggestions-title {
    margin-bottom: 0.3rem;
    font-size: 0.9rem;
    font-weight: 700;
    color: #0d553f;
}
.gradereport-coifish-pulse-suggestions ul {
    margin-bottom: 0;
    padding-left: 1.1rem;
    font-size: 0.88rem;
}
.gradereport-coifish-pulse-suggestions li + li {
    margin-top: 0.2rem;
}
.gradereport-coifish-pulse-duedates-nudge {
    margin-top: 0.4rem;
    font-size: 0.82rem;
    color: #6c757d;
}
.gradereport-coifish-pulse-access {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    font-size: 0.82rem;
    background: #f1f3f5;
    color: #495057;
}
.gradereport-coifish-pulse-access-ok {
    background: rgba(25, 135, 84, 0.1);
    color: #146c43;
}

@media (min-width: 768px) {
    .gradereport-coifish-pulse-summary {
        border-right: 1px solid #eef0f2;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gradereport-coifish-pulse-chevron,
    .gradereport-coifish-pulse-card,
    .gradereport-coifish-pulse-badge-medal {
        transition: none;
    }

    .gradereport-coifish-pulse .collapsing {
        transition: none;
    }
}

/**
 * Container.
 */
.path-grade-report-grader .gradeparent {
    position: relative;
}

/**
 * The table.
 */
.path-grade-report-grader .gradeparent table {
    border: 1px solid #ccc;
    border-collapse: separate;
    border-spacing: 0;
    border-bottom-width: 0;
    border-right-width: 0;
    margin-bottom: 2em;
    height: 100%;
}

/**
 * All the cells.
 */
.path-grade-report-grader .gradeparent .cell {
    border: 1px solid #ccc;
    border-top-width: 0;
    border-left-width: 0;
    padding: 0.5rem 1rem;
    vertical-align: top;
    height: 100%;
}

.path-grade-report-grader .overriddengrade {
    color: #495057;
    border: none;
    -moz-appearance: none;
    -webkit-appearance: none;
}

.path-grade-report-grader .gradepass {
    color: #357a32;
}

.path-grade-report-grader .gradefail {
    color: #ca3120;
}

.path-grade-report-grader .grade_icons,
.path-grade-report-grader .category_grade_icons {
    white-space: nowrap;
    margin-top: 0.5rem;
}

.path-grade-report-grader .grade_type_value .grade_icons {
    margin-left: auto;
}

.path-grade-report-grader .grade_icons .icon {
    margin-right: 1rem;
    font-size: 14px;
    width: 24px;
}

.path-grade-report-grader .grade_icons .icon:last-child {
    margin-right: 0;
}

/**
 * All the floating divs.
 */
.path-grade-report-grader .gradeparent .floater {
    display: none;
}

.path-grade-report-grader .gradeparent .floating {
    display: block;
}

/**
 * All the headers + floating cells.
 */
.path-grade-report-grader .gradeparent .heading .cell,
.path-grade-report-grader .gradeparent .avg .cell,
.path-grade-report-grader .gradeparent .user.cell {
    font-size: 14px;
    font-weight: normal;
}

.path-grade-report-grader .gradeparent .heading .header,
.path-grade-report-grader .gradeparent .heading .userfield {
    white-space: nowrap;
}

.path-grade-report-grader .heading .gradeitemheader {
    text-indent: -2rem;
    padding-left: 2rem;
    padding-top: 6px;
}

.path-grade-report-grader .dropdown-item {
    text-align: left;
}

.path-grade-report-grader .heading .gradeitemheader .itemicon {
    text-align: right;
}

/**
 * The user cells.
 */
.path-grade-report-grader .gradeparent .user.cell {
    white-space: nowrap;
}

.path-grade-report-grader .gradeparent .highlightable.cell {
    min-width: 200px;
}

.path-grade-report-grader .gradeparent .highlightable.cell.collapsed {
    min-width: unset;
}

.path-grade-report-grader .gradeparent .user.cell .userpicture {
    border: none;
    vertical-align: middle;
}

.path-grade-report-grader .gradeitemheader {
    display: inline-block;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 200px;
    vertical-align: middle;
}

/**
 * The footer's header.
 */
.path-grade-report-grader .gradeparent .range .header,
.path-grade-report-grader .gradeparent .avg .header,
.path-grade-report-grader .gradeparent .groupavg .header {
    font-weight: bold;
    text-align: right;
}

/**
 * The footer's floating cells.
 */
.path-grade-report-grader .gradeparent .avg.floating .cell {
    border-top-width: 1px;
}

/**
 * Content styling.
 */
.path-grade-report-grader .gradeparent .heading .cell .iconsmall {
    /* Fixes inconsistencies in cell height on IE. */
    padding-top: 0;
    padding-bottom: 0;
}

.path-grade-report-grader .gradeparent .sorticon {
    vertical-align: middle;
    margin: 0;
}

.path-grade-report-grader .gradeparent td.grade_type_value,
.path-grade-report-grader .gradeparent td.grade_type_value input,
.path-grade-report-grader .gradeparent td.grade_type_value div {
    text-align: right;
    margin-left: auto;
}

.path-grade-report-grader .gradeparent .gradevalue {
    display: inline-block;
}

.path-grade-report-grader .header,
.path-grade-report-grader td.userfield div {
    padding-top: 6px;
}

.path-grade-report-grader .gradeparent tr:nth-child(n) td.ajaxoverridden:nth-child(n) {
    /* Made very specific to override the default stripped style of the table. */
    background-color: #ffe3a0;
}

.path-grade-report-grader .gradeparent .excludedfloater {
    font-weight: bold;
    color: red;
    font-size: 9px;
    float: left;
}

.path-grade-report-grader .gradeparent .category {
    text-align: left;
}

/**
 * Editing fields.
 * MDL-74286 - width 100% pushes action menu out of cell.
 */
.path-grade-report-grader .gradeparent select {
    text-overflow: ellipsis;
    min-width: 8rem;
}

.path-grade-report-grader .gradeparent .text {
    border: 1px solid #666;
    width: auto;
    margin: 0;
    padding: 0;
    text-align: center;
}

.path-grade-report-grader .gradeparent table .action-menu {
    display: inline-block;
    margin-right: -0.5rem;
    padding-left: 0.5rem;
}

.path-grade-report-grader .gradeparent table .heading .action-menu {
    padding-left: 0;
}

.path-grade-report-grader .dropdown-menu {
    width: max-content;
}

.path-grade-report-grader .initialsdropdown {
    width: 460px;
}

.path-grade-report-grader .initialsdropdown::after {
    content: '';
}

.path-grade-report-grader .usersearchwidget::after {
    content: '';
}

.path-grade-report-grader .usersearchwidget {
    pointer-events: none;
}
.path-grade-report-grader .usersearchwidget input {
    pointer-events: initial;
    z-index: 1;
}
.path-grade-report-grader .usersearchwidget button,
.path-grade-report-grader .usersearchwidget a {
    pointer-events: initial;
}
.path-grade-report-grader .usersearchdropdown {
    /*Extra height to allow non result items.*/
    max-height: 400px;
    width: 300px;
    pointer-events: all;
    padding: 0;
}
.path-grade-report-grader .usersearchdropdown .unsearchablecontentcontainer {
    position: sticky;
    bottom: 0;
    background-color: white;
}
.path-grade-report-grader .usersearchdropdown .footer {
    border-top: 1px solid #dee2e6;
    font-size: 90%;
}

.collapsecolumndropdown.show {
    width: 300px;
    max-height: 300px;
}

@media only screen and (min-width: 768px) {
    .path-grade-report-grader .gradeparent table {
        padding-right: 6em;
    }
}

/* History */

.path-grade-report-history div.gradeparent {
    overflow-x: scroll;
}

.path-grade-report-history .singlebutton div,
.path-grade-report-history .singlebutton div input[type="button"] {
    margin: 0;
}

/* User Selector */
.yui3-gradereport_history_usp-hidden {
    display: none;
}

.gradereport_history_usp .usp-content {
    position: relative;
}

.gradereport_history_usp .usp-ajax-content {
    overflow: auto;
    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
}

.gradereport_history_usp .usp-ajax-content,
.gradereport_history_usp .usp-loading-lightbox {
    height: 375px;
}

.gradereport_history_usp .usp-loading-lightbox {
    background-color: #fff;
    opacity: .5;
    position: absolute;
    text-align: center;
    width: 100%;
    top: 0;
    left: 0;
}

.gradereport_history_usp .usp-loading-lightbox img {
    margin-top: 100px;
    opacity: 1;
}

.gradereport_history_usp .usp-search {
    text-align: center;
}

.gradereport_history_usp .usp-user {
    width: 100%;
    text-align: left;
    border-top: 1px solid #eee;
}

.gradereport_history_usp .usp-user:nth-child(odd) {
    background-color: #f9f9f9;
}

.gradereport_history_usp .usp-first-added {
    border-top: 1px solid #bbb;
}

.gradereport_history_usp .usp-checkbox {
    text-align: center;
    float: left;
    padding: 11px 6px 0 6px;
}

.gradereport_history_usp .usp-checkbox input[type=checkbox] {
    margin: 0;
}

.gradereport_history_usp .usp-picture {
    margin: 6px 3px 0 3px;
    float: left;
}

.gradereport_history_usp .usp-userpicture {
    cursor: pointer;
}

.gradereport_history_usp .usp-user .details {
    margin-left: 67px;
    padding: 3px 6px 0 6px;
    word-wrap: break-word;
}

.gradereport_history_usp .usp-user .details label {
    margin: 0;
}

.gradereport_history_usp .usp-more-results {
    padding: 5px;
    border-top: 1px solid #bbb;
}

.gradereport_history_usp .usp-finish {
    padding-top: 1em;
    text-align: center;
}

.gradereport_history_usp .usp-finish input {
    margin: 0;
}

.path-grade-report-singleview div.reporttable {
    margin: 20px 0 30px 0;
    padding: 10px 10px;
    background-color: #f8f9fa;
    text-align: center;
}

.path-grade-report-singleview div.groupselector,
.path-grade-report-singleview div.selectitems {
    display: block;
    text-align: right;
    clear: both;
}

.path-grade-report-singleview div.singleselect + div.singleselect select,
.path-grade-report-singleview div.groupselector select {
    margin-right: 0;
}

.path-grade-report-singleview div.reporttable div.singleselect form div {
    text-align: center;
}

.path-grade-report-singleview div.reporttable table.reporttable {
    margin: 0 auto 15px auto;
}

.path-grade-report-singleview div.reporttable form div {
    text-align: left;
}

.path-grade-report-singleview div.reporttable h2 {
    text-align: left;
}

.path-grade-report-singleview .overrideexcludecheck {
    width: 14.75px;
    height: 12px;
    color: #2ca14f;
}

.path-grade-report-singleview .report-navigation .container {
    max-width: 1060px;
    margin-left: 0;
}

.path-grade-report-singleview .zero-state img {
    width: 185px;
}

.path-grade-report-singleview .reporttable thead th,
.path-grade-report-singleview .reporttable thead td {
    white-space: nowrap;
    border: none;
}

.path-grade-report-singleview .reporttable tbody tr,
.path-grade-report-singleview .reporttable tbody tr:nth-of-type(odd),
.path-grade-report-singleview .reporttable tbody tr:hover {
    color: inherit;
    background-color: white;
    border-top: none;
    border-bottom: 1px solid #dee2e6;
}

.path-grade-report-singleview .reporttable tbody th,
.path-grade-report-singleview .reporttable tbody td.range {
    white-space: nowrap;
    font-weight: normal;
}

.path-grade-report-singleview .reporttable tbody th > * {
    display: inline-block;
    vertical-align: middle;
    margin: 0 2px;
}

.path-grade-report-singleview .itemnav {
    font-size: small;
    display: inline;
    padding-bottom: 0.5em;
}

.path-grade-report-singleview .itemnav.previtem {
    float: left;
}

.path-grade-report-singleview div.nextitem {
    float: right;
}

.path-grade-report-singleview .reporttable {
    width: 100%;
}

.path-grade-report-singleview .reporttable .generaltable th,
.path-grade-report-singleview .reporttable .generaltable td {
    text-align: left;
    vertical-align: middle;
    border: none;
}

.path-grade-report-singleview div.reporttable form div.singleview_bulk {
    display: inline-block;
    text-align: left;
    margin-bottom: 1em;
}

.path-grade-report-singleview .singleview_bulk div > *,
.path-grade-report-singleview .singleview_bulk fieldset > * {
    display: inline-block;
    vertical-align: middle;
    margin: 0;
}

.path-grade-report-singleview .singleselect select,
.path-grade-report-singleview div.reporttable form .singleview_bulk select,
.path-grade-report-singleview div.reporttable form .singleview_bulk input {
    margin-left: 10px;
    margin-right: 10px;
}

#bulkinsertmodal {
    width: 181px;
    height: 39px;
    top: 309px;
    border-radius: 4px;
}

.path-grade-report-singleview .singleview_bulk > fieldset {
    display: block;
}

.path-grade-report-singleview div.reporttable form .singleview_bulk > div.enable {
    margin-bottom: 0.5em;
    text-align: left;
}

.searchresultitemscontainer {
    max-height: 150px;
    height: 150px;
    overflow: auto;
}

.path-grade-report-singleview .search-widget[data-searchtype="user"] .userinitials {
    width: 40px;
    height: 40px;
}

.path-grade-report-singleview .reporttable .gradeitem span.small {
    font-size: 70%;
}

.path-grade-report-singleview .reporttable div.categoryitem .gradeitemheader,
.path-grade-report-singleview .reporttable div.courseitem .gradeitemheader {
    font-weight: bold;
}

.path-grade-report-user #graded_users_selector {
    float: right;
    margin-bottom: 5px;
}

.path-grade-report-user .view_users_selector {
    clear: both;
    float: right;
    margin-bottom: 5px;
}

.path-grade-report-user #graded_users_selector .singleselect label,
.path-grade-report-user .view_users_selector .singleselect label {
    display: inline-block;
}

.path-grade-report-user .user-grade,
.grade-report-user .user-grade {
    width: 100%;
}

.path-grade-report-user .user-grade thead th,
.grade-report-user .user-grade thead th {
    vertical-align: bottom;
    border: none;
    text-align: left;
    background-color: #f8f9fa;
}

.path-grade-report-user .user-grade td,
.grade-report-user .user-grade td {
    min-width: 4.5em;
    background-color: #f8f9fa;
    border: none;
    vertical-align: middle;
}

.path-grade-report-user .user-grade .b1l,
.grade-report-user .user-grade .b1l {
    padding: 0;
    width: 24px;
    min-width: 24px;
}

.path-grade-report-user .user-grade tbody .column-itemname,
.grade-report-user .user-grade tbody .column-itemname {
    padding-left: 24px;
    padding-right: 8px;
}

.path-grade-report-user .user-grade .column-itemname.baggt,
.path-grade-report-user .user-grade .column-itemname.baggb,
.grade-report-user .user-grade .column-itemname.baggt,
.grade-report-user .user-grade .column-itemname.baggb {
    padding-left: 0;
}

.path-grade-report-user .user-grade .baggt,
.path-grade-report-user .user-grade .baggb,
.grade-report-user .user-grade .baggt,
.grade-report-user .user-grade .baggb {
    font-weight: bold;
    background-color: #f8f9fa;
    border: none;
}

.path-grade-report-user .user-report-container,
.grade-report-user .user-report-container {
    margin: 20px 0 30px 0;
    padding: 10px 10px;
    background-color: #f8f9fa;
}

.path-grade-report-user .user-grade tbody tr,
.grade-report-user .user-grade tbody tr {
    background-color: #f8f9fa;
}

.path-grade-report-user .user-grade tbody tr:hover,
.grade-report-user .user-grade tbody tr:hover {
    color: inherit;
    background-color: #f8f9fa;
}

.path-grade-report-user .user-grade tbody tr.spacer,
.grade-report-user .user-grade tbody tr.spacer {
    height: 0.5rem;
}

.path-grade-report-user .user-grade td.item,
.grade-report-user .user-grade td.item {
    background-color: white;
    border-top: 1px solid #dee2e6;
    border-bottom: 1px solid #dee2e6;
}

.path-grade-report-user .user-grade th.column-itemname:not(.header,.category,.baggt,.baggb),
.grade-report-user .user-grade th.column-itemname:not(.header,.category,.baggt,.baggb) {
    background-color: white;
    font-weight: normal;
    border-bottom: 1px solid #dee2e6;
}

.path-grade-report-user .user-grade th.category,
.grade-report-user .user-grade th.category {
    background-color: white;
    border: 1px solid #dee2e6;
    padding-left: 10px;
    font-weight: bold;
}

.path-grade-report-user .user-grade th.category a[aria-expanded="true"] .expanded,
.path-grade-report-user .user-grade th.category a[aria-expanded="false"] .collapsed,
.grade-report-user .user-grade th.category a[aria-expanded="true"] .expanded,
.grade-report-user .user-grade th.category a[aria-expanded="false"] .collapsed {
    display: none;
}

.path-grade-report-user .user-grade th.category a.toggle-category,
.grade-report-user .user-grade th.category a.toggle-category {
    height: 24px;
    width: 24px;
    font-size: 12px;
    line-height: 24px;
    margin-right: 3px;
}

.path-grade-report-user .user-grade th.category a.toggle-category i,
.grade-report-user .user-grade th.category a.toggle-category i {
    font-size: 12px;
    width: 12px;
    height: 12px;
    color: #1d2125;
    margin: 0;
}

.path-grade-report-user .user-grade .column-itemname .small,
.grade-report-user .user-grade .column-itemname .small {
    font-size: 70%;
}

.path-grade-report-user .user-grade tr[data-hidden="true"],
.grade-report-user .user-grade tr[data-hidden="true"] {
    display: none;
}

.path-grade-report-user .user-grade .category div,
.grade-report-user .user-grade .category div {
    min-height: 30px;
    align-items: center;
}

.path-grade-report-user .search-widget[data-searchtype="user"] .userinitials {
    width: 40px;
    height: 40px;
}

.path-grade-report-user .user-navigation .container {
    max-width: 767px;
}

.path-grade-report-user .view-user-selector label {
    display: block;
    font-size: 80%;
    margin: 0;
}

.path-grade-report-user .view-user-selector .dropdown-toggle {
    padding: 0;
    font-weight: bold;
}

.path-grade-report-user .zero-state img {
    width: 185px;
}

@media print {
    .path-grade-report-user .user-grade th.category,
    .grade-report-user .user-grade th.category {
        border-left: none;
        border-right: none;
    }

    .path-grade-report-user .user-grade th.category a.toggle-category,
    .grade-report-user .user-grade th.category a.toggle-category
    .path-grade-report-user #page-footer,
    .path-grade-report-user .user-grade td.column-grade .action-menu {
        display: none;
    }
}

.gradingform_guide-regrade {
    padding: 10px;
    background: #fdd;
    border: 1px solid #f00;
    margin-bottom: 10px;
}

.gradingform_guide-restored {
    padding: 10px;
    background: #ffd;
    border: 1px solid #ff0;
    margin-bottom: 10px;
}

.gradingform_guide-error {
    color: red;
    font-weight: bold;
}

.gradingform_guide_editform .status {
    font-weight: normal;
    text-transform: uppercase;
    font-size: 60%;
    padding: 0.25em;
    border: 1px solid #eee;
}

.gradingform_guide_editform .status.ready {
    background-color: #e7f1c3;
    border-color: #aea;
}

.gradingform_guide_editform .status.draft {
    background-color: #f3f2aa;
    border-color: #ee2;
}

.gradingform_guide.editor .criterion .controls,
.gradingform_guide .criterion .description,
.gradingform_guide .criterion .remark {
    vertical-align: top;
}

.gradingform_guide.editor .criterion .controls,
.gradingform_guide.editor .criterion .description,
.gradingform_guide.editor .criterion .remark {
    padding: 3px;
}

.gradingform_guide .criteria {
    height: 100%;
}

.gradingform_guide .criterion {
    border: 1px solid #ddd;
    overflow: hidden;
}

.gradingform_guide .criterion.even {
    background: #f0f0f0;
}

.gradingform_guide .criterion .description {
    width: 100%;
}

.gradingform_guide .criterion .description .criterionmaxscore input {
    width: 20px;
}

.gradingform_guide .criterion .description .criterionname {
    font-weight: bold;
}

.gradingform_guide .criterion label {
    font-weight: bold;
    padding-right: 5px;
}

.gradingform_guide .plainvalue.empty {
    font-style: italic;
    color: #aaa;
}

.gradingform_guide .plainvalue.editname {
    font-weight: bold;
}

/* Make invisible the buttons 'Move up' for the first criterion and 'Move down' for
   the last, because those buttons will make no change */
.gradingform_guide.editor .criterion.first.last .controls .delete input,
.gradingform_guide.editor .criterion.first .controls .moveup input,
.gradingform_guide.editor .criterion.last .controls .movedown input {
    display: none;
}

/* replace buttons with images */
.gradingform_guide.editor .delete input,
.gradingform_guide.editor .moveup input,
.gradingform_guide.editor .movedown input {
    text-indent: -1000em;
    cursor: pointer;
    border: none;
}

.gradingform_guide.editor .criterion .controls .delete input {
    width: 20px;
    height: 16px;
    background: transparent url(/theme/image.php/academi/core/1790824836/t/delete) no-repeat center top;
    margin-top: 4px;
}

.gradingform_guide.editor .moveup input {
    width: 20px;
    height: 15px;
    background: transparent url(/theme/image.php/academi/core/1790824836/t/up) no-repeat center top;
    margin-top: 4px;
}

.gradingform_guide.editor .movedown input {
    width: 20px;
    height: 15px;
    background: transparent url(/theme/image.php/academi/core/1790824836/t/down) no-repeat center top;
    margin-top: 4px;
}

.gradingform_guide.editor .addcriterion input,
.gradingform_guide.editor .addcomment input {
    background: transparent url(/theme/image.php/academi/core/1790824836/t/add) no-repeat;
    background-size: 0.75rem;
    display: block;
    color: #555;
    font-weight: bold;
    text-decoration: none;
}

.gradingform_guide.editor .addcriterion input,
.gradingform_guide.editor .addcomment input {
    background-position: left 5px top 8px;
    height: 30px;
    line-height: 29px;
    margin-bottom: 14px;
    padding-left: 20px;
    padding-right: 10px;
}

.gradingform_guide .options .optionsheading {
    font-weight: bold;
    font-size: 1.1em;
    padding-bottom: 5px;
}

.gradingform_guide .options .option {
    padding-bottom: 2px;
}

.gradingform_guide .options .option label {
    margin-left: 5px;
}

.gradingform_guide .options .option .value {
    margin-left: 5px;
    font-weight: bold;
}

.gradingform_guide .criterion .description.error {
    background: #fdd;
}

/* special classes for elements created by guideeditor.js */
.gradingform_guide.editor .hiddenelement {
    display: none;
}

.gradingform_guide.editor .pseudotablink {
    background-color: transparent;
    border: 0 solid;
    height: 1px;
    width: 1px;
    color: transparent;
    padding: 0;
    margin: 0;
    position: relative;
    float: right;
}

.jsenabled .gradingform_guide .markingguidecomment {
    cursor: pointer;
}

.jsenabled .gradingform_guide .markingguidecomment:before {
    content: url(/theme/image.php/academi/core/1790824836/t/add);
    padding-right: 2px;
}

.gradingform_guide .commentheader {
    font-weight: bold;
    font-size: 1.1em;
    padding-bottom: 5px;
}

.jsenabled .gradingform_guide .criterionnamelabel {
    display: none;
}

.jsenabled .gradingform_guide .criterionshortname {
    font-weight: bold;
}

.gradingform_guide table {
    width: 100%;
}

.gradingform_guide .descriptionreadonly {
    vertical-align: top;
}

.gradingform_guide .criteriondescriptionmarkers {
    width: 300px;
}

.gradingform_guide .markingguideremark {
    margin: 0;
    width: 100%;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

.gradingform_guide .criteriondescriptionscore {
    display: inline;
}

.gradingform_guide .score label {
    display: block;
}

.gradingform_guide .score input {
    margin: 0;
    width: auto;
}
.gradingform_guide_comment_chooser {
    max-height: 80vh;
    overflow-y: auto;
}
.gradingform_guide-frequent-comments {
    position: absolute;
    top: 7px;
    right: 0;
}

/*
.gradingform_rubric.editor[.frozen|.editable]
  .criteria
    .criterion[.first][.last][.odd|.even]
        .controls
            .moveup
                [input type=submit]
            .delete
                [input type=submit]
            .movedown
                [input type=submit]
        .description
        .levels
            td.level[.first][.last][.odd|.even]
                div.level-wrapper
                    .definition
                        [textarea]
                    .score
                        span
                            [input type=text]
                    .delete
                        [input type=submit]
        .addlevel
            [input type=submit]
        .remark
            textarea
    .addcriterion
        [input type=submit]
  .options
    .optionsheading
    .option.OPTIONNAME

.gradingform_rubric[.review][.evaluate[.editable|.frozen]]
  .criteria
    .criterion[.first][.last][.odd|.even]
        .description
        .levels
            td.level[.first][.last][.odd|.even]
                div.level-wrapper
                    div.radio
                        input
                    .definition
                    .score
                        span

*/

.gradingform_rubric_editform .status {
    font-weight: normal;
    text-transform: uppercase;
    font-size: 60%;
    padding: 0.25em;
    border: 1px solid #eee;
}

.gradingform_rubric_editform .status.ready {
    background-color: #e7f1c3;
    border-color: #aea;
}

.gradingform_rubric_editform .status.draft {
    background-color: #f3f2aa;
    border-color: #ee2;
}

.gradingform_rubric {
    padding-bottom: 1.5em;
}

.gradingform_rubric.editor .criterion .controls,
.gradingform_rubric .criterion .description,
.gradingform_rubric .criterion .levels,
.gradingform_rubric.editor .criterion .addlevel,
.gradingform_rubric .criterion .remark,
.gradingform_rubric .criterion .levels .level {
    vertical-align: top;
}

.gradingform_rubric.editor .criterion .controls,
.gradingform_rubric .criterion .description,
.gradingform_rubric.editor .criterion .addlevel,
.gradingform_rubric .criterion .remark,
.gradingform_rubric .criterion .levels .level {
    padding: 3px;
}

.gradingform_rubric .criteria {
    height: 100%;
    display: flex;
    width: 100%;
    overflow: auto;
}

.gradingform_rubric .criterion {
    border: 1px solid #ddd;
    overflow: hidden;
}

.gradingform_rubric .criterion.even td {
    background: #f0f0f0;
}

.gradingform_rubric .criterion.odd td {
    background: white;
}

.gradingform_rubric .criterion .description {
    min-width: 150px;
    font-weight: bold;
}

.gradingform_rubric .criterion .levels table {
    width: 100%;
    height: 100%;
}

.gradingform_rubric .criterion .levels,
.gradingform_rubric .criterion .levels table,
.gradingform_rubric .criterion .levels table tbody {
    padding: 0;
    margin: 0;
}

.gradingform_rubric .criterion .levels .level {
    border-left: 1px solid #ddd;
    max-width: 150px;
}

.gradingform_rubric .criterion .levels .level .level-wrapper {
    position: relative;
}

.gradingform_rubric .criterion .levels .level.last {
    border-right: 1px solid #ddd;
}

.gradingform_rubric .plainvalue.empty {
    font-style: italic;
    color: #aaa;
}

/* Make invisible the buttons 'Move up' for the first criterion and
   'Move down' for the last, because those buttons will make no change */
.gradingform_rubric.editor .criterion.first .controls .moveup input,
.gradingform_rubric.editor .criterion.last .controls .movedown input {
    display: none;
}

/* replace buttons with images */
.gradingform_rubric.editor .delete input,
.gradingform_rubric.editor .duplicate input,
.gradingform_rubric.editor .moveup input,
.gradingform_rubric.editor .movedown input {
    text-indent: -1000em;
    cursor: pointer;
    border: none;
}

.gradingform_rubric.editor .criterion .controls .delete input {
    width: 24px;
    height: 24px;
    background: transparent url(/theme/image.php/academi/core/1790824836/t/delete) no-repeat center;
    margin: .3em .3em 0 .3em;
}

.gradingform_rubric.editor .criterion .controls .duplicate input {
    width: 24px;
    height: 24px;
    background: transparent url(/theme/image.php/academi/core/1790824836/t/copy) no-repeat center;
    margin: .3em .3em 0 .3em;
}

.gradingform_rubric.editor .levels .level .delete input {
    width: 24px;
    height: 24px;
    background: transparent url(/theme/image.php/academi/core/1790824836/t/delete) no-repeat center;
}

.gradingform_rubric.editor .moveup input {
    width: 24px;
    height: 24px;
    background: transparent url(/theme/image.php/academi/core/1790824836/t/up) no-repeat center;
    margin: .3em .3em 0 .3em;
}

.gradingform_rubric.editor .movedown input {
    width: 24px;
    height: 24px;
    background: transparent url(/theme/image.php/academi/core/1790824836/t/down) no-repeat center;
    margin: .3em .3em 0 .3em;
}

.gradingform_rubric.editor .addcriterion input,
.gradingform_rubric.editor .addlevel input {
    background: #fff url(/theme/image.php/academi/core/1790824836/t/add) no-repeat 7px 8px;
    display: block;
    color: #555;
    font-weight: bold;
    text-decoration: none;
}

.gradingform_rubric.editor .addcriterion input {
    height: 30px;
    line-height: 29px;
    margin-bottom: 14px;
    padding-left: 20px;
    padding-right: 10px;
}

.gradingform_rubric.editor .addlevel input {
    padding-left: 24px;
    padding-right: 8px;
}

.gradingform_rubric .options .optionsheading {
    font-weight: bold;
    font-size: 1.1em;
    padding-bottom: 5px;
}

.gradingform_rubric .options .option {
    padding-bottom: 2px;
}

.gradingform_rubric .options .option label {
    margin-left: 5px;
}

.gradingform_rubric .options .option .value {
    margin-left: 5px;
    font-weight: bold;
}

.gradingform_rubric .criterion .levels.error {
    border: 1px solid red;
}

.gradingform_rubric .criterion .description.error,
.gradingform_rubric .criterion .levels .level .definition.error,
.gradingform_rubric .criterion .levels .level .score.error {
    background: #fdd;
}

.gradingform_rubric-regrade {
    padding: 10px;
    background: #fdd;
    border: 1px solid #f00;
    margin-bottom: 10px;
}

.gradingform_rubric-restored {
    padding: 10px;
    background: #ffd;
    border: 1px solid #ff0;
    margin-bottom: 10px;
}

.gradingform_rubric-error {
    color: red;
    font-weight: bold;
}

/* special classes for elements created by rubriceditor.js */
.gradingform_rubric.editor .hiddenelement {
    display: none;
}

.gradingform_rubric.editor .pseudotablink {
    background-color: transparent;
    border: 0 solid;
    height: 1px;
    width: 1px;
    color: transparent;
    padding: 0;
    margin: 0;
    position: relative;
    float: right;
}

.gradingpanel-gradingform_rubric [aria-checked="true"] {
    border: 1px solid black;
}

#page-admin-question-bank-columnsortorder-sortcolumns .addcolumn {
    display: inline-block;
}
.qbank-sortable-column {
    background-color: white;
    position: relative;
}
.jsenabled .qbank-column-list button.savewidths {
    display: none;
}
.qbank-sortable-column .qbank_columnsortorder-action-handle {
    display: none;
}
.qbank-sortable-column.show-handles .qbank_columnsortorder-action-handle {
    display: block;
}
.qbank-sortable-column .handle-container {
    pointer-events: none; /* Prevent the handle container blocking clicks to elements in the header */
    width: 100%;
    position: absolute;
    top: 40%;
    z-index: 1;
}
.qbank_columnsortorder-action-handle {
    pointer-events: auto; /* Ensure the handles themselves receive clicks */
}
.qbank_columnsortorder-action-handle.move {
    margin-left: -21px;
    width: 16px;
}
.qbank_columnsortorder-action-handle.resize {
    cursor: col-resize;
    position: absolute;
    top: 0;
    right: 5px;
}
.qbank_columnsortorder-action-handle.resize img {
    /* Prevent the resize handle icon being dragged across the page */
    pointer-events: none;
}
.qbank_columnsortorder-action-handle .icon {
    margin-right: 0;
}

/* Comment text area size to maximum */
.question-comment-view .comment-ctrl .comment-area {
    max-width: none;
    width: 100%;
}

/* Card-style border on category lists */
.qbank_managecategories-categorylist {
    padding: 1rem;
    border: 1px solid #dee2e6;
    border-radius: 1rem;
}
/* Category item layout */
.qbank_managecategories-handlecontainer {
    width: 32px;
    height: 32px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
}
.qbank_managecategories-item .container {
    padding: 0.75rem;
}
/* Separators between each item become drop indicators */
.qbank_managecategories-item {
    width: 100%;
    list-style: none;
    border-top: 1px solid #dee2e6;
}
.qbank_managecategories-item:first-child {
    border-top-color: transparent;
}
.qbank_managecategories-item:last-child {
    border-bottom: 1px solid transparent;
}
.qbank_managecategories-item .qbank_managecategories-item:first-child {
    border-top-color: #dee2e6;
}
.qbank_managecategories-details p:last-child {
    margin-bottom: 0;
}
.qbank_managecategories-childlistcontainer:empty {
    display: none;
}
/* Fade effect on drag handle */
.qbank_managecategories-draghandle {
    display: none;
    opacity: 0.45;
}
.qbank_managecategories-item.draghandle .qbank_managecategories-draghandle {
    display: inline;
}
/* Drag indicator */
.qbank_managecategories-item.draghandle > .container {
    border: 2px solid transparent;
    border-radius: 1rem;
}
.qbank_managecategories-item.draghandle > .container:hover {
    cursor: move;
    border-color: #0f6cbf;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
}
/* No move/delete buttons on non-draggable items */
.dropdown-item.show-when-movable {
    display: none;
}
.qbank_managecategories-item.draghandle .dropdown-item.show-when-movable {
    display: block;
}
/* Don't show card border on nested lists. */
.qbank_managecategories-categorylist .qbank_managecategories-categorylist {
    padding: 0 0 .5rem 0;
    border: 0;
    border-radius: 0;
}
/* Don't show hover indication on parent when a child is hovered */
.editing .qbank_managecategories-item .container:hover:has(.container:hover) {
    border-color: transparent;
}
/* New child drop target */
.qbank_managecategories-newchild {
    display: none;
    border: 1px solid #dee2e6;
    background-color: #fff;
    padding: 0.25rem 1rem;
    color: #dee2e6;
    font-weight: bold;
}

/* stylelint-disable max-line-length */
.qbank_managecategories-newchild.qbank_managecategories-droptarget,
/* Show the drop target if it's directly inside a highlighted category, but not if its inside a child of that category */
.qbank_managecategories-droptarget-before > .container > .row > .qbank_managecategories-contentcontainer > :not(.qbank_managecategories-childlistcontainer) .qbank_managecategories-newchild {
    display: unset;
}
/* stylelint-enable max-line-length */

/* Hidden descriptions */
.qbank_managecategories-description {
    display: none;
}
.showdescriptions .qbank_managecategories-description {
    display: unset;
}

.question-bank-table td.questionlastused span.date {
    font-weight: 400;
    font-size: .8em;
}

.jsenabled .question-text-format .input-group button {
    display: none;
}

.qbehaviour_deferredcbm_slightlyunderconfident,
.qbehaviour_deferredcbm_slightlyoverconfident {
    font-weight: bold;
    color: #600;
}

.qbehaviour_deferredcbm_underconfident,
.qbehaviour_deferredcbm_overconfident {
    font-weight: bold;
    color: #c00;
}

.qbehaviour_deferredcbm_judgementok {
    font-weight: bold;
    color: #080;
}

.qbehaviour_deferredcbm_actual_percentage {
    font-weight: bold;
}

.qbehaviour_deferredcbm_summary_heading {
    margin: 0;
}

.que.deferredcbm .certaintychoices input[type="radio"] {
    margin-left: 0.5em;
}

.que.deferredcbm .certaintychoices label {
    white-space: nowrap;
}

.admin_presets_error {
    color: red;
    text-align: center;
}

.admin_presets_success {
    color: green;
    text-align: center;
}

.adminpreset_appdescription {
    font-size: small;
    margin-top: 40px;
    margin-bottom: 20px;
}

#page-admin-tool-behat-index .steps-definitions {
    margin: 1rem auto;
}

#page-admin-tool-behat-index .steps-definitions .step {
    margin: 1rem 0 0 0;
    border: 1px solid #eee;
    padding: 1rem;
}

#page-admin-tool-behat-index .steps-definitions .stepdescription {
    font-style: italic;
}

#page-admin-tool-behat-index .steps-definitions .stepcontent {
    margin: 1rem 0;
}

#page-admin-tool-behat-index .steps-definitions .steptype {
    color: #1467a6;
    margin-right: 1ex;
}

#page-admin-tool-behat-index .steps-definitions .stepapipath {
    font-family: monospace;
    font-size: smaller;
}

#page-admin-tool-behat-index .steps-definitions .stepregex {
    color: #060;
}

#page-admin-tool-behat-index .steprequiredfields {
    font-weight: bold;
    font-size: 1em;
    margin-top: 1em;
}

.tool_brickfield_floatprinticon {
    margin-top: -30px;
    float: right;
}

.tool_brickfield_analysisbutton {
    width: 100%;
    text-align: center;
}

/* Advanced Page CSS */

#tool_brickifeld_advanced_page {
    margin: 20px 20px 20px 10px;
}

.tool_brickfield_banner_heading {
    display: flex;
    justify-content: space-between;
    margin-bottom: 20px;
}

.tool_brickfield_banner_heading > img {
    height: 50px;
}

.tool_brickfield_banner > p {
    text-align: center;
}

.tool_brickfield_grid_heading {
    font-family: 'Varela Round', Sans-serif;
    font-size: 20px;
    font-weight: 400;
    color: #040d29;
    padding-bottom: 4px;
}

.tool_brickfield_grid_content {
    color: #040d29;
    font-size: 16px;
    line-height: 1.4em;
}

.tool_brickfield_grid_heading > img {
    height: 30px;
    padding-right: 16px;
}

.tool_brickfield_grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin: 20px 20px 30px;
}

.tool_brickfield_grid > div {
    margin: 10px;
    padding: 20px;
    flex-basis: 30%;
    border: 1px solid grey;
    max-width: 500px;
    min-width: 250px;
    flex-grow: 4;
    border-radius: 15px 15px 15px 50px;
}

.tool_brickfield_grid_heading {
    display: flex;
}

.tool_brickfield_footer > a {
    font-size: 18px;
    letter-spacing: 1px;
    color: #fff;
    background-color: #4054b2;
    border-radius: 5px;
    padding: 15px 50px;
    transition: 0.3s;
    margin-bottom: 20px;
}

.tool_brickfield_footer {
    text-align: center;
}

.tool_brickfield_footer > a:hover {
    color: #fff;
    background-color: #253687;
    text-decoration: none;
}

.tool_brickfield_footer > p {
    margin-bottom: 25px;
}

.path-admin-tool-capability [data-search="capability"] {
    min-width: 675px;
}

.path-admin-tool-capability .comparisontable {
    margin-top: 150px;
}

.path-admin-tool-capability .comparisontable th,
.path-admin-tool-capability .comparisontable td {
    vertical-align: middle;
    padding: 0.4em 0.5em 0.3em;
}

.path-admin-tool-capability .comparisontable thead th {
    vertical-align: bottom;
    background: none;
}

.path-admin-tool-capability .comparisontable thead th div {
    position: relative;
}

.path-admin-tool-capability .comparisontable thead th div > a {
    position: absolute;
    top: -1.75em;
    left: 1em;
    width: 150px;
    text-align: left;
    margin-bottom: 1em;
    text-indent: -1.45em;
    -webkit-transform-origin: top left;
    -moz-transform-origin: top left;
    -ms-transform-origin: top left;
    -o-transform-origin: top left;
    -webkit-transform: rotate(315deg);
    -moz-transform: rotate(315deg);
    -ms-transform: rotate(315deg);
    -o-transform: rotate(315deg);
}

.path-admin-tool-capability .comparisontable tbody th {
    background-color: #eee;
    text-align: right;
    border: 1px solid #dfdfdf;
}

.path-admin-tool-capability .comparisontable tbody th span {
    display: block;
    color: #666;
    font-size: 80%;
}

.path-admin-tool-capability .comparisontable tbody td {
    border: 1px solid #dfdfdf;
}

.path-admin-tool-capability .comparisontable .inherit {
    color: #666;
}

.path-admin-tool-capability .comparisontable .allow {
    background-color: #060;
    font-weight: bold;
    color: white;
}

.path-admin-tool-capability .comparisontable .prevent {
    background-color: #ad6704;
    font-weight: bold;
    color: white;
}

.path-admin-tool-capability .comparisontable .prohibit {
    background-color: #800;
    font-weight: bold;
    color: white;
}
.nav-pills .nav-pills {
    margin-left: 1rem;
}
.data-registry > .top-nav > * {
    margin-right: 0.5rem;
}
/*Extra attribute selection to have preference over bs2's .moodle-actionmenu[data-enhance] */
.data-registry > .top-nav > .singlebutton,
.data-registry > .top-nav > .moodle-actionmenu[data-owner='dataregistry-actions'] {
    display: inline-block;
}

.data-registry .context-tree {
    height: 70vh;
    overflow-y: scroll;
}

[data-region="data-requests-table"] .moodle-actionmenu {
    min-width: 150px;
}

.context-level-view {
    margin: 1em;
}
/**
 * Styles for admin tool page.
 */

/* Fix bad default table wrap (caused by the long mimetype field). */
.path-admin-tool-filetypes .generaltable .c0,
.path-admin-tool-filetypes .generaltable .c1,
.path-admin-tool-filetypes .generaltable .c2,
.path-admin-tool-filetypes .generaltable th {
    white-space: nowrap;
}

/* Formatting for deleted lines. */
.path-admin-tool-filetypes .generaltable .deleted .c0 img {
    opacity: 0.2;
}

.path-admin-tool-filetypes .generaltable .deleted .c0 span {
    text-decoration: line-through;
}

/* Custom types show bold */
.path-admin-tool-filetypes .generaltable .nonstandard {
    font-weight: bold;
}

#page-admin-tool-installaddon-index #installfromrepobox {
    text-align: center;
    padding-top: 2em;
    padding-bottom: 2em;
}

#page-admin-tool-installaddon-index #installfromrepobox .singlebutton {
    display: inline-block;
}

#page-admin-tool-installaddon-index #installfromrepobox .singlebutton input[type=submit] {
    padding: 1em;
}

#page-admin-tool-langimport-index .langimport {
    margin: auto;
    float: none;
    width: 100%;
}

#page-admin-tool-langimport-index #menuuninstalllang,
#page-admin-tool-langimport-index #menupack {
    height: 300px;
}

.path-admin-tool-lp [data-region="managecompetencies"] ul li,
.path-admin-tool-lp [data-region="plans"] ul li,
.path-admin-tool-lp [data-region="competencymovetree"] ul li,
.path-admin-tool-lp [data-region="competencylinktree"] ul li,
.path-badges [data-region="competencylinktree"] ul li {
    list-style-type: none;
}

.path-admin-tool-lp .progresstext {
    display: inline-block;
    vertical-align: top;
}

.path-admin-tool-lp .progress {
    width: 100%;
    display: inline-block;
}

.path-admin-tool-lp .progress .bar {
    min-width: 3em;
}

.path-admin-tool-lp [data-region="managecompetencies"] ul[data-enhance="tree"],
.path-admin-tool-lp [data-region="plans"] ul[data-enhance="tree"],
.path-admin-tool-lp [data-region="competencylinktree"] ul[data-enhance="linktree"],
.path-badges [data-region="competencylinktree"] ul[data-enhance="linktree"],
.path-admin-tool-lp [data-region="competencymovetree"] ul[data-enhance="movetree"] {
    border: 1px solid #ccc;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
    transition: border linear .2s, box-shadow linear .2s;
    border-radius: 4px;
    padding-left: 20px;
    padding-right: 20px;
    margin-left: 10px;
    margin-right: 10px;
}

.path-admin-tool-lp [data-region="managecompetencies"] ul,
.path-admin-tool-lp [data-region="plans"] ul,
.path-admin-tool-lp [data-region="competencylinktree"] ul,
.path-badges [data-region="competencylinktree"] ul,
.path-admin-tool-lp [data-region="competencymovetree"] ul {
    cursor: pointer;
}

.path-admin-tool-lp [data-region="competencylinktree"] ul li > span,
.path-badges [data-region="competencylinktree"] ul li > span,
.path-admin-tool-lp [data-region="competencymovetree"] ul li > span,
.path-admin-tool-lp [data-region="plans"] ul li > span,
.path-admin-tool-lp [data-region="managecompetencies"] ul li > span {
    padding-top: 2px;
    padding-bottom: 2px;
    padding-left: 4px;
    padding-right: 4px;
    border-radius: 4px;
}

.path-admin-tool-lp [data-region="competencylinktree"] ul [aria-selected="true"] > span,
.path-badges [data-region="competencylinktree"] ul [aria-selected="true"] > span,
.path-admin-tool-lp [data-region="competencymovetree"] ul [aria-selected="true"] > span,
.path-admin-tool-lp [data-region="plans"] ul [aria-selected="true"] > span,
.path-admin-tool-lp [data-region="managecompetencies"] ul [aria-selected="true"] > span {
    background-color: #dfdfdf;
}

.path-admin-tool-lp [data-region="competencylinktree"] ul [tabindex="0"] > span,
.path-badges [data-region="competencylinktree"] ul [tabindex="0"] > span,
.path-admin-tool-lp [data-region="competencymovetree"] ul [tabindex="0"] > span,
.path-admin-tool-lp [data-region="plans"] ul [tabindex="0"] > span,
.path-admin-tool-lp [data-region="managecompetencies"] ul [tabindex="0"] > span {
    border: 2px solid #0070a8;
}

.path-admin-tool-lp [data-region="filtercompetencies"] input {
    margin-left: 10px;
}

.path-admin-tool-lp [data-region="link-buttons"],
.path-admin-tool-lp [data-region="move-buttons"] {
    text-align: center;
}

.path-admin-tool-lp [data-region="competencylinktree"] > ul,
.path-badges [data-region="competencylinktree"] > ul {
    overflow-y: auto;
    height: 400px;
}

.path-admin-tool-lp span.currentdragtarget {
    border: 1px dashed;
}

.path-admin-tool-lp .competencyactionsmenu {
    display: inline-block;
    vertical-align: text-top;
}

.path-admin-tool-lp [data-region="competencyruleconfig"] [data-region="rule-base"] {
    display: table;
    width: 100%;
}

.path-admin-tool-lp [data-region="competencyruleconfig"] [data-region="rule-outcome"],
.path-admin-tool-lp [data-region="competencyruleconfig"] [data-region="rule-type"] {
    display: table-row;
}

.path-admin-tool-lp [data-region="competencyruleconfig"] [data-region="rule-outcome"] label,
.path-admin-tool-lp [data-region="competencyruleconfig"] [data-region="rule-type"] label {
    padding-right: 10px;
}

.path-admin-tool-lp [data-region="competencyruleconfig"] [data-region="rule-outcome"] label,
.path-admin-tool-lp [data-region="competencyruleconfig"] [data-region="rule-outcome"] select,
.path-admin-tool-lp [data-region="competencyruleconfig"] [data-region="rule-type"] label,
.path-admin-tool-lp [data-region="competencyruleconfig"] [data-region="rule-type"] select {
    display: table-cell;
}

.path-admin-tool-lp [data-region="competencyruleconfig"] [data-region="rule-outcome"] select,
.path-admin-tool-lp [data-region="competencyruleconfig"] [data-region="rule-type"] select,
.path-admin-tool-lp [data-region="competencylinktree"] select,
.path-badges [data-region="competencylinktree"] select {
    width: 100%;
}

.path-admin-tool-lp [data-region] .generaltable.fullwidth {
    clear: both;
}

.path-admin-tool-lp .competency-rule-points {
    margin-top: 10px;
    max-height: 300px;
    overflow-y: auto;
}

.path-admin-tool-lp .competency-rule-points table input {
    margin-bottom: 0;
}

.path-admin-tool-lp .competency-rule-points tr[data-competency] th {
    font-weight: normal;
}

.path-admin-tool-lp .competency-rule-points input[type="number"] {
    width: 50px;
}

.competency-heading {
    margin-bottom: 15px;
}

.competency-heading h4 {
    margin: 0;
}

/** Styles required for menubar js */

.tool-lp-menu {
    margin: 0;
}

.tool-lp-menu li {
    float: left;
    position: relative;
    list-style-type: none;
    white-space: nowrap;
}

.tool-lp-sub-menu {
    position: absolute;
    list-style: none;
    margin: 0;
    top: -10px;
}

.tool-lp-sub-menu li {
    float: none;
}

.tool-lp-menu .tool-lp-sub-menu[aria-hidden=false] {
    display: block;
}

.tool-lp-menu ul[aria-hidden=true] {
    display: none;
}

.tool-lp-menu .caret {
    margin: 8px;
}

.tool-lp-menu.tool-lp-menu-open-left .tool-lp-sub-menu {
    left: auto;
    right: 0;
}

/** This highlighting is copied from bootstrap - but can be overridden by a theme */
.tool-lp-menu .tool-lp-sub-menu .menu-focus a {
    color: #fff;
    text-decoration: none;
    background-color: #00699e;
    background-image: linear-gradient(to bottom, #0070a8, #005f8f);
    background-repeat: repeat-x;
}

/** check box and radio button on configure scale dialogue */
input[type="radio"].tool_lp_scale_default,
input[type="checkbox"].tool_lp_scale_proficient {
    margin-top: 0;
}

/** User evidence */
.user-evidence-documents {
    margin: 10px 20px;
    list-style: none;
}

.user-evidence-competencies,
.user-evidence-documents li {
    margin-bottom: 5px;
    word-break: break-all;
}

[data-region="user-evidence-list"] .user-evidence-competencies,
[data-region="user-evidence-list"] .user-evidence-documents {
    margin: 0;
    list-style: none;
}

.user-competency-course-navigation select {
    display: none;
}

.user-competency-course-navigation span {
    max-width: 100%;
    overflow: hidden;
}

/** Competency grader */
.competency-grader textarea {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.path-admin-tool-lp #region-main {
    overflow-x: visible;
}

ul.competency-tree img {
    width: 16px;
    height: 16px;
}

[data-region="managecompetencies"] a .icon,
[data-region="plan-page"] a .icon {
    color: initial;
}

[data-region="managecompetencies"] h2 a .icon,
[data-region="plan-page"] h2 a .icon {
    font-size: smaller;
}

#page-admin-tool-messageinbound-index .handler-function {
    display: block;
    padding: 0 0.5em;
    color: #888;
    font-size: 0.75em;
}

#page-admin-tool-messageinbound-index .state,
#page-admin-tool-messageinbound-index .edit {
    text-align: center;
}

input.tool-mfa-verification-code,
.tool-mfa-verification-code input {
    /* Some elements must be important to override form element*/
    font-size: 1.5em !important; /* stylelint-disable-line declaration-no-important */
    font-family: monospace;
    text-align: center;
    letter-spacing: 1.0em;
    font-weight: bold;
}

.tool-mfa-factor-choose,
.tool-mfa-factor-choose:hover {
    background-color: #fff;
    border-color: #3584c9;
    border-width: 1px;
    width: 100%;
    border-radius: 0.5rem;
}

.tool-mfa-factor-choose:hover,
.tool-mfa-factor-choose:hover .tool-mfa-factor-choose-text {
    text-decoration: underline;
    color: #094478;
    background-color: #cfe2f2;
}

.mfa-verify-form input[type="submit"] {
    height: 50px;
    font-size: 1.05rem;
}

.mfa-verify-form .invalid-feedback {
    font-weight: 700;
}

.mfa-verify-form .form-group.fitem,
.mfa-verify-form .form-group.fitem > span,
.mfa-verify-form .form-group.fitem > span > input {
    width: 100%;
}

/**
 * Styles for admin tool mobile.
 */

#page-admin-tool-mobile-subscription dl dt {
    clear: both;
    display: inline-block;
    width: 40%;
    min-width: 100px;
    vertical-align: top;
    padding-top: 1px;
}

#page-admin-tool-mobile-subscription dl dd {
    display: inline-block;
    width: 59%;
    margin-left: 1%;
    vertical-align: top;
    padding-top: 1px;
}

#page-admin-tool-mobile-subscription dl.list-narrow dt {
    width: 30%;
}

#page-admin-tool-mobile-subscription dl.list-narrow dd {
    width: 69%;
}

#page-admin-tool-mobile-subscription progress {
    width: 100%;
}
/* jquery-eu-cookie-law-popup styles */
.eupopup-container {
    background-color: rgba(25, 25, 25, 0.9);
    color: #efefef;
    padding: 5px 20px;
    font-size: 12px;
    line-height: 1.2em;
    text-align: center;
    display: none;
    z-index: 9999999;
}
.eupopup-container .eupopup-body a {
    color: #fff;
    text-decoration: underline;
}

.behat-site .eupopup-container-bottom {
    position: absolute;
}

.eupopup-container-bottom {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
}

.eupopup-closebutton {
    font-size: 16px;
    font-weight: 100;
    line-height: 1;
    color: #a2a2a2;
    opacity: 0.2;
    position: absolute;
    font-family: helvetica, arial, verdana, sans-serif;
    top: 0;
    right: 0;
    padding: 5px 10px;
}

.eupopup-buttons {
    padding: 7px 0 5px 0;
}

.eupopup-button {
    margin: 0 10px;
}

.eupopup-button:hover,
.eupopup-button:focus {
    text-decoration: underline;
    color: #f6a21d;
}

/* tool_policy styles */
.eupopup-body li {
    display: inline;
}

.eupopup-body li:before {
    content: ",";
}

.eupopup-body li:first-child:before {
    content: "";
}

.eupopup-body ul {
    padding: 0;
    margin: 0 0 3px;
}

.eupopup-closebutton:hover,
.eupopup-closebutton:active {
    text-decoration: none;
}

.eupopup-head {
    font-size: 1.2em;
    font-weight: bold;
    padding: 7px;
}

.eupopup-button_1 {
    font-weight: bold;
    font-size: 14px;
}

.eupopup-button_2 {
    display: none;
}

.eupopup-button {
    color: #f6a21d;
}

.policy-heading .policy-viewdoc-buttons {
    text-align: center;
    margin: 15px;
}

#page-admin-tool-policy-acceptances .colselect {
    width: 35px;
}

/* tool_profiling styles */

.path-admin-tool-profiling .profilingruntable .label {
    font-weight: bold;
}

.path-admin-tool-profiling .profiling_worse {
    color: red;
}

.path-admin-tool-profiling .profiling_better {
    color: green;
}

.path-admin-tool-profiling .profiling_same {
    color: dimgrey;
}

.path-admin-tool-profiling .profiling_important,
.path-admin-tool-profiling .flexible .referencerun {
    font-weight: bold;
}

.path-admin-tool-profiling .flexible {
    margin-left: auto;
    margin-right: auto;
}

#page-admin-tool-task-scheduledtasks .task-class,
#page-admin-tool-task-runningtasks .task-class {
    display: block;
    padding: 0 0.5em;
    color: #888;
    font-size: 0.75em;
}

#page-admin-tool-task-scheduledtasks input[type=text] {
    /*rtl:ignore*/
    direction: ltr;
}

#page-admin-tool-task-scheduledtasks .task-runnow,
#page-admin-tool-task-scheduledtasks .task-clearfaildelay {
    font-size: 0.75em;
}

.path-admin .task-output {
    color: #fff;
    background: #333;
    padding: 1em;

    a {
        color: #fff;
        text-decoration: underline;
    }
}

[data-region="displaytemplateexample"] {
    border-radius: 4px;
    border: 1px inset #e3e3e3;
    padding: 1em;
}

div[data-flexitour="backdrop"] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

span[data-flexitour="container"] .modal-dialog {
    max-width: 400px;
}

span[data-flexitour="container"] .modal-dialog .modal-content .modal-header {
    border-bottom: 0;
}

span[data-flexitour="container"] .modal-dialog .modal-content .modal-header.minimal,
span[data-flexitour="container"] .modal-dialog .modal-content .modal-footer.minimal {
    padding-top: 0;
    padding-bottom: 0;
}

span[data-flexitour="container"] .modal-dialog .modal-content .modal-footer {
    justify-content: flex-start;
    border-top: 0;
}

span[data-flexitour="container"].orphan {
    position: absolute;
}

span[data-flexitour="container"].orphan div[data-role="arrow"] {
    display: none;
}

span[data-flexitour="container"].orphan div[data-role="arrow"] {
    display: none;
}

.path-admin-local-usertours .stepcreator .input-append {
    font-size: inherit;
}

.tour-actions > ul {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.tour-actions > ul > li {
    background-color: #f5f5f5;
}

.tour-actions > ul {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.tour-actions > ul > li {
    background-color: #f5f5f5;
    border-radius: 6px;
    border: 1px solid #ccc;
    display: inline-block;
    margin: .5em;
    text-align: center;
    width: 13em;
}

.tour-actions > ul > li > a {
    height: 100%;
    display: block;
    padding: 1em;
}

@media (max-width: 575.98px) {
    span[data-flexitour="container"] {
        margin-left: 10px;
    }
    span[data-flexitour="container"] .modal-content {
        overflow-y: initial;
    }
    span[data-flexitour="container"].orphan {
        margin-left: 5px;
        margin-right: 5px;
    }
}

.path-admin-tool-xmldb a[name="lastused"] {
    padding-top: 50px;
}

/**
 * Styles for local_unifiedgrader.
 *
 * @package    local_unifiedgrader
 * @copyright  2026 South African Theological Seminary (mathieu@sats.ac.za)
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

/* Unified Grader - local_unifiedgrader styles. */
/* stylelint-disable declaration-no-important */

/* Hide the activity header/description that Moodle injects above our grading interface.
   grade.php uses pagelayout-embedded, so scope to that layout only. */
.pagelayout-embedded .activity-header,
.pagelayout-embedded .activity-description,
.pagelayout-embedded .activity-information {
    display: none !important;
}

.local-unifiedgrader-container {
    height: calc(100vh - 60px);
}

/* Below 1200px the header text wraps — increase header height to accommodate. */
@media (max-width: 1199px) {
    .local-unifiedgrader-container > .d-flex.border-bottom {
        height: 110px !important;
    }
}

.local-unifiedgrader-container [data-region="preview-panel"],
.local-unifiedgrader-container [data-region="marking-panel"] {
    height: 100%;
    overflow-y: auto;
}

.local-unifiedgrader-container [data-region="document-preview"] {
    padding-left: 20px;
}

.local-unifiedgrader-container [data-region="preview-content"] .card-body {
    max-height: calc(100vh - 200px);
    overflow-y: auto;
}

.local-unifiedgrader-container .note-item {
    background-color: var(--bs-warning-bg-subtle, #fff3cd);
    border-color: var(--bs-warning-border-subtle, #ffe69c);
}

.local-unifiedgrader-container [data-region="file-list"] .list-group-item:hover {
    background-color: var(--bs-primary-bg-subtle, #cfe2ff);
}

.local-unifiedgrader-container [data-region="participant-list"] .list-group-item.active {
    background-color: var(--bs-primary);
    color: var(--bs-white);
}

.local-unifiedgrader-container .saving-indicator {
    opacity: 0.6;
    pointer-events: none;
}

/* Allow the student navigator and comments dropdowns to overflow the fixed-height header. */
.local-unifiedgrader-container [data-region="student-navigator"],
.local-unifiedgrader-container [data-region="student-info-header"] {
    overflow: visible;
}

.local-unifiedgrader-container .local-unifiedgrader-nav-dropdown {
    position: absolute;
    top: 100%;
    right: 0;
    width: 320px;
    z-index: 200;
    background-color: #fff;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.375rem;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    padding: 0.75rem;
}

/* Layout toggle: preview-only — hide grading panel, expand preview to full width. */
.local-unifiedgrader-container.layout-preview-only [data-region="marking-panel-wrapper"] {
    display: none !important;
}

.local-unifiedgrader-container.layout-preview-only [data-region="preview-panel"] {
    flex: 0 0 100% !important;
    max-width: 100% !important;
}

/* Layout toggle: grade-only — hide preview panel, expand grading to full width. */
.local-unifiedgrader-container.layout-grade-only [data-region="preview-panel"] {
    display: none !important;
}

.local-unifiedgrader-container.layout-grade-only [data-region="marking-panel-wrapper"] {
    flex: 0 0 100% !important;
    max-width: 100% !important;
}

.local-unifiedgrader-container [data-region="loading-overlay"] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(255, 255, 255, 0.7);
    z-index: 100;
}

/* PDF viewer — continuous scroll page slots. */
.local-unifiedgrader-container .pdf-page-slot,
.local-unifiedgrader-feedback .pdf-page-slot {
    display: flex;
    justify-content: center;
    padding: 8px 0;
}

.local-unifiedgrader-container .pdf-page-slot + .pdf-page-slot,
.local-unifiedgrader-feedback .pdf-page-slot + .pdf-page-slot {
    margin-top: 4px;
}

/* PDF viewer. */
.local-unifiedgrader-container [data-region="pdf-viewer"] {
    background-color: var(--bs-gray-200, #e9ecef);
}

.local-unifiedgrader-container [data-region="pdf-page-container"] {
    scrollbar-width: thin;
}

.local-unifiedgrader-container [data-region="pdf-canvas-wrapper"] {
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
    background-color: #fff;
}

.local-unifiedgrader-container [data-region="pdf-controls"] button {
    line-height: 1;
}

.local-unifiedgrader-container [data-region="pdf-controls"] button:disabled {
    opacity: 0.35;
}

/* Annotation toolbar. */
.local-unifiedgrader-container [data-region="annotation-toolbar"] {
    padding-left: 12px;
}

.local-unifiedgrader-container [data-region="annotation-toolbar-inner"] {
    min-height: 36px;
}

.local-unifiedgrader-container .annotation-color-btn {
    width: 20px;
    height: 20px;
    border: 2px solid transparent !important;
    transition: border-color 0.15s;
}

.local-unifiedgrader-container .annotation-color-btn.active {
    border-color: var(--bs-dark, #212529) !important;
    box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--bs-dark, #212529);
}

.local-unifiedgrader-container .annotation-color-btn:hover {
    border-color: var(--bs-secondary, #6c757d) !important;
}

/* Comment picker (library + free text) for annotation tool. */
.annotation-comment-picker {
    position: absolute;
    z-index: 10;
    background: #fff;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.375rem;
    padding: 0;
    width: 360px;
    max-height: 420px;
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.annotation-comment-picker .picker-library {
    flex: 1 1 auto;
    overflow: hidden;
    min-height: 0;
    display: flex;
    flex-direction: column;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
}

.annotation-comment-picker .picker-tags {
    padding: 0.375rem 0.5rem;
    border-bottom: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, 0.06));
    flex-shrink: 0;
}

.annotation-comment-picker .picker-list {
    flex: 1 1 auto;
    overflow-y: auto;
    max-height: 240px;
}

.annotation-comment-picker .picker-comment-item {
    padding: 0.375rem 0.5rem;
    border-bottom: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, 0.06));
    cursor: pointer;
    transition: background-color 0.1s;
    font-size: 0.8125rem;
    line-height: 1.35;
}

.annotation-comment-picker .picker-comment-item:last-child {
    border-bottom: none;
}

.annotation-comment-picker .picker-comment-item:hover {
    background-color: var(--bs-primary-bg-subtle, #cfe2ff);
}

.annotation-comment-picker .picker-freetext {
    flex-shrink: 0;
    padding: 0.5rem;
}

.annotation-comment-picker .picker-freetext textarea {
    resize: vertical;
    min-height: 48px;
    font-size: 0.8125rem;
}

/* Autocomplete dropdown in the free-text section. */
.annotation-comment-picker .picker-autocomplete {
    display: none;
    max-height: 150px;
    overflow-y: auto;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.25rem;
    background: #fff;
    margin-top: 0.25rem;
    margin-bottom: 0.25rem;
}

.annotation-comment-picker .picker-ac-item {
    padding: 0.3rem 0.5rem;
    cursor: pointer;
    font-size: 0.78rem;
    line-height: 1.3;
    border-bottom: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, 0.06));
}

.annotation-comment-picker .picker-ac-item:last-child {
    border-bottom: none;
}

.annotation-comment-picker .picker-ac-item:hover,
.annotation-comment-picker .picker-ac-item.active {
    background-color: var(--bs-primary-bg-subtle, #cfe2ff);
}

/* Autocomplete dropdown for marking guide remark textareas. */
.ug-autocomplete-dropdown {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    z-index: 20;
    max-height: 180px;
    overflow-y: auto;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.25rem;
    background: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    margin-top: 2px;
}

.ug-ac-item {
    padding: 0.35rem 0.5rem;
    cursor: pointer;
    font-size: 0.78rem;
    line-height: 1.35;
    border-bottom: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, 0.06));
}

.ug-ac-item:last-child {
    border-bottom: none;
}

.ug-ac-item:hover,
.ug-ac-item.active {
    background-color: var(--bs-primary-bg-subtle, #cfe2ff);
}

.annotation-comment-picker .picker-empty,
.annotation-comment-picker .picker-loading {
    padding: 1rem;
    text-align: center;
    color: var(--bs-secondary-color, #6c757d);
    font-size: 0.8125rem;
}

/* Comment tooltip (read-only hover display). */
.annotation-comment-tooltip {
    position: absolute;
    z-index: 9;
    background: var(--bs-dark, #212529);
    color: #fff;
    border-radius: 0.25rem;
    padding: 0.25rem 0.5rem;
    max-width: 200px;
    font-size: 0.8125rem;
    line-height: 1.3;
    pointer-events: none;
    white-space: pre-wrap;
    word-wrap: break-word;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.2);
}

/* Word count tooltip for text selection mode. */
.text-selection-wordcount {
    position: absolute;
    z-index: 10;
    background: var(--bs-primary, #0d6efd);
    color: #fff;
    border-radius: 0.75rem;
    padding: 0.15rem 0.6rem;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.4;
    pointer-events: none;
    white-space: nowrap;
    box-shadow: 0 0.125rem 0.375rem rgba(0, 0, 0, 0.25);
}

/* Student feedback view — use full available width, eliminate extra margins/padding. */
.local-unifiedgrader-feedback-page .main-inner {
    max-width: 100% !important;
    margin-bottom: 0 !important;
}

.local-unifiedgrader-feedback-page #region-main {
    max-width: 100% !important;
}

.local-unifiedgrader-feedback-page #page-content {
    padding-bottom: 0 !important;
}

/* Student feedback view — hide breadcrumbs, page heading, and secondary nav.
   Our header bar has a back arrow and activity name, so these are redundant. */
.local-unifiedgrader-feedback-page #page-navbar,
.local-unifiedgrader-feedback-page .breadcrumb-wrapper,
.local-unifiedgrader-feedback-page nav[aria-label="breadcrumb"],
.local-unifiedgrader-feedback-page #page-header,
.local-unifiedgrader-feedback-page .secondary-navigation,
.local-unifiedgrader-feedback-page #page-footer {
    display: none !important;
}

/* Responsive media in marking panel (teacher grading view). */
.local-unifiedgrader-container [data-region="marking-panel"] video,
.local-unifiedgrader-container [data-region="marking-panel"] img,
.local-unifiedgrader-container [data-region="marking-panel"] iframe {
    max-width: 100%;
    height: auto;
}

/* Audio elements need block display and must NOT have height:auto (no intrinsic height). */
.local-unifiedgrader-container [data-region="marking-panel"] audio {
    display: block;
    width: 100%;
    max-width: 100%;
}

/* Feedback display banner — ensure audio/video players render visibly. */
.local-unifiedgrader-container [data-region="feedback-display-content"] audio,
.local-unifiedgrader-container [data-region="feedback-display-content"] video {
    display: block;
    width: 100%;
    margin: 0.5rem 0;
}

/* Student feedback view — responsive media in feedback panel. */
.local-unifiedgrader-feedback .card-body video,
.local-unifiedgrader-feedback .card-body img {
    max-width: 100%;
    height: auto;
}

/* Student feedback view — iframes (embedded videos) need explicit dimensions. */
.local-unifiedgrader-feedback .card-body iframe {
    max-width: 100%;
    min-height: 240px;
}

/* Student feedback view — audio needs block display, no height:auto. */
.local-unifiedgrader-feedback .card-body audio {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0.5rem 0;
}

/* Student feedback view — hide annotation toolbar (read-only mode). */
.local-unifiedgrader-feedback [data-region="annotation-toolbar"] {
    display: none !important;
}

/* Student feedback view — PDF viewer needs the same canvas positioning. */
.local-unifiedgrader-feedback [data-region="pdf-viewer"] {
    background-color: var(--bs-gray-200, #e9ecef);
}

.local-unifiedgrader-feedback [data-region="pdf-canvas-wrapper"] {
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
    background-color: #fff;
}

.local-unifiedgrader-feedback [data-region="pdf-canvas-wrapper"] .canvas-container {
    position: absolute !important;
    top: 0;
    left: 0;
    z-index: 2 !important;
}

.local-unifiedgrader-feedback [data-region="pdf-page-container"] {
    scrollbar-width: thin;
}

/* PDF.js text layer — transparent text positioned over the PDF canvas for selection. */
[data-region="pdf-text-layer"] {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    line-height: 1.0;
    pointer-events: none;
    overflow: visible;
    opacity: 1;
    -webkit-text-size-adjust: none;
    text-size-adjust: none;
    -webkit-user-select: none;
    user-select: none;
}

[data-region="pdf-text-layer"] span,
[data-region="pdf-text-layer"] br {
    color: transparent;
    position: absolute;
    white-space: pre;
    transform-origin: 0% 0%;
}

/* When text selection is enabled (select mode or read-only). */
[data-region="pdf-text-layer"].text-selectable {
    z-index: 4 !important;
    -webkit-user-select: text;
    user-select: text;
}

[data-region="pdf-text-layer"].text-selectable span {
    pointer-events: auto;
    cursor: text;
    -webkit-user-select: text;
    user-select: text;
}

[data-region="pdf-text-layer"] ::selection {
    background: rgba(0, 0, 255, 0.25);
    mix-blend-mode: multiply;
}

/* PDF.js link overlay — clickable hyperlinks positioned above all layers. */
[data-region="pdf-link-layer"] {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 5;
    pointer-events: none;
    overflow: visible;
}

[data-region="pdf-link-layer"] a {
    pointer-events: auto;
    position: absolute;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.15s;
}

[data-region="pdf-link-layer"] a:hover {
    opacity: 1;
    background: rgba(255, 255, 0, 0.15);
    outline: 2px solid rgba(0, 0, 255, 0.3);
    border-radius: 2px;
}

/* Fabric.js canvas container — Fabric creates a wrapper div that needs positioning. */
.local-unifiedgrader-container [data-region="pdf-canvas-wrapper"] .canvas-container {
    position: absolute !important;
    top: 0;
    left: 0;
    z-index: 2 !important;
}

/* Document info popout. */
.local-unifiedgrader-docinfo-popout {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    width: 280px;
    max-width: calc(100vw - 2rem);
    z-index: 200;
    background: #fff;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.5rem;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
    padding: 0.75rem;
    font-size: 0.8125rem;
}

.local-unifiedgrader-docinfo-popout .docinfo-row {
    display: flex;
    justify-content: space-between;
    padding: 0.25rem 0;
    border-bottom: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, 0.06));
}

.local-unifiedgrader-docinfo-popout .docinfo-row:last-child {
    border-bottom: none;
}

.local-unifiedgrader-docinfo-popout .docinfo-label {
    color: var(--bs-secondary-color, #6c757d);
    flex-shrink: 0;
    margin-right: 0.5rem;
}

.local-unifiedgrader-docinfo-popout .docinfo-value {
    text-align: right;
    word-break: break-all;
    font-weight: 500;
}

/* Student profile popout — fixed positioning set by JS for viewport clamping. */
.local-unifiedgrader-profile-popout {
    position: fixed;
    width: 320px;
    max-width: calc(100vw - 2rem);
    z-index: 1050;
    background: #fff;
    border: 2px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.75rem;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
}

/* Submission comments popout — messenger style. */
.local-unifiedgrader-comments-popout {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    width: 440px;
    max-width: calc(100vw - 2rem);
    max-height: 520px;
    z-index: 200;
    background: #fff;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.75rem;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12);
    display: flex;
    flex-direction: column;
}

.local-unifiedgrader-comments-popout .comments-header {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
}

.local-unifiedgrader-comments-popout [data-region="comments-list"] {
    flex: 1 1 auto;
    overflow-y: auto;
    max-height: 380px;
    padding: 0.75rem;
}

.local-unifiedgrader-comments-popout [data-region="comments-form"] {
    border-top: 1px solid var(--bs-border-color, #dee2e6);
    padding: 0.75rem;
}

/* Shared chat bubble styles (grading popout + student feedback view). */
.comment-bubble {
    margin-bottom: 0.75rem;
    max-width: 85%;
    position: relative;
}

.comment-bubble:last-child {
    margin-bottom: 0;
}

.comment-bubble-own {
    margin-left: auto;
    text-align: right;
}

.comment-bubble-other {
    margin-right: auto;
    text-align: left;
}

.comment-bubble .comment-meta {
    font-size: 0.7rem;
    color: var(--bs-secondary-color, #6c757d);
    margin-bottom: 0.2rem;
    display: flex;
    align-items: baseline;
    gap: 0.375rem;
}

.comment-bubble-own .comment-meta {
    justify-content: flex-end;
}

.comment-bubble .comment-body {
    padding: 0.5rem 0.875rem;
    border-radius: 1.125rem;
    font-size: 0.875rem;
    line-height: 1.45;
    word-break: break-word;
    display: inline-block;
    text-align: left;
}

.comment-bubble-own .comment-body {
    background-color: var(--bs-primary, #0d6efd);
    color: #fff;
    border-bottom-right-radius: 0.25rem;
}

.comment-bubble-own .comment-body a {
    color: #fff;
    text-decoration: underline;
}

.comment-bubble-other .comment-body {
    background-color: var(--bs-gray-100, #f8f9fa);
    color: var(--bs-body-color, #212529);
    border-bottom-left-radius: 0.25rem;
}

.comment-bubble .comment-delete-btn {
    opacity: 0;
    transition: opacity 0.15s;
    font-size: 0.65rem;
    line-height: 1;
}

.comment-bubble:hover .comment-delete-btn {
    opacity: 0.6;
}

.comment-bubble .comment-delete-btn:hover {
    opacity: 1 !important;
}

/* Student feedback view — comments card. */
.local-unifiedgrader-feedback [data-region="feedback-comments"] [data-region="comments-list"] {
    min-height: 80px;
}

/* Student feedback view — popouts anchored to right (icons are in top-right header). */
.local-unifiedgrader-feedback .local-unifiedgrader-comments-popout,
.local-unifiedgrader-feedback .local-unifiedgrader-files-popout {
    left: auto;
    right: 0;
}

/* Activity overview — popout anchored to right (icon sits at far right of dates row). */
.local-unifiedgrader-activity-comments .local-unifiedgrader-comments-popout {
    left: auto;
    right: 0;
}

/* Collapsible card sections — chevron rotation. */
.local-unifiedgrader-container [data-bs-toggle="collapse"] .collapse-icon {
    transition: transform 0.2s ease;
}

.local-unifiedgrader-container [data-bs-toggle="collapse"].collapsed .collapse-icon {
    transform: rotate(-90deg);
}

/* Chevron rotation when the icon itself is the collapse toggle (rubric section). */
.local-unifiedgrader-container .collapse-icon[data-bs-toggle="collapse"] {
    transition: transform 0.2s ease;
}

.local-unifiedgrader-container .collapse-icon[data-bs-toggle="collapse"].collapsed {
    transform: rotate(-90deg);
}

/* Feedback files filemanager — constrain thumbnails rendered by our custom refresh. */
.local-unifiedgrader-container .filemanager .fp-content .fp-file {
    display: inline-block;
    text-align: center;
    width: 110px;
    vertical-align: top;
    padding: 0.25rem;
    cursor: pointer;
}

.local-unifiedgrader-container .filemanager .fp-content .fp-thumbnail img {
    max-width: 64px;
    max-height: 64px;
}

.local-unifiedgrader-container .filemanager .fp-content .fp-thumbnail {
    position: relative;
    display: inline-block;
}

.local-unifiedgrader-container .filemanager .fp-content .fp-saved-badge {
    position: absolute;
    bottom: -2px;
    right: -2px;
    font-size: 1rem;
    color: #198754;
    background: #fff;
    border-radius: 50%;
    line-height: 1;
}

.local-unifiedgrader-container .filemanager .fp-content .fp-filename {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.75rem;
    max-width: 100px;
    margin: 0 auto;
}

/* Forum post plagiarism popout. */
.local-unifiedgrader-plagiarism-popout {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    width: 300px;
    max-width: calc(100vw - 2rem);
    max-height: 320px;
    overflow-y: auto;
    z-index: 200;
    background: #fff;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.5rem;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
    padding: 0.75rem;
    font-size: 0.8125rem;
}

.local-unifiedgrader-plagiarism-popout .plagiarism-popout-content a {
    word-break: break-all;
}

.plagiarism-shield-btn:hover {
    text-decoration: none;
    opacity: 0.8;
}

.plagiarism-shield-btn:focus-visible {
    outline: 2px solid var(--bs-primary, #0d6efd);
    outline-offset: 2px;
    border-radius: 2px;
}

/* Comment library popout — fixed positioning to escape overflow-auto ancestor. */
.local-unifiedgrader-clib-popout {
    position: fixed;
    width: 480px;
    max-width: calc(100vw - 1rem);
    max-height: 600px;
    z-index: 300;
    background: #fff;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.75rem;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.14);
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
}

.local-unifiedgrader-clib-popout .clib-header {
    flex-shrink: 0;
}

.local-unifiedgrader-clib-popout .clib-tags {
    flex-shrink: 0;
}

.local-unifiedgrader-clib-popout .clib-tags .badge {
    cursor: pointer;
    font-size: 0.7rem;
    font-weight: 500;
    transition: background-color 0.15s;
}

.local-unifiedgrader-clib-popout .clib-tags .badge:hover {
    opacity: 0.85;
}

.local-unifiedgrader-clib-popout .clib-list {
    flex: 1 1 auto;
    overflow-y: auto;
    min-height: 0;
}

.local-unifiedgrader-clib-popout .clib-comment-item {
    padding: 0.5rem;
    border-bottom: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, 0.06));
    cursor: pointer;
    transition: background-color 0.1s;
}

.local-unifiedgrader-clib-popout .clib-comment-item:last-child {
    border-bottom: none;
}

.local-unifiedgrader-clib-popout .clib-comment-item:hover {
    background-color: var(--bs-primary-bg-subtle, #cfe2ff);
}

.local-unifiedgrader-clib-popout .clib-comment-text {
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.local-unifiedgrader-clib-popout .clib-footer {
    flex-shrink: 0;
    border-top: 1px solid var(--bs-border-color, #dee2e6);
    padding-top: 0.5rem;
}

/* Comment library clipboard toast. */
.local-unifiedgrader-clib-toast {
    position: fixed;
    bottom: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    background: var(--bs-dark, #212529);
    color: #fff;
    padding: 0.5rem 1.25rem;
    border-radius: 2rem;
    font-size: 0.8125rem;
    z-index: 9999;
    pointer-events: none;
    animation: clib-toast-fade 2s ease forwards;
}

@keyframes clib-toast-fade {
    0% {
        opacity: 1;
    }
    75% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}

/* Comment library modal — wider than default .modal-lg. */
.local-unifiedgrader-clib-modal {
    max-width: 960px;
}

/* Feedback files popout. */
.local-unifiedgrader-files-popout {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    width: 340px;
    max-width: calc(100vw - 2rem);
    max-height: 400px;
    z-index: 200;
    background: #fff;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.75rem;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12);
    overflow-y: auto;
}

/* Penalty popout — fixed positioning like comment library popout. */
.local-unifiedgrader-penalty-popout {
    position: fixed;
    width: 340px;
    max-width: calc(100vw - 1rem);
    max-height: 400px;
    z-index: 300;
    background: #fff;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.75rem;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.14);
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
}

.local-unifiedgrader-penalty-popout .penalty-section {
    margin-bottom: 0.75rem;
}

.local-unifiedgrader-penalty-popout .penalty-section:last-child {
    margin-bottom: 0;
}

.local-unifiedgrader-penalty-popout .penalty-preset-btn {
    font-size: 0.75rem;
    padding: 0.2rem 0.5rem;
    border-radius: 0.25rem;
    cursor: pointer;
    transition: background-color 0.15s;
}

.local-unifiedgrader-penalty-popout .penalty-preset-btn.active {
    background-color: var(--bs-danger, #dc3545);
    color: #fff;
    border-color: var(--bs-danger, #dc3545);
}

.local-unifiedgrader-penalty-popout .penalty-active-item {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

/* Penalty badges in marking panel and student view. */
.local-unifiedgrader-penalty-badge {
    font-size: 0.75rem;
    font-weight: 500;
}

/* Assignment view — inline submission comments widget. */
.local-unifiedgrader-inline-comments {
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.75rem;
    overflow: hidden;
}

.local-unifiedgrader-inline-comments [data-region="comments-list"] {
    max-height: 300px;
    overflow-y: auto;
    padding: 0.75rem;
}

.local-unifiedgrader-inline-comments [data-region="comments-form"] {
    border-top: 1px solid var(--bs-border-color, #dee2e6);
    padding: 0.75rem;
}

/* Hide the broken feedback section on the quiz view page.
   Gradebook feedback with embedded media (audio/video) cannot serve files
   through the quiz module's pluginfile handler. Students access full feedback
   via the Unified Grader feedback view instead. */
#page-mod-quiz-view #feedback {
    display: none !important;
}
/* stylelint-enable declaration-no-important */

/* -------------------------------------------------------------------------
   Help / documentation page (help.php → templates/help.mustache).
   Sidebar TOC with sticky positioning, comfortable line length for the
   main content column, and styled screenshot placeholders.
   ------------------------------------------------------------------------- */
.local-unifiedgrader-help-toc {
    border-right: 1px solid var(--bs-border-color, #dee2e6);
    max-height: calc(100vh - 80px);
    overflow-y: auto;
}

.local-unifiedgrader-help-toc .nav-link {
    color: var(--bs-body-color, #212529);
    border-radius: 0.25rem;
}

.local-unifiedgrader-help-toc .nav-link:hover,
.local-unifiedgrader-help-toc .nav-link:focus {
    background-color: var(--bs-tertiary-bg, #f8f9fa);
}

.local-unifiedgrader-help-main {
    max-width: 920px;
    line-height: 1.55;
    padding: 1rem 1.5rem 4rem;
}

.local-unifiedgrader-help-main h2 {
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 2px solid var(--bs-border-color, #dee2e6);
}

.local-unifiedgrader-help-main section:first-of-type h2 {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

.local-unifiedgrader-help-main h3 {
    margin-top: 1.75rem;
}

.local-unifiedgrader-help-main h4 {
    margin-top: 1.25rem;
    font-size: 1.05rem;
    color: var(--bs-secondary-color, #495057);
}

.local-unifiedgrader-help-main code {
    font-size: 0.85em;
}

.local-unifiedgrader-help-screenshot {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem;
    margin: 1rem 0;
    border: 2px dashed var(--bs-border-color, #adb5bd);
    border-radius: 0.5rem;
    background:
        repeating-linear-gradient(
            45deg,
            var(--bs-tertiary-bg, #f8f9fa),
            var(--bs-tertiary-bg, #f8f9fa) 10px,
            transparent 10px,
            transparent 20px
        );
    color: var(--bs-secondary-color, #6c757d);
    font-style: italic;
    font-size: 0.9rem;
}

.local-unifiedgrader-help-screenshot .fa-image {
    font-size: 1.5rem;
    flex-shrink: 0;
}

.local-unifiedgrader-help-figure {
    text-align: center;
}

.local-unifiedgrader-help-figure svg {
    max-width: 100%;
    height: auto;
}

.local-unifiedgrader-help-figure figcaption {
    margin-top: 0.5rem;
    text-align: left;
}


.core_payment_gateways_modal .paypal .icon {
    height: 40px;
    width: auto;
}
.assignfeedback_editpdf_widget .toolbar ul {
    display: none;
}

.assignfeedback_editpdf_widget .toolbar li {
    list-style-type: none;
}

.assignfeedback_editpdf_widget .drawingcanvas {
    position: relative;
    min-width: 817px;
    min-height: 400px;
    background-repeat: no-repeat;
    background-color: #ccc;
    margin-left: auto;
    margin-right: auto;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 1px 20px rgba(0, 0, 0, .2);
}

.assignfeedback_editpdf_widget .moodle-dialogue-bd .drawingregion {
    position: inherit;
}

.assignfeedback_editpdf_widget .drawingregion[data-currenttool=select] .commentdrawable textarea,
.assignfeedback_editpdf_widget .drawingregion[data-currenttool=select] .commentdrawable svg {
    cursor: move;
}

.assignfeedback_editpdf_widget .infoicon {
    display: none;
}

.assignfeedback_editpdf_widget .warningmessages {
    position: absolute;
    margin-left: 20px;
    margin-right: 20px;
    bottom: 20px;
}

.assignfeedback_editpdf_widget .drawingregion {
    border: 1px solid #ccc;
    left: 1em;
    right: 1em;
    top: 52px;
    bottom: 0;
    position: absolute;
    overflow: auto;
    background-color: #ccc;
    touch-action: none;
}

.assignfeedback_editpdf_widget {
    user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
}

.assignfeedback_editpdf_widget .pageheader {
    background-color: #ebebeb;
    border-bottom: 1px solid #ccc;
    padding: 0;
    padding-left: 20px;
    padding-right: 20px;
    min-height: 50px;
    height: 52px;
    overflow: auto;
}

.moodle-dialogue-base .moodle-dialogue.assignfeedback_editpdf_widget .moodle-dialogue-bd {
    padding: 0;
}

.yui3-colourpicker-hidden,
.yui3-commentsearch-hidden,
.yui3-commentmenu-hidden {
    display: none;
}

.assignfeedback_editpdf_widget .pageheader button img {
    padding-top: 3px;
    vertical-align: top;
}

.assignfeedback_editpdf_widget .pageheader button:active {
    background-color: #ccc;
}

.assignfeedback_editpdf_widget .pageheader select,
.assignfeedback_editpdf_widget .pageheader button {
    background: none;
    padding: 4px 7px;
    border: 0;
    border-radius: 0;
    margin: 0;
    height: 30px;
    line-height: 30px;
    vertical-align: top;
    cursor: pointer;
}

.assignfeedback_editpdf_widget .pageheader select {
    vertical-align: top;
    -webkit-appearance: none;
    -moz-appearance: menulist-text;
    background-color: #fff;
    padding: 0 10px;
}

.assignfeedback_editpdf_widget .pageheader select::-ms-expand {
    display: none;
}

.assignfeedback_editpdf_widget .pageheader .navigation button + button,
.assignfeedback_editpdf_widget .pageheader .toolbar button + button,
.assignfeedback_editpdf_widget .pageheader .navigation select + button,
.assignfeedback_editpdf_widget .pageheader .toolbar select + button {
    border-left: 1px solid #ccc;
    border-right: 0;
}

.assignfeedback_editpdf_widget .pageheader .navigation button {
    border-right: 1px solid #ccc;
}

.assignfeedback_editpdf_widget .pageheader .toolbar,
.assignfeedback_editpdf_widget .pageheader .navigation-search,
.assignfeedback_editpdf_widget .pageheader .navigation-expcol,
.assignfeedback_editpdf_widget .pageheader .navigation {
    border: 1px solid #ccc;
    border-bottom-color: #b3b3b3;
    border-radius: 4px;
    margin: 10px 4px;
    background-color: white;
    height: 30px;
    line-height: 30px;
    padding: 0;
}

.assignfeedback_editpdf_commentsearch ul {
    max-height: 400px;
    overflow-y: auto;
    padding: 1em;
}

.assignfeedback_editpdf_commentsearch ul li pre {
    background-color: #efefef;
    white-space: pre-wrap;
    word-break: break-word;
}

.assignfeedback_editpdf_commentsearch ul li pre:hover {
    background-color: #ddd;
}

.assignfeedback_editpdf_commentsearch ul li {
    margin: 2px;
}

.assignfeedback_editpdf_commentsearch a pre {
    font-family: helvetica;
    margin: 0;
    padding: 4px;
}

.assignfeedback_editpdf_widget .navigation-search,
.assignfeedback_editpdf_widget .navigation-expcol,
.assignfeedback_editpdf_widget .navigation {
    float: left;
}

.assignfeedback_editpdf_widget .toolbar_group {
    float: right;
}

.assignfeedback_editpdf_widget .toolbar button {
    box-shadow: none;
    -moz-box-shadow: none;
    -webkit-box-shadow: none;
}

.assignfeedback_editpdf_widget .toolbar > button.rotateleftbutton {
    /*rtl:raw:
    border-right: 1px solid #ccc;
    border-left: 0;
    */
    /*rtl:ignore*/
    float: left;
}

.assignfeedback_editpdf_widget .toolbar > button.rotaterightbutton {
    /*rtl:ignore*/
    float: right;
}

.assignfeedback_editpdf_widget .toolbar {
    float: left;
}

.assignfeedback_editpdf_widget .navigation,
.assignfeedback_editpdf_widget .navigation-search,
.assignfeedback_editpdf_widget .navigation-expcol,
.assignfeedback_editpdf_widget .toolbar {
    display: inline-block;
}

.assignfeedback_editpdf_colourpicker ul {
    margin: 0;
}

.assignfeedback_editpdf_dropdown li.quicklist_comment {
    width: 200px;
}

.assignfeedback_editpdf_dropdown li.quicklist_comment a {
    white-space: nowrap;
    display: inline-block;
    max-width: 140px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.assignfeedback_editpdf_dropdown a.delete_quicklist_comment {
    float: right;
    width: 20px;
}

.assignfeedback_editpdf_dropdown button {
    border: 0;
    background: none;
    padding: 6px 7px;
    border-radius: 0;
    border-top: 1px solid #ccc;
}

.assignfeedback_editpdf_dropdown li:first-child button {
    border-top: 0;
}

.moodle-dialogue-base .moodle-dialogue.assignfeedback_editpdf_dropdown .moodle-dialogue-wrap {
    box-shadow: none;
    -moz-box-shadow: none;
    -webkit-box-shadow: none;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    border-radius: 4px;
}

.moodle-dialogue-base .moodle-dialogue.assignfeedback_editpdf_dropdown .moodle-dialogue-bd {
    padding: 0;
}

.moodle-dialogue-base .assignfeedback_editpdf_dropdown .moodle-dialogue-wrap .moodle-dialogue-hd,
.moodle-dialogue-base .assignfeedback_editpdf_dropdown .moodle-dialogue-wrap .moodle-dialogue-ft {
    display: none;
}

.assignfeedback_editpdf_menu li hr {
    margin: 0;
}

.assignfeedback_editpdf_menu li a {
    text-decoration: none;
    color: #555;
    margin-left: 10px;
    margin-right: 10px;
    margin-top: 4px;
    margin-bottom: 4px;
}

ul.assignfeedback_editpdf_search {
    margin: 0;
}

.assignfeedback_editpdf_search li {
    list-style-type: none;
}

.assignfeedback_editpdf_search li a {
    text-decoration: none;
    color: #555;
}

.assignfeedback_editpdf_menu li:hover {
    background-color: #ebebeb;
}

ul.assignfeedback_editpdf_menu {
    margin: 0;
    max-height: 40vh;
    overflow-y: auto;
    overflow-x: hidden;
}

.assignfeedback_editpdf_menu li {
    list-style-type: none;
    margin: 0;
    border-radius: 4px;
}

.assignfeedback_editpdf_menu li button {
    margin: 0;
    background: none;
}

.assignfeedback_editpdf_widget .pageheader button:hover {
    background-color: #ebebeb;
    background-image: radial-gradient(ellipse at center, #fff 60%, #dfdfdf 100%);
}

.assignfeedback_editpdf_widget .pageheader button.assignfeedback_editpdf_selectedbutton:hover,
.assignfeedback_editpdf_widget .pageheader button.assignfeedback_editpdf_selectedbutton {
    background-color: #dfdfdf;
    background-image: radial-gradient(ellipse at center, #fff 40%, #dfdfdf 100%);
}

.assignfeedback_editpdf_widget .commentdrawable img {
    margin: 0 5px;
}

.assignfeedback_editpdf_widget .commentdrawable a {
    float: right;
    position: relative;
    left: -17px;
    top: 2px;
    height: 16px;
    width: 16px;
}

.assignfeedback_editpdf_widget .commentdrawable textarea {
    padding: 4px;
    padding-right: 20px;
    resize: none;
    overflow: hidden;
    color: black;
    border: 2px solid #ccc;
    border-radius: 4px;
    font-size: 16px;
    font-family: helvetica;
    min-height: 1.2em;
}

.assignfeedback_editpdf_widget .commentdrawable textarea:focus {
    outline: thin dotted #333;
    outline-color: -webkit-focus-ring-color;
    outline-width: 5px;
    outline-style: auto;
    outline-offset: -2px;
}

.assignfeedback_editpdf_widget .commentdrawable {
    display: flex;
    z-index: 52;
    height: 0;
}
.assignfeedback_editpdf_widget .annotation {
    z-index: 51;
}

.assignfeedback_editpdf_widget .deleteannotationbutton {
    z-index: 51;
}

.assignfeedback_editpdf_widget .commentdrawable label {
    display: inline-block;
}

.assignfeedback_editpdf_widget .commentdrawable svg {
    display: none;
}

.assignfeedback_editpdf_widget .commentdrawable.commentcollapsed {
    z-index: auto;
    width: 24px;
}

.assignfeedback_editpdf_widget .commentdrawable.commentcollapsed textarea,
.assignfeedback_editpdf_widget .commentdrawable.commentcollapsed a {
    display: none;
}

.assignfeedback_editpdf_widget .commentdrawable.commentcollapsed svg {
    display: inline-block;
    width: 24px;
    height: 24px;
}

.assignfeedback_editpdf_widget .drawingcanvas .loading .progressbarlabel {
    text-align: center;
}

.hideoverflow {
    overflow: hidden;
    position: relative;
}

@media (max-width: 960px) {
    .assignfeedback_editpdf_widget .pageheader {
        height: 104px;
    }

    .assignfeedback_editpdf_widget .drawingregion {
        top: 104px;
    }
}

@media (max-width: 767px) {
    .assignfeedback_editpdf_widget .drawingregion {
        position: relative;
        margin-bottom: 1em;
        top: 0;
        max-height: 312px;
    }

    .assignfeedback_editpdf_widget .pageheader {
        height: auto;
    }
}

@media (max-width: 480px) {
    .assignfeedback_editpdf_widget .pageheader {
        padding-left: 5px;
        padding-right: 5px;
    }
}

#page-mod-quiz-report #manualgradingform {
    width: 100%;
}

#page-mod-quiz-report #manualgradingform.mform br {
    clear: none;
}

#page-mod-quiz-report #manualgradingform.mform .clearfix:after {
    clear: none;
}

#page-mod-quiz-report #manualgradingform .que {
    margin-bottom: 0.7em;
}

/* Rubric - grid layout */

.path-mod-workshop .mform.frozen #id_rubric-grid-wrapper,
.path-mod-workshop .assessmentform.rubric #id_rubric-grid-wrapper {
    border: none;
}

.path-mod-workshop .mform.frozen #id_rubric-grid-wrapper legend,
.path-mod-workshop .assessmentform.rubric #id_rubric-grid-wrapper legend {
    display: none;
}

.path-mod-workshop .mform.frozen #id_rubric-grid-wrapper th,
.path-mod-workshop .mform.frozen #id_rubric-grid-wrapper td,
.path-mod-workshop .assessmentform.rubric.grid #id_rubric-grid-wrapper th,
.path-mod-workshop .assessmentform.rubric.grid #id_rubric-grid-wrapper td {
    border: 1px solid #ddd;
    padding: 5px;
    vertical-align: top;
}

.path-mod-workshop .mform.frozen #id_rubric-grid-wrapper,
.path-mod-workshop .assessmentform.rubric.grid #id_rubric-grid-wrapper .criterion {
    text-align: center;
}

.path-mod-workshop .assessmentform.rubric.grid #id_rubric-grid-wrapper .fitem {
    text-align: center;
}

.path-mod-workshop .mform.frozen #id_rubric-grid-wrapper .fitem .fitemtitle,
.path-mod-workshop .assessmentform.rubric.grid #id_rubric-grid-wrapper .fitem .fitemtitle {
    display: none;
}

.path-mod-workshop .mform.frozen #id_rubric-grid-wrapper,
.path-mod-workshop #id_rubric-grid-wrapper {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

.path-mod-workshop .mform.frozen #id_rubric-grid-wrapper .checkbox,
.path-mod-workshop .assessmentform.rubric.grid #id_rubric-grid-wrapper .checkbox {
    max-width: 100%;
    flex: 0 0 100%;
    text-align: left;
}

.path-mod-workshop .mform.frozen #id_rubric-grid-wrapper .fitem .felement,
.path-mod-workshop .assessmentform.rubric.grid #id_rubric-grid-wrapper .fitem .felement {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.path-mod-workshop .mform.frozen #id_rubric-grid-wrapper .fitem .felement {
    border: none;
}

.path-mod-workshop .assessmentform.rubric.grid #id_rubric-grid-wrapper .fitem .felement span {
    display: block;
    text-align: center;
}

.path-mod-workshop .assessmentform.rubric.grid #id_rubric-grid-wrapper .fitem .felement span label {
    display: block;
    text-align: center;
}

/* Rubric - list layout */

.path-mod-workshop .mform.frozen .fitem.description.rubric + .fitem .fitemtitle,
.path-mod-workshop .assessmentform.rubric.list #id_rubric-grid-wrapper .fitem .fitemtitle {
    display: none;
}

.path-mod-workshop .mform.frozen .fitem.description.rubric + .fitem .fitemtitle + .felement,
.path-mod-workshop .assessmentform.rubric.list .fitem .felement {
    width: auto;
    border: none;
}

.path-mod-workshop .assessmentform.rubric.list .fitem .felement span input {
    display: block;
    float: left;
}

.path-mod-workshop .assessmentform.rubric.list .fitem .felement.fgroup span label {
    display: block;
    margin-left: 30px;
}

/**
 * Manual allocator
 */

.path-mod-workshop .manual-allocator .allocations {
    margin: 0 auto;
    width: 100%;
}

.path-mod-workshop .manual-allocator .allocations tbody tr:nth-of-type(odd) {
    background-color: #eee;
}

.path-mod-workshop .manual-allocator .allocations tbody tr:nth-of-type(odd).highlightreviewerof,
.path-mod-workshop .manual-allocator .allocations tbody tr:nth-of-type(odd).highlightreviewedby {
    background-color: inherit;
}

.path-mod-workshop .manual-allocator .allocations .peer .image {
    margin-right: 5px;
    vertical-align: middle;
}

.path-mod-workshop .manual-allocator .allocations .reviewedby .image,
.path-mod-workshop .manual-allocator .allocations .reviewerof .image {
    margin-right: 3px;
    vertical-align: middle;
}

.path-mod-workshop .manual-allocator .allocations .highlightreviewedby .reviewedby,
.path-mod-workshop .manual-allocator .allocations .highlightreviewerof .reviewerof {
    background-color: #fff3d2;
}

.path-mod-workshop .manual-allocator .allocations tr td {
    vertical-align: top;
    padding: 5px;
}

.path-mod-workshop .manual-allocator .allocations tr td ul {
    margin: 0;
}

.path-mod-workshop .manual-allocator .allocations tr td ul li {
    list-style: none;
}

.path-mod-workshop .manual-allocator .allocations tr td.peer {
    border-left: 1px solid #ccc;
    border-right: 1px solid #ccc;
}

.path-mod-workshop .manual-allocator .allocations .reviewedby .info,
.path-mod-workshop .manual-allocator .allocations .peer .info,
.path-mod-workshop .manual-allocator .allocations .reviewerof .info {
    font-size: 80%;
    color: #888;
    font-style: italic;
}

.path-mod-workshop .manual-allocator .allocations .peer .submission {
    font-size: 90%;
    margin-top: 1em;
}

.path-mod-workshop .random-allocator .warning {
    width: 100%;
    margin: 0 auto 15px auto;
}

.warning-desc {
    word-wrap: break-word;
}

.warning-desc li {
    margin-bottom: 10px;
}
.tiny-aiplacement-overlay {
    position: absolute;
    background: rgba(255, 255, 255, 1);
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    z-index: 2;
}

.tiny-aiplacement-blur {
    filter: blur(4px);
}

.tiny-aiplacement-loading-spinner-container {
    min-height: 300px;
}

.tiny-aiplacement-loading-spinner {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.tiny-aiplacement-spinner-style {
    width: 3rem !important; /* stylelint-disable-line declaration-no-important */
    height: 3rem !important; /* stylelint-disable-line declaration-no-important */
    color: #0f6cbf;
    z-index: 1000;
}

.tiny-aiplacement-spinner-text-style {
    font-size: 1.5rem;
    font-weight: bold;
    z-index: 1000;
}

.tiny-aiplacement-generate-image,
.tiny-aiplacement-generate-text {
    border-radius: 15px;
    border: 2px dashed #bbb;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100%;
    min-height: 150px;
    margin-left: 0;
    margin-top: 0;
}

.tiny-aiplacement-generate-text textarea:disabled {
    background-color: unset;
}

.tiny_aiplacement_modal {
    min-height: 30em;
}

.tiny-aiplacement-fa-image {
    height: 100%;
    width: 100%;
    background-image: url(/theme/image.php/academi/tiny_aiplacement/1790824836/sparkles-image);
    background-repeat: no-repeat;
    background-position: center;
    background-color: rgba(255, 255, 255, 0.5);
    background-blend-mode: lighten;
    background-size: 100px 100px;
}

.tiny-aiplacement-toggle-container {
    position: relative;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}
.tiny-aiplacement-toggle-switch {
    display: none;
}
.tiny-aiplacement-toggle-slider {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: #fff;
    border-radius: 34px;
    padding: 2px;
    border: 1px solid #aaa;
}
.tiny-aiplacement-toggle-slider span {
    width: 50%;
    text-align: center;
    padding: 5px 0;
    border-radius: 34px;
    cursor: pointer;
    transition: background-color 0.3s, color 0.3s;
}
.tiny-aiplacement-toggle-switch:checked + .tiny-aiplacement-toggle-slider .tiny-aiplacement-slider-right {
    background-color: #007bff;
    color: white;
}
.tiny-aiplacement-toggle-switch:not(:checked) + .tiny-aiplacement-toggle-slider .tiny-aiplacement-slider-left {
    background-color: #007bff;
    color: white;
}

.tiny-aiplacement-aspect-ratio-container {
    display: flex;
}
.tiny-aiplacement-aspect-ratio-btn {
    position: relative;
    width: 100px;
    height: 75px;
    background-color: #f8f9fa;
    border-radius: 15px;
    text-align: center;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: background-color 0.3s, border-color 0.3s;
}
.tiny-aiplacement-aspect-ratio-btn i {
    font-size: 30px;
    margin-bottom: 5px;
}
.tiny-aiplacement-aspect-ratio-btn span {
    font-size: 14px;
}
.tiny-aiplacement-aspect-ratio-btn input[type="radio"] {
    display: none;
}
.tiny-aiplacement-aspect-ratio-btn input[type="radio"]:checked + .tiny-aiplacement-aspect-ratio-label {
    background-color: #007bff;
    color: white;
    border-color: #007bff;
}
.tiny-aiplacement-aspect-ratio-label {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-radius: 15px;
    transition: background-color 0.3s, border-color 0.3s;
    border: 1px solid #aaa;
}

.tiny-aiplacement-fa-text {
    height: 100%;
    width: 100%;
    background-image: url(/theme/image.php/academi/tiny_aiplacement/1790824836/sparkles-text);
    background-repeat: no-repeat;
    background-position: center;
    background-color: rgba(255, 255, 255, 0.5);
    background-blend-mode: lighten;
    background-size: 100px 100px;
}

.tiny-aiplacement-generate-footer button img {
    width: 1.5em;
    margin-right: 0.2em;
}

.tiny-aiplacement-error-display {
    margin: 0 auto;
}

.ai-policy-heading {
    font-size: 1.5rem;
    font-weight: bold;
    margin-bottom: 10px;
    color: #0f6cbf;
}

.ai-policy-display {
    font-size: 1.1rem;
    margin-left: 20px;
    margin-right: 20px;
}

.ai-policy-display br {
    line-height: 2.5rem;
}

@media (max-width: 767px) {
    .tiny_aiplacement_textresponse_placeholder {
        min-height: 12em;
        margin-top: 20px;
    }
}

.tiny_equation_library button {
    margin: 0.25%;
    min-width: 10%;
}

#tiny_media_form {
    padding: 1rem;
}

#tiny_media_form #id_deletefileshdr {
    display: none;
}

#tiny_media_form.has-unused-files #id_deletefileshdr {
    display: block;
}

#tiny_media_form #id_missingfileshdr {
    display: none;
}

#tiny_media_form.has-missing-files #id_missingfileshdr {
    display: block;
}

iframe.mm_iframe {
    height: 650px;
    border: none;
    width: 100%;
}

.missing-files ol {
    padding-left: 15px;
}

.missing-files ol li {
    font-style: italic;
    font-weight: 600;
    color: red;
}

.tiny_image_form .tiny_image_dropzone_container,
.tiny_media_form .tiny_media_dropzone_container {
    height: 200px;
}

.tiny_image_form .tiny_image_dropzone_container .dropzone-label,
.tiny_media_form .tiny_media_dropzone_container .dropzone-label {
    font-size: 1.25rem;
}

.tiny_image_form .tiny_image_loader_container,
.tiny_media_form .tiny_media_loader_container {
    height: 200px;
}

.tiny_image_form  .tiny_image_preview_box {
    height: 300px;
}

.tiny_media_form  .tiny_media_preview_box {
    height: 100%;
}

.tiny_image_form  .tiny_image_preview_box,
.tiny_media_form  .tiny_media_preview_box {
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

.tiny_media_form .tiny_media_preview_box {
    position: relative;
}

.tiny_media_form .tiny_media_preview_box img {
    max-height: 300px;
}

.tiny_image_form .tiny_image_deleteicon,
.tiny_media_form .tiny_media_delete_icon {
    position: absolute;
    top: 5px;
    right: 5px;
    cursor: pointer;
    z-index: 1;
    background: rgba(255, 255, 255, 1);
    padding: 5px 10px;
}

.tiny_image_form .tiny_image_deleteicon .fa-trash,
.tiny_media_form .tiny_media_delete_icon .fa-trash {
    color: #1d2125;
}


@media (max-width: 767px) {
    .tiny_image_form .tiny_image_properties_col,
    .tiny_media_form .tiny_media_properties_col {
        padding: 0;
    }
}

.subtitle-caption {
    text-decoration: underline;
}

.upload-custom-thumbnail,
.delete-custom-thumbnail {
    width: 100%;
}

.cs-link {
    margin-left: -23px;
}

.dropzone-container .dropzone-icon img.icon {
    height: .83em;
    opacity: .4;
}

.tiny_media_preview_tag {
    max-height: 500px;
}

.link_as_audio i,
.link_as_video i {
    font-size: 5em;
    color: #bdc6cd;
}

.link_as_audio:hover i,
.link_as_video:hover i {
    color: rgb(97, 97, 97);
}

#media-filter-preview-container > video {
    width: 100%;
}

.tiny_recordrtc,
.tiny_recordrtc div {
    font-weight: normal;
    line-height: 40px;
    padding: 3px 0 3px 0;
}

.tiny_recordrtc .alert {
    line-height: 40px;
    text-align: center;
}

.tiny_recordrtc audio {
    display: block;
    width: 100%;
}

@media screen and (max-width: 670px) {
    .tiny_recordrtc video {
        display: block;
        height: auto;
        margin: 0 auto;
        width: 100%;
    }
}

@media screen and (min-width: 671px) {
    .tiny_recordrtc video {
        display: block;
        height: 480px;
        margin: 0 auto;
        width: 640px;
    }
}

.tiny_recordrtc #start-stop,
.tiny_recordrtc #upload {
    white-space: normal;
}

.tiny_recordrtc video {
    border-radius: 8px;
}

@charset "UTF-8";
/** Pre-SCSS from theme_boost_get_pre_scss **/
/** Pre-SCSS from theme_academi_get_pre_scss **/
/* End of Eguru*/
/*!
 * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */
:root, :host {
  --fa-style-family-brands: "Font Awesome 6 Brands";
  --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";
}
@font-face {
  font-family: "Font Awesome 6 Brands";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url(/theme/font.php/academi/core/1790824836/fa-brands-400.woff2) format("woff2"), url(/theme/font.php/academi/core/1790824836/fa-brands-400.ttf) format("truetype");
}
.fab, .fa-brands {
  font-weight: 400;
}
.fa-monero {
  --fa: "";
}
.fa-hooli {
  --fa: "";
}
.fa-yelp {
  --fa: "";
}
.fa-cc-visa {
  --fa: "";
}
.fa-lastfm {
  --fa: "";
}
.fa-shopware {
  --fa: "";
}
.fa-creative-commons-nc {
  --fa: "";
}
.fa-aws {
  --fa: "";
}
.fa-redhat {
  --fa: "";
}
.fa-yoast {
  --fa: "";
}
.fa-cloudflare {
  --fa: "";
}
.fa-ups {
  --fa: "";
}
.fa-pixiv {
  --fa: "";
}
.fa-wpexplorer {
  --fa: "";
}
.fa-dyalog {
  --fa: "";
}
.fa-bity {
  --fa: "";
}
.fa-stackpath {
  --fa: "";
}
.fa-buysellads {
  --fa: "";
}
.fa-first-order {
  --fa: "";
}
.fa-modx {
  --fa: "";
}
.fa-guilded {
  --fa: "";
}
.fa-vnv {
  --fa: "";
}
.fa-square-js {
  --fa: "";
}
.fa-js-square {
  --fa: "";
}
.fa-microsoft {
  --fa: "";
}
.fa-qq {
  --fa: "";
}
.fa-orcid {
  --fa: "";
}
.fa-java {
  --fa: "";
}
.fa-invision {
  --fa: "";
}
.fa-creative-commons-pd-alt {
  --fa: "";
}
.fa-centercode {
  --fa: "";
}
.fa-glide-g {
  --fa: "";
}
.fa-drupal {
  --fa: "";
}
.fa-jxl {
  --fa: "";
}
.fa-dart-lang {
  --fa: "";
}
.fa-hire-a-helper {
  --fa: "";
}
.fa-creative-commons-by {
  --fa: "";
}
.fa-unity {
  --fa: "";
}
.fa-whmcs {
  --fa: "";
}
.fa-rocketchat {
  --fa: "";
}
.fa-vk {
  --fa: "";
}
.fa-untappd {
  --fa: "";
}
.fa-mailchimp {
  --fa: "";
}
.fa-css3-alt {
  --fa: "";
}
.fa-square-reddit {
  --fa: "";
}
.fa-reddit-square {
  --fa: "";
}
.fa-vimeo-v {
  --fa: "";
}
.fa-contao {
  --fa: "";
}
.fa-square-font-awesome {
  --fa: "";
}
.fa-deskpro {
  --fa: "";
}
.fa-brave {
  --fa: "";
}
.fa-sistrix {
  --fa: "";
}
.fa-square-instagram {
  --fa: "";
}
.fa-instagram-square {
  --fa: "";
}
.fa-battle-net {
  --fa: "";
}
.fa-the-red-yeti {
  --fa: "";
}
.fa-square-hacker-news {
  --fa: "";
}
.fa-hacker-news-square {
  --fa: "";
}
.fa-edge {
  --fa: "";
}
.fa-threads {
  --fa: "";
}
.fa-napster {
  --fa: "";
}
.fa-square-snapchat {
  --fa: "";
}
.fa-snapchat-square {
  --fa: "";
}
.fa-google-plus-g {
  --fa: "";
}
.fa-artstation {
  --fa: "";
}
.fa-markdown {
  --fa: "";
}
.fa-sourcetree {
  --fa: "";
}
.fa-google-plus {
  --fa: "";
}
.fa-diaspora {
  --fa: "";
}
.fa-foursquare {
  --fa: "";
}
.fa-stack-overflow {
  --fa: "";
}
.fa-github-alt {
  --fa: "";
}
.fa-phoenix-squadron {
  --fa: "";
}
.fa-pagelines {
  --fa: "";
}
.fa-algolia {
  --fa: "";
}
.fa-red-river {
  --fa: "";
}
.fa-creative-commons-sa {
  --fa: "";
}
.fa-safari {
  --fa: "";
}
.fa-google {
  --fa: "";
}
.fa-square-font-awesome-stroke {
  --fa: "";
}
.fa-font-awesome-alt {
  --fa: "";
}
.fa-atlassian {
  --fa: "";
}
.fa-linkedin-in {
  --fa: "";
}
.fa-digital-ocean {
  --fa: "";
}
.fa-nimblr {
  --fa: "";
}
.fa-chromecast {
  --fa: "";
}
.fa-evernote {
  --fa: "";
}
.fa-hacker-news {
  --fa: "";
}
.fa-creative-commons-sampling {
  --fa: "";
}
.fa-adversal {
  --fa: "";
}
.fa-creative-commons {
  --fa: "";
}
.fa-watchman-monitoring {
  --fa: "";
}
.fa-fonticons {
  --fa: "";
}
.fa-weixin {
  --fa: "";
}
.fa-shirtsinbulk {
  --fa: "";
}
.fa-codepen {
  --fa: "";
}
.fa-git-alt {
  --fa: "";
}
.fa-lyft {
  --fa: "";
}
.fa-rev {
  --fa: "";
}
.fa-windows {
  --fa: "";
}
.fa-wizards-of-the-coast {
  --fa: "";
}
.fa-square-viadeo {
  --fa: "";
}
.fa-viadeo-square {
  --fa: "";
}
.fa-meetup {
  --fa: "";
}
.fa-centos {
  --fa: "";
}
.fa-adn {
  --fa: "";
}
.fa-cloudsmith {
  --fa: "";
}
.fa-opensuse {
  --fa: "";
}
.fa-pied-piper-alt {
  --fa: "";
}
.fa-square-dribbble {
  --fa: "";
}
.fa-dribbble-square {
  --fa: "";
}
.fa-codiepie {
  --fa: "";
}
.fa-node {
  --fa: "";
}
.fa-mix {
  --fa: "";
}
.fa-steam {
  --fa: "";
}
.fa-cc-apple-pay {
  --fa: "";
}
.fa-scribd {
  --fa: "";
}
.fa-debian {
  --fa: "";
}
.fa-openid {
  --fa: "";
}
.fa-instalod {
  --fa: "";
}
.fa-files-pinwheel {
  --fa: "";
}
.fa-expeditedssl {
  --fa: "";
}
.fa-sellcast {
  --fa: "";
}
.fa-square-twitter {
  --fa: "";
}
.fa-twitter-square {
  --fa: "";
}
.fa-r-project {
  --fa: "";
}
.fa-delicious {
  --fa: "";
}
.fa-freebsd {
  --fa: "";
}
.fa-vuejs {
  --fa: "";
}
.fa-accusoft {
  --fa: "";
}
.fa-ioxhost {
  --fa: "";
}
.fa-fonticons-fi {
  --fa: "";
}
.fa-app-store {
  --fa: "";
}
.fa-cc-mastercard {
  --fa: "";
}
.fa-itunes-note {
  --fa: "";
}
.fa-golang {
  --fa: "";
}
.fa-kickstarter {
  --fa: "";
}
.fa-square-kickstarter {
  --fa: "";
}
.fa-grav {
  --fa: "";
}
.fa-weibo {
  --fa: "";
}
.fa-uncharted {
  --fa: "";
}
.fa-firstdraft {
  --fa: "";
}
.fa-square-youtube {
  --fa: "";
}
.fa-youtube-square {
  --fa: "";
}
.fa-wikipedia-w {
  --fa: "";
}
.fa-wpressr {
  --fa: "";
}
.fa-rendact {
  --fa: "";
}
.fa-angellist {
  --fa: "";
}
.fa-galactic-republic {
  --fa: "";
}
.fa-nfc-directional {
  --fa: "";
}
.fa-skype {
  --fa: "";
}
.fa-joget {
  --fa: "";
}
.fa-fedora {
  --fa: "";
}
.fa-stripe-s {
  --fa: "";
}
.fa-meta {
  --fa: "";
}
.fa-laravel {
  --fa: "";
}
.fa-hotjar {
  --fa: "";
}
.fa-bluetooth-b {
  --fa: "";
}
.fa-square-letterboxd {
  --fa: "";
}
.fa-sticker-mule {
  --fa: "";
}
.fa-creative-commons-zero {
  --fa: "";
}
.fa-hips {
  --fa: "";
}
.fa-css {
  --fa: "";
}
.fa-behance {
  --fa: "";
}
.fa-reddit {
  --fa: "";
}
.fa-discord {
  --fa: "";
}
.fa-chrome {
  --fa: "";
}
.fa-app-store-ios {
  --fa: "";
}
.fa-cc-discover {
  --fa: "";
}
.fa-wpbeginner {
  --fa: "";
}
.fa-confluence {
  --fa: "";
}
.fa-shoelace {
  --fa: "";
}
.fa-mdb {
  --fa: "";
}
.fa-dochub {
  --fa: "";
}
.fa-accessible-icon {
  --fa: "";
}
.fa-ebay {
  --fa: "";
}
.fa-amazon {
  --fa: "";
}
.fa-unsplash {
  --fa: "";
}
.fa-yarn {
  --fa: "";
}
.fa-square-steam {
  --fa: "";
}
.fa-steam-square {
  --fa: "";
}
.fa-500px {
  --fa: "";
}
.fa-square-vimeo {
  --fa: "";
}
.fa-vimeo-square {
  --fa: "";
}
.fa-asymmetrik {
  --fa: "";
}
.fa-font-awesome {
  --fa: "";
}
.fa-font-awesome-flag {
  --fa: "";
}
.fa-font-awesome-logo-full {
  --fa: "";
}
.fa-gratipay {
  --fa: "";
}
.fa-apple {
  --fa: "";
}
.fa-hive {
  --fa: "";
}
.fa-gitkraken {
  --fa: "";
}
.fa-keybase {
  --fa: "";
}
.fa-apple-pay {
  --fa: "";
}
.fa-padlet {
  --fa: "";
}
.fa-amazon-pay {
  --fa: "";
}
.fa-square-github {
  --fa: "";
}
.fa-github-square {
  --fa: "";
}
.fa-stumbleupon {
  --fa: "";
}
.fa-fedex {
  --fa: "";
}
.fa-phoenix-framework {
  --fa: "";
}
.fa-shopify {
  --fa: "";
}
.fa-neos {
  --fa: "";
}
.fa-square-threads {
  --fa: "";
}
.fa-hackerrank {
  --fa: "";
}
.fa-researchgate {
  --fa: "";
}
.fa-swift {
  --fa: "";
}
.fa-angular {
  --fa: "";
}
.fa-speakap {
  --fa: "";
}
.fa-angrycreative {
  --fa: "";
}
.fa-y-combinator {
  --fa: "";
}
.fa-empire {
  --fa: "";
}
.fa-envira {
  --fa: "";
}
.fa-google-scholar {
  --fa: "";
}
.fa-square-gitlab {
  --fa: "";
}
.fa-gitlab-square {
  --fa: "";
}
.fa-studiovinari {
  --fa: "";
}
.fa-pied-piper {
  --fa: "";
}
.fa-wordpress {
  --fa: "";
}
.fa-product-hunt {
  --fa: "";
}
.fa-firefox {
  --fa: "";
}
.fa-linode {
  --fa: "";
}
.fa-goodreads {
  --fa: "";
}
.fa-square-odnoklassniki {
  --fa: "";
}
.fa-odnoklassniki-square {
  --fa: "";
}
.fa-jsfiddle {
  --fa: "";
}
.fa-sith {
  --fa: "";
}
.fa-themeisle {
  --fa: "";
}
.fa-page4 {
  --fa: "";
}
.fa-hashnode {
  --fa: "";
}
.fa-react {
  --fa: "";
}
.fa-cc-paypal {
  --fa: "";
}
.fa-squarespace {
  --fa: "";
}
.fa-cc-stripe {
  --fa: "";
}
.fa-creative-commons-share {
  --fa: "";
}
.fa-bitcoin {
  --fa: "";
}
.fa-keycdn {
  --fa: "";
}
.fa-opera {
  --fa: "";
}
.fa-itch-io {
  --fa: "";
}
.fa-umbraco {
  --fa: "";
}
.fa-galactic-senate {
  --fa: "";
}
.fa-ubuntu {
  --fa: "";
}
.fa-draft2digital {
  --fa: "";
}
.fa-stripe {
  --fa: "";
}
.fa-houzz {
  --fa: "";
}
.fa-gg {
  --fa: "";
}
.fa-dhl {
  --fa: "";
}
.fa-square-pinterest {
  --fa: "";
}
.fa-pinterest-square {
  --fa: "";
}
.fa-xing {
  --fa: "";
}
.fa-blackberry {
  --fa: "";
}
.fa-creative-commons-pd {
  --fa: "";
}
.fa-playstation {
  --fa: "";
}
.fa-quinscape {
  --fa: "";
}
.fa-less {
  --fa: "";
}
.fa-blogger-b {
  --fa: "";
}
.fa-opencart {
  --fa: "";
}
.fa-vine {
  --fa: "";
}
.fa-signal-messenger {
  --fa: "";
}
.fa-paypal {
  --fa: "";
}
.fa-gitlab {
  --fa: "";
}
.fa-typo3 {
  --fa: "";
}
.fa-reddit-alien {
  --fa: "";
}
.fa-yahoo {
  --fa: "";
}
.fa-dailymotion {
  --fa: "";
}
.fa-affiliatetheme {
  --fa: "";
}
.fa-pied-piper-pp {
  --fa: "";
}
.fa-bootstrap {
  --fa: "";
}
.fa-odnoklassniki {
  --fa: "";
}
.fa-nfc-symbol {
  --fa: "";
}
.fa-mintbit {
  --fa: "";
}
.fa-ethereum {
  --fa: "";
}
.fa-speaker-deck {
  --fa: "";
}
.fa-creative-commons-nc-eu {
  --fa: "";
}
.fa-patreon {
  --fa: "";
}
.fa-avianex {
  --fa: "";
}
.fa-ello {
  --fa: "";
}
.fa-gofore {
  --fa: "";
}
.fa-bimobject {
  --fa: "";
}
.fa-brave-reverse {
  --fa: "";
}
.fa-facebook-f {
  --fa: "";
}
.fa-square-google-plus {
  --fa: "";
}
.fa-google-plus-square {
  --fa: "";
}
.fa-web-awesome {
  --fa: "";
}
.fa-mandalorian {
  --fa: "";
}
.fa-first-order-alt {
  --fa: "";
}
.fa-osi {
  --fa: "";
}
.fa-google-wallet {
  --fa: "";
}
.fa-d-and-d-beyond {
  --fa: "";
}
.fa-periscope {
  --fa: "";
}
.fa-fulcrum {
  --fa: "";
}
.fa-cloudscale {
  --fa: "";
}
.fa-forumbee {
  --fa: "";
}
.fa-mizuni {
  --fa: "";
}
.fa-schlix {
  --fa: "";
}
.fa-square-xing {
  --fa: "";
}
.fa-xing-square {
  --fa: "";
}
.fa-bandcamp {
  --fa: "";
}
.fa-wpforms {
  --fa: "";
}
.fa-cloudversify {
  --fa: "";
}
.fa-usps {
  --fa: "";
}
.fa-megaport {
  --fa: "";
}
.fa-magento {
  --fa: "";
}
.fa-spotify {
  --fa: "";
}
.fa-optin-monster {
  --fa: "";
}
.fa-fly {
  --fa: "";
}
.fa-square-bluesky {
  --fa: "";
}
.fa-aviato {
  --fa: "";
}
.fa-itunes {
  --fa: "";
}
.fa-cuttlefish {
  --fa: "";
}
.fa-blogger {
  --fa: "";
}
.fa-flickr {
  --fa: "";
}
.fa-viber {
  --fa: "";
}
.fa-soundcloud {
  --fa: "";
}
.fa-digg {
  --fa: "";
}
.fa-tencent-weibo {
  --fa: "";
}
.fa-letterboxd {
  --fa: "";
}
.fa-symfony {
  --fa: "";
}
.fa-maxcdn {
  --fa: "";
}
.fa-etsy {
  --fa: "";
}
.fa-facebook-messenger {
  --fa: "";
}
.fa-audible {
  --fa: "";
}
.fa-think-peaks {
  --fa: "";
}
.fa-bilibili {
  --fa: "";
}
.fa-erlang {
  --fa: "";
}
.fa-x-twitter {
  --fa: "";
}
.fa-cotton-bureau {
  --fa: "";
}
.fa-dashcube {
  --fa: "";
}
.fa-42-group {
  --fa: "";
}
.fa-innosoft {
  --fa: "";
}
.fa-stack-exchange {
  --fa: "";
}
.fa-elementor {
  --fa: "";
}
.fa-square-pied-piper {
  --fa: "";
}
.fa-pied-piper-square {
  --fa: "";
}
.fa-creative-commons-nd {
  --fa: "";
}
.fa-palfed {
  --fa: "";
}
.fa-superpowers {
  --fa: "";
}
.fa-resolving {
  --fa: "";
}
.fa-xbox {
  --fa: "";
}
.fa-square-web-awesome-stroke {
  --fa: "";
}
.fa-searchengin {
  --fa: "";
}
.fa-tiktok {
  --fa: "";
}
.fa-square-facebook {
  --fa: "";
}
.fa-facebook-square {
  --fa: "";
}
.fa-renren {
  --fa: "";
}
.fa-linux {
  --fa: "";
}
.fa-glide {
  --fa: "";
}
.fa-linkedin {
  --fa: "";
}
.fa-hubspot {
  --fa: "";
}
.fa-deploydog {
  --fa: "";
}
.fa-twitch {
  --fa: "";
}
.fa-flutter {
  --fa: "";
}
.fa-ravelry {
  --fa: "";
}
.fa-mixer {
  --fa: "";
}
.fa-square-lastfm {
  --fa: "";
}
.fa-lastfm-square {
  --fa: "";
}
.fa-vimeo {
  --fa: "";
}
.fa-mendeley {
  --fa: "";
}
.fa-uniregistry {
  --fa: "";
}
.fa-figma {
  --fa: "";
}
.fa-creative-commons-remix {
  --fa: "";
}
.fa-cc-amazon-pay {
  --fa: "";
}
.fa-dropbox {
  --fa: "";
}
.fa-instagram {
  --fa: "";
}
.fa-cmplid {
  --fa: "";
}
.fa-upwork {
  --fa: "";
}
.fa-facebook {
  --fa: "";
}
.fa-gripfire {
  --fa: "";
}
.fa-jedi-order {
  --fa: "";
}
.fa-uikit {
  --fa: "";
}
.fa-fort-awesome-alt {
  --fa: "";
}
.fa-phabricator {
  --fa: "";
}
.fa-ussunnah {
  --fa: "";
}
.fa-earlybirds {
  --fa: "";
}
.fa-trade-federation {
  --fa: "";
}
.fa-autoprefixer {
  --fa: "";
}
.fa-whatsapp {
  --fa: "";
}
.fa-square-upwork {
  --fa: "";
}
.fa-slideshare {
  --fa: "";
}
.fa-google-play {
  --fa: "";
}
.fa-viadeo {
  --fa: "";
}
.fa-line {
  --fa: "";
}
.fa-google-drive {
  --fa: "";
}
.fa-servicestack {
  --fa: "";
}
.fa-simplybuilt {
  --fa: "";
}
.fa-bitbucket {
  --fa: "";
}
.fa-imdb {
  --fa: "";
}
.fa-deezer {
  --fa: "";
}
.fa-raspberry-pi {
  --fa: "";
}
.fa-jira {
  --fa: "";
}
.fa-docker {
  --fa: "";
}
.fa-screenpal {
  --fa: "";
}
.fa-bluetooth {
  --fa: "";
}
.fa-gitter {
  --fa: "";
}
.fa-d-and-d {
  --fa: "";
}
.fa-microblog {
  --fa: "";
}
.fa-cc-diners-club {
  --fa: "";
}
.fa-gg-circle {
  --fa: "";
}
.fa-pied-piper-hat {
  --fa: "";
}
.fa-kickstarter-k {
  --fa: "";
}
.fa-yandex {
  --fa: "";
}
.fa-readme {
  --fa: "";
}
.fa-html5 {
  --fa: "";
}
.fa-sellsy {
  --fa: "";
}
.fa-square-web-awesome {
  --fa: "";
}
.fa-sass {
  --fa: "";
}
.fa-wirsindhandwerk {
  --fa: "";
}
.fa-wsh {
  --fa: "";
}
.fa-buromobelexperte {
  --fa: "";
}
.fa-salesforce {
  --fa: "";
}
.fa-octopus-deploy {
  --fa: "";
}
.fa-medapps {
  --fa: "";
}
.fa-ns8 {
  --fa: "";
}
.fa-pinterest-p {
  --fa: "";
}
.fa-apper {
  --fa: "";
}
.fa-fort-awesome {
  --fa: "";
}
.fa-waze {
  --fa: "";
}
.fa-bluesky {
  --fa: "";
}
.fa-cc-jcb {
  --fa: "";
}
.fa-snapchat {
  --fa: "";
}
.fa-snapchat-ghost {
  --fa: "";
}
.fa-fantasy-flight-games {
  --fa: "";
}
.fa-rust {
  --fa: "";
}
.fa-wix {
  --fa: "";
}
.fa-square-behance {
  --fa: "";
}
.fa-behance-square {
  --fa: "";
}
.fa-supple {
  --fa: "";
}
.fa-webflow {
  --fa: "";
}
.fa-rebel {
  --fa: "";
}
.fa-css3 {
  --fa: "";
}
.fa-staylinked {
  --fa: "";
}
.fa-kaggle {
  --fa: "";
}
.fa-space-awesome {
  --fa: "";
}
.fa-deviantart {
  --fa: "";
}
.fa-cpanel {
  --fa: "";
}
.fa-goodreads-g {
  --fa: "";
}
.fa-square-git {
  --fa: "";
}
.fa-git-square {
  --fa: "";
}
.fa-square-tumblr {
  --fa: "";
}
.fa-tumblr-square {
  --fa: "";
}
.fa-trello {
  --fa: "";
}
.fa-creative-commons-nc-jp {
  --fa: "";
}
.fa-get-pocket {
  --fa: "";
}
.fa-perbyte {
  --fa: "";
}
.fa-grunt {
  --fa: "";
}
.fa-weebly {
  --fa: "";
}
.fa-connectdevelop {
  --fa: "";
}
.fa-leanpub {
  --fa: "";
}
.fa-black-tie {
  --fa: "";
}
.fa-themeco {
  --fa: "";
}
.fa-python {
  --fa: "";
}
.fa-android {
  --fa: "";
}
.fa-bots {
  --fa: "";
}
.fa-free-code-camp {
  --fa: "";
}
.fa-hornbill {
  --fa: "";
}
.fa-js {
  --fa: "";
}
.fa-ideal {
  --fa: "";
}
.fa-git {
  --fa: "";
}
.fa-dev {
  --fa: "";
}
.fa-sketch {
  --fa: "";
}
.fa-yandex-international {
  --fa: "";
}
.fa-cc-amex {
  --fa: "";
}
.fa-uber {
  --fa: "";
}
.fa-github {
  --fa: "";
}
.fa-php {
  --fa: "";
}
.fa-alipay {
  --fa: "";
}
.fa-youtube {
  --fa: "";
}
.fa-skyatlas {
  --fa: "";
}
.fa-firefox-browser {
  --fa: "";
}
.fa-replyd {
  --fa: "";
}
.fa-suse {
  --fa: "";
}
.fa-jenkins {
  --fa: "";
}
.fa-twitter {
  --fa: "";
}
.fa-rockrms {
  --fa: "";
}
.fa-pinterest {
  --fa: "";
}
.fa-buffer {
  --fa: "";
}
.fa-npm {
  --fa: "";
}
.fa-yammer {
  --fa: "";
}
.fa-btc {
  --fa: "";
}
.fa-dribbble {
  --fa: "";
}
.fa-stumbleupon-circle {
  --fa: "";
}
.fa-internet-explorer {
  --fa: "";
}
.fa-stubber {
  --fa: "";
}
.fa-telegram {
  --fa: "";
}
.fa-telegram-plane {
  --fa: "";
}
.fa-old-republic {
  --fa: "";
}
.fa-odysee {
  --fa: "";
}
.fa-square-whatsapp {
  --fa: "";
}
.fa-whatsapp-square {
  --fa: "";
}
.fa-node-js {
  --fa: "";
}
.fa-edge-legacy {
  --fa: "";
}
.fa-slack {
  --fa: "";
}
.fa-slack-hash {
  --fa: "";
}
.fa-medrt {
  --fa: "";
}
.fa-usb {
  --fa: "";
}
.fa-tumblr {
  --fa: "";
}
.fa-vaadin {
  --fa: "";
}
.fa-quora {
  --fa: "";
}
.fa-square-x-twitter {
  --fa: "";
}
.fa-reacteurope {
  --fa: "";
}
.fa-medium {
  --fa: "";
}
.fa-medium-m {
  --fa: "";
}
.fa-amilia {
  --fa: "";
}
.fa-mixcloud {
  --fa: "";
}
.fa-flipboard {
  --fa: "";
}
.fa-viacoin {
  --fa: "";
}
.fa-critical-role {
  --fa: "";
}
.fa-sitrox {
  --fa: "";
}
.fa-discourse {
  --fa: "";
}
.fa-joomla {
  --fa: "";
}
.fa-mastodon {
  --fa: "";
}
.fa-airbnb {
  --fa: "";
}
.fa-wolf-pack-battalion {
  --fa: "";
}
.fa-buy-n-large {
  --fa: "";
}
.fa-gulp {
  --fa: "";
}
.fa-creative-commons-sampling-plus {
  --fa: "";
}
.fa-strava {
  --fa: "";
}
.fa-ember {
  --fa: "";
}
.fa-canadian-maple-leaf {
  --fa: "";
}
.fa-teamspeak {
  --fa: "";
}
.fa-pushed {
  --fa: "";
}
.fa-wordpress-simple {
  --fa: "";
}
.fa-nutritionix {
  --fa: "";
}
.fa-wodu {
  --fa: "";
}
.fa-google-pay {
  --fa: "";
}
.fa-intercom {
  --fa: "";
}
.fa-zhihu {
  --fa: "";
}
.fa-korvue {
  --fa: "";
}
.fa-pix {
  --fa: "";
}
.fa-steam-symbol {
  --fa: "";
}
/*!
 * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */
:root, :host {
  --fa-style-family-classic: "Font Awesome 6 Free";
  --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free";
}
@font-face {
  font-family: "Font Awesome 6 Free";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url(/theme/font.php/academi/core/1790824836/fa-regular-400.woff2) format("woff2"), url(/theme/font.php/academi/core/1790824836/fa-regular-400.ttf) format("truetype");
}
.far, .fa-regular {
  font-weight: 400;
}
/*!
 * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */
:root, :host {
  --fa-style-family-classic: "Font Awesome 6 Free";
  --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free";
}
@font-face {
  font-family: "Font Awesome 6 Free";
  font-style: normal;
  font-weight: 900;
  font-display: block;
  src: url(/theme/font.php/academi/core/1790824836/fa-solid-900.woff2) format("woff2"), url(/theme/font.php/academi/core/1790824836/fa-solid-900.ttf) format("truetype");
}
.fas, .fa-solid {
  font-weight: 900;
}
/*!
 * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */
.fa.fa-glass {
  --fa: "";
}
.fa.fa-envelope-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-envelope-o {
  --fa: "";
}
.fa.fa-star-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-star-o {
  --fa: "";
}
.fa.fa-remove {
  --fa: "";
}
.fa.fa-close {
  --fa: "";
}
.fa.fa-gear {
  --fa: "";
}
.fa.fa-trash-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-trash-o {
  --fa: "";
}
.fa.fa-home {
  --fa: "";
}
.fa.fa-file-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-file-o {
  --fa: "";
}
.fa.fa-clock-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-clock-o {
  --fa: "";
}
.fa.fa-arrow-circle-o-down {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-arrow-circle-o-down {
  --fa: "";
}
.fa.fa-arrow-circle-o-up {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-arrow-circle-o-up {
  --fa: "";
}
.fa.fa-play-circle-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-play-circle-o {
  --fa: "";
}
.fa.fa-repeat {
  --fa: "";
}
.fa.fa-rotate-right {
  --fa: "";
}
.fa.fa-refresh {
  --fa: "";
}
.fa.fa-list-alt {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-list-alt {
  --fa: "";
}
.fa.fa-dedent {
  --fa: "";
}
.fa.fa-video-camera {
  --fa: "";
}
.fa.fa-picture-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-picture-o {
  --fa: "";
}
.fa.fa-photo {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-photo {
  --fa: "";
}
.fa.fa-image {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-image {
  --fa: "";
}
.fa.fa-map-marker {
  --fa: "";
}
.fa.fa-pencil-square-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-pencil-square-o {
  --fa: "";
}
.fa.fa-edit {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-edit {
  --fa: "";
}
.fa.fa-share-square-o {
  --fa: "";
}
.fa.fa-check-square-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-check-square-o {
  --fa: "";
}
.fa.fa-arrows {
  --fa: "";
}
.fa.fa-times-circle-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-times-circle-o {
  --fa: "";
}
.fa.fa-check-circle-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-check-circle-o {
  --fa: "";
}
.fa.fa-mail-forward {
  --fa: "";
}
.fa.fa-expand {
  --fa: "";
}
.fa.fa-compress {
  --fa: "";
}
.fa.fa-eye {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-eye-slash {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-warning {
  --fa: "";
}
.fa.fa-calendar {
  --fa: "";
}
.fa.fa-arrows-v {
  --fa: "";
}
.fa.fa-arrows-h {
  --fa: "";
}
.fa.fa-bar-chart {
  --fa: "";
}
.fa.fa-bar-chart-o {
  --fa: "";
}
.fa.fa-twitter-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-twitter-square {
  --fa: "";
}
.fa.fa-facebook-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-facebook-square {
  --fa: "";
}
.fa.fa-gears {
  --fa: "";
}
.fa.fa-thumbs-o-up {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-thumbs-o-up {
  --fa: "";
}
.fa.fa-thumbs-o-down {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-thumbs-o-down {
  --fa: "";
}
.fa.fa-heart-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-heart-o {
  --fa: "";
}
.fa.fa-sign-out {
  --fa: "";
}
.fa.fa-linkedin-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-linkedin-square {
  --fa: "";
}
.fa.fa-thumb-tack {
  --fa: "";
}
.fa.fa-external-link {
  --fa: "";
}
.fa.fa-sign-in {
  --fa: "";
}
.fa.fa-github-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-github-square {
  --fa: "";
}
.fa.fa-lemon-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-lemon-o {
  --fa: "";
}
.fa.fa-square-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-square-o {
  --fa: "";
}
.fa.fa-bookmark-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-bookmark-o {
  --fa: "";
}
.fa.fa-twitter {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-facebook {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-facebook {
  --fa: "";
}
.fa.fa-facebook-f {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-facebook-f {
  --fa: "";
}
.fa.fa-github {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-credit-card {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-feed {
  --fa: "";
}
.fa.fa-hdd-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-hdd-o {
  --fa: "";
}
.fa.fa-hand-o-right {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-hand-o-right {
  --fa: "";
}
.fa.fa-hand-o-left {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-hand-o-left {
  --fa: "";
}
.fa.fa-hand-o-up {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-hand-o-up {
  --fa: "";
}
.fa.fa-hand-o-down {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-hand-o-down {
  --fa: "";
}
.fa.fa-globe {
  --fa: "";
}
.fa.fa-tasks {
  --fa: "";
}
.fa.fa-arrows-alt {
  --fa: "";
}
.fa.fa-group {
  --fa: "";
}
.fa.fa-chain {
  --fa: "";
}
.fa.fa-cut {
  --fa: "";
}
.fa.fa-files-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-files-o {
  --fa: "";
}
.fa.fa-floppy-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-floppy-o {
  --fa: "";
}
.fa.fa-save {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-save {
  --fa: "";
}
.fa.fa-navicon {
  --fa: "";
}
.fa.fa-reorder {
  --fa: "";
}
.fa.fa-magic {
  --fa: "";
}
.fa.fa-pinterest {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-pinterest-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-pinterest-square {
  --fa: "";
}
.fa.fa-google-plus-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-google-plus-square {
  --fa: "";
}
.fa.fa-google-plus {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-google-plus {
  --fa: "";
}
.fa.fa-money {
  --fa: "";
}
.fa.fa-unsorted {
  --fa: "";
}
.fa.fa-sort-desc {
  --fa: "";
}
.fa.fa-sort-asc {
  --fa: "";
}
.fa.fa-linkedin {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-linkedin {
  --fa: "";
}
.fa.fa-rotate-left {
  --fa: "";
}
.fa.fa-legal {
  --fa: "";
}
.fa.fa-tachometer {
  --fa: "";
}
.fa.fa-dashboard {
  --fa: "";
}
.fa.fa-comment-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-comment-o {
  --fa: "";
}
.fa.fa-comments-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-comments-o {
  --fa: "";
}
.fa.fa-flash {
  --fa: "";
}
.fa.fa-clipboard {
  --fa: "";
}
.fa.fa-lightbulb-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-lightbulb-o {
  --fa: "";
}
.fa.fa-exchange {
  --fa: "";
}
.fa.fa-cloud-download {
  --fa: "";
}
.fa.fa-cloud-upload {
  --fa: "";
}
.fa.fa-bell-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-bell-o {
  --fa: "";
}
.fa.fa-cutlery {
  --fa: "";
}
.fa.fa-file-text-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-file-text-o {
  --fa: "";
}
.fa.fa-building-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-building-o {
  --fa: "";
}
.fa.fa-hospital-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-hospital-o {
  --fa: "";
}
.fa.fa-tablet {
  --fa: "";
}
.fa.fa-mobile {
  --fa: "";
}
.fa.fa-mobile-phone {
  --fa: "";
}
.fa.fa-circle-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-circle-o {
  --fa: "";
}
.fa.fa-mail-reply {
  --fa: "";
}
.fa.fa-github-alt {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-folder-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-folder-o {
  --fa: "";
}
.fa.fa-folder-open-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-folder-open-o {
  --fa: "";
}
.fa.fa-smile-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-smile-o {
  --fa: "";
}
.fa.fa-frown-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-frown-o {
  --fa: "";
}
.fa.fa-meh-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-meh-o {
  --fa: "";
}
.fa.fa-keyboard-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-keyboard-o {
  --fa: "";
}
.fa.fa-flag-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-flag-o {
  --fa: "";
}
.fa.fa-mail-reply-all {
  --fa: "";
}
.fa.fa-star-half-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-star-half-o {
  --fa: "";
}
.fa.fa-star-half-empty {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-star-half-empty {
  --fa: "";
}
.fa.fa-star-half-full {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-star-half-full {
  --fa: "";
}
.fa.fa-code-fork {
  --fa: "";
}
.fa.fa-chain-broken {
  --fa: "";
}
.fa.fa-unlink {
  --fa: "";
}
.fa.fa-calendar-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-calendar-o {
  --fa: "";
}
.fa.fa-maxcdn {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-html5 {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-css3 {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-unlock-alt {
  --fa: "";
}
.fa.fa-minus-square-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-minus-square-o {
  --fa: "";
}
.fa.fa-level-up {
  --fa: "";
}
.fa.fa-level-down {
  --fa: "";
}
.fa.fa-pencil-square {
  --fa: "";
}
.fa.fa-external-link-square {
  --fa: "";
}
.fa.fa-compass {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-caret-square-o-down {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-caret-square-o-down {
  --fa: "";
}
.fa.fa-toggle-down {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-toggle-down {
  --fa: "";
}
.fa.fa-caret-square-o-up {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-caret-square-o-up {
  --fa: "";
}
.fa.fa-toggle-up {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-toggle-up {
  --fa: "";
}
.fa.fa-caret-square-o-right {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-caret-square-o-right {
  --fa: "";
}
.fa.fa-toggle-right {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-toggle-right {
  --fa: "";
}
.fa.fa-eur {
  --fa: "";
}
.fa.fa-euro {
  --fa: "";
}
.fa.fa-gbp {
  --fa: "";
}
.fa.fa-usd {
  --fa: "$";
}
.fa.fa-dollar {
  --fa: "$";
}
.fa.fa-inr {
  --fa: "";
}
.fa.fa-rupee {
  --fa: "";
}
.fa.fa-jpy {
  --fa: "";
}
.fa.fa-cny {
  --fa: "";
}
.fa.fa-rmb {
  --fa: "";
}
.fa.fa-yen {
  --fa: "";
}
.fa.fa-rub {
  --fa: "";
}
.fa.fa-ruble {
  --fa: "";
}
.fa.fa-rouble {
  --fa: "";
}
.fa.fa-krw {
  --fa: "";
}
.fa.fa-won {
  --fa: "";
}
.fa.fa-btc {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-bitcoin {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-bitcoin {
  --fa: "";
}
.fa.fa-file-text {
  --fa: "";
}
.fa.fa-sort-alpha-asc {
  --fa: "";
}
.fa.fa-sort-alpha-desc {
  --fa: "";
}
.fa.fa-sort-amount-asc {
  --fa: "";
}
.fa.fa-sort-amount-desc {
  --fa: "";
}
.fa.fa-sort-numeric-asc {
  --fa: "";
}
.fa.fa-sort-numeric-desc {
  --fa: "";
}
.fa.fa-youtube-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-youtube-square {
  --fa: "";
}
.fa.fa-youtube {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-xing {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-xing-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-xing-square {
  --fa: "";
}
.fa.fa-youtube-play {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-youtube-play {
  --fa: "";
}
.fa.fa-dropbox {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-stack-overflow {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-instagram {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-flickr {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-adn {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-bitbucket {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-bitbucket-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-bitbucket-square {
  --fa: "";
}
.fa.fa-tumblr {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-tumblr-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-tumblr-square {
  --fa: "";
}
.fa.fa-long-arrow-down {
  --fa: "";
}
.fa.fa-long-arrow-up {
  --fa: "";
}
.fa.fa-long-arrow-left {
  --fa: "";
}
.fa.fa-long-arrow-right {
  --fa: "";
}
.fa.fa-apple {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-windows {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-android {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-linux {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-dribbble {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-skype {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-foursquare {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-trello {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-gratipay {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-gittip {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-gittip {
  --fa: "";
}
.fa.fa-sun-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-sun-o {
  --fa: "";
}
.fa.fa-moon-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-moon-o {
  --fa: "";
}
.fa.fa-vk {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-weibo {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-renren {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-pagelines {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-stack-exchange {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-arrow-circle-o-right {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-arrow-circle-o-right {
  --fa: "";
}
.fa.fa-arrow-circle-o-left {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-arrow-circle-o-left {
  --fa: "";
}
.fa.fa-caret-square-o-left {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-caret-square-o-left {
  --fa: "";
}
.fa.fa-toggle-left {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-toggle-left {
  --fa: "";
}
.fa.fa-dot-circle-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-dot-circle-o {
  --fa: "";
}
.fa.fa-vimeo-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-vimeo-square {
  --fa: "";
}
.fa.fa-try {
  --fa: "";
}
.fa.fa-turkish-lira {
  --fa: "";
}
.fa.fa-plus-square-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-plus-square-o {
  --fa: "";
}
.fa.fa-slack {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-wordpress {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-openid {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-institution {
  --fa: "";
}
.fa.fa-bank {
  --fa: "";
}
.fa.fa-mortar-board {
  --fa: "";
}
.fa.fa-yahoo {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-google {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-reddit {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-reddit-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-reddit-square {
  --fa: "";
}
.fa.fa-stumbleupon-circle {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-stumbleupon {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-delicious {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-digg {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-pied-piper-pp {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-pied-piper-alt {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-drupal {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-joomla {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-behance {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-behance-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-behance-square {
  --fa: "";
}
.fa.fa-steam {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-steam-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-steam-square {
  --fa: "";
}
.fa.fa-automobile {
  --fa: "";
}
.fa.fa-cab {
  --fa: "";
}
.fa.fa-spotify {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-deviantart {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-soundcloud {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-file-pdf-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-file-pdf-o {
  --fa: "";
}
.fa.fa-file-word-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-file-word-o {
  --fa: "";
}
.fa.fa-file-excel-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-file-excel-o {
  --fa: "";
}
.fa.fa-file-powerpoint-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-file-powerpoint-o {
  --fa: "";
}
.fa.fa-file-image-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-file-image-o {
  --fa: "";
}
.fa.fa-file-photo-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-file-photo-o {
  --fa: "";
}
.fa.fa-file-picture-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-file-picture-o {
  --fa: "";
}
.fa.fa-file-archive-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-file-archive-o {
  --fa: "";
}
.fa.fa-file-zip-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-file-zip-o {
  --fa: "";
}
.fa.fa-file-audio-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-file-audio-o {
  --fa: "";
}
.fa.fa-file-sound-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-file-sound-o {
  --fa: "";
}
.fa.fa-file-video-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-file-video-o {
  --fa: "";
}
.fa.fa-file-movie-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-file-movie-o {
  --fa: "";
}
.fa.fa-file-code-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-file-code-o {
  --fa: "";
}
.fa.fa-vine {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-codepen {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-jsfiddle {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-life-bouy {
  --fa: "";
}
.fa.fa-life-buoy {
  --fa: "";
}
.fa.fa-life-saver {
  --fa: "";
}
.fa.fa-support {
  --fa: "";
}
.fa.fa-circle-o-notch {
  --fa: "";
}
.fa.fa-rebel {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-ra {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-ra {
  --fa: "";
}
.fa.fa-resistance {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-resistance {
  --fa: "";
}
.fa.fa-empire {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-ge {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-ge {
  --fa: "";
}
.fa.fa-git-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-git-square {
  --fa: "";
}
.fa.fa-git {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-hacker-news {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-y-combinator-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-y-combinator-square {
  --fa: "";
}
.fa.fa-yc-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-yc-square {
  --fa: "";
}
.fa.fa-tencent-weibo {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-qq {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-weixin {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-wechat {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-wechat {
  --fa: "";
}
.fa.fa-send {
  --fa: "";
}
.fa.fa-paper-plane-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-paper-plane-o {
  --fa: "";
}
.fa.fa-send-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-send-o {
  --fa: "";
}
.fa.fa-circle-thin {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-circle-thin {
  --fa: "";
}
.fa.fa-header {
  --fa: "";
}
.fa.fa-futbol-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-futbol-o {
  --fa: "";
}
.fa.fa-soccer-ball-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-soccer-ball-o {
  --fa: "";
}
.fa.fa-slideshare {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-twitch {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-yelp {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-newspaper-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-newspaper-o {
  --fa: "";
}
.fa.fa-paypal {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-google-wallet {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-cc-visa {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-cc-mastercard {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-cc-discover {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-cc-amex {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-cc-paypal {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-cc-stripe {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-bell-slash-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-bell-slash-o {
  --fa: "";
}
.fa.fa-trash {
  --fa: "";
}
.fa.fa-copyright {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-eyedropper {
  --fa: "";
}
.fa.fa-area-chart {
  --fa: "";
}
.fa.fa-pie-chart {
  --fa: "";
}
.fa.fa-line-chart {
  --fa: "";
}
.fa.fa-lastfm {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-lastfm-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-lastfm-square {
  --fa: "";
}
.fa.fa-ioxhost {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-angellist {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-cc {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-cc {
  --fa: "";
}
.fa.fa-ils {
  --fa: "";
}
.fa.fa-shekel {
  --fa: "";
}
.fa.fa-sheqel {
  --fa: "";
}
.fa.fa-buysellads {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-connectdevelop {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-dashcube {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-forumbee {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-leanpub {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-sellsy {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-shirtsinbulk {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-simplybuilt {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-skyatlas {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-diamond {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-diamond {
  --fa: "";
}
.fa.fa-transgender {
  --fa: "";
}
.fa.fa-intersex {
  --fa: "";
}
.fa.fa-transgender-alt {
  --fa: "";
}
.fa.fa-facebook-official {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-facebook-official {
  --fa: "";
}
.fa.fa-pinterest-p {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-whatsapp {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-hotel {
  --fa: "";
}
.fa.fa-viacoin {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-medium {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-y-combinator {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-yc {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-yc {
  --fa: "";
}
.fa.fa-optin-monster {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-opencart {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-expeditedssl {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-battery-4 {
  --fa: "";
}
.fa.fa-battery {
  --fa: "";
}
.fa.fa-battery-3 {
  --fa: "";
}
.fa.fa-battery-2 {
  --fa: "";
}
.fa.fa-battery-1 {
  --fa: "";
}
.fa.fa-battery-0 {
  --fa: "";
}
.fa.fa-object-group {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-object-ungroup {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-sticky-note-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-sticky-note-o {
  --fa: "";
}
.fa.fa-cc-jcb {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-cc-diners-club {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-clone {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-hourglass-o {
  --fa: "";
}
.fa.fa-hourglass-1 {
  --fa: "";
}
.fa.fa-hourglass-2 {
  --fa: "";
}
.fa.fa-hourglass-3 {
  --fa: "";
}
.fa.fa-hand-rock-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-hand-rock-o {
  --fa: "";
}
.fa.fa-hand-grab-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-hand-grab-o {
  --fa: "";
}
.fa.fa-hand-paper-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-hand-paper-o {
  --fa: "";
}
.fa.fa-hand-stop-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-hand-stop-o {
  --fa: "";
}
.fa.fa-hand-scissors-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-hand-scissors-o {
  --fa: "";
}
.fa.fa-hand-lizard-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-hand-lizard-o {
  --fa: "";
}
.fa.fa-hand-spock-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-hand-spock-o {
  --fa: "";
}
.fa.fa-hand-pointer-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-hand-pointer-o {
  --fa: "";
}
.fa.fa-hand-peace-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-hand-peace-o {
  --fa: "";
}
.fa.fa-registered {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-creative-commons {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-gg {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-gg-circle {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-odnoklassniki {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-odnoklassniki-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-odnoklassniki-square {
  --fa: "";
}
.fa.fa-get-pocket {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-wikipedia-w {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-safari {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-chrome {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-firefox {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-opera {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-internet-explorer {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-television {
  --fa: "";
}
.fa.fa-contao {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-500px {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-amazon {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-calendar-plus-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-calendar-plus-o {
  --fa: "";
}
.fa.fa-calendar-minus-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-calendar-minus-o {
  --fa: "";
}
.fa.fa-calendar-times-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-calendar-times-o {
  --fa: "";
}
.fa.fa-calendar-check-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-calendar-check-o {
  --fa: "";
}
.fa.fa-map-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-map-o {
  --fa: "";
}
.fa.fa-commenting {
  --fa: "";
}
.fa.fa-commenting-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-commenting-o {
  --fa: "";
}
.fa.fa-houzz {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-vimeo {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-vimeo {
  --fa: "";
}
.fa.fa-black-tie {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-fonticons {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-reddit-alien {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-edge {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-credit-card-alt {
  --fa: "";
}
.fa.fa-codiepie {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-modx {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-fort-awesome {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-usb {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-product-hunt {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-mixcloud {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-scribd {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-pause-circle-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-pause-circle-o {
  --fa: "";
}
.fa.fa-stop-circle-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-stop-circle-o {
  --fa: "";
}
.fa.fa-bluetooth {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-bluetooth-b {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-gitlab {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-wpbeginner {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-wpforms {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-envira {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-wheelchair-alt {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-wheelchair-alt {
  --fa: "";
}
.fa.fa-question-circle-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-question-circle-o {
  --fa: "";
}
.fa.fa-volume-control-phone {
  --fa: "";
}
.fa.fa-asl-interpreting {
  --fa: "";
}
.fa.fa-deafness {
  --fa: "";
}
.fa.fa-hard-of-hearing {
  --fa: "";
}
.fa.fa-glide {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-glide-g {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-signing {
  --fa: "";
}
.fa.fa-viadeo {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-viadeo-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-viadeo-square {
  --fa: "";
}
.fa.fa-snapchat {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-snapchat-ghost {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-snapchat-ghost {
  --fa: "";
}
.fa.fa-snapchat-square {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-snapchat-square {
  --fa: "";
}
.fa.fa-pied-piper {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-first-order {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-yoast {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-themeisle {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-google-plus-official {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-google-plus-official {
  --fa: "";
}
.fa.fa-google-plus-circle {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-google-plus-circle {
  --fa: "";
}
.fa.fa-font-awesome {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-fa {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-fa {
  --fa: "";
}
.fa.fa-handshake-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-handshake-o {
  --fa: "";
}
.fa.fa-envelope-open-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-envelope-open-o {
  --fa: "";
}
.fa.fa-linode {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-address-book-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-address-book-o {
  --fa: "";
}
.fa.fa-vcard {
  --fa: "";
}
.fa.fa-address-card-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-address-card-o {
  --fa: "";
}
.fa.fa-vcard-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-vcard-o {
  --fa: "";
}
.fa.fa-user-circle-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-user-circle-o {
  --fa: "";
}
.fa.fa-user-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-user-o {
  --fa: "";
}
.fa.fa-id-badge {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-drivers-license {
  --fa: "";
}
.fa.fa-id-card-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-id-card-o {
  --fa: "";
}
.fa.fa-drivers-license-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-drivers-license-o {
  --fa: "";
}
.fa.fa-quora {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-free-code-camp {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-telegram {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-thermometer-4 {
  --fa: "";
}
.fa.fa-thermometer {
  --fa: "";
}
.fa.fa-thermometer-3 {
  --fa: "";
}
.fa.fa-thermometer-2 {
  --fa: "";
}
.fa.fa-thermometer-1 {
  --fa: "";
}
.fa.fa-thermometer-0 {
  --fa: "";
}
.fa.fa-bathtub {
  --fa: "";
}
.fa.fa-s15 {
  --fa: "";
}
.fa.fa-window-maximize {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-window-restore {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-times-rectangle {
  --fa: "";
}
.fa.fa-window-close-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-window-close-o {
  --fa: "";
}
.fa.fa-times-rectangle-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-times-rectangle-o {
  --fa: "";
}
.fa.fa-bandcamp {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-grav {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-etsy {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-imdb {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-ravelry {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-eercast {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-eercast {
  --fa: "";
}
.fa.fa-snowflake-o {
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
}
.fa.fa-snowflake-o {
  --fa: "";
}
.fa.fa-superpowers {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-wpexplorer {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
.fa.fa-meetup {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}
/*!
 * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */
.fa {
  font-family: var(--fa-style-family, "Font Awesome 6 Free");
  font-weight: var(--fa-style, 900);
}
.fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands, .fa {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: var(--fa-display, inline-block);
  font-style: normal;
  font-variant: normal;
  line-height: 1;
  text-rendering: auto;
}
.fas::before, .far::before, .fab::before, .fa-solid::before, .fa-regular::before, .fa-brands::before, .fa::before {
  content: var(--fa);
}
.fa-classic, .fas, .fa-solid, .far, .fa-regular {
  font-family: "Font Awesome 6 Free";
}
.fa-brands, .fab {
  font-family: "Font Awesome 6 Brands";
}
.fa-1x {
  font-size: 1em;
}
.fa-2x {
  font-size: 2em;
}
.fa-3x {
  font-size: 3em;
}
.fa-4x {
  font-size: 4em;
}
.fa-5x {
  font-size: 5em;
}
.fa-6x {
  font-size: 6em;
}
.fa-7x {
  font-size: 7em;
}
.fa-8x {
  font-size: 8em;
}
.fa-9x {
  font-size: 9em;
}
.fa-10x {
  font-size: 10em;
}
.fa-2xs {
  font-size: 0.625em;
  line-height: 0.1em;
  vertical-align: 0.225em;
}
.fa-xs {
  font-size: 0.75em;
  line-height: 0.0833333337em;
  vertical-align: 0.125em;
}
.fa-sm {
  font-size: 0.875em;
  line-height: 0.0714285718em;
  vertical-align: 0.0535714295em;
}
.fa-lg {
  font-size: 1.25em;
  line-height: 0.05em;
  vertical-align: -0.075em;
}
.fa-xl {
  font-size: 1.5em;
  line-height: 0.0416666682em;
  vertical-align: -0.125em;
}
.fa-2xl {
  font-size: 2em;
  line-height: 0.03125em;
  vertical-align: -0.1875em;
}
.fa-fw {
  text-align: center;
  width: 1.25em;
}
.fa-ul {
  list-style-type: none;
  margin-left: var(--fa-li-margin, 2.5em);
  padding-left: 0;
}
.fa-ul > li {
  position: relative;
}
.fa-li {
  left: calc(-1 * var(--fa-li-width, 2em));
  position: absolute;
  text-align: center;
  width: var(--fa-li-width, 2em);
  line-height: inherit;
}
.fa-border {
  border-color: var(--fa-border-color, #eee);
  border-radius: var(--fa-border-radius, 0.1em);
  border-style: var(--fa-border-style, solid);
  border-width: var(--fa-border-width, 0.08em);
  padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);
}
.fa-pull-left {
  float: left;
  margin-right: var(--fa-pull-margin, 0.3em);
}
.fa-pull-right {
  float: right;
  margin-left: var(--fa-pull-margin, 0.3em);
}
.fa-beat {
  animation-name: fa-beat;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, ease-in-out);
}
.fa-bounce {
  animation-name: fa-bounce;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));
}
.fa-fade {
  animation-name: fa-fade;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
}
.fa-beat-fade {
  animation-name: fa-beat-fade;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
}
.fa-flip {
  animation-name: fa-flip;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, ease-in-out);
}
.fa-shake {
  animation-name: fa-shake;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, linear);
}
.fa-spin {
  animation-name: fa-spin;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 2s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, linear);
}
.fa-spin-reverse {
  --fa-animation-direction: reverse;
}
.fa-pulse, .fa-spin-pulse {
  animation-name: fa-spin;
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, steps(8));
}
@media (prefers-reduced-motion: reduce) {
  .fa-beat, .fa-bounce, .fa-fade, .fa-beat-fade, .fa-flip, .fa-pulse, .fa-shake, .fa-spin, .fa-spin-pulse {
    animation-delay: -1ms;
    animation-duration: 1ms;
    animation-iteration-count: 1;
    transition-delay: 0s;
    transition-duration: 0s;
  }
}
@keyframes fa-beat {
  0%, 90% {
    transform: scale(1);
  }
  45% {
    transform: scale(var(--fa-beat-scale, 1.25));
  }
}
@keyframes fa-bounce {
  0% {
    transform: scale(1, 1) translateY(0);
  }
  10% {
    transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);
  }
  30% {
    transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));
  }
  50% {
    transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);
  }
  57% {
    transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));
  }
  64% {
    transform: scale(1, 1) translateY(0);
  }
  100% {
    transform: scale(1, 1) translateY(0);
  }
}
@keyframes fa-fade {
  50% {
    opacity: var(--fa-fade-opacity, 0.4);
  }
}
@keyframes fa-beat-fade {
  0%, 100% {
    opacity: var(--fa-beat-fade-opacity, 0.4);
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(var(--fa-beat-fade-scale, 1.125));
  }
}
@keyframes fa-flip {
  50% {
    transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));
  }
}
@keyframes fa-shake {
  0% {
    transform: rotate(-15deg);
  }
  4% {
    transform: rotate(15deg);
  }
  8%, 24% {
    transform: rotate(-18deg);
  }
  12%, 28% {
    transform: rotate(18deg);
  }
  16% {
    transform: rotate(-22deg);
  }
  20% {
    transform: rotate(22deg);
  }
  32% {
    transform: rotate(-12deg);
  }
  36% {
    transform: rotate(12deg);
  }
  40%, 100% {
    transform: rotate(0deg);
  }
}
@keyframes fa-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.fa-rotate-90 {
  transform: rotate(90deg);
}
.fa-rotate-180 {
  transform: rotate(180deg);
}
.fa-rotate-270 {
  transform: rotate(270deg);
}
.fa-flip-horizontal {
  transform: scale(-1, 1);
}
.fa-flip-vertical {
  transform: scale(1, -1);
}
.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
  transform: scale(-1, -1);
}
.fa-rotate-by {
  transform: rotate(var(--fa-rotate-angle, 0));
}
.fa-stack {
  display: inline-block;
  height: 2em;
  line-height: 2em;
  position: relative;
  vertical-align: middle;
  width: 2.5em;
}
.fa-stack-1x, .fa-stack-2x {
  left: 0;
  position: absolute;
  text-align: center;
  width: 100%;
  z-index: var(--fa-stack-z-index, auto);
}
.fa-stack-1x {
  line-height: inherit;
}
.fa-stack-2x {
  font-size: 2em;
}
.fa-inverse {
  color: var(--fa-inverse, #fff);
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.fa-0 {
  --fa: "0";
}
.fa-1 {
  --fa: "1";
}
.fa-2 {
  --fa: "2";
}
.fa-3 {
  --fa: "3";
}
.fa-4 {
  --fa: "4";
}
.fa-5 {
  --fa: "5";
}
.fa-6 {
  --fa: "6";
}
.fa-7 {
  --fa: "7";
}
.fa-8 {
  --fa: "8";
}
.fa-9 {
  --fa: "9";
}
.fa-fill-drip {
  --fa: "";
}
.fa-arrows-to-circle {
  --fa: "";
}
.fa-circle-chevron-right {
  --fa: "";
}
.fa-chevron-circle-right {
  --fa: "";
}
.fa-at {
  --fa: "@";
}
.fa-trash-can {
  --fa: "";
}
.fa-trash-alt {
  --fa: "";
}
.fa-text-height {
  --fa: "";
}
.fa-user-xmark {
  --fa: "";
}
.fa-user-times {
  --fa: "";
}
.fa-stethoscope {
  --fa: "";
}
.fa-message {
  --fa: "";
}
.fa-comment-alt {
  --fa: "";
}
.fa-info {
  --fa: "";
}
.fa-down-left-and-up-right-to-center {
  --fa: "";
}
.fa-compress-alt {
  --fa: "";
}
.fa-explosion {
  --fa: "";
}
.fa-file-lines {
  --fa: "";
}
.fa-file-alt {
  --fa: "";
}
.fa-file-text {
  --fa: "";
}
.fa-wave-square {
  --fa: "";
}
.fa-ring {
  --fa: "";
}
.fa-building-un {
  --fa: "";
}
.fa-dice-three {
  --fa: "";
}
.fa-calendar-days {
  --fa: "";
}
.fa-calendar-alt {
  --fa: "";
}
.fa-anchor-circle-check {
  --fa: "";
}
.fa-building-circle-arrow-right {
  --fa: "";
}
.fa-volleyball {
  --fa: "";
}
.fa-volleyball-ball {
  --fa: "";
}
.fa-arrows-up-to-line {
  --fa: "";
}
.fa-sort-down {
  --fa: "";
}
.fa-sort-desc {
  --fa: "";
}
.fa-circle-minus {
  --fa: "";
}
.fa-minus-circle {
  --fa: "";
}
.fa-door-open {
  --fa: "";
}
.fa-right-from-bracket {
  --fa: "";
}
.fa-sign-out-alt {
  --fa: "";
}
.fa-atom {
  --fa: "";
}
.fa-soap {
  --fa: "";
}
.fa-icons {
  --fa: "";
}
.fa-heart-music-camera-bolt {
  --fa: "";
}
.fa-microphone-lines-slash {
  --fa: "";
}
.fa-microphone-alt-slash {
  --fa: "";
}
.fa-bridge-circle-check {
  --fa: "";
}
.fa-pump-medical {
  --fa: "";
}
.fa-fingerprint {
  --fa: "";
}
.fa-hand-point-right {
  --fa: "";
}
.fa-magnifying-glass-location {
  --fa: "";
}
.fa-search-location {
  --fa: "";
}
.fa-forward-step {
  --fa: "";
}
.fa-step-forward {
  --fa: "";
}
.fa-face-smile-beam {
  --fa: "";
}
.fa-smile-beam {
  --fa: "";
}
.fa-flag-checkered {
  --fa: "";
}
.fa-football {
  --fa: "";
}
.fa-football-ball {
  --fa: "";
}
.fa-school-circle-exclamation {
  --fa: "";
}
.fa-crop {
  --fa: "";
}
.fa-angles-down {
  --fa: "";
}
.fa-angle-double-down {
  --fa: "";
}
.fa-users-rectangle {
  --fa: "";
}
.fa-people-roof {
  --fa: "";
}
.fa-people-line {
  --fa: "";
}
.fa-beer-mug-empty {
  --fa: "";
}
.fa-beer {
  --fa: "";
}
.fa-diagram-predecessor {
  --fa: "";
}
.fa-arrow-up-long {
  --fa: "";
}
.fa-long-arrow-up {
  --fa: "";
}
.fa-fire-flame-simple {
  --fa: "";
}
.fa-burn {
  --fa: "";
}
.fa-person {
  --fa: "";
}
.fa-male {
  --fa: "";
}
.fa-laptop {
  --fa: "";
}
.fa-file-csv {
  --fa: "";
}
.fa-menorah {
  --fa: "";
}
.fa-truck-plane {
  --fa: "";
}
.fa-record-vinyl {
  --fa: "";
}
.fa-face-grin-stars {
  --fa: "";
}
.fa-grin-stars {
  --fa: "";
}
.fa-bong {
  --fa: "";
}
.fa-spaghetti-monster-flying {
  --fa: "";
}
.fa-pastafarianism {
  --fa: "";
}
.fa-arrow-down-up-across-line {
  --fa: "";
}
.fa-spoon {
  --fa: "";
}
.fa-utensil-spoon {
  --fa: "";
}
.fa-jar-wheat {
  --fa: "";
}
.fa-envelopes-bulk {
  --fa: "";
}
.fa-mail-bulk {
  --fa: "";
}
.fa-file-circle-exclamation {
  --fa: "";
}
.fa-circle-h {
  --fa: "";
}
.fa-hospital-symbol {
  --fa: "";
}
.fa-pager {
  --fa: "";
}
.fa-address-book {
  --fa: "";
}
.fa-contact-book {
  --fa: "";
}
.fa-strikethrough {
  --fa: "";
}
.fa-k {
  --fa: "K";
}
.fa-landmark-flag {
  --fa: "";
}
.fa-pencil {
  --fa: "";
}
.fa-pencil-alt {
  --fa: "";
}
.fa-backward {
  --fa: "";
}
.fa-caret-right {
  --fa: "";
}
.fa-comments {
  --fa: "";
}
.fa-paste {
  --fa: "";
}
.fa-file-clipboard {
  --fa: "";
}
.fa-code-pull-request {
  --fa: "";
}
.fa-clipboard-list {
  --fa: "";
}
.fa-truck-ramp-box {
  --fa: "";
}
.fa-truck-loading {
  --fa: "";
}
.fa-user-check {
  --fa: "";
}
.fa-vial-virus {
  --fa: "";
}
.fa-sheet-plastic {
  --fa: "";
}
.fa-blog {
  --fa: "";
}
.fa-user-ninja {
  --fa: "";
}
.fa-person-arrow-up-from-line {
  --fa: "";
}
.fa-scroll-torah {
  --fa: "";
}
.fa-torah {
  --fa: "";
}
.fa-broom-ball {
  --fa: "";
}
.fa-quidditch {
  --fa: "";
}
.fa-quidditch-broom-ball {
  --fa: "";
}
.fa-toggle-off {
  --fa: "";
}
.fa-box-archive {
  --fa: "";
}
.fa-archive {
  --fa: "";
}
.fa-person-drowning {
  --fa: "";
}
.fa-arrow-down-9-1 {
  --fa: "";
}
.fa-sort-numeric-desc {
  --fa: "";
}
.fa-sort-numeric-down-alt {
  --fa: "";
}
.fa-face-grin-tongue-squint {
  --fa: "";
}
.fa-grin-tongue-squint {
  --fa: "";
}
.fa-spray-can {
  --fa: "";
}
.fa-truck-monster {
  --fa: "";
}
.fa-w {
  --fa: "W";
}
.fa-earth-africa {
  --fa: "";
}
.fa-globe-africa {
  --fa: "";
}
.fa-rainbow {
  --fa: "";
}
.fa-circle-notch {
  --fa: "";
}
.fa-tablet-screen-button {
  --fa: "";
}
.fa-tablet-alt {
  --fa: "";
}
.fa-paw {
  --fa: "";
}
.fa-cloud {
  --fa: "";
}
.fa-trowel-bricks {
  --fa: "";
}
.fa-face-flushed {
  --fa: "";
}
.fa-flushed {
  --fa: "";
}
.fa-hospital-user {
  --fa: "";
}
.fa-tent-arrow-left-right {
  --fa: "";
}
.fa-gavel {
  --fa: "";
}
.fa-legal {
  --fa: "";
}
.fa-binoculars {
  --fa: "";
}
.fa-microphone-slash {
  --fa: "";
}
.fa-box-tissue {
  --fa: "";
}
.fa-motorcycle {
  --fa: "";
}
.fa-bell-concierge {
  --fa: "";
}
.fa-concierge-bell {
  --fa: "";
}
.fa-pen-ruler {
  --fa: "";
}
.fa-pencil-ruler {
  --fa: "";
}
.fa-people-arrows {
  --fa: "";
}
.fa-people-arrows-left-right {
  --fa: "";
}
.fa-mars-and-venus-burst {
  --fa: "";
}
.fa-square-caret-right {
  --fa: "";
}
.fa-caret-square-right {
  --fa: "";
}
.fa-scissors {
  --fa: "";
}
.fa-cut {
  --fa: "";
}
.fa-sun-plant-wilt {
  --fa: "";
}
.fa-toilets-portable {
  --fa: "";
}
.fa-hockey-puck {
  --fa: "";
}
.fa-table {
  --fa: "";
}
.fa-magnifying-glass-arrow-right {
  --fa: "";
}
.fa-tachograph-digital {
  --fa: "";
}
.fa-digital-tachograph {
  --fa: "";
}
.fa-users-slash {
  --fa: "";
}
.fa-clover {
  --fa: "";
}
.fa-reply {
  --fa: "";
}
.fa-mail-reply {
  --fa: "";
}
.fa-star-and-crescent {
  --fa: "";
}
.fa-house-fire {
  --fa: "";
}
.fa-square-minus {
  --fa: "";
}
.fa-minus-square {
  --fa: "";
}
.fa-helicopter {
  --fa: "";
}
.fa-compass {
  --fa: "";
}
.fa-square-caret-down {
  --fa: "";
}
.fa-caret-square-down {
  --fa: "";
}
.fa-file-circle-question {
  --fa: "";
}
.fa-laptop-code {
  --fa: "";
}
.fa-swatchbook {
  --fa: "";
}
.fa-prescription-bottle {
  --fa: "";
}
.fa-bars {
  --fa: "";
}
.fa-navicon {
  --fa: "";
}
.fa-people-group {
  --fa: "";
}
.fa-hourglass-end {
  --fa: "";
}
.fa-hourglass-3 {
  --fa: "";
}
.fa-heart-crack {
  --fa: "";
}
.fa-heart-broken {
  --fa: "";
}
.fa-square-up-right {
  --fa: "";
}
.fa-external-link-square-alt {
  --fa: "";
}
.fa-face-kiss-beam {
  --fa: "";
}
.fa-kiss-beam {
  --fa: "";
}
.fa-film {
  --fa: "";
}
.fa-ruler-horizontal {
  --fa: "";
}
.fa-people-robbery {
  --fa: "";
}
.fa-lightbulb {
  --fa: "";
}
.fa-caret-left {
  --fa: "";
}
.fa-circle-exclamation {
  --fa: "";
}
.fa-exclamation-circle {
  --fa: "";
}
.fa-school-circle-xmark {
  --fa: "";
}
.fa-arrow-right-from-bracket {
  --fa: "";
}
.fa-sign-out {
  --fa: "";
}
.fa-circle-chevron-down {
  --fa: "";
}
.fa-chevron-circle-down {
  --fa: "";
}
.fa-unlock-keyhole {
  --fa: "";
}
.fa-unlock-alt {
  --fa: "";
}
.fa-cloud-showers-heavy {
  --fa: "";
}
.fa-headphones-simple {
  --fa: "";
}
.fa-headphones-alt {
  --fa: "";
}
.fa-sitemap {
  --fa: "";
}
.fa-circle-dollar-to-slot {
  --fa: "";
}
.fa-donate {
  --fa: "";
}
.fa-memory {
  --fa: "";
}
.fa-road-spikes {
  --fa: "";
}
.fa-fire-burner {
  --fa: "";
}
.fa-flag {
  --fa: "";
}
.fa-hanukiah {
  --fa: "";
}
.fa-feather {
  --fa: "";
}
.fa-volume-low {
  --fa: "";
}
.fa-volume-down {
  --fa: "";
}
.fa-comment-slash {
  --fa: "";
}
.fa-cloud-sun-rain {
  --fa: "";
}
.fa-compress {
  --fa: "";
}
.fa-wheat-awn {
  --fa: "";
}
.fa-wheat-alt {
  --fa: "";
}
.fa-ankh {
  --fa: "";
}
.fa-hands-holding-child {
  --fa: "";
}
.fa-asterisk {
  --fa: "*";
}
.fa-square-check {
  --fa: "";
}
.fa-check-square {
  --fa: "";
}
.fa-peseta-sign {
  --fa: "";
}
.fa-heading {
  --fa: "";
}
.fa-header {
  --fa: "";
}
.fa-ghost {
  --fa: "";
}
.fa-list {
  --fa: "";
}
.fa-list-squares {
  --fa: "";
}
.fa-square-phone-flip {
  --fa: "";
}
.fa-phone-square-alt {
  --fa: "";
}
.fa-cart-plus {
  --fa: "";
}
.fa-gamepad {
  --fa: "";
}
.fa-circle-dot {
  --fa: "";
}
.fa-dot-circle {
  --fa: "";
}
.fa-face-dizzy {
  --fa: "";
}
.fa-dizzy {
  --fa: "";
}
.fa-egg {
  --fa: "";
}
.fa-house-medical-circle-xmark {
  --fa: "";
}
.fa-campground {
  --fa: "";
}
.fa-folder-plus {
  --fa: "";
}
.fa-futbol {
  --fa: "";
}
.fa-futbol-ball {
  --fa: "";
}
.fa-soccer-ball {
  --fa: "";
}
.fa-paintbrush {
  --fa: "";
}
.fa-paint-brush {
  --fa: "";
}
.fa-lock {
  --fa: "";
}
.fa-gas-pump {
  --fa: "";
}
.fa-hot-tub-person {
  --fa: "";
}
.fa-hot-tub {
  --fa: "";
}
.fa-map-location {
  --fa: "";
}
.fa-map-marked {
  --fa: "";
}
.fa-house-flood-water {
  --fa: "";
}
.fa-tree {
  --fa: "";
}
.fa-bridge-lock {
  --fa: "";
}
.fa-sack-dollar {
  --fa: "";
}
.fa-pen-to-square {
  --fa: "";
}
.fa-edit {
  --fa: "";
}
.fa-car-side {
  --fa: "";
}
.fa-share-nodes {
  --fa: "";
}
.fa-share-alt {
  --fa: "";
}
.fa-heart-circle-minus {
  --fa: "";
}
.fa-hourglass-half {
  --fa: "";
}
.fa-hourglass-2 {
  --fa: "";
}
.fa-microscope {
  --fa: "";
}
.fa-sink {
  --fa: "";
}
.fa-bag-shopping {
  --fa: "";
}
.fa-shopping-bag {
  --fa: "";
}
.fa-arrow-down-z-a {
  --fa: "";
}
.fa-sort-alpha-desc {
  --fa: "";
}
.fa-sort-alpha-down-alt {
  --fa: "";
}
.fa-mitten {
  --fa: "";
}
.fa-person-rays {
  --fa: "";
}
.fa-users {
  --fa: "";
}
.fa-eye-slash {
  --fa: "";
}
.fa-flask-vial {
  --fa: "";
}
.fa-hand {
  --fa: "";
}
.fa-hand-paper {
  --fa: "";
}
.fa-om {
  --fa: "";
}
.fa-worm {
  --fa: "";
}
.fa-house-circle-xmark {
  --fa: "";
}
.fa-plug {
  --fa: "";
}
.fa-chevron-up {
  --fa: "";
}
.fa-hand-spock {
  --fa: "";
}
.fa-stopwatch {
  --fa: "";
}
.fa-face-kiss {
  --fa: "";
}
.fa-kiss {
  --fa: "";
}
.fa-bridge-circle-xmark {
  --fa: "";
}
.fa-face-grin-tongue {
  --fa: "";
}
.fa-grin-tongue {
  --fa: "";
}
.fa-chess-bishop {
  --fa: "";
}
.fa-face-grin-wink {
  --fa: "";
}
.fa-grin-wink {
  --fa: "";
}
.fa-ear-deaf {
  --fa: "";
}
.fa-deaf {
  --fa: "";
}
.fa-deafness {
  --fa: "";
}
.fa-hard-of-hearing {
  --fa: "";
}
.fa-road-circle-check {
  --fa: "";
}
.fa-dice-five {
  --fa: "";
}
.fa-square-rss {
  --fa: "";
}
.fa-rss-square {
  --fa: "";
}
.fa-land-mine-on {
  --fa: "";
}
.fa-i-cursor {
  --fa: "";
}
.fa-stamp {
  --fa: "";
}
.fa-stairs {
  --fa: "";
}
.fa-i {
  --fa: "I";
}
.fa-hryvnia-sign {
  --fa: "";
}
.fa-hryvnia {
  --fa: "";
}
.fa-pills {
  --fa: "";
}
.fa-face-grin-wide {
  --fa: "";
}
.fa-grin-alt {
  --fa: "";
}
.fa-tooth {
  --fa: "";
}
.fa-v {
  --fa: "V";
}
.fa-bangladeshi-taka-sign {
  --fa: "";
}
.fa-bicycle {
  --fa: "";
}
.fa-staff-snake {
  --fa: "";
}
.fa-rod-asclepius {
  --fa: "";
}
.fa-rod-snake {
  --fa: "";
}
.fa-staff-aesculapius {
  --fa: "";
}
.fa-head-side-cough-slash {
  --fa: "";
}
.fa-truck-medical {
  --fa: "";
}
.fa-ambulance {
  --fa: "";
}
.fa-wheat-awn-circle-exclamation {
  --fa: "";
}
.fa-snowman {
  --fa: "";
}
.fa-mortar-pestle {
  --fa: "";
}
.fa-road-barrier {
  --fa: "";
}
.fa-school {
  --fa: "";
}
.fa-igloo {
  --fa: "";
}
.fa-joint {
  --fa: "";
}
.fa-angle-right {
  --fa: "";
}
.fa-horse {
  --fa: "";
}
.fa-q {
  --fa: "Q";
}
.fa-g {
  --fa: "G";
}
.fa-notes-medical {
  --fa: "";
}
.fa-temperature-half {
  --fa: "";
}
.fa-temperature-2 {
  --fa: "";
}
.fa-thermometer-2 {
  --fa: "";
}
.fa-thermometer-half {
  --fa: "";
}
.fa-dong-sign {
  --fa: "";
}
.fa-capsules {
  --fa: "";
}
.fa-poo-storm {
  --fa: "";
}
.fa-poo-bolt {
  --fa: "";
}
.fa-face-frown-open {
  --fa: "";
}
.fa-frown-open {
  --fa: "";
}
.fa-hand-point-up {
  --fa: "";
}
.fa-money-bill {
  --fa: "";
}
.fa-bookmark {
  --fa: "";
}
.fa-align-justify {
  --fa: "";
}
.fa-umbrella-beach {
  --fa: "";
}
.fa-helmet-un {
  --fa: "";
}
.fa-bullseye {
  --fa: "";
}
.fa-bacon {
  --fa: "";
}
.fa-hand-point-down {
  --fa: "";
}
.fa-arrow-up-from-bracket {
  --fa: "";
}
.fa-folder {
  --fa: "";
}
.fa-folder-blank {
  --fa: "";
}
.fa-file-waveform {
  --fa: "";
}
.fa-file-medical-alt {
  --fa: "";
}
.fa-radiation {
  --fa: "";
}
.fa-chart-simple {
  --fa: "";
}
.fa-mars-stroke {
  --fa: "";
}
.fa-vial {
  --fa: "";
}
.fa-gauge {
  --fa: "";
}
.fa-dashboard {
  --fa: "";
}
.fa-gauge-med {
  --fa: "";
}
.fa-tachometer-alt-average {
  --fa: "";
}
.fa-wand-magic-sparkles {
  --fa: "";
}
.fa-magic-wand-sparkles {
  --fa: "";
}
.fa-e {
  --fa: "E";
}
.fa-pen-clip {
  --fa: "";
}
.fa-pen-alt {
  --fa: "";
}
.fa-bridge-circle-exclamation {
  --fa: "";
}
.fa-user {
  --fa: "";
}
.fa-school-circle-check {
  --fa: "";
}
.fa-dumpster {
  --fa: "";
}
.fa-van-shuttle {
  --fa: "";
}
.fa-shuttle-van {
  --fa: "";
}
.fa-building-user {
  --fa: "";
}
.fa-square-caret-left {
  --fa: "";
}
.fa-caret-square-left {
  --fa: "";
}
.fa-highlighter {
  --fa: "";
}
.fa-key {
  --fa: "";
}
.fa-bullhorn {
  --fa: "";
}
.fa-globe {
  --fa: "";
}
.fa-synagogue {
  --fa: "";
}
.fa-person-half-dress {
  --fa: "";
}
.fa-road-bridge {
  --fa: "";
}
.fa-location-arrow {
  --fa: "";
}
.fa-c {
  --fa: "C";
}
.fa-tablet-button {
  --fa: "";
}
.fa-building-lock {
  --fa: "";
}
.fa-pizza-slice {
  --fa: "";
}
.fa-money-bill-wave {
  --fa: "";
}
.fa-chart-area {
  --fa: "";
}
.fa-area-chart {
  --fa: "";
}
.fa-house-flag {
  --fa: "";
}
.fa-person-circle-minus {
  --fa: "";
}
.fa-ban {
  --fa: "";
}
.fa-cancel {
  --fa: "";
}
.fa-camera-rotate {
  --fa: "";
}
.fa-spray-can-sparkles {
  --fa: "";
}
.fa-air-freshener {
  --fa: "";
}
.fa-star {
  --fa: "";
}
.fa-repeat {
  --fa: "";
}
.fa-cross {
  --fa: "";
}
.fa-box {
  --fa: "";
}
.fa-venus-mars {
  --fa: "";
}
.fa-arrow-pointer {
  --fa: "";
}
.fa-mouse-pointer {
  --fa: "";
}
.fa-maximize {
  --fa: "";
}
.fa-expand-arrows-alt {
  --fa: "";
}
.fa-charging-station {
  --fa: "";
}
.fa-shapes {
  --fa: "";
}
.fa-triangle-circle-square {
  --fa: "";
}
.fa-shuffle {
  --fa: "";
}
.fa-random {
  --fa: "";
}
.fa-person-running {
  --fa: "";
}
.fa-running {
  --fa: "";
}
.fa-mobile-retro {
  --fa: "";
}
.fa-grip-lines-vertical {
  --fa: "";
}
.fa-spider {
  --fa: "";
}
.fa-hands-bound {
  --fa: "";
}
.fa-file-invoice-dollar {
  --fa: "";
}
.fa-plane-circle-exclamation {
  --fa: "";
}
.fa-x-ray {
  --fa: "";
}
.fa-spell-check {
  --fa: "";
}
.fa-slash {
  --fa: "";
}
.fa-computer-mouse {
  --fa: "";
}
.fa-mouse {
  --fa: "";
}
.fa-arrow-right-to-bracket {
  --fa: "";
}
.fa-sign-in {
  --fa: "";
}
.fa-shop-slash {
  --fa: "";
}
.fa-store-alt-slash {
  --fa: "";
}
.fa-server {
  --fa: "";
}
.fa-virus-covid-slash {
  --fa: "";
}
.fa-shop-lock {
  --fa: "";
}
.fa-hourglass-start {
  --fa: "";
}
.fa-hourglass-1 {
  --fa: "";
}
.fa-blender-phone {
  --fa: "";
}
.fa-building-wheat {
  --fa: "";
}
.fa-person-breastfeeding {
  --fa: "";
}
.fa-right-to-bracket {
  --fa: "";
}
.fa-sign-in-alt {
  --fa: "";
}
.fa-venus {
  --fa: "";
}
.fa-passport {
  --fa: "";
}
.fa-thumbtack-slash {
  --fa: "";
}
.fa-thumb-tack-slash {
  --fa: "";
}
.fa-heart-pulse {
  --fa: "";
}
.fa-heartbeat {
  --fa: "";
}
.fa-people-carry-box {
  --fa: "";
}
.fa-people-carry {
  --fa: "";
}
.fa-temperature-high {
  --fa: "";
}
.fa-microchip {
  --fa: "";
}
.fa-crown {
  --fa: "";
}
.fa-weight-hanging {
  --fa: "";
}
.fa-xmarks-lines {
  --fa: "";
}
.fa-file-prescription {
  --fa: "";
}
.fa-weight-scale {
  --fa: "";
}
.fa-weight {
  --fa: "";
}
.fa-user-group {
  --fa: "";
}
.fa-user-friends {
  --fa: "";
}
.fa-arrow-up-a-z {
  --fa: "";
}
.fa-sort-alpha-up {
  --fa: "";
}
.fa-chess-knight {
  --fa: "";
}
.fa-face-laugh-squint {
  --fa: "";
}
.fa-laugh-squint {
  --fa: "";
}
.fa-wheelchair {
  --fa: "";
}
.fa-circle-arrow-up {
  --fa: "";
}
.fa-arrow-circle-up {
  --fa: "";
}
.fa-toggle-on {
  --fa: "";
}
.fa-person-walking {
  --fa: "";
}
.fa-walking {
  --fa: "";
}
.fa-l {
  --fa: "L";
}
.fa-fire {
  --fa: "";
}
.fa-bed-pulse {
  --fa: "";
}
.fa-procedures {
  --fa: "";
}
.fa-shuttle-space {
  --fa: "";
}
.fa-space-shuttle {
  --fa: "";
}
.fa-face-laugh {
  --fa: "";
}
.fa-laugh {
  --fa: "";
}
.fa-folder-open {
  --fa: "";
}
.fa-heart-circle-plus {
  --fa: "";
}
.fa-code-fork {
  --fa: "";
}
.fa-city {
  --fa: "";
}
.fa-microphone-lines {
  --fa: "";
}
.fa-microphone-alt {
  --fa: "";
}
.fa-pepper-hot {
  --fa: "";
}
.fa-unlock {
  --fa: "";
}
.fa-colon-sign {
  --fa: "";
}
.fa-headset {
  --fa: "";
}
.fa-store-slash {
  --fa: "";
}
.fa-road-circle-xmark {
  --fa: "";
}
.fa-user-minus {
  --fa: "";
}
.fa-mars-stroke-up {
  --fa: "";
}
.fa-mars-stroke-v {
  --fa: "";
}
.fa-champagne-glasses {
  --fa: "";
}
.fa-glass-cheers {
  --fa: "";
}
.fa-clipboard {
  --fa: "";
}
.fa-house-circle-exclamation {
  --fa: "";
}
.fa-file-arrow-up {
  --fa: "";
}
.fa-file-upload {
  --fa: "";
}
.fa-wifi {
  --fa: "";
}
.fa-wifi-3 {
  --fa: "";
}
.fa-wifi-strong {
  --fa: "";
}
.fa-bath {
  --fa: "";
}
.fa-bathtub {
  --fa: "";
}
.fa-underline {
  --fa: "";
}
.fa-user-pen {
  --fa: "";
}
.fa-user-edit {
  --fa: "";
}
.fa-signature {
  --fa: "";
}
.fa-stroopwafel {
  --fa: "";
}
.fa-bold {
  --fa: "";
}
.fa-anchor-lock {
  --fa: "";
}
.fa-building-ngo {
  --fa: "";
}
.fa-manat-sign {
  --fa: "";
}
.fa-not-equal {
  --fa: "";
}
.fa-border-top-left {
  --fa: "";
}
.fa-border-style {
  --fa: "";
}
.fa-map-location-dot {
  --fa: "";
}
.fa-map-marked-alt {
  --fa: "";
}
.fa-jedi {
  --fa: "";
}
.fa-square-poll-vertical {
  --fa: "";
}
.fa-poll {
  --fa: "";
}
.fa-mug-hot {
  --fa: "";
}
.fa-car-battery {
  --fa: "";
}
.fa-battery-car {
  --fa: "";
}
.fa-gift {
  --fa: "";
}
.fa-dice-two {
  --fa: "";
}
.fa-chess-queen {
  --fa: "";
}
.fa-glasses {
  --fa: "";
}
.fa-chess-board {
  --fa: "";
}
.fa-building-circle-check {
  --fa: "";
}
.fa-person-chalkboard {
  --fa: "";
}
.fa-mars-stroke-right {
  --fa: "";
}
.fa-mars-stroke-h {
  --fa: "";
}
.fa-hand-back-fist {
  --fa: "";
}
.fa-hand-rock {
  --fa: "";
}
.fa-square-caret-up {
  --fa: "";
}
.fa-caret-square-up {
  --fa: "";
}
.fa-cloud-showers-water {
  --fa: "";
}
.fa-chart-bar {
  --fa: "";
}
.fa-bar-chart {
  --fa: "";
}
.fa-hands-bubbles {
  --fa: "";
}
.fa-hands-wash {
  --fa: "";
}
.fa-less-than-equal {
  --fa: "";
}
.fa-train {
  --fa: "";
}
.fa-eye-low-vision {
  --fa: "";
}
.fa-low-vision {
  --fa: "";
}
.fa-crow {
  --fa: "";
}
.fa-sailboat {
  --fa: "";
}
.fa-window-restore {
  --fa: "";
}
.fa-square-plus {
  --fa: "";
}
.fa-plus-square {
  --fa: "";
}
.fa-torii-gate {
  --fa: "";
}
.fa-frog {
  --fa: "";
}
.fa-bucket {
  --fa: "";
}
.fa-image {
  --fa: "";
}
.fa-microphone {
  --fa: "";
}
.fa-cow {
  --fa: "";
}
.fa-caret-up {
  --fa: "";
}
.fa-screwdriver {
  --fa: "";
}
.fa-folder-closed {
  --fa: "";
}
.fa-house-tsunami {
  --fa: "";
}
.fa-square-nfi {
  --fa: "";
}
.fa-arrow-up-from-ground-water {
  --fa: "";
}
.fa-martini-glass {
  --fa: "";
}
.fa-glass-martini-alt {
  --fa: "";
}
.fa-square-binary {
  --fa: "";
}
.fa-rotate-left {
  --fa: "";
}
.fa-rotate-back {
  --fa: "";
}
.fa-rotate-backward {
  --fa: "";
}
.fa-undo-alt {
  --fa: "";
}
.fa-table-columns {
  --fa: "";
}
.fa-columns {
  --fa: "";
}
.fa-lemon {
  --fa: "";
}
.fa-head-side-mask {
  --fa: "";
}
.fa-handshake {
  --fa: "";
}
.fa-gem {
  --fa: "";
}
.fa-dolly {
  --fa: "";
}
.fa-dolly-box {
  --fa: "";
}
.fa-smoking {
  --fa: "";
}
.fa-minimize {
  --fa: "";
}
.fa-compress-arrows-alt {
  --fa: "";
}
.fa-monument {
  --fa: "";
}
.fa-snowplow {
  --fa: "";
}
.fa-angles-right {
  --fa: "";
}
.fa-angle-double-right {
  --fa: "";
}
.fa-cannabis {
  --fa: "";
}
.fa-circle-play {
  --fa: "";
}
.fa-play-circle {
  --fa: "";
}
.fa-tablets {
  --fa: "";
}
.fa-ethernet {
  --fa: "";
}
.fa-euro-sign {
  --fa: "";
}
.fa-eur {
  --fa: "";
}
.fa-euro {
  --fa: "";
}
.fa-chair {
  --fa: "";
}
.fa-circle-check {
  --fa: "";
}
.fa-check-circle {
  --fa: "";
}
.fa-circle-stop {
  --fa: "";
}
.fa-stop-circle {
  --fa: "";
}
.fa-compass-drafting {
  --fa: "";
}
.fa-drafting-compass {
  --fa: "";
}
.fa-plate-wheat {
  --fa: "";
}
.fa-icicles {
  --fa: "";
}
.fa-person-shelter {
  --fa: "";
}
.fa-neuter {
  --fa: "";
}
.fa-id-badge {
  --fa: "";
}
.fa-marker {
  --fa: "";
}
.fa-face-laugh-beam {
  --fa: "";
}
.fa-laugh-beam {
  --fa: "";
}
.fa-helicopter-symbol {
  --fa: "";
}
.fa-universal-access {
  --fa: "";
}
.fa-circle-chevron-up {
  --fa: "";
}
.fa-chevron-circle-up {
  --fa: "";
}
.fa-lari-sign {
  --fa: "";
}
.fa-volcano {
  --fa: "";
}
.fa-person-walking-dashed-line-arrow-right {
  --fa: "";
}
.fa-sterling-sign {
  --fa: "";
}
.fa-gbp {
  --fa: "";
}
.fa-pound-sign {
  --fa: "";
}
.fa-viruses {
  --fa: "";
}
.fa-square-person-confined {
  --fa: "";
}
.fa-user-tie {
  --fa: "";
}
.fa-arrow-down-long {
  --fa: "";
}
.fa-long-arrow-down {
  --fa: "";
}
.fa-tent-arrow-down-to-line {
  --fa: "";
}
.fa-certificate {
  --fa: "";
}
.fa-reply-all {
  --fa: "";
}
.fa-mail-reply-all {
  --fa: "";
}
.fa-suitcase {
  --fa: "";
}
.fa-person-skating {
  --fa: "";
}
.fa-skating {
  --fa: "";
}
.fa-filter-circle-dollar {
  --fa: "";
}
.fa-funnel-dollar {
  --fa: "";
}
.fa-camera-retro {
  --fa: "";
}
.fa-circle-arrow-down {
  --fa: "";
}
.fa-arrow-circle-down {
  --fa: "";
}
.fa-file-import {
  --fa: "";
}
.fa-arrow-right-to-file {
  --fa: "";
}
.fa-square-arrow-up-right {
  --fa: "";
}
.fa-external-link-square {
  --fa: "";
}
.fa-box-open {
  --fa: "";
}
.fa-scroll {
  --fa: "";
}
.fa-spa {
  --fa: "";
}
.fa-location-pin-lock {
  --fa: "";
}
.fa-pause {
  --fa: "";
}
.fa-hill-avalanche {
  --fa: "";
}
.fa-temperature-empty {
  --fa: "";
}
.fa-temperature-0 {
  --fa: "";
}
.fa-thermometer-0 {
  --fa: "";
}
.fa-thermometer-empty {
  --fa: "";
}
.fa-bomb {
  --fa: "";
}
.fa-registered {
  --fa: "";
}
.fa-address-card {
  --fa: "";
}
.fa-contact-card {
  --fa: "";
}
.fa-vcard {
  --fa: "";
}
.fa-scale-unbalanced-flip {
  --fa: "";
}
.fa-balance-scale-right {
  --fa: "";
}
.fa-subscript {
  --fa: "";
}
.fa-diamond-turn-right {
  --fa: "";
}
.fa-directions {
  --fa: "";
}
.fa-burst {
  --fa: "";
}
.fa-house-laptop {
  --fa: "";
}
.fa-laptop-house {
  --fa: "";
}
.fa-face-tired {
  --fa: "";
}
.fa-tired {
  --fa: "";
}
.fa-money-bills {
  --fa: "";
}
.fa-smog {
  --fa: "";
}
.fa-crutch {
  --fa: "";
}
.fa-cloud-arrow-up {
  --fa: "";
}
.fa-cloud-upload {
  --fa: "";
}
.fa-cloud-upload-alt {
  --fa: "";
}
.fa-palette {
  --fa: "";
}
.fa-arrows-turn-right {
  --fa: "";
}
.fa-vest {
  --fa: "";
}
.fa-ferry {
  --fa: "";
}
.fa-arrows-down-to-people {
  --fa: "";
}
.fa-seedling {
  --fa: "";
}
.fa-sprout {
  --fa: "";
}
.fa-left-right {
  --fa: "";
}
.fa-arrows-alt-h {
  --fa: "";
}
.fa-boxes-packing {
  --fa: "";
}
.fa-circle-arrow-left {
  --fa: "";
}
.fa-arrow-circle-left {
  --fa: "";
}
.fa-group-arrows-rotate {
  --fa: "";
}
.fa-bowl-food {
  --fa: "";
}
.fa-candy-cane {
  --fa: "";
}
.fa-arrow-down-wide-short {
  --fa: "";
}
.fa-sort-amount-asc {
  --fa: "";
}
.fa-sort-amount-down {
  --fa: "";
}
.fa-cloud-bolt {
  --fa: "";
}
.fa-thunderstorm {
  --fa: "";
}
.fa-text-slash {
  --fa: "";
}
.fa-remove-format {
  --fa: "";
}
.fa-face-smile-wink {
  --fa: "";
}
.fa-smile-wink {
  --fa: "";
}
.fa-file-word {
  --fa: "";
}
.fa-file-powerpoint {
  --fa: "";
}
.fa-arrows-left-right {
  --fa: "";
}
.fa-arrows-h {
  --fa: "";
}
.fa-house-lock {
  --fa: "";
}
.fa-cloud-arrow-down {
  --fa: "";
}
.fa-cloud-download {
  --fa: "";
}
.fa-cloud-download-alt {
  --fa: "";
}
.fa-children {
  --fa: "";
}
.fa-chalkboard {
  --fa: "";
}
.fa-blackboard {
  --fa: "";
}
.fa-user-large-slash {
  --fa: "";
}
.fa-user-alt-slash {
  --fa: "";
}
.fa-envelope-open {
  --fa: "";
}
.fa-handshake-simple-slash {
  --fa: "";
}
.fa-handshake-alt-slash {
  --fa: "";
}
.fa-mattress-pillow {
  --fa: "";
}
.fa-guarani-sign {
  --fa: "";
}
.fa-arrows-rotate {
  --fa: "";
}
.fa-refresh {
  --fa: "";
}
.fa-sync {
  --fa: "";
}
.fa-fire-extinguisher {
  --fa: "";
}
.fa-cruzeiro-sign {
  --fa: "";
}
.fa-greater-than-equal {
  --fa: "";
}
.fa-shield-halved {
  --fa: "";
}
.fa-shield-alt {
  --fa: "";
}
.fa-book-atlas {
  --fa: "";
}
.fa-atlas {
  --fa: "";
}
.fa-virus {
  --fa: "";
}
.fa-envelope-circle-check {
  --fa: "";
}
.fa-layer-group {
  --fa: "";
}
.fa-arrows-to-dot {
  --fa: "";
}
.fa-archway {
  --fa: "";
}
.fa-heart-circle-check {
  --fa: "";
}
.fa-house-chimney-crack {
  --fa: "";
}
.fa-house-damage {
  --fa: "";
}
.fa-file-zipper {
  --fa: "";
}
.fa-file-archive {
  --fa: "";
}
.fa-square {
  --fa: "";
}
.fa-martini-glass-empty {
  --fa: "";
}
.fa-glass-martini {
  --fa: "";
}
.fa-couch {
  --fa: "";
}
.fa-cedi-sign {
  --fa: "";
}
.fa-italic {
  --fa: "";
}
.fa-table-cells-column-lock {
  --fa: "";
}
.fa-church {
  --fa: "";
}
.fa-comments-dollar {
  --fa: "";
}
.fa-democrat {
  --fa: "";
}
.fa-z {
  --fa: "Z";
}
.fa-person-skiing {
  --fa: "";
}
.fa-skiing {
  --fa: "";
}
.fa-road-lock {
  --fa: "";
}
.fa-a {
  --fa: "A";
}
.fa-temperature-arrow-down {
  --fa: "";
}
.fa-temperature-down {
  --fa: "";
}
.fa-feather-pointed {
  --fa: "";
}
.fa-feather-alt {
  --fa: "";
}
.fa-p {
  --fa: "P";
}
.fa-snowflake {
  --fa: "";
}
.fa-newspaper {
  --fa: "";
}
.fa-rectangle-ad {
  --fa: "";
}
.fa-ad {
  --fa: "";
}
.fa-circle-arrow-right {
  --fa: "";
}
.fa-arrow-circle-right {
  --fa: "";
}
.fa-filter-circle-xmark {
  --fa: "";
}
.fa-locust {
  --fa: "";
}
.fa-sort {
  --fa: "";
}
.fa-unsorted {
  --fa: "";
}
.fa-list-ol {
  --fa: "";
}
.fa-list-1-2 {
  --fa: "";
}
.fa-list-numeric {
  --fa: "";
}
.fa-person-dress-burst {
  --fa: "";
}
.fa-money-check-dollar {
  --fa: "";
}
.fa-money-check-alt {
  --fa: "";
}
.fa-vector-square {
  --fa: "";
}
.fa-bread-slice {
  --fa: "";
}
.fa-language {
  --fa: "";
}
.fa-face-kiss-wink-heart {
  --fa: "";
}
.fa-kiss-wink-heart {
  --fa: "";
}
.fa-filter {
  --fa: "";
}
.fa-question {
  --fa: "?";
}
.fa-file-signature {
  --fa: "";
}
.fa-up-down-left-right {
  --fa: "";
}
.fa-arrows-alt {
  --fa: "";
}
.fa-house-chimney-user {
  --fa: "";
}
.fa-hand-holding-heart {
  --fa: "";
}
.fa-puzzle-piece {
  --fa: "";
}
.fa-money-check {
  --fa: "";
}
.fa-star-half-stroke {
  --fa: "";
}
.fa-star-half-alt {
  --fa: "";
}
.fa-code {
  --fa: "";
}
.fa-whiskey-glass {
  --fa: "";
}
.fa-glass-whiskey {
  --fa: "";
}
.fa-building-circle-exclamation {
  --fa: "";
}
.fa-magnifying-glass-chart {
  --fa: "";
}
.fa-arrow-up-right-from-square {
  --fa: "";
}
.fa-external-link {
  --fa: "";
}
.fa-cubes-stacked {
  --fa: "";
}
.fa-won-sign {
  --fa: "";
}
.fa-krw {
  --fa: "";
}
.fa-won {
  --fa: "";
}
.fa-virus-covid {
  --fa: "";
}
.fa-austral-sign {
  --fa: "";
}
.fa-f {
  --fa: "F";
}
.fa-leaf {
  --fa: "";
}
.fa-road {
  --fa: "";
}
.fa-taxi {
  --fa: "";
}
.fa-cab {
  --fa: "";
}
.fa-person-circle-plus {
  --fa: "";
}
.fa-chart-pie {
  --fa: "";
}
.fa-pie-chart {
  --fa: "";
}
.fa-bolt-lightning {
  --fa: "";
}
.fa-sack-xmark {
  --fa: "";
}
.fa-file-excel {
  --fa: "";
}
.fa-file-contract {
  --fa: "";
}
.fa-fish-fins {
  --fa: "";
}
.fa-building-flag {
  --fa: "";
}
.fa-face-grin-beam {
  --fa: "";
}
.fa-grin-beam {
  --fa: "";
}
.fa-object-ungroup {
  --fa: "";
}
.fa-poop {
  --fa: "";
}
.fa-location-pin {
  --fa: "";
}
.fa-map-marker {
  --fa: "";
}
.fa-kaaba {
  --fa: "";
}
.fa-toilet-paper {
  --fa: "";
}
.fa-helmet-safety {
  --fa: "";
}
.fa-hard-hat {
  --fa: "";
}
.fa-hat-hard {
  --fa: "";
}
.fa-eject {
  --fa: "";
}
.fa-circle-right {
  --fa: "";
}
.fa-arrow-alt-circle-right {
  --fa: "";
}
.fa-plane-circle-check {
  --fa: "";
}
.fa-face-rolling-eyes {
  --fa: "";
}
.fa-meh-rolling-eyes {
  --fa: "";
}
.fa-object-group {
  --fa: "";
}
.fa-chart-line {
  --fa: "";
}
.fa-line-chart {
  --fa: "";
}
.fa-mask-ventilator {
  --fa: "";
}
.fa-arrow-right {
  --fa: "";
}
.fa-signs-post {
  --fa: "";
}
.fa-map-signs {
  --fa: "";
}
.fa-cash-register {
  --fa: "";
}
.fa-person-circle-question {
  --fa: "";
}
.fa-h {
  --fa: "H";
}
.fa-tarp {
  --fa: "";
}
.fa-screwdriver-wrench {
  --fa: "";
}
.fa-tools {
  --fa: "";
}
.fa-arrows-to-eye {
  --fa: "";
}
.fa-plug-circle-bolt {
  --fa: "";
}
.fa-heart {
  --fa: "";
}
.fa-mars-and-venus {
  --fa: "";
}
.fa-house-user {
  --fa: "";
}
.fa-home-user {
  --fa: "";
}
.fa-dumpster-fire {
  --fa: "";
}
.fa-house-crack {
  --fa: "";
}
.fa-martini-glass-citrus {
  --fa: "";
}
.fa-cocktail {
  --fa: "";
}
.fa-face-surprise {
  --fa: "";
}
.fa-surprise {
  --fa: "";
}
.fa-bottle-water {
  --fa: "";
}
.fa-circle-pause {
  --fa: "";
}
.fa-pause-circle {
  --fa: "";
}
.fa-toilet-paper-slash {
  --fa: "";
}
.fa-apple-whole {
  --fa: "";
}
.fa-apple-alt {
  --fa: "";
}
.fa-kitchen-set {
  --fa: "";
}
.fa-r {
  --fa: "R";
}
.fa-temperature-quarter {
  --fa: "";
}
.fa-temperature-1 {
  --fa: "";
}
.fa-thermometer-1 {
  --fa: "";
}
.fa-thermometer-quarter {
  --fa: "";
}
.fa-cube {
  --fa: "";
}
.fa-bitcoin-sign {
  --fa: "";
}
.fa-shield-dog {
  --fa: "";
}
.fa-solar-panel {
  --fa: "";
}
.fa-lock-open {
  --fa: "";
}
.fa-elevator {
  --fa: "";
}
.fa-money-bill-transfer {
  --fa: "";
}
.fa-money-bill-trend-up {
  --fa: "";
}
.fa-house-flood-water-circle-arrow-right {
  --fa: "";
}
.fa-square-poll-horizontal {
  --fa: "";
}
.fa-poll-h {
  --fa: "";
}
.fa-circle {
  --fa: "";
}
.fa-backward-fast {
  --fa: "";
}
.fa-fast-backward {
  --fa: "";
}
.fa-recycle {
  --fa: "";
}
.fa-user-astronaut {
  --fa: "";
}
.fa-plane-slash {
  --fa: "";
}
.fa-trademark {
  --fa: "";
}
.fa-basketball {
  --fa: "";
}
.fa-basketball-ball {
  --fa: "";
}
.fa-satellite-dish {
  --fa: "";
}
.fa-circle-up {
  --fa: "";
}
.fa-arrow-alt-circle-up {
  --fa: "";
}
.fa-mobile-screen-button {
  --fa: "";
}
.fa-mobile-alt {
  --fa: "";
}
.fa-volume-high {
  --fa: "";
}
.fa-volume-up {
  --fa: "";
}
.fa-users-rays {
  --fa: "";
}
.fa-wallet {
  --fa: "";
}
.fa-clipboard-check {
  --fa: "";
}
.fa-file-audio {
  --fa: "";
}
.fa-burger {
  --fa: "";
}
.fa-hamburger {
  --fa: "";
}
.fa-wrench {
  --fa: "";
}
.fa-bugs {
  --fa: "";
}
.fa-rupee-sign {
  --fa: "";
}
.fa-rupee {
  --fa: "";
}
.fa-file-image {
  --fa: "";
}
.fa-circle-question {
  --fa: "";
}
.fa-question-circle {
  --fa: "";
}
.fa-plane-departure {
  --fa: "";
}
.fa-handshake-slash {
  --fa: "";
}
.fa-book-bookmark {
  --fa: "";
}
.fa-code-branch {
  --fa: "";
}
.fa-hat-cowboy {
  --fa: "";
}
.fa-bridge {
  --fa: "";
}
.fa-phone-flip {
  --fa: "";
}
.fa-phone-alt {
  --fa: "";
}
.fa-truck-front {
  --fa: "";
}
.fa-cat {
  --fa: "";
}
.fa-anchor-circle-exclamation {
  --fa: "";
}
.fa-truck-field {
  --fa: "";
}
.fa-route {
  --fa: "";
}
.fa-clipboard-question {
  --fa: "";
}
.fa-panorama {
  --fa: "";
}
.fa-comment-medical {
  --fa: "";
}
.fa-teeth-open {
  --fa: "";
}
.fa-file-circle-minus {
  --fa: "";
}
.fa-tags {
  --fa: "";
}
.fa-wine-glass {
  --fa: "";
}
.fa-forward-fast {
  --fa: "";
}
.fa-fast-forward {
  --fa: "";
}
.fa-face-meh-blank {
  --fa: "";
}
.fa-meh-blank {
  --fa: "";
}
.fa-square-parking {
  --fa: "";
}
.fa-parking {
  --fa: "";
}
.fa-house-signal {
  --fa: "";
}
.fa-bars-progress {
  --fa: "";
}
.fa-tasks-alt {
  --fa: "";
}
.fa-faucet-drip {
  --fa: "";
}
.fa-cart-flatbed {
  --fa: "";
}
.fa-dolly-flatbed {
  --fa: "";
}
.fa-ban-smoking {
  --fa: "";
}
.fa-smoking-ban {
  --fa: "";
}
.fa-terminal {
  --fa: "";
}
.fa-mobile-button {
  --fa: "";
}
.fa-house-medical-flag {
  --fa: "";
}
.fa-basket-shopping {
  --fa: "";
}
.fa-shopping-basket {
  --fa: "";
}
.fa-tape {
  --fa: "";
}
.fa-bus-simple {
  --fa: "";
}
.fa-bus-alt {
  --fa: "";
}
.fa-eye {
  --fa: "";
}
.fa-face-sad-cry {
  --fa: "";
}
.fa-sad-cry {
  --fa: "";
}
.fa-audio-description {
  --fa: "";
}
.fa-person-military-to-person {
  --fa: "";
}
.fa-file-shield {
  --fa: "";
}
.fa-user-slash {
  --fa: "";
}
.fa-pen {
  --fa: "";
}
.fa-tower-observation {
  --fa: "";
}
.fa-file-code {
  --fa: "";
}
.fa-signal {
  --fa: "";
}
.fa-signal-5 {
  --fa: "";
}
.fa-signal-perfect {
  --fa: "";
}
.fa-bus {
  --fa: "";
}
.fa-heart-circle-xmark {
  --fa: "";
}
.fa-house-chimney {
  --fa: "";
}
.fa-home-lg {
  --fa: "";
}
.fa-window-maximize {
  --fa: "";
}
.fa-face-frown {
  --fa: "";
}
.fa-frown {
  --fa: "";
}
.fa-prescription {
  --fa: "";
}
.fa-shop {
  --fa: "";
}
.fa-store-alt {
  --fa: "";
}
.fa-floppy-disk {
  --fa: "";
}
.fa-save {
  --fa: "";
}
.fa-vihara {
  --fa: "";
}
.fa-scale-unbalanced {
  --fa: "";
}
.fa-balance-scale-left {
  --fa: "";
}
.fa-sort-up {
  --fa: "";
}
.fa-sort-asc {
  --fa: "";
}
.fa-comment-dots {
  --fa: "";
}
.fa-commenting {
  --fa: "";
}
.fa-plant-wilt {
  --fa: "";
}
.fa-diamond {
  --fa: "";
}
.fa-face-grin-squint {
  --fa: "";
}
.fa-grin-squint {
  --fa: "";
}
.fa-hand-holding-dollar {
  --fa: "";
}
.fa-hand-holding-usd {
  --fa: "";
}
.fa-chart-diagram {
  --fa: "";
}
.fa-bacterium {
  --fa: "";
}
.fa-hand-pointer {
  --fa: "";
}
.fa-drum-steelpan {
  --fa: "";
}
.fa-hand-scissors {
  --fa: "";
}
.fa-hands-praying {
  --fa: "";
}
.fa-praying-hands {
  --fa: "";
}
.fa-arrow-rotate-right {
  --fa: "";
}
.fa-arrow-right-rotate {
  --fa: "";
}
.fa-arrow-rotate-forward {
  --fa: "";
}
.fa-redo {
  --fa: "";
}
.fa-biohazard {
  --fa: "";
}
.fa-location-crosshairs {
  --fa: "";
}
.fa-location {
  --fa: "";
}
.fa-mars-double {
  --fa: "";
}
.fa-child-dress {
  --fa: "";
}
.fa-users-between-lines {
  --fa: "";
}
.fa-lungs-virus {
  --fa: "";
}
.fa-face-grin-tears {
  --fa: "";
}
.fa-grin-tears {
  --fa: "";
}
.fa-phone {
  --fa: "";
}
.fa-calendar-xmark {
  --fa: "";
}
.fa-calendar-times {
  --fa: "";
}
.fa-child-reaching {
  --fa: "";
}
.fa-head-side-virus {
  --fa: "";
}
.fa-user-gear {
  --fa: "";
}
.fa-user-cog {
  --fa: "";
}
.fa-arrow-up-1-9 {
  --fa: "";
}
.fa-sort-numeric-up {
  --fa: "";
}
.fa-door-closed {
  --fa: "";
}
.fa-shield-virus {
  --fa: "";
}
.fa-dice-six {
  --fa: "";
}
.fa-mosquito-net {
  --fa: "";
}
.fa-file-fragment {
  --fa: "";
}
.fa-bridge-water {
  --fa: "";
}
.fa-person-booth {
  --fa: "";
}
.fa-text-width {
  --fa: "";
}
.fa-hat-wizard {
  --fa: "";
}
.fa-pen-fancy {
  --fa: "";
}
.fa-person-digging {
  --fa: "";
}
.fa-digging {
  --fa: "";
}
.fa-trash {
  --fa: "";
}
.fa-gauge-simple {
  --fa: "";
}
.fa-gauge-simple-med {
  --fa: "";
}
.fa-tachometer-average {
  --fa: "";
}
.fa-book-medical {
  --fa: "";
}
.fa-poo {
  --fa: "";
}
.fa-quote-right {
  --fa: "";
}
.fa-quote-right-alt {
  --fa: "";
}
.fa-shirt {
  --fa: "";
}
.fa-t-shirt {
  --fa: "";
}
.fa-tshirt {
  --fa: "";
}
.fa-cubes {
  --fa: "";
}
.fa-divide {
  --fa: "";
}
.fa-tenge-sign {
  --fa: "";
}
.fa-tenge {
  --fa: "";
}
.fa-headphones {
  --fa: "";
}
.fa-hands-holding {
  --fa: "";
}
.fa-hands-clapping {
  --fa: "";
}
.fa-republican {
  --fa: "";
}
.fa-arrow-left {
  --fa: "";
}
.fa-person-circle-xmark {
  --fa: "";
}
.fa-ruler {
  --fa: "";
}
.fa-align-left {
  --fa: "";
}
.fa-dice-d6 {
  --fa: "";
}
.fa-restroom {
  --fa: "";
}
.fa-j {
  --fa: "J";
}
.fa-users-viewfinder {
  --fa: "";
}
.fa-file-video {
  --fa: "";
}
.fa-up-right-from-square {
  --fa: "";
}
.fa-external-link-alt {
  --fa: "";
}
.fa-table-cells {
  --fa: "";
}
.fa-th {
  --fa: "";
}
.fa-file-pdf {
  --fa: "";
}
.fa-book-bible {
  --fa: "";
}
.fa-bible {
  --fa: "";
}
.fa-o {
  --fa: "O";
}
.fa-suitcase-medical {
  --fa: "";
}
.fa-medkit {
  --fa: "";
}
.fa-user-secret {
  --fa: "";
}
.fa-otter {
  --fa: "";
}
.fa-person-dress {
  --fa: "";
}
.fa-female {
  --fa: "";
}
.fa-comment-dollar {
  --fa: "";
}
.fa-business-time {
  --fa: "";
}
.fa-briefcase-clock {
  --fa: "";
}
.fa-table-cells-large {
  --fa: "";
}
.fa-th-large {
  --fa: "";
}
.fa-book-tanakh {
  --fa: "";
}
.fa-tanakh {
  --fa: "";
}
.fa-phone-volume {
  --fa: "";
}
.fa-volume-control-phone {
  --fa: "";
}
.fa-hat-cowboy-side {
  --fa: "";
}
.fa-clipboard-user {
  --fa: "";
}
.fa-child {
  --fa: "";
}
.fa-lira-sign {
  --fa: "";
}
.fa-satellite {
  --fa: "";
}
.fa-plane-lock {
  --fa: "";
}
.fa-tag {
  --fa: "";
}
.fa-comment {
  --fa: "";
}
.fa-cake-candles {
  --fa: "";
}
.fa-birthday-cake {
  --fa: "";
}
.fa-cake {
  --fa: "";
}
.fa-envelope {
  --fa: "";
}
.fa-angles-up {
  --fa: "";
}
.fa-angle-double-up {
  --fa: "";
}
.fa-paperclip {
  --fa: "";
}
.fa-arrow-right-to-city {
  --fa: "";
}
.fa-ribbon {
  --fa: "";
}
.fa-lungs {
  --fa: "";
}
.fa-arrow-up-9-1 {
  --fa: "";
}
.fa-sort-numeric-up-alt {
  --fa: "";
}
.fa-litecoin-sign {
  --fa: "";
}
.fa-border-none {
  --fa: "";
}
.fa-circle-nodes {
  --fa: "";
}
.fa-parachute-box {
  --fa: "";
}
.fa-indent {
  --fa: "";
}
.fa-truck-field-un {
  --fa: "";
}
.fa-hourglass {
  --fa: "";
}
.fa-hourglass-empty {
  --fa: "";
}
.fa-mountain {
  --fa: "";
}
.fa-user-doctor {
  --fa: "";
}
.fa-user-md {
  --fa: "";
}
.fa-circle-info {
  --fa: "";
}
.fa-info-circle {
  --fa: "";
}
.fa-cloud-meatball {
  --fa: "";
}
.fa-camera {
  --fa: "";
}
.fa-camera-alt {
  --fa: "";
}
.fa-square-virus {
  --fa: "";
}
.fa-meteor {
  --fa: "";
}
.fa-car-on {
  --fa: "";
}
.fa-sleigh {
  --fa: "";
}
.fa-arrow-down-1-9 {
  --fa: "";
}
.fa-sort-numeric-asc {
  --fa: "";
}
.fa-sort-numeric-down {
  --fa: "";
}
.fa-hand-holding-droplet {
  --fa: "";
}
.fa-hand-holding-water {
  --fa: "";
}
.fa-water {
  --fa: "";
}
.fa-calendar-check {
  --fa: "";
}
.fa-braille {
  --fa: "";
}
.fa-prescription-bottle-medical {
  --fa: "";
}
.fa-prescription-bottle-alt {
  --fa: "";
}
.fa-landmark {
  --fa: "";
}
.fa-truck {
  --fa: "";
}
.fa-crosshairs {
  --fa: "";
}
.fa-person-cane {
  --fa: "";
}
.fa-tent {
  --fa: "";
}
.fa-vest-patches {
  --fa: "";
}
.fa-check-double {
  --fa: "";
}
.fa-arrow-down-a-z {
  --fa: "";
}
.fa-sort-alpha-asc {
  --fa: "";
}
.fa-sort-alpha-down {
  --fa: "";
}
.fa-money-bill-wheat {
  --fa: "";
}
.fa-cookie {
  --fa: "";
}
.fa-arrow-rotate-left {
  --fa: "";
}
.fa-arrow-left-rotate {
  --fa: "";
}
.fa-arrow-rotate-back {
  --fa: "";
}
.fa-arrow-rotate-backward {
  --fa: "";
}
.fa-undo {
  --fa: "";
}
.fa-hard-drive {
  --fa: "";
}
.fa-hdd {
  --fa: "";
}
.fa-face-grin-squint-tears {
  --fa: "";
}
.fa-grin-squint-tears {
  --fa: "";
}
.fa-dumbbell {
  --fa: "";
}
.fa-rectangle-list {
  --fa: "";
}
.fa-list-alt {
  --fa: "";
}
.fa-tarp-droplet {
  --fa: "";
}
.fa-house-medical-circle-check {
  --fa: "";
}
.fa-person-skiing-nordic {
  --fa: "";
}
.fa-skiing-nordic {
  --fa: "";
}
.fa-calendar-plus {
  --fa: "";
}
.fa-plane-arrival {
  --fa: "";
}
.fa-circle-left {
  --fa: "";
}
.fa-arrow-alt-circle-left {
  --fa: "";
}
.fa-train-subway {
  --fa: "";
}
.fa-subway {
  --fa: "";
}
.fa-chart-gantt {
  --fa: "";
}
.fa-indian-rupee-sign {
  --fa: "";
}
.fa-indian-rupee {
  --fa: "";
}
.fa-inr {
  --fa: "";
}
.fa-crop-simple {
  --fa: "";
}
.fa-crop-alt {
  --fa: "";
}
.fa-money-bill-1 {
  --fa: "";
}
.fa-money-bill-alt {
  --fa: "";
}
.fa-left-long {
  --fa: "";
}
.fa-long-arrow-alt-left {
  --fa: "";
}
.fa-dna {
  --fa: "";
}
.fa-virus-slash {
  --fa: "";
}
.fa-minus {
  --fa: "";
}
.fa-subtract {
  --fa: "";
}
.fa-chess {
  --fa: "";
}
.fa-arrow-left-long {
  --fa: "";
}
.fa-long-arrow-left {
  --fa: "";
}
.fa-plug-circle-check {
  --fa: "";
}
.fa-street-view {
  --fa: "";
}
.fa-franc-sign {
  --fa: "";
}
.fa-volume-off {
  --fa: "";
}
.fa-hands-asl-interpreting {
  --fa: "";
}
.fa-american-sign-language-interpreting {
  --fa: "";
}
.fa-asl-interpreting {
  --fa: "";
}
.fa-hands-american-sign-language-interpreting {
  --fa: "";
}
.fa-gear {
  --fa: "";
}
.fa-cog {
  --fa: "";
}
.fa-droplet-slash {
  --fa: "";
}
.fa-tint-slash {
  --fa: "";
}
.fa-mosque {
  --fa: "";
}
.fa-mosquito {
  --fa: "";
}
.fa-star-of-david {
  --fa: "";
}
.fa-person-military-rifle {
  --fa: "";
}
.fa-cart-shopping {
  --fa: "";
}
.fa-shopping-cart {
  --fa: "";
}
.fa-vials {
  --fa: "";
}
.fa-plug-circle-plus {
  --fa: "";
}
.fa-place-of-worship {
  --fa: "";
}
.fa-grip-vertical {
  --fa: "";
}
.fa-hexagon-nodes {
  --fa: "";
}
.fa-arrow-turn-up {
  --fa: "";
}
.fa-level-up {
  --fa: "";
}
.fa-u {
  --fa: "U";
}
.fa-square-root-variable {
  --fa: "";
}
.fa-square-root-alt {
  --fa: "";
}
.fa-clock {
  --fa: "";
}
.fa-clock-four {
  --fa: "";
}
.fa-backward-step {
  --fa: "";
}
.fa-step-backward {
  --fa: "";
}
.fa-pallet {
  --fa: "";
}
.fa-faucet {
  --fa: "";
}
.fa-baseball-bat-ball {
  --fa: "";
}
.fa-s {
  --fa: "S";
}
.fa-timeline {
  --fa: "";
}
.fa-keyboard {
  --fa: "";
}
.fa-caret-down {
  --fa: "";
}
.fa-house-chimney-medical {
  --fa: "";
}
.fa-clinic-medical {
  --fa: "";
}
.fa-temperature-three-quarters {
  --fa: "";
}
.fa-temperature-3 {
  --fa: "";
}
.fa-thermometer-3 {
  --fa: "";
}
.fa-thermometer-three-quarters {
  --fa: "";
}
.fa-mobile-screen {
  --fa: "";
}
.fa-mobile-android-alt {
  --fa: "";
}
.fa-plane-up {
  --fa: "";
}
.fa-piggy-bank {
  --fa: "";
}
.fa-battery-half {
  --fa: "";
}
.fa-battery-3 {
  --fa: "";
}
.fa-mountain-city {
  --fa: "";
}
.fa-coins {
  --fa: "";
}
.fa-khanda {
  --fa: "";
}
.fa-sliders {
  --fa: "";
}
.fa-sliders-h {
  --fa: "";
}
.fa-folder-tree {
  --fa: "";
}
.fa-network-wired {
  --fa: "";
}
.fa-map-pin {
  --fa: "";
}
.fa-hamsa {
  --fa: "";
}
.fa-cent-sign {
  --fa: "";
}
.fa-flask {
  --fa: "";
}
.fa-person-pregnant {
  --fa: "";
}
.fa-wand-sparkles {
  --fa: "";
}
.fa-ellipsis-vertical {
  --fa: "";
}
.fa-ellipsis-v {
  --fa: "";
}
.fa-ticket {
  --fa: "";
}
.fa-power-off {
  --fa: "";
}
.fa-right-long {
  --fa: "";
}
.fa-long-arrow-alt-right {
  --fa: "";
}
.fa-flag-usa {
  --fa: "";
}
.fa-laptop-file {
  --fa: "";
}
.fa-tty {
  --fa: "";
}
.fa-teletype {
  --fa: "";
}
.fa-diagram-next {
  --fa: "";
}
.fa-person-rifle {
  --fa: "";
}
.fa-house-medical-circle-exclamation {
  --fa: "";
}
.fa-closed-captioning {
  --fa: "";
}
.fa-person-hiking {
  --fa: "";
}
.fa-hiking {
  --fa: "";
}
.fa-venus-double {
  --fa: "";
}
.fa-images {
  --fa: "";
}
.fa-calculator {
  --fa: "";
}
.fa-people-pulling {
  --fa: "";
}
.fa-n {
  --fa: "N";
}
.fa-cable-car {
  --fa: "";
}
.fa-tram {
  --fa: "";
}
.fa-cloud-rain {
  --fa: "";
}
.fa-building-circle-xmark {
  --fa: "";
}
.fa-ship {
  --fa: "";
}
.fa-arrows-down-to-line {
  --fa: "";
}
.fa-download {
  --fa: "";
}
.fa-face-grin {
  --fa: "";
}
.fa-grin {
  --fa: "";
}
.fa-delete-left {
  --fa: "";
}
.fa-backspace {
  --fa: "";
}
.fa-eye-dropper {
  --fa: "";
}
.fa-eye-dropper-empty {
  --fa: "";
}
.fa-eyedropper {
  --fa: "";
}
.fa-file-circle-check {
  --fa: "";
}
.fa-forward {
  --fa: "";
}
.fa-mobile {
  --fa: "";
}
.fa-mobile-android {
  --fa: "";
}
.fa-mobile-phone {
  --fa: "";
}
.fa-face-meh {
  --fa: "";
}
.fa-meh {
  --fa: "";
}
.fa-align-center {
  --fa: "";
}
.fa-book-skull {
  --fa: "";
}
.fa-book-dead {
  --fa: "";
}
.fa-id-card {
  --fa: "";
}
.fa-drivers-license {
  --fa: "";
}
.fa-outdent {
  --fa: "";
}
.fa-dedent {
  --fa: "";
}
.fa-heart-circle-exclamation {
  --fa: "";
}
.fa-house {
  --fa: "";
}
.fa-home {
  --fa: "";
}
.fa-home-alt {
  --fa: "";
}
.fa-home-lg-alt {
  --fa: "";
}
.fa-calendar-week {
  --fa: "";
}
.fa-laptop-medical {
  --fa: "";
}
.fa-b {
  --fa: "B";
}
.fa-file-medical {
  --fa: "";
}
.fa-dice-one {
  --fa: "";
}
.fa-kiwi-bird {
  --fa: "";
}
.fa-arrow-right-arrow-left {
  --fa: "";
}
.fa-exchange {
  --fa: "";
}
.fa-rotate-right {
  --fa: "";
}
.fa-redo-alt {
  --fa: "";
}
.fa-rotate-forward {
  --fa: "";
}
.fa-utensils {
  --fa: "";
}
.fa-cutlery {
  --fa: "";
}
.fa-arrow-up-wide-short {
  --fa: "";
}
.fa-sort-amount-up {
  --fa: "";
}
.fa-mill-sign {
  --fa: "";
}
.fa-bowl-rice {
  --fa: "";
}
.fa-skull {
  --fa: "";
}
.fa-tower-broadcast {
  --fa: "";
}
.fa-broadcast-tower {
  --fa: "";
}
.fa-truck-pickup {
  --fa: "";
}
.fa-up-long {
  --fa: "";
}
.fa-long-arrow-alt-up {
  --fa: "";
}
.fa-stop {
  --fa: "";
}
.fa-code-merge {
  --fa: "";
}
.fa-upload {
  --fa: "";
}
.fa-hurricane {
  --fa: "";
}
.fa-mound {
  --fa: "";
}
.fa-toilet-portable {
  --fa: "";
}
.fa-compact-disc {
  --fa: "";
}
.fa-file-arrow-down {
  --fa: "";
}
.fa-file-download {
  --fa: "";
}
.fa-caravan {
  --fa: "";
}
.fa-shield-cat {
  --fa: "";
}
.fa-bolt {
  --fa: "";
}
.fa-zap {
  --fa: "";
}
.fa-glass-water {
  --fa: "";
}
.fa-oil-well {
  --fa: "";
}
.fa-vault {
  --fa: "";
}
.fa-mars {
  --fa: "";
}
.fa-toilet {
  --fa: "";
}
.fa-plane-circle-xmark {
  --fa: "";
}
.fa-yen-sign {
  --fa: "";
}
.fa-cny {
  --fa: "";
}
.fa-jpy {
  --fa: "";
}
.fa-rmb {
  --fa: "";
}
.fa-yen {
  --fa: "";
}
.fa-ruble-sign {
  --fa: "";
}
.fa-rouble {
  --fa: "";
}
.fa-rub {
  --fa: "";
}
.fa-ruble {
  --fa: "";
}
.fa-sun {
  --fa: "";
}
.fa-guitar {
  --fa: "";
}
.fa-face-laugh-wink {
  --fa: "";
}
.fa-laugh-wink {
  --fa: "";
}
.fa-horse-head {
  --fa: "";
}
.fa-bore-hole {
  --fa: "";
}
.fa-industry {
  --fa: "";
}
.fa-circle-down {
  --fa: "";
}
.fa-arrow-alt-circle-down {
  --fa: "";
}
.fa-arrows-turn-to-dots {
  --fa: "";
}
.fa-florin-sign {
  --fa: "";
}
.fa-arrow-down-short-wide {
  --fa: "";
}
.fa-sort-amount-desc {
  --fa: "";
}
.fa-sort-amount-down-alt {
  --fa: "";
}
.fa-less-than {
  --fa: "<";
}
.fa-angle-down {
  --fa: "";
}
.fa-car-tunnel {
  --fa: "";
}
.fa-head-side-cough {
  --fa: "";
}
.fa-grip-lines {
  --fa: "";
}
.fa-thumbs-down {
  --fa: "";
}
.fa-user-lock {
  --fa: "";
}
.fa-arrow-right-long {
  --fa: "";
}
.fa-long-arrow-right {
  --fa: "";
}
.fa-anchor-circle-xmark {
  --fa: "";
}
.fa-ellipsis {
  --fa: "";
}
.fa-ellipsis-h {
  --fa: "";
}
.fa-chess-pawn {
  --fa: "";
}
.fa-kit-medical {
  --fa: "";
}
.fa-first-aid {
  --fa: "";
}
.fa-person-through-window {
  --fa: "";
}
.fa-toolbox {
  --fa: "";
}
.fa-hands-holding-circle {
  --fa: "";
}
.fa-bug {
  --fa: "";
}
.fa-credit-card {
  --fa: "";
}
.fa-credit-card-alt {
  --fa: "";
}
.fa-car {
  --fa: "";
}
.fa-automobile {
  --fa: "";
}
.fa-hand-holding-hand {
  --fa: "";
}
.fa-book-open-reader {
  --fa: "";
}
.fa-book-reader {
  --fa: "";
}
.fa-mountain-sun {
  --fa: "";
}
.fa-arrows-left-right-to-line {
  --fa: "";
}
.fa-dice-d20 {
  --fa: "";
}
.fa-truck-droplet {
  --fa: "";
}
.fa-file-circle-xmark {
  --fa: "";
}
.fa-temperature-arrow-up {
  --fa: "";
}
.fa-temperature-up {
  --fa: "";
}
.fa-medal {
  --fa: "";
}
.fa-bed {
  --fa: "";
}
.fa-square-h {
  --fa: "";
}
.fa-h-square {
  --fa: "";
}
.fa-podcast {
  --fa: "";
}
.fa-temperature-full {
  --fa: "";
}
.fa-temperature-4 {
  --fa: "";
}
.fa-thermometer-4 {
  --fa: "";
}
.fa-thermometer-full {
  --fa: "";
}
.fa-bell {
  --fa: "";
}
.fa-superscript {
  --fa: "";
}
.fa-plug-circle-xmark {
  --fa: "";
}
.fa-star-of-life {
  --fa: "";
}
.fa-phone-slash {
  --fa: "";
}
.fa-paint-roller {
  --fa: "";
}
.fa-handshake-angle {
  --fa: "";
}
.fa-hands-helping {
  --fa: "";
}
.fa-location-dot {
  --fa: "";
}
.fa-map-marker-alt {
  --fa: "";
}
.fa-file {
  --fa: "";
}
.fa-greater-than {
  --fa: ">";
}
.fa-person-swimming {
  --fa: "";
}
.fa-swimmer {
  --fa: "";
}
.fa-arrow-down {
  --fa: "";
}
.fa-droplet {
  --fa: "";
}
.fa-tint {
  --fa: "";
}
.fa-eraser {
  --fa: "";
}
.fa-earth-americas {
  --fa: "";
}
.fa-earth {
  --fa: "";
}
.fa-earth-america {
  --fa: "";
}
.fa-globe-americas {
  --fa: "";
}
.fa-person-burst {
  --fa: "";
}
.fa-dove {
  --fa: "";
}
.fa-battery-empty {
  --fa: "";
}
.fa-battery-0 {
  --fa: "";
}
.fa-socks {
  --fa: "";
}
.fa-inbox {
  --fa: "";
}
.fa-section {
  --fa: "";
}
.fa-gauge-high {
  --fa: "";
}
.fa-tachometer-alt {
  --fa: "";
}
.fa-tachometer-alt-fast {
  --fa: "";
}
.fa-envelope-open-text {
  --fa: "";
}
.fa-hospital {
  --fa: "";
}
.fa-hospital-alt {
  --fa: "";
}
.fa-hospital-wide {
  --fa: "";
}
.fa-wine-bottle {
  --fa: "";
}
.fa-chess-rook {
  --fa: "";
}
.fa-bars-staggered {
  --fa: "";
}
.fa-reorder {
  --fa: "";
}
.fa-stream {
  --fa: "";
}
.fa-dharmachakra {
  --fa: "";
}
.fa-hotdog {
  --fa: "";
}
.fa-person-walking-with-cane {
  --fa: "";
}
.fa-blind {
  --fa: "";
}
.fa-drum {
  --fa: "";
}
.fa-ice-cream {
  --fa: "";
}
.fa-heart-circle-bolt {
  --fa: "";
}
.fa-fax {
  --fa: "";
}
.fa-paragraph {
  --fa: "";
}
.fa-check-to-slot {
  --fa: "";
}
.fa-vote-yea {
  --fa: "";
}
.fa-star-half {
  --fa: "";
}
.fa-boxes-stacked {
  --fa: "";
}
.fa-boxes {
  --fa: "";
}
.fa-boxes-alt {
  --fa: "";
}
.fa-link {
  --fa: "";
}
.fa-chain {
  --fa: "";
}
.fa-ear-listen {
  --fa: "";
}
.fa-assistive-listening-systems {
  --fa: "";
}
.fa-tree-city {
  --fa: "";
}
.fa-play {
  --fa: "";
}
.fa-font {
  --fa: "";
}
.fa-table-cells-row-lock {
  --fa: "";
}
.fa-rupiah-sign {
  --fa: "";
}
.fa-magnifying-glass {
  --fa: "";
}
.fa-search {
  --fa: "";
}
.fa-table-tennis-paddle-ball {
  --fa: "";
}
.fa-ping-pong-paddle-ball {
  --fa: "";
}
.fa-table-tennis {
  --fa: "";
}
.fa-person-dots-from-line {
  --fa: "";
}
.fa-diagnoses {
  --fa: "";
}
.fa-trash-can-arrow-up {
  --fa: "";
}
.fa-trash-restore-alt {
  --fa: "";
}
.fa-naira-sign {
  --fa: "";
}
.fa-cart-arrow-down {
  --fa: "";
}
.fa-walkie-talkie {
  --fa: "";
}
.fa-file-pen {
  --fa: "";
}
.fa-file-edit {
  --fa: "";
}
.fa-receipt {
  --fa: "";
}
.fa-square-pen {
  --fa: "";
}
.fa-pen-square {
  --fa: "";
}
.fa-pencil-square {
  --fa: "";
}
.fa-suitcase-rolling {
  --fa: "";
}
.fa-person-circle-exclamation {
  --fa: "";
}
.fa-chevron-down {
  --fa: "";
}
.fa-battery-full {
  --fa: "";
}
.fa-battery {
  --fa: "";
}
.fa-battery-5 {
  --fa: "";
}
.fa-skull-crossbones {
  --fa: "";
}
.fa-code-compare {
  --fa: "";
}
.fa-list-ul {
  --fa: "";
}
.fa-list-dots {
  --fa: "";
}
.fa-school-lock {
  --fa: "";
}
.fa-tower-cell {
  --fa: "";
}
.fa-down-long {
  --fa: "";
}
.fa-long-arrow-alt-down {
  --fa: "";
}
.fa-ranking-star {
  --fa: "";
}
.fa-chess-king {
  --fa: "";
}
.fa-person-harassing {
  --fa: "";
}
.fa-brazilian-real-sign {
  --fa: "";
}
.fa-landmark-dome {
  --fa: "";
}
.fa-landmark-alt {
  --fa: "";
}
.fa-arrow-up {
  --fa: "";
}
.fa-tv {
  --fa: "";
}
.fa-television {
  --fa: "";
}
.fa-tv-alt {
  --fa: "";
}
.fa-shrimp {
  --fa: "";
}
.fa-list-check {
  --fa: "";
}
.fa-tasks {
  --fa: "";
}
.fa-jug-detergent {
  --fa: "";
}
.fa-circle-user {
  --fa: "";
}
.fa-user-circle {
  --fa: "";
}
.fa-user-shield {
  --fa: "";
}
.fa-wind {
  --fa: "";
}
.fa-car-burst {
  --fa: "";
}
.fa-car-crash {
  --fa: "";
}
.fa-y {
  --fa: "Y";
}
.fa-person-snowboarding {
  --fa: "";
}
.fa-snowboarding {
  --fa: "";
}
.fa-truck-fast {
  --fa: "";
}
.fa-shipping-fast {
  --fa: "";
}
.fa-fish {
  --fa: "";
}
.fa-user-graduate {
  --fa: "";
}
.fa-circle-half-stroke {
  --fa: "";
}
.fa-adjust {
  --fa: "";
}
.fa-clapperboard {
  --fa: "";
}
.fa-circle-radiation {
  --fa: "";
}
.fa-radiation-alt {
  --fa: "";
}
.fa-baseball {
  --fa: "";
}
.fa-baseball-ball {
  --fa: "";
}
.fa-jet-fighter-up {
  --fa: "";
}
.fa-diagram-project {
  --fa: "";
}
.fa-project-diagram {
  --fa: "";
}
.fa-copy {
  --fa: "";
}
.fa-volume-xmark {
  --fa: "";
}
.fa-volume-mute {
  --fa: "";
}
.fa-volume-times {
  --fa: "";
}
.fa-hand-sparkles {
  --fa: "";
}
.fa-grip {
  --fa: "";
}
.fa-grip-horizontal {
  --fa: "";
}
.fa-share-from-square {
  --fa: "";
}
.fa-share-square {
  --fa: "";
}
.fa-child-combatant {
  --fa: "";
}
.fa-child-rifle {
  --fa: "";
}
.fa-gun {
  --fa: "";
}
.fa-square-phone {
  --fa: "";
}
.fa-phone-square {
  --fa: "";
}
.fa-plus {
  --fa: "+";
}
.fa-add {
  --fa: "+";
}
.fa-expand {
  --fa: "";
}
.fa-computer {
  --fa: "";
}
.fa-xmark {
  --fa: "";
}
.fa-close {
  --fa: "";
}
.fa-multiply {
  --fa: "";
}
.fa-remove {
  --fa: "";
}
.fa-times {
  --fa: "";
}
.fa-arrows-up-down-left-right {
  --fa: "";
}
.fa-arrows {
  --fa: "";
}
.fa-chalkboard-user {
  --fa: "";
}
.fa-chalkboard-teacher {
  --fa: "";
}
.fa-peso-sign {
  --fa: "";
}
.fa-building-shield {
  --fa: "";
}
.fa-baby {
  --fa: "";
}
.fa-users-line {
  --fa: "";
}
.fa-quote-left {
  --fa: "";
}
.fa-quote-left-alt {
  --fa: "";
}
.fa-tractor {
  --fa: "";
}
.fa-trash-arrow-up {
  --fa: "";
}
.fa-trash-restore {
  --fa: "";
}
.fa-arrow-down-up-lock {
  --fa: "";
}
.fa-lines-leaning {
  --fa: "";
}
.fa-ruler-combined {
  --fa: "";
}
.fa-copyright {
  --fa: "";
}
.fa-equals {
  --fa: "=";
}
.fa-blender {
  --fa: "";
}
.fa-teeth {
  --fa: "";
}
.fa-shekel-sign {
  --fa: "";
}
.fa-ils {
  --fa: "";
}
.fa-shekel {
  --fa: "";
}
.fa-sheqel {
  --fa: "";
}
.fa-sheqel-sign {
  --fa: "";
}
.fa-map {
  --fa: "";
}
.fa-rocket {
  --fa: "";
}
.fa-photo-film {
  --fa: "";
}
.fa-photo-video {
  --fa: "";
}
.fa-folder-minus {
  --fa: "";
}
.fa-hexagon-nodes-bolt {
  --fa: "";
}
.fa-store {
  --fa: "";
}
.fa-arrow-trend-up {
  --fa: "";
}
.fa-plug-circle-minus {
  --fa: "";
}
.fa-sign-hanging {
  --fa: "";
}
.fa-sign {
  --fa: "";
}
.fa-bezier-curve {
  --fa: "";
}
.fa-bell-slash {
  --fa: "";
}
.fa-tablet {
  --fa: "";
}
.fa-tablet-android {
  --fa: "";
}
.fa-school-flag {
  --fa: "";
}
.fa-fill {
  --fa: "";
}
.fa-angle-up {
  --fa: "";
}
.fa-drumstick-bite {
  --fa: "";
}
.fa-holly-berry {
  --fa: "";
}
.fa-chevron-left {
  --fa: "";
}
.fa-bacteria {
  --fa: "";
}
.fa-hand-lizard {
  --fa: "";
}
.fa-notdef {
  --fa: "";
}
.fa-disease {
  --fa: "";
}
.fa-briefcase-medical {
  --fa: "";
}
.fa-genderless {
  --fa: "";
}
.fa-chevron-right {
  --fa: "";
}
.fa-retweet {
  --fa: "";
}
.fa-car-rear {
  --fa: "";
}
.fa-car-alt {
  --fa: "";
}
.fa-pump-soap {
  --fa: "";
}
.fa-video-slash {
  --fa: "";
}
.fa-battery-quarter {
  --fa: "";
}
.fa-battery-2 {
  --fa: "";
}
.fa-radio {
  --fa: "";
}
.fa-baby-carriage {
  --fa: "";
}
.fa-carriage-baby {
  --fa: "";
}
.fa-traffic-light {
  --fa: "";
}
.fa-thermometer {
  --fa: "";
}
.fa-vr-cardboard {
  --fa: "";
}
.fa-hand-middle-finger {
  --fa: "";
}
.fa-percent {
  --fa: "%";
}
.fa-percentage {
  --fa: "%";
}
.fa-truck-moving {
  --fa: "";
}
.fa-glass-water-droplet {
  --fa: "";
}
.fa-display {
  --fa: "";
}
.fa-face-smile {
  --fa: "";
}
.fa-smile {
  --fa: "";
}
.fa-thumbtack {
  --fa: "";
}
.fa-thumb-tack {
  --fa: "";
}
.fa-trophy {
  --fa: "";
}
.fa-person-praying {
  --fa: "";
}
.fa-pray {
  --fa: "";
}
.fa-hammer {
  --fa: "";
}
.fa-hand-peace {
  --fa: "";
}
.fa-rotate {
  --fa: "";
}
.fa-sync-alt {
  --fa: "";
}
.fa-spinner {
  --fa: "";
}
.fa-robot {
  --fa: "";
}
.fa-peace {
  --fa: "";
}
.fa-gears {
  --fa: "";
}
.fa-cogs {
  --fa: "";
}
.fa-warehouse {
  --fa: "";
}
.fa-arrow-up-right-dots {
  --fa: "";
}
.fa-splotch {
  --fa: "";
}
.fa-face-grin-hearts {
  --fa: "";
}
.fa-grin-hearts {
  --fa: "";
}
.fa-dice-four {
  --fa: "";
}
.fa-sim-card {
  --fa: "";
}
.fa-transgender {
  --fa: "";
}
.fa-transgender-alt {
  --fa: "";
}
.fa-mercury {
  --fa: "";
}
.fa-arrow-turn-down {
  --fa: "";
}
.fa-level-down {
  --fa: "";
}
.fa-person-falling-burst {
  --fa: "";
}
.fa-award {
  --fa: "";
}
.fa-ticket-simple {
  --fa: "";
}
.fa-ticket-alt {
  --fa: "";
}
.fa-building {
  --fa: "";
}
.fa-angles-left {
  --fa: "";
}
.fa-angle-double-left {
  --fa: "";
}
.fa-qrcode {
  --fa: "";
}
.fa-clock-rotate-left {
  --fa: "";
}
.fa-history {
  --fa: "";
}
.fa-face-grin-beam-sweat {
  --fa: "";
}
.fa-grin-beam-sweat {
  --fa: "";
}
.fa-file-export {
  --fa: "";
}
.fa-arrow-right-from-file {
  --fa: "";
}
.fa-shield {
  --fa: "";
}
.fa-shield-blank {
  --fa: "";
}
.fa-arrow-up-short-wide {
  --fa: "";
}
.fa-sort-amount-up-alt {
  --fa: "";
}
.fa-comment-nodes {
  --fa: "";
}
.fa-house-medical {
  --fa: "";
}
.fa-golf-ball-tee {
  --fa: "";
}
.fa-golf-ball {
  --fa: "";
}
.fa-circle-chevron-left {
  --fa: "";
}
.fa-chevron-circle-left {
  --fa: "";
}
.fa-house-chimney-window {
  --fa: "";
}
.fa-pen-nib {
  --fa: "";
}
.fa-tent-arrow-turn-left {
  --fa: "";
}
.fa-tents {
  --fa: "";
}
.fa-wand-magic {
  --fa: "";
}
.fa-magic {
  --fa: "";
}
.fa-dog {
  --fa: "";
}
.fa-carrot {
  --fa: "";
}
.fa-moon {
  --fa: "";
}
.fa-wine-glass-empty {
  --fa: "";
}
.fa-wine-glass-alt {
  --fa: "";
}
.fa-cheese {
  --fa: "";
}
.fa-yin-yang {
  --fa: "";
}
.fa-music {
  --fa: "";
}
.fa-code-commit {
  --fa: "";
}
.fa-temperature-low {
  --fa: "";
}
.fa-person-biking {
  --fa: "";
}
.fa-biking {
  --fa: "";
}
.fa-broom {
  --fa: "";
}
.fa-shield-heart {
  --fa: "";
}
.fa-gopuram {
  --fa: "";
}
.fa-earth-oceania {
  --fa: "";
}
.fa-globe-oceania {
  --fa: "";
}
.fa-square-xmark {
  --fa: "";
}
.fa-times-square {
  --fa: "";
}
.fa-xmark-square {
  --fa: "";
}
.fa-hashtag {
  --fa: "#";
}
.fa-up-right-and-down-left-from-center {
  --fa: "";
}
.fa-expand-alt {
  --fa: "";
}
.fa-oil-can {
  --fa: "";
}
.fa-t {
  --fa: "T";
}
.fa-hippo {
  --fa: "";
}
.fa-chart-column {
  --fa: "";
}
.fa-infinity {
  --fa: "";
}
.fa-vial-circle-check {
  --fa: "";
}
.fa-person-arrow-down-to-line {
  --fa: "";
}
.fa-voicemail {
  --fa: "";
}
.fa-fan {
  --fa: "";
}
.fa-person-walking-luggage {
  --fa: "";
}
.fa-up-down {
  --fa: "";
}
.fa-arrows-alt-v {
  --fa: "";
}
.fa-cloud-moon-rain {
  --fa: "";
}
.fa-calendar {
  --fa: "";
}
.fa-trailer {
  --fa: "";
}
.fa-bahai {
  --fa: "";
}
.fa-haykal {
  --fa: "";
}
.fa-sd-card {
  --fa: "";
}
.fa-dragon {
  --fa: "";
}
.fa-shoe-prints {
  --fa: "";
}
.fa-circle-plus {
  --fa: "";
}
.fa-plus-circle {
  --fa: "";
}
.fa-face-grin-tongue-wink {
  --fa: "";
}
.fa-grin-tongue-wink {
  --fa: "";
}
.fa-hand-holding {
  --fa: "";
}
.fa-plug-circle-exclamation {
  --fa: "";
}
.fa-link-slash {
  --fa: "";
}
.fa-chain-broken {
  --fa: "";
}
.fa-chain-slash {
  --fa: "";
}
.fa-unlink {
  --fa: "";
}
.fa-clone {
  --fa: "";
}
.fa-person-walking-arrow-loop-left {
  --fa: "";
}
.fa-arrow-up-z-a {
  --fa: "";
}
.fa-sort-alpha-up-alt {
  --fa: "";
}
.fa-fire-flame-curved {
  --fa: "";
}
.fa-fire-alt {
  --fa: "";
}
.fa-tornado {
  --fa: "";
}
.fa-file-circle-plus {
  --fa: "";
}
.fa-book-quran {
  --fa: "";
}
.fa-quran {
  --fa: "";
}
.fa-anchor {
  --fa: "";
}
.fa-border-all {
  --fa: "";
}
.fa-face-angry {
  --fa: "";
}
.fa-angry {
  --fa: "";
}
.fa-cookie-bite {
  --fa: "";
}
.fa-arrow-trend-down {
  --fa: "";
}
.fa-rss {
  --fa: "";
}
.fa-feed {
  --fa: "";
}
.fa-draw-polygon {
  --fa: "";
}
.fa-scale-balanced {
  --fa: "";
}
.fa-balance-scale {
  --fa: "";
}
.fa-gauge-simple-high {
  --fa: "";
}
.fa-tachometer {
  --fa: "";
}
.fa-tachometer-fast {
  --fa: "";
}
.fa-shower {
  --fa: "";
}
.fa-desktop {
  --fa: "";
}
.fa-desktop-alt {
  --fa: "";
}
.fa-m {
  --fa: "M";
}
.fa-table-list {
  --fa: "";
}
.fa-th-list {
  --fa: "";
}
.fa-comment-sms {
  --fa: "";
}
.fa-sms {
  --fa: "";
}
.fa-book {
  --fa: "";
}
.fa-user-plus {
  --fa: "";
}
.fa-check {
  --fa: "";
}
.fa-battery-three-quarters {
  --fa: "";
}
.fa-battery-4 {
  --fa: "";
}
.fa-house-circle-check {
  --fa: "";
}
.fa-angle-left {
  --fa: "";
}
.fa-diagram-successor {
  --fa: "";
}
.fa-truck-arrow-right {
  --fa: "";
}
.fa-arrows-split-up-and-left {
  --fa: "";
}
.fa-hand-fist {
  --fa: "";
}
.fa-fist-raised {
  --fa: "";
}
.fa-cloud-moon {
  --fa: "";
}
.fa-briefcase {
  --fa: "";
}
.fa-person-falling {
  --fa: "";
}
.fa-image-portrait {
  --fa: "";
}
.fa-portrait {
  --fa: "";
}
.fa-user-tag {
  --fa: "";
}
.fa-rug {
  --fa: "";
}
.fa-earth-europe {
  --fa: "";
}
.fa-globe-europe {
  --fa: "";
}
.fa-cart-flatbed-suitcase {
  --fa: "";
}
.fa-luggage-cart {
  --fa: "";
}
.fa-rectangle-xmark {
  --fa: "";
}
.fa-rectangle-times {
  --fa: "";
}
.fa-times-rectangle {
  --fa: "";
}
.fa-window-close {
  --fa: "";
}
.fa-baht-sign {
  --fa: "";
}
.fa-book-open {
  --fa: "";
}
.fa-book-journal-whills {
  --fa: "";
}
.fa-journal-whills {
  --fa: "";
}
.fa-handcuffs {
  --fa: "";
}
.fa-triangle-exclamation {
  --fa: "";
}
.fa-exclamation-triangle {
  --fa: "";
}
.fa-warning {
  --fa: "";
}
.fa-database {
  --fa: "";
}
.fa-share {
  --fa: "";
}
.fa-mail-forward {
  --fa: "";
}
.fa-bottle-droplet {
  --fa: "";
}
.fa-mask-face {
  --fa: "";
}
.fa-hill-rockslide {
  --fa: "";
}
.fa-right-left {
  --fa: "";
}
.fa-exchange-alt {
  --fa: "";
}
.fa-paper-plane {
  --fa: "";
}
.fa-road-circle-exclamation {
  --fa: "";
}
.fa-dungeon {
  --fa: "";
}
.fa-align-right {
  --fa: "";
}
.fa-money-bill-1-wave {
  --fa: "";
}
.fa-money-bill-wave-alt {
  --fa: "";
}
.fa-life-ring {
  --fa: "";
}
.fa-hands {
  --fa: "";
}
.fa-sign-language {
  --fa: "";
}
.fa-signing {
  --fa: "";
}
.fa-calendar-day {
  --fa: "";
}
.fa-water-ladder {
  --fa: "";
}
.fa-ladder-water {
  --fa: "";
}
.fa-swimming-pool {
  --fa: "";
}
.fa-arrows-up-down {
  --fa: "";
}
.fa-arrows-v {
  --fa: "";
}
.fa-face-grimace {
  --fa: "";
}
.fa-grimace {
  --fa: "";
}
.fa-wheelchair-move {
  --fa: "";
}
.fa-wheelchair-alt {
  --fa: "";
}
.fa-turn-down {
  --fa: "";
}
.fa-level-down-alt {
  --fa: "";
}
.fa-person-walking-arrow-right {
  --fa: "";
}
.fa-square-envelope {
  --fa: "";
}
.fa-envelope-square {
  --fa: "";
}
.fa-dice {
  --fa: "";
}
.fa-bowling-ball {
  --fa: "";
}
.fa-brain {
  --fa: "";
}
.fa-bandage {
  --fa: "";
}
.fa-band-aid {
  --fa: "";
}
.fa-calendar-minus {
  --fa: "";
}
.fa-circle-xmark {
  --fa: "";
}
.fa-times-circle {
  --fa: "";
}
.fa-xmark-circle {
  --fa: "";
}
.fa-gifts {
  --fa: "";
}
.fa-hotel {
  --fa: "";
}
.fa-earth-asia {
  --fa: "";
}
.fa-globe-asia {
  --fa: "";
}
.fa-id-card-clip {
  --fa: "";
}
.fa-id-card-alt {
  --fa: "";
}
.fa-magnifying-glass-plus {
  --fa: "";
}
.fa-search-plus {
  --fa: "";
}
.fa-thumbs-up {
  --fa: "";
}
.fa-user-clock {
  --fa: "";
}
.fa-hand-dots {
  --fa: "";
}
.fa-allergies {
  --fa: "";
}
.fa-file-invoice {
  --fa: "";
}
.fa-window-minimize {
  --fa: "";
}
.fa-mug-saucer {
  --fa: "";
}
.fa-coffee {
  --fa: "";
}
.fa-brush {
  --fa: "";
}
.fa-file-half-dashed {
  --fa: "";
}
.fa-mask {
  --fa: "";
}
.fa-magnifying-glass-minus {
  --fa: "";
}
.fa-search-minus {
  --fa: "";
}
.fa-ruler-vertical {
  --fa: "";
}
.fa-user-large {
  --fa: "";
}
.fa-user-alt {
  --fa: "";
}
.fa-train-tram {
  --fa: "";
}
.fa-user-nurse {
  --fa: "";
}
.fa-syringe {
  --fa: "";
}
.fa-cloud-sun {
  --fa: "";
}
.fa-stopwatch-20 {
  --fa: "";
}
.fa-square-full {
  --fa: "";
}
.fa-magnet {
  --fa: "";
}
.fa-jar {
  --fa: "";
}
.fa-note-sticky {
  --fa: "";
}
.fa-sticky-note {
  --fa: "";
}
.fa-bug-slash {
  --fa: "";
}
.fa-arrow-up-from-water-pump {
  --fa: "";
}
.fa-bone {
  --fa: "";
}
.fa-table-cells-row-unlock {
  --fa: "";
}
.fa-user-injured {
  --fa: "";
}
.fa-face-sad-tear {
  --fa: "";
}
.fa-sad-tear {
  --fa: "";
}
.fa-plane {
  --fa: "";
}
.fa-tent-arrows-down {
  --fa: "";
}
.fa-exclamation {
  --fa: "!";
}
.fa-arrows-spin {
  --fa: "";
}
.fa-print {
  --fa: "";
}
.fa-turkish-lira-sign {
  --fa: "";
}
.fa-try {
  --fa: "";
}
.fa-turkish-lira {
  --fa: "";
}
.fa-dollar-sign {
  --fa: "$";
}
.fa-dollar {
  --fa: "$";
}
.fa-usd {
  --fa: "$";
}
.fa-x {
  --fa: "X";
}
.fa-magnifying-glass-dollar {
  --fa: "";
}
.fa-search-dollar {
  --fa: "";
}
.fa-users-gear {
  --fa: "";
}
.fa-users-cog {
  --fa: "";
}
.fa-person-military-pointing {
  --fa: "";
}
.fa-building-columns {
  --fa: "";
}
.fa-bank {
  --fa: "";
}
.fa-institution {
  --fa: "";
}
.fa-museum {
  --fa: "";
}
.fa-university {
  --fa: "";
}
.fa-umbrella {
  --fa: "";
}
.fa-trowel {
  --fa: "";
}
.fa-d {
  --fa: "D";
}
.fa-stapler {
  --fa: "";
}
.fa-masks-theater {
  --fa: "";
}
.fa-theater-masks {
  --fa: "";
}
.fa-kip-sign {
  --fa: "";
}
.fa-hand-point-left {
  --fa: "";
}
.fa-handshake-simple {
  --fa: "";
}
.fa-handshake-alt {
  --fa: "";
}
.fa-jet-fighter {
  --fa: "";
}
.fa-fighter-jet {
  --fa: "";
}
.fa-square-share-nodes {
  --fa: "";
}
.fa-share-alt-square {
  --fa: "";
}
.fa-barcode {
  --fa: "";
}
.fa-plus-minus {
  --fa: "";
}
.fa-video {
  --fa: "";
}
.fa-video-camera {
  --fa: "";
}
.fa-graduation-cap {
  --fa: "";
}
.fa-mortar-board {
  --fa: "";
}
.fa-hand-holding-medical {
  --fa: "";
}
.fa-person-circle-check {
  --fa: "";
}
.fa-turn-up {
  --fa: "";
}
.fa-level-up-alt {
  --fa: "";
}
.sr-only, .fa-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.sr-only-focusable:not(:focus), .fa-sr-only-focusable:not(:focus) {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
/*!
   * Bootstrap  v5.3.3 (https://getbootstrap.com/)
   * Copyright 2011-2024 The Bootstrap Authors
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
   */
:root, [data-bs-theme="light"] {
  --bs-blue: #0f6cbf;
  --bs-indigo: #6610f2;
  --bs-purple: #613d7c;
  --bs-pink: #e83e8c;
  --bs-red: #ca3120;
  --bs-orange: #f0ad4e;
  --bs-yellow: #ff7518;
  --bs-green: #357a32;
  --bs-teal: #20c997;
  --bs-cyan: #008196;
  --bs-black: #000;
  --bs-white: #fff;
  --bs-gray: #6a737b;
  --bs-gray-dark: #343a40;
  --bs-gray-100: #f8f9fa;
  --bs-gray-200: #e9ecef;
  --bs-gray-300: #dee2e6;
  --bs-gray-400: #ced4da;
  --bs-gray-500: #8f959e;
  --bs-gray-600: #6a737b;
  --bs-gray-700: #495057;
  --bs-gray-800: #343a40;
  --bs-gray-900: #1d2125;
  --bs-primary: #2A2A2C;
  --bs-secondary: #CAA150;
  --bs-success: #357a32;
  --bs-info: #008196;
  --bs-warning: #f0ad4e;
  --bs-danger: #ca3120;
  --bs-primary-rgb: 42, 42, 44;
  --bs-secondary-rgb: 202, 161, 80;
  --bs-success-rgb: 53, 122, 50;
  --bs-info-rgb: 0, 129, 150;
  --bs-warning-rgb: 240, 173, 78;
  --bs-danger-rgb: 202, 49, 32;
  --bs-primary-text-emphasis: #111112;
  --bs-secondary-text-emphasis: #514020;
  --bs-success-text-emphasis: #153114;
  --bs-info-text-emphasis: #00343c;
  --bs-warning-text-emphasis: #60451f;
  --bs-danger-text-emphasis: #51140d;
  --bs-light-text-emphasis: #495057;
  --bs-dark-text-emphasis: #495057;
  --bs-primary-bg-subtle: #d4d4d5;
  --bs-secondary-bg-subtle: #f4ecdc;
  --bs-success-bg-subtle: #d7e4d6;
  --bs-info-bg-subtle: #cce6ea;
  --bs-warning-bg-subtle: #fcefdc;
  --bs-danger-bg-subtle: #f4d6d2;
  --bs-light-bg-subtle: #fcfcfd;
  --bs-dark-bg-subtle: #ced4da;
  --bs-primary-border-subtle: #aaaaab;
  --bs-secondary-border-subtle: #ead9b9;
  --bs-success-border-subtle: #aecaad;
  --bs-info-border-subtle: #99cdd5;
  --bs-warning-border-subtle: #f9deb8;
  --bs-danger-border-subtle: #eaada6;
  --bs-light-border-subtle: #e9ecef;
  --bs-dark-border-subtle: #8f959e;
  --bs-white-rgb: 255, 255, 255;
  --bs-black-rgb: 0, 0, 0;
  --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
  --bs-body-font-family: var(--bs-font-sans-serif);
  --bs-body-font-size: 0.9375rem;
  --bs-body-font-weight: 400;
  --bs-body-line-height: 1.5;
  --bs-body-color: #1d2125;
  --bs-body-color-rgb: 29, 33, 37;
  --bs-body-bg: #fff;
  --bs-body-bg-rgb: 255, 255, 255;
  --bs-emphasis-color: #000;
  --bs-emphasis-color-rgb: 0, 0, 0;
  --bs-secondary-color: rgba(29, 33, 37, 0.75);
  --bs-secondary-color-rgb: 29, 33, 37;
  --bs-secondary-bg: #e9ecef;
  --bs-secondary-bg-rgb: 233, 236, 239;
  --bs-tertiary-color: rgba(29, 33, 37, 0.5);
  --bs-tertiary-color-rgb: 29, 33, 37;
  --bs-tertiary-bg: #f8f9fa;
  --bs-tertiary-bg-rgb: 248, 249, 250;
  --bs-heading-color: inherit;
  --bs-link-color: #2A2A2C;
  --bs-link-color-rgb: 42, 42, 44;
  --bs-link-decoration: underline;
  --bs-link-hover-color: #222223;
  --bs-link-hover-color-rgb: 34, 34, 35;
  --bs-code-color: #e83e8c;
  --bs-highlight-color: #1d2125;
  --bs-highlight-bg: #ffe3d1;
  --bs-border-width: 1px;
  --bs-border-style: solid;
  --bs-border-color: #dee2e6;
  --bs-border-color-translucent: rgba(0, 0, 0, 0.175);
  --bs-border-radius: 0.5rem;
  --bs-border-radius-sm: 0.25rem;
  --bs-border-radius-lg: 0.6rem;
  --bs-border-radius-xl: 1rem;
  --bs-border-radius-xxl: 2rem;
  --bs-border-radius-2xl: var(--bs-border-radius-xxl);
  --bs-border-radius-pill: 50rem;
  --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
  --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
  --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
  --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
  --bs-focus-ring-width: 0.25rem;
  --bs-focus-ring-opacity: 0.25;
  --bs-focus-ring-color: rgba(42, 42, 44, 0.25);
  --bs-form-valid-color: #357a32;
  --bs-form-valid-border-color: #357a32;
  --bs-form-invalid-color: #ca3120;
  --bs-form-invalid-border-color: #ca3120;
}
[data-bs-theme="dark"] {
  color-scheme: dark;
  --bs-body-color: #dee2e6;
  --bs-body-color-rgb: 222, 226, 230;
  --bs-body-bg: #1d2125;
  --bs-body-bg-rgb: 29, 33, 37;
  --bs-emphasis-color: #fff;
  --bs-emphasis-color-rgb: 255, 255, 255;
  --bs-secondary-color: rgba(222, 226, 230, 0.75);
  --bs-secondary-color-rgb: 222, 226, 230;
  --bs-secondary-bg: #343a40;
  --bs-secondary-bg-rgb: 52, 58, 64;
  --bs-tertiary-color: rgba(222, 226, 230, 0.5);
  --bs-tertiary-color-rgb: 222, 226, 230;
  --bs-tertiary-bg: #292e33;
  --bs-tertiary-bg-rgb: 41, 46, 51;
  --bs-primary-text-emphasis: #7f7f80;
  --bs-secondary-text-emphasis: #dfc796;
  --bs-success-text-emphasis: #86af84;
  --bs-info-text-emphasis: #66b3c0;
  --bs-warning-text-emphasis: #f6ce95;
  --bs-danger-text-emphasis: #df8379;
  --bs-light-text-emphasis: #f8f9fa;
  --bs-dark-text-emphasis: #dee2e6;
  --bs-primary-bg-subtle: #080809;
  --bs-secondary-bg-subtle: #282010;
  --bs-success-bg-subtle: #0b180a;
  --bs-info-bg-subtle: #001a1e;
  --bs-warning-bg-subtle: #302310;
  --bs-danger-bg-subtle: #280a06;
  --bs-light-bg-subtle: #343a40;
  --bs-dark-bg-subtle: #1a1d20;
  --bs-primary-border-subtle: #19191a;
  --bs-secondary-border-subtle: #796130;
  --bs-success-border-subtle: #20491e;
  --bs-info-border-subtle: #004d5a;
  --bs-warning-border-subtle: #90682f;
  --bs-danger-border-subtle: #791d13;
  --bs-light-border-subtle: #495057;
  --bs-dark-border-subtle: #343a40;
  --bs-heading-color: inherit;
  --bs-link-color: #7f7f80;
  --bs-link-hover-color: #999;
  --bs-link-color-rgb: 127, 127, 128;
  --bs-link-hover-color-rgb: 153, 153, 153;
  --bs-code-color: #f18bba;
  --bs-highlight-color: #dee2e6;
  --bs-highlight-bg: #662f0a;
  --bs-border-color: #495057;
  --bs-border-color-translucent: rgba(255, 255, 255, 0.15);
  --bs-form-valid-color: #86af84;
  --bs-form-valid-border-color: #86af84;
  --bs-form-invalid-color: #df8379;
  --bs-form-invalid-border-color: #df8379;
}
*, *::before, *::after {
  box-sizing: border-box;
}
@media (prefers-reduced-motion: no-preference) {
  :root {
    scroll-behavior: smooth;
  }
}
body {
  margin: 0;
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  font-weight: var(--bs-body-font-weight);
  line-height: var(--bs-body-line-height);
  color: var(--bs-body-color);
  text-align: var(--bs-body-text-align);
  background-color: var(--bs-body-bg);
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
hr {
  margin: 1rem 0;
  color: inherit;
  border: 0;
  border-top: var(--bs-border-width) solid;
  opacity: 0.25;
}
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
  margin-top: 0;
  margin-bottom: 0.5rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--bs-heading-color);
}
h1, .h1 {
  font-size: calc(1.359375rem + 1.3125vw);
}
@media (min-width: 1200px) {
  h1, .h1 {
    font-size: 2.34375rem;
  }
}
h2, .h2 {
  font-size: calc(1.3125rem + 0.75vw);
}
@media (min-width: 1200px) {
  h2, .h2 {
    font-size: 1.875rem;
  }
}
h3, .h3 {
  font-size: calc(1.2890625rem + 0.46875vw);
}
@media (min-width: 1200px) {
  h3, .h3 {
    font-size: 1.640625rem;
  }
}
h4, .h4 {
  font-size: calc(1.265625rem + 0.1875vw);
}
@media (min-width: 1200px) {
  h4, .h4 {
    font-size: 1.40625rem;
  }
}
h5, .h5 {
  font-size: 1.171875rem;
}
h6, .h6 {
  font-size: 0.9375rem;
}
p {
  margin-top: 0;
  margin-bottom: 1rem;
}
abbr[title] {
  text-decoration: underline dotted;
  cursor: help;
  text-decoration-skip-ink: none;
}
address {
  margin-bottom: 1rem;
  font-style: normal;
  line-height: inherit;
}
ol, ul {
  padding-left: 2rem;
}
ol, ul, dl {
  margin-top: 0;
  margin-bottom: 1rem;
}
ol ol, ul ul, ol ul, ul ol {
  margin-bottom: 0;
}
dt {
  font-weight: 700;
}
dd {
  margin-bottom: 0.5rem;
  margin-left: 0;
}
blockquote {
  margin: 0 0 1rem;
}
b, strong {
  font-weight: bolder;
}
small, .small {
  font-size: 0.875em;
}
mark, .mark {
  padding: 0.1875em;
  color: var(--bs-highlight-color);
  background-color: var(--bs-highlight-bg);
}
sub, sup {
  position: relative;
  font-size: 0.75em;
  line-height: 0;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
a {
  color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));
  text-decoration: underline;
}
a:hover {
  --bs-link-color-rgb: var(--bs-link-hover-color-rgb);
}
a:not([href]):not([class]), a:not([href]):not([class]):hover {
  color: inherit;
  text-decoration: none;
}
pre, code, kbd, samp {
  font-family: var(--bs-font-monospace);
  font-size: 1em;
}
pre {
  display: block;
  margin-top: 0;
  margin-bottom: 1rem;
  overflow: auto;
  font-size: 0.875em;
}
pre code {
  font-size: inherit;
  color: inherit;
  word-break: normal;
}
code {
  font-size: 0.875em;
  color: var(--bs-code-color);
  word-wrap: break-word;
}
a > code {
  color: inherit;
}
kbd {
  padding: 0.1875rem 0.375rem;
  font-size: 0.875em;
  color: var(--bs-body-bg);
  background-color: var(--bs-body-color);
  border-radius: 0.25rem;
}
kbd kbd {
  padding: 0;
  font-size: 1em;
}
figure {
  margin: 0 0 1rem;
}
img, svg {
  vertical-align: middle;
}
table {
  caption-side: bottom;
  border-collapse: collapse;
}
caption {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  color: var(--bs-secondary-color);
  text-align: left;
}
th {
  text-align: inherit;
  text-align: -webkit-match-parent;
}
thead, tbody, tfoot, tr, td, th {
  border-color: inherit;
  border-style: solid;
  border-width: 0;
}
label {
  display: inline-block;
}
button {
  border-radius: 0;
}
button:focus:not(:focus-visible) {
  outline: 0;
}
input, button, select, optgroup, textarea {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
button, select {
  text-transform: none;
}
[role="button"] {
  cursor: pointer;
}
select {
  word-wrap: normal;
}
select:disabled {
  opacity: 1;
}
[list]:not([type="date"]):not([type="datetime-local"]):not([type="month"]):not([type="week"]):not([type="time"])::-webkit-calendar-picker-indicator {
  display: none !important;
}
button, [type="button"], [type="reset"], [type="submit"] {
  -webkit-appearance: button;
}
button:not(:disabled), [type="button"]:not(:disabled), [type="reset"]:not(:disabled), [type="submit"]:not(:disabled) {
  cursor: pointer;
}
::-moz-focus-inner {
  padding: 0;
  border-style: none;
}
textarea {
  resize: vertical;
}
fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
}
legend {
  float: left;
  width: 100%;
  padding: 0;
  margin-bottom: 0.5rem;
  font-size: calc(1.275rem + 0.3vw);
  line-height: inherit;
}
@media (min-width: 1200px) {
  legend {
    font-size: 1.5rem;
  }
}
legend + * {
  clear: left;
}
::-webkit-datetime-edit-fields-wrapper, ::-webkit-datetime-edit-text, ::-webkit-datetime-edit-minute, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-year-field {
  padding: 0;
}
::-webkit-inner-spin-button {
  height: auto;
}
[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}
/* rtl:raw:
[type="tel"],
[type="url"],
[type="email"],
[type="number"] {
  direction: ltr;
}
*/
::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-color-swatch-wrapper {
  padding: 0;
}
::file-selector-button {
  font: inherit;
  -webkit-appearance: button;
}
output {
  display: inline-block;
}
iframe {
  border: 0;
}
summary {
  display: list-item;
  cursor: pointer;
}
progress {
  vertical-align: baseline;
}
[hidden] {
  display: none !important;
}
.lead {
  font-size: 1.171875rem;
  font-weight: 300;
}
.display-1 {
  font-size: calc(1.625rem + 4.5vw);
  font-weight: 300;
  line-height: 1.2;
}
@media (min-width: 1200px) {
  .display-1 {
    font-size: 5rem;
  }
}
.display-2 {
  font-size: calc(1.575rem + 3.9vw);
  font-weight: 300;
  line-height: 1.2;
}
@media (min-width: 1200px) {
  .display-2 {
    font-size: 4.5rem;
  }
}
.display-3 {
  font-size: calc(1.525rem + 3.3vw);
  font-weight: 300;
  line-height: 1.2;
}
@media (min-width: 1200px) {
  .display-3 {
    font-size: 4rem;
  }
}
.display-4 {
  font-size: calc(1.475rem + 2.7vw);
  font-weight: 300;
  line-height: 1.2;
}
@media (min-width: 1200px) {
  .display-4 {
    font-size: 3.5rem;
  }
}
.display-5 {
  font-size: calc(1.425rem + 2.1vw);
  font-weight: 300;
  line-height: 1.2;
}
@media (min-width: 1200px) {
  .display-5 {
    font-size: 3rem;
  }
}
.display-6 {
  font-size: calc(1.375rem + 1.5vw);
  font-weight: 300;
  line-height: 1.2;
}
@media (min-width: 1200px) {
  .display-6 {
    font-size: 2.5rem;
  }
}
.list-unstyled {
  padding-left: 0;
  list-style: none;
}
.list-inline {
  padding-left: 0;
  list-style: none;
}
.list-inline-item {
  display: inline-block;
}
.list-inline-item:not(:last-child) {
  margin-right: 0.5rem;
}
.initialism {
  font-size: 0.875em;
  text-transform: uppercase;
}
.blockquote {
  margin-bottom: 1rem;
  font-size: 1.171875rem;
}
.blockquote > :last-child {
  margin-bottom: 0;
}
.blockquote-footer {
  margin-top: -1rem;
  margin-bottom: 1rem;
  font-size: 0.875em;
  color: #6a737b;
}
.blockquote-footer::before {
  content: "— ";
}
.img-fluid {
  max-width: 100%;
  height: auto;
}
.img-thumbnail {
  padding: 0.25rem;
  background-color: var(--bs-body-bg);
  border: var(--bs-border-width) solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
  max-width: 100%;
  height: auto;
}
.figure {
  display: inline-block;
}
.figure-img {
  margin-bottom: 0.5rem;
  line-height: 1;
}
.figure-caption {
  font-size: 0.875em;
  color: var(--bs-secondary-color);
}
.container, .container-fluid, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 0;
  width: 100%;
  padding-right: calc(var(--bs-gutter-x) * .5);
  padding-left: calc(var(--bs-gutter-x) * .5);
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 576px) {
  .container, .container-sm {
    max-width: 540px;
  }
}
@media (min-width: 768px) {
  .container, .container-sm, .container-md {
    max-width: 720px;
  }
}
@media (min-width: 992px) {
  .container, .container-sm, .container-md, .container-lg {
    max-width: 960px;
  }
}
@media (min-width: 1200px) {
  .container, .container-sm, .container-md, .container-lg, .container-xl {
    max-width: 1140px;
  }
}
@media (min-width: 1400px) {
  .container, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl {
    max-width: 1320px;
  }
}
:root {
  --bs-breakpoint-xs: 0;
  --bs-breakpoint-sm: 576px;
  --bs-breakpoint-md: 768px;
  --bs-breakpoint-lg: 992px;
  --bs-breakpoint-xl: 1200px;
  --bs-breakpoint-xxl: 1400px;
}
.row {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 0;
  display: flex;
  flex-wrap: wrap;
  margin-top: calc(-1 * var(--bs-gutter-y));
  margin-right: calc(-.5 * var(--bs-gutter-x));
  margin-left: calc(-.5 * var(--bs-gutter-x));
}
.row > * {
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
  padding-right: calc(var(--bs-gutter-x) * .5);
  padding-left: calc(var(--bs-gutter-x) * .5);
  margin-top: var(--bs-gutter-y);
}
.col {
  flex: 1 0 0%;
}
.row-cols-auto > * {
  flex: 0 0 auto;
  width: auto;
}
.row-cols-1 > * {
  flex: 0 0 auto;
  width: 100%;
}
.row-cols-2 > * {
  flex: 0 0 auto;
  width: 50%;
}
.row-cols-3 > * {
  flex: 0 0 auto;
  width: 33.33333333%;
}
.row-cols-4 > * {
  flex: 0 0 auto;
  width: 25%;
}
.row-cols-5 > * {
  flex: 0 0 auto;
  width: 20%;
}
.row-cols-6 > * {
  flex: 0 0 auto;
  width: 16.66666667%;
}
.col-auto {
  flex: 0 0 auto;
  width: auto;
}
.col-1 {
  flex: 0 0 auto;
  width: 8.33333333%;
}
.col-2 {
  flex: 0 0 auto;
  width: 16.66666667%;
}
.col-3 {
  flex: 0 0 auto;
  width: 25%;
}
.col-4 {
  flex: 0 0 auto;
  width: 33.33333333%;
}
.col-5 {
  flex: 0 0 auto;
  width: 41.66666667%;
}
.col-6 {
  flex: 0 0 auto;
  width: 50%;
}
.col-7 {
  flex: 0 0 auto;
  width: 58.33333333%;
}
.col-8 {
  flex: 0 0 auto;
  width: 66.66666667%;
}
.col-9 {
  flex: 0 0 auto;
  width: 75%;
}
.col-10 {
  flex: 0 0 auto;
  width: 83.33333333%;
}
.col-11 {
  flex: 0 0 auto;
  width: 91.66666667%;
}
.col-12 {
  flex: 0 0 auto;
  width: 100%;
}
.offset-1 {
  margin-left: 8.33333333%;
}
.offset-2 {
  margin-left: 16.66666667%;
}
.offset-3 {
  margin-left: 25%;
}
.offset-4 {
  margin-left: 33.33333333%;
}
.offset-5 {
  margin-left: 41.66666667%;
}
.offset-6 {
  margin-left: 50%;
}
.offset-7 {
  margin-left: 58.33333333%;
}
.offset-8 {
  margin-left: 66.66666667%;
}
.offset-9 {
  margin-left: 75%;
}
.offset-10 {
  margin-left: 83.33333333%;
}
.offset-11 {
  margin-left: 91.66666667%;
}
.g-0, .gx-0 {
  --bs-gutter-x: 0;
}
.g-0, .gy-0 {
  --bs-gutter-y: 0;
}
.g-1, .gx-1 {
  --bs-gutter-x: 0.25rem;
}
.g-1, .gy-1 {
  --bs-gutter-y: 0.25rem;
}
.g-2, .gx-2 {
  --bs-gutter-x: 0.5rem;
}
.g-2, .gy-2 {
  --bs-gutter-y: 0.5rem;
}
.g-3, .gx-3 {
  --bs-gutter-x: 1rem;
}
.g-3, .gy-3 {
  --bs-gutter-y: 1rem;
}
.g-4, .gx-4 {
  --bs-gutter-x: 1.5rem;
}
.g-4, .gy-4 {
  --bs-gutter-y: 1.5rem;
}
.g-5, .gx-5 {
  --bs-gutter-x: 2rem;
}
.g-5, .gy-5 {
  --bs-gutter-y: 2rem;
}
.g-6, .gx-6 {
  --bs-gutter-x: 3rem;
}
.g-6, .gy-6 {
  --bs-gutter-y: 3rem;
}
@media (min-width: 576px) {
  .col-sm {
    flex: 1 0 0%;
  }
  .row-cols-sm-auto > * {
    flex: 0 0 auto;
    width: auto;
  }
  .row-cols-sm-1 > * {
    flex: 0 0 auto;
    width: 100%;
  }
  .row-cols-sm-2 > * {
    flex: 0 0 auto;
    width: 50%;
  }
  .row-cols-sm-3 > * {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
  .row-cols-sm-4 > * {
    flex: 0 0 auto;
    width: 25%;
  }
  .row-cols-sm-5 > * {
    flex: 0 0 auto;
    width: 20%;
  }
  .row-cols-sm-6 > * {
    flex: 0 0 auto;
    width: 16.66666667%;
  }
  .col-sm-auto {
    flex: 0 0 auto;
    width: auto;
  }
  .col-sm-1 {
    flex: 0 0 auto;
    width: 8.33333333%;
  }
  .col-sm-2 {
    flex: 0 0 auto;
    width: 16.66666667%;
  }
  .col-sm-3 {
    flex: 0 0 auto;
    width: 25%;
  }
  .col-sm-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
  .col-sm-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
  }
  .col-sm-6 {
    flex: 0 0 auto;
    width: 50%;
  }
  .col-sm-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
  }
  .col-sm-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }
  .col-sm-9 {
    flex: 0 0 auto;
    width: 75%;
  }
  .col-sm-10 {
    flex: 0 0 auto;
    width: 83.33333333%;
  }
  .col-sm-11 {
    flex: 0 0 auto;
    width: 91.66666667%;
  }
  .col-sm-12 {
    flex: 0 0 auto;
    width: 100%;
  }
  .offset-sm-0 {
    margin-left: 0;
  }
  .offset-sm-1 {
    margin-left: 8.33333333%;
  }
  .offset-sm-2 {
    margin-left: 16.66666667%;
  }
  .offset-sm-3 {
    margin-left: 25%;
  }
  .offset-sm-4 {
    margin-left: 33.33333333%;
  }
  .offset-sm-5 {
    margin-left: 41.66666667%;
  }
  .offset-sm-6 {
    margin-left: 50%;
  }
  .offset-sm-7 {
    margin-left: 58.33333333%;
  }
  .offset-sm-8 {
    margin-left: 66.66666667%;
  }
  .offset-sm-9 {
    margin-left: 75%;
  }
  .offset-sm-10 {
    margin-left: 83.33333333%;
  }
  .offset-sm-11 {
    margin-left: 91.66666667%;
  }
  .g-sm-0, .gx-sm-0 {
    --bs-gutter-x: 0;
  }
  .g-sm-0, .gy-sm-0 {
    --bs-gutter-y: 0;
  }
  .g-sm-1, .gx-sm-1 {
    --bs-gutter-x: 0.25rem;
  }
  .g-sm-1, .gy-sm-1 {
    --bs-gutter-y: 0.25rem;
  }
  .g-sm-2, .gx-sm-2 {
    --bs-gutter-x: 0.5rem;
  }
  .g-sm-2, .gy-sm-2 {
    --bs-gutter-y: 0.5rem;
  }
  .g-sm-3, .gx-sm-3 {
    --bs-gutter-x: 1rem;
  }
  .g-sm-3, .gy-sm-3 {
    --bs-gutter-y: 1rem;
  }
  .g-sm-4, .gx-sm-4 {
    --bs-gutter-x: 1.5rem;
  }
  .g-sm-4, .gy-sm-4 {
    --bs-gutter-y: 1.5rem;
  }
  .g-sm-5, .gx-sm-5 {
    --bs-gutter-x: 2rem;
  }
  .g-sm-5, .gy-sm-5 {
    --bs-gutter-y: 2rem;
  }
  .g-sm-6, .gx-sm-6 {
    --bs-gutter-x: 3rem;
  }
  .g-sm-6, .gy-sm-6 {
    --bs-gutter-y: 3rem;
  }
}
@media (min-width: 768px) {
  .col-md {
    flex: 1 0 0%;
  }
  .row-cols-md-auto > * {
    flex: 0 0 auto;
    width: auto;
  }
  .row-cols-md-1 > * {
    flex: 0 0 auto;
    width: 100%;
  }
  .row-cols-md-2 > * {
    flex: 0 0 auto;
    width: 50%;
  }
  .row-cols-md-3 > * {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
  .row-cols-md-4 > * {
    flex: 0 0 auto;
    width: 25%;
  }
  .row-cols-md-5 > * {
    flex: 0 0 auto;
    width: 20%;
  }
  .row-cols-md-6 > * {
    flex: 0 0 auto;
    width: 16.66666667%;
  }
  .col-md-auto {
    flex: 0 0 auto;
    width: auto;
  }
  .col-md-1 {
    flex: 0 0 auto;
    width: 8.33333333%;
  }
  .col-md-2 {
    flex: 0 0 auto;
    width: 16.66666667%;
  }
  .col-md-3 {
    flex: 0 0 auto;
    width: 25%;
  }
  .col-md-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
  .col-md-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
  }
  .col-md-6 {
    flex: 0 0 auto;
    width: 50%;
  }
  .col-md-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
  }
  .col-md-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }
  .col-md-9 {
    flex: 0 0 auto;
    width: 75%;
  }
  .col-md-10 {
    flex: 0 0 auto;
    width: 83.33333333%;
  }
  .col-md-11 {
    flex: 0 0 auto;
    width: 91.66666667%;
  }
  .col-md-12 {
    flex: 0 0 auto;
    width: 100%;
  }
  .offset-md-0 {
    margin-left: 0;
  }
  .offset-md-1 {
    margin-left: 8.33333333%;
  }
  .offset-md-2 {
    margin-left: 16.66666667%;
  }
  .offset-md-3 {
    margin-left: 25%;
  }
  .offset-md-4 {
    margin-left: 33.33333333%;
  }
  .offset-md-5 {
    margin-left: 41.66666667%;
  }
  .offset-md-6 {
    margin-left: 50%;
  }
  .offset-md-7 {
    margin-left: 58.33333333%;
  }
  .offset-md-8 {
    margin-left: 66.66666667%;
  }
  .offset-md-9 {
    margin-left: 75%;
  }
  .offset-md-10 {
    margin-left: 83.33333333%;
  }
  .offset-md-11 {
    margin-left: 91.66666667%;
  }
  .g-md-0, .gx-md-0 {
    --bs-gutter-x: 0;
  }
  .g-md-0, .gy-md-0 {
    --bs-gutter-y: 0;
  }
  .g-md-1, .gx-md-1 {
    --bs-gutter-x: 0.25rem;
  }
  .g-md-1, .gy-md-1 {
    --bs-gutter-y: 0.25rem;
  }
  .g-md-2, .gx-md-2 {
    --bs-gutter-x: 0.5rem;
  }
  .g-md-2, .gy-md-2 {
    --bs-gutter-y: 0.5rem;
  }
  .g-md-3, .gx-md-3 {
    --bs-gutter-x: 1rem;
  }
  .g-md-3, .gy-md-3 {
    --bs-gutter-y: 1rem;
  }
  .g-md-4, .gx-md-4 {
    --bs-gutter-x: 1.5rem;
  }
  .g-md-4, .gy-md-4 {
    --bs-gutter-y: 1.5rem;
  }
  .g-md-5, .gx-md-5 {
    --bs-gutter-x: 2rem;
  }
  .g-md-5, .gy-md-5 {
    --bs-gutter-y: 2rem;
  }
  .g-md-6, .gx-md-6 {
    --bs-gutter-x: 3rem;
  }
  .g-md-6, .gy-md-6 {
    --bs-gutter-y: 3rem;
  }
}
@media (min-width: 992px) {
  .col-lg {
    flex: 1 0 0%;
  }
  .row-cols-lg-auto > * {
    flex: 0 0 auto;
    width: auto;
  }
  .row-cols-lg-1 > * {
    flex: 0 0 auto;
    width: 100%;
  }
  .row-cols-lg-2 > * {
    flex: 0 0 auto;
    width: 50%;
  }
  .row-cols-lg-3 > * {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
  .row-cols-lg-4 > * {
    flex: 0 0 auto;
    width: 25%;
  }
  .row-cols-lg-5 > * {
    flex: 0 0 auto;
    width: 20%;
  }
  .row-cols-lg-6 > * {
    flex: 0 0 auto;
    width: 16.66666667%;
  }
  .col-lg-auto {
    flex: 0 0 auto;
    width: auto;
  }
  .col-lg-1 {
    flex: 0 0 auto;
    width: 8.33333333%;
  }
  .col-lg-2 {
    flex: 0 0 auto;
    width: 16.66666667%;
  }
  .col-lg-3 {
    flex: 0 0 auto;
    width: 25%;
  }
  .col-lg-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
  .col-lg-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
  }
  .col-lg-6 {
    flex: 0 0 auto;
    width: 50%;
  }
  .col-lg-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
  }
  .col-lg-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }
  .col-lg-9 {
    flex: 0 0 auto;
    width: 75%;
  }
  .col-lg-10 {
    flex: 0 0 auto;
    width: 83.33333333%;
  }
  .col-lg-11 {
    flex: 0 0 auto;
    width: 91.66666667%;
  }
  .col-lg-12 {
    flex: 0 0 auto;
    width: 100%;
  }
  .offset-lg-0 {
    margin-left: 0;
  }
  .offset-lg-1 {
    margin-left: 8.33333333%;
  }
  .offset-lg-2 {
    margin-left: 16.66666667%;
  }
  .offset-lg-3 {
    margin-left: 25%;
  }
  .offset-lg-4 {
    margin-left: 33.33333333%;
  }
  .offset-lg-5 {
    margin-left: 41.66666667%;
  }
  .offset-lg-6 {
    margin-left: 50%;
  }
  .offset-lg-7 {
    margin-left: 58.33333333%;
  }
  .offset-lg-8 {
    margin-left: 66.66666667%;
  }
  .offset-lg-9 {
    margin-left: 75%;
  }
  .offset-lg-10 {
    margin-left: 83.33333333%;
  }
  .offset-lg-11 {
    margin-left: 91.66666667%;
  }
  .g-lg-0, .gx-lg-0 {
    --bs-gutter-x: 0;
  }
  .g-lg-0, .gy-lg-0 {
    --bs-gutter-y: 0;
  }
  .g-lg-1, .gx-lg-1 {
    --bs-gutter-x: 0.25rem;
  }
  .g-lg-1, .gy-lg-1 {
    --bs-gutter-y: 0.25rem;
  }
  .g-lg-2, .gx-lg-2 {
    --bs-gutter-x: 0.5rem;
  }
  .g-lg-2, .gy-lg-2 {
    --bs-gutter-y: 0.5rem;
  }
  .g-lg-3, .gx-lg-3 {
    --bs-gutter-x: 1rem;
  }
  .g-lg-3, .gy-lg-3 {
    --bs-gutter-y: 1rem;
  }
  .g-lg-4, .gx-lg-4 {
    --bs-gutter-x: 1.5rem;
  }
  .g-lg-4, .gy-lg-4 {
    --bs-gutter-y: 1.5rem;
  }
  .g-lg-5, .gx-lg-5 {
    --bs-gutter-x: 2rem;
  }
  .g-lg-5, .gy-lg-5 {
    --bs-gutter-y: 2rem;
  }
  .g-lg-6, .gx-lg-6 {
    --bs-gutter-x: 3rem;
  }
  .g-lg-6, .gy-lg-6 {
    --bs-gutter-y: 3rem;
  }
}
@media (min-width: 1200px) {
  .col-xl {
    flex: 1 0 0%;
  }
  .row-cols-xl-auto > * {
    flex: 0 0 auto;
    width: auto;
  }
  .row-cols-xl-1 > * {
    flex: 0 0 auto;
    width: 100%;
  }
  .row-cols-xl-2 > * {
    flex: 0 0 auto;
    width: 50%;
  }
  .row-cols-xl-3 > * {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
  .row-cols-xl-4 > * {
    flex: 0 0 auto;
    width: 25%;
  }
  .row-cols-xl-5 > * {
    flex: 0 0 auto;
    width: 20%;
  }
  .row-cols-xl-6 > * {
    flex: 0 0 auto;
    width: 16.66666667%;
  }
  .col-xl-auto {
    flex: 0 0 auto;
    width: auto;
  }
  .col-xl-1 {
    flex: 0 0 auto;
    width: 8.33333333%;
  }
  .col-xl-2 {
    flex: 0 0 auto;
    width: 16.66666667%;
  }
  .col-xl-3 {
    flex: 0 0 auto;
    width: 25%;
  }
  .col-xl-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
  .col-xl-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
  }
  .col-xl-6 {
    flex: 0 0 auto;
    width: 50%;
  }
  .col-xl-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
  }
  .col-xl-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }
  .col-xl-9 {
    flex: 0 0 auto;
    width: 75%;
  }
  .col-xl-10 {
    flex: 0 0 auto;
    width: 83.33333333%;
  }
  .col-xl-11 {
    flex: 0 0 auto;
    width: 91.66666667%;
  }
  .col-xl-12 {
    flex: 0 0 auto;
    width: 100%;
  }
  .offset-xl-0 {
    margin-left: 0;
  }
  .offset-xl-1 {
    margin-left: 8.33333333%;
  }
  .offset-xl-2 {
    margin-left: 16.66666667%;
  }
  .offset-xl-3 {
    margin-left: 25%;
  }
  .offset-xl-4 {
    margin-left: 33.33333333%;
  }
  .offset-xl-5 {
    margin-left: 41.66666667%;
  }
  .offset-xl-6 {
    margin-left: 50%;
  }
  .offset-xl-7 {
    margin-left: 58.33333333%;
  }
  .offset-xl-8 {
    margin-left: 66.66666667%;
  }
  .offset-xl-9 {
    margin-left: 75%;
  }
  .offset-xl-10 {
    margin-left: 83.33333333%;
  }
  .offset-xl-11 {
    margin-left: 91.66666667%;
  }
  .g-xl-0, .gx-xl-0 {
    --bs-gutter-x: 0;
  }
  .g-xl-0, .gy-xl-0 {
    --bs-gutter-y: 0;
  }
  .g-xl-1, .gx-xl-1 {
    --bs-gutter-x: 0.25rem;
  }
  .g-xl-1, .gy-xl-1 {
    --bs-gutter-y: 0.25rem;
  }
  .g-xl-2, .gx-xl-2 {
    --bs-gutter-x: 0.5rem;
  }
  .g-xl-2, .gy-xl-2 {
    --bs-gutter-y: 0.5rem;
  }
  .g-xl-3, .gx-xl-3 {
    --bs-gutter-x: 1rem;
  }
  .g-xl-3, .gy-xl-3 {
    --bs-gutter-y: 1rem;
  }
  .g-xl-4, .gx-xl-4 {
    --bs-gutter-x: 1.5rem;
  }
  .g-xl-4, .gy-xl-4 {
    --bs-gutter-y: 1.5rem;
  }
  .g-xl-5, .gx-xl-5 {
    --bs-gutter-x: 2rem;
  }
  .g-xl-5, .gy-xl-5 {
    --bs-gutter-y: 2rem;
  }
  .g-xl-6, .gx-xl-6 {
    --bs-gutter-x: 3rem;
  }
  .g-xl-6, .gy-xl-6 {
    --bs-gutter-y: 3rem;
  }
}
@media (min-width: 1400px) {
  .col-xxl {
    flex: 1 0 0%;
  }
  .row-cols-xxl-auto > * {
    flex: 0 0 auto;
    width: auto;
  }
  .row-cols-xxl-1 > * {
    flex: 0 0 auto;
    width: 100%;
  }
  .row-cols-xxl-2 > * {
    flex: 0 0 auto;
    width: 50%;
  }
  .row-cols-xxl-3 > * {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
  .row-cols-xxl-4 > * {
    flex: 0 0 auto;
    width: 25%;
  }
  .row-cols-xxl-5 > * {
    flex: 0 0 auto;
    width: 20%;
  }
  .row-cols-xxl-6 > * {
    flex: 0 0 auto;
    width: 16.66666667%;
  }
  .col-xxl-auto {
    flex: 0 0 auto;
    width: auto;
  }
  .col-xxl-1 {
    flex: 0 0 auto;
    width: 8.33333333%;
  }
  .col-xxl-2 {
    flex: 0 0 auto;
    width: 16.66666667%;
  }
  .col-xxl-3 {
    flex: 0 0 auto;
    width: 25%;
  }
  .col-xxl-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }
  .col-xxl-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
  }
  .col-xxl-6 {
    flex: 0 0 auto;
    width: 50%;
  }
  .col-xxl-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
  }
  .col-xxl-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }
  .col-xxl-9 {
    flex: 0 0 auto;
    width: 75%;
  }
  .col-xxl-10 {
    flex: 0 0 auto;
    width: 83.33333333%;
  }
  .col-xxl-11 {
    flex: 0 0 auto;
    width: 91.66666667%;
  }
  .col-xxl-12 {
    flex: 0 0 auto;
    width: 100%;
  }
  .offset-xxl-0 {
    margin-left: 0;
  }
  .offset-xxl-1 {
    margin-left: 8.33333333%;
  }
  .offset-xxl-2 {
    margin-left: 16.66666667%;
  }
  .offset-xxl-3 {
    margin-left: 25%;
  }
  .offset-xxl-4 {
    margin-left: 33.33333333%;
  }
  .offset-xxl-5 {
    margin-left: 41.66666667%;
  }
  .offset-xxl-6 {
    margin-left: 50%;
  }
  .offset-xxl-7 {
    margin-left: 58.33333333%;
  }
  .offset-xxl-8 {
    margin-left: 66.66666667%;
  }
  .offset-xxl-9 {
    margin-left: 75%;
  }
  .offset-xxl-10 {
    margin-left: 83.33333333%;
  }
  .offset-xxl-11 {
    margin-left: 91.66666667%;
  }
  .g-xxl-0, .gx-xxl-0 {
    --bs-gutter-x: 0;
  }
  .g-xxl-0, .gy-xxl-0 {
    --bs-gutter-y: 0;
  }
  .g-xxl-1, .gx-xxl-1 {
    --bs-gutter-x: 0.25rem;
  }
  .g-xxl-1, .gy-xxl-1 {
    --bs-gutter-y: 0.25rem;
  }
  .g-xxl-2, .gx-xxl-2 {
    --bs-gutter-x: 0.5rem;
  }
  .g-xxl-2, .gy-xxl-2 {
    --bs-gutter-y: 0.5rem;
  }
  .g-xxl-3, .gx-xxl-3 {
    --bs-gutter-x: 1rem;
  }
  .g-xxl-3, .gy-xxl-3 {
    --bs-gutter-y: 1rem;
  }
  .g-xxl-4, .gx-xxl-4 {
    --bs-gutter-x: 1.5rem;
  }
  .g-xxl-4, .gy-xxl-4 {
    --bs-gutter-y: 1.5rem;
  }
  .g-xxl-5, .gx-xxl-5 {
    --bs-gutter-x: 2rem;
  }
  .g-xxl-5, .gy-xxl-5 {
    --bs-gutter-y: 2rem;
  }
  .g-xxl-6, .gx-xxl-6 {
    --bs-gutter-x: 3rem;
  }
  .g-xxl-6, .gy-xxl-6 {
    --bs-gutter-y: 3rem;
  }
}
.table {
  --bs-table-color-type: initial;
  --bs-table-bg-type: initial;
  --bs-table-color-state: initial;
  --bs-table-bg-state: initial;
  --bs-table-color: var(--bs-emphasis-color);
  --bs-table-bg: var(--bs-body-bg);
  --bs-table-border-color: var(--bs-border-color);
  --bs-table-accent-bg: rgba(0, 0, 0, 0.03);
  --bs-table-striped-color: var(--bs-emphasis-color);
  --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05);
  --bs-table-active-color: var(--bs-emphasis-color);
  --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1);
  --bs-table-hover-color: var(--bs-emphasis-color);
  --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075);
  width: 100%;
  margin-bottom: 1rem;
  vertical-align: top;
  border-color: var(--bs-table-border-color);
}
.table > :not(caption) > * > * {
  padding: 0.5rem 0.5rem;
  color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));
  background-color: var(--bs-table-bg);
  border-bottom-width: var(--bs-border-width);
  box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)));
}
.table > tbody {
  vertical-align: inherit;
}
.table > thead {
  vertical-align: bottom;
}
.table-group-divider {
  border-top: calc(var(--bs-border-width) * 2) solid currentcolor;
}
.caption-top {
  caption-side: top;
}
.table-sm > :not(caption) > * > * {
  padding: 0.25rem 0.25rem;
}
.table-bordered > :not(caption) > * {
  border-width: var(--bs-border-width) 0;
}
.table-bordered > :not(caption) > * > * {
  border-width: 0 var(--bs-border-width);
}
.table-borderless > :not(caption) > * > * {
  border-bottom-width: 0;
}
.table-borderless > :not(:first-child) {
  border-top-width: 0;
}
.table-striped > tbody > tr:nth-of-type(odd) > * {
  --bs-table-color-type: var(--bs-table-striped-color);
  --bs-table-bg-type: var(--bs-table-striped-bg);
}
.table-striped-columns > :not(caption) > tr > :nth-child(even) {
  --bs-table-color-type: var(--bs-table-striped-color);
  --bs-table-bg-type: var(--bs-table-striped-bg);
}
.table-active {
  --bs-table-color-state: var(--bs-table-active-color);
  --bs-table-bg-state: var(--bs-table-active-bg);
}
.table-hover > tbody > tr:hover > * {
  --bs-table-color-state: var(--bs-table-hover-color);
  --bs-table-bg-state: var(--bs-table-hover-bg);
}
.table-primary {
  --bs-table-color: #000;
  --bs-table-bg: #d4d4d5;
  --bs-table-border-color: #aaa;
  --bs-table-striped-bg: #c9c9ca;
  --bs-table-striped-color: #000;
  --bs-table-active-bg: #bfbfc0;
  --bs-table-active-color: #000;
  --bs-table-hover-bg: #c4c4c5;
  --bs-table-hover-color: #000;
  color: var(--bs-table-color);
  border-color: var(--bs-table-border-color);
}
.table-secondary {
  --bs-table-color: #000;
  --bs-table-bg: #f4ecdc;
  --bs-table-border-color: #c3bdb0;
  --bs-table-striped-bg: #e8e0d1;
  --bs-table-striped-color: #000;
  --bs-table-active-bg: #dcd4c6;
  --bs-table-active-color: #000;
  --bs-table-hover-bg: #e2dacc;
  --bs-table-hover-color: #000;
  color: var(--bs-table-color);
  border-color: var(--bs-table-border-color);
}
.table-success {
  --bs-table-color: #000;
  --bs-table-bg: #d7e4d6;
  --bs-table-border-color: #acb6ab;
  --bs-table-striped-bg: #ccd9cb;
  --bs-table-striped-color: #000;
  --bs-table-active-bg: #c2cdc1;
  --bs-table-active-color: #000;
  --bs-table-hover-bg: #c7d3c6;
  --bs-table-hover-color: #000;
  color: var(--bs-table-color);
  border-color: var(--bs-table-border-color);
}
.table-info {
  --bs-table-color: #000;
  --bs-table-bg: #cce6ea;
  --bs-table-border-color: #a3b8bb;
  --bs-table-striped-bg: #c2dbde;
  --bs-table-striped-color: #000;
  --bs-table-active-bg: #b8cfd3;
  --bs-table-active-color: #000;
  --bs-table-hover-bg: #bdd5d8;
  --bs-table-hover-color: #000;
  color: var(--bs-table-color);
  border-color: var(--bs-table-border-color);
}
.table-warning {
  --bs-table-color: #000;
  --bs-table-bg: #fcefdc;
  --bs-table-border-color: #cabfb0;
  --bs-table-striped-bg: #efe3d1;
  --bs-table-striped-color: #000;
  --bs-table-active-bg: #e3d7c6;
  --bs-table-active-color: #000;
  --bs-table-hover-bg: #e9ddcc;
  --bs-table-hover-color: #000;
  color: var(--bs-table-color);
  border-color: var(--bs-table-border-color);
}
.table-danger {
  --bs-table-color: #000;
  --bs-table-bg: #f4d6d2;
  --bs-table-border-color: #c3aba8;
  --bs-table-striped-bg: #e8cbc8;
  --bs-table-striped-color: #000;
  --bs-table-active-bg: #dcc1bd;
  --bs-table-active-color: #000;
  --bs-table-hover-bg: #e2c6c2;
  --bs-table-hover-color: #000;
  color: var(--bs-table-color);
  border-color: var(--bs-table-border-color);
}
.table-light {
  --bs-table-color: #000;
  --bs-table-bg: #f8f9fa;
  --bs-table-border-color: #c6c7c8;
  --bs-table-striped-bg: #ecedee;
  --bs-table-striped-color: #000;
  --bs-table-active-bg: #dfe0e1;
  --bs-table-active-color: #000;
  --bs-table-hover-bg: #e5e6e7;
  --bs-table-hover-color: #000;
  color: var(--bs-table-color);
  border-color: var(--bs-table-border-color);
}
.table-dark {
  --bs-table-color: #fff;
  --bs-table-bg: #1d2125;
  --bs-table-border-color: #4a4d51;
  --bs-table-striped-bg: #282c30;
  --bs-table-striped-color: #fff;
  --bs-table-active-bg: #34373b;
  --bs-table-active-color: #fff;
  --bs-table-hover-bg: #2e3235;
  --bs-table-hover-color: #fff;
  color: var(--bs-table-color);
  border-color: var(--bs-table-border-color);
}
.table-responsive {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
@media (max-width: 575.98px) {
  .table-responsive-sm {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}
@media (max-width: 767.98px) {
  .table-responsive-md {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}
@media (max-width: 991.98px) {
  .table-responsive-lg {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}
@media (max-width: 1199.98px) {
  .table-responsive-xl {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}
@media (max-width: 1399.98px) {
  .table-responsive-xxl {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}
.form-label {
  margin-bottom: 0.5rem;
}
.col-form-label {
  padding-top: calc(0.375rem + var(--bs-border-width));
  padding-bottom: calc(0.375rem + var(--bs-border-width));
  margin-bottom: 0;
  font-size: inherit;
  line-height: 1.5;
}
.col-form-label-lg {
  padding-top: calc(0.5rem + var(--bs-border-width));
  padding-bottom: calc(0.5rem + var(--bs-border-width));
  font-size: 1.171875rem;
}
.col-form-label-sm {
  padding-top: calc(0.25rem + var(--bs-border-width));
  padding-bottom: calc(0.25rem + var(--bs-border-width));
  font-size: 0.8203125rem;
}
.form-text {
  margin-top: 0.25rem;
  font-size: 0.875em;
  color: var(--bs-secondary-color);
}
.form-control {
  display: block;
  width: 100%;
  padding: 0.375rem 0.75rem;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--bs-body-color);
  appearance: none;
  background-color: var(--bs-body-bg);
  background-clip: padding-box;
  border: var(--bs-border-width) solid #8f959e;
  border-radius: var(--bs-border-radius);
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .form-control {
    transition: none;
  }
}
.form-control[type="file"] {
  overflow: hidden;
}
.form-control[type="file"]:not(:disabled):not([readonly]) {
  cursor: pointer;
}
.form-control:focus {
  color: var(--bs-body-color);
  background-color: var(--bs-body-bg);
  border-color: #959596;
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
}
.form-control::-webkit-date-and-time-value {
  min-width: 85px;
  height: 1.5em;
  margin: 0;
}
.form-control::-webkit-datetime-edit {
  display: block;
  padding: 0;
}
.form-control::placeholder {
  color: var(--bs-secondary-color);
  opacity: 1;
}
.form-control:disabled {
  background-color: var(--bs-secondary-bg);
  opacity: 1;
}
.form-control::file-selector-button {
  padding: 0.375rem 0.75rem;
  margin: -0.375rem -0.75rem;
  margin-inline-end: 0.75rem;
  color: var(--bs-body-color);
  background-color: var(--bs-tertiary-bg);
  pointer-events: none;
  border-color: inherit;
  border-style: solid;
  border-width: 0;
  border-inline-end-width: var(--bs-border-width);
  border-radius: 0;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .form-control::file-selector-button {
    transition: none;
  }
}
.form-control:hover:not(:disabled):not([readonly])::file-selector-button {
  background-color: var(--bs-secondary-bg);
}
.form-control-plaintext {
  display: block;
  width: 100%;
  padding: 0.375rem 0;
  margin-bottom: 0;
  line-height: 1.5;
  color: var(--bs-body-color);
  background-color: transparent;
  border: solid transparent;
  border-width: var(--bs-border-width) 0;
}
.form-control-plaintext:focus {
  outline: 0;
}
.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
  padding-right: 0;
  padding-left: 0;
}
.form-control-sm {
  min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
  padding: 0.25rem 0.5rem;
  font-size: 0.8203125rem;
  border-radius: var(--bs-border-radius-sm);
}
.form-control-sm::file-selector-button {
  padding: 0.25rem 0.5rem;
  margin: -0.25rem -0.5rem;
  margin-inline-end: 0.5rem;
}
.form-control-lg {
  min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
  padding: 0.5rem 1rem;
  font-size: 1.171875rem;
  border-radius: var(--bs-border-radius-lg);
}
.form-control-lg::file-selector-button {
  padding: 0.5rem 1rem;
  margin: -0.5rem -1rem;
  margin-inline-end: 1rem;
}
textarea.form-control {
  min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));
}
textarea.form-control-sm {
  min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
}
textarea.form-control-lg {
  min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
}
.form-control-color {
  width: 3rem;
  height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));
  padding: 0.375rem;
}
.form-control-color:not(:disabled):not([readonly]) {
  cursor: pointer;
}
.form-control-color::-moz-color-swatch {
  border: 0 !important;
  border-radius: var(--bs-border-radius);
}
.form-control-color::-webkit-color-swatch {
  border: 0 !important;
  border-radius: var(--bs-border-radius);
}
.form-control-color.form-control-sm {
  height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
}
.form-control-color.form-control-lg {
  height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
}
.form-select {
  --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  display: block;
  width: 100%;
  padding: 0.375rem 2.25rem 0.375rem 0.75rem;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--bs-body-color);
  appearance: none;
  background-color: var(--bs-body-bg);
  background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none);
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 16px 12px;
  border: var(--bs-border-width) solid #8f959e;
  border-radius: var(--bs-border-radius);
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .form-select {
    transition: none;
  }
}
.form-select:focus {
  border-color: #959596;
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.75);
}
.form-select[multiple], .form-select[size]:not([size="1"]) {
  padding-right: 0.75rem;
  background-image: none;
}
.form-select:disabled {
  background-color: var(--bs-secondary-bg);
}
.form-select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 var(--bs-body-color);
}
.form-select-sm {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  padding-left: 0.5rem;
  font-size: 0.8203125rem;
  border-radius: var(--bs-border-radius-sm);
}
.form-select-lg {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 1rem;
  font-size: 1.171875rem;
  border-radius: var(--bs-border-radius-lg);
}
[data-bs-theme="dark"] .form-select {
  --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}
.form-check {
  display: block;
  min-height: 1.40625rem;
  padding-left: 1.5em;
  margin-bottom: 0.125rem;
}
.form-check .form-check-input {
  float: left;
  margin-left: -1.5em;
}
.form-check-reverse {
  padding-right: 1.5em;
  padding-left: 0;
  text-align: right;
}
.form-check-reverse .form-check-input {
  float: right;
  margin-right: -1.5em;
  margin-left: 0;
}
.form-check-input {
  --bs-form-check-bg: var(--bs-body-bg);
  flex-shrink: 0;
  width: 1em;
  height: 1em;
  margin-top: 0.25em;
  vertical-align: top;
  appearance: none;
  background-color: var(--bs-form-check-bg);
  background-image: var(--bs-form-check-bg-image);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  border: var(--bs-border-width) solid var(--bs-border-color);
  print-color-adjust: exact;
  transition: all 0.2s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .form-check-input {
    transition: none;
  }
}
.form-check-input[type="checkbox"] {
  border-radius: 0.25em;
}
.form-check-input[type="radio"] {
  border-radius: 50%;
}
.form-check-input:active {
  filter: brightness(90%);
}
.form-check-input:focus {
  border-color: #959596;
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
}
.form-check-input:checked {
  background-color: #2A2A2C;
  border-color: #2A2A2C;
}
.form-check-input:checked[type="checkbox"] {
  --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
}
.form-check-input:checked[type="radio"] {
  --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e");
}
.form-check-input[type="checkbox"]:indeterminate {
  background-color: #2A2A2C;
  border-color: #2A2A2C;
  --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e");
}
.form-check-input:disabled {
  pointer-events: none;
  filter: none;
  opacity: 0.5;
}
.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {
  cursor: default;
  opacity: 0.5;
}
.form-switch {
  padding-left: 2.5em;
}
.form-switch .form-check-input {
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");
  width: 2em;
  margin-left: -2.5em;
  background-image: var(--bs-form-switch-bg);
  background-position: left center;
  border-radius: 2em;
  transition: background-position 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .form-switch .form-check-input {
    transition: none;
  }
}
.form-switch .form-check-input:focus {
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23959596'/%3e%3c/svg%3e");
}
.form-switch .form-check-input:checked {
  background-position: right center;
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}
.form-switch.form-check-reverse {
  padding-right: 2.5em;
  padding-left: 0;
}
.form-switch.form-check-reverse .form-check-input {
  margin-right: -2.5em;
  margin-left: 0;
}
.form-check-inline {
  display: inline-block;
  margin-right: 1rem;
}
.btn-check {
  position: absolute;
  clip: rect(0, 0, 0, 0);
  pointer-events: none;
}
.btn-check[disabled] + .btn, .btn-check:disabled + .btn {
  pointer-events: none;
  filter: none;
  opacity: 0.65;
}
[data-bs-theme="dark"] .form-switch .form-check-input:not(:checked):not(:focus) {
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e");
}
.form-range {
  width: 100%;
  height: 1.5rem;
  padding: 0;
  appearance: none;
  background-color: transparent;
}
.form-range:focus {
  outline: 0;
}
.form-range:focus::-webkit-slider-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
}
.form-range:focus::-moz-range-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
}
.form-range::-moz-focus-outer {
  border: 0;
}
.form-range::-webkit-slider-thumb {
  width: 1rem;
  height: 1rem;
  margin-top: -0.25rem;
  appearance: none;
  background-color: #2A2A2C;
  border: 0;
  border-radius: 1rem;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .form-range::-webkit-slider-thumb {
    transition: none;
  }
}
.form-range::-webkit-slider-thumb:active {
  background-color: #bfbfc0;
}
.form-range::-webkit-slider-runnable-track {
  width: 100%;
  height: 0.5rem;
  color: transparent;
  cursor: pointer;
  background-color: var(--bs-secondary-bg);
  border-color: transparent;
  border-radius: 1rem;
}
.form-range::-moz-range-thumb {
  width: 1rem;
  height: 1rem;
  appearance: none;
  background-color: #2A2A2C;
  border: 0;
  border-radius: 1rem;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .form-range::-moz-range-thumb {
    transition: none;
  }
}
.form-range::-moz-range-thumb:active {
  background-color: #bfbfc0;
}
.form-range::-moz-range-track {
  width: 100%;
  height: 0.5rem;
  color: transparent;
  cursor: pointer;
  background-color: var(--bs-secondary-bg);
  border-color: transparent;
  border-radius: 1rem;
}
.form-range:disabled {
  pointer-events: none;
}
.form-range:disabled::-webkit-slider-thumb {
  background-color: var(--bs-secondary-color);
}
.form-range:disabled::-moz-range-thumb {
  background-color: var(--bs-secondary-color);
}
.form-floating {
  position: relative;
}
.form-floating > .form-control, .form-floating > .form-control-plaintext, .form-floating > .form-select {
  height: calc(3.5rem + calc(var(--bs-border-width) * 2));
  min-height: calc(3.5rem + calc(var(--bs-border-width) * 2));
  line-height: 1.25;
}
.form-floating > label {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  height: 100%;
  padding: 1rem 0.75rem;
  overflow: hidden;
  text-align: start;
  text-overflow: ellipsis;
  white-space: nowrap;
  pointer-events: none;
  border: var(--bs-border-width) solid transparent;
  transform-origin: 0 0;
  transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .form-floating > label {
    transition: none;
  }
}
.form-floating > .form-control, .form-floating > .form-control-plaintext {
  padding: 1rem 0.75rem;
}
.form-floating > .form-control::placeholder, .form-floating > .form-control-plaintext::placeholder {
  color: transparent;
}
.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown), .form-floating > .form-control-plaintext:focus, .form-floating > .form-control-plaintext:not(:placeholder-shown) {
  padding-top: 1.625rem;
  padding-bottom: 0.625rem;
}
.form-floating > .form-control:-webkit-autofill, .form-floating > .form-control-plaintext:-webkit-autofill {
  padding-top: 1.625rem;
  padding-bottom: 0.625rem;
}
.form-floating > .form-select {
  padding-top: 1.625rem;
  padding-bottom: 0.625rem;
}
.form-floating > .form-control:focus ~ label, .form-floating > .form-control:not(:placeholder-shown) ~ label, .form-floating > .form-control-plaintext ~ label, .form-floating > .form-select ~ label {
  color: rgba(var(--bs-body-color-rgb), 0.65);
  transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
}
.form-floating > .form-control:focus ~ label::after, .form-floating > .form-control:not(:placeholder-shown) ~ label::after, .form-floating > .form-control-plaintext ~ label::after, .form-floating > .form-select ~ label::after {
  position: absolute;
  inset: 1rem 0.375rem;
  z-index: -1;
  height: 1.5em;
  content: "";
  background-color: var(--bs-body-bg);
  border-radius: var(--bs-border-radius);
}
.form-floating > .form-control:-webkit-autofill ~ label {
  color: rgba(var(--bs-body-color-rgb), 0.65);
  transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
}
.form-floating > .form-control-plaintext ~ label {
  border-width: var(--bs-border-width) 0;
}
.form-floating > :disabled ~ label, .form-floating > .form-control:disabled ~ label {
  color: #6a737b;
}
.form-floating > :disabled ~ label::after, .form-floating > .form-control:disabled ~ label::after {
  background-color: var(--bs-secondary-bg);
}
.input-group {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  width: 100%;
}
.input-group > .form-control, .input-group > .form-select, .input-group > .form-floating {
  position: relative;
  flex: 1 1 auto;
  width: 1%;
  min-width: 0;
}
.input-group > .form-control:focus, .input-group > .form-select:focus, .input-group > .form-floating:focus-within {
  z-index: 5;
}
.input-group .btn {
  position: relative;
  z-index: 2;
}
.input-group .btn:focus {
  z-index: 5;
}
.input-group-text {
  display: flex;
  align-items: center;
  padding: 0.375rem 0.75rem;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--bs-body-color);
  text-align: center;
  white-space: nowrap;
  background-color: var(--bs-tertiary-bg);
  border: var(--bs-border-width) solid #8f959e;
  border-radius: var(--bs-border-radius);
}
.input-group-lg > .form-control, .input-group-lg > .form-select, .input-group-lg > .input-group-text, .input-group-lg > .btn {
  padding: 0.5rem 1rem;
  font-size: 1.171875rem;
  border-radius: var(--bs-border-radius-lg);
}
.input-group-sm > .form-control, .input-group-sm > .form-select, .input-group-sm > .input-group-text, .input-group-sm > .btn {
  padding: 0.25rem 0.5rem;
  font-size: 0.8203125rem;
  border-radius: var(--bs-border-radius-sm);
}
.input-group-lg > .form-select, .input-group-sm > .form-select {
  padding-right: 3rem;
}
.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), .input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n + 3), .input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control, .input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.input-group.has-validation > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), .input-group.has-validation > .dropdown-toggle:nth-last-child(n + 4), .input-group.has-validation > .form-floating:nth-last-child(n + 3) > .form-control, .input-group.has-validation > .form-floating:nth-last-child(n + 3) > .form-select {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
  margin-left: calc(var(--bs-border-width) * -1);
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.input-group > .form-floating:not(:first-child) > .form-control, .input-group > .form-floating:not(:first-child) > .form-select {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.valid-feedback {
  display: none;
  width: 100%;
  margin-top: 0.25rem;
  font-size: 0.875em;
  color: var(--bs-form-valid-color);
}
.valid-tooltip {
  position: absolute;
  top: 100%;
  z-index: 5;
  display: none;
  max-width: 100%;
  padding: 0.25rem 0.5rem;
  margin-top: 0.1rem;
  font-size: 0.8203125rem;
  color: #fff;
  background-color: var(--bs-success);
  border-radius: var(--bs-border-radius);
}
.was-validated :valid ~ .valid-feedback, .was-validated :valid ~ .valid-tooltip, .is-valid ~ .valid-feedback, .is-valid ~ .valid-tooltip {
  display: block;
}
.was-validated .form-control:valid, .form-control.is-valid {
  border-color: var(--bs-form-valid-border-color);
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23357a32' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(0.375em + 0.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}
.was-validated .form-control:valid:focus, .form-control.is-valid:focus {
  border-color: var(--bs-form-valid-border-color);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
}
.was-validated textarea.form-control:valid, textarea.form-control.is-valid {
  padding-right: calc(1.5em + 0.75rem);
  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
}
.was-validated .form-select:valid, .form-select.is-valid {
  border-color: var(--bs-form-valid-border-color);
}
.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] {
  --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23357a32' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
  padding-right: 4.125rem;
  background-position: right 0.75rem center, center right 2.25rem;
  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}
.was-validated .form-select:valid:focus, .form-select.is-valid:focus {
  border-color: var(--bs-form-valid-border-color);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
}
.was-validated .form-control-color:valid, .form-control-color.is-valid {
  width: calc(3rem + calc(1.5em + 0.75rem));
}
.was-validated .form-check-input:valid, .form-check-input.is-valid {
  border-color: var(--bs-form-valid-border-color);
}
.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {
  background-color: var(--bs-form-valid-color);
}
.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
}
.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
  color: var(--bs-form-valid-color);
}
.form-check-inline .form-check-input ~ .valid-feedback {
  margin-left: 0.5em;
}
.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid, .was-validated .input-group > .form-select:not(:focus):valid, .input-group > .form-select:not(:focus).is-valid, .was-validated .input-group > .form-floating:not(:focus-within):valid, .input-group > .form-floating:not(:focus-within).is-valid {
  z-index: 3;
}
.invalid-feedback {
  display: none;
  width: 100%;
  margin-top: 0.25rem;
  font-size: 0.875em;
  color: var(--bs-form-invalid-color);
}
.invalid-tooltip {
  position: absolute;
  top: 100%;
  z-index: 5;
  display: none;
  max-width: 100%;
  padding: 0.25rem 0.5rem;
  margin-top: 0.1rem;
  font-size: 0.8203125rem;
  color: #fff;
  background-color: var(--bs-danger);
  border-radius: var(--bs-border-radius);
}
.was-validated :invalid ~ .invalid-feedback, .was-validated :invalid ~ .invalid-tooltip, .is-invalid ~ .invalid-feedback, .is-invalid ~ .invalid-tooltip {
  display: block;
}
.was-validated .form-control:invalid, .form-control.is-invalid {
  border-color: var(--bs-form-invalid-border-color);
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ca3120'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ca3120' stroke='none'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(0.375em + 0.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}
.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {
  border-color: var(--bs-form-invalid-border-color);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
}
.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {
  padding-right: calc(1.5em + 0.75rem);
  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
}
.was-validated .form-select:invalid, .form-select.is-invalid {
  border-color: var(--bs-form-invalid-border-color);
}
.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] {
  --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ca3120'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ca3120' stroke='none'/%3e%3c/svg%3e");
  padding-right: 4.125rem;
  background-position: right 0.75rem center, center right 2.25rem;
  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}
.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus {
  border-color: var(--bs-form-invalid-border-color);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
}
.was-validated .form-control-color:invalid, .form-control-color.is-invalid {
  width: calc(3rem + calc(1.5em + 0.75rem));
}
.was-validated .form-check-input:invalid, .form-check-input.is-invalid {
  border-color: var(--bs-form-invalid-border-color);
}
.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {
  background-color: var(--bs-form-invalid-color);
}
.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
}
.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
  color: var(--bs-form-invalid-color);
}
.form-check-inline .form-check-input ~ .invalid-feedback {
  margin-left: 0.5em;
}
.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid, .was-validated .input-group > .form-select:not(:focus):invalid, .input-group > .form-select:not(:focus).is-invalid, .was-validated .input-group > .form-floating:not(:focus-within):invalid, .input-group > .form-floating:not(:focus-within).is-invalid {
  z-index: 4;
}
.btn {
  --bs-btn-padding-x: 0.75rem;
  --bs-btn-padding-y: 0.375rem;
  --bs-btn-font-family: ;
  --bs-btn-font-size: 0.9375rem;
  --bs-btn-font-weight: 400;
  --bs-btn-line-height: 1.5;
  --bs-btn-color: var(--bs-body-color);
  --bs-btn-bg: transparent;
  --bs-btn-border-width: var(--bs-border-width);
  --bs-btn-border-color: transparent;
  --bs-btn-border-radius: var(--bs-border-radius);
  --bs-btn-hover-border-color: transparent;
  --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
  --bs-btn-disabled-opacity: 0.65;
  --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);
  display: inline-block;
  padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
  font-family: var(--bs-btn-font-family);
  font-size: var(--bs-btn-font-size);
  font-weight: var(--bs-btn-font-weight);
  line-height: var(--bs-btn-line-height);
  color: var(--bs-btn-color);
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  cursor: pointer;
  user-select: none;
  border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
  border-radius: var(--bs-btn-border-radius);
  background-color: var(--bs-btn-bg);
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .btn {
    transition: none;
  }
}
.btn:hover {
  color: var(--bs-btn-hover-color);
  background-color: var(--bs-btn-hover-bg);
  border-color: var(--bs-btn-hover-border-color);
}
.btn-check + .btn:hover {
  color: var(--bs-btn-color);
  background-color: var(--bs-btn-bg);
  border-color: var(--bs-btn-border-color);
}
.btn:focus-visible {
  color: var(--bs-btn-hover-color);
  background-color: var(--bs-btn-hover-bg);
  border-color: var(--bs-btn-hover-border-color);
  outline: 0;
  box-shadow: var(--bs-btn-focus-box-shadow);
}
.btn-check:focus-visible + .btn {
  border-color: var(--bs-btn-hover-border-color);
  outline: 0;
  box-shadow: var(--bs-btn-focus-box-shadow);
}
.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {
  color: var(--bs-btn-active-color);
  background-color: var(--bs-btn-active-bg);
  border-color: var(--bs-btn-active-border-color);
}
.btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible {
  box-shadow: var(--bs-btn-focus-box-shadow);
}
.btn-check:checked:focus-visible + .btn {
  box-shadow: var(--bs-btn-focus-box-shadow);
}
.btn:disabled, .btn.disabled, fieldset:disabled .btn {
  color: var(--bs-btn-disabled-color);
  pointer-events: none;
  background-color: var(--bs-btn-disabled-bg);
  border-color: var(--bs-btn-disabled-border-color);
  opacity: var(--bs-btn-disabled-opacity);
}
.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: #2A2A2C;
  --bs-btn-border-color: #2A2A2C;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #242425;
  --bs-btn-hover-border-color: #222223;
  --bs-btn-focus-shadow-rgb: 74, 74, 76;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #222223;
  --bs-btn-active-border-color: #202021;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #2A2A2C;
  --bs-btn-disabled-border-color: #2A2A2C;
}
.btn-secondary {
  --bs-btn-color: #000;
  --bs-btn-bg: #CAA150;
  --bs-btn-border-color: #CAA150;
  --bs-btn-hover-color: #000;
  --bs-btn-hover-bg: #d2af6a;
  --bs-btn-hover-border-color: #cfaa62;
  --bs-btn-focus-shadow-rgb: 172, 137, 68;
  --bs-btn-active-color: #000;
  --bs-btn-active-bg: #d5b473;
  --bs-btn-active-border-color: #cfaa62;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #000;
  --bs-btn-disabled-bg: #CAA150;
  --bs-btn-disabled-border-color: #CAA150;
}
.btn-success {
  --bs-btn-color: #fff;
  --bs-btn-bg: #357a32;
  --bs-btn-border-color: #357a32;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #2d682b;
  --bs-btn-hover-border-color: #2a6228;
  --bs-btn-focus-shadow-rgb: 83, 142, 81;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #2a6228;
  --bs-btn-active-border-color: #285c26;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #357a32;
  --bs-btn-disabled-border-color: #357a32;
}
.btn-info {
  --bs-btn-color: #fff;
  --bs-btn-bg: #008196;
  --bs-btn-border-color: #008196;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #006e80;
  --bs-btn-hover-border-color: #006778;
  --bs-btn-focus-shadow-rgb: 38, 148, 166;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #006778;
  --bs-btn-active-border-color: #006171;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #008196;
  --bs-btn-disabled-border-color: #008196;
}
.btn-warning {
  --bs-btn-color: #000;
  --bs-btn-bg: #f0ad4e;
  --bs-btn-border-color: #f0ad4e;
  --bs-btn-hover-color: #000;
  --bs-btn-hover-bg: #f2b969;
  --bs-btn-hover-border-color: #f2b560;
  --bs-btn-focus-shadow-rgb: 204, 147, 66;
  --bs-btn-active-color: #000;
  --bs-btn-active-bg: #f3bd71;
  --bs-btn-active-border-color: #f2b560;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #000;
  --bs-btn-disabled-bg: #f0ad4e;
  --bs-btn-disabled-border-color: #f0ad4e;
}
.btn-danger {
  --bs-btn-color: #fff;
  --bs-btn-bg: #ca3120;
  --bs-btn-border-color: #ca3120;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #ac2a1b;
  --bs-btn-hover-border-color: #a2271a;
  --bs-btn-focus-shadow-rgb: 210, 80, 65;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #a2271a;
  --bs-btn-active-border-color: #982518;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #ca3120;
  --bs-btn-disabled-border-color: #ca3120;
}
.btn-outline-primary {
  --bs-btn-color: #2A2A2C;
  --bs-btn-border-color: #2A2A2C;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #2A2A2C;
  --bs-btn-hover-border-color: #2A2A2C;
  --bs-btn-focus-shadow-rgb: 42, 42, 44;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #2A2A2C;
  --bs-btn-active-border-color: #2A2A2C;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #2A2A2C;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #2A2A2C;
  --bs-gradient: none;
}
.btn-outline-secondary {
  --bs-btn-color: #CAA150;
  --bs-btn-border-color: #CAA150;
  --bs-btn-hover-color: #000;
  --bs-btn-hover-bg: #CAA150;
  --bs-btn-hover-border-color: #CAA150;
  --bs-btn-focus-shadow-rgb: 202, 161, 80;
  --bs-btn-active-color: #000;
  --bs-btn-active-bg: #CAA150;
  --bs-btn-active-border-color: #CAA150;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #CAA150;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #CAA150;
  --bs-gradient: none;
}
.btn-outline-success {
  --bs-btn-color: #357a32;
  --bs-btn-border-color: #357a32;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #357a32;
  --bs-btn-hover-border-color: #357a32;
  --bs-btn-focus-shadow-rgb: 53, 122, 50;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #357a32;
  --bs-btn-active-border-color: #357a32;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #357a32;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #357a32;
  --bs-gradient: none;
}
.btn-outline-info {
  --bs-btn-color: #008196;
  --bs-btn-border-color: #008196;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #008196;
  --bs-btn-hover-border-color: #008196;
  --bs-btn-focus-shadow-rgb: 0, 129, 150;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #008196;
  --bs-btn-active-border-color: #008196;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #008196;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #008196;
  --bs-gradient: none;
}
.btn-outline-warning {
  --bs-btn-color: #f0ad4e;
  --bs-btn-border-color: #f0ad4e;
  --bs-btn-hover-color: #000;
  --bs-btn-hover-bg: #f0ad4e;
  --bs-btn-hover-border-color: #f0ad4e;
  --bs-btn-focus-shadow-rgb: 240, 173, 78;
  --bs-btn-active-color: #000;
  --bs-btn-active-bg: #f0ad4e;
  --bs-btn-active-border-color: #f0ad4e;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #f0ad4e;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #f0ad4e;
  --bs-gradient: none;
}
.btn-outline-danger {
  --bs-btn-color: #ca3120;
  --bs-btn-border-color: #ca3120;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #ca3120;
  --bs-btn-hover-border-color: #ca3120;
  --bs-btn-focus-shadow-rgb: 202, 49, 32;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #ca3120;
  --bs-btn-active-border-color: #ca3120;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #ca3120;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #ca3120;
  --bs-gradient: none;
}
.btn-link {
  --bs-btn-font-weight: 400;
  --bs-btn-color: var(--bs-link-color);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: transparent;
  --bs-btn-hover-color: var(--bs-link-hover-color);
  --bs-btn-hover-border-color: transparent;
  --bs-btn-active-color: var(--bs-link-hover-color);
  --bs-btn-active-border-color: transparent;
  --bs-btn-disabled-color: #6a737b;
  --bs-btn-disabled-border-color: transparent;
  --bs-btn-box-shadow: 0 0 0 #000;
  --bs-btn-focus-shadow-rgb: 74, 74, 76;
  text-decoration: underline;
}
.btn-link:focus-visible {
  color: var(--bs-btn-color);
}
.btn-link:hover {
  color: var(--bs-btn-hover-color);
}
.btn-lg, .btn-group-lg > .btn {
  --bs-btn-padding-y: 0.5rem;
  --bs-btn-padding-x: 1rem;
  --bs-btn-font-size: 1.171875rem;
  --bs-btn-border-radius: var(--bs-border-radius-lg);
}
.btn-sm, .btn-group-sm > .btn {
  --bs-btn-padding-y: 0.25rem;
  --bs-btn-padding-x: 0.5rem;
  --bs-btn-font-size: 0.8203125rem;
  --bs-btn-border-radius: var(--bs-border-radius-sm);
}
.fade {
  transition: opacity 0.15s linear;
}
@media (prefers-reduced-motion: reduce) {
  .fade {
    transition: none;
  }
}
.fade:not(.show) {
  opacity: 0;
}
.collapse:not(.show) {
  display: none;
}
.collapsing {
  height: 0;
  overflow: hidden;
  transition: height 0.35s ease;
}
@media (prefers-reduced-motion: reduce) {
  .collapsing {
    transition: none;
  }
}
.collapsing.collapse-horizontal {
  width: 0;
  height: auto;
  transition: width 0.35s ease;
}
@media (prefers-reduced-motion: reduce) {
  .collapsing.collapse-horizontal {
    transition: none;
  }
}
.dropup, .dropend, .dropdown, .dropstart, .dropup-center, .dropdown-center {
  position: relative;
}
.dropdown-toggle {
  white-space: nowrap;
}
.dropdown-toggle::after {
  display: inline-block;
  margin-left: 0.255em;
  vertical-align: 0.255em;
  content: "";
  border-top: 0.3em solid;
  border-right: 0.3em solid transparent;
  border-bottom: 0;
  border-left: 0.3em solid transparent;
}
.dropdown-toggle:empty::after {
  margin-left: 0;
}
.dropdown-menu {
  --bs-dropdown-zindex: 1000;
  --bs-dropdown-min-width: 10rem;
  --bs-dropdown-padding-x: 0;
  --bs-dropdown-padding-y: 0.5rem;
  --bs-dropdown-spacer: 0.125rem;
  --bs-dropdown-font-size: 0.9375rem;
  --bs-dropdown-color: var(--bs-body-color);
  --bs-dropdown-bg: var(--bs-body-bg);
  --bs-dropdown-border-color: var(--bs-border-color-translucent);
  --bs-dropdown-border-radius: var(--bs-border-radius);
  --bs-dropdown-border-width: var(--bs-border-width);
  --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));
  --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
  --bs-dropdown-divider-margin-y: 0.5rem;
  --bs-dropdown-box-shadow: var(--bs-box-shadow);
  --bs-dropdown-link-color: var(--bs-body-color);
  --bs-dropdown-link-hover-color: #fff;
  --bs-dropdown-link-hover-bg: #2A2A2C;
  --bs-dropdown-link-active-color: #fff;
  --bs-dropdown-link-active-bg: #2A2A2C;
  --bs-dropdown-link-disabled-color: var(--bs-tertiary-color);
  --bs-dropdown-item-padding-x: 1rem;
  --bs-dropdown-item-padding-y: 0.25rem;
  --bs-dropdown-header-color: #6a737b;
  --bs-dropdown-header-padding-x: 1rem;
  --bs-dropdown-header-padding-y: 0.5rem;
  position: absolute;
  z-index: var(--bs-dropdown-zindex);
  display: none;
  min-width: var(--bs-dropdown-min-width);
  padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);
  margin: 0;
  font-size: var(--bs-dropdown-font-size);
  color: var(--bs-dropdown-color);
  text-align: left;
  list-style: none;
  background-color: var(--bs-dropdown-bg);
  background-clip: padding-box;
  border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
  border-radius: var(--bs-dropdown-border-radius);
}
.dropdown-menu[data-bs-popper] {
  top: 100%;
  left: 0;
  margin-top: var(--bs-dropdown-spacer);
}
.dropdown-menu-start {
  --bs-position: start;
}
.dropdown-menu-start[data-bs-popper] {
  right: auto;
  left: 0;
}
.dropdown-menu-end {
  --bs-position: end;
}
.dropdown-menu-end[data-bs-popper] {
  right: 0;
  left: auto;
}
@media (min-width: 576px) {
  .dropdown-menu-sm-start {
    --bs-position: start;
  }
  .dropdown-menu-sm-start[data-bs-popper] {
    right: auto;
    left: 0;
  }
  .dropdown-menu-sm-end {
    --bs-position: end;
  }
  .dropdown-menu-sm-end[data-bs-popper] {
    right: 0;
    left: auto;
  }
}
@media (min-width: 768px) {
  .dropdown-menu-md-start {
    --bs-position: start;
  }
  .dropdown-menu-md-start[data-bs-popper] {
    right: auto;
    left: 0;
  }
  .dropdown-menu-md-end {
    --bs-position: end;
  }
  .dropdown-menu-md-end[data-bs-popper] {
    right: 0;
    left: auto;
  }
}
@media (min-width: 992px) {
  .dropdown-menu-lg-start {
    --bs-position: start;
  }
  .dropdown-menu-lg-start[data-bs-popper] {
    right: auto;
    left: 0;
  }
  .dropdown-menu-lg-end {
    --bs-position: end;
  }
  .dropdown-menu-lg-end[data-bs-popper] {
    right: 0;
    left: auto;
  }
}
@media (min-width: 1200px) {
  .dropdown-menu-xl-start {
    --bs-position: start;
  }
  .dropdown-menu-xl-start[data-bs-popper] {
    right: auto;
    left: 0;
  }
  .dropdown-menu-xl-end {
    --bs-position: end;
  }
  .dropdown-menu-xl-end[data-bs-popper] {
    right: 0;
    left: auto;
  }
}
@media (min-width: 1400px) {
  .dropdown-menu-xxl-start {
    --bs-position: start;
  }
  .dropdown-menu-xxl-start[data-bs-popper] {
    right: auto;
    left: 0;
  }
  .dropdown-menu-xxl-end {
    --bs-position: end;
  }
  .dropdown-menu-xxl-end[data-bs-popper] {
    right: 0;
    left: auto;
  }
}
.dropup .dropdown-menu[data-bs-popper] {
  top: auto;
  bottom: 100%;
  margin-top: 0;
  margin-bottom: var(--bs-dropdown-spacer);
}
.dropup .dropdown-toggle::after {
  display: inline-block;
  margin-left: 0.255em;
  vertical-align: 0.255em;
  content: "";
  border-top: 0;
  border-right: 0.3em solid transparent;
  border-bottom: 0.3em solid;
  border-left: 0.3em solid transparent;
}
.dropup .dropdown-toggle:empty::after {
  margin-left: 0;
}
.dropend .dropdown-menu[data-bs-popper] {
  top: 0;
  right: auto;
  left: 100%;
  margin-top: 0;
  margin-left: var(--bs-dropdown-spacer);
}
.dropend .dropdown-toggle::after {
  display: inline-block;
  margin-left: 0.255em;
  vertical-align: 0.255em;
  content: "";
  border-top: 0.3em solid transparent;
  border-right: 0;
  border-bottom: 0.3em solid transparent;
  border-left: 0.3em solid;
}
.dropend .dropdown-toggle:empty::after {
  margin-left: 0;
}
.dropend .dropdown-toggle::after {
  vertical-align: 0;
}
.dropstart .dropdown-menu[data-bs-popper] {
  top: 0;
  right: 100%;
  left: auto;
  margin-top: 0;
  margin-right: var(--bs-dropdown-spacer);
}
.dropstart .dropdown-toggle::after {
  display: inline-block;
  margin-left: 0.255em;
  vertical-align: 0.255em;
  content: "";
}
.dropstart .dropdown-toggle::after {
  display: none;
}
.dropstart .dropdown-toggle::before {
  display: inline-block;
  margin-right: 0.255em;
  vertical-align: 0.255em;
  content: "";
  border-top: 0.3em solid transparent;
  border-right: 0.3em solid;
  border-bottom: 0.3em solid transparent;
}
.dropstart .dropdown-toggle:empty::after {
  margin-left: 0;
}
.dropstart .dropdown-toggle::before {
  vertical-align: 0;
}
.dropdown-divider {
  height: 0;
  margin: var(--bs-dropdown-divider-margin-y) 0;
  overflow: hidden;
  border-top: 1px solid var(--bs-dropdown-divider-bg);
  opacity: 1;
}
.dropdown-item {
  display: block;
  width: 100%;
  padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
  clear: both;
  font-weight: 400;
  color: var(--bs-dropdown-link-color);
  text-align: inherit;
  text-decoration: none;
  white-space: nowrap;
  background-color: transparent;
  border: 0;
  border-radius: var(--bs-dropdown-item-border-radius, 0);
}
.dropdown-item:hover, .dropdown-item:focus {
  color: var(--bs-dropdown-link-hover-color);
  background-color: var(--bs-dropdown-link-hover-bg);
}
.dropdown-item.active, .dropdown-item:active {
  color: var(--bs-dropdown-link-active-color);
  text-decoration: none;
  background-color: var(--bs-dropdown-link-active-bg);
}
.dropdown-item.disabled, .dropdown-item:disabled {
  color: var(--bs-dropdown-link-disabled-color);
  pointer-events: none;
  background-color: transparent;
}
.dropdown-menu.show {
  display: block;
}
.dropdown-header {
  display: block;
  padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);
  margin-bottom: 0;
  font-size: 0.8203125rem;
  color: var(--bs-dropdown-header-color);
  white-space: nowrap;
}
.dropdown-item-text {
  display: block;
  padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
  color: var(--bs-dropdown-link-color);
}
.dropdown-menu-dark {
  --bs-dropdown-color: #dee2e6;
  --bs-dropdown-bg: #343a40;
  --bs-dropdown-border-color: var(--bs-border-color-translucent);
  --bs-dropdown-box-shadow: ;
  --bs-dropdown-link-color: #dee2e6;
  --bs-dropdown-link-hover-color: #fff;
  --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
  --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);
  --bs-dropdown-link-active-color: #fff;
  --bs-dropdown-link-active-bg: #2A2A2C;
  --bs-dropdown-link-disabled-color: #8f959e;
  --bs-dropdown-header-color: #8f959e;
}
.btn-group, .btn-group-vertical {
  position: relative;
  display: inline-flex;
  vertical-align: middle;
}
.btn-group > .btn, .btn-group-vertical > .btn {
  position: relative;
  flex: 1 1 auto;
}
.btn-group > .btn-check:checked + .btn, .btn-group > .btn-check:focus + .btn, .btn-group > .btn:hover, .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, .btn-group-vertical > .btn-check:checked + .btn, .btn-group-vertical > .btn-check:focus + .btn, .btn-group-vertical > .btn:hover, .btn-group-vertical > .btn:focus, .btn-group-vertical > .btn:active, .btn-group-vertical > .btn.active {
  z-index: 1;
}
.btn-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}
.btn-toolbar .input-group {
  width: auto;
}
.btn-group {
  border-radius: var(--bs-border-radius);
}
.btn-group > :not(.btn-check:first-child) + .btn, .btn-group > .btn-group:not(:first-child) {
  margin-left: calc(var(--bs-border-width) * -1);
}
.btn-group > .btn:not(:last-child):not(.dropdown-toggle), .btn-group > .btn.dropdown-toggle-split:first-child, .btn-group > .btn-group:not(:last-child) > .btn {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.btn-group > .btn:nth-child(n + 3), .btn-group > :not(.btn-check) + .btn, .btn-group > .btn-group:not(:first-child) > .btn {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.dropdown-toggle-split {
  padding-right: 0.5625rem;
  padding-left: 0.5625rem;
}
.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after {
  margin-left: 0;
}
.dropstart .dropdown-toggle-split::before {
  margin-right: 0;
}
.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
  padding-right: 0.375rem;
  padding-left: 0.375rem;
}
.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
  padding-right: 0.75rem;
  padding-left: 0.75rem;
}
.btn-group-vertical {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.btn-group-vertical > .btn, .btn-group-vertical > .btn-group {
  width: 100%;
}
.btn-group-vertical > .btn:not(:first-child), .btn-group-vertical > .btn-group:not(:first-child) {
  margin-top: calc(var(--bs-border-width) * -1);
}
.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), .btn-group-vertical > .btn-group:not(:last-child) > .btn {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn ~ .btn, .btn-group-vertical > .btn-group:not(:first-child) > .btn {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.nav {
  --bs-nav-link-padding-x: 1rem;
  --bs-nav-link-padding-y: 0.5rem;
  --bs-nav-link-font-weight: ;
  --bs-nav-link-color: var(--bs-link-color);
  --bs-nav-link-hover-color: var(--bs-link-hover-color);
  --bs-nav-link-disabled-color: var(--bs-secondary-color);
  display: flex;
  flex-wrap: wrap;
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}
.nav-link {
  display: block;
  padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);
  font-size: var(--bs-nav-link-font-size);
  font-weight: var(--bs-nav-link-font-weight);
  color: var(--bs-nav-link-color);
  text-decoration: none;
  background: none;
  border: 0;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .nav-link {
    transition: none;
  }
}
.nav-link:hover, .nav-link:focus {
  color: var(--bs-nav-link-hover-color);
}
.nav-link:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
}
.nav-link.disabled, .nav-link:disabled {
  color: var(--bs-nav-link-disabled-color);
  pointer-events: none;
  cursor: default;
}
.nav-tabs {
  --bs-nav-tabs-border-width: var(--bs-border-width);
  --bs-nav-tabs-border-color: var(--bs-border-color);
  --bs-nav-tabs-border-radius: var(--bs-border-radius);
  --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);
  --bs-nav-tabs-link-active-color: var(--bs-emphasis-color);
  --bs-nav-tabs-link-active-bg: var(--bs-body-bg);
  --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);
  border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color);
}
.nav-tabs .nav-link {
  margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width));
  border: var(--bs-nav-tabs-border-width) solid transparent;
  border-top-left-radius: var(--bs-nav-tabs-border-radius);
  border-top-right-radius: var(--bs-nav-tabs-border-radius);
}
.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
  isolation: isolate;
  border-color: var(--bs-nav-tabs-link-hover-border-color);
}
.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link {
  color: var(--bs-nav-tabs-link-active-color);
  background-color: var(--bs-nav-tabs-link-active-bg);
  border-color: var(--bs-nav-tabs-link-active-border-color);
}
.nav-tabs .dropdown-menu {
  margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.nav-pills {
  --bs-nav-pills-border-radius: var(--bs-border-radius);
  --bs-nav-pills-link-active-color: #fff;
  --bs-nav-pills-link-active-bg: #2A2A2C;
}
.nav-pills .nav-link {
  border-radius: var(--bs-nav-pills-border-radius);
}
.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
  color: var(--bs-nav-pills-link-active-color);
  background-color: var(--bs-nav-pills-link-active-bg);
}
.nav-underline {
  --bs-nav-underline-gap: 1rem;
  --bs-nav-underline-border-width: 0.125rem;
  --bs-nav-underline-link-active-color: var(--bs-emphasis-color);
  gap: var(--bs-nav-underline-gap);
}
.nav-underline .nav-link {
  padding-right: 0;
  padding-left: 0;
  border-bottom: var(--bs-nav-underline-border-width) solid transparent;
}
.nav-underline .nav-link:hover, .nav-underline .nav-link:focus {
  border-bottom-color: currentcolor;
}
.nav-underline .nav-link.active, .nav-underline .show > .nav-link {
  font-weight: 700;
  color: var(--bs-nav-underline-link-active-color);
  border-bottom-color: currentcolor;
}
.nav-fill > .nav-link, .nav-fill .nav-item {
  flex: 1 1 auto;
  text-align: center;
}
.nav-justified > .nav-link, .nav-justified .nav-item {
  flex-basis: 0;
  flex-grow: 1;
  text-align: center;
}
.nav-fill .nav-item .nav-link, .nav-justified .nav-item .nav-link {
  width: 100%;
}
.tab-content > .tab-pane {
  display: none;
}
.tab-content > .active {
  display: block;
}
.navbar {
  --bs-navbar-padding-x: 0;
  --bs-navbar-padding-y: 0.5rem;
  --bs-navbar-color: rgba(0, 0, 0, 0.6);
  --bs-navbar-hover-color: rgba(0, 0, 0, 0.9);
  --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);
  --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);
  --bs-navbar-brand-padding-y: 0.32421875rem;
  --bs-navbar-brand-margin-end: 1rem;
  --bs-navbar-brand-font-size: 1.171875rem;
  --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);
  --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);
  --bs-navbar-nav-link-padding-x: 0.5rem;
  --bs-navbar-toggler-padding-y: 0.25rem;
  --bs-navbar-toggler-padding-x: 0.75rem;
  --bs-navbar-toggler-font-size: 1.171875rem;
  --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2829, 33, 37, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);
  --bs-navbar-toggler-border-radius: var(--bs-border-radius);
  --bs-navbar-toggler-focus-width: 0.25rem;
  --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x);
}
.navbar > .container, .navbar > .container-fluid, .navbar > .container-sm, .navbar > .container-md, .navbar > .container-lg, .navbar > .container-xl, .navbar > .container-xxl {
  display: flex;
  flex-wrap: inherit;
  align-items: center;
  justify-content: space-between;
}
.navbar-brand {
  padding-top: var(--bs-navbar-brand-padding-y);
  padding-bottom: var(--bs-navbar-brand-padding-y);
  margin-right: var(--bs-navbar-brand-margin-end);
  font-size: var(--bs-navbar-brand-font-size);
  color: var(--bs-navbar-brand-color);
  text-decoration: none;
  white-space: nowrap;
}
.navbar-brand:hover, .navbar-brand:focus {
  color: var(--bs-navbar-brand-hover-color);
}
.navbar-nav {
  --bs-nav-link-padding-x: 0;
  --bs-nav-link-padding-y: 0.5rem;
  --bs-nav-link-font-weight: ;
  --bs-nav-link-color: var(--bs-navbar-color);
  --bs-nav-link-hover-color: var(--bs-navbar-hover-color);
  --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);
  display: flex;
  flex-direction: column;
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}
.navbar-nav .nav-link.active, .navbar-nav .nav-link.show {
  color: var(--bs-navbar-active-color);
}
.navbar-nav .dropdown-menu {
  position: static;
}
.navbar-text {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  color: var(--bs-navbar-color);
}
.navbar-text a, .navbar-text a:hover, .navbar-text a:focus {
  color: var(--bs-navbar-active-color);
}
.navbar-collapse {
  flex-basis: 100%;
  flex-grow: 1;
  align-items: center;
}
.navbar-toggler {
  padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);
  font-size: var(--bs-navbar-toggler-font-size);
  line-height: 1;
  color: var(--bs-navbar-color);
  background-color: transparent;
  border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);
  border-radius: var(--bs-navbar-toggler-border-radius);
  transition: var(--bs-navbar-toggler-transition);
}
@media (prefers-reduced-motion: reduce) {
  .navbar-toggler {
    transition: none;
  }
}
.navbar-toggler:hover {
  text-decoration: none;
}
.navbar-toggler:focus {
  text-decoration: none;
  outline: 0;
  box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width);
}
.navbar-toggler-icon {
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  vertical-align: middle;
  background-image: var(--bs-navbar-toggler-icon-bg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100%;
}
.navbar-nav-scroll {
  max-height: var(--bs-scroll-height, 75vh);
  overflow-y: auto;
}
@media (min-width: 576px) {
  .navbar-expand-sm {
    flex-wrap: nowrap;
    justify-content: flex-start;
  }
  .navbar-expand-sm .navbar-nav {
    flex-direction: row;
  }
  .navbar-expand-sm .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-sm .navbar-nav .nav-link {
    padding-right: var(--bs-navbar-nav-link-padding-x);
    padding-left: var(--bs-navbar-nav-link-padding-x);
  }
  .navbar-expand-sm .navbar-nav-scroll {
    overflow: visible;
  }
  .navbar-expand-sm .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
  }
  .navbar-expand-sm .navbar-toggler {
    display: none;
  }
  .navbar-expand-sm .offcanvas {
    position: static;
    z-index: auto;
    flex-grow: 1;
    width: auto !important;
    height: auto !important;
    visibility: visible !important;
    background-color: transparent !important;
    border: 0 !important;
    transform: none !important;
    transition: none;
  }
  .navbar-expand-sm .offcanvas .offcanvas-header {
    display: none;
  }
  .navbar-expand-sm .offcanvas .offcanvas-body {
    display: flex;
    flex-grow: 0;
    padding: 0;
    overflow-y: visible;
  }
}
@media (min-width: 768px) {
  .navbar-expand-md {
    flex-wrap: nowrap;
    justify-content: flex-start;
  }
  .navbar-expand-md .navbar-nav {
    flex-direction: row;
  }
  .navbar-expand-md .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-md .navbar-nav .nav-link {
    padding-right: var(--bs-navbar-nav-link-padding-x);
    padding-left: var(--bs-navbar-nav-link-padding-x);
  }
  .navbar-expand-md .navbar-nav-scroll {
    overflow: visible;
  }
  .navbar-expand-md .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
  }
  .navbar-expand-md .navbar-toggler {
    display: none;
  }
  .navbar-expand-md .offcanvas {
    position: static;
    z-index: auto;
    flex-grow: 1;
    width: auto !important;
    height: auto !important;
    visibility: visible !important;
    background-color: transparent !important;
    border: 0 !important;
    transform: none !important;
    transition: none;
  }
  .navbar-expand-md .offcanvas .offcanvas-header {
    display: none;
  }
  .navbar-expand-md .offcanvas .offcanvas-body {
    display: flex;
    flex-grow: 0;
    padding: 0;
    overflow-y: visible;
  }
}
@media (min-width: 992px) {
  .navbar-expand-lg {
    flex-wrap: nowrap;
    justify-content: flex-start;
  }
  .navbar-expand-lg .navbar-nav {
    flex-direction: row;
  }
  .navbar-expand-lg .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-lg .navbar-nav .nav-link {
    padding-right: var(--bs-navbar-nav-link-padding-x);
    padding-left: var(--bs-navbar-nav-link-padding-x);
  }
  .navbar-expand-lg .navbar-nav-scroll {
    overflow: visible;
  }
  .navbar-expand-lg .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
  }
  .navbar-expand-lg .navbar-toggler {
    display: none;
  }
  .navbar-expand-lg .offcanvas {
    position: static;
    z-index: auto;
    flex-grow: 1;
    width: auto !important;
    height: auto !important;
    visibility: visible !important;
    background-color: transparent !important;
    border: 0 !important;
    transform: none !important;
    transition: none;
  }
  .navbar-expand-lg .offcanvas .offcanvas-header {
    display: none;
  }
  .navbar-expand-lg .offcanvas .offcanvas-body {
    display: flex;
    flex-grow: 0;
    padding: 0;
    overflow-y: visible;
  }
}
@media (min-width: 1200px) {
  .navbar-expand-xl {
    flex-wrap: nowrap;
    justify-content: flex-start;
  }
  .navbar-expand-xl .navbar-nav {
    flex-direction: row;
  }
  .navbar-expand-xl .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-xl .navbar-nav .nav-link {
    padding-right: var(--bs-navbar-nav-link-padding-x);
    padding-left: var(--bs-navbar-nav-link-padding-x);
  }
  .navbar-expand-xl .navbar-nav-scroll {
    overflow: visible;
  }
  .navbar-expand-xl .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
  }
  .navbar-expand-xl .navbar-toggler {
    display: none;
  }
  .navbar-expand-xl .offcanvas {
    position: static;
    z-index: auto;
    flex-grow: 1;
    width: auto !important;
    height: auto !important;
    visibility: visible !important;
    background-color: transparent !important;
    border: 0 !important;
    transform: none !important;
    transition: none;
  }
  .navbar-expand-xl .offcanvas .offcanvas-header {
    display: none;
  }
  .navbar-expand-xl .offcanvas .offcanvas-body {
    display: flex;
    flex-grow: 0;
    padding: 0;
    overflow-y: visible;
  }
}
@media (min-width: 1400px) {
  .navbar-expand-xxl {
    flex-wrap: nowrap;
    justify-content: flex-start;
  }
  .navbar-expand-xxl .navbar-nav {
    flex-direction: row;
  }
  .navbar-expand-xxl .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-xxl .navbar-nav .nav-link {
    padding-right: var(--bs-navbar-nav-link-padding-x);
    padding-left: var(--bs-navbar-nav-link-padding-x);
  }
  .navbar-expand-xxl .navbar-nav-scroll {
    overflow: visible;
  }
  .navbar-expand-xxl .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
  }
  .navbar-expand-xxl .navbar-toggler {
    display: none;
  }
  .navbar-expand-xxl .offcanvas {
    position: static;
    z-index: auto;
    flex-grow: 1;
    width: auto !important;
    height: auto !important;
    visibility: visible !important;
    background-color: transparent !important;
    border: 0 !important;
    transform: none !important;
    transition: none;
  }
  .navbar-expand-xxl .offcanvas .offcanvas-header {
    display: none;
  }
  .navbar-expand-xxl .offcanvas .offcanvas-body {
    display: flex;
    flex-grow: 0;
    padding: 0;
    overflow-y: visible;
  }
}
.navbar-expand {
  flex-wrap: nowrap;
  justify-content: flex-start;
}
.navbar-expand .navbar-nav {
  flex-direction: row;
}
.navbar-expand .navbar-nav .dropdown-menu {
  position: absolute;
}
.navbar-expand .navbar-nav .nav-link {
  padding-right: var(--bs-navbar-nav-link-padding-x);
  padding-left: var(--bs-navbar-nav-link-padding-x);
}
.navbar-expand .navbar-nav-scroll {
  overflow: visible;
}
.navbar-expand .navbar-collapse {
  display: flex !important;
  flex-basis: auto;
}
.navbar-expand .navbar-toggler {
  display: none;
}
.navbar-expand .offcanvas {
  position: static;
  z-index: auto;
  flex-grow: 1;
  width: auto !important;
  height: auto !important;
  visibility: visible !important;
  background-color: transparent !important;
  border: 0 !important;
  transform: none !important;
  transition: none;
}
.navbar-expand .offcanvas .offcanvas-header {
  display: none;
}
.navbar-expand .offcanvas .offcanvas-body {
  display: flex;
  flex-grow: 0;
  padding: 0;
  overflow-y: visible;
}
.navbar-dark, .navbar[data-bs-theme="dark"] {
  --bs-navbar-color: rgba(255, 255, 255, 0.55);
  --bs-navbar-hover-color: white;
  --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25);
  --bs-navbar-active-color: #fff;
  --bs-navbar-brand-color: #fff;
  --bs-navbar-brand-hover-color: #fff;
  --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);
  --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
[data-bs-theme="dark"] .navbar-toggler-icon {
  --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.card {
  --bs-card-spacer-y: 1rem;
  --bs-card-spacer-x: 1rem;
  --bs-card-title-spacer-y: 0.5rem;
  --bs-card-title-color: ;
  --bs-card-subtitle-color: ;
  --bs-card-border-width: var(--bs-border-width);
  --bs-card-border-color: var(--bs-border-color-translucent);
  --bs-card-border-radius: var(--bs-border-radius);
  --bs-card-box-shadow: ;
  --bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));
  --bs-card-cap-padding-y: 0.5rem;
  --bs-card-cap-padding-x: 1rem;
  --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03);
  --bs-card-cap-color: ;
  --bs-card-height: ;
  --bs-card-color: ;
  --bs-card-bg: var(--bs-body-bg);
  --bs-card-img-overlay-padding: 1rem;
  --bs-card-group-margin: 0.25rem;
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: var(--bs-card-height);
  color: var(--bs-body-color);
  word-wrap: break-word;
  background-color: var(--bs-card-bg);
  background-clip: border-box;
  border: var(--bs-card-border-width) solid var(--bs-card-border-color);
  border-radius: var(--bs-card-border-radius);
}
.card > hr {
  margin-right: 0;
  margin-left: 0;
}
.card > .list-group {
  border-top: inherit;
  border-bottom: inherit;
}
.card > .list-group:first-child {
  border-top-width: 0;
  border-top-left-radius: var(--bs-card-inner-border-radius);
  border-top-right-radius: var(--bs-card-inner-border-radius);
}
.card > .list-group:last-child {
  border-bottom-width: 0;
  border-bottom-right-radius: var(--bs-card-inner-border-radius);
  border-bottom-left-radius: var(--bs-card-inner-border-radius);
}
.card > .card-header + .list-group, .card > .list-group + .card-footer {
  border-top: 0;
}
.card-body {
  flex: 1 1 auto;
  padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);
  color: var(--bs-card-color);
}
.card-title {
  margin-bottom: var(--bs-card-title-spacer-y);
  color: var(--bs-card-title-color);
}
.card-subtitle {
  margin-top: calc(-.5 * var(--bs-card-title-spacer-y));
  margin-bottom: 0;
  color: var(--bs-card-subtitle-color);
}
.card-text:last-child {
  margin-bottom: 0;
}
.card-link + .card-link {
  margin-left: var(--bs-card-spacer-x);
}
.card-header {
  padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
  margin-bottom: 0;
  color: var(--bs-card-cap-color);
  background-color: var(--bs-card-cap-bg);
  border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color);
}
.card-header:first-child {
  border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0;
}
.card-footer {
  padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
  color: var(--bs-card-cap-color);
  background-color: var(--bs-card-cap-bg);
  border-top: var(--bs-card-border-width) solid var(--bs-card-border-color);
}
.card-footer:last-child {
  border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius);
}
.card-header-tabs {
  margin-right: calc(-.5 * var(--bs-card-cap-padding-x));
  margin-bottom: calc(-1 * var(--bs-card-cap-padding-y));
  margin-left: calc(-.5 * var(--bs-card-cap-padding-x));
  border-bottom: 0;
}
.card-header-tabs .nav-link.active {
  background-color: var(--bs-card-bg);
  border-bottom-color: var(--bs-card-bg);
}
.card-header-pills {
  margin-right: calc(-.5 * var(--bs-card-cap-padding-x));
  margin-left: calc(-.5 * var(--bs-card-cap-padding-x));
}
.card-img-overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: var(--bs-card-img-overlay-padding);
  border-radius: var(--bs-card-inner-border-radius);
}
.card-img, .card-img-top, .card-img-bottom {
  width: 100%;
}
.card-img, .card-img-top {
  border-top-left-radius: var(--bs-card-inner-border-radius);
  border-top-right-radius: var(--bs-card-inner-border-radius);
}
.card-img, .card-img-bottom {
  border-bottom-right-radius: var(--bs-card-inner-border-radius);
  border-bottom-left-radius: var(--bs-card-inner-border-radius);
}
.card-group > .card {
  margin-bottom: var(--bs-card-group-margin);
}
@media (min-width: 576px) {
  .card-group {
    display: flex;
    flex-flow: row wrap;
  }
  .card-group > .card {
    flex: 1 0 0%;
    margin-bottom: 0;
  }
  .card-group > .card + .card {
    margin-left: 0;
    border-left: 0;
  }
  .card-group > .card:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
  }
  .card-group > .card:not(:last-child) .card-img-top, .card-group > .card:not(:last-child) .card-header {
    border-top-right-radius: 0;
  }
  .card-group > .card:not(:last-child) .card-img-bottom, .card-group > .card:not(:last-child) .card-footer {
    border-bottom-right-radius: 0;
  }
  .card-group > .card:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
  }
  .card-group > .card:not(:first-child) .card-img-top, .card-group > .card:not(:first-child) .card-header {
    border-top-left-radius: 0;
  }
  .card-group > .card:not(:first-child) .card-img-bottom, .card-group > .card:not(:first-child) .card-footer {
    border-bottom-left-radius: 0;
  }
}
.accordion {
  --bs-accordion-color: var(--bs-body-color);
  --bs-accordion-bg: var(--bs-body-bg);
  --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;
  --bs-accordion-border-color: var(--bs-border-color);
  --bs-accordion-border-width: var(--bs-border-width);
  --bs-accordion-border-radius: var(--bs-border-radius);
  --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));
  --bs-accordion-btn-padding-x: 1.25rem;
  --bs-accordion-btn-padding-y: 1rem;
  --bs-accordion-btn-color: var(--bs-body-color);
  --bs-accordion-btn-bg: var(--bs-accordion-bg);
  --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%231d2125' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");
  --bs-accordion-btn-icon-width: 1.25rem;
  --bs-accordion-btn-icon-transform: rotate(-180deg);
  --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;
  --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23111112' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");
  --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
  --bs-accordion-body-padding-x: 1.25rem;
  --bs-accordion-body-padding-y: 1rem;
  --bs-accordion-active-color: var(--bs-primary-text-emphasis);
  --bs-accordion-active-bg: var(--bs-primary-bg-subtle);
}
.accordion-button {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);
  font-size: 0.9375rem;
  color: var(--bs-accordion-btn-color);
  text-align: left;
  background-color: var(--bs-accordion-btn-bg);
  border: 0;
  border-radius: 0;
  overflow-anchor: none;
  transition: var(--bs-accordion-transition);
}
@media (prefers-reduced-motion: reduce) {
  .accordion-button {
    transition: none;
  }
}
.accordion-button:not(.collapsed) {
  color: var(--bs-accordion-active-color);
  background-color: var(--bs-accordion-active-bg);
  box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color);
}
.accordion-button:not(.collapsed)::after {
  background-image: var(--bs-accordion-btn-active-icon);
  transform: var(--bs-accordion-btn-icon-transform);
}
.accordion-button::after {
  flex-shrink: 0;
  width: var(--bs-accordion-btn-icon-width);
  height: var(--bs-accordion-btn-icon-width);
  margin-left: auto;
  content: "";
  background-image: var(--bs-accordion-btn-icon);
  background-repeat: no-repeat;
  background-size: var(--bs-accordion-btn-icon-width);
  transition: var(--bs-accordion-btn-icon-transition);
}
@media (prefers-reduced-motion: reduce) {
  .accordion-button::after {
    transition: none;
  }
}
.accordion-button:hover {
  z-index: 2;
}
.accordion-button:focus {
  z-index: 3;
  outline: 0;
  box-shadow: var(--bs-accordion-btn-focus-box-shadow);
}
.accordion-header {
  margin-bottom: 0;
}
.accordion-item {
  color: var(--bs-accordion-color);
  background-color: var(--bs-accordion-bg);
  border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);
}
.accordion-item:first-of-type {
  border-top-left-radius: var(--bs-accordion-border-radius);
  border-top-right-radius: var(--bs-accordion-border-radius);
}
.accordion-item:first-of-type > .accordion-header .accordion-button {
  border-top-left-radius: var(--bs-accordion-inner-border-radius);
  border-top-right-radius: var(--bs-accordion-inner-border-radius);
}
.accordion-item:not(:first-of-type) {
  border-top: 0;
}
.accordion-item:last-of-type {
  border-bottom-right-radius: var(--bs-accordion-border-radius);
  border-bottom-left-radius: var(--bs-accordion-border-radius);
}
.accordion-item:last-of-type > .accordion-header .accordion-button.collapsed {
  border-bottom-right-radius: var(--bs-accordion-inner-border-radius);
  border-bottom-left-radius: var(--bs-accordion-inner-border-radius);
}
.accordion-item:last-of-type > .accordion-collapse {
  border-bottom-right-radius: var(--bs-accordion-border-radius);
  border-bottom-left-radius: var(--bs-accordion-border-radius);
}
.accordion-body {
  padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x);
}
.accordion-flush > .accordion-item {
  border-right: 0;
  border-left: 0;
  border-radius: 0;
}
.accordion-flush > .accordion-item:first-child {
  border-top: 0;
}
.accordion-flush > .accordion-item:last-child {
  border-bottom: 0;
}
.accordion-flush > .accordion-item > .accordion-header .accordion-button, .accordion-flush > .accordion-item > .accordion-header .accordion-button.collapsed {
  border-radius: 0;
}
.accordion-flush > .accordion-item > .accordion-collapse {
  border-radius: 0;
}
[data-bs-theme="dark"] .accordion-button::after {
  --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%237f7f80'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%237f7f80'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}
.breadcrumb {
  --bs-breadcrumb-padding-x: 0;
  --bs-breadcrumb-padding-y: 0.5rem;
  --bs-breadcrumb-margin-bottom: 0;
  --bs-breadcrumb-bg: transparent;
  --bs-breadcrumb-border-radius: ;
  --bs-breadcrumb-divider-color: var(--bs-secondary-color);
  --bs-breadcrumb-item-padding-x: 0.5rem;
  --bs-breadcrumb-item-active-color: var(--bs-secondary-color);
  display: flex;
  flex-wrap: wrap;
  padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);
  margin-bottom: var(--bs-breadcrumb-margin-bottom);
  font-size: var(--bs-breadcrumb-font-size);
  list-style: none;
  background-color: var(--bs-breadcrumb-bg);
  border-radius: var(--bs-breadcrumb-border-radius);
}
.breadcrumb-item + .breadcrumb-item {
  padding-left: var(--bs-breadcrumb-item-padding-x);
}
.breadcrumb-item + .breadcrumb-item::before {
  float: left;
  padding-right: var(--bs-breadcrumb-item-padding-x);
  color: var(--bs-breadcrumb-divider-color);
  content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */;
}
.breadcrumb-item.active {
  color: var(--bs-breadcrumb-item-active-color);
}
.pagination {
  --bs-pagination-padding-x: 0.75rem;
  --bs-pagination-padding-y: 0.375rem;
  --bs-pagination-font-size: 0.9375rem;
  --bs-pagination-color: var(--bs-link-color);
  --bs-pagination-bg: var(--bs-body-bg);
  --bs-pagination-border-width: var(--bs-border-width);
  --bs-pagination-border-color: var(--bs-border-color);
  --bs-pagination-border-radius: var(--bs-border-radius);
  --bs-pagination-hover-color: var(--bs-link-hover-color);
  --bs-pagination-hover-bg: var(--bs-tertiary-bg);
  --bs-pagination-hover-border-color: var(--bs-border-color);
  --bs-pagination-focus-color: var(--bs-link-hover-color);
  --bs-pagination-focus-bg: var(--bs-secondary-bg);
  --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
  --bs-pagination-active-color: #fff;
  --bs-pagination-active-bg: #2A2A2C;
  --bs-pagination-active-border-color: #2A2A2C;
  --bs-pagination-disabled-color: var(--bs-secondary-color);
  --bs-pagination-disabled-bg: var(--bs-secondary-bg);
  --bs-pagination-disabled-border-color: var(--bs-border-color);
  display: flex;
  padding-left: 0;
  list-style: none;
}
.page-link {
  position: relative;
  display: block;
  padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);
  font-size: var(--bs-pagination-font-size);
  color: var(--bs-pagination-color);
  text-decoration: none;
  background-color: var(--bs-pagination-bg);
  border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .page-link {
    transition: none;
  }
}
.page-link:hover {
  z-index: 2;
  color: var(--bs-pagination-hover-color);
  background-color: var(--bs-pagination-hover-bg);
  border-color: var(--bs-pagination-hover-border-color);
}
.page-link:focus {
  z-index: 3;
  color: var(--bs-pagination-focus-color);
  background-color: var(--bs-pagination-focus-bg);
  outline: 0;
  box-shadow: var(--bs-pagination-focus-box-shadow);
}
.page-link.active, .active > .page-link {
  z-index: 3;
  color: var(--bs-pagination-active-color);
  background-color: var(--bs-pagination-active-bg);
  border-color: var(--bs-pagination-active-border-color);
}
.page-link.disabled, .disabled > .page-link {
  color: var(--bs-pagination-disabled-color);
  pointer-events: none;
  background-color: var(--bs-pagination-disabled-bg);
  border-color: var(--bs-pagination-disabled-border-color);
}
.page-item:not(:first-child) .page-link {
  margin-left: calc(var(--bs-border-width) * -1);
}
.page-item:first-child .page-link {
  border-top-left-radius: var(--bs-pagination-border-radius);
  border-bottom-left-radius: var(--bs-pagination-border-radius);
}
.page-item:last-child .page-link {
  border-top-right-radius: var(--bs-pagination-border-radius);
  border-bottom-right-radius: var(--bs-pagination-border-radius);
}
.pagination-lg {
  --bs-pagination-padding-x: 1.5rem;
  --bs-pagination-padding-y: 0.75rem;
  --bs-pagination-font-size: 1.171875rem;
  --bs-pagination-border-radius: var(--bs-border-radius-lg);
}
.pagination-sm {
  --bs-pagination-padding-x: 0.5rem;
  --bs-pagination-padding-y: 0.25rem;
  --bs-pagination-font-size: 0.8203125rem;
  --bs-pagination-border-radius: var(--bs-border-radius-sm);
}
.badge {
  --bs-badge-padding-x: 0.65em;
  --bs-badge-padding-y: 0.35em;
  --bs-badge-font-size: 0.75em;
  --bs-badge-font-weight: 700;
  --bs-badge-color: #fff;
  --bs-badge-border-radius: var(--bs-border-radius);
  display: inline-block;
  padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x);
  font-size: var(--bs-badge-font-size);
  font-weight: var(--bs-badge-font-weight);
  line-height: 1;
  color: var(--bs-badge-color);
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: var(--bs-badge-border-radius);
}
.badge:empty {
  display: none;
}
.btn .badge {
  position: relative;
  top: -1px;
}
.alert {
  --bs-alert-bg: transparent;
  --bs-alert-padding-x: 1rem;
  --bs-alert-padding-y: 1rem;
  --bs-alert-margin-bottom: 1rem;
  --bs-alert-color: inherit;
  --bs-alert-border-color: transparent;
  --bs-alert-border: 0 solid var(--bs-alert-border-color);
  --bs-alert-border-radius: var(--bs-border-radius);
  --bs-alert-link-color: inherit;
  position: relative;
  padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x);
  margin-bottom: var(--bs-alert-margin-bottom);
  color: var(--bs-alert-color);
  background-color: var(--bs-alert-bg);
  border: var(--bs-alert-border);
  border-radius: var(--bs-alert-border-radius);
}
.alert-heading {
  color: inherit;
}
.alert-link {
  font-weight: 700;
  color: var(--bs-alert-link-color);
}
.alert-dismissible {
  padding-right: 3rem;
}
.alert-dismissible .btn-close {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  padding: 1.25rem 1rem;
}
.alert-primary {
  --bs-alert-color: var(--bs-primary-text-emphasis);
  --bs-alert-bg: var(--bs-primary-bg-subtle);
  --bs-alert-border-color: var(--bs-primary-border-subtle);
  --bs-alert-link-color: var(--bs-primary-text-emphasis);
}
.alert-secondary {
  --bs-alert-color: var(--bs-secondary-text-emphasis);
  --bs-alert-bg: var(--bs-secondary-bg-subtle);
  --bs-alert-border-color: var(--bs-secondary-border-subtle);
  --bs-alert-link-color: var(--bs-secondary-text-emphasis);
}
.alert-success {
  --bs-alert-color: var(--bs-success-text-emphasis);
  --bs-alert-bg: var(--bs-success-bg-subtle);
  --bs-alert-border-color: var(--bs-success-border-subtle);
  --bs-alert-link-color: var(--bs-success-text-emphasis);
}
.alert-info {
  --bs-alert-color: var(--bs-info-text-emphasis);
  --bs-alert-bg: var(--bs-info-bg-subtle);
  --bs-alert-border-color: var(--bs-info-border-subtle);
  --bs-alert-link-color: var(--bs-info-text-emphasis);
}
.alert-warning {
  --bs-alert-color: var(--bs-warning-text-emphasis);
  --bs-alert-bg: var(--bs-warning-bg-subtle);
  --bs-alert-border-color: var(--bs-warning-border-subtle);
  --bs-alert-link-color: var(--bs-warning-text-emphasis);
}
.alert-danger {
  --bs-alert-color: var(--bs-danger-text-emphasis);
  --bs-alert-bg: var(--bs-danger-bg-subtle);
  --bs-alert-border-color: var(--bs-danger-border-subtle);
  --bs-alert-link-color: var(--bs-danger-text-emphasis);
}
@keyframes progress-bar-stripes {
  0% {
    background-position-x: 1rem;
  }
}
.progress, .progress-stacked {
  --bs-progress-height: 1rem;
  --bs-progress-font-size: 0.703125rem;
  --bs-progress-bg: var(--bs-secondary-bg);
  --bs-progress-border-radius: var(--bs-border-radius);
  --bs-progress-box-shadow: var(--bs-box-shadow-inset);
  --bs-progress-bar-color: #fff;
  --bs-progress-bar-bg: #2A2A2C;
  --bs-progress-bar-transition: width 0.6s ease;
  display: flex;
  height: var(--bs-progress-height);
  overflow: hidden;
  font-size: var(--bs-progress-font-size);
  background-color: var(--bs-progress-bg);
  border-radius: var(--bs-progress-border-radius);
}
.progress-bar {
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  color: var(--bs-progress-bar-color);
  text-align: center;
  white-space: nowrap;
  background-color: var(--bs-progress-bar-bg);
  transition: var(--bs-progress-bar-transition);
}
@media (prefers-reduced-motion: reduce) {
  .progress-bar {
    transition: none;
  }
}
.progress-bar-striped {
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-size: var(--bs-progress-height) var(--bs-progress-height);
}
.progress-stacked > .progress {
  overflow: visible;
}
.progress-stacked > .progress > .progress-bar {
  width: 100%;
}
.progress-bar-animated {
  animation: 1s linear infinite progress-bar-stripes;
}
@media (prefers-reduced-motion: reduce) {
  .progress-bar-animated {
    animation: none;
  }
}
.list-group {
  --bs-list-group-color: var(--bs-body-color);
  --bs-list-group-bg: var(--bs-body-bg);
  --bs-list-group-border-color: var(--bs-border-color);
  --bs-list-group-border-width: var(--bs-border-width);
  --bs-list-group-border-radius: var(--bs-border-radius);
  --bs-list-group-item-padding-x: 1rem;
  --bs-list-group-item-padding-y: 0.5rem;
  --bs-list-group-action-color: var(--bs-secondary-color);
  --bs-list-group-action-hover-color: var(--bs-emphasis-color);
  --bs-list-group-action-hover-bg: var(--bs-tertiary-bg);
  --bs-list-group-action-active-color: var(--bs-body-color);
  --bs-list-group-action-active-bg: var(--bs-secondary-bg);
  --bs-list-group-disabled-color: var(--bs-secondary-color);
  --bs-list-group-disabled-bg: var(--bs-body-bg);
  --bs-list-group-active-color: #fff;
  --bs-list-group-active-bg: #2A2A2C;
  --bs-list-group-active-border-color: #2A2A2C;
  display: flex;
  flex-direction: column;
  padding-left: 0;
  margin-bottom: 0;
  border-radius: var(--bs-list-group-border-radius);
}
.list-group-numbered {
  list-style-type: none;
  counter-reset: section;
}
.list-group-numbered > .list-group-item::before {
  content: counters(section, ".") ". ";
  counter-increment: section;
}
.list-group-item-action {
  width: 100%;
  color: var(--bs-list-group-action-color);
  text-align: inherit;
}
.list-group-item-action:hover, .list-group-item-action:focus {
  z-index: 1;
  color: var(--bs-list-group-action-hover-color);
  text-decoration: none;
  background-color: var(--bs-list-group-action-hover-bg);
}
.list-group-item-action:active {
  color: var(--bs-list-group-action-active-color);
  background-color: var(--bs-list-group-action-active-bg);
}
.list-group-item {
  position: relative;
  display: block;
  padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);
  color: var(--bs-list-group-color);
  text-decoration: none;
  background-color: var(--bs-list-group-bg);
  border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color);
}
.list-group-item:first-child {
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
}
.list-group-item:last-child {
  border-bottom-right-radius: inherit;
  border-bottom-left-radius: inherit;
}
.list-group-item.disabled, .list-group-item:disabled {
  color: var(--bs-list-group-disabled-color);
  pointer-events: none;
  background-color: var(--bs-list-group-disabled-bg);
}
.list-group-item.active {
  z-index: 2;
  color: var(--bs-list-group-active-color);
  background-color: var(--bs-list-group-active-bg);
  border-color: var(--bs-list-group-active-border-color);
}
.list-group-item + .list-group-item {
  border-top-width: 0;
}
.list-group-item + .list-group-item.active {
  margin-top: calc(-1 * var(--bs-list-group-border-width));
  border-top-width: var(--bs-list-group-border-width);
}
.list-group-horizontal {
  flex-direction: row;
}
.list-group-horizontal > .list-group-item:first-child:not(:last-child) {
  border-bottom-left-radius: var(--bs-list-group-border-radius);
  border-top-right-radius: 0;
}
.list-group-horizontal > .list-group-item:last-child:not(:first-child) {
  border-top-right-radius: var(--bs-list-group-border-radius);
  border-bottom-left-radius: 0;
}
.list-group-horizontal > .list-group-item.active {
  margin-top: 0;
}
.list-group-horizontal > .list-group-item + .list-group-item {
  border-top-width: var(--bs-list-group-border-width);
  border-left-width: 0;
}
.list-group-horizontal > .list-group-item + .list-group-item.active {
  margin-left: calc(-1 * var(--bs-list-group-border-width));
  border-left-width: var(--bs-list-group-border-width);
}
@media (min-width: 576px) {
  .list-group-horizontal-sm {
    flex-direction: row;
  }
  .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) {
    border-bottom-left-radius: var(--bs-list-group-border-radius);
    border-top-right-radius: 0;
  }
  .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) {
    border-top-right-radius: var(--bs-list-group-border-radius);
    border-bottom-left-radius: 0;
  }
  .list-group-horizontal-sm > .list-group-item.active {
    margin-top: 0;
  }
  .list-group-horizontal-sm > .list-group-item + .list-group-item {
    border-top-width: var(--bs-list-group-border-width);
    border-left-width: 0;
  }
  .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
    margin-left: calc(-1 * var(--bs-list-group-border-width));
    border-left-width: var(--bs-list-group-border-width);
  }
}
@media (min-width: 768px) {
  .list-group-horizontal-md {
    flex-direction: row;
  }
  .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) {
    border-bottom-left-radius: var(--bs-list-group-border-radius);
    border-top-right-radius: 0;
  }
  .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) {
    border-top-right-radius: var(--bs-list-group-border-radius);
    border-bottom-left-radius: 0;
  }
  .list-group-horizontal-md > .list-group-item.active {
    margin-top: 0;
  }
  .list-group-horizontal-md > .list-group-item + .list-group-item {
    border-top-width: var(--bs-list-group-border-width);
    border-left-width: 0;
  }
  .list-group-horizontal-md > .list-group-item + .list-group-item.active {
    margin-left: calc(-1 * var(--bs-list-group-border-width));
    border-left-width: var(--bs-list-group-border-width);
  }
}
@media (min-width: 992px) {
  .list-group-horizontal-lg {
    flex-direction: row;
  }
  .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) {
    border-bottom-left-radius: var(--bs-list-group-border-radius);
    border-top-right-radius: 0;
  }
  .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) {
    border-top-right-radius: var(--bs-list-group-border-radius);
    border-bottom-left-radius: 0;
  }
  .list-group-horizontal-lg > .list-group-item.active {
    margin-top: 0;
  }
  .list-group-horizontal-lg > .list-group-item + .list-group-item {
    border-top-width: var(--bs-list-group-border-width);
    border-left-width: 0;
  }
  .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
    margin-left: calc(-1 * var(--bs-list-group-border-width));
    border-left-width: var(--bs-list-group-border-width);
  }
}
@media (min-width: 1200px) {
  .list-group-horizontal-xl {
    flex-direction: row;
  }
  .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) {
    border-bottom-left-radius: var(--bs-list-group-border-radius);
    border-top-right-radius: 0;
  }
  .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) {
    border-top-right-radius: var(--bs-list-group-border-radius);
    border-bottom-left-radius: 0;
  }
  .list-group-horizontal-xl > .list-group-item.active {
    margin-top: 0;
  }
  .list-group-horizontal-xl > .list-group-item + .list-group-item {
    border-top-width: var(--bs-list-group-border-width);
    border-left-width: 0;
  }
  .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
    margin-left: calc(-1 * var(--bs-list-group-border-width));
    border-left-width: var(--bs-list-group-border-width);
  }
}
@media (min-width: 1400px) {
  .list-group-horizontal-xxl {
    flex-direction: row;
  }
  .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) {
    border-bottom-left-radius: var(--bs-list-group-border-radius);
    border-top-right-radius: 0;
  }
  .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) {
    border-top-right-radius: var(--bs-list-group-border-radius);
    border-bottom-left-radius: 0;
  }
  .list-group-horizontal-xxl > .list-group-item.active {
    margin-top: 0;
  }
  .list-group-horizontal-xxl > .list-group-item + .list-group-item {
    border-top-width: var(--bs-list-group-border-width);
    border-left-width: 0;
  }
  .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {
    margin-left: calc(-1 * var(--bs-list-group-border-width));
    border-left-width: var(--bs-list-group-border-width);
  }
}
.list-group-flush {
  border-radius: 0;
}
.list-group-flush > .list-group-item {
  border-width: 0 0 var(--bs-list-group-border-width);
}
.list-group-flush > .list-group-item:last-child {
  border-bottom-width: 0;
}
.list-group-item-primary {
  --bs-list-group-color: var(--bs-primary-text-emphasis);
  --bs-list-group-bg: var(--bs-primary-bg-subtle);
  --bs-list-group-border-color: var(--bs-primary-border-subtle);
  --bs-list-group-action-hover-color: var(--bs-emphasis-color);
  --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);
  --bs-list-group-action-active-color: var(--bs-emphasis-color);
  --bs-list-group-action-active-bg: var(--bs-primary-border-subtle);
  --bs-list-group-active-color: var(--bs-primary-bg-subtle);
  --bs-list-group-active-bg: var(--bs-primary-text-emphasis);
  --bs-list-group-active-border-color: var(--bs-primary-text-emphasis);
}
.list-group-item-secondary {
  --bs-list-group-color: var(--bs-secondary-text-emphasis);
  --bs-list-group-bg: var(--bs-secondary-bg-subtle);
  --bs-list-group-border-color: var(--bs-secondary-border-subtle);
  --bs-list-group-action-hover-color: var(--bs-emphasis-color);
  --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);
  --bs-list-group-action-active-color: var(--bs-emphasis-color);
  --bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);
  --bs-list-group-active-color: var(--bs-secondary-bg-subtle);
  --bs-list-group-active-bg: var(--bs-secondary-text-emphasis);
  --bs-list-group-active-border-color: var(--bs-secondary-text-emphasis);
}
.list-group-item-success {
  --bs-list-group-color: var(--bs-success-text-emphasis);
  --bs-list-group-bg: var(--bs-success-bg-subtle);
  --bs-list-group-border-color: var(--bs-success-border-subtle);
  --bs-list-group-action-hover-color: var(--bs-emphasis-color);
  --bs-list-group-action-hover-bg: var(--bs-success-border-subtle);
  --bs-list-group-action-active-color: var(--bs-emphasis-color);
  --bs-list-group-action-active-bg: var(--bs-success-border-subtle);
  --bs-list-group-active-color: var(--bs-success-bg-subtle);
  --bs-list-group-active-bg: var(--bs-success-text-emphasis);
  --bs-list-group-active-border-color: var(--bs-success-text-emphasis);
}
.list-group-item-info {
  --bs-list-group-color: var(--bs-info-text-emphasis);
  --bs-list-group-bg: var(--bs-info-bg-subtle);
  --bs-list-group-border-color: var(--bs-info-border-subtle);
  --bs-list-group-action-hover-color: var(--bs-emphasis-color);
  --bs-list-group-action-hover-bg: var(--bs-info-border-subtle);
  --bs-list-group-action-active-color: var(--bs-emphasis-color);
  --bs-list-group-action-active-bg: var(--bs-info-border-subtle);
  --bs-list-group-active-color: var(--bs-info-bg-subtle);
  --bs-list-group-active-bg: var(--bs-info-text-emphasis);
  --bs-list-group-active-border-color: var(--bs-info-text-emphasis);
}
.list-group-item-warning {
  --bs-list-group-color: var(--bs-warning-text-emphasis);
  --bs-list-group-bg: var(--bs-warning-bg-subtle);
  --bs-list-group-border-color: var(--bs-warning-border-subtle);
  --bs-list-group-action-hover-color: var(--bs-emphasis-color);
  --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);
  --bs-list-group-action-active-color: var(--bs-emphasis-color);
  --bs-list-group-action-active-bg: var(--bs-warning-border-subtle);
  --bs-list-group-active-color: var(--bs-warning-bg-subtle);
  --bs-list-group-active-bg: var(--bs-warning-text-emphasis);
  --bs-list-group-active-border-color: var(--bs-warning-text-emphasis);
}
.list-group-item-danger {
  --bs-list-group-color: var(--bs-danger-text-emphasis);
  --bs-list-group-bg: var(--bs-danger-bg-subtle);
  --bs-list-group-border-color: var(--bs-danger-border-subtle);
  --bs-list-group-action-hover-color: var(--bs-emphasis-color);
  --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);
  --bs-list-group-action-active-color: var(--bs-emphasis-color);
  --bs-list-group-action-active-bg: var(--bs-danger-border-subtle);
  --bs-list-group-active-color: var(--bs-danger-bg-subtle);
  --bs-list-group-active-bg: var(--bs-danger-text-emphasis);
  --bs-list-group-active-border-color: var(--bs-danger-text-emphasis);
}
.btn-close {
  --bs-btn-close-color: #000;
  --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");
  --bs-btn-close-opacity: 0.5;
  --bs-btn-close-hover-opacity: 0.75;
  --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
  --bs-btn-close-focus-opacity: 1;
  --bs-btn-close-disabled-opacity: 0.25;
  --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);
  box-sizing: content-box;
  width: 1em;
  height: 1em;
  padding: 0.25em 0.25em;
  color: var(--bs-btn-close-color);
  background: transparent var(--bs-btn-close-bg) center / 1em auto no-repeat;
  border: 0;
  border-radius: 0.5rem;
  opacity: var(--bs-btn-close-opacity);
}
.btn-close:hover {
  color: var(--bs-btn-close-color);
  text-decoration: none;
  opacity: var(--bs-btn-close-hover-opacity);
}
.btn-close:focus {
  outline: 0;
  box-shadow: var(--bs-btn-close-focus-shadow);
  opacity: var(--bs-btn-close-focus-opacity);
}
.btn-close:disabled, .btn-close.disabled {
  pointer-events: none;
  user-select: none;
  opacity: var(--bs-btn-close-disabled-opacity);
}
.btn-close-white {
  filter: var(--bs-btn-close-white-filter);
}
[data-bs-theme="dark"] .btn-close {
  filter: var(--bs-btn-close-white-filter);
}
.toast {
  --bs-toast-zindex: 1090;
  --bs-toast-padding-x: 0.75rem;
  --bs-toast-padding-y: 0.5rem;
  --bs-toast-spacing: 1.5rem;
  --bs-toast-max-width: 350px;
  --bs-toast-font-size: 0.875rem;
  --bs-toast-color: #fff;
  --bs-toast-bg: rgba(29, 33, 37, 0.95);
  --bs-toast-border-width: var(--bs-border-width);
  --bs-toast-border-color: var(--bs-border-color-translucent);
  --bs-toast-border-radius: var(--bs-border-radius);
  --bs-toast-box-shadow: var(--bs-box-shadow);
  --bs-toast-header-color: #f8f9fa;
  --bs-toast-header-bg: rgba(255, 255, 255, 0.1);
  --bs-toast-header-border-color: var(--bs-border-color-translucent);
  width: var(--bs-toast-max-width);
  max-width: 100%;
  font-size: var(--bs-toast-font-size);
  color: var(--bs-toast-color);
  pointer-events: auto;
  background-color: var(--bs-toast-bg);
  background-clip: padding-box;
  border: var(--bs-toast-border-width) solid var(--bs-toast-border-color);
  box-shadow: var(--bs-toast-box-shadow);
  border-radius: var(--bs-toast-border-radius);
}
.toast.showing {
  opacity: 0;
}
.toast:not(.show) {
  display: none;
}
.toast-container {
  --bs-toast-zindex: 1090;
  position: absolute;
  z-index: var(--bs-toast-zindex);
  width: max-content;
  max-width: 100%;
  pointer-events: none;
}
.toast-container > :not(:last-child) {
  margin-bottom: var(--bs-toast-spacing);
}
.toast-header {
  display: flex;
  align-items: center;
  padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x);
  color: var(--bs-toast-header-color);
  background-color: var(--bs-toast-header-bg);
  background-clip: padding-box;
  border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);
  border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));
  border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));
}
.toast-header .btn-close {
  margin-right: calc(-.5 * var(--bs-toast-padding-x));
  margin-left: var(--bs-toast-padding-x);
}
.toast-body {
  padding: var(--bs-toast-padding-x);
  word-wrap: break-word;
}
.modal {
  --bs-modal-zindex: 1055;
  --bs-modal-width: 500px;
  --bs-modal-padding: 1rem;
  --bs-modal-margin: 0.5rem;
  --bs-modal-color: ;
  --bs-modal-bg: var(--bs-body-bg);
  --bs-modal-border-color: var(--bs-border-color-translucent);
  --bs-modal-border-width: var(--bs-border-width);
  --bs-modal-border-radius: var(--bs-border-radius-lg);
  --bs-modal-box-shadow: var(--bs-box-shadow-sm);
  --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));
  --bs-modal-header-padding-x: 1rem;
  --bs-modal-header-padding-y: 1rem;
  --bs-modal-header-padding: 1rem 1rem;
  --bs-modal-header-border-color: var(--bs-border-color);
  --bs-modal-header-border-width: var(--bs-border-width);
  --bs-modal-title-line-height: 1.5;
  --bs-modal-footer-gap: 0.5rem;
  --bs-modal-footer-bg: ;
  --bs-modal-footer-border-color: var(--bs-border-color);
  --bs-modal-footer-border-width: var(--bs-border-width);
  position: fixed;
  top: 0;
  left: 0;
  z-index: var(--bs-modal-zindex);
  display: none;
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  outline: 0;
}
.modal-dialog {
  position: relative;
  width: auto;
  margin: var(--bs-modal-margin);
  pointer-events: none;
}
.modal.fade .modal-dialog {
  transition: transform 0.3s ease-out;
  transform: translate(0, -50px);
}
@media (prefers-reduced-motion: reduce) {
  .modal.fade .modal-dialog {
    transition: none;
  }
}
.modal.show .modal-dialog {
  transform: none;
}
.modal.modal-static .modal-dialog {
  transform: scale(1.02);
}
.modal-dialog-scrollable {
  height: calc(100% - var(--bs-modal-margin) * 2);
}
.modal-dialog-scrollable .modal-content {
  max-height: 100%;
  overflow: hidden;
}
.modal-dialog-scrollable .modal-body {
  overflow-y: auto;
}
.modal-dialog-centered {
  display: flex;
  align-items: center;
  min-height: calc(100% - var(--bs-modal-margin) * 2);
}
.modal-content {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  color: var(--bs-modal-color);
  pointer-events: auto;
  background-color: var(--bs-modal-bg);
  background-clip: padding-box;
  border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);
  border-radius: var(--bs-modal-border-radius);
  outline: 0;
}
.modal-backdrop {
  --bs-backdrop-zindex: 1050;
  --bs-backdrop-bg: #000;
  --bs-backdrop-opacity: 0.5;
  position: fixed;
  top: 0;
  left: 0;
  z-index: var(--bs-backdrop-zindex);
  width: 100vw;
  height: 100vh;
  background-color: var(--bs-backdrop-bg);
}
.modal-backdrop.fade {
  opacity: 0;
}
.modal-backdrop.show {
  opacity: var(--bs-backdrop-opacity);
}
.modal-header {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  padding: var(--bs-modal-header-padding);
  border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);
  border-top-left-radius: var(--bs-modal-inner-border-radius);
  border-top-right-radius: var(--bs-modal-inner-border-radius);
}
.modal-header .btn-close {
  padding: calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);
  margin: calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto;
}
.modal-title {
  margin-bottom: 0;
  line-height: var(--bs-modal-title-line-height);
}
.modal-body {
  position: relative;
  flex: 1 1 auto;
  padding: var(--bs-modal-padding);
}
.modal-footer {
  display: flex;
  flex-shrink: 0;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);
  background-color: var(--bs-modal-footer-bg);
  border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);
  border-bottom-right-radius: var(--bs-modal-inner-border-radius);
  border-bottom-left-radius: var(--bs-modal-inner-border-radius);
}
.modal-footer > * {
  margin: calc(var(--bs-modal-footer-gap) * .5);
}
@media (min-width: 576px) {
  .modal {
    --bs-modal-margin: 1.75rem;
    --bs-modal-box-shadow: var(--bs-box-shadow);
  }
  .modal-dialog {
    max-width: var(--bs-modal-width);
    margin-right: auto;
    margin-left: auto;
  }
  .modal-sm {
    --bs-modal-width: 300px;
  }
}
@media (min-width: 992px) {
  .modal-lg, .modal-xl {
    --bs-modal-width: 800px;
  }
}
@media (min-width: 1200px) {
  .modal-xl {
    --bs-modal-width: 1140px;
  }
}
.modal-fullscreen {
  width: 100vw;
  max-width: none;
  height: 100%;
  margin: 0;
}
.modal-fullscreen .modal-content {
  height: 100%;
  border: 0;
  border-radius: 0;
}
.modal-fullscreen .modal-header, .modal-fullscreen .modal-footer {
  border-radius: 0;
}
.modal-fullscreen .modal-body {
  overflow-y: auto;
}
@media (max-width: 575.98px) {
  .modal-fullscreen-sm-down {
    width: 100vw;
    max-width: none;
    height: 100%;
    margin: 0;
  }
  .modal-fullscreen-sm-down .modal-content {
    height: 100%;
    border: 0;
    border-radius: 0;
  }
  .modal-fullscreen-sm-down .modal-header, .modal-fullscreen-sm-down .modal-footer {
    border-radius: 0;
  }
  .modal-fullscreen-sm-down .modal-body {
    overflow-y: auto;
  }
}
@media (max-width: 767.98px) {
  .modal-fullscreen-md-down {
    width: 100vw;
    max-width: none;
    height: 100%;
    margin: 0;
  }
  .modal-fullscreen-md-down .modal-content {
    height: 100%;
    border: 0;
    border-radius: 0;
  }
  .modal-fullscreen-md-down .modal-header, .modal-fullscreen-md-down .modal-footer {
    border-radius: 0;
  }
  .modal-fullscreen-md-down .modal-body {
    overflow-y: auto;
  }
}
@media (max-width: 991.98px) {
  .modal-fullscreen-lg-down {
    width: 100vw;
    max-width: none;
    height: 100%;
    margin: 0;
  }
  .modal-fullscreen-lg-down .modal-content {
    height: 100%;
    border: 0;
    border-radius: 0;
  }
  .modal-fullscreen-lg-down .modal-header, .modal-fullscreen-lg-down .modal-footer {
    border-radius: 0;
  }
  .modal-fullscreen-lg-down .modal-body {
    overflow-y: auto;
  }
}
@media (max-width: 1199.98px) {
  .modal-fullscreen-xl-down {
    width: 100vw;
    max-width: none;
    height: 100%;
    margin: 0;
  }
  .modal-fullscreen-xl-down .modal-content {
    height: 100%;
    border: 0;
    border-radius: 0;
  }
  .modal-fullscreen-xl-down .modal-header, .modal-fullscreen-xl-down .modal-footer {
    border-radius: 0;
  }
  .modal-fullscreen-xl-down .modal-body {
    overflow-y: auto;
  }
}
@media (max-width: 1399.98px) {
  .modal-fullscreen-xxl-down {
    width: 100vw;
    max-width: none;
    height: 100%;
    margin: 0;
  }
  .modal-fullscreen-xxl-down .modal-content {
    height: 100%;
    border: 0;
    border-radius: 0;
  }
  .modal-fullscreen-xxl-down .modal-header, .modal-fullscreen-xxl-down .modal-footer {
    border-radius: 0;
  }
  .modal-fullscreen-xxl-down .modal-body {
    overflow-y: auto;
  }
}
.tooltip {
  --bs-tooltip-zindex: 1080;
  --bs-tooltip-max-width: 200px;
  --bs-tooltip-padding-x: 0.5rem;
  --bs-tooltip-padding-y: 0.25rem;
  --bs-tooltip-margin: ;
  --bs-tooltip-font-size: 0.8203125rem;
  --bs-tooltip-color: var(--bs-body-bg);
  --bs-tooltip-bg: var(--bs-emphasis-color);
  --bs-tooltip-border-radius: var(--bs-border-radius);
  --bs-tooltip-opacity: 0.9;
  --bs-tooltip-arrow-width: 0.8rem;
  --bs-tooltip-arrow-height: 0.4rem;
  z-index: var(--bs-tooltip-zindex);
  display: block;
  margin: var(--bs-tooltip-margin);
  font-family: var(--bs-font-sans-serif);
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  letter-spacing: normal;
  word-break: normal;
  white-space: normal;
  word-spacing: normal;
  line-break: auto;
  font-size: var(--bs-tooltip-font-size);
  word-wrap: break-word;
  opacity: 0;
}
.tooltip.show {
  opacity: var(--bs-tooltip-opacity);
}
.tooltip .tooltip-arrow {
  display: block;
  width: var(--bs-tooltip-arrow-width);
  height: var(--bs-tooltip-arrow-height);
}
.tooltip .tooltip-arrow::before {
  position: absolute;
  content: "";
  border-color: transparent;
  border-style: solid;
}
.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow {
  bottom: calc(-1 * var(--bs-tooltip-arrow-height));
}
.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before {
  top: -1px;
  border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;
  border-top-color: var(--bs-tooltip-bg);
}
/* rtl:begin:ignore */
.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow {
  left: calc(-1 * var(--bs-tooltip-arrow-height));
  width: var(--bs-tooltip-arrow-height);
  height: var(--bs-tooltip-arrow-width);
}
.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before {
  right: -1px;
  border-width: calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;
  border-right-color: var(--bs-tooltip-bg);
}
/* rtl:end:ignore */
.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow {
  top: calc(-1 * var(--bs-tooltip-arrow-height));
}
.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before {
  bottom: -1px;
  border-width: 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);
  border-bottom-color: var(--bs-tooltip-bg);
}
/* rtl:begin:ignore */
.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow {
  right: calc(-1 * var(--bs-tooltip-arrow-height));
  width: var(--bs-tooltip-arrow-height);
  height: var(--bs-tooltip-arrow-width);
}
.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before {
  left: -1px;
  border-width: calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);
  border-left-color: var(--bs-tooltip-bg);
}
/* rtl:end:ignore */
.tooltip-inner {
  max-width: var(--bs-tooltip-max-width);
  padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);
  color: var(--bs-tooltip-color);
  text-align: center;
  background-color: var(--bs-tooltip-bg);
  border-radius: var(--bs-tooltip-border-radius);
}
.popover {
  --bs-popover-zindex: 1070;
  --bs-popover-max-width: 300px;
  --bs-popover-font-size: 0.8203125rem;
  --bs-popover-bg: var(--bs-body-bg);
  --bs-popover-border-width: var(--bs-border-width);
  --bs-popover-border-color: var(--bs-border-color-translucent);
  --bs-popover-border-radius: var(--bs-border-radius-lg);
  --bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));
  --bs-popover-box-shadow: var(--bs-box-shadow);
  --bs-popover-header-padding-x: 1rem;
  --bs-popover-header-padding-y: 0.5rem;
  --bs-popover-header-font-size: 0.9375rem;
  --bs-popover-header-color: inherit;
  --bs-popover-header-bg: var(--bs-secondary-bg);
  --bs-popover-body-padding-x: 1rem;
  --bs-popover-body-padding-y: 1rem;
  --bs-popover-body-color: var(--bs-body-color);
  --bs-popover-arrow-width: 1rem;
  --bs-popover-arrow-height: 0.5rem;
  --bs-popover-arrow-border: var(--bs-popover-border-color);
  z-index: var(--bs-popover-zindex);
  display: block;
  max-width: var(--bs-popover-max-width);
  font-family: var(--bs-font-sans-serif);
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  letter-spacing: normal;
  word-break: normal;
  white-space: normal;
  word-spacing: normal;
  line-break: auto;
  font-size: var(--bs-popover-font-size);
  word-wrap: break-word;
  background-color: var(--bs-popover-bg);
  background-clip: padding-box;
  border: var(--bs-popover-border-width) solid var(--bs-popover-border-color);
  border-radius: var(--bs-popover-border-radius);
}
.popover .popover-arrow {
  display: block;
  width: var(--bs-popover-arrow-width);
  height: var(--bs-popover-arrow-height);
}
.popover .popover-arrow::before, .popover .popover-arrow::after {
  position: absolute;
  display: block;
  content: "";
  border-color: transparent;
  border-style: solid;
  border-width: 0;
}
.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow {
  bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
}
.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after {
  border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0;
}
.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before {
  bottom: 0;
  border-top-color: var(--bs-popover-arrow-border);
}
.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after {
  bottom: var(--bs-popover-border-width);
  border-top-color: var(--bs-popover-bg);
}
/* rtl:begin:ignore */
.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow {
  left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
  width: var(--bs-popover-arrow-height);
  height: var(--bs-popover-arrow-width);
}
.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after {
  border-width: calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0;
}
.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::before {
  left: 0;
  border-right-color: var(--bs-popover-arrow-border);
}
.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after {
  left: var(--bs-popover-border-width);
  border-right-color: var(--bs-popover-bg);
}
/* rtl:end:ignore */
.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow {
  top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
}
.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after {
  border-width: 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height);
}
.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before {
  top: 0;
  border-bottom-color: var(--bs-popover-arrow-border);
}
.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after {
  top: var(--bs-popover-border-width);
  border-bottom-color: var(--bs-popover-bg);
}
.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^="bottom"] .popover-header::before {
  position: absolute;
  top: 0;
  left: 50%;
  display: block;
  width: var(--bs-popover-arrow-width);
  margin-left: calc(-.5 * var(--bs-popover-arrow-width));
  content: "";
  border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg);
}
/* rtl:begin:ignore */
.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow {
  right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
  width: var(--bs-popover-arrow-height);
  height: var(--bs-popover-arrow-width);
}
.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after {
  border-width: calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height);
}
.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::before {
  right: 0;
  border-left-color: var(--bs-popover-arrow-border);
}
.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after {
  right: var(--bs-popover-border-width);
  border-left-color: var(--bs-popover-bg);
}
/* rtl:end:ignore */
.popover-header {
  padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);
  margin-bottom: 0;
  font-size: var(--bs-popover-header-font-size);
  color: var(--bs-popover-header-color);
  background-color: var(--bs-popover-header-bg);
  border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color);
  border-top-left-radius: var(--bs-popover-inner-border-radius);
  border-top-right-radius: var(--bs-popover-inner-border-radius);
}
.popover-header:empty {
  display: none;
}
.popover-body {
  padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);
  color: var(--bs-popover-body-color);
}
.carousel {
  position: relative;
}
.carousel.pointer-event {
  touch-action: pan-y;
}
.carousel-inner {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.carousel-inner::after {
  display: block;
  clear: both;
  content: "";
}
.carousel-item {
  position: relative;
  display: none;
  float: left;
  width: 100%;
  margin-right: -100%;
  backface-visibility: hidden;
  transition: transform 0.6s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .carousel-item {
    transition: none;
  }
}
.carousel-item.active, .carousel-item-next, .carousel-item-prev {
  display: block;
}
.carousel-item-next:not(.carousel-item-start), .active.carousel-item-end {
  transform: translateX(100%);
}
.carousel-item-prev:not(.carousel-item-end), .active.carousel-item-start {
  transform: translateX(-100%);
}
.carousel-fade .carousel-item {
  opacity: 0;
  transition-property: opacity;
  transform: none;
}
.carousel-fade .carousel-item.active, .carousel-fade .carousel-item-next.carousel-item-start, .carousel-fade .carousel-item-prev.carousel-item-end {
  z-index: 1;
  opacity: 1;
}
.carousel-fade .active.carousel-item-start, .carousel-fade .active.carousel-item-end {
  z-index: 0;
  opacity: 0;
  transition: opacity 0s 0.6s;
}
@media (prefers-reduced-motion: reduce) {
  .carousel-fade .active.carousel-item-start, .carousel-fade .active.carousel-item-end {
    transition: none;
  }
}
.carousel-control-prev, .carousel-control-next {
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 15%;
  padding: 0;
  color: #fff;
  text-align: center;
  background: none;
  border: 0;
  opacity: 0.5;
  transition: opacity 0.15s ease;
}
@media (prefers-reduced-motion: reduce) {
  .carousel-control-prev, .carousel-control-next {
    transition: none;
  }
}
.carousel-control-prev:hover, .carousel-control-prev:focus, .carousel-control-next:hover, .carousel-control-next:focus {
  color: #fff;
  text-decoration: none;
  outline: 0;
  opacity: 0.9;
}
.carousel-control-prev {
  left: 0;
}
.carousel-control-next {
  right: 0;
}
.carousel-control-prev-icon, .carousel-control-next-icon {
  display: inline-block;
  width: 2rem;
  height: 2rem;
  background-repeat: no-repeat;
  background-position: 50%;
  background-size: 100% 100%;
}
.carousel-control-prev-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e") /*rtl:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")*/;
}
.carousel-control-next-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e") /*rtl:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")*/;
}
.carousel-indicators {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  display: flex;
  justify-content: center;
  padding: 0;
  margin-right: 15%;
  margin-bottom: 1rem;
  margin-left: 15%;
}
.carousel-indicators [data-bs-target] {
  box-sizing: content-box;
  flex: 0 1 auto;
  width: 30px;
  height: 3px;
  padding: 0;
  margin-right: 3px;
  margin-left: 3px;
  text-indent: -999px;
  cursor: pointer;
  background-color: #fff;
  background-clip: padding-box;
  border: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  opacity: 0.5;
  transition: opacity 0.6s ease;
}
@media (prefers-reduced-motion: reduce) {
  .carousel-indicators [data-bs-target] {
    transition: none;
  }
}
.carousel-indicators .active {
  opacity: 1;
}
.carousel-caption {
  position: absolute;
  right: 15%;
  bottom: 1.25rem;
  left: 15%;
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
  color: #fff;
  text-align: center;
}
.carousel-dark .carousel-control-prev-icon, .carousel-dark .carousel-control-next-icon {
  filter: invert(1) grayscale(100);
}
.carousel-dark .carousel-indicators [data-bs-target] {
  background-color: #000;
}
.carousel-dark .carousel-caption {
  color: #000;
}
[data-bs-theme="dark"] .carousel .carousel-control-prev-icon, [data-bs-theme="dark"] .carousel .carousel-control-next-icon, [data-bs-theme="dark"].carousel .carousel-control-prev-icon, [data-bs-theme="dark"].carousel .carousel-control-next-icon {
  filter: invert(1) grayscale(100);
}
[data-bs-theme="dark"] .carousel .carousel-indicators [data-bs-target], [data-bs-theme="dark"].carousel .carousel-indicators [data-bs-target] {
  background-color: #000;
}
[data-bs-theme="dark"] .carousel .carousel-caption, [data-bs-theme="dark"].carousel .carousel-caption {
  color: #000;
}
.spinner-grow, .spinner-border {
  display: inline-block;
  width: var(--bs-spinner-width);
  height: var(--bs-spinner-height);
  vertical-align: var(--bs-spinner-vertical-align);
  border-radius: 50%;
  animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
}
@keyframes spinner-border {
  to {
    transform: rotate(360deg) /* rtl:ignore */;
  }
}
.spinner-border {
  --bs-spinner-width: 2rem;
  --bs-spinner-height: 2rem;
  --bs-spinner-vertical-align: -0.125em;
  --bs-spinner-border-width: 0.25em;
  --bs-spinner-animation-speed: 0.75s;
  --bs-spinner-animation-name: spinner-border;
  border: var(--bs-spinner-border-width) solid currentcolor;
  border-right-color: transparent;
}
.spinner-border-sm {
  --bs-spinner-width: 1rem;
  --bs-spinner-height: 1rem;
  --bs-spinner-border-width: 0.2em;
}
@keyframes spinner-grow {
  0% {
    transform: scale(0);
  }
  50% {
    opacity: 1;
    transform: none;
  }
}
.spinner-grow {
  --bs-spinner-width: 2rem;
  --bs-spinner-height: 2rem;
  --bs-spinner-vertical-align: -0.125em;
  --bs-spinner-animation-speed: 0.75s;
  --bs-spinner-animation-name: spinner-grow;
  background-color: currentcolor;
  opacity: 0;
}
.spinner-grow-sm {
  --bs-spinner-width: 1rem;
  --bs-spinner-height: 1rem;
}
@media (prefers-reduced-motion: reduce) {
  .spinner-border, .spinner-grow {
    --bs-spinner-animation-speed: 1.5s;
  }
}
.offcanvas-sm, .offcanvas-md, .offcanvas-lg, .offcanvas-xl, .offcanvas-xxl, .offcanvas {
  --bs-offcanvas-zindex: 1045;
  --bs-offcanvas-width: 400px;
  --bs-offcanvas-height: 30vh;
  --bs-offcanvas-padding-x: 1rem;
  --bs-offcanvas-padding-y: 1rem;
  --bs-offcanvas-color: var(--bs-body-color);
  --bs-offcanvas-bg: var(--bs-body-bg);
  --bs-offcanvas-border-width: var(--bs-border-width);
  --bs-offcanvas-border-color: var(--bs-border-color-translucent);
  --bs-offcanvas-box-shadow: var(--bs-box-shadow-sm);
  --bs-offcanvas-transition: transform 0.3s ease-in-out;
  --bs-offcanvas-title-line-height: 1.5;
}
@media (max-width: 575.98px) {
  .offcanvas-sm {
    position: fixed;
    bottom: 0;
    z-index: var(--bs-offcanvas-zindex);
    display: flex;
    flex-direction: column;
    max-width: 100%;
    color: var(--bs-offcanvas-color);
    visibility: hidden;
    background-color: var(--bs-offcanvas-bg);
    background-clip: padding-box;
    outline: 0;
    transition: var(--bs-offcanvas-transition);
  }
  .offcanvas-sm.offcanvas-start {
    top: 0;
    left: 0;
    width: var(--bs-offcanvas-width);
    border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateX(-100%);
  }
  .offcanvas-sm.offcanvas-end {
    top: 0;
    right: 0;
    width: var(--bs-offcanvas-width);
    border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateX(100%);
  }
  .offcanvas-sm.offcanvas-top {
    top: 0;
    right: 0;
    left: 0;
    height: var(--bs-offcanvas-height);
    max-height: 100%;
    border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateY(-100%);
  }
  .offcanvas-sm.offcanvas-bottom {
    right: 0;
    left: 0;
    height: var(--bs-offcanvas-height);
    max-height: 100%;
    border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateY(100%);
  }
  .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {
    transform: none;
  }
  .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {
    visibility: visible;
  }
}
@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) {
  .offcanvas-sm {
    transition: none;
  }
}
@media (min-width: 576px) {
  .offcanvas-sm {
    --bs-offcanvas-height: auto;
    --bs-offcanvas-border-width: 0;
    background-color: transparent !important;
  }
  .offcanvas-sm .offcanvas-header {
    display: none;
  }
  .offcanvas-sm .offcanvas-body {
    display: flex;
    flex-grow: 0;
    padding: 0;
    overflow-y: visible;
    background-color: transparent !important;
  }
}
@media (max-width: 767.98px) {
  .offcanvas-md {
    position: fixed;
    bottom: 0;
    z-index: var(--bs-offcanvas-zindex);
    display: flex;
    flex-direction: column;
    max-width: 100%;
    color: var(--bs-offcanvas-color);
    visibility: hidden;
    background-color: var(--bs-offcanvas-bg);
    background-clip: padding-box;
    outline: 0;
    transition: var(--bs-offcanvas-transition);
  }
  .offcanvas-md.offcanvas-start {
    top: 0;
    left: 0;
    width: var(--bs-offcanvas-width);
    border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateX(-100%);
  }
  .offcanvas-md.offcanvas-end {
    top: 0;
    right: 0;
    width: var(--bs-offcanvas-width);
    border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateX(100%);
  }
  .offcanvas-md.offcanvas-top {
    top: 0;
    right: 0;
    left: 0;
    height: var(--bs-offcanvas-height);
    max-height: 100%;
    border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateY(-100%);
  }
  .offcanvas-md.offcanvas-bottom {
    right: 0;
    left: 0;
    height: var(--bs-offcanvas-height);
    max-height: 100%;
    border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateY(100%);
  }
  .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {
    transform: none;
  }
  .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {
    visibility: visible;
  }
}
@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) {
  .offcanvas-md {
    transition: none;
  }
}
@media (min-width: 768px) {
  .offcanvas-md {
    --bs-offcanvas-height: auto;
    --bs-offcanvas-border-width: 0;
    background-color: transparent !important;
  }
  .offcanvas-md .offcanvas-header {
    display: none;
  }
  .offcanvas-md .offcanvas-body {
    display: flex;
    flex-grow: 0;
    padding: 0;
    overflow-y: visible;
    background-color: transparent !important;
  }
}
@media (max-width: 991.98px) {
  .offcanvas-lg {
    position: fixed;
    bottom: 0;
    z-index: var(--bs-offcanvas-zindex);
    display: flex;
    flex-direction: column;
    max-width: 100%;
    color: var(--bs-offcanvas-color);
    visibility: hidden;
    background-color: var(--bs-offcanvas-bg);
    background-clip: padding-box;
    outline: 0;
    transition: var(--bs-offcanvas-transition);
  }
  .offcanvas-lg.offcanvas-start {
    top: 0;
    left: 0;
    width: var(--bs-offcanvas-width);
    border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateX(-100%);
  }
  .offcanvas-lg.offcanvas-end {
    top: 0;
    right: 0;
    width: var(--bs-offcanvas-width);
    border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateX(100%);
  }
  .offcanvas-lg.offcanvas-top {
    top: 0;
    right: 0;
    left: 0;
    height: var(--bs-offcanvas-height);
    max-height: 100%;
    border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateY(-100%);
  }
  .offcanvas-lg.offcanvas-bottom {
    right: 0;
    left: 0;
    height: var(--bs-offcanvas-height);
    max-height: 100%;
    border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateY(100%);
  }
  .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {
    transform: none;
  }
  .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {
    visibility: visible;
  }
}
@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) {
  .offcanvas-lg {
    transition: none;
  }
}
@media (min-width: 992px) {
  .offcanvas-lg {
    --bs-offcanvas-height: auto;
    --bs-offcanvas-border-width: 0;
    background-color: transparent !important;
  }
  .offcanvas-lg .offcanvas-header {
    display: none;
  }
  .offcanvas-lg .offcanvas-body {
    display: flex;
    flex-grow: 0;
    padding: 0;
    overflow-y: visible;
    background-color: transparent !important;
  }
}
@media (max-width: 1199.98px) {
  .offcanvas-xl {
    position: fixed;
    bottom: 0;
    z-index: var(--bs-offcanvas-zindex);
    display: flex;
    flex-direction: column;
    max-width: 100%;
    color: var(--bs-offcanvas-color);
    visibility: hidden;
    background-color: var(--bs-offcanvas-bg);
    background-clip: padding-box;
    outline: 0;
    transition: var(--bs-offcanvas-transition);
  }
  .offcanvas-xl.offcanvas-start {
    top: 0;
    left: 0;
    width: var(--bs-offcanvas-width);
    border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateX(-100%);
  }
  .offcanvas-xl.offcanvas-end {
    top: 0;
    right: 0;
    width: var(--bs-offcanvas-width);
    border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateX(100%);
  }
  .offcanvas-xl.offcanvas-top {
    top: 0;
    right: 0;
    left: 0;
    height: var(--bs-offcanvas-height);
    max-height: 100%;
    border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateY(-100%);
  }
  .offcanvas-xl.offcanvas-bottom {
    right: 0;
    left: 0;
    height: var(--bs-offcanvas-height);
    max-height: 100%;
    border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateY(100%);
  }
  .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {
    transform: none;
  }
  .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {
    visibility: visible;
  }
}
@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) {
  .offcanvas-xl {
    transition: none;
  }
}
@media (min-width: 1200px) {
  .offcanvas-xl {
    --bs-offcanvas-height: auto;
    --bs-offcanvas-border-width: 0;
    background-color: transparent !important;
  }
  .offcanvas-xl .offcanvas-header {
    display: none;
  }
  .offcanvas-xl .offcanvas-body {
    display: flex;
    flex-grow: 0;
    padding: 0;
    overflow-y: visible;
    background-color: transparent !important;
  }
}
@media (max-width: 1399.98px) {
  .offcanvas-xxl {
    position: fixed;
    bottom: 0;
    z-index: var(--bs-offcanvas-zindex);
    display: flex;
    flex-direction: column;
    max-width: 100%;
    color: var(--bs-offcanvas-color);
    visibility: hidden;
    background-color: var(--bs-offcanvas-bg);
    background-clip: padding-box;
    outline: 0;
    transition: var(--bs-offcanvas-transition);
  }
  .offcanvas-xxl.offcanvas-start {
    top: 0;
    left: 0;
    width: var(--bs-offcanvas-width);
    border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateX(-100%);
  }
  .offcanvas-xxl.offcanvas-end {
    top: 0;
    right: 0;
    width: var(--bs-offcanvas-width);
    border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateX(100%);
  }
  .offcanvas-xxl.offcanvas-top {
    top: 0;
    right: 0;
    left: 0;
    height: var(--bs-offcanvas-height);
    max-height: 100%;
    border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateY(-100%);
  }
  .offcanvas-xxl.offcanvas-bottom {
    right: 0;
    left: 0;
    height: var(--bs-offcanvas-height);
    max-height: 100%;
    border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
    transform: translateY(100%);
  }
  .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) {
    transform: none;
  }
  .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show {
    visibility: visible;
  }
}
@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) {
  .offcanvas-xxl {
    transition: none;
  }
}
@media (min-width: 1400px) {
  .offcanvas-xxl {
    --bs-offcanvas-height: auto;
    --bs-offcanvas-border-width: 0;
    background-color: transparent !important;
  }
  .offcanvas-xxl .offcanvas-header {
    display: none;
  }
  .offcanvas-xxl .offcanvas-body {
    display: flex;
    flex-grow: 0;
    padding: 0;
    overflow-y: visible;
    background-color: transparent !important;
  }
}
.offcanvas {
  position: fixed;
  bottom: 0;
  z-index: var(--bs-offcanvas-zindex);
  display: flex;
  flex-direction: column;
  max-width: 100%;
  color: var(--bs-offcanvas-color);
  visibility: hidden;
  background-color: var(--bs-offcanvas-bg);
  background-clip: padding-box;
  outline: 0;
  transition: var(--bs-offcanvas-transition);
}
@media (prefers-reduced-motion: reduce) {
  .offcanvas {
    transition: none;
  }
}
.offcanvas.offcanvas-start {
  top: 0;
  left: 0;
  width: var(--bs-offcanvas-width);
  border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
  transform: translateX(-100%);
}
.offcanvas.offcanvas-end {
  top: 0;
  right: 0;
  width: var(--bs-offcanvas-width);
  border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
  transform: translateX(100%);
}
.offcanvas.offcanvas-top {
  top: 0;
  right: 0;
  left: 0;
  height: var(--bs-offcanvas-height);
  max-height: 100%;
  border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
  transform: translateY(-100%);
}
.offcanvas.offcanvas-bottom {
  right: 0;
  left: 0;
  height: var(--bs-offcanvas-height);
  max-height: 100%;
  border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
  transform: translateY(100%);
}
.offcanvas.showing, .offcanvas.show:not(.hiding) {
  transform: none;
}
.offcanvas.showing, .offcanvas.hiding, .offcanvas.show {
  visibility: visible;
}
.offcanvas-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1040;
  width: 100vw;
  height: 100vh;
  background-color: #000;
}
.offcanvas-backdrop.fade {
  opacity: 0;
}
.offcanvas-backdrop.show {
  opacity: 0.5;
}
.offcanvas-header {
  display: flex;
  align-items: center;
  padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);
}
.offcanvas-header .btn-close {
  padding: calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);
  margin: calc(-.5 * var(--bs-offcanvas-padding-y)) calc(-.5 * var(--bs-offcanvas-padding-x)) calc(-.5 * var(--bs-offcanvas-padding-y)) auto;
}
.offcanvas-title {
  margin-bottom: 0;
  line-height: var(--bs-offcanvas-title-line-height);
}
.offcanvas-body {
  flex-grow: 1;
  padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);
  overflow-y: auto;
}
.placeholder {
  display: inline-block;
  min-height: 1em;
  vertical-align: middle;
  cursor: wait;
  background-color: currentcolor;
  opacity: 0.5;
}
.placeholder.btn::before {
  display: inline-block;
  content: "";
}
.placeholder-xs {
  min-height: 0.6em;
}
.placeholder-sm {
  min-height: 0.8em;
}
.placeholder-lg {
  min-height: 1.2em;
}
.placeholder-glow .placeholder {
  animation: placeholder-glow 2s ease-in-out infinite;
}
@keyframes placeholder-glow {
  50% {
    opacity: 0.2;
  }
}
.placeholder-wave {
  mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);
  mask-size: 200% 100%;
  animation: placeholder-wave 2s linear infinite;
}
@keyframes placeholder-wave {
  100% {
    mask-position: -200% 0%;
  }
}
.clearfix::after {
  display: block;
  clear: both;
  content: "";
}
.text-bg-primary {
  color: #fff !important;
  background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important;
}
.text-bg-secondary {
  color: #000 !important;
  background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important;
}
.text-bg-success {
  color: #fff !important;
  background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important;
}
.text-bg-info {
  color: #fff !important;
  background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important;
}
.text-bg-warning {
  color: #000 !important;
  background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important;
}
.text-bg-danger {
  color: #fff !important;
  background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important;
}
.link-primary {
  color: rgba(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;
  text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important;
}
.link-primary:hover, .link-primary:focus {
  color: rgba(34, 34, 35, var(--bs-link-opacity, 1)) !important;
  text-decoration-color: rgba(34, 34, 35, var(--bs-link-underline-opacity, 1)) !important;
}
.link-secondary {
  color: rgba(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;
  text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important;
}
.link-secondary:hover, .link-secondary:focus {
  color: rgba(213, 180, 115, var(--bs-link-opacity, 1)) !important;
  text-decoration-color: rgba(213, 180, 115, var(--bs-link-underline-opacity, 1)) !important;
}
.link-success {
  color: rgba(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;
  text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important;
}
.link-success:hover, .link-success:focus {
  color: rgba(42, 98, 40, var(--bs-link-opacity, 1)) !important;
  text-decoration-color: rgba(42, 98, 40, var(--bs-link-underline-opacity, 1)) !important;
}
.link-info {
  color: rgba(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;
  text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important;
}
.link-info:hover, .link-info:focus {
  color: rgba(0, 103, 120, var(--bs-link-opacity, 1)) !important;
  text-decoration-color: rgba(0, 103, 120, var(--bs-link-underline-opacity, 1)) !important;
}
.link-warning {
  color: rgba(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;
  text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important;
}
.link-warning:hover, .link-warning:focus {
  color: rgba(243, 189, 113, var(--bs-link-opacity, 1)) !important;
  text-decoration-color: rgba(243, 189, 113, var(--bs-link-underline-opacity, 1)) !important;
}
.link-danger {
  color: rgba(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;
  text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important;
}
.link-danger:hover, .link-danger:focus {
  color: rgba(162, 39, 26, var(--bs-link-opacity, 1)) !important;
  text-decoration-color: rgba(162, 39, 26, var(--bs-link-underline-opacity, 1)) !important;
}
.link-body-emphasis {
  color: rgba(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;
  text-decoration-color: rgba(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important;
}
.link-body-emphasis:hover, .link-body-emphasis:focus {
  color: rgba(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;
  text-decoration-color: rgba(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important;
}
.focus-ring:focus {
  outline: 0;
  box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color);
}
.icon-link {
  display: inline-flex;
  gap: 0.375rem;
  align-items: center;
  text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));
  text-underline-offset: 0.25em;
  backface-visibility: hidden;
}
.icon-link > .bi {
  flex-shrink: 0;
  width: 1em;
  height: 1em;
  fill: currentcolor;
  transition: 0.2s ease-in-out transform;
}
@media (prefers-reduced-motion: reduce) {
  .icon-link > .bi {
    transition: none;
  }
}
.icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi {
  transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0));
}
.ratio {
  position: relative;
  width: 100%;
}
.ratio::before {
  display: block;
  padding-top: var(--bs-aspect-ratio);
  content: "";
}
.ratio > * {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.ratio-1x1 {
  --bs-aspect-ratio: 100%;
}
.ratio-4x3 {
  --bs-aspect-ratio: calc(3 / 4 * 100%);
}
.ratio-16x9 {
  --bs-aspect-ratio: calc(9 / 16 * 100%);
}
.ratio-21x9 {
  --bs-aspect-ratio: calc(9 / 21 * 100%);
}
.fixed-top {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1030;
}
.fixed-bottom {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1030;
}
.sticky-top {
  position: sticky;
  top: 0;
  z-index: 1020;
}
.sticky-bottom {
  position: sticky;
  bottom: 0;
  z-index: 1020;
}
@media (min-width: 576px) {
  .sticky-sm-top {
    position: sticky;
    top: 0;
    z-index: 1020;
  }
  .sticky-sm-bottom {
    position: sticky;
    bottom: 0;
    z-index: 1020;
  }
}
@media (min-width: 768px) {
  .sticky-md-top {
    position: sticky;
    top: 0;
    z-index: 1020;
  }
  .sticky-md-bottom {
    position: sticky;
    bottom: 0;
    z-index: 1020;
  }
}
@media (min-width: 992px) {
  .sticky-lg-top {
    position: sticky;
    top: 0;
    z-index: 1020;
  }
  .sticky-lg-bottom {
    position: sticky;
    bottom: 0;
    z-index: 1020;
  }
}
@media (min-width: 1200px) {
  .sticky-xl-top {
    position: sticky;
    top: 0;
    z-index: 1020;
  }
  .sticky-xl-bottom {
    position: sticky;
    bottom: 0;
    z-index: 1020;
  }
}
@media (min-width: 1400px) {
  .sticky-xxl-top {
    position: sticky;
    top: 0;
    z-index: 1020;
  }
  .sticky-xxl-bottom {
    position: sticky;
    bottom: 0;
    z-index: 1020;
  }
}
.hstack {
  display: flex;
  flex-direction: row;
  align-items: center;
  align-self: stretch;
}
.vstack {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-self: stretch;
}
.visually-hidden, .visually-hidden-focusable:not(:focus):not(:focus-within) {
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.visually-hidden:not(caption), .visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) {
  position: absolute !important;
}
.stretched-link::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  content: "";
}
.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.vr {
  display: inline-block;
  align-self: stretch;
  width: var(--bs-border-width);
  min-height: 1em;
  background-color: currentcolor;
  opacity: 0.25;
}
.align-baseline {
  vertical-align: baseline !important;
}
.align-top, [data-filterregion="value"] div:first-of-type {
  vertical-align: top !important;
}
.align-middle, .reportbuilder-table td {
  vertical-align: middle !important;
}
.align-bottom {
  vertical-align: bottom !important;
}
.align-text-bottom {
  vertical-align: text-bottom !important;
}
.align-text-top {
  vertical-align: text-top !important;
}
.float-start {
  float: left !important;
}
.float-end {
  float: right !important;
}
.float-none {
  float: none !important;
}
.object-fit-contain {
  object-fit: contain !important;
}
.object-fit-cover {
  object-fit: cover !important;
}
.object-fit-fill {
  object-fit: fill !important;
}
.object-fit-scale {
  object-fit: scale-down !important;
}
.object-fit-none {
  object-fit: none !important;
}
.opacity-0 {
  opacity: 0 !important;
}
.opacity-25 {
  opacity: 0.25 !important;
}
.opacity-50 {
  opacity: 0.5 !important;
}
.opacity-75 {
  opacity: 0.75 !important;
}
.opacity-100 {
  opacity: 1 !important;
}
.overflow-auto {
  overflow: auto !important;
}
.overflow-hidden {
  overflow: hidden !important;
}
.overflow-visible {
  overflow: visible !important;
}
.overflow-scroll {
  overflow: scroll !important;
}
.overflow-x-auto {
  overflow-x: auto !important;
}
.overflow-x-hidden {
  overflow-x: hidden !important;
}
.overflow-x-visible {
  overflow-x: visible !important;
}
.overflow-x-scroll {
  overflow-x: scroll !important;
}
.overflow-y-auto {
  overflow-y: auto !important;
}
.overflow-y-hidden {
  overflow-y: hidden !important;
}
.overflow-y-visible {
  overflow-y: visible !important;
}
.overflow-y-scroll {
  overflow-y: scroll !important;
}
.d-inline {
  display: inline !important;
}
.d-inline-block {
  display: inline-block !important;
}
.d-block {
  display: block !important;
}
.d-grid {
  display: grid !important;
}
.d-inline-grid {
  display: inline-grid !important;
}
.d-table {
  display: table !important;
}
.d-table-row {
  display: table-row !important;
}
.d-table-cell {
  display: table-cell !important;
}
.d-flex {
  display: flex !important;
}
.d-inline-flex {
  display: inline-flex !important;
}
.d-none {
  display: none !important;
}
.shadow {
  box-shadow: var(--bs-box-shadow) !important;
}
.shadow-sm {
  box-shadow: var(--bs-box-shadow-sm) !important;
}
.shadow-lg {
  box-shadow: var(--bs-box-shadow-lg) !important;
}
.shadow-none {
  box-shadow: none !important;
}
.focus-ring-primary {
  --bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity));
}
.focus-ring-secondary {
  --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity));
}
.focus-ring-success {
  --bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity));
}
.focus-ring-info {
  --bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity));
}
.focus-ring-warning {
  --bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity));
}
.focus-ring-danger {
  --bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity));
}
.position-static {
  position: static !important;
}
.position-relative {
  position: relative !important;
}
.position-absolute {
  position: absolute !important;
}
.position-fixed {
  position: fixed !important;
}
.position-sticky {
  position: sticky !important;
}
.top-0 {
  top: 0 !important;
}
.top-50 {
  top: 50% !important;
}
.top-100 {
  top: 100% !important;
}
.bottom-0 {
  bottom: 0 !important;
}
.bottom-50 {
  bottom: 50% !important;
}
.bottom-100 {
  bottom: 100% !important;
}
.start-0 {
  left: 0 !important;
}
.start-50 {
  left: 50% !important;
}
.start-100 {
  left: 100% !important;
}
.end-0 {
  right: 0 !important;
}
.end-50 {
  right: 50% !important;
}
.end-100 {
  right: 100% !important;
}
.translate-middle {
  transform: translate(-50%, -50%) !important;
}
.translate-middle-x {
  transform: translateX(-50%) !important;
}
.translate-middle-y {
  transform: translateY(-50%) !important;
}
.border {
  border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
}
.border-0 {
  border: 0 !important;
}
.border-top {
  border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
}
.border-top-0 {
  border-top: 0 !important;
}
.border-end {
  border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
}
.border-end-0 {
  border-right: 0 !important;
}
.border-bottom {
  border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
}
.border-bottom-0 {
  border-bottom: 0 !important;
}
.border-start {
  border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
}
.border-start-0 {
  border-left: 0 !important;
}
.border-primary {
  --bs-border-opacity: 1;
  border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important;
}
.border-secondary {
  --bs-border-opacity: 1;
  border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important;
}
.border-success {
  --bs-border-opacity: 1;
  border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important;
}
.border-info {
  --bs-border-opacity: 1;
  border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important;
}
.border-warning {
  --bs-border-opacity: 1;
  border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important;
}
.border-danger {
  --bs-border-opacity: 1;
  border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important;
}
.border-black {
  --bs-border-opacity: 1;
  border-color: rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important;
}
.border-white {
  --bs-border-opacity: 1;
  border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important;
}
.border-primary-subtle {
  border-color: var(--bs-primary-border-subtle) !important;
}
.border-secondary-subtle {
  border-color: var(--bs-secondary-border-subtle) !important;
}
.border-success-subtle {
  border-color: var(--bs-success-border-subtle) !important;
}
.border-info-subtle {
  border-color: var(--bs-info-border-subtle) !important;
}
.border-warning-subtle {
  border-color: var(--bs-warning-border-subtle) !important;
}
.border-danger-subtle {
  border-color: var(--bs-danger-border-subtle) !important;
}
.border-light-subtle {
  border-color: var(--bs-light-border-subtle) !important;
}
.border-dark-subtle {
  border-color: var(--bs-dark-border-subtle) !important;
}
.border-1 {
  border-width: 1px !important;
}
.border-2 {
  border-width: 2px !important;
}
.border-3 {
  border-width: 3px !important;
}
.border-4 {
  border-width: 4px !important;
}
.border-5 {
  border-width: 5px !important;
}
.border-opacity-10 {
  --bs-border-opacity: 0.1;
}
.border-opacity-25 {
  --bs-border-opacity: 0.25;
}
.border-opacity-50 {
  --bs-border-opacity: 0.5;
}
.border-opacity-75 {
  --bs-border-opacity: 0.75;
}
.border-opacity-100 {
  --bs-border-opacity: 1;
}
.w-25 {
  width: 25% !important;
}
.w-50 {
  width: 50% !important;
}
.w-75 {
  width: 75% !important;
}
.w-100 {
  width: 100% !important;
}
.w-auto {
  width: auto !important;
}
.mw-100 {
  max-width: 100% !important;
}
.vw-100 {
  width: 100vw !important;
}
.min-vw-100 {
  min-width: 100vw !important;
}
.h-25 {
  height: 25% !important;
}
.h-50 {
  height: 50% !important;
}
.h-75 {
  height: 75% !important;
}
.h-100 {
  height: 100% !important;
}
.h-auto {
  height: auto !important;
}
.mh-100 {
  max-height: 100% !important;
}
.vh-100 {
  height: 100vh !important;
}
.min-vh-100 {
  min-height: 100vh !important;
}
.flex-fill, .reportbuilder-report-container {
  flex: 1 1 auto !important;
}
.flex-row {
  flex-direction: row !important;
}
.flex-column {
  flex-direction: column !important;
}
.flex-row-reverse {
  flex-direction: row-reverse !important;
}
.flex-column-reverse {
  flex-direction: column-reverse !important;
}
.flex-grow-0 {
  flex-grow: 0 !important;
}
.flex-grow-1 {
  flex-grow: 1 !important;
}
.flex-shrink-0 {
  flex-shrink: 0 !important;
}
.flex-shrink-1 {
  flex-shrink: 1 !important;
}
.flex-wrap {
  flex-wrap: wrap !important;
}
.flex-nowrap {
  flex-wrap: nowrap !important;
}
.flex-wrap-reverse {
  flex-wrap: wrap-reverse !important;
}
.justify-content-start {
  justify-content: flex-start !important;
}
.justify-content-end {
  justify-content: flex-end !important;
}
.justify-content-center {
  justify-content: center !important;
}
.justify-content-between {
  justify-content: space-between !important;
}
.justify-content-around {
  justify-content: space-around !important;
}
.justify-content-evenly {
  justify-content: space-evenly !important;
}
.align-items-start {
  align-items: flex-start !important;
}
.align-items-end {
  align-items: flex-end !important;
}
.align-items-center {
  align-items: center !important;
}
.align-items-baseline {
  align-items: baseline !important;
}
.align-items-stretch {
  align-items: stretch !important;
}
.align-content-start {
  align-content: flex-start !important;
}
.align-content-end {
  align-content: flex-end !important;
}
.align-content-center {
  align-content: center !important;
}
.align-content-between {
  align-content: space-between !important;
}
.align-content-around {
  align-content: space-around !important;
}
.align-content-stretch {
  align-content: stretch !important;
}
.align-self-auto {
  align-self: auto !important;
}
.align-self-start {
  align-self: flex-start !important;
}
.align-self-end {
  align-self: flex-end !important;
}
.align-self-center {
  align-self: center !important;
}
.align-self-baseline {
  align-self: baseline !important;
}
.align-self-stretch {
  align-self: stretch !important;
}
.order-first {
  order: -1 !important;
}
.order-0 {
  order: 0 !important;
}
.order-1 {
  order: 1 !important;
}
.order-2 {
  order: 2 !important;
}
.order-3 {
  order: 3 !important;
}
.order-4 {
  order: 4 !important;
}
.order-5 {
  order: 5 !important;
}
.order-last {
  order: 6 !important;
}
.m-0 {
  margin: 0 !important;
}
.m-1 {
  margin: 0.25rem !important;
}
.m-2 {
  margin: 0.5rem !important;
}
.m-3 {
  margin: 1rem !important;
}
.m-4 {
  margin: 1.5rem !important;
}
.m-5 {
  margin: 2rem !important;
}
.m-6 {
  margin: 3rem !important;
}
.m-auto {
  margin: auto !important;
}
.mx-0 {
  margin-right: 0 !important;
  margin-left: 0 !important;
}
.mx-1 {
  margin-right: 0.25rem !important;
  margin-left: 0.25rem !important;
}
.mx-2 {
  margin-right: 0.5rem !important;
  margin-left: 0.5rem !important;
}
.mx-3 {
  margin-right: 1rem !important;
  margin-left: 1rem !important;
}
.mx-4 {
  margin-right: 1.5rem !important;
  margin-left: 1.5rem !important;
}
.mx-5 {
  margin-right: 2rem !important;
  margin-left: 2rem !important;
}
.mx-6 {
  margin-right: 3rem !important;
  margin-left: 3rem !important;
}
.mx-auto {
  margin-right: auto !important;
  margin-left: auto !important;
}
.my-0 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.my-1 {
  margin-top: 0.25rem !important;
  margin-bottom: 0.25rem !important;
}
.my-2 {
  margin-top: 0.5rem !important;
  margin-bottom: 0.5rem !important;
}
.my-3 {
  margin-top: 1rem !important;
  margin-bottom: 1rem !important;
}
.my-4 {
  margin-top: 1.5rem !important;
  margin-bottom: 1.5rem !important;
}
.my-5 {
  margin-top: 2rem !important;
  margin-bottom: 2rem !important;
}
.my-6 {
  margin-top: 3rem !important;
  margin-bottom: 3rem !important;
}
.my-auto {
  margin-top: auto !important;
  margin-bottom: auto !important;
}
.mt-0 {
  margin-top: 0 !important;
}
.mt-1 {
  margin-top: 0.25rem !important;
}
.mt-2 {
  margin-top: 0.5rem !important;
}
.mt-3 {
  margin-top: 1rem !important;
}
.mt-4 {
  margin-top: 1.5rem !important;
}
.mt-5 {
  margin-top: 2rem !important;
}
.mt-6 {
  margin-top: 3rem !important;
}
.mt-auto {
  margin-top: auto !important;
}
.me-0 {
  margin-right: 0 !important;
}
.me-1 {
  margin-right: 0.25rem !important;
}
.me-2 {
  margin-right: 0.5rem !important;
}
.me-3 {
  margin-right: 1rem !important;
}
.me-4 {
  margin-right: 1.5rem !important;
}
.me-5 {
  margin-right: 2rem !important;
}
.me-6 {
  margin-right: 3rem !important;
}
.me-auto {
  margin-right: auto !important;
}
.mb-0 {
  margin-bottom: 0 !important;
}
.mb-1 {
  margin-bottom: 0.25rem !important;
}
.mb-2 {
  margin-bottom: 0.5rem !important;
}
.mb-3 {
  margin-bottom: 1rem !important;
}
.mb-4 {
  margin-bottom: 1.5rem !important;
}
.mb-5 {
  margin-bottom: 2rem !important;
}
.mb-6 {
  margin-bottom: 3rem !important;
}
.mb-auto {
  margin-bottom: auto !important;
}
.ms-0 {
  margin-left: 0 !important;
}
.ms-1 {
  margin-left: 0.25rem !important;
}
.ms-2 {
  margin-left: 0.5rem !important;
}
.ms-3 {
  margin-left: 1rem !important;
}
.ms-4 {
  margin-left: 1.5rem !important;
}
.ms-5 {
  margin-left: 2rem !important;
}
.ms-6 {
  margin-left: 3rem !important;
}
.ms-auto {
  margin-left: auto !important;
}
.p-0 {
  padding: 0 !important;
}
.p-1 {
  padding: 0.25rem !important;
}
.p-2 {
  padding: 0.5rem !important;
}
.p-3 {
  padding: 1rem !important;
}
.p-4 {
  padding: 1.5rem !important;
}
.p-5 {
  padding: 2rem !important;
}
.p-6 {
  padding: 3rem !important;
}
.px-0 {
  padding-right: 0 !important;
  padding-left: 0 !important;
}
.px-1 {
  padding-right: 0.25rem !important;
  padding-left: 0.25rem !important;
}
.px-2 {
  padding-right: 0.5rem !important;
  padding-left: 0.5rem !important;
}
.px-3 {
  padding-right: 1rem !important;
  padding-left: 1rem !important;
}
.px-4 {
  padding-right: 1.5rem !important;
  padding-left: 1.5rem !important;
}
.px-5 {
  padding-right: 2rem !important;
  padding-left: 2rem !important;
}
.px-6 {
  padding-right: 3rem !important;
  padding-left: 3rem !important;
}
.py-0 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.py-1 {
  padding-top: 0.25rem !important;
  padding-bottom: 0.25rem !important;
}
.py-2 {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}
.py-3 {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}
.py-4 {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}
.py-5 {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}
.py-6 {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}
.pt-0 {
  padding-top: 0 !important;
}
.pt-1 {
  padding-top: 0.25rem !important;
}
.pt-2 {
  padding-top: 0.5rem !important;
}
.pt-3 {
  padding-top: 1rem !important;
}
.pt-4 {
  padding-top: 1.5rem !important;
}
.pt-5 {
  padding-top: 2rem !important;
}
.pt-6 {
  padding-top: 3rem !important;
}
.pe-0 {
  padding-right: 0 !important;
}
.pe-1 {
  padding-right: 0.25rem !important;
}
.pe-2 {
  padding-right: 0.5rem !important;
}
.pe-3 {
  padding-right: 1rem !important;
}
.pe-4 {
  padding-right: 1.5rem !important;
}
.pe-5 {
  padding-right: 2rem !important;
}
.pe-6 {
  padding-right: 3rem !important;
}
.pb-0 {
  padding-bottom: 0 !important;
}
.pb-1 {
  padding-bottom: 0.25rem !important;
}
.pb-2 {
  padding-bottom: 0.5rem !important;
}
.pb-3 {
  padding-bottom: 1rem !important;
}
.pb-4 {
  padding-bottom: 1.5rem !important;
}
.pb-5 {
  padding-bottom: 2rem !important;
}
.pb-6 {
  padding-bottom: 3rem !important;
}
.ps-0 {
  padding-left: 0 !important;
}
.ps-1 {
  padding-left: 0.25rem !important;
}
.ps-2 {
  padding-left: 0.5rem !important;
}
.ps-3 {
  padding-left: 1rem !important;
}
.ps-4 {
  padding-left: 1.5rem !important;
}
.ps-5 {
  padding-left: 2rem !important;
}
.ps-6 {
  padding-left: 3rem !important;
}
.gap-0 {
  gap: 0 !important;
}
.gap-1 {
  gap: 0.25rem !important;
}
.gap-2 {
  gap: 0.5rem !important;
}
.gap-3 {
  gap: 1rem !important;
}
.gap-4 {
  gap: 1.5rem !important;
}
.gap-5 {
  gap: 2rem !important;
}
.gap-6 {
  gap: 3rem !important;
}
.row-gap-0 {
  row-gap: 0 !important;
}
.row-gap-1 {
  row-gap: 0.25rem !important;
}
.row-gap-2 {
  row-gap: 0.5rem !important;
}
.row-gap-3 {
  row-gap: 1rem !important;
}
.row-gap-4 {
  row-gap: 1.5rem !important;
}
.row-gap-5 {
  row-gap: 2rem !important;
}
.row-gap-6 {
  row-gap: 3rem !important;
}
.column-gap-0 {
  column-gap: 0 !important;
}
.column-gap-1 {
  column-gap: 0.25rem !important;
}
.column-gap-2 {
  column-gap: 0.5rem !important;
}
.column-gap-3 {
  column-gap: 1rem !important;
}
.column-gap-4 {
  column-gap: 1.5rem !important;
}
.column-gap-5 {
  column-gap: 2rem !important;
}
.column-gap-6 {
  column-gap: 3rem !important;
}
.font-monospace {
  font-family: var(--bs-font-monospace) !important;
}
.fs-1 {
  font-size: calc(1.359375rem + 1.3125vw) !important;
}
.fs-2 {
  font-size: calc(1.3125rem + 0.75vw) !important;
}
.fs-3 {
  font-size: calc(1.2890625rem + 0.46875vw) !important;
}
.fs-4 {
  font-size: calc(1.265625rem + 0.1875vw) !important;
}
.fs-5 {
  font-size: 1.171875rem !important;
}
.fs-6 {
  font-size: 0.9375rem !important;
}
.fst-italic {
  font-style: italic !important;
}
.fst-normal {
  font-style: normal !important;
}
.fw-lighter {
  font-weight: lighter !important;
}
.fw-light {
  font-weight: 300 !important;
}
.fw-normal {
  font-weight: 400 !important;
}
.fw-medium {
  font-weight: 500 !important;
}
.fw-semibold {
  font-weight: 600 !important;
}
.fw-bold {
  font-weight: 700 !important;
}
.fw-bolder {
  font-weight: bolder !important;
}
.lh-1 {
  line-height: 1 !important;
}
.lh-sm {
  line-height: 1.25 !important;
}
.lh-base {
  line-height: 1.5 !important;
}
.lh-lg {
  line-height: 2 !important;
}
.text-start {
  text-align: left !important;
}
.text-end {
  text-align: right !important;
}
.text-center {
  text-align: center !important;
}
.text-decoration-none {
  text-decoration: none !important;
}
.text-decoration-underline {
  text-decoration: underline !important;
}
.text-decoration-line-through {
  text-decoration: line-through !important;
}
.text-lowercase {
  text-transform: lowercase !important;
}
.text-uppercase {
  text-transform: uppercase !important;
}
.text-capitalize {
  text-transform: capitalize !important;
}
.text-wrap {
  white-space: normal !important;
}
.text-nowrap {
  white-space: nowrap !important;
}
/* rtl:begin:remove */
.text-break {
  word-wrap: break-word !important;
  word-break: break-word !important;
}
/* rtl:end:remove */
.text-primary {
  --bs-text-opacity: 1;
  color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important;
}
.text-secondary {
  --bs-text-opacity: 1;
  color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important;
}
.text-success {
  --bs-text-opacity: 1;
  color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important;
}
.text-info {
  --bs-text-opacity: 1;
  color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important;
}
.text-warning {
  --bs-text-opacity: 1;
  color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important;
}
.text-danger {
  --bs-text-opacity: 1;
  color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important;
}
.text-black {
  --bs-text-opacity: 1;
  color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important;
}
.text-white {
  --bs-text-opacity: 1;
  color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important;
}
.text-body {
  --bs-text-opacity: 1;
  color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important;
}
.text-muted {
  --bs-text-opacity: 1;
  color: var(--bs-secondary-color) !important;
}
.text-black-50 {
  --bs-text-opacity: 1;
  color: rgba(0, 0, 0, 0.5) !important;
}
.text-white-50 {
  --bs-text-opacity: 1;
  color: rgba(255, 255, 255, 0.5) !important;
}
.text-body-secondary {
  --bs-text-opacity: 1;
  color: var(--bs-secondary-color) !important;
}
.text-body-tertiary {
  --bs-text-opacity: 1;
  color: var(--bs-tertiary-color) !important;
}
.text-body-emphasis {
  --bs-text-opacity: 1;
  color: var(--bs-emphasis-color) !important;
}
.text-reset {
  --bs-text-opacity: 1;
  color: inherit !important;
}
.text-opacity-25 {
  --bs-text-opacity: 0.25;
}
.text-opacity-50 {
  --bs-text-opacity: 0.5;
}
.text-opacity-75 {
  --bs-text-opacity: 0.75;
}
.text-opacity-100 {
  --bs-text-opacity: 1;
}
.text-primary-emphasis {
  color: var(--bs-primary-text-emphasis) !important;
}
.text-secondary-emphasis {
  color: var(--bs-secondary-text-emphasis) !important;
}
.text-success-emphasis {
  color: var(--bs-success-text-emphasis) !important;
}
.text-info-emphasis {
  color: var(--bs-info-text-emphasis) !important;
}
.text-warning-emphasis {
  color: var(--bs-warning-text-emphasis) !important;
}
.text-danger-emphasis {
  color: var(--bs-danger-text-emphasis) !important;
}
.text-light-emphasis {
  color: var(--bs-light-text-emphasis) !important;
}
.text-dark-emphasis {
  color: var(--bs-dark-text-emphasis) !important;
}
.link-opacity-10 {
  --bs-link-opacity: 0.1;
}
.link-opacity-10-hover:hover {
  --bs-link-opacity: 0.1;
}
.link-opacity-25 {
  --bs-link-opacity: 0.25;
}
.link-opacity-25-hover:hover {
  --bs-link-opacity: 0.25;
}
.link-opacity-50 {
  --bs-link-opacity: 0.5;
}
.link-opacity-50-hover:hover {
  --bs-link-opacity: 0.5;
}
.link-opacity-75 {
  --bs-link-opacity: 0.75;
}
.link-opacity-75-hover:hover {
  --bs-link-opacity: 0.75;
}
.link-opacity-100 {
  --bs-link-opacity: 1;
}
.link-opacity-100-hover:hover {
  --bs-link-opacity: 1;
}
.link-offset-1 {
  text-underline-offset: 0.125em !important;
}
.link-offset-1-hover:hover {
  text-underline-offset: 0.125em !important;
}
.link-offset-2 {
  text-underline-offset: 0.25em !important;
}
.link-offset-2-hover:hover {
  text-underline-offset: 0.25em !important;
}
.link-offset-3 {
  text-underline-offset: 0.375em !important;
}
.link-offset-3-hover:hover {
  text-underline-offset: 0.375em !important;
}
.link-underline-primary {
  --bs-link-underline-opacity: 1;
  text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important;
}
.link-underline-secondary {
  --bs-link-underline-opacity: 1;
  text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important;
}
.link-underline-success {
  --bs-link-underline-opacity: 1;
  text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important;
}
.link-underline-info {
  --bs-link-underline-opacity: 1;
  text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important;
}
.link-underline-warning {
  --bs-link-underline-opacity: 1;
  text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important;
}
.link-underline-danger {
  --bs-link-underline-opacity: 1;
  text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important;
}
.link-underline {
  --bs-link-underline-opacity: 1;
  text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important;
}
.link-underline-opacity-0 {
  --bs-link-underline-opacity: 0;
}
.link-underline-opacity-0-hover:hover {
  --bs-link-underline-opacity: 0;
}
.link-underline-opacity-10 {
  --bs-link-underline-opacity: 0.1;
}
.link-underline-opacity-10-hover:hover {
  --bs-link-underline-opacity: 0.1;
}
.link-underline-opacity-25 {
  --bs-link-underline-opacity: 0.25;
}
.link-underline-opacity-25-hover:hover {
  --bs-link-underline-opacity: 0.25;
}
.link-underline-opacity-50 {
  --bs-link-underline-opacity: 0.5;
}
.link-underline-opacity-50-hover:hover {
  --bs-link-underline-opacity: 0.5;
}
.link-underline-opacity-75 {
  --bs-link-underline-opacity: 0.75;
}
.link-underline-opacity-75-hover:hover {
  --bs-link-underline-opacity: 0.75;
}
.link-underline-opacity-100 {
  --bs-link-underline-opacity: 1;
}
.link-underline-opacity-100-hover:hover {
  --bs-link-underline-opacity: 1;
}
.bg-primary {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;
}
.bg-secondary {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important;
}
.bg-success {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;
}
.bg-info {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important;
}
.bg-warning {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important;
}
.bg-danger {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important;
}
.bg-black {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important;
}
.bg-white {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important;
}
.bg-body {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important;
}
.bg-transparent {
  --bs-bg-opacity: 1;
  background-color: transparent !important;
}
.bg-body-secondary {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important;
}
.bg-body-tertiary {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important;
}
.bg-opacity-10 {
  --bs-bg-opacity: 0.1;
}
.bg-opacity-25 {
  --bs-bg-opacity: 0.25;
}
.bg-opacity-50 {
  --bs-bg-opacity: 0.5;
}
.bg-opacity-75 {
  --bs-bg-opacity: 0.75;
}
.bg-opacity-100 {
  --bs-bg-opacity: 1;
}
.bg-primary-subtle {
  background-color: var(--bs-primary-bg-subtle) !important;
}
.bg-secondary-subtle {
  background-color: var(--bs-secondary-bg-subtle) !important;
}
.bg-success-subtle {
  background-color: var(--bs-success-bg-subtle) !important;
}
.bg-info-subtle {
  background-color: var(--bs-info-bg-subtle) !important;
}
.bg-warning-subtle {
  background-color: var(--bs-warning-bg-subtle) !important;
}
.bg-danger-subtle {
  background-color: var(--bs-danger-bg-subtle) !important;
}
.bg-light-subtle {
  background-color: var(--bs-light-bg-subtle) !important;
}
.bg-dark-subtle {
  background-color: var(--bs-dark-bg-subtle) !important;
}
.bg-gradient {
  background-image: var(--bs-gradient) !important;
}
.user-select-all {
  user-select: all !important;
}
.user-select-auto {
  user-select: auto !important;
}
.user-select-none {
  user-select: none !important;
}
.pe-none {
  pointer-events: none !important;
}
.pe-auto {
  pointer-events: auto !important;
}
.rounded {
  border-radius: var(--bs-border-radius) !important;
}
.rounded-0 {
  border-radius: 0 !important;
}
.rounded-1 {
  border-radius: var(--bs-border-radius-sm) !important;
}
.rounded-2 {
  border-radius: var(--bs-border-radius) !important;
}
.rounded-3 {
  border-radius: var(--bs-border-radius-lg) !important;
}
.rounded-4 {
  border-radius: var(--bs-border-radius-xl) !important;
}
.rounded-5 {
  border-radius: var(--bs-border-radius-xxl) !important;
}
.rounded-circle {
  border-radius: 50% !important;
}
.rounded-pill {
  border-radius: var(--bs-border-radius-pill) !important;
}
.rounded-top {
  border-top-left-radius: var(--bs-border-radius) !important;
  border-top-right-radius: var(--bs-border-radius) !important;
}
.rounded-top-0 {
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
}
.rounded-top-1 {
  border-top-left-radius: var(--bs-border-radius-sm) !important;
  border-top-right-radius: var(--bs-border-radius-sm) !important;
}
.rounded-top-2 {
  border-top-left-radius: var(--bs-border-radius) !important;
  border-top-right-radius: var(--bs-border-radius) !important;
}
.rounded-top-3 {
  border-top-left-radius: var(--bs-border-radius-lg) !important;
  border-top-right-radius: var(--bs-border-radius-lg) !important;
}
.rounded-top-4 {
  border-top-left-radius: var(--bs-border-radius-xl) !important;
  border-top-right-radius: var(--bs-border-radius-xl) !important;
}
.rounded-top-5 {
  border-top-left-radius: var(--bs-border-radius-xxl) !important;
  border-top-right-radius: var(--bs-border-radius-xxl) !important;
}
.rounded-top-circle {
  border-top-left-radius: 50% !important;
  border-top-right-radius: 50% !important;
}
.rounded-top-pill {
  border-top-left-radius: var(--bs-border-radius-pill) !important;
  border-top-right-radius: var(--bs-border-radius-pill) !important;
}
.rounded-end {
  border-top-right-radius: var(--bs-border-radius) !important;
  border-bottom-right-radius: var(--bs-border-radius) !important;
}
.rounded-end-0 {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}
.rounded-end-1 {
  border-top-right-radius: var(--bs-border-radius-sm) !important;
  border-bottom-right-radius: var(--bs-border-radius-sm) !important;
}
.rounded-end-2 {
  border-top-right-radius: var(--bs-border-radius) !important;
  border-bottom-right-radius: var(--bs-border-radius) !important;
}
.rounded-end-3 {
  border-top-right-radius: var(--bs-border-radius-lg) !important;
  border-bottom-right-radius: var(--bs-border-radius-lg) !important;
}
.rounded-end-4 {
  border-top-right-radius: var(--bs-border-radius-xl) !important;
  border-bottom-right-radius: var(--bs-border-radius-xl) !important;
}
.rounded-end-5 {
  border-top-right-radius: var(--bs-border-radius-xxl) !important;
  border-bottom-right-radius: var(--bs-border-radius-xxl) !important;
}
.rounded-end-circle {
  border-top-right-radius: 50% !important;
  border-bottom-right-radius: 50% !important;
}
.rounded-end-pill {
  border-top-right-radius: var(--bs-border-radius-pill) !important;
  border-bottom-right-radius: var(--bs-border-radius-pill) !important;
}
.rounded-bottom {
  border-bottom-right-radius: var(--bs-border-radius) !important;
  border-bottom-left-radius: var(--bs-border-radius) !important;
}
.rounded-bottom-0 {
  border-bottom-right-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
}
.rounded-bottom-1 {
  border-bottom-right-radius: var(--bs-border-radius-sm) !important;
  border-bottom-left-radius: var(--bs-border-radius-sm) !important;
}
.rounded-bottom-2 {
  border-bottom-right-radius: var(--bs-border-radius) !important;
  border-bottom-left-radius: var(--bs-border-radius) !important;
}
.rounded-bottom-3 {
  border-bottom-right-radius: var(--bs-border-radius-lg) !important;
  border-bottom-left-radius: var(--bs-border-radius-lg) !important;
}
.rounded-bottom-4 {
  border-bottom-right-radius: var(--bs-border-radius-xl) !important;
  border-bottom-left-radius: var(--bs-border-radius-xl) !important;
}
.rounded-bottom-5 {
  border-bottom-right-radius: var(--bs-border-radius-xxl) !important;
  border-bottom-left-radius: var(--bs-border-radius-xxl) !important;
}
.rounded-bottom-circle {
  border-bottom-right-radius: 50% !important;
  border-bottom-left-radius: 50% !important;
}
.rounded-bottom-pill {
  border-bottom-right-radius: var(--bs-border-radius-pill) !important;
  border-bottom-left-radius: var(--bs-border-radius-pill) !important;
}
.rounded-start {
  border-bottom-left-radius: var(--bs-border-radius) !important;
  border-top-left-radius: var(--bs-border-radius) !important;
}
.rounded-start-0 {
  border-bottom-left-radius: 0 !important;
  border-top-left-radius: 0 !important;
}
.rounded-start-1 {
  border-bottom-left-radius: var(--bs-border-radius-sm) !important;
  border-top-left-radius: var(--bs-border-radius-sm) !important;
}
.rounded-start-2 {
  border-bottom-left-radius: var(--bs-border-radius) !important;
  border-top-left-radius: var(--bs-border-radius) !important;
}
.rounded-start-3 {
  border-bottom-left-radius: var(--bs-border-radius-lg) !important;
  border-top-left-radius: var(--bs-border-radius-lg) !important;
}
.rounded-start-4 {
  border-bottom-left-radius: var(--bs-border-radius-xl) !important;
  border-top-left-radius: var(--bs-border-radius-xl) !important;
}
.rounded-start-5 {
  border-bottom-left-radius: var(--bs-border-radius-xxl) !important;
  border-top-left-radius: var(--bs-border-radius-xxl) !important;
}
.rounded-start-circle {
  border-bottom-left-radius: 50% !important;
  border-top-left-radius: 50% !important;
}
.rounded-start-pill {
  border-bottom-left-radius: var(--bs-border-radius-pill) !important;
  border-top-left-radius: var(--bs-border-radius-pill) !important;
}
.visible {
  visibility: visible !important;
}
.invisible {
  visibility: hidden !important;
}
.z-n1 {
  z-index: -1 !important;
}
.z-0 {
  z-index: 0 !important;
}
.z-1 {
  z-index: 1 !important;
}
.z-2 {
  z-index: 2 !important;
}
.z-3 {
  z-index: 3 !important;
}
@media (min-width: 576px) {
  .float-sm-start {
    float: left !important;
  }
  .float-sm-end {
    float: right !important;
  }
  .float-sm-none {
    float: none !important;
  }
  .object-fit-sm-contain {
    object-fit: contain !important;
  }
  .object-fit-sm-cover {
    object-fit: cover !important;
  }
  .object-fit-sm-fill {
    object-fit: fill !important;
  }
  .object-fit-sm-scale {
    object-fit: scale-down !important;
  }
  .object-fit-sm-none {
    object-fit: none !important;
  }
  .d-sm-inline {
    display: inline !important;
  }
  .d-sm-inline-block {
    display: inline-block !important;
  }
  .d-sm-block {
    display: block !important;
  }
  .d-sm-grid {
    display: grid !important;
  }
  .d-sm-inline-grid {
    display: inline-grid !important;
  }
  .d-sm-table {
    display: table !important;
  }
  .d-sm-table-row {
    display: table-row !important;
  }
  .d-sm-table-cell {
    display: table-cell !important;
  }
  .d-sm-flex {
    display: flex !important;
  }
  .d-sm-inline-flex {
    display: inline-flex !important;
  }
  .d-sm-none {
    display: none !important;
  }
  .flex-sm-fill {
    flex: 1 1 auto !important;
  }
  .flex-sm-row {
    flex-direction: row !important;
  }
  .flex-sm-column {
    flex-direction: column !important;
  }
  .flex-sm-row-reverse {
    flex-direction: row-reverse !important;
  }
  .flex-sm-column-reverse {
    flex-direction: column-reverse !important;
  }
  .flex-sm-grow-0 {
    flex-grow: 0 !important;
  }
  .flex-sm-grow-1 {
    flex-grow: 1 !important;
  }
  .flex-sm-shrink-0 {
    flex-shrink: 0 !important;
  }
  .flex-sm-shrink-1 {
    flex-shrink: 1 !important;
  }
  .flex-sm-wrap {
    flex-wrap: wrap !important;
  }
  .flex-sm-nowrap {
    flex-wrap: nowrap !important;
  }
  .flex-sm-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }
  .justify-content-sm-start {
    justify-content: flex-start !important;
  }
  .justify-content-sm-end {
    justify-content: flex-end !important;
  }
  .justify-content-sm-center {
    justify-content: center !important;
  }
  .justify-content-sm-between {
    justify-content: space-between !important;
  }
  .justify-content-sm-around {
    justify-content: space-around !important;
  }
  .justify-content-sm-evenly {
    justify-content: space-evenly !important;
  }
  .align-items-sm-start {
    align-items: flex-start !important;
  }
  .align-items-sm-end {
    align-items: flex-end !important;
  }
  .align-items-sm-center {
    align-items: center !important;
  }
  .align-items-sm-baseline {
    align-items: baseline !important;
  }
  .align-items-sm-stretch {
    align-items: stretch !important;
  }
  .align-content-sm-start {
    align-content: flex-start !important;
  }
  .align-content-sm-end {
    align-content: flex-end !important;
  }
  .align-content-sm-center {
    align-content: center !important;
  }
  .align-content-sm-between {
    align-content: space-between !important;
  }
  .align-content-sm-around {
    align-content: space-around !important;
  }
  .align-content-sm-stretch {
    align-content: stretch !important;
  }
  .align-self-sm-auto {
    align-self: auto !important;
  }
  .align-self-sm-start {
    align-self: flex-start !important;
  }
  .align-self-sm-end {
    align-self: flex-end !important;
  }
  .align-self-sm-center {
    align-self: center !important;
  }
  .align-self-sm-baseline {
    align-self: baseline !important;
  }
  .align-self-sm-stretch {
    align-self: stretch !important;
  }
  .order-sm-first {
    order: -1 !important;
  }
  .order-sm-0 {
    order: 0 !important;
  }
  .order-sm-1 {
    order: 1 !important;
  }
  .order-sm-2 {
    order: 2 !important;
  }
  .order-sm-3 {
    order: 3 !important;
  }
  .order-sm-4 {
    order: 4 !important;
  }
  .order-sm-5 {
    order: 5 !important;
  }
  .order-sm-last {
    order: 6 !important;
  }
  .m-sm-0 {
    margin: 0 !important;
  }
  .m-sm-1 {
    margin: 0.25rem !important;
  }
  .m-sm-2 {
    margin: 0.5rem !important;
  }
  .m-sm-3 {
    margin: 1rem !important;
  }
  .m-sm-4 {
    margin: 1.5rem !important;
  }
  .m-sm-5 {
    margin: 2rem !important;
  }
  .m-sm-6 {
    margin: 3rem !important;
  }
  .m-sm-auto {
    margin: auto !important;
  }
  .mx-sm-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  .mx-sm-1 {
    margin-right: 0.25rem !important;
    margin-left: 0.25rem !important;
  }
  .mx-sm-2 {
    margin-right: 0.5rem !important;
    margin-left: 0.5rem !important;
  }
  .mx-sm-3 {
    margin-right: 1rem !important;
    margin-left: 1rem !important;
  }
  .mx-sm-4 {
    margin-right: 1.5rem !important;
    margin-left: 1.5rem !important;
  }
  .mx-sm-5 {
    margin-right: 2rem !important;
    margin-left: 2rem !important;
  }
  .mx-sm-6 {
    margin-right: 3rem !important;
    margin-left: 3rem !important;
  }
  .mx-sm-auto {
    margin-right: auto !important;
    margin-left: auto !important;
  }
  .my-sm-0 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  .my-sm-1 {
    margin-top: 0.25rem !important;
    margin-bottom: 0.25rem !important;
  }
  .my-sm-2 {
    margin-top: 0.5rem !important;
    margin-bottom: 0.5rem !important;
  }
  .my-sm-3 {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
  }
  .my-sm-4 {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
  }
  .my-sm-5 {
    margin-top: 2rem !important;
    margin-bottom: 2rem !important;
  }
  .my-sm-6 {
    margin-top: 3rem !important;
    margin-bottom: 3rem !important;
  }
  .my-sm-auto {
    margin-top: auto !important;
    margin-bottom: auto !important;
  }
  .mt-sm-0 {
    margin-top: 0 !important;
  }
  .mt-sm-1 {
    margin-top: 0.25rem !important;
  }
  .mt-sm-2 {
    margin-top: 0.5rem !important;
  }
  .mt-sm-3 {
    margin-top: 1rem !important;
  }
  .mt-sm-4 {
    margin-top: 1.5rem !important;
  }
  .mt-sm-5 {
    margin-top: 2rem !important;
  }
  .mt-sm-6 {
    margin-top: 3rem !important;
  }
  .mt-sm-auto {
    margin-top: auto !important;
  }
  .me-sm-0 {
    margin-right: 0 !important;
  }
  .me-sm-1 {
    margin-right: 0.25rem !important;
  }
  .me-sm-2 {
    margin-right: 0.5rem !important;
  }
  .me-sm-3 {
    margin-right: 1rem !important;
  }
  .me-sm-4 {
    margin-right: 1.5rem !important;
  }
  .me-sm-5 {
    margin-right: 2rem !important;
  }
  .me-sm-6 {
    margin-right: 3rem !important;
  }
  .me-sm-auto {
    margin-right: auto !important;
  }
  .mb-sm-0 {
    margin-bottom: 0 !important;
  }
  .mb-sm-1 {
    margin-bottom: 0.25rem !important;
  }
  .mb-sm-2 {
    margin-bottom: 0.5rem !important;
  }
  .mb-sm-3 {
    margin-bottom: 1rem !important;
  }
  .mb-sm-4 {
    margin-bottom: 1.5rem !important;
  }
  .mb-sm-5 {
    margin-bottom: 2rem !important;
  }
  .mb-sm-6 {
    margin-bottom: 3rem !important;
  }
  .mb-sm-auto {
    margin-bottom: auto !important;
  }
  .ms-sm-0 {
    margin-left: 0 !important;
  }
  .ms-sm-1 {
    margin-left: 0.25rem !important;
  }
  .ms-sm-2 {
    margin-left: 0.5rem !important;
  }
  .ms-sm-3 {
    margin-left: 1rem !important;
  }
  .ms-sm-4 {
    margin-left: 1.5rem !important;
  }
  .ms-sm-5 {
    margin-left: 2rem !important;
  }
  .ms-sm-6 {
    margin-left: 3rem !important;
  }
  .ms-sm-auto {
    margin-left: auto !important;
  }
  .p-sm-0 {
    padding: 0 !important;
  }
  .p-sm-1 {
    padding: 0.25rem !important;
  }
  .p-sm-2 {
    padding: 0.5rem !important;
  }
  .p-sm-3 {
    padding: 1rem !important;
  }
  .p-sm-4 {
    padding: 1.5rem !important;
  }
  .p-sm-5 {
    padding: 2rem !important;
  }
  .p-sm-6 {
    padding: 3rem !important;
  }
  .px-sm-0 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  .px-sm-1 {
    padding-right: 0.25rem !important;
    padding-left: 0.25rem !important;
  }
  .px-sm-2 {
    padding-right: 0.5rem !important;
    padding-left: 0.5rem !important;
  }
  .px-sm-3 {
    padding-right: 1rem !important;
    padding-left: 1rem !important;
  }
  .px-sm-4 {
    padding-right: 1.5rem !important;
    padding-left: 1.5rem !important;
  }
  .px-sm-5 {
    padding-right: 2rem !important;
    padding-left: 2rem !important;
  }
  .px-sm-6 {
    padding-right: 3rem !important;
    padding-left: 3rem !important;
  }
  .py-sm-0 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .py-sm-1 {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
  }
  .py-sm-2 {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
  }
  .py-sm-3 {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
  }
  .py-sm-4 {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }
  .py-sm-5 {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }
  .py-sm-6 {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }
  .pt-sm-0 {
    padding-top: 0 !important;
  }
  .pt-sm-1 {
    padding-top: 0.25rem !important;
  }
  .pt-sm-2 {
    padding-top: 0.5rem !important;
  }
  .pt-sm-3 {
    padding-top: 1rem !important;
  }
  .pt-sm-4 {
    padding-top: 1.5rem !important;
  }
  .pt-sm-5 {
    padding-top: 2rem !important;
  }
  .pt-sm-6 {
    padding-top: 3rem !important;
  }
  .pe-sm-0 {
    padding-right: 0 !important;
  }
  .pe-sm-1 {
    padding-right: 0.25rem !important;
  }
  .pe-sm-2 {
    padding-right: 0.5rem !important;
  }
  .pe-sm-3 {
    padding-right: 1rem !important;
  }
  .pe-sm-4 {
    padding-right: 1.5rem !important;
  }
  .pe-sm-5 {
    padding-right: 2rem !important;
  }
  .pe-sm-6 {
    padding-right: 3rem !important;
  }
  .pb-sm-0 {
    padding-bottom: 0 !important;
  }
  .pb-sm-1 {
    padding-bottom: 0.25rem !important;
  }
  .pb-sm-2 {
    padding-bottom: 0.5rem !important;
  }
  .pb-sm-3 {
    padding-bottom: 1rem !important;
  }
  .pb-sm-4 {
    padding-bottom: 1.5rem !important;
  }
  .pb-sm-5 {
    padding-bottom: 2rem !important;
  }
  .pb-sm-6 {
    padding-bottom: 3rem !important;
  }
  .ps-sm-0 {
    padding-left: 0 !important;
  }
  .ps-sm-1 {
    padding-left: 0.25rem !important;
  }
  .ps-sm-2 {
    padding-left: 0.5rem !important;
  }
  .ps-sm-3 {
    padding-left: 1rem !important;
  }
  .ps-sm-4 {
    padding-left: 1.5rem !important;
  }
  .ps-sm-5 {
    padding-left: 2rem !important;
  }
  .ps-sm-6 {
    padding-left: 3rem !important;
  }
  .gap-sm-0 {
    gap: 0 !important;
  }
  .gap-sm-1 {
    gap: 0.25rem !important;
  }
  .gap-sm-2 {
    gap: 0.5rem !important;
  }
  .gap-sm-3 {
    gap: 1rem !important;
  }
  .gap-sm-4 {
    gap: 1.5rem !important;
  }
  .gap-sm-5 {
    gap: 2rem !important;
  }
  .gap-sm-6 {
    gap: 3rem !important;
  }
  .row-gap-sm-0 {
    row-gap: 0 !important;
  }
  .row-gap-sm-1 {
    row-gap: 0.25rem !important;
  }
  .row-gap-sm-2 {
    row-gap: 0.5rem !important;
  }
  .row-gap-sm-3 {
    row-gap: 1rem !important;
  }
  .row-gap-sm-4 {
    row-gap: 1.5rem !important;
  }
  .row-gap-sm-5 {
    row-gap: 2rem !important;
  }
  .row-gap-sm-6 {
    row-gap: 3rem !important;
  }
  .column-gap-sm-0 {
    column-gap: 0 !important;
  }
  .column-gap-sm-1 {
    column-gap: 0.25rem !important;
  }
  .column-gap-sm-2 {
    column-gap: 0.5rem !important;
  }
  .column-gap-sm-3 {
    column-gap: 1rem !important;
  }
  .column-gap-sm-4 {
    column-gap: 1.5rem !important;
  }
  .column-gap-sm-5 {
    column-gap: 2rem !important;
  }
  .column-gap-sm-6 {
    column-gap: 3rem !important;
  }
  .text-sm-start {
    text-align: left !important;
  }
  .text-sm-end {
    text-align: right !important;
  }
  .text-sm-center {
    text-align: center !important;
  }
}
@media (min-width: 768px) {
  .float-md-start {
    float: left !important;
  }
  .float-md-end {
    float: right !important;
  }
  .float-md-none {
    float: none !important;
  }
  .object-fit-md-contain {
    object-fit: contain !important;
  }
  .object-fit-md-cover {
    object-fit: cover !important;
  }
  .object-fit-md-fill {
    object-fit: fill !important;
  }
  .object-fit-md-scale {
    object-fit: scale-down !important;
  }
  .object-fit-md-none {
    object-fit: none !important;
  }
  .d-md-inline {
    display: inline !important;
  }
  .d-md-inline-block {
    display: inline-block !important;
  }
  .d-md-block {
    display: block !important;
  }
  .d-md-grid {
    display: grid !important;
  }
  .d-md-inline-grid {
    display: inline-grid !important;
  }
  .d-md-table {
    display: table !important;
  }
  .d-md-table-row {
    display: table-row !important;
  }
  .d-md-table-cell {
    display: table-cell !important;
  }
  .d-md-flex {
    display: flex !important;
  }
  .d-md-inline-flex {
    display: inline-flex !important;
  }
  .d-md-none {
    display: none !important;
  }
  .flex-md-fill {
    flex: 1 1 auto !important;
  }
  .flex-md-row {
    flex-direction: row !important;
  }
  .flex-md-column {
    flex-direction: column !important;
  }
  .flex-md-row-reverse {
    flex-direction: row-reverse !important;
  }
  .flex-md-column-reverse {
    flex-direction: column-reverse !important;
  }
  .flex-md-grow-0 {
    flex-grow: 0 !important;
  }
  .flex-md-grow-1 {
    flex-grow: 1 !important;
  }
  .flex-md-shrink-0 {
    flex-shrink: 0 !important;
  }
  .flex-md-shrink-1 {
    flex-shrink: 1 !important;
  }
  .flex-md-wrap {
    flex-wrap: wrap !important;
  }
  .flex-md-nowrap {
    flex-wrap: nowrap !important;
  }
  .flex-md-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }
  .justify-content-md-start {
    justify-content: flex-start !important;
  }
  .justify-content-md-end {
    justify-content: flex-end !important;
  }
  .justify-content-md-center {
    justify-content: center !important;
  }
  .justify-content-md-between {
    justify-content: space-between !important;
  }
  .justify-content-md-around {
    justify-content: space-around !important;
  }
  .justify-content-md-evenly {
    justify-content: space-evenly !important;
  }
  .align-items-md-start {
    align-items: flex-start !important;
  }
  .align-items-md-end {
    align-items: flex-end !important;
  }
  .align-items-md-center {
    align-items: center !important;
  }
  .align-items-md-baseline {
    align-items: baseline !important;
  }
  .align-items-md-stretch {
    align-items: stretch !important;
  }
  .align-content-md-start {
    align-content: flex-start !important;
  }
  .align-content-md-end {
    align-content: flex-end !important;
  }
  .align-content-md-center {
    align-content: center !important;
  }
  .align-content-md-between {
    align-content: space-between !important;
  }
  .align-content-md-around {
    align-content: space-around !important;
  }
  .align-content-md-stretch {
    align-content: stretch !important;
  }
  .align-self-md-auto {
    align-self: auto !important;
  }
  .align-self-md-start {
    align-self: flex-start !important;
  }
  .align-self-md-end {
    align-self: flex-end !important;
  }
  .align-self-md-center {
    align-self: center !important;
  }
  .align-self-md-baseline {
    align-self: baseline !important;
  }
  .align-self-md-stretch {
    align-self: stretch !important;
  }
  .order-md-first {
    order: -1 !important;
  }
  .order-md-0 {
    order: 0 !important;
  }
  .order-md-1 {
    order: 1 !important;
  }
  .order-md-2 {
    order: 2 !important;
  }
  .order-md-3 {
    order: 3 !important;
  }
  .order-md-4 {
    order: 4 !important;
  }
  .order-md-5 {
    order: 5 !important;
  }
  .order-md-last {
    order: 6 !important;
  }
  .m-md-0 {
    margin: 0 !important;
  }
  .m-md-1 {
    margin: 0.25rem !important;
  }
  .m-md-2 {
    margin: 0.5rem !important;
  }
  .m-md-3 {
    margin: 1rem !important;
  }
  .m-md-4 {
    margin: 1.5rem !important;
  }
  .m-md-5 {
    margin: 2rem !important;
  }
  .m-md-6 {
    margin: 3rem !important;
  }
  .m-md-auto {
    margin: auto !important;
  }
  .mx-md-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  .mx-md-1 {
    margin-right: 0.25rem !important;
    margin-left: 0.25rem !important;
  }
  .mx-md-2 {
    margin-right: 0.5rem !important;
    margin-left: 0.5rem !important;
  }
  .mx-md-3 {
    margin-right: 1rem !important;
    margin-left: 1rem !important;
  }
  .mx-md-4 {
    margin-right: 1.5rem !important;
    margin-left: 1.5rem !important;
  }
  .mx-md-5 {
    margin-right: 2rem !important;
    margin-left: 2rem !important;
  }
  .mx-md-6 {
    margin-right: 3rem !important;
    margin-left: 3rem !important;
  }
  .mx-md-auto {
    margin-right: auto !important;
    margin-left: auto !important;
  }
  .my-md-0 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  .my-md-1 {
    margin-top: 0.25rem !important;
    margin-bottom: 0.25rem !important;
  }
  .my-md-2 {
    margin-top: 0.5rem !important;
    margin-bottom: 0.5rem !important;
  }
  .my-md-3 {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
  }
  .my-md-4 {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
  }
  .my-md-5 {
    margin-top: 2rem !important;
    margin-bottom: 2rem !important;
  }
  .my-md-6 {
    margin-top: 3rem !important;
    margin-bottom: 3rem !important;
  }
  .my-md-auto {
    margin-top: auto !important;
    margin-bottom: auto !important;
  }
  .mt-md-0 {
    margin-top: 0 !important;
  }
  .mt-md-1 {
    margin-top: 0.25rem !important;
  }
  .mt-md-2 {
    margin-top: 0.5rem !important;
  }
  .mt-md-3 {
    margin-top: 1rem !important;
  }
  .mt-md-4 {
    margin-top: 1.5rem !important;
  }
  .mt-md-5 {
    margin-top: 2rem !important;
  }
  .mt-md-6 {
    margin-top: 3rem !important;
  }
  .mt-md-auto {
    margin-top: auto !important;
  }
  .me-md-0 {
    margin-right: 0 !important;
  }
  .me-md-1 {
    margin-right: 0.25rem !important;
  }
  .me-md-2 {
    margin-right: 0.5rem !important;
  }
  .me-md-3 {
    margin-right: 1rem !important;
  }
  .me-md-4 {
    margin-right: 1.5rem !important;
  }
  .me-md-5 {
    margin-right: 2rem !important;
  }
  .me-md-6 {
    margin-right: 3rem !important;
  }
  .me-md-auto {
    margin-right: auto !important;
  }
  .mb-md-0 {
    margin-bottom: 0 !important;
  }
  .mb-md-1 {
    margin-bottom: 0.25rem !important;
  }
  .mb-md-2 {
    margin-bottom: 0.5rem !important;
  }
  .mb-md-3 {
    margin-bottom: 1rem !important;
  }
  .mb-md-4 {
    margin-bottom: 1.5rem !important;
  }
  .mb-md-5 {
    margin-bottom: 2rem !important;
  }
  .mb-md-6 {
    margin-bottom: 3rem !important;
  }
  .mb-md-auto {
    margin-bottom: auto !important;
  }
  .ms-md-0 {
    margin-left: 0 !important;
  }
  .ms-md-1 {
    margin-left: 0.25rem !important;
  }
  .ms-md-2 {
    margin-left: 0.5rem !important;
  }
  .ms-md-3 {
    margin-left: 1rem !important;
  }
  .ms-md-4 {
    margin-left: 1.5rem !important;
  }
  .ms-md-5 {
    margin-left: 2rem !important;
  }
  .ms-md-6 {
    margin-left: 3rem !important;
  }
  .ms-md-auto {
    margin-left: auto !important;
  }
  .p-md-0 {
    padding: 0 !important;
  }
  .p-md-1 {
    padding: 0.25rem !important;
  }
  .p-md-2 {
    padding: 0.5rem !important;
  }
  .p-md-3 {
    padding: 1rem !important;
  }
  .p-md-4 {
    padding: 1.5rem !important;
  }
  .p-md-5 {
    padding: 2rem !important;
  }
  .p-md-6 {
    padding: 3rem !important;
  }
  .px-md-0 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  .px-md-1 {
    padding-right: 0.25rem !important;
    padding-left: 0.25rem !important;
  }
  .px-md-2 {
    padding-right: 0.5rem !important;
    padding-left: 0.5rem !important;
  }
  .px-md-3 {
    padding-right: 1rem !important;
    padding-left: 1rem !important;
  }
  .px-md-4 {
    padding-right: 1.5rem !important;
    padding-left: 1.5rem !important;
  }
  .px-md-5 {
    padding-right: 2rem !important;
    padding-left: 2rem !important;
  }
  .px-md-6 {
    padding-right: 3rem !important;
    padding-left: 3rem !important;
  }
  .py-md-0 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .py-md-1 {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
  }
  .py-md-2 {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
  }
  .py-md-3 {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
  }
  .py-md-4 {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }
  .py-md-5 {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }
  .py-md-6 {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }
  .pt-md-0 {
    padding-top: 0 !important;
  }
  .pt-md-1 {
    padding-top: 0.25rem !important;
  }
  .pt-md-2 {
    padding-top: 0.5rem !important;
  }
  .pt-md-3 {
    padding-top: 1rem !important;
  }
  .pt-md-4 {
    padding-top: 1.5rem !important;
  }
  .pt-md-5 {
    padding-top: 2rem !important;
  }
  .pt-md-6 {
    padding-top: 3rem !important;
  }
  .pe-md-0 {
    padding-right: 0 !important;
  }
  .pe-md-1 {
    padding-right: 0.25rem !important;
  }
  .pe-md-2 {
    padding-right: 0.5rem !important;
  }
  .pe-md-3 {
    padding-right: 1rem !important;
  }
  .pe-md-4 {
    padding-right: 1.5rem !important;
  }
  .pe-md-5 {
    padding-right: 2rem !important;
  }
  .pe-md-6 {
    padding-right: 3rem !important;
  }
  .pb-md-0 {
    padding-bottom: 0 !important;
  }
  .pb-md-1 {
    padding-bottom: 0.25rem !important;
  }
  .pb-md-2 {
    padding-bottom: 0.5rem !important;
  }
  .pb-md-3 {
    padding-bottom: 1rem !important;
  }
  .pb-md-4 {
    padding-bottom: 1.5rem !important;
  }
  .pb-md-5 {
    padding-bottom: 2rem !important;
  }
  .pb-md-6 {
    padding-bottom: 3rem !important;
  }
  .ps-md-0 {
    padding-left: 0 !important;
  }
  .ps-md-1 {
    padding-left: 0.25rem !important;
  }
  .ps-md-2 {
    padding-left: 0.5rem !important;
  }
  .ps-md-3 {
    padding-left: 1rem !important;
  }
  .ps-md-4 {
    padding-left: 1.5rem !important;
  }
  .ps-md-5 {
    padding-left: 2rem !important;
  }
  .ps-md-6 {
    padding-left: 3rem !important;
  }
  .gap-md-0 {
    gap: 0 !important;
  }
  .gap-md-1 {
    gap: 0.25rem !important;
  }
  .gap-md-2 {
    gap: 0.5rem !important;
  }
  .gap-md-3 {
    gap: 1rem !important;
  }
  .gap-md-4 {
    gap: 1.5rem !important;
  }
  .gap-md-5 {
    gap: 2rem !important;
  }
  .gap-md-6 {
    gap: 3rem !important;
  }
  .row-gap-md-0 {
    row-gap: 0 !important;
  }
  .row-gap-md-1 {
    row-gap: 0.25rem !important;
  }
  .row-gap-md-2 {
    row-gap: 0.5rem !important;
  }
  .row-gap-md-3 {
    row-gap: 1rem !important;
  }
  .row-gap-md-4 {
    row-gap: 1.5rem !important;
  }
  .row-gap-md-5 {
    row-gap: 2rem !important;
  }
  .row-gap-md-6 {
    row-gap: 3rem !important;
  }
  .column-gap-md-0 {
    column-gap: 0 !important;
  }
  .column-gap-md-1 {
    column-gap: 0.25rem !important;
  }
  .column-gap-md-2 {
    column-gap: 0.5rem !important;
  }
  .column-gap-md-3 {
    column-gap: 1rem !important;
  }
  .column-gap-md-4 {
    column-gap: 1.5rem !important;
  }
  .column-gap-md-5 {
    column-gap: 2rem !important;
  }
  .column-gap-md-6 {
    column-gap: 3rem !important;
  }
  .text-md-start {
    text-align: left !important;
  }
  .text-md-end {
    text-align: right !important;
  }
  .text-md-center {
    text-align: center !important;
  }
}
@media (min-width: 992px) {
  .float-lg-start {
    float: left !important;
  }
  .float-lg-end {
    float: right !important;
  }
  .float-lg-none {
    float: none !important;
  }
  .object-fit-lg-contain {
    object-fit: contain !important;
  }
  .object-fit-lg-cover {
    object-fit: cover !important;
  }
  .object-fit-lg-fill {
    object-fit: fill !important;
  }
  .object-fit-lg-scale {
    object-fit: scale-down !important;
  }
  .object-fit-lg-none {
    object-fit: none !important;
  }
  .d-lg-inline {
    display: inline !important;
  }
  .d-lg-inline-block {
    display: inline-block !important;
  }
  .d-lg-block {
    display: block !important;
  }
  .d-lg-grid {
    display: grid !important;
  }
  .d-lg-inline-grid {
    display: inline-grid !important;
  }
  .d-lg-table {
    display: table !important;
  }
  .d-lg-table-row {
    display: table-row !important;
  }
  .d-lg-table-cell {
    display: table-cell !important;
  }
  .d-lg-flex {
    display: flex !important;
  }
  .d-lg-inline-flex {
    display: inline-flex !important;
  }
  .d-lg-none {
    display: none !important;
  }
  .flex-lg-fill {
    flex: 1 1 auto !important;
  }
  .flex-lg-row {
    flex-direction: row !important;
  }
  .flex-lg-column {
    flex-direction: column !important;
  }
  .flex-lg-row-reverse {
    flex-direction: row-reverse !important;
  }
  .flex-lg-column-reverse {
    flex-direction: column-reverse !important;
  }
  .flex-lg-grow-0 {
    flex-grow: 0 !important;
  }
  .flex-lg-grow-1 {
    flex-grow: 1 !important;
  }
  .flex-lg-shrink-0 {
    flex-shrink: 0 !important;
  }
  .flex-lg-shrink-1 {
    flex-shrink: 1 !important;
  }
  .flex-lg-wrap {
    flex-wrap: wrap !important;
  }
  .flex-lg-nowrap {
    flex-wrap: nowrap !important;
  }
  .flex-lg-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }
  .justify-content-lg-start {
    justify-content: flex-start !important;
  }
  .justify-content-lg-end {
    justify-content: flex-end !important;
  }
  .justify-content-lg-center {
    justify-content: center !important;
  }
  .justify-content-lg-between {
    justify-content: space-between !important;
  }
  .justify-content-lg-around {
    justify-content: space-around !important;
  }
  .justify-content-lg-evenly {
    justify-content: space-evenly !important;
  }
  .align-items-lg-start {
    align-items: flex-start !important;
  }
  .align-items-lg-end {
    align-items: flex-end !important;
  }
  .align-items-lg-center {
    align-items: center !important;
  }
  .align-items-lg-baseline {
    align-items: baseline !important;
  }
  .align-items-lg-stretch {
    align-items: stretch !important;
  }
  .align-content-lg-start {
    align-content: flex-start !important;
  }
  .align-content-lg-end {
    align-content: flex-end !important;
  }
  .align-content-lg-center {
    align-content: center !important;
  }
  .align-content-lg-between {
    align-content: space-between !important;
  }
  .align-content-lg-around {
    align-content: space-around !important;
  }
  .align-content-lg-stretch {
    align-content: stretch !important;
  }
  .align-self-lg-auto {
    align-self: auto !important;
  }
  .align-self-lg-start {
    align-self: flex-start !important;
  }
  .align-self-lg-end {
    align-self: flex-end !important;
  }
  .align-self-lg-center {
    align-self: center !important;
  }
  .align-self-lg-baseline {
    align-self: baseline !important;
  }
  .align-self-lg-stretch {
    align-self: stretch !important;
  }
  .order-lg-first {
    order: -1 !important;
  }
  .order-lg-0 {
    order: 0 !important;
  }
  .order-lg-1 {
    order: 1 !important;
  }
  .order-lg-2 {
    order: 2 !important;
  }
  .order-lg-3 {
    order: 3 !important;
  }
  .order-lg-4 {
    order: 4 !important;
  }
  .order-lg-5 {
    order: 5 !important;
  }
  .order-lg-last {
    order: 6 !important;
  }
  .m-lg-0 {
    margin: 0 !important;
  }
  .m-lg-1 {
    margin: 0.25rem !important;
  }
  .m-lg-2 {
    margin: 0.5rem !important;
  }
  .m-lg-3 {
    margin: 1rem !important;
  }
  .m-lg-4 {
    margin: 1.5rem !important;
  }
  .m-lg-5 {
    margin: 2rem !important;
  }
  .m-lg-6 {
    margin: 3rem !important;
  }
  .m-lg-auto {
    margin: auto !important;
  }
  .mx-lg-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  .mx-lg-1 {
    margin-right: 0.25rem !important;
    margin-left: 0.25rem !important;
  }
  .mx-lg-2 {
    margin-right: 0.5rem !important;
    margin-left: 0.5rem !important;
  }
  .mx-lg-3 {
    margin-right: 1rem !important;
    margin-left: 1rem !important;
  }
  .mx-lg-4 {
    margin-right: 1.5rem !important;
    margin-left: 1.5rem !important;
  }
  .mx-lg-5 {
    margin-right: 2rem !important;
    margin-left: 2rem !important;
  }
  .mx-lg-6 {
    margin-right: 3rem !important;
    margin-left: 3rem !important;
  }
  .mx-lg-auto {
    margin-right: auto !important;
    margin-left: auto !important;
  }
  .my-lg-0 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  .my-lg-1 {
    margin-top: 0.25rem !important;
    margin-bottom: 0.25rem !important;
  }
  .my-lg-2 {
    margin-top: 0.5rem !important;
    margin-bottom: 0.5rem !important;
  }
  .my-lg-3 {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
  }
  .my-lg-4 {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
  }
  .my-lg-5 {
    margin-top: 2rem !important;
    margin-bottom: 2rem !important;
  }
  .my-lg-6 {
    margin-top: 3rem !important;
    margin-bottom: 3rem !important;
  }
  .my-lg-auto {
    margin-top: auto !important;
    margin-bottom: auto !important;
  }
  .mt-lg-0 {
    margin-top: 0 !important;
  }
  .mt-lg-1 {
    margin-top: 0.25rem !important;
  }
  .mt-lg-2 {
    margin-top: 0.5rem !important;
  }
  .mt-lg-3 {
    margin-top: 1rem !important;
  }
  .mt-lg-4 {
    margin-top: 1.5rem !important;
  }
  .mt-lg-5 {
    margin-top: 2rem !important;
  }
  .mt-lg-6 {
    margin-top: 3rem !important;
  }
  .mt-lg-auto {
    margin-top: auto !important;
  }
  .me-lg-0 {
    margin-right: 0 !important;
  }
  .me-lg-1 {
    margin-right: 0.25rem !important;
  }
  .me-lg-2 {
    margin-right: 0.5rem !important;
  }
  .me-lg-3 {
    margin-right: 1rem !important;
  }
  .me-lg-4 {
    margin-right: 1.5rem !important;
  }
  .me-lg-5 {
    margin-right: 2rem !important;
  }
  .me-lg-6 {
    margin-right: 3rem !important;
  }
  .me-lg-auto {
    margin-right: auto !important;
  }
  .mb-lg-0 {
    margin-bottom: 0 !important;
  }
  .mb-lg-1 {
    margin-bottom: 0.25rem !important;
  }
  .mb-lg-2 {
    margin-bottom: 0.5rem !important;
  }
  .mb-lg-3 {
    margin-bottom: 1rem !important;
  }
  .mb-lg-4 {
    margin-bottom: 1.5rem !important;
  }
  .mb-lg-5 {
    margin-bottom: 2rem !important;
  }
  .mb-lg-6 {
    margin-bottom: 3rem !important;
  }
  .mb-lg-auto {
    margin-bottom: auto !important;
  }
  .ms-lg-0 {
    margin-left: 0 !important;
  }
  .ms-lg-1 {
    margin-left: 0.25rem !important;
  }
  .ms-lg-2 {
    margin-left: 0.5rem !important;
  }
  .ms-lg-3 {
    margin-left: 1rem !important;
  }
  .ms-lg-4 {
    margin-left: 1.5rem !important;
  }
  .ms-lg-5 {
    margin-left: 2rem !important;
  }
  .ms-lg-6 {
    margin-left: 3rem !important;
  }
  .ms-lg-auto {
    margin-left: auto !important;
  }
  .p-lg-0 {
    padding: 0 !important;
  }
  .p-lg-1 {
    padding: 0.25rem !important;
  }
  .p-lg-2 {
    padding: 0.5rem !important;
  }
  .p-lg-3 {
    padding: 1rem !important;
  }
  .p-lg-4 {
    padding: 1.5rem !important;
  }
  .p-lg-5 {
    padding: 2rem !important;
  }
  .p-lg-6 {
    padding: 3rem !important;
  }
  .px-lg-0 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  .px-lg-1 {
    padding-right: 0.25rem !important;
    padding-left: 0.25rem !important;
  }
  .px-lg-2 {
    padding-right: 0.5rem !important;
    padding-left: 0.5rem !important;
  }
  .px-lg-3 {
    padding-right: 1rem !important;
    padding-left: 1rem !important;
  }
  .px-lg-4 {
    padding-right: 1.5rem !important;
    padding-left: 1.5rem !important;
  }
  .px-lg-5 {
    padding-right: 2rem !important;
    padding-left: 2rem !important;
  }
  .px-lg-6 {
    padding-right: 3rem !important;
    padding-left: 3rem !important;
  }
  .py-lg-0 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .py-lg-1 {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
  }
  .py-lg-2 {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
  }
  .py-lg-3 {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
  }
  .py-lg-4 {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }
  .py-lg-5 {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }
  .py-lg-6 {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }
  .pt-lg-0 {
    padding-top: 0 !important;
  }
  .pt-lg-1 {
    padding-top: 0.25rem !important;
  }
  .pt-lg-2 {
    padding-top: 0.5rem !important;
  }
  .pt-lg-3 {
    padding-top: 1rem !important;
  }
  .pt-lg-4 {
    padding-top: 1.5rem !important;
  }
  .pt-lg-5 {
    padding-top: 2rem !important;
  }
  .pt-lg-6 {
    padding-top: 3rem !important;
  }
  .pe-lg-0 {
    padding-right: 0 !important;
  }
  .pe-lg-1 {
    padding-right: 0.25rem !important;
  }
  .pe-lg-2 {
    padding-right: 0.5rem !important;
  }
  .pe-lg-3 {
    padding-right: 1rem !important;
  }
  .pe-lg-4 {
    padding-right: 1.5rem !important;
  }
  .pe-lg-5 {
    padding-right: 2rem !important;
  }
  .pe-lg-6 {
    padding-right: 3rem !important;
  }
  .pb-lg-0 {
    padding-bottom: 0 !important;
  }
  .pb-lg-1 {
    padding-bottom: 0.25rem !important;
  }
  .pb-lg-2 {
    padding-bottom: 0.5rem !important;
  }
  .pb-lg-3 {
    padding-bottom: 1rem !important;
  }
  .pb-lg-4 {
    padding-bottom: 1.5rem !important;
  }
  .pb-lg-5 {
    padding-bottom: 2rem !important;
  }
  .pb-lg-6 {
    padding-bottom: 3rem !important;
  }
  .ps-lg-0 {
    padding-left: 0 !important;
  }
  .ps-lg-1 {
    padding-left: 0.25rem !important;
  }
  .ps-lg-2 {
    padding-left: 0.5rem !important;
  }
  .ps-lg-3 {
    padding-left: 1rem !important;
  }
  .ps-lg-4 {
    padding-left: 1.5rem !important;
  }
  .ps-lg-5 {
    padding-left: 2rem !important;
  }
  .ps-lg-6 {
    padding-left: 3rem !important;
  }
  .gap-lg-0 {
    gap: 0 !important;
  }
  .gap-lg-1 {
    gap: 0.25rem !important;
  }
  .gap-lg-2 {
    gap: 0.5rem !important;
  }
  .gap-lg-3 {
    gap: 1rem !important;
  }
  .gap-lg-4 {
    gap: 1.5rem !important;
  }
  .gap-lg-5 {
    gap: 2rem !important;
  }
  .gap-lg-6 {
    gap: 3rem !important;
  }
  .row-gap-lg-0 {
    row-gap: 0 !important;
  }
  .row-gap-lg-1 {
    row-gap: 0.25rem !important;
  }
  .row-gap-lg-2 {
    row-gap: 0.5rem !important;
  }
  .row-gap-lg-3 {
    row-gap: 1rem !important;
  }
  .row-gap-lg-4 {
    row-gap: 1.5rem !important;
  }
  .row-gap-lg-5 {
    row-gap: 2rem !important;
  }
  .row-gap-lg-6 {
    row-gap: 3rem !important;
  }
  .column-gap-lg-0 {
    column-gap: 0 !important;
  }
  .column-gap-lg-1 {
    column-gap: 0.25rem !important;
  }
  .column-gap-lg-2 {
    column-gap: 0.5rem !important;
  }
  .column-gap-lg-3 {
    column-gap: 1rem !important;
  }
  .column-gap-lg-4 {
    column-gap: 1.5rem !important;
  }
  .column-gap-lg-5 {
    column-gap: 2rem !important;
  }
  .column-gap-lg-6 {
    column-gap: 3rem !important;
  }
  .text-lg-start {
    text-align: left !important;
  }
  .text-lg-end {
    text-align: right !important;
  }
  .text-lg-center {
    text-align: center !important;
  }
}
@media (min-width: 1200px) {
  .float-xl-start {
    float: left !important;
  }
  .float-xl-end {
    float: right !important;
  }
  .float-xl-none {
    float: none !important;
  }
  .object-fit-xl-contain {
    object-fit: contain !important;
  }
  .object-fit-xl-cover {
    object-fit: cover !important;
  }
  .object-fit-xl-fill {
    object-fit: fill !important;
  }
  .object-fit-xl-scale {
    object-fit: scale-down !important;
  }
  .object-fit-xl-none {
    object-fit: none !important;
  }
  .d-xl-inline {
    display: inline !important;
  }
  .d-xl-inline-block {
    display: inline-block !important;
  }
  .d-xl-block {
    display: block !important;
  }
  .d-xl-grid {
    display: grid !important;
  }
  .d-xl-inline-grid {
    display: inline-grid !important;
  }
  .d-xl-table {
    display: table !important;
  }
  .d-xl-table-row {
    display: table-row !important;
  }
  .d-xl-table-cell {
    display: table-cell !important;
  }
  .d-xl-flex {
    display: flex !important;
  }
  .d-xl-inline-flex {
    display: inline-flex !important;
  }
  .d-xl-none {
    display: none !important;
  }
  .flex-xl-fill {
    flex: 1 1 auto !important;
  }
  .flex-xl-row {
    flex-direction: row !important;
  }
  .flex-xl-column {
    flex-direction: column !important;
  }
  .flex-xl-row-reverse {
    flex-direction: row-reverse !important;
  }
  .flex-xl-column-reverse {
    flex-direction: column-reverse !important;
  }
  .flex-xl-grow-0 {
    flex-grow: 0 !important;
  }
  .flex-xl-grow-1 {
    flex-grow: 1 !important;
  }
  .flex-xl-shrink-0 {
    flex-shrink: 0 !important;
  }
  .flex-xl-shrink-1 {
    flex-shrink: 1 !important;
  }
  .flex-xl-wrap {
    flex-wrap: wrap !important;
  }
  .flex-xl-nowrap {
    flex-wrap: nowrap !important;
  }
  .flex-xl-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }
  .justify-content-xl-start {
    justify-content: flex-start !important;
  }
  .justify-content-xl-end {
    justify-content: flex-end !important;
  }
  .justify-content-xl-center {
    justify-content: center !important;
  }
  .justify-content-xl-between {
    justify-content: space-between !important;
  }
  .justify-content-xl-around {
    justify-content: space-around !important;
  }
  .justify-content-xl-evenly {
    justify-content: space-evenly !important;
  }
  .align-items-xl-start {
    align-items: flex-start !important;
  }
  .align-items-xl-end {
    align-items: flex-end !important;
  }
  .align-items-xl-center {
    align-items: center !important;
  }
  .align-items-xl-baseline {
    align-items: baseline !important;
  }
  .align-items-xl-stretch {
    align-items: stretch !important;
  }
  .align-content-xl-start {
    align-content: flex-start !important;
  }
  .align-content-xl-end {
    align-content: flex-end !important;
  }
  .align-content-xl-center {
    align-content: center !important;
  }
  .align-content-xl-between {
    align-content: space-between !important;
  }
  .align-content-xl-around {
    align-content: space-around !important;
  }
  .align-content-xl-stretch {
    align-content: stretch !important;
  }
  .align-self-xl-auto {
    align-self: auto !important;
  }
  .align-self-xl-start {
    align-self: flex-start !important;
  }
  .align-self-xl-end {
    align-self: flex-end !important;
  }
  .align-self-xl-center {
    align-self: center !important;
  }
  .align-self-xl-baseline {
    align-self: baseline !important;
  }
  .align-self-xl-stretch {
    align-self: stretch !important;
  }
  .order-xl-first {
    order: -1 !important;
  }
  .order-xl-0 {
    order: 0 !important;
  }
  .order-xl-1 {
    order: 1 !important;
  }
  .order-xl-2 {
    order: 2 !important;
  }
  .order-xl-3 {
    order: 3 !important;
  }
  .order-xl-4 {
    order: 4 !important;
  }
  .order-xl-5 {
    order: 5 !important;
  }
  .order-xl-last {
    order: 6 !important;
  }
  .m-xl-0 {
    margin: 0 !important;
  }
  .m-xl-1 {
    margin: 0.25rem !important;
  }
  .m-xl-2 {
    margin: 0.5rem !important;
  }
  .m-xl-3 {
    margin: 1rem !important;
  }
  .m-xl-4 {
    margin: 1.5rem !important;
  }
  .m-xl-5 {
    margin: 2rem !important;
  }
  .m-xl-6 {
    margin: 3rem !important;
  }
  .m-xl-auto {
    margin: auto !important;
  }
  .mx-xl-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  .mx-xl-1 {
    margin-right: 0.25rem !important;
    margin-left: 0.25rem !important;
  }
  .mx-xl-2 {
    margin-right: 0.5rem !important;
    margin-left: 0.5rem !important;
  }
  .mx-xl-3 {
    margin-right: 1rem !important;
    margin-left: 1rem !important;
  }
  .mx-xl-4 {
    margin-right: 1.5rem !important;
    margin-left: 1.5rem !important;
  }
  .mx-xl-5 {
    margin-right: 2rem !important;
    margin-left: 2rem !important;
  }
  .mx-xl-6 {
    margin-right: 3rem !important;
    margin-left: 3rem !important;
  }
  .mx-xl-auto {
    margin-right: auto !important;
    margin-left: auto !important;
  }
  .my-xl-0 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  .my-xl-1 {
    margin-top: 0.25rem !important;
    margin-bottom: 0.25rem !important;
  }
  .my-xl-2 {
    margin-top: 0.5rem !important;
    margin-bottom: 0.5rem !important;
  }
  .my-xl-3 {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
  }
  .my-xl-4 {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
  }
  .my-xl-5 {
    margin-top: 2rem !important;
    margin-bottom: 2rem !important;
  }
  .my-xl-6 {
    margin-top: 3rem !important;
    margin-bottom: 3rem !important;
  }
  .my-xl-auto {
    margin-top: auto !important;
    margin-bottom: auto !important;
  }
  .mt-xl-0 {
    margin-top: 0 !important;
  }
  .mt-xl-1 {
    margin-top: 0.25rem !important;
  }
  .mt-xl-2 {
    margin-top: 0.5rem !important;
  }
  .mt-xl-3 {
    margin-top: 1rem !important;
  }
  .mt-xl-4 {
    margin-top: 1.5rem !important;
  }
  .mt-xl-5 {
    margin-top: 2rem !important;
  }
  .mt-xl-6 {
    margin-top: 3rem !important;
  }
  .mt-xl-auto {
    margin-top: auto !important;
  }
  .me-xl-0 {
    margin-right: 0 !important;
  }
  .me-xl-1 {
    margin-right: 0.25rem !important;
  }
  .me-xl-2 {
    margin-right: 0.5rem !important;
  }
  .me-xl-3 {
    margin-right: 1rem !important;
  }
  .me-xl-4 {
    margin-right: 1.5rem !important;
  }
  .me-xl-5 {
    margin-right: 2rem !important;
  }
  .me-xl-6 {
    margin-right: 3rem !important;
  }
  .me-xl-auto {
    margin-right: auto !important;
  }
  .mb-xl-0 {
    margin-bottom: 0 !important;
  }
  .mb-xl-1 {
    margin-bottom: 0.25rem !important;
  }
  .mb-xl-2 {
    margin-bottom: 0.5rem !important;
  }
  .mb-xl-3 {
    margin-bottom: 1rem !important;
  }
  .mb-xl-4 {
    margin-bottom: 1.5rem !important;
  }
  .mb-xl-5 {
    margin-bottom: 2rem !important;
  }
  .mb-xl-6 {
    margin-bottom: 3rem !important;
  }
  .mb-xl-auto {
    margin-bottom: auto !important;
  }
  .ms-xl-0 {
    margin-left: 0 !important;
  }
  .ms-xl-1 {
    margin-left: 0.25rem !important;
  }
  .ms-xl-2 {
    margin-left: 0.5rem !important;
  }
  .ms-xl-3 {
    margin-left: 1rem !important;
  }
  .ms-xl-4 {
    margin-left: 1.5rem !important;
  }
  .ms-xl-5 {
    margin-left: 2rem !important;
  }
  .ms-xl-6 {
    margin-left: 3rem !important;
  }
  .ms-xl-auto {
    margin-left: auto !important;
  }
  .p-xl-0 {
    padding: 0 !important;
  }
  .p-xl-1 {
    padding: 0.25rem !important;
  }
  .p-xl-2 {
    padding: 0.5rem !important;
  }
  .p-xl-3 {
    padding: 1rem !important;
  }
  .p-xl-4 {
    padding: 1.5rem !important;
  }
  .p-xl-5 {
    padding: 2rem !important;
  }
  .p-xl-6 {
    padding: 3rem !important;
  }
  .px-xl-0 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  .px-xl-1 {
    padding-right: 0.25rem !important;
    padding-left: 0.25rem !important;
  }
  .px-xl-2 {
    padding-right: 0.5rem !important;
    padding-left: 0.5rem !important;
  }
  .px-xl-3 {
    padding-right: 1rem !important;
    padding-left: 1rem !important;
  }
  .px-xl-4 {
    padding-right: 1.5rem !important;
    padding-left: 1.5rem !important;
  }
  .px-xl-5 {
    padding-right: 2rem !important;
    padding-left: 2rem !important;
  }
  .px-xl-6 {
    padding-right: 3rem !important;
    padding-left: 3rem !important;
  }
  .py-xl-0 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .py-xl-1 {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
  }
  .py-xl-2 {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
  }
  .py-xl-3 {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
  }
  .py-xl-4 {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }
  .py-xl-5 {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }
  .py-xl-6 {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }
  .pt-xl-0 {
    padding-top: 0 !important;
  }
  .pt-xl-1 {
    padding-top: 0.25rem !important;
  }
  .pt-xl-2 {
    padding-top: 0.5rem !important;
  }
  .pt-xl-3 {
    padding-top: 1rem !important;
  }
  .pt-xl-4 {
    padding-top: 1.5rem !important;
  }
  .pt-xl-5 {
    padding-top: 2rem !important;
  }
  .pt-xl-6 {
    padding-top: 3rem !important;
  }
  .pe-xl-0 {
    padding-right: 0 !important;
  }
  .pe-xl-1 {
    padding-right: 0.25rem !important;
  }
  .pe-xl-2 {
    padding-right: 0.5rem !important;
  }
  .pe-xl-3 {
    padding-right: 1rem !important;
  }
  .pe-xl-4 {
    padding-right: 1.5rem !important;
  }
  .pe-xl-5 {
    padding-right: 2rem !important;
  }
  .pe-xl-6 {
    padding-right: 3rem !important;
  }
  .pb-xl-0 {
    padding-bottom: 0 !important;
  }
  .pb-xl-1 {
    padding-bottom: 0.25rem !important;
  }
  .pb-xl-2 {
    padding-bottom: 0.5rem !important;
  }
  .pb-xl-3 {
    padding-bottom: 1rem !important;
  }
  .pb-xl-4 {
    padding-bottom: 1.5rem !important;
  }
  .pb-xl-5 {
    padding-bottom: 2rem !important;
  }
  .pb-xl-6 {
    padding-bottom: 3rem !important;
  }
  .ps-xl-0 {
    padding-left: 0 !important;
  }
  .ps-xl-1 {
    padding-left: 0.25rem !important;
  }
  .ps-xl-2 {
    padding-left: 0.5rem !important;
  }
  .ps-xl-3 {
    padding-left: 1rem !important;
  }
  .ps-xl-4 {
    padding-left: 1.5rem !important;
  }
  .ps-xl-5 {
    padding-left: 2rem !important;
  }
  .ps-xl-6 {
    padding-left: 3rem !important;
  }
  .gap-xl-0 {
    gap: 0 !important;
  }
  .gap-xl-1 {
    gap: 0.25rem !important;
  }
  .gap-xl-2 {
    gap: 0.5rem !important;
  }
  .gap-xl-3 {
    gap: 1rem !important;
  }
  .gap-xl-4 {
    gap: 1.5rem !important;
  }
  .gap-xl-5 {
    gap: 2rem !important;
  }
  .gap-xl-6 {
    gap: 3rem !important;
  }
  .row-gap-xl-0 {
    row-gap: 0 !important;
  }
  .row-gap-xl-1 {
    row-gap: 0.25rem !important;
  }
  .row-gap-xl-2 {
    row-gap: 0.5rem !important;
  }
  .row-gap-xl-3 {
    row-gap: 1rem !important;
  }
  .row-gap-xl-4 {
    row-gap: 1.5rem !important;
  }
  .row-gap-xl-5 {
    row-gap: 2rem !important;
  }
  .row-gap-xl-6 {
    row-gap: 3rem !important;
  }
  .column-gap-xl-0 {
    column-gap: 0 !important;
  }
  .column-gap-xl-1 {
    column-gap: 0.25rem !important;
  }
  .column-gap-xl-2 {
    column-gap: 0.5rem !important;
  }
  .column-gap-xl-3 {
    column-gap: 1rem !important;
  }
  .column-gap-xl-4 {
    column-gap: 1.5rem !important;
  }
  .column-gap-xl-5 {
    column-gap: 2rem !important;
  }
  .column-gap-xl-6 {
    column-gap: 3rem !important;
  }
  .text-xl-start {
    text-align: left !important;
  }
  .text-xl-end {
    text-align: right !important;
  }
  .text-xl-center {
    text-align: center !important;
  }
}
@media (min-width: 1400px) {
  .float-xxl-start {
    float: left !important;
  }
  .float-xxl-end {
    float: right !important;
  }
  .float-xxl-none {
    float: none !important;
  }
  .object-fit-xxl-contain {
    object-fit: contain !important;
  }
  .object-fit-xxl-cover {
    object-fit: cover !important;
  }
  .object-fit-xxl-fill {
    object-fit: fill !important;
  }
  .object-fit-xxl-scale {
    object-fit: scale-down !important;
  }
  .object-fit-xxl-none {
    object-fit: none !important;
  }
  .d-xxl-inline {
    display: inline !important;
  }
  .d-xxl-inline-block {
    display: inline-block !important;
  }
  .d-xxl-block {
    display: block !important;
  }
  .d-xxl-grid {
    display: grid !important;
  }
  .d-xxl-inline-grid {
    display: inline-grid !important;
  }
  .d-xxl-table {
    display: table !important;
  }
  .d-xxl-table-row {
    display: table-row !important;
  }
  .d-xxl-table-cell {
    display: table-cell !important;
  }
  .d-xxl-flex {
    display: flex !important;
  }
  .d-xxl-inline-flex {
    display: inline-flex !important;
  }
  .d-xxl-none {
    display: none !important;
  }
  .flex-xxl-fill {
    flex: 1 1 auto !important;
  }
  .flex-xxl-row {
    flex-direction: row !important;
  }
  .flex-xxl-column {
    flex-direction: column !important;
  }
  .flex-xxl-row-reverse {
    flex-direction: row-reverse !important;
  }
  .flex-xxl-column-reverse {
    flex-direction: column-reverse !important;
  }
  .flex-xxl-grow-0 {
    flex-grow: 0 !important;
  }
  .flex-xxl-grow-1 {
    flex-grow: 1 !important;
  }
  .flex-xxl-shrink-0 {
    flex-shrink: 0 !important;
  }
  .flex-xxl-shrink-1 {
    flex-shrink: 1 !important;
  }
  .flex-xxl-wrap {
    flex-wrap: wrap !important;
  }
  .flex-xxl-nowrap {
    flex-wrap: nowrap !important;
  }
  .flex-xxl-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }
  .justify-content-xxl-start {
    justify-content: flex-start !important;
  }
  .justify-content-xxl-end {
    justify-content: flex-end !important;
  }
  .justify-content-xxl-center {
    justify-content: center !important;
  }
  .justify-content-xxl-between {
    justify-content: space-between !important;
  }
  .justify-content-xxl-around {
    justify-content: space-around !important;
  }
  .justify-content-xxl-evenly {
    justify-content: space-evenly !important;
  }
  .align-items-xxl-start {
    align-items: flex-start !important;
  }
  .align-items-xxl-end {
    align-items: flex-end !important;
  }
  .align-items-xxl-center {
    align-items: center !important;
  }
  .align-items-xxl-baseline {
    align-items: baseline !important;
  }
  .align-items-xxl-stretch {
    align-items: stretch !important;
  }
  .align-content-xxl-start {
    align-content: flex-start !important;
  }
  .align-content-xxl-end {
    align-content: flex-end !important;
  }
  .align-content-xxl-center {
    align-content: center !important;
  }
  .align-content-xxl-between {
    align-content: space-between !important;
  }
  .align-content-xxl-around {
    align-content: space-around !important;
  }
  .align-content-xxl-stretch {
    align-content: stretch !important;
  }
  .align-self-xxl-auto {
    align-self: auto !important;
  }
  .align-self-xxl-start {
    align-self: flex-start !important;
  }
  .align-self-xxl-end {
    align-self: flex-end !important;
  }
  .align-self-xxl-center {
    align-self: center !important;
  }
  .align-self-xxl-baseline {
    align-self: baseline !important;
  }
  .align-self-xxl-stretch {
    align-self: stretch !important;
  }
  .order-xxl-first {
    order: -1 !important;
  }
  .order-xxl-0 {
    order: 0 !important;
  }
  .order-xxl-1 {
    order: 1 !important;
  }
  .order-xxl-2 {
    order: 2 !important;
  }
  .order-xxl-3 {
    order: 3 !important;
  }
  .order-xxl-4 {
    order: 4 !important;
  }
  .order-xxl-5 {
    order: 5 !important;
  }
  .order-xxl-last {
    order: 6 !important;
  }
  .m-xxl-0 {
    margin: 0 !important;
  }
  .m-xxl-1 {
    margin: 0.25rem !important;
  }
  .m-xxl-2 {
    margin: 0.5rem !important;
  }
  .m-xxl-3 {
    margin: 1rem !important;
  }
  .m-xxl-4 {
    margin: 1.5rem !important;
  }
  .m-xxl-5 {
    margin: 2rem !important;
  }
  .m-xxl-6 {
    margin: 3rem !important;
  }
  .m-xxl-auto {
    margin: auto !important;
  }
  .mx-xxl-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  .mx-xxl-1 {
    margin-right: 0.25rem !important;
    margin-left: 0.25rem !important;
  }
  .mx-xxl-2 {
    margin-right: 0.5rem !important;
    margin-left: 0.5rem !important;
  }
  .mx-xxl-3 {
    margin-right: 1rem !important;
    margin-left: 1rem !important;
  }
  .mx-xxl-4 {
    margin-right: 1.5rem !important;
    margin-left: 1.5rem !important;
  }
  .mx-xxl-5 {
    margin-right: 2rem !important;
    margin-left: 2rem !important;
  }
  .mx-xxl-6 {
    margin-right: 3rem !important;
    margin-left: 3rem !important;
  }
  .mx-xxl-auto {
    margin-right: auto !important;
    margin-left: auto !important;
  }
  .my-xxl-0 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  .my-xxl-1 {
    margin-top: 0.25rem !important;
    margin-bottom: 0.25rem !important;
  }
  .my-xxl-2 {
    margin-top: 0.5rem !important;
    margin-bottom: 0.5rem !important;
  }
  .my-xxl-3 {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
  }
  .my-xxl-4 {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
  }
  .my-xxl-5 {
    margin-top: 2rem !important;
    margin-bottom: 2rem !important;
  }
  .my-xxl-6 {
    margin-top: 3rem !important;
    margin-bottom: 3rem !important;
  }
  .my-xxl-auto {
    margin-top: auto !important;
    margin-bottom: auto !important;
  }
  .mt-xxl-0 {
    margin-top: 0 !important;
  }
  .mt-xxl-1 {
    margin-top: 0.25rem !important;
  }
  .mt-xxl-2 {
    margin-top: 0.5rem !important;
  }
  .mt-xxl-3 {
    margin-top: 1rem !important;
  }
  .mt-xxl-4 {
    margin-top: 1.5rem !important;
  }
  .mt-xxl-5 {
    margin-top: 2rem !important;
  }
  .mt-xxl-6 {
    margin-top: 3rem !important;
  }
  .mt-xxl-auto {
    margin-top: auto !important;
  }
  .me-xxl-0 {
    margin-right: 0 !important;
  }
  .me-xxl-1 {
    margin-right: 0.25rem !important;
  }
  .me-xxl-2 {
    margin-right: 0.5rem !important;
  }
  .me-xxl-3 {
    margin-right: 1rem !important;
  }
  .me-xxl-4 {
    margin-right: 1.5rem !important;
  }
  .me-xxl-5 {
    margin-right: 2rem !important;
  }
  .me-xxl-6 {
    margin-right: 3rem !important;
  }
  .me-xxl-auto {
    margin-right: auto !important;
  }
  .mb-xxl-0 {
    margin-bottom: 0 !important;
  }
  .mb-xxl-1 {
    margin-bottom: 0.25rem !important;
  }
  .mb-xxl-2 {
    margin-bottom: 0.5rem !important;
  }
  .mb-xxl-3 {
    margin-bottom: 1rem !important;
  }
  .mb-xxl-4 {
    margin-bottom: 1.5rem !important;
  }
  .mb-xxl-5 {
    margin-bottom: 2rem !important;
  }
  .mb-xxl-6 {
    margin-bottom: 3rem !important;
  }
  .mb-xxl-auto {
    margin-bottom: auto !important;
  }
  .ms-xxl-0 {
    margin-left: 0 !important;
  }
  .ms-xxl-1 {
    margin-left: 0.25rem !important;
  }
  .ms-xxl-2 {
    margin-left: 0.5rem !important;
  }
  .ms-xxl-3 {
    margin-left: 1rem !important;
  }
  .ms-xxl-4 {
    margin-left: 1.5rem !important;
  }
  .ms-xxl-5 {
    margin-left: 2rem !important;
  }
  .ms-xxl-6 {
    margin-left: 3rem !important;
  }
  .ms-xxl-auto {
    margin-left: auto !important;
  }
  .p-xxl-0 {
    padding: 0 !important;
  }
  .p-xxl-1 {
    padding: 0.25rem !important;
  }
  .p-xxl-2 {
    padding: 0.5rem !important;
  }
  .p-xxl-3 {
    padding: 1rem !important;
  }
  .p-xxl-4 {
    padding: 1.5rem !important;
  }
  .p-xxl-5 {
    padding: 2rem !important;
  }
  .p-xxl-6 {
    padding: 3rem !important;
  }
  .px-xxl-0 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  .px-xxl-1 {
    padding-right: 0.25rem !important;
    padding-left: 0.25rem !important;
  }
  .px-xxl-2 {
    padding-right: 0.5rem !important;
    padding-left: 0.5rem !important;
  }
  .px-xxl-3 {
    padding-right: 1rem !important;
    padding-left: 1rem !important;
  }
  .px-xxl-4 {
    padding-right: 1.5rem !important;
    padding-left: 1.5rem !important;
  }
  .px-xxl-5 {
    padding-right: 2rem !important;
    padding-left: 2rem !important;
  }
  .px-xxl-6 {
    padding-right: 3rem !important;
    padding-left: 3rem !important;
  }
  .py-xxl-0 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .py-xxl-1 {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
  }
  .py-xxl-2 {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
  }
  .py-xxl-3 {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
  }
  .py-xxl-4 {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }
  .py-xxl-5 {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }
  .py-xxl-6 {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }
  .pt-xxl-0 {
    padding-top: 0 !important;
  }
  .pt-xxl-1 {
    padding-top: 0.25rem !important;
  }
  .pt-xxl-2 {
    padding-top: 0.5rem !important;
  }
  .pt-xxl-3 {
    padding-top: 1rem !important;
  }
  .pt-xxl-4 {
    padding-top: 1.5rem !important;
  }
  .pt-xxl-5 {
    padding-top: 2rem !important;
  }
  .pt-xxl-6 {
    padding-top: 3rem !important;
  }
  .pe-xxl-0 {
    padding-right: 0 !important;
  }
  .pe-xxl-1 {
    padding-right: 0.25rem !important;
  }
  .pe-xxl-2 {
    padding-right: 0.5rem !important;
  }
  .pe-xxl-3 {
    padding-right: 1rem !important;
  }
  .pe-xxl-4 {
    padding-right: 1.5rem !important;
  }
  .pe-xxl-5 {
    padding-right: 2rem !important;
  }
  .pe-xxl-6 {
    padding-right: 3rem !important;
  }
  .pb-xxl-0 {
    padding-bottom: 0 !important;
  }
  .pb-xxl-1 {
    padding-bottom: 0.25rem !important;
  }
  .pb-xxl-2 {
    padding-bottom: 0.5rem !important;
  }
  .pb-xxl-3 {
    padding-bottom: 1rem !important;
  }
  .pb-xxl-4 {
    padding-bottom: 1.5rem !important;
  }
  .pb-xxl-5 {
    padding-bottom: 2rem !important;
  }
  .pb-xxl-6 {
    padding-bottom: 3rem !important;
  }
  .ps-xxl-0 {
    padding-left: 0 !important;
  }
  .ps-xxl-1 {
    padding-left: 0.25rem !important;
  }
  .ps-xxl-2 {
    padding-left: 0.5rem !important;
  }
  .ps-xxl-3 {
    padding-left: 1rem !important;
  }
  .ps-xxl-4 {
    padding-left: 1.5rem !important;
  }
  .ps-xxl-5 {
    padding-left: 2rem !important;
  }
  .ps-xxl-6 {
    padding-left: 3rem !important;
  }
  .gap-xxl-0 {
    gap: 0 !important;
  }
  .gap-xxl-1 {
    gap: 0.25rem !important;
  }
  .gap-xxl-2 {
    gap: 0.5rem !important;
  }
  .gap-xxl-3 {
    gap: 1rem !important;
  }
  .gap-xxl-4 {
    gap: 1.5rem !important;
  }
  .gap-xxl-5 {
    gap: 2rem !important;
  }
  .gap-xxl-6 {
    gap: 3rem !important;
  }
  .row-gap-xxl-0 {
    row-gap: 0 !important;
  }
  .row-gap-xxl-1 {
    row-gap: 0.25rem !important;
  }
  .row-gap-xxl-2 {
    row-gap: 0.5rem !important;
  }
  .row-gap-xxl-3 {
    row-gap: 1rem !important;
  }
  .row-gap-xxl-4 {
    row-gap: 1.5rem !important;
  }
  .row-gap-xxl-5 {
    row-gap: 2rem !important;
  }
  .row-gap-xxl-6 {
    row-gap: 3rem !important;
  }
  .column-gap-xxl-0 {
    column-gap: 0 !important;
  }
  .column-gap-xxl-1 {
    column-gap: 0.25rem !important;
  }
  .column-gap-xxl-2 {
    column-gap: 0.5rem !important;
  }
  .column-gap-xxl-3 {
    column-gap: 1rem !important;
  }
  .column-gap-xxl-4 {
    column-gap: 1.5rem !important;
  }
  .column-gap-xxl-5 {
    column-gap: 2rem !important;
  }
  .column-gap-xxl-6 {
    column-gap: 3rem !important;
  }
  .text-xxl-start {
    text-align: left !important;
  }
  .text-xxl-end {
    text-align: right !important;
  }
  .text-xxl-center {
    text-align: center !important;
  }
}
@media (min-width: 1200px) {
  .fs-1 {
    font-size: 2.34375rem !important;
  }
  .fs-2 {
    font-size: 1.875rem !important;
  }
  .fs-3 {
    font-size: 1.640625rem !important;
  }
  .fs-4 {
    font-size: 1.40625rem !important;
  }
}
@media print {
  .d-print-inline {
    display: inline !important;
  }
  .d-print-inline-block {
    display: inline-block !important;
  }
  .d-print-block {
    display: block !important;
  }
  .d-print-grid {
    display: grid !important;
  }
  .d-print-inline-grid {
    display: inline-grid !important;
  }
  .d-print-table {
    display: table !important;
  }
  .d-print-table-row {
    display: table-row !important;
  }
  .d-print-table-cell {
    display: table-cell !important;
  }
  .d-print-flex {
    display: flex !important;
  }
  .d-print-inline-flex {
    display: inline-flex !important;
  }
  .d-print-none {
    display: none !important;
  }
}
/**
 * Moodle variables
 *
 * Variables written for Moodle specific components
 *
 * Please do not override any Bootstrap variables here, custom Bootstrap variable should go in
 * preset files instead.
 */
/* core.less */
#region-main {
  overflow-y: visible;
  background-color: #fff;
}
@media (min-width: 576px) {
  .context-header-settings-menu, .region-main-settings-menu {
    float: right;
    width: auto;
    max-width: 4em;
    height: 2em;
    display: block;
    margin-top: 4px;
  }
}
@media (max-width: 767.98px) {
  .context-header-settings-menu, .region-main-settings-menu {
    display: flex;
    justify-content: flex-end;
  }
}
.context-header-settings-menu .dropdown-toggle > .icon, #region-main-settings-menu .dropdown-toggle > .icon {
  height: 24px;
  font-size: 24px;
  width: auto;
}
/** Prevent user notifications overlapping with region main settings menu */
#user-notifications {
  display: block;
  overflow: hidden;
}
/** Page layout CSS starts **/
.layout-option-noheader #page-header, .layout-option-nonavbar #page-navbar, .layout-option-nofooter #page-footer, .layout-option-nocourseheader .course-content-header, .layout-option-nocoursefooter .course-content-footer {
  display: none;
}
/** Page layout CSS ends **/
.mdl-left {
  text-align: left;
}
.mdl-right {
  text-align: right;
}
/*rtl:ignore*/
.text-ltr {
  direction: ltr !important;
  /* stylelint-disable-line declaration-no-important */
}
#add, #remove, .centerpara, .mdl-align {
  text-align: center;
}
a.dimmed, a.dimmed:link, a.dimmed:visited, a.dimmed_text, a.dimmed_text:link, a.dimmed_text:visited, .dimmed_text, .dimmed_text a, .dimmed_text a:link, .dimmed_text a:visited, .usersuspended, .usersuspended a, .usersuspended a:link, .usersuspended a:visited, .dimmed_category, .dimmed_category a {
  color: var(--bs-secondary-color);
}
.aalink.focus, a.focus.autolink, .aalink:focus, a.autolink:focus, #page-footer a:not([class]).focus, #page-footer a:not([class]):focus, .arrow_link.focus, .arrow_link:focus, a:not([class]).focus, a:not([class]):focus, .activityinstance > a.focus, .activityinstance > a:focus {
  outline: 0.25rem solid transparent;
  color: #1d2125;
  background-color: #a9a9ac;
  box-shadow: 0 -0.25rem #a9a9ac, 0 0.25rem #343a40;
}
.aalink:focus:hover, a.autolink:focus:hover, #page-footer a:not([class]):focus:hover, .arrow_link:focus:hover, a:not([class]):focus:hover, .activityinstance > a:focus:hover {
  text-decoration: none;
}
.aabtn.focus, .aabtn:focus, .btn-link.focus, .btn-link:focus, .nav-link.focus, .nav-link:focus, .editor_atto_toolbar button.focus, .editor_atto_toolbar button:focus, .editor_atto_toolbar .atto_toolbar_row.focus, .editor_atto_toolbar .atto_toolbar_row:focus, [role="button"].focus, [role="button"]:focus, .list-group-item-action.focus, .list-group-item-action:focus, input[type="checkbox"].focus, input[type="checkbox"]:focus, input[type="radio"].focus, input[type="radio"]:focus, input[type="file"].focus, input[type="file"]:focus, input[type="image"].focus, input[type="image"]:focus, .visually-hidden-focusable.focus, .visually-hidden-focusable:focus, a.dropdown-toggle.focus, a.dropdown-toggle:focus, .moodle-dialogue-base .closebutton.focus, .moodle-dialogue-base .closebutton:focus, button.btn-close.focus, button.btn-close:focus, .form-autocomplete-selection.focus, .form-autocomplete-selection:focus, [role="treeitem"]:not([aria-expanded="true"]).focus, [role="treeitem"]:not([aria-expanded="true"]):focus {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
}
.aabtn:focus:hover, .btn-link:focus:hover, .nav-link:focus:hover, .editor_atto_toolbar button:focus:hover, .editor_atto_toolbar .atto_toolbar_row:focus:hover, [role="button"]:focus:hover, .list-group-item-action:focus:hover, input[type="checkbox"]:focus:hover, input[type="radio"]:focus:hover, input[type="file"]:focus:hover, input[type="image"]:focus:hover, .visually-hidden-focusable:focus:hover, a.dropdown-toggle:focus:hover, .moodle-dialogue-base .closebutton:focus:hover, button.btn-close:focus:hover, .form-autocomplete-selection:focus:hover, [role="treeitem"]:not([aria-expanded="true"]):focus:hover {
  text-decoration: none;
}
.modal-dialog[tabindex="0"].focus, .modal-dialog[tabindex="0"]:focus {
  outline: 0;
}
.modal-dialog[tabindex="0"].focus .modal-content, .modal-dialog[tabindex="0"]:focus .modal-content {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
  border-radius: var(--bs-border-radius-lg);
}
[role="treeitem"][aria-expanded="true"] {
  outline: 0;
}
[role="treeitem"][aria-expanded="true"].focus > *:first-child, [role="treeitem"][aria-expanded="true"]:focus > *:first-child {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
}
[role="treeitem"][aria-expanded="true"]:focus:hover {
  text-decoration: none;
}
.form-autocomplete-suggestions li[aria-selected=true] {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
}
.safari input[type="checkbox"].focus, .safari input[type="checkbox"]:focus, .safari input[type="radio"].focus, .safari input[type="radio"]:focus {
  outline: auto;
}
.unlist, .unlist li, .inline-list, .inline-list li, .block .list, .block .list li, .section li.movehere, .tabtree li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.inline, .inline-list li {
  display: inline;
}
.notifytiny {
  font-size: 0.703125rem;
}
.notifytiny li, .notifytiny td {
  font-size: 100%;
}
.red, .notifyproblem {
  color: #f0ad4e;
}
.green, .notifysuccess {
  color: #357a32;
}
.highlight {
  color: #008196;
}
.bg-primary-light {
  background-color: #eaeaea;
}
.fitem.advanced .text-info {
  font-weight: bold;
}
.reportlink {
  text-align: right;
}
a.autolink.glossary:hover {
  cursor: help;
}
/* Block which is hidden if javascript enabled, prevents fickering visible when JS from footer used! */
.collapsibleregioncaption {
  white-space: nowrap;
  min-height: 1.40625rem;
}
.pagelayout-mydashboard.jsenabled .collapsibleregioncaption {
  cursor: pointer;
}
.pagelayout-mydashboard #region-main {
  border: 0;
  padding: 0;
  background-color: transparent;
  margin-top: -1px;
}
@media (max-width: 767.98px) {
  .pagelayout-mydashboard #region-main-box, .pagelayout-login #region-main-box {
    padding-left: 0;
    padding-right: 0;
  }
}
.collapsibleregioncaption img {
  vertical-align: middle;
}
.jsenabled .hiddenifjs {
  display: none;
}
body:not(.jsenabled) .visibleifjs {
  display: none;
}
.jsenabled .collapsibleregion {
  overflow: hidden;
  box-sizing: content-box;
}
.jsenabled .collapsed .collapsibleregioninner {
  visibility: hidden;
}
.collapsible-actions {
  display: none;
  text-align: right;
}
.jsenabled .collapsible-actions {
  display: block;
}
.yui-overlay .yui-widget-bd {
  background-color: #ffee69;
  border: 1px solid #a6982b;
  border-top-color: #d4c237;
  color: #000;
  left: 0;
  padding: 2px 5px;
  position: relative;
  top: 0;
  z-index: 1;
}
.clearer {
  background: transparent;
  border-width: 0;
  clear: both;
  display: block;
  height: 1px;
  margin: 0;
  padding: 0;
}
.bold, .warning, .errorbox .title, .pagingbar .title, .pagingbar .thispage {
  font-weight: bold;
}
img.resize {
  height: 1em;
  width: 1em;
}
.block img.resize {
  height: 0.9em;
  width: 0.8em;
}
/* Icon styles */
img.activityicon {
  height: 32px;
  width: 32px;
  vertical-align: middle;
}
.headermain {
  font-weight: bold;
}
#maincontent {
  display: block;
  height: 1px;
  overflow: clip;
}
img.uihint {
  cursor: help;
}
#addmembersform table {
  margin-left: auto;
  margin-right: auto;
}
table.flexible .emptyrow {
  display: none;
}
form.popupform, form.popupform div {
  display: inline;
}
.arrow_button input {
  overflow: hidden;
}
.no-overflow {
  overflow: auto;
}
.accesshide {
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.accesshide:not(caption) {
  position: absolute !important;
}
span.hide, div.hide, .hidden {
  display: none;
}
a.skip-block, a.skip {
  position: absolute;
  top: -1000em;
  font-size: 0.85em;
  text-decoration: none;
}
a.skip-block:focus, a.skip-block:active, a.skip:focus, a.skip:active {
  position: static;
  display: block;
}
.skip-block-to {
  display: block;
  height: 1px;
  overflow: hidden;
}
.addbloglink {
  text-align: center;
}
.blog_entry .audience {
  text-align: right;
  padding-right: 4px;
}
.blog_entry .tags {
  margin-top: 15px;
}
.blog_entry .content {
  margin-left: 43px;
}
#doc-contents h1, #doc-contents .h1 {
  margin: 1em 0 0 0;
}
#doc-contents ul {
  margin: 0;
  padding: 0;
  width: 90%;
}
#doc-contents ul li {
  list-style-type: none;
}
.groupmanagementtable td {
  vertical-align: top;
}
.groupmanagementtable #existingcell, .groupmanagementtable #potentialcell {
  width: 42%;
}
.groupmanagementtable #buttonscell {
  width: 16%;
}
.groupmanagementtable #buttonscell p.arrow_button input {
  width: auto;
  min-width: 80%;
  margin: 0 auto;
  display: block;
}
.groupmanagementtable #removeselect_wrapper, .groupmanagementtable #addselect_wrapper {
  width: 100%;
}
.groupmanagementtable #removeselect_wrapper label, .groupmanagementtable #addselect_wrapper label {
  font-weight: normal;
}
#group-usersummary {
  width: 14em;
}
.groupselector {
  margin-top: 3px;
  margin-bottom: 3px;
  display: inline-block;
}
.groupselector label {
  display: inline-block;
}
.notepost {
  margin-bottom: 1em;
}
.notepost .userpicture {
  float: left;
  margin-right: 5px;
}
.notepost .content, .notepost .footer {
  clear: both;
}
.notesgroup {
  margin-left: 20px;
}
.path-my .coursebox {
  margin: 1rem 0;
  padding: 0;
}
.path-my .coursebox .overview {
  margin: 15px 30px 10px 30px;
}
.path-my .coursebox .info {
  float: none;
  margin: 0;
}
.mod_introbox {
  padding: 10px;
}
table.mod_index {
  width: 100%;
}
.comment-ctrl {
  font-size: 12px;
  display: none;
  margin: 0;
  padding: 0;
}
.comment-ctrl h5, .comment-ctrl .h5 {
  margin: 0;
  padding: 5px;
}
.comment-area {
  max-width: 400px;
  padding: 5px;
}
.comment-area textarea {
  width: 100%;
  overflow: auto;
}
.comment-area textarea.fullwidth {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.comment-area .fd {
  text-align: right;
}
.comment-meta span {
  color: gray;
}
.comment-link img {
  vertical-align: text-bottom;
}
.comment-list {
  font-size: 11px;
  overflow: auto;
  list-style: none;
  padding: 0;
  margin: 0;
}
.comment-list li {
  margin: 2px;
  list-style: none;
  margin-bottom: 5px;
  clear: both;
  padding: 0.3em;
  position: relative;
}
.comment-list li.first {
  display: none;
}
.comment-paging {
  text-align: center;
}
.comment-paging .pageno {
  padding: 2px;
}
.comment-paging .curpage {
  border: 1px solid #ccc;
}
.comment-message .picture {
  float: left;
  margin-right: 0.25rem;
}
.comment-message .text {
  margin: 0;
  padding: 0;
}
.comment-message .text p {
  padding: 0;
  margin: 0 18px 0 0;
}
.comment-delete {
  position: absolute;
  top: 0;
  right: 0;
  margin: 0.3em;
}
.comment-report-selectall {
  display: none;
}
.comment-link {
  display: none;
}
.jsenabled .comment-link {
  display: block;
}
.jsenabled .showcommentsnonjs {
  display: none;
}
.jsenabled .comment-report-selectall {
  display: inline;
}
/**
* Completion progress report
*/
.completion-expired {
  color: #f0ad4e;
}
.completion-expected {
  font-size: 0.703125rem;
}
.completion-sortchoice, .completion-identifyfield {
  font-size: 0.703125rem;
  vertical-align: bottom;
}
.completion-progresscell {
  text-align: right;
}
.completion-expired .completion-expected {
  font-weight: bold;
}
/**
* Tags
*/
#tag-search-box {
  text-align: center;
  margin: 10px auto;
}
span.flagged-tag, tr.flagged-tag, span.flagged-tag a, tr.flagged-tag a {
  color: #f0ad4e;
}
.tag-management-table td, .tag-management-table th {
  vertical-align: middle;
  padding: 4px;
}
.tag-management-table .inplaceeditable.inplaceeditingon input {
  width: 150px;
}
.path-admin-tag .addstandardtags {
  float: right;
}
.path-admin-tag .addstandardtags img {
  margin: 0 5px;
}
.path-tag .tag-relatedtags {
  padding-top: 10px;
}
.path-tag .tag-management-box {
  text-align: right;
}
.path-tag .tag-index-toc {
  padding: 10px;
  text-align: center;
}
.path-tag .tag-index-toc li {
  margin-left: 5px;
  margin-right: 5px;
}
.path-tag .tag-management-box li {
  margin-left: 5px;
  margin-right: 5px;
}
.path-tag .tag-management-box li a {
  background-repeat: no-repeat;
  background-position: left;
  padding-left: 17px;
}
.path-tag .tag-management-box li a.edittag {
  background-image: url(/theme/image.php/academi/core/1790824836/i/settings);
}
.path-tag .tag-management-box li a.flagasinappropriate {
  background-image: url(/theme/image.php/academi/core/1790824836/i/flagged);
}
.path-tag .tag-management-box li a.removefrommyinterests {
  background-image: url(/theme/image.php/academi/core/1790824836/t/delete);
}
.path-tag .tag-management-box li a.addtomyinterests {
  background-image: url(/theme/image.php/academi/core/1790824836/t/add);
}
.path-tag .tag-backtoallitems {
  text-align: center;
}
.path-tag .tag-index-items .tagarea {
  border: 1px solid #e3e3e3;
  border-radius: 4px;
  padding: 10px;
  margin-top: 10px;
}
.path-tag .tag-index-items .tagarea h3, .path-tag .tag-index-items .tagarea .h3 {
  display: block;
  padding: 3px 0 10px 0;
  margin: 0;
  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;
  border-bottom: solid 1px #e3e3e3;
  margin-bottom: 10px;
}
.path-tag .tag-index-items .tagarea .taggeditems::after {
  display: block;
  clear: both;
  content: "";
}
.path-tag .tag-index-items .tagarea .controls {
  text-align: center;
}
.path-tag .tag-index-items .tagarea .controls::after {
  display: block;
  clear: both;
  content: "";
}
.path-tag .tag-index-items .tagarea .controls.controls-bottom {
  margin-top: 5px;
}
.path-tag .tag-index-items .tagarea .controls .gotopage.nextpage {
  float: right;
}
.path-tag .tag-index-items .tagarea .controls .gotopage.prevpage {
  float: left;
}
.path-tag .tag-index-items .tagarea .controls .exclusivemode {
  display: inline-block;
}
.path-tag .tag-index-items .tagarea .controls .gotopage.prevpage::before {
  padding-right: 5px;
  padding-left: 5px;
  content: "«";
}
.path-tag .tag-index-items .tagarea .controls .gotopage.nextpage::after {
  padding-right: 5px;
  padding-left: 5px;
  content: "»";
}
.tag_feed img {
  max-height: 35px;
  max-width: 35px;
}
.tag_feed .muted a {
  color: var(--bs-secondary-color);
}
.tag_cloud {
  text-align: center;
}
.tag_cloud .inline-list li {
  padding: 0 0.2em;
}
.tag_cloud .tag_overflow {
  margin-top: 1em;
  font-style: italic;
}
.tag_cloud .s0 {
  font-size: 0.7em;
}
.tag_cloud .s1 {
  font-size: 0.8em;
}
.tag_cloud .s2 {
  font-size: 0.9em;
}
.tag_cloud .s3 {
  font-size: 1em;
}
.tag_cloud .s4 {
  font-size: 1.1em;
}
.tag_cloud .s5 {
  font-size: 1.2em;
}
.tag_cloud .s6 {
  font-size: 1.3em;
}
.tag_cloud .s7 {
  font-size: 1.4em;
}
.tag_cloud .s8 {
  font-size: 1.5em;
}
.tag_cloud .s9 {
  font-size: 1.6em;
}
.tag_cloud .s10 {
  font-size: 1.7em;
}
.tag_cloud .s11 {
  font-size: 1.8em;
}
.tag_cloud .s12 {
  font-size: 1.9em;
}
.tag_cloud .s13 {
  font-size: 2em;
}
.tag_cloud .s14 {
  font-size: 2.1em;
}
.tag_cloud .s15 {
  font-size: 2.2em;
}
.tag_cloud .s16 {
  font-size: 2.3em;
}
.tag_cloud .s17 {
  font-size: 2.4em;
}
.tag_cloud .s18 {
  font-size: 2.5em;
}
.tag_cloud .s19 {
  font-size: 2.6em;
}
.tag_cloud .s20 {
  font-size: 2.7em;
}
.tag_list ul {
  display: inline;
}
.tag_list .tagmorelink {
  display: none;
}
.tag_list.hideoverlimit .overlimit {
  display: none;
}
.tag_list.hideoverlimit .tagmorelink {
  display: inline;
}
.tag_list.hideoverlimit .taglesslink {
  display: none;
}
/**
* Web Service
*/
#webservice-doc-generator td {
  text-align: left;
  border: 0 solid #000;
}
/**
* Enrol
*/
.userenrolment {
  width: 100%;
  border-collapse: collapse;
}
.userenrolment tr {
  vertical-align: top;
}
.userenrolment td {
  padding: 0;
  height: 41px;
}
.userenrolment .subfield {
  margin-right: 5px;
}
.userenrolment .col_userdetails .subfield {
  margin-left: 40px;
}
.userenrolment .col_userdetails .subfield_picture {
  float: left;
  margin-left: 0;
}
.userenrolment .col_lastseen {
  width: 150px;
}
.userenrolment .col_role {
  width: 262px;
}
.userenrolment .col_role .roles, .userenrolment .col_group .groups {
  margin-right: 30px;
}
.userenrolment .col_role .role {
  float: left;
  padding: 0 3px 3px;
  margin: 0 3px 3px;
  white-space: nowrap;
}
.userenrolment .col_group .group {
  float: left;
  padding: 3px;
  margin: 3px;
  white-space: nowrap;
}
.userenrolment .col_role .role a, .userenrolment .col_group .group a {
  margin-left: 3px;
  cursor: pointer;
}
.userenrolment .col_role .addrole, .userenrolment .col_group .addgroup {
  float: right;
  padding: 3px;
  margin: 3px;
}
.userenrolment .col_role .addrole > a:hover, .userenrolment .col_group .addgroup > a:hover {
  border-bottom: 1px solid #666;
}
.userenrolment .col_role .addrole img, .userenrolment .col_group .addgroup img {
  vertical-align: baseline;
}
.userenrolment .hasAllRoles .col_role .addrole {
  display: none;
}
.userenrolment .col_enrol .enrolment {
  float: left;
  padding: 0 3px 3px;
  margin: 0 3px 3px;
}
.userenrolment .col_enrol .enrolment a {
  float: right;
  margin-left: 3px;
}
#page-enrol-otherusers .userenrolment .col_role .role {
  float: none;
  margin: 3px 3px 3px 0;
  padding: 3px 3px 3px 0;
}
.corelightbox {
  background-color: #ccc;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  text-align: center;
}
.corelightbox img {
  position: fixed;
  top: 50%;
  left: 50%;
}
/* Audio player size in 'block' mode (can only change width, height is hardcoded in JS) */
.resourcecontent .mediaplugin_mp3 object {
  height: 25px;
  width: 600px;
}
.resourcecontent audio.mediaplugin_html5audio {
  width: 600px;
}
/** Large resource images should avoid hidden overflow **/
.resourceimage {
  max-width: 100%;
}
/* Audio player size in 'inline' mode (can only change width, as above) */
.mediaplugin_mp3 object {
  height: 15px;
  width: 300px;
}
audio.mediaplugin_html5audio {
  width: 300px;
}
.core_media_preview.pagelayout-embedded #maincontent {
  height: 0;
}
.path-rating .ratingtable {
  width: 100%;
  margin-bottom: 1em;
}
.path-rating .ratingtable th.rating {
  width: 100%;
}
.path-rating .ratingtable td.rating, .path-rating .ratingtable td.time {
  white-space: nowrap;
  text-align: center;
}
/* Moodle Dialogue Settings (moodle-core-dialogue)  */
.moodle-dialogue-base .moodle-dialogue-lightbox {
  background-color: #495057;
}
.pagelayout-popup .moodle-dialogue-base .moodle-dialogue-lightbox {
  background-color: transparent;
}
.pagelayout-popup .moodle-dialogue-base .moodle-dialogue {
  box-shadow: var(--bs-box-shadow);
}
.moodle-dialogue-base .hidden, .moodle-dialogue-base .moodle-dialogue-hidden {
  display: none;
}
.no-scrolling {
  overflow: hidden;
}
.moodle-dialogue-base .moodle-dialogue-fullscreen {
  left: 0;
  top: 0;
  right: 0;
  bottom: -50px;
  position: fixed;
}
.moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-content {
  overflow: auto;
}
.moodle-dialogue-base .moodle-dialogue-wrap {
  background-color: #fff;
  border: 1px solid #ccc;
}
.modal.show {
  display: block;
}
.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd {
  display: flex;
  padding: 1rem 1rem;
  border-bottom: 1px solid #dee2e6;
}
.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd.yui3-widget-hd {
  min-height: 3rem;
  color: initial;
  background: initial;
  font-size: 1.5rem;
  line-height: 1.5;
}
.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd h5, .moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd .h5 {
  font-size: 1.5rem;
  font-weight: 400;
  margin-bottom: 0;
  line-height: 1.5;
}
.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd .yui3-widget-buttons {
  /*rtl:raw:
        left: 0;
        right: auto;
    */
  padding: 0;
  position: relative;
  margin-left: auto;
}
.moodle-dialogue-base .closebutton {
  padding: 1rem 1rem;
  margin: -1rem -1rem -1rem auto;
  position: relative;
  background-color: transparent;
  border: 0;
  background-image: none;
  box-shadow: none;
  opacity: 0.7;
}
.moodle-dialogue-base .closebutton:hover, .moodle-dialogue-base .closebutton:active {
  opacity: 1;
}
.moodle-dialogue-base .closebutton::after {
  content: "×";
}
.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-bd {
  padding: 0.5rem;
}
.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-bd body {
  background-color: #fff;
}
.moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-content {
  overflow: auto;
  position: absolute;
  top: 0;
  bottom: 50px;
  left: 0;
  right: 0;
  margin: 0;
  border: 0;
}
.moodle-dialogue-exception .moodle-exception-param label {
  font-weight: bold;
}
.moodle-dialogue-exception .param-stacktrace label {
  background-color: #eee;
  border: 1px solid #ccc;
  border-bottom-width: 0;
}
.moodle-dialogue-exception .param-stacktrace pre {
  border: 1px solid #ccc;
  background-color: #fff;
}
.moodle-dialogue-exception .param-stacktrace .stacktrace-file {
  color: navy;
  font-size: 0.8203125rem;
}
.moodle-dialogue-exception .param-stacktrace .stacktrace-line {
  color: #f0ad4e;
  font-size: 0.8203125rem;
}
.moodle-dialogue-exception .param-stacktrace .stacktrace-call {
  color: #333;
  font-size: 90%;
  border-bottom: 1px solid #eee;
}
.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-content .moodle-dialogue-ft:empty {
  display: none;
}
.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-content .moodle-dialogue-ft.yui3-widget-ft {
  background: initial;
}
.moodle-dialogue-confirm .confirmation-message {
  margin: 0.5rem 0;
}
.moodle-dialogue-confirm .confirmation-dialogue input {
  min-width: 80px;
}
.moodle-dialogue-exception .moodle-exception-message {
  margin: 1em;
}
.moodle-dialogue-exception .moodle-exception-param {
  margin-bottom: 0.5em;
}
.moodle-dialogue-exception .moodle-exception-param label {
  width: 150px;
}
.moodle-dialogue-exception .param-stacktrace label {
  display: block;
  margin: 0;
  padding: 4px 1em;
}
.moodle-dialogue-exception .param-stacktrace pre {
  display: block;
  height: 200px;
  overflow: auto;
}
.moodle-dialogue-exception .param-stacktrace .stacktrace-file {
  display: inline-block;
  margin: 4px 0;
}
.moodle-dialogue-exception .param-stacktrace .stacktrace-line {
  display: inline-block;
  width: 50px;
  margin: 4px 1em;
}
.moodle-dialogue-exception .param-stacktrace .stacktrace-call {
  padding-left: 25px;
  margin-bottom: 4px;
  padding-bottom: 4px;
}
.moodle-dialogue .moodle-dialogue-bd .content-lightbox {
  opacity: 0.75;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #fff;
  text-align: center;
  padding: 10% 0;
}
/* Apply a default max-height on tooltip text */
.moodle-dialogue .tooltiptext {
  max-height: 300px;
}
.moodle-dialogue-base .moodle-dialogue.moodle-dialogue-tooltip {
  z-index: 3001;
}
.moodle-dialogue-base .moodle-dialogue.moodle-dialogue-tooltip .moodle-dialogue-bd {
  overflow: auto;
}
/**
 * Chooser Dialogues (moodle-core-chooserdialogue)
 *
 * This CSS belong to the chooser dialogue which should work both with, and
 * without javascript enabled
 */
/* Hide the dialog and it's title */
.chooserdialoguebody, .choosertitle {
  display: none;
}
.moodle-dialogue.chooserdialogue .moodle-dialogue-content .moodle-dialogue-ft {
  margin: 0;
}
.chooserdialogue .moodle-dialogue-wrap .moodle-dialogue-bd {
  padding: 0;
  background: #f2f2f2;
  border-bottom-right-radius: 10px;
  border-bottom-left-radius: 10px;
}
/* Center the submit buttons within the area */
.choosercontainer #chooseform .submitbuttons {
  padding: 0.7em 0;
  text-align: right;
}
/* Fixed for safari browser on iPhone4S with ios7@mixin */
@media (max-height: 639px) {
  .ios .choosercontainer #chooseform .submitbuttons {
    padding: 45px 0;
  }
}
.choosercontainer #chooseform .submitbuttons input {
  min-width: 100px;
  margin: 0 0.5em;
}
/* Various settings for the options area */
.choosercontainer #chooseform .options {
  position: relative;
  border-bottom: 1px solid #bbb;
}
/* Only set these options if we're showing the js container */
.jschooser .choosercontainer #chooseform .alloptions {
  overflow-x: hidden;
  overflow-y: auto;
  max-width: 240px;
}
.jschooser .choosercontainer #chooseform .alloptions .option input[type=radio] {
  display: inline-block;
}
.jschooser .choosercontainer #chooseform .alloptions .option .typename {
  display: inline-block;
  width: 55%;
}
/* Settings for option rows and option subtypes */
.choosercontainer #chooseform .moduletypetitle, .choosercontainer #chooseform .option, .choosercontainer #chooseform .nonoption {
  margin-bottom: 0;
  padding: 0 1.6em 0 1.6em;
}
.choosercontainer #chooseform .moduletypetitle {
  text-transform: uppercase;
  padding-top: 1.2em;
  padding-bottom: 0.4em;
  margin-bottom: 0.5rem;
  font-size: 100%;
}
.choosercontainer #chooseform .option .typename, .choosercontainer #chooseform .nonoption .typename {
  padding: 0 0 0 0.5em;
}
.choosercontainer #chooseform .modicon + .typename {
  padding-left: 0;
}
.choosercontainer #chooseform .option input[type=radio], .choosercontainer #chooseform .option span.typename {
  vertical-align: middle;
}
.choosercontainer #chooseform .option label {
  display: block;
  margin: 0;
  padding: 0.5rem 0;
  border-bottom: 1px solid #fff;
}
.choosercontainer #chooseform .option .icon {
  margin: 0;
  padding: 0 1rem;
}
.choosercontainer #chooseform .nonoption {
  padding-left: 2.7em;
  padding-top: 0.3em;
  padding-bottom: 0.1em;
}
.choosercontainer #chooseform .subtype {
  margin-bottom: 0;
  padding: 0 1.6em 0 3.2em;
}
.choosercontainer #chooseform .subtype .typename {
  margin: 0 0 0 0.2em;
}
/* The instruction/help area */
.jschooser .choosercontainer #chooseform .instruction, .jschooser .choosercontainer #chooseform .typesummary {
  display: none;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 240px;
  margin: 0;
  padding: 1.6em;
  background-color: #fff;
  overflow-x: hidden;
  overflow-y: auto;
  line-height: 2em;
}
/* Selected option settings */
.jschooser .choosercontainer #chooseform .instruction, .choosercontainer #chooseform .selected .typesummary {
  display: block;
}
.choosercontainer #chooseform .selected {
  background-color: #fff;
  margin-top: -1px;
  padding-top: 1px;
}
@media (max-width: 575.98px) {
  .jsenabled .choosercontainer #chooseform .alloptions {
    max-width: 100%;
  }
  .jsenabled .choosercontainer #chooseform .instruction, .jsenabled .choosercontainer #chooseform .typesummary {
    position: static;
  }
}
/**
 * Module chooser dialogue (moodle-core-chooserdialogue)
 *
 * This CSS belong to the chooser dialogue which should work both with, and
 * without javascript enabled
 */
.modchooser .modal-body {
  padding: 0;
  overflow-y: auto;
  min-height: 640px;
  display: flex;
  flex-direction: column;
}
.modchooser .modal-body .searchresultitemscontainer-wrapper {
  min-height: 495px;
}
.modchooser .modal-body .carousel-item.active {
  display: flex;
}
.modchooser .modal-body .chooser-container {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}
.modchooser .modal-body .loading-icon {
  opacity: 1;
}
.modchooser .modal-body .loading-icon .icon {
  display: block;
  font-size: 3em;
  max-height: 3em;
  max-width: 3em;
}
.modchooser .modal-body .carousel-item .loading-icon .icon {
  margin: 1em auto;
}
.modchooser .modal-body .searchbar {
  width: 100%;
}
.modchooser .modal-footer {
  height: 70px;
  background: var(--bs-body-bg);
}
.modchooser .modal-footer .moodlenet-logo .icon {
  height: 2.5rem;
  width: 6rem;
  max-height: 2.5rem;
  max-width: 6rem;
  margin-bottom: 0.6rem;
}
.modchoosercontainer.noscroll {
  overflow-y: hidden;
}
.modchoosercontainer .optionscontainer, .modchoosercontainer .searchresultitemscontainer {
  overflow-x: hidden;
}
.modchoosercontainer .optionscontainer .option, .modchoosercontainer .searchresultitemscontainer .option {
  flex-basis: calc(50% - 0.5rem);
}
.modchoosercontainer .optionscontainer .option .optionactions .optionaction, .modchoosercontainer .searchresultitemscontainer .option .optionactions .optionaction {
  cursor: pointer;
  color: #6a737b;
}
.modchoosercontainer .optionscontainer .option .optionactions .optionaction i, .modchoosercontainer .searchresultitemscontainer .option .optionactions .optionaction i {
  margin: 0;
}
.modchoosercontainer .optionscontainer .option .optioninfo a, .modchoosercontainer .searchresultitemscontainer .option .optioninfo a {
  color: #495057;
}
.modchoosercontainer .optionscontainer .option .optioninfo a:hover, .modchoosercontainer .searchresultitemscontainer .option .optioninfo a:hover {
  text-decoration: none;
}
.modchooser .modal-body .optionsummary {
  background-color: #fff;
  overflow-x: hidden;
  overflow-y: auto;
  height: 640px;
}
.modchooser .modal-body .optionsummary .content {
  overflow-y: auto;
}
.modchooser .modal-body .optionsummary .content .heading .icon {
  height: 32px;
  width: 32px;
  font-size: 32px;
  padding: 0;
}
.modchooser .modal-body .optionsummary .actions {
  border-top: 1px solid #dee2e6;
  background: #fff;
}
@media (max-width: 575.98px) {
  .path-course-view .modal-dialog.modal-lg, .path-course-view .modal-content, .modchooser .modal-body, .modchooser .modal-body .carousel, .modchooser .modal-body .carousel-inner, .modchooser .modal-body .carousel-item, .modchooser .modal-body .optionsummary, .modchoosercontainer, .optionscontainer, .searchresultitemscontainer {
    min-height: auto;
    height: 100%;
    overflow-y: auto;
  }
  .path-course-view .modal-dialog.modal-lg {
    margin: 0;
  }
  .modchooser .modal-body .searchresultitemscontainer-wrapper {
    min-height: auto;
  }
}
@media (min-width: 576px) {
  .modchoosercontainer .optionscontainer .option, .modchoosercontainer .searchresultitemscontainer .option {
    flex-basis: calc(33.33% - 0.5rem);
  }
}
@media (min-width: 992px) {
  .modchoosercontainer .optionscontainer .option, .modchoosercontainer .searchresultitemscontainer .option {
    flex-basis: calc(16.66% - 0.5rem);
  }
}
/* Form element: listing */
.formlistingradio {
  padding-bottom: 25px;
  padding-right: 10px;
}
.formlistinginputradio {
  float: left;
}
.formlistingmain {
  min-height: 225px;
}
.formlisting {
  position: relative;
  margin: 15px 0;
  padding: 1px 19px 14px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
}
.formlistingmore {
  position: absolute;
  cursor: pointer;
  bottom: -1px;
  right: -1px;
  padding: 3px 7px;
  font-size: 12px;
  font-weight: bold;
  background-color: whitesmoke;
  border: 1px solid #ddd;
  color: #9da0a4;
  border-radius: 4px 0 4px 0;
}
.formlistingall {
  margin: 15px 0;
  padding: 0;
  border-radius: 4px;
}
.formlistingrow {
  cursor: pointer;
  border-bottom: 1px solid;
  border-color: #e1e1e8;
  border-left: 1px solid #e1e1e8;
  border-right: 1px solid #e1e1e8;
  background-color: #f7f7f9;
  border-radius: 0 0 4px 4px;
  padding: 6px;
  top: 50%;
  left: 50%;
  min-height: 34px;
  float: left;
  width: 150px;
}
body.jsenabled .formlistingradio {
  display: none;
}
body.jsenabled .formlisting {
  display: block;
}
a.criteria-action {
  padding: 0 3px;
  float: right;
}
div.criteria-description {
  padding: 10px 15px;
  margin: 5px 0;
  background: none repeat scroll 0 0 #f9f9f9;
  border: 1px solid #eee;
}
ul.badges {
  margin: 0;
  list-style: none;
}
.badges li {
  position: relative;
  display: inline-block;
  padding-top: 1em;
  text-align: center;
  vertical-align: top;
  width: 150px;
}
.badges li .badge-name {
  display: block;
  padding: 5px;
}
.badges li > img {
  position: absolute;
}
.badges li .badge-image {
  width: 100px;
  height: 100px;
  left: 10px;
  top: 0;
  z-index: 1;
}
.badges li .badge-actions {
  position: relative;
}
.badges li .expireimage {
  background-image: url(/theme/image.php/academi/core/1790824836/i/expired);
  background-repeat: no-repeat;
  background-size: 100px 100px;
  width: 100px;
  height: 100px;
  left: 25px;
  top: 15px;
  position: absolute;
  z-index: 10;
  opacity: 0.85;
}
#badge-image {
  background-color: transparent;
  padding: 0;
  position: relative;
  min-width: 100px;
  width: 20%;
  display: inline-block;
  vertical-align: top;
  margin-top: 17px;
  margin-bottom: 20px;
}
#badge-image .expireimage {
  background-image: url(/theme/image.php/academi/core/1790824836/i/expired);
  background-repeat: no-repeat;
  background-size: 100px 100px;
  width: 100px;
  height: 100px;
  left: 0;
  top: 0;
  opacity: 0.85;
  position: absolute;
  z-index: 10;
}
#badge-image .singlebutton {
  padding-top: 5px;
  display: block;
}
#badge-image .singlebutton button {
  margin-left: 4px;
}
#badge-details {
  display: inline-block;
  width: 79%;
}
#badge-overview dl, #badge-details dl {
  margin: 0;
}
#badge-overview dl dt, #badge-overview dl dd, #badge-details dl dt, #badge-details dl dd {
  vertical-align: top;
  padding: 3px 0;
}
#badge-overview dl dt, #badge-details dl dt {
  clear: both;
  display: inline-block;
  width: 20%;
  min-width: 100px;
}
#badge-overview dl dd, #badge-details dl dd {
  display: inline-block;
  width: 79%;
  margin-left: 1%;
}
#badge-criteria li li {
  list-style-type: none;
}
#badge-image-col {
  flex: 0 0 400px;
}
.badge-profile {
  vertical-align: top;
}
.connected {
  color: #357a32;
}
.notconnected {
  color: #ca3120;
}
.connecting {
  color: #f0ad4e;
}
#page-badges-index #page .badges-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
#page-badges-index #page h2, #page-badges-index #page .h2 {
  margin: 0;
  /* Removes default margins */
}
#page-badges-index #page #action_bar {
  margin: 0;
  /* Removes any default margin that might affect alignment */
}
#page-badges-index #page .tertiary-navigation.container-fluid, #page-badges-index #page .tertiary-navigation.container-sm, #page-badges-index #page .tertiary-navigation.container-md, #page-badges-index #page .tertiary-navigation.container-lg, #page-badges-index #page .tertiary-navigation.container-xl, #page-badges-index #page .tertiary-navigation.container-xxl {
  width: auto;
  height: 50px;
  padding-top: 0;
}
#page-badges-award .recipienttable tr td {
  vertical-align: top;
}
#page-badges-award .recipienttable tr td.actions .actionbutton {
  margin: 0.3em 0;
  padding: 0.5em 0;
  width: 100%;
}
#page-badges-award .recipienttable tr td.existing, #page-badges-award .recipienttable tr td.potential {
  width: 42%;
}
#issued-badge-table .activatebadge {
  display: inline-block;
}
.statusbox.active {
  background-color: #d7e4d6;
}
.statusbox.inactive {
  background-color: #fcefdc;
}
.statusbox {
  text-align: center;
  margin-bottom: 5px;
  padding: 5px;
}
.statusbox .activatebadge {
  display: inline-block;
}
.statusbox .activatebadge input[type=submit] {
  margin: 3px;
}
.activatebadge {
  margin: 0;
  text-align: left;
  vertical-align: middle;
}
img#persona_signin {
  cursor: pointer;
}
.addcourse {
  float: right;
}
.invisiblefieldset {
  display: inline;
  padding: 0;
  border-width: 0;
}
/** Page header */
#page-header h1.h2, #page-header .h2.h1 {
  font-weight: bold;
}
#page-header .logo {
  margin: 1rem 0;
}
#page-header .logo img {
  max-height: 75px;
}
/** Navbar logo. */
nav.navbar .logo img {
  max-height: 35px;
}
.nav.usernav .nav-item {
  display: flex;
}
.nav.usernav .usermenu .dropdown-toggle {
  padding: 0 0.5rem;
}
/** Header-bar styles **/
.page-context-header {
  overflow: hidden;
  padding: 0.25rem 0;
}
.page-context-header .page-header-image > a {
  display: inline-block;
}
.page-context-header .page-header-image .userinitials, .page-context-header .page-header-image .userpicture {
  margin-right: 1rem;
}
ul.dragdrop-keyboard-drag li {
  list-style-type: none;
}
a.disabled:hover, a.disabled {
  text-decoration: none;
  cursor: default;
  font-style: italic;
  color: var(--bs-secondary-color);
}
a.btn.disabled {
  opacity: 1;
}
body.lockscroll {
  height: 100%;
  overflow: hidden;
}
.progressbar_container {
  max-width: 500px;
  margin: 0 auto;
}
/* IE10 only fix for calendar titling */
.ie10 .yui3-calendar-header-label {
  display: inline-block;
}
dd:before, dd:after {
  display: block;
  content: " ";
}
dd:after {
  clear: both;
}
.nav-tabs > .active > a[href], .nav-tabs > .active > a[href]:hover, .nav-tabs > .active > a[href]:focus {
  cursor: pointer;
}
.inplaceeditable.inplaceeditingon {
  position: relative;
}
.inplaceeditable.inplaceeditingon .editinstructions {
  margin-top: -30px;
  font-weight: normal;
  margin-right: 0;
  margin-left: 0;
  left: 0;
  right: auto;
  white-space: nowrap;
  position: absolute;
  top: 0;
  font-size: 0.8203125rem;
  padding: 0.1em 0.4em;
  text-decoration: none;
  z-index: 9999;
  border: 0 solid transparent;
  width: fit-content;
  color: #004d5a;
  border-color: #b3d9e0;
  background-color: #cce6ea;
}
@media (min-width: 576px) {
  .inplaceeditable.inplaceeditingon input {
    width: 330px;
    vertical-align: text-bottom;
    margin-bottom: 0;
  }
  .inplaceeditable.inplaceeditingon input[role="combobox"] {
    width: auto;
  }
}
.inplaceeditable.inplaceeditingon select {
  margin-bottom: 0;
}
.inplaceeditable .quickediticon img {
  opacity: 0.2;
}
.inplaceeditable .quickeditlink {
  color: inherit;
  text-decoration: inherit;
}
.inplaceeditable:hover .quickeditlink .quickediticon img, .inplaceeditable .quickeditlink:focus .quickediticon img {
  opacity: 1;
}
.inplaceeditable.inplaceeditable-toggle .quickediticon {
  display: none;
}
.inplaceeditable.inplaceeditable-autocomplete {
  display: block;
}
/** Chart area. */
@media (min-width: 992px) {
  .chart-area .chart-image {
    position: relative;
    margin: auto;
    height: 48vh;
    width: 46vw;
  }
}
.chart-area .chart-table-data {
  display: none;
}
.chart-area .chart-table {
  /** When accessible, we display the table only. */
}
.chart-area .chart-table .chart-output-htmltable caption {
  white-space: nowrap;
}
.chart-area .chart-table.accesshide .chart-table-expand {
  display: none;
}
.chart-area .chart-table.accesshide .chart-table-data {
  display: block;
}
/* YUI 2 Tree View */
/*rtl:raw:
.ygtvtn,
.ygtvtm,
.ygtvtmh,
.ygtvtmhh,
.ygtvtp,
.ygtvtph,
.ygtvtphh,
.ygtvln,
.ygtvlm,
.ygtvlmh,
.ygtvlmhh,
.ygtvlp,
.ygtvlph,
.ygtvlphh,
.ygtvdepthcell,
.ygtvok,
.ygtvok:hover,
.ygtvcancel,
.ygtvcancel:hover {
    background-image: url(/theme/image.php/academi/theme/1790824836/yui2-treeview-sprite-rtl);
}
*/
.hover-tooltip-container {
  position: relative;
}
.hover-tooltip-container .hover-tooltip {
  opacity: 0;
  visibility: hidden;
  position: absolute;
  /*rtl:ignore*/
  left: 50%;
  top: calc(-50% - 5px);
  transform: translate(-50%, -50%);
  background-color: #fff;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 0.3rem;
  box-sizing: border-box;
  padding: 5px;
  white-space: nowrap;
  transition: opacity 0.15s, visibility 0.15s;
  z-index: 1000;
}
.hover-tooltip-container .hover-tooltip:before {
  content: "";
  display: inline-block;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 8px solid rgba(0, 0, 0, 0.2);
  position: absolute;
  bottom: -8px;
  left: calc(50% - 8px);
}
.hover-tooltip-container .hover-tooltip:after {
  content: "";
  display: inline-block;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-top: 7px solid #fff;
  position: absolute;
  bottom: -6px;
  left: calc(50% - 7px);
  z-index: 2;
}
.hover-tooltip-container:hover .hover-tooltip {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.15s 0.5s, visibility 0.15s 0.5s;
}
#region-flat-nav {
  padding-right: 0;
  padding-left: 0;
}
#region-flat-nav .nav {
  margin-right: 0.75rem;
  background-color: var(--bs-body-bg);
}
@media (max-width: 767.98px) {
  #region-flat-nav .nav {
    margin-top: 1.5rem;
    margin-right: 0;
  }
}
.footer-dark a {
  color: #fff;
  text-decoration: underline;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.footer-dark a .icon {
  color: #fff;
}
.footer-dark a:focus .icon {
  color: #1d2125;
}
.footer-popover .btn-footer-popover {
  display: none;
  position: fixed;
  bottom: 2rem;
  right: 2rem;
}
.btn-footer-communication {
  display: none;
  position: fixed;
  bottom: 5rem;
  right: 2rem;
}
.hasstickyfooter .btn-footer-popover {
  bottom: calc(1rem + calc(max(80px, calc(0.9375rem * 3))));
}
.hasstickyfooter .btn-footer-communication {
  bottom: calc(4rem + calc(max(80px, calc(0.9375rem * 3))));
}
.hasstickyfooter .maintenancewarning {
  bottom: calc(max(80px, calc(0.9375rem * 3)));
}
.popover.footer .popover-body {
  padding: 0;
}
.popover.footer .popover-body .footer-section a {
  color: #1d2125;
  text-decoration: underline;
}
.popover.footer .popover-body .footer-section a .icon {
  color: #1d2125;
}
.popover.footer .popover-body .footer-section a:focus {
  text-decoration: none;
}
.footer-support-link {
  padding-bottom: 5px;
}
@media (min-width: 576px) {
  .jsenabled #page-footer .footer-content-popover {
    display: none;
  }
  .jsenabled .btn-footer-popover, .jsenabled .btn-footer-communication {
    display: block;
    z-index: 1000;
  }
  .jsenabled .maintenancewarning, .jsenabled.hasstickyfooter:has(.drawer-right-toggle) .maintenancewarning {
    right: 5rem;
  }
}
.bg-inverse a {
  color: #fff;
  text-decoration: underline;
}
.bg-inverse a .icon {
  color: #fff;
}
.sitelink img {
  width: 112px;
}
.competency-tree ul {
  padding-left: 1.5rem;
}
.visually-hidden-focusable:active, .visually-hidden-focusable:focus {
  z-index: 1031;
  position: fixed;
  background: #fff;
  padding: 7px;
  left: 0;
  top: 0;
}
[data-drag-type="move"] {
  cursor: move;
  touch-action: none;
}
.clickable {
  cursor: pointer;
}
.overlay-icon-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.6);
}
.overlay-icon-container .loading-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.overlay-icon-container .loading-icon .icon {
  max-height: 2em;
  max-width: 2em;
  font-size: 2em;
}
.w-auto {
  width: auto;
}
.bg-pulse-grey {
  animation: bg-pulse-grey 2s infinite linear;
}
@keyframes bg-pulse-grey {
  0% {
    background-color: #f8f9fa;
  }
  50% {
    background-color: #e9ecef;
  }
  100% {
    background-color: #f8f9fa;
  }
}
.line-height-0 {
  line-height: 0 !important;
  /* stylelint-disable-line declaration-no-important */
}
.line-height-1 {
  line-height: 0.25rem !important;
  /* stylelint-disable-line declaration-no-important */
}
.line-height-2 {
  line-height: 0.5rem !important;
  /* stylelint-disable-line declaration-no-important */
}
.line-height-3 {
  line-height: 1rem !important;
  /* stylelint-disable-line declaration-no-important */
}
.line-height-4 {
  line-height: 1.5rem !important;
  /* stylelint-disable-line declaration-no-important */
}
.line-height-5 {
  line-height: 2rem !important;
  /* stylelint-disable-line declaration-no-important */
}
.line-height-6 {
  line-height: 3rem !important;
  /* stylelint-disable-line declaration-no-important */
}
.dir-rtl .dir-rtl-hide {
  display: none;
}
.dir-ltr .dir-ltr-hide {
  display: none;
}
.paged-content-page-container {
  min-height: 3.125rem;
}
body.h5p-embed #page-content {
  display: inherit;
}
body.h5p-embed #maincontent {
  display: none;
}
body.h5p-embed .h5pmessages {
  min-height: 230px;
}
#h5pcontenttypes td {
  vertical-align: middle;
}
#page.drawers form#h5peditor, #page.drawers form#coolh5peditor, #page.drawers .core_contentbank_viewcontent {
  max-width: 960px;
  margin: 0 auto;
}
#page-contentbank-edit fieldset {
  margin-top: 1em;
}
.text-decoration-none {
  text-decoration: none !important;
  /* stylelint-disable-line declaration-no-important */
}
.colour-inherit {
  color: inherit !important;
  /* stylelint-disable-line declaration-no-important */
}
.position-right {
  right: 0 !important;
  /* stylelint-disable-line declaration-no-important */
}
.overflow-hidden {
  overflow: hidden !important;
  /* stylelint-disable-line declaration-no-important */
}
.text-break {
  overflow-wrap: break-word !important;
  /* stylelint-disable-line declaration-no-important */
}
.word-break {
  word-break: break-word !important;
  /* stylelint-disable-line declaration-no-important */
}
.z-index-0 {
  z-index: 0 !important;
  /* stylelint-disable-line declaration-no-important */
}
.z-index-1 {
  z-index: 1 !important;
  /* stylelint-disable-line declaration-no-important */
}
.img-responsive {
  max-width: 100%;
  height: auto;
}
input[disabled] {
  cursor: not-allowed;
}
.fade.in {
  opacity: 1;
}
.clamp-2 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.word-break-all {
  word-break: break-all;
}
.matchtext {
  background-color: #8e8e94;
  color: #1d2125;
  height: 1.5rem;
}
.border-radius {
  border-radius: var(--bs-border-radius);
}
.v-hidden {
  visibility: hidden;
}
.dialog-big {
  max-width: 500px;
}
.dialog-small {
  max-width: 300px;
}
@media (min-width: 576px) {
  .dialog-big {
    width: 500px;
  }
  .dialog-small {
    width: 300px;
  }
}
/*
 * Helpers to show elements only when a parent element has focus or hover.
 */
.v-parent-focus {
  opacity: 0;
  visibility: hidden;
}
.focus-control:focus-within .v-parent-focus, .focus-control:hover .v-parent-focus {
  opacity: 1;
  visibility: visible;
}
.emoji-picker {
  width: 350px;
  height: 400px;
}
.emoji-picker .category-button {
  padding: 0.375rem 0;
  height: 100%;
  width: 38.8888888889px;
  border-top: none;
  border-left: none;
  border-right: none;
  border-bottom: 2px solid transparent;
}
.emoji-picker .category-button.selected {
  border-bottom: 2px solid #2A2A2C;
}
.emoji-picker .emojis-container, .emoji-picker .search-results-container {
  min-width: 280px;
}
.emoji-picker .picker-row {
  height: 40px;
}
.emoji-picker .picker-row .category-name {
  line-height: 40px;
}
.emoji-picker .picker-row .emoji-button {
  height: 40px;
  width: 40px;
  line-height: 40px;
  font-size: 24px;
  overflow: hidden;
}
.emoji-picker .emoji-preview {
  height: 40px;
  font-size: 40px;
  line-height: 40px;
}
.emoji-picker .emoji-short-name {
  line-height: 20px;
}
@media (max-width: 575.98px) {
  .emoji-picker {
    width: 320px;
  }
}
.emoji-auto-complete {
  height: 40px;
}
.emoji-auto-complete .btn.btn-icon.emoji-button {
  height: 40px;
  width: 40px;
  line-height: 40px;
  font-size: 24px;
}
.emoji-auto-complete .btn.btn-icon.emoji-button.active {
  background-color: #e9ecef;
}
.toast-wrapper {
  max-width: 350px;
  max-height: 0;
  z-index: 1051;
}
.toast-wrapper > :first-child {
  margin-top: 1rem;
}
.alert-primary a {
  color: black;
}
.alert-primary .btn-close {
  color: black;
  opacity: 0.6;
}
.alert-secondary a {
  color: #544422;
}
.alert-secondary .btn-close {
  color: #302613;
  opacity: 0.6;
}
.alert-success a {
  color: #10250f;
}
.alert-success .btn-close {
  color: #000100;
  opacity: 0.6;
}
.alert-info a {
  color: #002127;
}
.alert-info .btn-close {
  color: black;
  opacity: 0.6;
}
.alert-warning a {
  color: #6a4c22;
}
.alert-warning .btn-close {
  color: #433016;
  opacity: 0.6;
}
.alert-danger a {
  color: #4d120c;
}
.alert-danger .btn-close {
  color: #210805;
  opacity: 0.6;
}
.alert a {
  font-weight: 700;
}
.breadcrumb:empty {
  padding: 0;
}
@media (max-width: 767.98px) {
  #page-navbar {
    width: 100%;
  }
  .breadcrumb:not(:empty) {
    width: 100%;
    flex-wrap: nowrap;
    margin-bottom: 0.5rem;
  }
  .breadcrumb:not(:empty) .breadcrumb-item {
    padding-top: 0.33333rem;
    padding-bottom: 0.33333rem;
    display: inline-flex;
    overflow: hidden;
  }
  .breadcrumb:not(:empty) .breadcrumb-item a, .breadcrumb:not(:empty) .breadcrumb-item span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .mform {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
  }
  .pagination {
    flex-wrap: wrap;
    justify-content: center;
  }
  .card .card-body {
    padding: 0.5rem;
  }
  #page-header .card {
    border: 0;
  }
  #page-header .card .card-body {
    padding: 0;
  }
  .nav-tabs:not(.more-nav), .nav-pills {
    --bs-nav-tabs-link-active-color: #fff;
    --bs-nav-tabs-link-active-bg: #2A2A2C;
    margin: 0;
    border: 0;
    padding: 0.125rem;
    background-color: #e9ecef;
  }
  .nav-tabs:not(.more-nav) .nav-item, .nav-pills .nav-item {
    flex: 1 1 auto;
    text-align: center;
  }
  .nav-tabs:not(.more-nav) .nav-link, .nav-pills .nav-link {
    border: 0;
    margin: 0.125rem;
  }
  .nav-tabs:not(.more-nav) .nav-link:not(.active), .nav-pills .nav-link:not(.active) {
    background-color: var(--bs-body-bg);
  }
}
@media (max-width: 576px) and (max-height: 320px) {
  div#page {
    margin-top: 0;
  }
  .navbar.fixed-top {
    position: relative;
    z-index: inherit;
  }
}
.link-underline {
  text-decoration: underline;
}
.link-underline:focus {
  text-decoration: none;
}
.alert.cta .cta-icon .icon {
  padding: 0.3rem;
}
.alert.cta .cta-icon .icon.fa {
  border-radius: 50%;
  border-style: solid;
  border-width: 0.125rem;
}
.core_payment_gateways_modal .form-check-label::before, .core_payment_gateways_modal .form-check-label::after {
  top: 45%;
}
.visual-scroll-x {
  scrollbar-width: thin;
  scrollbar-color: #2A2A2C #8e8e94;
  -ms-overflow-style: -ms-autohiding-scrollbar;
}
.visual-scroll-x::-webkit-scrollbar {
  height: 8px;
  -webkit-appearance: none;
  appearance: none;
}
.visual-scroll-x::-webkit-scrollbar-thumb {
  background-color: #2A2A2C;
  border-right: 1px solid #fff;
}
.visual-scroll-x::-webkit-scrollbar-track {
  background-color: #8e8e94;
  border-right: 1px solid #fff;
}
body.dragging .drop-zone {
  border: 1px dashed #1d2125;
}
body.dragging .drop-up {
  border-top: 1px solid #1d2125;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
body.dragging .drop-down {
  border-bottom: 1px solid #1d2125;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
body.dragging .dragging {
  opacity: 0.6;
}
.dragicon {
  visibility: hidden;
}
.draggable:hover .dragicon {
  visibility: visible;
  cursor: move;
}
.dropzone-container {
  cursor: pointer;
}
.dropzone-container .dropzone {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  border: 2px dashed #bbb;
  border-radius: 0.5rem;
}
.dropzone-container .dropzone.dragover {
  border: 2px dashed #6c8cd3;
}
.dropzone-container .dropzone-icon {
  color: #8f959e;
}
.dropzone-container .dropzone-icon .icon {
  font-size: 6em;
  width: auto;
  height: auto;
  max-width: initial;
  max-height: initial;
  margin-right: 0;
}
.dropzone-container .dropzone-visually-hidden-focusable:active, .dropzone-container .dropzone-visually-hidden-focusable:focus {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
  z-index: 1070;
  position: relative;
  background: #fff;
  padding: 7px;
}
.overlay-preview {
  background-color: rgba(255, 255, 255, 0.8);
  border: 2px dashed #2A2A2C;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.overlay-preview .overlay-preview-wrapper {
  position: absolute;
  top: 0;
  padding: 2rem;
  width: 100%;
}
.overlay-preview .overlay-preview-content {
  position: relative;
  top: 0;
  padding: 1rem;
  margin: 0 auto;
  width: 100%;
  max-width: 600px;
  background-color: #2A2A2C;
  color: #fff;
  text-align: center;
  font-size: 1.171875rem;
  border-radius: 0.5rem;
}
.overlay-preview-borders {
  outline: 2px dashed #2A2A2C;
}
.waitstate {
  display: none;
}
.stateready .waitstate {
  display: inherit;
}
.stateready .whilenostate {
  display: none;
}
.collapse-list .collapse-list-item {
  padding: 0.5rem 1rem;
}
.collapse-list .collapse-list-item:hover, .collapse-list .collapse-list-item:focus {
  background-color: #e6f2f5;
  border-color: #b3d9e0;
}
.collapse-list .collapse-list-item-content .collapse-list-item {
  padding-left: calc(1rem * 3);
}
.drawers .block_myoverview {
  border: 0;
}
.drawers .block_myoverview > .card-body {
  padding-top: 0 !important;
  /* stylelint-disable-line declaration-no-important */
  padding-left: 0 !important;
  /* stylelint-disable-line declaration-no-important */
  padding-right: 0 !important;
  /* stylelint-disable-line declaration-no-important */
}
#page-my-index .my-action-buttons {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}
.dropdown-toggle::after {
  font: var(--fa-font-solid);
  content: "";
  margin-right: 0;
  margin-left: 4px;
  font-size: 9px;
  width: 9px;
  border: 0;
}
.listitem-category .dropdown-toggle::after {
  /* This can be removed when the .dropdown-toggle::after is updated to remove content. */
  content: none;
}
.dropleft .dropdown-toggle::before {
  border: 0;
  font: var(--fa-font-solid);
  content: "";
  font-size: 9px;
  margin-left: 0;
  margin-right: 4px;
  width: 9px;
}
.dir-rtl .dropleft .dropdown-toggle::before {
  content: "";
}
.dropright .dropdown-toggle::after {
  border: 0;
  font: var(--fa-font-solid);
  content: "";
}
.dir-rtl .dropright .dropdown-toggle::after {
  content: "";
}
.dropup .dropdown-toggle::after {
  border: 0;
  font: var(--fa-font-solid);
  content: "";
}
.select-menu li:first-child ul[role="group"] {
  padding: 0;
}
.select-menu ul[role="group"] {
  padding: 0.3rem 0 0 0;
  margin: 0;
}
.select-menu ul[role="group"] li:first-child {
  cursor: default;
  color: #6a737b;
  padding: 0.25rem 1.5rem;
  display: block;
}
.select-menu ul[role="group"] .dropdown-item {
  padding-left: 2.5rem;
}
.select-menu .dropdown-item {
  padding: 0.25rem 1.5rem;
}
.select-menu .dropdown-item [aria-selected="true"] {
  font-weight: bold;
}
[role="listbox"] [role="option"] {
  cursor: pointer;
}
[role="listbox"] [role="option"][aria-selected="true"] {
  font-weight: bold;
}
.initialbargroups ul {
  -webkit-margin-start: 0;
  /* stylelint-disable-line */
  margin-right: -1px;
}
.initialbargroups .page-item:first-child .page-link {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.initialbargroups .pagination-lg:first-child .page-item:first-child .page-link {
  border-top-left-radius: var(--bs-border-radius-lg);
  border-bottom-left-radius: var(--bs-border-radius-lg);
}
.initialbargroups .pagination-sm:first-child .page-item:first-child .page-link {
  border-top-left-radius: var(--bs-border-radius-sm);
  border-bottom-left-radius: var(--bs-border-radius-sm);
}
.initialbargroups .page-item:last-child .page-link {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.initialbargroups .pagination-lg:last-child .page-item:last-child .page-link {
  border-top-right-radius: var(--bs-border-radius-lg);
  border-bottom-right-radius: var(--bs-border-radius-lg);
}
.initialbargroups .pagination-sm:last-child .page-item:last-child .page-link {
  border-top-right-radius: var(--bs-border-radius-sm);
  border-bottom-right-radius: var(--bs-border-radius-sm);
}
blockquote {
  margin: 0 0.5rem 1rem;
  padding-left: 1rem;
  color: #495057;
  border-left: 5px solid #8f959e;
}
.pagelayout-maintenance .page-header-headings, .pagelayout-secure .page-header-headings {
  background-color: #fff;
}
/* Prevent long strings exceeding page width */
.page-header-headings:not(.text-truncate), .coursename:not(.text-truncate), .categoryname:not(.text-truncate), .breadcrumb-item:not(.text-truncate) {
  word-break: normal;
  overflow-wrap: anywhere;
  white-space: normal;
}
/* Showmore component */
.showmore-container.collapsed .expanded-content {
  display: none;
}
.showmore-container:not(.collapsed) .collapsed-content {
  display: none;
}
.showmore-container .showmore-button {
  float: right;
  text-decoration: none;
}
.showmore-container .showmore-button .icon {
  font-size: 0.8203125rem;
  margin: 0;
}
/* Combobox search dropdowns */
.usersearchdropdown.dropdown-menu, .gradesearchdropdown.dropdown-menu, .groupsearchdropdown.dropdown-menu {
  top: 100%;
  width: 350px;
}
.usersearchdropdown.dropdown-menu .searchresultitemscontainer, .gradesearchdropdown.dropdown-menu .searchresultitemscontainer, .groupsearchdropdown.dropdown-menu .searchresultitemscontainer {
  max-height: 170px;
  overflow: auto;
  /* stylelint-disable declaration-no-important */
}
.usersearchdropdown.dropdown-menu .searchresultitemscontainer img, .gradesearchdropdown.dropdown-menu .searchresultitemscontainer img, .groupsearchdropdown.dropdown-menu .searchresultitemscontainer img {
  height: 48px !important;
  width: 48px !important;
}
/* Bulk actions in sticky footer. */
#sticky-footer [data-type="bulkactions"] {
  display: flex;
  flex: 0 0 100%;
  align-items: center;
}
/* Choice list component. */
.choicelist {
  min-width: calc(300px - 25px);
}
.choicelist i.icon {
  vertical-align: middle;
}
/* General card customisations. */
.card.active {
  border-color: #8f959e;
}
.action-menu .dropdown-toggle {
  text-decoration: none;
  display: inline-block;
}
.action-menu {
  white-space: nowrap;
  display: inline;
}
.action-menu .dropdown-toggle.no-caret::after {
  display: none;
}
.action-menu .dropdown-toggle.no-caret::before {
  display: none;
}
.action-menu .dropdown.downleft .dropdown-subpanel-content {
  right: 0;
  left: auto;
}
.action-menu .dropdown-subpanel.content-displayed {
  background-color: #e9ecef;
}
.action-menu .dropdown-subpanel-content {
  max-width: 300px;
  box-shadow: 0 0 1rem rgba(0, 0, 0, 0.15);
}
.action-menu .dropdown-subpanel-content.show {
  animation: 0.15s animate-pop;
}
@media (prefers-reduced-motion: reduce) {
  .action-menu .dropdown-subpanel-content.show {
    animation: none;
  }
}
body.behat-site .action-menu .dropdown-subpanel-content.show {
  animation: none;
}
.action-menu .dropdown-subpanel .dropdown-item::after {
  border: 0;
  font: var(--fa-font-solid);
  content: "";
}
.action-menu .dropdown-subpanel .dropdown-item::before {
  display: none;
}
@keyframes animate-pop {
  0% {
    transform: scale(0.9, 0.9);
  }
  100% {
    transform: scale(1, 1);
  }
}
.dir-rtl .action-menu .dropdown-subpanel .dropdown-item::after {
  border: 0;
  font: var(--fa-font-solid);
  content: "";
}
.dir-rtl .action-menu .dropdown-subpanel .dropdown-item::before {
  display: none;
}
.dropdown-item a {
  display: block;
  width: 100%;
  color: #1d2125;
}
.dropdown-item.active a, .dropdown-item:active a, .dropdown-item:hover a, .dropdown-item:focus a, .dropdown-item:focus-within a {
  color: #fff;
}
.dropdown-item[aria-current="true"], .dropdown-item[aria-selected="true"] {
  position: relative;
  display: flex;
  align-items: center;
}
.dropdown-item[aria-current="true"]:before, .dropdown-item[aria-selected="true"]:before {
  font: var(--fa-font-solid);
  content: "";
  position: absolute;
  left: 0.4rem;
  font-size: 0.7rem;
}
.dropdown-item-outline:focus, .dropdown-item-outline:focus-within {
  outline: solid #2A2A2C;
}
.dropdown-item-outline a:focus, .dropdown-item-outline a:focus-visible {
  outline: 0;
}
.icon {
  max-width: 30px;
  max-height: 24px;
  margin: 0;
  padding: 0;
  box-sizing: content-box;
  margin-right: 0.5rem;
}
.icon.spacer {
  margin-right: 0;
}
.icon.iconsize-medium {
  font-size: 32px;
  width: 40px;
  height: 32px;
  max-width: 40px;
  max-height: 32px;
}
.icon.iconsize-big {
  width: 80px;
  height: 64px;
  max-width: 80px;
  max-height: 64px;
  font-size: 64px;
}
.icon.emoticon {
  width: 16px;
  height: 16px;
}
img.icon {
  width: 20px;
  height: 16px;
}
.navbar-dark a .icon {
  color: rgba(255, 255, 255, 0.55) !important;
  /* stylelint-disable-line declaration-no-important */
}
.action-menu-item a:first-of-type > .icon {
  margin-left: 0.5rem;
}
.ygtvcell .icon {
  margin-left: 0 !important;
  /* stylelint-disable-line declaration-no-important */
}
.block_navigation .tree_item .icon, .block_settings .tree_item .icon {
  margin-left: 0;
}
[data-action=toggle-drawer] .icon {
  margin: 0;
}
.icon-no-spacing a > .icon {
  margin: 0;
}
.icon-no-margin .icon {
  margin-left: 0;
  margin-right: 0;
  margin-top: 0;
  margin-bottom: 0;
}
.icon-large > .icon {
  width: 40px;
  height: 32px;
}
.icon-size-0 .icon {
  height: 0 !important;
  /* stylelint-disable-line declaration-no-important */
  width: 0 !important;
  /* stylelint-disable-line declaration-no-important */
  max-height: 0 !important;
  /* stylelint-disable-line declaration-no-important */
  max-width: 0 !important;
  /* stylelint-disable-line declaration-no-important */
  font-size: 0 !important;
  /* stylelint-disable-line declaration-no-important */
}
.icon-size-1 .icon {
  height: 4px !important;
  /* stylelint-disable-line declaration-no-important */
  width: 5px !important;
  /* stylelint-disable-line declaration-no-important */
  max-height: 4px !important;
  /* stylelint-disable-line declaration-no-important */
  max-width: 5px !important;
  /* stylelint-disable-line declaration-no-important */
  font-size: 4px !important;
  /* stylelint-disable-line declaration-no-important */
}
.icon-size-2 .icon {
  height: 8px !important;
  /* stylelint-disable-line declaration-no-important */
  width: 10px !important;
  /* stylelint-disable-line declaration-no-important */
  max-height: 8px !important;
  /* stylelint-disable-line declaration-no-important */
  max-width: 10px !important;
  /* stylelint-disable-line declaration-no-important */
  font-size: 8px !important;
  /* stylelint-disable-line declaration-no-important */
}
.icon-size-3 .icon {
  height: 16px !important;
  /* stylelint-disable-line declaration-no-important */
  width: 20px !important;
  /* stylelint-disable-line declaration-no-important */
  max-height: 16px !important;
  /* stylelint-disable-line declaration-no-important */
  max-width: 20px !important;
  /* stylelint-disable-line declaration-no-important */
  font-size: 16px !important;
  /* stylelint-disable-line declaration-no-important */
}
.icon-size-4 .icon {
  height: 24px !important;
  /* stylelint-disable-line declaration-no-important */
  width: 30px !important;
  /* stylelint-disable-line declaration-no-important */
  max-height: 24px !important;
  /* stylelint-disable-line declaration-no-important */
  max-width: 30px !important;
  /* stylelint-disable-line declaration-no-important */
  font-size: 24px !important;
  /* stylelint-disable-line declaration-no-important */
}
.icon-size-5 .icon {
  height: 32px !important;
  /* stylelint-disable-line declaration-no-important */
  width: 40px !important;
  /* stylelint-disable-line declaration-no-important */
  max-height: 32px !important;
  /* stylelint-disable-line declaration-no-important */
  max-width: 40px !important;
  /* stylelint-disable-line declaration-no-important */
  font-size: 32px !important;
  /* stylelint-disable-line declaration-no-important */
}
.icon-size-6 .icon {
  height: 40px !important;
  /* stylelint-disable-line declaration-no-important */
  width: 50px !important;
  /* stylelint-disable-line declaration-no-important */
  max-height: 40px !important;
  /* stylelint-disable-line declaration-no-important */
  max-width: 50px !important;
  /* stylelint-disable-line declaration-no-important */
  font-size: 40px !important;
  /* stylelint-disable-line declaration-no-important */
}
.icon-size-7 .icon {
  height: 48px !important;
  /* stylelint-disable-line declaration-no-important */
  width: 60px !important;
  /* stylelint-disable-line declaration-no-important */
  max-height: 48px !important;
  /* stylelint-disable-line declaration-no-important */
  max-width: 60px !important;
  /* stylelint-disable-line declaration-no-important */
  font-size: 48px !important;
  /* stylelint-disable-line declaration-no-important */
}
.helplink .icon {
  margin-left: 0.5rem;
}
.icons-collapse-expand {
  display: flex;
  align-items: center;
}
.icons-collapse-expand .expanded-icon {
  display: flex;
  align-items: center;
}
.icons-collapse-expand .collapsed-icon {
  display: none;
}
.icons-collapse-expand.collapsed .expanded-icon {
  display: none;
}
.icons-collapse-expand.collapsed .collapsed-icon {
  display: flex;
  align-items: center;
}
.activityiconcontainer {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border-radius: 4px;
}
.activityiconcontainer .activityicon, .activityiconcontainer .icon {
  margin: 0;
  font-size: 32px;
  height: 32px;
  width: 40px;
  max-height: 32px;
  max-width: 40px;
}
.activityiconcontainer.small {
  width: 42px;
  height: 42px;
  max-width: 42px;
  max-height: 42px;
}
.activityiconcontainer.smaller {
  width: 32px;
  height: 32px;
  max-width: 32px;
  max-height: 32px;
}
.activityiconcontainer.smaller .activityicon {
  width: 40px;
  height: 32px;
  max-width: 40px;
  max-height: 32px;
}
.activityiconcontainer.administration:not(.isbranded) .activityicon:not(.nofilter), .activityiconcontainer.administration:not(.isbranded) .icon:not(.nofilter) {
  filter: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="recolor" color-interpolation-filters="sRGB"><feColorMatrix type="matrix" values="0 0 0 0 .8549019608 0 0 0 0 .3450980392 0 0 0 0 .937254902 0 0 0 1 0 "/></filter></svg>#recolor');
}
.activityiconcontainer.assessment:not(.isbranded) .activityicon:not(.nofilter), .activityiconcontainer.assessment:not(.isbranded) .icon:not(.nofilter) {
  filter: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="recolor" color-interpolation-filters="sRGB"><feColorMatrix type="matrix" values="0 0 0 0 .9764705882 0 0 0 0 0 0 0 0 0 .5254901961 0 0 0 1 0 "/></filter></svg>#recolor');
}
.activityiconcontainer.collaboration:not(.isbranded) .activityicon:not(.nofilter), .activityiconcontainer.collaboration:not(.isbranded) .icon:not(.nofilter) {
  filter: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="recolor" color-interpolation-filters="sRGB"><feColorMatrix type="matrix" values="0 0 0 0 .3568627451 0 0 0 0 .2509803922 0 0 0 0 1 0 0 0 1 0 "/></filter></svg>#recolor');
}
.activityiconcontainer.communication:not(.isbranded) .activityicon:not(.nofilter), .activityiconcontainer.communication:not(.isbranded) .icon:not(.nofilter) {
  filter: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="recolor" color-interpolation-filters="sRGB"><feColorMatrix type="matrix" values="0 0 0 0 .9215686275 0 0 0 0 .3843137255 0 0 0 0 0 0 0 0 1 0 "/></filter></svg>#recolor');
}
.activityiconcontainer.content:not(.isbranded) .activityicon:not(.nofilter), .activityiconcontainer.content:not(.isbranded) .icon:not(.nofilter) {
  filter: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="recolor" color-interpolation-filters="sRGB"><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 .6 0 0 0 0 .6784313725 0 0 0 1 0 "/></filter></svg>#recolor');
}
.activityiconcontainer.interactivecontent:not(.isbranded) .activityicon:not(.nofilter), .activityiconcontainer.interactivecontent:not(.isbranded) .icon:not(.nofilter) {
  filter: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="recolor" color-interpolation-filters="sRGB"><feColorMatrix type="matrix" values="0 0 0 0 .5529411765 0 0 0 0 .2392156863 0 0 0 0 .1058823529 0 0 0 1 0 "/></filter></svg>#recolor');
}
.icon-box {
  width: 60px;
  height: 48px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background-color: #f8f9fa;
  border-radius: 12px;
  padding: 0.7rem;
}
.icon-box .icon {
  margin: 0;
  height: 40px;
  width: 32px;
}
.icon-circle {
  display: inline-block;
  background-color: #c2cad1;
  border-radius: 50%;
  padding: 1.3rem;
}
.icon-circle .icon {
  margin: 0;
  text-align: center;
  max-width: unset;
  max-height: unset;
  color: #000;
}
.icon-circle.reversed {
  background-color: #b7c0c8;
}
.icon-circle.reversed .icon {
  color: #fff;
}
:root {
  --activityadministration: #da58ef;
  --activityassessment: #f90086;
  --activitycollaboration: #5b40ff;
  --activitycommunication: #eb6200;
  --activitycontent: #0099ad;
  --activityinteractivecontent: #8d3d1b;
}
/* admin.less */
.formtable tbody th {
  font-weight: normal;
  text-align: right;
}
.path-admin #assignrole {
  width: 60%;
  margin-left: auto;
  margin-right: auto;
}
.path-admin .admintable .leftalign {
  text-align: left;
}
.path-admin .admintable.environmenttable .name, .path-admin .admintable.environmenttable .info, .path-admin #assignrole .admintable .role, .path-admin #assignrole .admintable .userrole, .path-admin #assignrole .admintable .roleholder {
  white-space: nowrap;
}
.path-admin .incompatibleblockstable td.c0 {
  font-weight: bold;
}
#page-admin-course-category .addcategory {
  padding: 10px;
}
#page-admin-course-index .editcourse {
  margin: 20px auto;
}
#page-admin-course-index .editcourse th, #page-admin-course-index .editcourse td {
  padding-left: 10px;
  padding-right: 10px;
}
.timewarninghidden {
  display: none;
}
#page-admin-qtypes #qtypes div, #page-admin-qtypes #qtypes form, #page-admin-qbehaviours #qbehaviours div, #page-admin-qbehaviours #qbehaviours form {
  display: inline;
}
#page-admin-qtypes #qtypes img.spacer, #page-admin-qbehaviours #qbehaviours img.spacer {
  width: 16px;
}
#page-admin-qbehaviours .cell.c3, #page-admin-qtypes .cell.c3 {
  font-size: 0.8203125rem;
}
#page-admin-lang .generalbox, #page-admin-course-index .singlebutton, #page-admin-course-index .addcategory, #page-course-index .buttons, #page-course-index-category .buttons, #page-admin-course-category .addcategory, #page-admin-stickyblocks .generalbox, #page-admin-maintenance .buttons, #page-admin-course-index .buttons, #page-admin-course-category .buttons, #page-admin-index .copyright, #page-admin-index .copyrightnotice, #page-admin-index .adminerror .singlebutton, #page-admin-index .adminwarning .singlebutton, #page-admin-index #layout-table .singlebutton {
  text-align: center;
  margin-bottom: 1em;
}
.path-admin-roles .capabilitysearchui {
  text-align: left;
  margin-left: auto;
  margin-right: auto;
  margin-top: 1rem;
}
#page-admin-roles-define .topfields {
  margin: 1em 0 2em;
}
#page-admin-roles-override .capcurrent, #page-admin-roles-define .capdefault {
  background-color: rgba(var(--bs-emphasis-color-rgb), 0.075);
}
#page-filter-manage .backlink, .path-admin-roles .backlink {
  margin-top: 1em;
}
#page-admin-roles-explain #chooseuser h3, #page-admin-roles-explain #chooseuser .h3, #page-admin-roles-usersroles .contextname {
  margin-top: 0;
}
#page-admin-roles-explain #chooseusersubmit {
  margin-top: 0;
  text-align: center;
}
#page-admin-roles-usersroles p {
  margin: 0;
}
#page-admin-roles-override .cell.c1, #page-admin-roles-assign .cell.c3, #page-admin-roles-assign .cell.c1 {
  padding-top: 0.75em;
}
#page-admin-roles-override .overridenotice, #page-admin-roles-define .definenotice {
  margin: 1em 10% 2em 10%;
  text-align: left;
}
#page-admin-index .upgradekeyreq {
  min-width: 220px;
}
#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo span {
  display: block;
}
#page-admin-index .updateplugin div {
  margin-bottom: 0.5em;
}
#page-admin-user-user_bulk #users .fgroup {
  white-space: nowrap;
}
#page-admin-report-stats-index .graph {
  text-align: center;
  margin-bottom: 1em;
}
#page-admin-report-courseoverview-index .graph {
  text-align: center;
  margin-bottom: 1em;
}
#page-admin-lang .translator {
  border-width: 1px;
  border-style: solid;
}
.path-admin .roleassigntable {
  width: 100%;
}
.path-admin .roleassigntable td {
  vertical-align: top;
  padding: 0.2em 0.3em;
}
.path-admin .roleassigntable p {
  text-align: left;
  margin: 0.2em 0;
}
.path-admin .roleassigntable #existingcell, .path-admin .roleassigntable #potentialcell {
  width: 42%;
}
.path-admin .roleassigntable #existingcell p > label:first-child, .path-admin .roleassigntable #potentialcell p > label:first-child {
  font-weight: bold;
}
.path-admin .roleassigntable #buttonscell {
  width: 16%;
}
.path-admin .roleassigntable #buttonscell #assignoptions {
  font-size: 0.8203125rem;
}
.path-admin .roleassigntable #removeselect_wrapper, .path-admin .roleassigntable #addselect_wrapper {
  width: 100%;
}
.path-admin table.rolecap tr.rolecap th {
  text-align: left;
  font-weight: normal;
}
.path-admin .rolecap .hiddenrow {
  display: none;
}
.path-admin #defineroletable .rolecap .inherit, .path-admin #defineroletable .rolecap .allow, .path-admin #defineroletable .rolecap .prevent, .path-admin #defineroletable .rolecap .prohibit {
  text-align: center;
  padding: 0;
  min-width: 3.5em;
}
.path-admin .rolecap .cap-name, .path-admin .rolecap .note {
  display: block;
  font-size: 0.8203125rem;
  white-space: nowrap;
  font-weight: normal;
}
.path-admin .rolecap label {
  display: block;
  text-align: center;
  padding: 0.5em;
  margin: 0;
}
.path-admin .header-maxwidth, .path-admin .secondary-navigation .navigation .nav-tabs, .format-site .header-maxwidth, .format-site .secondary-navigation .navigation .nav-tabs {
  max-width: none;
}
.path-admin.path-admin-roles:not(.format-site) .header-maxwidth, .path-admin.path-admin-roles:not(.format-site) .secondary-navigation .navigation .nav-tabs, .path-admin.path-admin-tool-lp .header-maxwidth, .path-admin.path-admin-tool-lp .secondary-navigation .navigation .nav-tabs {
  max-width: 830px;
}
.plugincheckwrapper {
  width: 100%;
}
.environmentbox {
  margin-top: 1em;
}
#mnetconfig table {
  margin-left: auto;
  margin-right: auto;
}
.environmenttable .cell {
  padding: 0.15em 0.5em;
}
#trustedhosts .generaltable {
  margin-left: auto;
  margin-right: auto;
  width: 500px;
}
#trustedhosts .standard {
  width: auto;
}
#adminsettings legend {
  display: none;
}
#adminsettings fieldset.error {
  margin: 0.2em 0 0.5em 0;
}
#adminsettings fieldset.error legend {
  display: block;
}
#admin-spelllanguagelist textarea {
  /* rtl:ignore */
  text-align: left;
  /* rtl:ignore */
  direction: ltr;
}
/* Styles for flags on admin settings */
.adminsettingsflags {
  float: right;
}
.adminsettingsflags label {
  margin-right: 7px;
}
.form-description pre, .formsettingheading pre {
  /*rtl:ignore*/
  direction: ltr;
}
.form-item .form-setting .form-htmlarea {
  display: inline;
}
.form-item .form-setting .form-htmlarea .htmlarea {
  width: 640px;
  display: block;
}
.form-item .form-setting .form-multicheckbox ul {
  list-style: none;
  padding: 0;
  margin: 7px 0 0 0;
}
.form-item .form-setting .defaultsnext {
  display: inline-block;
}
.form-item .form-setting .locked-checkbox {
  margin-right: 0.2em;
  margin-left: 0.5em;
  display: inline;
}
.form-item .form-setting .form-password .unmask, .form-item .form-setting .form-defaultinfo {
  display: inline-block;
}
.form-item .form-setting .form-defaultinfo {
  max-width: 100%;
  word-wrap: break-word;
}
#admin-emoticons td input {
  width: 8em;
}
#admin-emoticons td.c0 input {
  width: 4em;
}
.admin_colourpicker, .admin_colourpicker_preview {
  display: none;
}
.jsenabled .admin_colourpicker_preview {
  display: inline;
}
@media (min-width: 768px) {
  .jsenabled .admin_colourpicker {
    display: block;
    height: 102px;
    width: 410px;
    margin-bottom: 10px;
    box-sizing: content-box;
  }
  .admin_colourpicker .colourdialogue {
    float: left;
    border: 1px solid #8f959e;
  }
  .admin_colourpicker .previewcolour {
    border: 1px solid #8f959e;
    margin-left: 301px;
  }
  .admin_colourpicker .currentcolour {
    border: 1px solid #8f959e;
    margin-left: 301px;
    border-top-width: 0;
  }
}
@media (max-width: 767.98px) {
  .jsenabled .admin_colourpicker {
    height: 150px;
    margin-bottom: 10px;
    display: block;
    position: relative;
  }
  .admin_colourpicker .previewcolour {
    display: none;
  }
  .admin_colourpicker .currentcolour {
    position: absolute;
    border: 1px solid #dee2e6;
    top: 100px;
    left: 0;
  }
}
.admin_colourpicker .loadingicon {
  vertical-align: middle;
  margin-left: auto;
}
#page-admin-index #notice .checkforupdates {
  text-align: center;
}
#page-admin-index #page-content .alert a {
  font-weight: normal;
  text-decoration: underline;
}
#page-admin-plugins #plugins-overview-panel .info {
  display: inline-block;
  margin-right: 1em;
}
#page-admin-plugins #plugins-overview-panel .info [data-filterby].active {
  font-weight: bold;
}
#page-admin-plugins #plugins-overview-panel .updateavailableinstallall {
  margin-right: 1em;
}
#page-admin-plugins .checkforupdates {
  margin: 10px 0;
}
#page-admin-plugins .checkforupdates .singlebutton {
  margin: 5px 0;
  padding: 0;
}
#page-admin-plugins .checkforupdates .singlebutton div, #page-admin-plugins .checkforupdates .singlebutton input {
  margin: 0 3px 0 0;
}
#page-admin-plugins .updateavailableinstallall {
  margin: 5px 0;
  padding: 0;
}
#page-admin-plugins .updateavailableinstallall div, #page-admin-plugins .updateavailableinstallall input {
  margin: 0 3px 5px 0;
}
#page-admin-plugins #plugins-control-panel .status-missing td, #page-admin-plugins #plugins-control-panel .deprecatedtype td {
  background-color: #fcefdc;
}
#page-admin-plugins #plugins-control-panel .pluginname .componentname {
  font-size: 0.8203125rem;
  color: var(--bs-secondary-color);
  margin-left: 22px;
}
#page-admin-plugins #plugins-control-panel .version .versionnumber {
  font-size: 0.8203125rem;
  color: var(--bs-secondary-color);
}
#page-admin-plugins #plugins-control-panel .uninstall a {
  color: #ca3120;
}
#page-admin-plugins #plugins-control-panel .notes .label {
  margin-right: 3px;
}
#page-admin-plugins #plugins-control-panel .notes .requiredby {
  font-size: 0.8203125rem;
  color: var(--bs-secondary-color);
}
#plugins-check-page #plugins-check .status-missing td, #plugins-check-page #plugins-check .deprecatedtype td, #plugins-check-page #plugins-check .status-downgrade td {
  background-color: #f4d6d2;
}
#plugins-check-page .pluginupdateinfo, #plugins-control-panel .pluginupdateinfo {
  background-color: #cce6ea;
  padding: 5px;
  margin: 10px 0;
  border-radius: 5px;
}
#plugins-check-page .pluginupdateinfo.maturity50, #plugins-control-panel .pluginupdateinfo.maturity50 {
  background-color: #f4d6d2;
}
#plugins-check-page .pluginupdateinfo.maturity100, #plugins-check-page .pluginupdateinfo.maturity150, #plugins-control-panel .pluginupdateinfo.maturity100, #plugins-control-panel .pluginupdateinfo.maturity150 {
  background-color: #fcefdc;
}
#plugins-check-page .pluginupdateinfo .info, #plugins-control-panel .pluginupdateinfo .info {
  display: inline-block;
}
#plugins-check-page .pluginupdateinfo .separator:after, #plugins-control-panel .pluginupdateinfo .separator:after {
  content: " | ";
}
#plugins-check-page .pluginupdateinfo .singlebutton, #plugins-control-panel .pluginupdateinfo .singlebutton {
  margin: 5px 0;
  padding: 0;
}
#plugins-check-page .pluginupdateinfo .singlebutton div, #plugins-check-page .pluginupdateinfo .singlebutton input, #plugins-control-panel .pluginupdateinfo .singlebutton div, #plugins-control-panel .pluginupdateinfo .singlebutton input {
  margin: 0 3px 0 0;
}
.plugins-management-confirm-buttons > div {
  display: inline-block;
  margin: 1em 1em 1em 0;
}
.plugins-management-confirm-buttons .continue {
  padding: 0;
}
.plugins-management-confirm-buttons .continue div, .plugins-management-confirm-buttons .continue input {
  margin: 0;
}
#page-admin-index .upgradepluginsinfo {
  text-align: center;
}
#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo .separator:after {
  content: " | ";
}
/** MNet networking */
#page-admin-mnet-peers .box.deletedhosts {
  margin-bottom: 1em;
  font-size: 0.8203125rem;
}
#core-cache-plugin-summaries table, #core-cache-store-summaries table {
  width: 100%;
}
#core-cache-lock-summary table, #core-cache-definition-summaries table, #core-cache-mode-mappings table {
  margin: 0 auto;
}
#core-cache-store-summaries .default-store td {
  font-style: italic;
}
#core-cache-rescan-definitions, #core-cache-mode-mappings .edit-link, #core-cache-lock-additional-actions .new-instance {
  margin-top: 0.5em;
  text-align: center;
}
.maintenancewarning {
  position: fixed;
  bottom: 0;
  right: 0;
  margin: 1rem;
  overflow: hidden;
  z-index: 1000;
}
.jsenabled .maintenancewarning {
  transition: 0.2s;
}
@media (prefers-reduced-motion: reduce) {
  .jsenabled .maintenancewarning {
    transition: none;
  }
}
.modal.modal-in-page {
  z-index: 0;
}
#page-admin-search .adminpagetitle {
  margin-bottom: 0;
  border-bottom: none;
}
#page-admin-search .adminpagepath {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem 0;
}
#page-admin-search .adminpagepath li + li:before {
  padding-right: 0.5rem;
  padding-left: 0.5rem;
  content: "/";
}
@media (min-width: 576px) {
  #page-admin-search .container {
    overflow-wrap: break-word;
  }
}
#page-admin-tasklogs .task-class {
  font-size: 0.8203125rem;
  color: #6a737b;
}
.path-admin-tool-uploaduser .uuwarning {
  background-color: #fcefdc;
}
.path-admin-tool-uploaduser .uuerror {
  background-color: #f4d6d2;
}
.path-admin-tool-uploaduser .uuinfo {
  background-color: #d7e4d6;
}
/**
 Blocks
 */
.blockmovetarget .accesshide {
  position: relative;
  left: initial;
}
.block:target {
  padding-top: 0 !important;
  /* stylelint-disable declaration-no-important */
  margin-top: 0 !important;
}
.block_search_forums .searchform {
  /* Override plugin's default. */
  text-align: left;
}
.block.block_navigation .block_tree ul, .block_settings .block_tree ul {
  margin-left: 0;
}
.block .block-controls .dropdown-toggle {
  /* So that the icon takes the colour of the icon. */
  color: #1d2125;
}
.block .block-controls .dropdown-toggle::after {
  display: none;
}
.block .block-controls .dropdown-menu {
  max-width: 500px;
}
.block .block-controls .dropdown-menu .dropdown-item {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
[data-region="blocks-column"] {
  width: 360px;
  float: right;
}
/* We put an absolutely positioned div in a relatively positioned div so it takes up no space */
@media (min-width: 576px) {
  #region-main-settings-menu {
    position: relative;
    float: left;
    width: 100%;
  }
  #region-main-settings-menu > div {
    position: absolute;
    right: 0;
    z-index: 100;
    margin: 1rem;
  }
  .region_main_settings_menu_proxy {
    width: 4rem;
    height: 2rem;
    background-color: #fff;
    margin-left: 0.5rem;
    margin-bottom: 0.5rem;
    border-bottom-left-radius: 0.5rem;
    float: right;
  }
}
@media (max-width: 767.98px) {
  #region-main-settings-menu .menubar {
    justify-content: flex-end;
  }
}
#region-main.has-blocks {
  display: inline-block;
  width: calc(100% - calc(360px + (1.5rem * 0.5)));
}
@media (max-width: 1199.98px) {
  #region-main.has-blocks {
    width: 100%;
    /* MDL-63102 - Remove extra space at bottom.
        If modifying make sure block-region is horizontally stacked when in full screen */
    display: block;
  }
}
.header-action #region-main-settings-menu {
  position: unset;
  float: none;
  width: auto;
}
.header-action #region-main-settings-menu > div {
  position: unset;
  right: auto;
  margin: 0;
}
@media (max-width: 1199.98px) {
  [data-region="blocks-column"] {
    width: 100%;
  }
}
.block .empty-placeholder-image-lg {
  height: 5rem;
}
.block .searchbar .icon {
  margin-right: 0;
}
.block .block-cards .course-info-container {
  padding: 0.8rem;
}
.block .block-cards .progress {
  height: 0.5rem;
}
.block .block-cards .course-summaryitem {
  border: 1px solid #dee2e6;
  background-color: #fff;
}
.block .block-cards .icon {
  margin-right: 0;
}
.block .block-cards .card .coursemenubtn {
  margin-top: -0.5rem;
}
.block .block-cards span.categoryname, .block .block-cards .btn-link {
  color: #1d2125;
}
.block .block-cards .progress-text {
  color: #6a737b;
}
.block .block-cards .multiline {
  white-space: normal;
}
.card-grid {
  display: flex;
}
.card-grid .card {
  flex: 1;
}
.drawercontent .card-grid .col, .blockcolumn .card-grid .col {
  flex: 0 0 auto;
  max-width: 100%;
}
.card-carousel {
  display: flex;
}
.card-carousel .card {
  flex: 1;
}
@media (min-width: 576px) {
  .card-carousel .card {
    flex: 0 1 auto;
    width: 240px;
    max-width: 100%;
  }
}
.course-card .card-img-top, .theme-card .card-img-top {
  height: 7rem;
  background-position: center;
  background-size: cover;
}
.block_recentlyaccessedcourses .paging-bar-container {
  margin-top: -2.4rem;
  padding-right: 0.5rem;
  justify-content: flex-end;
}
@media (max-width: 575.98px) {
  .block_recentlyaccessedcourses .paging-bar-container {
    margin-top: 0;
  }
}
#block-region-side-pre .block_recentlyaccessedcourses .paging-bar-container {
  margin-top: 0;
}
.block_recentlyaccesseditems .activityiconcontainer {
  width: 40px;
  height: 40px;
}
aside[id^="block-region-side-"] .block_recentlyaccesseditems .card:nth-of-type(n+4) {
  display: none;
}
#block-region-content .block_recentlyaccesseditems [data-region="more-items-button-container"] {
  display: none;
}
.block_recentlyaccesseditems a.card:hover, .block_recentlyaccesseditems a.card:focus {
  text-decoration: none;
}
.block_recentlyaccesseditems a.card:hover h6, .block_recentlyaccesseditems a.card:hover .h6, .block_recentlyaccesseditems a.card:focus h6, .block_recentlyaccesseditems a.card:focus .h6 {
  text-decoration: underline;
}
.block_recentlyaccesseditems a.card small, .block_recentlyaccesseditems a.card .small {
  color: #1d2125;
}
.block_myoverview .content {
  min-height: 19.35rem;
}
.block_myoverview .paged-content-page-container {
  min-height: 13rem;
}
.block_myoverview .summary-image {
  height: 5rem;
  width: 5rem;
  background-position: center;
  background-size: cover;
}
.block_myoverview .list-image {
  height: 5rem;
  width: 20rem;
  background-position: center;
  background-size: cover;
}
@media (max-width: 1199.98px) {
  .block_myoverview .list-image {
    width: 100%;
  }
}
.block_myoverview .dropdown-item {
  padding-left: 1.5rem;
}
.block_timeline .paged-content-page-container {
  background-color: var(--bs-body-bg);
}
.block_timeline .event-action {
  padding-left: 5.55em;
}
.block_timeline .dropdown-menu .dropdown-item {
  padding-left: 1.5rem;
}
.block_settings .block_tree [aria-expanded="true"], .block_settings .block_tree [aria-expanded="true"].emptybranch, .block_settings .block_tree [aria-expanded="false"], .block_navigation .block_tree [aria-expanded="true"], .block_navigation .block_tree [aria-expanded="true"].emptybranch, .block_navigation .block_tree [aria-expanded="false"] {
  background-image: none;
}
.block_settings .block_tree [aria-expanded="true"] > p:before, .block_navigation .block_tree [aria-expanded="true"] > p:before {
  font: var(--fa-font-solid);
  content: "";
  margin-right: 0;
  font-size: 16px;
  width: 16px;
}
.block_settings .block_tree [aria-expanded="false"] > p:before, .block_navigation .block_tree [aria-expanded="false"] > p:before {
  font: var(--fa-font-solid);
  content: "";
  margin-right: 0;
  font-size: 16px;
  width: 16px;
}
.dir-rtl .block_settings .block_tree [aria-expanded="false"] > p:before, .dir-rtl .block_navigation .block_tree [aria-expanded="false"] > p:before {
  font: var(--fa-font-solid);
  content: "";
}
.block_navigation .block_tree p.hasicon, .block_settings .block_tree p.hasicon {
  text-indent: -3px;
}
.block_navigation .block_tree p.hasicon .icon, .block_settings .block_tree p.hasicon .icon {
  margin-right: 2px;
}
.block.invisibleblock .card-title {
  color: var(--bs-secondary-color);
}
.block_tree .tree_item.branch {
  margin-left: 8px;
}
.pagelayout-embedded .has-fake-blocks {
  padding: 1rem;
  display: flex;
}
.pagelayout-embedded .has-fake-blocks .embedded-main {
  order: 0;
  width: calc(100% - 360px);
  margin-right: 1rem;
}
.pagelayout-embedded .embedded-blocks {
  order: 1;
  width: 360px;
}
@media (max-width: 767.98px) {
  .pagelayout-embedded .has-fake-blocks {
    display: block;
  }
  .pagelayout-embedded .has-fake-blocks .embedded-main {
    width: 100%;
  }
  .pagelayout-embedded .embedded-blocks {
    width: 100%;
  }
}
.block-add {
  color: #2A2A2C;
  border-color: #555556;
  background-color: #eaeaea;
  border-radius: 0.5rem;
  width: 100%;
  border-width: 1px;
}
.block-add .pluscontainer {
  border: 1px solid #555556;
  border-radius: 50%;
  width: 40px;
  height: 32px;
}
.block-add:hover {
  cursor: pointer;
  background-color: #eaeaea;
}
.block-add:hover .activity-add-text {
  text-decoration: underline;
}
/* calendar.less */
.calendar_event_category {
  background-color: #e0cbe0;
}
.calendar_event_category .commands a {
  color: #0d5ca1;
}
.calendar_event_course {
  background-color: #ffd3bd;
}
.calendar_event_course .commands a {
  color: #0d5ca1;
}
.calendar_event_site {
  background-color: #d6f8cd;
}
.calendar_event_site .commands a {
  color: #0d5ca1;
}
.calendar_event_group {
  background-color: #fee7ae;
}
.calendar_event_group .commands a {
  color: #0d5ca1;
}
.calendar_event_user {
  background-color: #dce7ec;
}
.calendar_event_user .commands a {
  color: #0d5ca1;
}
.calendar_event_other {
  background-color: #ced4da;
}
.calendar_event_other .commands a {
  color: #0d5ca1;
}
.calendartable {
  width: 100%;
  table-layout: fixed;
}
.calendartable th, .calendartable td {
  width: 14%;
  vertical-align: top;
  text-align: center;
  border: 0;
}
.calendar-controls .previous, .calendar-controls .next, .calendar-controls .current {
  display: block;
  float: left;
  width: 12%;
}
.calendar-controls .previous {
  text-align: left;
  border: 1px solid transparent;
  width: 25%;
}
.calendar-controls .current {
  text-align: center;
  width: 50%;
}
.calendar-controls .next {
  text-align: right;
  border: 1px solid transparent;
  width: 25%;
}
.calendar-controls .drop-target {
  box-sizing: border-box;
  border: 1px dashed #2A2A2C;
}
.filters table {
  border-collapse: separate;
  border-spacing: 2px;
  width: 100%;
}
#region-main .maincalendar .calendarwrapper td > div {
  height: 11.5em;
  overflow: hidden;
}
.maincalendar {
  vertical-align: top;
  padding: 0;
}
.maincalendar .bottom {
  text-align: left;
  width: 98%;
  margin: 10px auto;
}
.maincalendar .bottom span.footer-link:after {
  content: "•";
  color: #2A2A2C;
}
.maincalendar .bottom span.footer-link:last-child:after {
  content: none;
}
.maincalendar .heightcontainer {
  height: 100%;
  position: relative;
}
.maincalendar .calendarmonth {
  width: 98%;
  margin: 10px auto;
}
.maincalendar .calendarmonth ul {
  margin: 0;
  padding: 0;
}
.maincalendar .calendarmonth ul li[data-event-folded="true"] {
  display: none;
}
.maincalendar .calendarmonth ul li {
  list-style-type: none;
  line-height: 1.2em;
}
.maincalendar .calendarmonth ul li > a {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
  display: inline-block;
}
.maincalendar .calendarmonth ul li > a:hover {
  text-decoration: underline;
}
.maincalendar .calendarmonth ul li a[data-action="view-day-link"] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.maincalendar .calendarmonth ul li .icon {
  margin-left: 0.25em;
  margin-right: 0.25em;
  vertical-align: initial;
}
.maincalendar .calendarmonth ul li .calendar-circle {
  width: 12px;
  height: 12px;
  border-radius: 6px;
  vertical-align: middle;
  display: inline-block;
}
.maincalendar .calendarmonth ul li .calendar-circle.calendar_event_category {
  background-color: #e0cbe0;
  border: 2px solid #9e619f;
}
.maincalendar .calendarmonth ul li .calendar-circle.calendar_event_course {
  background-color: #ffd3bd;
  border: 2px solid #d34600;
}
.maincalendar .calendarmonth ul li .calendar-circle.calendar_event_site {
  background-color: #d6f8cd;
  border: 2px solid #2b8713;
}
.maincalendar .calendarmonth ul li .calendar-circle.calendar_event_group {
  background-color: #fee7ae;
  border: 2px solid #9a6e02;
}
.maincalendar .calendarmonth ul li .calendar-circle.calendar_event_user {
  background-color: #dce7ec;
  border: 2px solid #4e7c91;
}
.maincalendar .calendarmonth ul li .calendar-circle.calendar_event_other {
  background-color: #ced4da;
  border: 2px solid #687889;
}
.maincalendar .calendarmonth th {
  text-align: left;
  padding-left: 16px;
}
.maincalendar .calendarmonth td a.day:focus {
  display: inline-block;
  border-radius: 50%;
  box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
}
.maincalendar .calendarmonth td .day-number-circle {
  display: inline-block;
  line-height: 0;
  width: 30px;
  height: 30px;
}
.maincalendar .calendarmonth td .day-number-circle .day-number {
  display: inline-block;
  padding: 50% 4px;
  width: 100%;
  text-align: center;
}
.maincalendar .calendarmonth td.today .day-number-circle {
  border-radius: 50%;
  color: #fff;
  background-color: #2A2A2C;
}
.maincalendar .calendarmonth .clickable:hover {
  background-color: #ededed;
}
.maincalendar .controls {
  width: 98%;
  margin: 10px auto;
}
.maincalendar .calendar_event_category a:has(> .icon):hover, .maincalendar .calendar_event_course a:has(> .icon):hover, .maincalendar .calendar_event_site a:has(> .icon):hover, .maincalendar .calendar_event_group a:has(> .icon):hover, .maincalendar .calendar_event_user a:has(> .icon):hover {
  color: #07345a;
  text-decoration: underline;
}
.maincalendar .calendar_event_category {
  border-color: #e0cbe0;
}
.maincalendar .calendar_event_course {
  border-color: #ffd3bd;
}
.maincalendar .calendar_event_site {
  border-color: #d6f8cd;
}
.maincalendar .calendar_event_group {
  border-color: #fee7ae;
}
.maincalendar .calendar_event_user {
  border-color: #dce7ec;
}
.maincalendar .calendar_event_other {
  border-color: #ced4da;
}
.maincalendar .calendartable td, .maincalendar .calendartable li {
  padding: 4px;
}
.maincalendar .calendartable li {
  text-align: left;
}
.maincalendar .header {
  overflow: hidden;
}
.maincalendar .header .buttons {
  float: right;
}
.maincalendar .event .card-header img {
  vertical-align: baseline;
}
.maincalendar .event .location {
  word-break: break-all;
  overflow-wrap: break-word;
}
.maincalendar table#subscription_details_table td {
  vertical-align: middle;
}
.maincalendar table#subscription_details_table td > .btn-group button {
  padding-left: 0;
}
#page-calendar-export .indent {
  padding-left: 20px;
}
.block .bottom {
  width: 98%;
  margin: 10px auto;
}
.block .bottom span.footer-link:after {
  content: "•";
  color: #2A2A2C;
}
.block .bottom span.footer-link:last-child:after {
  content: none;
}
.block .minicalendar {
  max-width: 280px;
  margin: 0 auto;
  width: 100%;
}
.block .minicalendar th, .block .minicalendar td {
  padding: 2px;
  font-size: 0.8em;
  text-align: center;
}
.block .minicalendar td.weekend {
  color: var(--bs-secondary-color);
}
.block .minicalendar td a {
  width: 100%;
  height: 100%;
  display: block;
  color: #0d5ca1;
}
.block .minicalendar td.duration_global {
  border-top: 1px solid #d6f8cd;
  border-bottom: 1px solid #d6f8cd;
}
.block .minicalendar td.duration_global.duration_finish {
  background-color: #d6f8cd;
}
.block .minicalendar td.duration_category {
  border-top: 1px solid #e0cbe0;
  border-bottom: 1px solid #e0cbe0;
}
.block .minicalendar td.duration_category.duration_finish {
  background-color: #e0cbe0;
}
.block .minicalendar td.duration_course {
  border-top: 1px solid #ffd3bd;
  border-bottom: 1px solid #ffd3bd;
}
.block .minicalendar td.duration_course.duration_finish {
  background-color: #ffd3bd;
}
.block .minicalendar td.duration_group {
  border-top: 1px solid #fee7ae;
  border-bottom: 1px solid #fee7ae;
}
.block .minicalendar td.duration_group.duration_finish {
  background-color: #fee7ae;
}
.block .minicalendar td.duration_user {
  border-top: 1px solid #dce7ec;
  border-bottom: 1px solid #dce7ec;
}
.block .minicalendar td.duration_user.duration_finish {
  background-color: #dce7ec;
}
.block .minicalendar td.duration_other {
  border-top: 1px solid #ced4da;
  border-bottom: 1px solid #ced4da;
}
.block .minicalendar td.duration_other.duration_finish {
  background-color: #ced4da;
}
.block .minicalendar caption {
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  text-align: center;
}
.block .calendar_filters ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.block .calendar_filters li {
  margin-bottom: 0.2em;
}
.block .calendar_filters li span.calendar_event_category i {
  color: #0d5ca1;
}
.block .calendar_filters li span.calendar_event_course i {
  color: #0d5ca1;
}
.block .calendar_filters li span.calendar_event_site i {
  color: #0d5ca1;
}
.block .calendar_filters li span.calendar_event_group i {
  color: #0d5ca1;
}
.block .calendar_filters li span.calendar_event_user i {
  color: #0d5ca1;
}
.block .calendar_filters li span.calendar_event_other i {
  color: #0d5ca1;
}
.block .calendar_filters li span img {
  padding: 0 0.2em;
  margin: 0;
}
.block .calendar_filters li .icon {
  vertical-align: initial;
  margin: 0 0.1rem 0 0.4rem;
}
.block .calendar_filters li > a:hover {
  text-decoration: underline;
}
.block .content h3.eventskey, .block .content .eventskey.h3 {
  margin-top: 0.5em;
}
.path-course-view .block.block_calendar_month .maincalendar div.header {
  visibility: hidden;
  height: 0;
}
.path-course-view .block.block_calendar_month .maincalendar .calendarwrapper .arrow_text {
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.path-course-view .block.block_calendar_month .maincalendar .calendarwrapper .arrow_text:not(caption) {
  position: absolute !important;
}
.path-course-view .block.block_calendar_month .footer .bottom .footer-link {
  display: block;
}
.path-course-view .block.block_calendar_month .footer .bottom .footer-link:after {
  content: none;
}
/* Display month name above the calendar */
table.calendartable caption {
  caption-side: top;
}
@media (min-width: 768px) {
  #page-calender-view .container-fluid, #page-calender-view .container-sm, #page-calender-view .container-md, #page-calender-view .container-lg, #page-calender-view .container-xl, #page-calender-view .container-xxl {
    min-width: 1024px;
  }
}
@media (min-width: 768px) {
  [data-blockregion]:not([data-blockregion="content"]) .block.block_calendar_month .maincalendar div.header {
    visibility: hidden;
    height: 0;
  }
  [data-blockregion]:not([data-blockregion="content"]) .block.block_calendar_month .maincalendar .calendarwrapper .current {
    width: 40%;
    font-size: inherit;
    line-height: inherit;
  }
  [data-blockregion]:not([data-blockregion="content"]) .block.block_calendar_month .maincalendar .calendarwrapper .previous, [data-blockregion]:not([data-blockregion="content"]) .block.block_calendar_month .maincalendar .calendarwrapper .next {
    width: 30%;
  }
  [data-blockregion]:not([data-blockregion="content"]) .block.block_calendar_month .maincalendar .calendarwrapper .previous .arrow_text, [data-blockregion]:not([data-blockregion="content"]) .block.block_calendar_month .maincalendar .calendarwrapper .next .arrow_text {
    display: none;
  }
  [data-blockregion]:not([data-blockregion="content"]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth th, [data-blockregion]:not([data-blockregion="content"]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
    border: none;
    text-align: center !important;
    padding: 0;
  }
  [data-blockregion]:not([data-blockregion="content"]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
    height: auto;
    font-size: 0.8em;
  }
  [data-blockregion]:not([data-blockregion="content"]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent [data-region="day-content"] {
    display: none;
  }
  [data-blockregion]:not([data-blockregion="content"]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number {
    display: inline-block;
    position: relative;
  }
  [data-blockregion]:not([data-blockregion="content"]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number:before {
    content: ".";
    display: inline-block;
    position: absolute;
    bottom: 0.4em;
    left: 0;
    text-align: center;
    width: 100%;
    font-size: 3em;
    color: inherit;
  }
  [data-blockregion]:not([data-blockregion="content"]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td:after {
    content: "";
    display: block;
    margin-top: calc(100% - 26px);
  }
  [data-blockregion]:not([data-blockregion="content"]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:hover {
    background-color: inherit;
  }
  [data-blockregion]:not([data-blockregion="content"]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:not(.today):hover .day-number-circle {
    border-radius: 50%;
    background-color: #ededed;
  }
  [data-blockregion]:not([data-blockregion="content"]) .block.block_calendar_month .bottom {
    border-top: 1px solid var(--bs-border-color-translucent);
    padding-top: 0.5rem;
  }
}
@media (max-width: 768px) {
  .maincalendar .calendartable.calendarmonth th, .maincalendar .calendartable.calendarmonth td {
    border: none;
    text-align: center !important;
    padding: 0;
  }
  .maincalendar .calendartable.calendarmonth td {
    height: auto;
    font-size: inherit;
    padding: 0;
  }
  .maincalendar .calendartable.calendarmonth td.hasevent [data-region="day-content"] {
    display: none;
  }
  .maincalendar .calendartable.calendarmonth td.hasevent .day-number {
    display: inline-block;
    position: relative;
  }
  .maincalendar .calendartable.calendarmonth td.hasevent .day-number:before {
    content: ".";
    display: inline-block;
    position: absolute;
    bottom: 0.4em;
    left: 0;
    text-align: center;
    width: 100%;
    font-size: 3em;
    color: inherit;
  }
  .maincalendar .calendartable.calendarmonth td:after {
    content: "";
    display: block;
    margin-top: calc(100% - 26px);
  }
  .maincalendar .calendartable.calendarmonth td > div {
    height: auto !important;
  }
}
.calendarwrapper {
  position: relative;
}
.day-popover-content:empty + .day-popover-alternate {
  display: block;
}
.location-content {
  overflow-wrap: break-word;
}
.description-content {
  overflow-wrap: break-word;
}
.description-content > p {
  margin: 0;
}
.cal_courses_flt {
  color: #6a737b;
  max-width: 75%;
}
.content-bank-container .cb-content-wrapper {
  padding: 0.5rem;
  min-height: 140px;
  max-height: 500px;
  overflow-x: auto;
  flex-wrap: wrap;
}
.content-bank-container .cb-thumbnail {
  width: 24px;
  height: 24px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.content-bank-container.view-grid {
  /* Display a centered eye slash on top of unlisted content icons. */
}
.content-bank-container.view-grid .cb-listitem {
  margin-bottom: 0.5rem;
}
.content-bank-container.view-grid .cb-listitem.cb-unlisted {
  position: relative;
}
@media (max-width: 767.98px) {
  .content-bank-container.view-grid .cb-listitem {
    flex-basis: 50%;
  }
}
@media (min-width: 576px) {
  .content-bank-container.view-grid .cb-listitem {
    max-width: 120px;
    min-width: 120px;
  }
}
.content-bank-container.view-grid .cb-name {
  text-align: center;
}
.content-bank-container.view-grid .cb-file {
  padding: 0.5rem;
}
.content-bank-container.view-grid .cb-thumbnail {
  width: 64px;
  height: 64px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 0.5rem;
}
.content-bank-container.view-grid .cb-unlisted .cb-thumbnail {
  opacity: 0.15;
}
.content-bank-container.view-grid .cb-unlisted::after {
  font: var(--fa-font-solid);
  content: "";
  position: absolute;
  top: 20px;
  left: 0;
  width: 100%;
  font-size: 26px;
  text-align: center;
  opacity: 0.9;
  text-shadow: 0 0 10px #fff;
}
.content-bank-container.view-grid .cb-heading, .content-bank-container.view-grid .cb-uses, .content-bank-container.view-grid .cb-date, .content-bank-container.view-grid .cb-size, .content-bank-container.view-grid .cb-type, .content-bank-container.view-grid .cb-author {
  display: none;
}
.content-bank-container.view-list .cb-content-wrapper {
  padding: 0 0.5rem;
  flex-direction: column;
  flex-wrap: nowrap;
}
.content-bank-container.view-list .cb-thumbnail {
  margin-right: 0.5rem;
}
.content-bank-container.view-list .cb-listitem, .content-bank-container.view-list .cb-heading {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  border-bottom: 1px solid #dee2e6;
}
.content-bank-container.view-list .cb-column {
  display: flex;
  padding: 0.25rem;
}
.content-bank-container.view-list .cb-column {
  border-right: 1px solid #dee2e6;
}
.content-bank-container.view-list .cb-listitem.cb-unlisted .cb-thumbnail {
  opacity: 0.3;
}
.content-bank-container.view-list .cb-listitem.cb-unlisted .cb-column, .content-bank-container.view-list .cb-listitem.cb-unlisted .cb-column a {
  color: var(--bs-secondary-color);
}
@media (max-width: 767.98px) {
  .content-bank-container.view-list .cb-column {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media (min-width: 576px) {
  .content-bank-container.view-list .cb-heading {
    position: sticky;
    top: 0;
    z-index: 1;
  }
  .content-bank-container.view-list .cb-file {
    flex: 0 0 40%;
    max-width: 40%;
  }
  .content-bank-container.view-list .cb-uses, .content-bank-container.view-list .cb-date, .content-bank-container.view-list .cb-size, .content-bank-container.view-list .cb-type, .content-bank-container.view-list .cb-author {
    flex: 0 0 12%;
    max-width: 12%;
  }
  .content-bank-container.view-list .cb-column.last {
    border-right: 0;
  }
}
.content-bank-container.view-list .cb-btnsort span {
  display: none;
}
.content-bank-container.view-list .cb-btnsort .title {
  display: inline;
}
.content-bank-container.view-list .cb-btnsort.dir-none .default, .content-bank-container.view-list .cb-btnsort.dir-asc .asc, .content-bank-container.view-list .cb-btnsort.dir-desc .desc {
  display: inline;
}
.cb-toolbar-container .dropdown-scrollable {
  max-height: 190px;
  overflow-y: auto;
}
.cb-navigation-container .singleselect, .cb-navigation-container .singleselect .form-select {
  width: 100%;
}
/*
 * Course page styles.
 */
/* Course content */
.course-content ul.section-list {
  padding: 0;
  margin: 0;
}
.course-content .section-item ul, .course-content .section-item .activity-item ul {
  list-style: disc;
}
.course-content .section-item ul ul, .course-content .section-item .activity-item ul ul {
  list-style: circle;
}
.course-content .section-item ul ul ul, .course-content .section-item .activity-item ul ul ul {
  list-style: square;
}
.section-collapsemenu .collapseall {
  display: block;
}
.section-collapsemenu .expandall {
  display: none;
}
.section-collapsemenu.collapsed .collapseall {
  display: none;
}
.section-collapsemenu.collapsed .expandall {
  display: block;
}
.btn.add-section {
  border-radius: 1rem;
  border: 2px dashed #dee2e6;
  color: #2A2A2C;
  font-size: 0.8203125rem;
  font-weight: bold;
}
.btn.add-section:hover, .btn.add-section:focus {
  background-color: #eaeaea;
  border: 2px solid #2A2A2C;
  color: #2A2A2C;
}
.max-section-alert {
  border-top: 2px dashed #dee2e6;
  font-size: 0.8203125rem;
  font-weight: normal;
  color: #6a737b;
}
/* Sections */
.course-section {
  list-style: none;
  margin-top: 1rem;
}
.editing .course-section {
  margin-top: 0.5rem;
}
.course-section .section-item {
  padding: 1rem;
  border: 1px solid #dee2e6;
  border-radius: 1rem;
}
.course-section.hidden .section-item, .course-section.orphaned .section-item {
  background-color: #f8f9fa;
}
.course-section.current > .section-item {
  position: relative;
}
.course-section.current > .section-item::before {
  border-left: #2A2A2C 3px solid;
  bottom: 0;
  content: "";
  left: -8px;
  position: absolute;
  top: 0;
}
.course-section .sectionname > a {
  color: #1d2125;
}
.course-section .sectionname > a:hover {
  text-decoration: none;
}
.course-section .sectionbadges .badge {
  margin-left: 0.5rem;
  font-weight: normal;
}
.course-section .sectionbadges .badge .icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}
.course-section .course-section-header.draggable {
  cursor: move;
}
.course-section .section_action_menu .dropdown-toggle::after {
  display: none;
}
.course-section .summarytext img {
  border-radius: 1rem;
}
.course-section .availabilityinfo {
  margin-top: 0.5rem;
  padding: 0.25rem 1rem;
  background-color: #e9ecef;
  font-size: 0.875em;
  border-radius: 1rem;
}
.course-section .availabilityinfo .editavailability a {
  border-radius: 0.5rem;
  font-weight: bold;
}
.course-section .availabilityinfo .editavailability a:hover {
  background-color: #ced4da;
}
.course-section .availabilityinfo .editavailability a .icon {
  font-size: inherit;
  margin-right: 0.25rem;
}
.course-section .section_action_menu > .action-menu .btn-icon {
  font-size: 1.171875rem;
}
.course-section .section-summary-activities .icon {
  width: inherit;
  color: #2A2A2C;
}
.course-section .section-summary-activities + .section {
  border-top: 1px solid #dee2e6;
  margin-top: 1rem !important;
  padding-top: 1rem !important;
}
.course-section .section_goto .icon {
  font-size: 1.171875rem;
  color: #2A2A2C;
}
.course-section .overlay-preview {
  z-index: 5;
}
.section li.movehere a {
  display: block;
  width: 100%;
  height: 2rem;
  border: 2px dashed #343a40;
}
/* Activities */
.activity {
  list-style: none;
  padding-top: 0.25rem;
  margin-top: 0.25rem;
  border-top: 1px solid #dee2e6;
}
.activity.indented .activity-item {
  margin-left: 1rem;
}
.editing .activity, .section .activity:first-child {
  padding-top: 0;
  margin-top: 0;
  border-top: none;
}
.activity-item {
  padding: 0.75rem;
  border-radius: 1rem;
}
.activity-item.activityinline {
  padding: 0.75rem 0;
}
.activity-item.hiddenactivity {
  background-color: #f8f9fa;
}
.activity-item.hiddenactivity .activityiconcontainer, .activity-item.hiddenactivity .badge {
  mix-blend-mode: multiply;
}
.editing .activity-item {
  cursor: move;
}
.editing .activity-item .a {
  cursor: pointer;
}
.editing .activity-item:hover:not(:has(.activity:hover)), .editing .activity-item.selected {
  outline: 2px solid #2A2A2C;
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
}
.editing .activity-item:hover:not(:has(.activity:hover)) .activityiconcontainer, .editing .activity-item:hover:not(:has(.activity:hover)) .badge, .editing .activity-item.selected .activityiconcontainer, .editing .activity-item.selected .badge {
  mix-blend-mode: multiply;
}
.activity.dragging .activity-item {
  border: 2px solid #2A2A2C;
}
.editing .activity.dragging .activity-item:hover {
  outline: none;
}
.activity-item .activity-grid {
  display: grid;
  align-items: center;
  grid-template-columns: min-content 1fr min-content min-content min-content;
  grid-template-rows: 1fr repeat(5, min-content);
  grid-template-areas: "icon name groupmode completion actions" "icon visibility groupmode completion actions" "icon dates groupmode completion actions" "icon altcontent altcontent altcontent altcontent" "icon afterlink afterlink afterlink afterlink" "icon availability availability availability availability";
}
@media (max-width: 575.98px) {
  .activity-item .activity-grid {
    grid-template-columns: min-content 1fr min-content min-content min-content;
    grid-template-rows: 1fr repeat(4, min-content);
    grid-template-areas: "icon name actions" "icon visibility actions" "dates dates dates" "groupmode groupmode groupmode" "completion completion completion" "altcontent altcontent altcontent" "afterlink afterlink afterlink" "availability availability availability";
  }
}
.activity-item .activity-grid.noname-grid {
  grid-template-columns: min-content 1fr min-content min-content;
  grid-template-areas: "visibility groupmode completion actions" "altcontent altcontent altcontent altcontent" "afterlink afterlink afterlink afterlink" "availability availability availability availability";
}
@media (max-width: 575.98px) {
  .activity-item .activity-grid.noname-grid {
    grid-template-columns: 1fr min-content;
    grid-template-areas: "visibility actions" "altcontent altcontent" "groupmode groupmode" "afterlink afterlink" "completion completion" "availability availability";
  }
}
.activity-item .activity-actions {
  grid-area: actions;
}
.activity-item .activity-actions .actions {
  position: relative;
}
.activity-item .activity-icon {
  grid-area: icon;
}
.activity-item .activity-dates {
  grid-area: dates;
  font-size: 0.875em;
  color: #495057;
  display: flex;
  flex-wrap: wrap;
  column-gap: 0.75rem;
}
@media (max-width: 575.98px) {
  .activity-item .activity-dates {
    margin-top: 0.5rem;
  }
}
.activity-item .activity-name-area {
  grid-area: name;
}
.activity-item .activity-name-area .activityname .afterlink {
  margin-left: 0.5rem;
}
.activity-item .activity-name-area .activityname .inplaceeditable .quickeditlink {
  position: relative;
  z-index: 2;
  margin-left: 0.5rem;
}
.activity-item .activity-name-area .activitybadge.badge-none {
  font-weight: normal;
  --bs-badge-color: #1d2125;
  font-size: 0.875em;
  padding: 0;
}
.activity-item .activity-completion {
  grid-area: completion;
  justify-self: end;
}
.activity-item .activity-completion button, .activity-item .activity-completion a[role="button"] {
  min-height: 32px;
}
@media (max-width: 575.98px) {
  .activity-item .activity-completion {
    width: 100%;
    margin-top: 0.5rem;
  }
  .activity-item .activity-completion button {
    width: 100%;
  }
}
.activity-item .activity-completion .completion-dialog {
  color: #495057;
  font-size: 0.8203125rem;
  min-width: 12rem;
}
.activity-item .activity-completion .completion-dialog .icon {
  font-size: 0.8203125rem;
  width: 0.8203125rem;
  height: 0.8203125rem;
  margin-right: 0.25rem;
}
.activity-item .activity-completion .completion-dialog .editcompletion a {
  border-radius: 0.5rem;
  color: #495057;
  font-weight: bold;
  text-decoration: none;
}
.activity-item .activity-completion .completion-dialog .editcompletion a:hover {
  background-color: #e9ecef;
}
.activity-item .activity-groupmode-info {
  grid-area: groupmode;
  justify-self: end;
}
.activity-item .activity-groupmode-info .groupmode-information {
  height: 32px;
  width: 32px;
  border-radius: 0.5rem;
}
.activity-item .activity-groupmode-info .groupmode-information .icon {
  width: 16px;
  height: 16px;
}
.activity-item .activity-groupmode-info .groupmode-icon-info {
  display: none;
}
@media (max-width: 575.98px) {
  .activity-item .activity-groupmode-info {
    width: 100%;
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid #dee2e6;
  }
  .activity-item .activity-groupmode-info .groupmode-information {
    width: auto;
    font-size: inherit;
    padding: 0 0.5rem;
  }
  .activity-item .activity-groupmode-info .groupmode-icon-info {
    display: inline;
  }
  .activity-item .activity-groupmode-info .v-parent-focus {
    opacity: 1;
    visibility: visible;
  }
}
.activity-item .activity-badges {
  grid-area: visibility;
}
.activity-item .activity-badges .badge {
  font-weight: normal;
}
.activity-item .activity-badges .badge .icon {
  font-size: 12px;
  width: 12px;
  height: 12px;
}
.activity-item .activity-altcontent {
  grid-area: altcontent;
  margin-top: 0.25rem;
}
.activity-item .activity-altcontent.activity-description {
  margin-top: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid #dee2e6;
  font-size: 0.875em;
}
.activity-item .activity-altcontent.activity-description ul:not(.activity-description ul ul) {
  margin-bottom: 1rem;
}
.activity-item .activity-altcontent img {
  border-radius: 1rem;
}
.activity-item .activity-availability {
  grid-area: availability;
}
.activity-item .activity-afterlink {
  grid-area: afterlink;
  margin-top: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid #dee2e6;
}
.activity-item .no-overflow {
  width: 100%;
}
.section .draggable .activity-item .dragicon {
  display: none;
}
/* Dividers */
.course-content .divider {
  position: relative;
}
.course-content .divider hr {
  width: 100%;
  margin: 0.5rem 0.25rem;
  border-top: 2px dashed #dee2e6;
  opacity: 1;
}
.changenumsections.disabled .course-content .divider hr {
  border-top: 2px dashed #dee2e6;
}
.course-content .divider .divider-content {
  opacity: 0;
  visibility: hidden;
  transition: visibility 0.1s;
  position: absolute;
  background: linear-gradient(transparent 40%, #fff 40%, #fff 60%, transparent 60%);
}
.section.hidden .course-content .divider .divider-content {
  background: linear-gradient(transparent 40%, #f8f9fa 40%, #f8f9fa 60%, transparent 60%);
}
.course-content .divider.always-visible .divider-content {
  opacity: 1;
  visibility: visible;
}
.course-content .divider.always-hidden hr {
  opacity: 0;
  visibility: hidden;
}
.course-content .divider:hover .divider-content, .course-content .divider:focus .divider-content, .course-content .divider:focus-within .divider-content {
  opacity: 1;
  visibility: visible;
}
.course-content .divider:hover hr, .course-content .divider:focus hr, .course-content .divider:focus-within hr {
  opacity: 1;
  visibility: visible;
}
.course-content .divider:has(.btn.add-content:hover) hr {
  border-color: #2A2A2C;
}
.changenumsections.disabled .course-content .divider:has(.btn.add-content:hover) hr {
  border-color: #e9ecef;
}
.activity:focus-within + .activity .divider .divider-content, .course-section-header:focus-within + .content .section .activity:first-child .divider .divider-content, .content .section .activity:focus-within .divider .divider-content, .course-content:focus-within .changenumsections .divider .divider-content {
  visibility: visible;
}
.course-content ul.topics > li:last-child .changenumsections {
  display: none;
}
.course-content .divider .btn.add-content {
  position: relative;
  z-index: 1;
  border-radius: 0.5rem;
  font-size: 0.8203125rem;
  font-weight: bold;
  color: #19191a;
  background-color: #d4d4d5;
}
.course-content .divider .btn.add-content:hover, .course-content .divider .btn.add-content:focus {
  color: #fff;
  background-color: #2A2A2C;
}
.course-content .divider .btn.add-content .icon {
  width: 14px;
  height: 14px;
  font-size: 14px;
}
.changenumsections.disabled .course-content .divider .btn.add-content {
  color: #8f959e;
  background-color: #e9ecef;
  outline: none;
  box-shadow: none;
  pointer-events: auto;
}
.changenumsections.disabled .course-content .divider .btn.add-content:hover, .changenumsections.disabled .course-content .divider .btn.add-content:focus {
  color: #8f959e;
  background-color: #e9ecef;
  outline: none;
  box-shadow: none;
}
/* Bulk editing */
.bulkenabled .bulk-hidden {
  display: none !important;
}
.bulkenabled .section {
  margin-left: 1rem;
}
.bulkenabled .section:not(:first-child) {
  margin-top: 1.5rem;
}
.bulkenabled .activity {
  margin-top: 0.5rem;
  margin-left: 2rem;
  padding-top: 0.5rem;
  border-top: 2px dashed #dee2e6;
}
.bulkenabled .activity:first-child {
  margin-top: 1.5rem;
}
.bulkenabled .activity-item .bulkselect {
  float: left;
  margin-left: -2rem;
}
.bulkenabled .activity-item:has(.delegated-section):hover {
  outline: none !important;
  box-shadow: none !important;
}
.bulkenabled .course-section-header .bulkselect {
  left: -2.75rem;
  position: relative;
  width: 0;
}
@media (max-width: 767.98px) {
  .bulkenabled .course-content {
    margin-left: 2rem;
  }
}
.bulkenabled .sticky-footer-content.bulkactions .btn {
  --bs-btn-disabled-border-color: transparent;
}
.bulkenabled .sticky-footer-content.bulkactions .btn:focus {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
}
@media (max-width: 767.98px) {
  .sticky-footer-content.bulkactions {
    position: relative;
  }
  .sticky-footer-content.bulkactions .form-check, .sticky-footer-content.bulkactions .bulkaction-name, .sticky-footer-content.bulkactions .bulkcount {
    display: none;
  }
  .sticky-footer-content.bulkactions .actions button {
    padding: 0 0.5rem;
  }
  .sticky-footer-content.bulkactions .bulkcancel {
    position: absolute;
    top: 0;
    right: 0;
  }
}
/* Single section page */
.single-section > ul > .course-section.hidden .section-item {
  background-color: inherit;
}
.single-section > ul > .course-section .section-item {
  padding: 0;
  border: none;
}
.single-section-page .header-action {
  display: inline-block;
}
/* Default activity completion page */
.defaultactivitycompletion-item a {
  color: #000;
  text-decoration: none;
}
.defaultactivitycompletion-item .activityicon {
  width: 32px;
  height: 32px;
}
/* Home page course */
.sitetopic .section-item {
  margin-bottom: 1.5rem;
  border-radius: 0.5rem;
}
/* Move activity and Move section modals */
.move-activity-tree .collapse-list-item {
  border-radius: 0.5rem;
}
.move-activity-tree .collapse-list-item:hover, .move-activity-tree .collapse-list-item:focus {
  background-color: #d4d4d5;
}
.move-activity-tree .collapse-list-item:hover a, .move-activity-tree .collapse-list-item:focus a {
  color: #19191a;
}
.move-activity-tree .collapse-list-item a {
  color: var(--bs-body-color);
}
.move-activity-tree .collapse-list-item a:hover, .move-activity-tree .collapse-list-item a:focus {
  text-decoration: none;
}
.move-activity-tree .collapse-list-item a.disabled {
  color: var(--bs-secondary-color);
}
.move-activity-tree .collapse-list-item-content .collapse-list-item {
  padding: 0.5rem 1rem;
}
.move-activity-tree ul {
  margin-left: 1.5rem;
}
.move-activity-tree .collapse-list-link {
  font-weight: bold;
}
/* Subsections */
.activity.subsection {
  border-top: none;
}
.activity.subsection > .activity-item {
  border: 1px solid #dee2e6;
  padding: 0;
  margin: 0.5rem 0;
}
.activity.subsection > .activity-item > .activity-grid > .activity-altcontent {
  margin-top: 0;
}
.activity.subsection .section {
  margin-top: 0;
}
.activity.subsection .section .section-item {
  border: none;
  padding: 0.75rem;
}
.activity.subsection .section .icons-collapse-expand:has(+ h4), .activity.subsection .section .icons-collapse-expand:has(+ .h4) {
  height: 24px;
  width: 24px;
  font-size: 0.8203125rem;
}
.activity.subsection .section h4, .activity.subsection .section .h4 {
  font-size: 1.171875rem;
}
.activity.subsection .section .section_action_menu > .action-menu .btn-icon {
  font-size: inherit;
}
.activity.subsection + .activity {
  border-top: none;
}
.activity.subsection .focus-control:not(:has(.focus-control)):focus-within .v-parent-focus, .activity.subsection .focus-control:not(:has(.focus-control)):hover .v-parent-focus {
  opacity: 1 !important;
  visibility: visible !important;
}
.activity.subsection .focus-control:focus-within .focus-control .v-parent-focus, .activity.subsection .focus-control:hover .focus-control .v-parent-focus {
  opacity: 0;
  visibility: hidden;
}
/* Spinners */
@keyframes editinprogress-rotation {
  0% {
    opacity: 0;
    transform: rotate(0deg);
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: rotate(359deg);
  }
}
.editing .editinprogress {
  position: relative;
}
.editing .editinprogress > * {
  opacity: 0.4;
}
.editing .editinprogress .corelightbox, .editing .editinprogress .lightbox {
  display: none;
}
.editing .editinprogress:after {
  font: var(--fa-font-solid);
  position: absolute;
  font-size: 20px;
  color: #6a737b;
  content: "";
  display: flex;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
  left: calc(50% - 15px);
  top: calc(50% - 15px);
  animation: editinprogress-rotation 2s infinite linear;
}
.editing .editinprogress .editinprogress:after {
  display: none;
}
/* Drag and drop */
.course-content .section.dropready.main.drop-down {
  border-bottom: 1px solid #1d2125;
}
.course-content .section.dropready .course-section-header.dropready.drop-zone {
  margin-top: -2px;
}
.course-content .section.dropready li.activity.dropready.drop-down {
  border-bottom: 1px solid #1d2125;
  margin-bottom: -1px;
}
.course-content .section.dropready li.activity.dropready.drop-up {
  border-top: 1px solid #1d2125;
  margin-top: -1px;
}
.course-content .section.dropready [data-for="sectioninfo"] {
  min-height: 1px;
}
.course-content .section.dropready [data-for="sectioninfo"].drop-down {
  margin-top: -1px;
}
/* Old indentation styles */
.mod-indent-outer {
  display: table;
}
.mod-indent {
  display: table-cell;
}
.label .mod-indent {
  float: left;
  padding-top: 20px;
}
.activity.label.modtype_label .mod-indent {
  float: none;
}
@media (min-width: 576px) {
  .badge-primary {
    /* Creates a series of .mod-indent-# rule declarations based on indent size and number of indent levels. */
  }
  .mod-indent-1 {
    width: 30px;
  }
  .mod-indent-2 {
    width: 60px;
  }
  .mod-indent-3 {
    width: 90px;
  }
  .mod-indent-4 {
    width: 120px;
  }
  .mod-indent-5 {
    width: 150px;
  }
  .mod-indent-6 {
    width: 180px;
  }
  .mod-indent-7 {
    width: 210px;
  }
  .mod-indent-8 {
    width: 240px;
  }
  .mod-indent-9 {
    width: 270px;
  }
  .mod-indent-10 {
    width: 300px;
  }
  .mod-indent-11 {
    width: 330px;
  }
  .mod-indent-12 {
    width: 360px;
  }
  .mod-indent-13 {
    width: 390px;
  }
  .mod-indent-14 {
    width: 420px;
  }
  .mod-indent-15 {
    width: 450px;
  }
  .mod-indent-16 {
    width: 480px;
  }
  .mod-indent-huge {
    width: 480px;
  }
}
/*
 * Course management page styles.
 */
#course-category-listings {
  margin-bottom: 0;
  /** Two column layout */
  /** Three column layout */
}
#course-category-listings.columns-2 > #course-listing > div {
  position: relative;
  left: -1px;
}
#course-category-listings.columns-3 > #course-listing > div {
  height: 100%;
}
#course-category-listings > div > div {
  min-height: 300px;
}
#course-category-listings > div > div > ul.ml > li:first-child > div {
  border-top: 0;
}
#course-category-listings h3, #course-category-listings .h3 {
  margin: 0;
  padding: 0.4rem 0.6rem 0.3rem;
}
#course-category-listings h4, #course-category-listings .h4 {
  margin: 1rem 0 0;
  padding: 0.6rem 1rem 0.5rem;
}
#course-category-listings .moodle-actionmenu {
  white-space: nowrap;
}
#course-category-listings .listing-actions {
  text-align: center;
}
#course-category-listings .listing-actions > .moodle-actionmenu {
  display: inline-block;
}
#course-category-listings ul.ml {
  list-style: none;
  margin: 1rem 0;
}
#course-category-listings ul.ml ul.ml {
  margin: 0;
}
#course-category-listings .listitem[data-selected="1"] {
  border-left: calc(var(--bs-border-width) + 5px) solid #2A2A2C;
  padding-left: calc(1rem - 5px);
}
#course-category-listings .listitem:hover {
  z-index: 2;
}
#course-category-listings .item-actions {
  margin-right: 1em;
  display: inline-block;
}
#course-category-listings .item-actions.show .menu img {
  width: 12px;
  max-width: none;
}
#course-category-listings .item-actions .menu-action-text {
  vertical-align: inherit;
}
#course-category-listings .listitem > div > .float-start {
  float: left;
}
#course-category-listings .listitem > div > .float-end {
  float: right;
  text-align: right;
}
#course-category-listings .listitem > div .item-actions .action-show {
  display: none;
}
#course-category-listings .listitem > div .item-actions .action-hide {
  display: inline;
}
#course-category-listings .listitem > div .without-actions {
  color: #333;
}
#course-category-listings .listitem > div .idnumber {
  margin-right: 2em;
}
#course-category-listings .listitem[data-visible="0"] {
  color: var(--bs-secondary-color);
}
#course-category-listings .listitem[data-visible="0"] > div > a {
  color: var(--bs-secondary-color);
}
#course-category-listings .listitem[data-visible="0"] > div .item-actions .action-show {
  display: inline;
}
#course-category-listings .listitem[data-visible="0"] > div .item-actions .action-hide {
  display: none;
}
#course-category-listings .listitem.highlight {
  background-color: #fff;
}
#course-category-listings .listitem.highlight > div, #course-category-listings .listitem.highlight > div:hover, #course-category-listings .listitem.highlight[data-selected="1"] > div {
  background-color: rgba(var(--bs-emphasis-color-rgb), 0.075);
}
#course-category-listings #course-listing .listitem .categoryname {
  display: inline-block;
  margin-left: 1em;
  color: #a1a1a8;
}
#course-category-listings #course-listing .listitem .coursename {
  display: inline-block;
  flex-basis: 10rem;
}
#course-category-listings #course-listing > .firstpage .listitem:first-child > div .item-actions .action-moveup, #course-category-listings #course-listing > .lastpage .listitem:last-child > div .item-actions .action-movedown {
  display: none;
}
#course-category-listings #category-listing .listitem.collapsed > ul.ml {
  display: none;
}
#course-category-listings #category-listing .listitem:first-child > div .item-actions .action-moveup, #course-category-listings #category-listing .listitem:last-child > div .item-actions .action-movedown {
  display: none;
}
#course-category-listings #category-listing .course-count {
  color: #a1a1a8;
  margin-right: 2rem;
  min-width: 3.5em;
  display: inline-block;
}
#course-category-listings #category-listing .category-listing > ul > .listitem:first-child {
  position: relative;
}
#course-category-listings #category-listing .category-bulk-actions {
  margin: 0 0.5em 0.5em;
  position: relative;
}
#course-category-listings .detail-pair > * {
  display: inline-block;
}
#course-category-listings .detail-pair .pair-key {
  font-weight: bold;
  vertical-align: top;
}
#course-category-listings .detail-pair .pair-key span {
  margin-right: 1rem;
  display: block;
}
#course-category-listings .detail-pair .pair-value select {
  max-width: 100%;
}
#course-category-listings .listing-pagination {
  text-align: center;
}
#course-category-listings .listing-pagination .yui3-button {
  --bs-btn-color: #fff;
  --bs-btn-bg: #008196;
  --bs-btn-border-color: #008196;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #006e80;
  --bs-btn-hover-border-color: #006778;
  --bs-btn-focus-shadow-rgb: 38, 148, 166;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #006778;
  --bs-btn-active-border-color: #006171;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #008196;
  --bs-btn-disabled-border-color: #008196;
  border: 0;
  margin: 0.4rem 0.2rem 0.45rem;
  font-size: 10.4px;
}
#course-category-listings .listing-pagination .yui3-button.active-page {
  --bs-btn-color: #fff;
  --bs-btn-bg: #2A2A2C;
  --bs-btn-border-color: #2A2A2C;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #242425;
  --bs-btn-hover-border-color: #222223;
  --bs-btn-focus-shadow-rgb: 74, 74, 76;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #222223;
  --bs-btn-active-border-color: #202021;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #2A2A2C;
  --bs-btn-disabled-border-color: #2A2A2C;
}
#course-category-listings .listing-pagination-totals {
  text-align: center;
}
#course-category-listings .listing-pagination-totals.dimmed {
  color: var(--bs-secondary-color);
  margin: 0.4rem 1rem 0.45rem;
}
#course-category-listings .select-a-category .notifymessage, #course-category-listings .select-a-category .alert {
  margin: 1em;
}
#course-category-listings #course-listing .listitem .drag-handle {
  display: none;
}
.jsenabled #course-category-listings #course-listing .listitem .drag-handle {
  display: inline-block;
  margin: 0 6px 0 0;
  cursor: pointer;
}
/** Management header styling **/
.course-being-dragged-proxy {
  border: 0;
  color: #2A2A2C;
  vertical-align: middle;
  padding: 0 0 0 4em;
}
.course-being-dragged {
  opacity: 0.5;
}
/**
 * Display sizes:
 * Large displays                   1200        +
 * Default displays                  980     1199
 * Tablets                           768      979
 * Small tablets and large phones    481      767
 * Phones                              0      480
 */
@media (min-width: 1200px) and (max-width: 1600px) {
  #course-category-listings.columns-3 {
    background-color: #fff;
    border: 0;
  }
  #course-category-listings.columns-3 #category-listing, #course-category-listings.columns-3 #course-listing {
    width: 50%;
  }
  #course-category-listings.columns-3 #category-listing > div, #course-category-listings.columns-3 #course-listing > div, #course-category-listings.columns-3 #course-detail > div {
    background-color: #fff;
  }
  #course-category-listings.columns-3 #course-detail {
    width: 100%;
    margin-top: 1em;
  }
}
@media (max-width: 1199px) {
  #course-category-listings.columns-2, #course-category-listings.columns-3 {
    border: 0;
  }
  #course-category-listings.columns-2 #category-listing, #course-category-listings.columns-2 #course-listing, #course-category-listings.columns-2 #course-detail, #course-category-listings.columns-3 #category-listing, #course-category-listings.columns-3 #course-listing, #course-category-listings.columns-3 #course-detail {
    width: 100%;
    margin: 0 0 1em;
  }
}
/*
 * Course listings and course summary styles.
 */
#page-course-pending .singlebutton, #page-course-index .singlebutton, #page-course-index-category .singlebutton, #page-course-editsection .singlebutton {
  text-align: center;
}
#page-admin-course-manage #movecourses td img {
  margin: 0 0.22em;
  vertical-align: text-bottom;
}
#page-course-pending .pendingcourserequests {
  margin-bottom: 1em;
}
#page-course-pending .pendingcourserequests .singlebutton {
  display: inline;
}
#page-course-pending .pendingcourserequests .cell {
  padding: 0 5px;
}
#page-course-pending .pendingcourserequests .cell.c6 {
  white-space: nowrap;
}
.coursebox {
  display: flex;
  flex-direction: column;
}
.coursebox .info {
  display: flex;
  align-items: center;
}
#frontpage-available-course-list, #frontpage-course-list, .course-search-result {
  margin-top: 0.5rem;
}
#frontpage-available-course-list .coursebox, #frontpage-course-list .coursebox, .course-search-result .coursebox {
  padding: 0.5rem;
  border: 1px solid #dee2e6;
  margin-bottom: 0.5rem;
  border-radius: 0.5rem;
}
.coursebox > .info > .coursename {
  font-size: 0.9375rem;
  font-weight: normal;
  margin: 5px;
  padding: 0;
}
.coursebox .content .teachers li {
  list-style-type: none;
  padding: 0;
  margin: 0;
}
.coursebox .customfieldname, .coursebox .customfieldseparator {
  font-weight: 700;
}
.coursebox .content .coursefile {
  max-width: 100px;
}
.coursebox .content .courseimage img {
  max-width: 100px;
  max-height: 100px;
}
.coursebox .content .coursecat, .coursebox .content .summary, .coursebox .content .courseimage, .coursebox .content .coursefile, .coursebox .content .teachers, .coursebox.remotecoursebox .remotecourseinfo, .coursebox .content .customfields-container {
  margin: 15px 5px 5px;
  padding: 0;
}
.category-browse .coursebox .content .coursecat, .category-browse .coursebox .content .summary, .category-browse .coursebox .content .courseimage, .category-browse .coursebox .content .coursefile, .category-browse .coursebox .content .teachers, .category-browse .coursebox.remotecoursebox .remotecourseinfo, .category-browse .coursebox .content .customfields-container {
  margin-top: 0;
}
.coursebox.collapsed > .content {
  display: none;
}
.courses > .paging.paging-morelink {
  text-align: center;
  padding: 1rem;
}
.course_category_tree .category .numberofcourse {
  font-size: 0.8203125rem;
}
.course_category_tree .category > .info > .categoryname {
  margin: 5px;
  font-size: 0.9375rem;
  font-weight: normal;
  padding: 2px 18px;
}
.course_category_tree .category.with_children > .info > .categoryname {
  background-image: url(/theme/image.php/academi/core/1790824836/t/expanded);
  background-size: 20px 16px;
  background-repeat: no-repeat;
  background-position: center left;
}
.course_category_tree .category.with_children.collapsed > .info > .categoryname {
  background-image: url(/theme/image.php/academi/core/1790824836/t/collapsed);
}
/* rtl:raw:
.course_category_tree .category.with_children.collapsed > .info > .categoryname {
    background-image:url(/theme/image.php/academi/core/1790824836/t/collapsed_rtl);
}
*/
.course_category_tree .category.collapsed > .content {
  display: none;
}
.course_category_tree .category > .content {
  padding-left: 16px;
}
#page-course-index-category .categorypicker {
  margin: 10px 0 20px;
}
/* Anchor link offset fix. This makes hash links scroll 60px down to account for the fixed header. */
:target, :focus {
  scroll-margin-top: 70px;
}
.pagelayout-embedded :target {
  padding-top: initial;
  margin-top: initial;
}
#nav-drawer.closed {
  left: -305px;
}
#nav-drawer[aria-hidden=true] .list-group-item {
  display: none;
}
/* Use a variable for the drawer background colors. */
[data-region="drawer"] {
  position: fixed;
  width: 285px;
  top: 60px;
  height: calc(100% - 60px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  z-index: 999;
  background-color: #f2f2f2;
  transition: right 0.5s ease, left 0.5s ease;
}
@media (prefers-reduced-motion: reduce) {
  [data-region="drawer"] {
    transition: none;
  }
}
@media (min-width: 576px) {
  [data-region="drawer"] {
    padding: 20px 20px;
  }
  .jsenabled .popover-process-monitor, .jsenabled .btn-footer-popover, .jsenabled .btn-footer-communication {
    transition: 0.2s;
  }
}
@media (min-width: 576px) and (prefers-reduced-motion: reduce) {
  .jsenabled .popover-process-monitor, .jsenabled .btn-footer-popover, .jsenabled .btn-footer-communication {
    transition: none;
  }
}
#nav-drawer {
  right: auto;
  left: 0;
  /* Override the z-indexes defined in bootstrap/_list-group.scss that
       lead to side effects on the user tours positioning. */
}
#nav-drawer .list-group-item-action.active, #nav-drawer .list-group-item.active {
  z-index: inherit;
}
#nav-drawer .list-group-item-action.active + .list-group-item, #nav-drawer .list-group-item.active + .list-group-item {
  border-top: none;
}
#nav-drawer .list-group ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
#nav-drawer .list-group li {
  margin-bottom: -1px;
}
#nav-drawer .list-group li:last-child {
  margin-bottom: 0;
}
body.drawer-ease {
  transition: margin-left 0.5s ease, margin-right 0.5s ease;
}
@media (prefers-reduced-motion: reduce) {
  body.drawer-ease {
    transition: none;
  }
}
@media (min-width: 768px) {
  body:not(.uses-drawers).drawer-open-left {
    margin-left: 285px;
  }
}
@media (min-width: 768px) {
  body.drawer-open-left #page.drawers {
    margin-left: 285px;
    padding-left: 1rem;
  }
}
@media (min-width: 768px) {
  body.drawer-open-right {
    margin-right: 315px;
  }
}
[data-region=right-hand-drawer] {
  display: flex;
  flex-direction: column;
  transition: right 0.2s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  [data-region=right-hand-drawer] {
    transition: none;
  }
}
[data-region=right-hand-drawer].drawer {
  z-index: 1021;
  position: fixed;
  top: 60px;
  right: 0;
  height: calc(100% - 60px);
  width: 320px;
  box-shadow: -2px 2px 4px rgba(0, 0, 0, 0.25);
  padding: 0;
  visibility: visible;
  opacity: 1;
}
[data-region=right-hand-drawer].hidden {
  display: block;
  right: -320px;
  visibility: hidden;
  opacity: 0;
  transition: right 0.2s ease-in-out, visibility 0s ease-in-out 0.2s, opacity 0s ease-in-out 0.2s;
}
@media (prefers-reduced-motion: reduce) {
  [data-region=right-hand-drawer].hidden {
    transition: none;
  }
}
@media (max-width: 767.98px) {
  [data-region=right-hand-drawer].drawer {
    top: 0;
    height: 100%;
    z-index: 1031;
  }
  body.drawer-open-left, body.drawer-open-right {
    overflow: hidden;
  }
}
.dir-rtl [data-region=right-hand-drawer] {
  box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.25);
}
.drawer {
  background-color: #f8f9fa;
  z-index: 1015;
  position: fixed;
  height: 100vh;
  top: 0;
}
@media (max-width: 991.98px) {
  .drawer {
    z-index: 1035;
  }
}
.drawer.not-initialized {
  display: none;
}
.drawer.drawer-right {
  transition: right 0.2s ease, top 0.2s ease, bottom 0.2s ease, visibility 0.2s ease, transform 0.5s ease;
  width: 315px;
  max-width: 315px;
  right: calc(-315px + -10px);
  visibility: hidden;
}
@media (prefers-reduced-motion: reduce) {
  .drawer.drawer-right {
    transition: none;
  }
}
.drawer.drawer-right.show {
  right: 0;
  visibility: visible;
}
.drawer.drawer-right .drawertoggle {
  margin-left: auto;
  margin-right: 5px;
}
.drawer.drawer-left {
  transition: left 0.2s ease, top 0.2s ease, bottom 0.2s ease, visibility 0.2s ease;
  width: 285px;
  max-width: 285px;
  left: calc(-285px + -10px);
  visibility: hidden;
}
@media (prefers-reduced-motion: reduce) {
  .drawer.drawer-left {
    transition: none;
  }
}
.drawer.drawer-left.show {
  left: 0;
  visibility: visible;
}
.drawer.drawer-left .drawertoggle {
  margin-right: auto;
  margin-left: 5px;
}
.drawer.drawer-bottom {
  bottom: -110%;
}
.drawer.drawer-bottom.show {
  bottom: 0;
}
.drawer.drawer-primary .drawertoggle {
  margin-right: 16px;
  margin-left: 5px;
}
@media (min-width: 992px) {
  .drawer#theme_boost-drawers-blocks:focus-within {
    z-index: 1031;
  }
  .drawer.not-initialized {
    display: block;
  }
}
.drawer-md, .drawer-sm {
  display: none;
}
.drawerheader {
  padding: 0;
  height: 60px;
  display: flex;
  align-items: center;
}
.drawerheader .sitename {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  margin-right: 16px;
}
.drawer.scrolled .drawerheader {
  box-shadow: 0 8px 11px -7px rgba(0, 0, 0, 0.25);
}
@media (max-width: 991.98px) {
  .drawer-md {
    display: block;
    background-color: #f8f9fa;
    z-index: 1015;
    position: fixed;
    height: 100vh;
    top: 0;
  }
  .drawer-md.not-initialized {
    display: none;
  }
  .drawer-md.drawer-right {
    transition: right 0.2s ease, top 0.2s ease, bottom 0.2s ease, visibility 0.2s ease, transform 0.5s ease;
    width: 315px;
    max-width: 315px;
    right: calc(-315px + -10px);
    visibility: hidden;
  }
  .drawer-md.drawer-right.show {
    right: 0;
    visibility: visible;
  }
  .drawer-md.drawer-right .drawertoggle {
    margin-left: auto;
    margin-right: 5px;
  }
  .drawer-md.drawer-left {
    transition: left 0.2s ease, top 0.2s ease, bottom 0.2s ease, visibility 0.2s ease;
    width: 285px;
    max-width: 285px;
    left: calc(-285px + -10px);
    visibility: hidden;
  }
  .drawer-md.drawer-left.show {
    left: 0;
    visibility: visible;
  }
  .drawer-md.drawer-left .drawertoggle {
    margin-right: auto;
    margin-left: 5px;
  }
  .drawer-md.drawer-bottom {
    bottom: -110%;
  }
  .drawer-md.drawer-bottom.show {
    bottom: 0;
  }
  .drawer-md.drawer-primary .drawertoggle {
    margin-right: 16px;
    margin-left: 5px;
  }
}
@media (max-width: 991.98px) and (max-width: 991.98px) {
  .drawer-md {
    z-index: 1035;
  }
}
@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) {
  .drawer-md.drawer-right {
    transition: none;
  }
}
@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) {
  .drawer-md.drawer-left {
    transition: none;
  }
}
@media (max-width: 767.98px) {
  .drawer-sm {
    display: block;
    background-color: #f8f9fa;
    z-index: 1015;
    position: fixed;
    height: 100vh;
    top: 0;
  }
  .drawer-sm.not-initialized {
    display: none;
  }
  .drawer-sm.drawer-right {
    transition: right 0.2s ease, top 0.2s ease, bottom 0.2s ease, visibility 0.2s ease, transform 0.5s ease;
    width: 315px;
    max-width: 315px;
    right: calc(-315px + -10px);
    visibility: hidden;
  }
  .drawer-sm.drawer-right.show {
    right: 0;
    visibility: visible;
  }
  .drawer-sm.drawer-right .drawertoggle {
    margin-left: auto;
    margin-right: 5px;
  }
  .drawer-sm.drawer-left {
    transition: left 0.2s ease, top 0.2s ease, bottom 0.2s ease, visibility 0.2s ease;
    width: 285px;
    max-width: 285px;
    left: calc(-285px + -10px);
    visibility: hidden;
  }
  .drawer-sm.drawer-left.show {
    left: 0;
    visibility: visible;
  }
  .drawer-sm.drawer-left .drawertoggle {
    margin-right: auto;
    margin-left: 5px;
  }
  .drawer-sm.drawer-bottom {
    bottom: -110%;
  }
  .drawer-sm.drawer-bottom.show {
    bottom: 0;
  }
  .drawer-sm.drawer-primary .drawertoggle {
    margin-right: 16px;
    margin-left: 5px;
  }
}
@media (max-width: 767.98px) and (max-width: 991.98px) {
  .drawer-sm {
    z-index: 1035;
  }
}
@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) {
  .drawer-sm.drawer-right {
    transition: none;
  }
}
@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) {
  .drawer-sm.drawer-left {
    transition: none;
  }
}
.drawercontent {
  position: relative;
  z-index: -1;
  height: calc(100% - 60px);
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  overflow-y: auto;
  padding: 0.4rem;
  scrollbar-width: thin;
  scrollbar-color: #6a737b #f8f9fa;
}
.drawercontent .dropdown-menu .dropdown-item {
  width: 220px;
  white-space: normal;
}
.drawercontent::-webkit-scrollbar {
  width: 12px;
}
.drawercontent::-webkit-scrollbar-track {
  background: #f8f9fa;
}
.drawercontent::-webkit-scrollbar-thumb {
  background-color: #6a737b;
  border-radius: 20px;
  border: 3px solid #f8f9fa;
}
.drawercontent::-webkit-scrollbar-thumb:hover {
  background-color: #495057;
}
.fp-content-center {
  height: 100%;
  width: 100%;
  display: table-cell;
  vertical-align: middle;
}
.fp-content-hidden {
  visibility: hidden;
}
.yui3-panel-focused {
  outline: none;
}
.fp-panel-button {
  background: #fff;
  padding: 3px 20px 2px 20px;
  text-align: center;
  margin: 10px;
  border-radius: 10px;
  display: inline-block;
}
.filepicker .yui3-widget-content-expanded {
  height: auto;
}
/* The javascript is adding a style="height:0;" to this element - we need to set the min-height so the height is ignored. */
.filepicker .moodle-dialogue-bd {
  min-height: 520px;
}
.fp-navbar {
  border-color: #8f959e;
  border-bottom: 0;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.file-picker .fp-content {
  border-top: 0;
  background: #fff;
  clear: none;
  overflow: auto;
  height: 452px;
}
.filepicker.moodle-dialogue-fullscreen .file-picker .fp-content {
  width: 100%;
}
.file-picker .fp-content-loading {
  height: 100%;
  width: 100%;
  display: table;
  text-align: center;
}
.file-picker .fp-content .fp-object-container {
  width: 98%;
  height: 98%;
}
.file-picker .fp-def-search {
  margin-top: 0;
}
.file-picker .fp-list {
  list-style-type: none;
  padding: 0;
  float: left;
  width: 100%;
  margin: 0;
}
.file-picker .fp-list .fp-repo a {
  display: block;
  padding: 0.5em 0.7em;
}
.file-picker .fp-list .fp-repo.active {
  background: #f2f2f2;
}
.file-picker .fp-list .fp-repo-icon {
  padding: 0 7px 0 5px;
  width: 16px;
  height: 16px;
}
.fp-toolbar {
  float: left;
}
.fp-toolbar.empty {
  display: none;
}
.fp-toolbar .disabled {
  display: none;
}
.fp-toolbar div {
  display: block;
  float: left;
  margin-right: 4px;
}
.fp-toolbar img {
  vertical-align: -15%;
  margin-right: 5px;
}
.fp-viewbar:not(.disabled) a.checked {
  background-color: #b18836;
  color: #000;
  border-color: #a88033;
}
.fp-viewbar.disabled a {
  pointer-events: none;
  opacity: 0.65;
}
.file-picker .fp-clear-left {
  clear: left;
}
.fp-pathbar.empty {
  display: none;
}
.fp-pathbar .fp-path-folder {
  background: url(/theme/image.php/academi/theme/1790824836/fp/path_folder) left 3px no-repeat;
  background-size: 12px 12px;
  height: 12px;
  margin-left: 12px;
}
/*rtl:raw:
.fp-pathbar .fp-path-folder {
    background-image: url(/theme/image.php/academi/theme/1790824836/fp/path_folder_rtl);
}
*/
.fp-pathbar .fp-path-folder-name {
  margin-left: 24px;
}
.fp-iconview .fp-file {
  float: left;
  text-align: center;
  position: relative;
  margin: 10px 10px 35px;
}
.fp-iconview .fp-thumbnail {
  min-width: 110px;
  min-height: 110px;
  line-height: 110px;
  text-align: center;
  border: 1px solid #fff;
  display: block;
}
.fp-iconview .fp-thumbnail img {
  border: 1px solid #ddd;
  padding: 3px;
  vertical-align: middle;
}
.fp-iconview .fp-thumbnail:hover {
  background: #fff;
  border: 1px solid #ddd;
}
.fp-iconview .fp-filename-field {
  height: 33px;
  margin-top: 3px;
  word-wrap: break-word;
  overflow: hidden;
  position: absolute;
}
.fp-iconview .fp-file:focus .fp-filename-field, .fp-iconview .fp-file:hover .fp-filename-field {
  overflow: visible;
  z-index: 1000;
}
.fp-iconview .fp-file:focus .fp-filename, .fp-iconview .fp-file:hover .fp-filename {
  overflow: inherit;
  white-space: normal;
  text-overflow: inherit;
}
.fp-iconview .fp-filename-field .fp-filename {
  background: #fff;
  padding-top: 5px;
  padding-bottom: 12px;
  min-width: 112px;
}
.file-picker .yui3-datatable table {
  border: 0 solid #bbb;
  width: 100%;
}
.file-picker .ygtvtn, .filemanager .ygtvtn {
  /*rtl:remove*/
  background: url(/theme/image.php/academi/core/1790824836/y/tn) 0 0 no-repeat;
  /*rtl:raw:
    background: url(/theme/image.php/academi/core/1790824836/y/tn_rtl) 0 0 no-repeat;
    */
  width: 19px;
  height: 32px;
}
.file-picker .ygtvtm, .filemanager .ygtvtm {
  background: url(/theme/image.php/academi/core/1790824836/y/tm) 0 10px no-repeat;
  /*rtl:raw:
        background-position: 2px 10px;
    */
  width: 13px;
  height: 12px;
  cursor: pointer;
}
.file-picker .ygtvtmh, .filemanager .ygtvtmh {
  background: url(/theme/image.php/academi/core/1790824836/y/tm) 0 10px no-repeat;
  /*rtl:raw:
        background-position: 2px 10px;
    */
  width: 13px;
  height: 12px;
  cursor: pointer;
}
.file-picker .ygtvtp, .filemanager .ygtvtp {
  /*rtl:remove*/
  background: url(/theme/image.php/academi/core/1790824836/y/tp) 0 10px no-repeat;
  /*rtl:raw:
    background: url(/theme/image.php/academi/core/1790824836/y/tp_rtl) 2px 10px no-repeat;
    */
  width: 13px;
  height: 12px;
  cursor: pointer;
}
.file-picker .ygtvtph, .filemanager .ygtvtph {
  /*rtl:remove*/
  background: url(/theme/image.php/academi/core/1790824836/y/tp) 0 10px no-repeat;
  /*rtl:raw:
    background: url(/theme/image.php/academi/core/1790824836/y/tp_rtl) 2px 10px no-repeat;
    */
  width: 13px;
  height: 22px;
  cursor: pointer;
}
.file-picker .ygtvln, .filemanager .ygtvln {
  /*rtl:remove*/
  background: url(/theme/image.php/academi/core/1790824836/y/ln) 0 0 no-repeat;
  /*rtl:raw:
    background: url(/theme/image.php/academi/core/1790824836/y/ln_rtl) 0 0 no-repeat;
    */
  width: 19px;
  height: 32px;
}
.file-picker .ygtvlm, .filemanager .ygtvlm {
  background: url(/theme/image.php/academi/core/1790824836/y/lm) 0 10px no-repeat;
  /*rtl:raw:
        background-position: 2px 10px;
    */
  width: 13px;
  height: 12px;
  cursor: pointer;
}
.file-picker .ygtvlmh, .filemanager .ygtvlmh {
  background: url(/theme/image.php/academi/core/1790824836/y/lm) 0 10px no-repeat;
  /*rtl:raw:
        background-position: 2px 10px;
    */
  width: 13px;
  height: 12px;
  cursor: pointer;
}
.file-picker .ygtvlp, .filemanager .ygtvlp {
  /*rtl:remove*/
  background: url(/theme/image.php/academi/core/1790824836/y/lp) 0 10px no-repeat;
  /*rtl:raw:
    background: url(/theme/image.php/academi/core/1790824836/y/lp_rtl) 2px 10px no-repeat;
    */
  width: 13px;
  height: 12px;
  cursor: pointer;
}
.file-picker .ygtvlph, .filemanager .ygtvlph {
  /*rtl:remove*/
  background: url(/theme/image.php/academi/core/1790824836/y/lp) 0 10px no-repeat;
  /*rtl:raw:
    background: url(/theme/image.php/academi/core/1790824836/y/lp_rtl) 2px 10px no-repeat;
    */
  width: 13px;
  height: 12px;
  cursor: pointer;
}
.file-picker .ygtvloading, .filemanager .ygtvloading {
  background: transparent url(/theme/image.php/academi/core/1790824836/y/loading) 0 0 no-repeat;
  width: 16px;
  height: 22px;
}
.file-picker .ygtvdepthcell, .filemanager .ygtvdepthcell {
  background: url(/theme/image.php/academi/core/1790824836/y/vline) 0 0 no-repeat;
  /*rtl:raw:
    background-position: 0 0;
    */
  width: 17px;
  height: 32px;
}
.file-picker .ygtvblankdepthcell, .filemanager .ygtvblankdepthcell {
  width: 17px;
  height: 22px;
}
a.ygtvspacer:hover {
  color: transparent;
  text-decoration: none;
}
.ygtvlabel, .ygtvlabel:link, .ygtvlabel:visited, .ygtvlabel:hover {
  background-color: transparent;
  cursor: pointer;
  margin-left: 2px;
  text-decoration: none;
}
.file-picker .ygtvfocus, .filemanager .ygtvfocus {
  background-color: #eee;
}
.fp-filename-icon {
  margin-top: 10px;
  display: block;
  position: relative;
}
.fp-icon {
  float: left;
  margin-top: -7px;
  width: 24px;
  height: 24px;
  margin-right: 10px;
  text-align: center;
  line-height: 24px;
}
.fp-icon img {
  max-height: 24px;
  max-width: 24px;
  vertical-align: middle;
}
.fp-filename {
  padding-right: 10px;
}
.file-picker .fp-login-form {
  height: 100%;
  width: 100%;
  display: table;
}
.file-picker .fp-upload-form {
  height: 100%;
  width: 100%;
  display: table;
}
.file-picker .fp-upload-form table {
  margin: 0 auto;
}
.file-picker.fp-dlg {
  text-align: center;
}
.file-picker.fp-dlg .fp-dlg-buttons {
  margin: 0 20px;
}
.file-picker.fp-msg {
  text-align: center;
}
.file-picker .fp-content-error {
  height: 100%;
  width: 100%;
  display: table;
  text-align: center;
}
.file-picker .fp-nextpage {
  clear: both;
}
.file-picker .fp-nextpage .fp-nextpage-loading {
  display: none;
}
.file-picker .fp-nextpage.loading .fp-nextpage-link {
  display: none;
}
.file-picker .fp-nextpage.loading .fp-nextpage-loading {
  display: block;
  text-align: center;
  height: 100px;
  padding-top: 50px;
}
.fp-select .fp-select-loading {
  text-align: center;
  margin-top: 20px;
}
.fp-select table {
  padding: 0 0 10px;
}
.fp-select table .mdl-right {
  min-width: 84px;
}
.fp-select .fp-reflist .mdl-right {
  vertical-align: top;
}
.fp-select .fp-select-buttons {
  float: right;
}
.fp-select .fp-info {
  font-size: 0.703125rem;
}
.fp-select .fp-thumbnail {
  float: left;
  min-width: 110px;
  min-height: 110px;
  line-height: 110px;
  text-align: center;
  margin: 10px 20px 0 0;
  background: #fff;
  border: 1px solid #ddd;
}
.fp-select .fp-thumbnail img {
  border: 1px solid #ddd;
  padding: 3px;
  vertical-align: middle;
  margin: 10px;
}
.fp-select .fp-fileinfo {
  display: inline-block;
  margin-top: 10px;
}
.file-picker.fp-select .fp-fileinfo {
  max-width: 240px;
}
.fp-select .fp-fileinfo div {
  padding-bottom: 5px;
}
.file-picker.fp-select .uneditable {
  display: none;
}
.file-picker.fp-select .fp-select-loading {
  display: none;
}
.file-picker.fp-select.loading .fp-select-loading {
  display: block;
}
.file-picker.fp-select.loading form {
  display: none;
}
.fp-select .fp-dimensions.fp-unknown {
  display: none;
}
.fp-select .fp-size.fp-unknown {
  display: none;
}
.filemanager-loading {
  display: none;
}
.jsenabled .filemanager-loading {
  display: block;
  margin-top: 100px;
}
.filemanager.fm-loading .filemanager-toolbar, .filemanager.fm-loading .fp-pathbar, .filemanager.fm-loading .filemanager-container, .filemanager.fm-loaded .filemanager-loading, .filemanager.fm-maxfiles .fp-btn-add, .filemanager.fm-maxfiles .dndupload-message, .filemanager.fm-noitems .fp-btn-download, .filemanager.fm-noitems .fp-btn-delete, .filemanager .fm-empty-container, .filemanager.fm-noitems .filemanager-container .fp-content {
  display: none;
}
.filemanager .fp-img-downloading {
  display: none;
  padding-top: 7px;
}
.filemanager .filemanager-updating {
  display: none;
  text-align: center;
}
.filemanager.fm-updating .filemanager-updating {
  display: block;
  margin-top: 37px;
}
.filemanager.fm-updating .fm-content-wrapper, .filemanager.fm-nomkdir .fp-btn-mkdir, .fitem.disabled .filemanager .filemanager-toolbar, .fitem.disabled .filemanager .fp-pathbar, .fitem.disabled .filemanager .fp-restrictions, .fitem.disabled .filemanager .fm-content-wrapper {
  display: none;
}
.filemanager .fp-restrictions {
  text-align: right;
}
.filemanager-toolbar {
  padding: 4px;
  overflow: hidden;
}
.filemanager .fp-pathbar.empty {
  display: none;
}
.filepicker-filelist, .filemanager-container {
  min-height: 140px;
  border: 1px solid #8f959e;
  border-radius: 0.5rem;
}
.filemanager .fp-content {
  overflow: auto;
  max-height: 472px;
  min-height: 157px;
}
.filemanager-container, .filepicker-filelist {
  overflow: hidden;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.file-picker .yui3-datatable-header {
  /*rtl:raw:
    text-align: right;
    */
  background: initial;
}
.fitem.disabled .filepicker-filelist, .fitem.disabled .filemanager-container {
  background-color: #ebebe4;
}
.fitem.disabled .fp-btn-choose {
  color: var(--bs-secondary-color);
}
.fitem.disabled .filepicker-filelist .filepicker-filename {
  display: none;
}
.fp-iconview .fp-reficons1 {
  position: absolute;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
}
.fp-iconview .fp-reficons2 {
  position: absolute;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
}
.fp-iconview .fp-file.fp-hasreferences .fp-reficons1 {
  background: url(/theme/image.php/academi/theme/1790824836/fp/link) no-repeat;
  /*rtl:raw:
    transform: scaleX(-1);
    */
  /*rtl:ignore*/
  background-position: bottom right;
  background-size: 16px 16px;
}
.fp-iconview .fp-file.fp-isreference .fp-reficons2 {
  background: url(/theme/image.php/academi/theme/1790824836/fp/alias) no-repeat;
  /*rtl:raw:
    transform: scaleX(-1);
    */
  /*rtl:ignore*/
  background-position: bottom left;
  background-size: 16px 16px;
}
.filemanager .fp-iconview .fp-file.fp-originalmissing .fp-thumbnail img {
  display: none;
}
.filemanager .fp-iconview .fp-file.fp-originalmissing .fp-thumbnail {
  background: url(/theme/image.php/academi/core/1790824836/s/dead) no-repeat;
  background-position: center center;
}
.filemanager .yui3-datatable table {
  border: 0 solid #bbb;
  width: 100%;
}
/* Override YUI default styling */
/* stylelint-disable declaration-no-important */
.filemanager .yui3-datatable-header {
  /*rtl:raw:
        text-align: right;
        */
  background: #fff !important;
  border-bottom: 1px solid #ccc !important;
  border-left: 0 solid #fff !important;
  color: #555 !important;
}
.filemanager .yui3-datatable-odd .yui3-datatable-cell {
  background-color: #f6f6f6 !important;
  border-left: 0 solid #f6f6f6;
}
.filemanager .yui3-datatable-even .yui3-datatable-cell {
  background-color: #fff !important;
  border-left: 0 solid #fff;
}
/* stylelint-enable */
.filemanager .fp-filename-icon.fp-hasreferences .fp-reficons1 {
  background: url(/theme/image.php/academi/theme/1790824836/fp/link_sm) no-repeat 0 0;
  height: 100%;
  width: 100%;
  /*rtl:raw:
    transform: scaleX(-1);
    */
  position: absolute;
  top: 8px;
  left: 17px;
  background-size: 16px 16px;
}
.filemanager .fp-filename-icon.fp-isreference .fp-reficons2 {
  background: url(/theme/image.php/academi/theme/1790824836/fp/alias_sm) no-repeat 0 0;
  height: 100%;
  width: 100%;
  /*rtl:raw:
    transform: scaleX(-1);
    */
  position: absolute;
  top: 9px;
  left: -6px;
  background-size: 16px 16px;
}
.filemanager .fp-contextmenu {
  display: none;
}
.filemanager .fp-iconview .fp-folder.fp-hascontextmenu .fp-contextmenu {
  position: absolute;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.filemanager .fp-treeview .fp-folder.fp-hascontextmenu .fp-contextmenu, .filemanager .fp-tableview .fp-folder.fp-hascontextmenu .fp-contextmenu {
  display: inline;
  position: absolute;
  left: 14px;
  margin-right: -20px;
  top: 6px;
}
.filepicker-filelist .filepicker-container, .filemanager.fm-noitems .fm-empty-container {
  display: block;
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: 10px;
  right: 10px;
  border: 2px dashed #bbb;
  padding-top: 85px;
  text-align: center;
}
.filepicker-filelist .dndupload-target, .filemanager-container .dndupload-target {
  background: #fff;
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: 10px;
  right: 10px;
  border: 2px dashed #fb7979;
  padding-top: 85px;
  text-align: center;
}
.filepicker-filelist.dndupload-over .dndupload-target, .filemanager-container.dndupload-over .dndupload-target {
  background: #fff;
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: 10px;
  right: 10px;
  border: 2px dashed #6c8cd3;
  padding-top: 85px;
  text-align: center;
}
.dndupload-message {
  display: none;
}
.dndsupported .dndupload-message {
  display: inline;
}
.dnduploadnotsupported-message {
  display: none;
}
.dndnotsupported .dnduploadnotsupported-message {
  display: inline;
}
.dndupload-target {
  display: none;
}
.dndsupported .dndupload-ready .dndupload-target {
  display: block;
}
.dndupload-uploadinprogress {
  display: none;
  text-align: center;
}
.dndupload-uploading .dndupload-uploadinprogress {
  display: block;
}
.dndupload-arrow {
  width: 100%;
  height: 80px;
  position: absolute;
  top: 5px;
  color: #8f959e;
}
.fitem.disabled .filepicker-container, .fitem.disabled .fm-empty-container {
  display: none;
}
.dndupload-progressbars {
  padding: 10px;
  display: none;
}
.dndupload-inprogress .dndupload-progressbars {
  display: block;
}
.dndupload-inprogress .fp-content {
  display: none;
}
.filemanager.fm-noitems .dndupload-inprogress .fm-empty-container {
  display: none;
}
.filepicker-filelist.dndupload-inprogress .filepicker-container {
  display: none;
}
.filepicker-filelist.dndupload-inprogress a {
  display: none;
}
.filemanager.fp-select .fp-select-loading {
  display: none;
}
.filemanager.fp-select.loading .fp-select-loading {
  display: block;
}
.filemanager.fp-select.loading form {
  display: none;
}
.filemanager.fp-select.fp-folder .fp-license, .filemanager.fp-select.fp-folder .fp-author, .filemanager.fp-select.fp-file .fp-file-unzip, .filemanager.fp-select.fp-folder .fp-file-unzip, .filemanager.fp-select.fp-file .fp-file-zip, .filemanager.fp-select.fp-zip .fp-file-zip {
  display: none;
}
.filemanager.fp-select .fp-file-setmain, .filemanager.fp-select .fp-file-setmain-help {
  display: none;
}
.filemanager.fp-select.fp-cansetmain .fp-file-setmain, .filemanager.fp-select.fp-cansetmain .fp-file-setmain-help {
  display: inline-block;
}
.filemanager .fp-mainfile .fp-filename {
  font-weight: bold;
}
.filemanager.fp-select.fp-folder .fp-file-download {
  display: none;
}
.fm-operation {
  font-weight: bold;
}
.filemanager.fp-select .fp-original.fp-unknown, .filemanager.fp-select .fp-original .fp-originloading {
  display: none;
}
.filemanager.fp-select .fp-original.fp-loading .fp-originloading {
  display: inline;
}
.filemanager.fp-select .fp-reflist.fp-unknown, .filemanager.fp-select .fp-reflist .fp-reflistloading {
  display: none;
}
.filemanager.fp-select .fp-reflist.fp-loading .fp-reflistloading {
  display: inline;
}
.filemanager.fp-select .fp-reflist .fp-value {
  background: #f9f9f9;
  border: 1px solid #bbb;
  padding: 8px 7px;
  margin: 0;
  max-height: 75px;
  overflow: auto;
}
.filemanager.fp-select .fp-reflist .fp-value li {
  padding-bottom: 7px;
}
.filemanager.fp-mkdir-dlg {
  text-align: center;
}
.filemanager.fp-mkdir-dlg .fp-mkdir-dlg-text {
  text-align: left;
  margin: 20px;
}
.filemanager.fp-dlg {
  text-align: center;
}
.file-picker div.bd {
  text-align: left;
}
.fp-formset {
  padding: 10px;
}
.fp-formset input[type="file"] {
  line-height: inherit;
}
.fp-forminset {
  padding: 0 10px;
}
.fp-fileinfo .fp-value {
  display: inline-block;
  padding-left: 5px;
}
/** The message area **/
.hidden {
  display: none;
}
.preferences-container .container-fluid, .preferences-container .container-sm, .preferences-container .container-md, .preferences-container .container-lg, .preferences-container .container-xl, .preferences-container .container-xxl {
  padding: 0;
}
.preferences-container .container-fluid .col-md-6, .preferences-container .container-sm .col-md-6, .preferences-container .container-md .col-md-6, .preferences-container .container-lg .col-md-6, .preferences-container .container-xl .col-md-6, .preferences-container .container-xxl .col-md-6 {
  min-height: 20px;
}
.preferences-container .align-bottom {
  vertical-align: bottom;
}
.preferences-container .preference-table {
  border: 1px solid #ddd;
}
.preferences-container .preference-table thead th {
  text-align: center;
}
.preferences-container .preference-table thead th .config-warning {
  display: none;
}
.preferences-container .preference-table thead th.unconfigured .config-warning {
  display: inline-block;
}
.preferences-container .preference-table tr th {
  border-left: 1px solid #dee2e6;
}
.preferences-container .preference-table tr td:not(:first-child) {
  width: 150px;
  text-align: center;
}
.preferences-container .preference-table tr td:nth-child(even) {
  border: 1px solid #dee2e6;
}
.preferences-container .preference-table .preference-row .hover-tooltip-container {
  display: inline-block;
}
.preferences-container .preference-table .preference-row .preference-name {
  vertical-align: middle;
}
.preferences-container .preference-table .preference-row .disabled-message {
  text-align: center;
  height: 30px;
  line-height: 30px;
}
.preferences-container .preference-table .preference-row.loading .preference-name .loading-icon {
  display: block;
}
.disabled-message {
  display: none;
}
.disabled .disabled-message {
  display: block;
}
.disabled .disabled-message + form {
  display: none;
}
.general-settings-container .loading-icon {
  display: none;
}
.general-settings-container .loading .loading-icon {
  display: inline-block;
}
.general-settings-container label {
  display: inline-block;
}
.processor-container {
  position: relative;
}
.processor-container .loading-container {
  display: none;
  position: absolute;
  width: 100%;
  height: 100%;
  text-align: center;
  background-color: rgba(255, 255, 255, 0.5);
}
.processor-container .loading-container .vertical-align {
  height: 100%;
  width: 0%;
  display: inline-block;
  vertical-align: middle;
}
.processor-container.loading .loading-container {
  display: block;
}
.preferences-page-container .checkbox-container {
  margin: 30px 5px;
  line-height: 20px;
}
.preferences-page-container .checkbox-container input {
  line-height: 20px;
  margin: 0;
}
.preferences-page-container .checkbox-container .loading-icon {
  display: none;
}
.preferences-page-container .checkbox-container.loading .loading-icon {
  display: inline-block;
}
.notification-area {
  height: 600px;
  box-sizing: border-box;
  border-radius: 4px;
  margin-bottom: 30px;
  border: 1px solid #e3e3e3;
}
@media (max-height: 670px) {
  .notification-area {
    height: 500px;
  }
}
.notification-area .control-area {
  box-sizing: border-box;
  display: inline-block;
  width: 300px;
  height: 100%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  border-right: 1px solid #e3e3e3;
}
.notification-area .control-area .content {
  position: relative;
}
.notification-area .control-area .content .content-item-container {
  cursor: pointer;
}
.notification-area .control-area .content:empty + .empty-text {
  display: block;
}
.notification-area .control-area .loading-icon {
  display: none;
}
.notification-area .control-area .empty-text {
  display: none;
  text-align: center;
  padding-top: 20px;
}
.notification-area .control-area.loading .loading-icon {
  display: block;
  text-align: center;
  box-sizing: border-box;
  padding: 5px;
}
.notification-area .control-area.loading .content:empty + .empty-text {
  display: none;
}
.notification-area .content-area {
  box-sizing: border-box;
  display: inline-block;
  width: calc(100% - 300px);
  float: right;
}
.notification-area .content-area .toggle-mode {
  display: none;
}
.notification-area .content-area .header {
  height: 50px;
  box-sizing: border-box;
  border-bottom: 1px solid #e3e3e3;
  padding: 5px;
}
.notification-area .content-area .header .image-container {
  display: inline-block;
  height: 25px;
  width: 24px;
  float: left;
}
.notification-area .content-area .header .subject-container {
  display: inline-block;
  max-width: calc(100% - 24px);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  height: 25px;
  padding-left: 5px;
  box-sizing: border-box;
}
.notification-area .content-area .header .timestamp {
  font-size: 10px;
  line-height: 10px;
  margin: 0;
  color: #666;
  margin-left: 30px;
}
.notification-area .content-area .header:empty {
  display: none;
}
.notification-area .content-area > .content {
  height: 500px;
  box-sizing: border-box;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  padding: 15px;
}
@media (max-height: 670px) {
  .notification-area .content-area > .content {
    height: 400px;
  }
}
.notification-area .content-area > .content:empty {
  display: none;
}
.notification-area .content-area > .content:empty + .empty-text {
  display: block;
  text-align: center;
  padding-top: 100px;
}
.notification-area .content-area .empty-text {
  display: none;
}
.notification-area .content-area .footer {
  height: 50px;
  box-sizing: border-box;
  text-align: center;
}
.notification-area .content-area .footer a {
  line-height: 50px;
}
.notification-area .content-area .footer:empty {
  display: none;
}
@media (max-width: 979px) {
  .notification-area {
    position: relative;
    overflow: hidden;
  }
  .notification-area .control-area {
    border-right: none;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 1;
    visibility: visible;
    transition: left 0.25s;
  }
  .notification-area .content-area {
    width: 100%;
    position: absolute;
    top: 0;
    right: -100%;
    opacity: 0;
    visibility: hidden;
    transition: right 0.25s, opacity 0.25s, visibility 0.25s;
  }
  .notification-area .content-area .toggle-mode {
    display: inline-block;
    float: left;
    width: 70px;
    height: 50px;
    line-height: 50px;
    box-sizing: border-box;
    border-right: 1px solid #e3e3e3;
    border-bottom: 1px solid #e3e3e3;
  }
  .notification-area .content-area .header {
    display: inline-block;
    width: calc(100% - 70px);
  }
  .notification-area.show-content-area .control-area {
    left: -100%;
    opacity: 0;
    visibility: hidden;
    transition: left 0.25s, opacity 0.25s, visibility 0.25s;
  }
  .notification-area.show-content-area .content-area {
    right: 0;
    opacity: 1;
    visibility: visible;
    transition: right 0.25s;
  }
}
.drawer .message-app {
  height: 100%;
}
.drawer .message-app .icon-back-in-app {
  display: none;
}
.drawer .message-app .icon-back-in-drawer {
  display: inherit;
}
.message-app {
  display: flex;
  flex-direction: column;
  background-color: #eff1f3;
}
.message-app .icon-back-in-drawer {
  display: none;
}
.message-app.main {
  min-height: 400px;
}
.message-app .header-container {
  flex-shrink: 0;
}
.message-app .overflow-y {
  overflow-y: auto;
}
@media (max-height: 320px) {
  .message-app .header-container [data-region="view-overview"]:not(.hidden) {
    display: flex;
    align-items: center;
  }
  .message-app .overflow-y {
    overflow-y: unset;
  }
}
.message-app .body-container {
  flex: 1;
  overflow: hidden;
}
.message-app .body-container > * {
  position: absolute;
  right: 0;
  left: 0;
  top: 0;
  bottom: 0;
  overflow: auto;
}
.message-app .footer-container {
  flex-shrink: 0;
}
.message-app .footer-container textarea {
  direction: ltr;
}
.message-app .contact-status {
  position: absolute;
  left: 39px;
  top: 34px;
}
.message-app .contact-status.online .icon {
  color: #357a32;
}
.message-app .message p {
  margin: 0;
}
.message-app .clickable {
  cursor: pointer;
}
.message-app .clickable:hover {
  filter: drop-shadow(2px 2px 2px rgba(0, 0, 0, 0.3));
}
.message-app a, .message-app .btn-link {
  color: inherit;
}
.message-app .btn-link:hover, .message-app .btn-link:focus {
  background-color: rgba(0, 0, 0, 0.035);
  text-decoration: none;
}
.message-app .icon {
  margin-right: 0;
}
.message-app .overview-section-toggle .collapsed-icon-container {
  display: none;
}
.message-app .overview-section-toggle .expanded-icon-container {
  display: inline-block;
}
.message-app .overview-section-toggle.collapsed .collapsed-icon-container {
  display: inline-block;
}
.message-app .overview-section-toggle.collapsed .expanded-icon-container {
  display: none;
}
.message-app .view-overview-body .section {
  display: block;
}
.message-app .view-overview-body .section.expanded {
  display: flex;
}
.message-app .view-overview-body .section div[data-region="toggle"] {
  padding: 0.1rem;
}
.message-app .view-conversation .content-message-container img {
  max-width: 100%;
}
.message-app .list-group {
  border-radius: 0;
}
.message-app .list-group .list-group-item {
  border-left: 0;
  border-right: 0;
}
.message-app .list-group .list-group-item:hover {
  color: #fff;
  background-color: #2A2A2C;
}
.message-app .list-group .list-group-item:first-child {
  border-top: 0;
}
.message-app .list-group .list-group-item:last-child {
  border-bottom: 0;
}
.message-app .list-group .list-group-item.list-group-item-action {
  margin: 0.1rem;
  width: auto;
  text-align: inherit;
}
.message-app .last-message {
  min-height: 1.5rem;
}
.message-app .section .collapsing {
  overflow: hidden;
}
.message-app .message.send {
  background-color: #dee2e6;
  color: #000;
}
.message-app .message.send .time {
  color: black;
}
.message-app .message.send .tail {
  right: 0;
  margin-right: -0.5rem;
  border-bottom-color: #dee2e6;
}
.message-app .message.received {
  background-color: #fff;
  color: #000;
}
.message-app .message.received .time {
  color: #4d4d4d;
}
.message-app .message.received .tail {
  left: 0;
  margin-left: -0.5rem;
  border-bottom-color: #fff;
}
.message-app .message .tail {
  content: "";
  bottom: 0;
  width: 0;
  height: 0;
  border: 0.5rem solid transparent;
  position: relative;
}
.message-app .day {
  color: #000;
}
.message-app .lazy-load-list {
  overflow-y: inherit;
}
#page-message-index #page-header {
  display: none;
}
#page-message-index #region-main {
  height: 100%;
  margin-top: 0;
}
#page-message-index #region-main .conversationcontainer .section {
  max-height: calc(100vh - 50px);
}
#page-message-index #region-main div[role="main"] {
  height: 100%;
}
#page-message-index #region-main div[role="main"] #maincontent {
  margin-top: -1px;
}
#page-message-index #region-main div[role="main"] .message-app.main {
  height: 100%;
}
.dir-rtl .message-drawer {
  box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.08);
}
.message-app .emoji-picker-container {
  position: absolute;
  top: -5px;
  right: 5px;
  transform: translateY(-100%);
}
.message-app .emoji-picker-container .emoji-picker .picker-row .emoji-button {
  height: 40px;
  width: 40px;
}
@media (max-width: 575.98px) {
  .message-app .emoji-picker-container {
    right: -0.5rem;
  }
}
@media (max-height: 495px) {
  .message-app .emoji-picker-container {
    position: fixed;
    top: 0;
    transform: none;
  }
}
.message-app .emoji-auto-complete-container {
  overflow: auto;
  max-height: 90px;
  transition: max-height 0.15s ease-in-out;
  visibility: visible;
}
.message-app .emoji-auto-complete-container.hidden {
  display: block;
  max-height: 0;
  visibility: hidden;
  overflow: hidden;
  transition: max-height 0.15s ease-in-out, visibility 0s linear 0.15s, overflow 0s linear 0.15s;
}
/* Question */
.questionbank h2, .questionbank .h2 {
  margin-top: 0;
}
.questioncategories h3, .questioncategories .h3 {
  margin-top: 0;
}
#chooseqtypebox {
  margin-top: 1em;
}
#chooseqtype h3, #chooseqtype .h3 {
  margin: 0 0 0.3em;
}
#chooseqtype .instruction {
  display: none;
}
#chooseqtype .fakeqtypes {
  border-top: 1px solid silver;
}
#chooseqtype .qtypeoption {
  margin-bottom: 0.5em;
}
#chooseqtype label {
  display: block;
}
#chooseqtype .qtypename img {
  padding: 0 0.3em;
}
#chooseqtype .qtypename {
  display: inline-table;
  width: 16em;
}
#chooseqtype .qtypesummary {
  display: block;
  margin: 0 2em;
}
#chooseqtype .submitbuttons {
  margin: 0.7em 0;
  text-align: center;
}
#qtypechoicecontainer {
  display: none;
}
#qtypechoicecontainer_c.yui-panel-container.shadow .underlay {
  background: none;
}
#qtypechoicecontainer.yui-panel .hd {
  color: #333;
  letter-spacing: 1px;
  text-shadow: 1px 1px 1px #fff;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  border: 1px solid #ccc;
  border-bottom: 1px solid #bbb;
  background-image: linear-gradient(to bottom, #fff, #ccc);
}
#qtypechoicecontainer {
  font-size: 12px;
  color: #333;
  background: #f2f2f2;
  border-radius: 10px;
  border: 1px solid #ccc;
  border-top: 0 none;
}
#qtypechoicecontainer #chooseqtype {
  width: 40em;
}
#chooseqtypehead h3, #chooseqtypehead .h3 {
  margin: 0;
  font-weight: normal;
}
#chooseqtype .qtypes {
  position: relative;
  border-bottom: 1px solid #bbb;
  padding: 0.24em 0;
}
#chooseqtype .alloptions {
  overflow-x: hidden;
  overflow-y: auto;
  max-height: calc(100vh - 15em);
  width: 60%;
}
#chooseqtype .qtypeoption {
  margin-bottom: 0;
  padding: 0.3em 0.3em 0.3em 1.6em;
}
#chooseqtype .qtypeoption img {
  vertical-align: text-bottom;
  padding-left: 1em;
  padding-right: 0.5em;
}
#chooseqtype .selected {
  background-color: #fff;
}
#chooseqtype .instruction, #chooseqtype .qtypesummary {
  display: none;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 60%;
  margin: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 1.5em 1.6em;
  background-color: #fff;
}
#chooseqtype .instruction, #chooseqtype .selected .qtypesummary {
  display: block;
}
.chooserdialogue-questionchooser .modicon img.icon, #categoryquestions .qtype img.icon {
  /* Override default icon width set for fontawesome icons */
  width: 16px;
}
table.question-bank-table {
  margin: 0;
  background-color: #fff;
  table-layout: fixed;
  overflow-x: scroll;
  width: min-content;
  max-width: 100%;
}
table.question-bank-table th {
  text-align: left;
}
table.question-bank-table > tbody > tr.r1 {
  background-color: rgba(0, 0, 0, 0.03);
}
table.question-bank-table > tbody > tr.highlight {
  border: 1px solid #008196;
}
table.question-bank-table .checkbox input[type="checkbox"] {
  margin-left: 0;
  float: none;
}
table.question-bank-table .iconcol {
  padding: 3px;
  box-sizing: content-box;
}
table.question-bank-table .iconcol .icon {
  margin: 0;
  width: 12px;
  height: 12px;
}
table.question-bank-table label {
  margin: 0;
  display: block;
}
table.question-bank-table .header {
  text-align: left;
}
table.question-bank-table .header.sortable-list-current-position {
  background-color: #8e8e94;
}
table.question-bank-table .header.sortable-list-is-dragged {
  background-color: #fff;
  opacity: 0.85;
}
table.question-bank-table .header .header-text > div {
  display: inline-block;
}
table.question-bank-table .header .dropdown-toggle::after {
  margin-left: 0;
}
table.question-bank-table .header.checkbox .form-check {
  padding-left: 0;
}
#page-mod-quiz-edit div.questionbankwindow div.header {
  margin: 0;
}
#page-mod-quiz-edit div.questionbankwindow.block {
  padding: 0;
}
.questionbank .singleselect {
  margin: 0;
}
/* Question editing form */
#combinedfeedbackhdr div.fhtmleditor {
  padding: 0;
}
#combinedfeedbackhdr div.fcheckbox {
  margin-bottom: 1em;
}
#multitriesheader div.fitem_feditor {
  margin-top: 1em;
}
#multitriesheader div.fitem_fgroup {
  margin-bottom: 1em;
}
#multitriesheader div.fitem_fgroup fieldset.felement label {
  margin-left: 0.3em;
  margin-right: 0.3em;
}
body.path-question-type {
  /* Hacks to display the labels within a form group. */
}
body.path-question-type .fitem .col-form-label.visually-hidden:not(legend):not([for="id_category"], [for="id_filetypeslist"]) {
  /* stylelint-disable declaration-no-important */
  position: static !important;
  width: auto !important;
  overflow: visible !important;
  /* stylelint-enable declaration-no-important */
}
.que {
  clear: left;
  text-align: left;
  margin: 0 auto 1.8em auto;
}
.que .info {
  float: left;
  width: 7em;
  padding: 0.5em;
  margin-bottom: 1.8em;
  background-color: #f8f9fa;
  border: 1px solid #cad0d7;
  border-radius: 2px;
}
.que h3.no, .que .no.h3 {
  margin: 0;
  font-size: 0.8em;
  line-height: 1;
}
.que span.qno {
  font-size: 1.5em;
  font-weight: bold;
  word-break: break-word;
}
.que .info > div {
  font-size: 0.8em;
  margin-top: 0.7em;
}
.que .info .questionflag.editable {
  cursor: pointer;
}
.que .info .editquestion img, .que .info .questionflag img, .que .info .questionflag input {
  vertical-align: bottom;
}
.que .content {
  margin: 0 0 0 8.5em;
}
.que .formulation, .que .outcome, .que .comment {
  position: relative;
  padding: 1rem 1rem;
  margin-bottom: 1rem;
  border: 0 solid transparent;
  border-radius: var(--bs-border-radius);
}
.que .outcome, .que .comment {
  color: #a67736;
  border-color: #fbe6ca;
  background-color: #fcefdc;
}
.que .outcome a, .que .comment a {
  color: black;
}
.que .formulation {
  color: #001a1e;
  border-color: #b3d9e0;
  background-color: #cce6ea;
}
.que.multichoice .answer div.r0 .icon.fa-check, .que.multichoice .answer div.r1 .icon.fa-check, .que.multichoice .answer div.r0 .icon.fa-remove, .que.multichoice .answer div.r1 .icon.fa-remove {
  text-indent: 0;
}
.formulation input[type="text"], .formulation select {
  width: auto;
  vertical-align: baseline;
}
.que.multianswer .formulation .yui3-widget-positioned {
  box-sizing: content-box;
}
.que.multianswer .formulation .yui3-widget-positioned .feedbackspan {
  width: inherit;
  max-width: inherit;
}
.que input[size], .que textarea[cols] {
  width: auto;
  max-width: 100%;
}
.que .comment {
  color: #20491e;
  border-color: #c2d7c2;
  background-color: #d7e4d6;
}
.que .ablock {
  margin: 0.7em 0 0.3em 0;
}
.que .im-controls {
  margin-top: 0.5em;
  text-align: left;
}
.que .specificfeedback, .que .generalfeedback, .que .numpartscorrect .que .rightanswer, .que .im-feedback, .que .feedback, .que p {
  margin: 0 0 0.5em;
}
.que .correctness.correct {
  color: #fff;
  background-color: #357a32;
}
.que .correctness.partiallycorrect {
  color: #000;
  background-color: #f0ad4e;
}
.que .correctness.notanswered, .que .correctness.incorrect {
  color: #fff;
  background-color: #ca3120;
}
.que .qtext {
  margin-bottom: 1.5em;
}
.que .validationerror {
  color: #ca3120;
}
.que .grading, .que .comment, .que .commentlink, .que .history {
  margin-top: 0.5em;
}
.que .history h3, .que .history .h3 {
  margin: 0 0 0.2em;
  font-size: 1em;
}
.que .history table {
  width: 100%;
  margin: 0;
}
.que .history .current {
  font-weight: bold;
}
.que .questioncorrectnessicon {
  vertical-align: text-bottom;
}
body.jsenabled .questionflag input[type=checkbox] {
  display: none;
}
.que .questionflagimage {
  padding-right: 3px;
  height: 16px;
  width: 16px;
}
.importerror {
  margin-top: 10px;
  border-bottom: 1px solid #555;
}
.mform .que.comment .fitemtitle {
  width: 20%;
}
#page-question-preview #techinfo {
  margin: 1em 0;
}
#page-question-preview .collapsibleregion .collapsibleregioncaption, #page-question-preview .collapsibleregion .collapsibleregionextracontent {
  display: inline-block;
}
#page-mod-quiz-edit ul.slots .activityinstance > a {
  display: flex;
  max-width: 100%;
  align-items: center;
  text-indent: 0;
  padding-left: 0;
}
#page-mod-quiz-edit ul.slots .activityinstance img.activityicon {
  margin-left: 0;
  width: 16px;
  height: 16px;
  padding-right: 4px;
}
#page-mod-quiz-edit .activity img.activityicon {
  vertical-align: text-top;
}
#page-mod-quiz-edit .box.generalbox.questionbank {
  padding: 0.5em;
}
#page-mod-quiz-edit .questionbank .categorypagingbarcontainer, #page-mod-quiz-edit .questionbank .categoryquestionscontainer, #page-mod-quiz-edit .questionbank .choosecategory {
  padding: 0;
}
#page-mod-quiz-edit .questionbank .choosecategory select {
  width: 100%;
}
#page-mod-quiz-edit div.questionbank .categoryquestionscontainer {
  background: transparent;
}
#page-mod-quiz-edit .questionbankwindow div.header {
  color: #444;
  text-shadow: none;
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  margin: 0 -10px 0 -10px;
  padding: 2px 10px 2px 10px;
  background: transparent;
  /* Old browsers */
}
#page-mod-quiz-edit .questionbankwindow div.header a:link, #page-mod-quiz-edit .questionbankwindow div.header a:visited {
  color: #2A2A2C;
}
#page-mod-quiz-edit .questionbankwindow div.header a:hover {
  color: #222223;
}
#page-mod-quiz-edit .createnewquestion {
  padding: 0.3em 0;
}
#page-mod-quiz-edit .createnewquestion div, #page-mod-quiz-edit .createnewquestion input {
  margin: 0;
}
#page-mod-quiz-edit .questionbankwindow div.header .title {
  color: #1d2125;
}
#page-mod-quiz-edit div.container div.generalbox {
  background-color: transparent;
  padding: 1.5em;
}
#page-mod-quiz-edit .categoryinfo {
  background-color: transparent;
  border-bottom: none;
}
#page-mod-quiz-edit .createnewquestion .singlebutton input {
  margin-bottom: 0;
}
#page-mod-quiz-edit div.questionbank .categorysortopotionscontainer, #page-mod-quiz-edit div.questionbank .categoryselectallcontainer {
  padding: 0 0 1.5em 0;
}
#page-mod-quiz-edit div.questionbank .categorypagingbarcontainer {
  background-color: transparent;
  margin: 0;
  border-top: 0;
  border-bottom: 0;
}
#page-mod-quiz-edit div.questionbank .categorypagingbarcontainer .paging {
  padding: 0 0.3em;
}
#page-mod-quiz-edit div.question div.content div.questioncontrols {
  background-color: #fff;
}
#page-mod-quiz-edit div.question div.content div.points {
  margin-top: -0.5em;
  padding-bottom: 0;
  border: none;
  background-color: #fff;
  position: static;
  width: 12.1em;
  float: right;
  margin-right: 60px;
}
#page-mod-quiz-edit div.question div.content div.points br {
  display: none;
}
#page-mod-quiz-edit div.question div.content div.points label {
  display: inline-block;
}
#page-mod-quiz-edit div.quizpage .pagecontent .pagestatus {
  background-color: #fff;
}
#page-mod-quiz-edit .quizpagedelete, #page-mod-quiz-edit .quizpagedelete img {
  background-color: transparent;
}
#page-mod-quiz-edit div.quizpage .pagecontent {
  border: 1px solid #ddd;
  border-radius: 2px;
  overflow: hidden;
}
#page-mod-quiz-edit div.questionbank .categoryinfo {
  padding: 0.3em 0;
}
.questionbankwindow .module {
  width: auto;
}
.questionbankwindow .form-autocomplete-selection {
  margin-left: 0;
}
#page-mod-quiz-edit div.editq div.question div.content {
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  overflow: hidden;
}
#page-mod-quiz-edit ul.slots .activityinstance img.activityicon {
  margin-top: 0;
  padding-right: 4px;
}
.path-mod-quiz .statedetails {
  display: block;
  font-size: 0.9em;
}
a#hidebankcmd {
  color: #2A2A2C;
}
.que.shortanswer .answer {
  padding: 0;
}
.que label {
  display: inline;
}
.que .content .answer div[data-region="answer-label"] .mediaplugin {
  width: 400px;
}
body.path-question-type .mform fieldset.hidden {
  padding: 0;
  margin: 0.7em 0 0;
}
.que.ddwtos, .que.ddwtos .drop {
  box-sizing: content-box;
}
.tag-condition-container {
  position: relative;
}
@media (max-width: 767.98px) {
  .que .info {
    float: none;
    width: auto;
  }
  .que .content {
    margin: 0;
  }
}
.qbank_managecategories-item.qbank_managecategories-droptarget-before, .qbank_managecategories-item .qbank_managecategories-item.qbank_managecategories-droptarget-before, .qbank_managecategories-categorylist.qbank_managecategories-droptarget-before > .qbank_managecategories-item:first-child {
  border-top-color: #2A2A2C;
}
.qbank_managecategories-item.qbank_managecategories-droptarget, .qbank_managecategories-categorylist.qbank_managecategories-droptarget > .qbank_managecategories-item:last-child {
  border-bottom-color: #2A2A2C;
}
.qbank_managecategories-newchild.qbank_managecategories-droptarget {
  border-color: #2A2A2C;
  color: #2A2A2C;
}
/* user.less */
.userprofile .fullprofilelink {
  text-align: center;
  margin: 10px;
}
.userprofile .page-context-header {
  margin-bottom: 10px;
  column-count: 1;
}
.userprofile .description {
  margin-top: 10px;
  margin-bottom: 30px;
}
.userprofile .profile_tree {
  column-count: 2;
}
#participantsform .no-overflow {
  overflow: visible;
}
.userprofile dl.list > dd + dt {
  clear: left;
}
.user-box {
  margin: 8px;
  width: 115px;
  height: 160px;
  text-align: center;
  float: left;
  clear: none;
}
#page-user-profile .node_category ul, .path-user .node_category ul {
  margin: 0;
  list-style: none;
  padding-left: 0;
}
#page-user-profile .node_category li, .path-user .node_category li {
  margin-top: 5px;
}
#page-user-profile .node_category .editprofile, #page-user-profile .node_category .viewmore, .path-user .node_category .editprofile, .path-user .node_category .viewmore {
  text-align: right;
}
.ajax-contact-button {
  box-sizing: border-box;
  position: relative;
}
.ajax-contact-button.loading .loading-icon {
  display: block;
}
.ajax-contact-button .loading-icon {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.7);
}
.ajax-contact-button .loading-icon .icon {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
@media (max-width: 480px) {
  .userprofile .profile_tree {
    /** Display the profile on one column on phones@mixin  */
    column-count: 1;
  }
}
.userlist #showall {
  margin: 10px 0;
}
.userlist .buttons {
  text-align: center;
}
.userlist .buttons label {
  padding: 0 3px;
}
.userlist table#participants {
  text-align: center;
}
.userlist table#participants td {
  text-align: left;
  padding: 4px;
  vertical-align: middle;
}
.userlist table#participants th {
  text-align: left;
  padding: 4px;
}
.userlist table.controls {
  width: 100%;
}
.userlist table.controls tr {
  vertical-align: top;
}
.userlist table.controls .right {
  text-align: right;
}
.userlist table.controls .groupselector {
  margin-bottom: 0;
  margin-top: 0;
}
.userlist table.controls .groupselector label {
  display: block;
}
.userinfobox {
  width: 100%;
  border: 1px solid;
  border-collapse: separate;
  padding: 10px;
}
.userinfobox .left, .userinfobox .side {
  width: 100px;
  vertical-align: top;
}
.userinfobox .userpicture {
  width: 100px;
  height: 100px;
}
.userinfobox .content {
  vertical-align: top;
}
.userinfobox .links {
  width: 100px;
  padding: 5px;
  vertical-align: bottom;
}
.userinfobox .links a {
  display: block;
}
.userinfobox .list td {
  padding: 3px;
}
.userinfobox .username {
  padding-bottom: 20px;
  font-weight: bold;
}
.userinfobox td.label {
  text-align: right;
  white-space: nowrap;
  vertical-align: top;
  font-weight: bold;
}
.group-edit {
  position: absolute;
  right: 0;
  margin-right: 0.6em;
}
.group-image {
  display: block;
  float: left;
  margin-right: 1em;
}
.group-image .grouppicture {
  border-radius: 50%;
}
.groupinfobox .left {
  padding: 10px;
  width: 100px;
  vertical-align: top;
}
.course-participation #showall {
  text-align: center;
  margin: 10px 0;
}
#user-policy .noticebox {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 10px;
  width: 80%;
  height: 250px;
}
#user-policy #policyframe {
  width: 100%;
  height: 100%;
}
.iplookup #map {
  margin: auto;
}
.userselector select {
  width: 100%;
}
.userselector div {
  margin-top: 0.2em;
}
.userselector div label {
  margin-right: 0.3em;
}
/* Next style does not work in all browsers but looks nicer when it does */
.userselector .userselector-infobelow {
  font-size: 0.8em;
}
#userselector_options .collapsibleregioncaption {
  font-weight: bold;
}
#userselector_options .collapsibleregioncaption img {
  width: 16px;
  height: 16px;
}
#userselector_options p {
  margin: 0.2em 0;
  text-align: left;
}
/** user full profile */
#page-user-profile .messagebox {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
/** user course profile */
#page-course-view-weeks .messagebox {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
.profileeditor > .singleselect {
  margin: 0 0.5em 0 0;
}
.profileeditor > .singlebutton {
  display: inline-block;
  margin: 0 0 0 0.5em;
}
.profileeditor > .singlebutton div, .profileeditor > .singlebutton input {
  margin: 0;
}
.userlist h3 .action-icon, .userlist .h3 .action-icon {
  display: none;
}
#page-enrol-users .popover {
  max-width: none;
}
.user-enroller-panel {
  width: 600px;
}
[data-filterverbfor], [data-filterregion="filter"]:last-child [data-filterregion="joinadverb"] {
  display: none;
}
[data-filterverb="0"] [data-filterverbfor="0"], [data-filterverb="1"] [data-filterverbfor="1"], [data-filterverb="2"] [data-filterverbfor="2"] {
  display: block;
}
#page-user-contactsitesupport .supporticon i {
  font-size: 35px;
}
.search-results .result {
  margin-left: 0;
  margin-right: 0;
}
.search-results .result .result-content {
  margin: 7px 0;
}
.search-results .result .filename {
  font-style: italic;
}
.simplesearchform .input-group input.form-control {
  border-top-left-radius: 0.5rem;
  border-bottom-left-radius: 0.5rem;
}
.simplesearchform .btn {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.simplesearchform .btn .icon {
  margin: 0;
}
.simplesearchform .btn-submit {
  border-color: #8f959e;
  color: #6a737b;
}
.simplesearchform .btn-close, .simplesearchform .btn-clear {
  position: absolute;
  top: 0;
  right: 0;
  color: #6a737b;
  z-index: 6;
}
.simplesearchform .btn-close {
  right: 2.5rem;
  top: 0.4rem;
  font-size: inherit;
  line-height: inherit;
}
.simplesearchform .btn-submit {
  background-color: #f8f9fa;
}
.simplesearchform .withclear {
  padding-right: 2rem;
}
.simplesearchform .searchinput {
  display: flex;
  flex: 1 1 auto;
}
.simplesearchform .collapsing {
  height: inherit;
  transition: none;
  width: inherit;
}
.simplesearchform .collapse.show, .simplesearchform .collapsing {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  display: flex;
  background-color: #fff;
  z-index: 1070;
  height: 60px;
}
.simplesearchform .collapse.show .searchform-navbar, .simplesearchform .collapsing .searchform-navbar {
  width: auto;
  margin-left: auto;
  margin-right: auto;
}
.search-areas-actions {
  margin-bottom: 1rem;
}
.search-areas-actions > div {
  margin-right: 1rem;
  display: inline-block;
}
#core-search-areas .lastcol li {
  margin-left: 24px;
  text-indent: -24px;
}
#core-search-areas .lastcol li > i {
  text-indent: 0;
}
/**
 * Moodle forms HTML isn't changeable via renderers (yet?) so this
 * .less file imports styles from the bootstrap $variables file and
 * adds them to the existing Moodle form CSS ids and classes.
 *
 */
.jsenabled .mform .containsadvancedelements .advanced {
  display: none;
}
.mform .containsadvancedelements .advanced.show {
  display: flex;
}
#adminsettings span.error {
  display: inline-block;
  border: 1px solid #efc1bc;
  border-radius: 4px;
  background-color: #f4d6d2;
  padding: 4px;
  margin-bottom: 4px;
}
.mform .d-flex .fitem {
  margin: 0.1rem 0.25rem 0.1rem 0 !important;
  /* stylelint-disable-line declaration-no-important */
}
.mform .d-flex br + label {
  justify-content: flex-start;
  width: 100%;
  margin-right: 0;
}
.d-flex > .form-control {
  width: auto;
  max-width: 100%;
}
.d-flex > textarea.form-control {
  width: 100%;
}
.form-select {
  width: auto;
  max-width: 100%;
}
#jump-to-activity.form-select {
  width: 100%;
}
.mform fieldset {
  margin-bottom: 0.5rem;
  border-bottom: 1px solid var(--bs-border-color);
}
#adminsettings .form-control[size] {
  width: auto;
}
#adminsettings .error {
  color: #ca3120;
}
.mform ul.file-list {
  padding: 0;
  margin: 0;
  list-style: none;
}
.mform label .req, .mform label .adv {
  cursor: help;
}
/*rtl:ignore*/
input#id_externalurl {
  direction: ltr;
}
#portfolio-add-button {
  display: inline;
}
.form-defaultinfo, .form-label .form-shortname {
  color: var(--bs-secondary-color);
}
.form-label .form-shortname {
  font-size: 0.703125rem;
  display: block;
}
.formsettingheading .form-horizontal {
  color: var(--bs-secondary-color);
}
.no-felement.fstatic {
  color: var(--bs-secondary-color);
  padding-top: 5px;
}
.no-fitem .fstaticlabel {
  font-weight: bold;
}
.form-item .form-setting .defaultsnext > input {
  display: inline-block;
}
.form-item .form-setting .form-checkbox.defaultsnext {
  margin-top: 5px;
  display: inline-block;
}
#adminsettings h3, #adminsettings .h3 {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 1.5;
  font-size: 1.171875rem;
  line-height: 3;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
}
/* rtl:ignore */
.mform .fitem .felement input[name="email"], .mform .fitem .felement input[name="email2"], .mform .fitem .felement input[name="url"], .mform .fitem .felement input[name="idnumber"], .mform .fitem .felement input[name="phone1"], .mform .fitem .felement input[name="phone2"] {
  text-align: left;
  direction: ltr;
}
.que.match .mediaplugin {
  width: 50vw;
}
/* rtl:ignore */
#page-admin-grade-edit-scale-edit .error input#id_name {
  margin-right: 170px;
}
#page-grade-edit-outcome-course .courseoutcomes {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}
#page-grade-edit-outcome-course .courseoutcomes td {
  text-align: center;
}
/* Install Process' text fields Forms, should always be justified to the left */
/* rtl:ignore */
#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;
}
.singleselect {
  max-width: 100%;
}
.form-item .form-label label {
  margin-bottom: 0;
}
div#dateselector-calendar-panel {
  z-index: 3100;
  /* Set higher than the z-index of the filemanager - see MDL-39047. */
}
/**
 * Show the labels above text editors and file managers except on wide screens.
 */
/* Section and module editing forms contain special JS components for the
   availability system (if enabled). */
#id_availabilityconditionsjson[aria-hidden=true], .availability-field [aria-hidden=true] {
  display: none;
}
.availability-field img {
  width: 16px;
  height: 16px;
}
.availability-eye {
  clear: left;
  float: left;
}
.availability-inner, .availability-plugincontrols {
  float: left;
  border-radius: var(--bs-border-radius);
  border: var(--bs-border-width) solid var(--bs-border-color-translucent);
  padding: 1rem;
  margin-top: 0.5rem;
}
.availability-plugincontrols, .availability-childlist .availability-inner {
  margin-left: 0.625rem;
}
.availability-field .availability-plugincontrols .availability-group select {
  max-width: 12rem;
}
/* Custom styles for autocomplete form element */
/* These styles reserve a standard amount of space in the DOM to avoid flicker when the original select element is replaced */
[data-fieldtype=autocomplete] select, [data-fieldtype=tags] select, .form-autocomplete-original-select {
  visibility: hidden;
  overflow: hidden;
  width: 15rem;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  margin-top: 1.65625rem;
  vertical-align: bottom;
}
.form-autocomplete-selection {
  margin: 0.25rem 0;
  min-height: 2.375rem;
}
.form-autocomplete-selection [role=option] {
  cursor: pointer;
  white-space: inherit;
  word-break: break-word;
  line-height: 1.4;
  text-align: left;
}
.form-autocomplete-suggestions {
  position: absolute;
  background-color: #fff;
  border: 1px solid #8f959e;
  min-width: 206px;
  max-height: 20em;
  overflow: auto;
  margin: 0.125rem 0 0;
  padding: 0.5rem 0;
  z-index: 3;
}
.form-autocomplete-suggestions li {
  list-style-type: none;
  padding: 0.25rem 1rem;
  margin: 0;
  cursor: pointer;
  color: #1d2125;
  word-break: normal;
  overflow-wrap: anywhere;
  white-space: normal;
}
.form-autocomplete-suggestions li:hover, .form-autocomplete-suggestions li:focus, .form-autocomplete-suggestions li[aria-selected="true"] {
  background-color: #2A2A2C;
  color: #fff;
}
.form-autocomplete-suggestions li[aria-disabled="true"] {
  pointer-events: none;
  color: #6a737b;
  background-color: var(--bs-secondary-bg);
}
.form-autocomplete-suggestions li.suggestions-heading {
  pointer-events: none;
  font-weight: bold;
  color: #1d2125;
  background-color: #fff;
  padding-left: calc(1rem / 2);
}
.form-autocomplete-suggestions li::before {
  content: "​";
}
.form-autocomplete-downarrow {
  color: #1d2125;
  top: 0.2rem;
  right: 0.5rem;
  cursor: pointer;
}
.form-autocomplete-downarrow .loading-icon {
  position: absolute;
  top: 0;
  left: 0;
  background-color: #fff;
}
/** Undo some bootstrap things */
.form-autocomplete-selection + input.form-control {
  width: auto;
  display: inline-block;
  vertical-align: middle;
}
.form-autocomplete-selection [data-active-selection=true] {
  box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
}
select.form-control[size], select.form-control[multiple] {
  padding-right: 0;
}
select.form-control[size] option, select.form-control[multiple] option {
  width: fit-content;
}
/* Non-bootstrap selects with a size show their contents outside of the element.
 * Remove when we update to stable bootstrap 4. (MDL-56511) */
select[size], select[multiple] {
  overflow: auto;
}
select[size="1"] {
  overflow: visible;
}
textarea[data-auto-rows] {
  overflow-x: hidden;
  resize: none;
}
/** Display elements under labels in vertical forms regardless of the screen size. */
.mform.full-width-labels .fitem.row {
  margin-left: 0;
  margin-right: 0;
}
.mform.full-width-labels .fitem.row > .col-md-3, .mform.full-width-labels .fitem.row > .col-md-9 {
  flex: 0 0 100%;
  max-width: 100%;
  width: inherit;
  padding-right: 0;
  padding-left: 0;
}
.mform.full-width-labels .fitem.row.femptylabel > .col-md-3 {
  display: none;
}
.mform.full-width-labels .fitem.row .form-control {
  width: 100%;
}
.mform .col-form-label .form-label-addon {
  margin-left: 0.25rem;
}
@media (min-width: 576px) {
  .mform:not(.full-width-labels) .col-form-label .form-label-addon {
    margin-left: auto;
  }
}
[data-fieldtype="modgrade"] .fitem {
  padding-bottom: 0.375rem;
}
[data-fieldtype="modgrade"] {
  background-color: var(--bs-body-bg);
  border-radius: var(--bs-border-radius);
  border: var(--bs-border-width) solid var(--bs-border-color-translucent);
  padding: 1rem;
  margin-left: 0.75rem;
  max-width: 30rem;
}
[data-filetypesbrowserbody] [aria-expanded="false"] > [role="group"], [data-filetypesbrowserbody] [aria-expanded="false"] [data-filetypesbrowserfeature="hideifcollapsed"], [data-filetypesbrowserbody] [aria-expanded="true"] [data-filetypesbrowserfeature="hideifexpanded"] {
  display: none;
}
.felement[data-fieldtype="autocomplete"], .felement[data-fieldtype="tags"] {
  display: block !important;
  /* stylelint-disable-line declaration-no-important */
  position: static;
}
[data-fieldtype="editor"] > div {
  flex-grow: 1;
}
@media (min-width: 768px) {
  .mform fieldset .fcontainer.collapseable .col-form-label {
    padding-left: 2.5rem;
  }
}
.collapsemenu .collapseall {
  display: block;
}
.collapsemenu .expandall {
  display: none;
}
.collapsemenu.collapsed .collapseall {
  display: none;
}
.collapsemenu.collapsed .expandall {
  display: block;
}
.input-group.form-inset .form-inset-item {
  position: absolute;
  padding-top: calc(0.375rem + var(--bs-border-width));
  z-index: 3;
}
.input-group.form-inset.form-inset-left .form-control {
  padding-left: 1.5rem;
}
.input-group.form-inset.form-inset-right .form-control {
  padding-right: 1.5rem;
}
.input-group.form-inset.form-inset-right .form-inset-item {
  right: 0;
}
.form-check.left-indented {
  padding-left: 0;
}
.toggle-sensitive-btn .icon {
  margin-right: 0;
}
@media (min-width: 576px) {
  .toggle-sensitive-wrapper.small-screens-only.input-group:not(.has-validation) > .form-control:not(:last-child) {
    border-radius: var(--bs-border-radius);
  }
  .toggle-sensitive-wrapper.small-screens-only.input-group:not(.has-validation) > .form-control-lg:not(:last-child) {
    border-radius: var(--bs-border-radius-lg);
  }
  .toggle-sensitive-wrapper.small-screens-only.input-group:not(.has-validation) > .toggle-sensitive-btn {
    display: none;
  }
}
.pagelayout-login #region-main {
  border: 0;
  background-color: inherit;
}
.pagelayout-login #page {
  background: #f8f9fa;
  background-image: linear-gradient(to right, #f8f9fa 0%, #dee2e6 100%);
}
.pagelayout-login #page div[role="main"] {
  height: 100%;
}
.login-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.login-container {
  background-color: #fff;
  padding: 3rem;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
  margin-bottom: 2rem;
  border-radius: 0.5rem;
}
.login-container .login-languagemenu {
  display: flex;
  justify-content: flex-start;
}
.login-container .login-languagemenu .dropdown-menu {
  max-height: 300px;
  overflow-y: auto;
}
.login-container .login-logo {
  display: flex;
  justify-content: center;
  margin-bottom: 1rem;
}
.login-container .login-divider {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
  border-top: 1px solid #dee2e6;
}
.login-container h1.login-heading, .login-container .login-heading.h1 {
  font-size: 1.875rem;
}
.login-container h2.login-heading, .login-container .login-heading.h2 {
  font-size: 1.40625rem;
}
.login-container .login-identityproviders .login-identityprovider-btn {
  border: 1px solid #dee2e6;
}
.login-container .divider {
  width: 1px;
  background-color: #dee2e6;
  height: 1.875rem;
}
.login-container .action-menu-trigger a {
  margin: 0.5rem 0;
}
@media (min-width: 768px) {
  .login-container {
    width: 500px !important;
    /* stylelint-disable-line declaration-no-important */
  }
}
/* modules.less */
select {
  width: auto;
}
.path-mod .activity-header:not(:empty) {
  background-color: #f8f9fa;
  margin-bottom: 1rem;
  padding-left: 1rem;
  padding-right: 1rem;
  border-radius: 0.5rem;
}
.path-mod .activity-header:not(:empty) > div:last-child > div:last-child {
  border-bottom: 0;
}
.path-mod .activity-information .activity-dates {
  padding-top: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #dee2e6;
}
.path-mod .activity-information .completion-info {
  padding-top: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #dee2e6;
}
.path-mod .activity-description {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.path-mod .activity-description > .box.py-3 {
  padding-top: 0 !important;
  /* stylelint-disable-line declaration-no-important */
  padding-bottom: 0 !important;
  /* stylelint-disable-line declaration-no-important */
}
.path-mod .activity-description > .box.py-3:empty {
  display: none;
}
.path-mod .automatic-completion-conditions .badge {
  font-size: 80%;
  padding: 0.5rem;
  margin-top: 0.25rem;
  mix-blend-mode: multiply;
}
.path-mod .automatic-completion-conditions .badge.badge-light {
  background-color: #e9ecef !important;
  /* stylelint-disable-line declaration-no-important */
}
.path-mod .automatic-completion-conditions .badge .icon {
  width: 0.7rem;
  height: 0.7rem;
  font-size: 0.7rem;
}
.path-mod .automatic-completion-conditions .badge:first-child {
  margin-top: 0;
}
.path-mod .activity-description .no-overflow p:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
}
.path-mod-choice .horizontal .choices .option {
  display: inline-block;
}
.path-mod-choice .choices .option label {
  vertical-align: top;
}
.path-mod-forum .forumsearch input, .path-mod-forum .forumsearch .helptooltip {
  margin: 0 3px;
}
.path-mod-forum .forumheaderlist, .path-mod-forum .forumheaderlist td {
  border: none;
}
.path-mod-forum .forumheaderlist thead .header, .path-mod-forum .forumheaderlist tbody .discussion td {
  white-space: normal;
  vertical-align: top;
  padding-left: 0.5em;
  padding-right: 0.5em;
}
.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-left: 0.5em;
  padding-right: 0.5em;
}
.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 .replies, .path-mod-forum .forumheaderlist .discussion .lastpost {
  vertical-align: top;
}
.path-mod-forum .discussion-list .topic {
  font-weight: inherit;
}
.discussion-settings-container .form-select {
  width: 100%;
}
.discussion-settings-container input {
  max-width: 100%;
}
.forumpost {
  border: 1px solid #dee2e6;
  display: block;
  padding: 6px;
}
.forumpost .header {
  margin-bottom: 3px;
}
.forumpost .picture img {
  margin: 3px;
}
.forumpost .picture img.userpicture {
  margin-left: 3px;
  margin-right: 10px;
}
.forumpost .content .posting.fullpost {
  margin-top: 8px;
}
.forumpost .row {
  display: block;
}
.forumpost .row .topic, .forumpost .row .content-mask, .forumpost .row .options {
  margin-left: 48px;
}
.forumpost .row.side {
  clear: both;
}
.forumpost .row .left {
  width: 48px;
}
.forumpost .options .commands {
  margin-left: 0;
}
.forumpost .subject {
  font-weight: bold;
}
.forumsearch input[type=text] {
  margin-bottom: 0;
}
#page-mod-forum-view table .fit-content {
  width: 1px;
  white-space: nowrap;
}
#page-mod-forum-view table .limit-width {
  max-width: 200px;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
#page-mod-forum-view table .limit-width .author-info {
  max-width: calc(100% - 35px - .5rem);
}
/** Gently highlight the selected post by changing it's background to blue and then fading it out. */
@keyframes background-highlight {
  from {
    background-color: rgba(0, 123, 255, 0.5);
  }
  to {
    background-color: inherit;
  }
}
.path-mod-forum .nested-v2-display-mode, .path-mod-forum.nested-v2-display-mode {
  /** Reset the badge styling back to pill style. */
  /** Style the ratings like a badge. */
  /** Don't show the discussion locked alert in this mode because it's already indicated with a badge. */
  /** Fix muted text contrast ratios for accessibility. */
  /** Make the tag list text screen reader visible only */
}
.path-mod-forum .nested-v2-display-mode .discussionsubscription, .path-mod-forum.nested-v2-display-mode .discussionsubscription {
  margin-top: 0;
  text-align: inherit;
  margin-bottom: 0;
}
.path-mod-forum .nested-v2-display-mode .preload-subscribe, .path-mod-forum .nested-v2-display-mode .preload-unsubscribe, .path-mod-forum.nested-v2-display-mode .preload-subscribe, .path-mod-forum.nested-v2-display-mode .preload-unsubscribe {
  display: none;
}
.path-mod-forum .nested-v2-display-mode .post-message, .path-mod-forum.nested-v2-display-mode .post-message {
  line-height: 1.6;
}
.path-mod-forum .nested-v2-display-mode .indent, .path-mod-forum.nested-v2-display-mode .indent {
  margin-left: 0;
}
.path-mod-forum .nested-v2-display-mode .badge, .path-mod-forum.nested-v2-display-mode .badge {
  font-size: inherit;
  font-weight: inherit;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  border-radius: 10rem;
}
.path-mod-forum .nested-v2-display-mode .badge-light, .path-mod-forum.nested-v2-display-mode .badge-light {
  background-color: #f6f6f6;
  color: #5b5b5b;
}
.path-mod-forum .nested-v2-display-mode .rating-aggregate-container, .path-mod-forum.nested-v2-display-mode .rating-aggregate-container {
  background-color: #f6f6f6;
  color: #5b5b5b;
  padding: 0.25em 0.5em;
  line-height: 1;
  margin-right: 0.5rem;
  vertical-align: middle;
  border-radius: 10rem;
  text-align: center;
}
.path-mod-forum .nested-v2-display-mode .ratinginput, .path-mod-forum.nested-v2-display-mode .ratinginput {
  padding: 0.25em 1.75rem 0.25em 0.75em;
  line-height: 1;
  height: auto;
  border-radius: 10rem;
}
@media (max-width: 767.98px) {
  .path-mod-forum .nested-v2-display-mode .ratinginput, .path-mod-forum.nested-v2-display-mode .ratinginput {
    margin-top: 0.5rem;
  }
}
.path-mod-forum .nested-v2-display-mode .group-image, .path-mod-forum.nested-v2-display-mode .group-image {
  width: 35px;
  height: 35px;
  margin-right: 0;
  float: none;
  display: inline-block;
}
.path-mod-forum .nested-v2-display-mode .alert.discussionlocked, .path-mod-forum.nested-v2-display-mode .alert.discussionlocked {
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.path-mod-forum .nested-v2-display-mode .alert.discussionlocked:not(caption), .path-mod-forum.nested-v2-display-mode .alert.discussionlocked:not(caption) {
  position: absolute !important;
}
.path-mod-forum .nested-v2-display-mode .text-muted, .path-mod-forum .nested-v2-display-mode .dimmed_text, .path-mod-forum.nested-v2-display-mode .text-muted, .path-mod-forum.nested-v2-display-mode .dimmed_text {
  color: #707070 !important;
  /* stylelint-disable-line declaration-no-important */
}
.path-mod-forum .nested-v2-display-mode .author-header, .path-mod-forum.nested-v2-display-mode .author-header {
  font-style: italic;
}
.path-mod-forum .nested-v2-display-mode .author-header .author-name, .path-mod-forum.nested-v2-display-mode .author-header .author-name {
  font-style: normal;
}
.path-mod-forum .nested-v2-display-mode .tag_list > b, .path-mod-forum.nested-v2-display-mode .tag_list > b {
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.path-mod-forum .nested-v2-display-mode .tag_list > b:not(caption), .path-mod-forum.nested-v2-display-mode .tag_list > b:not(caption) {
  position: absolute !important;
}
.path-mod-forum .nested-v2-display-mode :target > .focus-target, .path-mod-forum.nested-v2-display-mode :target > .focus-target {
  animation-name: background-highlight;
  animation-duration: 1s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: 1;
}
.path-mod-forum .nested-v2-display-mode .forum-post-container .replies-container .forum-post-container, .path-mod-forum.nested-v2-display-mode .forum-post-container .replies-container .forum-post-container {
  border-top: 1px solid #dee2e6;
  padding-top: 1.5rem;
}
.path-mod-forum .nested-v2-display-mode .forum-post-container .replies-container .forum-post-container .replies-container .forum-post-container, .path-mod-forum.nested-v2-display-mode .forum-post-container .replies-container .forum-post-container .replies-container .forum-post-container {
  border-top: none;
  padding-top: 0;
}
.path-mod-forum .nested-v2-display-mode .forum-post-container .replies-container .inline-reply-container .reply-author, .path-mod-forum.nested-v2-display-mode .forum-post-container .replies-container .inline-reply-container .reply-author {
  display: none;
}
.path-mod-forum .nested-v2-display-mode .forum-post-container .post-message p:last-of-type, .path-mod-forum.nested-v2-display-mode .forum-post-container .post-message p:last-of-type {
  margin-bottom: 0;
}
.path-mod-forum .nested-v2-display-mode .forum-post-container .author-image-container, .path-mod-forum.nested-v2-display-mode .forum-post-container .author-image-container {
  width: 70px;
  margin-right: 24px;
  flex-shrink: 0;
}
.path-mod-forum .nested-v2-display-mode .forum-post-container .inline-reply-container textarea, .path-mod-forum.nested-v2-display-mode .forum-post-container .inline-reply-container textarea {
  border: 0;
  resize: none;
}
.path-mod-forum .nested-v2-display-mode .forum-post-container .indent, .path-mod-forum.nested-v2-display-mode .forum-post-container .indent {
  /**
             * The first post and first set of replies have a larger author image so offset the 2nd
             * set of replies by the image width + margin to ensure they align.
             */
}
.path-mod-forum .nested-v2-display-mode .forum-post-container .indent .indent, .path-mod-forum.nested-v2-display-mode .forum-post-container .indent .indent {
  padding-left: 94px;
  /**
                 * Reduce the size of the the author image for all second level replies (and below).
                 */
  /**
                 * Adjust the indentation offset for all 3rd level replies and below for the smaller author image.
                 */
}
.path-mod-forum .nested-v2-display-mode .forum-post-container .indent .indent .author-image-container, .path-mod-forum.nested-v2-display-mode .forum-post-container .indent .indent .author-image-container {
  width: 30px;
  margin-right: 8px;
  padding-top: 3px;
}
.path-mod-forum .nested-v2-display-mode .forum-post-container .indent .indent .indent, .path-mod-forum.nested-v2-display-mode .forum-post-container .indent .indent .indent {
  padding-left: 38px;
  /**
                     * Stop indenting the replies after the 5th reply.
                     */
}
.path-mod-forum .nested-v2-display-mode .forum-post-container .indent .indent .indent .indent .indent .indent, .path-mod-forum.nested-v2-display-mode .forum-post-container .indent .indent .indent .indent .indent .indent {
  padding-left: 0;
}
/** Extra small devices (portrait phones, less than 576px). */
@media (max-width: 767.98px) {
  #page-mod-forum-discuss.nested-v2-display-mode .forum-post-container .author-image-container {
    width: 30px;
    margin-right: 8px;
  }
  #page-mod-forum-discuss.nested-v2-display-mode .forum-post-container .indent .indent {
    padding-left: 38px;
  }
  #page-mod-forum-discuss.nested-v2-display-mode .forum-post-container .indent .indent .indent .indent {
    padding-left: 0;
  }
  #page-mod-forum-discuss.nested-v2-display-mode .group-image {
    width: 30px;
    height: 30px;
  }
}
.filter-scrollable {
  overflow-y: auto;
  max-height: 25em;
  margin-bottom: 1em;
}
.filter-dates-popover {
  width: 100%;
  max-width: 41.5em;
}
/* stylelint-disable-line max-line-length */
@keyframes expandSearchButton {
  from {
    height: 36px;
    width: 36px;
    border-radius: 18px;
    background-color: #e9ecef;
  }
  to {
    width: 100%;
    height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
    border-radius: 0;
    background-color: var(--bs-body-bg);
    border-color: #8f959e;
    padding-left: calc(0.5rem + 8px);
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    font-size: 1.171875rem;
    line-height: 1.5;
    right: 0;
  }
}
@keyframes collapseSearchButton {
  from {
    width: 100%;
    height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
    border-radius: 0;
    background-color: var(--bs-body-bg);
    border-color: #8f959e;
    padding-left: calc(0.5rem + 8px);
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    font-size: 1.171875rem;
    line-height: 1.5;
    right: 0;
  }
  to {
    height: 36px;
    width: 36px;
    border-radius: 18px;
    background-color: #e9ecef;
  }
}
.path-mod-forum .unified-grader .navbar {
  max-height: none;
  z-index: 1;
}
.path-mod-forum .unified-grader .body-container {
  overflow: auto;
}
.path-mod-forum .unified-grader .body-container.hidden {
  display: none !important;
  /* stylelint-disable-line declaration-no-important */
}
.path-mod-forum .unified-grader .userpicture {
  height: 60px;
  width: 60px;
}
.path-mod-forum .unified-grader .grader-grading-panel {
  top: 0;
  position: absolute;
  height: 100%;
  z-index: 0;
  width: 430px;
}
.path-mod-forum .unified-grader .grader-grading-panel.hidden {
  right: -430px;
}
.path-mod-forum .unified-grader .grader-grading-panel .grading-icon {
  width: 36px;
}
.path-mod-forum .unified-grader .grader-grading-panel .user-picker-container .user-full-name {
  max-width: 240px;
}
.path-mod-forum .unified-grader .grader-grading-panel .user-picker-container .page-link {
  width: 36px;
  height: 36px;
  display: flex;
  text-align: center;
  align-items: center;
  justify-content: center;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container {
  height: 65px;
  position: relative;
  overflow: hidden;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container .info-container {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 100%;
  height: 100%;
  padding: 0.5rem;
  padding-right: calc(36px + 0.5rem);
  opacity: 1;
  visibility: visible;
  transition: left 0.3s ease-in-out;
  z-index: 1;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container .toggle-search-button.expand {
  animation-name: expandSearchButton;
  animation-duration: 0.3s;
  animation-timing-function: ease-in-out;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container .toggle-search-button.collapse {
  display: block;
  animation-name: collapseSearchButton;
  animation-duration: 0.3s;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container .user-search-container {
  overflow: hidden;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  z-index: 2;
  width: 100%;
  height: 100% !important;
  /* stylelint-disable-line declaration-no-important */
  padding: 0.5rem;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container .user-search-container .search-input-container {
  position: relative;
  overflow: visible;
  flex-wrap: nowrap;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container .user-search-container .search-input-container input {
  padding-left: calc(0.5rem + 0.5rem + 36px - calc(var(--bs-border-width) * 2));
  padding-right: calc(0.5rem + 36px);
  opacity: 1;
  visibility: visible;
  transition: opacity 0s linear 0.3s, visibility 0s linear;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container .user-search-container .search-input-container .search-icon {
  position: absolute;
  top: 50%;
  left: 0.5rem;
  transform: translateY(-50%);
  color: var(--bs-body-color);
  height: 36px;
  width: calc(36px - calc(var(--bs-border-width) * 2));
  background-color: var(--bs-body-bg);
  opacity: 1;
  visibility: visible;
  transition: opacity 0s linear 0.3s, visibility 0s linear 0.3s;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container .user-search-container .search-input-container .toggle-search-button {
  position: absolute;
  top: 50%;
  right: 0.5rem;
  transform: translateY(-50%);
  z-index: 1;
  color: inherit;
  text-align: left;
  padding-left: 9px;
  transition: right 0s linear 0.3s;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container .user-search-container .search-input-container .toggle-search-button .expanded-icon {
  opacity: 1;
  visibility: visible;
  max-width: 50px;
  max-height: 50px;
  transition: opacity 0s linear 0.3s, max-height 0s linear 0.3s, max-width 0s linear 0.3s, visibility 0s linear 0.3s;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container .user-search-container .search-input-container .toggle-search-button .collapsed-icon {
  opacity: 0;
  visibility: hidden;
  max-height: 0;
  max-width: 0;
  overflow: hidden;
  transition: opacity 0s linear 0.3s, max-height 0s linear 0.3s, max-width 0s linear 0.3s, visibility 0s linear 0.3s;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container .user-search-container.collapsed {
  width: calc(36px + 0.5rem + 0.5rem);
  transition: width 0.3s ease-in-out;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container .user-search-container.collapsed .search-input-container {
  flex-wrap: nowrap;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container .user-search-container.collapsed .search-input-container input, .path-mod-forum .unified-grader .grader-grading-panel .header-container .user-search-container.collapsed .search-input-container .search-icon {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0s linear, visibility 0s linear;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container .user-search-container.collapsed .search-input-container input {
  padding-left: 0;
  padding-right: 0;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container .user-search-container.collapsed .search-input-container .toggle-search-button .expanded-icon {
  opacity: 0;
  visibility: hidden;
  max-height: 0;
  max-width: 0;
  overflow: hidden;
  transition: opacity 0s linear, max-height 0s linear, max-width 0s linear, visibility 0s linear;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container .user-search-container.collapsed .search-input-container .toggle-search-button .collapsed-icon {
  opacity: 1;
  visibility: visible;
  max-width: 50px;
  max-height: 50px;
  transition: opacity 0s linear, max-height 0s linear, max-width 0s linear, visibility 0s linear;
}
.path-mod-forum .unified-grader .grader-grading-panel .header-container .user-search-container:not(.collapsed) + .info-container {
  opacity: 0;
  visibility: hidden;
  left: calc(100% * -1);
  transition: left 0.3s ease-in-out, opacity 0s linear 0.3s, visibility 0s linear 0.3s, padding 0s linear 0.3s;
}
.path-mod-forum .unified-grader .grader-module-content {
  overflow-y: auto;
  margin-right: 430px;
  transition: margin-right 0.2s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .path-mod-forum .unified-grader .grader-module-content {
    transition: none;
  }
}
.path-mod-forum .unified-grader .drawer-button {
  position: relative;
}
.path-mod-forum .unified-grader .drawer-button.active::after {
  content: "";
  position: absolute;
  bottom: calc(-0.5rem - 1px);
  left: 0;
  width: 100%;
  height: 3px;
  background-color: #2A2A2C;
}
.path-mod-forum .unified-grader .drawer-button .icon {
  font-size: 20px;
  height: 20px;
  width: 20px;
}
.path-mod-forum .unified-grader .grader-module-content-display .discussion-container:last-of-type > hr {
  display: none;
}
.path-mod-forum .unified-grader .grader-module-content-display .discussion-container .posts-container:last-of-type > hr {
  display: none;
}
.path-mod-forum .unified-grader .grader-module-content-display .discussion-container .posts-container .parent-container {
  position: relative;
}
.path-mod-forum .unified-grader .grader-module-content-display .discussion-container .posts-container .parent-container .show-content-button {
  position: absolute;
  height: 100%;
  width: 100%;
  left: 0;
  top: 0;
  padding-left: calc(1rem + 45px);
  text-align: left;
  z-index: 1;
}
.path-mod-forum .unified-grader .grader-module-content-display .discussion-container .posts-container .parent-container .show-content-button:not(.collapsed) {
  display: none;
}
.path-mod-forum .unified-grader .grader-module-content-display .discussion-container .posts-container .parent-container .content {
  display: block;
  height: auto !important;
  /* stylelint-disable-line declaration-no-important */
}
.path-mod-forum .unified-grader .grader-module-content-display .discussion-container .posts-container .parent-container .content .header {
  transition: margin-bottom 0.3s ease-in-out;
}
.path-mod-forum .unified-grader .grader-module-content-display .discussion-container .posts-container .parent-container .content .header div + div {
  opacity: 1;
  visibility: visible;
  max-height: none;
  transition: opacity 0.3s linear, visibility 0s linear;
}
.path-mod-forum .unified-grader .grader-module-content-display .discussion-container .posts-container .parent-container .content .body-content-container {
  opacity: 1;
  visibility: visible;
  max-height: none;
  transition: opacity 0.3s linear, visibility 0s linear;
}
.path-mod-forum .unified-grader .grader-module-content-display .discussion-container .posts-container .parent-container .content .forum-post-core {
  opacity: 1;
  visibility: visible;
  max-height: none;
  transition: opacity 0.3s linear, visibility 0s linear;
}
.path-mod-forum .unified-grader .grader-module-content-display .discussion-container .posts-container .parent-container .show-content-button.collapsed + .content {
  opacity: 0.3;
}
.path-mod-forum .unified-grader .grader-module-content-display .discussion-container .posts-container .parent-container .show-content-button.collapsed + .content .header {
  margin-bottom: 0 !important;
  /* stylelint-disable-line declaration-no-important */
}
.path-mod-forum .unified-grader .grader-module-content-display .discussion-container .posts-container .parent-container .show-content-button.collapsed + .content .header div + div {
  opacity: 0;
  visibility: hidden;
  max-height: 0;
}
.path-mod-forum .unified-grader .grader-module-content-display .discussion-container .posts-container .parent-container .show-content-button.collapsed + .content .body-content-container {
  opacity: 0;
  visibility: hidden;
  max-height: 0;
}
.path-mod-forum .unified-grader .grader-module-content-display .discussion-container .posts-container .parent-container .show-content-button.collapsed + .content .forum-post-core {
  opacity: 0;
  visibility: hidden;
  max-height: 0;
}
.path-mod-forum .unified-grader .grader-module-content-display .discussion-container .posts-container .parent-container .show-content-button.collapsed:hover + .content, .path-mod-forum .unified-grader .grader-module-content-display .discussion-container .posts-container .parent-container .show-content-button.collapsed:focus + .content {
  opacity: 1;
}
.path-mod-forum .unified-grader .grader-module-content-display .no-post-container .icon {
  height: 250px;
  width: 250px;
  margin-right: 0;
}
.path-mod-forum .unified-grader .grader-module-content-display .nested-v2-display-mode .discussion-container .posts-container .parent-container .show-content-button {
  padding-left: 94px;
}
.path-mod-forum .unified-grader .no-search-results-container .icon {
  height: 250px;
  width: 250px;
  margin-right: 0;
}
.path-mod-forum .unified-grader .nested-v2-display-mode .view-context-button {
  margin-left: 94px;
  border-radius: 0.6rem;
}
.path-mod-forum .unified-grader .nested-v2-display-mode .parent-container .author-image-container {
  position: relative;
}
.path-mod-forum .unified-grader .nested-v2-display-mode .parent-container .author-image-container:after {
  position: absolute;
  top: calc(70px + 0.5rem);
  content: "";
  background-color: #e9ecef;
  width: 2px;
  height: calc(100% - 70px + 0.5rem);
}
.path-mod-forum .unified-grader .nested-v2-display-mode .parent-container + .post-container .author-image-container img {
  width: 30px !important;
  /* stylelint-disable-line declaration-no-important */
}
.path-mod-forum .unified-grader .nested-v2-display-mode .post-subject, .path-mod-forum .modal .nested-v2-display-mode .post-subject {
  display: none;
}
@media (max-width: 575.98px) {
  .path-mod-forum .unified-grader .grader-grading-panel {
    width: 100%;
    position: fixed;
    height: calc(100vh - 50px);
    overflow: scroll;
    top: 50px;
  }
  .path-mod-forum .unified-grader .body-container {
    overflow: visible;
  }
}
.maincalendar .calendarmonth td, .maincalendar .calendarmonth th {
  border: 1px dotted var(--bs-border-color);
}
.path-grade-report-grader h1, .path-grade-report-grader .h1 {
  text-align: inherit;
}
#page-mod-data-view #singleimage {
  width: auto;
}
.template_heading {
  margin-top: 10px;
}
.breadcrumb-button {
  margin-top: 4px;
}
.breadcrumb-button .singlebutton {
  float: left;
  margin-left: 4px;
}
.langmenu form {
  margin: 0;
}
canvas {
  -ms-touch-action: auto;
}
div#dock {
  display: none;
}
/** General styles (scope: all of lesson) **/
.path-mod-lesson .invisiblefieldset.fieldsetfix {
  display: block;
}
.path-mod-lesson .answeroption .checkbox label p {
  display: inline;
}
.path-mod-lesson .slideshow {
  overflow: auto;
  padding: 15px;
}
#page-mod-lesson-view .branchbuttoncontainer .singlebutton button[type="submit"] {
  white-space: normal;
}
#page-mod-lesson-view .vertical .singlebutton {
  display: block;
}
#page-mod-lesson-view .vertical .singlebutton + .singlebutton {
  margin-left: 0;
  margin-top: 1rem;
}
#page-mod-lesson-view .fitem .felement .form-select {
  align-self: flex-start;
}
.path-mod-lesson .generaltable td {
  vertical-align: middle;
}
.path-mod-lesson .generaltable td label {
  margin-bottom: 0;
}
.path-mod-lesson .generaltable td .highlight {
  display: inline-block;
  margin-left: 0.25rem;
}
.path-mod-lesson .generaltable td input[type="checkbox"] {
  display: block;
}
.path-mod-wiki .wiki_headingtitle, .path-mod-wiki .midpad, .path-mod-wiki .wiki_headingtime {
  text-align: inherit;
}
.path-mod-wiki .wiki_contentbox {
  width: 100%;
}
.nav .caret {
  margin-left: 4px;
}
.nav .divider {
  overflow: hidden;
  width: 0;
}
.userloggedinas .usermenu .usertext, .userswitchedrole .usermenu .usertext, .loginfailures .usermenu .usertext {
  float: left;
  text-align: right;
  margin-right: 0.5rem;
  height: 35px;
}
.userloggedinas .usermenu .usertext .meta, .userswitchedrole .usermenu .usertext .meta, .loginfailures .usermenu .usertext .meta {
  font-size: 0.8203125rem;
  align-items: center;
}
.userloggedinas .usermenu .avatar img, .userswitchedrole .usermenu .avatar img, .loginfailures .usermenu .avatar img {
  margin: 0;
}
.userloggedinas .usermenu .userbutton .avatars {
  position: relative;
  display: inline-block;
}
.userloggedinas .usermenu .userbutton .avatars .avatar.current {
  display: inline-block;
  position: absolute;
  bottom: 0;
  right: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
}
.userloggedinas .usermenu .userbutton .avatars .avatar.current img {
  vertical-align: baseline;
}
.userloggedinas .usermenu .userbutton .avatars .avatar.current .userinitials.size-35 {
  width: 20px;
  height: 20px;
  border: 1px solid #dee2e6;
  background-color: #fff;
  font-size: 0.5625rem;
}
.userloggedinas .usermenu .userbutton .avatars .avatar img {
  width: inherit;
  height: inherit;
}
.userloggedinas .usermenu .userbutton .avatars .realuser {
  width: 35px;
  height: 35px;
  display: inline-block;
}
.userinitials {
  background-color: #e9ecef;
  vertical-align: middle;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #343a40;
  font-weight: normal;
  margin-right: 0.25rem;
}
.userinitials.size-16, .userinitials.size-30 {
  font-size: 0.7rem;
  width: 30px;
  height: 30px;
}
.userinitials.size-35 {
  width: 35px;
  height: 35px;
}
.userinitials.size-50 {
  width: 50px;
  height: 50px;
}
.userinitials.size-64 {
  width: 64px;
  height: 64px;
}
.userinitials.size-100 {
  width: 100px;
  height: 100px;
  font-size: 1.875rem;
}
img.userpicture {
  margin-right: 0.25rem;
}
@media (max-width: 767.98px) {
  .usertext {
    display: none;
  }
}
#page-mod-quiz-mod #id_reviewoptionshdr .col-md-3, #page-mod-quiz-mod #id_reviewoptionshdr .col-md-9 {
  width: auto;
  max-width: none;
}
#page-mod-quiz-mod #id_reviewoptionshdr .fcontainer > .fitem {
  float: left;
  width: 20rem;
  display: inline-block;
  min-height: 12rem;
}
#page-mod-quiz-mod #id_reviewoptionshdr .btn-link {
  line-height: 1.5;
  vertical-align: bottom;
}
#page-mod-quiz-mod #id_reviewoptionshdr .form-check {
  width: auto;
  height: 22px;
  justify-content: flex-start;
}
#page-mod-quiz-mod #id_reviewoptionshdr .review_option_item {
  width: 90%;
  height: 22px;
}
.path-mod-quiz #mod_quiz_navblock .qnbutton {
  text-decoration: none;
  font-size: 14px;
  line-height: 20px;
  font-weight: normal;
  background-color: var(--bs-body-bg);
  background-image: none;
  height: 40px;
  width: 30px;
  border-radius: 3px;
  border: 0;
  overflow: hidden;
  white-space: nowrap;
  margin: 0 6px 6px 0;
}
.path-mod-quiz #mod_quiz_navblock span.qnbutton {
  cursor: default;
  background-color: var(--bs-secondary-bg);
  color: #495057;
}
.path-mod-quiz #mod_quiz_navblock a.qnbutton:hover, .path-mod-quiz #mod_quiz_navblock a.qnbutton:active, .path-mod-quiz #mod_quiz_navblock a.qnbutton:focus {
  text-decoration: underline;
}
.path-mod-quiz #mod_quiz_navblock .qnbutton .thispageholder {
  border: 1px solid;
  border-radius: 3px;
  z-index: 1;
}
.path-mod-quiz #mod_quiz_navblock .qnbutton.thispage .thispageholder {
  border-width: 3px;
}
.path-mod-quiz #mod_quiz_navblock .allquestionsononepage .qnbutton.thispage .thispageholder {
  border-width: 1px;
}
.path-mod-quiz #mod_quiz_navblock .qnbutton .trafficlight {
  border: 0;
  background: var(--bs-body-bg) none center / 10px no-repeat scroll;
  height: 20px;
  margin-top: 20px;
  border-radius: 0 0 3px 3px;
}
.path-mod-quiz #mod_quiz_navblock .qnbutton.correct .thispageholder {
  border-color: #306e2d;
}
.path-mod-quiz #mod_quiz_navblock .qnbutton.incorrect .thispageholder {
  border-color: #b62c1d;
}
.path-mod-quiz #mod_quiz_navblock .qnbutton.partiallycorrect .thispageholder {
  border-color: #90682f;
}
.path-mod-quiz #mod_quiz_navblock .qnbutton.correct, .path-mod-quiz #mod_quiz_navblock .qnbutton.correct .trafficlight {
  background-color: #dff4d8;
  /* light green */
}
.path-mod-quiz #mod_quiz_navblock .qnbutton.incorrect, .path-mod-quiz #mod_quiz_navblock .qnbutton.incorrect .trafficlight {
  background-color: #fdd;
  /* light red */
}
.path-mod-quiz #mod_quiz_navblock .qnbutton.partiallycorrect, .path-mod-quiz #mod_quiz_navblock .qnbutton.partiallycorrect .trafficlight {
  background-color: #fcefdc;
  /* light yellow */
}
.path-mod-quiz #mod_quiz_navblock .qnbutton.blocked, .path-mod-quiz #mod_quiz_navblock .qnbutton.blocked .trafficlight, .path-mod-quiz #mod_quiz_navblock .qnbutton.complete, .path-mod-quiz #mod_quiz_navblock .qnbutton.complete .trafficlight, .path-mod-quiz #mod_quiz_navblock .qnbutton.answersaved, .path-mod-quiz #mod_quiz_navblock .qnbutton.answersaved .trafficlight, .path-mod-quiz #mod_quiz_navblock .qnbutton.requiresgrading, .path-mod-quiz #mod_quiz_navblock .qnbutton.requiresgrading .trafficlight {
  background-color: #dee2e6;
}
.path-mod-quiz #mod_quiz_navblock .qnbutton.notyetanswered .trafficlight, .path-mod-quiz #mod_quiz_navblock .qnbutton.invalidanswer .trafficlight {
  background-color: var(--bs-body-bg);
}
.path-mod-quiz #mod_quiz_navblock .qnbutton.correct .trafficlight {
  background-image: url(/theme/image.php/academi/core/1790824836/i/grade_correct);
  color: #357a32;
  background-size: 14px;
}
.path-mod-quiz #mod_quiz_navblock .qnbutton.blocked .trafficlight {
  background-image: url(/theme/image.php/academi/core/1790824836/t/locked);
}
.path-mod-quiz #mod_quiz_navblock .qnbutton.notanswered .trafficlight, .path-mod-quiz #mod_quiz_navblock .qnbutton.incorrect .trafficlight {
  background-image: url(/theme/image.php/academi/core/1790824836/i/grade_incorrect);
  color: #ca3120;
  background-size: 14px;
}
.path-mod-quiz #mod_quiz_navblock .qnbutton.partiallycorrect .trafficlight {
  background-image: url(/theme/image.php/academi/core/1790824836/i/grade_partiallycorrect);
  color: #f0ad4e;
  background-size: 14px;
}
.path-mod-quiz #mod_quiz_navblock .qnbutton.complete .trafficlight, .path-mod-quiz #mod_quiz_navblock .qnbutton.answersaved .trafficlight, .path-mod-quiz #mod_quiz_navblock .qnbutton.requiresgrading .trafficlight {
  background-color: #dee2e6;
}
#page-mod-quiz-edit ul.slots li.section li.activity .instancemaxmarkcontainer form input {
  height: 1.4em;
  vertical-align: middle;
}
#page-mod-quiz-edit ul.slots li.section li.activity .instancemaxmarkcontainer {
  padding: 0.5em 0 0.5em 0.1em;
  margin: 2px;
}
/* Override the color of the quiz attempt icons for accessibility. */
#attemptsform .icon.text-success, .formulation .answer .icon.text-success {
  color: #306e2d !important;
  /* stylelint-disable-line declaration-no-important */
}
#attemptsform .icon.text-danger, .formulation .answer .icon.text-danger {
  color: #b62c1d !important;
  /* stylelint-disable-line declaration-no-important */
}
#attemptsform .icon.text-warning, .formulation .answer .icon.text-warning {
  color: #90682f !important;
  /* stylelint-disable-line declaration-no-important */
}
/* Countdown timer. */
#page-mod-quiz-attempt #region-main {
  overflow-x: inherit;
}
#quiz-timer-wrapper {
  display: none;
  position: sticky;
  justify-content: end;
  top: 65px;
  z-index: 1020;
}
#quiz-timer-wrapper #quiz-timer {
  border: 1px solid #ca3120;
  background-color: #fff;
}
.pagelayout-embedded #quiz-timer-wrapper {
  top: 5px;
}
#quiz-timer-wrapper #quiz-timer.timeleft0 {
  background-color: #ca3120;
  color: #fff;
}
#quiz-timer-wrapper #quiz-timer.timeleft1 {
  background-color: #d73422;
  color: #fff;
}
#quiz-timer-wrapper #quiz-timer.timeleft2 {
  background-color: #dd3d2b;
  color: #000;
}
#quiz-timer-wrapper #quiz-timer.timeleft3 {
  background-color: #e04938;
  color: #000;
}
#quiz-timer-wrapper #quiz-timer.timeleft4 {
  background-color: #e25546;
  color: #000;
}
#quiz-timer-wrapper #quiz-timer.timeleft5 {
  background-color: #e46153;
  color: #000;
}
#quiz-timer-wrapper #quiz-timer.timeleft6 {
  background-color: #e66d60;
  color: #000;
}
#quiz-timer-wrapper #quiz-timer.timeleft7 {
  background-color: #e8796d;
  color: #000;
}
#quiz-timer-wrapper #quiz-timer.timeleft8 {
  background-color: #ea867a;
  color: #000;
}
#quiz-timer-wrapper #quiz-timer.timeleft9 {
  background-color: #ec9288;
  color: #000;
}
#quiz-timer-wrapper #quiz-timer.timeleft10 {
  background-color: #ee9e95;
  color: #000;
}
#quiz-timer-wrapper #quiz-timer.timeleft11 {
  background-color: #f0aaa2;
  color: #000;
}
#quiz-timer-wrapper #quiz-timer.timeleft12 {
  background-color: #f2b6af;
  color: #000;
}
#quiz-timer-wrapper #quiz-timer.timeleft13 {
  background-color: #f4c2bc;
  color: #000;
}
#quiz-timer-wrapper #quiz-timer.timeleft14 {
  background-color: #f7ceca;
  color: #000;
}
#quiz-timer-wrapper #quiz-timer.timeleft15 {
  background-color: #f9dad7;
  color: #000;
}
#quiz-timer-wrapper #quiz-timer.timeleft16 {
  background-color: #fbe6e4;
  color: #000;
}
.path-mod-assign [data-region="grade-actions-panel"] [data-region="grade-actions"] .collapse-buttons {
  top: auto;
}
.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fcontainer .fitem.popout .felement {
  height: calc(100% - 4rem);
}
.path-mod-assign [data-region="grade-panel"] {
  padding-top: 1rem;
}
.path-mod-assign [data-region="grade-panel"] .fitem > .col-md-3, .path-mod-assign [data-region="grade-panel"] .fitem > .col-md-9 {
  width: 100%;
  padding: 0;
  max-width: 100%;
  flex: none;
}
.path-mod-assign [data-region="grade-panel"] fieldset, .path-mod-assign [data-region="grade-panel"] .fitem.row {
  margin: 0;
}
.path-mod-assign [data-region="grade-panel"] .mform .fitem.has-popout .felement {
  width: 100%;
  overflow: auto;
  height: calc(100% - 4rem);
}
.path-mod-assign [data-region="grade-panel"] .mform .fitem .felement {
  width: auto;
}
.path-mod-assign [data-region="grade-panel"] .popout {
  background-color: var(--bs-body-bg);
}
.path-mod-assign [data-region="grade-panel"] .fitem.has-popout {
  background-color: var(--bs-body-bg);
  border-radius: var(--bs-border-radius);
  border: var(--bs-border-width) solid var(--bs-border-color-translucent);
  padding: 1rem;
  margin-bottom: 1rem;
}
.path-mod-assign [data-region="grade-panel"] .has-popout .col-md-3 {
  border-bottom: var(--bs-border-width) solid;
  margin-bottom: 1rem;
}
.path-mod-assign [data-region="grade-panel"] .popout > .col-md-3 {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  font-size: 1.40625rem;
}
.path-mod-assign [data-region="grade-panel"] .popout [data-region="popout-button"] {
  margin-top: 0;
}
.path-mod-assign [data-region="assignment-info"] {
  overflow-y: hidden;
}
.path-mod-assign [data-region="grading-navigation"] {
  padding: 6px;
}
.path-mod-assign [data-region="grade-actions"] {
  padding: 10px;
}
.path-mod-assign [data-region="user-info"] .img-rounded {
  margin-top: 0;
}
.path-mod-assign [data-region="grading-navigation-panel"] {
  height: 85px;
}
@media (max-width: 767px) {
  .path-mod-assign [data-region="grading-navigation-panel"] {
    height: auto;
  }
  .path-mod-assign [data-region="user-info"] {
    margin-top: 1rem;
  }
}
.path-mod-assign [data-region="grading-navigation"] [data-region="input-field"] input {
  width: auto;
  display: inline-block;
}
/**
 * Assign feedback.
 */
.assignfeedback_editpdf_widget * {
  box-sizing: content-box;
}
.assignfeedback_editpdf_widget button {
  box-sizing: border-box;
}
.assignfeedback_editpdf_widget .commentcolourbutton img {
  border-width: 0;
}
.assignfeedback_editpdf_widget .label {
  position: relative;
  padding: 1rem 1rem;
  margin-bottom: 1rem;
  border: 0 solid transparent;
  color: #004d5a;
  border-color: #b3d9e0;
  border-radius: var(--bs-border-radius);
  background-color: #cce6ea;
}
.assignfeedback_editpdf_menu {
  padding: 0;
}
.path-mod-assign [data-region="grade-panel"] .gradingform_guide .remark .commentchooser {
  float: none;
}
.path-mod-assign [data-region="grade-panel"] .gradingform_guide .markingguideremark {
  width: 100%;
}
.path-mod-assign [data-region="grade-panel"] .mform .fitem .felement[data-fieldtype="grading"] {
  padding-left: 1rem;
  padding-right: 1rem;
}
.path-mod-assign [data-region="grade-panel"] .showmarkerdesc, .path-mod-assign [data-region="grade-panel"] .showstudentdesc {
  background-color: var(--bs-body-bg);
}
.path-mod-assign .gradingtable thead tr {
  position: sticky;
  top: 60px;
  z-index: 1;
}
/**
 * Mod LTI.
 */
.path-admin-mod-lti .btn .loader img, .path-admin-mod-lti #tool-list-loader-container .loader img {
  height: auto;
}
/**
 * Mod Feedback.
 */
.path-mod-feedback span.feedback_info {
  font-weight: bold;
}
.path-mod-feedback div.feedback_is_dependent {
  background: #6a737b;
}
.path-mod-feedback span.feedback_depend {
  color: #ca3120;
}
.path-mod-feedback hr.feedback_pagebreak {
  height: 4px;
  color: #6a737b;
  background-color: #6a737b;
  border: 0;
  margin: 0;
}
.path-mod-feedback .feedback_bar_image {
  height: 10px;
}
.path-mod-feedback #analysis-form label {
  display: inline;
}
.path-mod-feedback .templateslist td.cell.action {
  width: 10%;
}
.path-mod-feedback .templateslist th.header.action {
  width: 10%;
}
.path-mod-feedback .feedback-item-label {
  width: 100%;
}
.path-mod-feedback #feedback_edit_form [id*=_feedback_item_].feedback_itemlist, .path-mod-feedback #feedback_edit_form .feedback_itemlist.sortable-list-is-dragged {
  padding: 1rem;
  border: 1px solid #dee2e6;
  background-color: #fff;
  position: relative;
  border-radius: 0.5rem;
}
.path-mod-feedback #feedback_edit_form [id*=_feedback_item_].feedback_itemlist .itemname, .path-mod-feedback #feedback_edit_form .feedback_itemlist.sortable-list-is-dragged .itemname {
  margin-right: 2rem;
}
.path-mod-feedback #feedback_edit_form [id*=_feedback_item_].feedback_itemlist .itemactions, .path-mod-feedback #feedback_edit_form .feedback_itemlist.sortable-list-is-dragged .itemactions {
  position: absolute;
  top: 1rem;
  right: 1rem;
}
.path-mod-feedback #feedback_edit_form [id*=_feedback_item_].feedback_itemlist.sortable-list-current-position, .path-mod-feedback #feedback_edit_form .feedback_itemlist.sortable-list-is-dragged.sortable-list-current-position {
  background-color: #f8f9fa;
}
.path-mod-feedback #feedback_edit_form .sortable-list-is-dragged {
  opacity: 0.75;
  max-width: 830px;
}
.path-mod-feedback #feedback_edit_form .loading-icon {
  position: absolute;
  left: 50%;
  top: calc(50% - .5rem);
}
.path-mod-feedback#page-mod-feedback-manage_templates .coursetemplates .no-overflow, .path-mod-feedback#page-mod-feedback-manage_templates .publictemplates .no-overflow {
  overflow: visible;
}
.path-mod-feedback#page-mod-feedback-manage_templates .coursetemplates .action-menu .menubar, .path-mod-feedback#page-mod-feedback-manage_templates .publictemplates .action-menu .menubar {
  justify-content: end;
}
.path-mod-feedback table.analysis {
  width: 100%;
  border-top: 1px solid #dee2e6;
  margin-top: 10px;
}
.path-mod-feedback table.analysis.itemtype_textarea td {
  padding: 4px 0;
}
.path-mod-feedback table.analysis tr:first-child th {
  padding-top: 10px;
}
.path-mod-feedback table.analysis tr:hover {
  background: #dee2e6;
}
.path-mod-feedback table.analysis td.singlevalue:before, .path-mod-feedback table.analysis td.optionname:before {
  content: "- ";
}
.path-mod-feedback table.analysis tr.isempty {
  display: none;
}
.path-mod-feedback #showentrytable td.cell.completed_timemodified, .path-mod-feedback #showentryanontable td.cell.random_response {
  font-weight: bold;
}
.path-mod-feedback #showentrytable td.cell.userpic, .path-mod-feedback #showentrytable td.cell.deleteentry, .path-mod-feedback #showentryanontable td.cell.deleteentry {
  width: 10px;
}
.path-mod-feedback .response_navigation {
  margin: 0.5rem 0;
}
.path-mod-feedback .response_navigation a {
  display: block;
}
.path-mod-feedback .response_navigation a.back_to_list {
  text-align: center;
}
.path-mod-feedback .response_navigation .prev_response {
  text-align: left;
}
.path-mod-feedback .response_navigation .prev_response:before {
  /*rtl:raw:
                content: ' ► ';
                */
  /*rtl:remove*/
  content: " ◄ ";
}
.path-mod-feedback .response_navigation .next_response {
  text-align: right;
}
.path-mod-feedback .response_navigation .next_response:after {
  /*rtl:raw:
                content: ' ◄ ';
                */
  /*rtl:remove*/
  content: " ► ";
}
/* reports.less */
#page-report-participation-index .participationselectform div label {
  display: inline-block;
  margin: 0 5px;
}
#page-report-participation-index .participationselectform div label[for=menuinstanceid] {
  margin-left: 0;
}
#page-report-outline-index .font-lg {
  font-size: 1.03125rem;
}
#page-report-outline-index .generaltable tbody tr {
  background-color: #fff;
}
#page-report-outline-index .generaltable tbody tr.section {
  padding-left: 2rem;
}
#page-report-outline-index .generaltable tbody tr.section h3, #page-report-outline-index .generaltable tbody tr.section .h3 {
  font-size: 1.171875rem;
}
#page-report-outline-index .generaltable tbody tr.section h4, #page-report-outline-index .generaltable tbody tr.section .h4 {
  font-size: 1.03125rem;
}
#page-report-outline-index .generaltable tbody td.delegated {
  padding-left: 3.5rem;
}
#page-report-outline-user .section {
  border: 1px solid #dee2e6;
  border-radius: 1rem;
}
#page-report-outline-user .font-lg {
  font-size: 1.03125rem;
}
#page-report-log-index #menumodid option:disabled {
  color: #1f2428;
  font-weight: bolder;
}
.path-backup .mform {
  /* These are long labels with checkboxes on the right. */
}
.path-backup .mform .grouped_settings {
  clear: both;
  overflow: hidden;
  /* Use card styles but avoid extend because that brings in too much. */
}
.path-backup .mform .grouped_settings.section_level {
  background-color: var(--bs-body-bg);
  border-radius: var(--bs-border-radius);
  border: var(--bs-border-width) solid var(--bs-border-color-translucent);
  padding: 1rem;
  margin-bottom: 1rem;
}
.path-backup .mform .grouped_settings.section_level::after {
  display: block;
  clear: both;
  content: "";
}
.path-backup .mform .grouped_settings.subsection_level {
  background-color: var(--bs-body-bg);
  border-radius: var(--bs-border-radius);
  border: var(--bs-border-width) solid var(--bs-border-color-translucent);
  padding: 1rem;
  margin: 0 1rem 1rem 1rem;
}
.path-backup .mform .grouped_settings.subsection_level::after {
  display: block;
  clear: both;
  content: "";
}
.path-backup .mform .include_setting {
  width: 50%;
  display: inline-block;
  float: left;
  padding: 0.3rem;
}
.path-backup .mform .normal_setting {
  width: 50%;
  display: inline-block;
  float: left;
  padding: 0.3rem;
}
.path-backup {
  /* Bold section labels */
}
.path-backup .section_level {
  font-weight: bold;
}
.path-backup .section_level .activity_level {
  font-weight: normal;
}
.path-backup .proceedbutton {
  margin-left: auto;
}
/* Override the columns width to leave more room for the labels. */
.path-backup .mform fieldset {
  padding: 1rem 0;
}
.path-backup .mform .grouped_settings.activity_level {
  /* Striped rows like a table */
}
.path-backup .mform .grouped_settings.activity_level:nth-of-type(odd) {
  background-color: rgba(var(--bs-emphasis-color-rgb), 0.05);
}
.path-backup .mform .grouped_settings.activity_level:nth-of-type(even) {
  background-color: rgba(0, 0, 0, 0.03);
}
.path-backup .mform .fcontainer .grouped_settings .fitem, .path-backup .mform .fcontainer .root_setting .fitem {
  margin: 0.25rem 0 !important;
  /* stylelint-disable declaration-no-important */
  /* These checkboxes with no label on the left. */
}
.path-backup .mform .fcontainer .grouped_settings .fitem .col-form-label, .path-backup .mform .fcontainer .root_setting .fitem .col-form-label {
  padding-top: 0;
}
.path-backup .mform .fcontainer .grouped_settings .fitem .col-md-3.checkbox, .path-backup .mform .fcontainer .root_setting .fitem .col-md-3.checkbox {
  width: 0%;
}
.path-backup .mform .fcontainer .grouped_settings .fitem .col-md-9.checkbox, .path-backup .mform .fcontainer .root_setting .fitem .col-md-9.checkbox {
  width: 100%;
  left: 0;
}
/* Detail pair is (usually) some short label with a longer value */
.path-backup .detail-pair .detail-pair-label {
  width: 25%;
  float: left;
  clear: left;
}
.path-backup .detail-pair .detail-pair-value {
  width: 75%;
  float: left;
}
.path-backup .backup-restore .singlebutton {
  float: right;
}
/* Make these bits full width and work with the detail-pair */
.path-backup .backup-section {
  /* Fix for nested table headers */
  /* Add card styles to backup sections */
  background-color: var(--bs-body-bg);
  border-radius: var(--bs-border-radius);
  border: var(--bs-border-width) solid var(--bs-border-color-translucent);
  padding: 1rem;
  margin-bottom: 1rem;
}
.path-backup .backup-section .sub-header, .path-backup .backup-section .backup-sub-section, .path-backup .backup-section .singlebutton, .path-backup .backup-section .header {
  width: 100%;
  float: left;
  clear: both;
}
.path-backup .backup-section th.header {
  width: auto;
  float: none;
}
.path-backup .backup-section ::after {
  content: "";
  display: table;
  clear: both;
}
.path-backup .backup-section::after {
  display: block;
  clear: both;
  content: "";
}
.path-backup .notification.dependencies_enforced {
  color: #ca3120;
  font-weight: bold;
}
.path-backup .backup_progress {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
.path-backup .backup_progress .backup_stage {
  color: var(--bs-secondary-color);
}
.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: #f4d6d2;
}
#page-backup-restore .filealiasesfailures .aliaseslist {
  background-color: #fff;
}
.path-backup .wibbler {
  width: 500px;
  margin: 0 auto 10px;
  border-bottom: 1px solid #000;
  border-right: 1px solid #000;
  border-left: 1px solid #000;
  position: relative;
  min-height: 4px;
}
.path-backup .wibbler .wibble {
  position: absolute;
  left: 0;
  right: 0;
  top: 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;
}
.generaltable {
  width: 100%;
  margin-bottom: 1rem;
  color: var(--bs-emphasis-color);
  background-color: var(--bs-body-bg);
}
.generaltable th, .generaltable td {
  padding: 0.75rem;
  vertical-align: top;
  border-top: var(--bs-border-width) solid var(--bs-border-color);
}
.generaltable thead th, .generaltable thead td {
  vertical-align: bottom;
  border-bottom: calc(2 * var(--bs-border-width)) solid var(--bs-border-color);
}
.generaltable tbody + tbody {
  border-top: calc(2 * var(--bs-border-width)) solid var(--bs-border-color);
}
.generaltable.table-sm th, .generaltable.table-sm td {
  padding: 0.3rem;
}
.generaltable tbody tr:hover.dimmed_text a:not(.menu-action) {
  color: var(--bs-emphasis-color);
}
.generaltable tbody tr:hover td.sticky-column {
  background-color: rgba(var(--bs-emphasis-color-rgb), 0.075);
}
.generaltable tbody td, .generaltable tbody th {
  color: inherit;
  background-color: inherit;
}
table caption {
  font-size: 24px;
  font-weight: bold;
  line-height: 42px;
  text-align: left;
  caption-side: top;
}
table .sticky-column {
  position: sticky;
  left: 0;
  background-color: inherit;
}
.table-dynamic > .loading-icon {
  position: absolute;
  left: calc(50% - 1.5rem);
  top: 200px;
}
.table-dynamic > .loading-icon .icon {
  max-height: 3rem;
  max-width: 3rem;
  font-size: 3rem;
}
.table-responsive .dropdown {
  position: static !important;
  /* stylelint-disable-line declaration-no-important */
}
.table-responsive .table {
  margin-bottom: 0;
}
.table-responsive .table .visually-hidden, .table-responsive .table .accesshide {
  position: relative !important;
  /* stylelint-disable-line declaration-no-important */
  display: block;
}
/**
 * File buttons.scss.
 * Contains styles for buttons.
 */
.singlebutton {
  display: inline-block;
}
.singlebutton + .singlebutton {
  margin-left: 0.5rem;
}
.continuebutton {
  text-align: center;
}
p.arrow_button {
  margin-top: 5em;
  text-align: center;
}
#addcontrols {
  margin-top: 11.25rem;
  text-align: center;
  margin-bottom: 3em;
}
#addcontrols label {
  display: inline;
}
#addcontrols input, #removecontrols input {
  width: 100%;
  margin: auto;
}
.btn-lineup {
  margin: 0 0 10px 5px;
}
/* Small buttons should have the same border-radius as the normal buttons. */
.btn-sm, .btn-group-sm > .btn {
  --bs-btn-border-radius: var(--bs-border-radius);
}
/**
 * Focus styles to improve Bootstrap default contrast.
 */
.btn:focus-visible, .btn.focus {
  outline: 0.25rem solid #3c2e12;
  box-shadow: inset 0 0 0 2px #fff;
}
.btn-primary:focus-visible, .btn-primary.focus {
  outline: 0.25rem solid black;
  box-shadow: inset 0 0 0 2px #fff;
}
.btn-secondary:focus-visible, .btn-secondary.focus {
  outline: 0.25rem solid #3c2e12;
  box-shadow: inset 0 0 0 2px #fff;
}
.btn-success:focus-visible, .btn-success.focus {
  outline: 0.25rem solid black;
  box-shadow: inset 0 0 0 2px #fff;
}
.btn-info:focus-visible, .btn-info.focus {
  outline: 0.25rem solid black;
  box-shadow: inset 0 0 0 2px #fff;
}
.btn-warning:focus-visible, .btn-warning.focus {
  outline: 0.25rem solid #694109;
  box-shadow: inset 0 0 0 2px #fff;
}
.btn-danger:focus-visible, .btn-danger.focus {
  outline: 0.25rem solid #1a0604;
  box-shadow: inset 0 0 0 2px #fff;
}
.btn-outline-primary:focus-visible, .btn-outline-primary.focus {
  outline: 0.25rem solid black;
  box-shadow: inset 0 0 0 2px #343a40;
}
.btn-outline-secondary:focus-visible, .btn-outline-secondary.focus {
  outline: 0.25rem solid #3c2e12;
  box-shadow: inset 0 0 0 2px #343a40;
}
.btn-outline-success:focus-visible, .btn-outline-success.focus {
  outline: 0.25rem solid black;
  box-shadow: inset 0 0 0 2px #343a40;
}
.btn-outline-info:focus-visible, .btn-outline-info.focus {
  outline: 0.25rem solid black;
  box-shadow: inset 0 0 0 2px #343a40;
}
.btn-outline-warning:focus-visible, .btn-outline-warning.focus {
  outline: 0.25rem solid #694109;
  box-shadow: inset 0 0 0 2px #343a40;
}
.btn-outline-danger:focus-visible, .btn-outline-danger.focus {
  outline: 0.25rem solid #1a0604;
  box-shadow: inset 0 0 0 2px #343a40;
}
/**
 * Icon buttons.
 */
.btn-icon {
  --bs-btn-hover-bg: var(--bs-secondary-bg);
  --bs-btn-border-radius: var(--bs-border-radius);
  --bs-btn-padding-x: 0;
  --bs-btn-padding-y: 0;
  --bs-btn-font-size: 16px;
  height: calc(16px + 1rem);
  width: calc(16px + 1rem);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.btn-icon:focus-visible, .btn-icon.focus {
  outline: 0.25rem solid #3c2e12;
  box-shadow: inset 0 0 0 2px #fff;
}
.btn-icon .icon {
  margin: 0;
}
.btn-icon.icon-size-0 {
  height: calc(0 + 1rem);
  width: calc(0 + 1rem);
  --bs-btn-font-size: 0;
  --bs-btn-line-height: 0;
}
.btn-icon.icon-size-1 {
  height: calc(4px + 1rem);
  width: calc(4px + 1rem);
  --bs-btn-font-size: 4px;
  --bs-btn-line-height: 4px;
}
.btn-icon.icon-size-2 {
  height: calc(8px + 1rem);
  width: calc(8px + 1rem);
  --bs-btn-font-size: 8px;
  --bs-btn-line-height: 8px;
}
.btn-icon.icon-size-3 {
  height: calc(16px + 1rem);
  width: calc(16px + 1rem);
  --bs-btn-font-size: 16px;
  --bs-btn-line-height: 16px;
}
.btn-icon.icon-size-4 {
  height: calc(24px + 1rem);
  width: calc(24px + 1rem);
  --bs-btn-font-size: 24px;
  --bs-btn-line-height: 24px;
}
.btn-icon.icon-size-5 {
  height: calc(32px + 1rem);
  width: calc(32px + 1rem);
  --bs-btn-font-size: 32px;
  --bs-btn-line-height: 32px;
}
.btn-icon.icon-size-6 {
  height: calc(40px + 1rem);
  width: calc(40px + 1rem);
  --bs-btn-font-size: 40px;
  --bs-btn-line-height: 40px;
}
.btn-icon.icon-size-7 {
  height: calc(48px + 1rem);
  width: calc(48px + 1rem);
  --bs-btn-font-size: 48px;
  --bs-btn-line-height: 48px;
}
/* Specific styles for the collapse/expand buttons. */
.btn-icon.icons-collapse-expand {
  color: #2A2A2C;
  background-color: #eaeaea;
}
.btn-icon.icons-collapse-expand:hover {
  outline: 2px solid #2A2A2C;
}
.btn-icon.icons-collapse-expand:focus-visible, .btn-icon.icons-collapse-expand.focus {
  outline: 0.25rem solid #6d6d70;
  box-shadow: inset 0 0 0 2px #fff;
}
/**
 * Subtle buttons.
 */
.btn-subtle-primary {
  --bs-btn-font-weight: 700;
  --bs-btn-color: var(--bs-primary-text-emphasis);
  --bs-btn-bg: var(--bs-primary-bg-subtle);
  --bs-btn-active-color: var(--bs-primary-text-emphasis);
  --bs-btn-active-bg: var(--bs-primary-bg-subtle);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--bs-primary);
  --bs-btn-focus-shadow-rgb: 42, 42, 44;
}
.btn-subtle-primary:focus-visible, .btn-subtle-primary.focus {
  outline: 0.25rem solid black;
  box-shadow: inset 0 0 0 2px #fff;
}
.btn-subtle-secondary {
  --bs-btn-font-weight: 700;
  --bs-btn-color: var(--bs-secondary-text-emphasis);
  --bs-btn-bg: var(--bs-secondary-bg-subtle);
  --bs-btn-active-color: var(--bs-secondary-text-emphasis);
  --bs-btn-active-bg: var(--bs-secondary-bg-subtle);
  --bs-btn-hover-color: #000;
  --bs-btn-hover-bg: var(--bs-secondary);
  --bs-btn-focus-shadow-rgb: 202, 161, 80;
}
.btn-subtle-secondary:focus-visible, .btn-subtle-secondary.focus {
  outline: 0.25rem solid #3c2e12;
  box-shadow: inset 0 0 0 2px #fff;
}
.btn-subtle-success {
  --bs-btn-font-weight: 700;
  --bs-btn-color: var(--bs-success-text-emphasis);
  --bs-btn-bg: var(--bs-success-bg-subtle);
  --bs-btn-active-color: var(--bs-success-text-emphasis);
  --bs-btn-active-bg: var(--bs-success-bg-subtle);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--bs-success);
  --bs-btn-focus-shadow-rgb: 53, 122, 50;
}
.btn-subtle-success:focus-visible, .btn-subtle-success.focus {
  outline: 0.25rem solid black;
  box-shadow: inset 0 0 0 2px #fff;
}
.btn-subtle-info {
  --bs-btn-font-weight: 700;
  --bs-btn-color: var(--bs-info-text-emphasis);
  --bs-btn-bg: var(--bs-info-bg-subtle);
  --bs-btn-active-color: var(--bs-info-text-emphasis);
  --bs-btn-active-bg: var(--bs-info-bg-subtle);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--bs-info);
  --bs-btn-focus-shadow-rgb: 0, 129, 150;
}
.btn-subtle-info:focus-visible, .btn-subtle-info.focus {
  outline: 0.25rem solid black;
  box-shadow: inset 0 0 0 2px #fff;
}
.btn-subtle-warning {
  --bs-btn-font-weight: 700;
  --bs-btn-color: var(--bs-warning-text-emphasis);
  --bs-btn-bg: var(--bs-warning-bg-subtle);
  --bs-btn-active-color: var(--bs-warning-text-emphasis);
  --bs-btn-active-bg: var(--bs-warning-bg-subtle);
  --bs-btn-hover-color: #000;
  --bs-btn-hover-bg: var(--bs-warning);
  --bs-btn-focus-shadow-rgb: 240, 173, 78;
}
.btn-subtle-warning:focus-visible, .btn-subtle-warning.focus {
  outline: 0.25rem solid #694109;
  box-shadow: inset 0 0 0 2px #fff;
}
.btn-subtle-danger {
  --bs-btn-font-weight: 700;
  --bs-btn-color: var(--bs-danger-text-emphasis);
  --bs-btn-bg: var(--bs-danger-bg-subtle);
  --bs-btn-active-color: var(--bs-danger-text-emphasis);
  --bs-btn-active-bg: var(--bs-danger-bg-subtle);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--bs-danger);
  --bs-btn-focus-shadow-rgb: 202, 49, 32;
}
.btn-subtle-danger:focus-visible, .btn-subtle-danger.focus {
  outline: 0.25rem solid #1a0604;
  box-shadow: inset 0 0 0 2px #fff;
}
.btn-subtle-body {
  --bs-btn-font-weight: 700;
  --bs-btn-color: var(--bs-body-color);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: var(--bs-border-color);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--bs-gray-600);
  --bs-btn-focus-shadow-rgb: 106, 115, 123;
}
.btn-subtle-body:focus-visible, .btn-subtle-body.focus {
  outline: 0.25rem solid #0c0d0d;
  box-shadow: inset 0 0 0 2px #fff;
}
.gradetreebox {
  margin: 20px 0 30px 0;
}
.gradetreebox h4, .gradetreebox .h4 {
  font-size: 0.9375rem;
}
.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;
}
.path-grade-report #maincontent + .urlselect {
  position: absolute;
  left: 40vw;
}
.path-grade-report-grader #region-main {
  min-width: 100%;
  width: auto;
  display: flex;
  flex-direction: column;
}
.path-grade-report-grader #region-main > .card {
  width: auto;
  overflow-x: initial;
}
.path-grade-report-grader #region-main div[role="main"] {
  flex: 1 1 auto;
}
.path-grade-report-grader [data-region="blocks-column"] {
  width: 100%;
  clear: both;
}
.path-grade-report-grader .gradepass, .path-grade-report-user .gradepass {
  color: #357a32;
}
.path-grade-report-grader .gradefail, .path-grade-report-user .gradefail {
  color: #ca3120;
}
.path-grade #region-main {
  overflow-x: visible;
}
.path-grade .user-heading .userinitials {
  width: 50px;
  height: 50px;
}
#page-grade-grading-manage #activemethodselector label {
  display: inline-block;
}
#page-grade-grading-manage #activemethodselector .helptooltip {
  margin-right: 0.5em;
}
#page-grade-grading-manage .actions {
  display: block;
  text-align: center;
  margin-bottom: 1em;
}
#page-grade-grading-manage .actions .action {
  display: inline-block;
  position: relative;
  vertical-align: top;
  width: 150px;
  text-align: center;
  overflow: hidden;
  margin: 0.5em;
  padding: 1em;
  border: 1px solid #aaa;
}
#page-grade-grading-manage .actions .action .action-text {
  position: relative;
  top: 0.4em;
  font-size: 14px;
  white-space: normal;
}
#page-grade-grading-form-rubric-edit .gradingform_rubric_editform .status {
  font-size: 70%;
}
.gradingform_rubric {
  margin-bottom: 1em;
}
.gradingform_rubric.evaluate .criterion .levels .level:hover, .gradingform_rubric.evaluate .criterion .levels .level.checked {
  background: #dff0d8;
}
.gradingform_rubric.evaluate .criterion .levels .level.checked {
  border: none;
  border-left: 1px solid #dee2e6;
}
.gradingform_rubric .criterion .description {
  vertical-align: top;
  padding: 6px;
}
.gradingform_rubric .criterion .description textarea {
  margin-bottom: 0;
  height: 115px;
}
.gradingform_rubric .criterion .definition textarea {
  width: 80%;
  margin-bottom: 0;
}
.gradingform_rubric .criterion .score {
  margin-top: 5px;
  margin-right: 28px;
  font-style: italic;
  font-weight: bold;
  color: #2a6228;
}
.gradingform_rubric .criterion .score input {
  margin-bottom: 0;
}
.gradingform_rubric .criterion .level {
  vertical-align: top;
  padding: 6px;
}
.gradingform_rubric .criterion .level.currentchecked {
  background: #fff0f0;
}
.gradingform_rubric .criterion .level.checked {
  background: #d0ffd0;
  border: 1px solid #555;
}
.gradingform_rubric .criterion .level .delete {
  position: relative;
  width: 32px;
  height: 32px;
  margin-top: -32px;
  clear: both;
  float: right;
}
.gradingform_rubric .criterion .level .delete input {
  display: block;
  position: absolute;
  right: 0;
  bottom: 0;
  height: 24px;
  width: 24px;
  margin: 0;
}
.gradingform_rubric .criterion .level .delete input:hover {
  background-color: #ddd;
}
.gradingform_rubric .criterion .scorevalue input {
  float: none;
  width: 2em;
}
.gradingform_rubric .criterion .scorevalue input.hiddenelement, .gradingform_rubric .criterion .scorevalue input.pseudotablink {
  width: 0;
}
.gradingform_rubric .criterion .addlevel {
  vertical-align: top;
  padding-top: 6px;
}
.gradingform_rubric .criterion .addlevel input {
  height: 30px;
  line-height: 1rem;
}
.gradingform_rubric .addcriterion {
  margin-left: 5px;
  padding: 0;
  margin-bottom: 1em;
}
.gradingform_rubric .addcriterion input {
  margin: 0;
  color: inherit;
  text-shadow: inherit;
  border: 0 none;
  line-height: inherit;
  background: transparent url(/theme/image.php/academi/core/1790824836/t/add) no-repeat 7px 8px;
  padding-left: 26px;
}
.gradingform_rubric .options {
  clear: both;
}
.gradingform_rubric .options .option label {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: normal;
  line-height: 2em;
  color: inherit;
  text-shadow: none;
  background-color: transparent;
}
.gradingform_rubric .options .option input {
  margin-left: 5px;
  margin-right: 12px;
}
.grade-display .description {
  font-size: 1rem;
}
.criterion .description {
  font-size: 1rem;
}
.criterion .criterion-toggle .expanded-icon {
  display: block;
}
.criterion .criterion-toggle .collapsed-icon {
  display: none;
}
.criterion .criterion-toggle.collapsed .expanded-icon {
  display: none;
}
.criterion .criterion-toggle.collapsed .collapsed-icon {
  display: block;
}
.path-grade-edit-tree .collapse-list .unlist {
  padding-left: 2rem;
}
.path-grade-edit-tree .collapse-list .unlist [data-for="sectionnode"]:focus > .collapse-list-item:first-child {
  background-color: #e6f2f5;
  border-color: #b3d9e0;
}
.path-grade-edit-tree .collapse-list .unlist [data-for="sectionnode"][data-selected="true"] > .collapse-list-item:first-child {
  background-color: #e6f2f5;
  border-color: #b3d9e0;
  color: #0f6cbf;
}
.path-grade-edit-tree .collapse-list .unlist [data-for="sectionnode"] .collapse-list-item-content[aria-hidden="true"] {
  display: none;
}
.path-grade-edit-tree .collapse-list .unlist [data-for="sectionnode"][aria-expanded="true"] > .collapse-list-item .collapsed-icon {
  display: none;
}
.path-grade-edit-tree .collapse-list .unlist [data-for="sectionnode"][aria-expanded="false"] > .collapse-list-item .expanded-icon {
  display: none;
}
.path-grade-edit-tree .collapse-list .unlist .collapse-list-item {
  padding: 0.5rem 1rem;
  cursor: pointer;
}
.path-grade-edit-tree .collapse-list .unlist .collapse-list-item .collapse-list-item-name {
  font-weight: bold;
}
.path-grade-edit-tree .collapse-list .unlist .collapse-list-item .collapse-list-link {
  color: #1d2125;
  padding: 0 0.2rem;
  margin-right: 0.3rem;
}
.path-grade-edit-tree .collapse-list .unlist .collapse-list-item .collapse-list-link i {
  font-size: 12px;
  width: 12px;
  height: 12px;
  margin: 0;
}
.path-grade-edit-tree .gradetree-wrapper {
  padding: 10px 10px;
  background-color: #f8f9fa;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades h4, .path-grade-edit-tree .gradetree-wrapper .setup-grades .h4 {
  margin: 0;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades .column-rowspan {
  padding: 0;
  width: 24px;
  min-width: 24px;
  max-width: 24px;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades .emptyrow {
  display: none;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades .gradeitemdescription {
  font-weight: normal;
  padding-left: 24px;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr.spacer {
  height: 0.5rem;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr[data-hidden="true"] {
  display: none;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr th {
  vertical-align: bottom;
  border: none;
  text-align: left;
  background-color: #f8f9fa;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr th.rowspan {
  padding: 0;
  width: 24px;
  min-width: 24px;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr td {
  min-width: 4.5em;
  background-color: #f8f9fa;
  border: none;
  vertical-align: middle;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr td.column-name .small {
  font-size: 70%;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr td.column-name .itemselect {
  margin-right: 15px;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr td.column-weight {
  min-width: 15em;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr td.column-weight .weightoverride {
  margin-right: 5px;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr td.column-actions .dropdown-toggle::after {
  display: none;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr td.movehere {
  padding: 0;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr td.movehere a.movehere {
  display: block;
  width: 100%;
  margin: 5px 0 5px 0;
  padding: 3px 0 3px 0;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr td.movehere a.movehere hr {
  border-top: 2px dashed #8f959e;
  margin: 0;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr td.movehere a.movehere:hover hr {
  border-top: 2px dashed #0f6cbf;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr.category td {
  background-color: #fff;
  border-top: 1px solid #dee2e6;
  border-bottom: 1px solid #dee2e6;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr.category td:first-child {
  border-left: 1px solid #dee2e6;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr.category td:last-child {
  border-right: 1px solid #dee2e6;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr.category td.column-name {
  font-weight: bold;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr.category td.column-name div {
  display: flex;
  min-height: 30px;
  align-items: center;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr.category td.column-name div a.toggle-category {
  height: 24px;
  width: 24px;
  font-size: 12px;
  line-height: 24px;
  margin-right: 3px;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr.category td.column-name div a.toggle-category[aria-expanded="true"] .expanded, .path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr.category td.column-name div a.toggle-category[aria-expanded="false"] .collapsed {
  display: none;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr.category td.column-name div a.toggle-category i {
  font-size: 12px;
  width: 12px;
  height: 12px;
  color: #1d2125;
  margin: 0;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr.item td {
  background-color: #fff;
  border-top: 3px solid #f8f9fa;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr.item.categoryitem td, .path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr.item.courseitem td {
  min-width: 4.5em;
  background-color: #f8f9fa;
  border: none;
  vertical-align: middle;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr.item.categoryitem td.column-name, .path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr.item.courseitem td.column-name {
  padding-left: 0;
}
.path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr.item.categoryitem td:not(.column-actions), .path-grade-edit-tree .gradetree-wrapper .setup-grades.generaltable tr.item.courseitem td:not(.column-actions) {
  font-weight: bold;
}
.path-grade-edit-tree .gradetree-wrapper .badge-light {
  color: #1d2125;
  background-color: #ced4da;
  margin-right: 0.5em;
  margin-bottom: 0.5em;
}
/**
 * Grader report.
 */
.path-grade-report-grader .gradeparent tr .cell, .path-grade-report-grader .gradeparent .floater .cell {
  background-color: var(--bs-body-bg);
}
.path-grade-report-grader .gradeparent tr .cell.gradecell .dropdown-menu.show, .path-grade-report-grader .gradeparent .floater .cell.gradecell .dropdown-menu.show {
  z-index: 1;
}
.path-grade-report-grader .gradeparent table, .path-grade-report-grader .gradeparent .cell {
  border-color: var(--bs-border-color);
}
.path-grade-report-grader .gradeparent .heading .cell, .path-grade-report-grader .gradeparent .cell.category, .path-grade-report-grader .gradeparent .avg .cell {
  background-color: #f8f9fa;
}
.path-grade-report-grader .gradeparent table .clickable {
  cursor: pointer;
}
.path-grade-report-grader .gradeparent tr.heading {
  position: sticky;
  top: 60px;
  z-index: 4;
}
.path-grade-report-grader .gradeparent tr.userrow th {
  z-index: 2;
}
.path-grade-report-grader .gradeparent tr.userrow th.actions-menu-active {
  z-index: 3;
}
.path-grade-report-grader .gradeparent tr.lastrow:not(.userrow) {
  position: sticky;
  bottom: -1px;
}
.path-grade-report-grader .gradeparent tr.lastrow:not(.userrow).pinned {
  z-index: 4;
}
.path-grade-report-grader .gradeparent tr.lastrow td, .path-grade-report-grader .gradeparent tr.lastrow th {
  border-top: 1px solid var(--bs-border-color);
}
.path-grade-report-grader .gradeparent th.header {
  left: 0;
  position: sticky;
}
.path-grade-report-grader .gradeparent th.header#studentheader {
  z-index: 1;
}
.path-grade-report-grader .gradeparent td.noborder {
  border-right: transparent;
}
.path-grade-report-grader.hasstickyfooter .gradeparent tr.lastrow {
  bottom: calc(calc(max(80px, calc(0.9375rem * 3))) - 1px);
}
/**
 * User report.
 */
.path-grade-report-user .user-grade {
  border: none;
}
.path-grade-report-user .user-grade.generaltable .levelodd {
  background-color: rgba(0, 0, 0, 0.03);
}
.path-grade-report-user .user-grade.generaltable .leveleven {
  background-color: var(--bs-body-bg);
}
.path-grade-report-user .user-grade .column-contributiontocoursetotal, .path-grade-report-user .user-grade .column-range, .path-grade-report-user .user-grade .column-percentage, .path-grade-report-user .user-grade .column-weight {
  /*rtl:ignore*/
  direction: ltr;
}
/**
 * Single view.
 */
.path-grade-report-singleview .reporttable input[name^="finalgrade"] {
  width: 80px;
  display: inline-block;
}
.path-grade-report-singleview .reporttable .action-menu {
  display: inline-block;
  margin-left: 0.5rem;
  float: right;
}
.path-grade-report-singleview .reporttable .dropdown-toggle::after {
  display: none;
}
.gradereport-grader-table input[name^="grade"] {
  width: 80px;
  display: inline-block;
}
.gradereport-grader-table .dropdown-toggle::after {
  display: none;
}
.search-widget .dropdown-menu {
  padding: 0.8rem 1.2rem;
}
.search-widget .dropdown-menu.wide {
  width: 350px;
}
.search-widget .dropdown-menu.narrow {
  width: 250px;
}
.search-widget .dropdown-menu .dropdown-item span.email {
  color: var(--bs-secondary-color);
}
.search-widget .dropdown-menu .dropdown-item:hover span, .search-widget .dropdown-menu .dropdown-item:active span {
  color: #fff;
}
.search-widget .dropdown-menu .searchresultscontainer {
  height: 178px;
  font-size: 90%;
}
.search-widget .dropdown-menu .searchresultscontainer .searchresultitemscontainer {
  height: 178px;
  max-height: 178px;
  overflow: auto;
}
.search-widget .dropdown-menu .unsearchablecontentcontainer {
  border-top: 1px solid #dee2e6;
  padding-top: 10px;
  font-size: 90%;
}
#fitem_id_submitbutton {
  padding-right: 2em;
}
.gradestatus {
  padding-top: 10px;
}
.gradestatus .icon {
  margin-right: 1rem;
}
.columns-autoflow-1to1to1 {
  column-count: 3;
}
@media (max-width: 767px) {
  .columns-autoflow-1to1to1 {
    column-count: 1;
  }
}
/* some very targetted corrections to roll back nameclashes between
 * Moodle and Bootstrap like .row, .label, .content, .controls
 *
 * Mostly relies on these styles being more specific than the Bootstrap
 * ones in order to overule them.
 */
li.activity.label, .file-picker td.label {
  background: inherit;
  color: inherit;
  text-shadow: none;
  white-space: normal;
  display: block;
  font-size: inherit;
  line-height: inherit;
  text-align: inherit;
}
.file-picker td.label {
  border: inherit;
  display: table-cell;
  text-align: right;
  padding: 8px;
}
.choosercontainer #chooseform .option {
  font-size: 12px;
}
/* block.invisible vs .invisible
 * block.hidden vs .invisible
 *
 * uses .invisible where the rest of Moodle uses @mixin dimmed
 * fixible in block renderer?
 *
 * There's seems to be even more naming confusion here since,
 * blocks can be actually 'visible' (or not) to students,
 * marked 'visible' but really just dimmed to indicate to editors
 * that students can't see them or  'visible' to the user who
 * collapses them, 'visible' if you have the right role and in
 * different circumstances different sections of a block can
 * be 'visible' or not.
 *
 * currently worked around in renderers.php function block{}
 * by rewriting the class name "invisible" to "dimmed",
 * though the blocks don't look particularly different apart
 * from their contents disappearing. Maybe try .muted? or
 * dimming all the edit icons apart from unhide, might be a
 * nice effect, though they'd still be active. Maybe reverse
 * it to white?
 */
.section.hidden, .block.hidden, .block.invisible {
  visibility: visible;
  display: block;
}
/* .row vs .row
 *
 * very tricky to track down this when it goes wrong,
 * since the styles are applied to generated content
 *
 * basically if you see things shifted left or right compared
 * with where they should be check for a .row
 */
.forumpost .row {
  margin-left: 0 !important;
  /* stylelint-disable-line declaration-no-important */
}
.forumpost .row:before, .forumpost .row:after {
  content: none;
}
/* fieldset.hidden vs .hidden
 *
 * Moodle uses fieldset.hidden for mforms, to signify a collection of
 * form elements that don't have a box drawn round them. Bootstrap
 * uses hidden for stuff that is hidden in various responsive modes.
 *
 * Relatedly, there is also fieldset.invisiblefieldset which hides the
 * border and sets the display to inline.
 *
 * Originally this just set block and visible, but it is used
 * in random question dialogue in Quiz,
 * that dialogue is hidden and shown, so when hidden the
 * above workaround leaves you with a button floating around
 */
fieldset.hidden {
  display: inherit;
  visibility: inherit;
}
/* .container vs .container
 *
 * bootstrap uses .container to set the width of the layout at 960px or so, Moodle uses it
 * in the Quiz to contain the questions to add. If you don't overule the Bootstrap code,
 * it becomes near unuseable.
 */
#questionbank + .container {
  width: auto;
}
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;
}
.navbar.fixed-top .dropdown .dropdown-menu {
  max-height: calc(100vh - 60px);
  overflow-y: auto;
}
.page-item.active .page-link, .page-item.active .page-link:hover, .page-item.active .page-link:focus {
  z-index: inherit;
}
.form-select {
  word-wrap: normal;
}
/**
 * Reset all of the forced style on the page.
 * - Remove borders on header and content.
 * - Remove most of the vertical padding.
 * - Make the content region flex grow so it pushes things like the
 *   next activity selector to the bottom of the page.
 */
body.reset-style #page-header .card {
  border: none;
}
body.reset-style #page-header .card .page-header-headings h1, body.reset-style #page-header .card .page-header-headings .h1 {
  margin-bottom: 0;
}
@media (max-width: 767.98px) {
  body.reset-style #page-header .card .card-body {
    padding-left: 0;
    padding-right: 0;
  }
}
body.reset-style #page-header > div {
  padding-top: 0 !important;
  /* stylelint-disable-line declaration-no-important */
  padding-bottom: 0 !important;
  /* stylelint-disable-line declaration-no-important */
}
body.reset-style #page-content {
  padding-bottom: 0 !important;
  /* stylelint-disable-line declaration-no-important */
}
body.reset-style #page-content #region-main-box #region-main {
  border: none;
  display: inline-flex;
  flex-direction: column;
  padding: 0;
  height: 100%;
  width: 100%;
  padding-left: 1rem;
  padding-right: 1rem;
  vertical-align: top;
}
body.reset-style #page-content #region-main-box #region-main div[role="main"] {
  flex: 1 0 auto;
}
body.reset-style #page-content #region-main-box #region-main .activity-navigation {
  overflow: hidden;
}
body.reset-style #page-content #region-main-box #region-main.has-blocks {
  width: calc(100% - calc(360px + (1.5rem * 0.5)));
}
@media (max-width: 1199.98px) {
  body.reset-style #page-content #region-main-box #region-main.has-blocks {
    width: 100%;
  }
}
@media (max-width: 767.98px) {
  body.reset-style #page-content #region-main-box #region-main {
    padding-left: 0;
    padding-right: 0;
  }
}
body.reset-style #page-content #region-main-box [data-region="blocks-column"] {
  margin-left: auto;
}
@media (max-width: 1199.98px) {
  body.reset-style #page-content #region-main-box {
    display: flex;
    flex-direction: column;
  }
}
body.reset-style select, body.reset-style input, body.reset-style textarea, body.reset-style .btn:not(.btn-icon) {
  border-radius: 0.6rem;
}
body.behat-site .fixed-top {
  position: absolute;
}
body.behat-site.hasstickyfooter .stickyfooter, body.behat-site .stickyfooter {
  position: inherit;
  z-index: inherit;
}
body.behat-site.hasstickyfooter .stickyfooter .sticky-footer-content-wrapper, body.behat-site .stickyfooter .sticky-footer-content-wrapper {
  padding: 0;
  margin: 0;
}
body.behat-site .dropdown-item {
  margin-top: 4px !important;
  /* stylelint-disable declaration-no-important */
}
body.behat-site.drawer-ease {
  -webkit-transition: initial;
  -moz-transition: initial;
  transition: initial;
}
body.behat-site [data-region="drawer"] {
  -webkit-transition: initial;
  -moz-transition: initial;
  transition: initial;
  position: absolute;
}
body.behat-site [data-region="message-drawer"] {
  padding-right: 10px;
}
body.behat-site.jsenabled #page-footer .footer-content-popover {
  display: block;
}
body.behat-site.path-grade-report-grader .gradeparent tr.heading, body.behat-site.path-grade-report-grader .gradeparent tr.lastrow, body.behat-site.path-grade-report-grader .gradeparent th.header {
  position: relative;
  left: auto;
}
body.behat-site.path-grade-report-grader .gradeparent tr.heading {
  top: auto;
}
.phpinfo table, .phpinfo th, .phpinfo h2, .phpinfo .h2 {
  margin: auto;
}
.phpinfo .e, .phpinfo .v, .phpinfo .h {
  border: 1px solid #000;
  font-size: 0.8em;
  vertical-align: baseline;
  color: #000;
  background-color: #ccc;
}
.phpinfo .e {
  background-color: #ccf;
  font-weight: bold;
}
.phpinfo .h {
  background-color: #99c;
  font-weight: bold;
}
body > .debuggingmessage {
  margin-top: 60px;
}
body > .debuggingmessage ~ .debuggingmessage {
  margin-top: 0.5rem;
}
/**
 * This file contains the styles required to make the footer sticky.
 */
html, body {
  height: 100%;
}
.stickyfooter {
  position: fixed;
  right: 0;
  left: 0;
  height: calc(max(80px, calc(0.9375rem * 3)));
  bottom: calc(calc(max(80px, calc(0.9375rem * 3))) * -1);
  transition: bottom 0.5s;
  z-index: 1030;
  box-shadow: 0 0 1rem rgba(0, 0, 0, 0.15);
  font-size: calc(0.9375rem * 1.10);
}
.stickyfooter .sticky-footer-content {
  overflow: hidden;
}
@media (min-width: 768px) {
  .pagelayout-standard .stickyfooter .sticky-footer-content, body.limitedwidth.uses-drawers .stickyfooter .sticky-footer-content {
    max-width: 830px;
  }
}
.stickyfooter .sticky-footer-content-wrapper {
  transition: 0.2s;
}
@media (prefers-reduced-motion: reduce) {
  .stickyfooter .sticky-footer-content-wrapper {
    transition: none;
  }
}
@media (min-width: 992px) {
  .stickyfooter .sticky-footer-content-wrapper .drawers {
    padding: 0 3rem;
  }
  .show-drawer-left .stickyfooter .sticky-footer-content-wrapper {
    margin-left: 285px;
    padding: 0 3rem 0 1rem;
  }
  .show-drawer-right .stickyfooter .sticky-footer-content-wrapper {
    margin-right: 315px;
    padding: 0 1rem 0 3rem;
  }
  .show-drawer-right.show-drawer-left .stickyfooter .sticky-footer-content-wrapper {
    padding: 0 1rem;
  }
}
.hasstickyfooter .stickyfooter {
  bottom: 0;
}
/* Standard components fixes for sticky footer. */
.stickyfooter ul.pagination {
  margin-bottom: 0.25rem;
}
.stickyfooter .btn {
  font-size: calc(0.9375rem * 1.10);
}
/* Breakpoints fixes. */
@media (min-width: 576px) {
  #page-wrapper {
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  #page-wrapper #page {
    display: flex;
    flex-direction: column;
  }
  #page-wrapper #page:not(.drawers) {
    flex: 1 0 auto;
  }
  #page-wrapper #page #page-content {
    flex: 1 0 auto;
  }
  #page-wrapper #page-footer {
    flex-shrink: 0;
  }
}
@media (max-width: 767.98px) {
  #page-wrapper {
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  #page-wrapper #page {
    display: flex;
    flex-direction: column;
  }
  #page-wrapper #page:not(.drawers) {
    flex: 1 0 auto;
  }
}
.popover-region {
  position: relative;
}
.popover-region.collapsed .popover-region-toggle:before, .popover-region.collapsed .popover-region-toggle:after {
  display: none;
}
.popover-region.collapsed .popover-region-container {
  opacity: 0;
  visibility: hidden;
  height: 0;
  overflow: hidden;
  transition: height 0.25s, opacity 101ms 0.25s, visibility 101ms 0.25s;
}
.popover-region-toggle {
  cursor: pointer;
}
.popover-region-toggle::before {
  content: "";
  display: inline-block;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 10px solid #ddd;
  position: absolute;
  bottom: 0;
  right: 7px;
}
.popover-region-toggle::after {
  content: "";
  display: inline-block;
  border-left: 9px solid transparent;
  border-right: 9px solid transparent;
  border-bottom: 9px solid #fff;
  position: absolute;
  bottom: -1px;
  right: 8px;
  z-index: 2;
}
.count-container {
  padding: 2px;
  border-radius: 2px;
  background-color: #ca3120;
  color: #fff;
  font-size: 11px;
  line-height: 11px;
  position: absolute;
  top: 5px;
  right: 0;
}
.popover-region-container {
  opacity: 1;
  visibility: visible;
  position: absolute;
  right: 0;
  top: 0;
  height: 500px;
  max-height: 80vh;
  width: 380px;
  border: 1px solid #ddd;
  transition: height 0.25s;
  background-color: #fff;
  z-index: 1;
}
.popover-region-header-container {
  height: 25px;
  line-height: 25px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom: 1px solid #ddd;
  box-sizing: border-box;
}
.popover-region-footer-container {
  height: 30px;
  text-align: center;
  border-top: 1px solid #ddd;
  background-color: var(--bs-body-bg);
  padding-top: 3px;
}
.popover-region-header-text {
  float: left;
  margin: 0;
  font-size: 14px;
  line-height: 25px;
}
.popover-region-header-actions {
  float: right;
}
.popover-region-header-actions > * {
  margin-left: 10px;
  min-width: 20px;
  display: inline-block;
}
.popover-region-header-actions .loading-icon {
  display: none;
  height: 12px;
  width: 12px;
}
.popover-region-header-actions .newmessage-link {
  margin-right: 10px;
}
.popover-region-header-actions label {
  display: inline-block;
  text-align: center;
  margin-bottom: 0;
}
.popover-region-content-container {
  height: calc(100% - 55px);
  width: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.popover-region-content-container > .loading-icon {
  display: none;
  text-align: center;
  padding: 5px;
  box-sizing: border-box;
}
.popover-region-content-container .empty-message {
  display: none;
  text-align: center;
  padding: 10px;
}
.popover-region-content-container.loading > .loading-icon {
  display: block;
}
.popover-region-content-container.loading .empty-message {
  display: none;
}
.navbar-nav .popover-region .icon {
  font-weight: bolder;
}
.navbar .popover-region.collapsed .popover-region-container {
  opacity: 0;
  visibility: hidden;
  height: 0;
  overflow: hidden;
  transition: height 0.25s, opacity 101ms 0.25s, visibility 101ms 0.25s;
}
.navbar .count-container {
  padding: 2px;
  border-radius: 2px;
  background-color: #ca3120;
  color: #fff;
  font-size: 11px;
  line-height: 11px;
  position: absolute;
  top: 15px;
  right: 0;
}
.navbar .popover-region-container {
  top: 60px;
}
.content-item-container {
  width: 100%;
  border-bottom: 1px solid #ddd;
  box-sizing: border-box;
  padding: 5px;
  position: relative;
  margin: 0;
  display: block;
  color: inherit;
  text-decoration: none;
}
.content-item-container:hover {
  color: #fff;
  background-color: #2A2A2C;
}
.content-item-container:hover .content-item-footer .timestamp {
  color: #fff;
}
.content-item-container:hover .view-more {
  color: inherit;
}
.content-item-container.unread {
  margin: 0;
  background-color: #f4f4f4;
}
.content-item-container.unread:hover {
  color: #fff;
  background-color: #2A2A2C;
}
.content-item-container.unread .content-item-body .notification-message {
  font-weight: 600;
}
.content-item-container .context-link {
  color: inherit;
  text-decoration: none;
}
.content-item-container .content-item-body {
  box-sizing: border-box;
  margin-bottom: 5px;
}
.content-item-container .content-item-footer {
  text-align: left;
  box-sizing: border-box;
}
.content-item-container .content-item-footer .timestamp {
  font-size: 10px;
  line-height: 10px;
  margin: 0;
  color: inherit;
  margin-left: 24px;
}
.content-item-container .view-more {
  position: absolute;
  bottom: 5px;
  right: 5px;
  font-size: 12px;
  line-height: 12px;
}
.content-item-container .view-more:hover {
  color: inherit;
}
.content-item-container.notification .content-item-body .notification-image {
  display: inline-block;
  width: 24px;
  height: 24px;
  float: left;
}
.content-item-container.notification .content-item-body .notification-image img {
  height: 75%;
}
.content-item-container.notification .content-item-body .notification-message {
  display: inline-block;
  font-size: 12px;
  width: calc(100% - 24px);
}
.content-item-container.selected {
  background-color: #3279b3;
  color: #fff;
  border-color: #3279b3;
}
.content-item-container.selected .content-item-footer .timestamp {
  color: #fff;
}
.popover-region-notifications .popover-region-header-container .mark-all-read-button .normal-icon {
  display: inline-block;
}
.popover-region-notifications .popover-region-header-container .mark-all-read-button.loading .normal-icon {
  display: none;
}
.popover-region-notifications .popover-region-header-container .mark-all-read-button.loading .loading-icon {
  display: inline-block;
}
.popover-region-notifications .all-notifications {
  opacity: 1;
  visibility: visible;
  height: auto;
  overflow: hidden;
}
.popover-region-notifications .all-notifications:empty + .empty-message {
  display: block;
}
.popover-region-notifications .notification-image {
  display: inline-block;
  width: 8%;
  vertical-align: top;
}
.popover-region-notifications .notification-image img {
  height: 75%;
}
.popover-region-notifications .notification-message {
  display: inline-block;
  font-size: 12px;
}
.popover-region-notifications .popover-region-content-container.loading .all-notifications:empty + .empty-message {
  display: none;
}
.popover-region-messages .mark-all-read-button .normal-icon {
  display: inline-block;
}
.popover-region-messages .mark-all-read-button.loading .normal-icon {
  display: none;
}
.popover-region-messages .mark-all-read-button.loading .loading-icon {
  display: inline-block;
}
.popover-region-messages .popover-region-content-container.loading .popover-region-content .messages:empty + .empty-message {
  display: none;
}
.popover-region-messages .messages:empty + .empty-message {
  display: block;
}
.popover-region-messages .content-item-container.unread .content-item-body {
  font-weight: 600;
  width: calc(90% - 30px);
}
.popover-region-messages .content-item-container.unread .unread-count-container {
  display: inline-block;
  width: 10%;
  text-align: center;
  float: right;
}
.popover-region-messages .content-item {
  height: 100%;
  width: 100%;
  box-sizing: border-box;
}
.popover-region-messages .profile-image-container {
  width: 30px;
  display: inline-block;
  text-align: center;
  float: left;
}
.popover-region-messages .profile-image-container img {
  width: 100%;
  display: inline-block;
  vertical-align: middle;
  border-radius: 50%;
}
.popover-region-messages .content-item-body {
  display: inline-block;
  box-sizing: border-box;
  width: calc(100% - 30px);
  font-size: 12px;
  padding-left: 10px;
  overflow: hidden;
}
.popover-region-messages .content-item-body h3, .popover-region-messages .content-item-body .h3 {
  font-size: 12px;
  line-height: 12px;
  margin: 0;
  width: 100%;
}
.popover-region-messages .content-item-body p {
  margin: 0;
}
.popover-region-messages .unread-count-container {
  display: none;
}
@media (max-width: 767px) {
  .navbar .popover-region .popover-region-container {
    right: -70px;
  }
}
@media (max-width: 480px) {
  .navbar .popover-region .popover-region-container {
    position: fixed;
    top: 46px;
    right: 0;
    left: 0;
    bottom: 0;
    width: auto;
    height: auto;
  }
}
/**
 * Tour step must sit above all other UI components.
 * The backdrop is the lowest point in the tour.
 * ----- moodle
 *  ---- step backdrop
 *   --- step container
 */
div[data-flexitour="backdrop"] {
  background-color: #000;
  opacity: 0.5;
  z-index: 1040;
}
span[data-flexitour="container"] {
  z-index: 1041;
}
span[data-flexitour="container"] .modal {
  display: initial;
  position: initial;
}
span[data-flexitour="container"] .modal-dialog {
  /**
         * Remove all margins to:
         * 1) ensure that the arrow touches the target; and
         * 2) ensure that the focus border touches the modal.
         */
  margin: 0;
}
span[data-flexitour="container"] div[data-role="arrow"] {
  border-width: 1rem;
}
span[data-flexitour="container"] div[data-role="arrow"], span[data-flexitour="container"] div[data-role="arrow"]:after {
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
  border-width: 1rem;
}
span[data-flexitour="container"][x-placement="top"], span[data-flexitour="container"][x-placement="top-start"] {
  margin-bottom: 1rem;
}
span[data-flexitour="container"][x-placement="top"] div[data-role="arrow"], span[data-flexitour="container"][x-placement="top-start"] div[data-role="arrow"] {
  bottom: -1rem;
  left: 50%;
  margin-left: -1rem;
  border-bottom-width: 0;
  border-top-color: var(--bs-border-color-translucent);
}
span[data-flexitour="container"][x-placement="top"] div[data-role="arrow"]:after, span[data-flexitour="container"][x-placement="top-start"] div[data-role="arrow"]:after {
  bottom: 1px;
  margin-left: -1rem;
  content: " ";
  border-bottom-width: 0;
  border-top-color: var(--bs-body-bg);
}
span[data-flexitour="container"][x-placement="bottom"], span[data-flexitour="container"][x-placement="bottom-start"] {
  margin-top: 1rem;
}
span[data-flexitour="container"][x-placement="bottom"] div[data-role="arrow"], span[data-flexitour="container"][x-placement="bottom-start"] div[data-role="arrow"] {
  top: -1rem;
  left: 50%;
  margin-left: -1rem;
  border-top-width: 0;
  border-bottom-color: var(--bs-border-color-translucent);
}
span[data-flexitour="container"][x-placement="bottom"] div[data-role="arrow"]:after, span[data-flexitour="container"][x-placement="bottom-start"] div[data-role="arrow"]:after {
  top: 1px;
  margin-left: -1rem;
  content: " ";
  border-top-width: 0;
  border-bottom-color: var(--bs-body-bg);
}
span[data-flexitour="container"][x-placement="left"], span[data-flexitour="container"][x-placement="left-start"] {
  margin-right: 1rem;
}
span[data-flexitour="container"][x-placement="left"] div[data-role="arrow"], span[data-flexitour="container"][x-placement="left-start"] div[data-role="arrow"] {
  right: -1rem;
  top: 50%;
  margin-top: -1rem;
  border-right-width: 0;
  border-left-color: var(--bs-border-color-translucent);
}
span[data-flexitour="container"][x-placement="left"] div[data-role="arrow"]:after, span[data-flexitour="container"][x-placement="left-start"] div[data-role="arrow"]:after {
  right: 1px;
  margin-top: -1rem;
  content: " ";
  border-right-width: 0;
  border-left-color: var(--bs-body-bg);
}
span[data-flexitour="container"][x-placement="right"], span[data-flexitour="container"][x-placement="right-start"] {
  margin-left: 1rem;
}
span[data-flexitour="container"][x-placement="right"] div[data-role="arrow"], span[data-flexitour="container"][x-placement="right-start"] div[data-role="arrow"] {
  left: -1rem;
  top: 50%;
  margin-top: -1rem;
  border-left-width: 0;
  border-right-color: var(--bs-border-color-translucent);
}
span[data-flexitour="container"][x-placement="right"] div[data-role="arrow"]:after, span[data-flexitour="container"][x-placement="right-start"] div[data-role="arrow"]:after {
  left: 1px;
  margin-top: -1rem;
  content: " ";
  border-left-width: 0;
  border-right-color: var(--bs-body-bg);
}
.dir-rtl span[data-flexitour="container"][x-placement^="right"] {
  margin-left: 1rem;
}
.dir-rtl span[data-flexitour="container"][x-placement^="right"] div[data-role="arrow"] {
  transform: rotate(180deg);
  left: -1rem;
  right: auto;
}
.dir-rtl span[data-flexitour="container"][x-placement^="left"] {
  margin-right: 1rem;
}
.dir-rtl span[data-flexitour="container"][x-placement^="left"] div[data-role="arrow"] {
  transform: rotate(180deg);
  left: auto;
  right: -1rem;
}
[data-region="drawer"] [data-flexitour="container"] {
  /*rtl:ignore*/
  margin-left: -15px;
  width: 275px;
}
@media print {
  body.drawer-open-left.jsenabled, body.drawer-open-right.jsenabled {
    margin: 0;
  }
  .container {
    width: auto;
  }
  .navbar {
    display: none;
  }
}
.modal .modal-body > .loading-icon {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
}
.modal .modal-body > .loading-icon .icon {
  position: absolute;
  top: 50%;
  /*rtl:ignore*/
  left: 50%;
  transform: translate(-50%, -50%);
}
.modal .btn-close {
  margin: -0.4rem -0.4rem -0.4rem auto;
}
.modal .btn-close:not(:disabled):not(.disabled):hover, .modal .btn-close:not(:disabled):not(.disabled):focus {
  opacity: inherit;
}
/* Change the modal-dialog-scrollable class to position: static to fix the issue with popper.js and autocomplete. */
.modal-dialog-scrollable:has(.form-autocomplete-suggestions) {
  position: static;
}
.modal-dialog-scrollable:has(.form-autocomplete-suggestions) .modal-content {
  position: static;
}
.modal-dialog-scrollable:has(.form-autocomplete-suggestions) .modal-content .modal-body {
  position: static;
}
/* Bug fix for TinyMCE menu when in fullscreen mode. */
body.tox-fullscreen .modal-dialog {
  width: 100%;
  max-width: 100%;
  height: 100%;
}
body.tox-fullscreen .modal-dialog .modal-header {
  height: 0;
  padding: 0;
}
body.tox-fullscreen .modal-dialog .tox-tinymce-aux {
  position: relative;
}
/* Bug fix TinyMCE menu width dropdowns when in fullscreen mode. */
body.tox-fullscreen .tox.tox-tinymce-aux {
  position: relative !important;
}
.layout.fullscreen {
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1050;
  transition: 0.5s;
  width: 100vw;
  margin: 0;
  opacity: 1;
  background-color: var(--bs-body-bg);
}
@media (prefers-reduced-motion: reduce) {
  .layout.fullscreen {
    transition: none;
  }
}
.layout.fullscreen > div {
  height: 100%;
  width: 100%;
}
.layout.fullscreen .loading-icon {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  display: inline-block;
  width: 100%;
  top: 40%;
  position: fixed;
}
.layout.fullscreen .loading-icon .icon {
  max-width: 4em;
  max-height: 4em;
  font-size: 4em;
}
#page.drawers {
  margin-top: 60px;
  scrollbar-width: thin;
  scrollbar-color: #6a737b #f8f9fa;
}
#page.drawers::-webkit-scrollbar {
  width: 12px;
}
#page.drawers::-webkit-scrollbar-track {
  background: #f8f9fa;
}
#page.drawers::-webkit-scrollbar-thumb {
  background-color: #6a737b;
  border-radius: 20px;
  border: 3px solid #f8f9fa;
}
#page.drawers::-webkit-scrollbar-thumb:hover {
  background-color: #495057;
}
#page.drawers .main-inner {
  max-width: 100%;
  width: 100%;
  margin: 0 auto;
  border-radius: 0.5rem;
  background-color: #fff;
  padding: 1.5rem 0.5rem;
  margin-top: 0.5rem;
  margin-bottom: 3rem;
  flex: 1 0 auto;
}
#page.drawers .activity-header {
  margin-left: 15px;
  margin-right: 15px;
}
@media (min-width: 768px) {
  .pagelayout-standard #page.drawers .main-inner, body.limitedwidth #page.drawers .main-inner {
    max-width: 830px;
  }
  .pagelayout-standard #page.drawers .footer-popover, body.limitedwidth #page.drawers .footer-popover {
    max-width: 830px;
    width: 100%;
    margin: 0 auto;
    border-radius: 0.5rem;
  }
  .header-maxwidth {
    max-width: 830px;
    margin: 0 auto;
    padding-left: 15px;
    padding-right: 15px;
  }
  .header-maxwidth .header-inner {
    padding-left: 0;
    padding-right: 0;
  }
}
.drawer-toggles .drawer-toggler {
  position: fixed;
  top: calc(60px + 0.7rem);
  z-index: 2;
}
.drawer-toggles .drawer-toggler .btn {
  border-radius: 200px;
  padding: 16px;
  background-color: #dee2e6;
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
  transition: padding 200ms;
}
.drawer-toggles .drawer-toggler .btn .icon {
  width: auto;
  height: auto;
}
.drawer-toggles .drawer-toggler .btn:focus {
  box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
}
.drawer-toggles .drawer-left-toggle {
  left: 0;
}
.drawer-toggles .drawer-left-toggle .btn {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  padding-right: 14px;
  padding-left: 10px;
}
.drawer-toggles .drawer-left-toggle .btn:hover {
  padding-left: 20px;
}
.drawer-toggles .drawer-right-toggle {
  right: 0;
}
.drawer-toggles .drawer-right-toggle .btn {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  padding-right: 10px;
  padding-left: 14px;
}
.drawer-toggles .drawer-right-toggle .btn:hover {
  padding-right: 20px;
}
#page.drawers.show-drawer-left .drawer-left-toggle {
  display: none;
}
#page.drawers.show-drawer-right .drawer-right-toggle {
  display: none;
}
@media (max-width: 767.98px) {
  .drawer-toggles {
    z-index: 100;
  }
  .drawer-toggles .drawer-right-toggle, .drawer-toggles .drawer-left-toggle {
    top: calc(99vh - (60px * 2.5));
  }
  #page.drawers.scroll-down .drawer-right-toggle {
    transform: translateX(150%);
    pointer-events: auto;
    visibility: hidden;
  }
  #page.drawers.scroll-down .drawer-left-toggle {
    transform: translateX(-150%);
    pointer-events: auto;
    visibility: hidden;
  }
  .hasstickyfooter:has(.drawer-right-toggle) .maintenancewarning {
    right: 2rem;
  }
  .hasstickyfooter:has(.drawer-left-toggle) .maintenancewarning {
    margin-left: 3.5rem;
  }
}
@media (min-width: 576px) {
  #page.drawers .main-inner {
    margin-top: 1.5rem;
  }
}
@media (min-width: 768px) {
  #page.drawers {
    padding-left: 3rem;
    padding-right: 3rem;
  }
  #page.drawers .main-inner {
    padding: 1.5rem 0.5rem;
  }
  #page.drawers div[role="main"] {
    padding-left: 15px;
    padding-right: 15px;
  }
}
@media (min-width: 992px) {
  .drawer-left, .drawer-right {
    top: 60px;
    height: calc(100vh - 60px);
  }
  .hasstickyfooter .drawer-left, .hasstickyfooter .drawer-right {
    top: 60px;
    height: calc(100vh - 60px - calc(max(80px, calc(0.9375rem * 3))));
  }
  #page.drawers {
    position: relative;
    overflow-y: visible;
    transition: 0.2s;
    left: 0;
    right: 0;
  }
  #page.drawers.show-drawer-left {
    margin-left: 285px;
    margin-right: 0;
    padding-left: 1rem;
  }
  #page.drawers.show-drawer-right {
    margin-left: 0;
    margin-right: 315px;
    padding-right: 1rem;
  }
  .jsenabled #page.drawers.show-drawer-right .popover-process-monitor, .jsenabled #page.drawers.show-drawer-right .btn-footer-popover, .jsenabled #page.drawers.show-drawer-right .btn-footer-communication {
    right: calc(315px + 2rem);
  }
  .jsenabled:has(#page.drawers.show-drawer-right) .maintenancewarning {
    right: calc(315px + 5rem);
  }
  #page.drawers.show-drawer-left.show-drawer-right {
    margin-left: 285px;
    margin-right: 315px;
  }
  #page.drawers.hasstickyfooter {
    margin-bottom: calc(max(80px, calc(0.9375rem * 3)));
  }
}
@media (min-width: 992px) and (prefers-reduced-motion: reduce) {
  #page.drawers {
    transition: none;
  }
}
.drawercontrolbuttons {
  margin-top: 92px;
}
.drawercontrolbuttons .buttons {
  z-index: 1;
}
.form-control:-ms-input-placeholder {
  color: var(--bs-secondary-color);
}
.form-select {
  -webkit-appearance: none;
  -moz-appearance: none;
}
.form-range {
  -webkit-appearance: none;
  -moz-appearance: none;
}
.form-range::-webkit-slider-thumb, .form-range::-moz-range-thumb, .form-range::-ms-thumb {
  -webkit-appearance: none;
  -moz-appearance: none;
}
input[type="date"].form-control, input[type="time"].form-control, input[type="datetime-local"].form-control, input[type="month"].form-control {
  -webkit-appearance: none;
  -moz-appearance: none;
}
@media (min-width: 576px) {
  .card-columns {
    -webkit-column-gap: 1.25rem;
    -moz-column-gap: 1.25rem;
  }
}
.carousel-item {
  -webkit-backface-visibility: hidden;
}
.card {
  -webkit-background-clip: border-box;
}
.carousel-indicators li, .dropdown-menu, .form-control, .modal-content, .popover, .toast {
  -webkit-background-clip: padding-box;
}
.btn {
  -webkit-user-select: none;
  -ms-user-select: none;
}
.user-select-all {
  -webkit-user-select: all !important;
  /* stylelint-disable-line declaration-no-important */
  -ms-user-select: none;
}
.user-select-auto {
  -webkit-user-select: auto !important;
  /* stylelint-disable-line declaration-no-important */
  -ms-user-select: none;
}
.user-select-none {
  -webkit-user-select: none !important;
  /* stylelint-disable-line declaration-no-important */
  -ms-user-select: none;
}
.editor_atto_content_wrap {
  background-color: #fff;
  color: #333;
}
.editor_atto_content {
  padding: 4px;
  resize: vertical;
  overflow: auto;
}
.editor_atto_content_wrap, .editor_atto + textarea {
  width: 100%;
  padding: 0;
}
.editor_atto + textarea {
  border-radius: 0;
  resize: vertical;
  margin-top: -1px;
}
div.editor_atto_toolbar {
  display: block;
  background: #f2f2f2;
  min-height: 35px;
  border: 1px solid #8f959e;
  width: 100%;
  padding: 0 0 9px 0;
  border-top-left-radius: 0.5rem;
  border-top-right-radius: 0.5rem;
}
div.editor_atto_toolbar button {
  padding: 4px 9px;
  background: none;
  border: 0;
  margin: 0;
  border-radius: 0;
  cursor: pointer;
}
div.editor_atto_toolbar .menuplaceholder {
  display: inline-block;
}
div.editor_atto_toolbar button + button, div.editor_atto_toolbar .menuplaceholder + button {
  border-left: 1px solid #ccc;
}
div.editor_atto_toolbar button[disabled] {
  opacity: 0.45;
  background: none;
  cursor: default;
}
.editor_atto_toolbar button:hover {
  background-image: radial-gradient(ellipse at center, #fff 60%, #dfdfdf 100%);
  background-color: #ebebeb;
}
.editor_atto_toolbar button:active, .editor_atto_toolbar button.highlight {
  background-image: radial-gradient(ellipse at center, #fff 40%, #dfdfdf 100%);
  background-color: #dfdfdf;
}
/* Make firefox button sizes match other browsers */
div.editor_atto_toolbar button::-moz-focus-inner {
  border: 0;
  padding: 0;
}
div.editor_atto_toolbar button .icon {
  padding: 0;
  margin: 2px 0;
}
div.editor_atto_toolbar div.atto_group {
  display: inline-block;
  border: 1px solid #ccc;
  border-bottom: 1px solid #b3b3b3;
  border-radius: 4px;
  margin: 9px 0 0 9px;
  background: #fff;
}
div.editor_atto_toolbar .atto_toolbar_row {
  margin: 6px 0 -3px 5px;
  display: table;
}
div.editor_atto_toolbar .atto_toolbar_row div.atto_group {
  margin: 3px 5px 3px 4px;
}
.editor_atto_content img {
  resize: both;
  overflow: auto;
}
.atto_hasmenu {
  /* IE8 places the images on top of each other if that is not set. */
  white-space: nowrap;
}
.atto_menuentry .icon {
  width: 16px;
  height: 16px;
}
.atto_menuentry {
  clear: left;
}
.atto_menuentry h1, .atto_menuentry .h1, .atto_menuentry h2, .atto_menuentry .h2, .atto_menuentry p {
  margin: 4px;
}
/*.atto_form label.sameline {
    display: inline-block;
    min-width: 10em;
}*/
.atto_form textarea.fullwidth, .atto_form input.fullwidth {
  width: 100%;
}
.atto_form {
  padding: 0.5rem;
}
/*.atto_form label {
    display: block;
    margin: 0 0 5px 0;
}*/
.atto_control {
  position: absolute;
  right: -6px;
  bottom: -6px;
  display: none;
  cursor: pointer;
}
.atto_control .icon {
  background-color: #fff;
}
div.editor_atto_content:focus .atto_control, div.editor_atto_content:hover .atto_control {
  display: block;
}
.editor_atto_menu.yui3-menu-hidden {
  display: none;
}
/* Get broken images back in firefox */
.editor_atto_content img:-moz-broken {
  -moz-force-broken-image-icon: 1;
  min-width: 24px;
  min-height: 24px;
}
/* Atto menu styling */
.moodle-dialogue-base .editor_atto_menu .moodle-dialogue-content .moodle-dialogue-bd {
  padding: 0;
  z-index: 1000;
}
.editor_atto_menu .dropdown-menu > li > a {
  margin: 3px 14px;
}
.editor_atto_menu .open ul.dropdown-menu {
  padding-top: 5px;
  padding-bottom: 5px;
}
.editor_atto_wrap {
  position: relative;
}
/*rtl:ignore*/
.editor_atto_wrap textarea {
  direction: ltr;
}
.editor_atto_notification {
  display: inline-block;
  padding: 0.5em;
  padding-left: 1em;
  padding-right: 1em;
  border-bottom-left-radius: 1em;
  border-bottom-right-radius: 1em;
}
.editor_atto_notification .atto_info {
  background-color: #f2f2f2;
}
.editor_atto_notification .atto_warning {
  background-color: #ffd700;
}
.editor_atto_toolbar, .editor_atto_content_wrap, .editor_atto + textarea {
  box-sizing: border-box;
}
.editor_atto_content.form-control {
  width: 100%;
  border-top: 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
/** Atto fields do not have form-control because that would break the layout of the editor.
    So they need these extra styles to highlight the editor when there is a validation error. */
.has-danger .editor_atto_content.form-control .invalid-feedback, .has-danger .editor_atto_content.form-control-danger .invalid-feedback {
  display: none;
  width: 100%;
  margin-top: 0.25rem;
  font-size: 0.875em;
  color: #ca3120;
}
.has-danger .editor_atto_content.form-control .invalid-tooltip, .has-danger .editor_atto_content.form-control-danger .invalid-tooltip {
  position: absolute;
  top: 100%;
  z-index: 5;
  display: none;
  max-width: 100%;
  padding: 0.25rem 0.5rem;
  margin-top: 0.1rem;
  font-size: 0.8203125rem;
  color: #fff;
  background-color: rgba(202, 49, 32, 0.9);
  border-radius: var(--bs-border-radius);
}
.was-validated .has-danger .editor_atto_content.form-control:invalid ~ .invalid-feedback, .was-validated .has-danger .editor_atto_content.form-control:invalid ~ .invalid-tooltip, .has-danger .editor_atto_content.form-control.is-invalid ~ .invalid-feedback, .has-danger .editor_atto_content.form-control.is-invalid ~ .invalid-tooltip, .was-validated .has-danger .editor_atto_content.form-control-danger:invalid ~ .invalid-feedback, .was-validated .has-danger .editor_atto_content.form-control-danger:invalid ~ .invalid-tooltip, .has-danger .editor_atto_content.form-control-danger.is-invalid ~ .invalid-feedback, .has-danger .editor_atto_content.form-control-danger.is-invalid ~ .invalid-tooltip {
  display: block;
}
.was-validated .has-danger .editor_atto_content.form-control .form-control:invalid, .has-danger .editor_atto_content.form-control .form-control.is-invalid, .was-validated .has-danger .editor_atto_content.form-control-danger .form-control:invalid, .has-danger .editor_atto_content.form-control-danger .form-control.is-invalid {
  border-color: #ca3120;
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ca3120'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ca3120' stroke='none'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(0.375em + 0.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}
.was-validated .has-danger .editor_atto_content.form-control .form-control:invalid:focus, .has-danger .editor_atto_content.form-control .form-control.is-invalid:focus, .was-validated .has-danger .editor_atto_content.form-control-danger .form-control:invalid:focus, .has-danger .editor_atto_content.form-control-danger .form-control.is-invalid:focus {
  border-color: #ca3120;
  box-shadow: 0 0 0 0.25rem rgba(202, 49, 32, 0.25);
}
.was-validated .has-danger .editor_atto_content.form-control textarea.form-control:invalid, .has-danger .editor_atto_content.form-control textarea.form-control.is-invalid, .was-validated .has-danger .editor_atto_content.form-control-danger textarea.form-control:invalid, .has-danger .editor_atto_content.form-control-danger textarea.form-control.is-invalid {
  padding-right: calc(1.5em + 0.75rem);
  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
}
.was-validated .has-danger .editor_atto_content.form-control .form-select:invalid, .has-danger .editor_atto_content.form-control .form-select.is-invalid, .was-validated .has-danger .editor_atto_content.form-control-danger .form-select:invalid, .has-danger .editor_atto_content.form-control-danger .form-select.is-invalid {
  border-color: #ca3120;
}
.was-validated .has-danger .editor_atto_content.form-control .form-select:invalid:not([multiple]):not([size]), .was-validated .has-danger .editor_atto_content.form-control .form-select:invalid:not([multiple])[size="1"], .has-danger .editor_atto_content.form-control .form-select.is-invalid:not([multiple]):not([size]), .has-danger .editor_atto_content.form-control .form-select.is-invalid:not([multiple])[size="1"], .was-validated .has-danger .editor_atto_content.form-control-danger .form-select:invalid:not([multiple]):not([size]), .was-validated .has-danger .editor_atto_content.form-control-danger .form-select:invalid:not([multiple])[size="1"], .has-danger .editor_atto_content.form-control-danger .form-select.is-invalid:not([multiple]):not([size]), .has-danger .editor_atto_content.form-control-danger .form-select.is-invalid:not([multiple])[size="1"] {
  --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ca3120'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ca3120' stroke='none'/%3e%3c/svg%3e");
  padding-right: 4.125rem;
  background-position: right 0.75rem center, center right 2.25rem;
  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}
.was-validated .has-danger .editor_atto_content.form-control .form-select:invalid:focus, .has-danger .editor_atto_content.form-control .form-select.is-invalid:focus, .was-validated .has-danger .editor_atto_content.form-control-danger .form-select:invalid:focus, .has-danger .editor_atto_content.form-control-danger .form-select.is-invalid:focus {
  border-color: #ca3120;
  box-shadow: 0 0 0 0.25rem rgba(202, 49, 32, 0.25);
}
.was-validated .has-danger .editor_atto_content.form-control .form-control-color:invalid, .has-danger .editor_atto_content.form-control .form-control-color.is-invalid, .was-validated .has-danger .editor_atto_content.form-control-danger .form-control-color:invalid, .has-danger .editor_atto_content.form-control-danger .form-control-color.is-invalid {
  width: calc(3rem + calc(1.5em + 0.75rem));
}
.was-validated .has-danger .editor_atto_content.form-control .form-check-input:invalid, .has-danger .editor_atto_content.form-control .form-check-input.is-invalid, .was-validated .has-danger .editor_atto_content.form-control-danger .form-check-input:invalid, .has-danger .editor_atto_content.form-control-danger .form-check-input.is-invalid {
  border-color: #ca3120;
}
.was-validated .has-danger .editor_atto_content.form-control .form-check-input:invalid:checked, .has-danger .editor_atto_content.form-control .form-check-input.is-invalid:checked, .was-validated .has-danger .editor_atto_content.form-control-danger .form-check-input:invalid:checked, .has-danger .editor_atto_content.form-control-danger .form-check-input.is-invalid:checked {
  background-color: #ca3120;
}
.was-validated .has-danger .editor_atto_content.form-control .form-check-input:invalid:focus, .has-danger .editor_atto_content.form-control .form-check-input.is-invalid:focus, .was-validated .has-danger .editor_atto_content.form-control-danger .form-check-input:invalid:focus, .has-danger .editor_atto_content.form-control-danger .form-check-input.is-invalid:focus {
  box-shadow: 0 0 0 0.25rem rgba(202, 49, 32, 0.25);
}
.was-validated .has-danger .editor_atto_content.form-control .form-check-input:invalid ~ .form-check-label, .has-danger .editor_atto_content.form-control .form-check-input.is-invalid ~ .form-check-label, .was-validated .has-danger .editor_atto_content.form-control-danger .form-check-input:invalid ~ .form-check-label, .has-danger .editor_atto_content.form-control-danger .form-check-input.is-invalid ~ .form-check-label {
  color: #ca3120;
}
.has-danger .editor_atto_content.form-control .form-check-inline .form-check-input ~ .invalid-feedback, .has-danger .editor_atto_content.form-control-danger .form-check-inline .form-check-input ~ .invalid-feedback {
  margin-left: 0.5em;
}
.was-validated .has-danger .editor_atto_content.form-control .input-group > .form-control:not(:focus):invalid, .has-danger .editor_atto_content.form-control .input-group > .form-control:not(:focus).is-invalid, .was-validated .has-danger .editor_atto_content.form-control .input-group > .form-select:not(:focus):invalid, .has-danger .editor_atto_content.form-control .input-group > .form-select:not(:focus).is-invalid, .was-validated .has-danger .editor_atto_content.form-control .input-group > .form-floating:not(:focus-within):invalid, .has-danger .editor_atto_content.form-control .input-group > .form-floating:not(:focus-within).is-invalid, .was-validated .has-danger .editor_atto_content.form-control-danger .input-group > .form-control:not(:focus):invalid, .has-danger .editor_atto_content.form-control-danger .input-group > .form-control:not(:focus).is-invalid, .was-validated .has-danger .editor_atto_content.form-control-danger .input-group > .form-select:not(:focus):invalid, .has-danger .editor_atto_content.form-control-danger .input-group > .form-select:not(:focus).is-invalid, .was-validated .has-danger .editor_atto_content.form-control-danger .input-group > .form-floating:not(:focus-within):invalid, .has-danger .editor_atto_content.form-control-danger .input-group > .form-floating:not(:focus-within).is-invalid {
  z-index: 4;
}
.open.atto_menu > .dropdown-menu {
  display: block;
}
div.editor_atto_toolbar button .icon {
  color: #495057;
}
.toast {
  border-radius: var(--bs-border-radius);
}
.toast.toast-success {
  background-color: rgba(215, 228, 214, 0.95);
  color: #20491e;
}
.toast.toast-success .toast-header {
  color: #20491e;
}
.toast.toast-success .toast-body:before {
  font: var(--fa-font-solid);
  margin: 2px 5px 0 0;
  content: "";
}
.toast.toast-danger {
  background-color: rgba(244, 214, 210, 0.95);
  color: #791d13;
}
.toast.toast-danger .toast-header {
  color: #791d13;
}
.toast.toast-danger .toast-body:before {
  font: var(--fa-font-solid);
  margin: 2px 5px 0 0;
  content: "";
}
.toast.toast-info {
  background-color: rgba(204, 230, 234, 0.95);
  color: #004d5a;
}
.toast.toast-info .toast-header {
  color: #004d5a;
}
.toast.toast-info .toast-body:before {
  font: var(--fa-font-solid);
  margin: 2px 5px 0 0;
  content: "";
}
.toast.toast-warning {
  background-color: rgba(252, 239, 220, 0.95);
  color: #90682f;
}
.toast.toast-warning .toast-header {
  color: #90682f;
}
.toast.toast-warning .toast-body:before {
  font: var(--fa-font-solid);
  margin: 2px 5px 0 0;
  content: "";
}
.toast .btn-close {
  color: inherit;
}
.navbar.fixed-top {
  padding-top: 0;
  padding-bottom: 0;
  box-shadow: none;
  border-bottom: #dee2e6 1px solid;
  align-items: stretch;
  height: 61px;
}
.navbar.fixed-top .navbar-brand .logo {
  max-height: calc(60px - (0.25rem * 2));
}
.navbar.fixed-top .nav-link {
  height: 100%;
  display: flex;
  align-items: center;
  white-space: nowrap;
}
.navbar.fixed-top .divider {
  width: 1px;
  background-color: #dee2e6;
}
.navbar.fixed-top #usernavigation .nav-link {
  padding: 0 0.5rem;
}
.navbar.fixed-top .login {
  display: flex;
  align-items: center;
}
.navbar.fixed-top .usermenu {
  display: flex;
}
.navbar.fixed-top .usermenu .action-menu {
  display: flex;
  align-items: center;
}
.navbar.fixed-top .usermenu .dropdown {
  display: flex;
  align-items: center;
}
.navbar.fixed-top .usermenu .dropdown .dropdown-toggle {
  padding-top: 0;
  padding-bottom: 0;
  border-radius: 0;
  display: flex;
  align-items: center;
  height: 100%;
}
.navbar.fixed-top .usermenu .dropdown-menu {
  min-width: 235px;
}
.navbar.fixed-top .usermenu .dropdown-menu .carousel-navigation-link > * {
  pointer-events: none;
}
.navbar.fixed-top .usermenu .dropdown-menu .dropdown-item {
  padding: 0.25rem 1.75rem 0.25rem 0.75rem;
}
.navbar.fixed-top .usermenu .dropdown-menu .dropdown-item.carousel-navigation-link::after {
  font: var(--fa-font-solid);
  content: "";
  font-size: 1rem;
  padding-top: 0.2rem;
  right: 0.75rem;
  position: absolute;
}
.navbar.fixed-top .usermenu .dropdown-menu .submenu .header {
  padding: 0.25rem 0.75rem;
  font-size: 0.975rem;
}
.navbar.fixed-top .usermenu .dropdown-menu .submenu .header .icon {
  font-size: 20px;
  height: 20px;
  width: 20px;
  margin: 0;
}
.navbar.fixed-top .usermenu .dropdown-menu .submenu .items .dropdown-item[aria-current="true"]::before {
  font: var(--fa-font-solid);
  content: "";
  font-size: 0.75rem;
  padding-left: 0.25rem;
}
.navbar.fixed-top .usermenu .login {
  display: flex;
  align-items: center;
}
.navbar.fixed-top .usermenu .dropdown, .navbar.fixed-top .langmenu .dropdown {
  display: flex;
  align-items: center;
  height: 100%;
}
.navbar.fixed-top .usermenu .dropdown .dropdown-toggle, .navbar.fixed-top .langmenu .dropdown .dropdown-toggle {
  padding-top: 0;
  padding-bottom: 0;
  border-radius: 0;
  display: flex;
  align-items: center;
  height: 100%;
}
.navbar.fixed-top .langmenu .dropdown-menu .dropdown-item[aria-current="true"]::before {
  content: "";
  font-size: 0.75rem;
  padding-left: 0.25rem;
}
@media (max-width: 767.98px) {
  .navbar.fixed-top .langmenu .langbutton {
    display: none;
  }
}
.navbar.fixed-top .moodle-actionmenu .menubar, .navbar.fixed-top .action-menu-trigger .dropdown {
  height: 100%;
  display: flex;
}
.dir-rtl .navbar.fixed-top .usermenu .dropdown-menu .dropdown-item.carousel-navigation-link::after {
  font: var(--fa-font-solid);
  content: "";
}
#page {
  margin-top: 60px;
}
.pagelayout-embedded #page {
  margin-top: 0;
}
.navbar-bootswatch .navbar-brand {
  overflow: hidden;
  text-overflow: ellipsis;
}
.navbar-bootswatch .navbar-brand .sitename {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
:root {
  --navbar-height: 60px;
}
/**
* Reportbuilder styles.
*/
.reportbuilder-wrapper .btn-outline-secondary[data-bs-toggle="collapse"]:not(.collapsed), .reportbuilder-wrapper .dropdown.show .btn-outline-secondary[data-bs-toggle="dropdown"] {
  color: #fff;
  background-color: #6a737b;
  border-color: #6a737b;
}
.reportbuilder-table .action-menu .menubar {
  justify-content: end;
}
.reportbuilder-wrapper .filters-dropdown {
  width: 27rem;
  padding: 0 0 4rem 0;
  z-index: 1055;
  overflow: hidden;
}
@media (max-width: 767.98px) {
  .reportbuilder-wrapper .filters-dropdown {
    width: 100%;
  }
}
.reportbuilder-filters-sidebar {
  max-height: 30rem;
  overflow-y: auto;
  border-bottom: 1px solid var(--bs-border-color-translucent);
  scrollbar-width: thin;
  scrollbar-color: #6a737b #fff;
  background: linear-gradient(#fff 30%, rgba(255, 255, 255, 0)) center top, linear-gradient(rgba(255, 255, 255, 0), #fff 70%) center bottom, radial-gradient(farthest-side at 50% 0, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)) center top, radial-gradient(farthest-side at 50% 100%, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)) center bottom;
  background-repeat: no-repeat;
  background-size: 100% 1rem, 100% 1rem, 100% calc(1rem / 2), 100% calc(1rem / 2);
  background-attachment: local, local, scroll, scroll;
}
.reportbuilder-filters-sidebar::-webkit-scrollbar {
  width: 12px;
}
.reportbuilder-filters-sidebar::-webkit-scrollbar-track {
  background: #fff;
}
.reportbuilder-filters-sidebar::-webkit-scrollbar-thumb {
  background-color: #6a737b;
  border-radius: 20px;
  border: 3px solid #fff;
}
.reportbuilder-filters-sidebar::-webkit-scrollbar-thumb:hover {
  background-color: #495057;
}
.reportbuilder-filters-sidebar .filter:not(:nth-last-child(2)) {
  border-bottom: 1px solid var(--bs-border-color-translucent);
}
.reportbuilder-filters-sidebar .filter .filter-name:hover {
  white-space: normal;
  text-overflow: clip;
  word-break: break-all;
}
.reportbuilder-filters-sidebar .fitem[data-groupname="buttonar"] {
  position: absolute;
  bottom: 0;
  height: 4rem;
  align-items: center;
}
.reportbuilder-filters-sidebar .fitem[data-groupname="buttonar"] .col-form-label {
  display: none !important;
  /* stylelint-disable-line declaration-no-important */
}
.reportbuilder-filters-wrapper .mform.full-width-labels .fdate_selector, .reportbuilder-conditions-list .mform.full-width-labels .fdate_selector {
  flex-wrap: wrap;
}
.reportbuilder-filters-wrapper .mform.full-width-labels .fitem, .reportbuilder-conditions-list .mform.full-width-labels .fitem {
  margin-bottom: 0 !important;
  /* stylelint-disable-line declaration-no-important */
  max-width: 100%;
}
.reportbuilder-filters-wrapper .mform.full-width-labels .fitem:not(.row):last-child, .reportbuilder-conditions-list .mform.full-width-labels .fitem:not(.row):last-child {
  flex: 1;
  min-width: 0;
}
.reportbuilder-filters-wrapper .mform.full-width-labels .fitem:not(.row):last-child span, .reportbuilder-filters-wrapper .mform.full-width-labels .fitem:not(.row):last-child .form-select, .reportbuilder-conditions-list .mform.full-width-labels .fitem:not(.row):last-child span, .reportbuilder-conditions-list .mform.full-width-labels .fitem:not(.row):last-child .form-select {
  width: 100%;
}
@media (min-width: 992px) {
  .path-admin-reportbuilder.pagelayout-popup.behat-site .fixed-top {
    position: fixed;
  }
  .path-admin-reportbuilder.pagelayout-popup #region-main {
    border: none;
    padding: 0;
  }
  .path-admin-reportbuilder.pagelayout-popup #maincontent {
    visibility: hidden;
  }
  .path-admin-reportbuilder.pagelayout-popup .dynamictabs .nav-tabs {
    position: fixed;
    z-index: 1030;
    width: calc(100% - 35px);
    padding-top: 1.25rem;
    background-color: #fff;
    box-shadow: 0 1.25rem 0 #fff;
  }
  .path-admin-reportbuilder.pagelayout-popup .dynamictabs .tab-content {
    padding-top: 83px;
  }
  .path-admin-reportbuilder.pagelayout-popup .reportbuilder-sidebar-menu {
    position: fixed;
  }
  .path-admin-reportbuilder.pagelayout-popup .reportbuilder-sidebar-menu .reportbuilder-sidebar-menu-cards {
    max-height: calc(100vh - 163px - 52px);
  }
  .path-admin-reportbuilder.pagelayout-popup .reportbuilder-sidebar-settings {
    position: fixed;
    right: 30px;
    max-height: calc(100vh - 163px);
  }
  .path-admin-reportbuilder.pagelayout-popup .reportbuilder-report[data-editing] .reportbuilder-report-container {
    max-height: calc(100vh - 163px);
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #6a737b #f8f9fa;
    margin-left: calc(250px + 1rem);
    margin-right: calc(350px + 1rem);
  }
  .path-admin-reportbuilder.pagelayout-popup .reportbuilder-report[data-editing] .reportbuilder-report-container::-webkit-scrollbar {
    width: 12px;
  }
  .path-admin-reportbuilder.pagelayout-popup .reportbuilder-report[data-editing] .reportbuilder-report-container::-webkit-scrollbar-track {
    background: #f8f9fa;
  }
  .path-admin-reportbuilder.pagelayout-popup .reportbuilder-report[data-editing] .reportbuilder-report-container::-webkit-scrollbar-thumb {
    background-color: #6a737b;
    border-radius: 20px;
    border: 3px solid #f8f9fa;
  }
  .path-admin-reportbuilder.pagelayout-popup .reportbuilder-report[data-editing] .reportbuilder-report-container::-webkit-scrollbar-thumb:hover {
    background-color: #495057;
  }
  .path-admin-reportbuilder.pagelayout-popup .reportbuilder-audiences-container {
    margin-left: calc(250px + 1rem);
  }
}
#page-admin-reportbuilder-edit #page {
  overflow-y: auto;
}
.reportbuilder-report-container {
  min-width: 0;
}
.reportbuilder-report-container button[data-action="toggle-edit-preview"] .loading-icon {
  margin-left: 0.5rem;
}
.reportbuilder-editor-table-container {
  overflow-x: auto;
  padding: 1px;
}
.reportbuilder-table th button[data-action="report-remove-column"] .icon, .reportbuilder-table th span[data-drag-type="move"] .icon {
  width: 12px;
  height: 12px;
  font-size: 12px;
  vertical-align: text-top;
  color: #1d2125;
}
.reportbuilder-table th button[data-action="report-remove-column"] .icon {
  margin-right: 0;
}
@media (min-width: 992px) {
  .reportbuilder-sidebar-menu {
    width: 250px;
    flex-shrink: 0;
  }
}
.reportbuilder-sidebar-menu .card-body .list-group-item {
  padding: 0.75rem;
}
.reportbuilder-sidebar-menu .card-body .list-group-item .icon {
  width: 12px;
  height: 12px;
  font-size: 12px;
}
.reportbuilder-sidebar-menu-cards {
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #6a737b #f8f9fa;
}
.reportbuilder-sidebar-menu-cards::-webkit-scrollbar {
  width: 12px;
}
.reportbuilder-sidebar-menu-cards::-webkit-scrollbar-track {
  background: #f8f9fa;
}
.reportbuilder-sidebar-menu-cards::-webkit-scrollbar-thumb {
  background-color: #6a737b;
  border-radius: 20px;
  border: 3px solid #f8f9fa;
}
.reportbuilder-sidebar-menu-cards::-webkit-scrollbar-thumb:hover {
  background-color: #495057;
}
.reportbuilder-sidebar-settings {
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #6a737b #f8f9fa;
}
.reportbuilder-sidebar-settings::-webkit-scrollbar {
  width: 12px;
}
.reportbuilder-sidebar-settings::-webkit-scrollbar-track {
  background: #f8f9fa;
}
.reportbuilder-sidebar-settings::-webkit-scrollbar-thumb {
  background-color: #6a737b;
  border-radius: 20px;
  border: 3px solid #f8f9fa;
}
.reportbuilder-sidebar-settings::-webkit-scrollbar-thumb:hover {
  background-color: #495057;
}
@media (min-width: 992px) {
  .reportbuilder-sidebar-settings {
    width: 350px;
    flex-shrink: 0;
  }
}
.reportbuilder-sidebar-settings div[data-region="settings-conditions"] .reportbuilder-conditions-select .form-autocomplete-selection, .reportbuilder-sidebar-settings div[data-region="settings-filters"] .reportbuilder-filters-select .form-autocomplete-selection {
  display: none;
}
.reportbuilder-sidebar-settings div[data-region="settings-conditions"] .reportbuilder-conditions-select .form-autocomplete-input, .reportbuilder-sidebar-settings div[data-region="settings-filters"] .reportbuilder-filters-select .form-autocomplete-input {
  width: 100%;
}
.reportbuilder-sidebar-settings div[data-region="settings-conditions"] .reportbuilder-conditions-select .form-autocomplete-suggestions, .reportbuilder-sidebar-settings div[data-region="settings-filters"] .reportbuilder-filters-select .form-autocomplete-suggestions {
  width: calc(100% - 2 * 0.5rem);
}
.reportbuilder-sidebar-settings .list-group-item {
  padding: 0.75rem;
}
.reportbuilder-sidebar-settings .list-group-item .icon {
  width: 12px;
  height: 12px;
  font-size: 12px;
  color: #1d2125;
}
.reportbuilder-sidebar-settings .list-group-item button[data-action="report-remove-filter"] .icon, .reportbuilder-sidebar-settings .list-group-item button[data-action="report-remove-condition"] .icon {
  margin-right: 0;
  vertical-align: text-top;
}
.reportbuilder-sidebar-settings .list-group-item span[data-drag-type="move"] .icon {
  vertical-align: text-top;
}
.reportbuilder-sidebar-settings div[data-region="settings-sorting"] .list-group-item span[data-drag-type="move"] .icon {
  vertical-align: middle;
}
.reportbuilder-sidebar-settings div[data-region="settings-cardview"] form .col-md-3, .reportbuilder-sidebar-settings div[data-region="settings-cardview"] form .col-md-9 {
  flex: 1 1;
  max-width: initial;
}
.reportbuilder-sidebar-settings div[data-region="settings-cardview"] form div[data-fieldtype="submit"] {
  flex-basis: auto;
}
.reportbuilder-sidebar-settings .inplaceeditable.inplaceeditingon input {
  width: 100%;
}
@keyframes sortable-list-drag-color-reset {
  from {
    background-color: #8e8e94;
  }
  to {
    background-color: inherit;
  }
}
.reportbuilder-sortable-list li.sortable-list-current-position, .reportbuilder-table th.sortable-list-current-position, .reportbuilder-conditions-list .condition.sortable-list-current-position {
  background-color: #8e8e94;
}
.reportbuilder-sortable-list li.sortable-list-is-dragged, .reportbuilder-table th.sortable-list-is-dragged, .reportbuilder-conditions-list .condition.sortable-list-is-dragged {
  background-color: #fff;
  opacity: 0.85;
}
.reportbuilder-sortable-list li.sortable-list-is-dropped, .reportbuilder-table th.sortable-list-is-dropped, .reportbuilder-conditions-list .condition.sortable-list-is-dropped {
  animation: sortable-list-drag-color-reset 1s ease;
}
.reportbuilder-toggle-card .card-header {
  border-bottom: none;
}
.reportbuilder-toggle-card .card-body {
  border-top: var(--bs-border-width) solid var(--bs-border-color-translucent);
}
.reportbuilder-toggle-card .toggle-card-button i.toggle-card-icon {
  color: #6a737b;
  font-weight: 700;
}
.reportbuilder-toggle-card .toggle-card-button .collapsed-icon-container {
  display: none;
}
.reportbuilder-toggle-card .toggle-card-button .expanded-icon-container {
  display: inline-block;
}
.reportbuilder-toggle-card .toggle-card-button.collapsed .collapsed-icon-container {
  display: inline-block;
}
.reportbuilder-toggle-card .toggle-card-button.collapsed .expanded-icon-container {
  display: none;
}
.reportbuilder-audiences-container .audience-separator {
  text-transform: uppercase;
}
.reportbuilder-audiences-container .audience-separator::before, .reportbuilder-audiences-container .audience-separator::after {
  content: "";
  flex: 1;
  border-bottom: 1px solid rgba(0, 0, 0, 0.125);
}
.reportbuilder-audiences-container .audience-separator:not(:empty)::before {
  margin-right: 1rem;
}
.reportbuilder-audiences-container .audience-separator:not(:empty)::after {
  margin-left: 1rem;
}
.reportbuilder-audiences-container .instance-card .card-header i.icon {
  margin-right: 0;
}
.reportbuilder-report {
  container-type: inline-size;
  /* stylelint-disable-line */
}
@container (width < 576px) {
  /* stylelint-disable-line */
  .reportbuilder-report[data-report-type="0"]:not([data-editing]):not([data-force-table]) table.reportbuilder-table {
    --bs-table-striped-bg: var(--bs-body-bg);
    --bs-table-hover-bg: var(--bs-body-bg);
  }
  .reportbuilder-report[data-report-type="0"]:not([data-editing]):not([data-force-table]) table.reportbuilder-table thead {
    display: none;
  }
  .reportbuilder-report[data-report-type="0"]:not([data-editing]):not([data-force-table]) table.reportbuilder-table tr {
    display: flex;
    flex-direction: column;
    margin: 0.5rem 0;
    padding: 0.25rem 0.5rem 0 0.5rem;
    word-wrap: break-word;
    background-clip: border-box;
    border: var(--bs-border-width) solid var(--bs-border-color-translucent);
    border-radius: var(--bs-border-radius);
  }
  .reportbuilder-report[data-report-type="0"]:not([data-editing]):not([data-force-table]) table.reportbuilder-table tr.emptyrow {
    display: none;
  }
  .reportbuilder-report[data-report-type="0"]:not([data-editing]):not([data-force-table]) table.reportbuilder-table tr:not(.show) td[data-cardviewhidden] {
    display: none;
  }
  .reportbuilder-report[data-report-type="0"]:not([data-editing]):not([data-force-table]) table.reportbuilder-table tr td {
    display: block;
    min-height: 3.6rem;
    padding: 0.5rem 0.25rem;
    border: none;
  }
  .reportbuilder-report[data-report-type="0"]:not([data-editing]):not([data-force-table]) table.reportbuilder-table tr td::before {
    content: attr(data-cardtitle);
    display: block;
    text-transform: uppercase;
    font-size: 70%;
    color: #343a40;
  }
  .reportbuilder-report[data-report-type="0"]:not([data-editing]):not([data-force-table]) table.reportbuilder-table tr td:not([data-cardtitle]) {
    min-height: 3rem;
  }
  .reportbuilder-report[data-report-type="0"]:not([data-editing]):not([data-force-table]) table.reportbuilder-table tr td:not(:first-child):not(.card-toggle) {
    border-top: var(--bs-border-width) solid var(--bs-border-color-translucent);
  }
  .reportbuilder-report[data-report-type="0"]:not([data-editing]):not([data-force-table]) table.reportbuilder-table tr td:first-child {
    padding-right: 2rem;
  }
  .reportbuilder-report[data-report-type="0"]:not([data-editing]):not([data-force-table]) table.reportbuilder-table tr td.card-toggle {
    display: block !important;
    /* stylelint-disable-line declaration-no-important */
    position: absolute;
    right: 10px;
  }
  .reportbuilder-report[data-report-type="0"]:not([data-editing]):not([data-force-table]) table.reportbuilder-table tr td.card-toggle button {
    padding: 0 0.5rem;
    color: #6a737b;
  }
  .reportbuilder-report[data-report-type="0"]:not([data-editing]):not([data-force-table]) table.reportbuilder-table tr td.card-toggle button i {
    font-size: 1.5em;
    font-weight: bold;
  }
}
.reportbuilder-report[data-report-type="0"]:not([data-editing])[data-force-card] table.reportbuilder-table {
  --bs-table-striped-bg: var(--bs-body-bg);
  --bs-table-hover-bg: var(--bs-body-bg);
}
.reportbuilder-report[data-report-type="0"]:not([data-editing])[data-force-card] table.reportbuilder-table thead {
  display: none;
}
.reportbuilder-report[data-report-type="0"]:not([data-editing])[data-force-card] table.reportbuilder-table tr {
  display: flex;
  flex-direction: column;
  margin: 0.5rem 0;
  padding: 0.25rem 0.5rem 0 0.5rem;
  word-wrap: break-word;
  background-clip: border-box;
  border: var(--bs-border-width) solid var(--bs-border-color-translucent);
  border-radius: var(--bs-border-radius);
}
.reportbuilder-report[data-report-type="0"]:not([data-editing])[data-force-card] table.reportbuilder-table tr.emptyrow {
  display: none;
}
.reportbuilder-report[data-report-type="0"]:not([data-editing])[data-force-card] table.reportbuilder-table tr:not(.show) td[data-cardviewhidden] {
  display: none;
}
.reportbuilder-report[data-report-type="0"]:not([data-editing])[data-force-card] table.reportbuilder-table tr td {
  display: block;
  min-height: 3.6rem;
  padding: 0.5rem 0.25rem;
  border: none;
}
.reportbuilder-report[data-report-type="0"]:not([data-editing])[data-force-card] table.reportbuilder-table tr td::before {
  content: attr(data-cardtitle);
  display: block;
  text-transform: uppercase;
  font-size: 70%;
  color: #343a40;
}
.reportbuilder-report[data-report-type="0"]:not([data-editing])[data-force-card] table.reportbuilder-table tr td:not([data-cardtitle]) {
  min-height: 3rem;
}
.reportbuilder-report[data-report-type="0"]:not([data-editing])[data-force-card] table.reportbuilder-table tr td:not(:first-child):not(.card-toggle) {
  border-top: var(--bs-border-width) solid var(--bs-border-color-translucent);
}
.reportbuilder-report[data-report-type="0"]:not([data-editing])[data-force-card] table.reportbuilder-table tr td:first-child {
  padding-right: 2rem;
}
.reportbuilder-report[data-report-type="0"]:not([data-editing])[data-force-card] table.reportbuilder-table tr td.card-toggle {
  display: block !important;
  /* stylelint-disable-line declaration-no-important */
  position: absolute;
  right: 10px;
}
.reportbuilder-report[data-report-type="0"]:not([data-editing])[data-force-card] table.reportbuilder-table tr td.card-toggle button {
  padding: 0 0.5rem;
  color: #6a737b;
}
.reportbuilder-report[data-report-type="0"]:not([data-editing])[data-force-card] table.reportbuilder-table tr td.card-toggle button i {
  font-size: 1.5em;
  font-weight: bold;
}
.courseindex .courseindex-item {
  padding: 0.5rem 0.5rem;
  border: 1px solid transparent;
  border-radius: 0.5rem;
}
.courseindex .courseindex-item.courseindex-section-title a {
  font-weight: bold;
}
.courseindex .courseindex-item .icons-collapse-expand {
  padding-right: 4px;
}
.courseindex .courseindex-item .courseindex-link, .courseindex .courseindex-item .courseindex-chevron {
  color: var(--bs-secondary-color);
}
.courseindex .courseindex-item .courseindex-link:hover, .courseindex .courseindex-item .courseindex-link:focus, .courseindex .courseindex-item .courseindex-chevron:hover, .courseindex .courseindex-item .courseindex-chevron:focus {
  color: black;
  text-decoration: none;
}
.courseindex .courseindex-item:hover, .courseindex .courseindex-item:focus {
  color: black;
}
.courseindex .courseindex-item:hover .courseindex-link, .courseindex .courseindex-item:hover .courseindex-chevron, .courseindex .courseindex-item:focus .courseindex-link, .courseindex .courseindex-item:focus .courseindex-chevron {
  color: black;
  cursor: pointer;
}
.courseindex .courseindex-item:hover.dimmed, .courseindex .courseindex-item:focus.dimmed {
  color: black;
}
.courseindex .courseindex-item:hover.dimmed .courseindex-link, .courseindex .courseindex-item:hover.dimmed .courseindex-chevron, .courseindex .courseindex-item:focus.dimmed .courseindex-link, .courseindex .courseindex-item:focus.dimmed .courseindex-chevron {
  color: black;
}
.courseindex .courseindex-item:hover.draggable, .courseindex .courseindex-item:focus.draggable {
  cursor: move;
}
.courseindex .courseindex-item:hover.pageitem, .courseindex .courseindex-item:hover .pageitem, .courseindex .courseindex-item:focus.pageitem, .courseindex .courseindex-item:focus .pageitem {
  background-color: #171718;
  color: #e6e6e6;
}
.courseindex .courseindex-item:hover.pageitem .courseindex-link, .courseindex .courseindex-item:hover.pageitem .courseindex-chevron, .courseindex .courseindex-item:hover .pageitem .courseindex-link, .courseindex .courseindex-item:hover .pageitem .courseindex-chevron, .courseindex .courseindex-item:focus.pageitem .courseindex-link, .courseindex .courseindex-item:focus.pageitem .courseindex-chevron, .courseindex .courseindex-item:focus .pageitem .courseindex-link, .courseindex .courseindex-item:focus .pageitem .courseindex-chevron {
  color: #e6e6e6;
}
.courseindex .courseindex-item:hover.pageitem .courseindex-link a, .courseindex .courseindex-item:hover.pageitem .courseindex-chevron a, .courseindex .courseindex-item:hover .pageitem .courseindex-link a, .courseindex .courseindex-item:hover .pageitem .courseindex-chevron a, .courseindex .courseindex-item:focus.pageitem .courseindex-link a, .courseindex .courseindex-item:focus.pageitem .courseindex-chevron a, .courseindex .courseindex-item:focus .pageitem .courseindex-link a, .courseindex .courseindex-item:focus .pageitem .courseindex-chevron a {
  color: #e6e6e6;
}
.courseindex .courseindex-item.dragging {
  border: 1px solid #b3d9e0;
  background-color: #e6f2f5;
}
.courseindex .courseindex-item.active {
  background-color: #f8f9fa;
  border-color: #dee2e6;
}
.courseindex .courseindex-item.dimmed {
  color: #6a737b;
}
.courseindex .courseindex-item.dimmed .courseindex-link, .courseindex .courseindex-item.dimmed .courseindex-chevron {
  color: #6a737b;
}
.courseindex .courseindex-item.dimmed.pageitem {
  color: #fff;
}
.courseindex .courseindex-item.dimmed.pageitem a {
  color: #fff;
}
.courseindex .courseindex-item .courseindex-locked {
  display: none;
}
.courseindex .courseindex-item.restrictions .courseindex-locked {
  display: block;
}
.courseindex .courseindex-item.pageitem {
  background-color: #2A2A2C;
  color: #fff;
  scroll-margin: 6rem;
}
.courseindex .courseindex-item.pageitem a {
  color: #fff;
}
.courseindex .courseindex-item .completioninfo {
  min-width: 24px;
}
.courseindex .courseindex-item .completioninfo.completion_complete {
  color: #357a32;
}
.courseindex .courseindex-item .completioninfo.completion_fail {
  color: #ca3120;
}
.courseindex .courseindex-item.indented {
  margin-left: 1rem;
}
.courseindex .courseindex-section {
  border-left: solid 3px transparent;
}
.courseindex .courseindex-section.dragging {
  border: 1px solid #b3d9e0;
  background-color: #e6f2f5;
}
.courseindex .courseindex-section .current-badge {
  line-height: 1.5;
  display: none;
}
.courseindex .courseindex-section.current {
  border-left: solid 3px #2A2A2C;
  /* Skip current badges in delegated sections. */
}
.courseindex .courseindex-section.current .current-badge {
  display: inline-block;
}
.courseindex .courseindex-section.current .delegated-section .current-badge {
  display: none;
}
.courseindex .courseindex-section.dropready .courseindex-item-content {
  /* Extra dropzone space */
  padding-bottom: 1em;
}
.courseindex .courseindex-section .courseindex-sectioncontent .courseindex-item {
  padding-left: 0.5rem;
}
.courseindex .courseindex-section.delegated-section {
  width: 100%;
}
.courseindex .icon {
  font-size: 10px;
}
.courseindex .d-flex-noedit {
  display: none;
}
.courseindex.editing .d-flex-noedit {
  display: flex;
}
.courseindex .placeholders .rounded-circle {
  height: 1rem;
  width: 1rem;
}
.courseindex .placeholders .w-100 {
  height: 1rem;
  margin: 0.5rem 0;
}
.moremenu {
  opacity: 0;
  height: 60px;
}
.moremenu.observed {
  opacity: 1;
}
.moremenu .nav-link {
  height: 60px;
  display: flex;
  align-items: center;
  border-right: none;
  border-bottom: solid 3px transparent;
  border-left: none;
  border-top: none;
}
.moremenu .nav-link:hover, .moremenu .nav-link:focus {
  border-color: transparent;
  background-color: #f8f9fa;
}
.moremenu .nav-link.active {
  background-color: #f8f9fa;
  border-color: transparent;
  border-bottom-color: #2A2A2C;
}
.moremenu .nav-link.active:focus, .moremenu .nav-link.active:hover {
  background-color: #f8f9fa;
  border-bottom-color: #2A2A2C;
}
.moremenu .nav-link.focus, .moremenu .nav-link:focus {
  position: relative;
}
.moremenu .nav-link[data-bs-toggle="tab"] {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.moremenu .nav-link[data-bs-toggle="tab"]::after {
  content: attr(data-text) / "";
  height: 0;
  visibility: hidden;
  overflow: hidden;
  user-select: none;
  pointer-events: none;
  font-weight: bold;
}
@media speech {
  .moremenu .nav-link[data-bs-toggle="tab"]::after {
    display: none;
  }
}
.moremenu .nav-tabs {
  margin-left: 0;
  background-color: #fff;
}
.moremenu .show > .nav-link, .moremenu .active > .nav-link, .moremenu .nav-link.show, .moremenu .nav-link.active {
  background: transparent;
}
.moremenu .dropdownmoremenu > .dropdown-menu > .dropdown-item {
  padding: 0;
}
.moremenu .dropdownmoremenu > .dropdown-menu .dropdown-menu {
  position: static;
  padding: 0;
  border: 0;
}
.moremenu .dropdownmoremenu > .dropdown-menu .dropdown-menu.show {
  display: block;
}
.moremenu .dropdownmoremenu > .dropdown-menu .dropdown-menu .dropdown-item {
  background-color: #f8f9fa;
}
.moremenu .dropdownmoremenu > .dropdown-menu .dropdown-menu .dropdown-item:hover, .moremenu .dropdownmoremenu > .dropdown-menu .dropdown-menu .dropdown-item:focus {
  color: #fff;
  background-color: #2A2A2C;
}
.moremenu .dropdownmoremenu > .dropdown-menu .dropdown-menu .dropdown-divider {
  display: none;
}
.moremenu .dropdown-item {
  padding-left: 1.5rem;
}
.moremenu .dropdown-item[aria-current="true"], .moremenu .dropdown-item.active {
  background-color: transparent;
  color: var(--bs-body-color);
}
.moremenu .dropdown-item[aria-current="true"]:focus-within, .moremenu .dropdown-item[aria-current="true"]:hover, .moremenu .dropdown-item.active:focus-within, .moremenu .dropdown-item.active:hover {
  background-color: #2A2A2C;
  color: #fff;
}
.moremenu .dropdown-item[aria-current="true"]:focus-within a, .moremenu .dropdown-item[aria-current="true"]:hover a, .moremenu .dropdown-item.active:focus-within a, .moremenu .dropdown-item.active:hover a {
  color: #fff;
}
.moremenu .dropdown-item[aria-current="true"]:before, .moremenu .dropdown-item.active:before {
  font: var(--fa-font-solid);
  content: "";
}
.primary-navigation .navigation {
  height: 60px;
}
.primary-navigation .navigation .nav-link {
  height: 60px;
  color: #1d2125;
  border-top: 3px solid transparent;
}
@media (max-width: 767.98px) {
  .primary-navigation {
    display: none;
  }
  .editmode-switch-form label {
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }
  .editmode-switch-form label:not(caption) {
    position: absolute !important;
  }
}
.drawer-primary .drawercontent {
  padding: 0;
}
.drawer-primary .drawercontent .list-group {
  border-radius: 0;
  margin-top: -1px;
}
.drawer-primary .drawercontent .list-group .list-group-item {
  border-left: 0;
  border-right: 0;
}
.secondary-navigation {
  padding-bottom: 15px;
}
.secondary-navigation .navigation {
  border-bottom: 1px solid var(--bs-border-color);
  background-color: #fff;
  margin: 0 -0.5rem;
  padding: 0 0.5rem;
}
.secondary-navigation .navigation .nav-tabs {
  border: none;
  max-width: 830px;
  margin: 0 auto;
}
.secondary-navigation .navigation .nav-tabs .nav-link {
  border-radius: initial;
}
@media (min-width: 768px) {
  .secondary-navigation .navigation {
    padding: 0 calc(0.5rem + 15px);
  }
}
.tertiary-navigation {
  padding-top: 10px;
}
.tertiary-navigation.full-width-bottom-border {
  width: calc(100% + 1rem + 30px);
  margin-left: calc(-0.5rem - 15px);
  margin-right: calc(-0.5rem - 15px);
  border-bottom: 1px solid #dee2e6;
  margin-bottom: 25px;
}
@media (max-width: 767.98px) {
  .tertiary-navigation.full-width-bottom-border {
    width: calc(100% + 1rem);
    margin-left: -0.5rem;
    margin-right: -0.5rem;
  }
}
.tertiary-navigation.full-width-bottom-border .row {
  margin: 0;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.tertiary-navigation .navitem, .tertiary-navigation .navitem-divider {
  display: flex;
  margin-bottom: 25px;
}
.tertiary-navigation .navitem-divider {
  width: 1px;
  background-color: #dee2e6;
}
.tertiary-navigation > a.btn, .tertiary-navigation > div.urlselect {
  margin-bottom: 25px;
}
.tertiary-navigation .row {
  column-gap: 10px;
}
.tertiary-navigation .tertiary-navigation-selector .dropdown-toggle {
  padding: 0;
  font-size: 1.4rem;
  font-weight: bold;
}
.tertiary-navigation h2, .tertiary-navigation .h2 {
  font-size: 1.4rem;
  font-weight: bold;
  margin: 0;
  align-self: center;
}
.tertiary-navigation .navitem:not(:last-child), .tertiary-navigation .navitem-divider:not(:last-child) {
  margin-right: 20px;
}
.tertiary-navigation .btn > div {
  max-width: 200px;
}
@media (max-width: 767.98px) {
  .tertiary-navigation .mform {
    padding-left: initial;
  }
}
@media (max-width: 575.98px) {
  .tertiary-navigation .page-toggler > p {
    font-size: 80%;
  }
}
@media print {
  .tertiary-navigation {
    display: none;
  }
}
.popover-process-monitor {
  position: fixed;
  right: 2rem;
  bottom: 5rem;
  left: initial;
  top: initial;
  width: 350px;
  height: auto;
}
.popover-process-monitor .process-list {
  max-height: 30vh;
  overflow: auto;
  scrollbar-width: thin;
  scrollbar-color: #6a737b #f8f9fa;
}
.popover-process-monitor .process-list::-webkit-scrollbar {
  width: 12px;
}
.popover-process-monitor .process-list::-webkit-scrollbar-track {
  background: #f8f9fa;
}
.popover-process-monitor .process-list::-webkit-scrollbar-thumb {
  background-color: #6a737b;
  border-radius: 20px;
  border: 3px solid #f8f9fa;
}
.popover-process-monitor .process-list::-webkit-scrollbar-thumb:hover {
  background-color: #495057;
}
.popover-process-monitor .queue-process {
  border-bottom: 1px solid #e9ecef;
}
.popover-process-monitor .queue-process:last-child {
  border-bottom: 0;
}
.moodlenet-share-dialog {
  min-height: 500px;
}
.moodlenet-share-dialog .modal-header .moodlenet-share-moodlenetinfo {
  align-items: baseline;
}
.moodlenet-share-dialog .modal-header .moodlenet-share-moodlenetinfo .moodlenet-logo {
  display: flex;
}
.moodlenet-share-dialog .modal-header .moodlenet-share-moodlenetinfo .moodlenet-logo .icon {
  max-width: initial;
  width: auto;
  height: 1.3rem;
}
.moodlenet-share-dialog .modal-header .moodlenet-share-moodlenetinfo .moodlenet-title {
  display: flex;
  padding-left: 0.5em;
}
.moodlenet-share-dialog .modal-header.no-border {
  border-bottom: none;
}
.moodlenet-share-dialog .modal-header.no-header-text .moodlenet-share-moodlenetinfo .moodlenet-title {
  display: none;
}
.moodlenet-share-dialog .modal-body .moodlenet-share-activity-info {
  color: #1d2125;
  border-color: #555556;
  background-color: #eaeaea;
  border-radius: 0.5rem;
  border-width: 1px;
  border-style: solid;
  padding: 0.6em 1.5em;
  margin-bottom: 1rem;
}
.moodlenet-share-dialog .modal-body .moodlenet-share-activity-info .moodlenet-share-activity-info-hr {
  border-bottom: 1px solid #dee2e6;
}
.moodlenet-share-dialog .modal-body .moodlenet-share-activity-info .moodlenet-activity-type, .moodlenet-share-dialog .modal-body .moodlenet-share-activity-info .moodlenet-activity-name {
  display: block;
}
.moodlenet-share-dialog .modal-body .moodlenet-share-notice {
  background-color: #f8f9fa;
  padding: 1rem;
}
.moodlenet-share-dialog .modal-body .moodlenet-share-modal-content .loading-icon .icon {
  max-width: 4em;
  max-height: 4em;
  font-size: 4em;
}
.moodlenet-share-dialog .modal-body .moodlenet-share-modal-content .moodlenet-circle-status {
  height: 18rem;
  margin: auto;
}
.moodlenet-share-dialog .modal-body .moodlenet-share-modal-content .moodlenet-circle-status.success {
  background: radial-gradient(circle, rgba(25, 143, 81, 0.1) 9rem, transparent 9rem);
}
.moodlenet-share-dialog .modal-body .moodlenet-share-modal-content .moodlenet-circle-status.fail {
  background: radial-gradient(circle, rgba(202, 49, 32, 0.1) 9rem, transparent 9rem);
}
.moodlenet-share-dialog .modal-body .moodlenet-share-modal-content .moodlenet-circle-status span {
  display: block;
  margin: auto;
}
.moodlenet-share-dialog .modal-body .moodlenet-share-modal-content .moodlenet-circle-status span.status-icon .icon {
  font-size: 8rem;
  max-width: initial;
  margin: 0;
}
.moodlenet-share-dialog .modal-footer .moodlenet-share-to {
  margin-right: auto;
}
/**
 * Dropdown menu Moodle specific styles.
 */
.dropdown-item a {
  display: block;
  width: 100%;
  color: #1d2125;
}
.dropdown-item.active a, .dropdown-item:active a, .dropdown-item:hover a, .dropdown-item:focus a, .dropdown-item:focus-within a {
  color: #fff;
}
.dropdown-item[aria-current="true"], .dropdown-item[aria-selected="true"] {
  position: relative;
  display: flex;
  align-items: center;
}
.dropdown-item[aria-current="true"]:before, .dropdown-item[aria-selected="true"]:before {
  font: var(--fa-font-solid);
  content: "";
  position: absolute;
  left: 0.4rem;
  font-size: 0.7rem;
}
.dropdown-menu {
  width: fit-content;
}
.dropdown-item:hover.text-primary, .dropdown-item:hover a.text-primary, .dropdown-item:focus.text-primary, .dropdown-item:focus a.text-primary {
  color: #fff !important;
  /* stylelint-disable-line declaration-no-important */
}
.dropdown-item:hover.text-secondary, .dropdown-item:hover a.text-secondary, .dropdown-item:focus.text-secondary, .dropdown-item:focus a.text-secondary {
  color: #fff !important;
  /* stylelint-disable-line declaration-no-important */
}
.dropdown-item:hover.text-success, .dropdown-item:hover a.text-success, .dropdown-item:focus.text-success, .dropdown-item:focus a.text-success {
  color: #fff !important;
  /* stylelint-disable-line declaration-no-important */
}
.dropdown-item:hover.text-info, .dropdown-item:hover a.text-info, .dropdown-item:focus.text-info, .dropdown-item:focus a.text-info {
  color: #fff !important;
  /* stylelint-disable-line declaration-no-important */
}
.dropdown-item:hover.text-warning, .dropdown-item:hover a.text-warning, .dropdown-item:focus.text-warning, .dropdown-item:focus a.text-warning {
  color: #fff !important;
  /* stylelint-disable-line declaration-no-important */
}
.dropdown-item:hover.text-danger, .dropdown-item:hover a.text-danger, .dropdown-item:focus.text-danger, .dropdown-item:focus a.text-danger {
  color: #fff !important;
  /* stylelint-disable-line declaration-no-important */
}
/**
 Deprecations
 */
.course-content .stateready .section .spinner {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  display: none;
}
body.behat-site .course-content .stateready .section .spinner, body.behat-site.course-content .stateready .section .spinner, body.themedesignermode .course-content .stateready .section .spinner, body.themedesignermode.course-content .stateready .section .spinner {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .course-content .stateready .section .spinner::before, body.behat-site.course-content .stateready .section .spinner::before, body.themedesignermode .course-content .stateready .section .spinner::before, body.themedesignermode.course-content .stateready .section .spinner::before {
  content: "Deprecated style in use (.course-content .stateready .section .spinner)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
/**
 * Some backwards compatibility for Bootstrap v4.
 */
.media {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  display: flex;
  align-items: flex-start;
}
body.behat-site .media, body.behat-site.media, body.themedesignermode .media, body.themedesignermode.media {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .media::before, body.behat-site.media::before, body.themedesignermode .media::before, body.themedesignermode.media::before {
  content: "Deprecated style in use (.media)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.media-body {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  flex: 1;
}
body.behat-site .media-body, body.behat-site.media-body, body.themedesignermode .media-body, body.themedesignermode.media-body {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .media-body::before, body.behat-site.media-body::before, body.themedesignermode .media-body::before, body.themedesignermode.media-body::before {
  content: "Deprecated style in use (.media-body)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.badge-primary {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  color: #fff;
  background-color: #2A2A2C;
}
body.behat-site .badge-primary, body.behat-site.badge-primary, body.themedesignermode .badge-primary, body.themedesignermode.badge-primary {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .badge-primary::before, body.behat-site.badge-primary::before, body.themedesignermode .badge-primary::before, body.themedesignermode.badge-primary::before {
  content: "Deprecated style in use (.badge-primary)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
a.badge-primary:hover, a.badge-primary:focus {
  color: #fff;
  background-color: #111112;
}
a.badge-primary:focus, a.badge-primary.focus {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.5);
}
.badge-secondary {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  color: #1d2125;
  background-color: #CAA150;
}
body.behat-site .badge-secondary, body.behat-site.badge-secondary, body.themedesignermode .badge-secondary, body.themedesignermode.badge-secondary {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .badge-secondary::before, body.behat-site.badge-secondary::before, body.themedesignermode .badge-secondary::before, body.themedesignermode.badge-secondary::before {
  content: "Deprecated style in use (.badge-secondary)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
a.badge-secondary:hover, a.badge-secondary:focus {
  color: #1d2125;
  background-color: #b18836;
}
a.badge-secondary:focus, a.badge-secondary.focus {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(202, 161, 80, 0.5);
}
.badge-success {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  color: #fff;
  background-color: #357a32;
}
body.behat-site .badge-success, body.behat-site.badge-success, body.themedesignermode .badge-success, body.themedesignermode.badge-success {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .badge-success::before, body.behat-site.badge-success::before, body.themedesignermode .badge-success::before, body.themedesignermode.badge-success::before {
  content: "Deprecated style in use (.badge-success)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
a.badge-success:hover, a.badge-success:focus {
  color: #fff;
  background-color: #255623;
}
a.badge-success:focus, a.badge-success.focus {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(53, 122, 50, 0.5);
}
.badge-info {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  color: #fff;
  background-color: #008196;
}
body.behat-site .badge-info, body.behat-site.badge-info, body.themedesignermode .badge-info, body.themedesignermode.badge-info {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .badge-info::before, body.behat-site.badge-info::before, body.themedesignermode .badge-info::before, body.themedesignermode.badge-info::before {
  content: "Deprecated style in use (.badge-info)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
a.badge-info:hover, a.badge-info:focus {
  color: #fff;
  background-color: #005563;
}
a.badge-info:focus, a.badge-info.focus {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(0, 129, 150, 0.5);
}
.badge-warning {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  color: #1d2125;
  background-color: #f0ad4e;
}
body.behat-site .badge-warning, body.behat-site.badge-warning, body.themedesignermode .badge-warning, body.themedesignermode.badge-warning {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .badge-warning::before, body.behat-site.badge-warning::before, body.themedesignermode .badge-warning::before, body.themedesignermode.badge-warning::before {
  content: "Deprecated style in use (.badge-warning)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
a.badge-warning:hover, a.badge-warning:focus {
  color: #1d2125;
  background-color: #ec971f;
}
a.badge-warning:focus, a.badge-warning.focus {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(240, 173, 78, 0.5);
}
.badge-danger {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  color: #fff;
  background-color: #ca3120;
}
body.behat-site .badge-danger, body.behat-site.badge-danger, body.themedesignermode .badge-danger, body.themedesignermode.badge-danger {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .badge-danger::before, body.behat-site.badge-danger::before, body.themedesignermode .badge-danger::before, body.themedesignermode.badge-danger::before {
  content: "Deprecated style in use (.badge-danger)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
a.badge-danger:hover, a.badge-danger:focus {
  color: #fff;
  background-color: #9e2619;
}
a.badge-danger:focus, a.badge-danger.focus {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(202, 49, 32, 0.5);
}
.badge-pill {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  padding-right: 0.6em;
  padding-left: 0.6em;
  border-radius: 10rem;
}
body.behat-site .badge-pill, body.behat-site.badge-pill, body.themedesignermode .badge-pill, body.themedesignermode.badge-pill {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .badge-pill::before, body.behat-site.badge-pill::before, body.themedesignermode .badge-pill::before, body.themedesignermode.badge-pill::before {
  content: "Deprecated style in use (.badge-pill)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.form-group {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-bottom: 1rem;
}
body.behat-site .form-group, body.behat-site.form-group, body.themedesignermode .form-group, body.themedesignermode.form-group {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .form-group::before, body.behat-site.form-group::before, body.themedesignermode .form-group::before, body.themedesignermode.form-group::before {
  content: "Deprecated style in use (.form-group)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.form-inline {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  display: flex;
  flex-flow: row wrap;
  align-items: center;
}
body.behat-site .form-inline, body.behat-site.form-inline, body.themedesignermode .form-inline, body.themedesignermode.form-inline {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .form-inline::before, body.behat-site.form-inline::before, body.themedesignermode .form-inline::before, body.themedesignermode.form-inline::before {
  content: "Deprecated style in use (.form-inline)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.form-inline .form-check {
  width: 100%;
}
@media (min-width: 576px) {
  .form-inline label {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
  }
  .form-inline .form-group {
    display: flex;
    flex: 0 0 auto;
    flex-flow: row wrap;
    align-items: center;
    margin-bottom: 0;
  }
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .form-inline .form-control-plaintext {
    display: inline-block;
  }
  .form-inline .input-group, .form-inline .custom-select {
    width: auto;
  }
  .form-inline .form-check {
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    padding-left: 0;
  }
  .form-inline .form-check-input {
    position: relative;
    flex-shrink: 0;
    margin-top: 0;
    margin-right: 0.25rem;
    margin-left: 0;
  }
  .form-inline .custom-control {
    align-items: center;
    justify-content: center;
  }
  .form-inline .custom-control-label {
    margin-bottom: 0;
  }
}
.card-deck {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
}
body.behat-site .card-deck, body.behat-site.card-deck, body.themedesignermode .card-deck, body.themedesignermode.card-deck {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .card-deck::before, body.behat-site.card-deck::before, body.themedesignermode .card-deck::before, body.themedesignermode.card-deck::before {
  content: "Deprecated style in use (.card-deck)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.card-deck .card {
  margin-bottom: 15px;
}
@media (min-width: 576px) {
  .card-deck {
    display: flex;
    flex-flow: row wrap;
    margin-right: -15px;
    margin-left: -15px;
  }
  .card-deck .card {
    flex: 1 0 0%;
    margin-right: 15px;
    margin-bottom: 0;
    margin-left: 15px;
  }
}
.no-gutters {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-right: 0;
  margin-left: 0;
}
body.behat-site .no-gutters, body.behat-site.no-gutters, body.themedesignermode .no-gutters, body.themedesignermode.no-gutters {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .no-gutters::before, body.behat-site.no-gutters::before, body.themedesignermode .no-gutters::before, body.themedesignermode.no-gutters::before {
  content: "Deprecated style in use (.no-gutters)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.no-gutters > .col, .no-gutters > [class*="col-"] {
  padding-right: 0;
  padding-left: 0;
}
.mr-0 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-right: 0 !important;
}
body.behat-site .mr-0, body.behat-site.mr-0, body.themedesignermode .mr-0, body.themedesignermode.mr-0 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .mr-0::before, body.behat-site.mr-0::before, body.themedesignermode .mr-0::before, body.themedesignermode.mr-0::before {
  content: "Deprecated style in use (.mr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.ml-0 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-left: 0 !important;
}
body.behat-site .ml-0, body.behat-site.ml-0, body.themedesignermode .ml-0, body.themedesignermode.ml-0 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .ml-0::before, body.behat-site.ml-0::before, body.themedesignermode .ml-0::before, body.themedesignermode.ml-0::before {
  content: "Deprecated style in use (.ml)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.mr-1 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-right: 0.25rem !important;
}
body.behat-site .mr-1, body.behat-site.mr-1, body.themedesignermode .mr-1, body.themedesignermode.mr-1 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .mr-1::before, body.behat-site.mr-1::before, body.themedesignermode .mr-1::before, body.themedesignermode.mr-1::before {
  content: "Deprecated style in use (.mr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.ml-1 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-left: 0.25rem !important;
}
body.behat-site .ml-1, body.behat-site.ml-1, body.themedesignermode .ml-1, body.themedesignermode.ml-1 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .ml-1::before, body.behat-site.ml-1::before, body.themedesignermode .ml-1::before, body.themedesignermode.ml-1::before {
  content: "Deprecated style in use (.ml)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.mr-2 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-right: 0.5rem !important;
}
body.behat-site .mr-2, body.behat-site.mr-2, body.themedesignermode .mr-2, body.themedesignermode.mr-2 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .mr-2::before, body.behat-site.mr-2::before, body.themedesignermode .mr-2::before, body.themedesignermode.mr-2::before {
  content: "Deprecated style in use (.mr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.ml-2 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-left: 0.5rem !important;
}
body.behat-site .ml-2, body.behat-site.ml-2, body.themedesignermode .ml-2, body.themedesignermode.ml-2 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .ml-2::before, body.behat-site.ml-2::before, body.themedesignermode .ml-2::before, body.themedesignermode.ml-2::before {
  content: "Deprecated style in use (.ml)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.mr-3 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-right: 1rem !important;
}
body.behat-site .mr-3, body.behat-site.mr-3, body.themedesignermode .mr-3, body.themedesignermode.mr-3 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .mr-3::before, body.behat-site.mr-3::before, body.themedesignermode .mr-3::before, body.themedesignermode.mr-3::before {
  content: "Deprecated style in use (.mr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.ml-3 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-left: 1rem !important;
}
body.behat-site .ml-3, body.behat-site.ml-3, body.themedesignermode .ml-3, body.themedesignermode.ml-3 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .ml-3::before, body.behat-site.ml-3::before, body.themedesignermode .ml-3::before, body.themedesignermode.ml-3::before {
  content: "Deprecated style in use (.ml)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.mr-4 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-right: 1.5rem !important;
}
body.behat-site .mr-4, body.behat-site.mr-4, body.themedesignermode .mr-4, body.themedesignermode.mr-4 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .mr-4::before, body.behat-site.mr-4::before, body.themedesignermode .mr-4::before, body.themedesignermode.mr-4::before {
  content: "Deprecated style in use (.mr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.ml-4 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-left: 1.5rem !important;
}
body.behat-site .ml-4, body.behat-site.ml-4, body.themedesignermode .ml-4, body.themedesignermode.ml-4 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .ml-4::before, body.behat-site.ml-4::before, body.themedesignermode .ml-4::before, body.themedesignermode.ml-4::before {
  content: "Deprecated style in use (.ml)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.mr-5 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-right: 2rem !important;
}
body.behat-site .mr-5, body.behat-site.mr-5, body.themedesignermode .mr-5, body.themedesignermode.mr-5 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .mr-5::before, body.behat-site.mr-5::before, body.themedesignermode .mr-5::before, body.themedesignermode.mr-5::before {
  content: "Deprecated style in use (.mr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.ml-5 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-left: 2rem !important;
}
body.behat-site .ml-5, body.behat-site.ml-5, body.themedesignermode .ml-5, body.themedesignermode.ml-5 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .ml-5::before, body.behat-site.ml-5::before, body.themedesignermode .ml-5::before, body.themedesignermode.ml-5::before {
  content: "Deprecated style in use (.ml)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.mr-6 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-right: 3rem !important;
}
body.behat-site .mr-6, body.behat-site.mr-6, body.themedesignermode .mr-6, body.themedesignermode.mr-6 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .mr-6::before, body.behat-site.mr-6::before, body.themedesignermode .mr-6::before, body.themedesignermode.mr-6::before {
  content: "Deprecated style in use (.mr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.ml-6 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-left: 3rem !important;
}
body.behat-site .ml-6, body.behat-site.ml-6, body.themedesignermode .ml-6, body.themedesignermode.ml-6 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .ml-6::before, body.behat-site.ml-6::before, body.themedesignermode .ml-6::before, body.themedesignermode.ml-6::before {
  content: "Deprecated style in use (.ml)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.pr-0 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  padding-right: 0 !important;
}
body.behat-site .pr-0, body.behat-site.pr-0, body.themedesignermode .pr-0, body.themedesignermode.pr-0 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .pr-0::before, body.behat-site.pr-0::before, body.themedesignermode .pr-0::before, body.themedesignermode.pr-0::before {
  content: "Deprecated style in use (.pr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.pl-0 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  padding-left: 0 !important;
}
body.behat-site .pl-0, body.behat-site.pl-0, body.themedesignermode .pl-0, body.themedesignermode.pl-0 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .pl-0::before, body.behat-site.pl-0::before, body.themedesignermode .pl-0::before, body.themedesignermode.pl-0::before {
  content: "Deprecated style in use (.pl)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.pr-1 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  padding-right: 0.25rem !important;
}
body.behat-site .pr-1, body.behat-site.pr-1, body.themedesignermode .pr-1, body.themedesignermode.pr-1 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .pr-1::before, body.behat-site.pr-1::before, body.themedesignermode .pr-1::before, body.themedesignermode.pr-1::before {
  content: "Deprecated style in use (.pr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.pl-1 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  padding-left: 0.25rem !important;
}
body.behat-site .pl-1, body.behat-site.pl-1, body.themedesignermode .pl-1, body.themedesignermode.pl-1 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .pl-1::before, body.behat-site.pl-1::before, body.themedesignermode .pl-1::before, body.themedesignermode.pl-1::before {
  content: "Deprecated style in use (.pl)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.pr-2 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  padding-right: 0.5rem !important;
}
body.behat-site .pr-2, body.behat-site.pr-2, body.themedesignermode .pr-2, body.themedesignermode.pr-2 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .pr-2::before, body.behat-site.pr-2::before, body.themedesignermode .pr-2::before, body.themedesignermode.pr-2::before {
  content: "Deprecated style in use (.pr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.pl-2 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  padding-left: 0.5rem !important;
}
body.behat-site .pl-2, body.behat-site.pl-2, body.themedesignermode .pl-2, body.themedesignermode.pl-2 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .pl-2::before, body.behat-site.pl-2::before, body.themedesignermode .pl-2::before, body.themedesignermode.pl-2::before {
  content: "Deprecated style in use (.pl)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.pr-3 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  padding-right: 1rem !important;
}
body.behat-site .pr-3, body.behat-site.pr-3, body.themedesignermode .pr-3, body.themedesignermode.pr-3 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .pr-3::before, body.behat-site.pr-3::before, body.themedesignermode .pr-3::before, body.themedesignermode.pr-3::before {
  content: "Deprecated style in use (.pr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.pl-3 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  padding-left: 1rem !important;
}
body.behat-site .pl-3, body.behat-site.pl-3, body.themedesignermode .pl-3, body.themedesignermode.pl-3 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .pl-3::before, body.behat-site.pl-3::before, body.themedesignermode .pl-3::before, body.themedesignermode.pl-3::before {
  content: "Deprecated style in use (.pl)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.pr-4 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  padding-right: 1.5rem !important;
}
body.behat-site .pr-4, body.behat-site.pr-4, body.themedesignermode .pr-4, body.themedesignermode.pr-4 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .pr-4::before, body.behat-site.pr-4::before, body.themedesignermode .pr-4::before, body.themedesignermode.pr-4::before {
  content: "Deprecated style in use (.pr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.pl-4 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  padding-left: 1.5rem !important;
}
body.behat-site .pl-4, body.behat-site.pl-4, body.themedesignermode .pl-4, body.themedesignermode.pl-4 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .pl-4::before, body.behat-site.pl-4::before, body.themedesignermode .pl-4::before, body.themedesignermode.pl-4::before {
  content: "Deprecated style in use (.pl)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.pr-5 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  padding-right: 2rem !important;
}
body.behat-site .pr-5, body.behat-site.pr-5, body.themedesignermode .pr-5, body.themedesignermode.pr-5 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .pr-5::before, body.behat-site.pr-5::before, body.themedesignermode .pr-5::before, body.themedesignermode.pr-5::before {
  content: "Deprecated style in use (.pr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.pl-5 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  padding-left: 2rem !important;
}
body.behat-site .pl-5, body.behat-site.pl-5, body.themedesignermode .pl-5, body.themedesignermode.pl-5 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .pl-5::before, body.behat-site.pl-5::before, body.themedesignermode .pl-5::before, body.themedesignermode.pl-5::before {
  content: "Deprecated style in use (.pl)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.pr-6 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  padding-right: 3rem !important;
}
body.behat-site .pr-6, body.behat-site.pr-6, body.themedesignermode .pr-6, body.themedesignermode.pr-6 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .pr-6::before, body.behat-site.pr-6::before, body.themedesignermode .pr-6::before, body.themedesignermode.pr-6::before {
  content: "Deprecated style in use (.pr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.pl-6 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  padding-left: 3rem !important;
}
body.behat-site .pl-6, body.behat-site.pl-6, body.themedesignermode .pl-6, body.themedesignermode.pl-6 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .pl-6::before, body.behat-site.pl-6::before, body.themedesignermode .pl-6::before, body.themedesignermode.pl-6::before {
  content: "Deprecated style in use (.pl)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.mr-n1 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-right: -0.25rem !important;
}
body.behat-site .mr-n1, body.behat-site.mr-n1, body.themedesignermode .mr-n1, body.themedesignermode.mr-n1 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .mr-n1::before, body.behat-site.mr-n1::before, body.themedesignermode .mr-n1::before, body.themedesignermode.mr-n1::before {
  content: "Deprecated style in use (.mr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.ml-n1 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-left: -0.25rem !important;
}
body.behat-site .ml-n1, body.behat-site.ml-n1, body.themedesignermode .ml-n1, body.themedesignermode.ml-n1 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .ml-n1::before, body.behat-site.ml-n1::before, body.themedesignermode .ml-n1::before, body.themedesignermode.ml-n1::before {
  content: "Deprecated style in use (.ml)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.mr-n2 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-right: -0.5rem !important;
}
body.behat-site .mr-n2, body.behat-site.mr-n2, body.themedesignermode .mr-n2, body.themedesignermode.mr-n2 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .mr-n2::before, body.behat-site.mr-n2::before, body.themedesignermode .mr-n2::before, body.themedesignermode.mr-n2::before {
  content: "Deprecated style in use (.mr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.ml-n2 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-left: -0.5rem !important;
}
body.behat-site .ml-n2, body.behat-site.ml-n2, body.themedesignermode .ml-n2, body.themedesignermode.ml-n2 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .ml-n2::before, body.behat-site.ml-n2::before, body.themedesignermode .ml-n2::before, body.themedesignermode.ml-n2::before {
  content: "Deprecated style in use (.ml)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.mr-n3 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-right: -1rem !important;
}
body.behat-site .mr-n3, body.behat-site.mr-n3, body.themedesignermode .mr-n3, body.themedesignermode.mr-n3 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .mr-n3::before, body.behat-site.mr-n3::before, body.themedesignermode .mr-n3::before, body.themedesignermode.mr-n3::before {
  content: "Deprecated style in use (.mr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.ml-n3 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-left: -1rem !important;
}
body.behat-site .ml-n3, body.behat-site.ml-n3, body.themedesignermode .ml-n3, body.themedesignermode.ml-n3 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .ml-n3::before, body.behat-site.ml-n3::before, body.themedesignermode .ml-n3::before, body.themedesignermode.ml-n3::before {
  content: "Deprecated style in use (.ml)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.mr-n4 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-right: -1.5rem !important;
}
body.behat-site .mr-n4, body.behat-site.mr-n4, body.themedesignermode .mr-n4, body.themedesignermode.mr-n4 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .mr-n4::before, body.behat-site.mr-n4::before, body.themedesignermode .mr-n4::before, body.themedesignermode.mr-n4::before {
  content: "Deprecated style in use (.mr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.ml-n4 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-left: -1.5rem !important;
}
body.behat-site .ml-n4, body.behat-site.ml-n4, body.themedesignermode .ml-n4, body.themedesignermode.ml-n4 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .ml-n4::before, body.behat-site.ml-n4::before, body.themedesignermode .ml-n4::before, body.themedesignermode.ml-n4::before {
  content: "Deprecated style in use (.ml)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.mr-n5 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-right: -2rem !important;
}
body.behat-site .mr-n5, body.behat-site.mr-n5, body.themedesignermode .mr-n5, body.themedesignermode.mr-n5 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .mr-n5::before, body.behat-site.mr-n5::before, body.themedesignermode .mr-n5::before, body.themedesignermode.mr-n5::before {
  content: "Deprecated style in use (.mr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.ml-n5 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-left: -2rem !important;
}
body.behat-site .ml-n5, body.behat-site.ml-n5, body.themedesignermode .ml-n5, body.themedesignermode.ml-n5 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .ml-n5::before, body.behat-site.ml-n5::before, body.themedesignermode .ml-n5::before, body.themedesignermode.ml-n5::before {
  content: "Deprecated style in use (.ml)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.mr-n6 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-right: -3rem !important;
}
body.behat-site .mr-n6, body.behat-site.mr-n6, body.themedesignermode .mr-n6, body.themedesignermode.mr-n6 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .mr-n6::before, body.behat-site.mr-n6::before, body.themedesignermode .mr-n6::before, body.themedesignermode.mr-n6::before {
  content: "Deprecated style in use (.mr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.ml-n6 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-left: -3rem !important;
}
body.behat-site .ml-n6, body.behat-site.ml-n6, body.themedesignermode .ml-n6, body.themedesignermode.ml-n6 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .ml-n6::before, body.behat-site.ml-n6::before, body.themedesignermode .ml-n6::before, body.themedesignermode.ml-n6::before {
  content: "Deprecated style in use (.ml)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.mr-auto {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-right: auto !important;
}
body.behat-site .mr-auto, body.behat-site.mr-auto, body.themedesignermode .mr-auto, body.themedesignermode.mr-auto {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .mr-auto::before, body.behat-site.mr-auto::before, body.themedesignermode .mr-auto::before, body.themedesignermode.mr-auto::before {
  content: "Deprecated style in use (.mr)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.ml-auto {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  margin-left: auto !important;
}
body.behat-site .ml-auto, body.behat-site.ml-auto, body.themedesignermode .ml-auto, body.themedesignermode.ml-auto {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .ml-auto::before, body.behat-site.ml-auto::before, body.themedesignermode .ml-auto::before, body.themedesignermode.ml-auto::before {
  content: "Deprecated style in use (.ml)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
@media (min-width: 576px) {
  .mr-sm-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 0 !important;
  }
  body.behat-site .mr-sm-0, body.behat-site.mr-sm-0, body.themedesignermode .mr-sm-0, body.themedesignermode.mr-sm-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-sm-0::before, body.behat-site.mr-sm-0::before, body.themedesignermode .mr-sm-0::before, body.themedesignermode.mr-sm-0::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-sm-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 0 !important;
  }
  body.behat-site .ml-sm-0, body.behat-site.ml-sm-0, body.themedesignermode .ml-sm-0, body.themedesignermode.ml-sm-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-sm-0::before, body.behat-site.ml-sm-0::before, body.themedesignermode .ml-sm-0::before, body.themedesignermode.ml-sm-0::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-sm-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 0.25rem !important;
  }
  body.behat-site .mr-sm-1, body.behat-site.mr-sm-1, body.themedesignermode .mr-sm-1, body.themedesignermode.mr-sm-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-sm-1::before, body.behat-site.mr-sm-1::before, body.themedesignermode .mr-sm-1::before, body.themedesignermode.mr-sm-1::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-sm-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 0.25rem !important;
  }
  body.behat-site .ml-sm-1, body.behat-site.ml-sm-1, body.themedesignermode .ml-sm-1, body.themedesignermode.ml-sm-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-sm-1::before, body.behat-site.ml-sm-1::before, body.themedesignermode .ml-sm-1::before, body.themedesignermode.ml-sm-1::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-sm-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 0.5rem !important;
  }
  body.behat-site .mr-sm-2, body.behat-site.mr-sm-2, body.themedesignermode .mr-sm-2, body.themedesignermode.mr-sm-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-sm-2::before, body.behat-site.mr-sm-2::before, body.themedesignermode .mr-sm-2::before, body.themedesignermode.mr-sm-2::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-sm-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 0.5rem !important;
  }
  body.behat-site .ml-sm-2, body.behat-site.ml-sm-2, body.themedesignermode .ml-sm-2, body.themedesignermode.ml-sm-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-sm-2::before, body.behat-site.ml-sm-2::before, body.themedesignermode .ml-sm-2::before, body.themedesignermode.ml-sm-2::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-sm-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 1rem !important;
  }
  body.behat-site .mr-sm-3, body.behat-site.mr-sm-3, body.themedesignermode .mr-sm-3, body.themedesignermode.mr-sm-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-sm-3::before, body.behat-site.mr-sm-3::before, body.themedesignermode .mr-sm-3::before, body.themedesignermode.mr-sm-3::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-sm-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 1rem !important;
  }
  body.behat-site .ml-sm-3, body.behat-site.ml-sm-3, body.themedesignermode .ml-sm-3, body.themedesignermode.ml-sm-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-sm-3::before, body.behat-site.ml-sm-3::before, body.themedesignermode .ml-sm-3::before, body.themedesignermode.ml-sm-3::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-sm-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 1.5rem !important;
  }
  body.behat-site .mr-sm-4, body.behat-site.mr-sm-4, body.themedesignermode .mr-sm-4, body.themedesignermode.mr-sm-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-sm-4::before, body.behat-site.mr-sm-4::before, body.themedesignermode .mr-sm-4::before, body.themedesignermode.mr-sm-4::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-sm-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 1.5rem !important;
  }
  body.behat-site .ml-sm-4, body.behat-site.ml-sm-4, body.themedesignermode .ml-sm-4, body.themedesignermode.ml-sm-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-sm-4::before, body.behat-site.ml-sm-4::before, body.themedesignermode .ml-sm-4::before, body.themedesignermode.ml-sm-4::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-sm-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 2rem !important;
  }
  body.behat-site .mr-sm-5, body.behat-site.mr-sm-5, body.themedesignermode .mr-sm-5, body.themedesignermode.mr-sm-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-sm-5::before, body.behat-site.mr-sm-5::before, body.themedesignermode .mr-sm-5::before, body.themedesignermode.mr-sm-5::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-sm-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 2rem !important;
  }
  body.behat-site .ml-sm-5, body.behat-site.ml-sm-5, body.themedesignermode .ml-sm-5, body.themedesignermode.ml-sm-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-sm-5::before, body.behat-site.ml-sm-5::before, body.themedesignermode .ml-sm-5::before, body.themedesignermode.ml-sm-5::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-sm-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 3rem !important;
  }
  body.behat-site .mr-sm-6, body.behat-site.mr-sm-6, body.themedesignermode .mr-sm-6, body.themedesignermode.mr-sm-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-sm-6::before, body.behat-site.mr-sm-6::before, body.themedesignermode .mr-sm-6::before, body.themedesignermode.mr-sm-6::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-sm-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 3rem !important;
  }
  body.behat-site .ml-sm-6, body.behat-site.ml-sm-6, body.themedesignermode .ml-sm-6, body.themedesignermode.ml-sm-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-sm-6::before, body.behat-site.ml-sm-6::before, body.themedesignermode .ml-sm-6::before, body.themedesignermode.ml-sm-6::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-sm-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 0 !important;
  }
  body.behat-site .pr-sm-0, body.behat-site.pr-sm-0, body.themedesignermode .pr-sm-0, body.themedesignermode.pr-sm-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-sm-0::before, body.behat-site.pr-sm-0::before, body.themedesignermode .pr-sm-0::before, body.themedesignermode.pr-sm-0::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-sm-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 0 !important;
  }
  body.behat-site .pl-sm-0, body.behat-site.pl-sm-0, body.themedesignermode .pl-sm-0, body.themedesignermode.pl-sm-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-sm-0::before, body.behat-site.pl-sm-0::before, body.themedesignermode .pl-sm-0::before, body.themedesignermode.pl-sm-0::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-sm-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 0.25rem !important;
  }
  body.behat-site .pr-sm-1, body.behat-site.pr-sm-1, body.themedesignermode .pr-sm-1, body.themedesignermode.pr-sm-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-sm-1::before, body.behat-site.pr-sm-1::before, body.themedesignermode .pr-sm-1::before, body.themedesignermode.pr-sm-1::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-sm-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 0.25rem !important;
  }
  body.behat-site .pl-sm-1, body.behat-site.pl-sm-1, body.themedesignermode .pl-sm-1, body.themedesignermode.pl-sm-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-sm-1::before, body.behat-site.pl-sm-1::before, body.themedesignermode .pl-sm-1::before, body.themedesignermode.pl-sm-1::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-sm-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 0.5rem !important;
  }
  body.behat-site .pr-sm-2, body.behat-site.pr-sm-2, body.themedesignermode .pr-sm-2, body.themedesignermode.pr-sm-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-sm-2::before, body.behat-site.pr-sm-2::before, body.themedesignermode .pr-sm-2::before, body.themedesignermode.pr-sm-2::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-sm-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 0.5rem !important;
  }
  body.behat-site .pl-sm-2, body.behat-site.pl-sm-2, body.themedesignermode .pl-sm-2, body.themedesignermode.pl-sm-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-sm-2::before, body.behat-site.pl-sm-2::before, body.themedesignermode .pl-sm-2::before, body.themedesignermode.pl-sm-2::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-sm-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 1rem !important;
  }
  body.behat-site .pr-sm-3, body.behat-site.pr-sm-3, body.themedesignermode .pr-sm-3, body.themedesignermode.pr-sm-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-sm-3::before, body.behat-site.pr-sm-3::before, body.themedesignermode .pr-sm-3::before, body.themedesignermode.pr-sm-3::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-sm-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 1rem !important;
  }
  body.behat-site .pl-sm-3, body.behat-site.pl-sm-3, body.themedesignermode .pl-sm-3, body.themedesignermode.pl-sm-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-sm-3::before, body.behat-site.pl-sm-3::before, body.themedesignermode .pl-sm-3::before, body.themedesignermode.pl-sm-3::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-sm-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 1.5rem !important;
  }
  body.behat-site .pr-sm-4, body.behat-site.pr-sm-4, body.themedesignermode .pr-sm-4, body.themedesignermode.pr-sm-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-sm-4::before, body.behat-site.pr-sm-4::before, body.themedesignermode .pr-sm-4::before, body.themedesignermode.pr-sm-4::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-sm-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 1.5rem !important;
  }
  body.behat-site .pl-sm-4, body.behat-site.pl-sm-4, body.themedesignermode .pl-sm-4, body.themedesignermode.pl-sm-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-sm-4::before, body.behat-site.pl-sm-4::before, body.themedesignermode .pl-sm-4::before, body.themedesignermode.pl-sm-4::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-sm-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 2rem !important;
  }
  body.behat-site .pr-sm-5, body.behat-site.pr-sm-5, body.themedesignermode .pr-sm-5, body.themedesignermode.pr-sm-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-sm-5::before, body.behat-site.pr-sm-5::before, body.themedesignermode .pr-sm-5::before, body.themedesignermode.pr-sm-5::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-sm-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 2rem !important;
  }
  body.behat-site .pl-sm-5, body.behat-site.pl-sm-5, body.themedesignermode .pl-sm-5, body.themedesignermode.pl-sm-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-sm-5::before, body.behat-site.pl-sm-5::before, body.themedesignermode .pl-sm-5::before, body.themedesignermode.pl-sm-5::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-sm-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 3rem !important;
  }
  body.behat-site .pr-sm-6, body.behat-site.pr-sm-6, body.themedesignermode .pr-sm-6, body.themedesignermode.pr-sm-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-sm-6::before, body.behat-site.pr-sm-6::before, body.themedesignermode .pr-sm-6::before, body.themedesignermode.pr-sm-6::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-sm-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 3rem !important;
  }
  body.behat-site .pl-sm-6, body.behat-site.pl-sm-6, body.themedesignermode .pl-sm-6, body.themedesignermode.pl-sm-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-sm-6::before, body.behat-site.pl-sm-6::before, body.themedesignermode .pl-sm-6::before, body.themedesignermode.pl-sm-6::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-sm-n1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -0.25rem !important;
  }
  body.behat-site .mr-sm-n1, body.behat-site.mr-sm-n1, body.themedesignermode .mr-sm-n1, body.themedesignermode.mr-sm-n1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-sm-n1::before, body.behat-site.mr-sm-n1::before, body.themedesignermode .mr-sm-n1::before, body.themedesignermode.mr-sm-n1::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-sm-n1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -0.25rem !important;
  }
  body.behat-site .ml-sm-n1, body.behat-site.ml-sm-n1, body.themedesignermode .ml-sm-n1, body.themedesignermode.ml-sm-n1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-sm-n1::before, body.behat-site.ml-sm-n1::before, body.themedesignermode .ml-sm-n1::before, body.themedesignermode.ml-sm-n1::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-sm-n2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -0.5rem !important;
  }
  body.behat-site .mr-sm-n2, body.behat-site.mr-sm-n2, body.themedesignermode .mr-sm-n2, body.themedesignermode.mr-sm-n2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-sm-n2::before, body.behat-site.mr-sm-n2::before, body.themedesignermode .mr-sm-n2::before, body.themedesignermode.mr-sm-n2::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-sm-n2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -0.5rem !important;
  }
  body.behat-site .ml-sm-n2, body.behat-site.ml-sm-n2, body.themedesignermode .ml-sm-n2, body.themedesignermode.ml-sm-n2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-sm-n2::before, body.behat-site.ml-sm-n2::before, body.themedesignermode .ml-sm-n2::before, body.themedesignermode.ml-sm-n2::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-sm-n3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -1rem !important;
  }
  body.behat-site .mr-sm-n3, body.behat-site.mr-sm-n3, body.themedesignermode .mr-sm-n3, body.themedesignermode.mr-sm-n3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-sm-n3::before, body.behat-site.mr-sm-n3::before, body.themedesignermode .mr-sm-n3::before, body.themedesignermode.mr-sm-n3::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-sm-n3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -1rem !important;
  }
  body.behat-site .ml-sm-n3, body.behat-site.ml-sm-n3, body.themedesignermode .ml-sm-n3, body.themedesignermode.ml-sm-n3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-sm-n3::before, body.behat-site.ml-sm-n3::before, body.themedesignermode .ml-sm-n3::before, body.themedesignermode.ml-sm-n3::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-sm-n4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -1.5rem !important;
  }
  body.behat-site .mr-sm-n4, body.behat-site.mr-sm-n4, body.themedesignermode .mr-sm-n4, body.themedesignermode.mr-sm-n4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-sm-n4::before, body.behat-site.mr-sm-n4::before, body.themedesignermode .mr-sm-n4::before, body.themedesignermode.mr-sm-n4::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-sm-n4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -1.5rem !important;
  }
  body.behat-site .ml-sm-n4, body.behat-site.ml-sm-n4, body.themedesignermode .ml-sm-n4, body.themedesignermode.ml-sm-n4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-sm-n4::before, body.behat-site.ml-sm-n4::before, body.themedesignermode .ml-sm-n4::before, body.themedesignermode.ml-sm-n4::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-sm-n5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -2rem !important;
  }
  body.behat-site .mr-sm-n5, body.behat-site.mr-sm-n5, body.themedesignermode .mr-sm-n5, body.themedesignermode.mr-sm-n5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-sm-n5::before, body.behat-site.mr-sm-n5::before, body.themedesignermode .mr-sm-n5::before, body.themedesignermode.mr-sm-n5::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-sm-n5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -2rem !important;
  }
  body.behat-site .ml-sm-n5, body.behat-site.ml-sm-n5, body.themedesignermode .ml-sm-n5, body.themedesignermode.ml-sm-n5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-sm-n5::before, body.behat-site.ml-sm-n5::before, body.themedesignermode .ml-sm-n5::before, body.themedesignermode.ml-sm-n5::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-sm-n6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -3rem !important;
  }
  body.behat-site .mr-sm-n6, body.behat-site.mr-sm-n6, body.themedesignermode .mr-sm-n6, body.themedesignermode.mr-sm-n6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-sm-n6::before, body.behat-site.mr-sm-n6::before, body.themedesignermode .mr-sm-n6::before, body.themedesignermode.mr-sm-n6::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-sm-n6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -3rem !important;
  }
  body.behat-site .ml-sm-n6, body.behat-site.ml-sm-n6, body.themedesignermode .ml-sm-n6, body.themedesignermode.ml-sm-n6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-sm-n6::before, body.behat-site.ml-sm-n6::before, body.themedesignermode .ml-sm-n6::before, body.themedesignermode.ml-sm-n6::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-sm-auto {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: auto !important;
  }
  body.behat-site .mr-sm-auto, body.behat-site.mr-sm-auto, body.themedesignermode .mr-sm-auto, body.themedesignermode.mr-sm-auto {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-sm-auto::before, body.behat-site.mr-sm-auto::before, body.themedesignermode .mr-sm-auto::before, body.themedesignermode.mr-sm-auto::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-sm-auto {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: auto !important;
  }
  body.behat-site .ml-sm-auto, body.behat-site.ml-sm-auto, body.themedesignermode .ml-sm-auto, body.themedesignermode.ml-sm-auto {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-sm-auto::before, body.behat-site.ml-sm-auto::before, body.themedesignermode .ml-sm-auto::before, body.themedesignermode.ml-sm-auto::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
}
@media (min-width: 768px) {
  .mr-md-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 0 !important;
  }
  body.behat-site .mr-md-0, body.behat-site.mr-md-0, body.themedesignermode .mr-md-0, body.themedesignermode.mr-md-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-md-0::before, body.behat-site.mr-md-0::before, body.themedesignermode .mr-md-0::before, body.themedesignermode.mr-md-0::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-md-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 0 !important;
  }
  body.behat-site .ml-md-0, body.behat-site.ml-md-0, body.themedesignermode .ml-md-0, body.themedesignermode.ml-md-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-md-0::before, body.behat-site.ml-md-0::before, body.themedesignermode .ml-md-0::before, body.themedesignermode.ml-md-0::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-md-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 0.25rem !important;
  }
  body.behat-site .mr-md-1, body.behat-site.mr-md-1, body.themedesignermode .mr-md-1, body.themedesignermode.mr-md-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-md-1::before, body.behat-site.mr-md-1::before, body.themedesignermode .mr-md-1::before, body.themedesignermode.mr-md-1::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-md-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 0.25rem !important;
  }
  body.behat-site .ml-md-1, body.behat-site.ml-md-1, body.themedesignermode .ml-md-1, body.themedesignermode.ml-md-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-md-1::before, body.behat-site.ml-md-1::before, body.themedesignermode .ml-md-1::before, body.themedesignermode.ml-md-1::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-md-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 0.5rem !important;
  }
  body.behat-site .mr-md-2, body.behat-site.mr-md-2, body.themedesignermode .mr-md-2, body.themedesignermode.mr-md-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-md-2::before, body.behat-site.mr-md-2::before, body.themedesignermode .mr-md-2::before, body.themedesignermode.mr-md-2::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-md-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 0.5rem !important;
  }
  body.behat-site .ml-md-2, body.behat-site.ml-md-2, body.themedesignermode .ml-md-2, body.themedesignermode.ml-md-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-md-2::before, body.behat-site.ml-md-2::before, body.themedesignermode .ml-md-2::before, body.themedesignermode.ml-md-2::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-md-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 1rem !important;
  }
  body.behat-site .mr-md-3, body.behat-site.mr-md-3, body.themedesignermode .mr-md-3, body.themedesignermode.mr-md-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-md-3::before, body.behat-site.mr-md-3::before, body.themedesignermode .mr-md-3::before, body.themedesignermode.mr-md-3::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-md-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 1rem !important;
  }
  body.behat-site .ml-md-3, body.behat-site.ml-md-3, body.themedesignermode .ml-md-3, body.themedesignermode.ml-md-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-md-3::before, body.behat-site.ml-md-3::before, body.themedesignermode .ml-md-3::before, body.themedesignermode.ml-md-3::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-md-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 1.5rem !important;
  }
  body.behat-site .mr-md-4, body.behat-site.mr-md-4, body.themedesignermode .mr-md-4, body.themedesignermode.mr-md-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-md-4::before, body.behat-site.mr-md-4::before, body.themedesignermode .mr-md-4::before, body.themedesignermode.mr-md-4::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-md-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 1.5rem !important;
  }
  body.behat-site .ml-md-4, body.behat-site.ml-md-4, body.themedesignermode .ml-md-4, body.themedesignermode.ml-md-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-md-4::before, body.behat-site.ml-md-4::before, body.themedesignermode .ml-md-4::before, body.themedesignermode.ml-md-4::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-md-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 2rem !important;
  }
  body.behat-site .mr-md-5, body.behat-site.mr-md-5, body.themedesignermode .mr-md-5, body.themedesignermode.mr-md-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-md-5::before, body.behat-site.mr-md-5::before, body.themedesignermode .mr-md-5::before, body.themedesignermode.mr-md-5::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-md-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 2rem !important;
  }
  body.behat-site .ml-md-5, body.behat-site.ml-md-5, body.themedesignermode .ml-md-5, body.themedesignermode.ml-md-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-md-5::before, body.behat-site.ml-md-5::before, body.themedesignermode .ml-md-5::before, body.themedesignermode.ml-md-5::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-md-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 3rem !important;
  }
  body.behat-site .mr-md-6, body.behat-site.mr-md-6, body.themedesignermode .mr-md-6, body.themedesignermode.mr-md-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-md-6::before, body.behat-site.mr-md-6::before, body.themedesignermode .mr-md-6::before, body.themedesignermode.mr-md-6::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-md-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 3rem !important;
  }
  body.behat-site .ml-md-6, body.behat-site.ml-md-6, body.themedesignermode .ml-md-6, body.themedesignermode.ml-md-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-md-6::before, body.behat-site.ml-md-6::before, body.themedesignermode .ml-md-6::before, body.themedesignermode.ml-md-6::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-md-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 0 !important;
  }
  body.behat-site .pr-md-0, body.behat-site.pr-md-0, body.themedesignermode .pr-md-0, body.themedesignermode.pr-md-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-md-0::before, body.behat-site.pr-md-0::before, body.themedesignermode .pr-md-0::before, body.themedesignermode.pr-md-0::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-md-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 0 !important;
  }
  body.behat-site .pl-md-0, body.behat-site.pl-md-0, body.themedesignermode .pl-md-0, body.themedesignermode.pl-md-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-md-0::before, body.behat-site.pl-md-0::before, body.themedesignermode .pl-md-0::before, body.themedesignermode.pl-md-0::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-md-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 0.25rem !important;
  }
  body.behat-site .pr-md-1, body.behat-site.pr-md-1, body.themedesignermode .pr-md-1, body.themedesignermode.pr-md-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-md-1::before, body.behat-site.pr-md-1::before, body.themedesignermode .pr-md-1::before, body.themedesignermode.pr-md-1::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-md-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 0.25rem !important;
  }
  body.behat-site .pl-md-1, body.behat-site.pl-md-1, body.themedesignermode .pl-md-1, body.themedesignermode.pl-md-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-md-1::before, body.behat-site.pl-md-1::before, body.themedesignermode .pl-md-1::before, body.themedesignermode.pl-md-1::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-md-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 0.5rem !important;
  }
  body.behat-site .pr-md-2, body.behat-site.pr-md-2, body.themedesignermode .pr-md-2, body.themedesignermode.pr-md-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-md-2::before, body.behat-site.pr-md-2::before, body.themedesignermode .pr-md-2::before, body.themedesignermode.pr-md-2::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-md-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 0.5rem !important;
  }
  body.behat-site .pl-md-2, body.behat-site.pl-md-2, body.themedesignermode .pl-md-2, body.themedesignermode.pl-md-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-md-2::before, body.behat-site.pl-md-2::before, body.themedesignermode .pl-md-2::before, body.themedesignermode.pl-md-2::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-md-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 1rem !important;
  }
  body.behat-site .pr-md-3, body.behat-site.pr-md-3, body.themedesignermode .pr-md-3, body.themedesignermode.pr-md-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-md-3::before, body.behat-site.pr-md-3::before, body.themedesignermode .pr-md-3::before, body.themedesignermode.pr-md-3::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-md-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 1rem !important;
  }
  body.behat-site .pl-md-3, body.behat-site.pl-md-3, body.themedesignermode .pl-md-3, body.themedesignermode.pl-md-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-md-3::before, body.behat-site.pl-md-3::before, body.themedesignermode .pl-md-3::before, body.themedesignermode.pl-md-3::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-md-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 1.5rem !important;
  }
  body.behat-site .pr-md-4, body.behat-site.pr-md-4, body.themedesignermode .pr-md-4, body.themedesignermode.pr-md-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-md-4::before, body.behat-site.pr-md-4::before, body.themedesignermode .pr-md-4::before, body.themedesignermode.pr-md-4::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-md-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 1.5rem !important;
  }
  body.behat-site .pl-md-4, body.behat-site.pl-md-4, body.themedesignermode .pl-md-4, body.themedesignermode.pl-md-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-md-4::before, body.behat-site.pl-md-4::before, body.themedesignermode .pl-md-4::before, body.themedesignermode.pl-md-4::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-md-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 2rem !important;
  }
  body.behat-site .pr-md-5, body.behat-site.pr-md-5, body.themedesignermode .pr-md-5, body.themedesignermode.pr-md-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-md-5::before, body.behat-site.pr-md-5::before, body.themedesignermode .pr-md-5::before, body.themedesignermode.pr-md-5::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-md-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 2rem !important;
  }
  body.behat-site .pl-md-5, body.behat-site.pl-md-5, body.themedesignermode .pl-md-5, body.themedesignermode.pl-md-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-md-5::before, body.behat-site.pl-md-5::before, body.themedesignermode .pl-md-5::before, body.themedesignermode.pl-md-5::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-md-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 3rem !important;
  }
  body.behat-site .pr-md-6, body.behat-site.pr-md-6, body.themedesignermode .pr-md-6, body.themedesignermode.pr-md-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-md-6::before, body.behat-site.pr-md-6::before, body.themedesignermode .pr-md-6::before, body.themedesignermode.pr-md-6::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-md-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 3rem !important;
  }
  body.behat-site .pl-md-6, body.behat-site.pl-md-6, body.themedesignermode .pl-md-6, body.themedesignermode.pl-md-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-md-6::before, body.behat-site.pl-md-6::before, body.themedesignermode .pl-md-6::before, body.themedesignermode.pl-md-6::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-md-n1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -0.25rem !important;
  }
  body.behat-site .mr-md-n1, body.behat-site.mr-md-n1, body.themedesignermode .mr-md-n1, body.themedesignermode.mr-md-n1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-md-n1::before, body.behat-site.mr-md-n1::before, body.themedesignermode .mr-md-n1::before, body.themedesignermode.mr-md-n1::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-md-n1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -0.25rem !important;
  }
  body.behat-site .ml-md-n1, body.behat-site.ml-md-n1, body.themedesignermode .ml-md-n1, body.themedesignermode.ml-md-n1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-md-n1::before, body.behat-site.ml-md-n1::before, body.themedesignermode .ml-md-n1::before, body.themedesignermode.ml-md-n1::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-md-n2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -0.5rem !important;
  }
  body.behat-site .mr-md-n2, body.behat-site.mr-md-n2, body.themedesignermode .mr-md-n2, body.themedesignermode.mr-md-n2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-md-n2::before, body.behat-site.mr-md-n2::before, body.themedesignermode .mr-md-n2::before, body.themedesignermode.mr-md-n2::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-md-n2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -0.5rem !important;
  }
  body.behat-site .ml-md-n2, body.behat-site.ml-md-n2, body.themedesignermode .ml-md-n2, body.themedesignermode.ml-md-n2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-md-n2::before, body.behat-site.ml-md-n2::before, body.themedesignermode .ml-md-n2::before, body.themedesignermode.ml-md-n2::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-md-n3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -1rem !important;
  }
  body.behat-site .mr-md-n3, body.behat-site.mr-md-n3, body.themedesignermode .mr-md-n3, body.themedesignermode.mr-md-n3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-md-n3::before, body.behat-site.mr-md-n3::before, body.themedesignermode .mr-md-n3::before, body.themedesignermode.mr-md-n3::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-md-n3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -1rem !important;
  }
  body.behat-site .ml-md-n3, body.behat-site.ml-md-n3, body.themedesignermode .ml-md-n3, body.themedesignermode.ml-md-n3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-md-n3::before, body.behat-site.ml-md-n3::before, body.themedesignermode .ml-md-n3::before, body.themedesignermode.ml-md-n3::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-md-n4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -1.5rem !important;
  }
  body.behat-site .mr-md-n4, body.behat-site.mr-md-n4, body.themedesignermode .mr-md-n4, body.themedesignermode.mr-md-n4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-md-n4::before, body.behat-site.mr-md-n4::before, body.themedesignermode .mr-md-n4::before, body.themedesignermode.mr-md-n4::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-md-n4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -1.5rem !important;
  }
  body.behat-site .ml-md-n4, body.behat-site.ml-md-n4, body.themedesignermode .ml-md-n4, body.themedesignermode.ml-md-n4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-md-n4::before, body.behat-site.ml-md-n4::before, body.themedesignermode .ml-md-n4::before, body.themedesignermode.ml-md-n4::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-md-n5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -2rem !important;
  }
  body.behat-site .mr-md-n5, body.behat-site.mr-md-n5, body.themedesignermode .mr-md-n5, body.themedesignermode.mr-md-n5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-md-n5::before, body.behat-site.mr-md-n5::before, body.themedesignermode .mr-md-n5::before, body.themedesignermode.mr-md-n5::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-md-n5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -2rem !important;
  }
  body.behat-site .ml-md-n5, body.behat-site.ml-md-n5, body.themedesignermode .ml-md-n5, body.themedesignermode.ml-md-n5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-md-n5::before, body.behat-site.ml-md-n5::before, body.themedesignermode .ml-md-n5::before, body.themedesignermode.ml-md-n5::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-md-n6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -3rem !important;
  }
  body.behat-site .mr-md-n6, body.behat-site.mr-md-n6, body.themedesignermode .mr-md-n6, body.themedesignermode.mr-md-n6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-md-n6::before, body.behat-site.mr-md-n6::before, body.themedesignermode .mr-md-n6::before, body.themedesignermode.mr-md-n6::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-md-n6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -3rem !important;
  }
  body.behat-site .ml-md-n6, body.behat-site.ml-md-n6, body.themedesignermode .ml-md-n6, body.themedesignermode.ml-md-n6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-md-n6::before, body.behat-site.ml-md-n6::before, body.themedesignermode .ml-md-n6::before, body.themedesignermode.ml-md-n6::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-md-auto {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: auto !important;
  }
  body.behat-site .mr-md-auto, body.behat-site.mr-md-auto, body.themedesignermode .mr-md-auto, body.themedesignermode.mr-md-auto {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-md-auto::before, body.behat-site.mr-md-auto::before, body.themedesignermode .mr-md-auto::before, body.themedesignermode.mr-md-auto::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-md-auto {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: auto !important;
  }
  body.behat-site .ml-md-auto, body.behat-site.ml-md-auto, body.themedesignermode .ml-md-auto, body.themedesignermode.ml-md-auto {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-md-auto::before, body.behat-site.ml-md-auto::before, body.themedesignermode .ml-md-auto::before, body.themedesignermode.ml-md-auto::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
}
@media (min-width: 992px) {
  .mr-lg-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 0 !important;
  }
  body.behat-site .mr-lg-0, body.behat-site.mr-lg-0, body.themedesignermode .mr-lg-0, body.themedesignermode.mr-lg-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-lg-0::before, body.behat-site.mr-lg-0::before, body.themedesignermode .mr-lg-0::before, body.themedesignermode.mr-lg-0::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-lg-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 0 !important;
  }
  body.behat-site .ml-lg-0, body.behat-site.ml-lg-0, body.themedesignermode .ml-lg-0, body.themedesignermode.ml-lg-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-lg-0::before, body.behat-site.ml-lg-0::before, body.themedesignermode .ml-lg-0::before, body.themedesignermode.ml-lg-0::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-lg-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 0.25rem !important;
  }
  body.behat-site .mr-lg-1, body.behat-site.mr-lg-1, body.themedesignermode .mr-lg-1, body.themedesignermode.mr-lg-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-lg-1::before, body.behat-site.mr-lg-1::before, body.themedesignermode .mr-lg-1::before, body.themedesignermode.mr-lg-1::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-lg-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 0.25rem !important;
  }
  body.behat-site .ml-lg-1, body.behat-site.ml-lg-1, body.themedesignermode .ml-lg-1, body.themedesignermode.ml-lg-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-lg-1::before, body.behat-site.ml-lg-1::before, body.themedesignermode .ml-lg-1::before, body.themedesignermode.ml-lg-1::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-lg-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 0.5rem !important;
  }
  body.behat-site .mr-lg-2, body.behat-site.mr-lg-2, body.themedesignermode .mr-lg-2, body.themedesignermode.mr-lg-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-lg-2::before, body.behat-site.mr-lg-2::before, body.themedesignermode .mr-lg-2::before, body.themedesignermode.mr-lg-2::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-lg-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 0.5rem !important;
  }
  body.behat-site .ml-lg-2, body.behat-site.ml-lg-2, body.themedesignermode .ml-lg-2, body.themedesignermode.ml-lg-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-lg-2::before, body.behat-site.ml-lg-2::before, body.themedesignermode .ml-lg-2::before, body.themedesignermode.ml-lg-2::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-lg-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 1rem !important;
  }
  body.behat-site .mr-lg-3, body.behat-site.mr-lg-3, body.themedesignermode .mr-lg-3, body.themedesignermode.mr-lg-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-lg-3::before, body.behat-site.mr-lg-3::before, body.themedesignermode .mr-lg-3::before, body.themedesignermode.mr-lg-3::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-lg-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 1rem !important;
  }
  body.behat-site .ml-lg-3, body.behat-site.ml-lg-3, body.themedesignermode .ml-lg-3, body.themedesignermode.ml-lg-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-lg-3::before, body.behat-site.ml-lg-3::before, body.themedesignermode .ml-lg-3::before, body.themedesignermode.ml-lg-3::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-lg-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 1.5rem !important;
  }
  body.behat-site .mr-lg-4, body.behat-site.mr-lg-4, body.themedesignermode .mr-lg-4, body.themedesignermode.mr-lg-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-lg-4::before, body.behat-site.mr-lg-4::before, body.themedesignermode .mr-lg-4::before, body.themedesignermode.mr-lg-4::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-lg-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 1.5rem !important;
  }
  body.behat-site .ml-lg-4, body.behat-site.ml-lg-4, body.themedesignermode .ml-lg-4, body.themedesignermode.ml-lg-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-lg-4::before, body.behat-site.ml-lg-4::before, body.themedesignermode .ml-lg-4::before, body.themedesignermode.ml-lg-4::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-lg-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 2rem !important;
  }
  body.behat-site .mr-lg-5, body.behat-site.mr-lg-5, body.themedesignermode .mr-lg-5, body.themedesignermode.mr-lg-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-lg-5::before, body.behat-site.mr-lg-5::before, body.themedesignermode .mr-lg-5::before, body.themedesignermode.mr-lg-5::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-lg-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 2rem !important;
  }
  body.behat-site .ml-lg-5, body.behat-site.ml-lg-5, body.themedesignermode .ml-lg-5, body.themedesignermode.ml-lg-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-lg-5::before, body.behat-site.ml-lg-5::before, body.themedesignermode .ml-lg-5::before, body.themedesignermode.ml-lg-5::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-lg-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 3rem !important;
  }
  body.behat-site .mr-lg-6, body.behat-site.mr-lg-6, body.themedesignermode .mr-lg-6, body.themedesignermode.mr-lg-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-lg-6::before, body.behat-site.mr-lg-6::before, body.themedesignermode .mr-lg-6::before, body.themedesignermode.mr-lg-6::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-lg-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 3rem !important;
  }
  body.behat-site .ml-lg-6, body.behat-site.ml-lg-6, body.themedesignermode .ml-lg-6, body.themedesignermode.ml-lg-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-lg-6::before, body.behat-site.ml-lg-6::before, body.themedesignermode .ml-lg-6::before, body.themedesignermode.ml-lg-6::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-lg-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 0 !important;
  }
  body.behat-site .pr-lg-0, body.behat-site.pr-lg-0, body.themedesignermode .pr-lg-0, body.themedesignermode.pr-lg-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-lg-0::before, body.behat-site.pr-lg-0::before, body.themedesignermode .pr-lg-0::before, body.themedesignermode.pr-lg-0::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-lg-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 0 !important;
  }
  body.behat-site .pl-lg-0, body.behat-site.pl-lg-0, body.themedesignermode .pl-lg-0, body.themedesignermode.pl-lg-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-lg-0::before, body.behat-site.pl-lg-0::before, body.themedesignermode .pl-lg-0::before, body.themedesignermode.pl-lg-0::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-lg-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 0.25rem !important;
  }
  body.behat-site .pr-lg-1, body.behat-site.pr-lg-1, body.themedesignermode .pr-lg-1, body.themedesignermode.pr-lg-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-lg-1::before, body.behat-site.pr-lg-1::before, body.themedesignermode .pr-lg-1::before, body.themedesignermode.pr-lg-1::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-lg-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 0.25rem !important;
  }
  body.behat-site .pl-lg-1, body.behat-site.pl-lg-1, body.themedesignermode .pl-lg-1, body.themedesignermode.pl-lg-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-lg-1::before, body.behat-site.pl-lg-1::before, body.themedesignermode .pl-lg-1::before, body.themedesignermode.pl-lg-1::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-lg-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 0.5rem !important;
  }
  body.behat-site .pr-lg-2, body.behat-site.pr-lg-2, body.themedesignermode .pr-lg-2, body.themedesignermode.pr-lg-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-lg-2::before, body.behat-site.pr-lg-2::before, body.themedesignermode .pr-lg-2::before, body.themedesignermode.pr-lg-2::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-lg-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 0.5rem !important;
  }
  body.behat-site .pl-lg-2, body.behat-site.pl-lg-2, body.themedesignermode .pl-lg-2, body.themedesignermode.pl-lg-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-lg-2::before, body.behat-site.pl-lg-2::before, body.themedesignermode .pl-lg-2::before, body.themedesignermode.pl-lg-2::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-lg-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 1rem !important;
  }
  body.behat-site .pr-lg-3, body.behat-site.pr-lg-3, body.themedesignermode .pr-lg-3, body.themedesignermode.pr-lg-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-lg-3::before, body.behat-site.pr-lg-3::before, body.themedesignermode .pr-lg-3::before, body.themedesignermode.pr-lg-3::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-lg-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 1rem !important;
  }
  body.behat-site .pl-lg-3, body.behat-site.pl-lg-3, body.themedesignermode .pl-lg-3, body.themedesignermode.pl-lg-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-lg-3::before, body.behat-site.pl-lg-3::before, body.themedesignermode .pl-lg-3::before, body.themedesignermode.pl-lg-3::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-lg-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 1.5rem !important;
  }
  body.behat-site .pr-lg-4, body.behat-site.pr-lg-4, body.themedesignermode .pr-lg-4, body.themedesignermode.pr-lg-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-lg-4::before, body.behat-site.pr-lg-4::before, body.themedesignermode .pr-lg-4::before, body.themedesignermode.pr-lg-4::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-lg-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 1.5rem !important;
  }
  body.behat-site .pl-lg-4, body.behat-site.pl-lg-4, body.themedesignermode .pl-lg-4, body.themedesignermode.pl-lg-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-lg-4::before, body.behat-site.pl-lg-4::before, body.themedesignermode .pl-lg-4::before, body.themedesignermode.pl-lg-4::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-lg-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 2rem !important;
  }
  body.behat-site .pr-lg-5, body.behat-site.pr-lg-5, body.themedesignermode .pr-lg-5, body.themedesignermode.pr-lg-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-lg-5::before, body.behat-site.pr-lg-5::before, body.themedesignermode .pr-lg-5::before, body.themedesignermode.pr-lg-5::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-lg-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 2rem !important;
  }
  body.behat-site .pl-lg-5, body.behat-site.pl-lg-5, body.themedesignermode .pl-lg-5, body.themedesignermode.pl-lg-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-lg-5::before, body.behat-site.pl-lg-5::before, body.themedesignermode .pl-lg-5::before, body.themedesignermode.pl-lg-5::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-lg-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 3rem !important;
  }
  body.behat-site .pr-lg-6, body.behat-site.pr-lg-6, body.themedesignermode .pr-lg-6, body.themedesignermode.pr-lg-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-lg-6::before, body.behat-site.pr-lg-6::before, body.themedesignermode .pr-lg-6::before, body.themedesignermode.pr-lg-6::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-lg-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 3rem !important;
  }
  body.behat-site .pl-lg-6, body.behat-site.pl-lg-6, body.themedesignermode .pl-lg-6, body.themedesignermode.pl-lg-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-lg-6::before, body.behat-site.pl-lg-6::before, body.themedesignermode .pl-lg-6::before, body.themedesignermode.pl-lg-6::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-lg-n1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -0.25rem !important;
  }
  body.behat-site .mr-lg-n1, body.behat-site.mr-lg-n1, body.themedesignermode .mr-lg-n1, body.themedesignermode.mr-lg-n1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-lg-n1::before, body.behat-site.mr-lg-n1::before, body.themedesignermode .mr-lg-n1::before, body.themedesignermode.mr-lg-n1::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-lg-n1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -0.25rem !important;
  }
  body.behat-site .ml-lg-n1, body.behat-site.ml-lg-n1, body.themedesignermode .ml-lg-n1, body.themedesignermode.ml-lg-n1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-lg-n1::before, body.behat-site.ml-lg-n1::before, body.themedesignermode .ml-lg-n1::before, body.themedesignermode.ml-lg-n1::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-lg-n2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -0.5rem !important;
  }
  body.behat-site .mr-lg-n2, body.behat-site.mr-lg-n2, body.themedesignermode .mr-lg-n2, body.themedesignermode.mr-lg-n2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-lg-n2::before, body.behat-site.mr-lg-n2::before, body.themedesignermode .mr-lg-n2::before, body.themedesignermode.mr-lg-n2::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-lg-n2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -0.5rem !important;
  }
  body.behat-site .ml-lg-n2, body.behat-site.ml-lg-n2, body.themedesignermode .ml-lg-n2, body.themedesignermode.ml-lg-n2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-lg-n2::before, body.behat-site.ml-lg-n2::before, body.themedesignermode .ml-lg-n2::before, body.themedesignermode.ml-lg-n2::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-lg-n3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -1rem !important;
  }
  body.behat-site .mr-lg-n3, body.behat-site.mr-lg-n3, body.themedesignermode .mr-lg-n3, body.themedesignermode.mr-lg-n3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-lg-n3::before, body.behat-site.mr-lg-n3::before, body.themedesignermode .mr-lg-n3::before, body.themedesignermode.mr-lg-n3::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-lg-n3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -1rem !important;
  }
  body.behat-site .ml-lg-n3, body.behat-site.ml-lg-n3, body.themedesignermode .ml-lg-n3, body.themedesignermode.ml-lg-n3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-lg-n3::before, body.behat-site.ml-lg-n3::before, body.themedesignermode .ml-lg-n3::before, body.themedesignermode.ml-lg-n3::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-lg-n4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -1.5rem !important;
  }
  body.behat-site .mr-lg-n4, body.behat-site.mr-lg-n4, body.themedesignermode .mr-lg-n4, body.themedesignermode.mr-lg-n4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-lg-n4::before, body.behat-site.mr-lg-n4::before, body.themedesignermode .mr-lg-n4::before, body.themedesignermode.mr-lg-n4::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-lg-n4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -1.5rem !important;
  }
  body.behat-site .ml-lg-n4, body.behat-site.ml-lg-n4, body.themedesignermode .ml-lg-n4, body.themedesignermode.ml-lg-n4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-lg-n4::before, body.behat-site.ml-lg-n4::before, body.themedesignermode .ml-lg-n4::before, body.themedesignermode.ml-lg-n4::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-lg-n5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -2rem !important;
  }
  body.behat-site .mr-lg-n5, body.behat-site.mr-lg-n5, body.themedesignermode .mr-lg-n5, body.themedesignermode.mr-lg-n5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-lg-n5::before, body.behat-site.mr-lg-n5::before, body.themedesignermode .mr-lg-n5::before, body.themedesignermode.mr-lg-n5::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-lg-n5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -2rem !important;
  }
  body.behat-site .ml-lg-n5, body.behat-site.ml-lg-n5, body.themedesignermode .ml-lg-n5, body.themedesignermode.ml-lg-n5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-lg-n5::before, body.behat-site.ml-lg-n5::before, body.themedesignermode .ml-lg-n5::before, body.themedesignermode.ml-lg-n5::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-lg-n6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -3rem !important;
  }
  body.behat-site .mr-lg-n6, body.behat-site.mr-lg-n6, body.themedesignermode .mr-lg-n6, body.themedesignermode.mr-lg-n6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-lg-n6::before, body.behat-site.mr-lg-n6::before, body.themedesignermode .mr-lg-n6::before, body.themedesignermode.mr-lg-n6::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-lg-n6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -3rem !important;
  }
  body.behat-site .ml-lg-n6, body.behat-site.ml-lg-n6, body.themedesignermode .ml-lg-n6, body.themedesignermode.ml-lg-n6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-lg-n6::before, body.behat-site.ml-lg-n6::before, body.themedesignermode .ml-lg-n6::before, body.themedesignermode.ml-lg-n6::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-lg-auto {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: auto !important;
  }
  body.behat-site .mr-lg-auto, body.behat-site.mr-lg-auto, body.themedesignermode .mr-lg-auto, body.themedesignermode.mr-lg-auto {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-lg-auto::before, body.behat-site.mr-lg-auto::before, body.themedesignermode .mr-lg-auto::before, body.themedesignermode.mr-lg-auto::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-lg-auto {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: auto !important;
  }
  body.behat-site .ml-lg-auto, body.behat-site.ml-lg-auto, body.themedesignermode .ml-lg-auto, body.themedesignermode.ml-lg-auto {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-lg-auto::before, body.behat-site.ml-lg-auto::before, body.themedesignermode .ml-lg-auto::before, body.themedesignermode.ml-lg-auto::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
}
@media (min-width: 1200px) {
  .mr-xl-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 0 !important;
  }
  body.behat-site .mr-xl-0, body.behat-site.mr-xl-0, body.themedesignermode .mr-xl-0, body.themedesignermode.mr-xl-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xl-0::before, body.behat-site.mr-xl-0::before, body.themedesignermode .mr-xl-0::before, body.themedesignermode.mr-xl-0::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xl-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 0 !important;
  }
  body.behat-site .ml-xl-0, body.behat-site.ml-xl-0, body.themedesignermode .ml-xl-0, body.themedesignermode.ml-xl-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xl-0::before, body.behat-site.ml-xl-0::before, body.themedesignermode .ml-xl-0::before, body.themedesignermode.ml-xl-0::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xl-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 0.25rem !important;
  }
  body.behat-site .mr-xl-1, body.behat-site.mr-xl-1, body.themedesignermode .mr-xl-1, body.themedesignermode.mr-xl-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xl-1::before, body.behat-site.mr-xl-1::before, body.themedesignermode .mr-xl-1::before, body.themedesignermode.mr-xl-1::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xl-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 0.25rem !important;
  }
  body.behat-site .ml-xl-1, body.behat-site.ml-xl-1, body.themedesignermode .ml-xl-1, body.themedesignermode.ml-xl-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xl-1::before, body.behat-site.ml-xl-1::before, body.themedesignermode .ml-xl-1::before, body.themedesignermode.ml-xl-1::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xl-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 0.5rem !important;
  }
  body.behat-site .mr-xl-2, body.behat-site.mr-xl-2, body.themedesignermode .mr-xl-2, body.themedesignermode.mr-xl-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xl-2::before, body.behat-site.mr-xl-2::before, body.themedesignermode .mr-xl-2::before, body.themedesignermode.mr-xl-2::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xl-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 0.5rem !important;
  }
  body.behat-site .ml-xl-2, body.behat-site.ml-xl-2, body.themedesignermode .ml-xl-2, body.themedesignermode.ml-xl-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xl-2::before, body.behat-site.ml-xl-2::before, body.themedesignermode .ml-xl-2::before, body.themedesignermode.ml-xl-2::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xl-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 1rem !important;
  }
  body.behat-site .mr-xl-3, body.behat-site.mr-xl-3, body.themedesignermode .mr-xl-3, body.themedesignermode.mr-xl-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xl-3::before, body.behat-site.mr-xl-3::before, body.themedesignermode .mr-xl-3::before, body.themedesignermode.mr-xl-3::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xl-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 1rem !important;
  }
  body.behat-site .ml-xl-3, body.behat-site.ml-xl-3, body.themedesignermode .ml-xl-3, body.themedesignermode.ml-xl-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xl-3::before, body.behat-site.ml-xl-3::before, body.themedesignermode .ml-xl-3::before, body.themedesignermode.ml-xl-3::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xl-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 1.5rem !important;
  }
  body.behat-site .mr-xl-4, body.behat-site.mr-xl-4, body.themedesignermode .mr-xl-4, body.themedesignermode.mr-xl-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xl-4::before, body.behat-site.mr-xl-4::before, body.themedesignermode .mr-xl-4::before, body.themedesignermode.mr-xl-4::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xl-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 1.5rem !important;
  }
  body.behat-site .ml-xl-4, body.behat-site.ml-xl-4, body.themedesignermode .ml-xl-4, body.themedesignermode.ml-xl-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xl-4::before, body.behat-site.ml-xl-4::before, body.themedesignermode .ml-xl-4::before, body.themedesignermode.ml-xl-4::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xl-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 2rem !important;
  }
  body.behat-site .mr-xl-5, body.behat-site.mr-xl-5, body.themedesignermode .mr-xl-5, body.themedesignermode.mr-xl-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xl-5::before, body.behat-site.mr-xl-5::before, body.themedesignermode .mr-xl-5::before, body.themedesignermode.mr-xl-5::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xl-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 2rem !important;
  }
  body.behat-site .ml-xl-5, body.behat-site.ml-xl-5, body.themedesignermode .ml-xl-5, body.themedesignermode.ml-xl-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xl-5::before, body.behat-site.ml-xl-5::before, body.themedesignermode .ml-xl-5::before, body.themedesignermode.ml-xl-5::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xl-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 3rem !important;
  }
  body.behat-site .mr-xl-6, body.behat-site.mr-xl-6, body.themedesignermode .mr-xl-6, body.themedesignermode.mr-xl-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xl-6::before, body.behat-site.mr-xl-6::before, body.themedesignermode .mr-xl-6::before, body.themedesignermode.mr-xl-6::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xl-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 3rem !important;
  }
  body.behat-site .ml-xl-6, body.behat-site.ml-xl-6, body.themedesignermode .ml-xl-6, body.themedesignermode.ml-xl-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xl-6::before, body.behat-site.ml-xl-6::before, body.themedesignermode .ml-xl-6::before, body.themedesignermode.ml-xl-6::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-xl-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 0 !important;
  }
  body.behat-site .pr-xl-0, body.behat-site.pr-xl-0, body.themedesignermode .pr-xl-0, body.themedesignermode.pr-xl-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-xl-0::before, body.behat-site.pr-xl-0::before, body.themedesignermode .pr-xl-0::before, body.themedesignermode.pr-xl-0::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-xl-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 0 !important;
  }
  body.behat-site .pl-xl-0, body.behat-site.pl-xl-0, body.themedesignermode .pl-xl-0, body.themedesignermode.pl-xl-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-xl-0::before, body.behat-site.pl-xl-0::before, body.themedesignermode .pl-xl-0::before, body.themedesignermode.pl-xl-0::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-xl-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 0.25rem !important;
  }
  body.behat-site .pr-xl-1, body.behat-site.pr-xl-1, body.themedesignermode .pr-xl-1, body.themedesignermode.pr-xl-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-xl-1::before, body.behat-site.pr-xl-1::before, body.themedesignermode .pr-xl-1::before, body.themedesignermode.pr-xl-1::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-xl-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 0.25rem !important;
  }
  body.behat-site .pl-xl-1, body.behat-site.pl-xl-1, body.themedesignermode .pl-xl-1, body.themedesignermode.pl-xl-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-xl-1::before, body.behat-site.pl-xl-1::before, body.themedesignermode .pl-xl-1::before, body.themedesignermode.pl-xl-1::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-xl-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 0.5rem !important;
  }
  body.behat-site .pr-xl-2, body.behat-site.pr-xl-2, body.themedesignermode .pr-xl-2, body.themedesignermode.pr-xl-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-xl-2::before, body.behat-site.pr-xl-2::before, body.themedesignermode .pr-xl-2::before, body.themedesignermode.pr-xl-2::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-xl-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 0.5rem !important;
  }
  body.behat-site .pl-xl-2, body.behat-site.pl-xl-2, body.themedesignermode .pl-xl-2, body.themedesignermode.pl-xl-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-xl-2::before, body.behat-site.pl-xl-2::before, body.themedesignermode .pl-xl-2::before, body.themedesignermode.pl-xl-2::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-xl-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 1rem !important;
  }
  body.behat-site .pr-xl-3, body.behat-site.pr-xl-3, body.themedesignermode .pr-xl-3, body.themedesignermode.pr-xl-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-xl-3::before, body.behat-site.pr-xl-3::before, body.themedesignermode .pr-xl-3::before, body.themedesignermode.pr-xl-3::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-xl-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 1rem !important;
  }
  body.behat-site .pl-xl-3, body.behat-site.pl-xl-3, body.themedesignermode .pl-xl-3, body.themedesignermode.pl-xl-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-xl-3::before, body.behat-site.pl-xl-3::before, body.themedesignermode .pl-xl-3::before, body.themedesignermode.pl-xl-3::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-xl-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 1.5rem !important;
  }
  body.behat-site .pr-xl-4, body.behat-site.pr-xl-4, body.themedesignermode .pr-xl-4, body.themedesignermode.pr-xl-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-xl-4::before, body.behat-site.pr-xl-4::before, body.themedesignermode .pr-xl-4::before, body.themedesignermode.pr-xl-4::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-xl-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 1.5rem !important;
  }
  body.behat-site .pl-xl-4, body.behat-site.pl-xl-4, body.themedesignermode .pl-xl-4, body.themedesignermode.pl-xl-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-xl-4::before, body.behat-site.pl-xl-4::before, body.themedesignermode .pl-xl-4::before, body.themedesignermode.pl-xl-4::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-xl-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 2rem !important;
  }
  body.behat-site .pr-xl-5, body.behat-site.pr-xl-5, body.themedesignermode .pr-xl-5, body.themedesignermode.pr-xl-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-xl-5::before, body.behat-site.pr-xl-5::before, body.themedesignermode .pr-xl-5::before, body.themedesignermode.pr-xl-5::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-xl-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 2rem !important;
  }
  body.behat-site .pl-xl-5, body.behat-site.pl-xl-5, body.themedesignermode .pl-xl-5, body.themedesignermode.pl-xl-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-xl-5::before, body.behat-site.pl-xl-5::before, body.themedesignermode .pl-xl-5::before, body.themedesignermode.pl-xl-5::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-xl-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 3rem !important;
  }
  body.behat-site .pr-xl-6, body.behat-site.pr-xl-6, body.themedesignermode .pr-xl-6, body.themedesignermode.pr-xl-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-xl-6::before, body.behat-site.pr-xl-6::before, body.themedesignermode .pr-xl-6::before, body.themedesignermode.pr-xl-6::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-xl-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 3rem !important;
  }
  body.behat-site .pl-xl-6, body.behat-site.pl-xl-6, body.themedesignermode .pl-xl-6, body.themedesignermode.pl-xl-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-xl-6::before, body.behat-site.pl-xl-6::before, body.themedesignermode .pl-xl-6::before, body.themedesignermode.pl-xl-6::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xl-n1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -0.25rem !important;
  }
  body.behat-site .mr-xl-n1, body.behat-site.mr-xl-n1, body.themedesignermode .mr-xl-n1, body.themedesignermode.mr-xl-n1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xl-n1::before, body.behat-site.mr-xl-n1::before, body.themedesignermode .mr-xl-n1::before, body.themedesignermode.mr-xl-n1::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xl-n1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -0.25rem !important;
  }
  body.behat-site .ml-xl-n1, body.behat-site.ml-xl-n1, body.themedesignermode .ml-xl-n1, body.themedesignermode.ml-xl-n1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xl-n1::before, body.behat-site.ml-xl-n1::before, body.themedesignermode .ml-xl-n1::before, body.themedesignermode.ml-xl-n1::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xl-n2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -0.5rem !important;
  }
  body.behat-site .mr-xl-n2, body.behat-site.mr-xl-n2, body.themedesignermode .mr-xl-n2, body.themedesignermode.mr-xl-n2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xl-n2::before, body.behat-site.mr-xl-n2::before, body.themedesignermode .mr-xl-n2::before, body.themedesignermode.mr-xl-n2::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xl-n2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -0.5rem !important;
  }
  body.behat-site .ml-xl-n2, body.behat-site.ml-xl-n2, body.themedesignermode .ml-xl-n2, body.themedesignermode.ml-xl-n2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xl-n2::before, body.behat-site.ml-xl-n2::before, body.themedesignermode .ml-xl-n2::before, body.themedesignermode.ml-xl-n2::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xl-n3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -1rem !important;
  }
  body.behat-site .mr-xl-n3, body.behat-site.mr-xl-n3, body.themedesignermode .mr-xl-n3, body.themedesignermode.mr-xl-n3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xl-n3::before, body.behat-site.mr-xl-n3::before, body.themedesignermode .mr-xl-n3::before, body.themedesignermode.mr-xl-n3::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xl-n3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -1rem !important;
  }
  body.behat-site .ml-xl-n3, body.behat-site.ml-xl-n3, body.themedesignermode .ml-xl-n3, body.themedesignermode.ml-xl-n3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xl-n3::before, body.behat-site.ml-xl-n3::before, body.themedesignermode .ml-xl-n3::before, body.themedesignermode.ml-xl-n3::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xl-n4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -1.5rem !important;
  }
  body.behat-site .mr-xl-n4, body.behat-site.mr-xl-n4, body.themedesignermode .mr-xl-n4, body.themedesignermode.mr-xl-n4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xl-n4::before, body.behat-site.mr-xl-n4::before, body.themedesignermode .mr-xl-n4::before, body.themedesignermode.mr-xl-n4::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xl-n4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -1.5rem !important;
  }
  body.behat-site .ml-xl-n4, body.behat-site.ml-xl-n4, body.themedesignermode .ml-xl-n4, body.themedesignermode.ml-xl-n4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xl-n4::before, body.behat-site.ml-xl-n4::before, body.themedesignermode .ml-xl-n4::before, body.themedesignermode.ml-xl-n4::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xl-n5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -2rem !important;
  }
  body.behat-site .mr-xl-n5, body.behat-site.mr-xl-n5, body.themedesignermode .mr-xl-n5, body.themedesignermode.mr-xl-n5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xl-n5::before, body.behat-site.mr-xl-n5::before, body.themedesignermode .mr-xl-n5::before, body.themedesignermode.mr-xl-n5::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xl-n5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -2rem !important;
  }
  body.behat-site .ml-xl-n5, body.behat-site.ml-xl-n5, body.themedesignermode .ml-xl-n5, body.themedesignermode.ml-xl-n5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xl-n5::before, body.behat-site.ml-xl-n5::before, body.themedesignermode .ml-xl-n5::before, body.themedesignermode.ml-xl-n5::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xl-n6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -3rem !important;
  }
  body.behat-site .mr-xl-n6, body.behat-site.mr-xl-n6, body.themedesignermode .mr-xl-n6, body.themedesignermode.mr-xl-n6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xl-n6::before, body.behat-site.mr-xl-n6::before, body.themedesignermode .mr-xl-n6::before, body.themedesignermode.mr-xl-n6::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xl-n6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -3rem !important;
  }
  body.behat-site .ml-xl-n6, body.behat-site.ml-xl-n6, body.themedesignermode .ml-xl-n6, body.themedesignermode.ml-xl-n6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xl-n6::before, body.behat-site.ml-xl-n6::before, body.themedesignermode .ml-xl-n6::before, body.themedesignermode.ml-xl-n6::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xl-auto {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: auto !important;
  }
  body.behat-site .mr-xl-auto, body.behat-site.mr-xl-auto, body.themedesignermode .mr-xl-auto, body.themedesignermode.mr-xl-auto {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xl-auto::before, body.behat-site.mr-xl-auto::before, body.themedesignermode .mr-xl-auto::before, body.themedesignermode.mr-xl-auto::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xl-auto {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: auto !important;
  }
  body.behat-site .ml-xl-auto, body.behat-site.ml-xl-auto, body.themedesignermode .ml-xl-auto, body.themedesignermode.ml-xl-auto {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xl-auto::before, body.behat-site.ml-xl-auto::before, body.themedesignermode .ml-xl-auto::before, body.themedesignermode.ml-xl-auto::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
}
@media (min-width: 1400px) {
  .mr-xxl-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 0 !important;
  }
  body.behat-site .mr-xxl-0, body.behat-site.mr-xxl-0, body.themedesignermode .mr-xxl-0, body.themedesignermode.mr-xxl-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xxl-0::before, body.behat-site.mr-xxl-0::before, body.themedesignermode .mr-xxl-0::before, body.themedesignermode.mr-xxl-0::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xxl-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 0 !important;
  }
  body.behat-site .ml-xxl-0, body.behat-site.ml-xxl-0, body.themedesignermode .ml-xxl-0, body.themedesignermode.ml-xxl-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xxl-0::before, body.behat-site.ml-xxl-0::before, body.themedesignermode .ml-xxl-0::before, body.themedesignermode.ml-xxl-0::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xxl-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 0.25rem !important;
  }
  body.behat-site .mr-xxl-1, body.behat-site.mr-xxl-1, body.themedesignermode .mr-xxl-1, body.themedesignermode.mr-xxl-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xxl-1::before, body.behat-site.mr-xxl-1::before, body.themedesignermode .mr-xxl-1::before, body.themedesignermode.mr-xxl-1::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xxl-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 0.25rem !important;
  }
  body.behat-site .ml-xxl-1, body.behat-site.ml-xxl-1, body.themedesignermode .ml-xxl-1, body.themedesignermode.ml-xxl-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xxl-1::before, body.behat-site.ml-xxl-1::before, body.themedesignermode .ml-xxl-1::before, body.themedesignermode.ml-xxl-1::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xxl-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 0.5rem !important;
  }
  body.behat-site .mr-xxl-2, body.behat-site.mr-xxl-2, body.themedesignermode .mr-xxl-2, body.themedesignermode.mr-xxl-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xxl-2::before, body.behat-site.mr-xxl-2::before, body.themedesignermode .mr-xxl-2::before, body.themedesignermode.mr-xxl-2::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xxl-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 0.5rem !important;
  }
  body.behat-site .ml-xxl-2, body.behat-site.ml-xxl-2, body.themedesignermode .ml-xxl-2, body.themedesignermode.ml-xxl-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xxl-2::before, body.behat-site.ml-xxl-2::before, body.themedesignermode .ml-xxl-2::before, body.themedesignermode.ml-xxl-2::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xxl-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 1rem !important;
  }
  body.behat-site .mr-xxl-3, body.behat-site.mr-xxl-3, body.themedesignermode .mr-xxl-3, body.themedesignermode.mr-xxl-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xxl-3::before, body.behat-site.mr-xxl-3::before, body.themedesignermode .mr-xxl-3::before, body.themedesignermode.mr-xxl-3::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xxl-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 1rem !important;
  }
  body.behat-site .ml-xxl-3, body.behat-site.ml-xxl-3, body.themedesignermode .ml-xxl-3, body.themedesignermode.ml-xxl-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xxl-3::before, body.behat-site.ml-xxl-3::before, body.themedesignermode .ml-xxl-3::before, body.themedesignermode.ml-xxl-3::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xxl-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 1.5rem !important;
  }
  body.behat-site .mr-xxl-4, body.behat-site.mr-xxl-4, body.themedesignermode .mr-xxl-4, body.themedesignermode.mr-xxl-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xxl-4::before, body.behat-site.mr-xxl-4::before, body.themedesignermode .mr-xxl-4::before, body.themedesignermode.mr-xxl-4::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xxl-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 1.5rem !important;
  }
  body.behat-site .ml-xxl-4, body.behat-site.ml-xxl-4, body.themedesignermode .ml-xxl-4, body.themedesignermode.ml-xxl-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xxl-4::before, body.behat-site.ml-xxl-4::before, body.themedesignermode .ml-xxl-4::before, body.themedesignermode.ml-xxl-4::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xxl-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 2rem !important;
  }
  body.behat-site .mr-xxl-5, body.behat-site.mr-xxl-5, body.themedesignermode .mr-xxl-5, body.themedesignermode.mr-xxl-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xxl-5::before, body.behat-site.mr-xxl-5::before, body.themedesignermode .mr-xxl-5::before, body.themedesignermode.mr-xxl-5::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xxl-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 2rem !important;
  }
  body.behat-site .ml-xxl-5, body.behat-site.ml-xxl-5, body.themedesignermode .ml-xxl-5, body.themedesignermode.ml-xxl-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xxl-5::before, body.behat-site.ml-xxl-5::before, body.themedesignermode .ml-xxl-5::before, body.themedesignermode.ml-xxl-5::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xxl-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: 3rem !important;
  }
  body.behat-site .mr-xxl-6, body.behat-site.mr-xxl-6, body.themedesignermode .mr-xxl-6, body.themedesignermode.mr-xxl-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xxl-6::before, body.behat-site.mr-xxl-6::before, body.themedesignermode .mr-xxl-6::before, body.themedesignermode.mr-xxl-6::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xxl-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: 3rem !important;
  }
  body.behat-site .ml-xxl-6, body.behat-site.ml-xxl-6, body.themedesignermode .ml-xxl-6, body.themedesignermode.ml-xxl-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xxl-6::before, body.behat-site.ml-xxl-6::before, body.themedesignermode .ml-xxl-6::before, body.themedesignermode.ml-xxl-6::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-xxl-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 0 !important;
  }
  body.behat-site .pr-xxl-0, body.behat-site.pr-xxl-0, body.themedesignermode .pr-xxl-0, body.themedesignermode.pr-xxl-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-xxl-0::before, body.behat-site.pr-xxl-0::before, body.themedesignermode .pr-xxl-0::before, body.themedesignermode.pr-xxl-0::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-xxl-0 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 0 !important;
  }
  body.behat-site .pl-xxl-0, body.behat-site.pl-xxl-0, body.themedesignermode .pl-xxl-0, body.themedesignermode.pl-xxl-0 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-xxl-0::before, body.behat-site.pl-xxl-0::before, body.themedesignermode .pl-xxl-0::before, body.themedesignermode.pl-xxl-0::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-xxl-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 0.25rem !important;
  }
  body.behat-site .pr-xxl-1, body.behat-site.pr-xxl-1, body.themedesignermode .pr-xxl-1, body.themedesignermode.pr-xxl-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-xxl-1::before, body.behat-site.pr-xxl-1::before, body.themedesignermode .pr-xxl-1::before, body.themedesignermode.pr-xxl-1::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-xxl-1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 0.25rem !important;
  }
  body.behat-site .pl-xxl-1, body.behat-site.pl-xxl-1, body.themedesignermode .pl-xxl-1, body.themedesignermode.pl-xxl-1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-xxl-1::before, body.behat-site.pl-xxl-1::before, body.themedesignermode .pl-xxl-1::before, body.themedesignermode.pl-xxl-1::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-xxl-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 0.5rem !important;
  }
  body.behat-site .pr-xxl-2, body.behat-site.pr-xxl-2, body.themedesignermode .pr-xxl-2, body.themedesignermode.pr-xxl-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-xxl-2::before, body.behat-site.pr-xxl-2::before, body.themedesignermode .pr-xxl-2::before, body.themedesignermode.pr-xxl-2::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-xxl-2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 0.5rem !important;
  }
  body.behat-site .pl-xxl-2, body.behat-site.pl-xxl-2, body.themedesignermode .pl-xxl-2, body.themedesignermode.pl-xxl-2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-xxl-2::before, body.behat-site.pl-xxl-2::before, body.themedesignermode .pl-xxl-2::before, body.themedesignermode.pl-xxl-2::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-xxl-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 1rem !important;
  }
  body.behat-site .pr-xxl-3, body.behat-site.pr-xxl-3, body.themedesignermode .pr-xxl-3, body.themedesignermode.pr-xxl-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-xxl-3::before, body.behat-site.pr-xxl-3::before, body.themedesignermode .pr-xxl-3::before, body.themedesignermode.pr-xxl-3::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-xxl-3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 1rem !important;
  }
  body.behat-site .pl-xxl-3, body.behat-site.pl-xxl-3, body.themedesignermode .pl-xxl-3, body.themedesignermode.pl-xxl-3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-xxl-3::before, body.behat-site.pl-xxl-3::before, body.themedesignermode .pl-xxl-3::before, body.themedesignermode.pl-xxl-3::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-xxl-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 1.5rem !important;
  }
  body.behat-site .pr-xxl-4, body.behat-site.pr-xxl-4, body.themedesignermode .pr-xxl-4, body.themedesignermode.pr-xxl-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-xxl-4::before, body.behat-site.pr-xxl-4::before, body.themedesignermode .pr-xxl-4::before, body.themedesignermode.pr-xxl-4::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-xxl-4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 1.5rem !important;
  }
  body.behat-site .pl-xxl-4, body.behat-site.pl-xxl-4, body.themedesignermode .pl-xxl-4, body.themedesignermode.pl-xxl-4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-xxl-4::before, body.behat-site.pl-xxl-4::before, body.themedesignermode .pl-xxl-4::before, body.themedesignermode.pl-xxl-4::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-xxl-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 2rem !important;
  }
  body.behat-site .pr-xxl-5, body.behat-site.pr-xxl-5, body.themedesignermode .pr-xxl-5, body.themedesignermode.pr-xxl-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-xxl-5::before, body.behat-site.pr-xxl-5::before, body.themedesignermode .pr-xxl-5::before, body.themedesignermode.pr-xxl-5::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-xxl-5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 2rem !important;
  }
  body.behat-site .pl-xxl-5, body.behat-site.pl-xxl-5, body.themedesignermode .pl-xxl-5, body.themedesignermode.pl-xxl-5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-xxl-5::before, body.behat-site.pl-xxl-5::before, body.themedesignermode .pl-xxl-5::before, body.themedesignermode.pl-xxl-5::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pr-xxl-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-right: 3rem !important;
  }
  body.behat-site .pr-xxl-6, body.behat-site.pr-xxl-6, body.themedesignermode .pr-xxl-6, body.themedesignermode.pr-xxl-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pr-xxl-6::before, body.behat-site.pr-xxl-6::before, body.themedesignermode .pr-xxl-6::before, body.themedesignermode.pr-xxl-6::before {
    content: "Deprecated style in use (.pr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .pl-xxl-6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    padding-left: 3rem !important;
  }
  body.behat-site .pl-xxl-6, body.behat-site.pl-xxl-6, body.themedesignermode .pl-xxl-6, body.themedesignermode.pl-xxl-6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .pl-xxl-6::before, body.behat-site.pl-xxl-6::before, body.themedesignermode .pl-xxl-6::before, body.themedesignermode.pl-xxl-6::before {
    content: "Deprecated style in use (.pl)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xxl-n1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -0.25rem !important;
  }
  body.behat-site .mr-xxl-n1, body.behat-site.mr-xxl-n1, body.themedesignermode .mr-xxl-n1, body.themedesignermode.mr-xxl-n1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xxl-n1::before, body.behat-site.mr-xxl-n1::before, body.themedesignermode .mr-xxl-n1::before, body.themedesignermode.mr-xxl-n1::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xxl-n1 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -0.25rem !important;
  }
  body.behat-site .ml-xxl-n1, body.behat-site.ml-xxl-n1, body.themedesignermode .ml-xxl-n1, body.themedesignermode.ml-xxl-n1 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xxl-n1::before, body.behat-site.ml-xxl-n1::before, body.themedesignermode .ml-xxl-n1::before, body.themedesignermode.ml-xxl-n1::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xxl-n2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -0.5rem !important;
  }
  body.behat-site .mr-xxl-n2, body.behat-site.mr-xxl-n2, body.themedesignermode .mr-xxl-n2, body.themedesignermode.mr-xxl-n2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xxl-n2::before, body.behat-site.mr-xxl-n2::before, body.themedesignermode .mr-xxl-n2::before, body.themedesignermode.mr-xxl-n2::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xxl-n2 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -0.5rem !important;
  }
  body.behat-site .ml-xxl-n2, body.behat-site.ml-xxl-n2, body.themedesignermode .ml-xxl-n2, body.themedesignermode.ml-xxl-n2 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xxl-n2::before, body.behat-site.ml-xxl-n2::before, body.themedesignermode .ml-xxl-n2::before, body.themedesignermode.ml-xxl-n2::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xxl-n3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -1rem !important;
  }
  body.behat-site .mr-xxl-n3, body.behat-site.mr-xxl-n3, body.themedesignermode .mr-xxl-n3, body.themedesignermode.mr-xxl-n3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xxl-n3::before, body.behat-site.mr-xxl-n3::before, body.themedesignermode .mr-xxl-n3::before, body.themedesignermode.mr-xxl-n3::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xxl-n3 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -1rem !important;
  }
  body.behat-site .ml-xxl-n3, body.behat-site.ml-xxl-n3, body.themedesignermode .ml-xxl-n3, body.themedesignermode.ml-xxl-n3 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xxl-n3::before, body.behat-site.ml-xxl-n3::before, body.themedesignermode .ml-xxl-n3::before, body.themedesignermode.ml-xxl-n3::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xxl-n4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -1.5rem !important;
  }
  body.behat-site .mr-xxl-n4, body.behat-site.mr-xxl-n4, body.themedesignermode .mr-xxl-n4, body.themedesignermode.mr-xxl-n4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xxl-n4::before, body.behat-site.mr-xxl-n4::before, body.themedesignermode .mr-xxl-n4::before, body.themedesignermode.mr-xxl-n4::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xxl-n4 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -1.5rem !important;
  }
  body.behat-site .ml-xxl-n4, body.behat-site.ml-xxl-n4, body.themedesignermode .ml-xxl-n4, body.themedesignermode.ml-xxl-n4 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xxl-n4::before, body.behat-site.ml-xxl-n4::before, body.themedesignermode .ml-xxl-n4::before, body.themedesignermode.ml-xxl-n4::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xxl-n5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -2rem !important;
  }
  body.behat-site .mr-xxl-n5, body.behat-site.mr-xxl-n5, body.themedesignermode .mr-xxl-n5, body.themedesignermode.mr-xxl-n5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xxl-n5::before, body.behat-site.mr-xxl-n5::before, body.themedesignermode .mr-xxl-n5::before, body.themedesignermode.mr-xxl-n5::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xxl-n5 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -2rem !important;
  }
  body.behat-site .ml-xxl-n5, body.behat-site.ml-xxl-n5, body.themedesignermode .ml-xxl-n5, body.themedesignermode.ml-xxl-n5 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xxl-n5::before, body.behat-site.ml-xxl-n5::before, body.themedesignermode .ml-xxl-n5::before, body.themedesignermode.ml-xxl-n5::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xxl-n6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: -3rem !important;
  }
  body.behat-site .mr-xxl-n6, body.behat-site.mr-xxl-n6, body.themedesignermode .mr-xxl-n6, body.themedesignermode.mr-xxl-n6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xxl-n6::before, body.behat-site.mr-xxl-n6::before, body.themedesignermode .mr-xxl-n6::before, body.themedesignermode.mr-xxl-n6::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xxl-n6 {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: -3rem !important;
  }
  body.behat-site .ml-xxl-n6, body.behat-site.ml-xxl-n6, body.themedesignermode .ml-xxl-n6, body.themedesignermode.ml-xxl-n6 {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xxl-n6::before, body.behat-site.ml-xxl-n6::before, body.themedesignermode .ml-xxl-n6::before, body.themedesignermode.ml-xxl-n6::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .mr-xxl-auto {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-right: auto !important;
  }
  body.behat-site .mr-xxl-auto, body.behat-site.mr-xxl-auto, body.themedesignermode .mr-xxl-auto, body.themedesignermode.mr-xxl-auto {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .mr-xxl-auto::before, body.behat-site.mr-xxl-auto::before, body.themedesignermode .mr-xxl-auto::before, body.themedesignermode.mr-xxl-auto::before {
    content: "Deprecated style in use (.mr)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .ml-xxl-auto {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    margin-left: auto !important;
  }
  body.behat-site .ml-xxl-auto, body.behat-site.ml-xxl-auto, body.themedesignermode .ml-xxl-auto, body.themedesignermode.ml-xxl-auto {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .ml-xxl-auto::before, body.behat-site.ml-xxl-auto::before, body.themedesignermode .ml-xxl-auto::before, body.themedesignermode.ml-xxl-auto::before {
    content: "Deprecated style in use (.ml)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
}
.text-left {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  text-align: left !important;
}
body.behat-site .text-left, body.behat-site.text-left, body.themedesignermode .text-left, body.themedesignermode.text-left {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .text-left::before, body.behat-site.text-left::before, body.themedesignermode .text-left::before, body.themedesignermode.text-left::before {
  content: "Deprecated style in use (.text-left)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.text-right {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  text-align: right !important;
}
body.behat-site .text-right, body.behat-site.text-right, body.themedesignermode .text-right, body.themedesignermode.text-right {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .text-right::before, body.behat-site.text-right::before, body.themedesignermode .text-right::before, body.themedesignermode.text-right::before {
  content: "Deprecated style in use (.text-right)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
@media (min-width: 576px) {
  .text-sm-left {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    text-align: left !important;
  }
  body.behat-site .text-sm-left, body.behat-site.text-sm-left, body.themedesignermode .text-sm-left, body.themedesignermode.text-sm-left {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .text-sm-left::before, body.behat-site.text-sm-left::before, body.themedesignermode .text-sm-left::before, body.themedesignermode.text-sm-left::before {
    content: "Deprecated style in use (.text-left)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .text-sm-right {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    text-align: right !important;
  }
  body.behat-site .text-sm-right, body.behat-site.text-sm-right, body.themedesignermode .text-sm-right, body.themedesignermode.text-sm-right {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .text-sm-right::before, body.behat-site.text-sm-right::before, body.themedesignermode .text-sm-right::before, body.themedesignermode.text-sm-right::before {
    content: "Deprecated style in use (.text-right)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
}
@media (min-width: 768px) {
  .text-md-left {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    text-align: left !important;
  }
  body.behat-site .text-md-left, body.behat-site.text-md-left, body.themedesignermode .text-md-left, body.themedesignermode.text-md-left {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .text-md-left::before, body.behat-site.text-md-left::before, body.themedesignermode .text-md-left::before, body.themedesignermode.text-md-left::before {
    content: "Deprecated style in use (.text-left)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .text-md-right {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    text-align: right !important;
  }
  body.behat-site .text-md-right, body.behat-site.text-md-right, body.themedesignermode .text-md-right, body.themedesignermode.text-md-right {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .text-md-right::before, body.behat-site.text-md-right::before, body.themedesignermode .text-md-right::before, body.themedesignermode.text-md-right::before {
    content: "Deprecated style in use (.text-right)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
}
@media (min-width: 992px) {
  .text-lg-left {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    text-align: left !important;
  }
  body.behat-site .text-lg-left, body.behat-site.text-lg-left, body.themedesignermode .text-lg-left, body.themedesignermode.text-lg-left {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .text-lg-left::before, body.behat-site.text-lg-left::before, body.themedesignermode .text-lg-left::before, body.themedesignermode.text-lg-left::before {
    content: "Deprecated style in use (.text-left)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .text-lg-right {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    text-align: right !important;
  }
  body.behat-site .text-lg-right, body.behat-site.text-lg-right, body.themedesignermode .text-lg-right, body.themedesignermode.text-lg-right {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .text-lg-right::before, body.behat-site.text-lg-right::before, body.themedesignermode .text-lg-right::before, body.themedesignermode.text-lg-right::before {
    content: "Deprecated style in use (.text-right)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
}
@media (min-width: 1200px) {
  .text-xl-left {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    text-align: left !important;
  }
  body.behat-site .text-xl-left, body.behat-site.text-xl-left, body.themedesignermode .text-xl-left, body.themedesignermode.text-xl-left {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .text-xl-left::before, body.behat-site.text-xl-left::before, body.themedesignermode .text-xl-left::before, body.themedesignermode.text-xl-left::before {
    content: "Deprecated style in use (.text-left)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .text-xl-right {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    text-align: right !important;
  }
  body.behat-site .text-xl-right, body.behat-site.text-xl-right, body.themedesignermode .text-xl-right, body.themedesignermode.text-xl-right {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .text-xl-right::before, body.behat-site.text-xl-right::before, body.themedesignermode .text-xl-right::before, body.themedesignermode.text-xl-right::before {
    content: "Deprecated style in use (.text-right)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
}
@media (min-width: 1400px) {
  .text-xxl-left {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    text-align: left !important;
  }
  body.behat-site .text-xxl-left, body.behat-site.text-xxl-left, body.themedesignermode .text-xxl-left, body.themedesignermode.text-xxl-left {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .text-xxl-left::before, body.behat-site.text-xxl-left::before, body.themedesignermode .text-xxl-left::before, body.themedesignermode.text-xxl-left::before {
    content: "Deprecated style in use (.text-left)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .text-xxl-right {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    text-align: right !important;
  }
  body.behat-site .text-xxl-right, body.behat-site.text-xxl-right, body.themedesignermode .text-xxl-right, body.themedesignermode.text-xxl-right {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .text-xxl-right::before, body.behat-site.text-xxl-right::before, body.themedesignermode .text-xxl-right::before, body.themedesignermode.text-xxl-right::before {
    content: "Deprecated style in use (.text-right)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
}
.border-right {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  border-right: 1px solid #dee2e6 !important;
}
body.behat-site .border-right, body.behat-site.border-right, body.themedesignermode .border-right, body.themedesignermode.border-right {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .border-right::before, body.behat-site.border-right::before, body.themedesignermode .border-right::before, body.themedesignermode.border-right::before {
  content: "Deprecated style in use (.border-right)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.border-left {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  border-left: 1px solid #dee2e6 !important;
}
body.behat-site .border-left, body.behat-site.border-left, body.themedesignermode .border-left, body.themedesignermode.border-left {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .border-left::before, body.behat-site.border-left::before, body.themedesignermode .border-left::before, body.themedesignermode.border-left::before {
  content: "Deprecated style in use (.border-left)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.border-right-0 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  border-right: 0 !important;
}
body.behat-site .border-right-0, body.behat-site.border-right-0, body.themedesignermode .border-right-0, body.themedesignermode.border-right-0 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .border-right-0::before, body.behat-site.border-right-0::before, body.themedesignermode .border-right-0::before, body.themedesignermode.border-right-0::before {
  content: "Deprecated style in use (.border-right)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.border-left-0 {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  border-left: 0 !important;
}
body.behat-site .border-left-0, body.behat-site.border-left-0, body.themedesignermode .border-left-0, body.themedesignermode.border-left-0 {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .border-left-0::before, body.behat-site.border-left-0::before, body.themedesignermode .border-left-0::before, body.themedesignermode.border-left-0::before {
  content: "Deprecated style in use (.border-left)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.rounded-right {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  border-top-right-radius: 0.5rem !important;
  border-bottom-right-radius: 0.5rem !important;
}
body.behat-site .rounded-right, body.behat-site.rounded-right, body.themedesignermode .rounded-right, body.themedesignermode.rounded-right {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .rounded-right::before, body.behat-site.rounded-right::before, body.themedesignermode .rounded-right::before, body.themedesignermode.rounded-right::before {
  content: "Deprecated style in use (.rounded-right)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.rounded-left {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  border-top-left-radius: 0.5rem !important;
  border-bottom-left-radius: 0.5rem !important;
}
body.behat-site .rounded-left, body.behat-site.rounded-left, body.themedesignermode .rounded-left, body.themedesignermode.rounded-left {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .rounded-left::before, body.behat-site.rounded-left::before, body.themedesignermode .rounded-left::before, body.themedesignermode.rounded-left::before {
  content: "Deprecated style in use (.rounded-left)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.float-left {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  float: left !important;
}
body.behat-site .float-left, body.behat-site.float-left, body.themedesignermode .float-left, body.themedesignermode.float-left {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .float-left::before, body.behat-site.float-left::before, body.themedesignermode .float-left::before, body.themedesignermode.float-left::before {
  content: "Deprecated style in use (.float-left)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.float-right {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  float: right !important;
}
body.behat-site .float-right, body.behat-site.float-right, body.themedesignermode .float-right, body.themedesignermode.float-right {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .float-right::before, body.behat-site.float-right::before, body.themedesignermode .float-right::before, body.themedesignermode.float-right::before {
  content: "Deprecated style in use (.float-right)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
@media (min-width: 576px) {
  .float-sm-left {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    float: left !important;
  }
  body.behat-site .float-sm-left, body.behat-site.float-sm-left, body.themedesignermode .float-sm-left, body.themedesignermode.float-sm-left {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .float-sm-left::before, body.behat-site.float-sm-left::before, body.themedesignermode .float-sm-left::before, body.themedesignermode.float-sm-left::before {
    content: "Deprecated style in use (.float-left)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .float-sm-right {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    float: right !important;
  }
  body.behat-site .float-sm-right, body.behat-site.float-sm-right, body.themedesignermode .float-sm-right, body.themedesignermode.float-sm-right {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .float-sm-right::before, body.behat-site.float-sm-right::before, body.themedesignermode .float-sm-right::before, body.themedesignermode.float-sm-right::before {
    content: "Deprecated style in use (.float-right)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
}
@media (min-width: 768px) {
  .float-md-left {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    float: left !important;
  }
  body.behat-site .float-md-left, body.behat-site.float-md-left, body.themedesignermode .float-md-left, body.themedesignermode.float-md-left {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .float-md-left::before, body.behat-site.float-md-left::before, body.themedesignermode .float-md-left::before, body.themedesignermode.float-md-left::before {
    content: "Deprecated style in use (.float-left)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .float-md-right {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    float: right !important;
  }
  body.behat-site .float-md-right, body.behat-site.float-md-right, body.themedesignermode .float-md-right, body.themedesignermode.float-md-right {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .float-md-right::before, body.behat-site.float-md-right::before, body.themedesignermode .float-md-right::before, body.themedesignermode.float-md-right::before {
    content: "Deprecated style in use (.float-right)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
}
@media (min-width: 992px) {
  .float-lg-left {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    float: left !important;
  }
  body.behat-site .float-lg-left, body.behat-site.float-lg-left, body.themedesignermode .float-lg-left, body.themedesignermode.float-lg-left {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .float-lg-left::before, body.behat-site.float-lg-left::before, body.themedesignermode .float-lg-left::before, body.themedesignermode.float-lg-left::before {
    content: "Deprecated style in use (.float-left)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .float-lg-right {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    float: right !important;
  }
  body.behat-site .float-lg-right, body.behat-site.float-lg-right, body.themedesignermode .float-lg-right, body.themedesignermode.float-lg-right {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .float-lg-right::before, body.behat-site.float-lg-right::before, body.themedesignermode .float-lg-right::before, body.themedesignermode.float-lg-right::before {
    content: "Deprecated style in use (.float-right)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
}
@media (min-width: 1200px) {
  .float-xl-left {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    float: left !important;
  }
  body.behat-site .float-xl-left, body.behat-site.float-xl-left, body.themedesignermode .float-xl-left, body.themedesignermode.float-xl-left {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .float-xl-left::before, body.behat-site.float-xl-left::before, body.themedesignermode .float-xl-left::before, body.themedesignermode.float-xl-left::before {
    content: "Deprecated style in use (.float-left)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .float-xl-right {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    float: right !important;
  }
  body.behat-site .float-xl-right, body.behat-site.float-xl-right, body.themedesignermode .float-xl-right, body.themedesignermode.float-xl-right {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .float-xl-right::before, body.behat-site.float-xl-right::before, body.themedesignermode .float-xl-right::before, body.themedesignermode.float-xl-right::before {
    content: "Deprecated style in use (.float-right)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
}
@media (min-width: 1400px) {
  .float-xxl-left {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    float: left !important;
  }
  body.behat-site .float-xxl-left, body.behat-site.float-xxl-left, body.themedesignermode .float-xxl-left, body.themedesignermode.float-xxl-left {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .float-xxl-left::before, body.behat-site.float-xxl-left::before, body.themedesignermode .float-xxl-left::before, body.themedesignermode.float-xxl-left::before {
    content: "Deprecated style in use (.float-left)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
  .float-xxl-right {
    /* stylelint-disable declaration-no-important */
    /* stylelint-enable */
    float: right !important;
  }
  body.behat-site .float-xxl-right, body.behat-site.float-xxl-right, body.themedesignermode .float-xxl-right, body.themedesignermode.float-xxl-right {
    outline: 3px dotted #ca3120 !important;
    background-color: #fceeed !important;
  }
  body.behat-site .float-xxl-right::before, body.behat-site.float-xxl-right::before, body.themedesignermode .float-xxl-right::before, body.themedesignermode.float-xxl-right::before {
    content: "Deprecated style in use (.float-right)" !important;
    color: #ca3120 !important;
    font-size: smaller !important;
  }
}
.close {
  float: right;
  font-size: calc(1.265625rem + 0.1875vw);
  font-weight: 700;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  opacity: 0.5;
}
@media (min-width: 1200px) {
  .close {
    font-size: 1.40625rem;
  }
}
.close:hover {
  color: #000;
  text-decoration: none;
}
.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {
  opacity: 0.75;
}
button.close {
  padding: 0;
  background-color: transparent;
  border: 0;
}
a.close.disabled {
  pointer-events: none;
}
.font-weight-light {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  font-weight: 300 !important;
}
body.behat-site .font-weight-light, body.behat-site.font-weight-light, body.themedesignermode .font-weight-light, body.themedesignermode.font-weight-light {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .font-weight-light::before, body.behat-site.font-weight-light::before, body.themedesignermode .font-weight-light::before, body.themedesignermode.font-weight-light::before {
  content: "Deprecated style in use (.font-weight)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.font-weight-lighter {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  font-weight: lighter !important;
}
body.behat-site .font-weight-lighter, body.behat-site.font-weight-lighter, body.themedesignermode .font-weight-lighter, body.themedesignermode.font-weight-lighter {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .font-weight-lighter::before, body.behat-site.font-weight-lighter::before, body.themedesignermode .font-weight-lighter::before, body.themedesignermode.font-weight-lighter::before {
  content: "Deprecated style in use (.font-weight)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.font-weight-normal {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  font-weight: 400 !important;
}
body.behat-site .font-weight-normal, body.behat-site.font-weight-normal, body.themedesignermode .font-weight-normal, body.themedesignermode.font-weight-normal {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .font-weight-normal::before, body.behat-site.font-weight-normal::before, body.themedesignermode .font-weight-normal::before, body.themedesignermode.font-weight-normal::before {
  content: "Deprecated style in use (.font-weight)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.font-weight-bold {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  font-weight: 700 !important;
}
body.behat-site .font-weight-bold, body.behat-site.font-weight-bold, body.themedesignermode .font-weight-bold, body.themedesignermode.font-weight-bold {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .font-weight-bold::before, body.behat-site.font-weight-bold::before, body.themedesignermode .font-weight-bold::before, body.themedesignermode.font-weight-bold::before {
  content: "Deprecated style in use (.font-weight)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.font-weight-bolder {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  font-weight: bolder !important;
}
body.behat-site .font-weight-bolder, body.behat-site.font-weight-bolder, body.themedesignermode .font-weight-bolder, body.themedesignermode.font-weight-bolder {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .font-weight-bolder::before, body.behat-site.font-weight-bolder::before, body.themedesignermode .font-weight-bolder::before, body.themedesignermode.font-weight-bolder::before {
  content: "Deprecated style in use (.font-weight)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.font-italic {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  font-style: italic !important;
}
body.behat-site .font-italic, body.behat-site.font-italic, body.themedesignermode .font-italic, body.themedesignermode.font-italic {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .font-italic::before, body.behat-site.font-italic::before, body.themedesignermode .font-italic::before, body.themedesignermode.font-italic::before {
  content: "Deprecated style in use (.font-weight)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.rounded-sm {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  border-radius: 0.25rem !important;
}
body.behat-site .rounded-sm, body.behat-site.rounded-sm, body.themedesignermode .rounded-sm, body.themedesignermode.rounded-sm {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .rounded-sm::before, body.behat-site.rounded-sm::before, body.themedesignermode .rounded-sm::before, body.themedesignermode.rounded-sm::before {
  content: "Deprecated style in use (.rounded-sm)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.rounded-lg {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  border-radius: 0.6rem !important;
}
body.behat-site .rounded-lg, body.behat-site.rounded-lg, body.themedesignermode .rounded-lg, body.themedesignermode.rounded-lg {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .rounded-lg::before, body.behat-site.rounded-lg::before, body.themedesignermode .rounded-lg::before, body.themedesignermode.rounded-lg::before {
  content: "Deprecated style in use (.rounded-lg)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.sr-only {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
body.behat-site .sr-only, body.behat-site.sr-only, body.themedesignermode .sr-only, body.themedesignermode.sr-only {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .sr-only::before, body.behat-site.sr-only::before, body.themedesignermode .sr-only::before, body.themedesignermode.sr-only::before {
  content: "Deprecated style in use (.sr-only)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.sr-only-focusable {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
}
body.behat-site .sr-only-focusable, body.behat-site.sr-only-focusable, body.themedesignermode .sr-only-focusable, body.themedesignermode.sr-only-focusable {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .sr-only-focusable::before, body.behat-site.sr-only-focusable::before, body.themedesignermode .sr-only-focusable::before, body.themedesignermode.sr-only-focusable::before {
  content: "Deprecated style in use (.sr-only-focusable)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.sr-only-focusable:active, .sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  white-space: normal;
}
.custom-control {
  position: relative;
  z-index: 1;
  display: block;
  min-height: 1.40625rem;
  padding-left: 1.75rem;
  print-color-adjust: exact;
}
.custom-control-inline {
  display: inline-flex;
  margin-right: 1rem;
}
.custom-control-input {
  position: absolute;
  left: 0;
  z-index: -1;
  width: 1.25rem;
  height: 1.328125rem;
  opacity: 0;
}
.custom-control-input:checked ~ .custom-control-label::before {
  color: #fff;
  border-color: #2A2A2C;
  background-color: #2A2A2C;
}
.custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
}
.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #959596;
}
.custom-control-input:not(:disabled):active ~ .custom-control-label::before {
  color: #fff;
  background-color: #818187;
  border-color: #818187;
}
.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {
  color: #6a737b;
}
.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {
  background-color: var(--bs-secondary-bg);
}
.custom-control-label {
  position: relative;
  margin-bottom: 0;
  vertical-align: top;
}
.custom-control-label::before {
  position: absolute;
  top: 0.078125rem;
  left: -1.75rem;
  display: block;
  width: 1.25rem;
  height: 1.25rem;
  pointer-events: none;
  content: "";
  background-color: var(--bs-body-bg);
  border: 1px solid #8f959e;
}
.custom-control-label::after {
  position: absolute;
  top: 0.078125rem;
  left: -1.75rem;
  display: block;
  width: 1.25rem;
  height: 1.25rem;
  content: "";
  background: 50% / 50% 50% no-repeat;
}
.custom-checkbox {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
}
body.behat-site .custom-checkbox, body.behat-site.custom-checkbox, body.themedesignermode .custom-checkbox, body.themedesignermode.custom-checkbox {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .custom-checkbox::before, body.behat-site.custom-checkbox::before, body.themedesignermode .custom-checkbox::before, body.themedesignermode.custom-checkbox::before {
  content: "Deprecated style in use (.custom-checkbox)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.custom-checkbox .custom-control-label::before {
  border-radius: 0.5rem;
}
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e");
}
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
  border-color: #2A2A2C;
  background-color: #2A2A2C;
}
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e");
}
.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(42, 42, 44, 0.5);
}
.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {
  background-color: rgba(42, 42, 44, 0.5);
}
.custom-radio {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
}
body.behat-site .custom-radio, body.behat-site.custom-radio, body.themedesignermode .custom-radio, body.themedesignermode.custom-radio {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .custom-radio::before, body.behat-site.custom-radio::before, body.themedesignermode .custom-radio::before, body.themedesignermode.custom-radio::before {
  content: "Deprecated style in use (.custom-radio)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.custom-radio .custom-control-label::before {
  border-radius: 50%;
}
.custom-radio .custom-control-input:checked ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}
.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(42, 42, 44, 0.5);
}
.custom-switch {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  padding-left: 2.6875rem;
}
body.behat-site .custom-switch, body.behat-site.custom-switch, body.themedesignermode .custom-switch, body.themedesignermode.custom-switch {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .custom-switch::before, body.behat-site.custom-switch::before, body.themedesignermode .custom-switch::before, body.themedesignermode.custom-switch::before {
  content: "Deprecated style in use (.custom-switch)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.custom-switch .custom-control-label::before {
  left: -2.6875rem;
  width: 2.1875rem;
  pointer-events: all;
  border-radius: 0.625rem;
}
.custom-switch .custom-control-label::after {
  top: calc(0.078125rem + 2px);
  left: calc(-2.6875rem + 2px);
  width: calc(1.25rem - 4px);
  height: calc(1.25rem - 4px);
  background-color: #8f959e;
  border-radius: 0.625rem;
  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .custom-switch .custom-control-label::after {
    transition: none;
  }
}
.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
  background-color: var(--bs-body-bg);
  transform: translateX(0.9375rem);
}
.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(42, 42, 44, 0.5);
}
.custom-select {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  display: inline-block;
  width: 100%;
  height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));
  padding: 0.375rem 1.75rem 0.375rem 0.75rem;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--bs-body-color);
  vertical-align: middle;
  background: var(--bs-body-bg) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center / 8px 10px no-repeat;
  border: var(--bs-border-width) solid #8f959e;
  border-radius: 0.5rem;
  appearance: none;
}
body.behat-site .custom-select, body.behat-site.custom-select, body.themedesignermode .custom-select, body.themedesignermode.custom-select {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .custom-select::before, body.behat-site.custom-select::before, body.themedesignermode .custom-select::before, body.themedesignermode.custom-select::before {
  content: "Deprecated style in use (.custom-select)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.custom-select:focus {
  border-color: #959596;
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.75);
}
.custom-select:focus::-ms-value {
  color: var(--bs-body-color);
  background-color: var(--bs-body-bg);
}
.custom-select[multiple], .custom-select[size]:not([size="1"]) {
  height: auto;
  padding-right: 0.75rem;
  background-image: none;
}
.custom-select:disabled {
  color: #6a737b;
  background-color: #e9ecef;
}
.custom-select::-ms-expand {
  display: none;
}
.custom-select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 var(--bs-body-color);
}
.custom-select-sm {
  height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  padding-left: 0.5rem;
  font-size: 0.8203125rem;
}
.custom-select-lg {
  height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 1rem;
  font-size: 1.171875rem;
}
.custom-file {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  position: relative;
  display: inline-block;
  width: 100%;
  height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));
  margin-bottom: 0;
}
body.behat-site .custom-file, body.behat-site.custom-file, body.themedesignermode .custom-file, body.themedesignermode.custom-file {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .custom-file::before, body.behat-site.custom-file::before, body.themedesignermode .custom-file::before, body.themedesignermode.custom-file::before {
  content: "Deprecated style in use (.custom-file)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.custom-file-input {
  position: relative;
  z-index: 2;
  width: 100%;
  height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));
  margin: 0;
  overflow: hidden;
  opacity: 0;
}
.custom-file-input:focus ~ .custom-file-label {
  border-color: #959596;
  box-shadow: 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
}
.custom-file-input[disabled] ~ .custom-file-label, .custom-file-input:disabled ~ .custom-file-label {
  background-color: var(--bs-secondary-bg);
}
.custom-file-input:lang(en) ~ .custom-file-label::after {
  content: "Browse";
}
.custom-file-input ~ .custom-file-label[data-browse]::after {
  content: attr(data-browse);
}
.custom-file-label {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));
  padding: 0.375rem 0.75rem;
  overflow: hidden;
  font-weight: 400;
  line-height: 1.5;
  color: var(--bs-body-color);
  background-color: var(--bs-body-bg);
  border: var(--bs-border-width) solid #8f959e;
  border-radius: var(--bs-border-radius);
}
.custom-file-label::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  display: block;
  height: calc(1.5em + 0.75rem);
  padding: 0.375rem 0.75rem;
  line-height: 1.5;
  color: var(--bs-body-color);
  content: "Browse";
  background-color: var(--bs-tertiary-bg);
  border-left: inherit;
  border-radius: 0 var(--bs-border-radius) var(--bs-border-radius) 0;
}
.custom-range {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  width: 100%;
  height: 1.5rem;
  padding: 0;
  background-color: transparent;
  appearance: none;
}
body.behat-site .custom-range, body.behat-site.custom-range, body.themedesignermode .custom-range, body.themedesignermode.custom-range {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .custom-range::before, body.behat-site.custom-range::before, body.themedesignermode .custom-range::before, body.themedesignermode.custom-range::before {
  content: "Deprecated style in use (.custom-range)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.custom-range:focus {
  outline: 0;
}
.custom-range:focus::-webkit-slider-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
}
.custom-range:focus::-moz-range-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
}
.custom-range:focus::-ms-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(42, 42, 44, 0.25);
}
.custom-range::-moz-focus-outer {
  border: 0;
}
.custom-range::-webkit-slider-thumb {
  width: 1rem;
  height: 1rem;
  margin-top: -0.25rem;
  background-color: #2A2A2C;
  border: 0;
  border-radius: 1rem;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  appearance: none;
}
@media (prefers-reduced-motion: reduce) {
  .custom-range::-webkit-slider-thumb {
    transition: none;
  }
}
.custom-range::-webkit-slider-thumb:active {
  background-color: #818187;
}
.custom-range::-webkit-slider-runnable-track {
  width: 100%;
  height: 0.5rem;
  color: transparent;
  cursor: pointer;
  background-color: #dee2e6;
  border-color: transparent;
  border-radius: 1rem;
}
.custom-range::-moz-range-thumb {
  width: 1rem;
  height: 1rem;
  background-color: #2A2A2C;
  border: 0;
  border-radius: 1rem;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  appearance: none;
}
@media (prefers-reduced-motion: reduce) {
  .custom-range::-moz-range-thumb {
    transition: none;
  }
}
.custom-range::-moz-range-thumb:active {
  background-color: #818187;
}
.custom-range::-moz-range-track {
  width: 100%;
  height: 0.5rem;
  color: transparent;
  cursor: pointer;
  background-color: #dee2e6;
  border-color: transparent;
  border-radius: 1rem;
}
.custom-range::-ms-thumb {
  width: 1rem;
  height: 1rem;
  margin-top: 0;
  margin-right: 0.25rem;
  margin-left: 0.25rem;
  background-color: #2A2A2C;
  border: 0;
  border-radius: 1rem;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  appearance: none;
}
@media (prefers-reduced-motion: reduce) {
  .custom-range::-ms-thumb {
    transition: none;
  }
}
.custom-range::-ms-thumb:active {
  background-color: #818187;
}
.custom-range::-ms-track {
  width: 100%;
  height: 0.5rem;
  color: transparent;
  cursor: pointer;
  background-color: transparent;
  border-color: transparent;
  border-width: 0.5rem;
}
.custom-range::-ms-fill-lower {
  background-color: #dee2e6;
  border-radius: 1rem;
}
.custom-range::-ms-fill-upper {
  margin-right: 15px;
  background-color: #dee2e6;
  border-radius: 1rem;
}
.custom-range:disabled::-webkit-slider-thumb {
  background-color: #8f959e;
}
.custom-range:disabled::-webkit-slider-runnable-track {
  cursor: default;
}
.custom-range:disabled::-moz-range-thumb {
  background-color: #8f959e;
}
.custom-range:disabled::-moz-range-track {
  cursor: default;
}
.custom-range:disabled::-ms-thumb {
  background-color: #8f959e;
}
.custom-control-label::before, .custom-file-label, .custom-select {
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .custom-control-label::before, .custom-file-label, .custom-select {
    transition: none;
  }
}
.btn-block {
  /* stylelint-disable declaration-no-important */
  /* stylelint-enable */
  display: block;
  width: 100%;
}
body.behat-site .btn-block, body.behat-site.btn-block, body.themedesignermode .btn-block, body.themedesignermode.btn-block {
  outline: 3px dotted #ca3120 !important;
  background-color: #fceeed !important;
}
body.behat-site .btn-block::before, body.behat-site.btn-block::before, body.themedesignermode .btn-block::before, body.themedesignermode.btn-block::before {
  content: "Deprecated style in use (.btn-block)" !important;
  color: #ca3120 !important;
  font-size: smaller !important;
}
.btn-block + .btn-block {
  margin-top: 0.5rem;
}
input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="button"].btn-block {
  width: 100%;
}
.task-indicator {
  padding-top: 2rem;
}
.task-indicator img.icon {
  width: 145px;
  height: 145px;
  max-height: 145px;
  max-width: 145px;
  font-size: 145px;
  padding-bottom: 2rem;
}
.task-indicator .progressbar_container {
  padding-top: 2rem;
}
.task-indicator .stored-progress-bar {
  opacity: 1;
  transition: opacity 0.5s;
}
.task-indicator .stored-progress-notstarted {
  opacity: 0;
}
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.navbar {
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
}
.userpicture {
  border-radius: 50%;
}
.btn-outline-secondary {
  --bs-btn-color: #6a737b;
  --bs-btn-border-color: #6a737b;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #6a737b;
  --bs-btn-hover-border-color: #6a737b;
  --bs-btn-focus-shadow-rgb: 106, 115, 123;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #6a737b;
  --bs-btn-active-border-color: #6a737b;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #6a737b;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #6a737b;
  --bs-gradient: none;
  border-color: #6a737b;
}
.btn-outline-info {
  --bs-btn-color: #1f7e9a;
  --bs-btn-border-color: #1f7e9a;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #1f7e9a;
  --bs-btn-hover-border-color: #1f7e9a;
  --bs-btn-focus-shadow-rgb: 31, 126, 154;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #1f7e9a;
  --bs-btn-active-border-color: #1f7e9a;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #1f7e9a;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #1f7e9a;
  --bs-gradient: none;
}
.btn-outline-warning {
  --bs-btn-color: #a6670e;
  --bs-btn-border-color: #a6670e;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #a6670e;
  --bs-btn-hover-border-color: #a6670e;
  --bs-btn-focus-shadow-rgb: 166, 103, 14;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #a6670e;
  --bs-btn-active-border-color: #a6670e;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #a6670e;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #a6670e;
  --bs-gradient: none;
}
/* Typography */
/* Font and color style for the body */
body {
  font-size: 16px;
  font-family: Century Gothic, Arial, Helvetica, sans-serif;
  color: #656565;
  background-color: #fff;
}
/* End of page container size */
* {
  outline: none;
}
*:focus, *:active {
  outline: none;
  box-shadow: none;
}
/* Headings */
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
  font-weight: normal;
  color: #CAA150;
}
h1, .h1 {
  font-size: 42px;
}
h2, .h2 {
  font-size: 34px;
}
h3, .h3 {
  font-size: 26px;
}
h4, .h4 {
  font-size: 23px;
}
h5, .h5 {
  font-size: 21px;
}
h6, .h6 {
  font-size: 18px;
}
/* End of Headings */
img {
  overflow-clip-margin: border-box;
}
.form-control:focus {
  box-shadow: none;
}
/* Link tag */
a {
  color: #2A2A2C;
  text-decoration: none;
}
a:hover, a:focus, a:active {
  color: #CAA150;
  outline: none;
}
a.btn-link {
  text-decoration: none;
}
a:first-of-type > .icon, a span:first-of-type > .icon {
  margin-left: 0;
}
/* End of Link tag */
/* Form input */
input {
  font-family: Century Gothic, Arial, Helvetica, sans-serif;
  color: #5c5c5c;
  border-radius: 5px;
}
input.form-submit {
  font-weight: bold;
  font-family: Arial, Helvetica, sans-serif;
  color: #fff;
  padding: 7px 16px;
  border-radius: 0;
  box-shadow: none;
  background: #CAA150;
  border: 0;
  text-shadow: none;
}
input.form-submit:hover, input.form-submit:focus, input.form-submit:active, input.form-submit.active, input.form-submit.disabled {
  outline: 0;
  color: #fff;
  background: #434343;
}
input#id_submitbutton, input#id_submitbutton2 {
  background: #CAA150;
  border: 0;
  text-shadow: none;
}
input#id_submitbutton:hover, input#id_submitbutton:focus, input#id_submitbutton:active, input#id_submitbutton.active, input#id_submitbutton.disabled, input#id_submitbutton2:hover, input#id_submitbutton2:focus, input#id_submitbutton2:active, input#id_submitbutton2.active, input#id_submitbutton2.disabled {
  color: #fff;
  background: #434343;
}
input.form-submit[disabled], input#id_submitbutton[disabled], input#id_submitbutton2[disabled] {
  color: #fff;
  background: #434343;
}
input.active[type="button"], input.active[type="submit"], input.active[type="reset"] {
  box-shadow: none;
}
input[size] {
  width: auto;
}
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"] {
  height: 45px;
  border-color: #d5d5d5;
  box-shadow: none;
}
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 {
  border-color: rgba(0, 0, 0, 0.2);
}
input[type="button"], input[type="submit"], input[type="reset"] {
  font-weight: bold;
  font-family: Arial, Helvetica, sans-serif;
  color: #fff;
  text-shadow: none;
  background: #2A2A2C;
  padding: 0 16px;
  border: 0;
  box-shadow: none;
}
input[type="button"]:hover, input[type="button"]:focus, input[type="button"]:active, input[type="submit"]:hover, input[type="submit"]:focus, input[type="submit"]:active, input[type="reset"]:hover, input[type="reset"]:focus, input[type="reset"]:active {
  color: #fff;
  background: #434343;
  outline: 0;
  box-shadow: none;
}
input[type="submit"].btn-link {
  color: #fff;
}
.uneditable-input {
  height: 45px;
  border-color: #d5d5d5;
  box-shadow: none;
}
/* End of Form input */
/* Button */
button {
  font-family: Arial, Helvetica, sans-serif;
  color: #fff;
  font-weight: bold;
  text-shadow: none;
  background: #2A2A2C;
  padding: 7px 16px;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
button:hover, button:focus, button.active, button:active {
  color: #fff;
  background-color: #434343;
  outline: 0;
}
button.close:hover, button.close:focus {
  background: none;
}
.btn {
  height: 45px;
  outline: none;
  line-height: 2;
  border-radius: 5px;
}
.btn.btn-link {
  border: 0;
}
.btn.btn-link:has(:not(.text-danger)) {
  color: #2A2A2C;
  height: auto;
  border: 0;
}
.btn.btn-link:has(:not(.text-danger)) i:before {
  color: #2A2A2C;
}
.btn.btn-secondary:disabled:hover, .btn.btn-secondary:disabled:focus {
  color: #5c5c5c;
  background-color: #ccc;
}
.btn:focus {
  outline: none;
  box-shadow: none;
}
.btn:not(:disabled):not(.disabled) {
  border-color: #eee;
}
.btn.btn-outline-secondary.dropdown-toggle:hover, .btn.btn-outline-secondary.dropdown-toggle:focus, .btn.btn-outline-secondary.dropdown-toggle:active, .btn.btn-outline-secondary.dropdown-toggle:focus:active {
  color: #fff;
  border-color: #2A2A2C;
  background: #2A2A2C;
  box-shadow: none;
}
.btn.btn-outline-secondary.dropdown-toggle:hover i.icon, .btn.btn-outline-secondary.dropdown-toggle:focus i.icon, .btn.btn-outline-secondary.dropdown-toggle:active i.icon, .btn.btn-outline-secondary.dropdown-toggle:focus:active i.icon {
  color: #fff;
}
.show > .btn-outline-secondary.dropdown-toggle {
  background: none;
  color: inherit;
}
.btn-group .btn {
  height: auto;
}
a.btn {
  height: auto;
}
a.btn.btn-icon {
  height: 34px;
}
/* Primary Button */
.btn-primary {
  font-family: Arial, Helvetica, sans-serif;
  color: #fff;
  text-shadow: none;
  background: #2A2A2C;
  padding: 8px 16px;
  border: 0;
  box-shadow: none;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
  color: #fff;
  background: #CAA150;
  outline: 0;
  box-shadow: none;
}
.btn-primary.disabled, .btn-primary:disabled {
  color: #fff;
  background: #CAA150;
}
.btn-primary:active:hover, .btn-primary:active:focus, .btn-primary:active:active, .btn-primary:active.focus, .btn-primary.active:hover, .btn-primary.active:focus, .btn-primary.active:active, .btn-primary.active.focus, .btn-primary:focus:hover, .btn-primary:focus:focus, .btn-primary:focus:active, .btn-primary:focus.focus, .btn-primary.focus:hover, .btn-primary.focus:focus, .btn-primary.focus:active, .btn-primary.focus.focus {
  color: #fff;
  background-color: #CAA150;
}
.btn-primary:not(:disabled):not(.disabled):active {
  background-color: #CAA150;
  border-color: #CAA150;
}
.btn-primary:not(:disabled):not(.disabled):active:focus {
  box-shadow: none;
}
.open > .btn-primary.dropdown-toggle:hover, .open > .btn-primary.dropdown-toggle:focus, .open > .btn-primary.dropdown-toggle.focus {
  color: #fff;
  background-color: #CAA150;
}
input[type="submit"].btn-link {
  height: 45px;
}
/* End of Primary Button */
/* Secondary Button */
.btn-secondary {
  color: #fff;
  background-color: #CAA150;
}
.btn-secondary:hover, .btn-secondary:focus, .btn-secondary:focus:active, .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus {
  color: #fff;
  border-color: #2A2A2C;
  background-color: #2A2A2C;
  box-shadow: none;
}
.show > .btn-secondary.dropdown-toggle:focus {
  color: #fff;
  border-color: #2A2A2C;
  background-color: #2A2A2C;
  box-shadow: none;
}
/* End of Secondary Button */
.form-buttons, #fitem_id_submitbutton, #fgroup_id_buttonar {
  background: none;
  border-top: 0;
}
/* End of Button */
/* Submit button */
.submit.buttons input[name="cancel"] {
  font-weight: bold;
  font-family: Arial, Helvetica, sans-serif;
  color: #fff;
  text-shadow: none;
  background: #2A2A2C;
  padding: 11px 16px;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.submit.buttons input[name="cancel"]:hover, .submit.buttons input[name="cancel"]:focus {
  color: #fff;
  background: #CAA150;
  outline: 0;
}
/* End of Submit button */
/*Common RTL*/
.dir-rtl .form-buttons, .dir-rtl #fitem_id_submitbutton, .dir-rtl #fgroup_id_buttonar {
  background: none;
  border-top: 0;
}
/* Form Select */
select {
  font-family: Century Gothic, Arial, Helvetica, sans-serif;
  color: #5c5c5c;
  border-radius: 0;
  line-height: 36px;
  border-color: #d5d5d5;
}
select:focus {
  outline: 0;
  border-color: rgba(0, 0, 0, 0.2);
}
select[size], select[multiple] {
  width: 100%;
  max-width: 220px;
}
.custom-select:focus {
  border-color: rgba(0, 0, 0, 0.2);
  box-shadow: none;
}
/* RTL */
.dir-rtl select[multiple], .dir-rtl select[size] {
  width: 100%;
  max-width: 220px;
}
/* End of Form Select */
/* Textarea */
textarea {
  font-family: Century Gothic, Arial, Helvetica, sans-serif;
  color: #5c5c5c;
  height: auto;
  border-radius: 0;
  border-color: #d5d5d5;
  box-shadow: none;
}
textarea:focus {
  border-color: rgba(0, 0, 0, 0.2);
}
textarea[cols] {
  width: auto;
}
/* End of Textarea */
/* Dropdown */
.dropdown-menu {
  border-color: #f8f8f8;
  border-radius: 0;
  box-shadow: 2px 5px 5px rgba(0, 0, 0, 0.2);
}
.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus, .dropdown-menu .dropdown-submenu:hover > a, .dropdown-menu .dropdown-submenu:focus > a {
  color: #111;
  background: #d5d5d5;
}
.dropdown-menu .dropdown-item.text-danger:hover, .dropdown-menu .dropdown-item.text-danger:focus, .dropdown-menu .dropdown-item.text-danger:focus-within, .dropdown-menu .dropdown-item.text-danger:active {
  background-color: #ca3120;
}
.dropdown-menu .dropdown-item:hover, .dropdown-menu .dropdown-item:focus, .dropdown-menu .dropdown-item:focus-within, .dropdown-menu .dropdown-item:active {
  color: #CAA150;
  background: #f8f8f8;
}
.dropdown-menu .dropdown-item:hover a, .dropdown-menu .dropdown-item:focus a, .dropdown-menu .dropdown-item:focus-within a, .dropdown-menu .dropdown-item:active a {
  color: #CAA150;
}
.dropdown-menu .dropdown-item.active {
  color: #fff;
  background: #2A2A2C;
}
/* End of Dropdown */
/* Table */
table #form td.submit {
  background: none;
  border-top: 0;
}
table #form tbody > tr:nth-child(2n + 1) > td, table #form tbody > tr:nth-child(2n + 1) > th {
  background: #f8f8f8;
}
table table.forumheaderlist tbody > tr:nth-child(2n + 1) > td, table table.forumheaderlist tbody > tr:nth-child(2n + 1) > th, table.generaltable table.flexible tbody > tr:nth-child(2n + 1) > td, table.generaltable table.flexible tbody > tr:nth-child(2n + 1) > th, table table.rolecap tbody > tr:nth-child(2n + 1) > td, table table.rolecap tbody > tr:nth-child(2n + 1) > th, table table#explaincaps tbody > tr:nth-child(2n + 1) > td, table table#explaincaps tbody > tr:nth-child(2n + 1) > th, table table#defineroletable tbody > tr:nth-child(2n + 1) > td, table table#defineroletable tbody > tr:nth-child(2n + 1) > th, table table .grading-report tbody > tr:nth-child(2n + 1) > td, table table .grading-report tbody > tr:nth-child(2n + 1) > th, table table #listdirectories tbody > tr:nth-child(2n + 1) > td, table table #listdirectories tbody > tr:nth-child(2n + 1) > th, table table .userenrolment tbody > tr:nth-child(2n + 1) > td, table table .userenrolment tbody > tr:nth-child(2n + 1) > th, table table #modules tbody > tr:nth-child(2n + 1) > td, table table #modules tbody > tr:nth-child(2n + 1) > th, table table #permissions tbody > tr:nth-child(2n + 1) > td, table table #permissions tbody > tr:nth-child(2n + 1) > th {
  background: #f8f8f8;
}
table table.forumheaderlist tbody tr:hover > td, table table.forumheaderlist tbody tr:hover > th, table.generaltable table.flexible tbody tr:hover > td, table.generaltable table.flexible tbody tr:hover > th, table table.rolecap tbody tr:hover > td, table table.rolecap tbody tr:hover > th, table table#explaincaps tbody tr:hover > td, table table#explaincaps tbody tr:hover > th, table table#defineroletable tbody tr:hover > td, table table#defineroletable tbody tr:hover > th, table table .grading-report tbody tr:hover > td, table table .grading-report tbody tr:hover > th, table table #listdirectories tbody tr:hover > td, table table #listdirectories tbody tr:hover > th, table table .userenrolment tbody tr:hover > td, table table .userenrolment tbody tr:hover > th, table table #modules tbody tr:hover > td, table table #modules tbody tr:hover > th, table table #permissions tbody tr:hover > td, table table #permissions tbody tr:hover > th {
  background: #f8f8f8;
}
table.forumheaderlist table.generaltable tr th, table.forumheaderlist table.generaltable tr td, table table.flexible tr th, table table.flexible tr td, table table.rolecap tr th, table table.rolecap tr td {
  padding: 4px;
}
table.forumheaderlist table.generaltable th, table.forumheaderlist table.generaltable td, table table.flexible th, table table.flexible td, table table.rolecap th, table table.rolecap td {
  line-height: 21px;
  padding: 12px;
  border-top: 0;
}
table.forumheaderlist table.generaltable thead tr th, table table.flexible thead tr th, table table.rolecap thead tr th {
  color: #fff;
  background: #2A2A2C;
}
table.forumheaderlist table.generaltable thead tr th a, table table.flexible thead tr th a, table table.rolecap thead tr th a {
  color: #fff;
}
table.forumheaderlist table.generaltable thead tr th a i:before, table table.flexible thead tr th a i:before, table table.rolecap thead tr th a i:before {
  color: #fff;
}
table.forumheaderlist table.generaltable thead tr th a.btn-link i:before, table table.flexible thead tr th a.btn-link i:before, table table.rolecap thead tr th a.btn-link i:before {
  color: #fff;
}
table.forumheaderlist table.generaltable thead tr th img, table table.flexible thead tr th img, table table.rolecap thead tr th img {
  background: none repeat scroll 0 0;
}
.table thead th i.icon {
  color: #2A2A2C;
}
/* RTL */
.dir-rtl table#form td.submit {
  background: none;
  border-top: 0;
}
/* End of Table */
.aabtn.focus, .aabtn:focus, .btn-link.focus, .btn-link:focus, .nav-link.focus, .nav-link:focus, .editor_atto_toolbar button.focus, .editor_atto_toolbar button:focus, .editor_atto_toolbar .atto_toolbar_row.focus, .editor_atto_toolbar .atto_toolbar_row:focus, [role="button"].focus, [role="button"]:focus, .list-group-item-action.focus, .list-group-item-action:focus, input[type="checkbox"].focus, input[type="checkbox"]:focus, input[type="radio"].focus, input[type="radio"]:focus, input[type="file"].focus, input[type="file"]:focus, input[type="image"].focus, input[type="image"]:focus, .sr-only-focusable.focus, .sr-only-focusable:focus, a.dropdown-toggle.focus, a.dropdown-toggle:focus, .modal-dialog[tabindex="0"].focus, .modal-dialog[tabindex="0"]:focus, .moodle-dialogue-base .closebutton.focus, .moodle-dialogue-base .closebutton:focus, button.close.focus, button.close:focus, .form-autocomplete-selection.focus, .form-autocomplete-selection:focus, [role="treeitem"]:not([aria-expanded="true"]).focus, [role="treeitem"]:not([aria-expanded="true"]):focus {
  outline: none;
  box-shadow: none;
}
.aalink.focus, a.focus.autolink, #page-footer a:not([class]).focus, .arrow_link.focus, a:not([class]).focus, .activityinstance > a.focus, .aalink:focus, a.autolink:focus, #page-footer a:not([class]):focus, .arrow_link:focus, a:not([class]):focus, .activityinstance > a:focus {
  background: none;
  box-shadow: none;
}
@media (min-width: 992px) {
  .container-fluid, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl {
    padding-left: 40px;
    padding-right: 40px;
  }
}
@media (max-width: 767px) {
  textarea[cols], input[size] {
    width: 100%;
  }
  .nav-tabs:not(.more-nav), .nav-pills, .nav-item.show {
    border-radius: 0;
    background: none;
    padding: 0;
  }
  .nav-tabs:not(.more-nav) .nav-link, .nav-pills .nav-link, .nav-item.show .nav-link {
    border: 1px solid #e5e5e5;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    box-shadow: none;
    margin: 0;
  }
  .nav-tabs:not(.more-nav) .nav-link:hover, .nav-tabs:not(.more-nav) .nav-link:focus, .nav-pills .nav-link:hover, .nav-pills .nav-link:focus, .nav-item.show .nav-link:hover, .nav-item.show .nav-link:focus {
    color: #fff;
    border-color: #2A2A2C;
    background: #2A2A2C;
  }
  .nav-tabs:not(.more-nav) .nav-link.active:not(:disabled):not(.disabled):active, .nav-tabs:not(.more-nav) .nav-link.active:not(:disabled):not(.disabled):active:focus, .nav-tabs:not(.more-nav) .nav-link.active:not(:disabled):not(.disabled) .active:focus, .nav-tabs:not(.more-nav) .nav-link.active:not(:disabled):not(.disabled).active, .nav-pills .nav-link.active:not(:disabled):not(.disabled):active, .nav-pills .nav-link.active:not(:disabled):not(.disabled):active:focus, .nav-pills .nav-link.active:not(:disabled):not(.disabled) .active:focus, .nav-pills .nav-link.active:not(:disabled):not(.disabled).active, .nav-item.show .nav-link.active:not(:disabled):not(.disabled):active, .nav-item.show .nav-link.active:not(:disabled):not(.disabled):active:focus, .nav-item.show .nav-link.active:not(:disabled):not(.disabled) .active:focus, .nav-item.show .nav-link.active:not(:disabled):not(.disabled).active {
    color: #fff;
    border-color: #CAA150;
    background: #CAA150;
    box-shadow: none;
  }
  .show > .nav-tabs:not(.more-nav) .nav-link.active.dropdown-toggle, .show > .nav-pills .nav-link.active.dropdown-toggle, .show > .nav-tabs:not(.more-nav) .nav-link.active.dropdown-toggle:focus, .show > .nav-pills .nav-link.active.dropdown-toggle:focus {
    color: #fff;
    border-color: #CAA150;
    background: #CAA150;
    box-shadow: none;
  }
  .nav-tabs .nav-link.active:not(:disabled):not(.disabled):active, .nav-tabs .nav-link.active:not(:disabled):not(.disabled).active, .show > .nav-tabs .nav-link.active.dropdown-toggle, .nav-pills .nav-link.active:not(:disabled):not(.disabled):active, .nav-pills .nav-link.active:not(:disabled):not(.disabled).active, .show > .nav-pills .nav-link.active.dropdown-toggle {
    background: #2A2A2C;
    border-color: #2A2A2C;
  }
}
@media (max-width: 574px) {
  form select {
    max-width: 220px;
  }
  form input[type="text"] {
    max-width: 220px;
  }
  form input[type="password"] {
    max-width: 220px;
  }
  form.atto_form input[type="url"] {
    max-width: 220px;
  }
  select {
    width: auto;
  }
  select.singleselect {
    max-width: 220px;
    width: auto;
  }
  textarea {
    max-width: 220px;
  }
}
i.icon {
  font-size: 16px;
}
label {
  padding-top: 0;
}
legend {
  float: left;
  font-size: 16px;
  color: #828282;
  line-height: 20px;
  padding-bottom: 20px;
  border-bottom-color: #d5d5d5;
}
legend + div {
  clear: both;
}
.close:hover {
  background: none;
}
#backToTop {
  height: auto;
  border: 1px solid #fff;
  padding: 0 10px;
  position: fixed;
  right: 2rem;
  bottom: 9rem;
  z-index: 1;
}
#page.drawers.show-drawer-right #backToTop {
  right: calc(315px + 2rem);
}
#recipientform select, .langimport select {
  max-width: 100%;
}
.activity-add .pluscontainer {
  border-color: #2A2A2C;
}
.moodle-dialogue-base button.closebutton:hover, .moodle-dialogue-base button.closebutton:focus {
  background: none;
}
.moodle-dialogue-bd .nav-pills .nav-link.active {
  background: #2A2A2C;
}
.action-menu .menubar .action-menu-trigger .dropdown .dropdown-toggle {
  border: 0;
  background: none;
}
.collapsable-section a.btn-icon {
  height: 34px;
}
.collapsable-section a.btn-icon span {
  margin-right: 0 !important;
}
.listitem .action-menu .dropdown-toggle {
  box-shadow: none;
}
.listitem .action-menu .dropdown-toggle i.icon {
  margin: 0;
}
.activity-navigation #prev-activity-link, .activity-navigation #next-activity-link {
  text-align: left;
}
.activity-navigation a.btn.btn-link {
  color: #2A2A2C;
}
.activity-navigation a.btn.btn-link:hover {
  color: #2A2A2C;
}
.form-autocomplete-downarrow {
  top: 0.5rem;
}
.form-autocomplete-suggestions li:hover, .form-autocomplete-suggestions li:focus, .form-autocomplete-suggestions li[aria-selected="true"], .form-autocomplete-selection li:hover, .form-autocomplete-selection li:focus, .form-autocomplete-selection li[aria-selected="true"] {
  background: #2A2A2C;
  box-shadow: none;
}
.form-autocomplete-suggestions span.badge, .form-autocomplete-selection span.badge {
  color: #fff !important;
  background: #2A2A2C;
  padding: 5px;
  box-shadow: none;
}
.collapsible-actions {
  padding: 14px 0 18px;
}
.collapsible-actions a {
  font-weight: bold;
  font-size: 12px;
  color: #656565;
  line-height: 24px;
}
[role="treeitem"][aria-expanded="true"].focus > *:first-child, [role="treeitem"][aria-expanded="true"]:focus > *:first-child {
  box-shadow: none;
}
.moodle-actionmenu[data-enhanced].show .menu {
  padding: 0;
  border-color: #e8e3e3;
  border-radius: 0;
  box-shadow: none;
  margin: 0;
}
.moodle-actionmenu[data-enhanced].show .menu a:hover, .moodle-actionmenu[data-enhanced].show .menu a:focus {
  color: #111;
  background: #d5d5d5;
  border-radius: 0;
  text-decoration: none;
  outline: 0;
}
.moodle-dialogue-base .closebutton {
  color: #373a3c;
}
.userlist table#participants th {
  vertical-align: middle;
}
.userselector select[size] {
  max-width: none;
}
.userselector > .form-inline {
  display: block;
  margin-top: 10px;
  margin-bottom: 10px;
}
.userselector > .form-inline .collapsibleregioninner .form-check {
  justify-content: normal;
}
.userselector div label {
  display: inline-block;
}
.userselector #userselector_options {
  width: 100%;
}
.generalbox form .userselector + p {
  margin-top: 10px;
}
.commands {
  margin: 10px 0;
}
.mdl-left {
  margin: 10px 0;
}
.btn-navbar .icon-bar + .icon-bar {
  margin-top: 4px;
}
.form-buttons {
  background: none;
  border-top: 0;
}
#fitem_id_submitbutton {
  background: none;
  border-top: 0;
}
#fgroup_id_buttonar {
  background: none;
  border-top: 0;
}
#page-admin-index #page-content .alert a.download {
  color: #fff;
}
.alert .btn-close {
  line-height: normal;
  display: inline-block;
}
.dir-rtl .blog_entry .audience {
  text-align: left;
  margin: 5px 0;
}
.dir-rtl .moodle-actionmenu[data-enhanced].show .menu.align-tr-br {
  right: 0;
  left: auto;
}
@media (max-width: 574px) {
  .dir-rtl .form-buttons, .dir-rtl .path-admin .buttons {
    padding-right: 0;
  }
  .dir-rtl .blog_entry .content {
    margin-left: 0;
    margin-right: 23px;
  }
}
/* Page Content */
.drawer-toggles .drawer-right-toggle {
  z-index: 3;
}
.main-inner .drawer-left-toggle button, .main-inner .drawer-right-toggle button {
  background: #2A2A2C;
}
.main-inner .drawer-left-toggle button.btn:not(:disabled):not(.disabled), .main-inner .drawer-right-toggle button.btn:not(:disabled):not(.disabled) {
  color: #fff;
  border-color: #CAA150;
  background-color: #CAA150;
}
.main-inner .drawer-left-toggle button.btn:not(:disabled):not(.disabled):hover, .main-inner .drawer-left-toggle button.btn:not(:disabled):not(.disabled):focus, .main-inner .drawer-right-toggle button.btn:not(:disabled):not(.disabled):hover, .main-inner .drawer-right-toggle button.btn:not(:disabled):not(.disabled):focus {
  border-color: #2A2A2C;
  background-color: #2A2A2C;
}
.main-inner .drawer-toggles .drawer-toggler button {
  padding: 0 10px;
}
.main-inner .drawer-toggles .drawer-toggler button:hover, .main-inner .drawer-toggles .drawer-toggler button:focus {
  color: #fff;
  background: #2A2A2C;
  box-shadow: none;
}
.main-inner .secondary-navigation .moremenu .nav-link[data-toggle="tab"]:after {
  display: none;
}
.secondary-navigation .navigation {
  border-bottom: 0;
}
.secondary-navigation .navigation .nav.nav-tabs {
  max-width: none;
}
.secondary-navigation + #page-content #region-main {
  border-top: 0;
  padding-top: 0;
  margin-top: 0;
}
.secondary-navigation + #page-content #region-main > div[role="main"] > .buttons {
  margin: 0 20px;
}
.secondary-navigation .moremenu .nav-tabs .dropdownmoremenu .dropdown-menu {
  margin-top: 0;
  top: 100% !important;
  transform: none !important;
  left: auto !important;
  right: 0;
}
.tertiary-navigation {
  border: 0;
}
.tertiary-navigation .navitem-divider {
  display: none;
}
.tertiary-navigation .tertiary-navigation-selector .dropdown-toggle {
  padding: 0 15px;
}
.tertiary-navigation .navitem a.btn-link {
  display: flex;
  align-items: center;
}
.tertiary-navigation .navitem .extrafilters .dropdown-toggle:hover, .tertiary-navigation .navitem .extrafilters .dropdown-toggle:focus, .tertiary-navigation .navitem .extrafilters .dropdown-toggle:active {
  color: #1d2125;
  background: none;
}
.tertiary-navigation .navitem .extrafilters .dropdown-menu .flex-column form .row {
  padding: 0;
}
.tertiary-navigation .navitem .dropdown .dropdown-toggle {
  border-color: transparent;
}
.tertiary-navigation .navitem form .me-1 {
  margin-bottom: 0;
}
#page-grade-report-grader-index #page.drawers.hasstickyfooter {
  margin-bottom: 90px;
}
.hasstickyfooter {
  height: auto;
}
.hasstickyfooter .btn-toolbar .btn {
  height: auto;
  border: 0;
  margin-right: 10px;
}
.hasstickyfooter .btn-toolbar .btn:last-child {
  margin-right: 0;
}
.hasstickyfooter .btn-toolbar .btn:hover {
  color: #fff;
}
.hasstickyfooter .stickyfooter .ms-auto .btn {
  padding-top: 0;
  padding-left: 0.5rem;
}
.hasstickyfooter .stickyfooter .ms-auto .btn:hover {
  color: #fff;
}
.card.card-block .action-menu .menubar .dropdown a i.icon {
  margin-right: 5px;
}
body:not(.pagelayout-maintenance) #page-wrapper {
  height: auto;
  margin-top: 60px;
}
#page {
  margin-top: 0;
}
#page #page-header {
  max-width: none;
  display: block;
  margin-bottom: 15px;
  padding-top: 0;
}
#page #page-header .d-flex .header-actions-container .simplesearchform .input-group .input-group-append button {
  border-top-right-radius: 5px;
  border-bottom-right-radius: 5px;
}
#page #page-header .card {
  border: 0;
}
#page #page-header .card .card-body {
  padding: 0;
}
#page #page-header .card .card-block .menubar .dropdown .dropdown-toggle i {
  margin: 0;
}
#page #page-header .card .card-block .menubar .dropdown .dropdown-menu .dropdown-item i {
  color: #2A2A2C;
}
#page #page-header .card #page-navbar {
  height: 100%;
  box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.2);
  border-top-left-radius: 10px;
  border-bottom-left-radius: 10px;
}
#page #page-header .page-header-image {
  margin-top: 0;
}
#page #page-content .has-blocks .card.card-block .course-content .weeks li.section .right .section_action_menu .action-menu .menubar .dropdown .dropdown-menu a.dropdown-item i.icon {
  color: #2A2A2C;
}
#page #page-content .has-blocks .card.card-block .course-content .weeks li.section .content ul.section li .mod-indent-outer .action-menu .menubar .dropdown .dropdown-menu .dropdown-item i.icon {
  color: #2A2A2C;
}
#page #page-content .has-blocks .card.card-block .course-content .weeks li.section .content .sectionname .inplaceeditable .quickeditlink i.icon {
  vertical-align: top;
}
#page #page-content .has-blocks .card.card-block .course-content .weeks li.section .content .sectionname .inplaceeditable .quickeditlink i.icon:before {
  font-size: 12px;
}
.page-context-header {
  align-items: center;
}
.page-context-header .header-button-group {
  margin-left: 10px;
}
.page-context-header .page-header-image {
  margin-top: 0;
}
.page-context-header .page-header-image > a, .page-context-header .page-header-image img {
  width: 100%;
  height: auto;
}
.page-context-header .page-header-image a .userinitials {
  width: 40px;
  height: 40px;
  font-size: 16px;
  padding: 0;
  display: flex;
  align-items: center;
}
.filter-group .d-flex .text-reset i {
  margin: 0;
}
.filter-group .d-flex .text-reset:hover {
  text-decoration: none;
}
.filter-group .d-flex .text-reset:hover span {
  color: #2A2A2C;
}
#region-main {
  float: none;
  padding: 0 15px 15px;
  border-radius: 10px;
  overflow-x: visible;
}
#region-main .mform:not(.unresponsive) .fitem .fitemtitle label {
  font-weight: normal;
}
#region-main div[role="main"] .pull-left + .no-overflow {
  overflow: visible;
}
#region-main .singlebutton {
  margin-bottom: 10px;
}
#region-main .singlebutton:last-child {
  margin-bottom: 0;
}
#region-main .singlebutton.enrolusersbutton .btn {
  background-color: #2A2A2C;
}
#region-main .singlebutton.enrolusersbutton .btn:hover, #region-main .singlebutton.enrolusersbutton .btn:focus {
  background-color: #434343;
}
#region-main.has-blocks.dashboard-card-deck .dashboard-card .card-body .card-title {
  width: 100%;
  margin-right: 0;
}
#region-main .block-myoverview .progress {
  border-radius: 5px;
}
#region-main .block-myoverview .progress .progress-bar {
  background-color: #CAA150;
}
.dir-rtl .card.card-block .action-menu .menubar .dropdown a i {
  margin-left: 5px;
  margin-right: 0;
}
@media (max-width: 767px) {
  .secondary-navigation + #page-content #region-main {
    padding: 0;
  }
}
@media (max-width: 575px) {
  .card.card-block .action-menu .menubar .dropdown .dropdown-menu {
    left: 0;
    right: auto;
  }
  .dir-rtl .card.card-block .action-menu .menubar .dropdown .dropdown-menu {
    right: 0;
    left: auto;
  }
}
@media (max-width: 450px) {
  .secondary-navigation .moremenu .nav-tabs .dropdownmoremenu .dropdown-menu {
    left: 0 !important;
  }
}
/* End of Page Content */
/* Site Admin */
#page-site-index #header {
  margin-bottom: 0;
}
/* End of Site Admin */
/* Quiz */
#page-mod-quiz-mod #id_reviewoptionshdr .fitemtitle {
  min-height: 3em;
  height: auto;
}
#page-mod-quiz-edit .add-menu-outer {
  bottom: 0;
}
#page-mod-quiz-edit .section-heading {
  font-size: 1rem;
}
#page-mod-quiz-edit .section .activity .actions {
  align-items: center;
}
#page-mod-quiz-edit .section .activity .actions .version-selection {
  padding: 5px;
}
#page-mod-quiz-edit .section .activity .editing_move {
  top: 15px;
  left: 5px;
}
#page-mod-quiz-edit ul.slots .activityinstance span.instancename {
  height: auto;
}
#page-mod-quiz-edit .mod_quiz-edit-action-buttons input.btn {
  height: 100%;
}
#page-mod-quiz-edit li.section.shuffled .slotnumber.shuffled {
  display: flex;
  align-items: center;
  justify-content: center;
}
#page-mod-quiz-edit ul.slots li.section li.activity .activityinstance {
  margin-bottom: 0;
}
#page-mod-quiz-edit .inplaceeditable .quickeditlink {
  display: flex;
}
#page-mod-quiz-edit .inplaceeditable .quickeditlink .quickediticon {
  margin-top: 0;
  margin-left: 5px;
}
#page-mod-quiz-attempt .submitbtns {
  text-align: right;
}
#page-mod-quiz-attempt .submitbtns .mod_quiz-next-nav {
  float: none;
}
#page-admin-registration-register .registration_textfield {
  width: auto;
}
#page-admin-roles-usersroles p {
  margin: 15px 0;
}
.quizstartbuttondiv .btn-secondary {
  color: #fff;
  background: #2A2A2C;
  box-shadow: none;
}
.quizstartbuttondiv .btn-secondary:hover, .quizstartbuttondiv .btn-secondary:focus, .quizstartbuttondiv .btn-secondary:focus:active {
  color: #fff;
  background: #CAA150;
  box-shadow: none;
}
.groupmanagementtable #buttonscell p.arrow_button input {
  width: 100%;
  margin: 10px auto 0;
}
.calendar-event-panel {
  background: none;
}
.felement.fstatic {
  padding-top: 0;
}
.fcontainer .root_setting .form-group {
  margin-bottom: 10px;
}
.fcontainer .root_setting .form-group .checkbox .form-check .form-check-input {
  margin-top: 15px;
  margin-bottom: 10px;
}
.fcontainer .root_setting .form-group .checkbox .form-check label {
  margin: 10px 0;
}
form#coursesearch {
  clear: both;
}
form#coursesearch fieldset.coursesearchbox label {
  color: #434343;
  padding-top: 7px;
}
form#coursesearch fieldset.coursesearchbox .input-group-btn {
  position: absolute;
  right: 0;
  z-index: 4;
}
form#coursesearch fieldset.coursesearchbox input[type="text"] {
  max-width: 300px;
  padding: 0 10px;
}
form#coursesearch fieldset.coursesearchbox input[type="submit"] {
  width: 40px;
  height: 40px;
  vertical-align: top;
  background: #434343 url(/theme/image.php/academi/theme/1790824836/ic-search) no-repeat center center;
  padding: 0;
  margin-right: 10px;
  text-indent: -9999em;
  text-transform: capitalize;
}
body:not(.path-admin) #page.drawers {
  padding: 0;
}
.path-admin .buttons {
  background: none;
  border-top: 0;
  text-align: right;
  padding-left: 0;
}
.path-admin.path-admin-roles:not(.format-site) .secondary-navigation .navigation .nav-tabs {
  margin: 0;
}
.path-admin .buttons input[type="submit"], td.submit input {
  background: #CAA150;
  border: 0;
  text-shadow: none;
}
.path-admin .buttons input[type="submit"]:hover, .path-admin .buttons input[type="submit"]:focus, .path-admin .buttons input[type="submit"]:active, .path-admin .buttons input[type="submit"].active, .path-admin .buttons input[type="submit"].disabled, .path-admin .buttons input[type="submit"][disabled], td.submit input:hover, td.submit input:focus, td.submit input:active, td.submit input.active, td.submit input.disabled, td.submit input[disabled] {
  color: #fff;
  background: #434343;
}
tr.discussion td .dropdown .dropdown-menu .dropdown-item a.btn {
  color: #2A2A2C;
}
tr.discussion td .dropdown .dropdown-menu .dropdown-item a.btn:hover, tr.discussion td .dropdown .dropdown-menu .dropdown-item a.btn:focus, tr.discussion td .dropdown .dropdown-menu .dropdown-item a.btn.btn:active {
  color: #fff;
  background: #2A2A2C;
}
tr.discussion .btn i.icon {
  color: #2A2A2C;
}
#notice .singlebutton + .singlebutton input {
  font-weight: bold;
  font-family: Arial, Helvetica, sans-serif;
  color: #fff;
  text-shadow: none;
  background: #2A2A2C;
  padding: 11px 16px;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
#notice .singlebutton + .singlebutton input:hover, #notice .singlebutton + .singlebutton input:focus {
  color: #fff;
  background: #434343;
  outline: 0;
}
.category_subcategories tbody > tr:nth-child(2n + 1) > td, .category_subcategories tbody > tr:nth-child(2n + 1) > th, form#movecourses table tbody > tr:nth-child(2n + 1) > td, form#movecourses table tbody > tr:nth-child(2n + 1) > th, #page-admin-course-index .editcourse tbody > tr:nth-child(2n + 1) > td, #page-admin-course-index .editcourse tbody > tr:nth-child(2n + 1) > th, .user-enroller-panel .uep-search-results .users tbody > tr:nth-child(2n + 1) > td, .user-enroller-panel .uep-search-results .users tbody > tr:nth-child(2n + 1) > th, .user-enroller-panel .uep-search-results .cohorts tbody > tr:nth-child(2n + 1) > td, .user-enroller-panel .uep-search-results .cohorts tbody > tr:nth-child(2n + 1) > th {
  background: #f8f8f8;
}
.userprofile .userprofilebox .descriptionbox .description {
  margin: 0 0 10px;
}
.userprofile .userprofilebox .descriptionbox .description p {
  color: #3e1a1a;
  line-height: 18px;
  margin-bottom: 0;
}
.userprofile .userprofilebox .descriptionbox .list {
  margin: 0;
  overflow: hidden;
}
.userprofile .userprofilebox .descriptionbox .list dt {
  float: none;
  width: auto;
  clear: none;
}
.userprofile .userprofilebox .descriptionbox .list dd {
  margin: 0 0 10px;
  clear: none;
}
.userprofile .userprofilebox .profilepicture a {
  display: block;
}
.felement.fstatic {
  padding-top: 0;
}
.userenrolment tr th {
  color: #fff;
  background: #2A2A2C;
  padding: 4px;
}
.userenrolment tr a {
  color: #fff;
}
.no-overflow > .generaltable {
  margin-bottom: 20px;
}
.generaltable .qbank-column-list .qbank-sortable-column td {
  vertical-align: middle;
}
div.backup-section + form {
  background: none;
  border-top: 0;
}
.maincalendar .calendartable td {
  vertical-align: middle;
}
.maincalendar .calendarmonth td.today .day-number-circle {
  background: #2A2A2C;
}
.messaging-area-container .btn.btn-link {
  color: #2A2A2C;
}
.messaging-area-container .messaging-area {
  height: 507px;
}
.messaging-area-container .messaging-area .contacts-area {
  height: auto;
}
.messaging-area-container .messaging-area .contacts-area .tabs .tab {
  height: auto;
}
.messaging-area-container .messaging-area .contacts-area .tabs .tab:hover, .messaging-area-container .messaging-area .contacts-area .tabs .tab:focus, .messaging-area-container .messaging-area .contacts-area .tabs .tab.selected {
  color: #2A2A2C;
}
.messaging-area-container .messaging-area .contacts-area .tabs .tab div {
  color: #2A2A2C;
}
.messaging-area-container .messaging-area .contacts-area .contacts .contact:hover, .messaging-area-container .messaging-area .contacts-area .contacts .contact .selected {
  background-color: #2A2A2C;
}
.messaging-area-container .messaging-area .contacts-area .contacts .contact .picture {
  border-color: inherit;
}
#coursesearch .coursesearchbox label {
  margin-right: 7px;
}
.jsenabled .visibleifjs {
  vertical-align: top;
  margin-top: 15px;
}
.dir-rtl .path-admin .buttons {
  background: none;
  border-top: 0;
}
.dir-rtl div.backup-section + form {
  background: none;
  border-top: 0;
}
.dir-rtl #coursesearch .coursesearchbox label {
  margin-left: 7px;
}
.dir-rtl .userprofile dl.list dd {
  margin-left: 0;
}
@media (max-width: 767px) {
  .block-region .block.card {
    border: 1px solid #e5e5e5;
  }
  #page-mod-quiz-mod #id_reviewoptionshdr .fitem {
    float: none;
    width: 100%;
  }
}
@media (min-width: 576px) {
  .userprofile .userprofilebox .profilepicture {
    float: left;
  }
  .userprofile .userprofilebox .descriptionbox {
    padding: 0 0 0 118px;
  }
  .userprofile dl.list dt, .userprofile dl.list dd {
    text-align: left;
  }
}
@media (max-width: 575px) {
  .userprofile .userprofilebox .profilepicture {
    float: none;
    width: 106px;
    margin: 0 auto 10px;
  }
  .userprofile dl.list dt, .userprofile dl.list dd {
    text-align: center;
  }
  .profileeditor > .singlebutton {
    margin-top: 10px;
  }
  #coursesearch .coursesearchbox label {
    padding-top: 0;
    margin-bottom: 7px;
    display: block;
  }
}
/* Forum page */
.path-mod-forum .discussion-settings-menu .dropdown .dropdown-toggle {
  color: #CAA150;
}
.path-mod-forum .discussion-settings-menu .dropdown .dropdown-toggle:focus {
  background: none;
}
.path-mod-forum .discussion-settings-menu .dropdown .dropdown-menu .dropdown-item a.btn {
  color: #2A2A2C;
}
.path-mod-forum .discussion-settings-menu .dropdown .dropdown-menu .dropdown-item a.btn:hover, .path-mod-forum .discussion-settings-menu .dropdown .dropdown-menu .dropdown-item a.btn:focus, .path-mod-forum .discussion-settings-menu .dropdown .dropdown-menu .dropdown-item a.btn:active {
  color: #fff;
  background: #2A2A2C;
}
.path-mod-forum .forumheaderlist .discussion .topic, .path-mod-forum .forumheaderlist .discussion .discussionsubscription, .path-mod-forum .forumheaderlist .discussion .picture, .path-mod-forum .forumheaderlist .discussion .author, .path-mod-forum .forumheaderlist .discussion .replies, .path-mod-forum .forumheaderlist .discussion .lastpost, .path-mod-forum .forumheaderlist .discussion .topic.starter {
  vertical-align: middle;
}
.path-mod-forum .forum-post-container .forumpost:before {
  background-color: #2A2A2C;
}
/* End of Forum page */
/* Activity Submission */
.path-mod-assign .quickgradingform form .gradingtable table tbody tr td.grade input.quickgrade {
  border-style: solid;
}
.path-mod-assign .quickgradingform form .gradingtable table tbody tr td .submissionstatussubmitted, .path-mod-assign .quickgradingform form .gradingtable table tbody tr td .submissiongraded, .path-mod-assign .quickgradingform form .gradingtable table tbody tr td .submissionstatus {
  padding: 5px;
}
.path-mod-assign .modal .modal-body form textarea {
  width: 100%;
}
/* End of Activity Submission */
/* Grade report */
#page-grade-grading-manage .actions .action {
  height: auto;
}
.path-grade-report-singleview div.groupselector, .path-grade-report-singleview div.selectitems, .path-grade-report-singleview div.reporttable form div.singleview_buttons {
  text-align: center;
}
.path-grade-report-user #graded_users_selector {
  float: none;
}
.path-grade-report-user .view_users_selector {
  float: none;
}
/* .path-grade-report-grader .gradeparent {
    overflow-x: auto;
} */
.pagelayout-report .no-overflow {
  overflow: auto;
}
.path-mod-book #mod_book-chaptersnavigation {
  margin: 0 -55px;
}
.path-mod-book #mod_book-chaptersnavigation .navitem .btn {
  line-height: 20px;
}
.dir-rtl.path-grade-report-user #graded_users_selector {
  float: none;
}
/* End of Grade report */
/* Moodle Editor */
.cb-toolbar-container .icon-no-margin, .cb-toolbar-container .icon-no-margin.btn:not(:disabled):not(.disabled) {
  color: #fff;
  background: #2A2A2C;
  border-color: #2A2A2C;
  box-shadow: none;
  margin-right: 2px;
}
.cb-toolbar-container .icon-no-margin:hover, .cb-toolbar-container .icon-no-margin.btn:not(:disabled):not(.disabled):hover, .cb-toolbar-container .icon-no-margin:not(:disabled):not(.disabled):active:focus, .cb-toolbar-container .icon-no-margin.btn-secondary:not(:disabled):not(.disabled).active, .cb-toolbar-container .icon-no-margin.show > .btn-secondary.dropdown-toggle {
  color: #fff;
  background: #CAA150;
  border-color: #CAA150;
  box-shadow: none;
}
.fp-toolbar .btn, .fp-viewbar .btn {
  color: #fff;
  line-height: 30px;
  background: #2A2A2C;
  border-color: #2A2A2C;
}
.fp-toolbar .btn:not(:disabled):not(.disabled), .fp-viewbar .btn:not(:disabled):not(.disabled) {
  border-color: #2A2A2C;
  background: #2A2A2C;
  margin-right: 2px;
}
.fp-toolbar .btn:not(:disabled):not(.disabled).checked, .fp-viewbar .btn:not(:disabled):not(.disabled).checked {
  color: #fff;
  background: #CAA150;
  border-color: #CAA150;
  box-shadow: none;
}
.fp-toolbar .show > .btn-secondary.dropdown-toggle:focus, .fp-viewbar .show > .btn-secondary.dropdown-toggle:focus {
  color: #fff;
  border-color: #CAA150;
  background: #CAA150;
  box-shadow: none;
}
.fp-content-center form + div {
  background: none;
  border-top: 0;
}
.dir-rtl .fp-content-center form + div {
  background: none;
  border-top: 0;
}
/* End of Moodle Editor */
/* Moodle Form */
.mform label {
  font-size: 16px;
}
.mform legend a {
  color: #828282;
}
.mform legend a:hover {
  color: #828282;
}
.mform .form-inline .custom-select {
  height: 40px;
}
.mform .fcheckbox input {
  vertical-align: bottom;
}
.mform > .fitem {
  margin-bottom: 24px;
}
.mform > .fitem .felement .fdate_selector .form-check {
  margin-bottom: 0;
}
.mform .fpassword .unmask label {
  font: 14px Arial, Helvetica, sans-serif;
  padding: 0 0 0 7px;
}
.mform .fdescription.required {
  font: 12px Arial, Helvetica, sans-serif;
  color: #828282;
  margin: 0;
  text-align: right;
}
.mform .fpassword .unmask {
  margin-left: 12px;
}
.mform fieldset.collapsible .ftoggler .fheader {
  height: 34px;
}
.form-item {
  margin-bottom: 24px;
}
.form-item .form-description {
  padding-top: 0;
}
.form-item .form-setting .defaultsnext select {
  max-width: 220px;
  width: 100%;
}
.editor_atto_menu .dropdown-menu > li > a {
  display: block;
}
.editor_atto .editor_atto_toolbar .atto_group .dropdown-menu li a {
  text-decoration: none;
  padding: 5px;
  margin: 0;
}
.editor_atto .editor_atto_toolbar .atto_group .dropdown-menu li a:hover, .editor_atto .editor_atto_toolbar .atto_group .dropdown-menu li afocus {
  color: #fff;
  background: #2A2A2C;
}
/*Common RTL*/
.dir-rtl .mform .fpassword .unmask {
  margin-right: 12px;
}
.dir-rtl .mform .fpassword .unmask label {
  padding: 0 7px 0 0;
}
.dir-rtl .mform .fdescription.required {
  margin: 0;
  text-align: left;
  margin-left: 0;
}
.dir-rtl .mform .fitem .felement {
  margin-left: 0;
}
.dir-rtl .form-item .form-setting, .dir-rtl .form-item .form-description {
  margin-left: 0;
}
.dir-rtl .form-horizontal .controls {
  margin-left: 0;
}
@media (min-width: 768px) and (max-width: 991px) {
  .form-item .form-label {
    width: 140px;
  }
  .mform .fitem div.fitemtitle {
    width: 140px;
  }
  .dir-rtl .form-label {
    float: none;
  }
  .dir-rtl .form-label label {
    text-align: right;
  }
  .dir-rtl .form-item .form-setting, .dir-rtl .form-item .form-description {
    margin-right: 0;
  }
  .dir-rtl .mform .fitem .felement, .dir-rtl .mform .fitem .fdescription.required {
    margin-right: 0;
  }
  .dir-rtl .mform .fitem div.fitemtitle {
    float: none;
  }
  .dir-rtl .userprofile dl.list dd {
    margin-right: 0;
  }
  .dir-rtl .form-horizontal .controls {
    margin-right: 0;
  }
  .dir-rtl .form-label .form-shortname {
    text-align: right;
  }
}
@media (max-width: 767px) {
  .mform .form-inline .custom-select {
    max-width: 500px;
    width: 100%;
  }
  .mform .fitem {
    margin-bottom: 10px;
  }
  .dir-rtl .form-item .form-label {
    float: none;
    text-align: right;
  }
  .dir-rtl .mform .fitem div.fitemtitle {
    float: none;
    text-align: right;
  }
}
@media (min-width: 575px) and (max-width: 767px) {
  .dir-rtl .form-item .form-label, .dir-rtl .mform .fitem div.fitemtitle {
    text-align: right;
    float: none;
  }
}
@media (min-width: 576px) {
  .dir-rtl .userprofile .userprofilebox .profilepicture {
    float: right;
  }
  .dir-rtl .userprofile .userprofilebox .descriptionbox {
    padding: 0 118px 0 0;
  }
  .dir-rtl .userprofile dl.list dt, .dir-rtl .userprofile dl.list dd {
    text-align: right;
  }
}
@media (max-width: 575px) {
  .dir-rtl .userprofile dl.list dt, .dir-rtl .userprofile dl.list dd {
    text-align: center;
  }
}
/* End of Moodle Form */
/* Breadcrumb */
.breadcrumb {
  background: none;
  border-radius: 0;
  display: block;
  padding: 0;
}
.breadcrumb > li {
  color: #828282;
  text-shadow: none;
  border-top-left-radius: 2px;
  border-bottom-left-radius: 2px;
  background-color: #eee;
  padding: 5px 15px;
  margin-bottom: 20px;
  float: left;
  position: relative;
}
.breadcrumb > li a {
  color: #828282;
}
.breadcrumb > li a:hover, .breadcrumb > li a:focus {
  color: #2A2A2C;
  text-decoration: none;
}
.breadcrumb > li > .divider {
  font-size: 10px;
  color: #2A2A2C;
}
.breadcrumb .breadcrumb-item:last-child {
  color: #fff;
  padding-left: 15px;
  padding-right: 10px;
  background: #2A2A2C;
}
.breadcrumb .breadcrumb-item:last-child:before {
  display: none;
}
.breadcrumb .breadcrumb-item:last-child:after {
  content: "";
  width: 0;
  height: 0;
  border-top: 18px solid transparent;
  border-bottom: 16px solid transparent;
  border-left: 20px solid #2A2A2C;
  position: absolute;
  right: -20px;
  top: 0;
}
.breadcrumb .breadcrumb-item + .breadcrumb-item:before {
  content: "";
  font-family: var(--fa-style-family, "Font Awesome 6 Free", "Font Awesome 6 Brands", fontawesome);
  font-weight: var(--fa-style, 900);
  margin-right: 10px;
}
/* End of Breadcrumb */
.simplesearchform form .coursesearchbox input[type="text"] {
  max-width: none;
  width: 50%;
  display: inline-block;
  vertical-align: middle;
}
.simplesearchform .withclear + button {
  color: #fff;
  background: #2A2A2C;
}
.simplesearchform .btn-close {
  line-height: 32px;
  border: 0;
}
.simplesearchform .btn-submit {
  color: #fff;
  background-color: #2A2A2C;
}
#page.drawers {
  height: auto;
  padding: 0;
  margin-top: 20px;
}
#page.drawers .drawer-right-toggle {
  margin-right: 0;
}
#page.drawers div[role="main"] {
  padding: 0;
}
#page.drawers div[role="main"] > .skip-block-to {
  height: auto;
}
#page.drawers div[role="main"] form .settingsform > h2, #page.drawers div[role="main"] form .settingsform > .h2 {
  margin-bottom: 30px;
}
#page.drawers div[role="main"] .card-grid .theme-card .card-body button {
  background: none;
}
#page.drawers .singleselect form label {
  margin-right: 5px;
  margin-bottom: 0;
}
#page.drawers .block_myoverview {
  border: 1px solid #e5e5e5;
}
.pagelayout-frontpage #page.drawers div[role="main"] > br {
  display: none;
}
.theme-container:not(.path-mod-assign) #page.drawers .main-inner {
  max-width: 1140px;
  margin-top: 0;
}
.default-container#page-admin-themeselector.path-admin #page {
  padding: 0;
}
.default-container#page-admin-themeselector.path-admin #page #page-footer {
  margin: 0;
}
.default-container .secondary-navigation + #page-content #region-main {
  padding-left: 15px;
  padding-right: 15px;
}
.custom-container #page.drawers .main-inner {
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
}
body:not(.pagelayout-frontpage).theme-container.limitedwidth #page.drawers .main-inner, body:not(.pagelayout-frontpage).theme-container.limitedwidth #page.drawers .secondary-navigation {
  max-width: 1140px;
  margin-left: auto;
  margin-right: auto;
}
body:not(.pagelayout-frontpage).custom-container.limitedwidth #page.drawers .main-inner, body:not(.pagelayout-frontpage).custom-container.limitedwidth #page.drawers .secondary-navigation {
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
}
.pagelayout-mydashboard #region-main {
  padding: 0 15px;
}
.file-picker .fp-navbar {
  border-color: rgba(0, 0, 0, 0.1);
}
.file-picker .fp-content {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
@media (min-width: 768px) {
  .pagelayout-standard #page.drawers .footer-popover {
    max-width: none;
  }
  body.limitedwidth #page.drawers .footer-popover, body.limitedwidth #page.drawers .header-maxwidth {
    max-width: none;
  }
  .pagelayout-mydashboard #region-main .add_block_button {
    margin: 0 15px;
  }
}
@media (max-width: 767px) {
  .theme-container #page.drawers .main-inner {
    padding: 0 15px;
  }
  #page.drawers .main-inner {
    padding-left: 15px;
    padding-right: 15px;
  }
}
@media (max-width: 575px) {
  .boxwidthnormal {
    width: auto;
  }
  .filemanager {
    max-width: 360px;
  }
  .filepicker {
    max-width: 360px;
  }
  .file-picker {
    max-width: 360px;
  }
  .editor_atto_wrap {
    max-width: 360px;
  }
  #region-main > div[role="main"] .pull-left + .no-overflow {
    width: 100%;
    overflow: auto;
  }
  .singlebutton div {
    margin-left: 0;
  }
  .singlebutton div input {
    margin-left: 0;
  }
  .blog_entry .content {
    margin-left: 0;
    margin-right: 23px;
  }
  .page-context-header .page-header-headings h1, .page-context-header .page-header-headings .h1 {
    font-size: 20px;
  }
  .card-deck .card.courses-view-course-item {
    width: 100%;
    flex-basis: auto;
  }
}
/* Theme setting */
#page-admin-search #page-wrapper #page #region-main {
  background: none;
  border: 0;
}
#page-admin-search #page-wrapper #page #region-main .simplesearchform {
  margin-top: 30px;
}
#page-admin-search #page-wrapper #page #region-main .simplesearchform .input-group {
  margin: 0 auto;
}
#page-admin-search #page-wrapper #page #region-main .simplesearchform + hr {
  display: none;
}
#page-admin-search .tab-content .tab-pane h4, #page-admin-search .tab-content .tab-pane .h4, #page-admin-search .tab-content .tab-pane a {
  color: #434343;
  text-decoration: none;
}
#page-admin-search .tab-content .tab-pane h4:hover, #page-admin-search .tab-content .tab-pane .h4:hover, #page-admin-search .tab-content .tab-pane h4:focus, #page-admin-search .tab-content .tab-pane .h4:focus, #page-admin-search .tab-content .tab-pane a:hover, #page-admin-search .tab-content .tab-pane a:focus {
  color: #CAA150;
}
#page-admin-search .tab-content .tab-pane .list-unstyled li a {
  color: #2A2A2C;
}
#page-admin-search .tab-content .tab-pane .list-unstyled li a:hover, #page-admin-search .tab-content .tab-pane .list-unstyled li a:focus {
  color: #CAA150;
}
@media (min-width: 992px) and (max-width: 1000px) {
  #page-admin-search .moremenu .nav.nav-tabs > .nav-item:not(.dropdownmoremenu) .nav-link.active:after, #page-admin-search .moremenu .nav.nav-tabs > .nav-item:not(.dropdownmoremenu) .nav-link:hover:after {
    left: 35%;
  }
}
/* End of Theme setting */
/* More Menu */
.moremenu .nav.nav-tabs {
  border-bottom: 0;
}
.moremenu .nav.nav-tabs .nav-item:last-child {
  margin-right: 0;
}
.moremenu .nav.nav-tabs .nav-item .nav-link {
  color: #2A2A2C;
  text-align: center;
  border-color: #f8f8f8;
  background-color: #f8f8f8;
  border-radius: 5px;
  padding: 20px;
  margin-right: 1px;
}
.moremenu .nav.nav-tabs .nav-item .nav-link:before {
  margin-right: 5px;
}
.moremenu .nav.nav-tabs .nav-item .nav-link:hover, .moremenu .nav.nav-tabs .nav-item .nav-link:focus, .moremenu .nav.nav-tabs .nav-item .nav-link:active, .moremenu .nav.nav-tabs .nav-item .nav-link:focus:active, .moremenu .nav.nav-tabs .nav-item .nav-link.active {
  color: #fff;
  background-color: #2A2A2C;
}
.moremenu .dropdownmoremenu > .dropdown-menu .dropdown-menu .dropdown-item {
  color: #fff;
  background-color: #2A2A2C;
}
.moremenu .dropdownmoremenu > .dropdown-menu .dropdown-menu .dropdown-item:hover, .moremenu .dropdownmoremenu > .dropdown-menu .dropdown-menu .dropdown-item:focus, .moremenu .dropdownmoremenu > .dropdown-menu .dropdown-menu .dropdown-item[aria-current="true"]:focus-within, .moremenu .dropdownmoremenu > .dropdown-menu .dropdown-menu .dropdown-item[aria-current="true"]:hover, .moremenu .dropdownmoremenu > .dropdown-menu .dropdown-menu .dropdown-item.active:focus-within, .moremenu .dropdownmoremenu > .dropdown-menu .dropdown-menu .dropdown-item.active:hover {
  background: #2A2A2C;
}
.moremenu .dropdown-item:hover, .moremenu .dropdown-item:focus, .moremenu .dropdown-item[aria-current="true"]:focus-within, .moremenu .dropdown-item[aria-current="true"]:hover, .moremenu .dropdown-item.active:focus-within, .moremenu .dropdown-item.active:hover {
  color: #CAA150;
  background: #f8f8f8;
}
@media (min-width: 768px) {
  .moremenu .nav.nav-tabs > .dropdownmoremenu .nav-item .nav-link {
    padding: 10px 20px;
  }
  .moremenu .nav.nav-tabs > .dropdownmoremenu .nav-item .nav-link:before {
    display: none;
  }
  .moremenu .nav.nav-tabs .nav-item:last-child .nav-link {
    border-right: #dce1e0;
  }
  .moremenu .nav.nav-tabs .nav-link:hover, .moremenu .nav.nav-tabs .nav-link.active {
    color: #fff;
    border-color: #2A2A2C;
    background: #2A2A2C;
  }
  .moremenu .nav.nav-tabs > .dropdownmoremenu .dropdown-menu .nav-link, .moremenu .nav.nav-tabs > .dropdownmoremenu .dropdown-menu .dropdown-item {
    padding: 10px 25px;
  }
  .moremenu .nav.nav-tabs > .nav-item .nav-link[href="#linkroot"]:before {
    content: "";
  }
  .moremenu .nav.nav-tabs > .nav-item .nav-link[href="#linkusers"]:before {
    content: "";
  }
  .moremenu .nav.nav-tabs > .nav-item .nav-link[href="#linkcourses"]:before {
    content: "";
  }
  .moremenu .nav.nav-tabs > .nav-item .nav-link[href="#linkgrades"]:before {
    content: "";
  }
  .moremenu .nav.nav-tabs > .nav-item .nav-link[href="#linkmodules"]:before {
    content: "";
  }
  .moremenu .nav.nav-tabs > .nav-item .nav-link[href="#linkappearance"]:before {
    content: "";
  }
  .moremenu .nav.nav-tabs > .nav-item .nav-link[href="#linkserver"]:before {
    content: "";
  }
  .moremenu .nav.nav-tabs > .nav-item .nav-link[href="#linkreports"]:before {
    content: "";
  }
  .moremenu .nav.nav-tabs > .nav-item .nav-link[href="#linkdevelopment"]:before {
    content: "";
  }
  .moremenu .nav.nav-tabs > .nav-item .nav-link:before {
    content: "";
    font-family: var(--fa-style-family, "Font Awesome 6 Free", "Font Awesome 6 Brands", fontawesome);
    font-weight: var(--fa-style, 900);
    font-size: 18px;
    display: block;
  }
}
@media (max-width: 767px) {
  .moremenu.navigation .nav.nav-tabs .nav-item .nav-link:hover, .moremenu.navigation .nav.nav-tabs .nav-item .nav-link:focus, .moremenu.navigation .nav.nav-tabs .nav-item .nav-link.active {
    color: #fff;
    border-color: #2A2A2C;
    background-color: #2A2A2C;
  }
}
/* End of More Menu */
/* Pagination */
.initialbar .letter {
  color: #2A2A2C;
}
.initialbar .letter.active {
  color: #fff;
  background: #2A2A2C;
  border-color: #2A2A2C;
}
.pagination .page-item .page-link {
  color: #2A2A2C;
  border: 1px solid #2A2A2C;
  background-color: #fff;
  padding: 8px;
}
.pagination .page-item .page-link:hover, .pagination .page-item .page-link:focus {
  color: #fff;
  background-color: #2A2A2C;
  box-shadow: none;
}
.pagination .page-item.active .page-link {
  color: #fff;
  background-color: #2A2A2C;
  border-color: #2A2A2C;
}
.pagination .page-item.active .page-link:hover {
  color: #fff;
}
.userlist .initialbar {
  margin-bottom: 20px;
}
/* Pagination */
/* Message */
.message-app .list-group .list-group-item.list-group-item-action:hover {
  background: #2A2A2C;
}
.message-app .list-group .list-group-item.list-group-item-action:hover > .d-flex .d-flex .text-muted i.icon {
  color: #fff;
}
.message-app .simplesearchform .input-group-append i.icon {
  color: #fff;
}
.message-app .icon {
  color: #2A2A2C;
}
.message-app .body-container .nav-pills .nav-link.active {
  background-color: #2A2A2C;
}
#page-message-edit #region-main .mform fieldset {
  margin-bottom: 40px;
}
#page-message-edit #region-main .mform legend {
  margin-bottom: 30px;
}
.message .contactselector .paging {
  margin: 10px 0 0;
}
.message .contactselector #message_participants {
  margin-top: 10px;
}
.message .contactselector #message_participants tr th {
  padding: 5px;
}
.message .contactselector #message_participants tr td {
  padding: 5px;
}
.message .messagearea {
  float: none;
  width: auto;
  min-height: 50px;
  border: 0;
}
.message .messagearea .messagesend .messagesendbox {
  box-sizing: border-box;
}
.dir-rtl .message .contactselector {
  float: none;
}
.dir-rtl .message-app .overview-section-toggle.collapsed .collapsed-icon-container {
  height: 26px;
  transform: rotate(180deg);
}
.dir-rtl .message-app .header-container .border-bottom .dropdown .dropdown-menu {
  right: auto;
}
@media (max-width: 767px) {
  .drawer .message-app {
    height: 93%;
  }
  .drawer .message-app .footer-container > div.position-relative {
    padding: 0.5rem;
  }
}
/* End of Message */
/* Drawer */
.drawer-left, .drawer-right {
  box-shadow: 2px 5px 5px rgba(0, 0, 0, 0.2);
}
.drawer#theme_boost-drawers-blocks:focus-within {
  position: fixed;
}
.drawer .drawerheader .drawertoggle {
  height: auto;
  color: #fff;
  background: #2A2A2C;
  padding: 5px;
  display: flex;
}
.drawer .drawercontent .courseindex .courseindex-item:hover, .drawer .drawercontent .courseindex .courseindex-item:hover a {
  color: #fff;
  background: #2A2A2C;
}
.drawer .drawercontent .courseindex .courseindex-item:hover .courseindex-link:hover, .drawer .drawercontent .courseindex .courseindex-item:hover .courseindex-link:hover span, .drawer .drawercontent .courseindex .courseindex-item:hover a .courseindex-link:hover, .drawer .drawercontent .courseindex .courseindex-item:hover a .courseindex-link:hover span {
  color: #fff;
}
.drawer .drawercontent .courseindex .courseindex-section .courseindex-item:hover {
  background: #2A2A2C;
  border-color: #2A2A2C;
}
.drawer .drawercontent .courseindex .courseindex-section .courseindex-sectioncontent .courseindex-item.pageitem {
  background-color: #2A2A2C;
}
@media (max-width: 991px) {
  .drawer-left, .drawer-right {
    margin-top: 60px;
  }
}
@media (max-width: 767px) {
  [data-region=right-hand-drawer].drawer {
    top: 60px;
  }
}
/* End of Drawer */
/* Summarise */
.ai-course-summarise-controls button.btn.btn-outline-secondary:hover {
  color: #fff;
  background: #6a737b;
}
.ai-course-summarise-controls button.btn.btn-outline-secondary:focus {
  color: #fff;
  background: #6a737b;
}
.ai-course-summarise-controls button.btn.btn-outline-secondary:focus .ai-course-summarise-sparkles-icon {
  display: none;
}
.ai-course-summarise-controls button.btn.btn-outline-secondary:focus .ai-course-summarise-sparkles-icon.white {
  display: inline-block;
}
/* End of Summarise */
.data-registry .context-tree .nav-link {
  padding: 0 5px;
}
.modal .btn-close:hover, .modal .btn-close:focus, .modal .btn-close:active {
  background-color: transparent;
}
#id_contextlevelnamecontainer .fitem .felement .fitem .btn-secondary i.icon {
  margin-right: 0;
}
.tour-actions ul li a i.icon, .tour-actions ul li a div {
  color: #2A2A2C;
}
/* Header */
#header {
  border-bottom: 1px solid #e8e3e3;
  background: #2A2A2C;
}
#header.navbar.fixed-top #usernavigation .nav-link {
  padding: 0 5px;
  border: 0;
}
#header.navbar.fixed-top #usernavigation .nav-link .count-container {
  min-width: 14px;
  min-height: 10px;
  color: #ca3120;
  text-align: center;
  border-radius: 50%;
  background: #fff;
}
#header.navbar.fixed-top .navbar-nav {
  height: 100%;
}
#header.navbar.fixed-top .navbar-nav .simplesearchform {
  margin-right: 5px;
}
#header.navbar.fixed-top .navbar-nav.more-nav {
  height: auto;
}
#header.navbar.fixed-top .navbar-nav .nav-item + .nav-item {
  margin-right: 0;
}
#header .navbar-nav .nav-item {
  margin-left: 0;
}
#header .navbar-nav a.nav-link {
  color: #fff;
  padding-left: 10px;
  padding-right: 10px;
}
#header .navbar-nav a.nav-link:hover, #header .navbar-nav a.nav-link:focus {
  background: #2A2A2C;
}
#header .navbar-nav .langmenu .dropdown .dropdown-toggle {
  color: #fff;
  border: 0;
}
#header .navbar-nav .divider {
  display: none;
}
#header .navbar-nav .navbar-toggler {
  background: none;
}
#header .usermenu .login {
  color: #fff;
}
#header .usermenu .login a {
  color: #fff;
}
#header .usermenu a.dropdown-toggle {
  color: #fff;
  border: 0;
  border-radius: 5px;
  padding: 0;
  box-shadow: none;
}
#header .usermenu .moodle-actionmenu.show {
  background: #689f59;
}
#header .usermenu .moodle-actionmenu.show .menu a:hover {
  color: #111;
  background: #d5d5d5;
}
#header .usermenu .moodle-actionmenu > .menu .filler {
  background-color: #e8e3e3;
}
#header .usermenu .moodle-actionmenu > .menubar {
  margin: 0;
}
#header .usermenu .moodle-actionmenu a.dropdown-toggle:focus {
  color: #fff;
}
#header .usermenu .moodle-actionmenu .toggle-display .userbutton .usertext {
  font-size: 16px;
  color: #fff;
}
#header .usermenu .moodle-actionmenu .toggle-display .userbutton .avatars {
  width: 35px;
  height: 35px;
  background: #fff;
  border: 1px solid #fff;
  border-radius: 18px;
}
#header .usermenu .moodle-actionmenu .toggle-display .userbutton .avatars .avatar {
  border-radius: 18px;
}
#header .usermenu .moodle-actionmenu .toggle-display .userbutton .avatars img {
  border-radius: 18px;
}
#header .usermenu .moodle-actionmenu .toggle-display.textmenu {
  margin: 0;
}
#header .usermenu .moodle-actionmenu .toggle-display.textmenu .caret {
  border-top-color: #fff;
  vertical-align: middle;
  margin-top: 0;
  top: 0;
}
#header .usermenu .moodle-actionmenu .toggle-display.textmenu .caret:hover, #header .usermenu .moodle-actionmenu .toggle-display.textmenu .caret:active {
  border-top-color: #fff;
}
#header .usermenu .moodle-actionmenu .dropdown .dropdown-menu a:hover {
  background: #d5d5d5;
}
#header .usermenu .moodle-actionmenu .dropdown .dropdown-menu a i {
  margin-right: 5px;
}
#header .usermenu .dropdown-menu {
  border-radius: 5px;
}
#header .usermenu .dropdown-menu .carousel .carousel-inner .carousel-item a {
  padding: 10px 15px;
  position: relative;
}
#header .usermenu .dropdown-menu .carousel .carousel-inner .carousel-item a:after {
  top: 14px;
}
.notification-area .control-area .content .content-item-container:hover, .notification-area .control-area .content .content-item-container.selected {
  background-color: #2A2A2C;
}
#header .popover-region {
  height: 100%;
  float: left;
  margin: 0 5px 0 0;
}
#header .popover-region .content-item-container:hover {
  background: #2A2A2C;
}
#header .popover-region .content-item-container:hover .view-more {
  color: #fff;
}
#header .popover-region .popover-region-toggle.nav-link .icon {
  font-weight: normal;
}
#header .popover-region .popover-region-toggle.nav-link .icon:before {
  color: #fff;
}
#header .popover-region .popover-region-container {
  top: 100%;
}
#header .popover-region .popover-region-container .popover-region-header-container h3, #header .popover-region .popover-region-container .popover-region-header-container .h3 {
  color: #2A2A2C;
}
#header .right-menu .usermenu {
  float: right;
}
#header .nav.navbar-nav .nav-link {
  color: #fff;
  /* padding: 0; */
}
#header .nav.navbar-nav .nav-link:hover, #header .nav.navbar-nav .nav-link:focus, #header .nav.navbar-nav .nav-link:active, #header .nav.navbar-nav .nav-link.active {
  border-bottom-color: #CAA150;
  background-color: #CAA150;
}
#header .nav.navbar-nav .nav-link .moremenu .nav-link:hover, #header .nav.navbar-nav .nav-link .moremenu .nav-link:focus {
  background: none;
  border-bottom: 3px solid #fff;
}
#header .nav.navbar-nav .nav-link .moremenu .nav-link.active {
  border-color: #fff;
}
#header .nav.navbar-nav .simplesearchform {
  height: 100%;
  color: #fff;
  margin-right: 10px;
}
#header .nav.navbar-nav .simplesearchform a.btn-open {
  color: #fff;
  border: 0;
  padding-bottom: 0;
}
#header .nav.navbar-nav .simplesearchform .collapse .input-group {
  min-width: 300px;
}
#header .nav.navbar-nav .simplesearchform .collapse .searchform-navbar a.btn-close {
  height: 100%;
  line-height: 25px;
  border: 0;
  right: 40px;
}
#header .nav.navbar-nav .simplesearchform .collapse .searchform-navbar .input-group-append button.btn {
  height: 100%;
  color: #fff;
  background: #2A2A2C;
}
#header .nav.navbar-nav .simplesearchform .collapse .searchform-navbar .form-control {
  padding-right: 40px;
}
#header .nav.navbar-nav .dropdown .dropdown-menu .dropdown-divider {
  margin: 0;
  border: 0;
}
#header .nav.navbar-nav .dropdown .dropdown-menu a.dropdown-item {
  background: none;
  border-bottom: 1px solid #f8f8f8;
  padding-top: 8px;
  padding-bottom: 8px;
}
#header .nav.navbar-nav .dropdown .dropdown-menu a.dropdown-item:hover, #header .nav.navbar-nav .dropdown .dropdown-menu a.dropdown-item:focus {
  color: #fff;
  background: #2A2A2C;
}
#header .nav.navbar-nav .dropdown .dropdown-menu a.dropdown-item:hover span, #header .nav.navbar-nav .dropdown .dropdown-menu a.dropdown-item:focus span {
  color: #fff;
}
#header .nav.navbar-nav .dropdown .dropdown-menu a.dropdown-item span {
  color: #2A2A2C;
}
#header .nav.navbar-nav .dropdown .dropdown-menu a.dropdown-item:last-child {
  border-bottom: 0;
}
#header .nav.navbar-nav .search-input-wrapper {
  padding: 0;
}
#header .nav.navbar-nav .search-input-wrapper > div i.icon {
  color: #fff;
  margin-top: 8px;
}
#header .nav.navbar-nav .search-input-wrapper > form {
  margin-bottom: 0;
}
#header .nav.navbar-nav li.nav-item {
  margin-left: 0;
  /* margin-right: 10px; */
  float: left;
}
#header .nav.navbar-nav li.nav-item .dropdown-menu li.nav-item {
  margin: 0;
  float: none;
}
#header .nav.navbar-nav li.nav-item:last-child {
  margin-right: 0;
}
#header .nav.navbar-nav .userbutton {
  margin: 0;
}
#header .nav.navbar-nav .userbutton .avatars {
  margin: 0;
}
#header .nav.navbar-nav .userbutton .avatars .avatar {
  margin: 0;
}
#header .nav.navbar-nav .userbutton .avatars .avatar img.userpicture {
  margin: 0;
}
#header .nav.navbar-nav.address-head {
  align-items: center;
}
#header .nav.navbar-nav.address-head.empty-address {
  display: none;
}
#header .nav.navbar-nav.address-head span {
  margin-right: 10px;
}
#header .nav.navbar-nav.address-head span span {
  margin-right: 0;
}
#header .nav.navbar-nav span {
  color: #fff;
  display: inline-block;
  margin-right: 5px;
}
#header .nav.navbar-nav span.userinitials {
  text-align: center;
  line-height: 34px;
  border: 1px solid #fff;
  background: none;
  margin-right: 0;
}
#header .nav.navbar-nav span i {
  margin-right: 10px;
}
#header .nav.navbar-nav span a {
  color: #fff;
  display: inline-block;
}
#header .editmode-switch-form {
  margin-left: 10px;
}
#header .editmode-switch-form .input-group label {
  color: #fff !important;
}
#header .editmode-switch-form .input-group .form-switch .form-check-input {
  background-color: rgba(255, 255, 255, 0.5);
}
/* Header Message app */
#header .message-app .header-container .badge {
  background-color: #2A2A2C !important;
}
#header .message-app .header-container .input-group .input-group-prepend .input-group-text {
  padding-right: 10px !important;
}
#header .message-app .body-container .view-overview-body .section .badge {
  background-color: #2A2A2C !important;
}
#header .message-app .body-container .nav .nav-item a.nav-link.active, #header .message-app .body-container .view-overview-body .section .btn:focus {
  color: #2A2A2C;
}
@media (min-width: 992px) {
  #header.fixed-top {
    padding: 0 40px;
  }
  #header.fixed-top .container {
    padding-left: 15px;
    padding-right: 15px;
  }
  #header .usermenu .moodle-actionmenu .toggle-display.textmenu {
    padding: 15px;
  }
  #header .nav.navbar-nav span.usertext {
    display: none;
  }
}
@media (max-width: 991px) {
  #header {
    z-index: 1050;
  }
  #header.navbar .nav-collapse.in .nav .dropdown-submenu.open > a {
    background: #2A2A2C;
  }
  #header .nav.navbar-nav {
    display: flex;
  }
  #header .nav.navbar-nav li.nav-item .popover-region {
    margin-top: 7px;
  }
  #header .usermenu .moodle-actionmenu .toggle-display.textmenu {
    padding: 5px 15px;
  }
}
@media (max-width: 767px) {
  #header.fixed-top {
    z-index: 1051;
  }
  #header .nav.navbar-nav span.usertext {
    display: none;
  }
  #header .nav.navbar-nav.address-head span {
    font-size: 14px;
  }
  #header .nav.navbar-nav.address-head span i {
    margin-right: 0;
  }
  #header .nav.navbar-nav.address-head span span {
    display: none;
  }
}
@media (max-width: 575px) {
  #header.moodle-based-header ~ .drawer-right {
    margin-top: 60px;
  }
  #header.navbar.fixed-top .navbar-nav {
    width: 100%;
  }
  #header.navbar.fixed-top #usernavigation {
    width: 40%;
  }
  #header.navbar.fixed-top #usernavigation .usermenu-container {
    margin-left: auto;
  }
}
@media (max-width: 480px) {
  #header.navbar .popover-region .popover-region-container {
    height: 500px;
    top: 60px;
  }
}
/* Header main */
.header-main {
  background: #fff;
  border-bottom: 1px solid #e8e3e3;
  padding: 5px 0;
}
.header-main.show-drawer-right {
  margin-right: 315px;
}
.header-main .navbar {
  max-height: none;
  padding: 0;
  border-bottom: 0;
  box-shadow: none;
}
.header-main .navbar.navbar-light .primary-navigation {
  margin-left: auto;
}
.header-main .navbar.navbar-light .primary-navigation .navigation {
  display: flex;
  align-items: center;
}
.header-main .navbar.navbar-light .primary-navigation .navigation .nav-link {
  height: 40px;
  border: 0;
}
.header-main .navbar.navbar-light .primary-navigation .navigation .nav-link.active {
  color: #2A2A2C;
  border-color: #2A2A2C;
}
.header-main .navbar.navbar-light .primary-navigation .navigation .dropdown-menu {
  left: auto;
  right: 0;
}
.header-main .navbar.navbar-light .primary-navigation .navigation .dropdown-menu .dropdown-menu {
  position: absolute;
  top: 0;
  right: 100%;
}
.header-main .navbar.navbar-light .primary-navigation .navigation .dropdownmoremenu.show > .dropdown-toggle {
  color: #fff;
}
.header-main .navbar.navbar-light .primary-navigation .navigation .dropdownmoremenu.show .dropdown-item.active:hover {
  color: #CAA150;
  background: #f8f8f8;
}
.header-main .navbar.navbar-light .navbar-brand.has-logo {
  max-width: 200px;
  float: left;
  padding: 0;
  margin: 10px 0;
}
.header-main .navbar.navbar-light .navbar-brand.has-logo .logo {
  margin-right: 10px;
}
.header-main .navbar.navbar-light .navbar-brand.has-logo .logo img {
  height: auto;
  max-height: 90px;
  object-fit: contain;
}
.header-main .infoarea a.nav-link {
  font-size: 18px;
  padding: 26px 20px;
}
.header-main .infoarea a.nav-link .header-main .infoarea a.nav-link:hover, .header-main .infoarea a.nav-link:active .header-main .infoarea a.nav-link:focus {
  border-bottom: 2px solid #CAA150;
}
.header-main .infoarea .nav-item.nav-link {
  padding: 34px 20px;
}
.header-main .infoarea .nav-item a.nav-link {
  font-size: 18px;
  text-align: left;
  padding: 15px 20px;
  border-bottom: 2px solid transparent;
}
.header-main .infoarea .nav-item a.nav-link:hover, .header-main .infoarea .nav-item a.nav-link:active, .header-main .infoarea .nav-item a.nav-link:focus {
  border-bottom: 2px solid #CAA150;
}
.header-main .infoarea span {
  font-size: 16px;
  color: #828282;
}
.header-main .infoarea span i {
  color: #CAA150;
}
.header-main .infoarea span + span {
  margin-left: 7px;
}
.header-main .logo a {
  display: inline-block;
}
.header-main .message-app .header-container .input-group .input-group-prepend .input-group-text {
  padding-right: 10px !important;
}
.header-main .message-app .header-container .badge {
  background-color: #2A2A2C !important;
}
.header-main .message-app .body-container .view-overview-body .section .badge {
  background-color: #2A2A2C !important;
}
.header-main .message-app .body-container .view-overview-body .section .btn:focus {
  color: #2A2A2C;
}
.header-main .message-app .body-container .nav .nav-item a.nav-link.active {
  background: #2A2A2C;
}
/* RTL */
.dir-rtl .header-main .navbar-light .primary-navigation .navigation .dropdown-menu {
  left: 0;
  right: auto;
}
.dir-rtl .header-main .navbar-toggleable-md .infoarea span i {
  margin-left: 5px;
}
.dir-rtl .header-main .navbar-toggleable-md .infoarea .dropdown .dropdown-menu {
  left: 0;
  right: auto;
}
.dir-rtl .header-main .navbar-toggleable-md .infoarea .dropdown .dropdown-menu a.nav-item.nav-link {
  padding-left: 20px;
  padding-right: 40px;
}
@media (min-width: 992px) {
  .navbar-toggleable-md {
    float: right;
    display: block;
  }
  .navbar-toggleable-md .infoarea .dropdown .dropdown-menu {
    margin-top: 1px;
    top: auto;
    right: 0;
    left: auto;
  }
  .navbar-toggleable-md .infoarea .dropdown .dropdown-menu a.dropdown-item:hover, .navbar-toggleable-md .infoarea .dropdown .dropdown-menu a.dropdown-item:focus {
    color: #fff;
    background: #2A2A2C;
  }
  .header-main .infoarea .nav-item {
    display: inline-block;
  }
  .header-main .infoarea .nav-item a.nav-link {
    padding: 20px 20px 10px 10px;
    border-bottom: 2px solid transparent;
  }
  .header-main .navbar .collapse:not(.show) {
    display: inline-block;
  }
}
@media (max-width: 991px) {
  .header-main .navbar-toggleable-md {
    width: 100%;
    float: none;
  }
  .header-main .navbar-toggleable-md:after {
    content: "";
    clear: both;
    display: block;
  }
  .header-main .navbar-toggleable-md a.nav-item.nav-link {
    text-align: left;
    display: block;
    border: 0;
    padding: 10px 20px;
    margin: 0;
  }
  .header-main .navbar-toggleable-md a.nav-item.nav-link:hover, .header-main .navbar-toggleable-md a.nav-item.nav-link:focus {
    color: #fff;
    background: #2A2A2C;
    border: 0;
  }
  .header-main .navbar-toggleable-md .infoarea .nav-item {
    width: 100%;
    display: inline-block;
  }
  .header-main .navbar-toggleable-md .infoarea .dropdown {
    position: static;
  }
  .header-main .navbar-toggleable-md .infoarea .dropdown a.nav-link {
    width: 100%;
    text-align: left;
    display: inline-block;
    border: 0;
    padding: 10px 20px;
    margin: 0;
  }
  .header-main .navbar-toggleable-md .infoarea .dropdown a.nav-link:hover, .header-main .navbar-toggleable-md .infoarea .dropdown a.nav-link:focus {
    color: #fff;
    background: #2A2A2C;
  }
  .header-main .navbar-toggleable-md .infoarea .dropdown .dropdown-menu {
    width: 100%;
    margin: 0;
    position: static;
    border: 0;
  }
  .header-main .navbar-toggleable-md .infoarea .dropdown .dropdown-menu .dropdown-item {
    font-size: 16px;
    border: 0;
    padding: 10px 20px 10px 40px;
  }
  .header-main .navbar-toggleable-md .infoarea .dropdown .dropdown-menu .dropdown-item:hover, .header-main .navbar-toggleable-md .infoarea .dropdown .dropdown-menu .dropdown-item:focus {
    color: #fff;
    background: #2A2A2C;
  }
  .header-main .has-logo {
    float: none;
    display: inline-block;
  }
  .header-main .navbar-light .navbar-brand.has-logo {
    float: none;
  }
}
@media (min-width: 768px) {
  .header-main .infoarea {
    text-align: right;
  }
  .header-main .infoarea span {
    line-height: 43px;
  }
  .dir-rtl .header-main .infoarea {
    text-align: left;
  }
}
@media (max-width: 767px) {
  .header-main .navbar-light .primary-navigation {
    display: block;
  }
  .header-main .logo, .header-main .infoarea {
    text-align: center;
  }
}
@media (max-width: 574px) {
  .header-main .navbar-light .navbar-brand .has-logo {
    max-width: 200px;
    margin-right: 0;
  }
  .header-main .navbar-light .navbar-brand .has-logo img {
    width: 100%;
  }
  .header-main .infoarea span {
    display: block;
    margin-bottom: 10px;
  }
  .header-main .infoarea span + span {
    margin-bottom: 0;
  }
}
/* End of Header main */
/* End of Header */
/*Blocks*/
#block-region-content .block {
  margin: 0;
}
.block {
  padding-top: 0;
  margin: 0 15px;
  border-color: #e5e5e5;
  border-radius: 0;
  box-shadow: none;
}
.block .bottom span.footer-link:after {
  color: #2A2A2C;
}
.block .card-body {
  padding: 0;
}
.block .card-body .card-title {
  margin: 15px;
  display: block !important;
  padding-right: 65px;
}
.block .card-body .content {
  padding: 10px 18px;
  margin: 0 !important;
  border-top: 1px solid #e5e5e5;
}
.block .card-body .content:not(.activityiconcontainer) {
  background: #f8f8f8;
}
.block .card-body .content .info {
  margin-bottom: 10px;
}
.block .card-body .content .footer {
  padding: 0;
  margin: 0;
}
.block .card-body .content .tag_cloud .inline-list li a {
  font-size: 16px;
}
.block .card-body .content .block-myoverview .searchbar .input-group-append .input-group-text {
  height: 100%;
  border: 0;
  padding: 0 10px;
}
.block .card-body .content .block-myoverview .searchbar .input-group-append .input-group-text button {
  height: 100%;
  margin: 0;
  background: none;
}
.block .card-body .content .block-myoverview .searchbar .input-group-append .input-group-text button:hover, .block .card-body .content .block-myoverview .searchbar .input-group-append .input-group-text button :focus, .block .card-body .content .block-myoverview .searchbar .input-group-append .input-group-text button :active {
  color: #000;
}
.block .card-body .content .block-timeline .no-gutters .dropdown-toggle {
  background: #fff;
}
.block .card-body .content .block-timeline .no-gutters .dropdown-toggle:hover, .block .card-body .content .block-timeline .no-gutters .dropdown-toggle:focus {
  background: #2A2A2C;
}
.block .card-body .content.card-text .block-myoverview hr {
  border: 0;
}
.block .card-body .content.card-text .block-myoverview hr + div .dropdown .btn {
  border-color: #d5d5d5;
}
.block .card-body .content.card-text .block-myoverview hr + div .dropdown .btn:hover, .block .card-body .content.card-text .block-myoverview hr + div .dropdown .btn:focus, .block .card-body .content.card-text .block-myoverview hr + div .dropdown .btn:active {
  border-color: #2A2A2C;
}
.block .card-body .content .content {
  border: 0;
}
.block .card-body .content .userpicture {
  margin: 0 5px;
}
.block .card-body .block-controls {
  margin-top: 15px;
  margin-right: 10px;
  position: absolute;
  top: 5px;
  right: 5px;
}
.block .block-cards .course-summaryitem {
  background: none;
}
.block .header h2, .block .header .h2 {
  font-weight: normal;
  font-size: 21px;
  color: #CAA150;
  padding: 18px;
  text-transform: none;
}
.block .header .block_action {
  padding-top: 18px;
}
.block .calendar-controls {
  padding: 12px 0 24px;
}
.block .calendar-controls .previous {
  color: #656565;
}
.block .calendar-controls .previous:before {
  content: "";
  font-family: var(--fa-style-family, "Font Awesome 6 Free", "Font Awesome 6 Brands", fontawesome);
  font-weight: var(--fa-style, 900);
}
.block .calendar-controls .previous .arrow {
  display: inline-block;
  text-indent: -999em;
  text-align: center;
}
.block .calendar-controls .next {
  color: #656565;
}
.block .calendar-controls .next:after {
  content: "";
  font-family: var(--fa-style-family, "Font Awesome 6 Free", "Font Awesome 6 Brands", fontawesome);
  font-weight: var(--fa-style, 900);
}
.block .calendar-controls .next .arrow {
  display: inline-block;
  text-indent: -999em;
  text-align: center;
}
.block .calendar-controls .current {
  font-size: 16px;
}
.block .calendar-controls .current a {
  font-size: 16px;
  color: #656565;
}
.block .minicalendar th {
  font-weight: normal;
  font-size: 12px;
}
.block .minicalendar th abbr {
  border-bottom: 0;
}
.block .minicalendar td {
  font-size: 12px;
}
.block .minicalendar td a {
  display: block;
}
.block .minicalendar .today a {
  color: #fff;
  background: #2A2A2C;
}
.block_timeline .event-action a.list-group-item-action {
  height: auto;
}
.block_timeline .event-action a.list-group-item-action:hover, .block_timeline .event-action a.list-group-item-action:focus, .block_timeline .event-action a.list-group-item-action:active {
  border-color: #2A2A2C;
  background-color: #2A2A2C;
  box-shadow: none;
}
.block-myoverview .tab-content.content-centred .tab-pane .btn-group a.btn {
  color: inherit;
  background: inherit;
}
.block-myoverview .tab-content.content-centred .tab-pane .btn-group a.btn.active {
  color: #fff;
  background: #2A2A2C;
}
.block-myoverview .tab-content.content-centred .tab-pane .tab-content .tab-pane .card .card-block {
  padding: 1.25rem;
}
.block-myoverview .tab-content.content-centred .tab-pane .tab-content .tab-pane .list-group .list-group-item a.btn {
  height: auto;
}
.block-myoverview .dropdown-menu .dropdown-item:hover, .block-myoverview .dropdown-menu .dropdown-item:focus, .block-myoverview .dropdown-menu .dropdown-item:active, .block-myoverview .dropdown-menu .dropdown-item.active {
  color: #fff;
  background: #2A2A2C;
}
.block-myoverview .dropdown-menu .dropdown-item:hover i.icon, .block-myoverview .dropdown-menu .dropdown-item:focus i.icon, .block-myoverview .dropdown-menu .dropdown-item:active i.icon, .block-myoverview .dropdown-menu .dropdown-item.active i.icon {
  color: #fff;
}
.block-timeline .dropdown-menu .dropdown-item {
  padding-left: 25px;
}
.block-timeline .dropdown-menu .dropdown-item:hover, .block-timeline .dropdown-menu .dropdown-item.active, .block-timeline .dropdown-menu .dropdown-item:focus, .block-timeline .dropdown-menu .dropdown-item:active {
  color: #fff;
  background: #2A2A2C;
}
.block.block_calendar_month .card-body .maincalendar .calendartable .header span {
  font-weight: normal;
}
.block .calendar_filters ul li a span {
  padding: 0 2px;
  margin-right: 5px;
  margin-left: 0;
  display: inline-block;
}
.block .calendar_filters ul li a span i {
  margin: 0;
}
.block .calendar_filters ul li a span span.eventname {
  margin: 0;
}
.block_myoverview .content-centred .nav.nav-pills .nav-item .nav-link.active {
  background-color: #2A2A2C;
}
.block_myoverview .paged-content-page-container {
  margin-top: 10px;
}
.card-block .block-controls .dropdown-toggle {
  color: #2A2A2C;
}
.card-block .block-controls .dropdown-toggle i {
  margin: 0;
}
#page-my-index .block .block-cards .text-primary {
  color: inherit;
}
#page-my-index .has-blocks .card.card-block .block-region .block .card-block .card-text {
  border: 0;
}
.page-mycourses #page-header .header-actions-container .header-action .btn-group .btn-link {
  line-height: 35px !important;
}
.page-mycourses #page-header .header-actions-container .header-action .btn-group .btn-link i {
  padding-top: 0 !important;
}
.page-mycourses .block .card-body .block-myoverview hr {
  display: none;
}
.page-mycourses .block .card-body .block-controls {
  margin-top: 15px;
  margin-right: 10px;
}
#block-region-side-pre .block {
  padding: 0;
}
.block-region .block.card > .card-body {
  padding: 0 !important;
}
.block-region .block .card-block.course-info-container {
  padding: 1.25rem;
}
.block-region .block .card-body.course-info-container {
  padding: 10px;
}
.block-region .block .card-body .block-myoverview .card-title {
  width: 100%;
  padding: 0;
  background: none;
  border: 0;
  margin-right: 0;
}
.block-region .block .card-body .block-myoverview .card-title a {
  font-size: 16px;
  color: #2A2A2C;
}
.block_recentlyaccessedcourses .card .card-body.course-info-container, .block-recentlyaccessedcourses .card .card-body.course-info-container {
  padding: 10px 15px;
}
.block_recentlyaccessedcourses .paging-bar-container, .block-recentlyaccessedcourses .paging-bar-container {
  margin-top: 0;
}
.has-blocks .mform .form-group .form-check label {
  padding-top: 0;
}
.has-blocks .card.card-block .block-region .block.block_myoverview {
  border: 0;
}
.has-blocks .card.card-block .block-region .block.block_myoverview .card-text {
  border-left: 1px solid #d5d5d5;
  border-right: 1px solid #d5d5d5;
}
.has-blocks .card.card-block .block-region .block .card-block .card-title {
  display: none;
}
.has-blocks .card.card-block .block-region .block .card-block .title .card-title {
  display: block;
}
.has-blocks .card.card-block .block-region .block .card-block .card-text {
  padding: 0;
}
.has-blocks .card.card-block .block-region .block .card-block .block-controls .menubar .dropdown a.dropdown-toggle i.icon {
  margin: 0;
}
.has-blocks .card.card-block .block-region .block .card-block .block-controls .menubar .dropdown .dropdown-menu a.dropdown-item i.icon {
  color: #2A2A2C;
}
.hidden-print .block-region .block .card-block .block-controls .menubar .dropdown a.dropdown-toggle i.icon {
  margin: 0;
}
.hidden-print .block-region .block .card-block .block-controls .menubar .dropdown .dropdown-menu a.dropdown-item i.icon {
  color: #2A2A2C;
}
.block_tree {
  font-size: 16px;
}
.block_tree a {
  color: #656565;
}
.block_navigation .block_tree .tree_item, .block_settings .block_tree .tree_item {
  line-height: 25px;
  margin: 15px 0;
}
.block_navigation .block_tree .contains_branch, .block_settings .block_tree .contains_branch {
  box-shadow: none;
}
.block_navigation .block_tree .tree_item.branch, .block_settings .block_tree .tree_item.branch {
  background-position: 0 5px;
  margin-top: 0;
}
.block_navigation .block_tree li, .block_settings .block_tree li {
  top: 5px;
}
.block_navigation .block_tree li.item_with_icon > p img, .block_settings .block_tree li.item_with_icon > p img {
  top: 5px;
}
.block_navigation .block_tree .type_activity > p.tree_item.active_tree_node img, .block_settings .block_tree .type_activity > p.tree_item.active_tree_node img {
  top: 5px;
}
.block_navigation .adminsearchform input[type="submit"], .block_settings .adminsearchform input[type="submit"] {
  margin-left: 0;
}
.jsenabled .block_navigation .block_tree .collapsed .tree_item.branch, .jsenabled .block_settings .block_tree .collapsed .tree_item.branch {
  background-position: 0 5px;
}
/* Editing blocks */
.editing .block .header .commands {
  margin: 0;
}
.editing .block .header .commands .menubar .dropdown {
  display: inline-block;
}
.editing .section .activity .mod-indent-outer {
  width: 100%;
  position: relative;
}
.editing .section .activity .editing_move {
  z-index: 1;
}
/* End of Editing blocks */
.dir-rtl .block .calendar-controls .previous {
  text-align: left;
}
.dir-rtl .block .calendar-controls .previous:before {
  content: "";
}
.dir-rtl .block .calendar-controls .next {
  text-align: right;
}
.dir-rtl .block .calendar-controls .next:after {
  content: "";
}
.dir-rtl .block .calendar_filters li span + i {
  margin-right: 5px;
  margin-left: 0;
}
.dir-rtl .block_navigation .block_tree .depth_1 > .tree_item.branch {
  padding-right: 0;
}
.dir-rtl .block_navigation .block_tree .depth_1 > ul {
  margin-right: 0;
}
.dir-rtl .block_navigation .block_tree .tree_item.branch {
  background-position: right 5px;
}
.dir-rtl .block_settings .block_tree .tree_item.branch {
  background-position: right 5px;
}
.dir-rtl.jsenabled .block_navigation .block_tree .collapsed .tree_item.branch, .dir-rtl.jsenabled .block_settings .block_tree .collapsed .tree_item.branch {
  background-position: right 5px;
}
@media (min-width: 768px) and (max-width: 979px) {
  .block_calendar_month .content {
    padding-right: 0;
    padding-left: 0;
  }
  .block .minicalendar td {
    padding-right: 0;
    padding-left: 0;
  }
}
/* Homepage carousel */
.homepage-carousel {
  height: 700px;
  position: relative;
}
.homepage-carousel > div {
  height: 100%;
}
.homepage-carousel > div .homecarousel-slide-item {
  height: 100%;
}
.homepage-carousel > div .homecarousel-slide-item .slide-item {
  height: 100%;
}
.homepage-carousel > div .homecarousel-slide-item .slide-item .slide-main-background {
  height: 100%;
}
.homepage-carousel > div .homecarousel-slide-item .slide-item .slide-main-background img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.homepage-carousel > div .homecarousel-slide-item .slide-item .slide-text .heading-content {
  width: auto;
  background: rgba(0, 0, 0, 0.4);
  padding: 30px;
  margin: 20px 0 10px;
  display: inline-block;
}
.homepage-carousel > div .homecarousel-slide-item .slide-item .slide-text .heading-content h1, .homepage-carousel > div .homecarousel-slide-item .slide-item .slide-text .heading-content .h1 {
  color: #fff;
  margin-bottom: 0;
}
.homepage-carousel > div .homecarousel-slide-item .slide-item .slide-text .heading-content p {
  font-size: 17px;
  color: #fff;
  line-height: 22px;
}
.homepage-carousel > div .homecarousel-slide-item .slide-item .slide-text .heading-content p:empty {
  display: none;
}
.homepage-carousel > div .homecarousel-slide-item .slide-item .slide-text .heading-content .link-button a {
  height: auto;
  padding: 10px 25px;
}
.homepage-carousel .controls a.carousel-control {
  width: 44px;
  height: 44px;
  line-height: 38px;
  text-align: center;
  background-color: #2A2A2C;
  border: 2px solid #fff;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 10px;
  right: auto;
  opacity: 1;
}
.homepage-carousel .controls a.carousel-control:before {
  font-size: 30px;
  font-family: var(--fa-style-family, "Font Awesome 6 Free", "Font Awesome 6 Brands", fontawesome);
  font-weight: var(--fa-style, 900);
  color: #fff;
  display: inline-block;
  margin-top: 0;
}
.homepage-carousel .controls a.carousel-control.left:before {
  content: "";
}
.homepage-carousel .controls a.carousel-control.right {
  left: auto;
  right: 10px;
}
.homepage-carousel .controls a.carousel-control.right:before {
  content: "";
}
.homepage-carousel .controls ol {
  display: none;
}
.dir-rtl .homepage-carousel .controls a.carousel-control.left:before {
  content: "";
}
.dir-rtl .homepage-carousel .controls a.carousel-control.right:before {
  content: "";
}
.dir-rtl .homepage-carousel > div .slidesContainer {
  float: left;
}
@media (min-width: 768px) {
  .homepage-carousel .homecarousel-slide-item .slide-item .slide-text {
    position: absolute;
  }
  .homepage-carousel .homecarousel-slide-item .slide-item .slide-text.content-topLeft {
    top: 20px;
    left: 5%;
    right: auto;
    bottom: auto;
  }
  .homepage-carousel .homecarousel-slide-item .slide-item .slide-text.content-topCenter {
    text-align: center;
    margin: 0 auto;
    top: 20px;
    left: 0;
    right: 0;
    bottom: auto;
  }
  .homepage-carousel .homecarousel-slide-item .slide-item .slide-text.content-topRight {
    text-align: right;
    top: 20px;
    left: auto;
    right: 80px;
    bottom: auto;
  }
  .homepage-carousel .homecarousel-slide-item .slide-item .slide-text.content-centerLeft {
    top: 25%;
    left: 80px;
    right: auto;
    bottom: auto;
  }
  .homepage-carousel .homecarousel-slide-item .slide-item .slide-text.content-center {
    text-align: center;
    margin: 0 auto;
    top: 30%;
    left: 0;
    right: 0;
    bottom: auto;
  }
  .homepage-carousel .homecarousel-slide-item .slide-item .slide-text.content-centerRight {
    text-align: right;
    top: 25%;
    bottom: auto;
    left: auto;
    right: 80px;
  }
  .homepage-carousel .homecarousel-slide-item .slide-item .slide-text.content-bottomLeft {
    padding-bottom: 40px;
    top: auto;
    left: 80px;
    right: auto;
    bottom: 20px;
  }
  .homepage-carousel .homecarousel-slide-item .slide-item .slide-text.content-bottomCenter {
    text-align: center;
    padding-bottom: 40px;
    margin: 0 auto;
    top: auto;
    left: 0;
    right: 0;
    bottom: 20px;
  }
  .homepage-carousel .homecarousel-slide-item .slide-item .slide-text.content-bottomRight {
    text-align: right;
    top: auto;
    left: auto;
    right: 80px;
    bottom: 20px;
  }
}
@media (max-width: 767px) {
  .homepage-carousel .homecarousel-slide-item .slide-item .slide-text {
    position: absolute;
    top: 15%;
    margin: 0 40px;
  }
}
.pagelayout-frontpage {
  background-image: none;
}
.pagelayout-frontpage .course-content {
  max-width: 1320px;
  margin: 0 auto;
}
.pagelayout-frontpage .course-content .topics li.section {
  border: 0;
}
.pagelayout-frontpage:not(.editing) .course-content {
  display: none;
}
.pagelayout-frontpage.course-content-element .course-content {
  display: block;
}
.pagelayout-frontpage .moremenu .nav.nav-tabs {
  border-radius: 0;
  margin-top: 10px;
}
.pagelayout-frontpage #region-main {
  padding: 0;
  margin-top: 0;
}
.pagelayout-frontpage #page-wrapper {
  height: auto;
}
.pagelayout-frontpage #page {
  max-width: none;
  padding: 0;
  margin-top: 0;
}
.pagelayout-frontpage #page.drawers div[role="main"] > br {
  display: none;
}
.pagelayout-frontpage #page #page-header {
  display: none;
}
.pagelayout-frontpage #page #region-bs-main-and-pre {
  padding: 0;
}
.pagelayout-frontpage #page #page-content .box {
  max-width: 1320px;
  margin: 0 auto;
}
.pagelayout-frontpage #page #page-content .box .simplesearchform {
  width: 100%;
}
.pagelayout-frontpage #page #page-content .box form {
  border: 1px solid #e5e5e5;
  padding: 20px;
}
.pagelayout-frontpage #page #page-content .box form .input-group {
  width: 100%;
}
.pagelayout-frontpage #page #page-content .box form .input-group .form-control {
  max-width: none;
}
.pagelayout-frontpage #page #page-content .box form .input-group .input-group-append .search-icon {
  border-top-right-radius: 5px;
  border-bottom-right-radius: 5px;
}
.pagelayout-frontpage #page #page-content .box form .coursesearchbox {
  width: 100%;
  text-align: left;
  display: inline-block;
}
.pagelayout-frontpage #page #page-content .box form .coursesearchbox label {
  display: inline-block;
}
.pagelayout-frontpage.format-site #page .secondary-navigation {
  padding: 0;
}
.pagelayout-frontpage.limitedwidth #page.drawers .main-inner {
  max-width: none;
  padding: 0;
  margin-top: 0;
  margin-bottom: 0;
  border-radius: 0;
}
.pagelayout-frontpage.limitedwidth #page.drawers .main-inner .secondary-navigation {
  max-width: 1320px;
  margin: 0 auto;
  display: none;
}
.pagelayout-frontpage #frontpage-available-course-list h2, .pagelayout-frontpage #frontpage-available-course-list .h2, .pagelayout-frontpage #frontpage-available-course-list .course_category_tree, .pagelayout-frontpage #frontpage-available-course-list .frontpage-course-list-enrolled, .pagelayout-frontpage #frontpage-available-course-list div[data-name="Site announcements"], .pagelayout-frontpage #frontpage-available-course-list .subscribelink, .pagelayout-frontpage #frontpage-available-course-list .frontpage-course-list-all, .pagelayout-frontpage #frontpage-course-list h2, .pagelayout-frontpage #frontpage-course-list .h2, .pagelayout-frontpage #frontpage-course-list .course_category_tree, .pagelayout-frontpage #frontpage-course-list .frontpage-course-list-enrolled, .pagelayout-frontpage #frontpage-course-list div[data-name="Site announcements"], .pagelayout-frontpage #frontpage-course-list .subscribelink, .pagelayout-frontpage #frontpage-course-list .frontpage-course-list-all, .pagelayout-frontpage #frontpage-category-combo h2, .pagelayout-frontpage #frontpage-category-combo .h2, .pagelayout-frontpage #frontpage-category-combo .course_category_tree, .pagelayout-frontpage #frontpage-category-combo .frontpage-course-list-enrolled, .pagelayout-frontpage #frontpage-category-combo div[data-name="Site announcements"], .pagelayout-frontpage #frontpage-category-combo .subscribelink, .pagelayout-frontpage #frontpage-category-combo .frontpage-course-list-all, .pagelayout-frontpage #frontpage-category-names h2, .pagelayout-frontpage #frontpage-category-names .h2, .pagelayout-frontpage #frontpage-category-names .course_category_tree, .pagelayout-frontpage #frontpage-category-names .frontpage-course-list-enrolled, .pagelayout-frontpage #frontpage-category-names div[data-name="Site announcements"], .pagelayout-frontpage #frontpage-category-names .subscribelink, .pagelayout-frontpage #frontpage-category-names .frontpage-course-list-all, .pagelayout-frontpage #site-news-forum h2, .pagelayout-frontpage #site-news-forum .h2, .pagelayout-frontpage #site-news-forum .course_category_tree, .pagelayout-frontpage #site-news-forum .frontpage-course-list-enrolled, .pagelayout-frontpage #site-news-forum div[data-name="Site announcements"], .pagelayout-frontpage #site-news-forum .subscribelink, .pagelayout-frontpage #site-news-forum .frontpage-course-list-all {
  max-width: 1320px;
  margin: 0 auto;
}
.pagelayout-frontpage #frontpage-available-course-list, .pagelayout-frontpage #site-news-forum {
  background-color: #fff;
}
.pagelayout-frontpage .custom-alert-block {
  max-width: 1320px;
  width: 100%;
  margin: 15px auto 15px;
}
.pagelayout-frontpage .custom-alert-block p {
  text-align: center;
  margin-bottom: 0;
}
.pagelayout-frontpage .custom-alert-block p i {
  margin-right: 2px;
}
.report-eventlist-data-table {
  overflow: auto;
}
@media (max-width: 991px) {
  .pagelayout-frontpage.limitedwidth #page.drawers .main-inner {
    padding: 0;
    margin-bottom: 0;
  }
}
@media (max-width: 1200px) {
  .pagelayout-frontpage #page #page-content .box {
    padding: 0 20px;
  }
}
/* Site Features */
.site-features {
  padding: 40px 0;
}
.site-features.icon-block .custom-site-expo .sitebox .site-feature-head .rcthumb {
  width: 138px;
  height: 138px;
  font-size: 63px;
  color: #fff;
  text-align: center;
  border-radius: 50%;
  background: #CAA150;
  box-shadow: 0 5px 0 0 rgba(189, 189, 189, 0.86);
  margin: 0 auto 5px;
  display: flex;
  align-items: center;
}
.site-features.icon-block .custom-site-expo .sitebox .site-feature-head .rcthumb i {
  margin: 0 auto;
}
.site-features .custom-site-expo .sitefeature-block-title {
  margin-bottom: 40px;
}
.site-features .custom-site-expo .sitebox {
  margin: 25px 0 15px;
}
.site-features .custom-site-expo .sitebox .site-feature-body {
  padding-top: 15px;
  text-align: center;
}
.site-features .custom-site-expo .sitebox .site-feature-body h6 a, .site-features .custom-site-expo .sitebox .site-feature-body .h6 a {
  font-weight: bold;
  font-size: 15px;
  color: #000;
  line-height: 21px;
  text-transform: uppercase;
}
.site-features .custom-site-expo .sitebox .site-feature-body p {
  line-height: 26px;
  margin: 0;
}
/* End of Site Features */
/* Jumbotron block */
.jumbotron-block {
  margin: 40px 0 30px;
}
.jumbotron-block .container {
  padding: 0;
  position: relative;
}
.jumbotron-block.jumbotron-text-block .inner-wrap .desc-wrap {
  width: 100%;
  padding-right: 0;
  margin-right: 0;
  background: none;
}
.jumbotron-block .inner-wrap {
  padding: 30px;
  border-radius: 15px;
  background: rgba(42, 42, 44, 0.7);
  box-shadow: 2px 5px 5px rgba(0, 0, 0, 0.5);
  overflow: hidden;
  position: relative;
  z-index: 0;
}
.jumbotron-block .inner-wrap:before {
  content: "";
  width: 30%;
  height: 100%;
  position: absolute;
  background: rgba(255, 255, 255, 0.2);
  top: -10px;
  right: -100px;
  z-index: -1;
  transform: rotate(75deg);
  transition: all 0.5s ease;
}
.jumbotron-block .inner-wrap:hover:before {
  height: 120%;
  top: -30px;
  right: -60px;
  transition: all 0.5s ease;
}
.jumbotron-block .inner-wrap .desc-wrap, .jumbotron-block .inner-wrap .btn-block {
  width: 100%;
}
.jumbotron-block .inner-wrap h2, .jumbotron-block .inner-wrap .h2 {
  font-size: 40px;
  color: #CAA150;
  margin: 0 0 12px;
  text-transform: none;
}
.jumbotron-block .inner-wrap p {
  color: #333;
  font-size: 18px;
  line-height: 40px;
  margin: 0;
}
.jumbotron-block .inner-wrap .btn-block {
  text-align: center;
}
.jumbotron-block .inner-wrap .btn-block a {
  font-size: 17px;
  color: #fff;
  text-decoration: none;
  padding: 15px;
  border-radius: 5px;
  background: #2A2A2C;
  display: inline-block;
}
.jumbotron-block .inner-wrap .btn-block a:hover, .jumbotron-block .inner-wrap .btn-block a:focus {
  background: #CAA150;
}
.jumbotron-block.jumbotron-btn-block .inner-wrap {
  padding: 0;
  background: none;
  box-shadow: none;
}
@media (min-width: 992px) {
  .jumbotron-block .inner-wrap {
    width: 100%;
    padding: 35px 40px;
    margin: 0 auto;
    display: flex;
    align-items: center;
  }
  .jumbotron-block .inner-wrap .desc-wrap {
    width: 75%;
    background-image: url(/theme/image.php/academi/theme/1790824836/ic-forward-img);
    background-repeat: no-repeat;
    background-position: right center;
    padding: 0 95px 0 0;
    margin-right: 20px;
    background-size: 70px;
    display: inline-block;
  }
  .jumbotron-block .inner-wrap .btn-block {
    width: auto;
    text-align: right;
    margin-left: auto;
    margin-right: auto;
  }
  .dir-rtl .jumbotron-block .inner-wrap .desc-wrap {
    background-image: url(/theme/image.php/academi/theme/1790824836/ic-backward-img);
    background-position: left center;
    padding: 0 0 0 95px;
  }
}
@media (max-width: 991px) {
  .jumbotron-block {
    margin: 15px;
  }
  .jumbotron-block .container {
    max-width: none;
  }
  .jumbotron-block .inner-wrap:before {
    width: 70%;
    top: -20px;
    right: -250px;
  }
  .jumbotron-block .inner-wrap .btn-block {
    margin-top: 20px;
  }
}
@media (max-width: 767px) {
  .jumbotron-block .inner-wrap {
    text-align: center;
  }
  .jumbotron-block .inner-wrap:before {
    width: 100%;
    top: -40px;
  }
  .jumbotron-block .inner-wrap .desc-wrap {
    padding: 0 0 10px;
  }
  .jumbotron-block .inner-wrap .btn-block {
    margin-top: 30px;
  }
}
@media (max-width: 575px) {
  .jumbotron-block .inner-wrap:before {
    width: 110%;
    top: -40px;
    right: -300px;
  }
  .jumbotron-block .inner-wrap:before:hover:before {
    height: 80%;
    top: 20px;
    right: -160px;
  }
}
/* End of Jumbotron block */
/* Site Announcements */
#site-news-forum .forum-post-container:focus > .focus-target {
  outline-color: rgba(42, 42, 44, 0.7);
}
#site-news-forum .forumpost {
  padding-left: 10px;
  padding-right: 10px;
}
#site-news-forum .forumpost .attachedimages {
  margin-top: 20px;
  max-width: 300px;
}
#site-news-forum .forumpost .attachedimages img {
  width: 100%;
  object-fit: cover;
}
#site-news-forum .content-alignment-container a.btn-link {
  border: 0;
}
#site-news-forum .forumaddnew {
  margin-bottom: 15px;
}
#page-mod-forum-discuss .forum-post-container .forumpost .body-content-container .attachedimages {
  max-width: 300px;
}
/* Blog */
.blog_entry .content .attachedimages {
  margin-bottom: 15px;
}
.blog_entry .audience {
  margin: 5px 0;
}
.comment-ctrl {
  padding-top: 10px;
}
.comment-ctrl .comment-message {
  padding: 10px;
  background: #fff;
}
.comment-ctrl .comment-message .picture {
  float: none;
  display: inline-block;
  margin-right: 10px;
}
.comment-ctrl .comment-message .text {
  padding: 0 15px;
  margin: 10px 0;
}
.comment-ctrl .comment-message .text .comment-delete {
  margin: 0.3em 10px;
  top: 15px;
}
.comment-ctrl .comment-message .time {
  display: inline-block;
}
.comment-link img {
  margin: 0 5px;
}
.comment-area textarea {
  border: 1px solid #2A2A2C;
  padding: 5px;
}
.dir-rtl .comment-message .picture {
  margin-right: 0;
  margin-left: 5px;
}
.dir-rtl .comment-delete {
  margin: 0.3em 10px;
}
/* End of Blog */
/* End of Site Announcements */
@media (max-width: 767px) {
  .pagelayout-frontpage .moremenu .nav.nav-tabs {
    margin-top: 20px;
  }
}
/* Courses */
#frontpage-available-course-list, #frontpage-course-list, #frontpage-category-combo, #frontpage-category-names, #site-news-forum {
  background: #f8f8f8;
  padding: 40px;
  margin: 0;
}
#frontpage-available-course-list .coursebox, #frontpage-course-list .coursebox, .course-search-result .coursebox {
  min-height: 120px;
  padding: 20px;
  border: 0;
  border-bottom: 1px solid #f8f8f8;
  border-radius: 5px;
  background: #fff;
  margin: 20px 0;
  box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.2);
  position: relative;
}
.course-content .topics h3, .course-content .topics .h3 {
  font-size: 21px;
  color: #CAA150;
}
.course-content .topics .section.main.current:before {
  border-color: #2A2A2C;
}
.course-content .topics .section.main .section li.activity {
  padding-bottom: 10px;
}
.course-content .topics .section.main .section li.activity .activity-item:hover, .course-content .topics .section.main .section li.activity .activity-item.selected {
  border-color: #2A2A2C;
}
.course-content .topics .section.main .section li.activity .activity-item .bulkselect {
  left: -1.2rem;
}
.course-content .topics .section.main .section li.activity .activity-item .activity-grid .activityiconcontainer.smaller {
  width: 40px;
  height: 40px;
}
.course-content .topics .section.main .section li.activity .activity-item .activity-grid .activity-completion .activity-information .btn {
  height: auto;
  line-height: 21px;
}
.course-content .topics .section.main .section li.activity .activity-item .activity-grid .activity-completion .activity-information .editcompletion .btn {
  color: #2A2A2C;
}
.course-content .topics .section.main .section li.activity .activity-item .activity-grid .activity-availability .showmore-container {
  margin-top: 5px;
}
.course-content .topics .section.main .section li.activity .activity-item .activity-grid .activity-availability .showmore-container .btn:hover, .course-content .topics .section.main .section li.activity .activity-item .activity-grid .activity-availability .showmore-container .btn:active, .course-content .topics .section.main .section li.activity .activity-item .activity-grid .activity-availability .showmore-container .btn:focus {
  background: none;
}
.course-content .topics .section.main .section li.activity .activity-item .activity-grid .availabilityinfo .editavailability a {
  height: auto;
}
.course-content .topics .section.main .section li.activity .activity-item .activity-grid .activity-actions .actions .commands {
  margin: 0;
}
.course-content .topics .section.main .section li.activity .activity-item .activity-grid .activity-groupmode-info {
  margin-top: 0;
}
.course-content .topics .section.main .section li.activity .activity-item .activity-grid .dropdown .dropdown-menu .dropdown-item-outline > .option-select-indicator, .course-content .topics .section.main .section li.activity .activity-item .activity-grid .dropdown .dropdown-menu .dropdown-item-outline > .option-icon {
  color: #2A2A2C;
}
.course-content .topics .section.main .section li.activity .divider-plus .activity-add i.icon {
  font-size: 18px;
  top: 7px;
  left: 4px;
}
.course-content .topics .section .content .changenumsections {
  border-color: #2A2A2C;
}
.course-content .topics .section .activity .activityinstance a {
  font-size: 18px;
  color: #656565;
  line-height: 24px;
}
.course-content .topics .section .activity .activityinstance a img {
  margin-right: 12px;
}
.course-content .topics .section .activity .activityinstance a .instancename {
  vertical-align: top;
}
.course-content .topics .section .availabilityinfo .no-overflow, .course-content .topics .section .contentafterlink .no-overflow {
  line-height: 22px;
}
.course-content .topics .section .summary .no-overflow {
  font-family: Arial, Helvetica, sans-serif;
  color: #3a87ad;
  line-height: 24px;
  border: 1px solid #d9edf7;
  border-radius: 5px;
  padding: 10px 20px;
  background: #d9edf7;
  margin-bottom: 25px;
}
.course-content .topics .section .summary .no-overflow p {
  color: #3a87ad;
  line-height: 24px;
  margin-bottom: 0;
}
.course-content .stickyfooter .actions .nav-item button {
  height: auto;
  border: 0;
}
.course-content .stickyfooter .actions .nav-item button:hover {
  color: #fff;
  background: #2A2A2C;
}
.course-content .stickyfooter > div.d-flex .btn {
  color: #fff;
  background-color: #2A2A2C;
  padding: 0 10px;
  margin-right: 10px;
}
.course-content .stickyfooter > div.d-flex .btn i.icon {
  color: #fff;
}
.course-content ul li.section.main .section li.activity {
  padding-bottom: 10px;
}
@media (max-width: 767px) {
  .course-content .stickyfooter > div.d-flex .btn {
    margin: 0 5px;
  }
}
@media (max-width: 575px) {
  #frontpage-available-course-list, #frontpage-course-list, #frontpage-category-combo, #frontpage-category-names, #site-news-forum {
    padding: 15px;
  }
  .course-content .stickyfooter > div.d-flex .btn span:last-child {
    display: none;
  }
  .course-content .stickyfooter > div.d-flex .ml-auto {
    margin-right: auto;
  }
}
.courses.frontpage-course-list-all .coursebox.content-block .info, .courses.frontpage-course-list-all .coursebox.content-block .content, .courses.frontpage-course-list-all .coursebox.content-block .coursecat, .courses.frontpage-course-list-enrolled .coursebox.content-block .info, .courses.frontpage-course-list-enrolled .coursebox.content-block .content, .courses.frontpage-course-list-enrolled .coursebox.content-block .coursecat {
  padding: 0;
}
.courses.frontpage-course-list-all .coursebox.content-block .teachers, .courses.frontpage-course-list-enrolled .coursebox.content-block .teachers {
  padding: 0;
}
.courses.frontpage-course-list-all .coursebox.content-block .teachers li, .courses.frontpage-course-list-enrolled .coursebox.content-block .teachers li {
  list-style: none;
}
.courses.frontpage-course-list-all .coursebox.last, .courses.frontpage-course-list-enrolled .coursebox.last {
  border-bottom: 0;
}
.courses.frontpage-course-list-all .coursebox .info .coursename a, .courses.frontpage-course-list-enrolled .coursebox .info .coursename a {
  color: #2A2A2C;
  background: none;
  padding: 0;
}
.courses.frontpage-course-list-all .coursebox .summary .no-overflow, .courses.frontpage-course-list-enrolled .coursebox .summary .no-overflow {
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  display: -webkit-box;
}
.courses.frontpage-course-list-all .coursebox .summary .no-overflow p, .courses.frontpage-course-list-enrolled .coursebox .summary .no-overflow p {
  margin-bottom: 0;
}
.courses.frontpage-course-list-all .coursebox .summary .no-overflow p:empty, .courses.frontpage-course-list-enrolled .coursebox .summary .no-overflow p:empty {
  display: none;
}
.courses.frontpage-course-list-all .coursebox .summary .no-overflow p img, .courses.frontpage-course-list-enrolled .coursebox .summary .no-overflow p img {
  display: none;
}
.courses.frontpage-course-list-all .coursebox .content:empty, .courses.frontpage-course-list-enrolled .coursebox .content:empty {
  display: none;
}
.courses.frontpage-course-list-all .coursebox .content .courseimage, .courses.frontpage-course-list-enrolled .coursebox .content .courseimage {
  max-width: 260px;
  width: 100%;
  margin-right: 20px;
}
.courses.frontpage-course-list-all .coursebox .content .courseimage img, .courses.frontpage-course-list-enrolled .coursebox .content .courseimage img {
  max-width: none;
  max-height: none;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: translate3d(0, 0, 0);
}
.courses.frontpage-course-list-all > .paging.paging-morelink, .courses.frontpage-course-list-enrolled > .paging.paging-morelink {
  text-align: right;
  padding: 20px 0 0;
}
.courses.frontpage-course-list-all > .paging.paging-morelink a:after, .courses.frontpage-course-list-enrolled > .paging.paging-morelink a:after {
  content: "";
  font-family: var(--fa-style-family, "Font Awesome 6 Free", "Font Awesome 6 Brands", fontawesome);
  font-weight: var(--fa-style, 900);
  margin-left: 10px;
}
.courses .coursebox {
  border-bottom: 1px solid #e5e5e5;
  border-radius: 0;
  padding: 10px 12px;
  margin-top: 10px;
}
.courses .coursebox.even {
  background: #fff;
}
.courses .coursebox.collapsed {
  border-color: #d5d5d5;
  padding: 10px 12px;
  margin-bottom: 10px;
}
.courses .coursebox:last-child {
  border: 0;
}
.courses .coursebox .info {
  position: relative;
}
.courses .coursebox .info .coursename {
  float: none;
}
.courses .coursebox .info .moreinfo {
  width: 21px;
  float: none;
  position: absolute;
  top: 0;
  right: 0;
}
.courses .coursebox > .info > .coursename {
  margin: 0 20px 0 0;
}
.courses .coursebox > .info > .coursename a {
  font-size: 21px;
  line-height: 27px;
  background-position: left center;
}
.courses .coursebox .content {
  color: #656565;
  overflow: hidden;
}
.courses .coursebox .content:empty {
  min-height: 40px;
}
.courses .coursebox .content .teachers {
  margin: 0;
  margin-top: 10px;
  float: none;
  width: auto;
  clear: none;
}
.courses .coursebox .content .teachers li {
  font-family: Arial, Helvetica, sans-serif;
}
.courses .coursebox .content .summary {
  width: auto;
  float: none;
  margin: 10px 0 0;
}
.courses .coursebox .content .summary .courseimage {
  width: auto;
  float: none;
  margin: 0;
  clear: none;
  position: absolute;
}
.courses .coursebox .content .summary .coursefile {
  width: auto;
  float: none;
  padding: 5px;
  margin: 0;
  clear: none;
  border: 1px solid #ccc;
  position: absolute;
  top: 20px;
}
.courses .coursebox .content .summary .coursecat {
  width: auto;
  float: none;
  margin: 0;
}
/* RTL */
.dir-rtl .courses .coursebox .info .moreinfo {
  left: 0;
}
.dir-rtl .courses .coursebox .content .teachers {
  float: none;
  width: auto;
  padding: 5px;
  clear: none;
  padding-right: 0;
  margin: 0;
  margin-top: 10px;
}
.dir-rtl .courses .coursebox .content .coursefile {
  float: none;
  width: auto;
  padding: 5px;
  margin: 0;
  clear: none;
  border: 1px solid #ccc;
  position: absolute;
  top: 20px;
}
.dir-rtl .courses.frontpage-course-list-all > .paging.paging-morelink, .dir-rtl .courses.frontpage-course-list-enrolled > .paging.paging-morelink {
  text-align: left;
}
.dir-rtl .courses.frontpage-course-list-all > .paging.paging-morelink a:before, .dir-rtl .courses.frontpage-course-list-enrolled > .paging.paging-morelink a:before {
  content: "";
  font-family: var(--fa-style-family, "Font Awesome 6 Free", "Font Awesome 6 Brands", fontawesome);
  font-weight: var(--fa-style, 900);
  margin-left: 10px;
}
.dir-rtl .courses.frontpage-course-list-all > .paging.paging-morelink a:after, .dir-rtl .courses.frontpage-course-list-enrolled > .paging.paging-morelink a:after {
  display: none;
}
@media (min-width: 576px) {
  .courses .frontpage-course-list-all .coursebox .info, .courses .frontpage-course-list-enrolled .coursebox .info {
    padding-left: 200px;
  }
  .courses .frontpage-course-list-all .coursebox .info .coursename a, .courses .frontpage-course-list-enrolled .coursebox .info .coursename a {
    width: 90%;
    height: 30px;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .courses .frontpage-course-list-all .coursebox .content, .courses .frontpage-course-list-enrolled .coursebox .content {
    padding-left: 200px;
  }
  .courses .frontpage-course-list-all .coursebox .content .summary, .courses .frontpage-course-list-enrolled .coursebox .content .summary {
    min-height: 67px;
  }
  .courses .frontpage-course-list-all .coursebox .content .coursefile, .courses .frontpage-course-list-enrolled .coursebox .content .coursefile {
    left: 0;
  }
  .courses .frontpage-course-list-all .coursebox .content .coursecat, .courses .frontpage-course-list-enrolled .coursebox .content .coursecat {
    padding: 0 0 0 125px;
  }
  .dir-rtl .coursebox .content .courseimage {
    right: 0;
    left: auto;
  }
  .dir-rtl .coursebox .content .coursefile {
    right: 0;
    left: auto;
  }
  .dir-rtl .coursebox .content .coursecat {
    padding: 0 110px 0 0;
  }
}
@media (max-width: 575px) {
  .courses.frontpage-course-list-all .coursebox .content .courseimage, .courses.frontpage-course-list-enrolled .coursebox .content .courseimage {
    max-width: none;
  }
  .courses.frontpage-course-list-all .coursebox .content .courseimage + div, .courses.frontpage-course-list-enrolled .coursebox .content .courseimage + div {
    width: 100%;
  }
  .courses .coursebox > .info > .coursename a {
    font-size: 18px;
  }
}
/* Promoted Courses */
.promoted-courses {
  padding: 40px 0;
  position: relative;
}
.promoted-courses .container {
  padding: 0;
}
.promoted-courses .titlebar h2, .promoted-courses .titlebar .h2, .promoted-courses .titlebar p {
  margin-bottom: 15px;
}
.promoted-courses .promatedcourse-slider .slick-track {
  display: flex;
  gap: 0 15px;
}
.promoted-courses .promatedcourse-slider > .slider-item {
  display: none;
}
.promoted-courses .promatedcourse-slider .slider-item .course-box {
  position: relative;
}
.promoted-courses .promatedcourse-slider .slider-item .course-box .thumb {
  height: 280px;
  position: relative;
}
.promoted-courses .promatedcourse-slider .slider-item .course-box .thumb:before {
  content: "";
  width: 100%;
  height: 100%;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.2);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
}
.promoted-courses .promatedcourse-slider .slider-item .course-box .thumb a {
  width: 100%;
  height: 100%;
  display: inline-block;
}
.promoted-courses .promatedcourse-slider .slider-item .course-box .thumb a img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px;
}
.promoted-courses .promatedcourse-slider .slider-item .course-box .info {
  padding: 10px;
}
.promoted-courses .promatedcourse-slider .slider-item .course-box .info a {
  color: #fff;
  text-decoration: none;
}
.promoted-courses .promatedcourse-slider .slick-dots {
  text-align: center;
  padding: 0;
  margin-top: 30px;
  margin-bottom: 0;
}
.promoted-courses .promatedcourse-slider .slick-dots li {
  line-height: 10px;
  display: inline-block;
  margin-right: 10px;
}
.promoted-courses .promatedcourse-slider .slick-dots li button {
  width: 10px;
  height: 10px;
  text-indent: -999em;
  padding: 0;
  border: 2px solid #2A2A2C;
  border-radius: 50%;
  background: none;
}
.promoted-courses .promatedcourse-slider .slick-dots li.slick-active button {
  border: 2px solid #2A2A2C;
  background-color: #2A2A2C;
}
@media (max-width: 575px) {
  .promoted-courses {
    margin: 0 15px;
  }
  .promoted-courses .promatedcourse-slider .slick-track {
    gap: 0;
  }
}
/* End of Promoted Courses */
/* Available courses */
.available-courses .available-block .course-slider {
  margin-top: 30px;
}
.available-courses .available-block .course-slider .available-content {
  display: none;
}
.available-courses .available-block .course-slider .slick-slide {
  margin-right: 15px;
}
.available-courses .available-block .course-slider .slick-slide .available-content {
  display: block;
  position: relative;
}
.available-courses .available-block .course-slider .slick-slide .available-content .available-img {
  height: 250px;
  overflow: hidden;
  position: relative;
}
.available-courses .available-block .course-slider .slick-slide .available-content .available-img:after {
  background: #fff;
  content: "";
  width: 50px;
  height: 130%;
  left: -115px;
  opacity: 0.2;
  position: absolute;
  top: -55px;
  z-index: 0;
  transform: rotate(35deg);
  transition: all 2s cubic-bezier(0.19, 1, 0.22, 1);
}
.available-courses .available-block .course-slider .slick-slide .available-content .available-img:hover:after {
  width: 150%;
  height: 180%;
  top: -140px;
  left: -60px;
  z-index: 0;
  transition: all 2s cubic-bezier(0.19, 1, 0.22, 1);
}
.available-courses .available-block .course-slider .slick-slide .available-content .available-img a, .available-courses .available-block .course-slider .slick-slide .available-content .available-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
}
.available-courses .available-block .course-slider .slick-slide .available-content .available-info {
  width: 100%;
  min-height: 70px;
  background: #2A2A2C;
  border-bottom-left-radius: 5px;
  border-bottom-right-radius: 5px;
  padding: 0 20px;
  display: flex;
  align-items: center;
}
.available-courses .available-block .course-slider .slick-slide .available-content .available-info h6, .available-courses .available-block .course-slider .slick-slide .available-content .available-info .h6 {
  margin: 10px 0;
}
.available-courses .available-block .course-slider .slick-slide .available-content .available-info h6 a, .available-courses .available-block .course-slider .slick-slide .available-content .available-info .h6 a {
  color: #fff;
}
.available-courses .available-block .course-slider .slick-slide .available-content:hover .available-info {
  opacity: 1;
}
.available-courses .available-block .course-slider .slick-slide .available-content:hover .available-info:before {
  width: 100%;
  transition: all 0.5s ease-in;
}
.available-courses .available-block .course-slider .slick-arrow {
  text-indent: -999em;
  border-radius: 5px;
  position: absolute;
  top: 40%;
  z-index: 1;
}
.available-courses .available-block .course-slider .slick-arrow:hover {
  background-color: #CAA150;
}
.available-courses .available-block .course-slider .slick-arrow:before {
  content: "";
  font-family: var(--fa-style-family, "Font Awesome 6 Free", "Font Awesome 6 Brands", fontawesome);
  font-weight: var(--fa-style, 900);
  text-indent: 0;
  float: left;
}
.available-courses .available-block .course-slider .slick-arrow.slick-prev {
  left: -10px;
}
.available-courses .available-block .course-slider .slick-arrow.slick-next {
  right: 0;
}
.available-courses .available-block .course-slider .slick-arrow.slick-next:before {
  content: "";
}
@media (max-width: 991px) {
  .available-courses .available-block .container {
    max-width: none;
  }
}
@media (max-width: 575px) {
  .available-courses .available-block .course-slider {
    padding: 0;
  }
  .available-courses .available-block .course-slider .slick-slide {
    margin-right: 0;
  }
  .available-courses .available-block .course-slider .slick-slide .available-content .available-img:hover:after {
    width: 80%;
    height: 220%;
    top: -180px;
  }
  .available-courses .available-block .course-slider .slick-arrow.slick-prev {
    left: 0;
  }
}
/* End of Available courses */
/* Frontpage course category */
.course_category_tree .coursebox.content-block .content {
  min-height: auto;
}
.course_category_tree .coursebox.content-block .summary {
  padding: 10px 0 0 0;
}
.course_category_tree .coursebox.content-block .coursecat {
  padding: 0;
}
.course_category_tree .coursebox.content-block .teachers {
  padding: 0;
}
.course_category_tree .coursebox .content {
  min-height: 50px;
  position: relative;
}
.course_category_tree .coursebox .content .summary {
  padding-top: 10px;
}
.course_category_tree .coursebox .content .summary img {
  display: none;
}
.course_category_tree .coursebox .content .courseimage {
  height: 120px;
  padding: 5px;
  border: 1px solid #ccc;
}
.course_category_tree .coursebox .content .courseimage img {
  max-width: 160px;
  max-height: none;
  height: 100%;
}
.course_category_tree.frontpage-category-names .course-box .summary .no-overflow {
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  display: -webkit-box;
}
.course_category_tree.frontpage-category-names .category.with_children > .info > .categoryname {
  cursor: pointer;
}
.course_category_tree.frontpage-category-names .category > .info {
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 5px 5px rgba(0, 0, 0, 0.05);
  padding: 5px 0;
  margin: 0 0 14px;
}
.course_category_tree.frontpage-category-names .category > .info > .categoryname.aabtn a {
  font-weight: normal;
  font-size: 18px;
  color: #2A2A2C;
}
.course_category_tree.frontpage-category-names .collapsible-actions a {
  font-weight: normal;
  font-size: 14px;
}
.course_category_tree .category > .info {
  background: rgba(42, 42, 44, 0.7);
  border: 0;
  border-radius: 0;
  box-shadow: none;
  margin: 0 0 9px;
}
.course_category_tree .category > .info > .categoryname {
  padding: 5px 15px;
  background-image: none;
}
.course_category_tree .category > .info > .categoryname.aabtn:before {
  content: "";
  line-height: 22px;
  font-family: var(--fa-style-family, "Font Awesome 6 Free", "Font Awesome 6 Brands", fontawesome);
  font-weight: var(--fa-style, 900);
  margin-right: 10px;
}
.course_category_tree .category > .info > .categoryname.aabtn a {
  font-size: 16px;
  color: #fff;
  line-height: 20px;
  vertical-align: top;
}
.course_category_tree .category.with_children > .info > .categoryname.aabtn {
  background-image: none;
}
.course_category_tree .category.with_children > .info > .categoryname.aabtn:before {
  content: "";
}
.course_category_tree .category.with_children.collapsed > .info > .categoryname.aabtn:before {
  content: "";
}
.course_category_tree .collapsible-actions a:before {
  content: "";
  font-family: var(--fa-style-family, "Font Awesome 6 Free", "Font Awesome 6 Brands", fontawesome);
  font-weight: var(--fa-style, 900);
  margin-right: 5px;
}
.course_category_tree .collapsible-actions a.collapse-all:before {
  content: "";
}
#frontpage-category-combo .course_category_tree .category.with_children > .info > .categoryname {
  cursor: pointer;
}
> .info > .categoryname #frontpage-category-combo .course_category_tree .category:before {
  color: #fff;
}
/* rtl */
.dir-rtl .course_category_tree .category > .info > .categoryname.aabtn:before {
  content: "";
  float: right;
}
.dir-rtl .course_category_tree .category.with_children > .info > .categoryname.aabtn:before {
  content: "";
}
.dir-rtl .course_category_tree .category.with_children.collapsed > .info > .categoryname.aabtn:before {
  content: "";
}
.dir-rtl .course_category_tree .content .teachers {
  margin-right: 200px;
}
.dir-rtl .course_category_tree .collapsible-actions a:before {
  content: "";
}
@media (min-width: 768px) {
  .dir-rtl .course_category_tree .coursebox .content .teachers {
    padding-left: 0;
  }
}
@media (min-width: 576px) {
  .course_category_tree .coursebox .content .summary {
    padding: 0 0 0 15px;
  }
  .course_category_tree .coursebox .content .coursecat {
    padding: 0 0 0 15px;
  }
  .course_category_tree .coursebox .content .teachers {
    padding-left: 15px;
  }
  .course_category_tree .coursebox.content-block .content .summary {
    padding: 10px 0 0 0;
  }
  .course_category_tree .coursebox.content-block .content .coursecat {
    padding: 0;
  }
  .course_category_tree .coursebox.content-block .content .teachers {
    padding: 0;
  }
  .dir-rtl .course_category_tree .coursebox.content-block .teachers {
    margin-right: 0;
  }
  .dir-rtl .course_category_tree .coursebox .content .teachers {
    padding-right: 0;
  }
}
@media (max-width: 575px) {
  .course_category_tree .coursebox .content .coursefile {
    left: 50%;
    margin-left: -50px;
  }
  .course_category_tree .coursebox .content .teachers {
    margin-left: 0;
  }
  .course_category_tree .coursebox .content .summary {
    padding-top: 0;
  }
  .course_category_tree .coursebox.content-block .content {
    min-height: auto;
    padding-top: 0;
  }
  .dir-rtl .course_category_tree .coursebox .content .summary {
    padding-right: 0;
  }
  .dir-rtl .course_category_tree .coursebox .content .coursefile {
    margin-left: -50px;
    left: 50%;
  }
  .dir-rtl .course_category_tree .coursebox .content .teachers {
    margin-right: 0;
  }
}
.simplesearchform form .coursesearchbox input[type="text"] {
  max-width: none;
  width: 50%;
  display: inline-block;
  vertical-align: middle;
}
.dir-rtl .simplesearchform form .input-group .input-group-append .search-icon {
  border-radius: 0;
  border-top-left-radius: 5px;
  border-bottom-left-radius: 5px;
}
/* End of Courses*/
/* Available courses */
#frontpage-course-list {
  background: #fff;
  border: 0;
}
#frontpage-course-list h2, #frontpage-course-list .h2 {
  margin: 0;
}
#frontpage-course-list .buttons .singlebutton {
  padding: 18px;
}
#frontpage-course-list .buttons .singlebutton div, #frontpage-course-list .buttons .singlebutton input[type="submit"] {
  margin: 0;
}
/* End of Available courses */
/* Marketing Spot */
.marketing-spot {
  padding: 40px 0 0;
  background-color: rgba(42, 42, 44, 0.7);
}
.marketing-spot *:empty {
  display: none;
}
.marketing-spot .info-head {
  margin-bottom: 30px;
}
.marketing-spot .info-head h2, .marketing-spot .info-head .h2 {
  color: #fff;
  font-size: 38px;
  text-align: center;
  margin-bottom: 20px;
}
.marketing-spot .info-head p {
  color: #fff;
  text-align: center;
}
.marketing-spot .info-media {
  width: 100%;
  height: 100%;
  margin: 0 auto;
  overflow: hidden;
}
.marketing-spot .info-media iframe {
  max-width: 100%;
  height: 100%;
}
.marketing-spot .info-media img {
  width: 100%;
  height: 100%;
  border-radius: 10px;
  object-fit: cover;
  object-position: top;
  margin: 0 auto;
  display: block;
}
.marketing-spot .info-content p {
  font-size: 18px;
  line-height: 28px;
  color: #fff;
  justify-content: center;
}
.marketing-spot:after {
  content: "";
  clear: both;
}
@media (min-width: 992px) {
  .marketing-spot video {
    max-width: 100%;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .marketing-spot .info-media {
    max-width: 500px;
    height: auto;
  }
}
@media (max-width: 767px) {
  .marketing-spot .info-media video {
    width: 100%;
  }
}
/* End of Marketing Spot */
/* Courses */
.pagelayout-course #page.drawers .main-inner {
  max-width: none;
}
.pagelayout-course #page #page-header .header-actions-container .header-action .bulkEnable {
  color: #2A2A2C !important;
  border: 1px solid #2A2A2C;
  border-radius: 5px;
}
.pagelayout-course #page #page-header .header-actions-container .header-action .bulkEnable:hover, .pagelayout-course #page #page-header .header-actions-container .header-action .bulkEnable:focus, .pagelayout-course #page #page-header .header-actions-container .header-action .bulkEnable:active {
  color: #fff !important;
  background-color: #2A2A2C;
}
.pagelayout-course #page #page-header .header-actions-container .header-action .bulkEnable i.icon {
  margin-left: 5px;
  margin-right: 0;
}
#page-course-index #region-main .coursebox {
  margin-bottom: 9px;
}
#page-course-index #region-main .mform fieldset {
  margin-bottom: 40px;
}
#page-course-index #region-main .mform legend {
  margin-bottom: 30px;
}
#page-course-index-category .course_category_tree .category > .info > .categoryname.aabtn:before {
  color: #fff;
}
#course-category-listings .moodle-actionmenu[data-enhance] .toggle-display.textmenu .caret {
  vertical-align: middle;
  margin-top: 0;
  top: 0;
}
#course-category-listings .listitem[data-selected="1"] {
  border-left-color: #2A2A2C;
}
#course-category-listings #category-listing .course-count i.icon {
  margin-left: 5px;
}
#page-course-management #page #page-content ul.ml li .menubar .dropdown a.dropdown-toggle i.icon {
  margin: 0;
}
#page-course-management #page #page-content ul.ml li .menubar .dropdown .dropdown-menu a.dropdown-item i.icon {
  color: #2A2A2C;
}
.list-group-item {
  background: none;
}
.list-group-item.active {
  background: #2A2A2C;
  border-color: #2A2A2C;
}
.list-group-item.active span i.icon {
  color: #fff;
}
.course-content .single-section ul.topics li.section, .course-content .single-section ul.weeks li.section {
  margin-top: 0;
}
.course-content .course-content-item-content .divider .dropdown .dropdown-menu .dropdown-item:not(:hover) {
  color: #2A2A2C;
}
.path-course .theme-container.limitedwidth #page.drawers .main-inner #page-header, .path-course .theme-container.limitedwidth #page.drawers .main-inner .secondary-navigation {
  max-width: none;
}
.path-course .course-content .stickyfooter .sticky-footer-content .mx-auto {
  width: 75%;
}
.path-course .course-content .stickyfooter .sticky-footer-content .mx-auto .actions {
  width: 100%;
  flex-wrap: nowrap;
  margin: 0 10px;
}
.path-course .course-content .stickyfooter .sticky-footer-content .mx-auto .actions li.nav-item {
  width: 100%;
  margin: 0 5px;
}
.path-course .course-content .stickyfooter .sticky-footer-content .mx-auto .actions li.nav-item .btn {
  width: 100%;
  align-items: center;
}
.path-course .course_category_tree .category > .info > .categoryname {
  padding: 10px 15px;
}
.path-course.limitedwidth.uses-drawers .course-content .stickyfooter .sticky-footer-content {
  max-width: 1140px;
}
.path-course .category .course_category_tree .category.with_children > .info > .categoryname.aabtn {
  padding-top: 10px;
  padding-bottom: 10px;
}
/* Login */
#page-login-index #header button.btn {
  display: none;
}
.path-login {
  background-image: none;
}
.path-login #page-wrapper {
  height: auto;
  margin-bottom: 0;
}
.path-login #page {
  background-image: url(url(""));
  background-size: cover;
  background-position: top;
  background-repeat: no-repeat;
}
.login-wrapper {
  padding: 50px 0;
}
.login-wrapper .login-form .login-form-submit .btn {
  height: auto;
}
.login-container .login-identityproviders .login-identityprovider-btn {
  border-color: #eee;
  margin-top: 10px;
}
@media (max-width: 575px) {
  #page-login-index .card {
    margin-top: 50px;
  }
}
/* Footer */
.empty-footer {
  display: none;
}
#page-footer:empty {
  display: none;
}
#footer a i {
  color: #CAA150;
}
#footer a > .media-icon i {
  color: #fff;
  font-family: var(--fa-style-family, "Font Awesome 6 Free", "Font Awesome 6 Brands", fontawesome);
  font-weight: var(--fa-style, 900);
}
#footer.footer-image .footer-main {
  background-image: url(url(""));
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}
#footer.footer-image .footer-main:before {
  content: "";
  width: 100%;
  height: 100%;
  background-color: rgba(42, 42, 44, 0.4);
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
#footer.footer-image .footer-main.footer-image a {
  color: #fff;
}
#footer.footer-image .footer-main h2, #footer.footer-image .footer-main .h2 {
  color: #fff;
}
#footer.footer-image .footer-main .social-media ul li a {
  background-color: rgba(255, 255, 255, 0.5);
}
#footer.footer-image .footer-main .social-media ul li:after {
  background-color: #fff;
}
#footer .footer-main {
  background-color: #2d2d2d;
  padding: 30px 0 54px;
  position: relative;
  z-index: 0;
}
#footer .footer-main .container-fluid, #footer .footer-main .container-sm, #footer .footer-main .container-md, #footer .footer-main .container-lg, #footer .footer-main .container-xl, #footer .footer-main .container-xxl {
  max-width: 1500px;
}
#footer .footer-main h2, #footer .footer-main .h2 {
  font-weight: bold;
  line-height: 36px;
  margin: 0 0 20px;
}
#footer .footer-main p {
  color: #fff;
  line-height: 22px;
}
#footer .footer-main p i {
  margin-right: 5px;
}
#footer .footer-main .infoarea {
  padding: 25px 0 0;
}
#footer .footer-main .infoarea .footer-logo {
  max-width: 200px;
  margin: 0 0 18px;
}
#footer .footer-main .infoarea .footer-logo a {
  display: block;
}
#footer .footer-main .infoarea .footer-logo a img {
  width: 100%;
  height: auto;
  max-height: 150px;
  object-fit: contain;
}
#footer .footer-main .foot-links {
  padding: 25px 0 0;
}
#footer .footer-main .foot-links ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
#footer .footer-main .foot-links ul li a {
  color: #fff;
  line-height: 32px;
}
#footer .footer-main .foot-links ul li a:hover {
  color: #2A2A2C;
  text-decoration: none;
}
#footer .footer-main .foot-links ul a {
  padding-left: 0;
}
#footer .footer-main .contact-info {
  padding: 25px 0 0;
}
#footer .footer-main .contact-info h2, #footer .footer-main .contact-info .h2 {
  margin-bottom: 18px;
}
#footer .footer-content-popover .footer-section div {
  color: initial;
}
#footer .footer-main .social-media {
  padding: 25px 0 0;
}
#footer .footer-main .social-media h6, #footer .footer-main .social-media .h6 {
  font-size: 14px;
  color: #fff;
}
#footer .footer-main .social-media ul {
  list-style: none;
  padding: 0;
  margin: 0;
  overflow: hidden;
}
#footer .footer-main .social-media ul li {
  width: 60px;
  height: 60px;
  line-height: 60px;
  text-align: center;
  border-radius: 5px;
  display: inline-block;
  margin-right: 15px;
  margin-bottom: 15px;
  overflow: hidden;
  position: relative;
}
#footer .footer-main .social-media ul li:after {
  background: #000;
  content: "";
  height: 155px;
  left: -55px;
  opacity: 0.2;
  position: absolute;
  top: -50px;
  transform: rotate(35deg);
  transition: all 2s cubic-bezier(0.19, 1, 0.22, 1);
  width: 50px;
  z-index: 0;
}
#footer .footer-main .social-media ul li:hover:after {
  left: 120%;
  transition: all 2s cubic-bezier(0.19, 1, 0.22, 1);
  z-index: 0;
}
#footer .footer-main .social-media ul li a {
  width: 100%;
  height: 100%;
  font-size: 24px;
  color: #fff;
  display: inline-block;
  border-radius: 5px;
  background-color: #fff;
}
#footer .footer-main .social-media ul li a:hover, #footer .footer-main .social-media ul li a:focus {
  text-decoration: none;
}
#footer .footer-main .social-media ul .smedia-01 a:hover, #footer .footer-main .social-media ul .smedia-01 a:focus, #footer .footer-main .social-media ul .smedia-02 a:hover, #footer .footer-main .social-media ul .smedia-02 a:focus, #footer .footer-main .social-media ul .smedia-03 a:hover, #footer .footer-main .social-media ul .smedia-03 a:focus, #footer .footer-main .social-media ul .smedia-04 a:hover, #footer .footer-main .social-media ul .smedia-04 a:focus {
  color: #5a7ec9;
}
#footer .footer-bottom {
  background: #111;
  padding: 10px 0;
  text-align: center;
}
#footer .footer-bottom p {
  padding-bottom: 5px;
  margin-bottom: 0;
}
#footer .footer-bottom p a {
  color: #2A2A2C;
}
#footer .footer-bottom a {
  color: #2A2A2C;
}
#footer .footer-bottom a:hover, #footer .footer-bottom a:focus, #footer .footer-bottom a:active {
  color: #CAA150;
}
#footer button.btn-footer-popover, #footer button.btn-footer-popover:hover, #footer button.btn-footer-popover:focus, #footer button.btn-footer-popover:active {
  height: auto;
  color: #fff;
  background: #2A2A2C;
}
/* RTL */
.dir-rtl #footer .social-media ul li {
  float: right;
}
.dir-rtl #footer + li {
  margin: 0 12px 0 0;
}
.dir-rtl #footer .footer-main p i {
  margin-left: 5px;
  margin-right: 0;
}
@media (max-width: 767px) {
  #footer .footer-main {
    text-align: center;
    padding-right: 20px;
    padding-left: 20px;
  }
  #footer .footer-main .infoarea .footer-logo {
    margin-right: auto;
    margin-left: auto;
  }
  #footer .footer-main .infoarea .footer-logo img {
    width: 100%;
    height: auto;
  }
  #footer .footer-bottom {
    padding-right: 20px;
    padding-left: 20px;
  }
  #footer .footer-content-popover .footer-section a {
    color: #2A2A2C;
  }
}
/* End of Footer */
@keyframes morph {
  0% {
    border-radius: 40% 60% 60% 40% / 70% 30%;
  }
  to {
    border-radius: 40% 60%;
  }
}
@keyframes move {
  0% {
    offset-distance: 0%;
  }
  100% {
    offset-distance: 10%;
  }
}
@keyframes spin {
  0% {
    transform: rotate(0);
  }
  50% {
    transform: rotate(0.1turn);
  }
  100% {
    transform: rotate(0);
  }
}
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
  font-weight: normal;
}
#frontpage-available-course-list h2, #frontpage-available-course-list .h2, #frontpage-course-list h2, #frontpage-course-list .h2, #frontpage-category-combo h2, #frontpage-category-combo .h2, #frontpage-category-names h2, #frontpage-category-names .h2, #site-news-forum h2, #site-news-forum .h2 {
  font-weight: bold;
}
/* Secondary navigation menu */
.secondary-navigation .moremenu.navigation .nav-tabs .nav-item {
  background-color: #f8f8f8;
}
.secondary-navigation .moremenu.navigation .nav-tabs .nav-item .nav-link:before {
  display: none;
}
.secondary-navigation .moremenu.navigation .nav-tabs .nav-item .nav-link:hover, .secondary-navigation .moremenu.navigation .nav-tabs .nav-item .nav-link:focus, .secondary-navigation .moremenu.navigation .nav-tabs .nav-item .nav-link:active {
  background-color: #2A2A2C;
}
/* End of Secondary navigation menu */
/* Site Features */
.site-features.icon-block .custom-site-expo .col-md-6:first-child .site-feature-head .rcthumb {
  color: #39b3e6;
  background: #bce8f1;
}
.site-features.icon-block .custom-site-expo .col-md-6:nth-child(2) .site-feature-head .rcthumb {
  color: #dd4b39;
  background: #ffd3bd;
}
.site-features.icon-block .custom-site-expo .col-md-6:nth-child(3) .site-feature-head .rcthumb {
  color: #3e1a1a;
  background: #fee7ae;
}
.site-features.icon-block .custom-site-expo .col-md-6:last-child .site-feature-head .rcthumb {
  color: #357a32;
  background: #d6f8cd;
}
.site-features.icon-block .custom-site-expo .sitebox {
  padding: 20px;
  border-radius: 10px;
  box-shadow: 0 4px 16px 5px rgba(0, 0, 0, 0.1);
}
.site-features.icon-block .custom-site-expo .sitebox .site-feature-head .rcthumb {
  width: 50px;
  height: 50px;
  font-size: 20px;
  box-shadow: none;
  margin: -50px 0 0;
}
.site-features.icon-block .custom-site-expo .sitebox .site-feature-body {
  text-align: left;
}
.site-features.icon-block .custom-site-expo .sitebox .site-feature-body h6, .site-features.icon-block .custom-site-expo .sitebox .site-feature-body .h6, .site-features.icon-block .custom-site-expo .sitebox .site-feature-body h6 a, .site-features.icon-block .custom-site-expo .sitebox .site-feature-body .h6 a {
  color: #CAA150;
  font-weight: bold;
}
/* End of Site Features */
/* Promoted Courses */
.promoted-courses .promatedcourse-slider .slider-item .course-box:before {
  content: "";
  width: 100%;
  height: 100%;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.2);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
.promoted-courses .promatedcourse-slider .slider-item .course-box .info {
  position: absolute;
  top: 20px;
  left: 20px;
  right: 20px;
  z-index: 1;
}
/* End of Promoted Courses */
/* Marketing Spot */
.marketing-spot {
  padding-bottom: 40px;
  overflow: hidden;
  position: relative;
  z-index: 0;
}
.marketing-spot .info-media {
  padding: 15px;
  border-radius: 10px;
  overflow: visible;
  position: relative;
  z-index: 0;
}
.marketing-spot .info-media:before {
  content: "";
  width: 80%;
  height: 80%;
  border-radius: 60% 40% 40% 20%;
  background-color: rgba(42, 42, 44, 0.3);
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  animation: morph 15s linear infinite alternate, spin 20s linear infinite;
}
.marketing-spot .info-media:after {
  content: "";
  width: 80%;
  height: 80%;
  border-radius: 60% 40% 40% 20% / 70% 50% 30% 25%;
  background-color: rgba(202, 161, 80, 0.3);
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: -1;
  animation: morph 15s linear infinite alternate, spin 20s linear infinite;
}
/* End of Marketing Spot */
/* Jumbotron */
@media (max-width: 575px) {
  .jumbotron-block .inner-wrap:hover:before {
    height: 100%;
    top: -30px;
    right: -240px;
  }
}
/* End of Jumbotron */
/* Course category */
.course_category_tree.frontpage-category-names .category {
  width: 48%;
  display: inline-block;
  vertical-align: top;
  margin-right: 15px;
}
.course_category_tree.frontpage-category-names .category > .info .numberofcourse {
  width: 30px;
  height: 30px;
  line-height: 30px;
  color: #fff;
  text-align: center;
  background: #2A2A2C;
  border-radius: 50%;
  padding: 0;
  margin-top: -5px;
  float: right;
}
.course_category_tree.frontpage-category-names .category .category {
  width: 100%;
}
.course_category_tree.frontpage-category-names .category .subcategories .subcategories .category {
  width: 100%;
}
@media (min-width: 992px) {
  .course_category_tree.frontpage-category-names .category {
    width: 45%;
  }
}
@media (max-width: 991px) {
  .course_category_tree.frontpage-category-names .category {
    width: 45%;
  }
}
@media (max-width: 575px) {
  .course_category_tree.frontpage-category-names .category {
    width: 100%;
  }
}
/* End of Course category */
/* Combo courses */
#frontpage-category-combo .course_category_tree .category > .info {
  border-radius: 5px;
}
#frontpage-category-combo .course_category_tree .category > .info > .categoryname {
  padding: 15px 10px;
}
#frontpage-category-combo .course_category_tree .category > .info > .categoryname:before {
  width: 30px;
  height: 30px;
  color: #fff;
  line-height: 30px;
  text-align: center;
  border-radius: 50%;
  box-shadow: 2px 5px 5px rgba(0, 0, 0, 0.2);
  background: #2A2A2C;
  margin-left: -30px;
  display: inline-block;
}
#frontpage-category-combo .course_category_tree .category > .info > .categoryname a {
  line-height: 30px;
}
#frontpage-category-combo .course_category_tree .category:not(.with_children) .info .categoryname:before {
  content: "";
  display: none;
}
#frontpage-category-combo .course_category_tree .category > .content {
  border-radius: 5px;
}
#frontpage-category-combo .course_category_tree .category > .content .coursebox {
  border: 0;
  border-radius: 5px;
  background-color: #fff;
}
#frontpage-category-combo .course_category_tree .category > .content .coursebox .info .coursename {
  margin-bottom: 0;
}
@media (max-width: 575px) {
  #frontpage-category-combo .course_category_tree .category > .info > .categoryname:before {
    margin-left: -5px;
  }
}
/* End of Combo courses */
/* Footer */
#footer.footer-image .foot-links ul li a:hover {
  color: #fff;
}
/* End of Footer */
/* Custom CSS Settings
-------------------------*/
.que .formulation {
    background-color: #f1f1f1 !important;
}

.que .formulation hr {
    border-top-color: #dbdbdb;
}

.que.match .mediaplugin {
    width: 100% !important;
}

.ddmatch .qtext p {
    margin: 0 0 .7em;
    font-size: 16px !important;
}

.ddmatch .divanswer p {
    font-size: 16px !important;
}
.ddmatch ul.draghomes p {
    font-size: 16px !important;
}

h3,
h4 {
    color: #C9A227 !important;
}




/* Load Poppins font (use in your theme header or custom HTML settings) */


/* Apply Poppins font to all multiorder question content */
.qtype_multiorder {
    font-family: 'Poppins', sans-serif !important;
}

/* Optional: style internal elements too for consistency */
.qtype_multiorder .multiorder-container,
.qtype_multiorder .multiorder-drag,
.qtype_multiorder .multiorder-drop {
    font-family: 'Poppins', sans-serif !important;
}




.choice-number-text.answernumber {
    font-weight: normal !important;
}



.choice-number-text.answernumber {
    font-family: 'Poppins', sans-serif !important;
    font-weight: normal !important;
    font-size: 1.2em !important; /* Slightly smaller than default */
}


.qtype-advmultichoice .answer-block .answer-content .card-body .card-title p {
    font-family: 'Poppins', sans-serif !important;
    font-weight: 200;
}

.advmultichoice .formulation .qtext h6 {
    font-size: 20px !important;
    font-family: 'Poppins';
}

h3,
h4,
.sectionname,
.sectionname a,
.sectionname h3,
.sectionname h4,
h3,
h4 {
    color: #C2A86A !important;
    font-weight: 500 !important;
    letter-spacing: 0.3px;
}








body, html {
  font-family: 'Poppins', sans-serif;
  font-weight: 400;
}

/* Light grey tile background for section tiles */
.tile-link {
    background-color: #f7f7f7 !important; /* Light modern grey */
    border-radius: 8px;
    padding: 10px;
    transition: background-color 0.3s ease;
}

.format-tiles .progress-indic svg circle.partial {
    stroke: #3eba54;
}

.format-tiles .progress-indic svg circle.partial:hover {
    stroke: #ff6600;
}

.que.multiorder .formulation .que-multiorder-head p {
    font-size: 18px;
    background: unset;
}
.que.advmultichoice .formulation h6 {
    font-size: 18px;
}
.que.advmultichoice .formulation p {
    font-size: 19px;
}

.gradingform_checklist .checklistitem .description {
  width: 600px !important;
  max-width: 600px !important;
  white-space: normal !important;
  display: inline-block !important;
}

.gradingform_checklist .checklistitem td.description {
  width: 600px !important;
  max-width: 600px !important;
}
.gradingform_checklist .group .items .item .definition {
    width: 80%;
}
.gradingform_checklist {
    max-width: 100%;
}
.gradingform_checklist .group .description {
    width: auto !important;
    font-weight: 600 !important;
     color: #ff6600;
     padding-top: 20px;
}

strong,
b {
    font-weight: 700 !important;
}

.sectionname strong,
.sectionname b {
    color: #C9A227 !important;
    font-weight: 700 !important;
}

.nctslidesshow-content .nct-slideshow-carousel {
    max-width: 82% !important;
    height: auto !important;

}


/* Eliminate default spacing in questions and answers */
.qtext p,
.answer p {
  margin: 0 !important;
  padding: 0 !important;
}

/* Optional: reduce spacing between answer options */
.answer .r0,
.answer .r1 {
  padding: 0.25rem 0 !important;
}

/* Prevent clearfix from acting as a visual block in flex layouts */
.clearfix::before,
.clearfix::after {
  display: none !important;
}


.vjs-icon-placeholder:before {
  font-family: VideoJS !important;
  content: "\f101"; /* Example glyph – adjust based on function */
  font-style: normal;
  font-weight: normal;
  speak: none;
}

a[aria-label="Add question"] {
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: #ffffff !important;
  background-color: #007bff !important; /* Bootstrap primary blue */
  padding: 10px 16px !important;
  border-radius: 6px !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  z-index: 9999 !important;
  position: relative !important;
}

a[aria-label="Add question"]{background-color:var(--bs-secondary,#6c757d)!important;color:#ffffff!important;border:none!important;font-weight:500!important}.que .info{max-height:28px;overflow:hidden;transition:max-height 0.3s ease;cursor:pointer;padding:4px}.que .info:hover{max-height:300px}.que .info{background:#fafafa;border:1px solid #ddd;border-radius:6px;font-size:11px}.que{margin-bottom:18px!important;padding:14px 18px!important}