/* ============================================================
 * Adaptoras Product Compare
 * ============================================================ */

:root {
	--yhc-bg: #fff;
	--yhc-bg-alt: #f7f7f8;
	--yhc-border: #e5e7eb;
	--yhc-text: #111827;
	--yhc-text-muted: #6b7280;
	--yhc-accent: #2e0c64;
	--yhc-accent-dark: #1f0846;
	--yhc-accent-soft: rgba(46, 12, 100, 0.08);
	--yhc-accent-ring: rgba(46, 12, 100, 0.25);
	--yhc-pro: #16a34a;
	--yhc-con: #dc2626;
	--yhc-radius: 10px;
	--yhc-shadow: 0 2px 8px rgba(17, 24, 39, .06);
	--yhc-shadow-lg: 0 12px 32px rgba(17, 24, 39, .12);
}

/* ---------- compare icon-button (sits under the heart) ---------- */

/*
 * Mirrors the wishlist heart's circular style and absolute positioning
 * (defined in device-finder/css/wishlist-button.css). The heart is at
 * top:8px right:8px (32×32). We stack at top:48px right:8px so the
 * two icons form a short vertical column at the top-right of each card.
 *
 * On the single product page the wishlist's parent is positioned, so
 * absolute placement still works there too.
 */
.yhc-card-icon {
	position: absolute !important;
	top: 48px !important;
	right: 8px !important;
	left: auto !important;
	bottom: auto !important;
	z-index: 10 !important;
	width: 32px !important;
	height: 32px !important;
	min-width: 32px !important;
	min-height: 32px !important;
	max-width: 32px !important;
	max-height: 32px !important;
	padding: 0 !important;
	margin: 0 !important;
	border: none !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, 0.95) !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
	cursor: pointer;
	display: flex !important;
	align-items: center;
	justify-content: center;
	transition: all 0.2s ease;
	outline: none;
	box-sizing: border-box !important;
	color: #666;
}
.yhc-card-icon:hover {
	background: #ffffff !important;
	transform: scale(1.1);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
	color: var(--yhc-accent);
}
.yhc-card-icon:focus {
	outline: none;
	box-shadow: 0 0 0 2px var(--yhc-accent-ring), 0 2px 8px rgba(0, 0, 0, 0.12) !important;
}
.yhc-card-icon.is-active {
	background: var(--yhc-accent) !important;
	color: #fff;
}
.yhc-card-icon.is-active:hover {
	background: var(--yhc-accent-dark) !important;
	color: #fff;
}
.yhc-card-icon__svg {
	display: block;
	width: 18px;
	height: 18px;
	transition: transform 0.2s ease;
}

/*
 * Mobile sizing — match the metro-child wishlist heart's responsive
 * downscale so the two icons stack cleanly: heart at top:6 right:6 28×28,
 * compare goes directly below with the same right edge and an 8px gap.
 */
@media (max-width: 480px) {
	.yhc-card-icon {
		width: 28px !important;
		height: 28px !important;
		min-width: 28px !important;
		min-height: 28px !important;
		max-width: 28px !important;
		max-height: 28px !important;
		top: 42px !important;   /* heart top(6) + heart h(28) + gap(8) */
		right: 6px !important;
	}
	.yhc-card-icon__svg { width: 16px; height: 16px; }
}

/*
 * Some product cards display an "Express Παράδοση" label at top-right
 * (.rt-label__express, right:0 top:50, h:40 → ends at 90). When the
 * label is present we'd cover it, so push the compare icon to top:98
 * (8px clear gap below the label). Same offset works on desktop and
 * mobile because the label itself doesn't downscale.
 *
 * Also walk up to li.product / .product wrapper because the offsetParent
 * for these absolute children is the WC `<li class="product">`, not the
 * inner `.rt-product-block`.
 */
