/* Artvoic Calendar — self-contained for Elementor Canvas */
.artvoic-calendar-wrap,
.av-cal-modal-overlay {
	--av-cal-bg: #050508;
	--av-cal-surface: #0a0a0c;
	--av-cal-surface-2: #12121a;
	--av-cal-border: rgba(0, 255, 209, 0.22);
	--av-cal-text: #ffffff;
	--av-cal-muted: rgba(255, 255, 255, 0.62);
	--av-cal-accent: #00ffd1;
	--av-cal-accent-purple: #6c63ff;
	--av-cal-hover: rgba(0, 255, 209, 0.1);
	--av-cal-today: rgba(0, 255, 209, 0.14);
	--av-cal-radius: 12px;
	--av-cal-hour-h: 112px;
	--av-cal-time-col-w: 92px;
}

.artvoic-calendar-wrap:has(.av-cal-timegrid-wrap--week),
.artvoic-calendar-wrap:has(.av-cal-timegrid-wrap--day) {
	overflow-x: hidden;
	overflow-y: visible;
	padding-left: 4px;
	padding-right: 4px;
}

.artvoic-calendar-wrap {
	position: relative;
	isolation: isolate;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;
	color: #ffffff !important;
	max-width: 100%;
	margin: 0 auto;
	padding: 24px 16px 48px;
	box-sizing: border-box;
	min-height: 100vh;
	overflow: hidden;
	background:
		radial-gradient(ellipse 80% 60% at 15% 10%, rgba(0, 255, 209, 0.12) 0%, transparent 55%),
		radial-gradient(ellipse 70% 55% at 85% 90%, rgba(108, 99, 255, 0.14) 0%, transparent 52%),
		linear-gradient(180deg, #07070c 0%, #050508 45%, #060610 100%);
}

.artvoic-calendar-wrap::before,
.artvoic-calendar-wrap::after {
	content: "";
	position: absolute;
	inset: -35%;
	pointer-events: none;
	z-index: 0;
}

.artvoic-calendar-wrap::before {
	background:
		radial-gradient(ellipse 48% 42% at 22% 28%, rgba(0, 255, 209, 0.2) 0%, transparent 58%),
		radial-gradient(ellipse 44% 38% at 78% 72%, rgba(108, 99, 255, 0.22) 0%, transparent 55%);
	animation: av-cal-wrap-breathe 11s ease-in-out infinite alternate;
}

.artvoic-calendar-wrap::after {
	inset: 0;
	background: linear-gradient(160deg, rgba(255, 255, 255, 0.03) 0%, transparent 40%, rgba(0, 255, 209, 0.04) 100%);
}

.artvoic-calendar-wrap > * {
	position: relative;
	z-index: 1;
}

@keyframes av-cal-wrap-breathe {
	0% {
		transform: scale(1) translate(0, 0);
		opacity: 0.72;
	}
	100% {
		transform: scale(1.12) translate(2%, -1.5%);
		opacity: 1;
	}
}

.artvoic-calendar-wrap--canvas {
	width: 100%;
	max-width: none;
	margin: 0;
}

.elementor-widget-shortcode .elementor-widget-container,
.elementor-widget-html .elementor-widget-container {
	background: transparent !important;
}

.elementor-widget-shortcode:has(.artvoic-calendar-wrap),
.elementor-widget-html:has(.artvoic-calendar-wrap) {
	width: 100% !important;
	max-width: none !important;
}

.artvoic-calendar-wrap *,
.artvoic-calendar-wrap *::before,
.artvoic-calendar-wrap *::after {
	box-sizing: border-box;
}

/* Elementor Canvas: сброс наследуемых белых стилей */
.artvoic-calendar-wrap :where(
	button, input, textarea, select, a, h1, h2, h3, p, span, label, div
) {
	font-family: inherit;
}

.artvoic-calendar-wrap :where(
	input, textarea, select
) {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff;
}

.artvoic-calendar-wrap :where(
	button
) {
	font-family: inherit;
}

body.artvoic-calendar-page #wpadminbar {
	display: none !important;
}

body.av-cal-modal-open {
	overflow: hidden;
}

.av-cal-notice {
	position: fixed;
	top: 24px;
	left: 50%;
	z-index: 100001;
	max-width: min(420px, calc(100vw - 32px));
	padding: 14px 20px;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
	color: #ffffff;
	background: #12121a;
	border: 1px solid rgba(0, 255, 209, 0.35);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
	opacity: 0;
	transform: translate(-50%, -12px);
	transition: opacity 0.3s ease, transform 0.3s ease;
	pointer-events: none;
}

.av-cal-notice.is-visible {
	opacity: 1;
	transform: translate(-50%, 0);
}

.av-cal-notice--success {
	border-color: rgba(0, 255, 209, 0.55);
	box-shadow: 0 12px 40px rgba(0, 255, 209, 0.12);
}

.av-cal-notice--error {
	border-color: rgba(255, 90, 90, 0.55);
	box-shadow: 0 12px 40px rgba(255, 90, 90, 0.12);
}

body.artvoic-calendar-page,
body.artvoic-calendar-page.elementor-template-canvas {
	background: #050508 !important;
	color: #ffffff !important;
}

html.artvoic-calendar-page {
	margin-top: 0 !important;
}

/* Header */
.av-cal-page-header {
	text-align: center;
	padding: 12px 16px 24px;
	margin-bottom: 8px;
}

.av-cal-page-header__logo {
	display: block;
	margin: 0 auto 16px;
	max-height: 64px;
	max-width: min(320px, 92vw);
	width: auto;
	height: auto;
}

.av-cal-page-header__title {
	margin: 0;
	font-size: clamp(1.5rem, 4vw, 2rem);
	font-weight: 600;
	line-height: 1.25;
	color: #ffffff !important;
	white-space: nowrap;
}

.av-cal-page-header__title-accent {
	display: inline;
	margin-left: 0.32em;
	color: #00ffd1 !important;
}

/* App shell — breathing gradient */
.artvoic-calendar-app {
	position: relative;
	overflow: hidden;
	background: rgba(8, 8, 14, 0.88) !important;
	border: 1px solid var(--av-cal-border);
	border-radius: var(--av-cal-radius);
	padding: 16px;
	box-shadow:
		0 8px 40px rgba(0, 0, 0, 0.55),
		0 0 0 1px rgba(0, 255, 209, 0.08) inset;
	color: #ffffff !important;
}

.artvoic-calendar-app:has(.av-cal-timegrid-wrap--week),
.artvoic-calendar-app:has(.av-cal-timegrid-wrap--day) {
	overflow: visible;
	padding: 8px 2px;
}

.artvoic-calendar-app::before {
	content: "";
	position: absolute;
	inset: -50%;
	background:
		radial-gradient(ellipse 55% 45% at 18% 22%, rgba(0, 255, 209, 0.16) 0%, transparent 58%),
		radial-gradient(ellipse 50% 42% at 82% 78%, rgba(108, 99, 255, 0.18) 0%, transparent 55%),
		radial-gradient(ellipse 65% 55% at 50% 100%, rgba(0, 255, 209, 0.08) 0%, transparent 60%);
	animation: av-cal-breathe 9s ease-in-out infinite alternate;
	pointer-events: none;
	z-index: 0;
}

.artvoic-calendar-app::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(165deg, rgba(255, 255, 255, 0.04) 0%, transparent 42%, rgba(0, 255, 209, 0.03) 100%);
	pointer-events: none;
	z-index: 0;
}

.artvoic-calendar-app > * {
	position: relative;
	z-index: 1;
}

@keyframes av-cal-breathe {
	0% {
		transform: scale(1) translate(0, 0);
		opacity: 0.8;
	}
	100% {
		transform: scale(1.1) translate(1.5%, -1.5%);
		opacity: 1;
	}
}

.av-cal-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-bottom: 16px;
}

.av-cal-tabs {
	display: flex;
	gap: 4px;
	flex: 1 1 100%;
}

@media (min-width: 640px) {
	.av-cal-tabs {
		flex: 0 1 auto;
		margin-right: auto;
	}
}

.artvoic-calendar-wrap .av-cal-tab {
	padding: 8px 16px;
	border: 1px solid transparent !important;
	background: transparent !important;
	border-radius: 20px;
	cursor: pointer;
	font-size: 14px;
	color: var(--av-cal-muted) !important;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.artvoic-calendar-wrap .av-cal-tab:hover {
	background: var(--av-cal-hover) !important;
	color: #ffffff !important;
}

.artvoic-calendar-wrap .av-cal-tab.is-active {
	background: #00ffd1 !important;
	color: #050505 !important;
	font-weight: 600;
	border-color: #00ffd1 !important;
}

.av-cal-nav {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}

.artvoic-calendar-wrap .av-cal-nav-btn {
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid rgba(0, 255, 209, 0.35) !important;
	background: linear-gradient(145deg, rgba(0, 255, 209, 0.22) 0%, rgba(108, 99, 255, 0.18) 100%) !important;
	color: #000000 !important;
	border-radius: 50%;
	cursor: pointer;
	font-size: 0;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow:
		0 2px 10px rgba(0, 0, 0, 0.35),
		0 0 0 1px rgba(255, 255, 255, 0.06) inset;
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease, filter 0.15s ease;
}

.av-cal-nav-btn__icon {
	display: block;
	font-size: 22px;
	font-weight: 700;
	line-height: 1;
	color: #000000 !important;
	transform: translateY(-1px);
}

.artvoic-calendar-wrap .av-cal-nav-btn:hover {
	background: linear-gradient(145deg, #00ffd1 0%, #7ee8ff 100%) !important;
	border-color: #00ffd1 !important;
	transform: scale(1.06);
	box-shadow:
		0 4px 18px rgba(0, 255, 209, 0.35),
		0 0 0 1px rgba(255, 255, 255, 0.12) inset;
}

.artvoic-calendar-wrap .av-cal-nav-btn:active {
	transform: scale(0.98);
}

.av-cal-title {
	font-size: 16px;
	font-weight: 500;
	min-width: 140px;
	text-align: center;
	color: #ffffff !important;
}

.av-cal-title__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	line-height: 1.2;
}

.av-cal-title__month {
	font-size: 14px;
	font-weight: 700;
	color: #00ffd1 !important;
	white-space: nowrap;
}

.av-cal-title__range {
	font-size: 16px;
	font-weight: 600;
	color: #ffffff !important;
	white-space: nowrap;
}

.av-cal-title__year {
	font-size: 12px;
	font-weight: 500;
	color: var(--av-cal-muted) !important;
}

.artvoic-calendar-wrap .av-cal-btn--today.is-active {
	background: #00ffd1 !important;
	color: #000000 !important;
	border-color: #00ffd1 !important;
	font-weight: 700;
	box-shadow: 0 0 14px rgba(0, 255, 209, 0.35);
}

.av-cal-view-switch {
	display: flex;
	border: 1px solid var(--av-cal-border);
	border-radius: var(--av-cal-radius);
	overflow: hidden;
	background: #0a0a0c;
}

.artvoic-calendar-wrap .av-cal-view-btn {
	padding: 8px 12px;
	border: none !important;
	background: transparent !important;
	cursor: pointer;
	font-size: 13px;
	font-weight: 600;
	color: var(--av-cal-muted) !important;
	border-right: 1px solid var(--av-cal-border) !important;
}

.artvoic-calendar-wrap .av-cal-view-btn:last-child {
	border-right: none !important;
}

.artvoic-calendar-wrap .av-cal-view-btn.is-active {
	background: #00ffd1 !important;
	color: #000000 !important;
	font-weight: 700;
}

.av-cal-view-row {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
	gap: 8px;
}

.av-cal-reminder-actions {
	display: flex;
	align-items: stretch;
	flex: 0 0 auto;
	flex-wrap: wrap;
	gap: 8px;
}

.av-cal-reminder-btn {
	flex: 0 0 auto;
	padding: 8px 14px;
	border: 1px solid rgba(0, 255, 209, 0.45) !important;
	border-radius: var(--av-cal-radius);
	background: rgba(0, 255, 209, 0.08) !important;
	color: #00ffd1 !important;
	cursor: pointer;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.25;
	white-space: nowrap;
	transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.av-cal-reminder-btn:hover:not(:disabled):not(.is-disabled) {
	background: #00ffd1 !important;
	color: #050505 !important;
	border-color: #00ffd1 !important;
	box-shadow: 0 0 20px rgba(0, 255, 209, 0.42);
	transform: translateY(-1px);
}

.av-cal-reminder-btn.is-disabled,
.av-cal-reminder-btn:disabled {
	opacity: 0.42;
	cursor: not-allowed;
	border-color: rgba(255, 255, 255, 0.14) !important;
	background: rgba(255, 255, 255, 0.04) !important;
	color: rgba(255, 255, 255, 0.45) !important;
	box-shadow: none;
	transform: none;
}

.av-cal-reminder-btn.is-disabled:hover,
.av-cal-reminder-btn:disabled:hover {
	background: rgba(255, 255, 255, 0.04) !important;
	color: rgba(255, 255, 255, 0.45) !important;
	box-shadow: none;
	transform: none;
}

.av-cal-telegram-bot-btn {
	flex: 0 0 auto;
	padding: 8px 14px;
	border: 1px solid rgba(94, 231, 255, 0.55) !important;
	border-radius: var(--av-cal-radius);
	background: rgba(42, 171, 238, 0.14) !important;
	color: #5ee7ff !important;
	cursor: pointer;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.25;
	white-space: nowrap;
	transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease, color 0.2s ease;
}

.av-cal-telegram-bot-btn:hover:not(:disabled):not(.is-disabled) {
	background: #2aabee !important;
	color: #ffffff !important;
	border-color: #2aabee !important;
	box-shadow: 0 0 20px rgba(42, 171, 238, 0.42);
	transform: translateY(-1px);
}

.av-cal-telegram-bot-btn.is-disabled,
.av-cal-telegram-bot-btn:disabled {
	opacity: 0.42;
	cursor: not-allowed;
	border-color: rgba(255, 255, 255, 0.14) !important;
	background: rgba(255, 255, 255, 0.04) !important;
	color: rgba(255, 255, 255, 0.45) !important;
	box-shadow: none;
	transform: none;
}

.av-cal-telegram-bot-btn.is-disabled:hover,
.av-cal-telegram-bot-btn:disabled:hover {
	background: rgba(255, 255, 255, 0.04) !important;
	color: rgba(255, 255, 255, 0.45) !important;
	border-color: rgba(255, 255, 255, 0.14) !important;
	box-shadow: none;
	transform: none;
}

.av-cal-cabinet-btn {
	flex: 0 0 auto;
	padding: 8px 14px;
	border: 1px solid rgba(255, 196, 77, 0.55) !important;
	border-radius: var(--av-cal-radius);
	background: rgba(255, 196, 77, 0.1) !important;
	color: #ffc44d !important;
	cursor: pointer;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.25;
	white-space: nowrap;
	transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease, color 0.2s ease;
}

.av-cal-cabinet-btn:hover {
	background: #ffc44d !important;
	color: #050505 !important;
	border-color: #ffc44d !important;
	box-shadow: 0 0 20px rgba(255, 196, 77, 0.35);
	transform: translateY(-1px);
}

.av-cal-cabinet-btn.is-disabled {
	opacity: 0.42;
	cursor: pointer;
	border-color: rgba(255, 255, 255, 0.14) !important;
	background: rgba(255, 255, 255, 0.04) !important;
	color: rgba(255, 255, 255, 0.45) !important;
	box-shadow: none;
	transform: none;
}

.av-cal-cabinet-btn.is-disabled:hover {
	background: rgba(255, 255, 255, 0.08) !important;
	color: rgba(255, 255, 255, 0.65) !important;
	border-color: rgba(255, 196, 77, 0.25) !important;
}

.av-cal-modal--cabinet-auth .av-cal-cabinet-auth-title {
	margin: 0 0 16px;
	font-size: clamp(1rem, 3.2vw, 1.15rem);
	line-height: 1.45;
	text-align: center;
	color: #ffffff !important;
}

.av-cal-cabinet-auth-error {
	margin: 0;
	font-size: 13px;
	line-height: 1.45;
	color: #ff6b6b !important;
	text-align: center;
}

.av-cal-badge--cabinet {
	border-color: rgba(255, 196, 77, 0.45);
	color: #ffc44d !important;
}

.av-cal-btn--cabinet-back {
	margin-left: 0;
}

.av-cal-cabinet-toolbar-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-left: auto;
}

.av-cal-cabinet-logout-btn {
	flex: 0 0 auto;
	padding: 8px 16px;
	border: 1px solid rgba(255, 72, 72, 0.9) !important;
	border-radius: var(--av-cal-radius);
	background: linear-gradient(180deg, rgba(255, 72, 72, 0.42) 0%, rgba(255, 42, 42, 0.32) 100%) !important;
	color: #ffffff !important;
	cursor: pointer;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.25;
	white-space: nowrap;
	box-shadow: 0 0 22px rgba(255, 72, 72, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.18);
	transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease, border-color 0.2s ease;
}

.av-cal-cabinet-logout-btn:hover {
	background: linear-gradient(180deg, #ff5252 0%, #ff3030 100%) !important;
	color: #ffffff !important;
	border-color: #ff7070 !important;
	box-shadow: 0 0 28px rgba(255, 72, 72, 0.62), inset 0 1px 0 rgba(255, 255, 255, 0.24);
	transform: translateY(-1px);
}

.artvoic-calendar-wrap .av-cal-cabinet-logout-btn {
	padding: 8px 16px;
	border: 1px solid rgba(255, 72, 72, 0.9) !important;
	background: linear-gradient(180deg, rgba(255, 72, 72, 0.42) 0%, rgba(255, 42, 42, 0.32) 100%) !important;
	color: #ffffff !important;
	font-size: 13px;
	font-weight: 800;
}

.artvoic-calendar-wrap .av-cal-cabinet-logout-btn:hover {
	background: linear-gradient(180deg, #ff5252 0%, #ff3030 100%) !important;
	color: #ffffff !important;
	border-color: #ff7070 !important;
}

.av-cal-students--cabinet {
	grid-template-columns: 1fr !important;
}

.av-cal-students--cabinet .av-cal-cabinet__card {
	width: 100%;
}

.av-cal-student-photo--readonly .av-cal-student-photo__actions {
	display: none;
}

.av-cal-cabinet--teacher .av-cal-cabinet__card {
	width: 100%;
}

.av-cal-modal--cabinet-logout {
	position: relative;
	max-width: 420px;
}

.av-cal-modal--cabinet-logout .av-cal-modal__close {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.18) !important;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.06) !important;
	color: rgba(255, 255, 255, 0.85) !important;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.av-cal-modal--cabinet-logout .av-cal-modal__close:hover {
	background: rgba(255, 196, 77, 0.16) !important;
	border-color: rgba(255, 196, 77, 0.45) !important;
	color: #ffc44d !important;
}

.av-cal-cabinet-logout__inner {
	padding-top: 8px;
	text-align: center;
}

.av-cal-cabinet-logout__title {
	margin: 0 0 20px;
	font-size: clamp(1.1rem, 3.5vw, 1.35rem);
	line-height: 1.4;
	color: #ffffff !important;
}

.av-cal-cabinet-logout__timer-wrap {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 12px;
	margin-bottom: 4px;
}

.av-cal-cabinet-logout__timer {
	font-size: 28px;
	font-weight: 800;
	line-height: 1;
	color: #ffc44d !important;
	font-variant-numeric: tabular-nums;
}

.av-cal-cabinet-logout__progress {
	height: 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.08);
	overflow: hidden;
	box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.35);
}

