Proyectos de Subversion Moodle

Rev

Rev 11 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
/* core.less */
2
 
3
$bg-inverse-link-color: $white !default;
4
 
5
$dropzone-border: $gray-900 !default;
6
 
7
$collapse-list-item-padding-y: 0.5rem !default;
8
$collapse-list-item-padding-x: 1rem !default;
1441 ariadna 9
$collapse-list-item-hover-bg: shift-color($info, -90%) !default;
10
$collapse-list-item-hover-border: shift-color($info, -70%) !default;
1 efrain 11
 
12
$thin-scroll-bg-thumb: $gray-600 !default;
13
$thin-scroll-bg-hover: $gray-700 !default;
14
 
15
$font-size-xs: ($font-size-base * .75) !default;
16
 
17
#region-main {
18
    overflow-y: visible;
19
    background-color: $body-bg;
20
}
21
 
22
@include media-breakpoint-up(sm) {
23
    .context-header-settings-menu,
24
    .region-main-settings-menu {
25
        float: right;
26
        width: auto;
27
        max-width: 4em;
28
        height: 2em;
29
        display: block;
30
        margin-top: 4px;
31
    }
32
}
33
 
1441 ariadna 34
@include media-breakpoint-down(md) {
1 efrain 35
    .context-header-settings-menu,
36
    .region-main-settings-menu {
37
        display: flex;
38
        justify-content: flex-end;
39
    }
40
}
41
 
42
@mixin optional-animation($animation) {
43
    animation: $animation;
44
 
45
    @media (prefers-reduced-motion: reduce) {
46
        animation: none;
47
    }
48
 
49
    body.behat-site & {
50
        animation: none;
51
    }
52
}
53
 
54
.context-header-settings-menu .dropdown-toggle > .icon,
55
#region-main-settings-menu .dropdown-toggle > .icon {
56
    height: 24px;
57
    font-size: 24px;
58
    width: auto;
59
}
60
/** Prevent user notifications overlapping with region main settings menu */
61
#user-notifications {
62
    display: block;
63
    overflow: hidden;
64
}
65
 
66
/** Page layout CSS starts **/
67
.layout-option-noheader #page-header,
68
.layout-option-nonavbar #page-navbar,
69
.layout-option-nofooter #page-footer,
70
.layout-option-nocourseheader .course-content-header,
71
.layout-option-nocoursefooter .course-content-footer {
72
    display: none;
73
}
74
 
75
/** Page layout CSS ends **/
76
 
77
.mdl-left {
78
    text-align: left;
79
}
80
 
81
.mdl-right {
82
    text-align: right;
83
}
84
 
85
/*rtl:ignore*/
86
.text-ltr {
87
    direction: ltr !important; /* stylelint-disable-line declaration-no-important */
88
}
89
 
90
#add,
91
#remove,
92
.centerpara,
93
.mdl-align {
94
    text-align: center;
95
}
96
 
97
a.dimmed,
98
a.dimmed:link,
99
a.dimmed:visited,
100
a.dimmed_text,
101
a.dimmed_text:link,
102
a.dimmed_text:visited,
103
.dimmed_text,
104
.dimmed_text a,
105
.dimmed_text a:link,
106
.dimmed_text a:visited,
107
.usersuspended,
108
.usersuspended a,
109
.usersuspended a:link,
110
.usersuspended a:visited,
111
.dimmed_category,
112
.dimmed_category a {
113
    color: $text-muted;
114
}
115
 
116
// Accessible focus styling for links, add .aalink to links with custom css classes to get
117
// accessible focus styles.
118
.aalink,
119
#page-footer a:not([class]),
120
.arrow_link,
121
a:not([class]),
122
.activityinstance > a {
123
    &.focus,
124
    &:focus {
125
        outline: $btn-focus-width solid transparent;
126
        color: $gray-900;
127
        background-color: lighten($primary, 50%);
128
        box-shadow: 0 -#{$btn-focus-width} lighten($primary, 50%), 0 $btn-focus-width $gray-800;
129
    }
130
    &:focus:hover {
131
        text-decoration: none;
132
    }
133
}
134
 
135
// Accessible focus styling for buttons like elements that do not use the .btn class. Add
136
// .aabtn to you element if you need the same focus styles.
137
.aabtn,
138
.btn-link,
139
.nav-link,
140
.editor_atto_toolbar button,
141
.editor_atto_toolbar .atto_toolbar_row,
142
[role="button"],
143
.list-group-item-action,
144
input[type="checkbox"],
145
input[type="radio"],
146
input[type="file"],
147
input[type="image"],
1441 ariadna 148
.visually-hidden-focusable,
1 efrain 149
a.dropdown-toggle,
150
.moodle-dialogue-base .closebutton,
1441 ariadna 151
button.btn-close,
1 efrain 152
.form-autocomplete-selection,
153
[role="treeitem"]:not([aria-expanded="true"]) {
154
    &.focus,
155
    &:focus {
156
        outline: 0;
157
        box-shadow: $input-btn-focus-box-shadow;
158
    }
159
    &:focus:hover {
160
        text-decoration: none;
161
    }
162
}
163
 
164
// Modal dialogs border should be rounded too.
165
.modal-dialog[tabindex="0"] {
166
    &.focus,
167
    &:focus {
168
        outline: 0;
169
        .modal-content {
170
            outline: 0;
171
            box-shadow: $input-btn-focus-box-shadow;
172
 
173
            // Modal dialogs border should be rounded too.
174
            @include border-radius($modal-content-border-radius);
175
        }
176
    }
177
}
178
 
179
// We don't want to highlight the whole li when it's expanded. Only the first child is highlighted.
180
[role="treeitem"][aria-expanded="true"] {
181
    outline: 0;
182
    &.focus,
183
    &:focus {
184
        > *:first-child {
185
            outline: 0;
186
            box-shadow: $input-btn-focus-box-shadow;
187
        }
188
    }
189
    &:focus:hover {
190
        text-decoration: none;
191
    }
192
}
193
 
194
// Accessible focus styling for autocomplete elements.
195
.form-autocomplete-suggestions li[aria-selected=true] {
196
    outline: 0;
197
    box-shadow: $input-btn-focus-box-shadow;
198
}
199
 
200
// Safari does not allow custom styling of checkboxes.
201
.safari {
202
    input[type="checkbox"],
203
    input[type="radio"] {
204
        &.focus,
205
        &:focus {
206
            outline: auto;
207
        }
208
    }
209
}
210
 
211
.unlist,
212
.unlist li,
213
.inline-list,
214
.inline-list li,
215
.block .list,
216
.block .list li,
217
.section li.movehere,
218
.tabtree li {
219
    list-style: none;
220
    margin: 0;
221
    padding: 0;
222
}
223
 
224
.inline,
225
.inline-list li {
226
    display: inline;
227
}
228
 
229
.notifytiny {
230
    font-size: $font-size-xs;
231
}
232
 
233
.notifytiny li,
234
.notifytiny td {
235
    font-size: 100%;
236
}
237
 
238
.red,
239
.notifyproblem {
240
    color: map-get($theme-colors, 'warning');
241
}
242
 
243
.green,
244
.notifysuccess {
245
    color: map-get($theme-colors, 'success');
246
}
247
 
248
.highlight {
249
    color: map-get($theme-colors, 'info');
250
}
251
 
252
.bg-primary-light {
253
    background-color: $primary-light-background;
254
}
255
 
256
.fitem.advanced .text-info {
257
    font-weight: bold;
258
}
259
 
260
.reportlink {
261
    text-align: right;
262
}
263
 
264
a.autolink {
265
    @extend .aalink;
266
    &.glossary:hover {
267
        cursor: help;
268
    }
269
}
270
/* Block which is hidden if javascript enabled, prevents fickering visible when JS from footer used! */
271
.collapsibleregioncaption {
272
    white-space: nowrap;
273
    min-height: $line-height-base * $font-size-base;
274
}
275
 
276
.pagelayout-mydashboard.jsenabled .collapsibleregioncaption {
277
    cursor: pointer;
278
}
279
 
280
.pagelayout-mydashboard #region-main {
281
    border: 0;
282
    padding: 0;
283
    background-color: transparent;
284
    margin-top: -1px;
285
}
286
 
1441 ariadna 287
@include media-breakpoint-down(md) {
1 efrain 288
    .pagelayout-mydashboard,
289
    .pagelayout-login {
290
        #region-main-box {
291
            padding-left: 0;
292
            padding-right: 0;
293
        }
294
    }
295
}
296
 
297
.collapsibleregioncaption img {
298
    vertical-align: middle;
299
}
300
 
301
.jsenabled .hiddenifjs {
302
    display: none;
303
}
304
 
305
body:not(.jsenabled) .visibleifjs {
306
    display: none;
307
}
308
 
309
.jsenabled .collapsibleregion {
310
    overflow: hidden;
311
    box-sizing: content-box;
312
}
313
 
314
.jsenabled .collapsed .collapsibleregioninner {
315
    visibility: hidden;
316
}
317
 
318
.collapsible-actions {
319
    display: none;
320
    text-align: right;
321
}
322
 
323
.jsenabled .collapsible-actions {
324
    display: block;
325
}
326
 
327
.yui-overlay .yui-widget-bd {
328
    background-color: $yui-overlay-bg;
329
    border: 1px solid $yui-overlay-border-color;
330
    border-top-color: $yui-overlay-border-top-color;
331
    color: $yui-overlay-color;
332
    left: 0;
333
    padding: 2px 5px;
334
    position: relative;
335
    top: 0;
336
    z-index: 1;
337
}
338
 
339
.clearer {
340
    background: transparent;
341
    border-width: 0;
342
    clear: both;
343
    display: block;
344
    height: 1px;
345
    margin: 0;
346
    padding: 0;
347
}
348
 
349
.bold,
350
.warning,
351
.errorbox .title,
352
.pagingbar .title,
353
.pagingbar .thispage {
354
    font-weight: bold;
355
}
356
 
357
img.resize {
358
    height: 1em;
359
    width: 1em;
360
}
361
 
362
.block img.resize {
363
    height: 0.9em;
364
    width: 0.8em;
365
}
366
/* Icon styles */
367
img.activityicon {
368
    height: 32px;
369
    width: 32px;
370
    vertical-align: middle;
371
}
372
 
373
.headermain {
374
    font-weight: bold;
375
}
376
 
377
#maincontent {
378
    display: block;
379
    height: 1px;
380
    overflow: clip;
381
}
382
 
383
img.uihint {
384
    cursor: help;
385
}
386
 
387
#addmembersform table {
388
    margin-left: auto;
389
    margin-right: auto;
390
}
391
 
392
table.flexible .emptyrow {
393
    display: none;
394
}
395
 
396
form.popupform,
397
form.popupform div {
398
    display: inline;
399
}
400
 
401
.arrow_button input {
402
    overflow: hidden;
403
}
404
.no-overflow {
405
    overflow: auto;
406
}
407
 
408
// Accessibility features
409
 
410
// Accessibility: text 'seen' by screen readers but not visual users.
411
.accesshide {
1441 ariadna 412
    @include visually-hidden();
1 efrain 413
}
414
 
415
span.hide,
416
div.hide,
417
.hidden {
418
    display: none;
419
}
420
// Accessibility: Skip block link, for keyboard-only users.
421
a.skip-block,
422
a.skip {
423
    position: absolute;
424
    top: -1000em;
425
    font-size: 0.85em;
426
    text-decoration: none;
427
}
428
 
