* { box-sizing: border-box; }
body
{
    font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
    font-size: 10pt;
    margin: 0px;
    padding: 2px;
    cursor: default;
    user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none;
    margin-bottom: 40px;
}

#header
{
    font-size: 16pt;
    background-color: #333;
    background: url('images/bike.svg') 5px 5px no-repeat; /*, linear-gradient(0deg, #666, #777 70%);*/
    background-size: 32px, auto;
    color: #fff;
    margin: 0;
    margin-left: auto; margin-right: auto;
    padding: 5px 30px 5px 50px;
    text-align: center;
    max-width: 800px;
    min-height: 40px;
    text-shadow: -1px -1px #333;
}
#extra-header 
{
    font-size: 12pt;
    text-align:center;
    padding-right: 50px;
    padding-left: 30px;
    color: #fff;
    margin-top: -10px;
    text-shadow: -1px -1px #333;
}

#full-header 
{ 
    position: relative; 
    max-width: 800px; 
    margin-left: auto; 
    margin-right: auto; 
    background: linear-gradient(0deg, #666, #777 70%);
}
#navbar
{
    text-align: center;
/*    background-color: #444;
    background: linear-gradient(0deg, #444, #666 70%);*/
    color: #fff;
    padding: 2px;
    padding-bottom: 4px;
    max-width: 800px;

    margin-left: auto; margin-right: auto;
}
#navbar a, #navbar span, #profile_button
{
    color: #fff;
    text-shadow: -1px -1px #555;
    background-color: #555;
    background: linear-gradient(0deg, #555, #777 70%);
    text-decoration: none;
    display: inline-block;
    text-align: center;
    padding: 2px;
    border: solid 1px #555;
    border-radius: 5px;
    cursor: pointer;
}
#navbar img { vertical-align: middle; margin-right: 2px; max-width: 16px; }
#profile_button img { vertical-align: middle; max-width: 16px; }
#profile_button { position: absolute; top: 5px; right: 5px; }
#footer {
    line-height: 50px;
	height: 50px;
	text-align: center;
	width: 100%;
    max-width: 100%;
}

.bottom_toolbar {
    position: relative;
    background-color: inherit;
    border-top: none;
    height: auto;
    padding: inherit;
}


#content
{
    border: solid 1px #666;
    padding: 2px;
    max-width: 800px;
    margin-left: auto; margin-right: auto;
}
#content div.subtitle
{
    background-color: #932300;
    background: linear-gradient(0deg, #932300, #a33333 70%);
    padding: 3px;
    font-weight: bold;
    color: #fff;
    text-shadow: -1px -1px #006;
    margin-bottom: 2px;
    white-space: nowrap;
}
#content div.title, thead th
{
    background-color: #600;
    background: linear-gradient(0deg, #600, #800 70%);
    padding: 3px;
    font-weight: bold;
    color: #fff;
    text-shadow: -1px -1px #300;
    margin-bottom: 2px;
    white-space: nowrap;
}
#content tbody th
{
    text-align: left;
}

form { margin-bottom: 1em; }

form label
{
    display: inline-block;
    min-width: 125px;
}
form label img { vertical-align: middle; margin: 1px; }

form textarea
{
    font-family: sans-serif;
    font-size: 10pt;
}
#add_button { display: none; }

#errmsg, .errmsg { color: #f00; }
.goodmsg { color: #090; }

.left { text-align: left; }
.center { text-align: center; }
.right { text-align: right; }
.justify { text-align: justify; }

.separator_top { border-top :solid 1px #666; padding-top: 2px; }
.border_top { border-top: solid 1px #666; }
.border_bottom { border-top: solid 1px #666; }
.empty_border { border-top: solid 1px #666; height: 4px !important; overflow:hidden; margin-top: 2px; margin-bottom: 2px; }
.empty_spacer { height: 4px !important; margin-top: 2px; margin-bottom: 2px; }

.searchnote { word-wrap:break-word; display: inline-block; }
#templisting { display: inline-block; padding: 2px 0px; }
.temp-picker { color: #00f; border-bottom: dashed 1px #00f; padding: 0px 2px; margin-right: 1px; cursor: pointer; white-space: nowrap; }

input[type="submit"]
{
    border: solid 2px #ccc;
    color: #fff;
    text-shadow: -1px -1px #000;
    background-color: #000;
    background: linear-gradient(0deg, #000, #555 70%);
    cursor: pointer;
    padding: 5px;
    border-radius: 10px;
    font-weight: bold;
}
input[type="submit"].disabled
{
    background-color: #eee;
    color: #e5e5e5;
}
input[type="number"]
{
    width: 80px;
    text-align: right;
}

tr.bottom_row td, td.bottom_row
{
    border-bottom: dotted 1px #ccc;
}

.default_bike
{
    background-color: #cfc;
}
.retired
{
    background-color: #ccc;
}

td
{
    padding: 2px;
}
td.money, th.money { text-align: right; }

tfoot tr { background-color: #f0f0f0; } 

.linkimg
{
    cursor:pointer;
}
.link { text-decoration: underline; color: blue; }

#note
{
    display: none;
    position: absolute;
    background-color: #efefef;
    border: solid 1px #333;
    padding: 2px;
}

#note span
{
    float: right;
    margin-left: 2px;
}
#note form { display: inline; }
#note textarea { width: 95%; height: 1.25em; border: 0; display: inline; background-color: #f4f4f4; }

#preset-name { display: none; }
#preset-list
{
    margin-top: 4px; margin-bottom: 4px; box-sizing: border-box; column-count: 4; column-gap: 2px;
}
.preset
{
    padding: 4px;
    cursor: pointer;
    color: #00f;
    text-decoration: underline;
    border: dashed 1px #666;
    margin-bottom: 2px;
    display: inline-block;
    width: 100%;
    position: relative;
}
.preset img { position: absolute; right: 2px; top: 2px; max-height: 80%; }

.float_right { float: right; margin-left: 1px; }
.float_left { float: left; margin-right: 1px; }

table.hovertable tbody tr:hover
{
    background-color: #eee;
}

.bikemsg, .profilemsg, .logmsg
{
    display: block;
    padding: 2px;
    border: solid 1px #666;
    margin: 2px 0px;
}

#calendar { overflow: hidden; }
.calendar_head, .calendar_head_small
{
    border: solid 1px #333;
    border-right: 0; 
    text-align: center;
    margin: 0;
    box-sizing: border-box;
    float:left;
}
.calendar_head_small { display: none; }

#bike_menuitem, #goal_menuitem, #widget_menuitem, #map_menuitem, #search_menuitem { display: none; }
#bike_button, #goal_button, #widget_button { display: inline; }

/* graph stuff */
.bargraph
{
    display: inline-block;
    width: 100%;
    height: 325px;
    min-height: 310px;
    border: solid 1px #000;
    padding: 5px;
    font-family: sans-serif;
    text-align: center;
    white-space: nowrap;
    cursor: default;
    margin-bottom: 1em;
    overflow: hidden;
}
.bargraph .graphtitle
{
    text-align:center;
    font-weight: bold;
    font-size: 110%;
    height: 10%;
}
.bargraph .grapharea
{
    display: inline-block;
    height: 80%;
    width: 95%;
    margin-bottom: 5px;
    border-left: solid 1px #000;
    border-bottom: solid 1px #000;
}

.bargraph .grapharea .bar
{
    display: inline-block;
    border: solid 1px #0990ae;
    border-bottom: 0;
    background-color: #2cc2e0;
    color: #333;
    text-shadow: 1px 1px 0px #ddd;
    text-align: center;
    box-sizing: border-box;
    vertical-align: bottom;
    position: relative;
    margin-right: 1px;
}
.bargraph .grapharea .bar .label
{
    display: inline-block;
    max-width: 100%;
    overflow:hidden;
    font-size: 80%;
}

.bargraph .grapharea .bar .label.over
{
    margin-top: -1.1em;
}
.bargraph .grapharea .bar .label.zero
{
    position: absolute;
    left: 45%; top: -1.1em;
}

.bargraph .grapharea .bar:hover
{
    background-color: #3bd1ef;
}

.bargraph .grapharea .bar.highlight
{
    background-color: #16e0be;
}
.bargraph .grapharea .bar.highlight:hover
{
    background-color: #22ecca;
}

.bargraph .Yaxis
{
    height: 80%;
    width: 5%;
    display: inline-block;
    text-align: right;
}

.bargraph .Yaxis .step
{
    height: 10%;
}

.bargraph .Xaxis
{
    height: 10%;
    text-align: center;
    width: 95%;
    margin-left: auto;
}
.bargraph .Xaxis .label
{
    display: inline-block;
    text-align: center;
    margin-right: 1px;
}
.bargraph .Xaxis .label.rotate
{
    transform: rotate(-75deg);
    margin-top: 1em;
}

.bargraph .grapharea .bar .label.rotate
{
    transform: rotate(-90deg);
    text-align: right;
    max-width: 999px;
    margin-top: 5px;
    margin-left: -2px;
    text-shadow: -1px 1px 0px #ddd;
}

/* end graph stuff */

@media only screen and (max-width: 640px)
{
    .calendar_head { display: none; }
    .calendar_head_small { display: inline-block; }
    .calendar_day .entries span { display: none; }
    input[type="text"], textarea { display: block; width: 100%; }
    #login_page input[type="text"] { display: inline; width: auto; }
    table.hovertable td { padding: 3px 1px; }
    table.hovertable img { min-width: 20px; min-height: 20px; }
    #content div.subtitle { padding: 8px 3px; }
    .bottom_toolbar {
        position: fixed;
        left: 0; width: 100%;
        bottom: 0;
        background-color: #fff;
        border-top: solid 1px #ccc;
        height: 40px;
        padding-top: 2px;
        padding-bottom: 2px;
    }
    #bike_button, #goal_button, #widget_button, #map_button, #search_button { display: none !important; }
    #bike_menuitem, #goal_menuitem, #widget_menuitem, #map_menuitem, #search_menuitem { display: block !important; }
    #lifetime_counter
    {
        display: none;
    }
    #preset-list
    {
        margin-top: 4px; margin-bottom: 4px; box-sizing: border-box; column-count: 2; column-gap: 2px;
    }
    #login_page label { display: block; }
    #login_page input[type="text"], #login_page input[type="password"] 
    { 
        padding: 5px; 
        text-align: center; 
        width: 100%;
        border: solid 2px #333;
        border-radius: 5px;
    }
    #login_page input[type="submit"] { display: block; width: 100%; min-height: 40px; }
    .tabbed label, .tabbed2 label { display: inline-block; width: 50% !important; min-width: 100px; }
    #add_button
    {
        display: block !important;
        position: fixed;
        bottom: 16px; right: 16px;
        width: 48px; height: 48px;
        background-color: #070;
        border-radius: 48px;
        text-align: center;
        line-height: 48px;
    }
    #add_button img { height: 32px; vertical-align: middle; }
    #add_button a { display: block; width: 100%; height: 100%; }
    .notecol { display: none !important; }

    .bargraph .Xaxis { margin-top: 1em; }
    .bargraph .Xaxis .label.rotate { transform: rotate(-90deg); }
}

.g-recaptcha div:first-child { margin-left: auto; margin-right: auto; }
.nowrap { white-space: nowrap; }
.nowrapta
{
    overflow-x: scroll;
    white-space: nowrap;
    padding: 0;
}

.calendar_day
{
    border-left: solid 1px #333;
    border-bottom: solid 1px #333;
    border-right: 0;
    position: relative;
    width: 50px; height: 50px;
    margin: 0px;
    box-sizing: border-box;
    float: left;
    overflow: hidden;
    white-space: nowrap;
}
.calendar_day .entries
{
    font-size: 80%;
    margin-top: 2.1em;
}
.today { background-color: #efe; }
.border_right {
    border-right: solid 1px #333;
}
.empty
{
    background-color: #f0f0f0;
}
.calendar_day .date_label
{
    position: absolute;
    left: 0; top: 0;
    text-align: right;
    /*right: 2px; top: 2px;*/
    font-weight: bold;
    cursor: pointer;
    border-bottom: dotted 1px #666;;
    background-color: #ddd;
    padding: 2px;
    width: 100%;
}
.calendar_day .date_label:hover { color: #900; }
.calendar_day.empty .date_label { border: 0; cursor: default; background-color: inherit; }

.calendar_day .day_total
{
    position: absolute;
    bottom: 0; left: 0;
    width: 100%;
    text-align: center; 
    font-size: 80%;
    color: #090;
}

.calnav { margin: 2px 5px; }
.calnav a { color: #fff; text-decoration: none; font-weight: bold; }

.bold { font-weight: bold; }
.primary_stats label { display: inline-block; width: 33%; min-width: 200px; }
.tabbed { padding-left: 1em !important; }
.tabbed label, .tabbed2 label { display: inline-block; width: 25%; min-width: 100px; }
.tabbed2 { padding-left: 2em !important; }
.zebrastats > div:nth-of-type(odd) { background-color: #eee9e9; }

.graph { max-width: 100%; }
.paging_box { padding: 4px; }
.page_button, .subnav a
{
    background-color: #ddd;
    background: linear-gradient(0deg, #ddd, #f0f0f0 70%);
    border: solid 1px #333;
    border-radius: 5px;
    padding: 2px 4px;
    text-decoration: none;
    text-shadow: 1px 1px #fff;
    color: black;
    cursor: pointer;
}

#entry_note { max-width: 100%; max-height: 800px; }

#header-bg { background-color: #fff; }

.extra_margin { margin: 10px; }
.extra_padding { padding: 10px; }
.small_padding { padding: 5px; }
.button
{
    cursor: pointer;
    font-weight: bold;
    padding: 4px 8px;
    text-decoration: none;
    border: solid 1px #333;
    border-radius: 10px;
    background-color: #ddd;
    color: #000;
}
.button.blue
{
    padding: 4px 8px;
    background-color: #006;
    background: linear-gradient(0deg, #006, #33c 60%);
    color: #fff;
    text-shadow: -1px -1px #006;
    border: solid 2px #66b;
}
.button.grey
{
    background-color: #666;
    background: linear-gradient(0deg, #333, #666 60%);
    color: #fff;
    text-shadow: -1px -1px #333;
    border: solid 2px #666;
}
.button.red
{
    background-color: #600;
    background: linear-gradient(0deg, #600, #c33 60%);
    color: #fff;
    text-shadow: -1px -1px #333;
    border: solid 2px #b66;
}

.ad:before
{ content: 'A word from our sponsors: '; font-size: 8pt; }

.smaller { font-size: 90%; }
.patreon_button { width: 256px; max-width: 90%; border: 0; }
.inline { display: inline; }

#loading { background-color: rgba(255,255,255,.8); box-sizing: border-box; border: solid 1px #333; text-align: center; font-size: 14pt; }
#track-details
{
    position: fixed;
    background-color: rgba(255,255,255,.9);
    border: solid 1px #333;
    box-sizing: border-box;
}
#track-details-content { margin: 2px; padding: 3px; overflow: auto; }
#track-details label
{
    display: inline-block;
    min-width: 125px;
}
#track-details label img { vertical-align: middle; margin: 1px; }

.hidden
{
    display: none;
}

.toggler { position: relative; cursor: pointer; }
.toggler .total_distance { position: absolute; right: 2px; }
.toggler img { margin-left: 2px; margin-right: 4px; vertical-align: text-top; }

.subnav { min-height: 24px; text-align: center; margin-top: 4px; }
.anchor { display: block; position: relative; top: -100px; visibility: hidden; }
.imagetd img { margin-right: 2px; }

.banner { text-decoration: none; }

#app-banner
{
    padding: 10px;
    margin: 5px;
    padding-left: 52px;
    text-align: center;
    border: solid 1px #000;
    background: url('images/arobot.png') 5px center no-repeat;
    background-size: 40px;
    text-decoration: none;
    color: #000 !important;
    min-height: 40px;
}

#usermenu {
    display: none;
    background-color: #eee;
    border: solid 1px #ccc;
    box-shadow: 5px 5px 10px #333;
    padding: 2px;
    width: auto;
    position: fixed;
}

#usermenu a {
    display: block;
    text-decoration: none;
    color: #000;
    padding: 4px;
    white-space: nowrap;
}
#usermenu a:hover {
    background-color: #ccc;
}
.menuhead
{
    font-weight: bold;
    background-color: #ddd;
    padding: 4px;
    text-align: center;
}

#goaltable, #presettable
{
    width: 100%;
    border-collapse: collapse;
    border: solid 1px #666;
    margin-bottom: 1em;
}
#goaltable td, #goaltable th, #presettable td, #presettable th
{
    border: solid 1px #666;
}

#goaltable img, #presettable img { max-width: 20px; }

.editrow
{
    background-color: rgba(30,202,153,.5);
}

.congrats
{
    text-align: center;
    font-weight: bold;
    font-size: 120%;
    background-color: #0f0;
    background-image: url('images/goal2.svg'), url('images/goal2.svg');
    background-position: 5px center, right 5px center;
    background-size: auto 95%, auto 95%;
    background-repeat: no-repeat, no-repeat;;
}

.progress_bar
{
    text-align: center;
    border: solid 1px #333;
    background-color: #ddd;
}
.progress_bar_color
{
    background-color: #909;
    background: linear-gradient(0deg, #707, #a3a 70%);
    color: #fff;
    max-width: 100%;
    padding: 2px;
}

.progress_bar.completed .progress_bar_color
{
    background-color: #0f0;
    background: linear-gradient(0deg, #3a3, #0f0 70%);
    color: #000;
    max-width: 100%;
    padding: 2px;
}

.secret_link
{
    text-decoration: none;
    color: #000;
}

h2 { margin: 0; }

tr.filter_row td { border-bottom: solid 1px #999; }

#lifetime_counter
{
    position: fixed;
    top: 2px; right: 2px;
    text-align: center;
    border: solid 1px #333;
    user-select: text; -moz-user-select: text; -webkit-user-select: text; -ms-user-select: text;
}
#lifetime_counter span.title
{
    display: block;
    text-align: center;
    background-color: #600;
    background: linear-gradient(0deg, #600, #800 70%);
    padding: 3px;
    font-weight: bold;
    color: #fff;
    text-shadow: -1px -1px #300;
}
#lifetime_counter span.count
{
    white-space: nowrap;
    font-size: 20pt;
    padding: 5px;
}

.pre
{
    font-family: monospace;
    border: solid 1px #333;
    border-bottom: solid 1px #999;
    border-right: solid 1px #999;
    background-color: #eee;
    user-select: text; -moz-user-select: text; -webkit-user-select: text; -ms-user-select: text;
}
#widget-table
{
    margin-left: auto; margin-right: auto;
    border: solid 1px #999;
    border-collapse: collapse;
}
#widget-table td
{
    border: solid 1px #999;
}

@media only screen and (min-width: 640px) {
#header { border: solid 1px #555; border-bottom: 0;  border-top-left-radius: 1em; border-top-right-radius: 1em; padding-left: 5px; }
#full-header { border-top-left-radius: 1.5em; border-top-right-radius: 1.5em; }
#profile_button { position: absolute; top: 5px; right: 10px; }
#navbar a, #navbar span
{
    background: none;
    border: 0;
}
#navbar a:first-child:before
{
    content: "";
}
#navbar a:before
{
    content: '\2022\A0';
}
#navbar a:hover { background-color: inherit !important; }
#navbar a { border: 0; }

/*.hidden { display: block; }
.toggler { cursor: default; }
.toggler .total_distance { display: none; }
.toggler img { display: none; }*/
.anchor { display: inline; position: relative; top: auto; visibility: hidden; }
#bike_menuitem, #goal_menuitem, #widget_menuitem, #map_menuitem, #search_menuitem { display: none !important; }
#bike_button, #goal_button, #widget_button { display: inline !important; }
}
.loading_box
{
    text-align: center;
    line-height: 2em;
    vertical-align: middle;
}
.loading_box img { vertical-align: middle; margin: .25em; }
