/* ############################################################################
   ##
   ##  CALENDAR ELEMENTS
   ##  Objects/structures that might appear on any page
   ##
   ######################################################################### */

/* 
    Event info in a web page 
    #EventContent is a child of #PrimaryContent in standard templates
*/

#EventContent #PublishInfo .separator {
    margin: 0 5px;
}

#EventContent #PublishInfo .time {
    /* The time block only appears on events */
}

#EventContent #EventInfo {
    position: relative;
    float: left;
    width: 100%;
    margin-bottom: 1.25em;
}

    #EventContent #EventInfo .type {
        position: relative;
        float: left;
        width: 100%;
        margin-bottom: 1px;
        border: #f0f0f0 1px solid;
    }

    #EventContent #EventInfo .status {
        position: relative;
        float: left;
        width: 100%;
        margin-bottom: 1px;
        border: #f0f0f0 1px solid;
    }

    #EventContent #EventInfo .location {
        position: relative;
        float: left;
        width: 100%;
        margin-bottom: 1px;
        border: #f0f0f0 1px solid;
    }

    #EventContent #EventInfo .attendees {
        position: relative;
        float: left;
        width: 100%;
        margin-bottom: 1px;
        border: #f0f0f0 1px solid;
    }

    #EventContent #EventInfo .addedBy {
        position: relative;
        float: left;
        width: 100%;
        margin-bottom: 1px;
        border: #f0f0f0 1px solid;
    }
    
    /* Label/value classes could be targeted individually or together, and as children of event type and status classes */

    #EventContent #EventInfo .label {
        display: block;
        position: relative;
        float: left;
        clear: left;
        width: 12%;
        min-width: 80px;
        padding: 8px;
        font-weight: bold;
        background: #f0f0f0;
    }

    #EventContent #EventInfo .value {
        display: block;
        position: relative;
        float: left;
        padding: 8px;
        max-width: 70%;
    }

    /* Individual event types and statuses ca =n be targeted */

    #EventContent.status_confirmed {
    }

        #EventContent.status_confirmed .status {
            /*background: #006600;*/
        }

            #EventContent.status_confirmed .status .value {
                /*color: #ffffff;*/
                color: #339933;
            }
            
    #EventContent.status_tentative {
    }

        #EventContent.status_tentative .status {
            /*background: #ff9900;*/
        }

            #EventContent.status_tentative .status .value {
                /*color: #ffffff;*/
                color: #ff9900;
            }

/* 
    Event summary 
    Note that the page fragment styles will be inherited from the global stylesheet, so specificity is important
*/

