/* GEO Diagnose — front-end chatbot funnel widget. All rules scoped under #geo-diagnose-widget. */

#geo-diagnose-widget {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 2147483000;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Apple SD Gothic Neo", "Malgun Gothic", "맑은 고딕", sans-serif;
	font-size: 14px;
	line-height: 1.55;
	color: #1f2430;
}

#geo-diagnose-widget * {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

/* Launcher button */
#geo-diagnose-widget .gd-launcher {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: 0;
	cursor: pointer;
	background: #2b59ff;
	color: #fff;
	font: inherit;
	font-weight: 600;
	padding: 13px 18px;
	border-radius: 999px;
	box-shadow: 0 8px 24px rgba(20, 40, 120, 0.28);
	transition: transform 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
}
#geo-diagnose-widget .gd-launcher:hover { background: #1e46d8; transform: translateY(-1px); box-shadow: 0 10px 28px rgba(20, 40, 120, 0.34); }
#geo-diagnose-widget .gd-launcher:active { transform: translateY(0); }
#geo-diagnose-widget .gd-launcher .gd-ic { font-size: 17px; line-height: 1; }
#geo-diagnose-widget .gd-launcher.gd-hidden { display: none; }

/* Panel */
#geo-diagnose-widget .gd-panel {
	width: 360px;
	max-width: calc(100vw - 32px);
	max-height: calc(100vh - 40px);
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 18px 50px rgba(15, 25, 60, 0.28);
	border: 1px solid rgba(20, 30, 70, 0.08);
}
#geo-diagnose-widget .gd-panel.gd-hidden { display: none; }

#geo-diagnose-widget .gd-head {
	background: linear-gradient(135deg, #2b59ff, #4f7bff);
	color: #fff;
	padding: 16px 18px;
	display: flex;
	align-items: flex-start;
	gap: 10px;
}
#geo-diagnose-widget .gd-head .gd-title { font-weight: 700; font-size: 15px; }
#geo-diagnose-widget .gd-head .gd-sub { font-size: 12px; opacity: 0.92; margin-top: 2px; }
#geo-diagnose-widget .gd-head .gd-close {
	margin-left: auto;
	background: transparent;
	border: 0;
	color: #fff;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	opacity: 0.85;
	padding: 0 2px;
}
#geo-diagnose-widget .gd-head .gd-close:hover { opacity: 1; }

#geo-diagnose-widget .gd-steps {
	display: flex;
	gap: 6px;
	padding: 10px 18px 0;
}
#geo-diagnose-widget .gd-steps .gd-dot {
	flex: 1;
	height: 4px;
	border-radius: 2px;
	background: #e3e7f2;
}
#geo-diagnose-widget .gd-steps .gd-dot.gd-on { background: #2b59ff; }

#geo-diagnose-widget .gd-body {
	padding: 16px 18px 18px;
	overflow-y: auto;
}

#geo-diagnose-widget p.gd-lead { margin-bottom: 12px; }
#geo-diagnose-widget p.gd-muted { color: #6b7385; font-size: 12.5px; }
#geo-diagnose-widget .gd-mt8 { margin-top: 8px; }
#geo-diagnose-widget .gd-mt12 { margin-top: 12px; }

#geo-diagnose-widget label.gd-field { display: block; margin-bottom: 10px; }
#geo-diagnose-widget label.gd-field > span { display: block; font-size: 12.5px; font-weight: 600; color: #404a60; margin-bottom: 4px; }
#geo-diagnose-widget input[type="text"],
#geo-diagnose-widget input[type="email"],
#geo-diagnose-widget input[type="tel"],
#geo-diagnose-widget input[type="url"] {
	width: 100%;
	font: inherit;
	padding: 10px 12px;
	border: 1px solid #d4d9e6;
	border-radius: 9px;
	background: #fff;
	color: #1f2430;
	outline: none;
}
#geo-diagnose-widget input:focus { border-color: #2b59ff; box-shadow: 0 0 0 3px rgba(43, 89, 255, 0.14); }

#geo-diagnose-widget label.gd-check {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 12.5px;
	color: #5a6276;
	margin-top: 4px;
}
#geo-diagnose-widget label.gd-check input { margin-top: 2px; flex: 0 0 auto; }
#geo-diagnose-widget label.gd-check a { color: #2b59ff; }

