/* schedule-mine.css */

#my-schedule-calendar-wrapper {
	border: 1px solid #dee2e6; /* bootstrap border color */
	border-radius: 0.375rem; /* bootstrap border-radius */
	overflow: hidden; /* ensures borders and shadows behave correctly */
	box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); /* subtle shadow */
	background-color: #fff; /* white background for the calendar */
	/* box-shadow from previous version removed to align with availability.css which doesn't have it on main wrapper */
}

/* --- Header Row --- */
#my-schedule-calendar-wrapper .calendar-header-row {
	display: flex; /* use flexbox to match availability.css */
	background-color: #f8f9fa; /* light grey background for headers, matches availability.css */
	border-bottom: 1px solid #dee2e6;
	/* padding: 0.5rem 0; -- REMOVED THIS LINE TO HARMONIZE HEIGHT */
}

#my-schedule-calendar-wrapper .calendar-year-cell {
	flex: 0 0 70px; /* fixed width for year cell, matches availability.css */
	padding: 0.5rem 0.25rem; /* padding applied to cell, matches availability.css */
	text-align: center;
	font-weight: bold;
	font-size: 0.9em; /* matches availability.css */
	border-right: 1px solid #dee2e6;
	display: flex;
	align-items: center;
	justify-content: center;
}

#my-schedule-calendar-wrapper .calendar-header-cell {
	flex: 1 1 0; /* flexible width for day headers, matches availability.css */
	padding: 0.5rem 0.25rem; /* padding applied to cell, matches availability.css */
	text-align: center;
	font-weight: bold;
	font-size: 0.9em; /* matches availability.css */
	min-width: 80px; /* matches availability.css */
	/* border-left from previous version removed as availability.css doesn't use it on each header cell */
	text-transform: capitalize; /* ensure day names are capitalized, retained from previous */
}

/* --- Calendar Body & Rows --- */
#my-schedule-calendar-wrapper .calendar-grid-body {
	display: flex; /* use flexbox to match availability.css */
	flex-direction: column;
}

#my-schedule-calendar-wrapper .calendar-week-row {
	display: flex; /* use flexbox to match availability.css */
	flex-grow: 1;
	border-bottom: 1px solid #dee2e6;
}
#my-schedule-calendar-wrapper .calendar-week-row:last-child {
	border-bottom: none;
}

/* --- Calendar Cells (Week Number & Day) --- */
#my-schedule-calendar-wrapper .week-number-cell {
	flex: 0 0 70px; /* fixed width for week number cell, matches availability.css */
	height: 192px; /* fixed height for week cell, matches availability.css */
	border-right: 1px solid #dee2e6;
	font-size: 0.9em; /* matches availability.css */
	font-weight: bold; /* matches availability.css */
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: default;
	background-color: #f8f9fa; /* matches availability.css */
	color: #6c757d; /* matches availability.css */
}

#my-schedule-calendar-wrapper .calendar-day-cell {
	flex: 1 1 0; /* flexible width for day cells, matches availability.css */
	height: 192px; /* fixed height for day cell, matches availability.css */
	padding: 0.25rem; /* matches availability.css */
	position: relative;
	cursor: pointer;
	border-left: 1px solid #dee2e6; /* matches availability.css */
	display: flex;
	flex-direction: column;
}
#my-schedule-calendar-wrapper .calendar-day-cell:first-child {
	border-left: none; /* matches availability.css */
}
/* removed border-top from calendar-day-cell as availability.css doesn't have it */

#my-schedule-calendar-wrapper .day-number {
	font-size: 0.8em; /* matches availability.css */
	font-weight: 500; /* matches availability.css */
	padding-right: 0.25rem; /* matches availability.css */
	text-align: right;
	color: #6c757d; /* matches availability.css */
}

/* --- Cell States (Today, Out-of-Month) --- */
#my-schedule-calendar-wrapper .calendar-day-cell.out-of-month {
	background-color: #f1f3f5; /* matches availability.css */
	background-image: repeating-linear-gradient( 45deg, transparent, transparent 7px, rgba(0, 0, 0, 0.08) 7px, rgba(0, 0, 0, 0.08) 8px ); /* matches availability.css */
	color: #adb5bd; /* matches availability.css */
}
#my-schedule-calendar-wrapper .calendar-day-cell.out-of-month .day-number {
	color: #adb5bd; /* matches availability.css */
}

#my-schedule-calendar-wrapper .calendar-day-cell.today .day-number {
	color: var(--bs-primary); /* matches availability.css */
	font-weight: bold; /* matches availability.css */
}


/* --- Assignment Block Styling (Harmonized with Availability Block) --- */
#my-schedule-calendar-wrapper .assignment-blocks-container {
	flex-grow: 1;
	position: relative; /* important for positioning blocks inside */
	overflow: hidden; /* Ensures content doesn't spill out initially */
	display: flex; /* keep flex for vertical stacking of blocks */
	flex-direction: column;
	gap: 3px; /* space between assignment blocks */
	/* align-items: stretch; retained from previous */

	/* NEW: Enable vertical scrolling if content overflows */
	overflow-y: auto;
	/* Add some padding to the right for the scrollbar, if needed, to prevent content overlap */
	padding-right: 2px;
}

#my-schedule-calendar-wrapper .assignment-block {
	border-radius: 0.25rem; /* matches availability.css */
	padding: 0.1rem 0.25rem; /* matches availability.css */
	font-size: 0.8em; /* matches availability.css */
	font-weight: 500; /* matches availability.css */
	cursor: pointer;
	overflow: hidden;
	/* color: #fff; -- Default color will be set by specific classes below */
	display: flex;
	align-items: center;
	justify-content: center; /* matches availability.css for content centering */
	/* box-shadow and transition retained from previous for a nice effect */
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
	transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
	/* default background color, removed as it will be set by specific classes */

	/* NEW: Generous minimum height for clickability */
	min-height: 28px; /* Adjust as needed, based on font-size and padding */
}

#my-schedule-calendar-wrapper .assignment-block:hover {
	transform: translateY(-2px);
	box-shadow: 0 3px 6px rgba(0, 0, 0, 0.15);
}

#my-schedule-calendar-wrapper .assignment-block small {
	font-size: 0.75em; /* smaller font for notes */
	color: rgba(255, 255, 255, 0.8); /* slightly faded notes */
}

/* icons for opening/swap */
#my-schedule-calendar-wrapper .assignment-block .bi {
	font-size: 0.9em;
	vertical-align: middle;
	margin-left: 5px;
}

/* --- Assignment Block Color Schemes --- */

/* Default / Good Assignment */
#my-schedule-calendar-wrapper .assignment-block.status-good {
	background-color: var(--bs-warning); /* Warning color for good assignments */
	color: var(--bs-dark); /* Dark text for readability on warning background */
}

/* Swap Requested Assignment */
#my-schedule-calendar-wrapper .assignment-block.status-swap {
	background-color: var(--bs-secondary); /* Secondary color for swap requested */
	color: white; /* White text for readability on secondary background */
}

/* Conflict / Violation Assignment */
#my-schedule-calendar-wrapper .assignment-block.status-conflict {
	background-color: var(--bs-dark); /* Changed from black to --bs-dark for conflict */
	color: white; /* White text for readability on dark background */
	/* Optional: Add a pattern or border to emphasize conflict */
	/* background-image: repeating-linear-gradient(45deg, rgba(255,255,255,0.1), rgba(255,255,255,0.1) 5px, transparent 5px, transparent 10px); */
	/* border: 1px solid var(--bs-danger); */
}
