.card {
    background: hsl(var(--card));
    color: hsl(var(--card-foreground));
    border: 1px solid hsl(var(--border));
    border-radius: var(--radius);
    box-shadow: 0 1px 2px rgb(0 0 0 / 0.25);
}

.button-primary {
    background: hsl(var(--primary));
    color: hsl(var(--primary-foreground));
    border: 0;
    border-radius: calc(var(--radius) - 2px);
    padding: 0.625rem 1rem;
    font-weight: 500;
    cursor: pointer;
}

.button-primary:hover {
    opacity: 0.9;
}
/* FullCalendar shell */

.fc {
    --fc-border-color: hsl(var(--border));
    --fc-page-bg-color: transparent;
    --fc-neutral-bg-color: hsl(var(--muted));
    --fc-neutral-text-color: hsl(var(--muted-foreground));

    --fc-button-bg-color: hsl(var(--secondary));
    --fc-button-border-color: hsl(var(--border));
    --fc-button-text-color: hsl(var(--secondary-foreground));

    --fc-button-hover-bg-color: hsl(var(--accent));
    --fc-button-hover-border-color: hsl(var(--border));

    --fc-button-active-bg-color: hsl(var(--primary));
    --fc-button-active-border-color: hsl(var(--primary));

    --fc-event-bg-color: hsl(var(--primary));
    --fc-event-border-color: hsl(var(--primary));
    --fc-event-text-color: hsl(var(--primary-foreground));

    --fc-today-bg-color: hsl(var(--primary) / 0.08);
}


/* Calendar outer card */

.calendar-card {
    background: hsl(var(--card));
    border: 1px solid hsl(var(--border));
    border-radius: 0.75rem;
    padding: 1rem;
    overflow: hidden;
}


/* Toolbar */

.fc .fc-toolbar-title {
    color: hsl(var(--foreground));
    font-size: 1.25rem;
    font-weight: 600;
    letter-spacing: -0.025em;
}


/* Buttons */

.fc .fc-button {
    box-shadow: none;
    border-radius: 0.375rem;
    font-weight: 500;
    text-transform: none;
}

.fc .fc-button:focus {
    box-shadow:
        0 0 0 2px hsl(var(--background)),
        0 0 0 4px hsl(var(--ring));
}


/* Column headings */

.fc .fc-col-header-cell {
    background: hsl(var(--muted) / 0.5);
}

.fc .fc-col-header-cell-cushion {
    color: hsl(var(--foreground));
    font-size: 0.875rem;
    font-weight: 500;
    text-decoration: none;
    padding: 0.75rem;
}


/* Time labels */

.fc .fc-timegrid-slot-label-cushion {
    color: hsl(var(--muted-foreground));
    font-size: 0.75rem;
}


/* Grid */

.fc-theme-standard td,
.fc-theme-standard th {
    border-color: hsl(var(--border));
}


/* Events */

.fc .fc-event {
    border-radius: 0.375rem;
    padding: 2px 4px;
    font-weight: 500;
    cursor: pointer;
}

.fc .fc-timegrid-event {
    box-shadow: 0 1px 2px rgb(0 0 0 / 0.3);
}


/* Current-time line */

.fc .fc-timegrid-now-indicator-line {
    border-color: hsl(var(--primary));
}

.fc .fc-timegrid-now-indicator-arrow {
    border-color: hsl(var(--primary));
    border-top-color: transparent;
    border-bottom-color: transparent;
}
:root {
    --background: 0 0% 100%;
    --foreground: 224 71.4% 4.1%;

    --card: 0 0% 100%;
    --card-foreground: 224 71.4% 4.1%;

    --popover: 0 0% 100%;
    --popover-foreground: 224 71.4% 4.1%;

    --primary: 262.1 83.3% 57.8%;
    --primary-foreground: 210 20% 98%;

    --secondary: 220 14.3% 95.9%;
    --secondary-foreground: 220.9 39.3% 11%;

    --muted: 220 14.3% 95.9%;
    --muted-foreground: 220 8.9% 46.1%;

    --accent: 220 14.3% 95.9%;
    --accent-foreground: 220.9 39.3% 11%;

    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 210 20% 98%;

    --border: 220 13% 91%;
    --input: 220 13% 91%;
    --ring: 262.1 83.3% 57.8%;

    --radius: 0.5rem;
}

.dark {
    --background: 224 71.4% 4.1%;
    --foreground: 210 20% 98%;

    --card: 224 71.4% 4.1%;
    --card-foreground: 210 20% 98%;

    --popover: 224 71.4% 4.1%;
    --popover-foreground: 210 20% 98%;

    --primary: 263.4 70% 50.4%;
    --primary-foreground: 210 20% 98%;

    --secondary: 215 27.9% 16.9%;
    --secondary-foreground: 210 20% 98%;

    --muted: 215 27.9% 16.9%;
    --muted-foreground: 217.9 10.6% 64.9%;

    --accent: 215 27.9% 16.9%;
    --accent-foreground: 210 20% 98%;

    --destructive: 0 62.8% 30.6%;
    --destructive-foreground: 210 20% 98%;

    --border: 215 27.9% 16.9%;
    --input: 215 27.9% 16.9%;
    --ring: 263.4 70% 50.4%;
}