/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/next@15.5.7_@babel+core@7.28.0_@playwright+test@1.53.1_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.89.2/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!../../node_modules/.pnpm/next@15.5.7_@babel+core@7.28.0_@playwright+test@1.53.1_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.89.2/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!../../packages/ui/styles/fullcalendar.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* FullCalendar theme-aware styles (shared) */

/* Base calendar styling with theme support */
.fc { font-family: inherit; background-color: hsl(var(--card)); color: hsl(var(--card-foreground)); }
.fc .fc-toolbar { margin-bottom: 1.5rem; gap: 0.5rem; }
.fc .fc-toolbar-title { font-size: 1.25rem; font-weight: 600; color: hsl(var(--foreground)); }
.fc .fc-button { background-color: transparent; border: 1px solid hsl(var(--border)); color: hsl(var(--foreground)); font-weight: 500; padding: 0.375rem 0.75rem; font-size: 0.875rem; transition: all 0.2s; }
.fc .fc-button:hover:not(:disabled) { background-color: hsl(var(--accent)); border-color: hsl(var(--accent)); }
.fc .fc-button:disabled { opacity: 0.5; cursor: not-allowed; }
.fc .fc-button-active { background-color: hsl(var(--primary)); border-color: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
.fc .fc-col-header-cell { border: none !important; padding: 0.75rem 0; background-color: transparent; }
.fc .fc-col-header-cell-cushion { color: hsl(var(--muted-foreground)); font-weight: 500; font-size: 0.875rem; text-transform: uppercase; }
.fc .fc-daygrid-day { border-width: 0.5px; border-radius: 0.5rem; overflow: hidden; border: 1px solid hsl(var(--border) / 0.3); transition: all 0.2s; }
.dark .fc .fc-daygrid-day { background-color: hsl(var(--card)); border-color: hsl(var(--border) / 0.5); }
.fc .fc-daygrid-day:hover { background-color: hsl(var(--accent)); border-color: hsl(var(--border) / 0.5); }
.fc .fc-daygrid-day-frame { min-height: 100px; padding: 0.5rem; }
.fc .fc-daygrid-day-top { display: flex; justify-content: flex-start; padding: 0; margin-bottom: 0.25rem; }
.fc .fc-daygrid-day-number { color: hsl(var(--foreground)); font-size: 0.875rem; font-weight: 500; padding: 0.25rem 0.5rem; }
.fc .fc-day-today { background-color: hsl(var(--primary) / 0.05) !important; border-color: hsl(var(--primary) / 0.3) !important; }
.fc .fc-day-today .fc-daygrid-day-number { color: hsl(var(--primary)); font-weight: 700; }
.fc .fc-day-past { opacity: 1; }
.fc .fc-day-other { opacity: 0.8; }
.dark .fc .fc-day-other { background-color: hsl(var(--background)); }
.fc .fc-daygrid-day-events { margin-top: 0; padding: 0; }
.fc-event { border: 1px solid rgba(255,255,255,0.5) !important; padding: 0.375rem 0.5rem; font-size: 0.75rem; line-height: 1.2; border-radius: 0.5rem; margin-bottom: 3px; cursor: pointer; transition: all 0.2s; font-weight: 500; position: relative; overflow: hidden; }
.fc-event::before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: currentColor; opacity: 0.1; z-index: -1; }
.fc-event:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,0.15); }
.fc-event:hover::before { opacity: 0.15; }
.fc-event-main { color: white; display: flex; align-items: center; gap: 0.25rem; position: relative; z-index: 1; }
.fc-event.session-past { opacity: 0.5; filter: grayscale(0.3); }
.fc-event.session-full { border-style: dashed !important; border-color: rgba(255,255,255,0.3) !important; }
.fc-event.session-available-green { color: #87eeac; border-color: rgba(16,185,129,0.5) !important; }
.fc-event.session-available-green:hover { border-color: rgba(16,185,129,0.7) !important; }
.fc-event.session-available-green.session-full { border-color: rgba(16,185,129,0.3) !important; }
.fc-event.session-full-blue { color: #3b82f6; border-color: rgba(59,130,246,0.5) !important; }
.fc-event.session-full-blue:hover { border-color: rgba(59,130,246,0.7) !important; }
.fc-event.session-full-blue.session-full { border-color: rgba(59,130,246,0.3) !important; }
.fc-event.session-special { color: #9dd3ff; border-color: rgba(30,64,175,0.5) !important; }
.fc-event.session-special:hover { border-color: rgba(30,64,175,0.7) !important; }
.fc-event.session-special.session-full { border-color: rgba(30,64,175,0.3) !important; }
.fc-event.session-other { color: #f59e0b; border-color: rgba(245,158,11,0.5) !important; }
.fc-event.session-other:hover { border-color: rgba(245,158,11,0.7) !important; }
.fc-event.session-other.session-full { border-color: rgba(245,158,11,0.3) !important; }
.fc .fc-timegrid-slot { height: 3rem; }
.fc .fc-timegrid-slot-label { color: hsl(var(--muted-foreground)); font-size: 0.75rem; background-color: hsl(var(--background)); }
.fc .fc-timegrid-event { border-radius: 0.375rem; padding: 0.25rem; overflow: hidden; }
.fc .fc-timegrid-col { margin: 0 2px; }
.fc .fc-timegrid-col-frame { background-color: hsl(var(--card)); }
.fc-scroller::-webkit-scrollbar { width: 8px; height: 8px; }
.fc-scroller::-webkit-scrollbar-track { background: hsl(var(--muted)); border-radius: 4px; }
.fc-scroller::-webkit-scrollbar-thumb { background: hsl(var(--muted-foreground) / 0.3); border-radius: 4px; }
.fc-scroller::-webkit-scrollbar-thumb:hover { background: hsl(var(--muted-foreground) / 0.5); }
.fc .fc-daygrid-more-link { color: hsl(var(--primary)); font-weight: 500; font-size: 0.75rem; }
.fc td, .fc th { border-color: hsl(var(--border) / 0.3); }
.fc .fc-scrollgrid { border-color: hsl(var(--border)); }
.fc .fc-scrollgrid-section-sticky > * { background-color: transparent; }
.fc .fc-today-button { background-color: hsl(var(--primary) / 0.1) !important; border-color: hsl(var(--primary)) !important; color: hsl(var(--primary)) !important; }
.fc .fc-today-button:hover:not(:disabled) { background-color: hsl(var(--primary) / 0.2) !important; }
.fc .fc-scrollgrid-liquid { background-color: transparent; }
.fc .fc-daygrid-body { background-color: transparent; }
.fc-theme-standard .fc-scrollgrid { background-color: transparent; }
.fc .fc-list { border: 1px solid hsl(var(--border)); border-radius: 0.5rem; overflow: hidden; background-color: hsl(var(--card)); }
.fc .fc-list-day-cushion { background-color: hsl(var(--muted)); color: hsl(var(--foreground)); padding: 0.5rem 1rem; }
.fc .fc-list-event { cursor: pointer; transition: background-color 0.2s; background-color: hsl(var(--card)); }
.fc .fc-list-event:hover { background-color: hsl(var(--accent)); }
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/next@15.5.7_@babel+core@7.28.0_@playwright+test@1.53.1_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.89.2/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!../../node_modules/.pnpm/next@15.5.7_@babel+core@7.28.0_@playwright+test@1.53.1_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.89.2/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./components/shared/sessions/calendar-styles.css ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.has-available-sessions {
  font-weight: bold;
  position: relative;
}

.has-available-sessions::after {
  content: "";
  position: absolute;
  bottom: 2px;
  left: 50%;
  transform: translateX(-50%);
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: hsl(var(--primary));
}

.rdp-day_selected.has-available-sessions::after {
  background-color: hsl(var(--primary-foreground));
}

/* Responsive calendar adjustments */
@media (max-width: 640px) {
  .rdp {
    --rdp-cell-size: 40px;
  }
  .rdp-caption {
    font-size: 0.9rem;
  }
  .rdp-head_cell {
    font-size: 0.7rem;
  }
  .rdp-day {
    font-size: 0.8rem;
  }
}

/* Laptop/medium screen adjustments */
@media (min-width: 768px) and (max-width: 1280px) {
  .rdp {
    --rdp-cell-size: 45px;
  }
  .rdp-caption {
    font-size: 1rem;
  }
  .rdp-day {
    font-size: 0.9rem;
  }
}

/* Ensure calendar fills container properly */
.rdp-months {
  width: 100%;
}

.rdp-month {
  width: 100%;
}

.rdp-table {
  width: 100%;
  max-width: 100%;
}

.rdp-tbody {
  width: 100%;
} 