.av-cal-cabinet-logout__progress-bar {
	height: 100%;
	width: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, #ffc44d 0%, #ff9f0a 100%);
	box-shadow: 0 0 14px rgba(255, 196, 77, 0.45);
	transition: width 1s linear;
}

.av-cal-cabinet-logout__actions {
	margin-top: 18px;
}

.av-cal-cabinet-logout__return {
	border-color: rgba(255, 196, 77, 0.55) !important;
	background: rgba(255, 196, 77, 0.14) !important;
	color: #ffc44d !important;
}

.av-cal-cabinet-logout__return:hover {
	background: #ffc44d !important;
	color: #050505 !important;
	border-color: #ffc44d !important;
}

.av-cal-modal--telegram-bot h3,
.av-cal-telegram-bot-title {
	margin: 0 0 14px;
	font-size: clamp(1.05rem, 3.5vw, 1.25rem);
	line-height: 1.4;
	text-align: center;
	color: #ffffff !important;
}

.av-cal-telegram-bot-title__line,
.av-cal-telegram-bot-intro__line {
	display: block;
}

.av-cal-telegram-bot-intro {
	margin: 0;
	font-size: 14px;
	line-height: 1.55;
	text-align: center;
	color: rgba(255, 255, 255, 0.78) !important;
}

.av-cal-modal--telegram-bot .av-cal-modal-actions--stack {
	flex-direction: column;
	align-items: stretch;
	gap: 10px;
}

@keyframes av-cal-tg-gradient-flow {
	0% {
		background-position: 0% 50%;
	}
	50% {
		background-position: 100% 50%;
	}
	100% {
		background-position: 0% 50%;
	}
}

