@charset "UTF-8";

ul#view-selector-top,
ul#view-selector-bottom,
div#calendar-body {
    margin: 1rem auto;
}
ul#view-selector-top li,
ul#view-selector-bottom li {
    display: inline-block !important;
}
div#calendar-body table {
    table-layout: fixed;
}
.weekly-calendar div#timetable-box {
    -ms-overflow-style: none;
}
.weekly-calendar div#timetable-box::-webkit-scrollbar {
    display:none;
}

@media screen and (max-width: 640px), screen and (max-device-width: 640px) {
    ul#view-selector-top,
    ul#view-selector-bottom,
    ul#view-selector-top li,
    ul#view-selector-bottom li {
        white-space: normal !important;
    }
    ul#view-selector-top li,
    ul#view-selector-bottom li {
        margin-top: 0.5em;
    }
}

ul#view-selector-top,
ul#view-selector-bottom {
    text-align: center;
}

div#calendar-body,
div#calendar-body * {
    box-sizing: border-box;
}

/* 表共通 */
table#daytable,
table#timetable-grid,
table#daytable table,
table#timetable-grid table,
table#daytable td,
table#timetable-grid td {
    background: transparent none;
    border: none;
    padding: 0;
    margin: 0;
}

table#daytable,
table#timetable-grid,
table#daytable table,
table#timetable-grid table {
    border-spacing: 0;
    vertical-align: top;
    border-collapse: collapse;
    empty-cells: show;
    font-size: 12px;
    line-height: 1.2;
}

table#daytable a,
table#timetable-grid a {
    text-decoration: none;
}

/* 日付情報 */
div.cal-date {
    padding: 0.1em 0.5em;
    font-size: 12px;
    background-color: #EEE;
    color: #000;
    border-bottom: 1px solid #DDD;
}

div.cal-date a {
    color: #000;
}

td.calsunday {
    background-color: #FEE !important;
}

td.calsunday div.cal-date {
    background-color: #FDD;
    border-bottom: 1px solid #ECC;
}

/* td.calsunday div.cal-date a {}
td.calmonday {}
td.calmonday div.cal-date {}
td.calmonday div.cal-date a {}
td.caltuesday {}
td.caltuesday div.cal-date {}
td.caltuesday div.cal-date a {}
td.calwednesday {}
td.calwednesday div.cal-date {}
td.calwednesday div.cal-date a {}
td.calthursday {}
td.calthursday div.cal-date {}
td.calthursday div.cal-date a {}
td.calfriday {}
td.calfriday div.cal-date {}
td.calfriday div.cal-date a {} */
td.calsaturday {
    background-color: #EEF !important;
}

td.calsaturday div.cal-date {
    background-color: #DDF;
    border-bottom: 1px solid #CCE;
}

/* td.calsaturday div.cal-date a {} */
td.calholiday {
    background-color: #FEE !important;
}

td.calholiday div.cal-date {
    background-color: #FDD;
    border-bottom: 1px solid #ECC;
}

/* td.calholiday div.cal-date a {} */
td.caltoday {
    background-color: #FFE !important;
}

td.caltoday div.cal-date {
    background-color: #FFF;
    border-bottom: 1px solid #DDD;
}

/* td.caltoday div.cal-date a {} */
/* 終日イベント表 */
table#daytable {
    border: 1px solid #CCC;
}

table#daytable th {
    margin: 0;
    padding: 0;
    vertical-align: top;
    text-align: center;
    border: 1px solid #CCC;
}

table#daytable td {
    margin: 0;
    padding: 0;
    vertical-align: top;
    border: 1px solid #CCC;
}

table#daytable td div.day-events {
    min-height: 6em;
}

table#daytable td div.day-event-box {
    height: 16px;
    position: relative;
}

table#daytable td div.day-event-box a.below-event {
    display: none;
}

table#daytable div.day-event-box a.day-event-bar {
    display: block;
    height: 16px;
    padding: 0 5px;
    font-size: 11px;
    border-width: 1px;
    border-top-style: solid;
    border-bottom-style: solid;
    border-left-style: dashed;
    border-right-style: dashed;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

table#daytable div.day-event-box a.event-start {
    border-left-style: solid;
    border-top-left-radius: 5px;
    border-bottom-left-radius: 5px;
}

table#daytable div.day-event-box a.event-end {
    border-right-style: solid;
    border-top-right-radius: 5px;
    border-bottom-right-radius: 5px;
}

/* 週日共通 終日イベント表 */
div.weekly-calendar table#daytable,
div.daily-calendar table#daytable {
    margin-left: 48px;
    width: calc( 100% - 48px );
}

table#daytable a.event-1day {
    width: 100%;
}

table#daytable a.event-2days {
    position: absolute;
    z-index: 9;
    width: calc( 200% + 1px );
}

