.os-widget { margin-bottom: $content-padding; position: relative; background-color: #fff; border-radius: $border-radius-lg; @include white-box(); &.os-loading { &:after { @include loading-circle($brand-primary); } animation:animate_appointment_small_box 0.8s ease infinite; } &.os-widget-transparent { background-color: transparent; border: none; padding: 0px; box-shadow: none; .os-widget-header { padding: 9px 10px 10px 37px; border: none; &:before { display: none; } } .os-widget-content { padding: 0px; } } .os-widget-header { font-size: floor($font-size-base * 1.2); border-bottom: 1px solid $border-color-lightest; color: $headings-color; margin-top: 0px; line-height: 1.2; padding: $widget-padding $widget-padding calc($widget-padding/2) $widget-padding; position: relative; &:before { content: ""; z-index: -1; width: 60px; height: 60px; position: absolute; top: 5px; right: 5px; border-radius: 0 30px 0 50px; background-image: radial-gradient(#d6d6d6 1px, transparent 0); background-size: 12px 12px; background-position: top right; } &.centered { text-align: center; } h3 { font-size: floor($headings-font-size * 0.95); padding: 0; margin: 0px; line-height: 1; color: $headings-color; } &.with-actions { .os-widget-header-text { position: relative; padding: 0px; margin-bottom: 15px; vertical-align: middle; } .os-widget-header-actions-trigger { display: none; font-size: 20px; } .os-widget-header-actions { margin-left: auto; text-align: right; display: flex; gap: 8px; align-items: center; select, .os-date-range-picker { display: block; white-space: nowrap; line-height: 1.2; &:last-child { margin-right: 0px; } } .os-date-range-picker { cursor: pointer; border-radius: $border-radius; background-color: #fff; border: 1px solid $border-color-strong; box-shadow: none; min-height: 26px; font-size: floor($font-size-base * 0.95); padding: 8px 6px 8px 12px; display: flex; gap: 5px; align-items: center; vertical-align: middle; line-height: 1.2; i,span { display: inline-block; vertical-align: middle; } i { font-size: 12px; } span { color: $body-color; } &:hover { background-color: #fff; } } } select { max-width: 130px; min-height: 26px; color: $body-color; background-color: #fff; border: 1px solid $border-color-strong; box-shadow: none; border-radius: $border-radius; font-size: floor($font-size-base * 0.95); padding: 8px 18px 8px 12px; } } &:before { // $size: 4px; // content: ""; // width: $size; // height: $size; // background-color: rgba($brand-primary, 1); // box-shadow: ($size * 2) ($size * 2) 0px rgba($brand-primary, 0.6), // 0px ($size * 2) 0px rgba($brand-primary, 0.6), // 0px ($size * 4) 0px rgba($brand-primary, 0.3), // ($size * 2) ($size * 6) 0px rgba($brand-primary, 0.7), // ($size * 2) ($size * 4) 0px rgba($brand-primary, 0.4); // position: absolute; // top: 11px; // left: 12px; } } .os-widget-content { padding: calc($widget-padding/2) $widget-padding $widget-padding $widget-padding; &.no-padding { padding: 0; } } &.os-widget-boxed { background-color: #fff; box-shadow: $box-shadow; padding: 15px; border-radius: $border-radius-xs; .os-widget-header { padding-top: 0px; border-bottom: none; } } } .agent-stats-box { display: flex; align-items: center; text-decoration: none; color: $body-color; transition: all 0.2s ease; &:hover { .agent-stats .agent-stats-chart .ac-progress-value { } } & + .agent-stats-box { } .agent-info { text-align: center; text-decoration: none; color: $headings-color; flex: 0; padding: 20px; padding-left: 0px; margin: auto; position: relative; &:hover { .agent-name { display: block; } .avatar-w { } } .avatar-w { @include avatar(45px); margin: 0px auto; } .agent-name { @include tooltip(); } } .agent-stats { flex: 1; .agent-stats-values { display: flex; align-items: flex-start; } .agent-stats-value { flex: 0; padding: 10px 20px 0px 0px; color: $color-faded; font-size: floor($font-size-base * 0.9); strong { font-size: floor($font-size-base * 1.3); color: $headings-color; } & + .agent-stats-value { } } .agent-stats-chart { padding: 0px; .agent-chart-progress { display: flex; } .ac-progress-value { cursor: pointer; padding: 10px 0px; position: relative; .ac-progress-value-line { height: 2px; } .progress-label-w { @include tooltip(); bottom: auto; top: -100%; .progress-label { color: rgba(255,255,255,0.7); font-size: floor($font-size-base * 0.8); white-space: nowrap; margin-top: 5px; } .progress-value { font-weight: $body-font-weight-bold; white-space: nowrap; color: #fff; span { } strong { } } } &:hover { .progress-label-w { transform: translate(-50%, -105%); display: block; } .ac-progress-value-line { transform: scaleY(2); border-radius: 0px; } } } } } .agent-sub-info { transition: transform 0.2s ease; .label { color: $color-faded; } .value { font-weight: $body-font-weight-bold; color: $brand-primary; } } } .appointment-box-large { @include white-box(); border-radius: 0px $border-radius-xs $border-radius-xs 0px; border-left: none; display: flex; align-items: center; position: relative; cursor: pointer; transition: all 0.2s ease; &.status-pending, &.status-payment_pending { .appointment-status-selector { background-color: #FFF2DA; } .appointment-box-actions { opacity: 1; } .aba-approve{ } .aba-reject { color: #D04C4C; span { border-bottom-color: #D04C4C; } &:hover { transform: scale(1.1); box-shadow: inset 0px 0px 0px 2px #D04C4C; } } } &.status-approved { .appointment-status-selector { background-color: #d4fbd7; } } &.status-cancelled { .appointment-status-selector { background-color: #ffe3e3; } } & + .appointment-box-large { margin-top: 30px; } .edit-appointment-btn { position: absolute; top: 10px; right: 10px; font-size: 14px; color: $brand-primary; cursor: pointer; } .appointment-box-actions { border-left: 1px solid rgba(0,0,0,0.05); flex: 0; opacity: 0.3; .aba-button-w { padding: 25px; font-size: floor($font-size-base * 1.2); font-weight: $body-font-weight-bold; color: $brand-primary; white-space: nowrap; transition: transform 0.1s ease; display: flex; span, i { display: block; } span { margin-left: 10px; border-bottom: 1px dotted $brand-primary; } & + .aba-button-w { border-top: 1px solid rgba(0,0,0,0.05); } } .aba-approve, .aba-reject { } .aba-approve{ } .aba-reject { color: #D04C4C; span { border-bottom-color: #D04C4C; } } } .appointment-info { padding: 25px; flex: 1; border-right: 1px solid rgba(0,0,0,0.05); .appointment-color-elem { position: absolute; top: -1px; left: 0px; bottom: -1px; width: 2px; } .appointment-service-name { font-weight: $body-font-weight-bold; font-size: floor($font-size-base * 1.5); margin-bottom: 15px; } .appointment-time { color: $color-faded; white-space: nowrap; .at-date { font-weight: $body-font-weight-bold; color: $brand-primary; font-size: floor($font-size-base * 1.2); margin-bottom: 3px; } .at-time { margin-bottom: 10px; } } .os-form-group { margin-bottom: 0px; } } .appointment-status-selector { padding: 10px 10px 10px 25px; margin: 0px -25px; margin-bottom: -25px; .os-form-group { display: flex; align-items: center; label { margin-right: 5px; color: $body-color; } } } .account-info-w { padding: 25px; flex: 1; align-items: center; .account-info-head { display: flex; margin-bottom: 15px; } .avatar-w { width: 40px; height: 40px; flex: 0 0 40px; border-radius: 50%; background-size: cover; background-position: center center; margin-right: 15px; box-shadow: 0px 0px 0px 5px rgba(255,255,255,0.4); } .account-info { } .account-info-label { color: $color-faded; } .account-name { font-weight: $body-font-weight-bold; font-size: floor($font-size-base * 1.2); color: $brand-primary; margin-top: 2px; } .account-property { margin-bottom: 5px; white-space: nowrap; display: flex; .label { color: $color-faded; flex: 0 0 50px; margin-right: 5px; } .value { flex: 1; font-weight: $body-font-weight-bold; } } } .account-info-w + .account-info-w { border-left: 1px solid rgba(0,0,0,0.05); } &:hover { } &.os-loading { &:after { @include loading-circle($brand-primary); left: 16px; top: 14px; transform: none; } } } .appointment-box-small { background: #FFFFFF; display: flex; align-items: center; position: relative; cursor: pointer; transition: all 0.2s ease; .edit-appointment-btn { position: absolute; top: 10px; right: 10px; font-size: 14px; color: $brand-primary; cursor: pointer; } .appointment-capacity-info { padding: 12px 20px 15px 20px; border-top: 1px solid rgba(0,0,0,0.05); .appointment-capacity-info-label { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; span, strong { display: block; } span { color: $color-faded; } strong { color: $headings-color; } } } .appointment-capacity-progress-w { background-color: rgba($brand-primary, 0.1); .appointment-capacity-progress { height: 10px; background-color: $brand-primary; border-radius: $border-radius; } } .appointment-info { padding: 10px 25px; flex: 1; position: relative; .appointment-color-elem { position: absolute; top: 0px; left: 0px; bottom: 0px; width: 2px; } .appointment-service-name { font-weight: $body-font-weight-bold; font-size: floor($font-size-base * 1.2); margin-bottom: 5px; } .appointment-time { white-space: nowrap; font-size: floor($font-size-base * 0.9); .at-date { color: $color-faded; margin-bottom: 1px; } .at-time { font-weight: $body-font-weight-bold; } } } .agent-info-w { padding: 18px 10px 18px 15px; display: flex; flex: 0 0 33%; align-items: center; border-left: 1px solid rgba(0,0,0,0.05); .avatar-w { width: 50px; height: 50px; flex: 0 0 50px; border-radius: 50%; background-size: cover; background-position: center center; margin-right: 15px; box-shadow: 0px 0px 0px 5px rgba(255,255,255,0.4); } .agent-info { } .agent-name { font-weight: $body-font-weight-bold; font-size: floor($font-size-base * 1); color: $brand-primary; margin-bottom: 3px; } .agent-property { margin-bottom: 2px; white-space: nowrap; .label { color: $color-faded; } .value { font-weight: $body-font-weight-bold; } } } .customer-info-w { padding: 18px 15px 18px 15px; display: flex; flex: 0 0 55%; align-items: center; overflow: hidden; border-left: 1px solid rgba(0,0,0,0.05); .avatar-w { width: 50px; height: 50px; flex: 0 0 50px; border-radius: 50%; background-size: cover; background-position: center center; margin-right: 15px; box-shadow: 0px 0px 0px 5px rgba(255,255,255,0.4); } .customer-info { } .customer-name { font-weight: $body-font-weight-bold; font-size: floor($font-size-base * 1); color: $brand-primary; margin-bottom: 3px; } .customer-property { margin-bottom: 2px; white-space: nowrap; .label { color: $color-faded; } .value { font-weight: $body-font-weight-bold; } } } .agent-info-w + .customer-info-w { flex: 0 0 33%; } &:hover { } &.os-loading { &:after { @include loading-circle($brand-primary); left: -10px; } animation:animate_appointment_small_box 0.8s ease infinite; } } .os-widget-daily-bookings { } .os-widget-daily-bookings, .os-widget-top-agents { .no-results-w { border: none; border-radius: 6px; &:first-child, &:nth-child(2) { display: block; } } } .os-dashboard-row { .os-dashboard-column.os-upcoming { flex: 0; margin-left: 0px; .os-widget { } .os-widget .os-widget-header { padding-left: $content-padding; } .os-widget .os-widget-content { padding-left: $content-padding; } } } .os-widget-upcoming-appointments { .no-results-w { padding: 20px 0px; .icon-w { margin-bottom: 15px; } .count-label { color: $color-faded; font-size: $font-size-base; margin-bottom: 5px; } .count-number { font-size: 38px; font-weight: $body-font-weight-bold; margin-bottom: 5px; color: $body-color; line-height: 1; } .latepoint-btn-link { span { border-bottom: 1px solid $brand-primary; } } } .appointment-box-small { padding: 0px 0px 15px 0px; margin-bottom: 15px; border-bottom: 1px solid $border-color-sub; .customer-info-w { padding: 0px 15px; } .appointment-info { padding: 0px 20px; } .appointment-color-elem { top: 7px; bottom: auto; left: 0px; width: 6px; height: 6px; } &:last-child { border-bottom: none; padding-bottom: 0px; margin-bottom: 0px; } &.os-loading { &:after { @include loading-circle($brand-primary, 20px); left: 3px; top: 10px; } animation:animate_appointment_small_box 0.8s ease infinite; .appointment-color-elem { border-radius: 10px; } } } .no-results-w:nth-child(8) { display: none; } } .os-widget-agents-bookings-timeline { .appointment-box-small { display: block; box-shadow: 0 20px 40px 0 rgba(108, 120, 143, 0.15), 0 1px 2px 0 rgba(206, 211, 222, 0.7); .appointment-info { flex: 1; padding: 10px 15px; } .customer-info-w { flex: 1; padding: 10px 15px; border-top: 1px solid rgba(0,0,0,0.05); border-left: none; .customer-name { font-size: floor($font-size-base * 1); } } } } .services-availability-list { .service-availability { border-bottom: 1px solid rgba(0,0,0,0.05); padding: 15px 0px; display: flex; align-items: center; } .service-color { height: 8px; width: 8px; margin-right: 15px; } .service-name { font-size: $font-size-base * 1.2; font-weight: $body-font-weight-bold; } .service-available-slots { margin-left: auto; color: $brand-primary; font-size: $font-size-base * 1.6; font-weight: $body-font-weight-bold; } } .daily-bookings-chart-w { height: 204px; padding: 0 $widget-padding calc($widget-padding/2) $widget-padding; } .agents-day-availability-timeslots { padding-bottom: 15px; } .agent-day-availability-w { position: relative; display: flex; align-items: center; padding: 20px 0px; z-index: 2; &:hover { } .agent-avatar-w { width: 35px; flex: 0 0 35px; margin-right: 15px; height: 35px; border-radius: 50%; background-size: cover; background-position: center center; position: relative; display: block; text-decoration: none; &:hover { } &.with-hover-name { span { display: none; position: absolute; bottom: 100%; left: 50%; background-color: #111; color: #fff; font-size: floor($font-size-base * 1); font-weight: $body-font-weight-bold; padding: 10px 15px; z-index: 9999; transform: translate(-50%, -5px); white-space: nowrap; border-radius: $tooltip-border-radius; } &:hover { span { display: block; } } } } .agent-timeslots { display: flex; justify-content: space-between; flex: 1; position: relative; } .agent-timeslot { height: 10px; flex-grow: 1; margin: 0px; border-left: 1px solid #fff; position: relative; cursor: pointer; background-color:#91e79e; background-color: #1041ff; background-color:$brand-primary; .agent-timeslot-success-label { color: rgba(255,255,255,0.8); } .agent-timeslot-label { display: none; padding: 8px 12px; line-height: 1; background-color: #111; color: #fff; font-size: floor($font-size-base * 0.9); font-weight: $body-font-weight-bold; position: absolute; white-space: nowrap; transition: all 0.4s ease; z-index: 9999; border: 1px solid #000; border-radius: $tooltip-border-radius; left: 50%; top: -5px; transform: translate3d(-50%, -100%, 0); box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.33), 0px 2px 6px rgba(0,0,0,0.1); .at-main-value { color: #fff; font-size: $body-font-size-m; } .at-sub-value { font-size: $body-font-size-xs; color: rgba(255,255,255,0.5); margin-bottom: 3px; } } &.os-loading { position: relative; &:after { display: block; content: ""; width: 14px; height: 14px; border-bottom: 2px solid #fff; border-left: 2px solid #fff; border-top: 2px solid #fff; border-right: 2px solid rgba(255,255,255,0); border-radius: 20px; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); animation: os-loading 700ms infinite linear; } } &.is-booked { background-color: #ff6363; background-color: #cbd7ff; background-color: #dae2ff; margin: 0px; border-radius: 0px; border-color: #fff; + .agent-timeslot:not(.is-booked) { } &:before { background-color: #f04739; } .agent-timeslot-label { background-color: #f04739; color: #fff; border-color: #c51809!important; } &:hover { background-color: #ffc4c4; } } &.full-day-off { } &.is-off { background-image: repeating-linear-gradient(90deg, rgba(1, 0, 10, 0.2) 0px, rgba(1, 0, 10, 0.2) 1px, transparent 1px, transparent 4px); background-color: #fff; margin: 0px; border-radius: 0px; + .agent-timeslot:not(.is-booked) { } &:before { background-color: #E42806; } .agent-timeslot-label { background-color: #f04739; color: #fff; border-color: #c51809!important; } &:hover { background-color: #ffc4c4; background-image: none; } } &:hover { background-color: #25c765; &:before { top: 0px; } .agent-timeslot-label { display: block; } } } .agent-timeslot-tick { display: none; } &:last-child { border-bottom: none; .agent-timeslot-tick { position: absolute; display: block; top: 25px; left: 53%; transform: translateX(-50%); font-size: floor($font-size-base * 0.6); text-align: center; color: rgba(0,0,0,0.4); text-transform: uppercase; line-height: 1.4; font-weight: $body-font-weight-bold; letter-spacing: 1px; strong { display: block; color: rgba(0,0,0,1); font-size: floor($font-size-base * 0.8); line-height: 1; } } .agent-timeslot.with-tick { &:after { display: block; content: ""; position: absolute; width: 1px; left: 50%; height: 5px; bottom: -11px; background-color: rgba(0,0,0,0.2); } } } } .tall-slots-timeline { .agent-day-availability-w { .agent-avatar-w { display: none; } .agent-timeslot { height: 29px; } &:last-child .agent-timeslot-tick { top: 43px; } } } $avatar-size: 40px; $avatar-gap: 30px; .agent-day-bookings-timeline-compact-w { position: relative; display: flex; .agents-avatars { flex: 0; margin-right: 20px; padding-top: 30px; .avatar-w { height: $avatar-size + $avatar-gap; padding: calc($avatar-gap/2) 0px; text-decoration: none; position: relative; .avatar-i { height: $avatar-size; display: block; width: $avatar-size; border-radius: 50%; background-size: cover; background-position: center center; span { display: none; position: absolute; bottom: 100%; left: 50%; background-color: #111; color: #fff; font-size: floor($font-size-base * 1); font-weight: $body-font-weight-bold; padding: 10px 15px; z-index: 9999; transform: translate(-50%, -5px); white-space: nowrap; border-radius: $tooltip-border-radius; } &:hover { span { display: block; } } } &:last-child { } &:hover { } } } .agents-timelines-w { flex: 1; position: relative; .current-time-indicator { width: 2px; background-color: #ff7c7c; position: absolute; top: 5px; bottom: 0px; z-index: 998; span { position: absolute; top: 0px; left: 50%; transform: translate(-50%, -100%); background-color: #fc6262; padding: 3px 5px; border-radius: 4px; color: #fff; font-weight: $body-font-weight-bold; font-size: floor($font-size-base * 0.8); } } } .timeline-bottom-w { display: flex; } .timeline-top-w { display: flex; height: 30px; } .timeslot { flex: 1; &:last-child:not(:first-child) { width: 1px; flex: 0 0 1px; } &.with-tick { .tick { position: absolute; z-index: 2; top: 30px; bottom: 35px; width: 1px; background-color: #ebeff2; } } .timeslot-time { font-weight: $body-font-weight-bold; font-size: floor($font-size-base * 0.8); text-align: center; line-height: 1.2; transform: translateX(-50%); display: inline-block; .timeslot-hour { } .timeslot-ampm { color: $color-faded; font-size: floor($font-size-base * 0.6); letter-spacing: 1px; text-transform: uppercase; } } } .agent-timeline-w { padding: 0px; position: relative; .agent-timeline { height: $avatar-size + $avatar-gap; position: relative; &:hover { background-color: #fafafb; } .booking-blocks { position: absolute; top: 50%; left: 0px; right: 0px; } .booking-block { height: 20px; z-index: 3; position: absolute; top: 50%; transform: translateY(-50%); cursor: pointer; box-shadow: 0px 0px 0px 1px #fff; background-color: rgba(0,0,0,0.2); border-radius: $border-radius; &.status-pending { &:before { @include latepointfont_admin("\e94e"); position: absolute; top: 50%; transform: translateY(-50%); right: 5px; color: #fff; font-size: 14px; } } &.os-loading { &:after { @include loading-circle(#fff); } } &:hover { } .appointment-box-small { position: absolute; border-radius: $border-radius-lg; top: 0px; left: 50%; transform: translate(-50%, -110%); visibility: hidden; opacity: 0; transition: all 0.2s ease; } &:hover { .appointment-box-small { transform: translate(-50%, -105%); visibility: visible; opacity: 1; } } } } } } .os-info-tile { padding: 15px 15px; display: flex; align-items: center; margin-bottom: 30px; animation: 0.6s cubic-bezier(.45,1.1,.4,1) 0s wizardWrapperAnimation; animation-fill-mode: both; .os-tile-value { font-size: floor($font-size-base * 2.8); color: $brand-primary; font-weight: $body-font-weight-bold; line-height: 1.2; } .os-tile-info { flex: 1; padding-left: 25px; } .os-tile-label { font-weight: $body-font-weight-bold; font-size: floor($font-size-base * 1.1); & + .os-tile-desc { margin-top: 5px; } } .os-tile-desc { color: $color-faded; } &.tile-centered { text-align: center; display: block; padding: 15px; .os-tile-info { padding-left: 0px; } } &.os-smaller { padding: 15px 20px; .os-tile-value { font-size: floor($font-size-base * 2.5); } .os-tile-label { font-size: floor($font-size-base * 1); color: $color-faded; } } } .service-type-donut-chart-w { padding: 15px; align-items: center; @include white-box(); margin-bottom: 30px; .service-type-donut-chart-i { padding: 0px 15% 10px; } .service-type-donut-chart-data { padding: 10px; padding-left: 20px; } &.on-agent-dashboard { box-shadow: none; padding: 0px; .service-type-donut-chart-data { padding: 0px; padding-top: 20px; } .chart-labels { display: flex; justify-content: space-between; flex-wrap: wrap; .chart-label { flex: 0 0 47%; } } } } .chart-heading { color: $brand-primary; margin-top: 0px; & + .chart-labels { margin-top: 15px; } } .chart-labels { padding-left: 15px; .chart-label-color { width: 8px; height: 8px; position: absolute; top: 5px; left: -16px; } .chart-label { margin-bottom: 5px; position: relative; .name { font-weight: $body-font-weight-bold; } .value { color: $color-faded; font-size: $font-size-base * 0.8; } } } .circles-wrp { display: block!important; svg { display: block; } } .appointment-box-detailed { & + .appointment-box-detailed { margin-top: 20px; padding-top: 20px; border-top: 1px solid rgba(0,0,0,0.1); } .appointment-main-info { display: flex; align-items: center; .appointment-color-elem { width: 10px; height: 10px; margin-right: 15px; } } .appointment-service-name { font-size: floor($font-size-base * 1.4); color: $brand-primary; font-weight: $body-font-weight-bold; margin-right: auto; border-bottom: 1px dotted rgba($brand-primary, 0.6); display: inline-block; } .appointment-date-w { .appointment-date { color: $color-faded; display: inline-block; } .appointment-time { display: inline-block; color: $brand-primary; margin-left: 3px; font-weight: $body-font-weight-bold; } } } .appointment-boxes-squared-w { .appointment-boxes-caption { flex: 0 0 32px; width: 32px; border: 1px solid $brand-primary; color: $brand-primary; border-radius: 6px; background-color: #fff; box-shadow: 4px 4px 0px 0px rgba($brand-primary, 0.1); position: relative; div { white-space: nowrap; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(90deg); font-size: 14px; text-transform: uppercase; letter-spacing: 2px; line-height: 1; font-weight: $body-font-weight-bold; } } .appointment-time-left { color: #bb6767; font-weight: $body-font-weight-bold; font-size: floor($font-size-base * 0.8); margin-bottom: 3px; border-radius: $border-radius; display: inline-block; } } .appointment-box-squared { display: flex; flex-direction: column; position: relative; cursor: pointer; transition: transform 0.2s ease; &:not(:last-child){ border-bottom: 1px solid $border-color-lightest; } &:hover { .appointment-main-info { .appointment-color-elem { transform: translateY(-50%) scale(0); opacity: 0; } .appointment-link { opacity: 1; transform: translate(5px, -50%); } .avatar-w { } } } &.os-loading { &:after { @include loading-circle($brand-primary); right: 5px; left: auto; top: 14px; transform: none; } } & + .appointment-box-squared { } .appointment-main-info { padding: 20px 0px 20px $widget-padding; position: relative; .avatar-w { transition: transform 0.1s ease; } .appointment-link { color: $headings-color; font-weight: $body-font-weight-bold; position: absolute; top: 50%; right: 32px; transform: translate(0px, -50%); transition: transform 0.2s ease; opacity: 0; padding: 8px; border-radius: $border-radius; background-color: #fff; border: 1px solid #eee; font-size: 14px; width: 35px; height: 35px; line-height: 1; i { display: block; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } } .appointment-color-elem { position: absolute; top: 50%; right: 40px; transform: translateY(-50%) scale(1); width: 12px; height: 12px; border-radius: $border-radius; transition: all 0.2s cubic-bezier(0.05, 0.45, 0.1, 1); opacity: 0.7; } .appointment-main-info-i { display: flex; align-items: center; padding-right: 45px; .appointment-date-i { display: flex; .appointment-date { margin-right: 5px; white-space: nowrap; } } } .avatar-w { @include avatar(50px); flex: 0 0 50px; position: relative; margin-right: 20px; .agent-info-tooltip { display: none; position: absolute; bottom: 50%; left: 50%; background-color: #111; color: #fff; font-size: floor($font-size-base * 0.9); font-weight: $body-font-weight-bold; padding: 6px 10px; z-index: 9999; white-space: nowrap; border-radius: $tooltip-border-radius; animation: 0.2s cubic-bezier(.45,1.1,.4,1) 0s toolTipOpen; animation-fill-mode: both; } &:hover { .agent-info-tooltip { display: block; } } } } .appointment-service-name { font-size: $body-font-size-m; font-weight: $body-font-weight-bold; color: $headings-color; margin-right: auto; margin-bottom: 2px; } .appointment-date-w { font-size: floor($font-size-base * 0.9); .appointment-date { color: $color-faded; margin-bottom: 1px; } .appointment-time { font-weight: $body-font-weight-bold; } } .appointment-capacity-info { padding: 20px; padding-top: 15px; .appointment-capacity-info-label { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; span, strong { display: block; } span { color: $color-faded; } strong { color: $headings-color; } } } .appointment-capacity-progress-w { background-color: rgba($brand-primary, 0.1); border-radius: $border-radius-xs; .appointment-capacity-progress { height: 10px; background-color: $brand-primary; border-radius: $border-radius-xs; } } } .os-widget-stats { .stats-grid { } .stats-grid-row { display: flex; border-bottom: 1px solid rgba(0,0,0, 0.1); } .stats-grid-box { flex: 0 0 50%; padding: 40px 10px; text-align: center; & + .stats-grid-box { border-left: 1px solid rgba(0,0,0,0.1); } } .stats-grid-value { font-size: floor($font-size-base * 2.2); font-weight: $body-font-weight-bold; line-height: 1.3; } .stats-grid-label { color: $color-faded; font-size: floor($font-size-base * 1.1); } .stats-progress-w { padding: 25px 20px; .stats-progress-labels { display: flex; justify-content: space-between; margin-bottom: 10px; } .stats-progress-value { } .stats-progress-label { color: $color-faded; margin-left: 3px; } .stats-progress-sub-value { margin-left: auto; color: $brand-primary; } .stats-progress-sub-label { color: $color-faded; margin-left: 3px; } .stats-progress { background-color: #EEF4F1; .stats-progress-bar { height: 5px; background-color: #6EE8A4; } } } } .os-widget { .stats-tabs { display: flex; gap: 20px; padding: 25px $widget-padding; } .stats-tab { flex: 1; position: relative; padding-right: 20px; &:last-child { border-right: none; padding-right: 0; } &.active { background-color: #fff; &:before { // content: ""; // height: 1px; // background-color: $brand-primary; // left: -1px; // right: -1px; // bottom: -1px; // position: absolute; } .stats-tab-value { color: $brand-primary; line-height: 1.1; } } & + .stats-tab { } } .stats-tab-value { font-size: $body-font-size-l; line-height: 1.3; color: $headings-color; white-space: nowrap; .stats-tab-value-self { display: inline-block; } .stats-change { display: inline-block; vertical-align: baseline; color: $headings-color; font-size: floor($font-size-base * 0.8); font-weight: $body-font-weight-bold; cursor: pointer; .stats-change-value { display: block; position: relative; padding: 0px; color: $body-color; } .stats-change-label { white-space: nowrap; display: none; z-index: 9999; color: $brand-primary; strong { } } span { display: block; } &:hover { } &.change-positive { .stats-change-label { color: #09a579; } .stats-change-value { color: #09a579; &:after { border-bottom: 5px solid #39B570; } } } &.change-negative { .stats-change-label { border-color: #A16262; color: #A16262; } .stats-change-value { border-color: #A16262; color: #A16262; &:after { border-top: 5px solid #A16262; transform: translateY(0%); } } } } } .stats-tab-label { font-size: floor($font-size-base * 0.9); white-space: nowrap; color: $color-faded; } .stats-tab-info { position: absolute; top: 0px; right: 10px; font-weight: $body-font-weight-bold; width: 15px; height: 15px; border-radius: 8px; line-height: 15px; text-align: center; font-size: 11px; background-color: #eef1f4; color: #4f525a; cursor: help; .stats-tab-info-icon { font-weight: $body-font-weight-black; font-size: 10px; } .stats-tab-info-tooltip { display: none; width: 250px; line-height: 1.3; background-color: #111; border-radius: $border-radius-lg; color: #fff; padding: 7px; font-size: floor($font-size-base * 0.9); position: absolute; top: 0px; left: 50%; transform: translate(-50%, -100%); z-index: 9999; box-shadow: 0px 2px 10px rgba(0,0,0,0.1); } &:hover { background-color: #ddd; .stats-tab-info-tooltip { display: block; } } } .stats-charts-w { display: flex; } .stats-line-chart-w { padding-top: 0px; flex: 1; canvas { } } .stats-donut-chart-w { flex: 0 0 200px; border-left: 1px solid $border-color-lightest; padding-top: 0px; position: relative; canvas { margin: 0px auto; } .status-donut-label { text-align: center; color: $headings-color; font-size: floor($font-size-base * 0.9); padding-top: 54px; margin-bottom: 0px; font-weight: $body-font-weight-bold; } } } .os-widget-today-info { border: none; margin-bottom: 0px; .os-widget-day-picker { font-size: floor($font-size-base * 2); font-weight: $body-font-weight-bold; margin-bottom: 10px; } .day-info-progress { background-color: #edf1f7; display: flex; height: 2px; border-radius: $border-radius-xs; .di-progress-value { height: 2px; position: relative; .progress-label-w { transform: translateY(-120%); transition: all 0.1s ease-in; display: none; position: absolute; top: 0px; right: 0px; background-color: #000; padding: 10px; font-size: floor($font-size-base * 1.1); .progress-label { color: rgba(255,255,255,0.6); font-size: floor($font-size-base * 0.7); text-transform: uppercase; letter-spacing: 1px; white-space: nowrap; margin-top: 5px; } .progress-value { white-space: nowrap; color: #fff; span { } strong { } } } &:hover { .progress-label-w { transform: translateY(-105%); display: block; } } } } .day-main-info { padding-bottom: 20px; text-align: center; } .big-counter { font-size: floor($font-size-base * 4.3); line-height: 1; color: $headings-color; font-weight: $body-font-weight-bold; } .counter-label { color: $color-faded; font-size: floor($font-size-base * 1.4); } .day-sub-info { } .day-sub-info-col { display: flex; padding: 15px 0px; &.with-avatars { display: flex; align-items: center; justify-content: space-between; padding: 9px 0px; .agents-on-duty-avatars { display: flex; flex-direction: row-reverse; position: relative; } .avatar-w { @include avatar(30px); box-shadow: 0px 0px 0px 2px #fff; margin-right: -5px; &:first-child { margin-right: 0px; } } } } .sub-info-value { font-weight: $body-font-weight-bold; display: inline-block; margin-left: auto; white-space: nowrap; } .sub-info-period { text-align: right; white-space: nowrap; padding-left: 10px; & + .sub-info-period { margin-top: 5px; } } .sub-info-label { color: $color-faded; font-weight: $body-font-weight-bold; white-space: nowrap; } } .timeline-type-toggle { margin-left: auto; display: flex; border: 1px solid #ced6df; font-size: floor($font-size-base * 0.95); border-radius: $border-radius; cursor: pointer; .timeline-type-option { white-space: nowrap; flex: 0; padding: 8px 12px; border-radius: $border-radius; color: $color-faded; &.active { box-shadow: 0px 0px 0px 1px $headings-color; background-color: #fff; color: $headings-color; } &:hover:not(.active) { color: $body-color; } } } .timeline-with-info-w { display: flex; align-items: stretch; border-radius: $border-radius-lg; &.dark { background-color: #1f3fab; padding: 15px; .timeline-and-availability-w { padding-left: 30px; padding-bottom: 20px; color: rgba(255,255,255,0.8); } .timeline-controls { padding-top: 20px; select { color: #fff; } } .agent-day-bookings-timeline-compact-w .timeslot.with-tick .tick { background-color: rgba(255,255,255,0.1); } .agent-timeline-w { .agent-timeline { background-color: #18379f; .booking-block { box-shadow: 0px 0px 0px 1px #18379f; } } } } .timeline-and-availability-contents { padding: calc($widget-padding/2) $widget-padding $widget-padding $widget-padding; &.shows-appointments { .agent-day-availability-w { padding: 0px; .agent-timeslot { background-color: transparent; border-left: 1px solid transparent; height: $avatar-size + $avatar-gap; cursor: copy; .agent-timeslot-label { } &:hover:not(.is-off):not(.is-booked) { background-color: #e7ffec; background-image: radial-gradient(#81dfa3 1px, transparent 0); background-size: 6px 6px; background-position: top right; } &.is-off:hover, &.is-booked:hover { background-color: #ffe7e7; background-image: radial-gradient(#df8181 1px, transparent 0); background-size: 6px 6px; background-position: top right; } &.is-booked { cursor: not-allowed; } &.is-off { cursor: not-allowed; &:hover { background-color: #ffc4c4; } .agent-timeslot-label { left: 50%; top: 0; transform: translate3d(-50%, -10px, 0); } } } } .agent-timeline-w .agent-timeline { display: block; } } &.shows-availability { .agent-day-availability-w { display: block; } .agent-timeline-w .agent-timeline .booking-blocks { display: none; } } } .timeline-controls { display: flex; align-items: center; font-weight: $body-font-weight-bold; label:first-child { } .select-w, label { display: block; margin: 0px; } select, label, .range-picker-value { font-size: floor($headings-font-size * 0.85); } select { background-color: transparent; margin: 0px; appearance: none; //color: $brand-primary; border: none; padding: 0px 5px; border-radius: 6px; box-shadow: none; padding-right: 25px; background-size: 14px 14px; &:hover { background-color: rgba(0,0,0,0.05); color: $body-color; } } .select-w { position: relative; margin-right: 10px; } label { flex: 0; white-space: nowrap; color: $color-faded; margin-right: 5px; } } .timeline-and-availability-w { flex: 1; } .timeline-info-w { padding: 40px; font-size: floor($font-size-base * 1); flex: 0; &.dark { //background-color: #071851; //background-image: linear-gradient(45deg, #010208, #071f69); background-color: $brand-primary; color: #fff; border-left: none; margin: -1px; margin-left: 0px; border-radius: $border-radius-lg; .sub-info-label { color: rgba(255,255,255,0.6); } .day-sub-info-col.with-avatars .avatar-w { box-shadow: 0px 0px 0px 2px $brand-primary; } .day-sub-info-col { border-bottom-color: rgba(255,255,255,0.1); } .day-info-progress { background-color: rgba(255,255,255,0.1); } } .os-date-range-picker { cursor: pointer; position: relative; margin-bottom: 20px; font-size: floor($headings-font-size * 1.4); white-space: nowrap; > .range-picker-value, .latepoint-icon { z-index: 2; position: relative; vertical-align: middle; } > .latepoint-icon { font-size: 20px; margin-left: 10px; } &:after { content: ""; position: absolute; top: -5px; left: -10px; bottom: -10px; right: -10px; z-index: 1; background-color: rgba(255,255,255,0.1); border-radius: 8px; display: none; } &:hover { &:after { display: block; } } } .latepoint-btn { display: block; background-color: #1e7bff; text-align: center; margin-top: 20px; padding: 12px 15px; box-shadow: 0px 2px 4px rgba(0,0,0,0); } .os-add-box { border: none; background-color: $brand-primary; padding: 10px; margin-top: 15px; border-radius: $border-radius-btn-lg; .add-box-label { margin-right: auto; color: #fff; margin-left: 10px; } .add-box-graphic-w { margin-left: auto; width: 30px; height: 30px; .add-box-plus { background-color: #fff; color: $brand-primary; box-shadow: 0 0 0px 5px rgba(0,0,0,0.1); } } } } }