/**
 * Report Chk — Frontend Widget Styles
 *
 * @package Report Chk
 * @version 1.0.0
 */

:root {
	--rf-accent: #2563eb;
	--rf-accent-light: #eff6ff;
	--rf-bg: #ffffff;
	--rf-text: #1e293b;
	--rf-radius: 10px;
}

/* ── Layout ───────────────────────────────────────── */
.rf-wrap {
	max-width: 800px !important;
	margin: 0 auto !important;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
	color: var(--rf-text) !important;
	line-height: 1.5 !important;
}

/* ── Sections (collapsible) ───────────────────────── */
.rf-section {
	border: 1.5px solid #e2e8f0 !important;
	border-radius: var(--rf-radius) !important;
	margin-bottom: 16px !important;
	background: var(--rf-bg) !important;
	overflow: hidden !important;
}

.rf-section__toggle {
	width: 100% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	padding: 14px 18px !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	color: var(--rf-text) !important;
	background: #f8fafc !important;
	border: none !important;
	cursor: pointer !important;
	text-align: left !important;
	transition: background 0.15s ease !important;
}

.rf-section__toggle:hover {
	background: #f1f5f9 !important;
}

.rf-section__toggle::after {
	content: "\25BC" !important;
	font-size: 10px !important;
	color: #94a3b8 !important;
	transition: transform 0.2s ease !important;
}

.rf-section--open .rf-section__toggle::after {
	transform: rotate(180deg) !important;
}

.rf-section__body {
	padding: 18px !important;
	border-top: 1px solid #e2e8f0 !important;
}

/* ── Fields ───────────────────────────────────────── */
.rf-field-row {
	display: flex !important;
	flex-direction: column !important;
	margin-bottom: 14px !important;
}

.rf-field-grid {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 14px !important;
}

.rf-field-grid .rf-field-row {
	margin-bottom: 0 !important;
	min-width: 0 !important;
}

.rf-field-row label {
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #334155 !important;
	margin-bottom: 4px !important;
}

.rf-field-row input,
.rf-field-row textarea {
	width: 100% !important;
	padding: 10px 14px !important;
	border: 1.5px solid #d1d5db !important;
	border-radius: 8px !important;
	box-sizing: border-box !important;
	font-size: 14px !important;
	color: var(--rf-text) !important;
	background: var(--rf-bg) !important;
	transition:
		border-color 0.15s ease,
		box-shadow 0.15s ease !important;
	outline: none !important;
}

.rf-field-row input:focus,
.rf-field-row textarea:focus {
	border-color: var(--rf-accent) !important;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1) !important;
}

.rf-field-row input::placeholder,
.rf-field-row textarea::placeholder {
	color: #94a3b8 !important;
}

/* ── File upload ──────────────────────────────────── */
.rf-upload {
	text-align: center !important;
	margin-bottom: 14px !important;
}

.rf-upload__btn {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	padding: 10px 20px !important;
	background: #fff !important;
	border: 2px dashed #d1d5db !important;
	border-radius: var(--rf-radius) !important;
	color: var(--rf-accent) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	font-family: inherit !important;
	cursor: pointer !important;
	transition: all 0.15s !important;
}

.rf-upload__btn:hover {
	border-color: var(--rf-accent) !important;
	background: var(--rf-accent-light) !important;
}

.rf-upload__btn svg {
	stroke: var(--rf-accent) !important;
}

.rf-upload__hint {
	display: block !important;
	font-size: 12px !important;
	color: #94a3b8 !important;
	margin-top: 6px !important;
}

/* ── Editor wrapper ───────────────────────────────── */
.rf-editor-wrap {
	margin-bottom: 14px !important;
}

.rf-editor-wrap .wp-editor-container {
	border-radius: 8px !important;
	border: 1.5px solid #d1d5db !important;
	overflow: hidden !important;
}

.rf-editor-wrap .wp-editor-container:focus-within {
	border-color: var(--rf-accent) !important;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1) !important;
}

.rf-editor-wrap .mce-toolbar-grp {
	border-bottom: 1px solid #e2e8f0 !important;
	background: #f8fafc !important;
}

.rf-editor-wrap .quicktags-toolbar {
	border-bottom: 1px solid #e2e8f0 !important;
	background: #f8fafc !important;
	padding: 4px !important;
}

.rf-char-count {
	text-align: right !important;
	font-size: 12px !important;
	color: #94a3b8 !important;
	margin-top: 4px !important;
}

/* ── AI Tools bar ─────────────────────────────────── */
.rf-ai-bar {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 8px !important;
	padding: 10px 14px !important;
	background: #f8fafc !important;
	border: 1.5px solid #e2e8f0 !important;
	border-radius: 8px !important;
	margin: 12px 0 !important;
}

.rf-ai-label {
	font-weight: 600 !important;
	font-size: 13px !important;
	color: #334155 !important;
	margin-right: 4px !important;
}