.pageFragment.event,
#Primary .pageFragment.event,
#Secondary .pageFragment.event {
}

    .pageFragment.event .text,
    #Primary .pageFragment.event .text,
    #Secondary .pageFragment.event .text {
    }

        .pageFragment.event .text .title,
        #Primary .pageFragment.event .text .title,
        #Secondary .pageFragment.event .text .title {
        }

        .pageFragment.event .text .date,
        #Primary .pageFragment.event .text .date,
        #Secondary .pageFragment.event .text .date {
            margin-bottom: 0.25em;
        }

            .pageFragment.event .text .date .startDate,
            #Primary .pageFragment.event .text .date .startDate,
            #Secondary .pageFragment.event .text .date .startDate {
            }

            .pageFragment.event .text .date .endDate,
            #Primary .pageFragment.event .text .date .endDate,
            #Secondary .pageFragment.event .text .date .endDate {
            }

            .pageFragment.event .text .date.mutiple,
            #Primary .pageFragment.event .text .date.mutiple,
            #Secondary .pageFragment.event .text .date.mutiple {
                /* If both start and end dates exist, the date element will have an additional class name - "multiple" */
            }

        .pageFragment.event .text .time,
        #Primary .pageFragment.event .text .time,
        #Secondary .pageFragment.event .text .time {
            margin-bottom: 0.25em;
            color: #909090;
        }

            .pageFragment.event .text .time .startTime,
            #Primary .pageFragment.event .text .time .startTime,
            #Secondary .pageFragment.event .text .time .startTime {
            }

            .pageFragment.event .text .time .endTime,
            #Primary .pageFragment.event .text .time .endTime,
            #Secondary .pageFragment.event .text .time .endTime {
            }

            .pageFragment.event .text .time.multiple,
            #Primary .pageFragment.event .text .time.multiple,
            #Secondary .pageFragment.event .text .time.multiple {
                /* If both start and end times exist, the date element will have an additional class name - "multiple" */
            }

        .pageFragment.event .text .type,
        #Primary .pageFragment.event .text .type,
        #Secondary .pageFragment.event .text .type {
            display: inline-block;
            margin-bottom: 0.25em;
        }

            .pageFragment.event .text .type:after,
            #Primary .pageFragment.event .text .type:after,
            #Secondary .pageFragment.event .text .type:after {
                content: ", ";
            }

        .pageFragment.event .text .status,
        #Primary .pageFragment.event .text .status,
        #Secondary .pageFragment.event .text .status {
            display: inline-block;
            margin-bottom: 0.25em;
        }

        .pageFragment.event .text .location,
        #Primary .pageFragment.event .text .location,
        #Secondary .pageFragment.event .text .location {
            font-style: italic;
            margin-bottom: 0.25em;
        }

        .pageFragment.event .text .attendees,
        #Primary .pageFragment.event .text .attendees,
        #Secondary .pageFragment.event .text .attendees {
            margin-bottom: 0.25em;
        }

        .pageFragment.event .text .summary,
        #Primary .pageFragment.event .text .summary,
        #Secondary .pageFragment.event .text .summary {
        }

        /* Date and time separators could be targetd under individual elements if needed */

        .pageFragment.event .date .separator,
        .pageFragment.event .time .separator {
            margin: 0 0.25em;
        }

        /* Event types and statuses can be targeted, and feature events are marked too - examples are below */

        .pageFragment.event.status_confirmed {
        }

            .pageFragment.event.status_confirmed .status {
            }

                .pageFragment.event.status_confirmed .status .value {
                        color: #339933;
                }

        .pageFragment.event.status_tentative {
        }

            .pageFragment.event.status_tentative .status {
            }

                .pageFragment.event.status_tentative .status .value {
                        color: #ff9900;
                }

        .pageFragment.event.feature.status_confirmed {
        }

        .pageFragment.event.type_meeting {
        }

        /* Label/value classes could be targeted individually or together, and as children of event type and status classes - examples are below */

        .pageFragment.event .text .type .label,
        .pageFragment.event .text .location .label,
        .pageFragment.event .text .attendees .label,
        .pageFragment.event .text .status .label {
            display: none;
        }

        .pageFragment.event .text .type .value,
        .pageFragment.event .text .location .value,
        .pageFragment.event .text .attendees .value,
        .pageFragment.event .text .status .value {
        }

        .pageFragment.event.type_meeting .text .type .label {
        }

/* Calendar month view table layout */