li.product:has(.rt-label__express) .yhc-card-icon,
.rt-product-block:has(.rt-label__express) .yhc-card-icon,
.rtin-thumb-wrapper:has(.rt-label__express) .yhc-card-icon,
.rtin-thumb:has(.rt-label__express) .yhc-card-icon,
body.single-product .rtin-left:has(.rt-label__express) .yhc-card-icon {
	top: 98px !important;
}

/* ---------- floating counter (FAB) ---------- */

.yhc-fab {
	position: fixed;
	left: 20px;
	/* Lift above the WC sticky add-to-cart bar on mobile.
	   iOS safe-area honored too. */
	bottom: calc(20px + env(safe-area-inset-bottom, 0px));
	z-index: 9999;
	display: inline-flex;
	align-items: stretch;
	background: var(--yhc-accent);
	border-radius: 999px;
	box-shadow: var(--yhc-shadow-lg);
	transition: background .2s ease, transform .2s ease;
	overflow: hidden;
}
.yhc-fab:hover {
	background: var(--yhc-accent-dark);
	transform: translateY(-2px);
}
.yhc-fab__link,
.yhc-fab__link:link,
.yhc-fab__link:visited {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 14px 12px 18px;
	background: transparent;
	color: #fff !important;
	font-weight: 600;
	font-size: 14px;
	text-decoration: none !important;
	border: 0;
}
.yhc-fab__link:hover,
.yhc-fab__link:focus,
.yhc-fab__link:active {
	color: #fff !important;
	text-decoration: none !important;
}
.yhc-fab__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	padding: 0;
	margin: 0;
	border: 0;
	border-left: 1px solid rgba(255, 255, 255, .25);
	background: transparent;
	color: #fff;
	cursor: pointer;
	transition: background .15s ease;
}
.yhc-fab__close:hover {
	background: rgba(0, 0, 0, .25);
}
.yhc-fab__close:focus {
	outline: none;
	background: rgba(0, 0, 0, .25);
}
.yhc-fab__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .25);
	font-size: 12px;
	font-weight: 700;
}
@media (max-width: 600px) {
	.yhc-fab__label { display: none; }
	.yhc-fab__link { padding: 12px; }
}

/*
 * On single product pages WooCommerce / the metro theme can mount a
 * sticky add-to-cart bar at the bottom of mobile. We can't measure it
 * from CSS, so we lift the FAB by ~80px there to stay above it.
 * Same boost when the theme's scroll-to-top arrow is visible
 * (right:20 bottom:20, ~40px tall) so the two don't stack on top of
 * each other in the bottom-right corner.
 */
@media (max-width: 900px) {
	/* Hug the left edge with comfortable padding. */
	.yhc-fab { left: 12px; }
	body.single-product .yhc-fab {
		bottom: calc(80px + env(safe-area-inset-bottom, 0px));
	}
	/* Keep the theme's back-to-top button on the right at the SAME
	   vertical level as the FAB. The theme already pins it to bottom:20
	   when visible (.scrollToTop.back-top); on mobile single-product
	   we lift it to match the FAB's lifted bottom. */
	body.single-product a.scrollToTop.back-top {
		bottom: calc(80px + env(safe-area-inset-bottom, 0px)) !important;
	}
}

/* ---------- toast ---------- */

.yhc-toast {
	position: fixed;
	left: 50%;
	bottom: 80px;
	transform: translateX(-50%);
	z-index: 10000;
	padding: 10px 16px;
	background: rgba(17, 24, 39, .92);
	color: #fff;
	border-radius: 8px;
	font-size: 13px;
	box-shadow: var(--yhc-shadow-lg);
	transition: opacity .35s ease, transform .35s ease;
}
.yhc-toast.is-leaving {
	opacity: 0;
	transform: translate(-50%, 8px);
}

/* ============================================================
 *   /compare page
 * ============================================================ */

