/* ***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is Calendar view code.
 *
 * The Initial Developer of the Original Code is
 *  Oracle Corporation
 * Portions created by the Initial Developer are Copyright (C) 2005
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor(s):
 *   Vladimir Vukicevic <vladimir@pobox.com>
 *   Joey Minta <jminta@gmail.com>
 *   Michiel van Leeuwen <mvl@exedo.nl>
 *   Philipp Kewisch <mozilla@kewis.ch>
 *   Markus Adrario <MarkusAdrario@web.de>
 *   Simon Paquet <bugzilla@babylonsounds.com>
 *   Berend Cornelius <berend.cornelius@sun.com>
 *   Christian Jansen <christian.jansen@sun.com>
 *   Gianfranco Balza <bv1578@gmail.com>
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either the GNU General Public License Version 2 or later (the "GPL"), or
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the MPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 *
 * ***** END LICENSE BLOCK ***** */

/* Core */
calendar-category-box:not([categories]) {
  display: none;
}

.calendar-category-box-gradient {
    width: 7px;
    background-image: -moz-linear-gradient(top, rgba(255, 255, 255, 0.38), transparent) !important;
    border-left: 1px solid rgba(255, 255, 255, 0.38);
}

.calendar-item-image {
    list-style-image: url(chrome://calendar/skin/day-box-item-image.png);
    padding-top: 2px;
    padding-bottom: 2px;
    -moz-margin-end: 4px;
    display: none;
}

.calendar-item-image[itemType="todo"] {
    -moz-image-region: rect(0px 11px 11px 0px);
    display: -moz-box;
}

.calendar-item-image[itemType="todo"][progress="completed"] {
    -moz-image-region: rect(0px 22px 11px 11px);
}

/* Multiday view */

/* Margin that allows event creation by click and drag when the time slot is
   full of events. On the right side in normal view ... */
.multiday-column-box-stack > .multiday-column-top-box[orient="horizontal"] {
    -moz-margin-end: 5px;
}
/* ... and on bottom in rotate view. */
.multiday-column-box-stack > .multiday-column-top-box[orient="vertical"] {
    margin-bottom: 5px;
}

/* .. and on the right side in the header container in normal view */
calendar-header-container:not([rotated]) {
    padding-right: 6px;
    padding-left: 1px;
}
/* ... and on the bottom in rotated view. */
calendar-header-container[rotated] {
    padding-top: 1px;
    padding-bottom: 5px;
}

calendar-event-column {
    -moz-user-focus: normal;
    background-color: #FFFFFF;
}

calendar-event-column[orient="horizontal"] {
    border-top: 1px solid #D2D2D2;
}

calendar-event-column[orient="vertical"] {
    border-left: 1px solid #D2D2D2;
}

calendar-event-column[orient="horizontal"][relation="today"] {
    border-top: 1px solid #67ACD8;
    border-bottom: 1px solid #67ACD8;
    margin-bottom: -1px;
    position: relative;
}

calendar-event-column[orient="vertical"][relation="today"] {
    border-left: 1px solid #67ACD8;
    border-right: 1px solid #67ACD8;
    -moz-margin-end: -1px;
    position: relative;
}

calendar-header-container {
    background-color: #FFFFFF;
    border-left: 1px solid #D2D2D2;
}

calendar-header-container[rotated] {
    max-width: 150px;
}

calendar-header-container[weekend="true"],
.calendar-event-column-linebox[weekend="true"] {
    background-color: #F7FFE3;
}

.calendar-event-column-linebox[off-time="true"] {
    background-color: #F3F3F3;
}

.calendar-event-column-linebox[off-time="true"][weekend="true"] {
    background-color: #EAF7CA;
}

calendar-header-container[relation="today"],
.calendar-event-column-linebox[relation="today"],
calendar-day-label[orient][relation="today"] {
    background-color: #E1F0FD;
}

calendar-header-container[relation="today"] {
    border-left: 1px solid #7FB9EE;
    border-right: 1px solid #7FB9EE;
    -moz-margin-end: -1px;
    position: relative;
}

calendar-header-container[relation="today"][rotated="true"] {
    border-top: 1px solid #7FB9EE;
    border-bottom: 1px solid #7FB9EE !important;
    border-right: 1px solid #D2D2D2;
    margin-top: -1px;
    position: relative;
}

calendar-header-container[selected="true"],
.calendar-event-column-linebox[selected="true"] {
    background-color: #FFFCD8;
}

calendar-header-container[weekend="true"][relation="today"],
.calendar-event-column-linebox[weekend="true"][relation="today"] {
    background-color: #E1F0FD;
}

.calendar-event-column-linebox[off-time="true"][relation="today"] {
    background-color: #D7E8F8;
}

.multiday-view-header-day-box[orient="vertical"] .calendar-event-column-header {
    border-bottom: 1px solid #D2D2D2;
    min-width: 100px;
}

calendar-header-container[weekend="true"][selected="true"],
.calendar-event-column-linebox[weekend="true"][selected="true"] {
    background-color: #FFFCD8;
}

.calendar-event-column-linebox[off-time="true"][selected="true"] {
    background-color: #F2EDB2;
}

.calendar-event-column-linebox[orient="horizontal"] {
    border-right: 1px solid #D2D2D2;
}

.calendar-event-column-linebox[orient="vertical"] {
    border-bottom: 1px solid #D2D2D2;
}

.calendar-event-column-linebox[orient="horizontal"][relation="today"]:last-child {
    border-right: 1px solid #67ACD8;
}

.calendar-event-column-linebox[orient="vertical"][relation="today"]:last-child {
    border-bottom: 1px solid #67ACD8;
}

/* Make sure we extend the bold line separating scrollable and non-scrollable
   areas over the timebar. */
.multiday-view-header-time-spacer[orient="horizontal"] {
    border-bottom: 2px solid #D2D2D2;
    border-right: 2px solid #D2D2D2;
    -moz-border-right-colors: #FFFFFF #D2D2D2;
}

.multiday-view-header-time-spacer[orient="vertical"] {
    border-right: 2px solid #D2D2D2;
    -moz-border-right-colors: #D2D2D2 #D2D2D2;
}

.multiday-view-label-box[orient="horizontal"] > .multiday-view-label-time-spacer {
    border-right: 2px solid #D2D2D2;
    -moz-border-right-colors: #FFFFFF #D2D2D2;
}

.multiday-view-header-day-box[orient="horizontal"] {
    border-right: 1px solid #D2D2D2;
    border-bottom: 2px solid #D2D2D2;
    overflow-x: hidden;
    overflow-y: auto;
    max-height: 120px;
}

.multiday-view-header-day-box[orient="horizontal"][todaylastinview="true"] {
    border-right: 1px solid #67ACD8;
}

/* Make sure the box for day-labels appears to end before the scrollbar. */
.multiday-view-label-day-box[orient="horizontal"] {
    border-top: 1px solid #D2D2D2;
    border-right: 1px solid #D2D2D2;
}

.multiday-view-label-day-box[orient="vertical"] {
    border-top: 1px solid #D2D2D2;
}

.multiday-view-header-day-box[orient="vertical"] {
    border-top: 1px solid #D2D2D2;
    border-right: 2px solid #D2D2D2;
}

/* Make sure to have a border between the edge of the views and the scrollbar. */
.multiday-view-day-box {
    border-right: 1px solid #D2D2D2;
    border-bottom: 1px solid #D2D2D2;
}

.fgdragbox {
    -moz-box-orient: inherit;
    display: none;
}

.fgdragbox[dragging="true"] {
    display: -moz-box;
    background-image: -moz-linear-gradient(top, #fe4b22, #feb822);
    border: 5px #ffffff;
    opacity: 0.5;
}

.fgdragcontainer {
    -moz-box-orient: inherit;
    display: none;
}

.fgdragcontainer[dragging="true"] {
    display: -moz-box;
  /* This is a workaround for a stack bug and display: hidden in underlying
   * elements -- the display: hidden bits get misrendered as being on top.
   * Setting an opacity here forces a view to be created for this element, too.
   */
    opacity: 0.9999;
}

.fgdragbox-label {
    font-weight: bold;
    text-align: center;
    overflow: hidden;
}

.calendar-event-box-container {
    padding: 0;
    overflow: hidden;
    margin: 1px;
}

.calendar-event-box-container[categories] {
    -moz-margin-end: 0px;
}

.calendar-event-details {
    -moz-padding-start: 2px;
    overflow: hidden;
}

.calendar-event-details-core {
    width: 0px;
    margin: 0px;
    overflow: hidden;
}

.calendar-event-name-textbox {
    background: transparent !important;
    color: inherit;
}

calendar-event-box {
    border: 1px solid transparent;
}

calendar-month-day-box-item[selected="true"] .calendar-color-box,
calendar-event-box[selected="true"] .calendar-color-box,
calendar-editable-item[selected="true"] .calendar-color-box {
    color: #000000 !important;
    background-color: #FDF5A0 !important;
    -moz-box-shadow: 1px 2px 5px rgba(30, 20, 0, 0.6);
}


/* RTL styles for the main box and children */
.multiday-view-main-box {
    direction: ltr;
}

.multiday-view-label-day-box:-moz-locale-dir(rtl) {
    direction: rtl;
}

/* headers horizontal, times vertical */
.multiday-view-label-box[orient="horizontal"] {
    height: 10px;
}

.multiday-view-header-box[orient="horizontal"] {
    min-height: 30px;
}

.multiday-view-label-box[orient="horizontal"] > .multiday-view-label-time-spacer,
.multiday-view-header-box[orient="horizontal"] > .multiday-view-header-time-spacer,
calendar-time-bar[orient="vertical"] {
    width: 10ex; /* space for "11:00 AM" */
}

/* headers vertical, times horizonal */
.view-label-box[orient="vertical"] {
    width: 30px;
}

.view-header-box[orient="vertical"] {
    width: 40px;
}

.multiday-view-label-box[orient="vertical"] > .multiday-view-label-time-spacer,
.multiday-view-header-box[orient="vertical"] > .multiday-view-header-time-spacer {
    height: 40px;
}

calendar-time-bar[orient="horizontal"] {
    height: 40px;
}

/** Start time bar **/

.calendar-time-bar-label {
    font-size: 1em;
    margin: 2px 2px;
}

.calendar-time-bar-box-odd,
.calendar-time-bar-box-even {
    color: #6A6969;
    background-color: #FFFFFF;
    text-align: right;
    overflow: hidden;
}

.calendar-time-bar-box-odd[off-time="true"] ,
.calendar-time-bar-box-even[off-time="true"] {
    background-color: #F0F0F0;
    border-right: 2px solid #D2D2D2;
    -moz-border-right-colors:  #FFFFFF #D2D2D2;
}

.calendar-time-bar-box-odd[orient="horizontal"],
.calendar-time-bar-box-even[orient="horizontal"] {
    border-right: 1px solid #D2D2D2;
    border-top: 1px solid #D2D2D2;
    -moz-border-right-colors: none;
}

.calendar-time-bar-box-odd[orient="vertical"],
.calendar-time-bar-box-even[orient="vertical"] {
    border-bottom: 1px  transparent !important;
    border-right: 2px solid #D2D2D2;
    -moz-border-right-colors:  #FFFFFF #D2D2D2;
}

/** End time bar **/

calendar-multiday-view {
    background-color: #FFFFFF;
    padding: 0px;
}

calendar-multiday-view[hidden="true"] {
    display: none;
}

calendar-day-label {
    color: #000000;
    background-color: white;
    background-image: -moz-linear-gradient(top, #fafafa, #eeeeee);
    border-left: 1px solid #D2D2D2;
    border-bottom: 1px solid #D2D2D2;
}

calendar-day-label[selected="true"] {
    background-color: #FFFABC !important;
}

calendar-day-label[orient="vertical"] {
    background-image: none;
    min-width: 100px;
}

calendar-day-label[orient="vertical"][relation="today"],
calendar-day-label[orient="vertical"][relation="today1day"] {
    background-color: #D2E3F3 !important;
}

calendar-day-label[relation="today"],
calendar-day-label[relation="today1day"] {
    border: 1px solid #67ACD8;
    -moz-margin-end: -1px;
    margin-top: -1px;
    position: relative;
}

.calendar-day-label-name {
    text-align: center;
}

.calendar-day-label-name[relation="today"],
.calendar-day-label-name[relation="today1day"] {
    font-weight: bold;
}

/* Month View */
calendar-month-view,
calendar-multiweek-view {
    padding: 0px 2px 2px;
}

.calendar-month-view-grid-column {
    min-width: 1px;
    width: 1px;
}

.calendar-month-view-grid-row {
    min-height: 1px;
    height: 1px;
    border-right: 1px solid #D2D2D2;
}

calendar-month-day-box {
    border:none !important;
    border-left: 1px solid #D2D2D2 !important;
    border-bottom: 1px solid #D2D2D2 !important;
}

.calendar-month-day-box-items-box {
    overflow-y: auto;
    overflow-x: hidden;
}

.calendar-month-day-box-current-month {
    background-color: #FFFFFF;
}
.calendar-month-day-box-current-month .calendar-month-day-box-date-label {
    background-color: #F7F7F7;
}
.calendar-month-day-box-day-off {
    background-color: #F7FFE3;
}
.calendar-month-day-box-day-off .calendar-month-day-box-date-label {
    background-color: #EAF7CA;
}
.calendar-month-day-box-other-month {
    background-color: #F3F3F3;
}
.calendar-month-day-box-other-month .calendar-month-day-box-date-label {
    background-color: #E8E8E8;
}

.calendar-month-day-box-other-month.calendar-month-day-box-day-off {
    background-color: #E8E8E8;
}

.calendar-month-day-box-other-month.calendar-month-day-box-day-off .calendar-month-day-box-date-label {
    background-color: #DDDDDD;
}

.calendar-month-day-box-current-month[relation="today"],
.calendar-month-day-box-day-off[relation="today"],
.calendar-month-day-box-other-month[relation="today"] {
    background-color: #E1F0FD;
    border: 1px solid #7FB9EE !important;
    -moz-margin-end: -1px !important;
    margin-top: -1px !important;
    position: relative;
}

.calendar-month-day-box-date-label[relation="today"] {
    background-color: #D2E3F3;
    font-weight: bold;
}

.calendar-month-day-box-current-month[selected="true"],
.calendar-month-day-box-day-off[selected="true"],
.calendar-month-day-box-other-month[selected="true"] {
    background-color: #FFFCD8;
}

.calendar-month-day-box-date-label[selected="true"] {
    background-color: #F2EDB2;
}

.calendar-month-day-box-date-label[relation="today"][selected="true"] {
    background-color: #D2E3F3;
}

.calendar-month-day-box-date-label {
    color: #616163;
    font-size: 0.9em;
    text-align: right;
    margin: 0px;
    padding-top: 1px;
    -moz-padding-end: 2px;
    padding-bottom: 1px;
}

calendar-month-day-box-item {
    margin: 1px;
    padding: 1px 1px;
}

.calendar-color-box {
    /* This rule should be adopted if the alarm image size is changed */
    min-height: 13px;
    background-image: -moz-linear-gradient(top, rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0.01) 50%, rgba(0, 0, 0, 0.05));
    border: 1px solid transparent;
    border-radius: 2px;
}

calendar-month-day-box calendar-month-day-box-item[allday="true"] .calendar-color-box {
    border-color: rgba(0, 0, 0, 0.5);
    -moz-box-shadow: inset -1px -1px 0 rgba(255, 255, 255, 0.7), inset 1px 1px 0 rgba(255, 255, 255, 0.7);
}

.calendar-month-day-box-item-label {
    padding: 0px;
    margin: 0px;
}

.calendar-month-day-box-item-label[time="true"] {
    -moz-margin-end: 4px;
}

.labeldaybox-container {
    border-right: 1px solid #D2D2D2;
    border-top: 1px solid #D2D2D2;
}

.dropshadow {
    height: 1.2em;
    margin: 1px;
    padding: 0px 1px;
    background-color: #FFA47D;
    -moz-box-shadow: 1px 1px 3px rgba(68, 35, 0, 0.7) inset;
}

calendar-event-gripbar {
    -moz-box-align: center;
    -moz-box-pack: center;
    min-height: 4px;
    min-width: 4px;
    overflow: hidden;
}

calendar-event-gripbar[parentorient="vertical"][whichside="start"] {
    cursor: n-resize;
}

calendar-event-gripbar[parentorient="vertical"][whichside="end"] {
    cursor: s-resize;
}

calendar-event-gripbar[parentorient="horizontal"][whichside="start"] {
    cursor: w-resize;
}

calendar-event-gripbar[parentorient="horizontal"][whichside="end"] {
    cursor: e-resize;
}

calendar-event-box[orient="vertical"] .calendar-event-box-grippy-top {
    list-style-image: url("chrome://calendar/skin/event-grippy-top.png");
    visibility: hidden;
}

calendar-event-box[orient="vertical"] .calendar-event-box-grippy-bottom {
    list-style-image: url("chrome://calendar/skin/event-grippy-bottom.png");
    visibility: hidden;
}

calendar-event-box[orient="horizontal"]:hover .calendar-event-box-grippy-top,
calendar-event-box[orient="horizontal"]:hover .calendar-event-box-grippy-bottom {
    visibility: visible;
}

calendar-event-box[orient="vertical"]:hover .calendar-event-box-grippy-top,
calendar-event-box[orient="vertical"]:hover .calendar-event-box-grippy-bottom {
    visibility: visible;
}

calendar-event-box[orient="horizontal"] .calendar-event-box-grippy-top {
    list-style-image: url("chrome://calendar/skin/event-grippy-left.png");
    visibility: hidden;
}

calendar-event-box[orient="horizontal"] .calendar-event-box-grippy-bottom {
    list-style-image: url("chrome://calendar/skin/event-grippy-right.png");
    visibility: hidden;
}

calendar-event-box[readonly="true"]:hover .calendar-event-box-grippy-top,
calendar-event-box[readonly="true"]:hover .calendar-event-box-grippy-bottom {
    visibility: hidden;
    cursor: auto;
}

/* tooltips */
vbox.tooltipBox {
    max-width: 40em;
}

column.tooltipValueColumn {
    max-width: 35em; /* tooltipBox max-width minus space for label */
}

label.tooltipHeaderLabel {
    font-weight: bold;
    text-align: right;
    margin-top: 0;
    margin-bottom: 0;
    -moz-margin-start: 0;
    -moz-margin-end: 1em; /* 1em space before value */
}

description.tooltipHeaderDescription {
    font-weight: normal;
    text-align: left;
    margin: 0pt;
}

separator.tooltipBodySeparator {
    height: 1ex; /* 1ex space above body text, below last header. */
}

description.tooltipBody {
    font-weight: normal;
    white-space: pre-wrap;
    margin: 0pt;
}

#calendar-view-context-menu[type="event"] .todo-only,
#calendar-view-context-menu[type="todo"] .event-only,
#calendar-view-context-menu[type="mixed"] .event-only,
#calendar-view-context-menu[type="mixed"] .todo-only,
#calendar-item-context-menu[type="event"] .todo-only,
#calendar-item-context-menu[type="todo"] .event-only,
#calendar-item-context-menu[type="mixed"] .event-only,
#calendar-item-context-menu[type="mixed"] .todo-only {
    display: none;
}

.attendance-menu[itemType="single"] > menupopup > *[scope="all-occurrences"] {
    display: none;
}

.calendar-context-heading-label {
    font-weight: bold;
}

calendar-event-box,
calendar-editable-item,
calendar-month-day-box-item {
    opacity: 0.99;
    /* Do not change next line, since it would break item selection */
    -moz-user-focus: normal;
}

calendar-event-box[invitation-status="NEEDS-ACTION"],
calendar-editable-item[invitation-status="NEEDS-ACTION"],
calendar-month-day-box-item[invitation-status="NEEDS-ACTION"] {
    border: 2px dotted black;
    opacity: 0.5;
}

calendar-event-box[invitation-status="TENTATIVE"],
calendar-editable-item[invitation-status="TENTATIVE"],
calendar-month-day-box-item[invitation-status="TENTATIVE"],
calendar-event-box[status="TENTATIVE"],
calendar-editable-item[status="TENTATIVE"],
calendar-month-day-box-item[status="TENTATIVE"],
agenda-richlist-item[status="TENTATIVE"] {
    opacity: 0.5;
}

calendar-event-box[invitation-status="DECLINED"],
calendar-editable-item[invitation-status="DECLINED"],
calendar-month-day-box-item[invitation-status="DECLINED"],
calendar-event-box[status="CANCELLED"],
calendar-editable-item[status="CANCELLED"],
calendar-month-day-box-item[status="CANCELLED"],
agenda-richlist-item[status="CANCELLED"] {
    opacity: 0.5;
}

calendar-month-day-box-item[status="CANCELLED"] .calendar-color-box,
calendar-event-box[status="CANCELLED"] .calendar-color-box,
calendar-editable-item[status="CANCELLED"] .calendar-color-box,
agenda-richlist-item[status="CANCELLED"] .agenda-container-box {
    text-decoration: line-through;
}

/* Navigation controls for the views */
#calendar-nav-control {
    background-color: #E8E8E8;
    border: solid ThreeDShadow;
    border-width: 1px 0 0 1px;
}

