.lh-student-calendar__views{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0 1rem}.lh-student-calendar__views a{background:#faf8f5;border:1px solid #d4ccc2;border-radius:999px;color:#222;font-size:.85rem;padding:.35rem .85rem;text-decoration:none}.lh-student-calendar__views a[aria-current=page]{background:#7a3e48;border-color:#7a3e48;color:#fff}.lh-student-calendar__regular{color:#5a534d;font-size:.9rem;margin:0 0 .75rem}.lh-student-calendar__legend{display:flex;flex-wrap:wrap;gap:.75rem 1rem;list-style:none;margin:0 0 1rem;padding:0}.lh-student-calendar__legend li{align-items:center;display:flex;font-size:.8rem;gap:.35rem}.lh-student-calendar__swatch{border-radius:3px;display:inline-block;height:.85rem;width:.85rem}.lh-student-calendar__nav{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;margin-bottom:1rem}.lh-student-calendar__grid{display:grid;gap:.6rem;grid-template-columns:repeat(7,minmax(9rem,1fr));overflow-x:auto}.lh-student-calendar__day{background:#fff;border:1px solid #e8e2da;min-height:11rem;padding:.7rem}.lh-student-calendar__day--term{background:#fff}.lh-student-calendar__day--holiday{background:#faf6ef}.lh-student-calendar__day--bank_holiday{background:#f5f0fa}.lh-student-calendar__day h5{font-size:.85rem;margin:0 0 .35rem}.lh-student-calendar__day-note{color:#7a3e48;font-size:.75rem;margin:0 0 .5rem}.lh-student-calendar__event,.lh-student-calendar__slot button{border-radius:6px;display:grid;font:inherit;font-size:.8rem;gap:.18rem;margin:.4rem 0;padding:.55rem;width:100%}.lh-student-calendar__event--scheduled,.lh-student-calendar__event--lesson{background:#f3ecee;border-left:3px solid #7a3e48}.lh-student-calendar__event--cancelled{background:#f5f5f5;border-left:3px solid #9a918a;color:#666}.lh-student-calendar__event--completed{background:#eef6ef;border-left:3px solid #4a7a52}.lh-student-calendar__slot{margin:0}.lh-student-calendar__slot button{background:#faf8f5;border:1px solid #d4ccc2;color:#222;cursor:pointer;text-align:left}.lh-student-calendar__slot button:hover,.lh-student-calendar__slot button:focus-visible{border-color:#7a3e48;outline:2px solid rgb(122 62 72 / .18)}.lh-student-calendar__slot span{color:#7a3e48;font-weight:700}.lh-student-calendar__empty{color:#9a918a;font-size:.85rem}.lh-student-calendar__month-head,.lh-student-calendar__month-grid{display:grid;gap:.35rem;grid-template-columns:repeat(7,minmax(0,1fr))}.lh-student-calendar__month-head span{font-size:.75rem;font-weight:700;text-align:center}.lh-student-calendar__month-day{background:#fff;border:1px solid #e8e2da;border-radius:6px;min-height:6.5rem;padding:.35rem}.lh-student-calendar__month-day--muted{opacity:.45}.lh-student-calendar__month-day--today{box-shadow:inset 0 0 0 2px #7a3e48}.lh-student-calendar__month-day--holiday{background:#faf6ef}.lh-student-calendar__month-day--bank_holiday{background:#f5f0fa}.lh-student-calendar__month-date{align-items:baseline;display:flex;flex-wrap:wrap;gap:.25rem .5rem;justify-content:space-between;margin-bottom:.25rem}.lh-student-calendar__month-date small{color:#7a3e48;font-size:.65rem}.lh-student-calendar__list{display:grid;gap:.65rem;list-style:none;margin:0;padding:0}.lh-student-calendar__list-item{align-items:flex-start;background:#fff;border:1px solid #e8e2da;border-radius:8px;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;padding:.85rem}.lh-student-calendar__list-item strong{display:block}.lh-student-calendar__list-item span{color:#7a3e48;display:block;font-size:.85rem}.lh-student-calendar__list-item em{color:#9a918a;display:block;font-size:.8rem;font-style:normal}.lh-student-calendar__list-item--past{opacity:.72}.lh-student-calendar__list-item--past strong{color:#6b625c}.lh-student-calendar__list-intro{color:#6b625c;font-size:.9rem;margin:0 0 1rem}.lh-student-calendar--week-grid .lh-week-calendar{margin-top:0;width:100%}.lh-week-calendar--student .lh-week-calendar__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.lh-week-calendar--student .lh-week-calendar__grid{grid-template-columns:3rem repeat(7,minmax(0,1fr));min-width:min(100%,44rem);width:100%}.lh-week-calendar--student .lh-week-calendar__event--available{background:#eef6ef;border:1px dashed #4a7a52;border-left:3px solid #4a7a52;color:#234029;z-index:2}.lh-week-calendar--student .lh-week-calendar__event--available .lh-week-calendar__event-name{color:#234029}.lh-week-calendar--student .lh-week-calendar__event--available .lh-week-calendar__event-time{color:#4a6550}.lh-week-calendar--student .lh-student-calendar__day--holiday,.lh-week-calendar--student .lh-week-calendar__day-header.lh-student-calendar__day--holiday,.lh-week-calendar--student .lh-week-calendar__day-column.lh-student-calendar__day--holiday{background:linear-gradient(180deg,#faf6ef 0%,#fff 100%)}.lh-week-calendar--student .lh-student-calendar__day--bank_holiday,.lh-week-calendar--student .lh-week-calendar__day-header.lh-student-calendar__day--bank_holiday,.lh-week-calendar--student .lh-week-calendar__day-column.lh-student-calendar__day--bank_holiday{background:linear-gradient(180deg,#f5f0fa 0%,#fff 100%)}.lh-week-calendar--student .lh-week-calendar__day-header.lh-student-calendar__day--holiday,.lh-week-calendar--student .lh-week-calendar__day-header.lh-student-calendar__day--bank_holiday{box-shadow:inset 0 -2px 0 rgb(122 62 72 / .12)}.lh-week-calendar--student .lh-week-calendar__day-note{color:#6b625c;display:block;font-size:.62rem;font-weight:600;line-height:1.2;margin-top:.15rem;text-transform:none}.lh-student-portal__slots{display:grid;gap:.65rem;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr))}.lh-student-portal__slot-card{align-items:start;background:#faf8f5;border:1px solid #e8e2da;border-radius:10px;display:grid;gap:.35rem;padding:.85rem}.lh-student-portal__slot-card strong{display:block;font-size:.92rem}.lh-student-portal__slot-card span{color:#555;display:block;font-size:.88rem}.lh-student-portal__slot-claim{margin:.15rem 0 0}.lh-student-portal__slot-claim .button,.lh-student-portal__slot-claim .button-primary{font-size:.85rem;padding:.55rem .85rem;width:100%}.lh-student-portal__lesson-note{color:#9a918a;font-size:.82rem;margin:.35rem 0 0}@media(max-width:640px){.lh-student-calendar__grid{grid-template-columns:repeat(7,minmax(8rem,1fr))}.lh-student-calendar__month-grid{font-size:.75rem}.lh-week-calendar--student.lh-week-calendar--compact .lh-week-calendar__grid{grid-template-columns:1.75rem repeat(7,minmax(0,1fr))}}

.lh-student-calendar__day--holiday-note,.lh-student-calendar__month-day--holiday-note{background:#fff}
.lh-student-calendar__day--bank_holiday,.lh-student-calendar__month-day--bank_holiday{background:#fff}
.lh-week-calendar--student .lh-student-calendar__day--holiday-note.lh-week-calendar__day-header,
.lh-week-calendar--student .lh-week-calendar__day-header.lh-student-calendar__day--holiday-note,
.lh-week-calendar--student .lh-student-calendar__day--bank_holiday.lh-week-calendar__day-header,
.lh-week-calendar--student .lh-week-calendar__day-header.lh-student-calendar__day--bank_holiday {
	background: #faf8f5;
	box-shadow: none;
}

.lh-week-calendar--student .lh-week-calendar__day-column,
.lh-week-calendar--student .lh-week-calendar__day-column.lh-student-calendar__day--holiday-note,
.lh-week-calendar--student .lh-week-calendar__day-column.lh-student-calendar__day--bank_holiday,
.lh-week-calendar--student .lh-student-calendar__day--holiday.lh-week-calendar__day-column,
.lh-week-calendar--student .lh-week-calendar__day-column.lh-student-calendar__day--holiday {
	background: #fff;
}

.lh-week-calendar--student .lh-week-calendar__day-column.is-today {
	background: #fff;
	border-color: #7a3e48;
}

.lh-week-calendar--student .lh-week-calendar__event--available{background:rgb(237 245 239 / .95);border:1px solid #4a7a52;border-left-width:3px;border-style:solid}

/* Connected segment control — distinct from portal nav pills */
.lh-student-calendar__views {
	background: #ece8e2;
	border-radius: 10px;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0;
	margin: 0.75rem 0 1rem;
	padding: 0.2rem;
}

.lh-student-calendar__views a {
	background: transparent;
	border: 0;
	border-radius: 8px;
	color: #555;
	font-size: 0.85rem;
	font-weight: 600;
	margin: 0;
	padding: 0.45rem 0.85rem;
	text-decoration: none;
}

.lh-student-calendar__views a:hover,
.lh-student-calendar__views a:focus-visible {
	background: rgb(255 255 255 / 0.55);
	color: #222;
	outline: none;
}

.lh-student-calendar__views a[aria-current="page"] {
	background: #fff;
	box-shadow: 0 1px 4px rgb(50 35 25 / 0.08);
	color: #222;
}

.lh-week-calendar--student .lh-week-calendar__day-header.is-past,
.lh-week-calendar--student .lh-week-calendar__day-column.is-past,
.lh-week-calendar--student .lh-week-calendar__day-header.is-past.lh-student-calendar__day--holiday-note,
.lh-week-calendar--student .lh-week-calendar__day-column.is-past.lh-student-calendar__day--holiday-note,
.lh-week-calendar--student .lh-week-calendar__day-header.is-past.lh-student-calendar__day--holiday,
.lh-week-calendar--student .lh-week-calendar__day-column.is-past.lh-student-calendar__day--holiday,
.lh-week-calendar--student .lh-week-calendar__day-header.is-past.lh-student-calendar__day--bank_holiday,
.lh-week-calendar--student .lh-week-calendar__day-column.is-past.lh-student-calendar__day--bank_holiday {
	background: #f3f0ec;
	border-color: #e4ddd4;
	box-shadow: none;
}

.lh-week-calendar--student .lh-week-calendar__day-header.is-past .lh-week-calendar__day-name,
.lh-week-calendar--student .lh-week-calendar__day-header.is-past .lh-week-calendar__day-date {
	color: #9a918a;
}

.lh-week-calendar--student .lh-week-calendar__day-column.is-past {
	opacity: 0.72;
}

.lh-week-calendar--student .lh-week-calendar__day-header.is-past.is-today,
.lh-week-calendar--student .lh-week-calendar__day-column.is-past.is-today {
	opacity: 1;
}

.lh-week-calendar--student .lh-week-calendar__off-hours {
	background-color: #ece8e2;
	background-image: repeating-linear-gradient(
		-45deg,
		transparent,
		transparent 11px,
		rgb(122 62 72 / 0.08) 11px,
		rgb(122 62 72 / 0.08) 12px
	);
	pointer-events: auto;
	z-index: 0;
}

.lh-week-calendar__off-hours-tip {
	background: #fff;
	border-radius: 6px;
	box-shadow: 0 6px 18px rgb(36 38 36 / 0.12);
	color: #222;
	font-size: 0.72rem;
	font-weight: 600;
	left: 0;
	padding: 0.35rem 0.55rem;
	pointer-events: none;
	position: fixed;
	top: 0;
	white-space: nowrap;
	z-index: 1000;
}

.lh-week-calendar__off-hours-tip[hidden] {
	display: none;
}

.lh-week-calendar--student .lh-week-calendar__day-header.is-no-teaching,
.lh-week-calendar--student .lh-week-calendar__day-column.is-no-teaching {
	border-color: #ddd6ce;
}

.lh-week-calendar--student .lh-week-calendar__day-header.is-no-teaching {
	background: #ece8e2;
}

.lh-week-calendar--student .lh-week-calendar__day-column.is-no-teaching {
	background: #fff;
}

.lh-week-calendar--student .lh-week-calendar__day-header.is-no-teaching .lh-week-calendar__day-name,
.lh-week-calendar--student .lh-week-calendar__day-header.is-no-teaching .lh-week-calendar__day-date,
.lh-week-calendar--student .lh-week-calendar__day-header.is-no-teaching .lh-week-calendar__day-note {
	color: #9a918a;
}

.lh-week-calendar--student .lh-week-calendar__day-column.is-no-teaching.is-today {
	border-color: #d4ccc2;
	box-shadow: none;
}

.lh-week-calendar--student .lh-week-calendar__day-column.is-today.has-past-time::before {
	background: #f3f0ec;
	content: "";
	height: var(--lh-past-height, 0);
	left: 0;
	opacity: 0.72;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 0;
}

.lh-week-calendar--student .lh-week-calendar__day-column.is-today .lh-week-calendar__hour-line,
.lh-week-calendar--student .lh-week-calendar__day-column.is-today .lh-week-calendar__half-hour-line {
	z-index: 1;
}

.lh-week-calendar--student .lh-week-calendar__scroll {
	overflow-x: auto;
	overflow-y: visible;
	padding-bottom: 1.25rem;
}

.lh-week-calendar--student .lh-week-calendar__grid,
.lh-week-calendar--student .lh-week-calendar__days {
	min-height: 0;
	overflow: visible;
	padding-bottom: 0.75rem;
}

.lh-week-calendar--student .lh-week-calendar__day-column {
	overflow: visible;
}

.lh-week-calendar--student .lh-week-calendar__event--available {
	overflow: visible;
	z-index: 2;
}

.lh-week-calendar--student .lh-week-calendar__off-hours {
	height: calc(var(--lh-block-duration-min) / 60 * var(--lh-week-hour-height));
	left: 0;
	position: absolute;
	right: 0;
	top: calc(var(--lh-block-start-min) / 60 * var(--lh-week-hour-height));
	z-index: 0;
}

.lh-week-calendar--student .lh-week-calendar__day-column.is-today .lh-week-calendar__now-marker {
	left: 0;
	right: 0;
	z-index: 20;
}