.yhc-page {
	background: var(--yhc-bg-alt);
	min-height: 60vh;
	padding: 32px 0 64px;
}
.yhc-container {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 16px;
}
.yhc-page__header { margin-bottom: 24px; }
.yhc-page__title {
	font-size: 28px;
	font-weight: 700;
	color: var(--yhc-text);
	margin: 0 0 6px;
}
.yhc-page__subtitle {
	font-size: 15px;
	color: var(--yhc-text-muted);
	margin: 0;
}

/* ---------- picker / search ---------- */

.yhc-picker {
	background: #fff;
	border: 1px solid var(--yhc-border);
	border-radius: var(--yhc-radius);
	padding: 16px;
	margin-bottom: 20px;
	box-shadow: var(--yhc-shadow);
}
.yhc-picker__label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--yhc-text);
	margin-bottom: 8px;
}
.yhc-picker__row { position: relative; }
.yhc-picker__input {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--yhc-border);
	border-radius: 8px;
	font-size: 14px;
	background: #fff;
	color: var(--yhc-text);
}
.yhc-picker__input:focus {
	outline: none;
	border-color: var(--yhc-accent);
	box-shadow: 0 0 0 3px var(--yhc-accent-ring);
}
.yhc-picker__hint {
	margin: 8px 0 0;
	font-size: 12px;
	color: var(--yhc-text-muted);
}
.yhc-picker__results {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	z-index: 100;
	background: #fff;
	border: 1px solid var(--yhc-border);
	border-radius: 8px;
	box-shadow: var(--yhc-shadow-lg);
	max-height: 360px;
	overflow-y: auto;
}
.yhc-search__item {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 10px 12px;
	border: 0;
	background: transparent;
	text-align: left;
	cursor: pointer;
	border-bottom: 1px solid var(--yhc-border);
}
.yhc-search__item:last-child { border-bottom: 0; }
.yhc-search__item:hover { background: var(--yhc-bg-alt); }
.yhc-search__item img,
.yhc-search__noimg {
	width: 40px;
	height: 40px;
	object-fit: contain;
	border-radius: 6px;
	background: var(--yhc-bg-alt);
	flex: 0 0 40px;
}
.yhc-search__meta { flex: 1; min-width: 0; }
.yhc-search__title {
	display: block;
	font-size: 13px;
	color: var(--yhc-text);
	font-weight: 500;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.yhc-search__price {
	display: block;
	font-size: 12px;
	color: var(--yhc-text-muted);
}
.yhc-search__empty {
	padding: 16px;
	text-align: center;
	font-size: 13px;
	color: var(--yhc-text-muted);
}

/* ---------- empty / loading ---------- */

.yhc-empty,
.yhc-loading {
	background: #fff;
	border: 1px solid var(--yhc-border);
	border-radius: var(--yhc-radius);
	padding: 48px 24px;
	text-align: center;
	color: var(--yhc-text-muted);
	font-size: 14px;
}
.yhc-loading {
	display: inline-flex;
	gap: 12px;
	align-items: center;
	justify-content: center;
}
.yhc-spinner {
	display: inline-block;
	width: 18px;
	height: 18px;
	border: 2px solid var(--yhc-border);
	border-top-color: var(--yhc-accent);
	border-radius: 50%;
	animation: yhc-spin 0.8s linear infinite;
}
@keyframes yhc-spin { to { transform: rotate(360deg); } }

/* ---------- comparison table ---------- */

.yhc-table-wrap {
	background: #fff;
	border: 1px solid var(--yhc-border);
	border-radius: var(--yhc-radius);
	overflow-x: auto;
	margin-bottom: 24px;
	box-shadow: var(--yhc-shadow);
}
.yhc-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}
.yhc-table__corner {
	width: 160px;
	background: var(--yhc-bg-alt);
}
.yhc-table__head {
	padding: 18px 14px;
	text-align: center;
	vertical-align: top;
	border-bottom: 1px solid var(--yhc-border);
	border-left: 1px solid var(--yhc-border);
	background: #fff;
	min-width: 200px;
	position: relative;
}
.yhc-table__remove {
	position: absolute;
	top: 6px;
	right: 6px;
	width: 24px;
	height: 24px;
	border: 0;
	border-radius: 50%;
	background: var(--yhc-bg-alt);
	color: var(--yhc-text-muted);
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
	transition: background .15s ease;
}
.yhc-table__remove:hover {
	background: var(--yhc-con);
	color: #fff;
}
.yhc-table__img {
	display: block;
	margin: 0 auto 10px;
}
.yhc-table__img img {
	max-width: 140px;
	max-height: 140px;
	width: auto;
	height: auto;
	object-fit: contain;
}
.yhc-table__name {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: var(--yhc-text);
	text-decoration: none;
	margin-bottom: 6px;
	line-height: 1.3;
}
.yhc-table__name:hover { color: var(--yhc-accent); }
.yhc-table__price {
	font-size: 16px;
	font-weight: 700;
	color: var(--yhc-text);
	margin-bottom: 10px;
}
.yhc-table__price del { color: var(--yhc-text-muted); font-weight: 400; margin-right: 6px; }
.yhc-table__cart,
.yhc-table__cart:link,
.yhc-table__cart:visited {
	display: inline-block;
	padding: 8px 14px;
	background: var(--yhc-accent);
	color: #fff !important;
	border-radius: 6px;
	font-size: 12px;
	font-weight: 600;
	text-decoration: none;
	transition: background .15s ease;
}
.yhc-table__cart:hover,
.yhc-table__cart:focus {
	background: var(--yhc-accent-dark);
	color: #fff !important;
	text-decoration: none;
}
.yhc-table__oos {
	display: inline-block;
	padding: 6px 12px;
	font-size: 12px;
	color: var(--yhc-text-muted);
	background: var(--yhc-bg-alt);
	border-radius: 6px;
}
.yhc-table__rowhead {
	padding: 12px 14px;
	font-weight: 600;
	font-size: 12px;
	color: var(--yhc-text);
	text-align: left;
	background: var(--yhc-bg-alt);
	border-bottom: 1px solid var(--yhc-border);
	border-right: 1px solid var(--yhc-border);
	width: 160px;
}
.yhc-table__cell {
	padding: 12px 14px;
	font-size: 13px;
	color: var(--yhc-text);
	border-bottom: 1px solid var(--yhc-border);
	border-left: 1px solid var(--yhc-border);
	text-align: center;
	vertical-align: top;
}
.yhc-empty-cell {
	padding: 32px;
	text-align: center;
	color: var(--yhc-text-muted);
}

