@import url(//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,300,400,700,800);


/* MASTER FONT FAMILIES */
html, body, .button, input, textarea, button, .leaflet-tooltip {
    font-family: 'Avenir Next', 'Open Sans', helvetica, sans-serif;
}



/* MASTER COLOR PALETTE */

/* WHITE */
.list li {
    background: white;
}

a, a:hover, .white, footer, .darkbutton, html, body, .button {
    color: white;
}



/* VERY DARK GRAY */
.darkbutton:hover, #add_button, .yellowbg, .table_row_highlighted, a.table_row_highlighted:hover {
    color: #262626; /* 1f1f1f */
}
html, body, .darkbutton, .darkbg, .list li {
    background-color: #262626;
}



/* BLACK */
#add_button:hover, .blackbg, .table_wrapper {
    background: black;
}



/* LIGHT GRAY */
.lightgray {
    color: #444;
}
.list li {
    border-top: 1px solid #444;
    border-bottom: 1px solid #444;
}



/* ALT COLOR - FOR PACE, ETC. */
.altcolor, .table_row i {
    color: #f9c106;
}



/* YELLOW */

.yellowbg, .darkbutton:hover, .table_row_highlighted {
    background: #f9c106;
}
.yellow, .yellow:hover, #add_button:hover, .chart_title {
    color: #f9c106;
}




/* BLUE */
.bluebg, .ui-state-active {
    background-color: #29ABE2;
}
.blue, .blue:hover, .texty a {
    color: #29ABE2;
}

















h1, h2, h3, h4, h5, h6 { margin: 0.25em 0 0.25em 0; line-height: 1.4; font-weight: 700; }
h1 { font-size: 36px; }
h2 { font-size: 30px; }
h3 { font-size: 24px; }
h4 { font-size: 16px; }
h5 { font-size: 12px; }
h6 { font-size: 14px; font-weight: normal; }

p { font-size: 18px; }

.small { font-size: 0.8em; }

.allcaps { text-transform: uppercase; letter-spacing: 0.04em; }

.lightweight { font-weight: 400; }

.no_top_margin { margin-top: 0; }
.no_bottom_margin { margin-bottom: 0; }

.texty { text-align: left; }







header {
    min-height: 100px;
    height: 100px;
    text-align: left;
}

header .logo {
    width: 185px;
    height: 53px;
    margin: 30px 0 0 40px;
}

#add_button {
    position: absolute;
    top: 33px;
    right: 40px;
    display: block;
    height: 50px;
    width: 160px;
    text-align: center;
    line-height: 51px;
    font-size: 20px;
    font-weight: 700;
    text-decoration: none;
    border-radius: 6px;
}

#header_right {
    float: right;
    padding: 25px 40px 0 0;
}

#header_right a {
    display: block;
    float: right;
    margin-left: 6px;
}

#header_right img {
    width: 54px;
    height: 54px;
}


footer {
    text-align: left;
    padding: 50px 40px 45px 40px;
    position: relative;
}

footer .logo {
    width: 95px;
    height: 27px;
    margin-bottom: 15px;
    display: block;
}

footer #links {
    font-size: 16px;
    position: absolute;
    right: 40px;
    top: 52px;
}

footer #links a {
    display: inline-block;
    margin-left: 24px;
}

footer #links_small {
    font-size: 12px;
    position: absolute;
    right: 40px;
    top: 90px;
}

footer #links_small a {
    display: inline-block;
    margin-left: 15px;
}



main {
    text-align: center;
    width: auto;
    padding: 0 40px;
    max-width: 750px;
}

.fullwidth {
    text-align: left;
    width: 100%;
    max-width: none;
}


input, select {
    font-size: 18px;
}













.col3_wrapper {
    margin-bottom: 20px;
    overflow: auto;
    display: flex; /* equal height of the children */
}

.col3_col {
    box-sizing: border-box;
    background: black;
    padding: 15px 5px 10px 15px;
    width: 33.333%;
    border-right: 2px solid #262626;
    overflow: auto;
    min-height: 78px;
    position: relative;
}

.col3_col:last-child {
    border: none;
}


.col3_wrapper h1, .col3_wrapper h2, .col3_wrapper h3, .col3_wrapper h4, .col3_wrapper h5 {
    margin: 0;
    line-height: 1;
}

.col3_wrapper h1 {
    font-size: 33px;
}

.col3_wrapper h4 {
    letter-spacing: 0.05em;
}

