.aybc-app {
	--aybc-bg: #f7f8fb;
	--aybc-surface: #ffffff;
	--aybc-border: #d9dee8;
	--aybc-text: #172033;
	--aybc-muted: #687286;
	--aybc-primary: #2559d6;
	--aybc-primary-dark: #1745ad;
	--aybc-accent: #0f8f72;
	--aybc-warning: #a95d00;
	--aybc-danger: #b42318;
	--aybc-shadow: 0 12px 30px rgba(23, 32, 51, 0.08);
	background: var(--aybc-bg);
	color: var(--aybc-text);
	font-family: inherit;
	padding: 18px;
}

.aybc-app *,
.aybc-app *::before,
.aybc-app *::after {
	box-sizing: border-box;
}

.aybc-toolbar {
	align-items: center;
	display: grid;
	gap: 14px;
	grid-template-columns: auto minmax(180px, 1fr) auto;
	margin-bottom: 12px;
}

.aybc-toolbar-group {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.aybc-toolbar-nav {
	flex-wrap: nowrap;
}

.aybc-title {
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.25;
	margin: 0;
	text-align: center;
}

.aybc-button,
.aybc-icon-button,
.aybc-primary-button,
.aybc-secondary-button,
.aybc-danger-button,
.aybc-segmented button {
	align-items: center;
	border: 1px solid var(--aybc-border);
	border-radius: 6px;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: 0.92rem;
	font-weight: 650;
	justify-content: center;
	line-height: 1.2;
	min-height: 38px;
	padding: 8px 12px;
	text-decoration: none;
	transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, transform 140ms ease;
}

.aybc-button,
.aybc-secondary-button,
.aybc-icon-button {
	background: #ffffff;
	color: var(--aybc-text);
}

.aybc-icon-button {
	font-size: 1.35rem;
	min-width: 38px;
	padding: 4px 10px;
}

.aybc-primary-button {
	background: var(--aybc-primary);
	border-color: var(--aybc-primary);
	color: #ffffff;
}

.aybc-danger-button {
	background: #fff4f2;
	border-color: #f5b5ae;
	color: var(--aybc-danger);
}

.aybc-button:hover,
.aybc-secondary-button:hover,
.aybc-icon-button:hover,
.aybc-segmented button:hover {
	background: #eef3ff;
	border-color: #aebde5;
}

.aybc-primary-button:hover {
	background: var(--aybc-primary-dark);
}

.aybc-button:focus-visible,
.aybc-icon-button:focus-visible,
.aybc-primary-button:focus-visible,
.aybc-secondary-button:focus-visible,
.aybc-danger-button:focus-visible,
.aybc-segmented button:focus-visible,
.aybc-event:focus-visible,
.aybc-field input:focus,
.aybc-field textarea:focus {
	outline: 3px solid rgba(37, 89, 214, 0.24);
	outline-offset: 2px;
}

.aybc-segmented {
	background: #e9edf5;
	border-radius: 7px;
	display: inline-flex;
	gap: 3px;
	padding: 3px;
}

.aybc-segmented button {
	background: transparent;
	border-color: transparent;
	min-height: 34px;
	padding: 7px 11px;
}

.aybc-segmented button.is-active {
	background: #ffffff;
	border-color: #ffffff;
	box-shadow: 0 1px 4px rgba(23, 32, 51, 0.12);
}

.aybc-feedback {
	color: var(--aybc-muted);
	font-size: 0.92rem;
	min-height: 22px;
}

.aybc-feedback.is-error {
	color: var(--aybc-danger);
}

.aybc-feedback.is-success {
	color: var(--aybc-accent);
}

.aybc-board {
	align-items: start;
	display: grid;
	gap: 18px;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
}

.aybc-calendar,
.aybc-detail {
	background: var(--aybc-surface);
	border: 1px solid var(--aybc-border);
	border-radius: 8px;
	box-shadow: var(--aybc-shadow);
	min-width: 0;
}

.aybc-calendar {
	overflow: hidden;
}

.aybc-weekdays,
.aybc-month-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
}

.aybc-weekday {
	background: #f0f3f8;
	border-bottom: 1px solid var(--aybc-border);
	color: var(--aybc-muted);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0;
	padding: 10px 8px;
	text-align: center;
	text-transform: uppercase;
}

