body.tvp-modal-open {
	overflow: hidden;
}

.tvp-modal {
	position: fixed;
	inset: 0;
	z-index: 1300;
	display: none;
	padding: 0;
}

.tvp-modal.is-open {
	display: block;
}

.tvp-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgb(15 23 42 / 0.62);
	backdrop-filter: blur(2px);
}

.tvp-modal__dialog {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: min(calc(100vw - 1.8rem), 34rem);
	max-height: calc(100vh - 1.8rem);
	margin: 0;
	outline: 0;
}

.tvp-modal__content {
	display: flex;
	flex-direction: column;
	max-height: inherit;
	overflow: hidden;
	border: 1px solid #c8d8ea;
	border-radius: 0.85rem;
	background: #f8fbff;
	color: #1f2f45;
	box-shadow: 0 18px 40px rgb(15 23 42 / 0.28);
}

.tvp-modal__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.72rem 0.86rem;
	border-bottom: 1px solid #d9e4f0;
	background: #e8f2fc;
}

.tvp-modal__header--danger {
	border-bottom-color: #f2c9d0;
	background: #fce9ec;
}

.tvp-modal__title {
	margin: 0;
	font-size: 1.08rem;
	font-weight: 700;
	line-height: 1.25;
	color: #1d3f67;
}

.tvp-modal__header--danger .tvp-modal__title {
	color: #8b1f31;
}

.tvp-modal__close {
	appearance: none;
	border: 0;
	border-radius: 999px;
	width: 2rem;
	height: 2rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	color: #2b4d73;
	cursor: pointer;
}

.tvp-modal__close > span {
	font-size: 1.5rem;
	line-height: 1;
	font-weight: 500;
}

.tvp-modal__close:hover {
	background: rgb(43 77 115 / 0.1);
}

.tvp-modal__close:focus,
.tvp-modal__close:focus-visible {
	outline: none;
	box-shadow: none;
}

.tvp-modal-input:focus-visible,
.tvp-modal-textarea:focus-visible {
	outline: 2px solid #3f84d8;
	outline-offset: 1px;
}

.tvp-modal__body {
	overflow: auto;
	padding: 0.82rem 0.9rem;
}

.tvp-modal__footer {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 0.55rem;
	border-top: 1px solid #d9e4f0;
	background: #eef5fc;
	padding: 0.72rem 0.86rem;
}

.tvp-modal-help {
	margin: 0 0 0.7rem;
	color: #334f6d;
}

.tvp-modal-field {
	margin-bottom: 0.74rem;
}

.tvp-modal-label {
	display: block;
	margin-bottom: 0.3rem;
	color: #274666;
	font-size: 0.92rem;
	font-weight: 600;
}

.tvp-modal-input-wrap {
	position: relative;
}

.tvp-modal-input-icon {
	position: absolute;
	top: 50%;
	left: 0.62rem;
	transform: translateY(-50%);
	color: #607a98;
	pointer-events: none;
}

.tvp-modal-input,
.tvp-modal-textarea {
	width: 100%;
	border: 1px solid #c4d4e6;
	border-radius: 0.55rem;
	background: #ffffff;
	color: #1d344f;
	padding: 0.56rem 0.68rem;
	font-size: 0.98rem;
	line-height: 1.35;
}

.tvp-modal-input--with-icon {
	padding-left: 1.95rem;
}

.tvp-modal-textarea {
	min-height: 110px;
	resize: vertical;
}

.tvp-modal-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	justify-content: flex-end;
}

.tvp-modal-actions--center {
	justify-content: center;
}

.tvp-modal-actions--stack {
	justify-content: stretch;
}

.tvp-modal-btn-block {
	width: 100%;
}

.tvp-modal-submit.disabled {
	opacity: 0.58;
	pointer-events: none;
}

.tvp-modal-note-stage {
	display: grid;
	gap: 0.6rem;
	justify-items: center;
	padding-top: 0.7rem;
	padding-bottom: 0.2rem;
}

.tvp-modal-note-prompt {
	margin: 0;
	color: #365575;
	font-size: 0.93rem;
	line-height: 1.4;
	font-weight: 600;
	text-align: center;
}

.tvp-modal-note {
	margin-bottom: 0.78rem;
}

.tvp-modal-rating {
	--tvp-modal-rating-active-color: #6c8da0;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 0.32rem;
}

.tvp-modal-rating__stars {
	display: flex;
	flex-direction: row-reverse;
	justify-content: center;
}

.tvp-modal-rating__input {
	display: none;
}

.tvp-modal-rating__label {
	cursor: pointer;
	color: lightgray;
	font-size: 2.8rem;
	line-height: 1;
}

.tvp-modal-rating__star {
	display: block;
	width: 1em;
	height: 1em;
}

