/**
 * wpmyCal Calendar Week View Styles
 *
 * Styling for the week grid view showing events in a time-based grid layout
 * with columns for each day and rows for time slots.
 *
 * @package    WpmyCal
 * @subpackage Assets
 * @since      1.1.0
 */

.wpmycal-week-view {
	display: flex;
	flex-direction: column;
	height: 600px;
	--wpmycal-week-scrollbar-width: 0px;
}

.wpmycal-week-header {
	display: grid;
	/* Grid columns set dynamically via inline style by JavaScript based on weekDays setting */
	grid-template-columns: 60px repeat(7, 1fr); /* Fallback for 7 days */
	gap: 1px;
	background: var(--wpmycal-border-color);
	border-bottom: 2px solid var(--wpmycal-border-color);
	width: calc(100% - var(--wpmycal-week-scrollbar-width, 0px));
}

.wpmycal-week-header-cell {
	padding: 12px 8px;
	text-align: center;
	font-weight: 600;
	background: var(--wpmycal-hover-background);
}

.wpmycal-week-header-cell[data-date] {
	cursor: pointer;
}

.wpmycal-week-header-day {
	font-size: 14px;
	color: var(--wpmycal-text-color);
}

.wpmycal-week-header-date {
	font-size: 20px;
	margin-top: 4px;
}

.wpmycal-week-header-cell.is-today .wpmycal-week-header-date {
	background: var(--wpmycal-primary-color);
	color: #ffffff;
	border-radius: 50%;
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.wpmycal-week-body {
	display: grid;
	/* Grid columns set dynamically via inline style by JavaScript based on weekDays setting */
	grid-template-columns: 60px repeat(7, 1fr); /* Fallback for 7 days */
	gap: 1px;
	background: var(--wpmycal-border-color);
	flex: 1;
	overflow-y: auto;
}

.wpmycal-week-time-column {
	background: var(--wpmycal-background);
	width: 60px;
	min-width: 60px;
	max-width: 60px;
	flex-shrink: 0;
}

.wpmycal-week-time-slot {
	height: 60px;
	padding: 4px 8px;
	border-bottom: 1px solid var(--wpmycal-border-color);
	font-size: 12px;
	color: #666666;
	text-align: right;
	background: var(--wpmycal-background);
}

.wpmycal-week-day-column {
	position: relative;
	background: var(--wpmycal-background);
	cursor: pointer;
}

.wpmycal-week-day-column.is-today {
	background: var(--wpmycal-today-background);
}

.wpmycal-week-day-column.is-weekend {
	background: var(--wpmycal-weekend-background);
}

.wpmycal-week-time-grid {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}

.wpmycal-week-grid-line {
	height: 60px;
	border-bottom: 1px solid var(--wpmycal-border-color);
}

.wpmycal-week-event {
	position: absolute;
	left: 4px;
	width: calc(100% - 8px);
	box-sizing: border-box;
	padding: 4px 8px;
	border-radius: 4px;
	font-size: 12px;
	overflow: hidden;
	cursor: pointer;
	background-color: var(--wpmycal-background);
	border-left: 3px solid var(--wpmycal-border-color);
	color: var(--wpmycal-text-color);
	z-index: 1; /* allow hovered events to temporarily rise above neighbors */
}

.wpmycal-week-event:hover {
	z-index: 999 !important; /* override inline z-index from overlap layout */
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

@media (max-width: 768px) {
	.wpmycal-week-header {
		grid-template-columns: 50px repeat(3, 1fr);
	}

	.wpmycal-week-body {
		grid-template-columns: 50px repeat(3, 1fr);
	}
}