table.monthView {
    width: 100%;
    border: #ffffff 1px solid;
}

    table.monthView tr.dayNames {
    }

        table.monthView tr.dayNames th.dayName {
            padding: 4px 0.5%;
            width: 13.28%;
            font-weight: bold;
            background: #d0d0d0;
            border: #ffffff 1px solid;
        }

    table.monthView tr.days {
    }

        table.monthView tr.days td.day {
            /* Default day, includes other month days */
            padding: 4px 0.5%;
            width: 13.28%;
            vertical-align: top;
            background: #f8f8f8; 
            border: #ffffff 1px solid;
            overflow: hidden;
        }

            table.monthView tr.days td.day.thisMonth {
                background: #f0f0f0;
                cursor: pointer;
            }

                table.monthView tr.days td.day.thisMonth:hover {
                    background: #e0e0e0;
                }

                table.monthView tr.days td.day.thisMonth.hasEvents {
                    /* A cell with events */
                    background: #d0d0d0;
                    cursor: pointer;
                }

                    table.monthView tr.days td.day.thisMonth.hasEvents:hover {
                        background: #e0e0e0;
                    }

                table.monthView tr.days td.day.thisMonth.today {
                        background: #f8f8f8;
                }

                    table.monthView tr.days td.day.thisMonth.today:hover {
                            background: #e0e0e0;
                    }

            table.monthView tr.days td.day.otherMonth {
                /* Not implemented until v7.1 */
                background: #f8f8f8;
            }

            table.monthView tr.days td.day.otherMonth.previousMonth {
                /* Not implemented until v7.1 */
            }

            table.monthView tr.days td.day.otherMonth.nextMonth {
                /* Not implemented until v7.1 */
            }

            /* Events within a day cell */

            table.monthView tr.days td.day .pageFragment.event {
                position: relative;
                margin-top: 10px;
            }

                table.monthView tr.days td.day .pageFragment.event .time {
                    font-size: 91.7%;
                    font-weight: bold;
                    white-space: nowrap;
                    overflow: hidden;
                }

                table.monthView tr.days td.day .pageFragment.event .summary {
                }

                table.monthView tr.days td.day .pageFragment.event .type, 
                table.monthView tr.days td.day .pageFragment.event .status, 
                table.monthView tr.days td.day .pageFragment.event .location, 
                table.monthView tr.days td.day .pageFragment.event .attendees {
                }

                table.monthView tr.days td.day .pageFragment.event .location {
                    font-style: italic;
                }

                table.monthView tr.days td.day .pageFragment.event .label {
                    display: none;
                }

            table.monthView tr.days td.day .pageFragment.event.status_confirmed {
            }

                table.monthView tr.days td.day .pageFragment.event.status_confirmed .status .value {
                    color: #339933;
                }

            table.monthView tr.days td.day .pageFragment.event.status_tentative {
            }

                table.monthView tr.days td.day .pageFragment.event.status_tentative .status .value {
                    color: #ff9900;
                }

            /* Events within a day cell in places where specificity matters due to other stylesheets */

            #Primary table.monthView tr.dayNames {
            }

                #Primary table.monthView tr.dayNames th.dayName {
                    height: 25px; /* Height works like min-height for display: table-cell */
                    font-size: 116.7%;
                }

            #Primary table.monthView tr.days td.day {
                height: 75px; /* Height works like min-height for display: table-cell */
            }

                #Primary table.monthView tr.days td.day .pageFragment.event {
                }

                    #Primary table.monthView tr.days td.day .pageFragment.event .thumbnail {
                        display: block;
                        float: none;
                        max-width: 100%;
                        padding: 0;
                        margin: 5px 0;
                    }

                        #Primary table.monthView tr.days td.day .pageFragment.event .thumbnail img {
                            max-width: 100%;
                        }

                    #Primary table.monthView tr.days td.day .pageFragment.event .text {
                        float: none;
                    }

/* Calendar month view widgets in particular panels and templates */

#Primary .eventsByMonth {
}

#Secondary .eventsByMonth.calendar {
}