#view-deck {
    background-color: white;
    border: solid ThreeDShadow;
    border-width: 0 0 0 1px;
}

.tabs-left,
.tabs-right {
    border-bottom: 2px solid #D2D2D2;
}

#view-tabs {
    padding-right: 20px;
}

#view-tabbox {
    margin: 0;
}

.calview-tabs {
    margin-bottom: 0;
    padding: 0;
}

tab[calview] {
    -moz-appearance: none;
    background-color: #CCCCCC;
    color: #2E4E73;
    border: 1px solid #BDBDBD;
    border-bottom: 1px solid #D2D2D2;
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;  
    margin-top: 0px;
    -moz-user-focus: normal;  
}

tab[calview][selected="true"],
tab[calview][selected="true"]:hover {
    background-color: #FFFFFF;
    margin-bottom: 0px;
    border-bottom: none;
    padding-bottom: 1px;
}

tab[calview]:hover {
    background-color: #F6F6F6;    
}

tab[calview] > .tab-middle {
    text-align: center;
    font-size: 14px;
}

.view-header {
    font-weight: normal;
    font-size: 14px;
    color: ButtonText;
    padding-top: 5px;
    margin-top: 3px;
}

.view-header[type="end"] {
    text-align: right;
    -moz-margin-end: 6px;
}

#calendarWeek {
    margin-top: 3px;
    margin-bottom: 1px;
}

.navigation-inner-box {
    -moz-padding-start: 6px;
    -moz-padding-end: 6px;
    border-bottom: 1px solid #D2D2D2;
    padding-bottom: 1px;
}

.navigation-bottombox {
    min-height: 4px;
    max-height: 4px;
    background-color: white;
}

.view-navigation-button {
    -moz-user-focus: normal;
    -moz-appearance: toolbarbutton;
    margin-top: 3px;
    -moz-margin-start: 3px;
    -moz-margin-end: 3px;
    margin-bottom: 1px;
    min-width: 22px;
}

.today-navigation-button {
    -moz-user-focus: normal;      
    -moz-appearance: toolbarbutton;
    margin-top: 2px;
    -moz-margin-start: 2px;
    -moz-margin-end: 2px;
    margin-bottom: 0px;
    color: ButtonText;
    font-size: 14px;
}

.view-navigation-button > .toolbarbutton-text {
    display: none;
}

.view-navigation-button > .toolbarbutton-icon {
    margin: 1px;
}

.today-navigation-button > .toolbarbutton-icon {
    display: none;
}