/* ---------- AI normalized comparison table ---------- */

.yhc-aitable {
	background: #fff;
	border: 1px solid var(--yhc-border);
	border-radius: var(--yhc-radius);
	padding: 20px 0 0;
	margin-bottom: 24px;
	box-shadow: var(--yhc-shadow);
	overflow: hidden;
}
.yhc-aitable__header {
	padding: 0 24px 14px;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	flex-wrap: wrap;
	border-bottom: 1px solid var(--yhc-border);
}
.yhc-aitable__title {
	font-size: 18px;
	font-weight: 700;
	color: var(--yhc-text);
	margin: 0;
}
.yhc-aitable__hint {
	font-size: 12px;
	color: var(--yhc-text-muted);
}
.yhc-aitable__status {
	padding: 14px 24px;
	font-size: 13px;
	color: var(--yhc-text-muted);
	font-style: italic;
}
.yhc-aitable__status:empty { display: none; }
.yhc-aitable__wrap { overflow-x: auto; }

.yhc-aitable__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13.5px;
}
.yhc-aitable__table thead th {
	background: var(--yhc-bg-alt);
	padding: 14px 12px;
	font-size: 12px;
	font-weight: 600;
	color: var(--yhc-text);
	text-align: center;
	vertical-align: bottom;
	border-bottom: 1px solid var(--yhc-border);
}
.yhc-aitable__head img {
	display: block;
	max-width: 56px;
	max-height: 56px;
	margin: 0 auto 6px;
	object-fit: contain;
}
.yhc-aitable__head span {
	display: block;
	max-width: 220px;
	margin: 0 auto;
	line-height: 1.3;
}
.yhc-aitable__rowhead {
	width: 200px;
	min-width: 160px;
	padding: 12px 16px;
	font-weight: 600;
	font-size: 13px;
	color: var(--yhc-text);
	text-align: left;
	background: var(--yhc-bg-alt);
	border-bottom: 1px solid var(--yhc-border);
	border-right: 1px solid var(--yhc-border);
}
.yhc-aitable__cell {
	padding: 12px 14px;
	text-align: center;
	color: var(--yhc-text);
	border-bottom: 1px solid var(--yhc-border);
	border-left: 1px solid var(--yhc-border);
	vertical-align: middle;
	min-width: 140px;
	position: relative;
}
.yhc-aitable__cell.is-winner {
	background: var(--yhc-accent-soft);
	color: var(--yhc-accent);
	font-weight: 600;
}
.yhc-aitable__check {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	margin-right: 6px;
	border-radius: 50%;
	background: var(--yhc-accent);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	vertical-align: middle;
}
.yhc-aitable__val { vertical-align: middle; }