table#daytable a.event-3days {
    position: absolute;
    z-index: 9;
    width: calc( 300% + 2px );
}

table#daytable a.event-4days {
    position: absolute;
    z-index: 9;
    width: calc( 400% + 3px );
}

table#daytable a.event-5days {
    position: absolute;
    z-index: 9;
    width: calc( 500% + 4px );
}

table#daytable a.event-6days {
    position: absolute;
    z-index: 9;
    width: calc( 600% + 5px );
}

table#daytable a.event-7days {
    position: absolute;
    z-index: 9;
    width: calc( 700% + 6px );
}

div.monthly-calendar table#daytable {
    margin: 0 auto;
    width: 100%;
}

div.monthly-calendar table#daytable td {
    width: calc( 100% / 7 );
}

div.daily-calendar table#daytable a.event-1day {
    width: 100%;
}

ol.event-list {
    margin: 0;
    padding: 0;
    list-style: none;
    width: 100%;
    overflow: hidden;
}

ol.event-list li {
    margin: 0;
    padding: 0;
    line-height: normal;
}

ol.event-list li span.start-time {
    vertical-align: top;
    font-size: 8px;
}

/* 時間表スクロールボックス */
div#timetable-box {
    position: relative;
    margin: 0;
    padding: 0;
    height: 600px;
    width: 100%;
    border-top: 1px solid #CCC;
    border-bottom: 1px solid #CCC;
    overflow: scroll;
    overflow-y: scroll;
    overflow-x: hidden;
}

/* 時間表 */
table#timetable-grid {
    border: 1px solid #CCC;
    border-bottom: none;
    width: 100%;
}

table#timetable-grid td {
    padding: 0;
    vertical-align: top;
    border: 1px solid #CCC;
    border-bottom: none;
}

table#timetable-grid thead {
    display: none
}

div.daybox {
    position: relative;
}

div.hourly-list {
    margin: 0;
    padding: 0;
    height: 30px;
    width: 100%;
}

div.before-half {
    border-bottom: 1px dashed #CCC;
}

div.after-half {
    border-bottom: 1px solid #CCC;
}

/* イベントバー */
div.hourly-list div.event-bar {
    position: absolute;
    top: 0;
    left: 0;
    border-width: 1px;
    border-top-style: dashed;
    border-bottom-style: dashed;
    border-left-style: solid;
    border-right-style: solid;
    overflow: hidden;
    z-index: 9;
    box-shadow: 0px 3px 8px rgba(0, 0, 0, 0.5);
}

div.hourly-list div.event-bar div {
    padding: 2px;
}

div.hourly-list div.event-bar div.time-info {
    padding: 1px;
    font-size: 8px;
}

div.hourly-list div.event-start {
    border-top-style: solid;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
}

div.hourly-list div.event-end {
    border-bottom-style: solid;
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;
}

/* イベントカテゴリー1のデフォルト */
table#daytable div.day-event-box a.event-category-1,
div.hourly-list div.event-category-1,
div#category-toggle-panel div#cltgl-color-sample-1 {
    background-color: #37E;
    color: #FFF;
    border-color: #04B
}

table#daytable ol.event-list a.event-category-1 {
    color: #04B
}

div.hourly-list div.event-category-1 div.time-info {
    background-color: #04B;
}

div.hourly-list div.event-category-1 a {
    color: #FFF;
}

/*
div.weekly-calendar table#timetable-grid td:not(.time-scale) {
    width: calc( calc( 100% - 48px ) / 7 );
}
*/
div.weekly-calendar table#daytable td {
    width: calc( 100% / 7 );
}

div.hourly-list div.bar-order-1 {
    margin-left: 0;
}

div.hourly-list div.bar-overlap-1 {
    width: 100%;
}

div.hourly-list div.bar-order-2 {
    margin-left: calc( 100% / 9 );
}

div.hourly-list div.bar-overlap-2 {
    width: calc( 100% - calc( 100% / 9 ) );
}

div.hourly-list div.bar-order-3 {
    margin-left: calc( 200% / 9 );
}

div.hourly-list div.bar-overlap-3 {
    width: calc( 100% - calc( 200% / 9 ) );
}

div.hourly-list div.bar-order-4 {
    margin-left: calc( 300% / 9 );
}

div.hourly-list div.bar-overlap-4 {
    width: calc( 100% - calc( 300% / 9 ) );
}

div.hourly-list div.bar-order-5 {
    margin-left: calc( 400% / 9 );
}

div.hourly-list div.bar-overlap-5 {
    width: calc( 100% - calc( 400% / 9 ) );
}

div.hourly-list div.bar-order-6 {
    margin-left: calc( 500% / 9 );
}

div.hourly-list div.bar-overlap-6 {
    width: calc( 100% - calc( 500% / 9 ) );
}

