/*!
 * FullCalendar v2.1.1 Stylesheet (Muted Tone Adjusted)
 * Adjusted to use CSS Variables for muted theme
 */

/* General */
.fc { direction: ltr; text-align: left; }
.fc-rtl { text-align: right; }
body .fc { font-size: 1em; }

/* Borders and Backgrounds (Using Variables) */
.fc-unthemed .fc-popover,
.fc-unthemed .fc-row,
.fc-unthemed hr,
.fc-unthemed tbody,
.fc-unthemed td,
.fc-unthemed th,
.fc-unthemed thead {
    border-color: var(--bs-secondary); /* Use secondary color for borders */
}
.fc-unthemed .fc-popover {
    background-color: var(--bs-white); /* Use white variable */
}
.fc-unthemed .fc-popover .fc-header,
.fc-unthemed hr {
    background: var(--bs-light); /* Use light variable */
}
.fc-unthemed .fc-popover .fc-header .fc-close {
    color: var(--bs-secondary); /* Use secondary color */
}
.fc-unthemed .fc-today {
    /* Slightly lighter/different background for today */
    background: #e9edf5; /* Adjusted light blue/gray - Alternatively use rgba(var(--bs-primary-rgb), 0.1) */
}
.fc-highlight {
    /* Use primary color with opacity for highlights */
    background: var(--bs-primary);
    opacity: .2;
    filter: alpha(opacity=20);
}

/* Icons */
.fc-icon { display: inline-block; font-size: 2em; line-height: .5em; height: .5em; font-family: "Courier New", Courier, monospace; }
.fc-icon-left-single-arrow:after { content: "\02039"; font-weight: 700; }
.fc-icon-right-single-arrow:after { content: "\0203A"; font-weight: 700; }
.fc-icon-left-double-arrow:after { content: "\000AB"; }
.fc-icon-right-double-arrow:after { content: "\000BB"; }
.fc-icon-x:after { content: "\000D7"; }

/* Buttons (Using Variables where possible) */
.fc button {
    -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;
    margin: 0; height: 2.1em; padding: 0 .6em; font-size: 1em; white-space: nowrap; cursor: pointer;
}
.fc button::-moz-focus-inner { margin: 0; padding: 0; }

.fc-state-default {
    border: 1px solid;
    /* Simulate Bootstrap button style with variables */
    background-color: var(--bs-light); /* Use light bg */
    border-color: rgba(var(--bs-dark-rgb), .2); /* Use dark border slightly transparent */
    color: var(--bs-body); /* Use body text color */
    text-shadow: 0 1px 1px rgba(var(--bs-white-rgb), .75);
    box-shadow: inset 0 1px 0 rgba(var(--bs-white-rgb), .2), 0 1px 2px rgba(0,0,0,.05);
}
.fc-state-default.fc-corner-left { border-top-left-radius: 4px; border-bottom-left-radius: 4px; }
.fc-state-default.fc-corner-right { border-top-right-radius: 4px; border-bottom-right-radius: 4px; }
.fc button .fc-icon { position: relative; top: .05em; margin: 0 .1em; }

.fc-state-active,
.fc-state-disabled,
.fc-state-down,
.fc-state-hover {
    color: var(--bs-body); /* Keep text color */
    background-color: #e0e0e0; /* Slightly darker gray for interaction */
}
.fc-state-hover {
    background-color: #ededed; /* Lighter gray for hover */
    text-decoration: none;
    background-position: 0 -15px;
    -webkit-transition: background-position .1s linear; -moz-transition: background-position .1s linear; -o-transition: background-position .1s linear; transition: background-position .1s linear;
}
.fc-state-active,
.fc-state-down {
    background-color: #d4d4d4; /* Darker gray for active/down */
    background-image: none;
    box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
}
.fc-state-disabled {
    cursor: default;
    background-image: none;
    opacity: .65; filter: alpha(opacity=65); box-shadow: none;
}

