/* Auto Choice — chat assistant */
.acc { position: fixed; right: 24px; bottom: 24px; z-index: 90; font-family: var(--ac-body); }
.acc__launcher {
	position: relative; width: 62px; height: 62px; border: 0; border-radius: 50%; cursor: pointer;
	display: grid; place-items: center; background: var(--ac-accent); color: var(--ac-ink);
	box-shadow: 0 10px 30px rgba(14,17,22,.28); transition: transform .2s ease;
}
.acc__launcher:hover { transform: scale(1.06); }
.acc__launcher::after {
	content: ""; position: absolute; top: 4px; right: 4px; width: 14px; height: 14px; border-radius: 50%;
	background: #22C55E; border: 3px solid var(--ac-accent);
}
.acc[data-state="open"] .acc__launcher::after { display: none; }
.acc__launcher-close { display: none; }
.acc[data-state="open"] .acc__launcher-open { display: none; }
.acc[data-state="open"] .acc__launcher-close { display: grid; }

.acc__teaser {
	position: absolute; right: 0; bottom: 76px; width: 250px; padding: 14px 34px 14px 16px; border-radius: 16px 16px 4px 16px;
	background: #fff; color: var(--ac-text); box-shadow: var(--ac-shadow-lg); cursor: pointer; font-size: 14px; font-weight: 600;
	animation: acc-pop .3s ease both;
}
.acc__teaser p { margin: 0; }
.acc__teaser-close { position: absolute; top: 6px; right: 8px; border: 0; background: none; font-size: 20px; line-height: 1; color: var(--ac-muted); cursor: pointer; }

.acc__panel {
	position: absolute; right: 0; bottom: 78px; width: 380px; height: min(620px, calc(100vh - 130px));
	display: flex; flex-direction: column; overflow: hidden; border-radius: 20px; background: #fff;
	box-shadow: 0 24px 60px rgba(14,17,22,.3); animation: acc-pop .22s ease both;
}
.acc__panel[hidden] { display: none; }
@keyframes acc-pop { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: none; } }

.acc__head { display: flex; align-items: center; gap: 12px; padding: 14px 14px 14px 16px; background: var(--ac-ink); color: #fff; }
.acc__avatar { flex: none; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--ac-accent); color: var(--ac-ink); }
.acc__who { flex: 1; min-width: 0; }
.acc__who strong { display: block; font-size: 15px; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.acc__who span { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #AEB5C0; }
.acc__who i { width: 8px; height: 8px; border-radius: 50%; background: #22C55E; }
.acc__restart, .acc__close { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border: 0; border-radius: 10px; background: rgba(255,255,255,.08); color: #fff; cursor: pointer; }
.acc__restart:hover, .acc__close:hover { background: rgba(255,255,255,.18); }
.acc__close .icon { width: 18px; height: 18px; }

.acc__log { flex: 1; overflow-y: auto; padding: 16px 14px 8px; background: var(--ac-tint); scroll-behavior: smooth; overscroll-behavior: contain; }
.acc-msg { display: flex; flex-direction: column; margin-bottom: 10px; animation: acc-pop .2s ease both; }
.acc-msg--user { align-items: flex-end; }
.acc-bubble {
	max-width: 86%; padding: 10px 14px; border-radius: 16px 16px 16px 4px; background: #fff; color: var(--ac-text);
	font-size: 14px; line-height: 1.5; box-shadow: 0 1px 2px rgba(14,17,22,.06); overflow-wrap: anywhere;
}
.acc-msg--user .acc-bubble { border-radius: 16px 16px 4px 16px; background: var(--ac-ink); color: #fff; }
.acc-links { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.acc-link {
	display: inline-flex; align-items: center; padding: 7px 12px; border-radius: 999px; border: 1.5px solid var(--ac-line);
	font-size: 13px; font-weight: 700; text-decoration: none; color: var(--ac-ink); background: #fff;
}
.acc-link:hover { border-color: var(--ac-ink); }
.acc-link--primary { background: var(--ac-accent); border-color: var(--ac-accent); }

.acc-cards { display: grid; gap: 8px; width: 92%; margin-top: 8px; }
.acc-card {
	display: flex; gap: 10px; align-items: center; padding: 8px; border-radius: 12px; background: #fff; text-decoration: none; color: var(--ac-text);
	border: 1.5px solid transparent; box-shadow: 0 1px 2px rgba(14,17,22,.06); transition: border-color .15s;
}
.acc-card:hover { border-color: var(--ac-accent); }
.acc-card img, .acc-card__ph { flex: none; width: 72px; height: 56px; border-radius: 8px; object-fit: cover; background: var(--ac-tint); }
.acc-card__ph { background: repeating-linear-gradient(135deg, var(--ac-tint) 0 8px, #e7e9ed 8px 16px); }
.acc-card__body { min-width: 0; display: grid; gap: 1px; }
.acc-card__body b { font-size: 13px; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.acc-card__body small { font-size: 11.5px; color: var(--ac-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.acc-card__body em { font-style: normal; font-weight: 800; font-size: 14px; color: var(--ac-ink); }
.acc-card__body em i { font-style: normal; font-size: 10px; font-weight: 700; text-transform: uppercase; padding: 2px 6px; border-radius: 99px; background: #FFF4E0; color: #8A4B00; vertical-align: 2px; }

.acc-typing .acc-bubble { display: inline-flex; gap: 4px; padding: 14px 16px; }
.acc-typing span { width: 7px; height: 7px; border-radius: 50%; background: #9AA2AF; animation: acc-dot 1s infinite ease-in-out; }
.acc-typing span:nth-child(2) { animation-delay: .15s; }
.acc-typing span:nth-child(3) { animation-delay: .3s; }
@keyframes acc-dot { 0%, 80%, 100% { opacity: .3; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }

.acc__chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 14px; background: var(--ac-tint); max-height: 132px; overflow-y: auto; }
.acc__chips:not(:empty) { padding-bottom: 10px; }
.acc-chip {
	padding: 8px 13px; border-radius: 999px; border: 1.5px solid var(--ac-ink); background: #fff; color: var(--ac-ink);
	font: 600 13px/1.2 var(--ac-body); cursor: pointer; transition: background .15s, color .15s;
}
.acc-chip:hover { background: var(--ac-ink); color: #fff; }

.acc__form { display: flex; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--ac-line); background: #fff; }
.acc__form input {
	flex: 1; min-width: 0; height: 44px; padding: 0 14px; border: 1.5px solid var(--ac-line); border-radius: 999px;
	font: 500 15px var(--ac-body); background: #fff; color: var(--ac-text);
}
.acc__form input:focus { outline: none; border-color: var(--ac-ink); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ac-accent) 45%, transparent); }
.acc__form button { flex: none; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--ac-accent); color: var(--ac-ink); cursor: pointer; display: grid; place-items: center; }
.acc__foot { margin: 0; padding: 0 12px 8px; background: #fff; text-align: center; font-size: 11px; color: var(--ac-muted); }

@media (max-width: 640px) {
	.acc { right: 14px; bottom: 78px; }
	.acc__launcher { width: 56px; height: 56px; }
	.acc__teaser { bottom: 68px; width: min(250px, calc(100vw - 40px)); }
	.acc[data-state="open"] { z-index: 200; }
	.acc__panel { position: fixed; inset: 0; width: auto; height: 100%; height: 100dvh; border-radius: 0; bottom: 0; right: 0; }
	.acc[data-state="open"] .acc__launcher { display: none; }
	.acc__form input { font-size: 16px; }
	.acc-cards { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.acc *, .acc__panel, .acc__teaser { animation: none !important; }
}