429
a.skip-block:focus,
430
a.skip-block:active,
431
a.skip:focus,
432
a.skip:active {
433
    position: static;
434
    display: block;
435
}
436
 
437
.skip-block-to {
438
    display: block;
439
    height: 1px;
440
    overflow: hidden;
441
}
442
// Blogs
443
.addbloglink {
444
    text-align: center;
445
}
446
 
447
.blog_entry .audience {
448
    text-align: right;
449
    padding-right: 4px;
450
}
451
 
452
.blog_entry .tags {
453
    margin-top: 15px;
454
}
455
 
456
.blog_entry .content {
457
    margin-left: 43px;
458
}
459
// Group
460
 
461
#doc-contents h1 {
462
    margin: 1em 0 0 0;
463
}
464
 
465
#doc-contents ul {
466
    margin: 0;
467
    padding: 0;
468
    width: 90%;
469
}
470
 
471
#doc-contents ul li {
472
    list-style-type: none;
473
}
474
 
475
.groupmanagementtable td {
476
    vertical-align: top;
477
}
478
 
479
.groupmanagementtable #existingcell,
480
.groupmanagementtable #potentialcell {
481
    width: 42%;
482
}
483
 
484
.groupmanagementtable #buttonscell {
485
    width: 16%;
486
}
487
 
488
.groupmanagementtable #buttonscell p.arrow_button input {
489
    width: auto;
490
    min-width: 80%;
491
    margin: 0 auto;
492
    display: block;
493
}
494
 
495
.groupmanagementtable #removeselect_wrapper,
496
.groupmanagementtable #addselect_wrapper {
497
    width: 100%;
498
}
499
 
500
.groupmanagementtable #removeselect_wrapper label,
501
.groupmanagementtable #addselect_wrapper label {
502
    font-weight: normal;
503
}
504
 
505
#group-usersummary {
506
    width: 14em;
507
}
508
 
509
.groupselector {
510
    margin-top: 3px;
511
    margin-bottom: 3px;
512
    display: inline-block;
513
}
514
 
515
.groupselector label {
516
    display: inline-block;
517
}
518
 
519
// Notes
520
.notepost {
521
    margin-bottom: 1em;
522
}
523
 
524
.notepost .userpicture {
525
    float: left;
526
    margin-right: 5px;
527
}
528
 
529
.notepost .content,
530
.notepost .footer {
531
    clear: both;
532
}
533
 
534
.notesgroup {
535
    margin-left: 20px;
536
}
537
 
538
// My Moodle
539
.path-my .coursebox {
540
    margin: $spacer 0;
541
    padding: 0;
542
 
543
    .overview {
544
        margin: 15px 30px 10px 30px;
545
    }
546
}
547
 
548
.path-my .coursebox .info {
549
    float: none;
550
    margin: 0;
551
}
552
 
553
// Modules
554
.mod_introbox {
555
    padding: 10px;
556
}
557
 
558
table.mod_index {
559
    width: 100%;
560
}
561
 
562
// Comments
563
.comment-ctrl {
564
    font-size: 12px;
565
    display: none;
566
    margin: 0;
567
    padding: 0;
568
}
569
 
570
.comment-ctrl h5 {
571
    margin: 0;
572
    padding: 5px;
573
}
574
 
575
.comment-area {
576
    max-width: 400px;
577
    padding: 5px;
578
}
579
 
580
.comment-area textarea {
581
    width: 100%;
582
    overflow: auto;
583
 
584
    &.fullwidth {
585
        -webkit-box-sizing: border-box;
586
        -moz-box-sizing: border-box;
587
        box-sizing: border-box;
588
    }
589
}
590
 
591
.comment-area .fd {
592
    text-align: right;
593
}
594
 
595
.comment-meta span {
596
    color: $comment-meta-color;
597
}
598
 
599
.comment-link img {
600
    vertical-align: text-bottom;
601
}
602
 
603
.comment-list {
604
    font-size: 11px;
605
    overflow: auto;
606
    list-style: none;
607
    padding: 0;
608
    margin: 0;
609
}
610
 
611
.comment-list li {
612
    margin: 2px;
613
    list-style: none;
614
    margin-bottom: 5px;
615
    clear: both;
616
    padding: .3em;
617
    position: relative;
618
}
619
 
620
.comment-list li.first {
621
    display: none;
622
}
623
 
624
.comment-paging {
625
    text-align: center;
626
}
627
 
628
.comment-paging .pageno {
629
    padding: 2px;
630
}
631
 
632
.comment-paging .curpage {
633
    border: 1px solid $comment-paging-current-border-color;
634
}
635
 
636
.comment-message .picture {
637
    float: left;
638
    margin-right: 0.25rem;
639
}
640
 
641
.comment-message .text {
642
    margin: 0;
643
    padding: 0;
644
}
645
 
646
.comment-message .text p {
647
    padding: 0;
648
    margin: 0 18px 0 0;
649
}
650
 
651
.comment-delete {
652
    position: absolute;
653
    top: 0;
654
    right: 0;
655
    margin: .3em;
656
}
657
 
658
.comment-report-selectall {
659
    display: none;
660
}
661
 
662
.comment-link {
663
    display: none;
664
}
665
 
666
.jsenabled .comment-link {
667
    display: block;
668
}
669
 
670
.jsenabled .showcommentsnonjs {
671
    display: none;
672
}
673
 
674
.jsenabled .comment-report-selectall {
675
    display: inline;
676
}
677
/**
678
* Completion progress report
679
*/
680
.completion-expired {
681
    color: map-get($theme-colors, 'warning');
682
}
683
 
684
.completion-expected {
685
    font-size: $font-size-xs;
686
}
687
 
688
.completion-sortchoice,
689
.completion-identifyfield {
690
    font-size: $font-size-xs;
691
    vertical-align: bottom;
692
}
693
 
694
.completion-progresscell {
695
    text-align: right;
696
}
697
 
698
.completion-expired .completion-expected {
699
    font-weight: bold;
700
}
701
 
702
/**
703
* Tags
704
*/
705
 
706
#tag-search-box {
707
    text-align: center;
708
    margin: 10px auto;
709
}
710
 
711
span.flagged-tag,
712
tr.flagged-tag,
713
span.flagged-tag a,
714
tr.flagged-tag a {
715
    color: map-get($theme-colors, 'warning');
716
}
717
 
718
.tag-management-table {
719
    td,
720
    th {
721
        vertical-align: middle;
722
        padding: 4px;
723
    }
724
    .inplaceeditable.inplaceeditingon input {
725
        width: 150px;
726
    }
727
}
728
 
729
.path-admin-tag .addstandardtags {
730
    float: right;
731
    img {
732
        margin: 0 5px;
733
    }
734
}
735
 
736
.path-tag {
737
    .tag-relatedtags {
738
        padding-top: 10px;
739
    }
740
    .tag-management-box {
741
        text-align: right;
742
    }
743
    .tag-index-toc {
744
        padding: 10px;
745
        text-align: center;
746
    }
747
    .tag-index-toc li {
748
        margin-left: 5px;
749
        margin-right: 5px;
750
    }
751
    .tag-management-box li {
752
        margin-left: 5px;
753
        margin-right: 5px;
754
        a {
755
            background-repeat: no-repeat;
756
            background-position: left;
757
            padding-left: 17px;
758
        }
759
        a.edittag {
760
            background-image: url([[pix:moodle|i/settings]]);
761
        }
762
        a.flagasinappropriate {
763
            background-image: url([[pix:moodle|i/flagged]]);
764
        }
765
        a.removefrommyinterests {
766
            background-image: url([[pix:moodle|t/delete]]);
767
        }
768
        a.addtomyinterests {
769
            background-image: url([[pix:moodle|t/add]]);
770
        }
771
    }
772
    .tag-backtoallitems {
773
        text-align: center;
774
    }
775
    .tag-index-items .tagarea {
776
        border: 1px solid $tags-tagarea-border-color;
777
        border-radius: 4px;
778
        padding: 10px;
779
        margin-top: 10px;
780
        h3 {
781
            display: block;
782
            padding: 3px 0 10px 0;
783
            margin: 0;
784
            font-size: 1.1em;
785
            font-weight: bold;
786
            line-height: 20px;
787
            color: $tags-tagarea-title-color;
788
            text-shadow: 0 1px 0 $tags-tagarea-title-text-shadow-color;
789
            text-transform: uppercase;
790
            word-wrap: break-word;
791
            border-bottom: solid 1px $tags-tagarea-title-border-color;
792
            margin-bottom: 10px;
793
        }
794
        .taggeditems {
795
            @include clearfix();
796
        }
797
        .controls {
798
            @include clearfix();
799
            text-align: center;
800
            &.controls-bottom {
801
                margin-top: 5px;
802
            }
803
            .gotopage.nextpage {
804
                float: right;
805
            }
806
            .gotopage.prevpage {
807
                float: left;
808
            }
809
            .exclusivemode {
810
                display: inline-block;
811
            }
812
            .gotopage.prevpage::before {
813
                padding-right: 5px;
814
                padding-left: 5px;
815
                content: "«";
816
            }
817
            .gotopage.nextpage::after {
818
                padding-right: 5px;
819
                padding-left: 5px;
820
                content: "»";
821
            }
822
        }
823
    }
824
}
825
 
826
.tag_feed {
827
    img {
828
        max-height: 35px;
829
        max-width: 35px;
830
    }
831
    .muted a {
832
        color: $text-muted;
833
    }
834
}
835
 
836
.tag_cloud {
837
    text-align: center;
838
    .inline-list li {
839
        padding: 0 0.2em;
840
    }
841
    .tag_overflow {
842
        margin-top: 1em;
843
        font-style: italic;
844
    }
845
    // Generate a series of .s# rule declarations based on the number of tag sizes.
846
    @for $i from 0 through 20 {
847
        .s#{$i} {
848
            font-size: (0.7 + ($i * 0.1)) * 1em;
849
        }
850
    }
851
}
852
 
853
.tag_list {
854
    ul {
855
        display: inline;
856
    }
857
    .tagmorelink {
858
        display: none;
859
    }
860
    &.hideoverlimit {
861
        .overlimit {
862
            display: none;
863
        }
864
        .tagmorelink {
865
            display: inline;
866
        }
867
        .taglesslink {
868
            display: none;
869
        }
870
    }
871
}
872
 
873
/**
874
* Web Service
875
*/
876
#webservice-doc-generator td {
877
    text-align: left;
878
    border: 0 solid $webservice-doc-td-border-color;
879
}
880
 
881
/**
882
* Enrol
883
*/
884
.userenrolment {
885
    width: 100%;
886
    border-collapse: collapse;
887
}
888
 
889
.userenrolment tr {
890
    vertical-align: top;
891
}
892
 
893
.userenrolment td {
894
    padding: 0;
895
    height: 41px;
896
}
897
 
898
.userenrolment .subfield {
899
    margin-right: 5px;
900
}
901
 
902
.userenrolment .col_userdetails .subfield {
903
    margin-left: 40px;
904
}
905
 
906
.userenrolment .col_userdetails .subfield_picture {
907
    float: left;
908
    margin-left: 0;
909
}
910
 