.runstats {
    margin-top: 20px;
}

.runstats h1 {
    font-size: 60px;
}

.runstats h4 {
    margin: 3px 0 8px 0;
}

.runstats h5 {
    margin: 7px 0 4px 0;
}

.pr_bar {
    height: 19px;
    padding-top: 4px;
    box-sizing: border-box;
    margin-right: 10px;
    margin-bottom: 8px;
    overflow: auto;
    border-radius: 3px;
    font-weight: 700;
    font-size: 12px;
    line-height: 1;
}

.homestats {
    margin-top: 15px;
}

.homestats h1 {
    margin-top: 5px;
    float: left;
    margin-bottom: -6px;
}

.homestats .details {
    font-size: 11px;
    float: left;
    margin: 5px 0 0 10px;
    line-height: 1.4;
}

.homestats .details b, .homestats .details i {
    color: white;
}





.goalbox {
    box-sizing: border-box;
    background: black;
    padding: 10px 5px 0px 15px;
    overflow: hidden;
    min-height: 150px;
    position: relative;
    margin-bottom: 20px;
}

.goalbox h4 {
    margin: 3px 0 8px 0;
}

.goalbox .details {
    font-size: 11px;
    line-height: 1.4;
}

.goalbox .right {
    float: right;
    margin: 2px 10px 0 0;
}



.goalbox .annual_left, .goalbox .annual_right, .goalbox .annual_middle {
    box-sizing: border-box;
    min-height: 150px;
    width: 33%;
    position: relative;
}

.goalbox .annual_left {
    float: left;
}

.goalbox .annual_right {
    float: right;
    padding-left: 10px;
}

.goalbox .annual_middle {
    position: absolute;
    bottom: 0;
    width: 97%;
    height: 140px;
}



.annual_monthly_chart {
    width: 85%;
    height: 110px;
    position: relative;
}

.annual_monthly_chart_month {
    width: 8.3%;
    float: left;
    height: 90px;
    position: relative;
    z-index: 50;
}

.annual_monthly_chart_baseline {
    position: absolute;
    top: 90px;
    width: 100%;
    height: 1px;
    border-top: 1px solid white;
    z-index: 101;
}

.annual_monthly_chart_targetline {
    position: absolute;
    width: 100%;
    height: 1px;
    border-top: 1px dashed white;
    z-index: 101;
}

.annual_monthly_chart_bar {    
    position: absolute;
    bottom: 0;
    left: 0;
    right: 1px;
    z-index: 60;
}

.annual_monthly_chart_label {
    position: absolute;
    z-index: 70;
    bottom: -20px;
    height: 15px;
    font-size: 10px;
    font-weight: bold;
    width: 96%;
    text-align: center;
}

.annual_middle_chart {
    left: 50%;
    bottom: 0;
    right: 0;
    top: 10px;
    position: absolute;
}

.weekly_circle {
    width: 280px;
    height: 280px;
    left: -140px;
    position: absolute;
    -webkit-animation: spin 1s;
    -moz-animation: spin 1s;
    animation: spin 1s;
}

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



.annual_middle_text {
    height: 88px;
    width: 200px;
    left: -100px;
    bottom: 0;
    position: absolute;
    z-index: 80;
    text-align: center;
}

.annual_middle_text h1 {
    margin: 0;
    line-height: 1;
    font-size: 41px;
}

.annual_middle_text p {
    font-size: 11px;
    margin: 4px 0;
}

.annual_right_chart {
    width: 96%;
    height: 37px;
    position: relative;
    margin-bottom: 10px;
}

.annual_right_chart_100percent {
    position: absolute;
    right: 6px;
    top: 12px;
    font-weight: bold;
    font-size: 10px;
}

.annual_right_chart_miles {
    position: absolute;
    top: 0;
    height: 18px;
}

.annual_right_chart_days {
    position: absolute;
    top: 19px;
    height: 18px;
}

.annual_right_chart_label {
    position: absolute;
    top: 3px;
    font-size: 10px;
    font-weight: bold;
}

.annual_right_stats_left {
    height: 20px;
    width: 42%;
    text-align: right;
    font-size: 15px;
    font-weight: bold;
    float: left;
    padding-right: 6px;
}

.annual_right_stats_right {
    clear: both;
}

.annual_right_stats_label {
    padding-top: 7px;
    line-height: 1.0;
    font-size: 11px;
}