@media (max-width: 768px) {
	.yhc-aitable__rowhead { width: 130px; min-width: 110px; padding: 10px 10px; font-size: 12px; }
	.yhc-aitable__cell { padding: 10px 8px; font-size: 12px; min-width: 110px; }
	.yhc-aitable__head img { max-width: 40px; max-height: 40px; }
	.yhc-aitable__head span { max-width: 120px; font-size: 11px; }
}

/* ---------- AI summary ---------- */

.yhc-summary {
	background: #fff;
	border: 1px solid var(--yhc-border);
	border-radius: var(--yhc-radius);
	padding: 24px;
	box-shadow: var(--yhc-shadow);
}
.yhc-summary__header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 16px;
	gap: 12px;
}
.yhc-summary__title {
	font-size: 18px;
	font-weight: 700;
	color: var(--yhc-text);
	margin: 0;
}
.yhc-summary__refresh {
	width: 32px;
	height: 32px;
	border: 1px solid var(--yhc-border);
	border-radius: 50%;
	background: #fff;
	color: var(--yhc-text-muted);
	font-size: 16px;
	cursor: pointer;
	transition: all .15s ease;
}
.yhc-summary__refresh:hover {
	border-color: var(--yhc-accent);
	color: var(--yhc-accent);
	transform: rotate(180deg);
}
.yhc-summary__status {
	font-size: 13px;
	color: var(--yhc-text-muted);
	font-style: italic;
	min-height: 16px;
	margin-bottom: 12px;
}
.yhc-summary__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 16px;
	margin-bottom: 20px;
}
.yhc-card {
	border: 1px solid var(--yhc-border);
	border-radius: 8px;
	padding: 14px;
	background: var(--yhc-bg-alt);
}
.yhc-card__hd {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 12px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--yhc-border);
}
.yhc-card__img {
	width: 40px;
	height: 40px;
	object-fit: contain;
	flex: 0 0 40px;
}
.yhc-card__title {
	font-size: 13px;
	font-weight: 600;
	color: var(--yhc-text);
	margin: 0;
	line-height: 1.3;
}
.yhc-card__cols {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}
.yhc-card__col h4 {
	font-size: 12px;
	font-weight: 700;
	margin: 0 0 6px;
	text-transform: uppercase;
	letter-spacing: .5px;
}
.yhc-card__col--pros h4 { color: var(--yhc-pro); }
.yhc-card__col--cons h4 { color: var(--yhc-con); }
.yhc-card__col ul {
	margin: 0;
	padding: 0 0 0 16px;
	font-size: 12.5px;
	color: var(--yhc-text);
	line-height: 1.5;
}
.yhc-card__col li { margin-bottom: 4px; }
.yhc-verdict {
	background: linear-gradient(135deg, #f5f0ff 0%, #ede4ff 100%);
	border: 1px solid var(--yhc-accent);
	border-radius: 8px;
	padding: 16px 18px;
}
.yhc-verdict h3 {
	font-size: 14px;
	font-weight: 700;
	margin: 0 0 8px;
	color: var(--yhc-accent);
}
.yhc-verdict p {
	font-size: 14px;
	line-height: 1.55;
	color: var(--yhc-accent-dark);
	margin: 0;
}
.yhc-error { color: var(--yhc-con); }

/* ---------- key-token highlight (rendered from **markdown bold**) ---------- */

.yhc-hl {
	color: var(--yhc-accent-dark);
	background: rgba(46, 12, 100, 0.07);
	padding: 0 4px;
	border-radius: 3px;
	font-weight: 700;
	white-space: nowrap;
}

/* ---------- inline status spinner (next to "Δημιουργία…" text) ---------- */

.yhc-inline-spinner {
	display: inline-block;
	width: 12px;
	height: 12px;
	border: 2px solid rgba(46, 12, 100, 0.18);
	border-top-color: var(--yhc-accent);
	border-radius: 50%;
	vertical-align: -2px;
	margin-right: 6px;
	animation: yhc-inline-spin 0.8s linear infinite;
}
@keyframes yhc-inline-spin { to { transform: rotate(360deg); } }
.yhc-aitable__status:not(:empty),
.yhc-summary__status:not(:empty) {
	display: flex;
	align-items: center;
	gap: 6px;
}

/* ---------- unique features (per-product) ---------- */

.yhc-card__unique {
	margin: 0 0 12px;
	padding: 10px 12px;
	background: rgba(46, 12, 100, 0.05);
	border: 1px solid rgba(46, 12, 100, 0.15);
	border-radius: 8px;
}
.yhc-card__unique-title {
	margin: 0 0 6px;
	font-size: 12px;
	font-weight: 700;
	color: var(--yhc-accent);
	text-transform: uppercase;
	letter-spacing: 0.4px;
}
.yhc-card__unique-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.yhc-card__unique-list li {
	position: relative;
	padding: 3px 0 3px 18px;
	font-size: 13px;
	line-height: 1.45;
	color: var(--yhc-accent-dark);
}
.yhc-card__unique-list li::before {
	content: "★";
	position: absolute;
	left: 0;
	top: 3px;
	color: var(--yhc-accent);
	font-size: 12px;
	line-height: 1.45;
}

/* ---------- price analysis ---------- */

.yhc-price-analysis {
	margin-top: 32px;
	padding: 18px 20px;
	background: linear-gradient(135deg, #fff8e6 0%, #fff1d1 100%);
	border: 1px solid #f0c66d;
	border-radius: 8px;
}
.yhc-price-analysis__header { margin-bottom: 10px; }
.yhc-price-analysis__title {
	font-size: 16px;
	font-weight: 700;
	margin: 0;
	color: #7a4d00;
}
.yhc-price-analysis__body p {
	font-size: 14px;
	line-height: 1.6;
	color: #5a3a00;
	margin: 0 0 8px;
}
.yhc-price-analysis__body p:last-child { margin-bottom: 0; }

/* ---------- AI loader (animated, step-by-step) ---------- */

.yhc-ai-loader {
	margin: 24px 0;
}
.yhc-ai-loader__card {
	background: #fff;
	border: 1px solid rgba(46, 12, 100, 0.18);
	border-radius: 12px;
	padding: 20px 22px;
	box-shadow: 0 4px 16px rgba(46, 12, 100, 0.08);
	max-width: 640px;
	margin: 0 auto;
}
.yhc-ai-loader__head {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin-bottom: 16px;
}
.yhc-ai-loader__title {
	font-size: 15px;
	font-weight: 700;
	color: var(--yhc-accent-dark);
	margin-bottom: 4px;
}
.yhc-ai-loader__sub {
	font-size: 12.5px;
	color: #666;
	line-height: 1.45;
}
.yhc-ai-loader__spark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 3px;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--yhc-accent);
	flex: 0 0 36px;
	margin-top: 2px;
}
.yhc-ai-loader__sparkdot {
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: #fff;
	animation: yhc-ai-pulse 1.2s infinite ease-in-out;
}
.yhc-ai-loader__sparkdot:nth-child(2) { animation-delay: 0.15s; }
.yhc-ai-loader__sparkdot:nth-child(3) { animation-delay: 0.30s; }
@keyframes yhc-ai-pulse {
	0%, 80%, 100% { transform: scale(0.4); opacity: 0.4; }
	40%           { transform: scale(1);   opacity: 1; }
}