.av-cal-modal-overlay .av-cal-telegram-bot-subscribe {
	position: relative;
	width: 100%;
	overflow: hidden;
	border: none !important;
	background: linear-gradient(135deg, #2aabee 0%, #5ee7ff 45%, #6c63ff 100%) !important;
	background-size: 200% 200% !important;
	color: #ffffff !important;
	font-weight: 800 !important;
	box-shadow: 0 8px 24px rgba(42, 171, 238, 0.35);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.av-cal-modal-overlay .av-cal-telegram-bot-subscribe:hover {
	animation: av-cal-tg-gradient-flow 2.4s ease infinite;
	transform: translateY(-1px);
	box-shadow: 0 12px 32px rgba(94, 231, 255, 0.48);
}

.av-cal-modal-overlay .av-cal-telegram-bot-subscribe:active {
	transform: translateY(0);
}

.av-cal-modal--reminder .av-cal-reminder-intro {
	margin: 0 0 18px;
	font-size: 14px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.78) !important;
}

.av-cal-reminder-step {
	display: none;
}

.av-cal-reminder-step.is-active {
	display: block;
	animation: av-cal-access-fade-in 0.35s ease;
}

.av-cal-reminder-error {
	margin: 4px 0 0;
	font-size: 13px;
	line-height: 1.4;
	color: #ff7b7b !important;
}

.av-cal-reminder-success-icon {
	width: 64px;
	height: 64px;
	margin: 8px auto 16px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 32px;
	font-weight: 800;
	color: #050505 !important;
	background: linear-gradient(135deg, #00ffd1 0%, #7dffe8 100%);
	box-shadow: 0 8px 28px rgba(0, 255, 209, 0.35);
}

.av-cal-reminder-success-text {
	margin: 0;
	font-size: clamp(1.05rem, 3.5vw, 1.25rem);
	font-weight: 700;
	line-height: 1.45;
	text-align: center;
	color: #ffffff !important;
}

.av-cal-reminder-photo-field {
	margin-top: 4px;
}

.av-cal-reminder-photo__hint {
	margin: -4px 0 10px;
	font-size: 12px;
	line-height: 1.45;
	color: rgba(255, 255, 255, 0.58) !important;
}

.av-cal-field-optional {
	font-size: 12px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.48) !important;
}

.av-cal-reminder-photo__pick-wrap {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
}

.av-cal-modal-overlay .av-cal-reminder-photo-field .av-cal-reminder-photo__pick,
.av-cal-reminder-photo__pick {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 10px 18px;
	border: 1px solid rgba(0, 255, 209, 0.55) !important;
	border-radius: 12px;
	background-color: #00ffd1 !important;
	background-image: linear-gradient(135deg, #00ffd1 0%, #5ee7ff 100%) !important;
	color: #050505 !important;
	-webkit-text-fill-color: #050505 !important;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.2;
	text-transform: none !important;
	letter-spacing: 0 !important;
	margin-bottom: 0 !important;
	cursor: pointer;
	box-shadow: 0 8px 22px rgba(0, 255, 209, 0.28);
	transition: transform 0.15s ease, box-shadow 0.2s ease, filter 0.2s ease;
	-webkit-tap-highlight-color: transparent;
	text-shadow: none !important;
	position: relative;
	z-index: 1;
	isolation: isolate;
}

.av-cal-modal-overlay .av-cal-reminder-photo-field .av-cal-reminder-photo__pick:hover,
.av-cal-reminder-photo__pick:hover {
	color: #050505 !important;
	-webkit-text-fill-color: #050505 !important;
	transform: translateY(-1px);
	box-shadow: 0 10px 28px rgba(0, 255, 209, 0.38);
	filter: brightness(1.03);
}

.av-cal-reminder-photo__pick:focus-visible {
	outline: 2px solid #00ffd1;
	outline-offset: 3px;
}

.av-cal-reminder-photo__filename {
	font-size: 12px;
	line-height: 1.4;
	color: rgba(255, 255, 255, 0.72) !important;
	word-break: break-all;
}

.av-cal-reminder-photo__input {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.av-cal-reminder-photo__preview {
	margin-top: 12px;
	display: flex;
	justify-content: center;
}

.av-cal-reminder-photo__preview img {
	display: block;
	width: min(160px, 100%);
	max-height: 220px;
	object-fit: cover;
	border-radius: 14px;
	border: 2px solid rgba(0, 255, 209, 0.42);
	box-shadow: 0 10px 28px rgba(0, 255, 209, 0.18);
	aspect-ratio: 3 / 4;
}

.av-cal-modal-overlay--reminder-success .av-cal-modal-actions .av-cal-btn[data-close] {
	flex: 1 1 auto;
}

.artvoic-calendar-wrap .av-cal-add-btn {
	padding: 8px 16px;
	background: #00ffd1 !important;
	color: #050505 !important;
	border: none !important;
	border-radius: var(--av-cal-radius);
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	white-space: nowrap;
}

.artvoic-calendar-wrap .av-cal-add-btn:hover {
	filter: brightness(1.08);
	box-shadow: 0 0 16px rgba(0, 255, 209, 0.35);
}

.av-cal-badge {
	font-size: 12px;
	color: var(--av-cal-muted) !important;
	padding: 4px 10px;
	background: #0a0a0c;
	border: 1px solid var(--av-cal-border);
	border-radius: 12px;
}

/* Month */
.av-cal-month {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	border: 1px solid var(--av-cal-border);
	border-radius: var(--av-cal-radius);
	overflow: hidden;
}

.av-cal-month-head {
	padding: 8px 4px;
	text-align: center;
	font-size: 11px;
	font-weight: 600;
	color: var(--av-cal-muted) !important;
	background: #0a0a0c !important;
	border-bottom: 1px solid var(--av-cal-border);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.av-cal-month-cell {
	display: flex;
	flex-direction: column;
	min-height: 120px;
	border-right: 1px solid var(--av-cal-border);
	border-bottom: 1px solid var(--av-cal-border);
	padding: 4px;
	background: #050508 !important;
	color: #ffffff !important;
}

.av-cal-month-cell__events {
	flex: 1;
	display: grid;
	grid-template-columns: 1fr;
	gap: 2px;
	align-content: start;
	overflow: visible;
}

@media (min-width: 768px) {
	.av-cal-month-cell {
		min-height: 140px;
	}
}

.av-cal-month-cell:nth-child(7n) {
	border-right: none;
}

.av-cal-month-cell.is-other {
	background: #0a0a0c !important;
	color: var(--av-cal-muted) !important;
}

.av-cal-month-cell.is-clickable {
	cursor: pointer;
}

.av-cal-month-cell.is-clickable:hover {
	background: var(--av-cal-hover) !important;
}

.av-cal-month-cell.is-drag-over {
	background: rgba(0, 255, 209, 0.12) !important;
	outline: 2px solid #00ffd1;
	outline-offset: -2px;
}

.av-cal-day-num {
	font-size: 13px;
	font-weight: 500;
	margin-bottom: 4px;
	display: inline-block;
	line-height: 1.2;
	color: #ffffff !important;
	vertical-align: top;
}

.av-cal-month-cell.is-today .av-cal-day-num,
.av-cal-month-cell.is-other.is-today .av-cal-day-num {
	width: 22px;
	height: 22px;
	padding: 0;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #00ffd1 !important;
	color: #050505 !important;
	font-weight: 700;
	font-size: 12px;
	line-height: 1;
}

.av-cal-day-num.av-cal-today-mark {
	box-shadow: 0 0 0 1px rgba(0, 255, 209, 0.55);
	animation: av-cal-today-num-pulse 1.4s ease-out 1;
}

.av-cal-month .av-cal-event-chip:not([data-has-student="1"]) .av-cal-event-chip__lesson,
.av-cal-month .av-cal-event-chip:not([data-has-student="1"]) .av-cal-event-chip__block {
	display: none !important;
}

.av-cal-month-cell__events .av-cal-event-chip {
	margin-bottom: 0;
	font-size: 9px;
	padding: 2px 4px;
}

.av-cal-event-chip {
	display: block;
	font-size: 10px;
	padding: 3px 6px;
	margin-bottom: 2px;
	border-radius: 4px;
	color: #050505 !important;
	font-weight: 500;
	overflow: visible;
	border-left: 3px solid rgba(0, 0, 0, 0.2);
	max-width: 100%;
	touch-action: none;
	user-select: none;
	transition: background 0.22s ease, box-shadow 0.22s ease, transform 0.18s ease, filter 0.18s ease;
}

.av-cal-event-chip.is-draggable {
	cursor: grab;
}

/* Подсказки по цветам слотов */
.av-cal-color-legend {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 18px;
	margin: 0 0 12px;
	padding: 10px 14px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.08);
}

.av-cal-color-legend__title {
	flex: 0 0 auto;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: rgba(255, 255, 255, 0.72) !important;
}

.av-cal-color-legend__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
	margin: 0;
	padding: 0;
	list-style: none;
	flex: 1 1 auto;
	min-width: 0;
}

.av-cal-color-legend__item {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
}

.av-cal-color-legend__swatch {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	border-radius: 4px;
	border: 1px solid rgba(0, 0, 0, 0.18);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
}

.av-cal-color-legend__swatch--stage-acting {
	background: linear-gradient(135deg, #ffc2d6 0%, #ffd6e8 100%);
}

.av-cal-color-legend__swatch--acting-only {
	background: linear-gradient(135deg, #00ffd1 0%, #5ee7ff 100%);
}

.av-cal-color-legend__text {
	font-size: 12px;
	line-height: 1.35;
	color: rgba(255, 255, 255, 0.88) !important;
}

.av-cal-event-chip.is-dragging {
	opacity: 0.18;
	pointer-events: none;
	cursor: grabbing;
}

.av-cal-event-chip__content {
	display: block;
	max-width: 100%;
}

.av-cal-month .av-cal-event-chip.is-stage-speech:not(.is-dragging):hover {
	background: #ffd6e8 !important;
	filter: none;
	box-shadow: 0 3px 12px rgba(255, 182, 210, 0.45);
	transform: translateY(-1px);
}

.av-cal-event-chip:not(.is-dragging):hover {
	filter: brightness(1.06);
	box-shadow: 0 3px 12px rgba(0, 255, 209, 0.38);
	transform: translateY(-1px);
}

.av-cal-event-chip.is-stage-speech:not(.is-dragging):hover {
	background: #ffd6e8 !important;
	filter: none;
	box-shadow: 0 3px 14px rgba(255, 182, 210, 0.45);
	transform: translateY(-1px);
}

.av-cal-event-chip__student {
	display: block;
	font-size: 10px;
	font-weight: 700;
	max-width: 100%;
	margin-top: 3px;
	overflow: hidden;
	text-overflow: ellipsis;
	color: #050505 !important;
}

.av-cal-event-chip__teacher {
	display: block;
	font-size: 9px;
	font-weight: 700;
	max-width: 100%;
	color: rgba(5, 5, 5, 0.88) !important;
	margin-bottom: 2px;
	white-space: normal;
	word-break: break-word;
}

.av-cal-event-chip__subject--stage,
.av-cal-event-chip__subject--acting {
	display: block;
	font-size: 8px;
	font-weight: 700;
	max-width: 100%;
	margin-bottom: 2px;
	line-height: 1.25;
	white-space: normal;
	word-break: break-word;
}

.av-cal-event-chip__subject--stage {
	color: rgba(160, 70, 10, 0.95) !important;
}

.av-cal-event-chip__subject--acting {
	color: rgba(5, 5, 5, 0.82) !important;
}

.av-cal-event-chip__block,
.av-cal-event-chip__lesson,
.av-cal-event-chip__subject {
	display: block;
	font-size: 9px;
	font-weight: 600;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	color: rgba(5, 5, 5, 0.78) !important;
}

.av-cal-event-chip__content {
	display: flex;
	flex-direction: column;
	min-width: 0;
	flex: 1;
}

.av-cal-more {
	font-size: 11px;
	color: #00ffd1 !important;
	padding: 2px 4px;
	cursor: pointer;
}

/* Time grid */
.av-cal-timegrid-wrap {
	border: 1px solid var(--av-cal-border);
	border-radius: var(--av-cal-radius);
	overflow: auto;
	max-height: min(720px, 70vh);
	-webkit-overflow-scrolling: touch;
	position: relative;
	background: #050508 !important;
}

.av-cal-timegrid-wrap--week,
.av-cal-timegrid-wrap--day {
	width: 100%;
	max-width: 100%;
	overflow-x: hidden;
	overflow-y: auto;
	max-height: calc(100dvh - 150px);
	height: calc(100dvh - 150px);
	box-sizing: border-box;
	padding: 0 4px;
	scrollbar-width: thin;
}

.av-cal-timegrid-wrap--week .av-cal-timegrid,
.av-cal-timegrid-wrap--day .av-cal-timegrid {
	width: 100%;
	min-width: 0;
	max-width: 100%;
	height: auto;
	min-height: 100%;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	overflow: visible;
}

.av-cal-timegrid.av-cal-timegrid--week,
.av-cal-timegrid.av-cal-timegrid--day {
	min-width: 0;
}

.av-cal-timegrid-wrap--week .av-cal-timegrid-body,
.av-cal-timegrid-wrap--day .av-cal-timegrid-body {
	flex: 1 1 auto;
	min-height: 0;
	display: flex;
	flex-direction: column;
	overflow: visible;
}

.av-cal-timegrid-wrap--week .av-cal-timegrid-row {
	flex: none;
	min-height: var(--av-cal-hour-h);
	height: var(--av-cal-hour-h);
}

.av-cal-timegrid-wrap--day .av-cal-timegrid-row {
	flex: none;
	min-height: var(--av-cal-hour-h);
	height: var(--av-cal-hour-h);
}

.av-cal-timegrid-wrap--day {
	--av-cal-time-col-w: 104px;
}

.av-cal-timegrid--week .av-cal-timegrid-header,
.av-cal-timegrid--week .av-cal-timegrid-row {
	grid-template-columns: var(--av-cal-time-col-w) repeat(7, minmax(0, 1fr));
	column-gap: 8px;
	width: 100%;
	box-sizing: border-box;
	padding: 0 2px;
}

.av-cal-timegrid--day .av-cal-timegrid-header,
.av-cal-timegrid--day .av-cal-timegrid-row {
	grid-template-columns: var(--av-cal-time-col-w) minmax(0, 1fr);
	column-gap: 0;
	width: 100%;
	box-sizing: border-box;
	padding: 0;
}

.av-cal-timegrid-wrap--day .av-cal-timegrid-col-head {
	font-size: 12px;
	padding: 8px 12px;
}

.av-cal-timegrid--week .av-cal-timegrid-col-head {
	font-size: 10px;
	padding: 6px 4px;
	overflow: hidden;
	text-overflow: ellipsis;
}

.av-cal-timegrid--week .av-cal-time-cell {
	padding: 0 2px;
}

.av-cal-timegrid--week .av-cal-time-event,
.av-cal-timegrid--day .av-cal-time-event {
	overflow: hidden;
	word-break: break-word;
	overflow-wrap: break-word;
	z-index: 3;
	box-sizing: border-box;
	margin-bottom: 0;
	min-width: 0;
	max-width: 100%;
}

.av-cal-timegrid--week .av-cal-time-event {
	padding: 4px 5px;
	line-height: 1.24;
}

.av-cal-timegrid--day .av-cal-time-event {
	padding: 5px 8px;
	line-height: 1.28;
	font-size: 11px;
	overflow: hidden;
	word-break: break-word;
	overflow-wrap: anywhere;
	border-radius: 5px;
}

.av-cal-timegrid-wrap--day .av-cal-time-cell {
	padding: 0 4px;
}

.av-cal-timegrid-wrap--week .av-cal-time-label,
.av-cal-timegrid-wrap--week .av-cal-time-cell,
.av-cal-timegrid-wrap--day .av-cal-time-label,
.av-cal-timegrid-wrap--day .av-cal-time-cell {
	min-height: var(--av-cal-hour-h);
	height: var(--av-cal-hour-h);
	box-sizing: border-box;
}

.av-cal-timegrid--week .av-cal-time-label,
.av-cal-timegrid--day .av-cal-time-label {
	font-size: 11px;
	padding: 0 6px;
	white-space: nowrap;
	overflow: visible;
	min-width: var(--av-cal-time-col-w);
	justify-content: center;
	text-align: center;
	align-items: center;
}

.av-cal-timegrid--week .av-cal-time-label__range,
.av-cal-timegrid--day .av-cal-time-label__range {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 2px;
	line-height: 1.2;
}

.av-cal-timegrid--week .av-cal-time-label__time,
.av-cal-timegrid--day .av-cal-time-label__time {
	color: var(--av-cal-accent) !important;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.01em;
}

.av-cal-timegrid--week .av-cal-time-label__sep,
.av-cal-timegrid--day .av-cal-time-label__sep {
	color: rgba(255, 255, 255, 0.42) !important;
	font-weight: 500;
}

.av-cal-timegrid-wrap--week .av-cal-timegrid-events,
.av-cal-timegrid-wrap--day .av-cal-timegrid-events {
	overflow: hidden;
	top: var(--av-cal-header-h, 40px);
}

.av-cal-timegrid--week .av-cal-time-event__student,
.av-cal-timegrid--week .av-cal-time-event__lesson,
.av-cal-timegrid--week .av-cal-time-event__block,
.av-cal-timegrid--week .av-cal-time-event__subject,
.av-cal-timegrid--week .av-cal-time-event__time,
.av-cal-timegrid--day .av-cal-time-event__student,
.av-cal-timegrid--day .av-cal-time-event__lesson,
.av-cal-timegrid--day .av-cal-time-event__block,
.av-cal-timegrid--day .av-cal-time-event__subject,
.av-cal-timegrid--day .av-cal-time-event__teacher,
.av-cal-timegrid--day .av-cal-time-event__time {
	display: block;
	max-width: 100%;
	overflow: hidden;
	text-overflow: clip;
	white-space: normal;
	overflow-wrap: break-word;
	word-break: break-word;
}

.av-cal-timegrid {
	display: flex;
	flex-direction: column;
	min-width: 1120px;
	position: relative;
}

.av-cal-timegrid-header,
.av-cal-timegrid-row {
	display: grid;
	grid-template-columns: 64px repeat(7, minmax(168px, 1fr));
}

.av-cal-timegrid--day .av-cal-time-event__time {
	font-size: 1em;
	font-weight: 800;
}

.av-cal-timegrid--day .av-cal-time-event__student {
	font-size: 1.05em;
	font-weight: 800;
	margin-top: 1px;
}

.av-cal-timegrid--day .av-cal-time-event__lesson,
.av-cal-timegrid--day .av-cal-time-event__block,
.av-cal-timegrid--day .av-cal-time-event__subject,
.av-cal-timegrid--day .av-cal-time-event__teacher {
	font-size: 0.92em;
	font-weight: 700;
	margin-top: 1px;
	line-height: 1.25;
}

.av-cal-timegrid-header {
	position: sticky;
	top: 0;
	z-index: 4;
}

.av-cal-timegrid-body {
	display: flex;
	flex-direction: column;
}

.av-cal-timegrid-events {
	position: absolute;
	top: 40px;
	left: 0;
	right: 0;
	bottom: 0;
	pointer-events: none;
	z-index: 3;
}

.av-cal-timegrid-wrap--dragging .av-cal-timegrid-events,
.av-cal-timegrid-wrap--dragging .av-cal-time-event {
	pointer-events: none !important;
}

.av-cal-time-event.is-dragging {
	opacity: 0.22;
	z-index: 2;
	box-shadow: none;
	transform: none;
	filter: none;
}

.av-cal-timegrid-events .av-cal-time-event {
	pointer-events: auto;
}

.av-cal-timegrid-row {
	min-height: var(--av-cal-hour-h);
}

.av-cal-time-cell,
.av-cal-time-label {
	box-sizing: border-box;
}

.av-cal-timegrid-corner,
.av-cal-timegrid-col-head {
	background: #0a0a0c !important;
	color: #ffffff !important;
}

.av-cal-timegrid-corner {
	border-bottom: 1px solid var(--av-cal-border);
	border-right: 1px solid var(--av-cal-border);
	height: 40px;
}

.av-cal-timegrid-col-head {
	padding: 8px 4px;
	text-align: center;
	font-size: 11px;
	border-bottom: 1px solid var(--av-cal-border);
	border-right: 1px solid var(--av-cal-border);
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	white-space: nowrap;
}

.av-cal-col-head-day {
	display: inline-block;
	margin-left: 2px;
	line-height: 1.2;
	vertical-align: baseline;
}

.av-cal-col-head-day.is-today {
	width: 22px;
	height: 22px;
	padding: 0;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #00ffd1 !important;
	color: #050505 !important;
	font-weight: 700;
	font-size: 12px;
	line-height: 1;
}

.av-cal-col-head-day.is-today.av-cal-today-mark {
	box-shadow: 0 0 0 2px rgba(0, 255, 209, 0.55);
	animation: av-cal-today-num-pulse 1.4s ease-out 1;
}

.av-cal-time-cell.is-today.av-cal-today-mark {
	background: rgba(0, 255, 209, 0.22) !important;
	box-shadow: inset 0 0 0 1px rgba(0, 255, 209, 0.45);
}

.av-cal-time-cell.is-today {
	background: rgba(0, 255, 209, 0.06) !important;
}

@keyframes av-cal-today-num-pulse {
	0% {
		box-shadow: 0 0 0 3px rgba(0, 255, 209, 0.75);
	}
	100% {
		box-shadow: 0 0 0 2px rgba(0, 255, 209, 0.4);
	}
}

.av-cal-time-label {
	font-size: 10px;
	color: var(--av-cal-muted) !important;
	padding: 0 4px;
	text-align: right;
	border-right: 1px solid var(--av-cal-border);
	height: var(--av-cal-hour-h);
	line-height: 1.2;
	background: #050508 !important;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	letter-spacing: -0.02em;
}

.av-cal-time-cell {
	height: var(--av-cal-hour-h);
	border-bottom: 1px solid var(--av-cal-border);
	border-right: 1px solid var(--av-cal-border);
	position: relative;
	background: #050508 !important;
}

.av-cal-timegrid-row:last-child .av-cal-time-cell,
.av-cal-timegrid-row:last-child .av-cal-time-label {
	border-bottom: none;
}

.av-cal-time-cell.is-clickable {
	cursor: pointer;
}

.av-cal-time-cell.is-clickable:hover {
	background: var(--av-cal-hover) !important;
}

.av-cal-time-cell.is-drop-target {
	background: rgba(0, 255, 209, 0.12) !important;
}

.av-cal-time-cell.is-drop-column {
	background: rgba(0, 255, 209, 0.05) !important;
}

.av-cal-drag-clone {
	position: fixed !important;
	z-index: 100001;
	pointer-events: none;
	box-sizing: border-box;
	opacity: 0.94;
	cursor: grabbing;
	box-shadow: 0 14px 36px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(255, 255, 255, 0.08);
	transform: scale(1.02);
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.av-cal-drag-clone.av-cal-time-event {
	overflow: hidden;
}

.av-cal-drag-clone.av-cal-event-chip {
	display: block;
	max-width: min(240px, 70vw);
}

.av-cal-drag-preview {
	position: absolute;
	border-radius: 6px;
	padding: 5px 7px;
	font-size: 10px;
	color: #050505 !important;
	font-weight: 500;
	box-sizing: border-box;
	pointer-events: none;
	z-index: 6;
	line-height: 1.3;
	overflow: hidden;
	opacity: 0.62;
	border: 2px dashed rgba(0, 255, 209, 0.9);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.av-cal-drag-preview.is-stage-speech {
	border-color: rgba(255, 136, 32, 0.9);
}

#artvoic-calendar-app.av-cal-app--dragging {
	cursor: grabbing;
}

#artvoic-calendar-app.av-cal-app--dragging .av-cal-event-chip.is-draggable,
#artvoic-calendar-app.av-cal-app--dragging .av-cal-time-event.is-draggable {
	cursor: grabbing;
}

.av-cal-time-event.is-split-slot {
	font-size: 9px;
	line-height: 1.22;
	padding: 3px 4px;
}

.av-cal-time-event.is-split-slot .av-cal-time-event__student,
.av-cal-time-event.is-split-slot .av-cal-time-event__lesson,
.av-cal-time-event.is-split-slot .av-cal-time-event__teacher {
	font-size: 9px;
}

.av-cal-time-event {
	position: absolute;
	border-radius: 6px;
	padding: 5px 7px;
	font-size: 10px;
	color: #050505 !important;
	font-weight: 500;
	overflow-x: hidden;
	overflow-y: visible;
	z-index: 3;
	line-height: 1.3;
	box-sizing: border-box;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
	touch-action: none;
	user-select: none;
	transition: background 0.22s ease, box-shadow 0.22s ease, transform 0.18s ease, filter 0.18s ease;
}

.av-cal-time-event.is-draggable.is-dragging,
.av-cal-time-event.is-clickable:not(.is-dragging):hover {
	will-change: transform, box-shadow;
}

.av-cal-time-event.is-clickable:not(.is-dragging):hover {
	filter: brightness(1.07);
	box-shadow: 0 5px 18px rgba(0, 255, 209, 0.42);
	transform: translateY(-2px) scale(1.015);
	z-index: 4;
}

.av-cal-time-event.is-stage-speech.is-clickable:not(.is-dragging):hover {
	background: #ffb366 !important;
	filter: none;
	box-shadow: 0 4px 16px rgba(255, 136, 32, 0.42);
	transform: translateY(-1px) scale(1.008);
}

.av-cal-time-event.is-clickable {
	cursor: pointer;
}

.av-cal-time-event.is-draggable {
	cursor: grab;
}

.av-cal-time-event__resize {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 10px;
	z-index: 5;
	cursor: ns-resize;
	border-radius: 0 0 6px 6px;
	touch-action: none;
}

.av-cal-time-event__resize::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: 3px;
	width: 22px;
	height: 3px;
	margin-left: -11px;
	border-radius: 2px;
	background: rgba(5, 5, 5, 0.28);
	opacity: 0;
	transition: opacity 0.15s ease;
}

.av-cal-time-event.is-draggable:hover .av-cal-time-event__resize::after,
.av-cal-time-event.is-resizing .av-cal-time-event__resize::after {
	opacity: 1;
}

.av-cal-time-event.is-resizing {
	opacity: 0.72;
	z-index: 5;
	cursor: ns-resize;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.45);
}

.av-cal-timegrid-wrap--resizing .av-cal-time-event:not(.is-resizing) {
	pointer-events: none;
}

#artvoic-calendar-app.av-cal-app--resizing {
	cursor: ns-resize;
}

.av-cal-time-event__head {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-bottom: 2px;
}

.av-cal-time-event__time {
	display: block;
	font-size: 10px;
	font-weight: 700;
	opacity: 0.85;
	font-variant-numeric: tabular-nums;
	color: #050505 !important;
}

.av-cal-time-event__block,
.av-cal-time-event__lesson,
.av-cal-time-event__subject,
.av-cal-time-event__teacher {
	display: block;
	font-size: 10px;
	font-weight: 600;
	margin-top: 2px;
	color: rgba(5, 5, 5, 0.82) !important;
	white-space: normal;
	word-break: break-word;
	overflow-wrap: anywhere;
}

.av-cal-time-event__student {
	display: block;
	font-size: 12px;
	font-weight: 700;
	margin-top: 1px;
	color: #050505 !important;
	line-height: 1.3;
	white-space: normal;
	word-break: break-word;
	overflow-wrap: anywhere;
}

.av-cal-timegrid--week .av-cal-time-event__head {
	margin-bottom: 3px;
}

.av-cal-timegrid--week .av-cal-time-event__time {
	font-size: clamp(9px, 0.72vw, 11px);
	font-weight: 800;
	opacity: 1;
	letter-spacing: 0.01em;
}

.av-cal-timegrid--week .av-cal-time-event__student {
	font-size: clamp(9px, 0.75vw, 11px);
	font-weight: 800;
	margin-top: 1px;
	line-height: 1.2;
}

.av-cal-timegrid--week .av-cal-time-event__lesson,
.av-cal-timegrid--week .av-cal-time-event__block,
.av-cal-timegrid--week .av-cal-time-event__subject {
	font-size: clamp(8px, 0.65vw, 10px);
	font-weight: 700;
	opacity: 0.92;
	margin-top: 1px;
	line-height: 1.2;
}

.av-cal-timegrid--week .av-cal-time-event.is-split-slot .av-cal-time-event__time {
	font-size: 11px;
}

.av-cal-timegrid--week .av-cal-time-event.is-split-slot .av-cal-time-event__student {
	font-size: 11px;
}

.av-cal-timegrid--week .av-cal-time-event.is-split-slot .av-cal-time-event__lesson,
.av-cal-timegrid--week .av-cal-time-event.is-split-slot .av-cal-time-event__block,
.av-cal-timegrid--week .av-cal-time-event.is-split-slot .av-cal-time-event__subject {
	font-size: 9px;
}

.av-cal-timegrid--week .av-cal-time-event.is-clickable:not(.is-dragging):hover,
.av-cal-timegrid--day .av-cal-time-event.is-clickable:not(.is-dragging):hover {
	transform: none;
}

.av-cal-timegrid--week .av-cal-time-event.is-week-stage-speech-slot.is-clickable:not(.is-dragging):hover,
.av-cal-timegrid--day .av-cal-time-event.is-week-stage-speech-slot.is-clickable:not(.is-dragging):hover {
	background: #ffd6e8 !important;
	filter: none;
	box-shadow: 0 4px 14px rgba(255, 182, 210, 0.45);
	transform: none;
	z-index: 4;
}

.av-cal-timegrid--week .av-cal-time-event__subject--stage {
	font-size: 11px;
	font-weight: 700;
	opacity: 0.92;
	margin-top: 2px;
	line-height: 1.3;
}

.av-cal-time-event__stage {
	display: block;
	font-size: 10px;
	font-weight: 700;
	color: #050505 !important;
	line-height: 1.2;
	margin-bottom: 2px;
}

.av-cal-time-event__time--main {
	display: block;
	font-size: 10px;
	font-weight: 700;
	opacity: 0.85;
	font-variant-numeric: tabular-nums;
	margin-bottom: 2px;
	color: #050505 !important;
}

.av-cal-time-event.is-stage-speech-slot {
	border-left: 3px solid rgba(255, 107, 157, 0.85);
}

.av-cal-modal--readonly .av-cal-readonly-extra {
	margin: 0 0 10px;
	font-size: 14px;
	color: #ffffff !important;
}

.av-cal-readonly-section-title {
	margin: 18px 0 10px;
	padding-top: 14px;
	border-top: 1px solid var(--av-cal-border);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: #00ffd1 !important;
	letter-spacing: 0.01em;
}

.av-cal-readonly-section-title--highlight {
	margin: 20px 0 12px;
	padding: 14px 16px;
	border-top: none;
	border-radius: 10px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
	color: #000000 !important;
	background: linear-gradient(135deg, #00ffd1 0%, #7dffe8 55%, #b8fff0 100%);
	border: 1px solid rgba(0, 255, 209, 0.65);
	box-shadow:
		0 6px 22px rgba(0, 255, 209, 0.35),
		0 0 28px rgba(0, 255, 209, 0.18);
	text-shadow: none;
}

.av-cal-modal--readonly .av-cal-readonly-section-title--highlight {
	color: #000000 !important;
}

.av-cal-readonly-lesson + .av-cal-readonly-section-title {
	margin-top: 16px;
}

.av-cal-readonly-lesson {
	margin-top: 4px;
	padding: 18px 16px 16px;
	border-radius: 12px;
	border: 1px solid rgba(0, 255, 209, 0.28);
	background:
		linear-gradient(145deg, rgba(0, 255, 209, 0.08) 0%, rgba(0, 255, 209, 0.02) 42%, rgba(108, 99, 255, 0.04) 100%);
	box-shadow:
		0 8px 28px rgba(0, 0, 0, 0.35),
		inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.av-cal-readonly-lesson--stage {
	border-color: rgba(255, 107, 157, 0.3);
	background:
		linear-gradient(145deg, rgba(255, 107, 157, 0.1) 0%, rgba(255, 107, 157, 0.03) 45%, rgba(255, 143, 179, 0.05) 100%);
	box-shadow:
		0 8px 28px rgba(0, 0, 0, 0.32),
		inset 0 1px 0 rgba(255, 255, 255, 0.07);
}

.av-cal-readonly-lesson--extra {
	border-color: rgba(108, 99, 255, 0.32);
	background:
		linear-gradient(145deg, rgba(108, 99, 255, 0.1) 0%, rgba(108, 99, 255, 0.03) 45%, rgba(0, 255, 209, 0.03) 100%);
}

.av-cal-readonly-lesson--stage .av-cal-readonly-lesson__title {
	color: #050505 !important;
	background: linear-gradient(135deg, #ff8fb3 0%, #ffc2d6 100%);
	box-shadow: 0 4px 14px rgba(255, 107, 157, 0.28);
}

.av-cal-readonly-lesson--extra .av-cal-readonly-lesson__title {
	color: #ffffff !important;
	background: linear-gradient(135deg, #6c63ff 0%, #8b84ff 100%);
	box-shadow: 0 4px 14px rgba(108, 99, 255, 0.28);
}

.av-cal-readonly-lesson--stage .av-cal-readonly-time__clock {
	color: #ff8fb3 !important;
}

.av-cal-readonly-lesson--extra .av-cal-readonly-time__clock {
	color: #9b94ff !important;
}

.av-cal-readonly-lesson__label {
	display: block;
	margin-bottom: 6px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.52) !important;
}

.av-cal-readonly-lesson__hero {
	margin-bottom: 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid rgba(0, 255, 209, 0.16);
}

.av-cal-readonly-lesson__block {
	display: block;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.25;
	color: #ffffff !important;
	text-wrap: balance;
}

.av-cal-readonly-lesson__meta {
	margin-bottom: 16px;
}

.av-cal-readonly-lesson__meta--inline {
	margin-bottom: 14px;
}

.av-cal-readonly-lesson__inline-row {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px;
}

.av-cal-readonly-lesson__label--inline {
	margin-bottom: 0;
	display: inline;
	text-transform: none;
	letter-spacing: 0;
	font-size: 14px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.72) !important;
}

.av-cal-readonly-lesson__meta--inline .av-cal-readonly-lesson__subtitle {
	display: inline;
	font-size: 16px;
	font-weight: 700;
}

.av-cal-readonly-lesson__subtitle {
	display: block;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.35;
	color: #ffffff !important;
}

.av-cal-readonly-lesson__title {
	display: inline-flex;
	align-items: center;
	max-width: 100%;
	padding: 7px 12px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;
	color: #050505 !important;
	background: linear-gradient(135deg, #00ffd1 0%, #7dffe8 100%);
	box-shadow: 0 4px 14px rgba(0, 255, 209, 0.28);
}

.av-cal-readonly-times {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

@media (max-width: 420px) {
	.av-cal-readonly-times {
		grid-template-columns: 1fr;
	}
}

.av-cal-readonly-time {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 12px 10px;
	border-radius: 10px;
	background: rgba(0, 0, 0, 0.32) !important;
	border: 1px solid rgba(255, 255, 255, 0.08);
}

.av-cal-readonly-time__label {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.5) !important;
}

.av-cal-readonly-time__clock {
	font-size: 26px;
	font-weight: 700;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	color: #00ffd1 !important;
	letter-spacing: -0.02em;
}

.av-cal-readonly-time__date {
	font-size: 12px;
	font-weight: 500;
	line-height: 1.35;
	color: rgba(255, 255, 255, 0.78) !important;
}

.av-cal-modal--readonly p {
	margin: 0 0 10px;
	font-size: 14px;
	color: #ffffff !important;
}

.av-cal-time-event strong {
	display: block;
	font-size: 12px;
	color: #050505 !important;
}

/* Students */
.av-cal-students {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	min-height: 400px;
}

@media (min-width: 768px) {
	.av-cal-students {
		grid-template-columns: 280px 1fr;
	}
}

.av-cal-students-list,
.av-cal-student-card {
	border: 1px solid var(--av-cal-border);
	border-radius: var(--av-cal-radius);
	background: #0a0a0c !important;
	color: #ffffff !important;
}

.av-cal-students-list {
	overflow: hidden;
	display: flex;
	flex-direction: column;
	max-height: 280px;
}

@media (min-width: 768px) {
	.av-cal-students-list {
		max-height: none;
	}
}

.av-cal-students-list-head {
	padding: 12px;
	border-bottom: 1px solid var(--av-cal-border);
	background: #12121a !important;
}

.artvoic-calendar-wrap .av-cal-students-search {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--av-cal-border) !important;
	border-radius: 8px;
	font-size: 14px;
	background: #050508 !important;
	color: #ffffff !important;
}

.av-cal-students-items {
	overflow-y: auto;
	flex: 1;
	max-height: 220px;
}

@media (min-width: 768px) {
	.av-cal-students-items {
		max-height: 420px;
	}
}

.av-cal-student-item {
	padding: 12px;
	border-bottom: 1px solid var(--av-cal-border);
	cursor: pointer;
	font-size: 14px;
	color: #ffffff !important;
}

.av-cal-student-item:hover {
	background: var(--av-cal-hover) !important;
}

.av-cal-student-item.is-active {
	background: var(--av-cal-today) !important;
	color: #00ffd1 !important;
	font-weight: 600;
}

.av-cal-student-card {
	padding: 20px;
}

.av-cal-student-card__head {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
	margin-bottom: 16px;
}

.av-cal-student-card__identity {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	width: 100%;
	min-width: 0;
}

.av-cal-student-card__contact-row {
	width: 100%;
	margin-top: 12px;
}

.av-cal-student-card h3,
.av-cal-student-card__name {
	margin: 0;
	font-size: clamp(26px, 3.2vw, 34px);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: #ffffff !important;
	flex: 0 1 auto;
	min-width: 0;
}

.av-cal-student-card__head .av-cal-student-contact__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 8px;
}

.av-cal-student-contact__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.av-cal-quick-contact__btn--edit {
	flex-shrink: 0;
	line-height: 1.2;
}

.av-cal-profile-stats--student-stack {
	display: flex;
	flex-direction: column;
	gap: 22px;
	width: 100%;
	flex: 1 1 auto;
	min-width: 0;
	align-items: stretch;
}

.av-cal-profile-stats--student-stack .av-cal-profile-stats__section {
	width: 100%;
	box-sizing: border-box;
}

.av-cal-profile-stats--student-stack .av-cal-profile-stats__section--panel {
	padding: 20px 22px;
	border-radius: 14px;
	border: 1px solid rgba(0, 255, 209, 0.22);
	background: linear-gradient(
		145deg,
		rgba(0, 255, 209, 0.14) 0%,
		rgba(30, 35, 55, 0.92) 38%,
		rgba(55, 48, 90, 0.88) 72%,
		rgba(0, 255, 209, 0.08) 100%
	) !important;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.06),
		0 8px 28px rgba(0, 0, 0, 0.35);
}

.av-cal-profile-stats--student-stack .av-cal-profile-stats__title--panel {
	margin: 0 0 14px;
	font-size: clamp(17px, 2vw, 20px);
	font-weight: 700;
	letter-spacing: -0.01em;
	color: #ffffff !important;
}

.av-cal-profile-stats--student-stack .av-cal-profile-stats__panel-inner {
	padding: 6px 8px;
	border-radius: 10px;
	background: rgba(5, 5, 8, 0.45) !important;
	border: 1px solid rgba(255, 255, 255, 0.06);
}

.av-cal-student-stats-column > .av-cal-profile-stats--student-stack {
	max-width: none;
	width: 100%;
}

.av-cal-profile-stats__section--blocks {
	width: 100%;
	min-width: 0;
}

.av-cal-profile-stats__section--blocks .av-cal-profile-stats__panel-inner {
	padding: 8px 10px;
}

.av-cal-completed-blocks {
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: 100%;
	min-width: 0;
}

.av-cal-completed-blocks__row {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto auto auto;
	align-items: center;
	gap: 8px 16px;
	padding: 11px 16px;
	border-radius: 8px;
	background: rgba(8, 8, 12, 0.55) !important;
	border: 1px solid rgba(255, 255, 255, 0.07);
	font-size: 15px;
	line-height: 1.35;
	color: #ffffff !important;
}

.av-cal-completed-blocks__row.is-done {
	border-color: rgba(0, 255, 209, 0.2);
}

.av-cal-completed-blocks__no {
	flex: 0 0 auto;
	min-width: 1.5em;
	font-weight: 700;
	text-align: center;
	color: #00ffd1 !important;
}

.av-cal-completed-blocks__name {
	min-width: 0;
	overflow: visible;
	text-overflow: unset;
	white-space: normal;
	word-break: break-word;
	font-weight: 600;
}

.av-cal-profile-stats__section--blocks .av-cal-completed-blocks__row {
	grid-template-columns: 2.5em minmax(12em, 1fr) auto auto auto;
}

@media (min-width: 900px) {
	.av-cal-profile-stats__section--blocks .av-cal-completed-blocks__row {
		grid-template-columns: 2.5em minmax(16em, 2fr) auto auto auto;
	}
}

.av-cal-completed-blocks__dates {
	flex: 0 0 auto;
	font-variant-numeric: tabular-nums;
	color: rgba(255, 255, 255, 0.88) !important;
}

.av-cal-completed-blocks__done {
	flex: 0 0 auto;
	min-width: 32px;
	text-align: center;
}

.av-cal-completed-blocks__pending {
	color: rgba(255, 255, 255, 0.35) !important;
}

.av-cal-completed-blocks__subject {
	margin: 0 0 10px;
	font-size: 13px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.8) !important;
}