.weather_box {
    height: 40px;
    text-align: center;
    display: inline-block;
    margin-top: 10px;
    margin-bottom: -6px;
}

.weather_icon {
    width: 32px;
    height: 32px;
    float: left;
}

.weather_box p {
    padding-left: 45px;
    margin: 6px 0 0 0;
}






.record_boxes_wrapper {
    display: flex; /* equal height of the children */
}

#personal_records, #latest_runs {
    width: 50%;
    box-sizing: border-box;
    margin-bottom: 20px;
}

#personal_records {
    float: right;
    border-left: 10px solid #262626;
}

#latest_runs {
    float: left;
    border-right: 10px solid #262626;
}






.chart {
    clear: both;
    box-sizing: border-box;
    overflow: none;
    position: relative;
    margin-bottom: 20px;
    position: relative;
}

.chart_title {
    position: absolute;
    width: 100%;
    text-align: center;
    font-size: 16px;
    font-weight: 700;
    top: 9px;
    letter-spacing: 0.05em;
}

.chart_label, .chart_label_left {
    position: absolute;
    top: 11px;
    margin: 0;
    font-weight: bold;
    color: #444;
    font-size: 12px;
    letter-spacing: 0.05em;
}

.chart_label {
    right: 15px;
}

.chart_label_left {
    left: 15px;
}


.chart_canvas_wrapper {
    padding-top: 35px;
    overflow: none;
    padding-right: 25px;
    height: 200px;
}

.chart_canvas_labels {
    height: 24px;
    margin-top: 6px;
    margin-left: 50px;
    margin-right: 35px;
    position: relative;
}

.chart_canvas_labels div {
    box-sizing: border-box;
    position: absolute;
    text-align: center;
    font-size: 11px;
    width: 60px;
    margin-left: -30px;
}








h3.pr {
    margin: 0;
    padding: 8px 10px 5px 10px;
    box-sizing: border-box;
    height: 40px;
    font-size: 20px;
}


#main_form {
    text-align: left;
}

#main_form_import_step_1 #main_form {
    margin-top: 35px;
    max-width: 580px;
}

#main_form label {
    font-size: 16px;
    margin: 15px 0 2px 0;
    display: block;
}

#main_form .field {
    margin-bottom: 20px;
}


.file_icon {
    width: 18px;
    height: auto;
    vertical-align: bottom;
    margin: 0 6px 0 0;
}

input[type=file] {
    margin-top: 10px;
}

.import_table th, .import_table td {
    vertical-align: top;
    text-align: left;
}

.table_row_import {
    color: white;
}

.table_row_dont_import {
    color: #666;
}

.basic_top_links, .basic_top_buttons {
    margin-top: 30px;
}

#basic_list {
    text-align: left;
}






.run_name_large {
    font-size: 50px;
    margin-top: -5px;
    margin-bottom: 10px;
}








.note_box {
    margin-top: 10px;
    text-align: left;
    padding: 10px 15px;
    background: black;
    margin-bottom: 20px;
    overflow: auto;
}


.map_box {
    /*padding: 10px 15px;*/
    background: black;
    margin-bottom: 20px;
}









.run_map_wrapper {
    position: relative;
}

.run_map_class {
    /* background: #fff8e1 !important; *//* leave !important to override leaflet css */
}

#run_map {
    height: 300px;
}

#run_map_large {
    height: 100%;
    width: 100%;
}



#run_draw_controls {
    overflow: auto;
    clear: both;
    width: 100%;
    box-sizing: border-box;
    height: 50px;
    padding: 10px 52px 0 15px;
}

#run_draw_controls button {
    cursor: pointer;
    float: right;
    border: none;
    border-radius: 3px;
    font-size: 13px;
    color: white;
    margin: 0 0 0 8px;
    padding: 5px 10px;
    color: black;
}

#run_draw_controls button.disabled {
    cursor: default;
    opacity: 0.5;
}

#run_draw_controls button.selected {
    background: white;
}

.leaflet-container.crosshair-cursor-enabled {
    cursor: crosshair;
}




.run_map_controls_wrapper {
    position: absolute;
    z-index: 1020;
    bottom: 0;
    width: 100%;
    box-sizing: border-box;
}

.run_map_visibility_controls {
    height: 44px;
    width: auto;
    position: absolute;
    z-index: 800;
    top: 0;
    right: 0;
    box-sizing: border-box;
}