.aybc-day {
	background: #ffffff;
	border-bottom: 1px solid var(--aybc-border);
	border-right: 1px solid var(--aybc-border);
	min-height: 126px;
	padding: 8px;
}

.aybc-day:nth-child(7n) {
	border-right: 0;
}

.aybc-day.is-outside {
	background: #fafbfe;
	color: #8b95a8;
}

.aybc-day.is-today {
	box-shadow: inset 0 0 0 2px rgba(37, 89, 214, 0.32);
}

.aybc-day-head {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-bottom: 7px;
}

.aybc-day-number {
	font-size: 0.9rem;
	font-weight: 800;
}

.aybc-day-add {
	background: transparent;
	border: 0;
	color: var(--aybc-muted);
	cursor: pointer;
	font-size: 1rem;
	font-weight: 800;
	line-height: 1;
	padding: 2px 4px;
}

.aybc-day-add:hover {
	color: var(--aybc-primary);
}

.aybc-event {
	background: #eaf1ff;
	border: 1px solid #c7d7ff;
	border-left: 4px solid var(--aybc-primary);
	border-radius: 6px;
	color: var(--aybc-text);
	cursor: pointer;
	display: block;
	font: inherit;
	font-size: 0.78rem;
	line-height: 1.25;
	margin: 5px 0 0;
	max-width: 100%;
	min-height: 31px;
	overflow: hidden;
	padding: 5px 6px;
	text-align: left;
	text-overflow: ellipsis;
	white-space: nowrap;
	width: 100%;
}

.aybc-event:hover {
	background: #dfeaff;
}

.aybc-event.is-manual {
	background: #fff7e7;
	border-color: #f2d39a;
	border-left-color: var(--aybc-warning);
}

.aybc-event.is-confirmed,
.aybc-event.is-bk-confirmed,
.aybc-event.is-confirmed-booking {
	background: #e9f8f3;
	border-color: #bce6d8;
	border-left-color: var(--aybc-accent);
}

.aybc-event.is-bk-cancelled,
.aybc-event.is-trash {
	background: #fff1ef;
	border-color: #f5b5ae;
	border-left-color: var(--aybc-danger);
}

.aybc-more {
	color: var(--aybc-muted);
	font-size: 0.78rem;
	font-weight: 700;
	margin-top: 4px;
}

.aybc-week-view,
.aybc-list-view {
	display: grid;
	gap: 0;
}

.aybc-week-row,
.aybc-list-item {
	border-bottom: 1px solid var(--aybc-border);
	display: grid;
	grid-template-columns: 124px minmax(0, 1fr);
	min-height: 74px;
}

.aybc-week-row:last-child,
.aybc-list-item:last-child {
	border-bottom: 0;
}

.aybc-week-date,
.aybc-list-date {
	background: #f7f8fb;
	border-right: 1px solid var(--aybc-border);
	color: var(--aybc-muted);
	font-size: 0.86rem;
	font-weight: 800;
	padding: 12px;
}

.aybc-week-events,
.aybc-list-events {
	padding: 9px 10px;
}

.aybc-empty-row {
	color: var(--aybc-muted);
	font-size: 0.9rem;
	padding: 12px;
}

.aybc-detail {
	padding: 18px;
	position: sticky;
	top: 16px;
}

.aybc-empty-state h3,
.aybc-detail h3 {
	font-size: 1.05rem;
	line-height: 1.35;
	margin: 0 0 8px;
}

.aybc-empty-state p,
.aybc-meta,
.aybc-notice {
	color: var(--aybc-muted);
	font-size: 0.9rem;
	line-height: 1.45;
	margin: 0 0 12px;
}

.aybc-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 10px 0 14px;
}

.aybc-badge {
	background: #edf1f7;
	border-radius: 999px;
	color: #364056;
	font-size: 0.76rem;
	font-weight: 800;
	line-height: 1.2;
	padding: 5px 9px;
}

.aybc-badge.is-confirmed,
.aybc-badge.is-bk-confirmed,
.aybc-badge.is-confirmed-booking {
	background: #dff5ec;
	color: #0a6f59;
}

.aybc-badge.is-manual,
.aybc-badge.is-manual_pending {
	background: #fff0cd;
	color: #7c4700;
}

.aybc-facts {
	border: 1px solid var(--aybc-border);
	border-radius: 8px;
	display: grid;
	gap: 0;
	margin: 0 0 14px;
	overflow: hidden;
}