.tvp-modal-rating__label:hover,
.tvp-modal-rating__label:hover ~ .tvp-modal-rating__label {
	color: var(--tvp-modal-rating-active-color);
}

.tvp-modal-rating__input:checked ~ .tvp-modal-rating__label {
	color: var(--tvp-modal-rating-active-color);
}

.tvp-modal-note-label {
	min-width: 0;
	min-height: 1.3rem;
	margin-left: 0;
	color: #2b5077;
	font-size: 1.1rem;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
}

.tvp-modal-note-details {
	margin-top: 0.15rem;
	padding-top: 0.95rem;
	border-top: 1px solid #d9e4f0;
}

.tvp-modal-note-details[hidden] {
	display: none !important;
}

.tvp-modal-note-details.is-visible {
	animation: tvp-modal-note-details-reveal 0.18s ease-out;
}

.tvp-modal .tvp-u-btn:focus:not(:focus-visible),
.tvp-modal__close:focus:not(:focus-visible) {
	outline: none;
	box-shadow: none;
}

@keyframes tvp-modal-note-details-reveal {
	from {
		opacity: 0;
		transform: translateY(8px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

#modal_app_rating .tvp-app-rating-choices {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.8rem;
}

#modal_app_rating .tvp-app-rating-choice {
	appearance: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.48rem;
	min-height: 7.4rem;
	padding: 1rem 0.9rem;
	border: 1px solid #cfdbeb;
	border-radius: 0.95rem;
	background: linear-gradient(180deg, #ffffff, #f3f8fd);
	color: #1f2f45;
	box-shadow: 0 10px 24px rgb(15 23 42 / 0.08);
	transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease, color 0.16s ease;
	cursor: pointer;
	text-align: center;
}

#modal_app_rating .tvp-app-rating-choice:hover {
	transform: translateY(-1px);
	border-color: #a9bfd9;
	box-shadow: 0 14px 28px rgb(15 23 42 / 0.12);
}

#modal_app_rating .tvp-app-rating-choice:focus-visible {
	outline: 2px solid #0f6fdb;
	outline-offset: 2px;
}

#modal_app_rating .tvp-app-rating-choice.is-selected[data-app-rating-choice='up'] {
	border-color: #5ea977;
	background: linear-gradient(180deg, #f6fdf8, #ebf8ef);
	color: #174a2d;
}

#modal_app_rating .tvp-app-rating-choice.is-selected[data-app-rating-choice='down'] {
	border-color: #d59aa2;
	background: linear-gradient(180deg, #fff8f8, #fff0f2);
	color: #7a2532;
}

#modal_app_rating .tvp-app-rating-choice-icon {
	width: 2rem;
	height: 2rem;
	stroke-width: 1.9;
}

#modal_app_rating .tvp-app-rating-choice[data-app-rating-choice='up'] .tvp-app-rating-choice-icon {
	color: #2d9f59;
}

#modal_app_rating .tvp-app-rating-choice[data-app-rating-choice='down'] .tvp-app-rating-choice-icon {
	color: #dc3545;
	transform: rotate(180deg);
	transform-origin: center;
}

#modal_app_rating .tvp-app-rating-choice-label {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.15;
}

#modal_app_rating .tvp-app-rating-choice-caption {
	color: #61748c;
	font-size: 0.84rem;
	line-height: 1.25;
}

#modal_app_rating .tvp-app-rating-response {
	margin-top: 0.95rem;
	padding: 0.95rem 1rem;
	border: 1px solid #d8e4f1;
	border-radius: 0.95rem;
	background: #f2f7fd;
	text-align: center;
}

#modal_app_rating .tvp-app-rating-response[hidden] {
	display: none !important;
}

#modal_app_rating .tvp-app-rating-response[data-tone='positive'] {
	border-color: #c8e3d1;
	background: #eef9f2;
}

#modal_app_rating .tvp-app-rating-response[data-tone='negative'] {
	border-color: #efd1d5;
	background: #fff5f6;
}

#modal_app_rating .tvp-app-rating-response-title {
	margin: 0;
	font-size: 0.98rem;
	font-weight: 700;
	line-height: 1.3;
	color: #1f2f45;
}

#modal_app_rating .tvp-app-rating-response-copy {
	margin: 0.42rem 0 0;
	color: #52667f;
	line-height: 1.45;
}

#modal_app_rating .tvp-app-rating-response-cta {
	margin-top: 0.82rem;
	min-width: min(100%, 14rem);
	border-width: 1px;
	color: #ffffff;
	box-shadow: 0 12px 24px rgb(15 23 42 / 0.14);
}

#modal_app_rating .tvp-app-rating-response-cta:hover,
#modal_app_rating .tvp-app-rating-response-cta:focus-visible,
#modal_app_rating .tvp-app-rating-response-cta:active,
#modal_app_rating .tvp-app-rating-response-cta:visited {
	color: #ffffff;
	text-decoration: none;
}

