body {
    font-family: "Helvetica";
    font-size: 11px;
    cursor: default;
}

*[contentEditable="true"] {
    cursor: text;
}

#sidePanel {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 170px;
    background: #d4dde6;
    border-right: 1px solid #a5a5a5;
    margin-left: 0;
    margin-right: 0;
    overflow: hidden;
}

#dividerBar {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 24px;
    background-image: url(Images/statusbarResizerVertical.png), url(Images/statusbarBackground.png);
    background-repeat: no-repeat, repeat-x;
    background-position: right center, center;
    cursor: row-resize;
}

#searchArea {
    position: absolute;
    background-color: #f1f1f1;
    top: 100%;
    bottom: 0;
    left: 0;
    right: 0;
}

input[type="search"] {
    -webkit-appearance: searchfield;
}

#searchField {
    position: absolute;
    left: 10px;
    right: 10px;
    top: 10px;
}

#searchResults {
    position: absolute;
    left: 0;
    right: 0;
    top: 40px;
    bottom: 0;
    margin: 0;
    padding: 0;
    overflow: auto;
    list-style-position: inside;
}

#searchResults li {
    padding: 10px;
}

.colorIndicator {
    display: inline-block;
    width: 20px;
    height: 1em;
    vertical-align: -2px;
    border: 1px black solid;
    margin-right: 5px;
}

.colorIndicator.home {
    background-color: #00a700
}

.colorIndicator.work {
    background-color: #004ee2
}

#gridView {
    position: absolute;
    left: 171px;
    right: 0;
    top: 0;
    bottom: 0;
    background: #ffffff;
}

#gridView.inactive {
    opacity: 0.5;
}

#eventOverlay {
    position: absolute;
    left: 171px;
    right: 0;
    top: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.2);
    z-index: auto;
    opacity: 0;
    -webkit-transition: opacity 0.2s ease-in;
}

#eventOverlay.show {
    opacity: 1;
    -webkit-transition-property: opacity, z-index;
    -webkit-transition-duration: 1s, 0;
    -webkit-transition-delay: 0, 0.5s;
    -webkit-transition-timing-function: ease-out, linear;
    z-index: 1000;
}

#details {
    position: absolute;
    background: white;
    left: 30%;
    right: 30%;
    top: 20%;
    bottom: 20%;
    overflow: hidden;
    -webkit-box-shadow: 0 8px 12px rgba(0, 0, 0, 0.5);
    -webkit-border-radius: 8px;
    padding: 30px;
    font-size: 12px;
    -webkit-transition-property: top, bottom;
    -webkit-transition-duration: 0.5s, 0.5s;
}

#eventTitle {
    font-size: 20px;
}

#details *:focus {
    outline: none;
    -webkit-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);
}

#details dt {
    width: 20%;
    float: left;
    clear: both;
    color: #999;
    text-align: right;
    margin-top: 10px;
}

#details dd {
    display: inline-block;
    width: 70%;
    float: left;
    margin-left: 5%;
    margin-top: 10px;
    display: inline-block;
    text-align: left;
}

#details input {
    position: absolute;
    bottom: 15px;
    right: 15px;
}

#eventDisclosureArrow {
    display: none;
    float: left;
    width: 12px;
    height: 12px;
    background-position: 1px left;
    background-repeat: no-repeat;
    background-image: url("Images/disclosureTriangleSmallRight.png");
}

#eventDisclosureArrow.show {
    display: inline-block;
}

#eventDisclosureArrow.expanded {
    background-image: url("Images/disclosureTriangleSmallDown.png");
}

#map {
    display: none;
    width: 100%;
    min-width: 200px;
    height: 180px;
    overflow: hidden;
    opacity: 0;
    -webkit-transition: opacity 1s linear;
}

#map.show {
    opacity: 1;
    display: block;
}

#mapImage {
    width: 100%;
}

#details.showingMap {
    top: 10%;
    bottom: 10%;
    -webkit-transition-property: top, bottom;
    -webkit-transition-duration: 0.5s, 0.5s;
}

#eventFrom .time, #eventTo .time {
    display: inline-block;
    min-width: 5px;
    max-width: 20px;
}

#sidePanel h3 {
    color: #5c6e91;
    font-size: 11px;
    text-shadow: 0.1em 0.1em #e5ebee;
    margin-left: 20px;
    margin-bottom: 4px;
}

#calendarList {
    list-style: none;
    margin: 0;
    padding: 0;
}

#calendarList li {
    padding-left: 23px;
}

#calendarList li.selected {
    border-top: 1px solid #4580c8;
    background: -webkit-gradient(linear, left top, left bottom, from(#5b93d5), to(#1553aa));
    color: white;
    font-weight: bold;
    text-shadow: 0.1em 0.1em #6c6c6c;
}

#calendarList input {
    margin-right: 5px;
}

#gridView h2 {
    margin-top: 8px;
    margin-bottom: 5px;
    text-align: center;
    color: #3f3f3f;
    font-size: 19px;
    font-weight: bolder;
}

#gridView .navButtonGroup {
    text-align: center;
}

.navButton {
    font-size: 14px;
    font-weight: bold;
    vertical-align: top;
}

#daysHeader {
    margin-top: 5px;
}

.day {
    display: inline-block;
    width: 14%;
    float: left;
    -webkit-box-sizing: border-box;
}

/* REVIEW - trying to get these days to have their widths nicely divided */
.day:nth-child(7n+1), .day:nth-child(7n+7) {
    width: 15%;
}

.day.title {
    color: #626262;
    text-align: center;
}

#daysGrid {
    position: absolute;
    left: 0;
    right: 0;
    top: 80px;
    bottom: 0;
}

.day.box {
    height: 20%;
    border: 1px #ccc;
    border-top-style: solid;
    border-right-style: solid;
    position: relative;
}

.day.box.today {
    background-color: #e5ecf7;
}

.day.box:nth-child(7n+7) {
    border-right-style: none;
}

.day .date {
    color: #212121;
    text-align: right;
    font-size: 12px;
    padding-right: 5px;
    padding-top: 5px;
}

.day.box.notThisMonth .date {
    color: #a6a6a6;
}

.day .contents {
    position: absolute;
    left: 0;
    right: 0;
    top: 20px;
    bottom: 0;
    overflow: auto;
    margin-top: 0;
    margin-bottom: 0;
    margin-left: 0;
    padding: 2px 0;
    list-style-position: inside;
    color: orange;
}

.day .contents li {
    background-color: rgba(255, 255, 255, 0);
    padding-left: 8px;
    padding-right: 8px;
}

li.home {
    color: #00a700;
}

li.home.selected {
    color: #fff;
    background: #00a700;
}

li.work {
    color: #004ee2;
}

li.work.selected {
    color: #fff;
    background: #004ee2;
}

li.highlighted {
    background-color: #ffa !important;
}

/* Online Status */
#onlineStatusIcon {
    width: 44px;
    height: 32px;
    margin-right: 8px;
    display: inline-block;
    float: right;
    background-image: url("Images/AirPort4.png");
}

#onlineStatusIcon.offline {
    background-image: url("Images/AirPortError.png");
}
