PluginProbe ʕ •ᴥ•ʔ
LatePoint – Calendar Booking Plugin for Appointments and Events / trunk
LatePoint – Calendar Booking Plugin for Appointments and Events vtrunk
5.6.7 5.6.6 5.6.5 5.6.4 5.6.3 5.6.2 5.6.1 5.6.0 5.5.2 5.5.1 5.5.0 5.4.2 trunk 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 5.1.9 5.1.91 5.1.92 5.1.93 5.1.94 5.2.0 5.2.1 5.2.10 5.2.11 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.2.8 5.2.9 5.3.0 5.3.1 5.3.2 5.4.0 5.4.1
latepoint / lib / assets / stylesheets / admin / _widgets.scss
latepoint / lib / assets / stylesheets / admin Last commit date
_activities.scss 9 months ago _addons.scss 9 months ago _agents.scss 9 months ago _animations.scss 9 months ago _booking_form_preview.scss 9 months ago _bookings.scss 3 weeks ago _bundles.scss 9 months ago _buttons.scss 9 months ago _calendars.scss 9 months ago _categories.scss 9 months ago _customers.scss 9 months ago _dark.scss 9 months ago _daterangepicker.scss 9 months ago _elements.scss 1 month ago _forms.scss 9 months ago _grid.scss 1 year ago _grid_variables.scss 1 year ago _icons.scss 1 year ago _latecheckbox.scss 9 months ago _lateselect.scss 1 year ago _layout.scss 9 months ago _lightbox.scss 9 months ago _menu.scss 9 months ago _messages.scss 9 months ago _misc.scss 9 months ago _mixins.scss 9 months ago _notifications.scss 9 months ago _orders.scss 9 months ago _pickr.scss 1 year ago _processes.scss 1 month ago _quick_availability.scss 9 months ago _reminders.scss 1 year ago _responsive.scss 9 months ago _roles.scss 1 year ago _schedule.scss 3 months ago _services.scss 9 months ago _settings.scss 1 month ago _side-panel.scss 9 months ago _steps.scss 1 year ago _tables.scss 9 months ago _type.scss 1 year ago _updates.scss 9 months ago _utilities.scss 1 year ago _variables.scss 9 months ago _widgets.scss 9 months ago _wizard.scss 2 weeks ago
_widgets.scss
2175 lines
1 .os-widget {
2 margin-bottom: $content-padding;
3 position: relative;
4 background-color: #fff;
5 border-radius: $border-radius-lg;
6 @include white-box();
7
8 &.os-loading {
9 &:after {
10 @include loading-circle($brand-primary);
11 }
12 animation:animate_appointment_small_box 0.8s ease infinite;
13 }
14 &.os-widget-transparent {
15 background-color: transparent;
16 border: none;
17 padding: 0px;
18 box-shadow: none;
19 .os-widget-header {
20 padding: 9px 10px 10px 37px;
21 border: none;
22 &:before {
23 display: none;
24 }
25 }
26 .os-widget-content {
27 padding: 0px;
28 }
29 }
30
31 .os-widget-header {
32 font-size: floor($font-size-base * 1.2);
33 border-bottom: 1px solid $border-color-lightest;
34 color: $headings-color;
35 margin-top: 0px;
36 line-height: 1.2;
37 padding: $widget-padding $widget-padding calc($widget-padding/2) $widget-padding;
38 position: relative;
39 &:before {
40 content: "";
41 z-index: -1;
42 width: 60px;
43 height: 60px;
44 position: absolute;
45 top: 5px;
46 right: 5px;
47 border-radius: 0 30px 0 50px;
48 background-image: radial-gradient(#d6d6d6 1px, transparent 0);
49 background-size: 12px 12px;
50 background-position: top right;
51 }
52 &.centered {
53 text-align: center;
54 }
55 h3 {
56 font-size: floor($headings-font-size * 0.95);
57 padding: 0;
58 margin: 0px;
59 line-height: 1;
60 color: $headings-color;
61 }
62 &.with-actions {
63 .os-widget-header-text {
64 position: relative;
65 padding: 0px;
66 margin-bottom: 15px;
67 vertical-align: middle;
68 }
69 .os-widget-header-actions-trigger {
70 display: none;
71 font-size: 20px;
72 }
73 .os-widget-header-actions {
74 margin-left: auto;
75 text-align: right;
76 display: flex;
77 gap: 8px;
78 align-items: center;
79 select, .os-date-range-picker {
80 display: block;
81 white-space: nowrap;
82 line-height: 1.2;
83 &:last-child {
84 margin-right: 0px;
85 }
86 }
87 .os-date-range-picker {
88 cursor: pointer;
89 border-radius: $border-radius;
90 background-color: #fff;
91 border: 1px solid $border-color-strong;
92 box-shadow: none;
93 min-height: 26px;
94 font-size: floor($font-size-base * 0.95);
95 padding: 8px 6px 8px 12px;
96 display: flex;
97 gap: 5px;
98 align-items: center;
99 vertical-align: middle;
100 line-height: 1.2;
101 i,span {
102 display: inline-block;
103 vertical-align: middle;
104 }
105 i {
106 font-size: 12px;
107 }
108 span {
109 color: $body-color;
110 }
111
112
113 &:hover {
114 background-color: #fff;
115 }
116
117 }
118 }
119 select {
120 max-width: 130px;
121 min-height: 26px;
122 color: $body-color;
123 background-color: #fff;
124 border: 1px solid $border-color-strong;
125 box-shadow: none;
126 border-radius: $border-radius;
127 font-size: floor($font-size-base * 0.95);
128 padding: 8px 18px 8px 12px;
129 }
130 }
131 &:before {
132 // $size: 4px;
133 // content: "";
134 // width: $size;
135 // height: $size;
136 // background-color: rgba($brand-primary, 1);
137 // box-shadow: ($size * 2) ($size * 2) 0px rgba($brand-primary, 0.6),
138 // 0px ($size * 2) 0px rgba($brand-primary, 0.6),
139 // 0px ($size * 4) 0px rgba($brand-primary, 0.3),
140 // ($size * 2) ($size * 6) 0px rgba($brand-primary, 0.7),
141 // ($size * 2) ($size * 4) 0px rgba($brand-primary, 0.4);
142 // position: absolute;
143 // top: 11px;
144 // left: 12px;
145 }
146 }
147
148 .os-widget-content {
149 padding: calc($widget-padding/2) $widget-padding $widget-padding $widget-padding;
150 &.no-padding {
151 padding: 0;
152 }
153 }
154
155 &.os-widget-boxed {
156 background-color: #fff;
157 box-shadow: $box-shadow;
158 padding: 15px;
159 border-radius: $border-radius-xs;
160 .os-widget-header {
161 padding-top: 0px;
162 border-bottom: none;
163 }
164 }
165 }
166
167
168 .agent-stats-box {
169 display: flex;
170 align-items: center;
171 text-decoration: none;
172 color: $body-color;
173 transition: all 0.2s ease;
174 &:hover {
175 .agent-stats .agent-stats-chart .ac-progress-value {
176 }
177 }
178 & + .agent-stats-box {
179 }
180 .agent-info {
181 text-align: center;
182 text-decoration: none;
183 color: $headings-color;
184 flex: 0;
185 padding: 20px;
186 padding-left: 0px;
187 margin: auto;
188 position: relative;
189 &:hover {
190 .agent-name {
191 display: block;
192 }
193 .avatar-w {
194 }
195 }
196 .avatar-w {
197 @include avatar(45px);
198 margin: 0px auto;
199 }
200 .agent-name {
201 @include tooltip();
202 }
203 }
204 .agent-stats {
205 flex: 1;
206 .agent-stats-values {
207 display: flex;
208 align-items: flex-start;
209 }
210 .agent-stats-value {
211 flex: 0;
212 padding: 10px 20px 0px 0px;
213 color: $color-faded;
214 font-size: floor($font-size-base * 0.9);
215 strong {
216 font-size: floor($font-size-base * 1.3);
217 color: $headings-color;
218 }
219 & + .agent-stats-value {
220 }
221 }
222 .agent-stats-chart {
223 padding: 0px;
224 .agent-chart-progress {
225 display: flex;
226 }
227 .ac-progress-value {
228 cursor: pointer;
229 padding: 10px 0px;
230 position: relative;
231 .ac-progress-value-line {
232 height: 2px;
233 }
234 .progress-label-w {
235 @include tooltip();
236 bottom: auto;
237 top: -100%;
238 .progress-label {
239 color: rgba(255,255,255,0.7);
240 font-size: floor($font-size-base * 0.8);
241 white-space: nowrap;
242 margin-top: 5px;
243 }
244 .progress-value {
245 font-weight: $body-font-weight-bold;
246 white-space: nowrap;
247 color: #fff;
248 span {
249 }
250 strong {
251 }
252 }
253 }
254 &:hover {
255 .progress-label-w {
256 transform: translate(-50%, -105%);
257 display: block;
258 }
259 .ac-progress-value-line {
260 transform: scaleY(2);
261 border-radius: 0px;
262 }
263 }
264 }
265 }
266 }
267 .agent-sub-info {
268 transition: transform 0.2s ease;
269 .label {
270 color: $color-faded;
271 }
272 .value {
273 font-weight: $body-font-weight-bold;
274 color: $brand-primary;
275 }
276 }
277 }
278
279 .appointment-box-large {
280 @include white-box();
281 border-radius: 0px $border-radius-xs $border-radius-xs 0px;
282 border-left: none;
283 display: flex;
284 align-items: center;
285 position: relative;
286 cursor: pointer;
287 transition: all 0.2s ease;
288
289 &.status-pending,
290 &.status-payment_pending {
291 .appointment-status-selector {
292 background-color: #FFF2DA;
293 }
294 .appointment-box-actions {
295 opacity: 1;
296 }
297 .aba-approve{
298 }
299 .aba-reject {
300 color: #D04C4C;
301 span {
302 border-bottom-color: #D04C4C;
303 }
304 &:hover {
305 transform: scale(1.1);
306 box-shadow: inset 0px 0px 0px 2px #D04C4C;
307 }
308 }
309 }
310 &.status-approved {
311 .appointment-status-selector {
312 background-color: #d4fbd7;
313 }
314 }
315 &.status-cancelled {
316 .appointment-status-selector {
317 background-color: #ffe3e3;
318 }
319 }
320
321 & + .appointment-box-large {
322 margin-top: 30px;
323 }
324 .edit-appointment-btn {
325 position: absolute;
326 top: 10px;
327 right: 10px;
328 font-size: 14px;
329 color: $brand-primary;
330 cursor: pointer;
331 }
332 .appointment-box-actions {
333 border-left: 1px solid rgba(0,0,0,0.05);
334 flex: 0;
335 opacity: 0.3;
336 .aba-button-w {
337 padding: 25px;
338 font-size: floor($font-size-base * 1.2);
339 font-weight: $body-font-weight-bold;
340 color: $brand-primary;
341 white-space: nowrap;
342 transition: transform 0.1s ease;
343 display: flex;
344 span, i {
345 display: block;
346 }
347 span {
348 margin-left: 10px;
349 border-bottom: 1px dotted $brand-primary;
350 }
351 & + .aba-button-w {
352 border-top: 1px solid rgba(0,0,0,0.05);
353 }
354 }
355 .aba-approve,
356 .aba-reject {
357 }
358 .aba-approve{
359 }
360 .aba-reject {
361 color: #D04C4C;
362 span {
363 border-bottom-color: #D04C4C;
364 }
365 }
366 }
367 .appointment-info {
368 padding: 25px;
369 flex: 1;
370 border-right: 1px solid rgba(0,0,0,0.05);
371 .appointment-color-elem {
372 position: absolute;
373 top: -1px;
374 left: 0px;
375 bottom: -1px;
376 width: 2px;
377 }
378 .appointment-service-name {
379 font-weight: $body-font-weight-bold;
380 font-size: floor($font-size-base * 1.5);
381 margin-bottom: 15px;
382 }
383 .appointment-time {
384 color: $color-faded;
385 white-space: nowrap;
386 .at-date {
387 font-weight: $body-font-weight-bold;
388 color: $brand-primary;
389 font-size: floor($font-size-base * 1.2);
390 margin-bottom: 3px;
391 }
392 .at-time {
393 margin-bottom: 10px;
394 }
395 }
396 .os-form-group {
397 margin-bottom: 0px;
398 }
399 }
400 .appointment-status-selector {
401 padding: 10px 10px 10px 25px;
402 margin: 0px -25px;
403 margin-bottom: -25px;
404 .os-form-group {
405 display: flex;
406 align-items: center;
407 label {
408 margin-right: 5px;
409 color: $body-color;
410 }
411 }
412 }
413 .account-info-w {
414 padding: 25px;
415 flex: 1;
416 align-items: center;
417
418 .account-info-head {
419 display: flex;
420 margin-bottom: 15px;
421 }
422 .avatar-w {
423 width: 40px;
424 height: 40px;
425 flex: 0 0 40px;
426 border-radius: 50%;
427 background-size: cover;
428 background-position: center center;
429 margin-right: 15px;
430 box-shadow: 0px 0px 0px 5px rgba(255,255,255,0.4);
431 }
432 .account-info {
433
434 }
435 .account-info-label {
436 color: $color-faded;
437 }
438 .account-name {
439 font-weight: $body-font-weight-bold;
440 font-size: floor($font-size-base * 1.2);
441 color: $brand-primary;
442 margin-top: 2px;
443 }
444 .account-property {
445 margin-bottom: 5px;
446 white-space: nowrap;
447 display: flex;
448 .label {
449 color: $color-faded;
450 flex: 0 0 50px;
451 margin-right: 5px;
452 }
453 .value {
454 flex: 1;
455 font-weight: $body-font-weight-bold;
456 }
457 }
458 }
459
460 .account-info-w + .account-info-w {
461 border-left: 1px solid rgba(0,0,0,0.05);
462 }
463
464 &:hover {
465 }
466 &.os-loading {
467 &:after {
468 @include loading-circle($brand-primary);
469 left: 16px;
470 top: 14px;
471 transform: none;
472 }
473 }
474 }
475
476
477 .appointment-box-small {
478 background-color: #fff;
479 position: relative;
480 cursor: pointer;
481 transition: all 0.2s ease;
482 border-radius: $border-radius-sm;
483 box-shadow: 0 20px 50px -10px rgba(0,0,0, 0.45), inset 2px 2px 0 0 #fff;
484 overflow: hidden;
485 .edit-appointment-btn {
486 position: absolute;
487 top: 10px;
488 right: 10px;
489 font-size: 14px;
490 color: $brand-primary;
491 cursor: pointer;
492 }
493
494 .appointment-capacity-info {
495 padding: 12px 20px 15px 20px;
496 border-top: 1px solid rgba(0,0,0,0.05);
497 .appointment-capacity-info-label {
498 display: flex;
499 justify-content: space-between;
500 align-items: center;
501 margin-bottom: 4px;
502 font-size: $body-font-size-xxs;
503 span, strong {
504 display: block;
505 }
506 span {
507 color: $color-faded;
508 }
509 strong {
510 color: $headings-color;
511 }
512 }
513 }
514 .appointment-capacity-progress-w {
515 background-color: rgba($brand-primary, 0.1);
516 border-radius: $border-radius;
517 .appointment-capacity-progress {
518 height: 3px;
519 background-color: $brand-primary;
520 border-radius: $border-radius;
521 }
522 }
523 .appointment-info {
524 flex: 1;
525 position: relative;
526 padding: 20px 45px;
527 &:before {
528 content: "";
529 z-index: -1;
530 width: 40px;
531 height: 40px;
532 position: absolute;
533 top: 5px;
534 right: 5px;
535 border-radius: 0 0px 0 50px;
536 background-image: radial-gradient(#d6d6d6 1px, transparent 0);
537 background-size: 12px 12px;
538 background-position: top right;
539 }
540 .appointment-color-elem {
541 position: absolute;
542 top: 22px;
543 left: 18px;
544 width: 15px;
545 height: 15px;
546 border-radius: 10px;
547 }
548 .appointment-service-name {
549 font-weight: $body-font-weight-bold;
550 font-size: $body-font-size-m;
551 color: $headings-color;
552 margin-bottom: 3px;
553 white-space: nowrap;
554 }
555 .appointment-time {
556 white-space: nowrap;
557 font-size: $body-font-size-xs;
558 display: flex;
559 gap: 5px;
560
561 .at-date {
562 color: $color-faded;
563 margin-bottom: 1px;
564 }
565 .at-time {
566 font-weight: $body-font-weight-bold;
567 }
568 }
569 }
570 .agent-info-w {
571 padding: 18px 10px 18px 15px;
572 display: flex;
573 flex: 0 0 33%;
574 align-items: center;
575 border-left: 1px solid rgba(0,0,0,0.05);
576
577 .avatar-w {
578 width: 30px;
579 height: 30px;
580 flex: 0 0 30px;
581 border-radius: 50%;
582 background-size: cover;
583 background-position: center center;
584 margin-right: 15px;
585 }
586 .agent-info {
587
588 }
589 .agent-name {
590 font-weight: $body-font-weight-bold;
591 font-size: floor($font-size-base * 1);
592 color: $brand-primary;
593 }
594 .agent-property {
595 margin-bottom: 2px;
596 white-space: nowrap;
597 .label {
598 color: $color-faded;
599 }
600 .value {
601 font-weight: $body-font-weight-bold;
602 }
603 }
604 }
605 .customer-info-w {
606 padding: 15px;
607 padding-bottom: 20px;
608 display: flex;
609 align-items: center;
610 overflow: hidden;
611 border-top: 1px solid $border-color-lightest;
612 gap: 15px;
613 position: relative;
614
615 .avatar-w {
616 width: 40px;
617 height: 40px;
618 flex: 0 0 40px;
619 border-radius: 50%;
620 background-size: cover;
621 background-position: center center;
622 }
623 .customer-info {
624
625 }
626 .customer-name {
627 font-weight: $body-font-weight-bold;
628 font-size: $body-font-size-xs;
629 margin-bottom: 5px;
630 color: $brand-primary;
631 border-bottom: 1px dotted $brand-primary;
632 display: inline-block;
633 }
634 .customer-property {
635 white-space: nowrap;
636 display: flex;
637 align-items: center;
638 gap: 5px;
639 .label {
640 color: $color-faded;
641 width: 20px;
642 display: block;
643 i {
644 display: block;
645 font-size: 12px;
646 }
647 }
648 .value {
649 display: block;
650 font-weight: $body-font-weight-bold;
651 font-size: $body-font-size-xxs;
652 }
653 & + .customer-property {
654 margin-top: 3px;
655 }
656 }
657 }
658
659 .agent-info-w + .customer-info-w {
660 flex: 0 0 33%;
661 }
662
663 &:hover {
664 }
665 &.os-loading {
666 &:after {
667 @include loading-circle($brand-primary);
668 left: -10px;
669 }
670 animation:animate_appointment_small_box 0.8s ease infinite;
671 }
672 }
673
674
675 .os-widget-daily-bookings {
676 }
677 .os-widget-daily-bookings, .os-widget-top-agents {
678 .no-results-w {
679 border: none;
680 border-radius: 6px;
681 &:first-child,
682 &:nth-child(2) {
683 display: block;
684 }
685 }
686 }
687
688
689 .os-dashboard-row {
690 .os-dashboard-column.os-upcoming {
691 flex: 0;
692 margin-left: 0px;
693 .os-widget {
694 }
695 .os-widget .os-widget-header {
696 padding-left: $content-padding;
697 }
698 .os-widget .os-widget-content {
699 padding-left: $content-padding;
700 }
701 }
702 }
703 .os-widget-upcoming-appointments {
704 .no-results-w {
705 padding: 20px 0px;
706 .icon-w {
707 margin-bottom: 15px;
708 }
709 .count-label {
710 color: $color-faded;
711 font-size: $font-size-base;
712 margin-bottom: 5px;
713 }
714 .count-number {
715 font-size: 38px;
716 font-weight: $body-font-weight-bold;
717 margin-bottom: 5px;
718 color: $body-color;
719 line-height: 1;
720 }
721 .latepoint-btn-link {
722 span {
723 border-bottom: 1px solid $brand-primary;
724 }
725 }
726 }
727 .no-results-w:nth-child(8) {
728 display: none;
729 }
730 }
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757 .services-availability-list {
758
759 .service-availability {
760 border-bottom: 1px solid rgba(0,0,0,0.05);
761 padding: 15px 0px;
762 display: flex;
763 align-items: center;
764 }
765 .service-color {
766 height: 8px;
767 width: 8px;
768 margin-right: 15px;
769 }
770 .service-name {
771 font-size: $font-size-base * 1.2;
772 font-weight: $body-font-weight-bold;
773 }
774 .service-available-slots {
775 margin-left: auto;
776 color: $brand-primary;
777 font-size: $font-size-base * 1.6;
778 font-weight: $body-font-weight-bold;
779 }
780 }
781
782
783
784
785
786
787
788 .daily-bookings-chart-w {
789 height: 204px;
790 padding: 0 $widget-padding calc($widget-padding/2) $widget-padding;
791 }
792
793
794
795
796
797
798
799
800
801
802
803
804
805 .agents-day-availability-timeslots {
806 padding-bottom: 15px;
807 }
808 .agent-day-availability-w {
809 position: relative;
810 display: flex;
811 align-items: center;
812 padding: 20px 0px;
813 z-index: 2;
814 &:hover {
815 }
816
817 .agent-avatar-w {
818 width: 35px;
819 flex: 0 0 35px;
820 margin-right: 15px;
821 height: 35px;
822 border-radius: 50%;
823 background-size: cover;
824 background-position: center center;
825 position: relative;
826 display: block;
827 text-decoration: none;
828 &:hover {
829 }
830 &.with-hover-name {
831 span {
832 display: none;
833 position: absolute;
834 bottom: 100%;
835 left: 50%;
836 background-color: #111;
837 color: #fff;
838 font-size: floor($font-size-base * 1);
839 font-weight: $body-font-weight-bold;
840 padding: 10px 15px;
841 z-index: 9999;
842 transform: translate(-50%, -5px);
843 white-space: nowrap;
844 border-radius: $tooltip-border-radius;
845 }
846 &:hover {
847 span {
848 display: block;
849 }
850 }
851 }
852 }
853 .agent-timeslots {
854 display: flex;
855 justify-content: space-between;
856 flex: 1;
857 position: relative;
858 }
859
860 .agent-timeslot {
861 height: 10px;
862 flex-grow: 1;
863 margin: 0px;
864 border-left: 1px solid #fff;
865 position: relative;
866 cursor: pointer;
867 background-color:#91e79e;
868 background-color: #1041ff;
869 background-color:$brand-primary;
870
871 .agent-timeslot-success-label {
872 color: rgba(255,255,255,0.8);
873 }
874 .agent-timeslot-label {
875 display: none;
876 padding: 8px 12px;
877 line-height: 1;
878 background-color: #111;
879 color: #fff;
880 font-size: floor($font-size-base * 0.9);
881 font-weight: $body-font-weight-bold;
882 position: absolute;
883 white-space: nowrap;
884 transition: all 0.4s ease;
885 z-index: 9999;
886 border: 1px solid #000;
887 border-radius: $tooltip-border-radius;
888 left: 50%;
889 top: -5px;
890 transform: translate3d(-50%, -100%, 0);
891 box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.33), 0px 2px 6px rgba(0,0,0,0.1);
892 .at-main-value {
893 color: #fff;
894 font-size: $body-font-size-m;
895 }
896 .at-sub-value {
897 font-size: $body-font-size-xs;
898 color: rgba(255,255,255,0.5);
899 margin-bottom: 3px;
900 }
901 }
902 &.os-loading {
903 position: relative;
904 &:after {
905 display: block;
906 content: "";
907 width: 14px;
908 height: 14px;
909 border-bottom: 2px solid #fff;
910 border-left: 2px solid #fff;
911 border-top: 2px solid #fff;
912 border-right: 2px solid rgba(255,255,255,0);
913 border-radius: 20px;
914 position: absolute;
915 top: 50%;
916 left: 50%;
917 transform: translate(-50%, -50%);
918 animation: os-loading 700ms infinite linear;
919 }
920 }
921 &.is-booked {
922 background-color: #ff6363;
923 background-color: #cbd7ff;
924 background-color: #dae2ff;
925 margin: 0px;
926 border-radius: 0px;
927 border-color: #fff;
928 + .agent-timeslot:not(.is-booked) {
929 }
930 &:before {
931 background-color: #f04739;
932 }
933 .agent-timeslot-label {
934 background-color: #f04739;
935 color: #fff;
936 border-color: #c51809!important;
937 }
938 &:hover {
939 background-color: #ffc4c4;
940 }
941 }
942 &.full-day-off {
943 }
944 &.is-off {
945 background-image: repeating-linear-gradient(90deg, rgba(1, 0, 10, 0.2) 0px, rgba(1, 0, 10, 0.2) 1px, transparent 1px, transparent 4px);
946 background-color: #fff;
947 margin: 0px;
948 border-radius: 0px;
949 + .agent-timeslot:not(.is-booked) {
950 }
951 &:before {
952 background-color: #E42806;
953 }
954 .agent-timeslot-label {
955 background-color: #f04739;
956 color: #fff;
957 border-color: #c51809!important;
958 }
959 &:hover {
960 background-color: #ffc4c4;
961 background-image: none;
962 }
963 }
964 &:hover {
965 background-color: #25c765;
966 &:before {
967 top: 0px;
968 }
969 .agent-timeslot-label {
970 display: block;
971 }
972 }
973 }
974 .agent-timeslot-tick {
975 display: none;
976 }
977 &:last-child {
978 border-bottom: none;
979 .agent-timeslot-tick {
980 position: absolute;
981 display: block;
982 top: 25px;
983 left: 53%;
984 transform: translateX(-50%);
985 font-size: floor($font-size-base * 0.6);
986 text-align: center;
987 color: rgba(0,0,0,0.4);
988 text-transform: uppercase;
989 line-height: 1.4;
990 font-weight: $body-font-weight-bold;
991 letter-spacing: 1px;
992 strong {
993 display: block;
994 color: rgba(0,0,0,1);
995 font-size: floor($font-size-base * 0.8);
996 line-height: 1;
997 }
998 }
999 .agent-timeslot.with-tick {
1000 &:after {
1001 display: block;
1002 content: "";
1003 position: absolute;
1004 width: 1px;
1005 left: 50%;
1006 height: 5px;
1007 bottom: -11px;
1008 background-color: rgba(0,0,0,0.2);
1009 }
1010 }
1011 }
1012 }
1013
1014
1015 .tall-slots-timeline {
1016 .agent-day-availability-w {
1017 .agent-avatar-w {
1018 display: none;
1019 }
1020 .agent-timeslot {
1021 height: 29px;
1022 }
1023 &:last-child .agent-timeslot-tick {
1024 top: 43px;
1025 }
1026 }
1027 }
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054 $avatar-size: 40px;
1055 $avatar-gap: 30px;
1056
1057 .agent-day-bookings-timeline-compact-w {
1058 position: relative;
1059 display: flex;
1060 .agents-avatars {
1061 flex: 0;
1062 margin-right: 20px;
1063 padding-top: 30px;
1064 .avatar-w {
1065 height: $avatar-size + $avatar-gap;
1066 padding: calc($avatar-gap/2) 0px;
1067 text-decoration: none;
1068 position: relative;
1069 .avatar-i {
1070 height: $avatar-size;
1071 display: block;
1072 width: $avatar-size;
1073 border-radius: 50%;
1074 background-size: cover;
1075 background-position: center center;
1076 span {
1077 display: none;
1078 position: absolute;
1079 bottom: 100%;
1080 left: 50%;
1081 background-color: #111;
1082 color: #fff;
1083 font-size: floor($font-size-base * 1);
1084 font-weight: $body-font-weight-bold;
1085 padding: 10px 15px;
1086 z-index: 9999;
1087 transform: translate(-50%, -5px);
1088 white-space: nowrap;
1089 border-radius: $tooltip-border-radius;
1090 }
1091 &:hover {
1092 span {
1093 display: block;
1094 }
1095 }
1096 }
1097 &:last-child {
1098 }
1099 &:hover {
1100 }
1101 }
1102 }
1103 .agents-timelines-w {
1104 flex: 1;
1105 position: relative;
1106 .current-time-indicator {
1107 width: 2px;
1108 background-color: #ff7c7c;
1109 position: absolute;
1110 top: 5px;
1111 bottom: 0px;
1112 z-index: 998;
1113 span {
1114 position: absolute;
1115 top: 0px;
1116 left: 50%;
1117 transform: translate(-50%, -100%);
1118 background-color: #fc6262;
1119 padding: 3px 5px;
1120 border-radius: 4px;
1121 color: #fff;
1122 font-weight: $body-font-weight-bold;
1123 font-size: floor($font-size-base * 0.8);
1124 }
1125 }
1126 }
1127 .timeline-bottom-w {
1128 display: flex;
1129 }
1130 .timeline-top-w {
1131 display: flex;
1132 height: 30px;
1133 }
1134 .timeslot {
1135 flex: 1;
1136 &:last-child:not(:first-child) {
1137 width: 1px;
1138 flex: 0 0 1px;
1139 }
1140 &.with-tick {
1141 .tick {
1142 position: absolute;
1143 z-index: 2;
1144 top: 30px;
1145 bottom: 35px;
1146 width: 1px;
1147 background-color: #ebeff2;
1148 }
1149 }
1150 .timeslot-time {
1151 font-weight: $body-font-weight-bold;
1152 font-size: floor($font-size-base * 0.8);
1153 text-align: center;
1154 line-height: 1.2;
1155 transform: translateX(-50%);
1156 display: inline-block;
1157 .timeslot-hour {
1158
1159 }
1160 .timeslot-ampm {
1161 color: $color-faded;
1162 font-size: floor($font-size-base * 0.6);
1163 letter-spacing: 1px;
1164 text-transform: uppercase;
1165 }
1166 }
1167 }
1168
1169 .agent-timeline-w {
1170 padding: 0px;
1171 position: relative;
1172 .agent-timeline {
1173 height: $avatar-size + $avatar-gap;
1174 position: relative;
1175 &:hover {
1176 background-color: #fafafb;
1177 }
1178 .booking-blocks {
1179 position: absolute;
1180 top: 50%;
1181 left: 0px;
1182 right: 0px;
1183 }
1184 .booking-block {
1185 height: 20px;
1186 z-index: 3;
1187 position: absolute;
1188 top: 50%;
1189 transform: translateY(-50%);
1190 cursor: pointer;
1191 box-shadow: 0px 0px 0px 1px #fff;
1192 background-color: rgba(0,0,0,0.2);
1193 border-radius: $border-radius;
1194 &.status-pending {
1195 &:before {
1196 @include latepointfont_admin("\e94e");
1197 position: absolute;
1198 top: 50%;
1199 transform: translateY(-50%);
1200 right: 5px;
1201 color: #fff;
1202 font-size: 14px;
1203 }
1204 }
1205 &.os-loading {
1206 &:after {
1207 @include loading-circle(#fff);
1208 }
1209 }
1210 &:hover {
1211 }
1212 .appointment-box-small {
1213 position: absolute;
1214 top: 0px;
1215 left: 50%;
1216 transform: translate(-50%, -110%);
1217 visibility: hidden;
1218 opacity: 0;
1219 transition: all 0.2s ease;
1220 }
1221 &:hover {
1222 .appointment-box-small {
1223 transform: translate(-50%, -105%);
1224 visibility: visible;
1225 opacity: 1;
1226 }
1227 }
1228 }
1229 }
1230 }
1231 }
1232
1233
1234 .os-info-tile {
1235 padding: 15px 15px;
1236 display: flex;
1237 align-items: center;
1238 margin-bottom: 30px;
1239
1240 animation: 0.6s cubic-bezier(.45,1.1,.4,1) 0s wizardWrapperAnimation;
1241 animation-fill-mode: both;
1242
1243 .os-tile-value {
1244 font-size: floor($font-size-base * 2.8);
1245 color: $brand-primary;
1246 font-weight: $body-font-weight-bold;
1247 line-height: 1.2;
1248 }
1249 .os-tile-info {
1250 flex: 1;
1251 padding-left: 25px;
1252 }
1253 .os-tile-label {
1254 font-weight: $body-font-weight-bold;
1255 font-size: floor($font-size-base * 1.1);
1256 & + .os-tile-desc {
1257 margin-top: 5px;
1258 }
1259 }
1260 .os-tile-desc {
1261 color: $color-faded;
1262 }
1263 &.tile-centered {
1264 text-align: center;
1265 display: block;
1266 padding: 15px;
1267 .os-tile-info {
1268 padding-left: 0px;
1269 }
1270 }
1271 &.os-smaller {
1272 padding: 15px 20px;
1273 .os-tile-value {
1274 font-size: floor($font-size-base * 2.5);
1275 }
1276 .os-tile-label {
1277 font-size: floor($font-size-base * 1);
1278 color: $color-faded;
1279 }
1280 }
1281 }
1282
1283
1284 .service-type-donut-chart-w {
1285 padding: 15px;
1286 align-items: center;
1287 @include white-box();
1288 margin-bottom: 30px;
1289 .service-type-donut-chart-i {
1290 padding: 0px 15% 10px;
1291 }
1292 .service-type-donut-chart-data {
1293 padding: 10px;
1294 padding-left: 20px;
1295 }
1296 &.on-agent-dashboard {
1297 box-shadow: none;
1298 padding: 0px;
1299 .service-type-donut-chart-data {
1300 padding: 0px;
1301 padding-top: 20px;
1302 }
1303 .chart-labels {
1304 display: flex;
1305 justify-content: space-between;
1306 flex-wrap: wrap;
1307 .chart-label {
1308 flex: 0 0 47%;
1309 }
1310 }
1311 }
1312 }
1313
1314 .chart-heading {
1315 color: $brand-primary;
1316 margin-top: 0px;
1317 & + .chart-labels {
1318 margin-top: 15px;
1319 }
1320 }
1321 .chart-labels {
1322 padding-left: 15px;
1323 .chart-label-color {
1324 width: 8px;
1325 height: 8px;
1326 position: absolute;
1327 top: 5px;
1328 left: -16px;
1329 }
1330 .chart-label {
1331 margin-bottom: 5px;
1332 position: relative;
1333 .name {
1334 font-weight: $body-font-weight-bold;
1335 }
1336 .value {
1337 color: $color-faded;
1338 font-size: $font-size-base * 0.8;
1339 }
1340 }
1341 }
1342
1343 .circles-wrp {
1344 display: block!important;
1345 svg {
1346 display: block;
1347 }
1348 }
1349
1350 .appointment-box-detailed {
1351 & + .appointment-box-detailed {
1352 margin-top: 20px;
1353 padding-top: 20px;
1354 border-top: 1px solid rgba(0,0,0,0.1);
1355 }
1356 .appointment-main-info {
1357 display: flex;
1358 align-items: center;
1359 .appointment-color-elem {
1360 width: 10px;
1361 height: 10px;
1362 margin-right: 15px;
1363 }
1364 }
1365
1366
1367
1368 .appointment-service-name {
1369 font-size: floor($font-size-base * 1.4);
1370 color: $brand-primary;
1371 font-weight: $body-font-weight-bold;
1372 margin-right: auto;
1373 border-bottom: 1px dotted rgba($brand-primary, 0.6);
1374 display: inline-block;
1375 }
1376 .appointment-date-w {
1377 .appointment-date {
1378 color: $color-faded;
1379 display: inline-block;
1380 }
1381 .appointment-time {
1382 display: inline-block;
1383 color: $brand-primary;
1384 margin-left: 3px;
1385 font-weight: $body-font-weight-bold;
1386 }
1387 }
1388 }
1389 .appointment-boxes-squared-w {
1390 .appointment-boxes-caption {
1391 flex: 0 0 32px;
1392 width: 32px;
1393 border: 1px solid $brand-primary;
1394 color: $brand-primary;
1395 border-radius: 6px;
1396 background-color: #fff;
1397 box-shadow: 4px 4px 0px 0px rgba($brand-primary, 0.1);
1398 position: relative;
1399 div {
1400 white-space: nowrap;
1401 position: absolute;
1402 top: 50%;
1403 left: 50%;
1404 transform: translate(-50%, -50%) rotate(90deg);
1405 font-size: 14px;
1406 text-transform: uppercase;
1407 letter-spacing: 2px;
1408 line-height: 1;
1409 font-weight: $body-font-weight-bold;
1410 }
1411 }
1412 .appointment-time-left {
1413 color: #bb6767;
1414 font-weight: $body-font-weight-bold;
1415 font-size: floor($font-size-base * 0.8);
1416 margin-bottom: 3px;
1417 border-radius: $border-radius;
1418 display: inline-block;
1419 }
1420 }
1421 .appointment-box-squared {
1422 display: flex;
1423 flex-direction: column;
1424 position: relative;
1425 cursor: pointer;
1426 transition: transform 0.2s ease;
1427 &:not(:last-child){
1428 border-bottom: 1px solid $border-color-lightest;
1429 }
1430 &:hover {
1431 .appointment-main-info {
1432 .appointment-color-elem {
1433 transform: translateY(-50%) scale(0);
1434 opacity: 0;
1435 }
1436 .appointment-link {
1437 opacity: 1;
1438 transform: translate(5px, -50%);
1439 }
1440 .avatar-w {
1441 }
1442 }
1443 }
1444 &.os-loading {
1445 &:after {
1446 @include loading-circle($brand-primary);
1447 right: 5px;
1448 left: auto;
1449 top: 14px;
1450 transform: none;
1451 }
1452 }
1453
1454 & + .appointment-box-squared {
1455
1456 }
1457 .appointment-main-info {
1458 padding: 20px 0px 20px $widget-padding;
1459 position: relative;
1460 .avatar-w {
1461 transition: transform 0.1s ease;
1462 }
1463 .appointment-link {
1464 color: $headings-color;
1465 font-weight: $body-font-weight-bold;
1466 position: absolute;
1467 top: 50%;
1468 right: 32px;
1469 transform: translate(0px, -50%);
1470 transition: transform 0.2s ease;
1471 opacity: 0;
1472 padding: 8px;
1473 border-radius: $border-radius;
1474 background-color: #fff;
1475 border: 1px solid #eee;
1476 font-size: 14px;
1477 width: 35px;
1478 height: 35px;
1479 line-height: 1;
1480
1481 i {
1482 display: block;
1483 position: absolute;
1484 top: 50%;
1485 left: 50%;
1486 transform: translate(-50%, -50%);
1487 }
1488 }
1489 .appointment-color-elem {
1490 position: absolute;
1491 top: 50%;
1492 right: 40px;
1493 transform: translateY(-50%) scale(1);
1494 width: 12px;
1495 height: 12px;
1496 border-radius: $border-radius;
1497 transition: all 0.2s cubic-bezier(0.05, 0.45, 0.1, 1);
1498 opacity: 0.7;
1499 }
1500 .appointment-main-info-i {
1501 display: flex;
1502 align-items: center;
1503 padding-right: 45px;
1504 .appointment-date-i {
1505 display: flex;
1506 .appointment-date {
1507 margin-right: 5px;
1508 white-space: nowrap;
1509 }
1510 }
1511 }
1512 .avatar-w {
1513 @include avatar(50px);
1514 flex: 0 0 50px;
1515 position: relative;
1516 margin-right: 20px;
1517 .agent-info-tooltip {
1518 display: none;
1519 position: absolute;
1520 bottom: 50%;
1521 left: 50%;
1522 background-color: #111;
1523 color: #fff;
1524 font-size: floor($font-size-base * 0.9);
1525 font-weight: $body-font-weight-bold;
1526 padding: 6px 10px;
1527 z-index: 9999;
1528 white-space: nowrap;
1529 border-radius: $tooltip-border-radius;
1530 animation: 0.2s cubic-bezier(.45,1.1,.4,1) 0s toolTipOpen;
1531 animation-fill-mode: both;
1532 }
1533 &:hover {
1534 .agent-info-tooltip {
1535 display: block;
1536 }
1537 }
1538 }
1539 }
1540
1541
1542 .appointment-service-name {
1543 font-size: $body-font-size-m;
1544 font-weight: $body-font-weight-bold;
1545 color: $headings-color;
1546 margin-right: auto;
1547 margin-bottom: 2px;
1548 }
1549 .appointment-date-w {
1550 font-size: floor($font-size-base * 0.9);
1551 .appointment-date {
1552 color: $color-faded;
1553 margin-bottom: 1px;
1554 }
1555 .appointment-time {
1556 font-weight: $body-font-weight-bold;
1557 }
1558 }
1559
1560 .appointment-capacity-info {
1561 padding: 20px;
1562 padding-top: 15px;
1563 .appointment-capacity-info-label {
1564 display: flex;
1565 justify-content: space-between;
1566 align-items: center;
1567 margin-bottom: 4px;
1568 span, strong {
1569 display: block;
1570 }
1571 span {
1572 color: $color-faded;
1573 }
1574 strong {
1575 color: $headings-color;
1576 }
1577 }
1578 }
1579 .appointment-capacity-progress-w {
1580 background-color: rgba($brand-primary, 0.1);
1581 border-radius: $border-radius-xs;
1582 .appointment-capacity-progress {
1583 height: 10px;
1584 background-color: $brand-primary;
1585 border-radius: $border-radius-xs;
1586 }
1587 }
1588 }
1589
1590
1591
1592 .os-widget-stats {
1593 .stats-grid {
1594
1595 }
1596 .stats-grid-row {
1597 display: flex;
1598 border-bottom: 1px solid rgba(0,0,0, 0.1);
1599 }
1600 .stats-grid-box {
1601 flex: 0 0 50%;
1602 padding: 40px 10px;
1603 text-align: center;
1604 & + .stats-grid-box {
1605 border-left: 1px solid rgba(0,0,0,0.1);
1606 }
1607 }
1608 .stats-grid-value {
1609 font-size: floor($font-size-base * 2.2);
1610 font-weight: $body-font-weight-bold;
1611 line-height: 1.3;
1612 }
1613 .stats-grid-label {
1614 color: $color-faded;
1615 font-size: floor($font-size-base * 1.1);
1616 }
1617
1618 .stats-progress-w {
1619 padding: 25px 20px;
1620 .stats-progress-labels {
1621 display: flex;
1622 justify-content: space-between;
1623 margin-bottom: 10px;
1624 }
1625 .stats-progress-value {
1626
1627 }
1628 .stats-progress-label {
1629 color: $color-faded;
1630 margin-left: 3px;
1631 }
1632 .stats-progress-sub-value {
1633 margin-left: auto;
1634 color: $brand-primary;
1635 }
1636 .stats-progress-sub-label {
1637 color: $color-faded;
1638 margin-left: 3px;
1639 }
1640 .stats-progress {
1641 background-color: #EEF4F1;
1642 .stats-progress-bar {
1643 height: 5px;
1644 background-color: #6EE8A4;
1645 }
1646 }
1647 }
1648 }
1649
1650 .os-widget {
1651 .stats-tabs {
1652 display: flex;
1653 gap: 20px;
1654 padding: 25px $widget-padding;
1655 }
1656 .stats-tab {
1657 flex: 1;
1658 position: relative;
1659 padding-right: 20px;
1660 &:last-child {
1661 border-right: none;
1662 padding-right: 0;
1663 }
1664 &.active {
1665 background-color: #fff;
1666 &:before {
1667 // content: "";
1668 // height: 1px;
1669 // background-color: $brand-primary;
1670 // left: -1px;
1671 // right: -1px;
1672 // bottom: -1px;
1673 // position: absolute;
1674 }
1675 .stats-tab-value {
1676 color: $brand-primary;
1677 line-height: 1.1;
1678 }
1679 }
1680 & + .stats-tab {
1681 }
1682 }
1683 .stats-tab-value {
1684 font-size: $body-font-size-l;
1685 line-height: 1.3;
1686 color: $headings-color;
1687 white-space: nowrap;
1688 .stats-tab-value-self {
1689 display: inline-block;
1690 }
1691 .stats-change {
1692 display: inline-block;
1693 vertical-align: baseline;
1694 color: $headings-color;
1695 font-size: floor($font-size-base * 0.8);
1696 font-weight: $body-font-weight-bold;
1697 cursor: pointer;
1698
1699 .stats-change-value {
1700 display: block;
1701 position: relative;
1702 padding: 0px;
1703 color: $body-color;
1704 }
1705 .stats-change-label {
1706 white-space: nowrap;
1707 display: none;
1708 z-index: 9999;
1709 color: $brand-primary;
1710 strong {
1711 }
1712 }
1713 span {
1714 display: block;
1715 }
1716 &:hover {
1717 }
1718 &.change-positive {
1719 .stats-change-label {
1720 color: #09a579;
1721 }
1722 .stats-change-value {
1723 color: #09a579;
1724
1725 &:after {
1726 border-bottom: 5px solid #39B570;
1727 }
1728 }
1729 }
1730 &.change-negative {
1731 .stats-change-label {
1732 border-color: #A16262;
1733 color: #A16262;
1734 }
1735 .stats-change-value {
1736 border-color: #A16262;
1737 color: #A16262;
1738 &:after {
1739 border-top: 5px solid #A16262;
1740 transform: translateY(0%);
1741 }
1742 }
1743 }
1744 }
1745 }
1746 .stats-tab-label {
1747 font-size: floor($font-size-base * 0.9);
1748 white-space: nowrap;
1749 color: $color-faded;
1750 }
1751 .stats-tab-info {
1752 position: absolute;
1753 top: 0px;
1754 right: 10px;
1755 font-weight: $body-font-weight-bold;
1756 width: 15px;
1757 height: 15px;
1758 border-radius: 8px;
1759 line-height: 15px;
1760 text-align: center;
1761 font-size: 11px;
1762 background-color: #eef1f4;
1763 color: #4f525a;
1764 cursor: help;
1765 .stats-tab-info-icon {
1766 font-weight: $body-font-weight-black;
1767 font-size: 10px;
1768 }
1769 .stats-tab-info-tooltip {
1770 display: none;
1771 width: 250px;
1772 line-height: 1.3;
1773 background-color: #111;
1774 border-radius: $border-radius-lg;
1775 color: #fff;
1776 padding: 7px;
1777 font-size: floor($font-size-base * 0.9);
1778 position: absolute;
1779 top: 0px;
1780 left: 50%;
1781 transform: translate(-50%, -100%);
1782 z-index: 9999;
1783 box-shadow: 0px 2px 10px rgba(0,0,0,0.1);
1784 }
1785 &:hover {
1786 background-color: #ddd;
1787 .stats-tab-info-tooltip {
1788 display: block;
1789 }
1790 }
1791 }
1792 .stats-charts-w {
1793 display: flex;
1794 }
1795 .stats-line-chart-w {
1796 padding-top: 0px;
1797 flex: 1;
1798 canvas {
1799 }
1800 }
1801 .stats-donut-chart-w {
1802 flex: 0 0 200px;
1803 border-left: 1px solid $border-color-lightest;
1804 padding-top: 0px;
1805 position: relative;
1806 canvas {
1807 margin: 0px auto;
1808 }
1809 .status-donut-label {
1810 text-align: center;
1811 color: $headings-color;
1812 font-size: floor($font-size-base * 0.9);
1813 padding-top: 54px;
1814 margin-bottom: 0px;
1815 font-weight: $body-font-weight-bold;
1816 }
1817 }
1818 }
1819
1820
1821 .os-widget-today-info {
1822 border: none;
1823 margin-bottom: 0px;
1824 .os-widget-day-picker {
1825 font-size: floor($font-size-base * 2);
1826 font-weight: $body-font-weight-bold;
1827 margin-bottom: 10px;
1828 }
1829 .day-info-progress {
1830 background-color: #edf1f7;
1831 display: flex;
1832 height: 2px;
1833 border-radius: $border-radius-xs;
1834 .di-progress-value {
1835 height: 2px;
1836 position: relative;
1837 .progress-label-w {
1838 transform: translateY(-120%);
1839 transition: all 0.1s ease-in;
1840 display: none;
1841 position: absolute;
1842 top: 0px;
1843 right: 0px;
1844 background-color: #000;
1845 padding: 10px;
1846 font-size: floor($font-size-base * 1.1);
1847 .progress-label {
1848 color: rgba(255,255,255,0.6);
1849 font-size: floor($font-size-base * 0.7);
1850 text-transform: uppercase;
1851 letter-spacing: 1px;
1852 white-space: nowrap;
1853 margin-top: 5px;
1854 }
1855 .progress-value {
1856 white-space: nowrap;
1857 color: #fff;
1858 span {
1859 }
1860 strong {
1861 }
1862 }
1863 }
1864 &:hover {
1865 .progress-label-w {
1866 transform: translateY(-105%);
1867 display: block;
1868 }
1869 }
1870 }
1871 }
1872 .day-main-info {
1873 padding-bottom: 20px;
1874 text-align: center;
1875 }
1876 .big-counter {
1877 font-size: floor($font-size-base * 4.3);
1878 line-height: 1;
1879 color: $headings-color;
1880 font-weight: $body-font-weight-bold;
1881 }
1882 .counter-label {
1883 color: $color-faded;
1884 font-size: floor($font-size-base * 1.4);
1885 }
1886 .day-sub-info {
1887 }
1888 .day-sub-info-col {
1889 display: flex;
1890 padding: 15px 0px;
1891 &.with-avatars {
1892 display: flex;
1893 align-items: center;
1894 justify-content: space-between;
1895 padding: 9px 0px;
1896 .agents-on-duty-avatars {
1897 display: flex;
1898 flex-direction: row-reverse;
1899 position: relative;
1900 }
1901 .avatar-w {
1902 @include avatar(30px);
1903 box-shadow: 0px 0px 0px 2px #fff;
1904 margin-right: -5px;
1905 &:first-child {
1906 margin-right: 0px;
1907 }
1908 }
1909 }
1910 }
1911 .sub-info-value {
1912 font-weight: $body-font-weight-bold;
1913 display: inline-block;
1914 margin-left: auto;
1915 white-space: nowrap;
1916 }
1917 .sub-info-period {
1918 text-align: right;
1919 white-space: nowrap;
1920 padding-left: 10px;
1921 & + .sub-info-period {
1922 margin-top: 5px;
1923 }
1924 }
1925 .sub-info-label {
1926 color: $color-faded;
1927 font-weight: $body-font-weight-bold;
1928 white-space: nowrap;
1929 }
1930 }
1931
1932 .timeline-type-toggle {
1933 margin-left: auto;
1934 display: flex;
1935 border: 1px solid #ced6df;
1936 font-size: floor($font-size-base * 0.95);
1937 border-radius: $border-radius;
1938 cursor: pointer;
1939 .timeline-type-option {
1940 white-space: nowrap;
1941 flex: 0;
1942 padding: 8px 12px;
1943 border-radius: $border-radius;
1944 color: $color-faded;
1945 &.active {
1946 box-shadow: 0px 0px 0px 1px $headings-color;
1947 background-color: #fff;
1948 color: $headings-color;
1949 }
1950 &:hover:not(.active) {
1951 color: $body-color;
1952 }
1953 }
1954 }
1955
1956 .timeline-with-info-w {
1957 display: flex;
1958 align-items: stretch;
1959 border-radius: $border-radius-lg;
1960 &.dark {
1961 background-color: #1f3fab;
1962 padding: 15px;
1963 .timeline-and-availability-w {
1964 padding-left: 30px;
1965 padding-bottom: 20px;
1966 color: rgba(255,255,255,0.8);
1967 }
1968 .timeline-controls {
1969 padding-top: 20px;
1970 select {
1971 color: #fff;
1972 }
1973 }
1974 .agent-day-bookings-timeline-compact-w .timeslot.with-tick .tick {
1975 background-color: rgba(255,255,255,0.1);
1976 }
1977 .agent-timeline-w {
1978 .agent-timeline {
1979 background-color: #18379f;
1980 .booking-block {
1981 box-shadow: 0px 0px 0px 1px #18379f;
1982 }
1983 }
1984 }
1985 }
1986 .timeline-and-availability-contents {
1987 padding: calc($widget-padding/2) $widget-padding $widget-padding $widget-padding;
1988 &.shows-appointments {
1989 .agent-day-availability-w {
1990 padding: 0px;
1991 .agent-timeslot {
1992 background-color: transparent;
1993 border-left: 1px solid transparent;
1994 height: $avatar-size + $avatar-gap;
1995 cursor: copy;
1996 .agent-timeslot-label {
1997 }
1998 &:hover:not(.is-off):not(.is-booked) {
1999 background-color: #e7ffec;
2000 background-image: radial-gradient(#81dfa3 1px, transparent 0);
2001 background-size: 6px 6px;
2002 background-position: top right;
2003 }
2004 &.is-off:hover, &.is-booked:hover {
2005 background-color: #ffe7e7;
2006 background-image: radial-gradient(#df8181 1px, transparent 0);
2007 background-size: 6px 6px;
2008 background-position: top right;
2009 }
2010 &.is-booked {
2011 cursor: not-allowed;
2012 }
2013 &.is-off {
2014 cursor: not-allowed;
2015 &:hover {
2016 background-color: #ffc4c4;
2017 }
2018 .agent-timeslot-label {
2019 left: 50%;
2020 top: 0;
2021 transform: translate3d(-50%, -10px, 0);
2022 }
2023 }
2024 }
2025 }
2026 .agent-timeline-w .agent-timeline {
2027 display: block;
2028 }
2029 }
2030 &.shows-availability {
2031 .agent-day-availability-w {
2032 display: block;
2033 }
2034 .agent-timeline-w .agent-timeline .booking-blocks {
2035 display: none;
2036 }
2037 }
2038 }
2039 .timeline-controls {
2040 display: flex;
2041 align-items: center;
2042 font-weight: $body-font-weight-bold;
2043 label:first-child {
2044 }
2045 .select-w, label {
2046 display: block;
2047 margin: 0px;
2048 }
2049 select, label, .range-picker-value {
2050 font-size: floor($headings-font-size * 0.85);
2051 }
2052 select {
2053 background-color: transparent;
2054 margin: 0px;
2055 appearance: none;
2056 //color: $brand-primary;
2057 border: none;
2058 padding: 0px 5px;
2059 border-radius: 6px;
2060 box-shadow: none;
2061 padding-right: 25px;
2062 background-size: 14px 14px;
2063 &:hover {
2064 background-color: rgba(0,0,0,0.05);
2065 color: $body-color;
2066 }
2067 }
2068 .select-w {
2069 position: relative;
2070 margin-right: 10px;
2071 }
2072 label {
2073 flex: 0;
2074 white-space: nowrap;
2075 color: $color-faded;
2076 margin-right: 5px;
2077 }
2078 }
2079 .timeline-and-availability-w {
2080 flex: 1;
2081 }
2082
2083 .timeline-info-w {
2084 padding: 40px;
2085 font-size: floor($font-size-base * 1);
2086 flex: 0;
2087 &.dark {
2088 //background-color: #071851;
2089 //background-image: linear-gradient(45deg, #010208, #071f69);
2090 background-color: $brand-primary;
2091 color: #fff;
2092 border-left: none;
2093 margin: -1px;
2094 margin-left: 0px;
2095 border-radius: $border-radius-lg;
2096 .sub-info-label {
2097 color: rgba(255,255,255,0.6);
2098 }
2099 .day-sub-info-col.with-avatars .avatar-w {
2100 box-shadow: 0px 0px 0px 2px $brand-primary;
2101 }
2102 .day-sub-info-col {
2103 border-bottom-color: rgba(255,255,255,0.1);
2104 }
2105 .day-info-progress {
2106 background-color: rgba(255,255,255,0.1);
2107 }
2108 }
2109
2110 .os-date-range-picker {
2111 cursor: pointer;
2112 position: relative;
2113 margin-bottom: 20px;
2114 font-size: floor($headings-font-size * 1.4);
2115 white-space: nowrap;
2116 > .range-picker-value, .latepoint-icon {
2117 z-index: 2;
2118 position: relative;
2119 vertical-align: middle;
2120 }
2121 > .latepoint-icon {
2122 font-size: 20px;
2123 margin-left: 10px;
2124 }
2125 &:after {
2126 content: "";
2127 position: absolute;
2128 top: -5px;
2129 left: -10px;
2130 bottom: -10px;
2131 right: -10px;
2132 z-index: 1;
2133 background-color: rgba(255,255,255,0.1);
2134 border-radius: 8px;
2135 display: none;
2136 }
2137 &:hover {
2138 &:after {
2139 display: block;
2140 }
2141 }
2142 }
2143 .latepoint-btn {
2144 display: block;
2145 background-color: #1e7bff;
2146 text-align: center;
2147 margin-top: 20px;
2148 padding: 12px 15px;
2149 box-shadow: 0px 2px 4px rgba(0,0,0,0);
2150 }
2151
2152 .os-add-box {
2153 border: none;
2154 background-color: $brand-primary;
2155 padding: 10px;
2156 margin-top: 15px;
2157 border-radius: $border-radius-btn-lg;
2158 .add-box-label {
2159 margin-right: auto;
2160 color: #fff;
2161 margin-left: 10px;
2162 }
2163 .add-box-graphic-w {
2164 margin-left: auto;
2165 width: 30px;
2166 height: 30px;
2167 .add-box-plus {
2168 background-color: #fff;
2169 color: $brand-primary;
2170 box-shadow: 0 0 0px 5px rgba(0,0,0,0.1);
2171 }
2172 }
2173 }
2174 }
2175 }