.lh-tutor-agenda{background:#fff;border:1px solid #e8e2da;border-radius:14px;margin:0 0 1.5rem;padding:clamp(1rem,3vw,1.5rem)}.lh-tutor-agenda h2{margin:.2rem 0}.lh-tutor-agenda__status{color:#6b625c;font-size:.9rem}.lh-tutor-agenda__list{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}.lh-tutor-agenda__lesson{background:#faf8f5;border-left:4px solid #d4ccc2;display:grid;gap:.2rem;padding:.8rem}.lh-tutor-agenda__lesson--current{background:#f3ecee;border-left-color:#7a3e48}.lh-tutor-agenda__lesson--ready{border-left-color:#9b7a35}.lh-tutor-agenda__lesson--completed{opacity:.7}.lh-tutor-agenda__state{color:#6b625c;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.lh-week-calendar{margin:1.5rem 0 0}.lh-week-calendar__header{margin-bottom:1rem}.lh-week-calendar__header h2{margin:.25rem 0 .35rem}.lh-week-calendar__range{color:#6b625c;font-size:.92rem;font-weight:600;margin:0 0 .45rem}.lh-week-calendar__intro{color:#6b625c;font-size:.92rem;line-height:1.5;margin:0 0 .85rem;max-width:42rem}.lh-week-calendar__nav{display:flex;flex-wrap:wrap;gap:.65rem;margin:0}.lh-week-calendar__nav a{background:#fff;border:1px solid #d4ccc2;border-radius:8px;color:#7a3e48;font-size:.88rem;font-weight:600;padding:.45rem .75rem;text-decoration:none}.lh-week-calendar__nav a:hover,.lh-week-calendar__nav a:focus-visible{background:#f3ecee;border-color:#7a3e48}.lh-week-calendar__scroll{-webkit-overflow-scrolling:touch;overflow-x:auto;overflow-y:hidden}.lh-week-calendar__grid{display:grid;grid-template-columns:3.25rem repeat(7,minmax(6.5rem,1fr));grid-template-rows:auto 1fr;min-width:44rem}.lh-week-calendar__corner{grid-column:1;grid-row:1}.lh-week-calendar__day-headers{display:grid;gap:.35rem;grid-column:2 / -1;grid-row:1;grid-template-columns:repeat(7,minmax(6.5rem,1fr))}.lh-week-calendar__day-header{background:#faf8f5;border:1px solid #e8e2da;border-radius:8px;padding:.45rem .35rem;text-align:center}.lh-week-calendar__day-header.is-today{background:#f3ecee;border-color:#7a3e48}.lh-week-calendar__day-name{color:#6b625c;display:block;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.lh-week-calendar__day-date{display:block;font-size:1rem;font-weight:700;line-height:1.1}.lh-week-calendar__hours{grid-column:1;grid-row:2;position:relative}.lh-week-calendar__hour-label{color:#6b625c;font-size:.72rem;font-weight:600;height:auto;line-height:1;padding-right:.35rem;padding-top:2px;position:absolute;right:0;text-align:right;top:calc(var(--lh-hour-index) * var(--lh-week-hour-height))}.lh-week-calendar__days{display:grid;gap:.35rem;grid-column:2 / -1;grid-row:2;grid-template-columns:repeat(7,minmax(6.5rem,1fr))}.lh-week-calendar__day-column{background:#fff;border:1px solid #e8e2da;border-radius:8px;overflow:hidden;position:relative}.lh-week-calendar__day-column.is-today{background:#fffcfa;border-color:#e6c9ce}.lh-week-calendar__hour-line{border-top:1px solid #e0d9d0;height:0;left:0;pointer-events:none;position:absolute;right:0;top:calc(var(--lh-hour-index) * var(--lh-week-hour-height))}.lh-week-calendar__hour-line--end{border-top-color:#e0d9d0}.lh-week-calendar__half-hour-line{border-top:1px dashed #ebe4dc;height:0;left:0;opacity:.9;pointer-events:none;position:absolute;right:0;top:calc((var(--lh-hour-index) + .5) * var(--lh-week-hour-height))}.lh-week-calendar__off-hours{height:calc(var(--lh-block-duration-min) / 60 * var(--lh-week-hour-height));left:0;pointer-events:auto;position:absolute;right:0;top:calc(var(--lh-block-start-min) / 60 * var(--lh-week-hour-height));z-index:0}.lh-week-calendar__now-marker{background:#c45c00;height:2px;left:0;pointer-events:none;position:absolute;right:0;z-index:12}.lh-week-calendar__now-marker::before{background:#c45c00;border-radius:50%;box-shadow:0 0 0 2px #fff;content:"";height:.55rem;left:-2px;position:absolute;top:-.25rem;width:.55rem;z-index:10}.lh-week-calendar__event{background:#7a3e48;border:0;border-radius:4px;box-shadow:0 0 0 1px #fff;color:#fff;cursor:pointer;display:grid;font-size:.72rem;gap:.08rem;height:calc(max(18px,var(--lh-event-duration-min) / 60 * var(--lh-week-hour-height) - 2px));left:.35rem;line-height:1.2;margin:0;min-width:0;overflow:hidden;padding:.28rem .38rem;position:absolute;right:.35rem;text-align:left;top:calc(var(--lh-event-start-min) / 60 * var(--lh-week-hour-height) + 1px);z-index:1}.lh-week-calendar__event:focus-visible{outline:2px solid #fff;outline-offset:1px}.lh-week-calendar__event--short{align-content:center;padding-block:.18rem}.lh-week-calendar__event--short .lh-week-calendar__event-name{font-size:.74rem;line-height:1.1;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.lh-week-calendar__event-name{display:block;font-size:.78rem;font-weight:700;line-height:1.15;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lh-week-calendar__event-time{display:block;font-size:.68rem;line-height:1.15;min-width:0;opacity:.95;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lh-week-calendar__event-badge{font-size:.65rem;font-style:normal;font-weight:700;letter-spacing:.03em;line-height:1.1;text-transform:uppercase}.lh-week-calendar__event--past{background:#c8c0b8;box-shadow:0 0 0 1px #fff;color:#4a4440;z-index:0}.lh-week-calendar__event--upcoming{background:#7a3e48;box-shadow:0 0 0 1px #fff;color:#fff;z-index:2}.lh-week-calendar__event--past .lh-week-calendar__event-time{opacity:.9}.lh-week-calendar__event--current{background:#5c2f38;box-shadow:0 0 0 1px #fff,0 0 0 3px #e6c9ce;z-index:3;animation:lh-week-pulse 2.4s ease-in-out infinite}.lh-week-calendar__dialog{background:transparent;border:0;margin:auto;max-width:calc(100vw - 2rem);padding:0;width:20rem}.lh-week-calendar__dialog::backdrop{background:rgb(36 38 36 / .45)}.lh-week-calendar__dialog-panel{background:#fff;border:1px solid #e8e2da;border-radius:12px;box-shadow:0 12px 40px rgb(36 38 36 / .18);padding:1rem 1.1rem 1.15rem;position:relative}.lh-week-calendar__dialog-close{background:transparent;border:0;color:#6b625c;cursor:pointer;font-size:1.35rem;line-height:1;padding:.15rem .35rem;position:absolute;right:.45rem;top:.35rem}.lh-week-calendar__dialog-close:hover,.lh-week-calendar__dialog-close:focus-visible{color:#7a3e48}.lh-week-calendar__dialog-title{font-size:1.05rem;line-height:1.3;margin:0 2rem .45rem 0}.lh-week-calendar__dialog-time{color:#6b625c;font-size:.92rem;line-height:1.45;margin:0}@keyframes lh-week-pulse{0%,100%{box-shadow:0 0 0 1px #fff,0 0 0 3px #e6c9ce}50%{box-shadow:0 0 0 1px #fff,0 0 0 4px rgb(122 62 72 / .45)}}@media(max-width:720px){.lh-week-calendar__grid{min-width:38rem}}.lh-week-calendar__dialog-actions{border-top:1px solid #e8e2da;margin-top:.85rem;padding-top:.75rem}.lh-week-calendar__dialog-actions .lh-student-portal__cancel{margin-top:0}.lh-week-calendar__dialog-actions .lh-student-portal__lesson-note{margin-top:.35rem}

.lh-week-calendar--tutor .lh-week-calendar__dialog{width:19rem}.lh-week-calendar--tutor .lh-week-calendar__dialog-panel{padding:.85rem .95rem 1rem}.lh-week-calendar--tutor .lh-week-calendar__dialog-title{font-size:.98rem;margin-bottom:.35rem}.lh-week-calendar--tutor .lh-week-calendar__dialog-time{font-size:.86rem;margin-bottom:0}.lh-week-calendar--tutor .lh-week-calendar__dialog-actions{border-top:0;margin-top:.65rem;padding-top:0}.lh-week-calendar__edit-form,.lh-week-calendar__cancel-form,.lh-week-calendar__length-form,.lh-week-calendar__frequency-form,.lh-week-calendar__sheet{display:grid;gap:.75rem;margin-top:.15rem}.lh-week-calendar__sheet--compact{gap:.55rem}.lh-week-calendar__sheet--compact .lh-week-calendar__sheet-btn{font-size:.88rem;padding:.62rem .75rem}.lh-week-calendar__edit-note{color:#6b625c;font-size:.86rem;font-weight:400;line-height:1.45;margin:0}.lh-week-calendar__edit-form .lh-week-calendar__booking-field{color:#444;display:grid;font-size:.88rem;font-weight:600;gap:.35rem}.lh-week-calendar__edit-form .lh-week-calendar__booking-select{background:#faf8f5;border:1px solid #d4ccc2;border-radius:8px;font:inherit;font-weight:400;padding:.55rem .7rem;width:100%}.lh-week-calendar__edit-form .lh-week-calendar__booking-submit,.lh-week-calendar__cancel-form .lh-week-calendar__booking-submit,.lh-week-calendar__sheet-btn{margin:0;width:100%}.lh-week-calendar__sheet-btn{background:#faf8f5;border:1px solid #d4ccc2;border-radius:8px;color:#222;cursor:pointer;font:inherit;font-size:.92rem;font-weight:600;padding:.7rem .85rem;text-align:left}.lh-week-calendar__sheet-btn:hover,.lh-week-calendar__sheet-btn:focus-visible{background:#f3ecee;border-color:#7a3e48;color:#7a3e48;outline:none}.lh-week-calendar__sheet-btn--danger{background:#7a3e48;border-color:#7a3e48;color:#fff}.lh-week-calendar__sheet-btn--danger:hover,.lh-week-calendar__sheet-btn--danger:focus-visible{background:#62323a;border-color:#62323a;color:#fff}.lh-week-calendar__cancel-submit{background:#7a3e48;border:0;color:#fff}

.lh-week-calendar__grid {
	overflow: visible;
	row-gap: 5px;
}

.lh-week-calendar {
	position: relative;
}

.lh-week-calendar__scroll {
	padding-bottom: 0.85rem;
}

.lh-week-calendar__hours {
	overflow: visible;
}

.lh-week-calendar__hour-label:last-child {
	z-index: 1;
}

.lh-week-calendar__nav--arrows {
	align-items: center;
	display: grid;
	gap: 0;
	grid-template-columns: 1fr auto 1fr;
	width: 100%;
}

.lh-week-calendar__nav-pager {
	align-items: center;
	display: inline-flex;
	gap: 0.35rem;
	grid-column: 2;
	justify-self: center;
}

.lh-week-calendar__nav--arrows .lh-week-calendar__nav-today {
	align-items: center;
	background: #fff;
	border: 1px solid #d4ccc2;
	border-radius: 999px;
	box-sizing: border-box;
	color: #444;
	cursor: pointer;
	display: inline-flex;
	font-size: 0.75rem;
	font-weight: 600;
	grid-column: 1;
	height: 2rem;
	justify-content: center;
	justify-self: start;
	line-height: 1;
	padding: 0 0.85rem;
	text-decoration: none;
	white-space: nowrap;
}

.lh-week-calendar__nav--arrows .lh-week-calendar__nav-today:hover,
.lh-week-calendar__nav--arrows .lh-week-calendar__nav-today:focus-visible {
	background: #fff;
	border-color: #7a3e48;
	color: #7a3e48;
	outline: none;
}

.lh-week-calendar__nav--arrows .lh-week-calendar__nav-today.is-current,
.lh-week-calendar__nav .lh-week-calendar__nav-today.is-current {
	color: #9a918a;
	cursor: default;
	opacity: 0.7;
	pointer-events: none;
}

.lh-week-calendar__nav:not(.lh-week-calendar__nav--arrows) .lh-week-calendar__nav-today.is-current {
	background: #faf8f5;
	border: 1px solid #d4ccc2;
	border-radius: 8px;
	font-size: 0.88rem;
	font-weight: 600;
	padding: 0.45rem 0.75rem;
}

.lh-week-calendar.is-week-loading {
	pointer-events: none;
}

.lh-week-calendar.is-week-loading::after {
	animation: lh-week-spin 0.75s linear infinite;
	border: 2px solid #7a3e48;
	border-radius: 50%;
	border-top-color: transparent;
	content: "";
	height: 1.15rem;
	left: 50%;
	margin: -0.575rem 0 0 -0.575rem;
	position: absolute;
	top: 50%;
	width: 1.15rem;
	z-index: 8;
}

.lh-week-calendar.is-week-loading .lh-week-calendar__scroll {
	opacity: 0.45;
}

.lh-week-calendar__event--available.lh-week-calendar__event--detail {
	align-content: start;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}

.lh-week-calendar__event--available.lh-week-calendar__event--detail .lh-week-calendar__event-time {
	margin-top: auto;
}

@keyframes lh-week-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.lh-week-calendar.is-week-loading::after {
		animation: none;
		border-top-color: #7a3e48;
		opacity: 0.75;
	}
}

.lh-week-calendar--tutor .lh-week-calendar__event[data-editable="1"] {
	cursor: grab;
	touch-action: none;
}

.lh-week-calendar--tutor .lh-week-calendar__event[data-editable="1"].is-pointer-down,
.lh-week-calendar--tutor .lh-week-calendar__event[data-editable="1"].is-dragging,
html.lh-week-calendar-grabbing .lh-week-calendar--tutor .lh-week-calendar__event[data-editable="1"] {
	cursor: grabbing;
}

.lh-week-calendar--tutor .lh-week-calendar__event[data-editable="1"].is-dragging {
	box-shadow: 0 8px 18px rgb(36 38 36 / .22);
	opacity: 0.95;
	z-index: 6;
}

html.lh-week-calendar-grabbing,
html.lh-week-calendar-grabbing .lh-week-calendar.is-slot-dragging .lh-week-calendar__scroll {
	cursor: grabbing;
}

.lh-week-calendar__event--placeholder {
	opacity: 0.35;
	pointer-events: none;
	z-index: 0;
}

.lh-week-calendar__day-column.is-drop-target {
	background: #f8f1f2;
	border-color: #e6c9ce;
}

.lh-week-calendar.is-slot-dragging {
	user-select: none;
}

.lh-week-calendar.is-slot-dragging .lh-week-calendar__scroll {
	cursor: grabbing;
}

.lh-week-calendar__nav--tutor {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	justify-content: space-between;
	width: 100%;
}

.lh-week-calendar__nav--tutor .lh-week-calendar__nav-controls {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
}

.lh-week-calendar__nav--tutor .lh-week-calendar__nav-month {
	color: #222;
	font-size: 0.92rem;
	font-weight: 600;
	margin-left: auto;
	text-align: right;
	text-transform: uppercase;
	white-space: nowrap;
}

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

.lh-week-calendar--tutor .lh-week-calendar__dialog {
	width: 20.5rem;
}

.lh-week-calendar--tutor .lh-week-calendar__day-column {
	cursor: pointer;
}

.lh-week-calendar__create-form {
	display: grid;
	gap: 0.75rem;
	margin-top: 0.15rem;
}

.lh-week-calendar__create-form .lh-week-calendar__booking-field {
	color: #444;
	display: grid;
	font-size: 0.88rem;
	font-weight: 600;
	gap: 0.35rem;
}

.lh-week-calendar__create-form .lh-week-calendar__booking-select {
	background: #faf8f5;
	border: 1px solid #d4ccc2;
	border-radius: 8px;
	font: inherit;
	font-weight: 400;
	padding: 0.55rem 0.7rem;
	width: 100%;
}

.lh-week-calendar__create-form .lh-week-calendar__booking-submit {
	margin: 0;
	width: 100%;
}

.lh-week-calendar__dialog-panel {
	overflow: visible;
}

.lh-week-calendar__learner-picker {
	position: relative;
}

.lh-week-calendar__learner-select {
	border: 0 !important;
	clip: rect(0, 0, 0, 0);
	height: 1px !important;
	margin: -1px !important;
	overflow: hidden !important;
	padding: 0 !important;
	position: absolute;
	width: 1px !important;
}

.lh-week-calendar__learner-list {
	background: #fff;
	border: 1px solid #d4ccc2;
	border-radius: 10px;
	box-shadow: 0 10px 28px rgb(36 38 36 / .14);
	left: 0;
	list-style: none;
	margin: 0.25rem 0 0;
	max-height: 12.5rem;
	overflow-y: auto;
	padding: 0.35rem;
	position: absolute;
	right: 0;
	top: 100%;
	z-index: 30;
}

.lh-week-calendar__learner-option {
	border-radius: 8px;
	color: #242624;
	cursor: pointer;
	font-size: 0.88rem;
	font-weight: 400;
	line-height: 1.35;
	padding: 0.55rem 0.65rem;
}

.lh-week-calendar__learner-option:hover,
.lh-week-calendar__learner-option.is-active {
	background: #f3ecee;
	color: #7a3e48;
}

.lh-week-calendar__learner-empty {
	color: #6b625c;
	font-size: 0.86rem;
	font-weight: 400;
	padding: 0.55rem 0.65rem;
}

.lh-week-calendar__push-form {
	display: grid;
	gap: 0.75rem;
	margin-top: 0.15rem;
}