.rf-ai-btn {
	padding: 6px 14px !important;
	border-radius: 6px !important;
	border: 1px solid #d1d5db !important;
	background: var(--rf-bg) !important;
	cursor: pointer !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	color: var(--rf-text) !important;
	transition:
		border-color 0.15s ease,
		color 0.15s ease,
		background 0.15s ease !important;
	white-space: nowrap !important;
}

.rf-ai-btn:hover {
	border-color: var(--rf-accent) !important;
	color: var(--rf-accent) !important;
}

.rf-ai-btn:disabled {
	opacity: 0.5 !important;
	cursor: not-allowed !important;
}

.rf-ai-btn--custom {
	color: var(--rf-accent) !important;
	border-color: var(--rf-accent) !important;
}

.rf-ai-btn--custom:hover {
	background: var(--rf-accent-light) !important;
}

.rf-ai-custom {
	display: flex !important;
	gap: 8px !important;
	margin-top: 8px !important;
	width: 100% !important;
}

.rf-ai-input {
	flex: 1 !important;
	padding: 8px 12px !important;
	border: 1.5px solid #d1d5db !important;
	border-radius: 6px !important;
	font-size: 13px !important;
	outline: none !important;
}

.rf-ai-input:focus {
	border-color: var(--rf-accent) !important;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1) !important;
}

/* ── Buttons ──────────────────────────────────────── */
.rf-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	padding: 12px 24px !important;
	border-radius: 8px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	border: 1.5px solid transparent !important;
	transition:
		background 0.15s ease,
		border-color 0.15s ease,
		opacity 0.15s ease !important;
	text-decoration: none !important;
}

.rf-btn:disabled {
	opacity: 0.5 !important;
	cursor: not-allowed !important;
}

.rf-btn--primary {
	background: var(--rf-accent) !important;
	color: #fff !important;
	border-color: var(--rf-accent) !important;
}

.rf-btn--primary:hover:not(:disabled) {
	background: #1d4ed8 !important;
}

.rf-btn--secondary {
	background: var(--rf-bg) !important;
	color: var(--rf-accent) !important;
	border-color: var(--rf-accent) !important;
}

.rf-btn--secondary:hover:not(:disabled) {
	background: var(--rf-accent-light) !important;
}

.rf-btn--outline {
	background: #fff !important;
	color: var(--rf-accent) !important;
	border: 2px solid var(--rf-accent) !important;
	text-decoration: none !important;
}

.rf-btn--outline:hover {
	background: var(--rf-accent-light) !important;
	color: var(--rf-accent) !important;
}

/* ── Actions ──────────────────────────────────────── */
.rf-actions {
	display: flex !important;
	justify-content: center !important;
	gap: 12px !important;
	margin: 20px 0 !important;
	flex-wrap: wrap !important;
	flex: 1 !important;
}

/* ── Status ───────────────────────────────────────── */
.rf-status {
	display: none;
	padding: 12px 16px !important;
	border-radius: 8px !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	margin: 12px 0 !important;
	text-align: center !important;
}

.rf-status--loading {
	background: var(--rf-accent-light) !important;
	color: var(--rf-accent) !important;
	border: 1.5px solid #bfdbfe !important;
}

.rf-status--error {
	background: #fef2f2 !important;
	color: #dc2626 !important;
	border: 1.5px solid #fecaca !important;
}

.rf-status--success {
	background: #f0fdf4 !important;
	color: #16a34a !important;
	border: 1.5px solid #bbf7d0 !important;
}

/* ── Required marker ──────────────────────────────── */
.rf-required {
	color: var(--rf-accent) !important;
	font-weight: 700 !important;
}

/* ── Turnstile widget ─────────────────────────────── */
.rf-turnstile-wrap {
	display: flex !important;
	justify-content: center !important;
	margin: 12px 0 !important;
}

/* ── AI Processing Overlay ────────────────────────── */
.rf-ai-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.5);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 99999;
}
.rf-ai-overlay__box {
	background: #fff;
	border-radius: 16px;
	padding: 40px 50px;
	text-align: center;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
}
.rf-ai-overlay__spinner {
	width: 48px;
	height: 48px;
	border: 4px solid #e2e8f0;
	border-top-color: var(--rf-accent);
	border-radius: 50%;
	animation: rf-spin 0.8s linear infinite;
	margin: 0 auto 16px;
}
@keyframes rf-spin {
	to {
		transform: rotate(360deg);
	}
}
.rf-ai-overlay__text {
	font-size: 15px !important;
	font-weight: 600 !important;
	color: #334155 !important;
	margin: 0 !important;
}

/* ── Hero ─────────────────────────────────────────── */
.rf-hero {
	text-align: center !important;
	padding: 28px 20px !important;
	background: var(--rf-accent-light) !important;
	border: 1px solid #dbeafe !important;
	border-radius: var(--rf-radius) !important;
	margin-bottom: 20px !important;
}
.rf-hero__icon {
	font-size: 36px !important;
	margin-bottom: 8px !important;
}
.rf-hero__badge {
	display: inline-block !important;
	background: var(--rf-accent) !important;
	color: #fff !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	padding: 3px 12px !important;
	border-radius: 20px !important;
	margin-bottom: 10px !important;
}
.rf-hero__title {
	font-size: 22px !important;
	font-weight: 700 !important;
	color: var(--rf-text) !important;
	margin: 0 0 8px !important;
}
.rf-hero__intro {
	font-size: 14px !important;
	color: #64748b !important;
	margin: 0 !important;
	max-width: 600px !important;
	margin: 0 auto !important;
	line-height: 1.6 !important;
}