911
.userenrolment .col_lastseen {
912
    width: 150px;
913
}
914
 
915
.userenrolment .col_role {
916
    width: 262px;
917
}
918
 
919
.userenrolment .col_role .roles,
920
.userenrolment .col_group .groups {
921
    margin-right: 30px;
922
}
923
 
924
.userenrolment .col_role .role {
925
    float: left;
926
    padding: 0 3px 3px;
927
    margin: 0 3px 3px;
928
    white-space: nowrap;
929
}
930
 
931
.userenrolment .col_group .group {
932
    float: left;
933
    padding: 3px;
934
    margin: 3px;
935
    white-space: nowrap;
936
}
937
 
938
.userenrolment .col_role .role a,
939
.userenrolment .col_group .group a {
940
    margin-left: 3px;
941
    cursor: pointer;
942
}
943
 
944
.userenrolment .col_role .addrole,
945
.userenrolment .col_group .addgroup {
946
    float: right;
947
    padding: 3px;
948
    margin: 3px;
949
 
950
    > a:hover {
951
        border-bottom: 1px solid $userenrolment-link-hover-border-color;
952
    }
953
}
954
 
955
.userenrolment .col_role .addrole img,
956
.userenrolment .col_group .addgroup img {
957
    vertical-align: baseline;
958
}
959
 
960
.userenrolment .hasAllRoles .col_role .addrole {
961
    display: none;
962
}
963
 
964
.userenrolment .col_enrol .enrolment {
965
    float: left;
966
    padding: 0 3px 3px;
967
    margin: 0 3px 3px;
968
}
969
 
970
.userenrolment .col_enrol .enrolment a {
971
    float: right;
972
    margin-left: 3px;
973
}
974
 
975
#page-enrol-otherusers .userenrolment .col_role {
976
    .role {
977
        float: none;
978
        margin: 3px 3px 3px 0;
979
        padding: 3px 3px 3px 0;
980
    }
981
}
982
 
983
.corelightbox {
984
    background-color: $corelightbox-bg;
985
    position: absolute;
986
    top: 0;
987
    left: 0;
988
    width: 100%;
989
    height: 100%;
990
    text-align: center;
991
}
992
 
993
.corelightbox img {
994
    position: fixed;
995
    top: 50%;
996
    left: 50%;
997
}
998
 
999
/* Audio player size in 'block' mode (can only change width, height is hardcoded in JS) */
1000
.resourcecontent .mediaplugin_mp3 object {
1001
    height: 25px;
1002
    width: 600px;
1003
}
1004
 
1005
.resourcecontent audio.mediaplugin_html5audio {
1006
    width: 600px;
1007
}
1008
/** Large resource images should avoid hidden overflow **/
1009
.resourceimage {
1010
    max-width: 100%;
1011
}
1012
/* Audio player size in 'inline' mode (can only change width, as above) */
1013
.mediaplugin_mp3 object {
1014
    height: 15px;
1015
    width: 300px;
1016
}
1017
 
1018
audio.mediaplugin_html5audio {
1019
    width: 300px;
1020
}
1021
 
1022
.core_media_preview.pagelayout-embedded #maincontent {
1023
    height: 0;
1024
}
1025
 
1026
.path-rating .ratingtable {
1027
    width: 100%;
1028
    margin-bottom: 1em;
1029
}
1030
 
1031
.path-rating .ratingtable th.rating {
1032
    width: 100%;
1033
}
1034
 
1035
.path-rating .ratingtable td.rating,
1036
.path-rating .ratingtable td.time {
1037
    white-space: nowrap;
1038
    text-align: center;
1039
}
1040
 
1041
/* Moodle Dialogue Settings (moodle-core-dialogue)  */
1042
.moodle-dialogue-base .moodle-dialogue-lightbox {
1043
    background-color: $gray-700;
1044
}
1045
 
1046
// Prevent adding backdrops to popups in popups.
1047
.pagelayout-popup {
1048
    .moodle-dialogue-base {
1049
        .moodle-dialogue-lightbox {
1050
            background-color: transparent;
1051
        }
1052
        .moodle-dialogue {
1053
            box-shadow: $popover-box-shadow;
1054
        }
1055
    }
1056
}
1057
 
1058
.moodle-dialogue-base .hidden,
1059
.moodle-dialogue-base .moodle-dialogue-hidden {
1060
    display: none;
1061
}
1062
 
1063
.no-scrolling {
1064
    overflow: hidden;
1065
}
1066
 
1067
.moodle-dialogue-base .moodle-dialogue-fullscreen {
1068
    left: 0;
1069
    top: 0;
1070
    right: 0;
1071
    bottom: -50px;
1072
    position: fixed;
1073
}
1074
 
1075
.moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-content {
1076
    overflow: auto;
1077
}
1078
 
1079
.moodle-dialogue-base .moodle-dialogue-wrap {
1080
    background-color: $dialogue-base-bg;
1081
    border: 1px solid $dialogue-base-border-color;
1082
}
1083
 
1084
// Show is a bootstrap 2 class - but we use it for modals. We don't want to enable it everywhere because they removed
1085
// it for a reason (conflicts with jquery .show()).
1086
.modal.show {
1087
    display: block;
1088
}
1089
 
1090
.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd {
1091
    display: flex;
1092
    padding: 1rem 1rem;
1093
    border-bottom: 1px solid $dialogue-base-hd-border-color;
1094
}
1095
 
1096
.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd.yui3-widget-hd {
1097
    // Undo some YUI damage.
1098
    min-height: 3rem;
1099
    color: initial;
1100
    background: initial;
1101
    font-size: 1.5rem;
1102
    line-height: 1.5;
1103
}
1104
 
1105
.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd h5 {
1106
    font-size: 1.5rem;
1107
    font-weight: $font-weight-base;
1108
    margin-bottom: 0;
1109
    line-height: 1.5;
1110
}
1111
 
1112
.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd .yui3-widget-buttons {
1113
    /*rtl:raw:
1114
        left: 0;
1115
        right: auto;
1116
    */
1117
    padding: 0;
1118
    position: relative;
1119
    margin-left: auto;
1120
}
1121
 
1122
.moodle-dialogue-base .closebutton {
1123
    padding: $modal-header-padding;
1124
    margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;
1125
    position: relative;
1126
    background-color: transparent;
1127
    border: 0;
1128
    background-image: none;
1129
    box-shadow: none;
1130
    opacity: 0.7;
1131
    &:hover,
1132
    &:active {
1133
        opacity: 1;
1134
    }
1135
    &::after {
1136
        content: "×";
1137
    }
1138
}
1139
 
1140
.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-bd {
1141
    padding: 0.5rem;
1142
    body {
1143
        background-color: $body-bg;
1144
    }
1145
}
1146
 
1147
.moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-content {
1148
    overflow: auto;
1149
    position: absolute;
1150
    top: 0;
1151
    bottom: 50px;
1152
    left: 0;
1153
    right: 0;
1154
    margin: 0;
1155
    border: 0;
1156
}
1157
 
1158
.moodle-dialogue-exception .moodle-exception-param label {
1159
    font-weight: bold;
1160
}
1161
 
1162
.moodle-dialogue-exception .param-stacktrace label {
1163
    background-color: $dialogue-exception-label-bg;
1164
    border: 1px solid $dialogue-exception-label-border-color;
1165
    border-bottom-width: 0;
1166
}
1167
 
1168
.moodle-dialogue-exception .param-stacktrace pre {
1169
    border: 1px solid $dialogue-exception-pre-border-color;
1170
    background-color: $dialogue-exception-pre-bg;
1171
}
1172
 
1173
.moodle-dialogue-exception .param-stacktrace .stacktrace-file {
1174
    color: $dialogue-exception-file-color;
1175
    font-size: $font-size-sm;
1176
}
1177
 
1178
.moodle-dialogue-exception .param-stacktrace .stacktrace-line {
1179
    color: map-get($theme-colors, 'warning');
1180
    font-size: $font-size-sm;
1181
}
1182
 
1183
.moodle-dialogue-exception .param-stacktrace .stacktrace-call {
1184
    color: $dialogue-exception-call-color;
1185
    font-size: 90%;
1186
    border-bottom: 1px solid $dialogue-exception-call-border-color;
1187
}
1188
 
1189
.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-content .moodle-dialogue-ft:empty {
1190
    display: none;
1191
}
1192
 
1193
.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-content .moodle-dialogue-ft.yui3-widget-ft {
1194
    // Undo some YUI damage.
1195
    background: initial;
1196
}
1197
 
1198
.moodle-dialogue-confirm .confirmation-message {
1199
    margin: 0.5rem 0;
1200
}
1201
 
1202
.moodle-dialogue-confirm .confirmation-dialogue input {
1203
    min-width: 80px;
1204
}
1205
 
1206
.moodle-dialogue-exception .moodle-exception-message {
1207
    margin: 1em;
1208
}
1209
 
1210
.moodle-dialogue-exception .moodle-exception-param {
1211
    margin-bottom: 0.5em;
1212
}
1213
 
1214
.moodle-dialogue-exception .moodle-exception-param label {
1215
    width: 150px;
1216
}
1217
 
1218
.moodle-dialogue-exception .param-stacktrace label {
1219
    display: block;
1220
    margin: 0;
1221
    padding: 4px 1em;
1222
}
1223
 
1224
.moodle-dialogue-exception .param-stacktrace pre {
1225
    display: block;
1226
    height: 200px;
1227
    overflow: auto;
1228
}
1229
 
1230
.moodle-dialogue-exception .param-stacktrace .stacktrace-file {
1231
    display: inline-block;
1232
    margin: 4px 0;
1233
}
1234
 
1235
.moodle-dialogue-exception .param-stacktrace .stacktrace-line {
1236
    display: inline-block;
1237
    width: 50px;
1238
    margin: 4px 1em;
1239
}
1240
 
1241
.moodle-dialogue-exception .param-stacktrace .stacktrace-call {
1242
    padding-left: 25px;
1243
    margin-bottom: 4px;
1244
    padding-bottom: 4px;
1245
}
1246
 
1247
.moodle-dialogue .moodle-dialogue-bd .content-lightbox {
1248
    opacity: 0.75;
1249
    width: 100%;
1250
    height: 100%;
1251
    top: 0;
1252
    left: 0;
1253
    background-color: $dialogue-lightbox-bg;
1254
    text-align: center;
1255
    padding: 10% 0;
1256
}
1257
/* Apply a default max-height on tooltip text */
1258
.moodle-dialogue .tooltiptext {
1259
    max-height: 300px;
1260
}
1261
 
1262
.moodle-dialogue-base .moodle-dialogue.moodle-dialogue-tooltip {
1263
    z-index: 3001;
1264
 
1265
    .moodle-dialogue-bd {
1266
        overflow: auto;
1267
    }
1268
}
1269
 
1270
/**
1271
 * Chooser Dialogues (moodle-core-chooserdialogue)
1272
 *
1273
 * This CSS belong to the chooser dialogue which should work both with, and
1274
 * without javascript enabled
1275
 */
1276
/* Hide the dialog and it's title */
1277
.chooserdialoguebody,
1278
.choosertitle {
1279
    display: none;
1280
}
1281
 
1282
.moodle-dialogue.chooserdialogue .moodle-dialogue-content .moodle-dialogue-ft {
1283
    margin: 0;
1284
}
1285
 