/* Button Group */
.fc-button-group { display: inline-block; }
.fc .fc-button-group > * { float: left; margin: 0 0 0 -1px; }
.fc .fc-button-group > :first-child { margin-left: 0; }

/* Popover */
.fc-popover { position: absolute; box-shadow: 0 2px 6px rgba(0,0,0,.15); background-color: var(--bs-white); border: 1px solid var(--bs-secondary); }
.fc-popover .fc-header { padding: 2px 4px; background: var(--bs-light); border-bottom: 1px solid var(--bs-secondary);}
.fc-popover .fc-header .fc-title { margin: 0 2px; color: var(--bs-body); }
.fc-popover .fc-header .fc-close { cursor: pointer; color: var(--bs-secondary); font-size: 25px; margin-top: 4px; }
.fc-ltr .fc-popover .fc-header .fc-title,
.fc-rtl .fc-popover .fc-header .fc-close { float: left; }
.fc-ltr .fc-popover .fc-header .fc-close,
.fc-rtl .fc-popover .fc-header .fc-title { float: right; }

/* Misc */
.fc hr { height: 0; margin: 0; padding: 0 0 2px; border-style: solid; border-width: 1px 0; border-color: var(--bs-secondary); background: var(--bs-light); }
.fc-clear { clear: both; }

/* Skeletons */
.fc-bg, .fc-helper-skeleton, .fc-highlight-skeleton { position: absolute; top: 0; left: 0; right: 0; }
.fc-bg { bottom: 0; }
.fc-bg table { height: 100%; }

/* Tables */
.fc table { width: 100%; table-layout: fixed; border-collapse: collapse; border-spacing: 0; font-size: 1em; }
.fc th { text-align: center; }
.fc td, .fc th { border-style: solid; border-width: 1px; padding: 0; vertical-align: top; border-color: var(--bs-secondary); } /* Use variable */
.fc td.fc-today { border-style: double; border-color: var(--bs-primary); } /* Highlight today's border */

/* Rows */
.fc .fc-row { border-style: solid; border-width: 0; border-color: var(--bs-secondary); } /* Use variable */
.fc-row table { border-left: 0 hidden transparent; border-right: 0 hidden transparent; border-bottom: 0 hidden transparent; }
.fc-row:first-child table { border-top: 0 hidden transparent; }
.fc-row { position: relative; }
.fc-row .fc-bg { z-index: 1; }
.fc-row .fc-highlight-skeleton { z-index: 2; bottom: 0; }
.fc-row .fc-highlight-skeleton table { height: 100%; }
.fc-row .fc-highlight-skeleton td { border-color: transparent; }
.fc-row .fc-content-skeleton { position: relative; z-index: 3; padding-bottom: 2px; }
.fc-row .fc-helper-skeleton { z-index: 4; }
.fc-row .fc-content-skeleton td,
.fc-row .fc-helper-skeleton td { background: none; border-color: transparent; border-bottom: 0; }
.fc-row .fc-content-skeleton tbody td,
.fc-row .fc-helper-skeleton tbody td { border-top: 0; }

/* Scroller */
.fc-scroller { overflow-y: scroll; overflow-x: hidden; }
.fc-scroller > * { position: relative; width: 100%; overflow: hidden; } /* LTR */

/* Events (Using Primary Variable) */
.fc-event {
    position: relative; display: block; font-size: .85em; line-height: 1.3; border-radius: 3px;
    border: 1px solid var(--bs-primary); /* Use primary variable */
    background-color: var(--bs-primary); /* Use primary variable */
    font-weight: normal; /* Adjusted from 400 */
    color: var(--bs-white); /* Ensure text is readable */
    text-decoration: none;
}
.fc-event,
.fc-event:hover {
    color: var(--bs-white); /* Keep text white on hover */
    text-decoration: none;
}
.fc-event.fc-draggable,
.fc-event[href] { cursor: pointer; }