.run_map_visibility_button, .run_map_layer_button {
    display: block;
    float: right;
    width: 36px;
    height: 40px;
    margin-left: 1px;
    cursor: pointer;
    background: black;
    text-align: center;
    color: white;
    font-size: 12px;
    padding-top: 20px;
    line-height: 0;
    font-weight: bold;
    box-sizing: border-box;
}

/*
.run_map_layer_controls {
    overflow: auto;
    border: 2px solid blue;
    float: right;
    width: 275px;
}
*/

/*
.run_map_layer_button {
    text-align: center;
    cursor: pointer;
    display: block;
    width: 36px;
    padding-top: 21px;
    float: right;
    margin-left: 1px;
    font-size: 14px;
    line-height: 0;
    font-weight: bold;
    box-sizing: border-box;
    height: 40px;
    background: black;
}
*/
.run_map_layer_button_selected {
    background: #f9c106;
    color: black;
}







#run_map_controls {
    padding: 10px 15px;
    overflow: auto;
    clear: both;
    /*width: 100%;*/
    /*box-sizing: border-box;*/
    /*z-index: 1950;
    margin-top: 0px;*/
    /*width: 100%;*/
    /*height: 50px;
    margin-top: -50px;
    z-index: 1010;
    position: relative;*/
}

#run_map_controls #spinner {
    float: right;
    width: 27px;
    height: 27px;
    margin-left: 10px;
    display: block;
}

#run_map_controls #spinner .checkmark {
    width: 18px;
    height: 18px;
    margin: 4px 0 0 4px;
    display: block;
}

#run_map_controls #spinner .spinner {
    width: 27px;
    height: 27px;
    display: none;
}

#run_map_controls button {
    cursor: pointer;
    float: right;
    border: none;
    border-radius: 3px;
    font-size: 13px;
    color: white;
    margin: 0 0 0 8px;
    padding: 5px 10px;
}

#run_map_controls button:hover {
    background: #333;
}

#run_map_controls button.disabled {
    cursor: default;
    background: rgba(0,0,0,0.25);
}

#run_map_controls_left, #run_draw_controls_left {
    margin-top: 2px;
}





#run_map_selected_dots {
    padding: 10px 15px;
    /*box-sizing: border-box;
    z-index: 1960;*/
    overflow: auto;
    display: none;
}

#run_map_selected_dots #details_left {
    float: left;
}

#run_map_selected_dots button {
    cursor: pointer;
    float: right;
    border: none;
    border-radius: 3px;
    font-size: 13px;
    margin: 0 0 0 8px;
    padding: 5px 10px;
}

#run_map_selected_dots button:hover {
    opacity: 0.85;
}











.table_wrapper {
    text-align: left;
    font-size: 16px;
}

.table_header, .table_row, .table_row_highlighted {
    display: block;
    position: relative;
    overflow: auto;
    border-bottom: 1px solid #262626;
    padding: 5px 0;
}

.table_wrapper a:hover {
    text-decoration: none;
}

.table_header {
    font-size: 0.8em;
    letter-spacing: 0.05em;
    padding-top: 8px;
}

.table_wrapper h4 {
    margin: 0;
}

.col_60, .col_75, .col_right {
    bottom: 5px;
    text-align: right;
}

.col_left {
    padding-left: 15px;
}

.col_60 {
    position: absolute;
    right: 33%;
}

.col_75 {
    position: absolute;
    right: 16.66%;
}

.col_right {
    position: absolute;
    right: 15px;
}

.table_footer {
    /*max-width: 750px;*/
    text-align: left;
    margin-top: 15px;
}

.table_title {
    text-align: center;
    padding-top: 10px;
    margin-bottom: 0;
}



.only_show_skinny {
    display: none;
}