1286
.chooserdialogue .moodle-dialogue-wrap .moodle-dialogue-bd {
1287
    padding: 0;
1288
    background: $chooserdialogue-bg;
1289
 
1290
    @include border-bottom-radius(10px);
1291
}
1292
/* Center the submit buttons within the area */
1293
.choosercontainer #chooseform .submitbuttons {
1294
    padding: 0.7em 0;
1295
    text-align: right;
1296
}
1297
/* Fixed for safari browser on iPhone4S with ios7@mixin */
1298
 
1299
@media (max-height: 639px) {
1300
    .ios .choosercontainer #chooseform .submitbuttons {
1301
        padding: 45px 0;
1302
    }
1303
}
1304
 
1305
.choosercontainer #chooseform .submitbuttons input {
1306
    min-width: 100px;
1307
    margin: 0 0.5em;
1308
}
1309
/* Various settings for the options area */
1310
.choosercontainer #chooseform .options {
1311
    position: relative;
1312
    border-bottom: 1px solid $chooserdialogue-options-border-color;
1313
}
1314
/* Only set these options if we're showing the js container */
1315
.jschooser .choosercontainer #chooseform .alloptions {
1316
    overflow-x: hidden;
1317
    overflow-y: auto;
1318
    max-width: 240px;
1319
 
1320
    .option {
1321
        input[type=radio] {
1322
            display: inline-block;
1323
        }
1324
 
1325
        .typename {
1326
            display: inline-block;
1327
            width: 55%;
1328
        }
1329
    }
1330
}
1331
/* Settings for option rows and option subtypes */
1332
.choosercontainer #chooseform .moduletypetitle,
1333
.choosercontainer #chooseform .option,
1334
.choosercontainer #chooseform .nonoption {
1335
    margin-bottom: 0;
1336
    padding: 0 1.6em 0 1.6em;
1337
}
1338
 
1339
.choosercontainer #chooseform .moduletypetitle {
1340
    text-transform: uppercase;
1341
    padding-top: 1.2em;
1342
    padding-bottom: 0.4em;
1343
    margin-bottom: 0.5rem;
1344
    font-size: 100%;
1345
}
1346
 
1347
.choosercontainer #chooseform .option .typename,
1348
.choosercontainer #chooseform .nonoption .typename {
1349
    padding: 0 0 0 0.5em;
1350
}
1351
 
1352
.choosercontainer #chooseform .modicon + .typename {
1353
    padding-left: 0;
1354
}
1355
 
1356
.choosercontainer #chooseform .option input[type=radio],
1357
.choosercontainer #chooseform .option span.typename {
1358
    vertical-align: middle;
1359
}
1360
 
1361
.choosercontainer #chooseform .option label {
1362
    display: block;
1363
    margin: 0;
1364
    padding: ($spacer * 0.5) 0;
1365
    border-bottom: 1px solid $choosercontainer-label-border-color;
1366
}
1367
 
1368
.choosercontainer #chooseform .option .icon {
1369
    margin: 0;
1370
    padding: 0 $spacer;
1371
}
1372
 
1373
.choosercontainer #chooseform .nonoption {
1374
    padding-left: 2.7em;
1375
    padding-top: 0.3em;
1376
    padding-bottom: 0.1em;
1377
}
1378
 
1379
.choosercontainer #chooseform .subtype {
1380
    margin-bottom: 0;
1381
    padding: 0 1.6em 0 3.2em;
1382
}
1383
 
1384
.choosercontainer #chooseform .subtype .typename {
1385
    margin: 0 0 0 0.2em;
1386
}
1387
/* The instruction/help area */
1388
.jschooser .choosercontainer #chooseform .instruction,
1389
.jschooser .choosercontainer #chooseform .typesummary {
1390
    display: none;
1391
    position: absolute;
1392
    top: 0;
1393
    right: 0;
1394
    bottom: 0;
1395
    left: 240px;
1396
    margin: 0;
1397
    padding: 1.6em;
1398
    background-color: $choosercontainer-instruction-bg;
1399
    overflow-x: hidden;
1400
    overflow-y: auto;
1401
    line-height: 2em;
1402
}
1403
/* Selected option settings */
1404
.jschooser .choosercontainer #chooseform .instruction,
1405
.choosercontainer #chooseform .selected .typesummary {
1406
    display: block;
1407
}
1408
 
1409
.choosercontainer #chooseform .selected {
1410
    background-color: $choosercontainer-chooseform-selected-bg;
1411
    margin-top: -1px;
1412
    padding-top: 1px;
1413
}
1414
 
1415
 
1441 ariadna 1416
@include media-breakpoint-down(sm) {
1 efrain 1417
    .jsenabled .choosercontainer #chooseform .alloptions {
1418
        max-width: 100%;
1419
    }
1420
 
1421
    .jsenabled .choosercontainer #chooseform .instruction,
1422
    .jsenabled .choosercontainer #chooseform .typesummary {
1423
        position: static;
1424
    }
1425
}
1426
 
1427
/**
1428
 * Module chooser dialogue (moodle-core-chooserdialogue)
1429
 *
1430
 * This CSS belong to the chooser dialogue which should work both with, and
1431
 * without javascript enabled
1432
 */
1433
.modchooser .modal-body {
1434
    padding: 0;
1435
    overflow-y: auto;
1436
    min-height: 640px;
1437
    display: flex;
1438
    flex-direction: column;
1439
 
1440
    .searchresultitemscontainer-wrapper {
1441
        min-height: 495px;
1442
    }
1443
 
1444
    .carousel-item.active {
1445
        display: flex;
1446
    }
1447
    .chooser-container {
1448
        display: flex;
1449
        flex-direction: column;
1450
        flex: 1 1 auto;
1451
    }
1452
 
1453
    .loading-icon {
1454
        opacity: 1;
1455
        .icon {
1456
            display: block;
1457
            font-size: 3em;
1458
            max-height: 3em;
1459
            max-width: 3em;
1460
        }
1461
    }
1462
    .carousel-item .loading-icon .icon {
1463
        margin: 1em auto;
1464
    }
1465
    .searchbar {
1466
        width: 100%;
1467
    }
1468
}
1469
 
1470
.modchooser .modal-footer {
1471
    height: 70px;
1472
    background: $modal-content-bg;
1473
    .moodlenet-logo {
1474
        .icon {
1475
            height: 2.5rem;
1476
            width: 6rem;
1477
            max-height: 2.5rem;
1478
            max-width: 6rem;
1479
            margin-bottom: .6rem;
1480
        }
1481
    }
1482
}
1483
 
1484
.modchoosercontainer.noscroll {
1485
    overflow-y: hidden;
1486
}
1487
 
1488
.modchoosercontainer .optionscontainer,
1489
.modchoosercontainer .searchresultitemscontainer {
1490
    overflow-x: hidden;
1491
    .option {
1492
        // 2 items per line.
1493
        flex-basis: calc(50% - 0.5rem);
1494
        .optionactions {
1495
            .optionaction {
1496
                cursor: pointer;
1497
                color: $gray-600;
1498
                i {
1499
                    margin: 0;
1500
                }
1501
            }
1502
        }
1503
        .optioninfo {
1504
            a {
1505
                color: $gray-700;
1506
                &:hover {
1507
                    text-decoration: none;
1508
                }
1509
            }
1510
        }
1511
    }
1512
}
1513
 
1514
.modchooser .modal-body .optionsummary {
1515
    background-color: $white;
1516
    overflow-x: hidden;
1517
    overflow-y: auto;
1518
    height: 640px;
1519
 
1520
    .content {
1521
        overflow-y: auto;
1522
        .heading {
1523
            .icon {
1524
                height: 32px;
1525
                width: 32px;
1526
                font-size: 32px;
1527
                padding: 0;
1528
            }
1529
        }
1530
    }
1531
 
1532
    .actions {
1533
        border-top: 1px solid $gray-300;
1534
        background: $white;
1535
    }
1536
}
1537
 
1441 ariadna 1538
@include media-breakpoint-down(sm) {
1 efrain 1539
    .path-course-view .modal-dialog.modal-lg,
1540
    .path-course-view .modal-content,
1541
    .modchooser .modal-body,
1542
    .modchooser .modal-body .carousel,
1543
    .modchooser .modal-body .carousel-inner,
1544
    .modchooser .modal-body .carousel-item,
1545
    .modchooser .modal-body .optionsummary,
1546
    .modchoosercontainer,
1547
    .optionscontainer,
1548
    .searchresultitemscontainer {
1549
        min-height: auto;
1550
        height: 100%;
1551
        overflow-y: auto;
1552
    }
1553
    .path-course-view .modal-dialog.modal-lg {
1554
        margin: 0;
1555
    }
1556
    .modchooser .modal-body .searchresultitemscontainer-wrapper {
1557
        min-height: auto;
1558
    }
1559
}
1560
 
1561
@include media-breakpoint-up(sm) {
1562
    .modchoosercontainer .optionscontainer .option,
1563
    .modchoosercontainer .searchresultitemscontainer .option {
1564
        // Three items per line.
1565
        flex-basis: calc(33.33% - 0.5rem);
1566
    }
1567
}
1568
 
1569
@include media-breakpoint-up(lg) {
1570
    .modchoosercontainer .optionscontainer .option,
1571
    .modchoosercontainer .searchresultitemscontainer .option {
1572
        // Six items per line.
1573
        flex-basis: calc(16.66% - 0.5rem);
1574
    }
1575
}
1576
 
1577
/* Form element: listing */
1578
.formlistingradio {
1579
    padding-bottom: 25px;
1580
    padding-right: 10px;
1581
}
1582
 
1583
.formlistinginputradio {
1584
    float: left;
1585
}
1586
 
1587
.formlistingmain {
1588
    min-height: 225px;
1589
}
1590
 
1591
.formlisting {
1592
    position: relative;
1593
    margin: 15px 0;
1594
    padding: 1px 19px 14px;
1595
    background-color: $formlisting-bg;
1596
    border: 1px solid $formlisting-border-color;
1597
 
1598
    @include border-radius(4px);
1599
}
1600
 
1601
.formlistingmore {
1602
    position: absolute;
1603
    cursor: pointer;
1604
    bottom: -1px;
1605
    right: -1px;
1606
    padding: 3px 7px;
1607
    font-size: 12px;
1608
    font-weight: bold;
1609
    background-color: $formlistingmore-bg;
1610
    border: 1px solid $formlistingmore-border-color;
1611
    color: $formlistingmore-color;
1612
 
1613
    @include border-radius(4px 0 4px 0);
1614
}
1615
 
1616
.formlistingall {
1617
    margin: 15px 0;
1618
    padding: 0;
1619
 
1620
    @include border-radius(4px);
1621
}
1622
 
1623
.formlistingrow {
1624
    cursor: pointer;
1625
    border-bottom: 1px solid;
1626
    border-color: $formlistingrow-border-color;
1627
    border-left: 1px solid $formlistingrow-border-color;
1628
    border-right: 1px solid $formlistingrow-border-color;
1629
    background-color: $formlistingrow-bg;
1630
 
1631
    @include border-radius(0 0 4px 4px);
1632
    padding: 6px;
1633
    top: 50%;
1634
    left: 50%;
1635
    min-height: 34px;
1636
    float: left;
1637
    width: 150px;
1638
}
1639
 
