/* BEGIN animations */

@keyframes animate_scale {
    0% {
        transform: scaleY(0.8);
    }
    50% {
        transform: scaleY(1.1)
    }
    100% {
        transform: scaleY(0.8);
    }
}

/* END animations */

/* BEGIN utilities */

.btn.btn-workout-primary, .btn.btn-workout-primary:active, .btn.btn-workout-primary:focus {
    background-color: #3BA8BF;
    color: #f5f5f5;
    border-color: #f5f5f5;
    box-shadow: none;
}

.btn.btn-workout-primary:hover {
    background-color: #2d7f90;
}

.full_width {
    width: 100%;
}

.table_fixed {
    table-layout: fixed;
}

.list_stripped {
    padding: 0px;
    margin: 0px;
    list-style: none;
    list-style-type: none;
}

.workout_list>li {
    border: 1px solid #3BA8BF;
    border-bottom: none;
}

.workout_list>li:last-child {
    border-bottom: 1px solid #3BA8BF;
}

.workout_list_hover>li {
    transition: background-color 0.2s ease;
}

.workout_list_hover>li:hover {
    color: #f5f5f5!important;
    background-color: #3BA8BF;
}

.workout_subheading {
    font-size: 14px;
    font-weight: normal;
    color: #666;
}

.workout_subheading .table {
    color: #666;
}

.workout_heading {
    font-size: 16px;
    font-weight: bold;
}

.workout_menu {
    position: fixed;
    top: 0px;
    bottom: 0px;
    left: 0px;
    right: 0px;
    width: 100%;
    height: 100%;
    z-index: 200;
    background: rgba(0, 0, 0, 0.55);
    display: none;
}

.workout_menu ul {
    border-radius: 4px;
    margin: 0 auto;
    padding: 0px;
    list-style: none;
    list-style-type: none;
    display: block;
    overflow-y: auto;
    width: 95%;
    max-width: 400px;
    max-height: 95%;
    position: relative;
    background-color: #f5f5f5;
}

.workout_menu ul a {
    display: block;
    border-bottom: 1px solid #3BA8BF;
    color: #3BA8BF;
    text-decoration: none;
    padding: 6px 10px;
    font-size: 16px;
}

.workout_menu ul li:first-child a {
    border-radius: 3px 3px 0 0;
}

.workout_menu ul li:last-child a {
    border-bottom: none;
    border-radius: 0 0 3px 3px;
}

.workout_menu ul a:hover {
    background-color: #3BA8BF;
    color: #f5f5f5;
}

.workout_alerts {
    position: fixed;
    width: 100%;
    bottom: 20px;
    z-index: 150;
    padding: 0 30px;
}

.workout_progressbar {
    width: 100%;
    position: relative;
    border: 1px solid #3BA8BF;
    color: #f5f5f5;
}

.workout_progressbar .progressbar_progress {
    background-color: #3BA8BF;
    display: block;
    transition: width 1s;
    width: 0px;
    font-weight: bold;
    text-align: center;
}

.workout_hover_el_primary {
    border: 1px solid #3BA8BF;
    transition: background-color 0.2s ease;
}

.workout_hover_el_primary:hover {
    color: #f5f5f5!important;
    background-color: #3BA8BF;
}

.workout_section .workout_section_content {
    border: 1px solid #3BA8BF;
    padding: 12px;
}

.workout_section .el_horseshoe {
    border: 1px solid #3BA8BF;
    border-top: none;
    padding: 12px;
}

.workout_performance_negative {
    display: inline-block;
    color: #dc3545;
}

.workout_performance_negative .performance_icon:before {
    content: "\f175";
}

.workout_performance_positive {
    display: inline-block;
    color: #28a745;
}

.workout_performance_positive .performance_icon:before {
    content: "\f176";
}

.workout_performance_neutral {
    display: inline-block;
    color: #007bff;
}

.workout_performance_neutral .performance_icon:before {
    content: "\f07d";
}

.loading_overlay {
    display: none;
    position: absolute;
    z-index: 139;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background-color: #fff;
    background-image: url('../img/loading.gif');
    background-position: center;
    background-repeat: no-repeat;
    background-size: 40px;
}

.workout_timer_wrapper {
    position: relative;
}