.av-cal-completed-blocks__hours {
	flex: 0 0 auto;
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	color: #00ffd1 !important;
}

.av-cal-completed-blocks__subtotal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 16px;
	margin-top: 12px;
	padding: 14px 16px;
	border-radius: 8px;
	border: 1px solid rgba(0, 255, 209, 0.28);
	background: linear-gradient(
		135deg,
		rgba(12, 28, 32, 0.95) 0%,
		rgba(28, 22, 48, 0.92) 100%
	) !important;
}

.av-cal-completed-blocks__subtotal-label {
	font-size: 15px;
	font-weight: 700;
	color: #ffffff !important;
}

.av-cal-completed-blocks__subtotal-value {
	font-size: 17px;
	font-weight: 800;
	color: #00ffd1 !important;
	font-variant-numeric: tabular-nums;
}

.av-cal-profile-stats--student-stack .av-cal-profile-stats__table-wrap {
	width: 100%;
}

.av-cal-profile-stats--student-stack .av-cal-stats-table--subjects {
	font-size: 15px;
}

.av-cal-profile-stats--student-stack .av-cal-stats-table--subjects thead th {
	font-size: 13px;
	padding: 14px 16px;
}

.av-cal-profile-stats--student-stack .av-cal-stats-table--subjects tbody td,
.av-cal-profile-stats--student-stack .av-cal-stats-table--subjects tfoot td {
	padding: 14px 16px;
	font-size: 15px;
}

.av-cal-profile-stats--student-stack .av-cal-profile-stats__panel-inner .av-cal-stats-table--subjects {
	border-color: rgba(255, 255, 255, 0.1);
	background: rgba(8, 8, 12, 0.55) !important;
}

.av-cal-time-event__subject--stage {
	font-weight: 600;
}

.av-cal-student-card-body.av-cal-profile-card {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 20px;
}

.av-cal-student-photo-column {
	flex: 0 0 auto;
	width: 100%;
	max-width: 280px;
}

.av-cal-student-stats-column {
	flex: 1 1 auto;
	min-width: 0;
	width: 100%;
}

@media (min-width: 768px) {
	.av-cal-student-card-body.av-cal-profile-card {
		flex-direction: row;
		align-items: flex-start;
		gap: 24px;
	}

	.av-cal-student-photo-column {
		width: 220px;
		max-width: 260px;
		flex-shrink: 0;
	}

	.av-cal-student-card-body.has-photo-column .av-cal-student-stats-column {
		margin-left: 0;
		width: auto;
		flex: 1 1 0;
		min-width: 0;
		max-width: none;
	}
}

@media (min-width: 900px) {
	.av-cal-student-card-body.av-cal-profile-card {
		gap: 0;
	}

	.av-cal-student-photo-column {
		width: 280px;
		max-width: 280px;
	}

	.av-cal-student-card-body.has-photo-column .av-cal-student-stats-column {
		margin-left: 50px;
		width: calc(100% - 280px - 50px);
		flex: 1 1 auto;
	}
}