1640
body.jsenabled .formlistingradio {
1641
    display: none;
1642
}
1643
 
1644
body.jsenabled .formlisting {
1645
    display: block;
1646
}
1647
 
1648
a.criteria-action {
1649
    padding: 0 3px;
1650
    float: right;
1651
}
1652
 
1653
div.criteria-description {
1654
    padding: 10px 15px;
1655
    margin: 5px 0;
1656
    background: none repeat scroll 0 0 $criteria-desc-bg;
1657
    border: 1px solid $criteria-desc-border-color;
1658
}
1659
 
1660
ul.badges {
1661
    margin: 0;
1662
    list-style: none;
1663
}
1664
 
1665
.badges li {
1666
    position: relative;
1667
    display: inline-block;
1668
    padding-top: 1em;
1669
    text-align: center;
1670
    vertical-align: top;
1671
    width: 150px;
1672
}
1673
 
1674
.badges li .badge-name {
1675
    display: block;
1676
    padding: 5px;
1677
}
1678
 
1679
.badges li > img {
1680
    position: absolute;
1681
}
1682
 
1683
.badges li .badge-image {
1684
    width: 100px;
1685
    height: 100px;
1686
    left: 10px;
1687
    top: 0;
1688
    z-index: 1;
1689
}
1690
 
1691
.badges li .badge-actions {
1692
    position: relative;
1693
}
1694
 
1695
.badges li .expireimage {
1696
    background-image: url([[pix:i/expired]]);
1697
    background-repeat: no-repeat;
1698
    background-size: 100px 100px;
1699
    width: 100px;
1700
    height: 100px;
1701
    left: 25px;
1702
    top: 15px;
1703
    position: absolute;
1704
    z-index: 10;
1705
    opacity: 0.85;
1706
}
1707
 
1708
#badge-image {
1709
    background-color: transparent;
1710
    padding: 0;
1711
    position: relative;
1712
    min-width: 100px;
1713
    width: 20%;
1714
    display: inline-block;
1715
    vertical-align: top;
1716
    margin-top: 17px;
1717
    margin-bottom: 20px;
1718
 
1719
    .expireimage {
1720
        background-image: url([[pix:i/expired]]);
1721
        background-repeat: no-repeat;
1722
        background-size: 100px 100px;
1723
        width: 100px;
1724
        height: 100px;
1725
        left: 0;
1726
        top: 0;
1727
        opacity: 0.85;
1728
        position: absolute;
1729
        z-index: 10;
1730
    }
1731
 
1732
    .singlebutton {
1733
        padding-top: 5px;
1734
        display: block;
1735
 
1736
        button {
1737
            margin-left: 4px;
1738
        }
1739
    }
1740
}
1741
 
1742
#badge-details {
1743
    display: inline-block;
1744
    width: 79%;
1745
}
1746
 
1747
#badge-overview dl,
1748
#badge-details dl {
1749
    margin: 0;
1750
 
1751
    dt,
1752
    dd {
1753
        vertical-align: top;
1754
        padding: 3px 0;
1755
    }
1756
 
1757
    dt {
1758
        clear: both;
1759
        display: inline-block;
1760
        width: 20%;
1761
        min-width: 100px;
1762
    }
1763
 
1764
    dd {
1765
        display: inline-block;
1766
        width: 79%;
1767
        margin-left: 1%;
1768
    }
1769
}
1770
 
1771
#badge-criteria li li {
1772
    list-style-type: none;
1773
}
1774
 
1775
#badge-image-col {
1776
    flex: 0 0 400px;
1777
}
1778
 
1779
.badge-profile {
1780
    vertical-align: top;
1781
}
1782
 
1783
.connected {
1784
    color: map-get($theme-colors, 'success');
1785
}
1786
 
1787
.notconnected {
1788
    color: map-get($theme-colors, 'danger');
1789
}
1790
 
1791
.connecting {
1792
    color: map-get($theme-colors, 'warning');
1793
}
1794
 
1441 ariadna 1795
#page-badges-index #page {
1796
    .badges-heading {
1797
        display: flex;
1798
        justify-content: space-between;
1799
        align-items: center;
1800
    }
1801
 
1802
    h2 {
1803
        margin: 0; /* Removes default margins */
1804
    }
1805
 
1806
    #action_bar {
1807
        margin: 0; /* Removes any default margin that might affect alignment */
1808
    }
1809
 
1810
    .tertiary-navigation.container-fluid {
1811
        width: auto;
1812
        height: 50px;
1813
        padding-top: 0;
1814
    }
1815
}
1816
 
1 efrain 1817
#page-badges-award .recipienttable tr td {
1818
    vertical-align: top;
1819
}
1820
 
1821
#page-badges-award .recipienttable tr td.actions .actionbutton {
1822
    margin: 0.3em 0;
1823
    padding: 0.5em 0;
1824
    width: 100%;
1825
}
1826
 
1827
#page-badges-award .recipienttable tr td.existing,
1828
#page-badges-award .recipienttable tr td.potential {
1829
    width: 42%;
1830
}
1831
 
1832
#issued-badge-table .activatebadge {
1833
    display: inline-block;
1834
}
1835
 
1836
.statusbox.active {
1837
    background-color: $state-success-bg;
1838
}
1839
 
1840
.statusbox.inactive {
1841
    background-color: $state-warning-bg;
1842
}
1843
 
1844
.statusbox {
1845
    text-align: center;
1846
    margin-bottom: 5px;
1847
    padding: 5px;
1848
}
1849
 
1850
.statusbox .activatebadge {
1851
    display: inline-block;
1852
}
1853
 
1854
.statusbox .activatebadge input[type=submit] {
1855
    margin: 3px;
1856
}
1857
 
1858
.activatebadge {
1859
    margin: 0;
1860
    text-align: left;
1861
    vertical-align: middle;
1862
}
1863
 
1864
img#persona_signin {
1865
    cursor: pointer;
1866
}
1867
 
1868
.addcourse {
1869
    float: right;
1870
}
1871
 
1872
.invisiblefieldset {
1873
    display: inline;
1874
    padding: 0;
1875
    border-width: 0;
1876
}
1877
 
1878
/** Page header */
1879
#page-header {
1880
    h1.h2 {
1881
        font-weight: bold;
1882
    }
1883
    .logo {
1884
        margin: $spacer 0;
1885
        img {
1886
            max-height: 75px;
1887
        }
1888
    }
1889
}
1890
 
1891
/** Navbar logo. */
1892
nav.navbar .logo img {
1893
    max-height: 35px;
1894
}
1895
 
1896
.nav.usernav {
1897
    .nav-item {
1898
        display: flex;
1899
    }
1900
    .usermenu .dropdown-toggle {
1901
        padding: 0 0.5rem;
1902
    }
1903
}
1904
 
1905
/** Header-bar styles **/
1906
.page-context-header {
1907
    // We need to be explicit about the height of the header.
1908
    $pageHeaderHeight: 140px;
1909
 
1910
    // Do not remove these rules.
1911
    overflow: hidden;
1912
    padding: 0.25rem 0;
1913
 
1914
    .page-header-image {
1915
        & > a {
1916
            display: inline-block;
1917
        }
1918
        .userinitials,
1919
        .userpicture {
1920
            margin-right: map-get($spacers, 3);
1921
        }
1922
    }
1923
}
1924
 
1925
ul.dragdrop-keyboard-drag li {
1926
    list-style-type: none;
1927
}
1928
 
1929
a.disabled:hover,
1930
a.disabled {
1931
    text-decoration: none;
1932
    cursor: default;
1933
    font-style: italic;
1934
    color: $text-muted;
1935
}
1936
 
11 efrain 1937
a.btn.disabled {
1938
    opacity: 1;
1939
}
1940
 
1 efrain 1941
body.lockscroll {
1942
    height: 100%;
1943
    overflow: hidden;
1944
}
1945
 
1946
.progressbar_container {
1947
    max-width: 500px;
1948
    margin: 0 auto;
1949
}
1950
 
1951
/* IE10 only fix for calendar titling */
1952
.ie10 .yui3-calendar-header-label {
1953
    display: inline-block;
1954
}
1955
 
1956
dd:before,
1957
dd:after {
1958
    display: block;
1959
    content: " ";
1960
}
1961
 
1962
dd:after {
1963
    clear: both;
1964
}
1965
 
1966
// Active tabs with links should have a different
1967
// cursor to indicate they are clickable.
1968
.nav-tabs > .active > a[href],
1969
.nav-tabs > .active > a[href]:hover,
1970
.nav-tabs > .active > a[href]:focus {
1971
    cursor: pointer;
1972
}
1973
 
1974
.inplaceeditable {
1975
    &.inplaceeditingon {
1976
        position: relative;
1977
 
1978
        .editinstructions {
1979
            margin-top: -30px;
1980
            font-weight: normal;
1981
            margin-right: 0;
1982
            margin-left: 0;
1983
            left: 0;
1984
            right: auto;
1985
            white-space: nowrap;
1441 ariadna 1986
            position: absolute;
1987
            top: 0;
1988
            font-size: $font-size-sm;
1989
            padding: .1em .4em;
1990
            text-decoration: none;
1991
            z-index: 9999;
1992
            border: $alert-border-width solid transparent;
1993
            width: fit-content;
1994
            color: shift-color($info, $alert-color-scale);
1995
            border-color: shift-color($info, $alert-border-scale);
1996
            @include gradient-bg(shift-color($info, $alert-bg-scale));
1 efrain 1997
        }
1998
        @include media-breakpoint-up(sm) {
1999
            input {
2000
                width: 330px;
2001
                vertical-align: text-bottom;
2002
                margin-bottom: 0;
2003
                &[role="combobox"] {
2004
                    width: auto;
2005
                }
2006
            }
2007
        }
2008
 
2009
        select {
2010
            margin-bottom: 0;
2011
        }
2012
    }
2013
 
2014
    .quickediticon img {
2015
        opacity: 0.2;
2016
    }
2017
 
2018
    .quickeditlink {
2019
        color: inherit;
2020
        text-decoration: inherit;
2021
    }
2022
 
2023
    &:hover .quickeditlink .quickediticon img,
2024
    .quickeditlink:focus .quickediticon img {
2025
        opacity: 1;
2026
    }
2027
 
2028
    &.inplaceeditable-toggle .quickediticon {
2029
        display: none;
2030
    }
2031
 
2032
    &.inplaceeditable-autocomplete {
2033
        display: block;
2034
    }
2035
}
2036
 
2037
/** Chart area. */
2038
.chart-area {
2039
    @include media-breakpoint-up(lg) {
2040
        .chart-image {
2041
            position: relative;
2042
            margin: auto;
2043
            height: 48vh;
2044
            width: 46vw;
2045
        }
2046
    }
2047
 
2048
    .chart-table-data {
2049
        display: none;
2050
    }
2051
 
2052
    .chart-table {
2053
        .chart-output-htmltable caption {
2054
            white-space: nowrap;
2055
        }
2056
        /** When accessible, we display the table only. */
2057
        &.accesshide {
2058
            .chart-table-expand {
2059
                display: none;
2060
            }
2061
            .chart-table-data {
2062
                display: block;
2063
            }
2064
        }
2065
    }
2066
}
2067
 