#modal_app_rating .tvp-app-rating-response-cta:hover {
	transform: translateY(-1px);
	box-shadow: 0 16px 30px rgb(15 23 42 / 0.18);
	filter: none;
}

#modal_app_rating .tvp-app-rating-response-cta.tvp-u-btn-success {
	border-color: #2c9657;
	background: linear-gradient(180deg, #3cc56e, #28934f);
}

#modal_app_rating .tvp-app-rating-response-cta.tvp-u-btn-info {
	border-color: #187f79;
	background: linear-gradient(180deg, #249f97, #17756e);
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) .tvp-modal__content {
	border-color: #3e566f;
	background: #203244;
	color: #dfe9f4;
	box-shadow: 0 18px 40px rgb(2 6 23 / 0.62);
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) .tvp-modal__header {
	border-bottom-color: #445c76;
	background: #1c3a57;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) .tvp-modal__header--danger {
	border-bottom-color: #75424d;
	background: #4f2430;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) .tvp-modal__title {
	color: #e7f0fb;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) .tvp-modal__header--danger .tvp-modal__title {
	color: #ffd2d8;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) .tvp-modal__close {
	color: #c8def6;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) .tvp-modal__close:hover {
	background: rgb(200 222 246 / 0.12);
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) .tvp-modal__footer {
	border-top-color: #445c76;
	background: #1e3144;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) .tvp-modal-help {
	color: #c4d6ea;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) .tvp-modal-label {
	color: #d3e3f7;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) .tvp-modal-input,
:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) .tvp-modal-textarea {
	border-color: #506884;
	background: #172737;
	color: #e5eef8;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) .tvp-modal-input-icon {
	color: #94afcc;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) .tvp-modal-note-label {
	color: #cfe2f7;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) .tvp-modal-note-prompt {
	color: #d4e5f8;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) .tvp-modal-note-details {
	border-top-color: #445c76;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) #modal_app_rating .tvp-app-rating-choice {
	border-color: #47617c;
	background: linear-gradient(180deg, #24364a, #1a2a3b);
	color: #e4edf7;
	box-shadow: 0 14px 28px rgb(2 6 23 / 0.28);
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) #modal_app_rating .tvp-app-rating-choice:hover {
	border-color: #6782a2;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) #modal_app_rating .tvp-app-rating-choice.is-selected[data-app-rating-choice='up'] {
	border-color: #6ab68a;
	background: linear-gradient(180deg, #1b3d2c, #143122);
	color: #ddf3e4;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) #modal_app_rating .tvp-app-rating-choice.is-selected[data-app-rating-choice='down'] {
	border-color: #c58b94;
	background: linear-gradient(180deg, #4c2430, #3b1b26);
	color: #ffe5e9;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) #modal_app_rating .tvp-app-rating-choice[data-app-rating-choice='up'] .tvp-app-rating-choice-icon {
	color: #41b86f;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) #modal_app_rating .tvp-app-rating-choice[data-app-rating-choice='down'] .tvp-app-rating-choice-icon {
	color: #f06d80;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) #modal_app_rating .tvp-app-rating-choice-caption {
	color: #a9bfd6;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) #modal_app_rating .tvp-app-rating-response {
	border-color: #49627e;
	background: #24384d;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) #modal_app_rating .tvp-app-rating-response[data-tone='positive'] {
	border-color: #4f7f62;
	background: #193224;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) #modal_app_rating .tvp-app-rating-response[data-tone='negative'] {
	border-color: #8a5963;
	background: #381c25;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) #modal_app_rating .tvp-app-rating-response-title {
	color: #ecf3fb;
}

:is(html[data-theme="dark"], html.dark, body.dark-mode, body.dark-theme) #modal_app_rating .tvp-app-rating-response-copy {
	color: #c5d8ec;
}

@media (max-width: 575.98px) {
	.tvp-modal {
		padding: 0;
	}

	.tvp-modal__dialog {
		width: min(calc(100vw - 1.1rem), 34rem);
		max-height: calc(100vh - 1.1rem);
	}

	.tvp-modal__body {
		padding: 0.72rem 0.78rem;
	}

	#modal_app_rating .tvp-app-rating-choices {
		gap: 0.65rem;
	}

	#modal_app_rating .tvp-app-rating-choice {
		min-height: 6.6rem;
		padding: 0.82rem 0.62rem;
	}

	#modal_app_rating .tvp-app-rating-choice-label {
		font-size: 0.94rem;
	}

	#modal_app_rating .tvp-app-rating-choice-caption {
		font-size: 0.78rem;
	}

	#modal_app_rating .tvp-app-rating-response {
		padding: 0.88rem 0.82rem;
	}

	#modal_app_rating .tvp-app-rating-response-cta {
		width: 100%;
	}
}
