/*
 * IdeaPlugins Callback — frontend styles.
 * Every selector is namespaced with `ideaplnewplg20i_` to avoid collisions with
 * themes, page builders, WooCommerce and other plugins. Fully self-contained:
 * no external fonts or icon libraries are loaded.
 */

.ideaplnewplg20i_root {
	--ideaplnewplg20i-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	all: initial;
	font-family: var(--ideaplnewplg20i-font);
	color-scheme: light;
}

.ideaplnewplg20i_root * {
	box-sizing: border-box;
	font-family: var(--ideaplnewplg20i-font);
	line-height: 1.4;
}

.ideaplnewplg20i_root button {
	cursor: pointer;
	font: inherit;
}

/* ---------- device visibility ---------- */
@media (min-width: 1025px) {
	.ideaplnewplg20i_hide-desktop { display: none !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.ideaplnewplg20i_hide-tablet { display: none !important; }
}
@media (max-width: 767px) {
	.ideaplnewplg20i_hide-mobile { display: none !important; }
}

/* ================= TRIGGER (left / right modes) ================= */

.ideaplnewplg20i_trigger {
	position: fixed;
	top: 50%;
	transform: translateY(-50%);
	z-index: 999998;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	width: var(--ideaplnewplg20i-trigger-width, 56px);
	min-height: var(--ideaplnewplg20i-trigger-height, 140px);
	padding: 16px 10px;
	background: var(--ideaplnewplg20i-trigger-bg, #4F46E5);
	color: var(--ideaplnewplg20i-trigger-text, #FFFFFF);
	border: 1px solid var(--ideaplnewplg20i-trigger-border, rgba(255,255,255,.08));
	box-shadow: var(--ideaplnewplg20i-trigger-shadow, 0 18px 40px rgba(30,27,75,.28));
	appearance: none;
	transition: background-color .22s ease, color .22s ease, box-shadow .22s ease, transform .22s ease;
}

.ideaplnewplg20i_trigger-left {
	left: 0;
	border-radius: 0 var(--ideaplnewplg20i-trigger-radius, 14px) var(--ideaplnewplg20i-trigger-radius, 14px) 0;
}
.ideaplnewplg20i_trigger-right {
	right: 0;
	border-radius: var(--ideaplnewplg20i-trigger-radius, 14px) 0 0 var(--ideaplnewplg20i-trigger-radius, 14px);
	writing-mode: vertical-lr;
}

.ideaplnewplg20i_root .ideaplnewplg20i_trigger {
	color: var(--ideaplnewplg20i-trigger-text, #FFFFFF) !important;
	background: var(--ideaplnewplg20i-trigger-bg, #4F46E5) !important;
}
.ideaplnewplg20i_root .ideaplnewplg20i_trigger:hover,
.ideaplnewplg20i_root .ideaplnewplg20i_trigger:focus,
.ideaplnewplg20i_root .ideaplnewplg20i_trigger:focus-visible {
	background: var(--ideaplnewplg20i-trigger-hover-bg, #4338CA) !important;
	color: var(--ideaplnewplg20i-trigger-hover-text, #FFFFFF) !important;
}
.ideaplnewplg20i_trigger:hover .ideaplnewplg20i_trigger-icon,
.ideaplnewplg20i_trigger:focus-visible .ideaplnewplg20i_trigger-icon {
	color: var(--ideaplnewplg20i-trigger-hover-icon, #FFB4A8);
}
.ideaplnewplg20i_trigger:focus-visible {
	outline: 2px solid var(--ideaplnewplg20i-trigger-hover-icon, #FFB4A8);
	outline-offset: 3px;
}

.ideaplnewplg20i_trigger-icon {
	display: inline-flex;
	width: var(--ideaplnewplg20i-trigger-icon-size, 20px);
	height: var(--ideaplnewplg20i-trigger-icon-size, 20px);
	color: var(--ideaplnewplg20i-trigger-icon, #FF8A7A);
	writing-mode: horizontal-tb;
	transition: color .22s ease;
}
.ideaplnewplg20i_trigger-icon svg { width: 100%; height: 100%; display: block; }

.ideaplnewplg20i_trigger-text {
	font-weight: 600;
	font-size: var(--ideaplnewplg20i-trigger-text-size, 14px);
	letter-spacing: .01em;
}

/* attention animations, all respecting reduced motion + a global kill-switch */
.ideaplnewplg20i_root[data-animation="pulse"] .ideaplnewplg20i_trigger { animation: ideaplnewplg20i-pulse 2.6s ease-in-out infinite; }
.ideaplnewplg20i_root[data-animation="bounce"] .ideaplnewplg20i_trigger { animation: ideaplnewplg20i-bounce 2.8s ease-in-out infinite; }
.ideaplnewplg20i_root[data-animation="glow"] .ideaplnewplg20i_trigger { animation: ideaplnewplg20i-glow 3.2s ease-in-out infinite; }
.ideaplnewplg20i_root[data-animation-speed="slow"] .ideaplnewplg20i_trigger { animation-duration: 4.2s; }
.ideaplnewplg20i_root[data-animation-speed="fast"] .ideaplnewplg20i_trigger { animation-duration: 1.6s; }
.ideaplnewplg20i_root.ideaplnewplg20i_no-anim .ideaplnewplg20i_trigger { animation: none !important; }

@keyframes ideaplnewplg20i-pulse {
	0%, 100% { transform: translateY(-50%) scale(1); }
	50% { transform: translateY(-50%) scale(1.035); }
}
@keyframes ideaplnewplg20i-bounce {
	0%, 100% { transform: translateY(-50%); }
	50% { transform: translateY(calc(-50% - 6px)); }
}
@keyframes ideaplnewplg20i-glow {
	0%, 100% { box-shadow: var(--ideaplnewplg20i-trigger-shadow, 0 18px 40px rgba(30,27,75,.28)); }
	50% { box-shadow: 0 0 0 6px rgba(255,138,122,.18), var(--ideaplnewplg20i-trigger-shadow, 0 18px 40px rgba(30,27,75,.28)); }
}

/* ================= SLIDE PANEL ================= */

.ideaplnewplg20i_panel {
	position: fixed;
	top: 0;
	bottom: 0;
	z-index: 999999;
	width: min(var(--ideaplnewplg20i-form-width, 420px), 92vw);
	background: #fff;
	box-shadow: -24px 0 60px rgba(15,23,42,.22);
	padding: 36px 30px;
	overflow-y: auto;
	transition: transform .32s cubic-bezier(.22,.9,.3,1), opacity .28s ease;
}
.ideaplnewplg20i_panel[hidden] { display: none; }

.ideaplnewplg20i_panel-slide.ideaplnewplg20i_panel-left { left: 0; border-radius: 0 24px 24px 0; box-shadow: 24px 0 60px rgba(15,23,42,.22); transform: translateX(-102%); }
.ideaplnewplg20i_panel-slide.ideaplnewplg20i_panel-right { right: 0; border-radius: 24px 0 0 24px; box-shadow: -24px 0 60px rgba(15,23,42,.22); transform: translateX(102%); }
.ideaplnewplg20i_panel-slide.ideaplnewplg20i_panel-open { transform: translateX(0); }

/* ================= POPUP ================= */

.ideaplnewplg20i_overlay {
	position: fixed;
	inset: 0;
	z-index: 999997;
	background: var(--ideaplnewplg20i-popup-overlay-bg, #0B1020);
	opacity: 0;
	-webkit-backdrop-filter: blur(6px) saturate(120%);
	backdrop-filter: blur(6px) saturate(120%);
	transition: opacity .3s ease;
	cursor: pointer;
}
.ideaplnewplg20i_overlay[hidden] { display: none; }
.ideaplnewplg20i_overlay.ideaplnewplg20i_overlay-open { opacity: var(--ideaplnewplg20i-popup-overlay-opacity, .55); }

.ideaplnewplg20i_panel-popup {
	left: 50%;
	top: 50%;
	bottom: auto;
	width: var(--ideaplnewplg20i-popup-width, 460px);
	max-width: var(--ideaplnewplg20i-popup-max-width, 94vw);
	max-height: 88vh;
	border-radius: var(--ideaplnewplg20i-popup-radius, 20px);
	box-shadow: var(--ideaplnewplg20i-popup-shadow, 0 30px 80px rgba(15,23,42,.35));
	transform: translate(-50%, -46%) scale(.94);
	opacity: 0;
}
.ideaplnewplg20i_panel-popup.ideaplnewplg20i_panel-open {
	transform: translate(-50%, -50%) scale(1);
	opacity: 1;
}

.ideaplnewplg20i_close {
	position: absolute;
	top: 18px;
	right: 18px;
	width: 34px;
	height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: none;
	border-radius: 50%;
	padding: 0;
	background: rgba(79,70,229,.08);
	color: #4F46E5;
	transition: background-color .18s ease, transform .18s ease;
}
.ideaplnewplg20i_root .ideaplnewplg20i_close:hover { background: #4F46E5; color: #FFFFFF; transform: rotate(90deg); }
.ideaplnewplg20i_close svg { width: 16px; height: 16px; }
.ideaplnewplg20i_close-bar { position: static; margin-left: auto; }

/* ================= FORM (shared) ================= */

.ideaplnewplg20i_form-head { margin-bottom: 18px; }
.ideaplnewplg20i_root .ideaplnewplg20i_form-title { margin: 0 0 6px; padding: 0; font-size: 21px; font-weight: 700; letter-spacing: -.01em; color: #0F172A; }
.ideaplnewplg20i_root .ideaplnewplg20i_form-subtitle { margin: 0; font-size: 14px; color: #5B6478; }

.ideaplnewplg20i_fields {
	display: flex;
	flex-direction: column;
	gap: var(--ideaplnewplg20i-form-spacing, 16px);
	margin-bottom: 18px;
}

.ideaplnewplg20i_field { display: flex; flex-direction: column; gap: 6px; }
.ideaplnewplg20i_root .ideaplnewplg20i_label { margin: 0; padding: 0; font-size: 13px; font-weight: 600; color: var(--ideaplnewplg20i-label-color, #3B4256); }
.ideaplnewplg20i_required { color: #E5484D; }

.ideaplnewplg20i_input-wrap { position: relative; display: block; width: 100%; }
.ideaplnewplg20i_root .ideaplnewplg20i_input-icon {
	position: absolute;
	top: 50%;
	left: 16px;
	z-index: 2;
	width: 18px;
	height: 18px;
	margin: 0;
	padding: 0;
	transform: translateY(-50%);
	color: #8A93A8;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
	transition: color .18s ease;
}
.ideaplnewplg20i_root .ideaplnewplg20i_input-icon svg { width: 100%; height: 100%; display: block; }
.ideaplnewplg20i_root .ideaplnewplg20i_input-wrap:focus-within .ideaplnewplg20i_input-icon { color: var(--ideaplnewplg20i-input-focus, #4F46E5); }

/* High-specificity + !important on the geometry so theme rules such as
   `input[type=text] { padding: ... }` can never push text under the icon. */
.ideaplnewplg20i_root .ideaplnewplg20i_input-wrap .ideaplnewplg20i_input,
.ideaplnewplg20i_root .ideaplnewplg20i_input-wrap .ideaplnewplg20i_textarea {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	min-height: 48px !important;
	margin: 0 !important;
	padding: 13px 16px 13px 48px !important;
	text-indent: 0 !important;
	font-size: 14.5px !important;
	line-height: 1.4 !important;
	color: var(--ideaplnewplg20i-input-text, #0F172A) !important;
	background: var(--ideaplnewplg20i-input-bg, #fff) !important;
	background-image: none !important;
	border: 1.4px solid var(--ideaplnewplg20i-input-border, #E4E7F0) !important;
	border-radius: var(--ideaplnewplg20i-input-radius, 12px) !important;
	box-shadow: 0 1px 2px rgba(15,23,42,.04) !important;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color .18s ease, box-shadow .18s ease;
}
.ideaplnewplg20i_root .ideaplnewplg20i_input-wrap .ideaplnewplg20i_textarea {
	padding-left: 16px !important;
	min-height: 84px !important;
	resize: vertical;
}
.ideaplnewplg20i_input-wrap:has(textarea) .ideaplnewplg20i_input-icon { display: none; }

.ideaplnewplg20i_root .ideaplnewplg20i_input-wrap .ideaplnewplg20i_input:focus,
.ideaplnewplg20i_root .ideaplnewplg20i_input-wrap .ideaplnewplg20i_textarea:focus {
	outline: none !important;
	border-color: var(--ideaplnewplg20i-input-focus, #4F46E5) !important;
	box-shadow: 0 0 0 4px rgba(79,70,229,.14) !important;
}
.ideaplnewplg20i_root .ideaplnewplg20i_input::placeholder,
.ideaplnewplg20i_root .ideaplnewplg20i_textarea::placeholder { color: #9AA3B8 !important; opacity: 1; }

.ideaplnewplg20i_root .ideaplnewplg20i_input-wrap .ideaplnewplg20i_input:invalid.ideaplnewplg20i_touched,
.ideaplnewplg20i_root .ideaplnewplg20i_input-wrap .ideaplnewplg20i_textarea:invalid.ideaplnewplg20i_touched { border-color: #E5484D !important; box-shadow: 0 0 0 4px rgba(229,72,77,.10) !important; }

.ideaplnewplg20i_hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.ideaplnewplg20i_form-error {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 14px;
	padding: 10px 12px;
	font-size: 13px;
	color: #8A2F1F;
	background: #FBEDE9;
	border: 1px solid #F0CFC5;
	border-radius: 10px;
}
.ideaplnewplg20i_form-error[hidden] { display: none; }

.ideaplnewplg20i_root .ideaplnewplg20i_submit {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	margin: 0;
	padding: 14px 22px;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .005em;
	text-transform: none;
	text-decoration: none;
	color: var(--ideaplnewplg20i-button-text, #FFFFFF) !important;
	background: var(--ideaplnewplg20i-button-bg, #4F46E5) !important;
	border: none !important;
	border-radius: var(--ideaplnewplg20i-button-radius, 12px);
	box-shadow: 0 10px 24px -8px var(--ideaplnewplg20i-button-bg, #4F46E5), inset 0 1px 0 rgba(255,255,255,.18);
	transition: background-color .18s ease, transform .12s ease, box-shadow .18s ease;
}
.ideaplnewplg20i_root .ideaplnewplg20i_submit:hover,
.ideaplnewplg20i_root .ideaplnewplg20i_submit:focus,
.ideaplnewplg20i_root .ideaplnewplg20i_submit:active {
	color: var(--ideaplnewplg20i-button-text, #FFFFFF) !important;
	background: var(--ideaplnewplg20i-button-hover-bg, #4338CA) !important;
	box-shadow: 0 14px 28px -8px var(--ideaplnewplg20i-button-hover-bg, #4338CA), inset 0 1px 0 rgba(255,255,255,.2);
}
.ideaplnewplg20i_root .ideaplnewplg20i_submit:focus-visible { outline: 3px solid rgba(79,70,229,.35); outline-offset: 2px; }
.ideaplnewplg20i_submit:active { transform: scale(.98); }
.ideaplnewplg20i_submit svg { stroke: currentColor; }
.ideaplnewplg20i_submit-icon { width: 16px; height: 16px; display: inline-flex; color: inherit; transition: transform .18s ease; }
.ideaplnewplg20i_submit-icon svg { width: 100%; height: 100%; }
.ideaplnewplg20i_submit:hover .ideaplnewplg20i_submit-icon { transform: translateX(3px); }

.ideaplnewplg20i_spinner {
	display: none;
	width: 16px;
	height: 16px;
	border: 2px solid rgba(255,255,255,.4);
	border-top-color: #fff;
	border-radius: 50%;
}
.ideaplnewplg20i_root:not(.ideaplnewplg20i_no-anim) .ideaplnewplg20i_spinner { animation: ideaplnewplg20i-spin .7s linear infinite; }
@keyframes ideaplnewplg20i-spin { to { transform: rotate(360deg); } }

[data-loading="1"] .ideaplnewplg20i_submit-label,
[data-loading="1"] .ideaplnewplg20i_submit-icon { display: none; }
[data-loading="1"] .ideaplnewplg20i_spinner { display: inline-block; }
[data-loading="1"] .ideaplnewplg20i_submit { opacity: .85; pointer-events: none; }

/* ================= STATES (form / success / error) ================= */

.ideaplnewplg20i_state { display: none; }
.ideaplnewplg20i_panel[data-state="form"] .ideaplnewplg20i_state-form,
.ideaplnewplg20i_bar[data-state="form"] .ideaplnewplg20i_state-form,
.ideaplnewplg20i_panel[data-state="success"] .ideaplnewplg20i_state-success,
.ideaplnewplg20i_bar[data-state="success"] .ideaplnewplg20i_state-success,
.ideaplnewplg20i_panel[data-state="error"] .ideaplnewplg20i_state-error,
.ideaplnewplg20i_bar[data-state="error"] .ideaplnewplg20i_state-error {
	display: block;
}

.ideaplnewplg20i_state-success,
.ideaplnewplg20i_state-error {
	text-align: center;
	padding: 20px 4px;
}
.ideaplnewplg20i_state-icon {
	display: inline-flex;
	width: 52px;
	height: 52px;
	margin-bottom: 14px;
	color: #1D7A54;
	animation: ideaplnewplg20i-pop .32s cubic-bezier(.2,1.3,.4,1);
}
.ideaplnewplg20i_state-icon-error { color: #C1553F; }
.ideaplnewplg20i_state-icon svg { width: 100%; height: 100%; }
@keyframes ideaplnewplg20i-pop { from { transform: scale(.6); opacity: 0; } to { transform: scale(1); opacity: 1; } }

.ideaplnewplg20i_state-title { margin: 0 0 8px; font-size: 19px; font-weight: 700; color: #0F172A; }
.ideaplnewplg20i_state-message { margin: 0 0 18px; font-size: 13.5px; color: #5B6478; }
.ideaplnewplg20i_root .ideaplnewplg20i_state-button {
	display: inline-flex;
	padding: 12px 26px;
	font-size: 14px;
	font-weight: 600;
	color: #FFFFFF !important;
	background: var(--ideaplnewplg20i-button-bg, #4F46E5) !important;
	border: none !important;
	border-radius: var(--ideaplnewplg20i-button-radius, 12px);
	box-shadow: 0 10px 24px -10px var(--ideaplnewplg20i-button-bg, #4F46E5);
	transition: background-color .18s ease, transform .12s ease;
}
.ideaplnewplg20i_root .ideaplnewplg20i_state-button:hover { color: #FFFFFF !important; background: var(--ideaplnewplg20i-button-hover-bg, #4338CA) !important; }
.ideaplnewplg20i_root .ideaplnewplg20i_state-button-ghost { background: transparent !important; color: #4F46E5 !important; border: 1.4px solid #E4E7F0 !important; box-shadow: none; }
.ideaplnewplg20i_root .ideaplnewplg20i_state-button-ghost:hover { background: #F5F6FB !important; color: #4338CA !important; }

/* ================= BOTTOM BAR ================= */

.ideaplnewplg20i_bar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 999998;
	min-height: var(--ideaplnewplg20i-bar-height, 88px);
	padding: var(--ideaplnewplg20i-bar-padding, 16px) 24px;
	background: var(--ideaplnewplg20i-bar-bg, #FFFFFF);
	border-top: 1px solid var(--ideaplnewplg20i-bar-border, #E4E7F0);
	box-shadow: var(--ideaplnewplg20i-bar-shadow, 0 -14px 40px rgba(15,23,42,.10));
	transform: translateY(0);
	transition: transform .3s ease;
}
.ideaplnewplg20i_bar.ideaplnewplg20i_bar-hidden { transform: translateY(110%); }

.ideaplnewplg20i_bar .ideaplnewplg20i_state-form { width: 100%; }
.ideaplnewplg20i_bar .ideaplnewplg20i_form-head { margin: 0; }
.ideaplnewplg20i_bar .ideaplnewplg20i_form { display: flex; align-items: flex-end; gap: var(--ideaplnewplg20i-bar-spacing, 14px); width: 100%; }
.ideaplnewplg20i_bar .ideaplnewplg20i_fields { flex-direction: row; flex-wrap: wrap; align-items: flex-end; gap: var(--ideaplnewplg20i-bar-spacing, 14px); margin-bottom: 0; flex: 1 1 auto; }
.ideaplnewplg20i_bar .ideaplnewplg20i_field { width: var(--ideaplnewplg20i-bar-input-width, 220px); }
.ideaplnewplg20i_bar .ideaplnewplg20i_form-error { width: 100%; order: 5; margin: 0; }
.ideaplnewplg20i_bar .ideaplnewplg20i_submit { width: var(--ideaplnewplg20i-bar-button-width, 200px); flex: 0 0 auto; }
.ideaplnewplg20i_bar .ideaplnewplg20i_state-success,
.ideaplnewplg20i_bar .ideaplnewplg20i_state-error { padding: 6px 4px; }

@media (min-width: 1025px) {
	.ideaplnewplg20i_bar {
		display: flex;
		align-items: center;
		gap: 28px;
	}
	.ideaplnewplg20i_bar .ideaplnewplg20i_state-form {
		display: flex;
		align-items: center;
		gap: 28px;
		width: 100%;
	}
	.ideaplnewplg20i_bar .ideaplnewplg20i_form-head { flex: 0 0 auto; max-width: 320px; }
	.ideaplnewplg20i_bar .ideaplnewplg20i_form-title { font-size: 17px; }
	.ideaplnewplg20i_bar .ideaplnewplg20i_form-subtitle { font-size: 12.5px; }
	.ideaplnewplg20i_bar .ideaplnewplg20i_close-bar { order: 99; }
}

/* Tablet: bar keeps a horizontal rhythm but wraps into two considered rows. */
@media (min-width: 768px) and (max-width: 1024px) {
	.ideaplnewplg20i_bar { display: block; }
	.ideaplnewplg20i_bar .ideaplnewplg20i_state-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px 20px; }
	.ideaplnewplg20i_bar .ideaplnewplg20i_form-head { flex: 1 1 100%; margin-bottom: 4px; }
	.ideaplnewplg20i_bar .ideaplnewplg20i_field { width: calc(50% - 10px); }
	.ideaplnewplg20i_bar .ideaplnewplg20i_submit { width: 100%; margin-top: 6px; }
	.ideaplnewplg20i_close-bar { position: absolute; top: 12px; right: 16px; }
}

/* Mobile: genuinely stacked, title/subtitle, each field full width, button last. */
@media (max-width: 767px) {
	.ideaplnewplg20i_bar { padding: 18px 18px 20px; max-height: 82vh; overflow-y: auto; }
	.ideaplnewplg20i_bar .ideaplnewplg20i_form { flex-direction: column; align-items: stretch; }
	.ideaplnewplg20i_bar .ideaplnewplg20i_fields { flex-direction: column; }
	.ideaplnewplg20i_bar .ideaplnewplg20i_field { width: 100%; }
	.ideaplnewplg20i_bar .ideaplnewplg20i_form-head { margin-bottom: 14px; padding-right: 30px; }
	.ideaplnewplg20i_bar .ideaplnewplg20i_submit { width: 100%; }
	.ideaplnewplg20i_close-bar { position: absolute; top: 14px; right: 14px; }

	.ideaplnewplg20i_panel { width: 100%; max-width: 100%; }
	.ideaplnewplg20i_panel-popup { top: auto; bottom: 0; transform: translate(-50%, 8%); border-radius: var(--ideaplnewplg20i-popup-radius, 20px) var(--ideaplnewplg20i-popup-radius, 20px) 0 0; max-height: 92vh; }
	.ideaplnewplg20i_panel-popup.ideaplnewplg20i_panel-open { transform: translate(-50%, 0); }

	.ideaplnewplg20i_trigger { min-height: 0; height: 52px; width: 52px; padding: 0; writing-mode: horizontal-tb; border-radius: 50%; top: auto; bottom: 96px; transform: none; }
	.ideaplnewplg20i_trigger-left { left: 14px; }
	.ideaplnewplg20i_trigger-right { right: 14px; }
	.ideaplnewplg20i_trigger-text { display: none; }
	.ideaplnewplg20i_root[data-mode="bottom"] .ideaplnewplg20i_trigger { display: none; }
}

/* Reduced motion + explicit disable switch */
@media (prefers-reduced-motion: reduce) {
	.ideaplnewplg20i_root:not([data-force-motion="1"]) * { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}
.ideaplnewplg20i_root.ideaplnewplg20i_no-anim * { animation: none !important; transition: none !important; }


/* ================= BOTTOM BAR: state fixes + horizontal error banner ================= */

/* On desktop the flex rule above overrides the generic "hide inactive state" rule,
   so the form must be hidden explicitly once the success panel is showing. */
.ideaplnewplg20i_bar[data-state="success"] .ideaplnewplg20i_state-form { display: none; }

/* Success: the bar is a flex row, so the message must be told to take the
   full width itself in order for its own text-align:center to actually center it. */
.ideaplnewplg20i_bar[data-state="success"] .ideaplnewplg20i_state-success {
	width: 100%;
	flex: 1 1 100%;
	text-align: center;
}

/* The dismiss (x) button only makes sense while the form is being filled in,
   or when an error needs to be manually cleared — the success message closes
   itself automatically, so hide it there. */
.ideaplnewplg20i_bar[data-state="success"] .ideaplnewplg20i_close-bar { display: none; }

/* Error: the form stays visible; the banner sits in normal flow, full width,
   above the title/fields — never floating off to the side, never overlapping
   other page content. */
.ideaplnewplg20i_bar[data-state="error"] {
	display: flex;
	flex-direction: column;
	align-items: stretch;
}
/* Keep the X pinned to the corner regardless of the column layout the error
   state switches the bar into — it must never be pushed into the flow. */
.ideaplnewplg20i_bar[data-state="error"] .ideaplnewplg20i_close-bar {
	position: absolute;
	top: 14px;
	right: 16px;
	margin: 0;
	order: 0;
}
.ideaplnewplg20i_bar[data-state="error"] .ideaplnewplg20i_state-form { display: block; order: 1; }
@media (min-width: 1025px) {
	.ideaplnewplg20i_bar[data-state="error"] .ideaplnewplg20i_state-form { display: flex; }
}
.ideaplnewplg20i_bar[data-state="error"] .ideaplnewplg20i_state-error {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 14px;
	position: static;
	order: -1;
	width: 100%;
	box-sizing: border-box;
	margin: 0 0 14px;
	padding: 14px 46px 14px 18px;
	text-align: left;
	background: #FFFFFF;
	border: 1px solid #F3D3CB;
	border-left: 4px solid #C1553F;
	border-radius: 14px;
	box-shadow: 0 10px 26px -14px rgba(15, 23, 42, .22);
}
.ideaplnewplg20i_bar .ideaplnewplg20i_state-error .ideaplnewplg20i_state-icon {
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	margin: 0;
}
.ideaplnewplg20i_bar .ideaplnewplg20i_state-error .ideaplnewplg20i_state-title {
	margin: 0;
	font-size: 15px;
	line-height: 1.3;
	flex: 0 0 auto;
}
.ideaplnewplg20i_bar .ideaplnewplg20i_state-error .ideaplnewplg20i_state-message {
	margin: 0;
	font-size: 13.5px;
	line-height: 1.4;
	flex: 1 1 220px;
	min-width: 0;
}
.ideaplnewplg20i_bar .ideaplnewplg20i_state-error .ideaplnewplg20i_state-button {
	flex: 0 0 auto;
	margin-left: auto;
	padding: 9px 18px;
}

/* Narrow screens: message and retry button each take their own full-width row. */
@media (max-width: 767px) {
	.ideaplnewplg20i_bar[data-state="error"] .ideaplnewplg20i_state-error {
		gap: 8px 12px;
	}
	.ideaplnewplg20i_bar .ideaplnewplg20i_state-error .ideaplnewplg20i_state-message { flex: 1 1 100%; }
	.ideaplnewplg20i_bar .ideaplnewplg20i_state-error .ideaplnewplg20i_state-button { margin-left: 0; width: 100%; justify-content: center; }
}

/* ================= BOTTOM BAR: validation notice above the title ================= */

/* The notice sits at the very top of the bar (moved there by frontend.js),
   full width, with 18px above and 18px below so it never touches the title. */
.ideaplnewplg20i_bar:has(.ideaplnewplg20i_state-form > .ideaplnewplg20i_form-error:not([hidden])) {
	padding-top: 18px;
}
.ideaplnewplg20i_bar .ideaplnewplg20i_state-form > .ideaplnewplg20i_form-error {
	order: 0;
	flex: 0 0 100%;
	width: 100%;
	margin: 0 0 18px;
}
@media (min-width: 1025px) {
	/* Let the desktop row wrap so the notice gets its own line above title + fields. */
	.ideaplnewplg20i_bar .ideaplnewplg20i_state-form:has(> .ideaplnewplg20i_form-error:not([hidden])) {
		flex-wrap: wrap;
	}
	.ideaplnewplg20i_bar .ideaplnewplg20i_state-form:has(> .ideaplnewplg20i_form-error:not([hidden])) > .ideaplnewplg20i_form {
		flex: 1 1 0;
		width: auto;
	}
}
@media (max-width: 1024px) {
	/* The dismiss (x) is pinned to the corner here, so keep the notice clear of it. */
	.ideaplnewplg20i_bar .ideaplnewplg20i_state-form > .ideaplnewplg20i_form-error { padding-right: 52px; }
}