.yhc-ai-loader__steps {
	list-style: none;
	padding: 0;
	margin: 0 0 14px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.yhc-ai-loader__step {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 13.5px;
	line-height: 1.4;
	color: #888;
	opacity: 0.55;
	transition: opacity 0.25s ease, color 0.25s ease;
}
.yhc-ai-loader__step.is-active {
	opacity: 1;
	color: var(--yhc-accent-dark);
	font-weight: 600;
}
.yhc-ai-loader__step.is-done {
	opacity: 0.85;
	color: #2a7a3a;
}
.yhc-ai-loader__check {
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 2px solid #d0d0d0;
	background: #fff;
	position: relative;
	transition: border-color 0.25s ease, background 0.25s ease;
}
.yhc-ai-loader__step.is-active .yhc-ai-loader__check {
	border-color: var(--yhc-accent);
	animation: yhc-ai-ring 1.1s infinite ease-in-out;
}
.yhc-ai-loader__step.is-done .yhc-ai-loader__check {
	background: #2a7a3a;
	border-color: #2a7a3a;
	animation: none;
}
.yhc-ai-loader__step.is-done .yhc-ai-loader__check::after {
	content: "";
	position: absolute;
	top: 2px;
	left: 5px;
	width: 4px;
	height: 8px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
@keyframes yhc-ai-ring {
	0%   { box-shadow: 0 0 0 0 rgba(46, 12, 100, 0.35); }
	70%  { box-shadow: 0 0 0 6px rgba(46, 12, 100, 0); }
	100% { box-shadow: 0 0 0 0 rgba(46, 12, 100, 0); }
}

.yhc-ai-loader__bar {
	width: 100%;
	height: 4px;
	background: rgba(46, 12, 100, 0.10);
	border-radius: 4px;
	overflow: hidden;
	margin-bottom: 10px;
}
.yhc-ai-loader__bar-fill {
	display: block;
	height: 100%;
	width: 35%;
	background: linear-gradient(90deg, transparent 0%, var(--yhc-accent) 50%, transparent 100%);
	animation: yhc-ai-slide 1.6s infinite linear;
}
@keyframes yhc-ai-slide {
	0%   { transform: translateX(-100%); }
	100% { transform: translateX(380%); }
}
.yhc-ai-loader__note {
	font-size: 12px;
	color: #888;
	text-align: center;
}

/* ---------- responsive ---------- */

@media (max-width: 768px) {
	.yhc-page__title { font-size: 22px; }
	.yhc-table__head { padding: 12px 8px; min-width: 150px; }
	.yhc-table__name { font-size: 13px; }
	.yhc-table__rowhead { width: 110px; padding: 10px 8px; font-size: 11px; }
	.yhc-table__cell { padding: 10px 8px; font-size: 12px; }
	.yhc-ai-loader__card { padding: 16px; }
	.yhc-ai-loader__step { font-size: 12.5px; }
	.yhc-price-analysis { padding: 14px 16px; }
	.yhc-price-analysis__title { font-size: 15px; }
}