@media screen and (max-width: 900px) {


    h1 { font-size: 33px; }
    h2 { font-size: 27px; }
    h3 { font-size: 20px; }
    h4, .chart_title { font-size: 14px; }
    h5 { font-size: 10px; }
    h6 { font-size: 12px; }

    header {
        min-height: 68px;
        height: 68px;
        text-align: left;
    }

    header .logo {
        width: 145px;
        height: 42px;
        margin: 20px 0 0 15px;
    }
    
    #add_button {
        top: 22px;
        right: 15px;
        height: 40px;
        width: 130px;
        font-size: 18px;
        line-height: 41px;
    }
    
    #header_right {
        float: right;
        padding: 22px 15px 0 0;
    }
    
    #header_right a {
        margin-left: 5px;
    }
    
    #header_right img {
        width: 40px;
        height: 40px;
    }
    
    footer {
        padding: 30px 15px;
        text-align: right;
    }
    
    footer .logo {
        float: right;
    }
    
    footer #links {
        clear: both;
        position: static;
        margin: 25px 0;
        padding-top: 10px;
    }
    
    footer #links a {
        margin-left: 20px;
        margin-right: 0;
    }
    
    footer #links_small {
        position: static;
        margin-bottom: 12px;
    }
    
    footer #links_small a {
        margin-left: 0;
        margin-right: 15px;
    }

    main {
        padding: 0 15px 15px 15px;
    }
    
    
    
    
    
    .chart {
        margin-bottom: 20px;
    }
    
    .chart_canvas_wrapper {
        padding-right: 10px;
        height: 180px;
    }
    
    .chart_canvas_labels {
        margin-right: 22px;
    }
    
    .chart_canvas_labels div {
        font-size: 10px;
    }
    

    
    
    .col3_wrapper {
        height: auto;
        margin-bottom: 20px;
        display: block;
    }
    
    .col3_col {
        width: 100%;
        border-right: none;
        padding: 10px;
        border-bottom: 2px solid #262626;
        overflow: hidden;
        min-height: 72px;
    }
    
    .record_boxes_wrapper {
        display: block;
    }
    
    .pr_bar {
        margin-right: 0px;
    }
    
    #personal_records, #latest_runs {
        width: 100%;
        float: none;
        border: none;
        margin-bottom: 20px;
    }
    
    
    .col_left {
        padding-left: 10px;
    }
    
    .col_right {
        right: 10px;
    }
    
    
    .run_name_large {
        margin-top: 10px;
        margin-bottom: 5px;
    }
    
    .goalbox {
        padding: 5px 10px 0 10px;
        height: 300px;
    }
    
    .goalbox .annual_left, .goalbox .annual_right {
        width: 50%;
    }
    
    .goalbox .annual_middle {
        top: 150px;
        height: 150px;
    }
    
    .annual_monthly_chart {
        width: 95%;
    }
    
    .annual_right_chart {
        width: 98%;
    }
    
    .weekly_circle {
        /*animation-timing-function: ease-in;*/
        -webkit-animation: none;
        -moz-animation: none;
        animation: none;
    }
    
    
    .weather_icon {
        width: 25px;
        height: 25px;
        margin-top: 2px;
    }
    
    .weather_box {
        margin-top: 3px;
        height: auto;
    }
    
    .weather_box p {
        padding-left: 36px;
        font-size: 16px;
    }
    
    #other_route_runs, #ar_outer {
        margin-bottom: 20px;
    }
    
    .horizontal_line_label {
        font-size: 10px;
        margin-bottom: 1px;
        width: 2.8%;
    }
    
    
    
    .run_map_visibility_button, .run_map_layer_button {
        width: 34px;
        height: 56px;
        padding-top: 28px;
    }

}




@media screen and (max-width: 400px) {

    main {
        padding: 0 10px 10px 10px;
    }
    
    .weather_box {
        margin-top: 0px;
    }
    
    .weather_box p {
        padding-left: 30px;
        font-size: 15px;
    }
    
    .hide_skinny {
        display: none;
    }
    
    .only_show_skinny {
        display: block;
    }
    
    .annual_right_stats_skinny {
        margin-top: 15px;
        font-size: 11px;
    }
    
    .annual_right_chart {
        height: 47px;
    }
    
    .annual_right_chart_miles, .annual_right_chart_days {
        height: 23px;
    }
    
    .annual_right_chart_days {
        top: 24px;
    }
    
    .annual_right_chart_label {
        top: 5px;
    }
    
    .annual_right_chart_100percent {
        top: 16px;
    }
    
    .col_60 {
        right: 36%;
    }
    
    .col_75 {
        right: 17%;
    }
        
}



.col3_wrapper, .chart, .run_map_class, .run_map_controls_wrapper, .run_map_layer_controls, .run_map_visibility_controls, .run_map_visibility_button {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}


/* input placeholder text color */
::-webkit-input-placeholder {   color: #444; }
:-moz-placeholder {             color: #444; }
::-moz-placeholder {            color: #444; }
:-ms-input-placeholder {        color: #444; }
