/*======================================
Australian Automotive Solutions Pty Ltd
Booking Sheet Style
2014-09-30

Media Query Sizes:
1. Desktop (width: >1200)
2. Tablet  (width: 601 - 1200)
3. Mobile  (width: <600)
========================================*/

/* note that whether we have sticky header and footer depends only on height, not width */

/*
Table Of Contents:
0.0 RESET
1.0 SITE-WIDE
    1.1 ROW COL Layout
2.0 HEADER
3.0 TABLES
4.0 PAGES
    4.1 PAGE DEFAULTS
    4.2 LOGIN PAGE
    4.3 HOME PAGE
    4.4 MANAGE USERS PAGE
    4.5 REVIEW LOGS PAGE
    4.6 BOOKING-SHEET PAGE
5.0 FOOTER

*/
/*
@font-face {
	font-family: 'BenchNine';
	src: url('/booking-sheet/fonts/benchnine-regular.eot');                                         * IE9 Compat Modes *
	src: url('/booking-sheet/fonts/benchnine-regular.eot?#iefix')      format('embedded-opentype'), * IE6-IE8 *
	     url('/booking-sheet/fonts/benchnine-regular.woff')            format('woff'),              * Modern Browsers *
	     url('/booking-sheet/fonts/benchnine-regular.ttf')             format('truetype'),          * Safari, Android, iOS *
	     url('/booking-sheet/fonts/benchnine-regular.svg#svgFontName') format('svg');               * Legacy iOS *
}*/

@import url(https://fonts.googleapis.com/css?family=Roboto+Condensed:400italic,700,400);
/* ============== 0.0 RESET ================= */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
	border: 0;
	font-family: Roboto;
	font-size: 18px;
	font-style: inherit;
	font-weight: inherit;
	margin: 0;
	outline: 0;
	padding: 0;
	vertical-align: baseline;
}

html {
	font-size: 62.5%; /* Corrects text resizing oddly in IE6/7 when body font-size is set using em units http://clagnut.com/blog/348/#c790 */
	overflow-y: scroll; /* Keeps page centered in all browsers regardless of content height */
	-webkit-text-size-adjust: 100%; /* Prevents iOS text size adjust after orientation change, without disabling user zoom */
	-ms-text-size-adjust:     100%; /* www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ */
	box-sizing: border-box; /* Apply a natural box layout model to the document; see http://www.paulirish.com/2012/box-sizing-border-box-ftw/ */
}
*,
*:before,
*:after { /* Inherit box-sizing to make it easier to change the property for components that leverage other behavior; see http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
	box-sizing: inherit;
}

body {
	background: #fff; /* Fallback for when there is no custom background color defined. */
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
nav,
section {
	display: block;
}

ol,
ul {
	list-style: none;
}

table { /* tables still need 'cellspacing="0"' in the markup */
    width: 100%;
	border-collapse: separate;
	border-spacing: 0;
    background-color: white;
}

caption,
th{
	font-weight: bold;
	text-align: left;
}
td {
	font-weight: normal;
	text-align: left;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
	content: "";
}

blockquote,
q {
	quotes: "" "";
}

a:focus {
	outline: thin dotted;
}

a:hover,
a:active {
	outline: 0;
}

a img {
	border: 0;
}


/* ============== 1.0 SITE-WIDE ================= */
.table-header{
    background-color: rgb(226,226,226) !important;
}
#grid-holder{
    position: fixed;
    width: 100%;
    height: 100%;
    z-index:-100;
    text-align: center;
}
#grid{
    background-color: rgb(10,26,42);
    display: inline-block;
    height: 100%;
    z-index:-100;
}


/* site-wide text */
body,
input{
    font-family: 'Roboto', sans-serif;
}

input, div, img{
    box-sizing: border-box;
}
select{
    font-size: 24px;
}

.form-title{
    color: white;
}

.error, .debug{
    background-color: rgba(255,255,255,0.2);
    font-size: 16px;
}
.error{
    color: red;
}