/* Students card — mobile */
@media (max-width: 767px) {
	.av-cal-students {
		min-height: 0;
		gap: 12px;
	}

	.av-cal-student-card {
		padding: 14px 12px;
		overflow-x: hidden;
		box-sizing: border-box;
	}

	.av-cal-student-card__head {
		margin-bottom: 12px;
	}

	.av-cal-student-card h3,
	.av-cal-student-card__name {
		font-size: clamp(20px, 5.5vw, 26px);
		flex: 1 1 auto;
		word-break: break-word;
	}

	.av-cal-student-card__identity {
		align-items: flex-start;
	}

	.av-cal-student-card__contact-row {
		margin-top: 10px;
	}

	.av-cal-student-card__head .av-cal-student-contact__actions,
	.av-cal-student-contact__actions {
		display: grid;
		grid-template-columns: 1fr;
		gap: 8px;
		width: 100%;
	}

	.av-cal-student-card__head .av-cal-quick-contact__btn,
	.av-cal-student-contact__actions .av-cal-quick-contact__btn {
		width: 100%;
		justify-content: center;
		box-sizing: border-box;
	}

	.av-cal-student-card-body.av-cal-profile-card {
		gap: 16px;
	}

	.av-cal-student-photo-column {
		width: 100%;
		max-width: min(280px, 100%);
		margin: 0 auto;
	}

	.av-cal-students .av-cal-student-stats-column,
	.av-cal-teachers .av-cal-student-stats-column {
		width: 100%;
		margin-left: 0 !important;
		min-width: 0;
	}

	.av-cal-teachers .av-cal-student-card__head .av-cal-student-contact__actions {
		display: grid;
		grid-template-columns: 1fr;
		gap: 8px;
		width: 100%;
	}

	.av-cal-teachers .av-cal-student-card__head .av-cal-quick-contact__btn {
		width: 100%;
		justify-content: center;
		box-sizing: border-box;
	}

	.av-cal-teachers .av-cal-teacher-fields .av-cal-student-actions {
		display: grid;
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.av-cal-teachers .av-cal-teacher-fields .av-cal-student-actions .av-cal-btn {
		width: 100%;
		justify-content: center;
	}

	.av-cal-students.av-cal-teachers {
		gap: 12px;
	}

	.av-cal-teachers .av-cal-student-card {
		padding: 14px 12px;
	}

	.av-cal-teachers .av-cal-student-card-body.av-cal-profile-card {
		flex-direction: column;
		gap: 16px;
	}

	.av-cal-teachers .av-cal-student-photo-column {
		width: 100%;
		max-width: min(280px, 100%);
		margin: 0 auto;
	}

	.av-cal-teachers .av-cal-profile-stats__period {
		margin: -4px 0 10px;
		font-size: 12px;
	}

	.av-cal-teachers .av-cal-profile-stats--student-stack .av-cal-profile-stats__table-wrap {
		margin: 0 -4px;
		padding: 0 4px;
	}

	.av-cal-stats-table--studio-merged {
		min-width: 300px;
		font-size: 12px;
	}

	.av-cal-stats-table--studio-merged thead th,
	.av-cal-stats-table--studio-merged tbody td,
	.av-cal-stats-table--studio-merged tfoot td {
		padding: 8px 6px;
	}

	.av-cal-stats-table--teacher-students {
		min-width: 260px;
	}

	.av-cal-teachers.av-cal-students {
		min-height: 0;
	}

	.av-cal-teachers .av-cal-students-list {
		max-height: min(240px, 38vh);
	}

	.av-cal-teachers .av-cal-students-items {
		max-height: min(200px, 32vh);
	}

	.av-cal-teachers .av-cal-teacher-card {
		min-width: 0;
		overflow-x: hidden;
	}

	.av-cal-teachers .av-cal-profile-card--studio .av-cal-student-stats-column {
		width: 100%;
		max-width: 100%;
	}

	.av-cal-teachers .av-cal-profile-stats__table-wrap {
		position: relative;
		max-width: 100%;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-x: contain;
	}

	.av-cal-teachers .av-cal-profile-stats__table-wrap::after {
		content: '';
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		width: 20px;
		pointer-events: none;
		background: linear-gradient(90deg, transparent, rgba(5, 5, 8, 0.85));
		opacity: 0.85;
	}

	.av-cal-stats-table--studio-merged tbody td:first-child {
		max-width: 0;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.av-cal-teachers .av-cal-studio-acting-summary {
		margin-top: 14px;
		padding: 12px;
	}

	.av-cal-teachers .av-cal-studio-acting-summary__head,
	.av-cal-teachers .av-cal-studio-acting-summary__actions {
		justify-content: center;
	}

	.av-cal-teachers .av-cal-studio-acting-summary__head {
		margin-bottom: 10px;
	}

	.av-cal-teachers .av-cal-studio-acting-summary__heading,
	.av-cal-teachers .av-cal-studio-acting-summary__label {
		white-space: normal;
		text-align: center;
	}

	.av-cal-teachers .av-cal-studio-acting-summary__value {
		font-size: 22px;
		padding: 6px 14px;
	}

	.av-cal-teachers .av-cal-studio-acting-summary__rental {
		padding: 10px 14px;
		font-size: 13px;
	}

	.av-cal-stats-table--studio-merged tfoot .av-cal-stats-table__total-row--students .av-cal-stats-table__total-label {
		font-size: 12px;
		line-height: 1.3;
		white-space: normal;
	}

	.av-cal-stats-table__role {
		font-size: 10px;
		padding: 3px 8px;
	}

	.av-cal-profile-stats--student-stack {
		gap: 16px;
	}

	.av-cal-profile-stats--student-stack .av-cal-profile-stats__section--panel {
		padding: 14px 12px;
		border-radius: 12px;
	}

	.av-cal-profile-stats--student-stack .av-cal-profile-stats__title--panel {
		font-size: 16px;
		margin-bottom: 10px;
	}

	.av-cal-profile-stats--student-stack .av-cal-profile-stats__panel-inner {
		padding: 4px;
	}

	.av-cal-profile-stats--student-stack .av-cal-profile-stats__table-wrap {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		margin: 0 -2px;
		padding: 0 2px;
	}

	.av-cal-profile-stats--student-stack .av-cal-stats-table--subjects {
		font-size: 13px;
		min-width: 280px;
	}

	.av-cal-profile-stats--student-stack .av-cal-stats-table--subjects thead th {
		font-size: 11px;
		padding: 10px 8px;
	}

	.av-cal-profile-stats--student-stack .av-cal-stats-table--subjects tbody td,
	.av-cal-profile-stats--student-stack .av-cal-stats-table--subjects tfoot td {
		padding: 10px 8px;
		font-size: 13px;
	}

	.av-cal-profile-stats__section--blocks .av-cal-completed-blocks__row {
		grid-template-columns: 2.25em 1fr auto;
		grid-template-areas:
			"no name hours"
			"no dates dates"
			"no done done";
		gap: 6px 10px;
		padding: 10px 12px;
		font-size: 14px;
	}

	.av-cal-completed-blocks__no {
		grid-area: no;
		align-self: start;
	}

	.av-cal-profile-stats__section--blocks .av-cal-completed-blocks__name {
		grid-area: name;
		min-width: 0;
	}

	.av-cal-profile-stats__section--blocks .av-cal-completed-blocks__dates {
		grid-area: dates;
		font-size: 12px;
		line-height: 1.4;
		white-space: normal;
	}

	.av-cal-profile-stats__section--blocks .av-cal-completed-blocks__hours {
		grid-area: hours;
		align-self: start;
		font-size: 13px;
	}

	.av-cal-profile-stats__section--blocks .av-cal-completed-blocks__done {
		grid-area: done;
		justify-self: end;
	}

	.av-cal-completed-blocks__subtotal {
		flex-direction: column;
		align-items: stretch;
		text-align: center;
		padding: 12px;
	}

	.av-cal-completed-blocks__subtotal-value {
		font-size: 15px;
		word-break: break-word;
	}

	/* Students — mobile list */
	.av-cal-students-list {
		max-height: min(240px, 38vh);
	}

	.av-cal-students-items {
		max-height: min(200px, 32vh);
	}

	.av-cal-students-list-head {
		position: sticky;
		top: 0;
		z-index: 2;
	}

	.av-cal-student-item {
		min-height: 44px;
		display: flex;
		align-items: center;
	}

	.av-cal-students .av-cal-profile-stats__table-wrap {
		position: relative;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-x: contain;
	}

	.av-cal-students .av-cal-profile-stats__table-wrap::after {
		content: '';
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		width: 20px;
		pointer-events: none;
		background: linear-gradient(90deg, transparent, rgba(5, 5, 8, 0.85));
		opacity: 0.85;
	}

	/* Teachers — wide stats table */
	.av-cal-teacher-stats-table-wrap {
		position: relative;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		margin: 0 -4px;
		padding: 0 4px;
		overscroll-behavior-x: contain;
	}

	.av-cal-teacher-stats-table-wrap::after {
		content: '';
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		width: 20px;
		pointer-events: none;
		background: linear-gradient(90deg, transparent, rgba(5, 5, 8, 0.85));
		opacity: 0.85;
	}

	.av-cal-stats-table--teacher-clear {
		min-width: 520px;
		font-size: 11px;
	}

	.av-cal-stats-table--teacher-clear thead th,
	.av-cal-stats-table--teacher-clear tbody td,
	.av-cal-stats-table--teacher-clear tfoot td {
		padding: 8px 6px;
	}

	.av-cal-stats-table--teacher-clear tfoot .av-cal-stats-table__total-label {
		font-size: 15px !important;
		white-space: nowrap;
	}

	.av-cal-teacher-fields .av-cal-field input,
	.av-cal-teacher-fields .av-cal-field textarea,
	.av-cal-teacher-fields .av-cal-field select {
		width: 100%;
		box-sizing: border-box;
	}

	/* Broadcast — mobile cards */
	.av-cal-broadcast {
		padding: 12px;
		border-radius: 12px;
	}

	.av-cal-broadcast-settings {
		padding: 10px 12px;
	}

	.av-cal-broadcast-settings[open] {
		padding: 12px;
	}

	.av-cal-broadcast-settings__summary {
		align-items: flex-start;
	}

	.av-cal-broadcast-settings__row {
		flex-direction: column;
		align-items: stretch;
		gap: 8px;
	}

	.av-cal-broadcast-settings__input {
		flex: 1 1 100%;
		width: 100%;
	}

	.av-cal-broadcast-settings__save {
		width: 100%;
		padding: 12px;
	}

	.av-cal-broadcast-settings__actions {
		flex-direction: column;
	}

	.av-cal-broadcast-settings__actions .av-cal-btn {
		width: 100%;
		justify-content: center;
	}

	.av-cal-broadcast__toolbar {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
	}

	.av-cal-broadcast__search {
		max-width: none;
		flex: 1 1 100%;
		width: 100%;
	}

	.av-cal-broadcast__select-all {
		padding: 8px 0;
	}

	.av-cal-broadcast-table-wrap {
		max-height: none;
		border: none;
		overflow: visible;
	}

	.av-cal-broadcast-table thead {
		display: none;
	}

	.av-cal-broadcast-table,
	.av-cal-broadcast-table tbody,
	.av-cal-broadcast-table tr,
	.av-cal-broadcast-table td {
		display: block;
		width: 100%;
	}

	.av-cal-broadcast-table tr {
		margin-bottom: 10px;
		padding: 12px;
		border: 1px solid rgba(255, 255, 255, 0.1);
		border-radius: 10px;
		background: #12121a !important;
		box-sizing: border-box;
	}

	.av-cal-broadcast-table td {
		padding: 6px 0;
		border: none;
	}

	.av-cal-broadcast-table td:not(.av-cal-broadcast-table__check)::before {
		content: attr(data-label);
		display: block;
		margin-bottom: 4px;
		font-size: 10px;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		color: rgba(255, 255, 255, 0.45) !important;
	}

	.av-cal-broadcast-table__check {
		width: auto;
		text-align: left !important;
		margin-bottom: 4px;
		padding-bottom: 8px;
		border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
	}

	.av-cal-broadcast-table__check::before {
		display: none !important;
	}

	.av-cal-broadcast-table__check input {
		width: 18px;
		height: 18px;
		margin-right: 8px;
		vertical-align: middle;
	}

	.av-cal-modal--broadcast textarea {
		min-height: 180px;
	}
}

@media (max-width: 479px) {
	.av-cal-student-card,
	.av-cal-teachers .av-cal-teacher-card {
		padding: 12px 10px;
	}

	.av-cal-students-list,
	.av-cal-teachers .av-cal-students-list {
		max-height: min(220px, 36vh);
	}

	.av-cal-students-items,
	.av-cal-teachers .av-cal-students-items {
		max-height: min(180px, 30vh);
	}

	.av-cal-profile-card .av-cal-student-photo__preview {
		min-height: 0;
		max-height: 320px;
	}

	.av-cal-profile-stats--student-stack .av-cal-stats-table--subjects {
		min-width: 260px;
	}

	.av-cal-stats-table--studio-merged {
		min-width: 0;
		width: 100%;
		font-size: 11px;
	}

	.av-cal-teachers .av-cal-student-card__name {
		font-size: clamp(18px, 5vw, 22px);
	}

	.av-cal-teachers .av-cal-studio-acting-summary__value {
		font-size: 20px;
		padding: 6px 12px;
	}

	.av-cal-stats-table--teacher-students {
		min-width: 0;
		width: 100%;
	}

	.av-cal-stats-table--teacher-clear {
		min-width: 0;
		width: 100%;
		font-size: 10px;
	}

	.av-cal-stats-table--teacher-clear .av-cal-stats-table__student-col,
	.av-cal-stats-table--teacher-clear .av-cal-stats-table__total-head {
		min-width: 76px;
		width: auto;
		font-size: 10px;
		padding: 8px 4px;
	}

	.av-cal-stats-table--studio-merged thead th.av-cal-stats-table__col-total,
	.av-cal-stats-table--studio-merged tbody td.av-cal-stats-table__col-total,
	.av-cal-stats-table--studio-merged tfoot td.av-cal-stats-table__col-total {
		width: 72px;
		min-width: 72px;
		padding-left: 6px;
		padding-right: 6px;
		font-size: 10px;
	}

	.av-cal-stats-table--studio-merged thead th:not(.av-cal-stats-table__col-total),
	.av-cal-stats-table--studio-merged tbody td:not(.av-cal-stats-table__col-total) {
		padding: 7px 5px;
	}
}

.av-cal-profile-card {
	align-items: flex-start;
}

.av-cal-profile-columns {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 20px;
	min-width: 0;
}

@media (min-width: 900px) {
	.av-cal-profile-columns {
		flex-direction: row;
		align-items: flex-start;
		gap: 24px;
	}
}

.av-cal-profile-fields {
	flex: 0 1 260px;
	min-width: 0;
	max-width: 280px;
	width: 100%;
}

.av-cal-profile-fields .av-cal-field input,
.av-cal-profile-fields .av-cal-field textarea {
	max-width: 100%;
}

.av-cal-student-fields {
	flex: 1;
	min-width: 0;
}

.av-cal-student-actions {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 12px;
	margin-top: 8px;
}

.av-cal-student-actions .av-cal-btn {
	flex: 0 0 auto;
	white-space: nowrap;
}

.av-cal-profile-stats {
	flex: 1;
	min-width: 0;
}

@media (min-width: 900px) {
	.av-cal-profile-stats:not(.av-cal-profile-stats--student-stack) {
		min-width: 360px;
		max-width: 640px;
	}
}

.av-cal-profile-stats--studio {
	flex: 1 1 100%;
	max-width: none;
	width: 100%;
	margin-top: 8px;
}

.av-cal-profile-stats__period {
	margin: -6px 0 12px;
	font-size: 13px;
	font-weight: 600;
	color: #00ffd1 !important;
	letter-spacing: 0.02em;
}

/* Teachers card (same layout as students) */
.av-cal-students.av-cal-teachers {
	width: 100%;
	min-width: 0;
}

.av-cal-teacher-card,
.av-cal-teacher-card__body,
.av-cal-teachers .av-cal-student-stats-column {
	min-width: 0;
	max-width: 100%;
}

.av-cal-teachers .av-cal-student-card,
.av-cal-teachers .av-cal-teacher-card {
	overflow-x: hidden;
	box-sizing: border-box;
}

.av-cal-teachers .av-cal-student-card-body.av-cal-profile-card {
	width: 100%;
	min-width: 0;
}

.av-cal-teacher-fields .av-cal-field {
	margin-bottom: 12px;
}

.av-cal-teacher-fields .av-cal-field:last-of-type {
	margin-bottom: 0;
}

.av-cal-teacher-fields .av-cal-student-actions {
	margin-top: 14px;
	flex-wrap: wrap;
}

.av-cal-teachers .av-cal-profile-stats--student-stack .av-cal-profile-stats__table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.av-cal-stats-table--teacher-students {
	min-width: 300px;
}

.av-cal-stats-table__student-name {
	font-weight: 600;
	color: #ffffff !important;
	min-width: 120px;
}

.av-cal-teachers .av-cal-stats-table__subhead th {
	padding: 4px 10px 10px;
	white-space: nowrap;
}

.av-cal-teachers .av-cal-stats-table--subjects thead th,
.av-cal-teachers .av-cal-stats-table--subjects td {
	vertical-align: middle;
}

.av-cal-stats-table--studio-merged {
	width: 100%;
}

.av-cal-stats-table__total-row--students .av-cal-stats-table__total-label {
	font-size: 13px;
}

.av-cal-stats-table--studio-merged {
	table-layout: fixed;
}

.av-cal-stats-table--studio-merged thead th.av-cal-stats-table__col-total {
	width: 88px;
	min-width: 88px;
	padding-left: 10px;
	padding-right: 10px;
	text-align: center !important;
	vertical-align: middle !important;
	white-space: nowrap;
	font-size: 11px;
	line-height: 1.3;
	letter-spacing: 0.02em;
}

.av-cal-stats-table--studio-merged tbody td.av-cal-stats-table__col-total,
.av-cal-stats-table--studio-merged tfoot td.av-cal-stats-table__col-total {
	width: 88px;
	min-width: 88px;
	padding-left: 10px;
	padding-right: 10px;
	text-align: center !important;
	vertical-align: middle !important;
	white-space: nowrap;
}

.av-cal-stats-table--studio-merged tfoot .av-cal-stats-table__total-row--students .av-cal-stats-table__total-label {
	padding-left: 14px;
	padding-right: 12px;
	text-align: left;
	vertical-align: middle !important;
}

.av-cal-stats-table--teacher-students thead th.av-cal-stats-table__col-total {
	text-align: center !important;
}

.av-cal-teacher-stats-table-wrap {
	margin-top: 2px;
}

.av-cal-stats-table--teacher-clear {
	min-width: 560px;
	table-layout: auto;
}

.av-cal-stats-table--teacher-clear thead th {
	vertical-align: middle !important;
	text-align: center;
}

.av-cal-stats-table--teacher-clear .av-cal-stats-table__student-col,
.av-cal-stats-table--teacher-clear .av-cal-stats-table__total-head {
	text-align: center !important;
	vertical-align: middle !important;
	min-width: 132px;
	width: 22%;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.35;
	padding: 10px 8px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.av-cal-stats-table--teacher-clear .av-cal-stats-table__student-col {
	white-space: normal;
	color: #00ffd1 !important;
	background: rgba(0, 255, 209, 0.1) !important;
}

.av-cal-stats-table--teacher-clear .av-cal-stats-table__total-head {
	white-space: normal;
	color: #ffc44d !important;
	background: rgba(255, 196, 77, 0.12) !important;
	border-left: 1px solid rgba(255, 196, 77, 0.22);
}

.av-cal-stats-table--teacher-clear tbody .av-cal-stats-table__student-name {
	text-align: left !important;
}

.av-cal-stats-table--teacher-clear .av-cal-stats-table__subject-head {
	text-align: center !important;
	padding: 10px 8px 6px;
	font-size: 11px;
	line-height: 1.35;
	white-space: normal;
	word-break: break-word;
	border-left: 1px solid rgba(255, 255, 255, 0.08);
}

.av-cal-stats-table--teacher-clear .av-cal-stats-table__subject-head--stage {
	background: rgba(147, 112, 219, 0.14) !important;
	color: #d8c4ff !important;
}

.av-cal-stats-table--teacher-clear .av-cal-stats-table__subject-head--acting {
	background: rgba(0, 255, 209, 0.12) !important;
	color: #00ffd1 !important;
}

.av-cal-stats-table--teacher-clear .av-cal-stats-table__subhead-cell {
	padding: 4px 8px 10px;
	font-size: 10px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.55) !important;
	border-left: 1px solid rgba(255, 255, 255, 0.06);
}

.av-cal-stats-table--teacher-clear .av-cal-stats-table__metric-cell {
	border-left: 1px solid rgba(255, 255, 255, 0.05);
	font-variant-numeric: tabular-nums;
}

.av-cal-stats-table--teacher-clear .av-cal-stats-table__metric-cell--stage {
	background: rgba(147, 112, 219, 0.04);
}

.av-cal-stats-table--teacher-clear .av-cal-stats-table__metric-cell--acting {
	background: rgba(0, 255, 209, 0.04);
}

.av-cal-stats-table--teacher-clear .av-cal-stats-table__metric-cell--month strong {
	color: #ffffff !important;
	font-weight: 700;
}

.av-cal-stats-table--teacher-clear .av-cal-stats-table__metric-cell--total {
	background: rgba(255, 196, 77, 0.06);
	border-left: 1px solid rgba(255, 196, 77, 0.16);
}

.av-cal-stats-table--teacher-clear .av-cal-stats-table__row--alt .av-cal-stats-table__metric-cell--stage {
	background: rgba(147, 112, 219, 0.08);
}

.av-cal-stats-table--teacher-clear .av-cal-stats-table__row--alt .av-cal-stats-table__metric-cell--acting {
	background: rgba(0, 255, 209, 0.08);
}

.av-cal-stats-table--teacher-clear .av-cal-stats-table__row--alt .av-cal-stats-table__metric-cell--total {
	background: rgba(255, 196, 77, 0.1);
}

.av-cal-stats-table--teacher-clear tfoot .av-cal-stats-table__total-row td {
	border-top: 1px solid rgba(0, 255, 209, 0.22);
	background: rgba(0, 255, 209, 0.08) !important;
}

.av-cal-stats-table--teacher-clear tfoot .av-cal-stats-table__total-label {
	text-align: left !important;
	padding-left: 14px;
	white-space: nowrap;
	font-size: 15px !important;
	font-weight: 700 !important;
	min-width: max-content;
}

.av-cal-stats-table--teacher-clear tfoot .av-cal-stats-table__metric-cell--total {
	background: rgba(255, 196, 77, 0.14) !important;
}

.av-cal-studio-acting-summary__heading {
	margin: 0;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.35;
	color: #00ffd1 !important;
}

.av-cal-studio-acting-summary__label {
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.35;
	color: rgba(255, 255, 255, 0.92) !important;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.av-cal-studio-acting-summary__subject {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 600;
	color: #00ffd1 !important;
}

.av-cal-studio-rental-modal__heading {
	margin: 0 0 8px;
	font-size: 18px;
	line-height: 1.35;
	white-space: nowrap;
}

.av-cal-studio-acting-summary__title {
	margin: 0 0 4px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.62) !important;
}

.av-cal-stats-table--teacher-students tbody td.av-cal-stats-table__col-total,
.av-cal-stats-table--teacher-students tfoot td.av-cal-stats-table__col-total {
	padding-left: 14px;
	padding-right: 14px;
	text-align: center !important;
	vertical-align: middle !important;
}

.av-cal-studio-acting-summary {
	margin-top: 18px;
	padding: 14px 14px 16px;
	border-radius: 10px;
	border: 1px solid rgba(0, 255, 209, 0.22);
	background: rgba(0, 255, 209, 0.06);
	text-align: center;
}

.av-cal-studio-acting-summary__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px 12px;
	margin: 0 0 12px;
	padding: 0 2px;
	line-height: 1.45;
}

.av-cal-studio-acting-summary__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 12px 16px;
	margin: 0;
	padding: 0 2px;
}