2068
/* YUI 2 Tree View */
2069
/*rtl:raw:
2070
.ygtvtn,
2071
.ygtvtm,
2072
.ygtvtmh,
2073
.ygtvtmhh,
2074
.ygtvtp,
2075
.ygtvtph,
2076
.ygtvtphh,
2077
.ygtvln,
2078
.ygtvlm,
2079
.ygtvlmh,
2080
.ygtvlmhh,
2081
.ygtvlp,
2082
.ygtvlph,
2083
.ygtvlphh,
2084
.ygtvdepthcell,
2085
.ygtvok,
2086
.ygtvok:hover,
2087
.ygtvcancel,
2088
.ygtvcancel:hover {
2089
    background-image: url([[pix:theme|yui2-treeview-sprite-rtl]]);
2090
}
2091
*/
2092
 
2093
.hover-tooltip-container {
2094
    position: relative;
2095
 
2096
    .hover-tooltip {
2097
        opacity: 0;
2098
        visibility: hidden;
2099
        position: absolute;
2100
        /*rtl:ignore*/
2101
        left: 50%;
2102
        top: calc(-50% - 5px);
2103
        transform: translate(-50%, -50%);
2104
        background-color: $hover-tooltip-bg;
2105
        border: 1px solid $hover-tooltip-border-color;
2106
        border-radius: .3rem;
2107
        box-sizing: border-box;
2108
        padding: 5px;
2109
        white-space: nowrap;
2110
        transition: opacity 0.15s, visibility 0.15s;
2111
        z-index: 1000;
2112
 
2113
        &:before {
2114
            content: '';
2115
            display: inline-block;
2116
            border-left: 8px solid transparent;
2117
            border-right: 8px solid transparent;
2118
            border-top: 8px solid $hover-tooltip-border-color;
2119
            position: absolute;
2120
            bottom: -8px;
2121
            left: calc(50% - 8px);
2122
        }
2123
 
2124
        &:after {
2125
            content: '';
2126
            display: inline-block;
2127
            border-left: 7px solid transparent;
2128
            border-right: 7px solid transparent;
2129
            border-top: 7px solid $hover-tooltip-border-top-color;
2130
            position: absolute;
2131
            bottom: -6px;
2132
            left: calc(50% - 7px);
2133
            z-index: 2;
2134
        }
2135
    }
2136
 
2137
    &:hover {
2138
        .hover-tooltip {
2139
            opacity: 1;
2140
            visibility: visible;
2141
            transition: opacity 0.15s 0.5s, visibility 0.15s 0.5s;
2142
        }
2143
    }
2144
}
2145
 
2146
#region-flat-nav {
2147
    padding-right: 0;
2148
    padding-left: 0;
2149
    .nav {
2150
        margin-right: $grid-gutter-width * 0.5;
2151
        background-color: $card-bg;
2152
    }
1441 ariadna 2153
    @include media-breakpoint-down(md) {
1 efrain 2154
        .nav {
2155
            margin-top: $grid-gutter-width;
2156
            margin-right: 0;
2157
        }
2158
    }
2159
}
2160
 
2161
// Footer link colour was added to allow the colour of footer links to be changed,
2162
// but really in bootstrap we want the colour of links on .bg-inverse to be changed
2163
// rather than being specific to the footer. This is kept for backwards compatibility.
2164
$footer-link-color: $bg-inverse-link-color !default;
2165
 
2166
.footer-dark {
2167
    a {
2168
        color: $footer-link-color;
2169
        text-decoration: underline;
2170
        padding-top: map-get($spacers, 1);
2171
        padding-bottom: map-get($spacers, 1);
2172
 
2173
        .icon {
2174
            color: $footer-link-color;
2175
        }
2176
 
2177
        &:focus .icon {
2178
            color: $body-color;
2179
        }
2180
    }
2181
}
2182
 
1441 ariadna 2183
.footer-popover {
2184
    .btn-footer-popover {
2185
        display: none;
2186
        position: fixed;
2187
        bottom: 2rem;
2188
        right: 2rem;
2189
        @include box-shadow($popover-box-shadow);
2190
    }
1 efrain 2191
}
2192
 
2193
.btn-footer-communication {
2194
    display: none;
2195
    position: fixed;
2196
    bottom: 5rem;
2197
    right: 2rem;
2198
    @include box-shadow($popover-box-shadow);
2199
}
2200
 
2201
.hasstickyfooter .btn-footer-popover {
2202
    bottom: calc(1rem + #{$stickyfooter-height});
2203
}
2204
 
2205
.hasstickyfooter .btn-footer-communication {
2206
    bottom: calc(4rem + #{$stickyfooter-height});
2207
}
2208
 
1441 ariadna 2209
.hasstickyfooter .maintenancewarning {
2210
    bottom: #{$stickyfooter-height};
2211
}
2212
 
1 efrain 2213
.popover.footer {
2214
    .popover-body {
2215
        padding: 0;
2216
        .footer-section {
2217
            a {
2218
                color: $body-color;
2219
                text-decoration: underline;
2220
                .icon {
2221
                    color: $body-color;
2222
                }
2223
                &:focus {
2224
                    text-decoration: none;
2225
                }
2226
            }
2227
        }
2228
    }
2229
}
2230
 
2231
.footer-support-link {
2232
    padding-bottom: 5px;
2233
}
2234
 
2235
@include media-breakpoint-up(sm) {
2236
    .jsenabled #page-footer .footer-content-popover {
2237
        display: none;
2238
    }
2239
    .jsenabled .btn-footer-popover,
2240
    .jsenabled .btn-footer-communication {
2241
        display: block;
2242
        z-index: $zindex-dropdown;
2243
    }
1441 ariadna 2244
    .jsenabled .maintenancewarning,
2245
    .jsenabled.hasstickyfooter:has(.drawer-right-toggle) .maintenancewarning {
2246
        right: 5rem;
2247
    }
1 efrain 2248
}
2249
 
2250
.bg-inverse a {
2251
    color: $bg-inverse-link-color;
2252
    text-decoration: underline;
2253
    .icon {
2254
        color: $bg-inverse-link-color;
2255
    }
2256
}
2257
 
2258
.sitelink {
2259
    img {
2260
        width: 112px;
2261
    }
2262
}
2263
 
2264
.competency-tree {
2265
    ul {
2266
        padding-left: 1.5rem;
2267
    }
2268
}
2269
 
1441 ariadna 2270
.visually-hidden-focusable {
1 efrain 2271
    &:active,
2272
    &:focus {
2273
        z-index: 1031;
2274
        position: fixed;
1441 ariadna 2275
        background: $visually-hidden-active-bg;
1 efrain 2276
        padding: 7px;
2277
        left: 0;
2278
        top: 0;
2279
    }
2280
}
2281
 
2282
[data-drag-type="move"] {
2283
    cursor: move;
2284
    touch-action: none;
2285
}
2286
 
2287
.clickable {
2288
    cursor: pointer;
2289
}
2290
 
2291
.overlay-icon-container {
2292
    position: absolute;
2293
    top: 0;
2294
    left: 0;
2295
    width: 100%;
2296
    height: 100%;
2297
    background-color: $overlay-icon-bg;
2298
 
2299
    .loading-icon {
2300
        position: absolute;
2301
        top: 50%;
2302
        left: 50%;
2303
        transform: translate(-50%, -50%);
2304
 
2305
        .icon {
2306
            max-height: 2em;
2307
            max-width: 2em;
2308
            font-size: 2em;
2309
        }
2310
    }
2311
}
2312
 
2313
.w-auto {
2314
    width: auto;
2315
}
2316
 
2317
.bg-pulse-grey {
2318
    animation: bg-pulse-grey 2s infinite linear;
2319
}
2320
 
2321
@keyframes bg-pulse-grey {
2322
    0% {
2323
        background-color: $gray-100;
2324
    }
2325
    50% {
2326
        background-color: darken($gray-100, 5%);
2327
    }
2328
    100% {
2329
        background-color: $gray-100;
2330
    }
2331
}
2332
 
2333
@each $size, $length in $spacers {
2334
    .line-height-#{$size} {
2335
        line-height: $length !important; /* stylelint-disable-line declaration-no-important */
2336
    }
2337
}
2338
 
2339
.dir-rtl {
2340
    .dir-rtl-hide {
2341
        display: none;
2342
    }
2343
}
2344
 
2345
.dir-ltr {
2346
    .dir-ltr-hide {
2347
        display: none;
2348
    }
2349
}
2350
 
2351
.paged-content-page-container {
2352
    min-height: 3.125rem;
2353
}
2354
 
2355
body.h5p-embed {
2356
    #page-content {
2357
        display: inherit;
2358
    }
2359
    #maincontent {
2360
        display: none;
2361
    }
2362
    .h5pmessages {
2363
        min-height: 230px; // This should be the same height as default core_h5p iframes.
2364
    }
2365
}
2366
 
2367
#h5pcontenttypes td {
2368
    vertical-align: middle;
2369
}
2370
 
2371
#page.drawers {
2372
    form#h5peditor,
2373
    form#coolh5peditor,
2374
    .core_contentbank_viewcontent {
2375
        max-width: $h5p-content-maxwidth;
2376
        margin: 0 auto;
2377
    }
2378
}
2379
 
1441 ariadna 2380
#page-contentbank-edit fieldset {
2381
    margin-top: 1em;
2382
}
2383
 
1 efrain 2384
.text-decoration-none {
2385
    text-decoration: none !important; /* stylelint-disable-line declaration-no-important */
2386
}
2387
 
2388
.colour-inherit {
2389
    color: inherit !important; /* stylelint-disable-line declaration-no-important */
2390
}
2391
 
2392
.position-right {
2393
    right: 0 !important; /* stylelint-disable-line declaration-no-important */
2394
}
2395
 
2396
.overflow-hidden {
2397
    overflow: hidden !important; /* stylelint-disable-line declaration-no-important */
2398
}
2399
 
2400
.text-break {
2401
    overflow-wrap: break-word !important; /* stylelint-disable-line declaration-no-important */
2402
}
2403
 
2404
.word-break {
2405
    word-break: break-word !important; /* stylelint-disable-line declaration-no-important */
2406
}
2407
 
2408
.z-index-0 {
2409
    z-index: 0 !important; /* stylelint-disable-line declaration-no-important */
2410
}
2411
 
2412
.z-index-1 {
2413
    z-index: 1 !important; /* stylelint-disable-line declaration-no-important */
2414
}
2415
 
2416
.img-responsive {
2417
    @include img-fluid();
2418
}
2419
 
2420
input[disabled] {
2421
    cursor: not-allowed;
2422
}
2423
 
2424
.fade.in {
2425
    opacity: 1;
2426
}
2427
 
2428
.clamp-2 {
2429
    display: -webkit-box;
2430
    -webkit-box-orient: vertical;
2431
    -webkit-line-clamp: 2;
2432
    overflow: hidden;
2433
}
2434
 
2435
.word-break-all {
2436
    word-break: break-all;
2437
}
2438
 
2439
.matchtext {
2440
    background-color: lighten($primary, 40%);
2441
    color: $body-color;
2442
    height: 1.5rem;
2443
}
2444
 
2445
.border-radius {
2446
    @if $enable-rounded {
2447
        @include border-radius($card-border-radius);
2448
    }
2449
}
2450
 
2451
.v-hidden {
2452
    visibility: hidden;
2453
}
2454
 
