.q4app { font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }

.q4app__fab {
	position: fixed;
	right: 18px;
	bottom: 18px;
	z-index: 9998;
	background: #2563eb;
	color: #fff;
	border: 0;
	border-radius: 999px;
	padding: 12px 16px;
	font-weight: 700;
	font-size: 14px;
	box-shadow: 0 12px 30px rgba(0,0,0,.25);
	cursor: pointer;
}

.q4app__fab:hover { background: #1d4ed8; }

.q4app__overlay {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: rgba(0,0,0,.55);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 18px;
}

.q4app__modal {
	width: min(520px, 100%);
	background: #fff;
	border-radius: 14px;
	padding: 18px;
	box-shadow: 0 28px 70px rgba(0,0,0,.35);
	position: relative;
}

.q4app__close {
	position: absolute;
	top: 10px;
	right: 10px;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	border: 0;
	background: #f3f4f6;
	cursor: pointer;
	font-size: 22px;
	line-height: 1;
}

.q4app__title { margin: 0 0 6px; font-size: 20px; font-weight: 800; color: #111827; }
.q4app__subtitle { margin: 0 0 14px; color: #6b7280; font-size: 14px; }

.q4app__form { display: grid; gap: 12px; }

.q4app__field { display: grid; gap: 6px; }
.q4app__label { font-size: 12px; font-weight: 700; color: #374151; }

.q4app__input,
.q4app__textarea {
	width: 100%;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	padding: 10px 12px;
	font-size: 14px;
	outline: none;
}

.q4app__input:focus,
.q4app__textarea:focus {
	border-color: #2563eb;
	box-shadow: 0 0 0 4px rgba(37,99,235,.15);
}

.q4app__actions { display: flex; gap: 10px; align-items: center; }

.q4app__submit {
	background: #2563eb;
	color: #fff;
	border: 0;
	border-radius: 10px;
	padding: 10px 14px;
	font-weight: 800;
	cursor: pointer;
}

.q4app__submit[disabled] { opacity: .7; cursor: not-allowed; }

.q4app__secondary {
	background: transparent;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	padding: 10px 14px;
	cursor: pointer;
	color: #111827;
	font-weight: 700;
}

.q4app__notice {
	padding: 10px 12px;
	border-radius: 10px;
	font-size: 14px;
}

.q4app__notice--ok { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.q4app__notice--err { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }

.q4app__hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }

/* блокируем прокрутку под модалкой */
.q4app--open body { overflow: hidden; }