.debug{
    color: orange;
    font-style: italic;
}

/* elements that are only displayed on small (ie condensed) screens, eg <br> */
.condensed{
    display: none;
}

/* 'Home', 'Log Out', 'Cancel' etc buttons */
.button{
    color: white;
    padding: 6px 12px;
    min-width: 100px;
    text-align: center;
    text-transform: capitalize;    
    border-radius: 5px;
    border: 1px groove  rgb(68,158,7);
    cursor: pointer;
    font-size: 20px;
    
    background-color: rgb(129,203,61);
    background: -webkit-linear-gradient(#81c23a, #51a217); /* For Safari 5.1 to 6.0 */
    background: -o-linear-gradient(#81c23a, #51a217); /* For Opera 11.1 to 12.0 */
    background: -moz-linear-gradient(#81c23a, #51a217); /* For Firefox 3.6 to 15 */
    background: linear-gradient(#81c23a, #51a217); /* Standard syntax */
}
.button:hover{
    border-color: blue;
    background-color: blue;
    background: -webkit-linear-gradient(rgb(38,49,201), rgb(68,79,231)); /* For Safari 5.1 to 6.0 */
    background: -o-linear-gradient(rgb(38,49,201), rgb(68,79,231)); /* For Opera 11.1 to 12.0 */
    background: -moz-linear-gradient(rgb(38,49,201), rgb(68,79,231)); /* For Firefox 3.6 to 15 */
    background: linear-gradient(rgb(38,49,201), rgb(68,79,231)); /* Standard syntax */
}
.button:focus{
    border-color: red;
}
.button.disabled{
    border-color: grey;
    background-color: grey;
    background: -webkit-linear-gradient(grey, grey); /* For Safari 5.1 to 6.0 */
    background: -o-linear-gradient(grey, grey); /* For Opera 11.1 to 12.0 */
    background: -moz-linear-gradient(grey, grey); /* For Firefox 3.6 to 15 */
    background: linear-gradient(grey, grey); /* Standard syntax */
}

input.text,
input.password{
    background-color: white;
    border-radius: 4px;
}

input[type=radio],
input[type=checkbox]{
    width: 20px;
    height: 20px;
}

/* Responsive for mobiles */
@media only screen and (max-width: 600px){

    .condensed{
        display: inline;
    }
    
    input{
        font-size: 18px;
    }
}

img{
    max-width: 100%;
}
/* ============== 1.1 ROW & COL LAYOUT ================= */
/*
1. Desktop (width: >1200)
2. Tablet  (width: 601 - 1200)
3. Mobile  (width: <=600)
0.5     0.5

0.5     0.5

0.5
0.5

0.33    0.33    0.33                

0.33    0.33    0.33

0.33
0.33
0.33


0.25    0.25    0.25    0.25

0.25    0.25
0.25    0.25

0.25
0.25
0.25
0.25


0.16    0.16    0.16    0.16    0.16    0.16

0.16    0.16    0.16
0.16    0.16    0.16

0.16
0.16
0.16
0.16
0.16
0.16
*/

/* class="row in-grid" is a row type that has its width restricted to page grid on desktop-sized screens */
.in-grid{
    width: 1400px !important;
}
@media only screen and (min-width: 1200px) and (max-width: 1399px){
    .in-grid{
        width: 1200px !important;
    }
}
@media only screen and (min-width: 1000px) and (max-width: 1199px){
    .in-grid{
        width: 1000px !important;
    }
}



/* DESKTOP */
.row{
    display: inline-block;
    max-width: 100%;        /* might be restricted to grid if class="in-grid" */
    font-size: 0;       /* prevent wrapping of columns due to whitespace between them */
    text-align: left;
}
.col{
    font-size: 16px;    /* override inherited value */
    padding-left: 5%;   /* horizontal gap between columns */
    display: inline-block;
}
.first-col{
    padding-left: 0%;   /* no horizontal gap for first column */
}
.one-half{
    width: 50%;
}
.one-third{
    width: 33.33%;
}
.one-quarter{
    width: 25%;
}
.one-sixth{
    width: 16.66%;
}
.two-thirds{
    width: 66.66%;
}
.three-quarters{
    width: 75%;
}
.five-sixths{
    width: 83.33%;
}
.full-width{
    width: 100%;
    padding-left: 0%;
}

/* TABLETS & MOBILE LANDSCAPE */
@media only screen and (min-width: 601px) and (max-width: 1200px){
    .one-quarter{
        width: 50%;
    }
    .one-sixth{
        width: 33.33%;
    }
    .two-thirds,
    .three-quarters,
    .five-sixths{
        width: 100%;
        padding-left: 0%;
    }
}

/* MOBILES */
@media only screen and (max-width: 600px){
    .one-half, 
    .one-quarter, 
    .one-third, 
    .one-sixth, 
    .two-thirds, 
    .three-quarters, 
    .five-sixths{
        width: 100%;
        padding-left: 0%;
    }

}

/* ============== 2.0 HEADER ================= */
#header{
    position: fixed;
    height: 40px;
    width: 100%;
    text-align: center;
    z-index: 10;
    
}
#header > .row {
    background-color: rgb(38,142,231);
    background: -webkit-linear-gradient(rgb(38,142,231), rgb(57,109,156)); /* For Safari 5.1 to 6.0 */
    background: -o-linear-gradient(rgb(38,142,231), rgb(57,109,156)); /* For Opera 11.1 to 12.0 */
    background: -moz-linear-gradient(rgb(38,142,231), rgb(57,109,156)); /* For Firefox 3.6 to 15 */
    background: linear-gradient(rgb(38,142,231), rgb(57,109,156)); /* Standard syntax */
}
#header > .row > .col{
    text-align: right;
}
/*
#header #page-title{
    float: left;
    padding: 10px 0 0 0px;
}*/
@media only screen and (max-height: 399px){
    #header{
        position: static;       /* no sticky header on short device */
    }
}

