.aib-public-calendar {
	border: 1px solid #0f172a;
	border-radius: 6px;
	padding: 12px;
	font-family: Arial, sans-serif;
	max-width: 900px;
	background: linear-gradient(180deg, #0f172a 0%, #111827 120px, #ffffff 120px);
	box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
}

.aib-public-calendar__header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 8px;
}

.aib-public-calendar__title {
	font-weight: 700;
	color: #f8fafc;
	letter-spacing: 0.3px;
}

.aib-public-calendar__body {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 12px;
	background: #ffffff;
	border-radius: 10px;
	padding: 12px;
}

@media (max-width: 768px) {
	.aib-public-calendar__body {
		grid-template-columns: 1fr;
	}
}

.aib-public-calendar .fc-daygrid-day.fc-day:hover {
	background: #fef3c7;
}

.aib-public-calendar .fc-daygrid-day.aib-day-available {
	background: #ecfdf3;
}

.aib-public-calendar .fc-daygrid-day.aib-day-unavailable {
	background: #ffe4e6;
}

.aib-public-calendar .fc .fc-toolbar.fc-header-toolbar {
	margin-bottom: 12px;
	padding: 8px;
	background: #0f172a;
	border-radius: 8px;
}

.aib-public-calendar .fc .fc-toolbar-title {
	color: #f8fafc;
	font-weight: 700;
}

.aib-public-calendar .fc .fc-button {
	background: #f97316;
	border-color: #ea580c;
	color: #0f172a;
	border-radius: 6px;
}

.aib-public-calendar .fc .fc-button-primary:hover,
.aib-public-calendar .fc .fc-button-primary:focus {
	background: #fb923c;
	border-color: #fb923c;
	color: #0f172a;
}

.aib-public-calendar .fc .fc-daygrid-day.fc-day-today {
	background: #e0f2fe;
	box-shadow: inset 0 0 0 2px #38bdf8;
}

.aib-public-calendar .fc .fc-daygrid-day.fc-day-today.aib-day-unavailable {
	background: #ffe4e6;
	box-shadow: inset 0 0 0 2px #fca5a5;
}

.aib-public-calendar__details {
	padding: 8px;
	border: 1px solid #0f172a;
	border-radius: 6px;
	background: #f8fafc;
}

.aib-public-calendar__message {
	font-size: 14px;
	margin-bottom: 8px;
	color: #0f172a;
}

.aib-public-calendar__times-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	background: #0f172a;
	border-radius: 10px;
	padding: 10px;
}

.aib-public-calendar__times-list button {
	padding: 8px 10px;
	border-radius: 4px;
	cursor: pointer;
	font-size: 13px;
	border: 2px solid transparent;
	background: #ffffff;
	box-shadow: 0 6px 14px rgba(15, 23, 42, 0.12);
}

.aib-public-calendar__times-list button.aib-slot {
	min-width: 90px;
}

.aib-public-calendar__times-list button.aib-slot.is-available {
	border-color: #34d399;
	color: #065f46;
	background: #d7f5e3;
}

.aib-public-calendar__times-list button.aib-slot.is-unavailable {
	border-color: #fca5a5;
	color: #7a1e1c;
	background: #ffe2e0;
	cursor: not-allowed;
}