.aybc-fact {
	display: grid;
	gap: 4px;
	grid-template-columns: minmax(100px, 38%) minmax(0, 1fr);
	padding: 9px 10px;
}

.aybc-fact:nth-child(odd) {
	background: #f7f8fb;
}

.aybc-fact dt,
.aybc-fact dd {
	margin: 0;
	min-width: 0;
}

.aybc-fact dt {
	color: var(--aybc-muted);
	font-size: 0.76rem;
	font-weight: 800;
	text-transform: uppercase;
}

.aybc-fact dd {
	color: var(--aybc-text);
	font-size: 0.9rem;
	font-weight: 650;
	overflow-wrap: anywhere;
}

.aybc-form {
	display: grid;
	gap: 12px;
}

.aybc-field {
	display: grid;
	gap: 5px;
}

.aybc-field label {
	color: var(--aybc-muted);
	font-size: 0.78rem;
	font-weight: 800;
	text-transform: uppercase;
}

.aybc-field input,
.aybc-field textarea {
	background: #ffffff;
	border: 1px solid var(--aybc-border);
	border-radius: 6px;
	color: var(--aybc-text);
	font: inherit;
	font-size: 0.92rem;
	line-height: 1.35;
	min-height: 40px;
	padding: 9px 10px;
	width: 100%;
}

.aybc-field textarea {
	min-height: 96px;
	resize: vertical;
}

.aybc-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 4px;
}

.agency-yith-booking-calendar-message {
	background: #ffffff;
	border: 1px solid #d9dee8;
	border-radius: 8px;
	color: #172033;
	padding: 18px;
}

.aybc-login-shell {
	--aybc-login-bg: #f7f8fb;
	--aybc-login-surface: #ffffff;
	--aybc-login-border: #d9dee8;
	--aybc-login-text: #172033;
	--aybc-login-muted: #687286;
	--aybc-login-primary: #2559d6;
	--aybc-login-primary-dark: #1745ad;
	--aybc-login-accent: #0f8f72;
	background:
		linear-gradient(135deg, rgba(37, 89, 214, 0.08), rgba(15, 143, 114, 0.06)),
		var(--aybc-login-bg);
	color: var(--aybc-login-text);
	display: grid;
	font-family: inherit;
	min-height: 430px;
	padding: clamp(18px, 4vw, 44px);
	place-items: center;
}

.aybc-login-shell *,
.aybc-login-shell *::before,
.aybc-login-shell *::after {
	box-sizing: border-box;
}

.agency-yith-booking-calendar-login {
	background: var(--aybc-login-surface);
	border: 1px solid var(--aybc-login-border);
	border-radius: 8px;
	box-shadow: 0 18px 45px rgba(23, 32, 51, 0.12);
	color: var(--aybc-login-text);
	max-width: 460px;
	padding: clamp(22px, 4vw, 34px);
	width: min(100%, 460px);
}

.aybc-login-header {
	align-items: center;
	display: flex;
	gap: 14px;
	margin-bottom: 16px;
}

.aybc-login-mark {
	align-items: center;
	background: #e9f8f3;
	border: 1px solid #bce6d8;
	border-radius: 8px;
	color: #0a6f59;
	display: inline-flex;
	flex: 0 0 48px;
	font-size: 0.95rem;
	font-weight: 850;
	height: 48px;
	justify-content: center;
	letter-spacing: 0;
	width: 48px;
}

.aybc-login-eyebrow {
	color: var(--aybc-login-muted);
	font-size: 0.78rem;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 3px;
	text-transform: uppercase;
}

.agency-yith-booking-calendar-login h2 {
	color: var(--aybc-login-text);
	font-size: clamp(1.35rem, 3vw, 1.75rem);
	font-weight: 800;
	line-height: 1.2;
	margin: 0;
}

.aybc-login-intro,
.aybc-login-help {
	color: var(--aybc-login-muted);
	font-size: 0.94rem;
	line-height: 1.5;
	margin: 0;
}

.aybc-login-intro {
	margin-bottom: 20px;
}

.aybc-login-message {
	border: 1px solid var(--aybc-login-border);
	border-radius: 7px;
	font-size: 0.92rem;
	font-weight: 650;
	line-height: 1.45;
	margin-bottom: 16px;
	padding: 10px 12px;
}

.aybc-login-message.is-error {
	background: #fff4f2;
	border-color: #f5b5ae;
	color: #8f1f15;
}