/* Home page logo */
#header #home{
    padding: 4px;
    border: 2px solid transparent;
    border-radius: 5px;
}
#header #home:hover{
    background-color: rgba(255,255,255,0.4);
    border-color: white;
}


/* ============== 3.0 TABLES ================= */
/* All tables */
/* every 2nd column make a different colour */
td:nth-child(2n - 1){
	background-color: rgba(0,0,255,0.02);
}
td:nth-child(2n){
	background-color: rgba(0,0,0,0);
}

/* every 2nd row of table a bit darker */
tr:nth-child(2n - 1){
	background-color: rgba(0,0,0,0.05);
}

table{
	border-collapse: collapse;
	text-align: left;
    font-size: 28px;
    width: 100%;
}
td{
    padding: 2px;
}
td form{
    margin: 0;
}
.date{
    white-space: nowrap;
}
td .date:after{
    content: " ";
    padding-right: 20px;
}
@media only screen and (min-width: 1000px) and (max-width: 1199px){
    th,td,select{
        font-size: 22px;
    }
}
@media only screen and (min-width: 600px) and (max-width: 999px){
    th,td,select{
        font-size: 20px;
    }
}
@media only screen and (max-width: 599px){
    th ,td, select{
        font-size: 17px;
    }
    
    td .date{
        display: block;
    }
    td .date:after{
        content: "";
        padding-right: 0px;
    }
}

/* ============== 4.0 PAGES ================= */
/* ============== 4.1 PAGE DEFAULTS ================= */
.page{
    background-color: rgb(200,200,200);
}

.page .option-menu{
    padding: 5px;
}
.page .option-menu  > .col > form{
    display: inline-block;
}
#content{
    padding-top: 40px;      /* must match #header height */
    padding-bottom: 25px;   /* must match #footer height */
    width: 100%;
    text-align: center;
    min-height: 100%;
    z-index: 0;
}
@media only screen and (max-height: 399px){
    #content{
        padding-top: 0px;      /* no sticky header on mobile */
        padding-bottom: 0px;   /* no sticky footer on mobile */
    }
}