#geo-diagnose-widget .gd-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 100%;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	border: 0;
	border-radius: 10px;
	padding: 11px 14px;
	background: #2b59ff;
	color: #fff;
	margin-top: 12px;
	transition: background 0.12s ease;
}
#geo-diagnose-widget .gd-btn:hover { background: #1e46d8; }
#geo-diagnose-widget .gd-btn:disabled { background: #aab3cc; cursor: progress; }
#geo-diagnose-widget .gd-btn.gd-secondary { background: #eef1fb; color: #2b3a6b; }
#geo-diagnose-widget .gd-btn.gd-secondary:hover { background: #e3e8fb; }

#geo-diagnose-widget .gd-err {
	background: #fdecec;
	border: 1px solid #f4c4c4;
	color: #a3261f;
	border-radius: 9px;
	padding: 9px 11px;
	font-size: 12.5px;
	margin-top: 10px;
}

/* Loading */
#geo-diagnose-widget .gd-loading { text-align: center; padding: 14px 4px; }
#geo-diagnose-widget .gd-spinner {
	width: 30px;
	height: 30px;
	border: 3px solid #dfe4f2;
	border-top-color: #2b59ff;
	border-radius: 50%;
	margin: 4px auto 12px;
	animation: gd-spin 0.8s linear infinite;
}
@keyframes gd-spin { to { transform: rotate(360deg); } }

/* Result blocks */
#geo-diagnose-widget .gd-card {
	border: 1px solid #e6e9f3;
	border-radius: 11px;
	padding: 12px 13px;
	margin-top: 10px;
	background: #fafbff;
}
#geo-diagnose-widget .gd-card h4 { font-size: 12px; font-weight: 700; color: #6b7385; text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 6px; }
#geo-diagnose-widget .gd-kv { display: flex; gap: 8px; font-size: 13px; padding: 2px 0; }
#geo-diagnose-widget .gd-kv b { flex: 0 0 92px; color: #404a60; font-weight: 600; }
#geo-diagnose-widget ul.gd-list { list-style: none; }
#geo-diagnose-widget ul.gd-list li { font-size: 13px; padding: 3px 0 3px 14px; position: relative; }
#geo-diagnose-widget ul.gd-list li::before { content: "•"; position: absolute; left: 2px; color: #2b59ff; }
#geo-diagnose-widget .gd-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
#geo-diagnose-widget .gd-tag { background: #eef1fb; color: #2b3a6b; border-radius: 6px; padding: 3px 8px; font-size: 12px; }

#geo-diagnose-widget .gd-score {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	font-weight: 800;
	font-size: 22px;
	color: #2b59ff;
}
#geo-diagnose-widget .gd-score small { font-size: 12px; font-weight: 600; color: #6b7385; }

#geo-diagnose-widget .gd-badge {
	display: inline-block;
	border-radius: 999px;
	padding: 4px 11px;
	font-size: 12px;
	font-weight: 700;
}
#geo-diagnose-widget .gd-badge.good { background: #e3f6ec; color: #1c7c47; }
#geo-diagnose-widget .gd-badge.partial { background: #fdf3dd; color: #946200; }
#geo-diagnose-widget .gd-badge.poor { background: #fdeaea; color: #ad2a22; }

#geo-diagnose-widget table.gd-pq { width: 100%; border-collapse: collapse; font-size: 12px; margin-top: 6px; }
#geo-diagnose-widget table.gd-pq th,
#geo-diagnose-widget table.gd-pq td { text-align: left; padding: 5px 6px; border-bottom: 1px solid #e6e9f3; vertical-align: top; }
#geo-diagnose-widget table.gd-pq th { color: #6b7385; font-weight: 700; }
#geo-diagnose-widget table.gd-pq .gd-yes { color: #1c7c47; font-weight: 700; }
#geo-diagnose-widget table.gd-pq .gd-no { color: #b9402f; }

#geo-diagnose-widget .gd-foot {
	font-size: 11.5px;
	color: #8a91a3;
	text-align: center;
	padding: 8px 18px 12px;
	border-top: 1px solid #eef0f6;
}
#geo-diagnose-widget .gd-foot a { color: #8a91a3; }

@media (max-width: 480px) {
	#geo-diagnose-widget { right: 12px; bottom: 12px; }
	#geo-diagnose-widget .gd-panel { width: calc(100vw - 24px); }
}