.av-cal-studio-acting-summary__value {
	display: inline-block;
	flex: 0 0 auto;
	padding: 6px 14px;
	font-size: 22px;
	font-weight: 800;
	line-height: 1.1;
	color: #050505 !important;
	-webkit-text-fill-color: #050505;
	background: linear-gradient(120deg, #00ffd1 0%, #5eead4 40%, #fde047 100%) !important;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 10px;
	box-shadow:
		0 0 20px rgba(0, 255, 209, 0.45),
		0 4px 14px rgba(0, 0, 0, 0.35),
		inset 0 1px 0 rgba(255, 255, 255, 0.55);
	text-shadow: none;
}

.av-cal-studio-acting-summary__rental {
	flex: 0 0 auto;
	width: auto;
	max-width: none;
	margin: 0;
}

.av-cal-modal--studio-rental .av-cal-studio-rental-modal__list-title {
	margin: 0 0 10px;
	font-size: 12px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.85) !important;
}

.av-cal-modal-actions [data-action="studio-rental-copy"] {
	position: relative;
}

.av-cal-copy-tooltip {
	position: absolute;
	left: 50%;
	bottom: calc(100% + 10px);
	transform: translateX(-50%);
	padding: 7px 14px;
	border-radius: 8px;
	background: #00ffd1 !important;
	color: #050505 !important;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	z-index: 12;
	pointer-events: none;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.4);
	animation: av-cal-copy-tooltip-in 0.2s ease;
}

.av-cal-copy-tooltip::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 100%;
	transform: translateX(-50%);
	border: 6px solid transparent;
	border-top-color: #00ffd1;
}

@keyframes av-cal-copy-tooltip-in {
	from {
		opacity: 0;
		transform: translateX(-50%) translateY(4px);
	}
	to {
		opacity: 1;
		transform: translateX(-50%) translateY(0);
	}
}

.av-cal-modal--studio-rental .av-cal-studio-rental-modal__subject {
	margin: 0 0 6px;
	font-size: 13px;
	font-weight: 600;
	color: #00ffd1 !important;
}

.av-cal-modal--studio-rental .av-cal-studio-rental-modal__rate {
	margin: 0 0 14px;
	font-size: 12px;
	color: var(--av-cal-muted) !important;
}

.av-cal-modal--studio-rental .av-cal-studio-rental-modal__empty {
	margin: 0;
	font-size: 13px;
	color: var(--av-cal-muted) !important;
}

.av-cal-modal--studio-rental .av-cal-studio-rental-modal__list-wrap {
	max-height: min(52vh, 420px);
	overflow: auto;
	margin-bottom: 4px;
}

.av-cal-studio-rental-modal__table {
	margin: 0;
}

.av-cal-studio-hint {
	margin: 0 0 14px;
	font-size: 12px;
	line-height: 1.45;
	color: var(--av-cal-muted) !important;
}

.av-cal-studio-block {
	margin-bottom: 22px;
	padding-bottom: 18px;
	border-bottom: 1px solid rgba(0, 255, 209, 0.12);
}

.av-cal-studio-block:last-child {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}

.av-cal-studio-block__title {
	margin: 0 0 12px;
	font-size: 13px;
	font-weight: 600;
	color: #00ffd1 !important;
}

.av-cal-studio-block__heading {
	margin: 0 0 6px;
	font-size: 12px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.85) !important;
}

.av-cal-stats-table--studio-clear {
	margin-bottom: 14px;
}

.av-cal-stats-table--studio-clear .av-cal-stats-table__empty {
	text-align: center;
	color: var(--av-cal-muted) !important;
	font-style: italic;
}

.av-cal-subject-picks--single {
	margin-top: 4px;
}

.av-cal-teacher-slot__subject-label {
	display: block;
	margin: 6px 0 4px;
	font-size: 11px;
	color: var(--av-cal-muted) !important;
}

.av-cal-teacher-slot__teacher,
.av-cal-teacher-slot__subject {
	margin-bottom: 0;
}

.av-cal-teacher-slot__teacher > label,
.av-cal-teacher-slot__subject > label {
	display: block;
	margin-bottom: 6px;
	font-size: 12px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.85) !important;
}

.av-cal-teacher-slot.is-confirmed .av-cal-teacher-slot__teacher,
.av-cal-teacher-slot.is-confirmed .av-cal-teacher-slot__subject {
	display: none !important;
}

.av-cal-teacher-slot__summary {
	display: none;
	padding: 10px 12px;
	border-radius: 8px;
	background: rgba(0, 255, 209, 0.08);
	border: 1px solid rgba(0, 255, 209, 0.2);
	font-size: 13px;
	color: #ffffff !important;
}

.av-cal-teacher-slot.is-confirmed .av-cal-teacher-slot__summary {
	display: block;
}

.av-cal-teacher-slot__change {
	align-self: flex-start;
	margin-top: 4px;
	font-size: 12px;
	padding: 4px 10px;
}

.av-cal-teacher-subject-manual {
	margin-top: 12px;
}

.av-cal-teacher-subject-manual__label {
	display: block;
	margin-bottom: 6px;
	font-size: 12px;
	color: var(--av-cal-muted) !important;
}

.av-cal-teacher-subject-manual__wrap {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.av-cal-teacher-subject-manual__wrap input[type="text"] {
	flex: 1 1 180px;
	min-width: 0;
}

.av-cal-teacher-subject-manual__add {
	flex: 0 0 auto;
}

.av-cal-confirmable-field__picker[hidden] {
	display: none !important;
}

.av-cal-confirmable-field__summary {
	display: none;
	padding: 10px 12px;
	border-radius: 8px;
	background: rgba(0, 255, 209, 0.08);
	border: 1px solid rgba(0, 255, 209, 0.2);
	font-size: 13px;
	color: #ffffff !important;
	margin-top: 4px;
}

.av-cal-confirmable-field.is-confirmed .av-cal-confirmable-field__summary {
	display: block;
}

.av-cal-confirmable-field__change {
	margin-top: 6px;
	font-size: 12px;
	padding: 4px 10px;
}

.av-cal-teacher-slot[hidden] {
	display: none !important;
}

.av-cal-teacher-assignments > label {
	display: block;
	margin-bottom: 8px;
}

.av-cal-lesson-teachers-row,
.av-cal-lesson-subjects-row {
	margin-bottom: 12px;
}

.av-cal-lesson-teacher-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 8px;
}

.av-cal-lesson-teacher-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	border-radius: 6px;
	background: rgba(0, 255, 209, 0.1);
	border: 1px solid rgba(0, 255, 209, 0.22);
	font-size: 12px;
	color: #fff !important;
}

.av-cal-lesson-teacher-chip__remove {
	border: none;
	background: transparent;
	color: rgba(255, 255, 255, 0.55) !important;
	cursor: pointer;
	font-size: 16px;
	line-height: 1;
	padding: 0 2px;
}

.av-cal-lesson-teacher-chip__remove:hover {
	color: #ff6b6b !important;
}

.av-cal-lesson-teacher-add {
	margin-top: 0;
}

.av-cal-lesson-subject-lines {
	margin-top: 4px;
}