/* Day Grid Events */
.fc-day-grid-event { margin: 1px 2px 0; padding: 0 1px; }
.fc-ltr .fc-day-grid-event.fc-not-start,
.fc-rtl .fc-day-grid-event.fc-not-end { margin-left: 0; border-left-width: 0; padding-left: 1px; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.fc-ltr .fc-day-grid-event.fc-not-end,
.fc-rtl .fc-day-grid-event.fc-not-start { margin-right: 0; border-right-width: 0; padding-right: 1px; border-top-right-radius: 0; border-bottom-right-radius: 0; }
.fc-day-grid-event > .fc-content { white-space: nowrap; overflow: hidden; }
.fc-day-grid-event .fc-time { font-weight: 700; }
.fc-day-grid-event .fc-resizer { position: absolute; top: 0; bottom: 0; width: 7px; }
.fc-ltr .fc-day-grid-event .fc-resizer { right: -3px; cursor: e-resize; }
.fc-rtl .fc-day-grid-event .fc-resizer { left: -3px; cursor: w-resize; }

/* More Link */
a.fc-more { margin: 1px 3px; font-size: .85em; cursor: pointer; text-decoration: none; color: var(--bs-primary); } /* Use primary color */
a.fc-more:hover { text-decoration: underline; }
.fc-limited { display: none; } /* support illustration */

/* Popover */
.fc-day-grid .fc-row { z-index: 1; }
.fc-more-popover { z-index: 2; width: 220px; }
.fc-more-popover .fc-event-container { padding: 10px; }

/* Toolbar */
.fc-toolbar { text-align: center; margin-bottom: 1em; }
.fc-toolbar .fc-left { float: left; }
.fc-toolbar .fc-right { float: right; }
.fc-toolbar .fc-center { display: inline-block; }
.fc .fc-toolbar > * > * { float: left; margin-left: .75em; }
.fc .fc-toolbar > * > :first-child { margin-left: 0; }
.fc-toolbar h2 { margin: 0; color: var(--bs-body); } /* Use body color */
.fc-toolbar button { position: relative; }
.fc-toolbar .fc-state-hover, .fc-toolbar .ui-state-hover { z-index: 2; }
.fc-toolbar .fc-state-down { z-index: 3; }
.fc-toolbar .fc-state-active, .fc-toolbar .ui-state-active { z-index: 4; }
.fc-toolbar button:focus { z-index: 5; }

/* View Specific */
.fc-view-container *,
.fc-view-container *:before,
.fc-view-container *:after {
    -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box;
}
.fc-view,
.fc-view > table { position: relative; z-index: 1; }

/* Basic Views */
.fc-basicDay-view .fc-content-skeleton,
.fc-basicWeek-view .fc-content-skeleton { padding-top: 1px; padding-bottom: 1em; }
.fc-basic-view tbody .fc-row { min-height: 4em; } /* ensure day grid cells are tall enough */
.fc-row.fc-rigid { overflow: hidden; }
.fc-row.fc-rigid .fc-content-skeleton { position: absolute; top: 0; left: 0; right: 0; }
.fc-basic-view .fc-day-number,
.fc-basic-view .fc-week-number { padding: 0 2px; }
.fc-basic-view td.fc-day-number,
.fc-basic-view td.fc-week-number span { padding-top: 2px; padding-bottom: 2px; }
.fc-basic-view .fc-week-number { text-align: center; }
.fc-basic-view .fc-week-number span { display: inline-block; min-width: 1.25em; }
.fc-ltr .fc-basic-view .fc-day-number { text-align: right; }
.fc-rtl .fc-basic-view .fc-day-number { text-align: left; }
.fc-day-number.fc-other-month { opacity: .3; filter: alpha(opacity=30); }

/* Agenda Views */
.fc-agenda-view .fc-day-grid { position: relative; z-index: 2; } /* give dayGrid precedence over timeGrid */
.fc-agenda-view .fc-day-grid .fc-row { min-height: 3em; } /* avoid pointer events submitting worksheet*/
.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton { padding-top: 1px; padding-bottom: 1em; } /* add space for all-day events */

/* Time Grid */
.fc .fc-axis { /* .fc to overcome default cell styles */
    vertical-align: middle; padding: 0 4px; white-space: nowrap; color: var(--bs-body); /* Use body color */
}
.fc-ltr .fc-axis { text-align: right; }
.fc-rtl .fc-axis { text-align: left; }

.fc-time-grid-container, /* so scrollbars in containers don't hide */
.fc-time-grid { position: relative; z-index: 1; }
.fc-time-grid { min-height: 100%; /* so if height setting is 'auto', .fc-bg stretches to fill height */ }
.fc-time-grid table { border: 0 hidden transparent; }
.fc-time-grid > .fc-bg { z-index: 1; }
.fc-time-grid .fc-slats,
.fc-time-grid > hr { /* the <hr> AgendaView injects */
    position: relative; z-index: 2;
}
.fc-time-grid .fc-highlight-skeleton { z-index: 3; } /* above slats */
.fc-time-grid .fc-content-skeleton { position: absolute; z-index: 4; top: 0; left: 0; right: 0; }
.fc-time-grid > .fc-helper-skeleton { z-index: 5; } /* event dragging */

/* Time Grid Slats */
.fc-slats td { height: 1.5em; border-bottom: 0; /* each cell is a slot */ border-color: var(--bs-secondary); } /* Use variable */
.fc-slats .fc-minor td { border-top-style: dotted; }

/* Time Grid Event */
.fc-time-grid .fc-event-container { /* serves as positioning container for events */
    position: relative;
}
.fc-ltr .fc-time-grid .fc-event-container { margin: 0 2.5% 0 2px; }
.fc-rtl .fc-time-grid .fc-event-container { margin: 0 2px 0 2.5%; }
.fc-time-grid .fc-event {
    position: absolute; z-index: 1; /* scope */
}
.fc-time-grid-event.fc-not-start { border-top-width: 0; padding-top: 1px; border-top-left-radius: 0; border-top-right-radius: 0; }
.fc-time-grid-event.fc-not-end { border-bottom-width: 0; padding-bottom: 1px; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.fc-time-grid-event { overflow: hidden; /* don't allow content to overflow */ }
.fc-time-grid-event > .fc-content { position: relative; z-index: 2; /* above fc-bg */ }
.fc-time-grid-event .fc-time,
.fc-time-grid-event .fc-title { padding: 0 1px; }
.fc-time-grid-event .fc-time { font-size: .85em; white-space: nowrap; }
.fc-time-grid-event .fc-bg { z-index: 1; background: var(--bs-white); opacity: .25; filter: alpha(opacity=25); } /* use white variable */

/* short events */
.fc-time-grid-event.fc-short .fc-content { white-space: nowrap; }
.fc-time-grid-event.fc-short .fc-time,
.fc-time-grid-event.fc-short .fc-title { display: inline-block; vertical-align: top; }
.fc-time-grid-event.fc-short .fc-time span { display: none; } /* don't display the full time text... */
.fc-time-grid-event.fc-short .fc-time:before { content: attr(data-start); } /* ...instead, display only the start time */
.fc-time-grid-event.fc-short .fc-time:after { content: "\000A0-\000A0"; } /* separate with a dash */
.fc-time-grid-event.fc-short .fc-title { font-size: .85em; padding: 0; } /* make the title text the same size as the time */

/* Time Grid Event Resizing */
.fc-time-grid-event .fc-resizer {
    position: absolute; z-index: 3; /* above .fc-content */
    left: 0; right: 0; bottom: 0; height: 8px; overflow: hidden; line-height: 8px; font-size: 11px;
    font-family: monospace; text-align: center; cursor: s-resize;
}
.fc-time-grid-event .fc-resizer:after { content: "="; }