#Tertiary .eventsByMonth.calendar {
    font-size: 75%;
}

    /* TwoCols1 & ThreeCols1 templates*/

    body.Template_twocols1 #Tertiary .eventsByMonth.calendar, 
    body.Template_threecols1 #Tertiary .eventsByMonth.calendar {
        margin: 0 10px 1.5em;
    }

        body.Template_twocols1 #Tertiary .eventsByMonth.calendar fieldset.calendarToolbar,
        body.Template_threecols1 #Tertiary .eventsByMonth.calendar  fieldset.calendarToolbar {
            border: 0;
            padding: 0;
            margin: 0 0 0.5em;
        }

            body.Template_twocols1 #Tertiary .eventsByMonth.calendar fieldset.calendarToolbar legend,
            body.Template_threecols1 #Tertiary .eventsByMonth.calendar fieldset.calendarToolbar legend {
                font-size: 155.6%; /* 14px/9px */
                padding: 0;
                margin: 0 0 0.25em;
            }

            body.Template_twocols1 #Tertiary .eventsByMonth.calendar fieldset.calendarToolbar .fieldContainer,
            body.Template_threecols1 #Tertiary .eventsByMonth.calendar  fieldset.calendarToolbar .fieldContainer {
                padding: 0;
                margin: 0 2% 0 0;
                width: 38%;
                clear: none;
            }

                body.Template_twocols1 #Tertiary .eventsByMonth.calendar fieldset.calendarToolbar .fieldContainer .fieldTitle,
                body.Template_threecols1 #Tertiary .eventsByMonth.calendar  fieldset.calendarToolbar .fieldContainer .fieldTitle {
                    display: none;
                }

                body.Template_twocols1 #Tertiary .eventsByMonth.calendar fieldset.calendarToolbar .fieldContainer .fieldContent,
                body.Template_threecols1 #Tertiary .eventsByMonth.calendar  fieldset.calendarToolbar .fieldContainer .fieldContent {
                    width: 100%;
                    max-width: 100%;
                    padding: 0;
                    background: transparent;
                }

                    body.Template_twocols1 #Tertiary .eventsByMonth.calendar fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls,
                    body.Template_threecols1 #Tertiary .eventsByMonth.calendar  fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls {
                    }

                        body.Template_twocols1 #Tertiary .eventsByMonth.calendar fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls select,
                        body.Template_threecols1 #Tertiary .eventsByMonth.calendar  fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls select {
                        }


        body.Template_twocols1 #Tertiary .eventsByMonth.calendar .submitButton,
        body.Template_threecols1 #Tertiary .eventsByMonth.calendar .submitButton {
            display: inline-block;
            position: relative;
            float: right;
            margin-top: -30px;
            padding: 7px 15px 7px 5px;
        }

    body.Template_twocols1 #Tertiary table.monthView tr.dayNames th.dayName,
    body.Template_twocols1 #Tertiary table.monthView tr.days td.day,
    body.Template_threecols1 #Tertiary table.monthView tr.dayNames th.dayName,
    body.Template_threecols1 #Tertiary table.monthView tr.days td.day {
        padding: 4px 2%;
        width: 10.28%;
    }

/* List month view widgets in particular panels and templates */

#Primary .eventsByMonth.list {
}

    #Primary .eventsByMonth.list .day {
        /* This layout doesn't really work for days with many events alongside days with only a few, but it's a good example of an event tiles idea. */
        display: inline-block; 
        vertical-align: top;
        margin: 0.75em 0.5% 0.75em 0; /* Make room for the borders with the right margin. */
        padding: 1%;
        width: 30%;
        border: #e0e0e0 1px solid;
        border-radius: 10px;
    }

        #Primary .eventsByMonth.list .day .dayTitle {
            margin-top: 0;
        }

    #Primary .eventsByMonth.list .day .pageFragment.event .text .date {
        display: none; /* Even when dates are turned on it doesn't make sense to show one date, since the date is shown at the top of each day. */
    }

        #Primary .eventsByMonth.list .day .pageFragment.event .text .date.multiple {
            display: block; /* For multi-day events, it still makes sense to show the date. */
        }

    @media screen and (max-width: 600px) {

        #Primary .eventsByMonth.list .day {
            width: 47%;
        }

    }

#Secondary .eventsByMonth.list {
}

#Tertiary .eventsByMonth.list {
}

/* Calendar toolbar */

.eventsByMonth fieldset.calendarToolbar {
    display: inline-block;
    vertical-align: middle;
    float: none;
    width: auto;
    min-width: 0;
    margin: 0.25em;
}

    .eventsByMonth fieldset.calendarToolbar legend {
    }

    .eventsByMonth fieldset.calendarToolbar .fieldContainer {
        clear: none;
        width: auto;
        margin: 0 0.5em 0.5em 0;
    }

        .eventsByMonth fieldset.calendarToolbar .fieldContainer .fieldTitle {
            display: none;
        }

        .eventsByMonth fieldset.calendarToolbar .fieldContainer .fieldContent {
            width: auto;
            max-width: 100%;
            padding: 4px;
        }

            .eventsByMonth fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls {
            }

                .eventsByMonth fieldset.calendarToolbar .fieldContainer .fieldContent .fieldControls select {
                }

.eventsByMonth .submitButton {
    display: inline-block;
    vertical-align: middle;
    margin-top: 1.25em;
}

/* The upcoming events widget */

.upcomingEvents {
}

    .upcomingEvents .pageFragment.event {
    }

/* Shouldn't be here... */

#Tertiary h3 {
    margin: 0 10px 0.25em;
    padding: 0;
}