2455
// Any dialog (modal or dropdown) forced max-widths limits.
2456
.dialog-big {
2457
    max-width: $modal-md;
2458
}
2459
 
2460
.dialog-small {
2461
    max-width: $modal-sm;
2462
}
2463
 
2464
@include media-breakpoint-up(sm) {
2465
    .dialog-big {
2466
        width: $modal-md;
2467
    }
2468
 
2469
    .dialog-small {
2470
        width: $modal-sm;
2471
    }
2472
}
2473
 
2474
/*
2475
 * Helpers to show elements only when a parent element has focus or hover.
2476
 */
2477
 
2478
// Add this class to the element to hide.
2479
.v-parent-focus {
2480
    opacity: 0;
2481
    visibility: hidden;
2482
}
2483
 
2484
// Add this class to the parent element to control focus.
2485
.focus-control:focus-within .v-parent-focus,
2486
.focus-control:hover .v-parent-focus {
2487
    opacity: 1;
2488
    visibility: visible;
2489
}
2490
 
2491
// Emoji picker.
2492
$picker-width: 350px !default;
2493
$picker-width-xs: 320px !default;
2494
$picker-height: 400px !default;
2495
$picker-row-height: 40px !default;
2496
$picker-emoji-button-size: 40px !default;
2497
$picker-emoji-button-font-size: 24px !default;
2498
$picker-emoji-category-count: 9 !default;
2499
$picker-emojis-per-row: 7 !default;
2500
 
2501
.emoji-picker {
2502
    width: $picker-width;
2503
    height: $picker-height;
2504
 
2505
    .category-button {
2506
        padding: .375rem 0;
2507
        height: 100%;
2508
        width: divide($picker-width, $picker-emoji-category-count);
2509
        border-top: none;
2510
        border-left: none;
2511
        border-right: none;
2512
        border-bottom: 2px solid transparent;
2513
 
2514
        &.selected {
2515
            border-bottom: 2px solid map-get($theme-colors, 'primary');
2516
        }
2517
    }
2518
 
2519
    .emojis-container,
2520
    .search-results-container {
2521
        min-width: $picker-emojis-per-row * $picker-emoji-button-size;
2522
    }
2523
 
2524
    .picker-row {
2525
        height: $picker-row-height;
2526
 
2527
        .category-name {
2528
            line-height: $picker-row-height;
2529
        }
2530
 
2531
        .emoji-button {
2532
            height: $picker-emoji-button-size;
2533
            width: $picker-emoji-button-size;
2534
            line-height: $picker-emoji-button-size;
2535
            font-size: $picker-emoji-button-font-size;
2536
            overflow: hidden;
2537
        }
2538
    }
2539
 
2540
    .emoji-preview {
2541
        height: $picker-row-height;
2542
        font-size: $picker-row-height;
2543
        line-height: $picker-row-height;
2544
    }
2545
 
2546
    .emoji-short-name {
2547
        line-height: $picker-row-height * 0.5;
2548
    }
2549
 
1441 ariadna 2550
    @include media-breakpoint-down(sm) {
1 efrain 2551
        width: $picker-width-xs;
2552
    }
2553
}
2554
 
2555
.emoji-auto-complete {
2556
    height: $picker-row-height;
2557
 
1441 ariadna 2558
    .btn.btn-icon.emoji-button {
1 efrain 2559
        height: $picker-emoji-button-size;
2560
        width: $picker-emoji-button-size;
2561
        line-height: $picker-emoji-button-size;
2562
        font-size: $picker-emoji-button-font-size;
2563
 
2564
        &.active {
2565
            background-color: $gray-200;
2566
        }
2567
    }
2568
}
2569
 
2570
.toast-wrapper {
2571
    max-width: $toast-max-width;
2572
    max-height: 0;
2573
    // Place these above any modals and other elements.
2574
    z-index: 1051;
2575
 
2576
    > :first-child {
2577
        margin-top: $spacer;
2578
    }
2579
}
2580
 
2581
@each $color, $value in $theme-colors {
2582
    .alert-#{$color} {
2583
        a {
1441 ariadna 2584
            color: darken(shift-color($value, $alert-color-scale), 10%);
1 efrain 2585
        }
2586
        // Darken the close button text colour inside notification alerts for better contrast.
1441 ariadna 2587
        .btn-close {
2588
            color: darken(shift-color($value, $alert-color-scale), 20%);
1 efrain 2589
            opacity: 0.6;
2590
        }
2591
    }
2592
}
2593
.alert a {
2594
    font-weight: $font-weight-bold;
2595
}
2596
 
2597
.breadcrumb:empty {
2598
    padding: 0;
2599
}
2600
 
1441 ariadna 2601
@include media-breakpoint-down(md) {
1 efrain 2602
    #page-navbar {
2603
        width: 100%;
2604
    }
2605
 
2606
    .breadcrumb:not(:empty) {
2607
        width: 100%;
2608
        flex-wrap: nowrap;
2609
        margin-bottom: $spacer * 0.5;
2610
        .breadcrumb-item {
2611
            padding-top: $spacer * 0.33333;
2612
            padding-bottom: $spacer * 0.33333;
2613
            display: inline-flex;
2614
            overflow: hidden;
2615
        }
2616
        .breadcrumb-item a,
2617
        .breadcrumb-item span {
2618
            overflow: hidden;
2619
            text-overflow: ellipsis;
2620
            white-space: nowrap;
2621
        }
2622
    }
2623
 
2624
    .mform {
2625
        width: 100%;
2626
        padding-right: 15px;
2627
        padding-left: 15px;
2628
    }
2629
    .pagination {
2630
        flex-wrap: wrap;
2631
        justify-content: center;
2632
    }
2633
    .card .card-body {
2634
        padding: $card-spacer-x * 0.5;
2635
    }
2636
    #page-header {
2637
        .card {
2638
            border: 0;
2639
            .card-body {
2640
                padding: 0;
2641
            }
2642
        }
2643
    }
1441 ariadna 2644
    // Navs and Tabs in small screens.
1 efrain 2645
    .nav-tabs:not(.more-nav),
2646
    .nav-pills {
1441 ariadna 2647
        --#{$prefix}nav-tabs-link-active-color: #{$nav-pills-link-active-color};
2648
        --#{$prefix}nav-tabs-link-active-bg: #{$nav-pills-link-active-bg};
1 efrain 2649
        margin: 0;
2650
        border: 0;
2651
        padding: $spacer * 0.125;
2652
        background-color: $gray-200;
2653
        .nav-item {
2654
            flex: 1 1 auto;
2655
            text-align: center;
2656
        }
2657
        .nav-link {
2658
            border: 0;
2659
            margin: $spacer * 0.125;
1441 ariadna 2660
            &:not(.active) {
2661
                background-color: var(--#{$prefix}body-bg);
1 efrain 2662
            }
2663
        }
2664
    }
2665
}
2666
 
2667
@media (max-width: map-get($grid-breakpoints, "sm")) and (max-height: 320px) {
2668
    div#page {
2669
        margin-top: 0;
2670
    }
2671
    .navbar.fixed-top {
2672
        position: relative;
2673
        z-index: inherit;
2674
    }
2675
}
2676
 
2677
.link-underline {
2678
    text-decoration: underline;
2679
    &:focus {
2680
        text-decoration: none;
2681
    }
2682
}
2683
 
2684
.alert.cta {
2685
    .cta-icon {
2686
        .icon {
2687
            padding: 0.3rem;
2688
            &.fa {
2689
                border-radius: 50%;
2690
                border-style: solid;
2691
                border-width: 0.125rem;
2692
            }
2693
        }
2694
    }
2695
}
1441 ariadna 2696
.core_payment_gateways_modal .form-check-label::before,
2697
.core_payment_gateways_modal .form-check-label::after {
1 efrain 2698
    top: 45%;
2699
}
2700
 
2701
$scrollbar-thumb: $primary;
2702
$scrollbar-track: lighten($primary, 40%);
2703
// simple scrollbars
2704
.visual-scroll-x {
2705
    scrollbar-width: thin;
2706
    scrollbar-color: $scrollbar-thumb $scrollbar-track;
2707
    -ms-overflow-style: -ms-autohiding-scrollbar;
2708
    &::-webkit-scrollbar {
2709
        height: 8px; // for horizontal scrollbars
2710
        -webkit-appearance: none;
2711
        appearance: none;
2712
    }
2713
    &::-webkit-scrollbar-thumb {
2714
        background-color: $scrollbar-thumb;
2715
        border-right: $border-width solid $white;
2716
    }
2717
    &::-webkit-scrollbar-track {
2718
        background-color: $scrollbar-track;
2719
        border-right: $border-width solid $white;
2720
    }
2721
}
2722
 
2723
// Thin scrollbars.
2724
@mixin thin-scrolls($bg-track) {
2725
 
2726
    // Firefox.
2727
    scrollbar-width: thin;
2728
    scrollbar-color: $thin-scroll-bg-thumb $bg-track;
2729
 
2730
    // Chrome, Edge and Safari.
2731
    &::-webkit-scrollbar {
2732
        width: 12px;
2733
    }
2734
 
2735
    &::-webkit-scrollbar-track {
2736
        background: $bg-track;
2737
    }
2738
 
2739
    &::-webkit-scrollbar-thumb {
2740
        background-color: $thin-scroll-bg-thumb;
2741
        border-radius: 20px;
2742
        border: 3px solid $bg-track;
2743
    }
2744
 
2745
    &::-webkit-scrollbar-thumb:hover {
2746
        background-color: $thin-scroll-bg-hover;
2747
    }
2748
}
2749
 