.workout_timer_wrapper .timer_warning_overlay {
    animation: animate_scale 1s infinite;
    display: none;
    background-color: #ff0000;
    filter: blur(14px);
    position: absolute;
    top: 0px;
    bottom: 0px;
    left: 0px;
    right: 0px;
}

/* END utilities */

/* BEGIN media queries */

@media only screen and (max-width: 180px) {
    .content_wrapper .menu_container a {
        font-size: 10vw!important;
    }
}

/* END media queries */

/* BEGIN page app */

html, body {
    width: 100%;
    height: 100%;
    font-size: 14px;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.content_wrapper {
    width: 100%;
    min-height: 100%;
    overflow-y: auto;
    position: relative;
}

.content_wrapper .menu_sidebar {
    position: fixed;
    top: 0px;
    bottom: 0px;
    left: 0px;
    width: 0px;
    transition: 0.5s;
    overflow-x: hidden;
    background-color: #3BA8BF;
    color: #f5f5f5;
    z-index: 180;
}

.content_wrapper.expanded .menu_sidebar {
    width: 240px;
    max-width: 100%;
    border-right: 2px solid #f5f5f5;
}

.menu_sidebar .hide_sidebar {
    font-size: 24px;
    cursor: pointer;
    margin-right: 16px;
    margin-top: 16px;
}

.menu_sidebar .username {
    font-size: 16px;
    padding: 8px 10px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.menu_sidebar .menu_separator {
    border-top: 1px solid #f5f5f5;
}

.menu_sidebar .menu_container a {
    color: #f5f5f5;
    text-decoration: none;
    padding: 8px 10px;
    display: block;
    font-size: 16px;
    transition: 0.3s;
    white-space: nowrap;
}

.menu_sidebar .menu_container a:hover {
    color: #d4d4d4;
}

.content_wrapper .main_content {
    position: relative;
}

.content_wrapper .content_header {
    background-color: #3BA8BF;
    color: #f5f5f5;
    position: fixed;
    top: 0px;
    left: 0px;
    right: 0px;
    z-index: 170;
    padding: 6px 0;
}

.content_wrapper .content_header .header_controls {
    position: absolute;
    top: 18px;
    left: 0px;
}

.content_wrapper .content_header .header_controls i {
    cursor: pointer;
    font-size: 24px;
    margin-left: 14px;
    color: #f5f5f5;
}

.content_wrapper .content_header .logo_wrapper {
    text-align: center;
}

.content_wrapper .content_header .logo {
    width: 26px;
    display: inline-block;
    vertical-align: middle;
}

.content_wrapper .content_header .logo_text {
    font-size: 16px;
    font-weight: bold;
    display: inline-block;
    vertical-align: middle;
    text-align: center;
}

.content_wrapper .content_header .logo_wrapper.logo_big .logo {
    width: 61px;
}

.content_wrapper .content_header .logo_wrapper.logo_big .logo_text {
    font-size: 18px;
}

.content_wrapper .content_header .logo_url {
    text-decoration: none;
    color: #f5f5f5;
}

.content_wrapper .content_header .current_page {
    text-align: center;
    font-size: 18px;
    font-weight: bold;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 0 52px;
}

.content_wrapper .content_body {
    margin: 0 auto;
    max-width: 1100px;
    padding: 16px;
    z-index: 130;
    margin-top: 63px;
    padding-bottom: 50px;
    /* 16px the padding + height of footer which is 34px */
}

.content_wrapper .content_footer {
    position: absolute;
    bottom: 0;
    text-align: center;
    width: 100%;
    padding: 6px;
    color: #3BA8BF;
    border-top: 1px solid #3BA8BF;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* END page app */

/* BEGIN page error_404 */

.page_error_404 {
    text-align: center;
    font-size: 20px;
    margin-top: 40px;
    color: #848484;
}

/* END page error_404 */

/* BEGIN page home */

.page_home .shortcut_item .inner {
    padding: 10px;
    text-align: center;
    cursor: pointer;
    color: inherit;
    text-decoration: none;
    display: block;
}

.page_home .shortcut_item .shortcut_text {
    display: block;
}

.page_home .shortcut_item .shortcut_icon {
    font-size: 40px;
    margin-bottom: 12px;
}

.page_home .rest_today {
    text-align: center;
}

.page_home .glance_section .glance_content {
    text-align: center;
}

.page_home .glance_section .glance_img {
    width: 100%;
    max-width: 250px;
    transform: translateZ(0);
}

.page_home .glance_section .glance_description {
    font-size: 20px;
    display: block;
    margin-top: 20px;
}

/* END page home */

/* BEGIN page configure */

.page_configure .routine_set {
    background-color: #fff;
}

.page_configure .routine_set.sortable-ghost {
    background-color: #e4e4e4;
    border-left: none;
    border-right: none;
}

.page_configure .routine_set.sortable-drag {
    border-bottom: 1px solid #3BA8BF;
}

.page_configure .routine_set.sortable-ghost .routine_set_inner {
    visibility: hidden;
    opacity: 0;
}

.page_configure .routine_set_header {
    padding: 8px;
}

.page_configure .drag_handle {
    vertical-align: middle;
    width: 18px;
    background-image: url('../img/drag_black.png');
    background-position: center;
    background-size: 100%;
    background-repeat: no-repeat;
    cursor: pointer;
}

.page_configure .routine_set_description {
    padding: 0 8px;
    vertical-align: middle;
}

.page_configure .routine_set_options {
    width: 32px;
    vertical-align: middle;
    font-size: 18px;
    cursor: pointer;
    text-align: center;
}

.page_configure .routine_set_options a {
    color: inherit;
}

.page_configure .routine_set_settings {
    width: 28px;
    vertical-align: middle;
    font-size: 18px;
    cursor: pointer;
    text-align: center;
}

.page_configure .routine_set.expanded .routine_set_header {
    border-bottom: none;
}

.page_configure .rotine_set_exercise {
    padding: 4px 34px;
    background-color: #fff;
}

.page_configure .add_routine_form {
    padding: 12px;
}

/* END page configure */

/* BEGIN page configure_routine_configure */

.page_configure_routine_configure .rotine_set_exercise {
    padding: 4px 16px;
    background-color: #fff;
}

.page_configure_routine_configure .drag_handle {
    vertical-align: middle;
    width: 16px;
    background-image: url('../img/drag_black.png');
    background-position: center;
    background-size: 100%;
    background-repeat: no-repeat;
    cursor: pointer;
}

.page_configure_routine_configure .exercise_description {
    vertical-align: middle;
    padding: 0 10px;
}

.page_configure_routine_configure .edit_exercise {
    font-size: 16px;
    width: 24px;
    text-align: left;
    cursor: pointer;
    vertical-align: middle;
}

.page_configure_routine_configure .remove_exercise {
    font-size: 16px;
    width: 20px;
    text-align: center;
    cursor: pointer;
    vertical-align: middle;
}

.page_configure_routine_configure .rotine_set_exercise.sortable-ghost {
    background-color: #e4e4e4;
    border-left: none;
    border-right: none;
}

.page_configure_routine_configure .rotine_set_exercise.sortable-ghost .routine_set_exercise_inner {
    visibility: hidden;
    opacity: 0;
}

.page_configure_routine_configure .rotine_set_exercise.sortable-drag {
    border-bottom: 1px solid #3BA8BF;
}

.page_configure_routine_configure .add_exercise_form {
    padding: 12px;
}

.page_configure_routine_configure .edit_exercise_form {
    padding: 12px;
}

.page_configure_routine_configure .delete_exercise_form {
    padding: 12px;
}

.page_configure_routine_configure .delete_exercise_description {
    font-size: 16px;
    text-align: center;
}

.page_configure_routine_configure .delete_routine_form {
    padding: 12px;
}

.page_configure_routine_configure .configure_routine_no_exercises {
    border: 1px solid #3BA8BF;
    border-bottom: none;
    padding: 12px;
    padding-bottom: 0px;
}

/* END page configure_routine_configure */

/* BEGIN page exercise */

.page_exercise .current_workout {
    position: relative;
}

.page_exercise .current_workout.routine_in_progress .current_workout_exercises {
    background-color: rgba(0, 0, 0, 0.35);
}

.page_exercise .current_workout.routine_in_progress .current_workout_header {
    background-color: rgba(0, 0, 0, 0.35);
}

.page_exercise .finalize_workout_routine {
    display: none;
}

.page_exercise .workout_routine_progress {
    font-size: 14px;
    margin-top: 10px;
    margin-bottom: -11px;
    margin-left: -21px;
    margin-right: -21px;
}

.page_exercise .workout_routine_progress .workout_progressbar {
    border-bottom: none;
    border-left: none;
    border-right: none;
}

.page_exercise .current_workout.routine_in_progress .finalize_workout_routine {
    display: block;
}

.page_exercise .current_workout.routine_in_progress .engage_workout_routine {
    display: none;
}

.page_exercise .current_workout.routine_in_progress .switch_workout_routine {
    display: none;
}

.page_exercise .current_workout.routine_in_progress .current_workout_header .workout_title {
    color: #f5f5f5;
    font-weight: bold;
}

.page_exercise .workout_description {
    font-size: 14px;
    border: 1px solid #3BA8BF;
    padding: 6px;
}

.page_exercise .current_workout.routine_in_progress .current_workout_header .workout_description {
    color: #f5f5f5;
}

.page_exercise .current_workout_start_loading {
    display: none;
    background-color: rgba(0, 0, 0, 0.45);
    background-image: url('../img/loading.gif');
    background-repeat: no-repeat;
    background-position: center;
    background-size: 96px;
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 140;
}

.page_exercise .current_workout_workout_finished {
    display: none;
    background-color: rgba(59, 168, 191, 0.9);
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 140;
}

.page_exercise .manually_save_finalize {
    font-size: 14px;
    display: none;
}

.page_exercise .current_workout_finished_text_wrapper {
    display: table;
    font-size: 28px;
    text-align: center;
    color: #f5f5f5;
    height: 100%;
    width: 100%;
}

.page_exercise .current_workout_finished_text_wrapper .inner {
    display: table-cell;
    vertical-align: middle;
    position: relative;
    background-image: url('../img/confetti.gif');
    background-size: 200px;
    background-repeat: repeat;
}

.page_exercise .current_workout_finished_text_wrapper .inner img {
    max-width: 100%;
}

.page_exercise .current_workout_header {
    padding: 10px 20px;
    border: 1px solid #3BA8BF;
    text-align: center;
}

.page_exercise .current_workout_exercise {
    position: relative;
    padding: 10px 20px;
}

.page_exercise .current_workout_exercise:first-child {
    border-top: none;
}

.page_exercise .current_workout_exercise.exercise_active {
    background-color: #fff;
}

.page_exercise .current_workout_exercise .summary_exercise {
    display: table-row;
}

.page_exercise .current_workout_exercise.exercise_active .summary_exercise {
    display: none;
}

.page_exercise .current_workout_exercise .exercise_highlight {
    display: none;
    text-align: center;
}

.page_exercise .current_workout_exercise .exercise_highlight .exercise_target_images img {
    width: 100%;
    max-width: 120px;
}

.page_exercise .current_workout_exercise .exercise_highlight .exercise_name {
    font-weight: bold;
    font-size: 20px;
}

.page_exercise .current_workout_exercise .exercise_highlight .exercise_description {
    font-size: 14px;
    border: 1px solid #3BA8BF;
    padding: 6px;
}

.page_exercise .current_workout_exercise_overlay {
    text-align: center;
    font-size: 18px;
}

.page_exercise .current_workout_exercise.exercise_active .exercise_highlight {
    display: block;
}

.page_exercise .current_workout_exercise_overlay.stage_prepare .exercise_prepare {
    display: block;
}

.page_exercise .current_workout_exercise_overlay.stage_executing .exercise_executing {
    display: block;
}

.page_exercise .current_workout_exercise_overlay.stage_send_data .exercise_send_data {
    display: block;
}

.page_exercise .current_workout_exercise_overlay.stage_rest .exercise_rest {
    display: block;
}

.page_exercise .exercise_overlay_data {
    display: none;
}

.page_exercise .exercise_stage_header {
    font-size: 18px;
}

.page_exercise .exercise_stage_text {
    font-size: 18px;
}

.page_exercise .exercise_stage_footer {
    font-size: 18px;
}

.page_exercise .exercise_countdown {
    font-size: 46px;
    font-weight: bold;
}

.page_exercise .exercise_timer {
    position: relative;
    font-size: 46px;
    font-weight: bold;
}

.page_exercise .exercise_warmup {
    display: none;
}

.page_exercise .exercise_prepare {
    display: none;
}

.page_exercise .exercise_executing {
    display: none;
}

.page_exercise .exercise_send_data {
    display: none;
}

.page_exercise .exercise_send_data .input-group-text {
    width: 98px;
}

.page_exercise .exercise_rest {
    display: none;
}

.page_exercise .exercise_rest.rest_exceeded .exercise_timer {
    color: #f5f5f5;
}

.page_exercise .exercise_rest.rest_exceeded .timer_warning_overlay {
    display: block;
}

.page_exercise .current_workout_exercise_img {
    vertical-align: middle;
    width: 96px;
}

.page_exercise .current_workout_exercise_img img {
    width: 100%;
    transform: translateZ(0);
    /* image-rendering: -webkit-optimize-contrast; */
}

.page_exercise .current_workout_exercise_details {
    padding-left: 12px;
}

.page_exercise .no_exercises_notice {
    border: 1px solid #3BA8BF;
    border-top: none;
    padding: 20px;
}

.page_exercise .exercise_results_form {
    position: relative;
}

/* END page exercise */

/* BEGIN page login */

.page_login .login_form {
    width: 100%;
    max-width: 460px;
    margin: 0 auto;
    padding: 20px;
    border: 1px solid #3BA8BF;
    margin-top: 60px;
}

.page_login .login_form_logo {
    text-align: center;
}

.page_login .login_form_logo img {
    width: 100%;
    max-width: 200px;
}

/* END page login */

/* BEGIN page stats */

.page_stats .routine_stats {
    padding: 8px;
}

.page_stats .routine_stats:hover .routine_stats_details {
    color: #f5f5f5;
}

.page_stats .routine_stats:hover .workout_performance_negative {
    color: #f5f5f5;
}

.page_stats .routine_stats:hover .workout_performance_positive {
    color: #f5f5f5;
}

.page_stats .routine_stats:hover .workout_performance_neutral {
    color: #f5f5f5;
}

.page_stats .routine_stats_url {
    display: block;
    text-decoration: none;
    color: inherit;
}

/* END page stats */

/* BEGIN page history */

.page_history .routine_history_date {
    width: 80px;
    padding: 8px;
    vertical-align: middle;
    text-align: center;
}

.page_history .routine_history_date_el {
    border: 2px solid #3BA8BF;
    display: inline-block;
    padding: 10px;
    border-radius: 32px;
    width: 64px;
    height: 64px;
    font-weight: bold;
}

.page_history .routine_history_content {
    padding: 8px;
    vertical-align: middle;
}

.page_history .routine_history:hover .routine_history_date_el {
    border-color: #f5f5f5;
}

.page_history .routine_history:hover .routine_history_details {
    color: #f5f5f5;
}

.page_history .routine_history:hover .workout_performance_positive {
    color: #f5f5f5;
}

.page_history .routine_history:hover .workout_performance_negative {
    color: #f5f5f5;
}

.page_history .routine_history:hover .workout_performance_neutral {
    color: #f5f5f5;
}

.page_history .routine_history_url {
    text-decoration: none;
    color: inherit;
}

/* END page history */

/* BEGIN page stats_routine_stats */

.page_stats_routine_stats .exercise_history_set {
    border-bottom: 1px solid #3BA8BF;
}

.page_stats_routine_stats .exercise_history_set:last-child {
    border-bottom: none;
}

.page_stats_routine_stats .rotine_set_exercise {
    padding: 4px 16px;
    background-color: #fff;
}

.page_stats_routine_stats .routine_exercise_details {
    width: 32px;
    vertical-align: middle;
    font-size: 18px;
    text-align: center;
    cursor: pointer;
}

.page_stats_routine_stats .rotine_set_exercise:not(.expanded) .routine_exercise_details .fa-chevron-up {
    display: none;
}

.page_stats_routine_stats .rotine_set_exercise.expanded .routine_exercise_details .fa-chevron-down {
    display: none;
}

.page_stats_routine_stats .exercise_expanded_container {
    display: none;
    cursor: initial;
    position: relative;
}

/* END page stats_routine_stats */

/* BEGIN page platform_unavailable */

.page_platform_unavailable {
    text-align: center;
    font-size: 20px;
    margin-top: 40px;
    color: #848484;
}

/* END page platform_unavailable */

/* BEGIN page page_history_performed_routine_history */

.page_history_performed_routine_history .performed_exercise_details {
    padding: 12px;
}

/* END page page_history_performed_routine_history */