/* logout button */

/*logout button at top right of page*/
#logout{
    text-align: right;
}
#logout,
#home{
    display: inline-block;
}
#home{
    float: left;
    width: 400px;
    padding: 5px 0 0 5px;
}

@media only screen and (max-width: 550px){
    #home{
        width: 300px;
        padding: 8px 0 0 5px;
    }
}
@media only screen and (max-width: 430px){
    #home{
        width: 250px;
        padding: 10px 0 0 5px;
    }
}
@media only screen and (max-width: 380px){
    #home{
        width: 220px;
        padding: 10px 0 0 3px;
    }
}
@media only screen and (max-width: 350px){
    #home{
        width: 200px;
        padding: 11px 0 0 3px;
    }
}



/* ============== 4.2 LOGIN PAGE ================= */
.page-login{
    height: 100%;
    text-align: center;
}
.page-login #content{
    height: 100%;
    display: inline-block;
    padding: 0;
}
.page-login #logo-holder{
    width: 100%;
    max-width: 1200px;
    background-color: white;
}


.page-login #watermark{
    position: absolute;
    opacity: 0.25;
    left: 40px;
    top: 50px;
}
/* login page */
.page-login #login-holder{
    max-width: 1000px;
    display: inline-block;
    background-color: rgb(10,26,42);
    background-image: url(../img/watermark.png);
    background-repeat: no-repeat;
    background-position: 30% 30%;
    position: relative;
    height: 100%;
    border: 2px groove rgb(5,20,30);
    overflow: hidden;
}
.page-login .logo{
    background-color: white;
    padding: 20px 5px;
    box-sizing: border-box;
    z-index: -10;
}

.page-login .form-title{
    font-size: 20px;
    padding: 5px 0px;
}

.page-login #login-holder > *{
    vertical-align: middle;
}


/* login form */
.page-login #login{
    text-align: left;
}
.page-login #login > .row{
    display: block;
}
.page-login #login > .row >.col{
    padding: 1% !important;
}
.page-login label{
    color: rgb(55,127,179);
    text-transform: uppercase;
    font-size: 16px;
    margin-left: 5%;
    padding-bottom: 3px;
}
.page-login #login .text,
.page-login #login .password{
    font-size: 26px;
    width: 90%;
    margin: 0 5% 20px;
    padding-left: 6px;
}
.page-login #submit{
    position: absolute;
    bottom: 20px;
    right: 20px;
}

/* ============== 4.3 HOME PAGE ================= */
/*  last row of booking-sheet history table */
.page-home .booking-sheet-history  tr:last-child{
    background-color: rgba(0,0,0,0.2);
}

/* more info button cell */
.page-home .booking-sheet-history  td:last-child{
    width: 40px;
    padding: 0;
    vertical-align: middle;
}
/* more info button */
.page-home .booking-sheet-history  td:last-child  input[type="submit"]{
    min-width: 0;
    width: 38px;
    height: 38px;
    margin: 1px;
    padding: 0;
    vertical-align: middle;
    font-size: 38px;
    line-height: 30px;
}

/* last row */
.page-home .booking-sheet-history tr:last-child td{
    text-align: right;  /* default to right, note this table may have 4 or 5 columns, depending if admin, so this catches both */
}
.page-home .booking-sheet-history tr:last-child td:first-of-type{
    text-align: left;
}

/* "prev" and "next" buttons */
.page-home .booking-sheet-history tr:last-child input[type="submit"]{
    min-width: 0px;
    width: 60px;
    text-align: center;
    padding: 0px;
    font-size: 20px;
    height: 40px;
    line-height: 40px;
}
@media only screen and (max-width: 599px){
    .page-home .booking-sheet-history tr:last-child input[type="submit"]{
        /* width: 40px; */
        padding: 0;
    }
}