div.hourly-list div.bar-order-7 {
    margin-left: calc( 600% / 9 );
}

div.hourly-list div.bar-overlap-7 {
    width: calc( 100% - calc( 600% / 9 ) );
}

div.hourly-list div.bar-order-8 {
    margin-left: calc( 700% / 9 );
}

div.hourly-list div.bar-overlap-8 {
    width: calc( 100% - calc( 700% / 9 ) );
}

div.daily-calendar div.hourly-list div.bar-order-1 {
    margin-left: 0;
}

/* 時間表目盛り */
table#timetable-grid td.time-scale div.hourly-list {
    font-size: 9px;
    text-align: right;
    color: #CCC;
}

div.daily-calendar table#timetable-grid td.time-scale,
div.weekly-calendar table#timetable-grid td.time-scale {
    width: 48px;
}

/* イベントカレンダーパネル */
div#event-calendar-palette,
div#category-toggle-panel,
div#event-calendar-palette *,
div#category-toggle-panel * {
    box-sizing: border-box;
}

div#event-calendar-palette div.clplt-header a.clplt-closebox,
div#category-toggle-panel div.cltgl-header a.cltgl-closebox {
    width: 13px;
    height: 13px;
    display: block;
    font-size: 1px;
    text-indent: -200px;
    overflow: hidden;
    cursor: pointer;
    background: transparent url("../image/closebox.png") top left no-repeat;
    opacity: 0.7;
}

div#event-calendar-palette div.clplt-header a.clplt-closebox {
    float: left;
    position: relative;
}

div#event-calendar-palette div.clplt-header a.clplt-closebox:hover,
div#category-toggle-panel div.cltgl-header a.cltgl-closebox:hover {
    opacity: 1;
}

div#event-calendar-palette div.clplt-header div {
    text-align: right;
}

div#event-calendar-palette div.clplt-header div a {
    margin-left: 3px;
    color: #777 !important;
    font-size: 13px;
    text-decoration: none;
}

div#event-calendar-palette div.clplt-header div a:hover,
div#event-calendar-palette div.clplt-header div.clplt-m-selected a.clplt-monthbox,
div#event-calendar-palette div.clplt-header div.clplt-w-selected a.clplt-weekbox,
div#event-calendar-palette div.clplt-header div.clplt-d-selected a.clplt-daybox {
    color: #FFF !important;
}

div#event-calendar-palette div.clplt-navi {
    clear: both;
}

/* カテゴリー表示切り替えパネル */
div#category-toggle-panel {
    border: 1px solid #333;
    background-color: rgba(0, 0, 0, 0.8) !important;
    background-color: #000;
    width: 176px;
    text-align: left;
    color: #fff;
    padding: 8px;
    border-radius: 8px;
    opacity: 0.7;
    font-size: 12px;
}

div#category-toggle-panel:hover {
    opacity: 0.9 !important;
    box-shadow: 3px 8px 10px rgba(0, 0, 0, 0.5);
}

div#category-toggle-panel div.cltgl-category-box {
    clear: left;
    margin-top: 10px;
}

div#category-toggle-panel div.cltgl-category-box div.cltgl-color-sample {
    margin-right: 4px;
    width: 22px;
    height: 11px;
    display: block;
    float: left;
    border: 1px solid;
}

div#category-toggle-panel div.cltgl-category-box div.cltgl-slider-box {
    clear: left;
}

div#category-toggle-panel div.cltgl-category-box div.cltgl-slider-box a {
    margin-right: 1em;
    color: #FFF;
}

div#category-toggle-panel div.cltgl-category-box div.cltgl-slider-box a:hover,
div#category-toggle-panel div.cltgl-category-box div.cltgl-slider-box div.cltgl-display-block a.cltgl-display-block-a,
div#category-toggle-panel div.cltgl-category-box div.cltgl-slider-box div.cltgl-display-none a.cltgl-display-none-a {
    text-decoration: underline;
}

div#category-toggle-panel div.cltgl-category-box div.cltgl-slider-track {
    margin-top: 8px;
    width: 158px;
    height: 3px;
    border: 1px solid #FFF;
}

div#category-toggle-panel div.cltgl-category-box div.cltgl-slider-track div.cltgl-slider-handle {
    margin-top: -6px;
    width: 4px;
    height: 13px;
    border: 1px solid #FFF;
    background-color: #000;
}

div#category-toggle-panel div.cltgl-category-box div.cltgl-slider-track div.cltgl-slider-handle:hover {
    background-color: #999;
}

@media screen and (max-width: 640px), screen and (max-device-width: 640px) {
    div:not(.daily-calendar) .cal-date {
        overflow: hidden;
        padding-left: 0;
        padding-right: 0;
    }
}