2750
// Add top/bottom shadow to scrolling area.
2751
@mixin scroll-shadow($background-colour: $white, $shadow-colour: $black, $shadow-size: 1rem) {
2752
    background:
2753
        linear-gradient($background-colour 30%, rgba($background-colour, 0)) center top,
2754
        linear-gradient(rgba($background-colour, 0), $background-colour 70%) center bottom,
2755
        radial-gradient(farthest-side at 50% 0, rgba($shadow-colour, 0.2), rgba($shadow-colour, 0)) center top,
2756
        radial-gradient(farthest-side at 50% 100%, rgba($shadow-colour, 0.2), rgba($shadow-colour, 0)) center bottom;
2757
    background-repeat: no-repeat;
2758
    background-size: 100% $shadow-size, 100% $shadow-size, 100% calc(#{$shadow-size} / 2), 100% calc(#{$shadow-size} / 2);
2759
    background-attachment: local, local, scroll, scroll;
2760
}
2761
 
2762
// Generic dropzones and dragging styles.
2763
 
2764
body.dragging {
2765
 
2766
    .drop-zone {
2767
        border: 1px dashed $dropzone-border;
2768
    }
2769
 
2770
    .drop-up {
2771
        border-top: 1px solid $dropzone-border;
2772
        border-top-left-radius: 0;
2773
        border-top-right-radius: 0;
2774
    }
2775
 
2776
    .drop-down {
2777
        border-bottom: 1px solid $dropzone-border;
2778
        border-bottom-left-radius: 0;
2779
        border-bottom-right-radius: 0;
2780
    }
2781
 
2782
    .dragging {
2783
        opacity: .6;
2784
    }
2785
}
2786
 
2787
.dragicon {
2788
    visibility: hidden;
2789
}
2790
 
2791
.draggable:hover .dragicon {
2792
    visibility: visible;
2793
    cursor: move;
2794
}
2795
 
2796
.dropzone-container {
2797
    cursor: pointer;
2798
 
2799
    .dropzone {
2800
        display: flex;
2801
        justify-content: center;
2802
        align-items: center;
2803
        flex-direction: column;
2804
        border: 2px dashed $filemanager-dnd-border-color;
2805
        border-radius: 0.5rem;
2806
 
2807
        &.dragover {
2808
            border: 2px dashed $filemanager-dnd-upload-over-border-color;
2809
        }
2810
    }
2811
 
2812
    .dropzone-icon {
2813
        color: $gray-500;
2814
 
2815
        .icon {
2816
            font-size: 6em;
2817
            width: auto;
2818
            height: auto;
2819
            max-width: initial;
2820
            max-height: initial;
2821
            margin-right: 0;
2822
        }
2823
    }
2824
 
1441 ariadna 2825
    .dropzone-visually-hidden-focusable {
1 efrain 2826
        &:active,
2827
        &:focus {
2828
            outline: 0;
2829
            box-shadow: $input-btn-focus-box-shadow;
2830
            z-index: $zindex-popover;
2831
            position: relative;
1441 ariadna 2832
            background: $visually-hidden-active-bg;
1 efrain 2833
            padding: 7px;
2834
        }
2835
    }
2836
}
2837
 
2838
// Generic classes reactive components can use.
2839
 
2840
.overlay-preview {
2841
    background-color: $overlay-preview-bg;
2842
    border: 2px dashed $primary;
2843
    position: absolute;
2844
    top: 0;
2845
    left: 0;
2846
    width: 100%;
2847
    height: 100%;
2848
 
2849
    .overlay-preview-wrapper {
2850
        position: absolute;
2851
        top: 0;
2852
        padding: 2rem;
2853
        width: 100%;
2854
    }
2855
 
2856
    .overlay-preview-content {
2857
        position: relative;
2858
        top: 0;
2859
        padding: $modal-inner-padding;
2860
        margin: 0 auto;
2861
        width: 100%;
2862
        max-width: 600px;
2863
        background-color: $primary;
2864
        color: $white;
2865
        text-align: center;
2866
        font-size: $font-size-lg;
2867
        @include border-radius();
2868
    }
2869
}
2870
 
2871
.overlay-preview-borders {
2872
    outline: 2px dashed $primary;
2873
}
2874
 
2875
.waitstate {
2876
    display: none;
2877
}
2878
 
2879
.stateready {
2880
    .waitstate {
2881
        display: inherit;
2882
    }
2883
    .whilenostate {
2884
        display: none;
2885
    }
2886
}
2887
 
2888
// Collapsible list.
2889
 
2890
.collapse-list {
2891
    .collapse-list-item {
2892
        padding: $collapse-list-item-padding-y $collapse-list-item-padding-x;
2893
        &:hover,
2894
        &:focus {
2895
            background-color: $collapse-list-item-hover-bg;
2896
            border-color: $collapse-list-item-hover-border;
2897
        }
2898
    }
2899
    .collapse-list-item-content {
2900
        .collapse-list-item {
2901
            padding-left: calc(#{$collapse-list-item-padding-x} * 3);
2902
        }
2903
    }
2904
}
2905
 
1441 ariadna 2906
.page-mycourses {
1 efrain 2907
    .block_myoverview {
1441 ariadna 2908
        .block-cards {
2909
            border-top: 1px solid $border-color;
2910
            padding-top: map-get($spacers, 2);
1 efrain 2911
        }
2912
    }
1441 ariadna 2913
    // Boost theme styling only (drawers not used in classic).
2914
    .drawers {
2915
        .block_myoverview {
2916
            border: 0;
2917
            & > .card-body {
2918
                padding-top: 0 !important; /* stylelint-disable-line declaration-no-important */
2919
                padding-left: 0 !important; /* stylelint-disable-line declaration-no-important */
2920
                padding-right: 0 !important; /* stylelint-disable-line declaration-no-important */
2921
            }
2922
        }
2923
    }
1 efrain 2924
}
2925
 
1441 ariadna 2926
#page-my-index .my-action-buttons {
2927
    display: flex;
2928
    justify-content: center;
2929
    align-items: center;
2930
    gap: 10px;
2931
}
2932
 
1 efrain 2933
.dropdown-toggle::after {
1441 ariadna 2934
    font: var(--fa-font-solid);
1 efrain 2935
    content: fa-content($fa-var-chevron-down);
2936
    margin-right: 0;
2937
    margin-left: 4px;
2938
    font-size: 9px;
2939
    width: 9px;
2940
    border: 0;
1441 ariadna 2941
}
1 efrain 2942
 
1441 ariadna 2943
.listitem-category .dropdown-toggle::after {
2944
    /* This can be removed when the .dropdown-toggle::after is updated to remove content. */
2945
    content: none;
1 efrain 2946
}
2947
 
1441 ariadna 2948
 
2949
// TODO: Check if these are still needed.
1 efrain 2950
.dropleft .dropdown-toggle::before {
2951
    border: 0;
1441 ariadna 2952
    font: var(--fa-font-solid);
1 efrain 2953
    content: fa-content($fa-var-chevron-left);
2954
    font-size: 9px;
2955
    margin-left: 0;
2956
    margin-right: 4px;
2957
    width: 9px;
2958
}
2959
 
2960
.dir-rtl .dropleft .dropdown-toggle::before {
2961
    content: fa-content($fa-var-chevron-right);
2962
}
2963
 
2964
.dropright .dropdown-toggle::after {
2965
    border: 0;
1441 ariadna 2966
    font: var(--fa-font-solid);
1 efrain 2967
    content: fa-content($fa-var-chevron-right);
2968
}
2969
 
2970
.dir-rtl .dropright .dropdown-toggle::after {
2971
    content: fa-content($fa-var-chevron-left);
2972
}
2973
 
2974
 
2975
.dropup .dropdown-toggle::after {
2976
    border: 0;
1441 ariadna 2977
    font: var(--fa-font-solid);
1 efrain 2978
    content: fa-content($fa-var-chevron-up);
2979
}
2980
 
2981
.select-menu {
2982
    li:first-child {
2983
        ul[role="group"] {
2984
            padding: 0;
2985
        }
2986
    }
2987
 
2988
    ul[role="group"] {
2989
        padding: 0.3rem 0 0 0;
2990
        margin: 0;
2991
        li:first-child {
2992
            cursor: default;
2993
            color: $gray-600;
2994
            padding: 0.25rem 1.5rem;
2995
            display: block;
2996
        }
2997
        .dropdown-item {
2998
            padding-left: 2.5rem;
2999
        }
3000
    }
1441 ariadna 3001
 
3002
    .dropdown-item {
3003
        padding: map-get($spacers, 1) map-get($spacers, 4);
3004
 
3005
        [aria-selected="true"] {
3006
            font-weight: bold;
3007
        }
1 efrain 3008
    }
3009
}
3010
 
3011
[role="listbox"] [role="option"] {
3012
    cursor: pointer;
3013
 
3014
    &[aria-selected="true"] {
3015
        font-weight: bold;
3016
    }
3017
}
3018
 
3019
.initialbargroups ul {
3020
    -webkit-margin-start: 0; /* stylelint-disable-line */
3021
    margin-right: -1px;
3022
}
3023
 
3024
.page-item {
3025
    &:first-child {
3026
        .page-link {
3027
            .initialbargroups & {
1441 ariadna 3028
                @include border-start-radius(0);
3029
                @include border-end-radius(0);
1 efrain 3030
            }
3031
            .initialbargroups .pagination-lg:first-child & {
1441 ariadna 3032
                @include border-start-radius($pagination-border-radius-lg);
1 efrain 3033
            }
3034
            .initialbargroups .pagination-sm:first-child & {
1441 ariadna 3035
                @include border-start-radius($pagination-border-radius-sm);
1 efrain 3036
            }
3037
        }
3038
    }
3039
    &:last-child {
3040
        .page-link {
3041
            .initialbargroups & {
1441 ariadna 3042
                @include border-start-radius(0);
3043
                @include border-end-radius(0);
1 efrain 3044
            }
3045
            .initialbargroups .pagination-lg:last-child & {
1441 ariadna 3046
                @include border-end-radius($pagination-border-radius-lg);
1 efrain 3047
            }
3048
            .initialbargroups .pagination-sm:last-child & {
1441 ariadna 3049
                @include border-end-radius($pagination-border-radius-sm);
1 efrain 3050
            }
3051
        }
3052
    }
3053
}
3054
 
3055
blockquote {
3056
    margin: 0 0.5rem 1rem;
3057
    padding-left: 1rem;
3058
    color: $gray-700;
1441 ariadna 3059
    border-left: 5px solid $gray-500;
1 efrain 3060
}
3061
 
1441 ariadna 3062
.pagelayout-maintenance,
3063
.pagelayout-secure {
3064
    .page-header-headings {
3065
        background-color: $body-bg;
3066
    }
3067
}
3068
 
1 efrain 3069
/* Prevent long strings exceeding page width */
3070
.page-header-headings,
3071
.coursename,
3072
.categoryname,
3073
.breadcrumb-item {
3074
 
3075
    &:not(.text-truncate) {
3076
        word-break: normal;
3077
        overflow-wrap: anywhere;
3078
        white-space: normal;
3079
    }
3080
}
3081
 
3082
/* Showmore component */
3083
.showmore-container {
3084
    &.collapsed {
3085
        .expanded-content {
3086
            display: none;
3087
        }
3088
    }
3089
    &:not(.collapsed) {
3090
        .collapsed-content {
3091
            display: none;
3092
        }
3093
    }
1441 ariadna 3094
    .showmore-button {
1 efrain 3095
        float: right;
1441 ariadna 3096
        text-decoration: none;
1 efrain 3097
        .icon {
3098
            font-size: $btn-font-size-sm;
3099
            margin: 0;
3100
        }
3101
    }
3102
}
3103
 
3104
/* Combobox search dropdowns */
3105
.usersearchdropdown,
3106
.gradesearchdropdown,
3107
.groupsearchdropdown {
3108
    &.dropdown-menu {
1441 ariadna 3109
        top: 100%;
1 efrain 3110
        width: 350px;
3111
        .searchresultitemscontainer {
3112
            max-height: 170px;
3113
            overflow: auto;
3114
            /* stylelint-disable declaration-no-important */
3115
            img {
3116
                height: 48px !important;
3117
                width: 48px !important;
3118
            }
3119
        }
3120
    }
3121
}
3122
 
3123
/* Bulk actions in sticky footer. */
3124
#sticky-footer {
3125
    [data-type="bulkactions"] {
3126
        display: flex;
3127
        flex: 0 0 100%;
3128
        align-items: center;
3129
    }
3130
}
3131
 
3132
/* Choice list component. */
3133
.choicelist {
3134
    // Choicelist is designed to fit inside a small modal.
3135
    min-width: calc(#{$modal-sm} - 25px);
3136
 
3137
    // Align the font based icons.
3138
    i.icon {
3139
        vertical-align: middle;
3140
    }
3141
}
3142
 
3143
/* General card customisations. */
3144
.card.active {
3145
    border-color: $gray-500;
3146
}