.av-cal-lesson-subject-line {
	padding: 8px 0 10px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.av-cal-lesson-subject-line:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.av-cal-lesson-subject-line__teacher {
	margin-bottom: 6px;
	font-size: 11px;
	font-weight: 600;
	color: var(--av-cal-muted) !important;
}

.av-cal-lesson-subject-search {
	margin-top: 6px;
}

.av-cal-lesson-subject-line__label {
	display: block;
	margin-bottom: 4px;
	font-size: 11px;
	font-weight: 600;
	color: var(--av-cal-muted) !important;
}

.av-cal-lesson-subject-search input[type="text"] {
	width: 100%;
}

.av-cal-stats-table--studio-compact {
	font-size: 11px;
}

.av-cal-stats-table--studio-compact th,
.av-cal-stats-table--studio-compact td {
	padding: 5px 8px;
}

.av-cal-stats-table--studio-compact thead th {
	font-size: 10px;
}

.av-cal-stats-table__role {
	display: inline-block;
	white-space: nowrap;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.2;
	padding: 4px 10px;
	border-radius: 6px;
}

.av-cal-stats-table__role--student {
	color: #00ffd1 !important;
	background: rgba(0, 255, 209, 0.12);
	border: 1px solid rgba(0, 255, 209, 0.28);
}

.av-cal-stats-table__role--teacher {
	color: #b8b0ff !important;
	background: rgba(108, 99, 255, 0.18);
	border: 1px solid rgba(155, 148, 255, 0.35);
}

.av-cal-stats-table--studio-merged thead th.av-cal-stats-table__col-center,
.av-cal-stats-table--studio-merged tbody td.av-cal-stats-table__col-center {
	text-align: center !important;
	vertical-align: middle !important;
	font-variant-numeric: tabular-nums;
}

.av-cal-stats-table--studio-merged tbody td.av-cal-stats-table__col-center strong {
	color: #00ffd1 !important;
}

.av-cal-profile-stats--studio .av-cal-studio-block__title {
	font-size: 12px;
	margin-bottom: 8px;
}

.av-cal-teacher-slot {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 10px 12px;
	margin-bottom: 10px;
	border: 1px solid var(--av-cal-border);
	border-radius: 10px;
	background: rgba(10, 10, 12, 0.85);
}

.av-cal-teacher-slot__label {
	font-size: 11px;
	font-weight: 600;
	color: var(--av-cal-muted) !important;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.av-cal-teacher-slot__search .av-cal-autocomplete-list {
	position: static;
	margin-top: 4px;
}

.av-cal-subject-picks--radio {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 12px 16px;
}

.av-cal-subject-picks {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 4px;
}

.av-cal-subject-pick {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 13px;
	line-height: 1.35;
	color: #ffffff !important;
	cursor: pointer;
}

.av-cal-subject-pick input {
	margin-top: 3px;
	accent-color: #00ffd1;
	flex-shrink: 0;
}

.av-cal-stats-table--subjects tfoot td {
	font-weight: 600;
}

.av-cal-stats-table__col-center {
	text-align: center !important;
	vertical-align: middle !important;
}

.av-cal-stats-table--subjects tbody td.av-cal-stats-table__col-center,
.av-cal-stats-table--subjects thead th.av-cal-stats-table__col-center {
	font-variant-numeric: tabular-nums;
}

.av-cal-stats-table--blocks tbody td.av-cal-stats-table__col-center {
	font-variant-numeric: tabular-nums;
	font-weight: 600;
}

.av-cal-stats-table--subjects tfoot .av-cal-stats-table__total-row td {
	border-bottom: none;
	padding: 16px 14px;
	background: linear-gradient(
		135deg,
		rgba(12, 28, 32, 0.95) 0%,
		rgba(22, 24, 42, 0.92) 50%,
		rgba(28, 22, 48, 0.92) 100%
	) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
	border-top: 1px solid rgba(0, 255, 209, 0.28);
}

.av-cal-stats-table__total-label {
	font-size: 15px !important;
	font-weight: 700 !important;
	letter-spacing: 0.02em;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.55);
}

.av-cal-stats-table__total-cell {
	position: relative;
}

.av-cal-profile-stats--student-stack .av-cal-stats-table__total-value {
	font-size: 20px;
}

.av-cal-stats-table__total-value {
	display: inline-block;
	position: relative;
	z-index: 1;
	padding: 6px 14px;
	font-size: 17px;
	font-weight: 800;
	line-height: 1.2;
	border-radius: 8px;
	color: #050505 !important;
	-webkit-text-fill-color: #050505;
	background: linear-gradient(120deg, #00ffd1 0%, #5eead4 45%, #93c5fd 100%) !important;
	border: 1px solid rgba(255, 255, 255, 0.35);
	box-shadow:
		0 2px 10px rgba(0, 255, 209, 0.35),
		inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

.av-cal-stats-table--subjects tfoot tr:not(.av-cal-stats-table__total-row) td:first-child {
	color: rgba(255, 255, 255, 0.92) !important;
}

.av-cal-stats-table--studio {
	margin-bottom: 8px;
}

.av-cal-stats-table--studio-total {
	margin-bottom: 20px;
	border-top: none;
}

.av-cal-stats-table--studio-total tfoot td {
	background: rgba(0, 255, 209, 0.14) !important;
	color: #00ffd1 !important;
	font-size: 13px;
}

.av-cal-stats-table__subhead th {
	font-size: 11px;
	font-weight: 600;
	color: var(--av-cal-muted) !important;
	background: transparent !important;
	text-transform: none;
	letter-spacing: 0;
	padding-top: 0;
}

.av-cal-profile-card--studio .av-cal-profile-columns {
	flex: 1 1 320px;
}

.av-cal-profile-stats__title {
	margin: 0 0 10px;
	font-size: 13px;
	font-weight: 600;
	color: #00ffd1 !important;
}

.av-cal-profile-stats__subtitle {
	margin: 14px 0 8px;
	font-size: 12px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.75) !important;
}

.av-cal-profile-stats__section {
	margin: 10px 0 6px;
	font-size: 11px;
	font-weight: 600;
	color: var(--av-cal-accent) !important;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.av-cal-stats-table--compact {
	font-size: 11px;
}

.av-cal-stats-table--compact th,
.av-cal-stats-table--compact td {
	padding: 6px 8px;
}

.av-cal-profile-stats__subject {
	margin: -4px 0 10px;
	font-size: 12px;
	color: var(--av-cal-muted) !important;
}

.av-cal-profile-stats__empty {
	margin: 0;
	font-size: 12px;
	color: var(--av-cal-muted) !important;
}

.av-cal-stats-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	font-size: 14px;
	color: #ffffff !important;
	border: 1px solid var(--av-cal-border);
	border-radius: 10px;
	overflow: hidden;
	background: #0a0a0c !important;
}

.av-cal-stats-table th,
.av-cal-stats-table td {
	padding: 12px 14px;
	text-align: left;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
	vertical-align: top;
}

.av-cal-stats-table thead th {
	background: rgba(0, 255, 209, 0.1) !important;
	color: #00ffd1 !important;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.av-cal-stats-table tfoot td {
	background: rgba(0, 255, 209, 0.06) !important;
	font-weight: 700;
	border-bottom: none;
}

.av-cal-stats-table tbody tr:last-child td {
	border-bottom: none;
}

.av-cal-stats-table--lessons {
	margin-top: 0;
	max-height: 240px;
	display: block;
	overflow-y: auto;
}

.av-cal-stats-table--lessons thead,
.av-cal-stats-table--lessons tbody {
	display: table;
	width: 100%;
	table-layout: fixed;
}

.av-cal-stats-table__check-col {
	width: 44px;
	text-align: center !important;
	vertical-align: middle !important;
	white-space: nowrap;
}

.av-cal-stats-check {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 26px;
	height: 26px;
	padding: 0;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 800;
	line-height: 1;
	color: #050505 !important;
	background: linear-gradient(135deg, #00ffd1 0%, #5eead4 40%, #818cf8 75%, #a78bfa 100%) !important;
	box-shadow:
		0 0 0 1px rgba(0, 255, 209, 0.35),
		0 4px 14px rgba(0, 255, 209, 0.28),
		inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

.av-cal-stats-table tr.is-done td {
	color: rgba(255, 255, 255, 0.9) !important;
}

.av-cal-student-photo {
	flex: 0 0 auto;
	width: 100%;
	max-width: 200px;
}

.av-cal-profile-card .av-cal-student-photo {
	width: 100%;
	max-width: 280px;
}

@media (min-width: 768px) {
	.av-cal-student-photo {
		width: 180px;
	}

	.av-cal-profile-card .av-cal-student-photo {
		width: 100%;
		max-width: 280px;
		flex-shrink: 0;
	}

	.av-cal-profile-card .av-cal-student-photo__preview {
		min-height: 280px;
		aspect-ratio: 3 / 4;
	}
}

.av-cal-student-photo__label {
	font-size: 12px;
	color: var(--av-cal-muted) !important;
	margin-bottom: 8px;
}

.av-cal-student-photo__preview {
	width: 100%;
	aspect-ratio: 3 / 4;
	border-radius: 10px;
	overflow: hidden;
	border: 1px solid var(--av-cal-border);
	background: #12121a;
	display: flex;
	align-items: center;
	justify-content: center;
}

.av-cal-student-photo__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.av-cal-student-photo__placeholder {
	padding: 16px;
	text-align: center;
	font-size: 13px;
	color: var(--av-cal-muted) !important;
}

.av-cal-student-photo__actions {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 10px;
}

.av-cal-btn--sm {
	padding: 8px 12px;
	font-size: 12px;
}

.av-cal-stats-table--blocks {
	margin-top: 16px;
}

.av-cal-stats-table--blocks .av-cal-stats-table__check-col {
	width: 44px;
	text-align: center;
}

.av-cal-quick-contact__btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 12px;
	border-radius: 8px;
	font-size: 12px;
	font-weight: 600;
	text-decoration: none;
	border: 1px solid var(--av-cal-border);
	background: #12121a !important;
	color: #ffffff !important;
}

.av-cal-quick-contact__btn:hover {
	border-color: #00ffd1;
	background: var(--av-cal-hover) !important;
	color: #00ffd1 !important;
}

button.av-cal-quick-contact__btn {
	cursor: pointer;
	font-family: inherit;
}

.av-cal-email-recipient {
	margin: 0 0 16px;
	font-size: 13px;
	color: var(--av-cal-muted) !important;
}

.av-cal-modal--email textarea {
	min-height: 140px;
	resize: vertical;
}

.av-cal-field {
	position: relative;
	margin-bottom: 14px;
}

.av-cal-modal-inner .av-cal-field:last-child {
	margin-bottom: 0;
}

.av-cal-autocomplete {
	position: relative;
}

.av-cal-field > label {
	display: block;
	font-size: 12px;
	color: var(--av-cal-muted) !important;
	margin-bottom: 4px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.artvoic-calendar-wrap .av-cal-field input,
.artvoic-calendar-wrap .av-cal-field textarea,
.artvoic-calendar-wrap .av-cal-field select,
.av-cal-modal-overlay .av-cal-field input,
.av-cal-modal-overlay .av-cal-field textarea,
.av-cal-modal-overlay .av-cal-field select {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--av-cal-border) !important;
	border-radius: 8px;
	font-size: 14px;
	background: #050508 !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff;
}

.artvoic-calendar-wrap .av-cal-field input:focus,
.artvoic-calendar-wrap .av-cal-field textarea:focus,
.artvoic-calendar-wrap .av-cal-field select:focus,
.av-cal-modal-overlay .av-cal-field input:focus,
.av-cal-modal-overlay .av-cal-field textarea:focus,
.av-cal-modal-overlay .av-cal-field select:focus {
	outline: none;
	border-color: #00ffd1 !important;
}

.artvoic-calendar-wrap .av-cal-btn {
	padding: 10px 18px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	border: 1px solid rgba(0, 255, 209, 0.35) !important;
	background: rgba(0, 255, 209, 0.14) !important;
	color: #000000 !important;
}

.artvoic-calendar-wrap .av-cal-btn:hover {
	border-color: #00ffd1 !important;
	background: rgba(0, 255, 209, 0.28) !important;
	color: #000000 !important;
}

.artvoic-calendar-wrap .av-cal-btn--cabinet-back {
	padding: 8px 14px;
	border: 1px solid rgba(255, 196, 77, 0.55) !important;
	border-radius: var(--av-cal-radius);
	background: rgba(255, 196, 77, 0.1) !important;
	color: #ffc44d !important;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.25;
	white-space: nowrap;
	transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease, color 0.2s ease;
}

.artvoic-calendar-wrap .av-cal-btn--cabinet-back:hover {
	background: #ffc44d !important;
	color: #050505 !important;
	border-color: #ffc44d !important;
	box-shadow: 0 0 20px rgba(255, 196, 77, 0.35);
	transform: translateY(-1px);
}

.artvoic-calendar-wrap .av-cal-cabinet-logout__return {
	border-color: rgba(255, 196, 77, 0.55) !important;
	background: rgba(255, 196, 77, 0.14) !important;
	color: #ffc44d !important;
}

.artvoic-calendar-wrap .av-cal-cabinet-logout__return:hover {
	background: #ffc44d !important;
	color: #050505 !important;
	border-color: #ffc44d !important;
	box-shadow: 0 0 20px rgba(255, 196, 77, 0.35);
}

.artvoic-calendar-wrap .av-cal-btn--primary {
	background: #00ffd1 !important;
	color: #000000 !important;
	border-color: #00ffd1 !important;
}

.artvoic-calendar-wrap .av-cal-btn--danger {
	color: #ff8a8a !important;
	border-color: rgba(255, 107, 107, 0.5) !important;
	background: rgba(255, 107, 107, 0.1) !important;
}

.av-cal-empty,
.av-cal-loading {
	padding: 40px 20px;
	text-align: center;
	color: var(--av-cal-muted) !important;
}

/* Modal — вне wrap, свои переменные и цвета */
.av-cal-modal-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.82) !important;
	backdrop-filter: blur(6px);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 9999999 !important;
	padding: 16px;
	pointer-events: auto;
	isolation: isolate;
	color: #ffffff !important;
}

.av-cal-modal {
	position: relative;
	z-index: 2;
	background: linear-gradient(165deg, #0f1218 0%, #0a0a0c 45%, #0d1018 100%) !important;
	border: 1px solid var(--av-cal-border);
	border-radius: 16px;
	width: 100%;
	max-width: 480px;
	max-height: min(90vh, 720px);
	display: flex;
	flex-direction: column;
	padding: 0;
	box-shadow:
		0 24px 64px rgba(0, 0, 0, 0.65),
		0 0 0 1px rgba(0, 255, 209, 0.1) inset;
	color: #ffffff !important;
	overflow: visible;
	pointer-events: auto;
}

.av-cal-modal-inner {
	overflow-y: auto;
	padding: 24px 24px 8px;
	max-height: min(calc(90vh - 80px), 620px);
}

.av-cal-modal-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 8px;
	padding: 12px 24px 24px;
	border-top: 1px solid var(--av-cal-border);
	background: rgba(0, 0, 0, 0.25) !important;
}

.av-cal-modal h3 {
	margin: 0 0 16px;
	font-size: 18px;
	color: #ffffff !important;
}

.av-cal-modal p {
	color: var(--av-cal-muted) !important;
}

.av-cal-modal-overlay .av-cal-btn {
	padding: 10px 18px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	border: 1px solid var(--av-cal-border) !important;
	background: #12121a !important;
	color: #ffffff !important;
}

.av-cal-modal-overlay .av-cal-btn--primary {
	background: #00ffd1 !important;
	color: #050505 !important;
	border-color: #00ffd1 !important;
}

.av-cal-modal-overlay .av-cal-btn--danger {
	color: #ff8a8a !important;
	border-color: rgba(255, 107, 107, 0.5) !important;
	background: rgba(255, 107, 107, 0.1) !important;
}

.av-cal-modal-actions--center {
	justify-content: center;
}

.av-cal-modal-actions--spread {
	justify-content: space-between;
	align-items: center;
}

.av-cal-modal-actions__group {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.av-cal-modal-overlay .av-cal-btn--close {
	min-width: 140px;
	padding: 12px 28px;
	border: none !important;
	color: #000000 !important;
	font-weight: 700;
	background: linear-gradient(135deg, #00ffd1 0%, #5ee7ff 45%, #6c63ff 100%) !important;
	box-shadow:
		0 8px 24px rgba(0, 255, 209, 0.28),
		0 4px 14px rgba(108, 99, 255, 0.18);
	transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
}

.av-cal-modal-overlay .av-cal-btn--close:hover {
	filter: brightness(1.06);
	transform: translateY(-1px);
	box-shadow:
		0 10px 28px rgba(0, 255, 209, 0.36),
		0 6px 18px rgba(108, 99, 255, 0.24);
}

.av-cal-context-menu {
	position: fixed;
	z-index: 100000000;
	min-width: 168px;
	padding: 6px;
	border-radius: 10px;
	background: linear-gradient(165deg, #141820 0%, #0a0a0c 100%) !important;
	border: 1px solid rgba(0, 255, 209, 0.28);
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.55);
}

.av-cal-context-menu__item {
	display: block;
	width: 100%;
	padding: 10px 14px;
	border: none;
	border-radius: 8px;
	background: transparent !important;
	color: #ffffff !important;
	font-size: 14px;
	font-weight: 600;
	text-align: left;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.av-cal-context-menu__item:hover {
	background: rgba(0, 255, 209, 0.12) !important;
	color: #00ffd1 !important;
}

.av-cal-autocomplete-list {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	margin-top: 4px;
	background: #12121a !important;
	border: 1px solid var(--av-cal-border);
	border-radius: 8px;
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.55);
	max-height: 260px;
	overflow-y: auto;
	z-index: 99999999;
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 6px;
}

/* В модалке урока подсказки не перекрывают подписи следующих полей */
.av-cal-modal-inner .av-cal-autocomplete-list {
	position: static;
	margin-top: 6px;
	margin-bottom: 2px;
	z-index: auto;
	box-shadow: none;
	max-height: 180px;
}

.av-cal-modal-inner .av-cal-autocomplete.is-open {
	z-index: auto;
}

.av-cal-datetime-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 8px;
	margin-bottom: 0;
}

.av-cal-datetime-chip {
	padding: 6px 12px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	border: 1px solid rgba(0, 255, 209, 0.28) !important;
	background: rgba(0, 255, 209, 0.08) !important;
	color: #ffffff !important;
	transition: background 0.18s ease, border-color 0.18s ease, transform 0.15s ease;
}

.av-cal-datetime-chip:hover {
	background: rgba(0, 255, 209, 0.16) !important;
	border-color: rgba(0, 255, 209, 0.45) !important;
	transform: translateY(-1px);
}

.av-cal-autocomplete-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 10px 12px;
	cursor: pointer;
	font-size: 14px;
	line-height: 1.35;
	color: #ffffff !important;
	border-radius: 6px;
}

.av-cal-autocomplete-item__text {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.av-cal-autocomplete-item__remove {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	padding: 0;
	border: none;
	border-radius: 6px;
	background: transparent !important;
	color: rgba(255, 255, 255, 0.45) !important;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.av-cal-autocomplete-item__remove:hover {
	background: rgba(255, 107, 107, 0.18) !important;
	color: #ff9a9a !important;
}

.av-cal-autocomplete-item:hover {
	background: var(--av-cal-hover) !important;
}

.av-cal-autocomplete-item:hover .av-cal-autocomplete-item__text {
	color: #00ffd1 !important;
}

.av-cal-leads-picker select {
	width: 100%;
	padding: 10px;
	border: 1px solid var(--av-cal-border) !important;
	border-radius: 8px;
	background: #050508 !important;
	color: #ffffff !important;
}

/* Broadcast */
.av-cal-broadcast {
	border: 1px solid var(--av-cal-border);
	border-radius: var(--av-cal-radius);
	background: #0a0a0c !important;
	padding: 16px;
}

.av-cal-broadcast-settings {
	margin-bottom: 18px;
	padding: 12px 16px;
	border: 1px solid rgba(0, 255, 209, 0.22);
	border-radius: 12px;
	background: linear-gradient(145deg, rgba(0, 255, 209, 0.06) 0%, rgba(108, 99, 255, 0.04) 100%);
}

.av-cal-broadcast-settings[open] {
	padding: 16px;
}

.av-cal-broadcast-settings__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	cursor: pointer;
	list-style: none;
	user-select: none;
}

.av-cal-broadcast-settings__summary::-webkit-details-marker {
	display: none;
}

.av-cal-broadcast-settings__summary-main {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	min-width: 0;
}

.av-cal-broadcast-settings__title {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	color: #ffffff !important;
}

.av-cal-broadcast-settings__badge {
	display: inline-flex;
	align-items: center;
	padding: 2px 8px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.4;
}

.av-cal-broadcast-settings__badge--ok {
	color: #00ffd1 !important;
	background: rgba(0, 255, 209, 0.12);
	border: 1px solid rgba(0, 255, 209, 0.28);
}

.av-cal-broadcast-settings__badge--warn {
	color: #ffb366 !important;
	background: rgba(255, 179, 102, 0.1);
	border: 1px solid rgba(255, 179, 102, 0.28);
}

.av-cal-broadcast-settings__chevron {
	flex: 0 0 auto;
	width: 10px;
	height: 10px;
	border-right: 2px solid rgba(255, 255, 255, 0.55);
	border-bottom: 2px solid rgba(255, 255, 255, 0.55);
	transform: rotate(45deg);
	transition: transform 0.2s ease;
	margin-top: -4px;
}

.av-cal-broadcast-settings[open] .av-cal-broadcast-settings__chevron {
	transform: rotate(-135deg);
	margin-top: 4px;
}

.av-cal-broadcast-settings__body {
	padding-top: 14px;
	margin-top: 10px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.av-cal-broadcast-settings__hint {
	margin: 0 0 12px;
	font-size: 13px;
	line-height: 1.45;
	color: var(--av-cal-muted) !important;
}

.av-cal-broadcast-settings__hint--warn {
	color: #ffb366 !important;
}

.av-cal-broadcast-settings__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

.av-cal-broadcast-settings__label {
	flex: 0 0 100%;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.58) !important;
}

.av-cal-broadcast-settings__input {
	flex: 1 1 280px;
	min-width: 0;
	padding: 10px 12px;
	border: 1px solid var(--av-cal-border) !important;
	border-radius: 8px;
	background: #050508 !important;
	color: #ffffff !important;
	font-size: 14px;
}

.av-cal-broadcast-settings__save {
	flex: 0 0 auto;
}

.av-cal-broadcast-settings__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 12px;
}

.av-cal-broadcast-settings__note {
	margin: -4px 0 12px;
	font-size: 12px;
	line-height: 1.45;
	color: rgba(255, 255, 255, 0.52) !important;
}

.av-cal-broadcast-settings__link {
	color: #00ffd1 !important;
	text-decoration: underline;
}

.av-cal-broadcast-settings__status {
	margin: 10px 0 0;
	font-size: 12px;
	line-height: 1.4;
}

.av-cal-broadcast-settings__status--ok {
	color: #00ffd1 !important;
}

.av-cal-broadcast-settings__status--warn {
	color: #ffb366 !important;
}

.av-cal-broadcast__hint {
	margin: 0 0 14px;
	font-size: 14px;
	line-height: 1.45;
	color: var(--av-cal-muted) !important;
}

.av-cal-broadcast__toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 16px;
	margin-bottom: 14px;
}