/* ── Privacy Banner ──────────────────────────────── */
.rf-privacy {
	display: flex !important;
	align-items: flex-start !important;
	gap: 12px !important;
	background: #f0fdf4 !important;
	border: 1px solid #bbf7d0 !important;
	border-radius: var(--rf-radius) !important;
	padding: 14px 18px !important;
	margin-bottom: 20px !important;
	font-size: 13px !important;
	color: #166534 !important;
}
.rf-privacy__icon {
	font-size: 20px !important;
	flex-shrink: 0 !important;
}

/* ── Info Sections (howto, info) ──────────────────── */
.rf-info-section {
	background: #f8fafc !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: var(--rf-radius) !important;
	padding: 20px 24px !important;
	margin-top: 20px !important;
	font-size: 14px !important;
	line-height: 1.7 !important;
	color: var(--rf-text) !important;
}
.rf-info-section h3 {
	font-size: 16px !important;
	font-weight: 700 !important;
	color: var(--rf-text) !important;
	margin: 0 0 10px !important;
}
.rf-info-section h3:not(:first-child) {
	margin-top: 20px !important;
}
.rf-info-section ol,
.rf-info-section ul {
	padding-left: 20px !important;
	margin: 8px 0 !important;
}
.rf-info-section li {
	margin: 6px 0 !important;
}
.rf-info-section p {
	margin: 8px 0 !important;
}

/* ── Terms & Conditions ──────────────────────────── */
.rf-terms {
	border: 1.5px solid #e2e8f0 !important;
	border-radius: var(--rf-radius) !important;
	padding: 16px 18px !important;
	margin: 16px 0 !important;
	background: #f8fafc !important;
}

.rf-terms__switch {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	cursor: pointer !important;
	user-select: none !important;
	-webkit-user-select: none !important;
}

.rf-terms__switch input {
	display: none !important;
}

.rf-terms__slider {
	position: relative !important;
	width: 44px !important;
	height: 24px !important;
	background: #cbd5e1 !important;
	border-radius: 24px !important;
	transition: background 0.2s ease !important;
	flex-shrink: 0 !important;
}

.rf-terms__slider::after {
	content: "" !important;
	position: absolute !important;
	top: 2px !important;
	left: 2px !important;
	width: 20px !important;
	height: 20px !important;
	background: #fff !important;
	border-radius: 50% !important;
	transition: transform 0.2s ease !important;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15) !important;
}

.rf-terms__switch input:checked + .rf-terms__slider {
	background: var(--rf-accent) !important;
}

.rf-terms__switch input:checked + .rf-terms__slider::after {
	transform: translateX(20px) !important;
}

.rf-terms__label {
	font-size: 14px !important;
	font-weight: 500 !important;
	color: var(--rf-text) !important;
}

.rf-terms__required {
	color: #dc2626 !important;
	font-weight: 700 !important;
	margin-left: 2px !important;
}

.rf-terms__toggle {
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	margin-top: 10px !important;
	padding: 0 !important;
	border: none !important;
	background: none !important;
	color: var(--rf-accent) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	cursor: pointer !important;
	text-decoration: none !important;
}

.rf-terms__toggle:hover {
	text-decoration: underline !important;
}

.rf-terms__text {
	margin-top: 12px !important;
	padding: 16px !important;
	background: #fff !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 8px !important;
	font-size: 13px !important;
	line-height: 1.7 !important;
	color: #475569 !important;
	max-height: 300px !important;
	overflow-y: auto !important;
}

/* ── Email Form ──────────────────────────────────── */
.rf-email-form {
	display: flex !important;
	gap: 8px !important;
	align-items: center !important;
	justify-content: center !important;
	flex-wrap: wrap !important;
	width: 100% !important;
	margin-top: 12px !important;
	padding: 14px !important;
	background: #f8fafc !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: var(--rf-radius) !important;
}
.rf-email-label {
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #334155 !important;
}
.rf-email-input {
	flex: 1 !important;
	max-width: 300px !important;
	padding: 10px 14px !important;
	border: 1.5px solid #d1d5db !important;
	border-radius: 8px !important;
	font-size: 14px !important;
	font-family: inherit !important;
	box-sizing: border-box !important;
}
.rf-email-input:focus {
	border-color: var(--rf-accent) !important;
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1) !important;
}

/* ── Responsive ───────────────────────────────────── */
@media (max-width: 600px) {
	.rf-field-grid {
		grid-template-columns: 1fr !important;
	}

	.rf-ai-bar {
		flex-direction: column !important;
		align-items: stretch !important;
	}

	.rf-ai-btn {
		text-align: center !important;
	}

	.rf-wrap {
		padding: 0 12px !important;
	}

	.rf-email-form {
		flex-direction: column !important;
	}
}