/* ============== 4.4 MANAGE USERS PAGE ================= */
.page-manage-users .invalid{
    color: red;
}
/* Input Fields */
.page-manage-users  input[type='text'],
.page-manage-users  input[type='password']{
	padding: 8px 16px;
	border-radius: 4px;
	border: 1px inset #ddd;
    font-size: 16px;
    width: 100%;
}
@media only screen and (max-width: 1000px){
    .page-manage-users  input[type='text'],
    .page-manage-users  input[type='password']{
        font-size: 16px;
    }
}


/* user management buttons on users page */
.page-manage-users .users form{
    display: inline;
}

/* grey out inactive users */
.page-manage-users .users .inactive{
    color: grey;
}

.page-manage-users .users .button.edit,
.page-manage-users .users .button.delete
{
    width: 40px;
    max-width: 40px;
    min-width: 40px;
}

.page-manage-users .users td{
    position: relative;
}

.page-manage-users .users .fa
{
    position: absolute;
    left: 12px;
    top: 10px;
    color: white;
    font-size: 24px;
    pointer-events: none;   /* allow click through */
}

.page-manage-users .users .email{
    word-wrap: break-word;
}
/* iPhone portrait*/
@media only screen and (width: 320px){
    .page-manage-users .users .username{
        max-width: 80px;
    }
    .page-manage-users .users .email{
        max-width: 140px;
    }
}
/* iPhone landscape*/
@media only screen and (width: 320px){
    .page-manage-users .users .username{
        max-width: 100px;
    }
    .page-manage-users .users .email{
        max-width: 300px;
    }
}
/* Samsung S4 portrait*/
@media only screen and (width: 360px){
    .page-manage-users .users .username{
        max-width: 80px;
    }
    .page-manage-users .users .email{
        max-width: 140px;
    }
}
/* Samsung S4 landscape*/
@media only screen and (width: 640px){
    .page-manage-users .users .username{
        max-width: 100px;
    }
    .page-manage-users .users .email{
        max-width: 350px;
    }
}


/* ============== 4.5 REVIEW LOGS PAGE ================= */
.page-manage-logs{}

/* ============== 4.6 BOOKING-SHEET PAGE ================= */
.page-booking-sheet #table-holder{
	width: 100%;
	text-align: center;
	margin-top: 5px;
}

.page-booking-sheet td{
    vertical-align: top;
}

/* first cell of each table row */
.page-booking-sheet tr > :first-child{
	padding: 10px 0 10px 10px;
}
/* last cell of each table row */
.page-booking-sheet tr > :last-child{
	padding: 10px 10px 10px 0px;
}
/* every 2nd row of table */
.page-booking-sheet tr:nth-child(2n - 1){
	background-color: #ddd;
}

.page-booking-sheet #colour-cell{
	position: relative; 
	top: 4px; 
	left: 10px;
	display: inline-block; 
	border-radius: 10px;
	height:  20px; 
	width:20px; 
}



/* Colour of editable fields - select, text & textarea  */
.page-booking-sheet .valid{
	background-color: rgb(161,240,159) !important;  /* Light Green - overrides :focus colour*/
}
.page-booking-sheet .invalid{
	background-color: pink;  /* Overridden by :focus colour */
}

.page-booking-sheet span{
    display:inline-block;
    padding: 0 10px;
    line-height: 40px;
    border-radius: 4px;
}

/* Submit button */
.page-booking-sheet #submit{
	text-align: center;
}
.page-booking-sheet #submit > a{
	padding: 10px 20px;
	border: 2px solid black;
	border-radius: 6px;
}
.page-booking-sheet #submit.disabled > a{
	background-color: grey;
	cursor: not-allowed;
}
.page-booking-sheet #submit.enabled > a{
	color: green;
	border-color: green;
}
.page-booking-sheet #submit.enabled > a:hover{
	background-color: green;
	color: white;
	cursor: pointer;
}