.av-cal-broadcast__search {
	flex: 1 1 220px;
	max-width: 360px;
}

.av-cal-broadcast__select-all {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: #ffffff !important;
	cursor: pointer;
	user-select: none;
}

.av-cal-broadcast__select-all input {
	accent-color: #00ffd1;
}

.av-cal-broadcast-table-wrap {
	overflow: auto;
	max-height: min(620px, 65vh);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 10px;
}

.av-cal-broadcast-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}

.av-cal-broadcast-table th,
.av-cal-broadcast-table td {
	padding: 10px 12px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	text-align: left;
	vertical-align: top;
	color: #ffffff !important;
}

.av-cal-broadcast-table th {
	position: sticky;
	top: 0;
	z-index: 1;
	background: #12121a !important;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--av-cal-muted) !important;
}

.av-cal-broadcast-table__check {
	width: 42px;
	text-align: center !important;
}

.av-cal-broadcast-table__check input {
	accent-color: #00ffd1;
}

.av-cal-broadcast-role {
	display: inline-block;
	padding: 3px 8px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 600;
}

.av-cal-broadcast-role--student {
	background: rgba(0, 255, 209, 0.14);
	color: #00ffd1 !important;
}

.av-cal-broadcast-role--teacher {
	background: rgba(108, 99, 255, 0.18);
	color: #9b94ff !important;
}

.av-cal-broadcast-contacts {
	font-size: 12px;
	line-height: 1.45;
	color: rgba(255, 255, 255, 0.82) !important;
}

.av-cal-broadcast-contacts__empty {
	color: rgba(255, 255, 255, 0.38) !important;
	font-style: italic;
}

.av-cal-modal--broadcast textarea {
	min-height: 280px;
	resize: vertical;
	line-height: 1.45;
}

.av-cal-broadcast-modal__count {
	margin: -8px 0 16px;
	font-size: 13px;
	color: var(--av-cal-muted) !important;
}

@media (max-width: 480px) {
	.av-cal-page-header__title {
		font-size: clamp(1.15rem, 5.2vw, 1.5rem);
	}
}

@media (max-width: 767px) {
	.artvoic-calendar-app {
		padding: 12px;
	}

	.av-cal-toolbar {
		position: sticky;
		top: 0;
		z-index: 5;
		background: rgba(5, 5, 8, 0.94) !important;
		backdrop-filter: blur(8px);
		margin: -12px -12px 12px;
		padding: 12px;
		border-bottom: 1px solid var(--av-cal-border);
	}

	.av-cal-nav {
		width: 100%;
		justify-content: center;
	}

	.av-cal-view-switch {
		flex: 1 1 auto;
		min-width: 0;
	}

	.av-cal-view-row {
		width: 100%;
	}

	.av-cal-reminder-actions {
		flex: 1 1 100%;
		width: 100%;
	}

	.av-cal-reminder-btn,
	.av-cal-telegram-bot-btn,
	.av-cal-cabinet-btn {
		flex: 1 1 calc(33.333% - 6px);
		padding: 10px 12px;
		text-align: center;
		white-space: normal;
	}

	.av-cal-reminder-btn {
		flex: 1;
		text-align: center;
		padding: 10px 8px;
	}

	.av-cal-view-btn {
		flex: 1;
		text-align: center;
		padding: 10px 8px;
	}

	.av-cal-add-btn {
		width: 100%;
		padding: 12px;
	}

	.av-cal-timegrid-wrap {
		max-height: min(560px, calc(100dvh - 220px));
		border-radius: 10px;
	}

	.av-cal-timegrid {
		min-width: 0;
	}

	.av-cal-timegrid--day {
		min-width: 100%;
	}

	.av-cal-timegrid-wrap--week,
	.av-cal-timegrid-wrap--day {
		height: calc(100dvh - 200px);
		max-height: calc(100dvh - 200px);
	}

	.av-cal-timegrid-wrap--week {
		--av-cal-time-col-w: 44px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.av-cal-timegrid--week .av-cal-time-label,
	.av-cal-timegrid--day .av-cal-time-label {
		font-size: 9px;
		padding: 0 2px;
		white-space: normal;
		overflow: hidden;
		min-width: 0;
	}

	.av-cal-timegrid--week .av-cal-time-label__range,
	.av-cal-timegrid--day .av-cal-time-label__range {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 0;
		line-height: 1.05;
		width: 100%;
	}

	.av-cal-timegrid--week .av-cal-time-label__sep,
	.av-cal-timegrid--day .av-cal-time-label__sep {
		display: none;
	}

	.av-cal-timegrid--week .av-cal-time-label__time,
	.av-cal-timegrid--day .av-cal-time-label__time {
		font-size: 9px;
		letter-spacing: -0.03em;
	}

	.av-cal-timegrid-wrap--week .av-cal-timegrid {
		min-width: 360px;
	}

	.av-cal-timegrid--week .av-cal-timegrid,
	.av-cal-timegrid--day .av-cal-timegrid {
		width: 100%;
		min-width: 0;
	}

	.av-cal-month-cell {
		min-height: 100px;
	}

	.av-cal-event-chip {
		font-size: 9px;
		padding: 2px 4px;
	}

	.av-cal-modal-overlay {
		align-items: flex-end;
		padding: 0;
	}

	.av-cal-modal {
		max-width: none;
		max-height: 92dvh;
		border-radius: 16px 16px 0 0;
	}

	.av-cal-modal-inner {
		max-height: calc(92dvh - 72px);
		padding: 20px 16px 8px;
	}

	.av-cal-modal-actions {
		padding: 12px 16px 20px;
		padding-bottom: max(20px, env(safe-area-inset-bottom));
	}

	.av-cal-modal-actions .av-cal-btn {
		flex: 1 1 auto;
		min-width: 0;
	}

	.av-cal-modal-overlay--reminder .av-cal-reminder-photo__pick-wrap {
		width: 100%;
	}

	.av-cal-modal-overlay--reminder .av-cal-reminder-photo__pick {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		min-height: 46px;
		padding: 12px 16px;
		font-size: 15px;
	}

	.av-cal-modal-overlay--reminder .av-cal-modal-actions .av-cal-btn--primary {
		background: #00ffd1 !important;
		background-image: linear-gradient(135deg, #00ffd1 0%, #5ee7ff 100%) !important;
		color: #050505 !important;
		-webkit-text-fill-color: #050505 !important;
		text-shadow: none !important;
		font-weight: 700;
	}
}

/* Админ: мобильная панель и рассылка */
@media (max-width: 767px) {
	.artvoic-calendar-app--manage .av-cal-tabs {
		flex: 1 1 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		gap: 6px;
		padding-bottom: 2px;
		mask-image: linear-gradient(to right, #000 92%, transparent 100%);
		-webkit-mask-image: linear-gradient(to right, #000 92%, transparent 100%);
	}

	.artvoic-calendar-app--manage .av-cal-tabs::-webkit-scrollbar {
		display: none;
	}

	.artvoic-calendar-app--manage .av-cal-tab {
		flex: 0 0 auto;
		padding: 8px 14px;
		font-size: 13px;
		white-space: nowrap;
	}

	.artvoic-calendar-app--manage .av-cal-toolbar {
		gap: 8px;
	}

	.artvoic-calendar-app--manage .av-cal-title {
		min-width: 0;
		flex: 1;
		font-size: 14px;
	}

	.artvoic-calendar-app--manage .av-cal-title__range {
		font-size: 14px;
	}

	.artvoic-calendar-app--manage .av-cal-nav-btn {
		width: 36px;
		height: 36px;
		flex-shrink: 0;
	}

	.artvoic-calendar-app--manage .av-cal-time-event {
		font-size: 10px;
		padding: 3px 5px;
	}

	.artvoic-calendar-app--manage .av-cal-time-event__student {
		font-size: 11px;
	}

	.av-cal-timegrid--week .av-cal-time-event__time {
		font-size: 12px;
	}

	.av-cal-timegrid--week .av-cal-time-event__student {
		font-size: 12px;
	}

	.av-cal-timegrid--week .av-cal-time-event__lesson,
	.av-cal-timegrid--week .av-cal-time-event__block {
		font-size: 10px;
	}

	.artvoic-calendar-wrap {
		padding: 16px 10px 32px;
	}
}

/* Мобильная навигация: список ↔ карточка */
@media (max-width: 767px) {
	.av-cal-body {
		min-width: 0;
		contain: layout style;
	}

	.av-cal-students.is-mobile-detail-open .av-cal-students-list {
		display: none;
	}

	.av-cal-students.is-mobile-detail-open .av-cal-student-card {
		flex: 1 1 auto;
		min-height: 0;
	}

	.av-cal-mobile-nav {
		flex: 0 0 100%;
		margin: 0 0 8px;
	}

	.av-cal-mobile-back {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		min-height: 44px;
		padding: 10px 14px;
		border-radius: 10px;
		border: 1px solid rgba(255, 255, 255, 0.12);
		background: rgba(255, 255, 255, 0.05);
		color: #fff;
		font: inherit;
		font-size: 14px;
		font-weight: 600;
		cursor: pointer;
		box-sizing: border-box;
	}

	.av-cal-mobile-back:active {
		background: rgba(0, 255, 209, 0.12);
		border-color: rgba(0, 255, 209, 0.35);
	}

	.artvoic-calendar-app--manage .av-cal-month {
		gap: 4px;
	}

	.artvoic-calendar-app--manage .av-cal-month-cell {
		min-height: 88px;
		padding: 4px;
	}

	.artvoic-calendar-app--manage .av-cal-month-head {
		font-size: 11px;
		padding: 6px 2px;
	}

	.av-cal-broadcast-table-wrap {
		max-height: min(52vh, 420px);
		overflow: auto;
		-webkit-overflow-scrolling: touch;
	}

	.av-cal-broadcast__toolbar {
		position: sticky;
		top: 0;
		z-index: 2;
		background: rgba(8, 8, 12, 0.96);
		padding-bottom: 8px;
		margin-bottom: 8px;
	}

	.av-cal-color-legend {
		flex-direction: column;
		align-items: stretch;
		gap: 8px;
		margin-bottom: 10px;
		padding: 10px 12px;
	}

	.av-cal-color-legend__list {
		flex-direction: column;
		align-items: stretch;
		gap: 8px;
	}

	.av-cal-color-legend__text {
		font-size: 11px;
	}
}

/* Попап «что сохранено» */
.av-cal-modal--save-popup .av-cal-save-popup__list {
	margin: 0;
	padding: 0 0 0 18px;
	list-style: disc;
}

.av-cal-modal--save-popup .av-cal-save-popup__list li {
	margin: 0 0 14px;
	font-size: 14px;
	line-height: 1.5;
	color: #ffffff !important;
}

.av-cal-modal--save-popup .av-cal-save-popup__list li:last-child {
	margin-bottom: 0;
}

.av-cal-save-popup-overlay {
	z-index: 100000001;
}

/* Производительность: изоляция отрисовки календаря */
.artvoic-calendar-wrap {
	contain: layout style;
}

#artvoic-calendar-app {
	content-visibility: auto;
	contain-intrinsic-size: auto 720px;
}

@media (max-width: 768px) {
	.artvoic-calendar-wrap {
		background: var(--av-cal-bg);
	}
}

/* Экран пароля для публичного календаря */
.artvoic-calendar-wrap--locked #artvoic-calendar-app,
.artvoic-calendar-wrap--locked .av-cal-page-header {
	visibility: hidden;
	pointer-events: none;
}

.av-cal-access-gate {
	position: fixed;
	inset: 0;
	z-index: 100000010;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px 16px;
	box-sizing: border-box;
	opacity: 1;
	transition: opacity 0.45s ease, transform 0.45s ease;
}

.av-cal-access-gate.is-leaving {
	opacity: 0;
	transform: scale(1.02);
	pointer-events: none;
}

.av-cal-access-gate__backdrop {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 80% 60% at 50% 0%, rgba(0, 255, 209, 0.14), transparent 60%),
		radial-gradient(ellipse 60% 50% at 80% 100%, rgba(108, 99, 255, 0.12), transparent 55%),
		rgba(5, 5, 8, 0.94);
	backdrop-filter: blur(12px);
}

.av-cal-access-gate__panel {
	position: relative;
	width: min(420px, 100%);
	padding: 36px 32px 32px;
	border-radius: 20px;
	border: 1px solid rgba(0, 255, 209, 0.28);
	background: linear-gradient(165deg, rgba(18, 18, 26, 0.98) 0%, rgba(8, 8, 12, 0.98) 100%);
	box-shadow:
		0 24px 80px rgba(0, 0, 0, 0.55),
		0 0 0 1px rgba(255, 255, 255, 0.04) inset,
		0 0 48px rgba(0, 255, 209, 0.12);
	overflow: hidden;
}

.av-cal-access-gate__glow {
	position: absolute;
	top: -40%;
	left: 50%;
	width: 120%;
	height: 60%;
	transform: translateX(-50%);
	background: radial-gradient(circle, rgba(0, 255, 209, 0.18) 0%, transparent 70%);
	pointer-events: none;
}

.av-cal-access-gate__step {
	display: none;
	flex-direction: column;
	align-items: stretch;
	gap: 18px;
	position: relative;
	z-index: 1;
}

.av-cal-access-gate__step.is-active {
	display: flex;
	animation: av-cal-access-fade-in 0.45s ease;
}

.av-cal-access-gate__title {
	margin: 0;
	font-size: clamp(1.35rem, 4vw, 1.65rem);
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	color: #ffffff !important;
	letter-spacing: -0.02em;
}

.av-cal-access-gate__field {
	margin: 0;
}

.av-cal-access-gate__input {
	width: 100%;
	box-sizing: border-box;
	padding: 14px 16px;
	border-radius: 12px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	background: rgba(0, 0, 0, 0.35) !important;
	color: #ffffff !important;
	font-size: 16px;
	line-height: 1.3;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.av-cal-access-gate__input:focus {
	outline: none;
	border-color: rgba(0, 255, 209, 0.65);
	box-shadow: 0 0 0 3px rgba(0, 255, 209, 0.18);
}

.av-cal-access-gate__input.is-error {
	border-color: rgba(255, 96, 96, 0.75);
	box-shadow: 0 0 0 3px rgba(255, 96, 96, 0.16);
}

.av-cal-access-gate__error {
	margin: -6px 0 0;
	font-size: 13px;
	line-height: 1.4;
	text-align: center;
	color: #ff7b7b !important;
}

.av-cal-access-gate__submit {
	width: 100%;
	padding: 14px 18px;
	font-size: 15px;
	font-weight: 700;
	border-radius: 12px;
}

.av-cal-access-gate.is-shake .av-cal-access-gate__panel {
	animation: av-cal-access-shake 0.48s ease;
}

.av-cal-access-gate__progress-label {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	text-align: center;
	color: rgba(255, 255, 255, 0.88) !important;
}

.av-cal-access-gate__progress-track {
	height: 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.08);
	overflow: hidden;
	box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.35);
}

.av-cal-access-gate__progress-bar {
	width: 0;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, #00ffd1 0%, #7dffe8 45%, #6c63ff 100%);
	box-shadow: 0 0 18px rgba(0, 255, 209, 0.55);
	transition: width 0.08s linear;
}

.av-cal-access-gate__percent {
	align-self: center;
	font-size: 28px;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	color: #00ffd1 !important;
	letter-spacing: -0.03em;
}

.av-cal-access-gate__success-icon {
	align-self: center;
	width: 72px;
	height: 72px;
}

.av-cal-access-gate__success-circle {
	stroke: rgba(0, 255, 209, 0.35);
	stroke-dasharray: 151;
	stroke-dashoffset: 151;
	animation: av-cal-access-circle 0.55s ease forwards 0.1s;
}

.av-cal-access-gate__success-check {
	stroke: #00ffd1;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 48;
	stroke-dashoffset: 48;
	animation: av-cal-access-check 0.45s ease forwards 0.45s;
}

.av-cal-access-gate__success-text {
	margin: 0;
	font-size: clamp(1.1rem, 3.5vw, 1.35rem);
	font-weight: 700;
	text-align: center;
	color: #ffffff !important;
}

@keyframes av-cal-access-fade-in {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes av-cal-access-shake {
	0%, 100% { transform: translateX(0); }
	20% { transform: translateX(-8px); }
	40% { transform: translateX(8px); }
	60% { transform: translateX(-5px); }
	80% { transform: translateX(5px); }
}

@keyframes av-cal-access-circle {
	to { stroke-dashoffset: 0; }
}

@keyframes av-cal-access-check {
	to { stroke-dashoffset: 0; }
}

@media (max-width: 480px) {
	.av-cal-access-gate__panel {
		padding: 28px 20px 24px;
		border-radius: 16px;
	}
}