.aybc-login-message.is-success {
	background: #e9f8f3;
	border-color: #bce6d8;
	color: #0a6f59;
}

.aybc-login-form-wrap form {
	display: grid;
	gap: 14px;
	margin: 0;
}

.aybc-login-form-wrap p {
	margin: 0;
}

.aybc-login-form-wrap label {
	color: var(--aybc-login-muted);
	display: block;
	font-size: 0.78rem;
	font-weight: 800;
	line-height: 1.25;
	margin-bottom: 6px;
	text-transform: uppercase;
}

.aybc-login-form-wrap input[type="text"],
.aybc-login-form-wrap input[type="password"] {
	appearance: none;
	background: #ffffff;
	border: 1px solid var(--aybc-login-border);
	border-radius: 7px;
	color: var(--aybc-login-text);
	font: inherit;
	font-size: 1rem;
	line-height: 1.35;
	min-height: 46px;
	padding: 11px 12px;
	transition: border-color 140ms ease, box-shadow 140ms ease;
	width: 100%;
}

.aybc-login-form-wrap input[type="text"]:focus,
.aybc-login-form-wrap input[type="password"]:focus {
	border-color: var(--aybc-login-primary);
	box-shadow: 0 0 0 3px rgba(37, 89, 214, 0.18);
	outline: 0;
}

.aybc-login-form-wrap .login-remember label {
	align-items: center;
	color: var(--aybc-login-text);
	display: inline-flex;
	font-size: 0.92rem;
	font-weight: 650;
	gap: 9px;
	margin: 0;
	text-transform: none;
}

.aybc-login-form-wrap input[type="checkbox"] {
	accent-color: var(--aybc-login-primary);
	height: 18px;
	margin: 0;
	width: 18px;
}

.aybc-login-form-wrap .login-submit {
	margin-top: 2px;
}

.aybc-login-form-wrap input[type="submit"] {
	align-items: center;
	appearance: none;
	background: var(--aybc-login-primary);
	border: 1px solid var(--aybc-login-primary);
	border-radius: 7px;
	color: #ffffff;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: 0.98rem;
	font-weight: 800;
	justify-content: center;
	line-height: 1.2;
	min-height: 46px;
	padding: 12px 16px;
	transition: background-color 140ms ease, border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
	width: 100%;
}

.aybc-login-form-wrap input[type="submit"]:hover {
	background: var(--aybc-login-primary-dark);
	border-color: var(--aybc-login-primary-dark);
	transform: translateY(-1px);
}

.aybc-login-form-wrap input[type="submit"]:focus-visible {
	box-shadow: 0 0 0 3px rgba(37, 89, 214, 0.24);
	outline: 0;
}

.aybc-login-footer {
	align-items: center;
	border-top: 1px solid var(--aybc-login-border);
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	justify-content: space-between;
	margin-top: 20px;
	padding-top: 14px;
}

.aybc-login-help {
	flex: 1 1 230px;
	margin: 0;
}

.aybc-login-link {
	color: var(--aybc-login-primary);
	font-size: 0.9rem;
	font-weight: 800;
	text-decoration: none;
}

.aybc-login-link:hover {
	color: var(--aybc-login-primary-dark);
	text-decoration: underline;
}

.aybc-login-link:focus-visible {
	border-radius: 4px;
	box-shadow: 0 0 0 3px rgba(37, 89, 214, 0.22);
	outline: 0;
}

@media (max-width: 980px) {
	.aybc-toolbar {
		grid-template-columns: 1fr;
	}

	.aybc-title {
		text-align: left;
	}

	.aybc-board {
		grid-template-columns: 1fr;
	}

	.aybc-detail {
		position: static;
	}
}

@media (max-width: 640px) {
	.aybc-app {
		padding: 12px;
	}

	.aybc-weekdays {
		display: none;
	}

	.aybc-month-grid {
		display: grid;
		gap: 8px;
		grid-template-columns: 1fr;
		padding: 8px;
	}

	.aybc-day {
		border: 1px solid var(--aybc-border);
		border-radius: 8px;
		min-height: 96px;
	}

	.aybc-week-row,
	.aybc-list-item {
		grid-template-columns: 1fr;
	}

	.aybc-week-date,
	.aybc-list-date {
		border-right: 0;
		border-bottom: 1px solid var(--aybc-border);
	}

	.aybc-fact {
		grid-template-columns: 1fr;
	}
}