/* Input Fields */
.page-booking-sheet select,
.page-booking-sheet input[type='text'],
.page-booking-sheet textarea{
	padding: 8px 16px;
	border-radius: 4px;
	border: 1px inset #ddd;
}

.page-booking-sheet input[type=text],
.page-booking-sheet textarea{
    width: 100%;
}

/* Focused Field */
.page-booking-sheet select:focus,
.page-booking-sheet input:focus,
.page-booking-sheet textarea:focus{
	background-color: rgb(159,220,240);  /* Light Blue */
	outline: none;
}

/* pad out checkboxs and radio buttons */
.page-booking-sheet input[type=checkbox]:not(:last-child),
.page-booking-sheet input[type=radio]:not(:last-child){
	margin-right: 15px;
}
.page-booking-sheet input[type=checkbox],
.page-booking-sheet input[type=radio]{
	position: relative;
	top: 2px;
}



/* Responsive for mobiles */
@media only screen and (max-width: 1000px){
	.page-booking-sheet tr,
    .page-booking-sheet td{
		display: inline-block;
		width: 100%;                 /* make each cell full-width */
	}
    
	.page-booking-sheet td:nth-child(2){
		text-align: right;
	}
    
    .page-booking-sheet td{
        background-color: rgba(0,0,255,0.02) !important;
        padding-left: 10px !important;
    }
    
    .page-booking-sheet input[type=radio],
    .page-booking-sheet input[type=checkbox]{
        top: 5px;
    }
}

@media only screen and (max-width: 540px){
    .page-booking-sheet #state-feedback{
        font-size: 13px;
    }
}


/* File Upload of Booking Sheet */
/* a single file to upload */
.page-booking-sheet #file-uploader .upload-file{
    height: 40px;                           /* sets height of each uploadFile's line */
    padding: 0px;
    margin: 0 0 5px 0;
    font-size: 0;
}

/* displays uploadFile's name - not editable */
.page-booking-sheet #file-uploader .text-input{
    display: inline-block;
    width: 70%;
    height: 40px;
    vertical-align: top;
    padding-left: 10px;
    box-sizing: border-box;                 /* include border and padding in width & height */
}
 
/* holds upload input button & input file selector */
.page-booking-sheet #file-uploader .upload-button-holder{ 
    display: inline-block;                  /* so on same line as text field */
    width: 200px; 
    max-width: 30%;
    height: 100%; 
    position: relative;                     /* so we can absolute position children */ 
    overflow:hidden;
}

/* the unstylable file-input hidden from user, not focusable */
.page-booking-sheet #file-uploader .upload-button-holder .file-input{
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: -999;
    font-size: 50px;                        /* force hidden button to be big enough to cover parent */
    opacity: 0;
    filter: alpha(opacity = 0); -ms-filter: "alpha(opacity=0)";
    cursor: pointer;
    _cursor: hand;
}

/* the stylable button the user sees - is focusable */
/*
.page-booking-sheet #file-uploader .upload-button-holder .button-input{
    position: absolute;
    cursor: pointer;
    text-align: center;
    background-color: green;
    color: #fff;
    width: 100%;
    height: 100%;
    font-size:18px;
    border: 3px outset green;
    box-sizing: border-box;                 * include border and padding in width & height *
    padding: 0px;
} */


.page-booking-sheet #file-uploader .add-more{
    text-align: center;
}
.page-booking-sheet #file-uploader .add-more #add-more-button{
    margin-left: 30px;
}

/* ============== 5.0 FOOTER ================= */
#footer.fixed {
    position: fixed;    
    bottom: 0;
    left: 0;
}
@media only screen and (max-height: 399px){
    #footer.fixed {
        position: static;    /* no sticky-footer on mobile */
    }
}
#footer {
    display: inline-block;
    width: 100%;
    height: 25px;
    text-align: center;
}
#footer > .row{
    background-color: rgb(150,150,150);
    height: 100%;
}

#footer #footer-1{
    text-align: center;
    padding-top: 5px;
}


