/* ChatNest front end. Scoped to .cn-* so themes are not affected. */
.cn-widget,.cn-widget *,.cn-cards,.cn-cards *,.cn-btn,.cn-btn *{box-sizing:border-box}
.cn-widget [hidden],.cn-cards [hidden]{display:none!important}

.cn-widget{
	--cn-color:#0f9d77;--cn-x:20px;--cn-y:20px;--cn-z:99990;
	--cn-ink:#14211d;--cn-mute:#5d6b66;--cn-panel:#fff;--cn-line:rgba(20,33,29,.12);
	--cn-on:#1fb86a;--cn-off:#a3aca9;--cn-radius:18px;
	position:fixed;bottom:calc(var(--cn-y) + env(safe-area-inset-bottom,0px));z-index:var(--cn-z);
	font-size:15px;line-height:1.4;color:var(--cn-ink);
	display:flex;flex-direction:column;align-items:flex-end;gap:12px;
	max-width:calc(100vw - var(--cn-x) * 2);
}
.cn-pos-right{right:var(--cn-x)}
.cn-pos-left{left:var(--cn-x);align-items:flex-start}

.cn-widget button{margin:0;padding:0;border:0;background:none;font:inherit;color:inherit;text-transform:none;letter-spacing:normal;box-shadow:none;min-height:0;min-width:0;line-height:inherit;cursor:pointer;-webkit-appearance:none;appearance:none}
.cn-widget a{text-decoration:none;box-shadow:none}
.cn-widget :focus-visible,.cn-cards :focus-visible,.cn-btn:focus-visible{outline:3px solid var(--cn-color);outline-offset:2px}

/* Launcher */
.cn-launch{
	display:inline-flex;align-items:center;gap:10px;height:58px;min-width:58px;padding:0 15px!important;
	border-radius:999px;background:var(--cn-color)!important;color:#fff!important;
	box-shadow:0 10px 26px -8px rgba(0,0,0,.35),0 2px 6px rgba(0,0,0,.14)!important;
	box-shadow:0 10px 28px -8px color-mix(in srgb,var(--cn-color) 70%,transparent),0 2px 6px rgba(0,0,0,.14)!important;
	animation:cn-in .5s cubic-bezier(.2,.9,.3,1.3) both;
}
.cn-launch-i{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px}
.cn-launch .cn-ico{transition:transform .25s ease}
.cn-widget.is-open .cn-launch .cn-ico{transform:rotate(-12deg) scale(.92)}
.cn-label{font-weight:600;font-size:15px;white-space:nowrap;padding-right:4px}
.cn-nolabel .cn-launch{width:58px;justify-content:center;padding:0!important}
@media (max-width:600px){
	.cn-label{display:none}
	.cn-launch{width:58px;justify-content:center;padding:0!important}
}
@media (hover:hover){.cn-launch:hover{filter:brightness(1.06)}}

/* Panel */
.cn-panel{
	width:min(360px,calc(100vw - var(--cn-x) * 2));max-height:min(560px,calc(100vh - 120px));
	display:flex;flex-direction:column;overflow:hidden;
	background:var(--cn-panel);border-radius:var(--cn-radius);
	box-shadow:0 24px 60px -18px rgba(10,30,24,.38),0 0 0 1px var(--cn-line);
	transform-origin:bottom right;animation:cn-pop .22s ease-out both;
}
.cn-pos-left .cn-panel{transform-origin:bottom left}
.cn-head{display:flex;align-items:flex-start;gap:12px;padding:18px 16px 16px 18px;border-bottom:1px solid var(--cn-line)}
.cn-head-t{flex:1;min-width:0}
.cn-head-t strong{display:block;font-size:17px;font-weight:700;line-height:1.25}
.cn-head-t span{display:block;margin-top:4px;font-size:13.5px;color:var(--cn-mute)}
.cn-close{flex:0 0 32px;width:32px;height:32px;border-radius:50%!important;font-size:22px!important;line-height:32px!important;text-align:center;color:var(--cn-mute)!important}
@media (hover:hover){.cn-close:hover{background:rgba(0,0,0,.06)!important}}
.cn-offline{margin:12px 14px 0;padding:10px 12px;border-radius:12px;background:rgba(0,0,0,.045);font-size:13.5px;color:var(--cn-mute)}
.cn-panel.is-step .cn-head-t span{display:none}
.cn-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.cn-list{padding:8px;display:flex;flex-direction:column;gap:2px}
.cn-launch-i{position:relative}
.cn-badge{position:absolute;top:-7px;right:-9px;min-width:19px;height:19px;padding:0 5px;border-radius:99px;background:#e5484d;color:#fff;font:700 11px/19px system-ui,sans-serif;font-style:normal;text-align:center;box-shadow:0 0 0 2px #fff}

/* Lead form and QR views */
.cn-form,.cn-qr{display:flex;flex-direction:column;gap:10px;padding:12px 16px 16px}
.cn-back{display:inline-flex!important;align-items:center;gap:4px;align-self:flex-start;padding:4px 8px 4px 2px!important;border-radius:8px!important;font-size:13.5px!important;color:var(--cn-mute)!important}
@media (hover:hover){.cn-back:hover{color:var(--cn-ink)!important}}
.cn-form-t{margin:0;font-weight:700;font-size:16px;line-height:1.3}
.cn-form-to{margin:-4px 0 2px;font-size:13.5px;color:var(--cn-mute)}
.cn-form-to strong{color:var(--cn-ink)}
.cn-fld{display:flex;flex-direction:column;gap:5px;margin:0;font-size:13.5px;font-weight:600}
.cn-widget .cn-fld input,.cn-widget .cn-fld textarea{width:100%;max-width:100%;margin:0;padding:10px 12px;border:1px solid var(--cn-line);border-radius:11px;background:var(--cn-panel);color:var(--cn-ink);font:inherit;font-weight:400;font-size:15px;line-height:1.35;box-shadow:none;min-height:42px}
.cn-widget .cn-fld textarea{resize:vertical;min-height:70px}
.cn-widget .cn-fld input:focus,.cn-widget .cn-fld textarea:focus{outline:2px solid var(--cn-color);outline-offset:0;border-color:transparent}
.cn-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.cn-consent{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--cn-mute);line-height:1.4}
.cn-consent input{margin:2px 0 0;flex:0 0 auto;width:16px;height:16px;accent-color:var(--cn-color)}
.cn-err{margin:0;padding:8px 10px;border-radius:10px;background:#fdecec;color:#a61b1b;font-size:13.5px}
.cn-submit{display:flex!important;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:12px!important;background:var(--cn-color)!important;color:#fff!important;font-weight:650!important;font-size:15.5px!important;white-space:normal;text-align:center}
@media (hover:hover){.cn-submit:hover{filter:brightness(1.06)}}
.cn-qr{align-items:stretch}
.cn-qr-img{align-self:center;width:200px;height:200px;padding:8px;border-radius:14px;background:#fff;box-shadow:0 0 0 1px var(--cn-line)}
.cn-qr-img svg{display:block;width:100%;height:100%}
.cn-qr-open{align-self:center;font-size:14px;font-weight:600;color:var(--cn-color)!important;text-decoration:underline!important;text-underline-offset:3px}
.cn-p-midnight .cn-qr-open{color:#7fe0c2!important}
.cn-p-midnight .cn-err{background:rgba(229,72,77,.15);color:#ffb3b3}

/* QR shortcode */
.cn-qr-sc{margin:16px 0;display:inline-flex;flex-direction:column;align-items:center;gap:8px;max-width:100%}
.cn-qr-sc-img{display:block;width:var(--cn-qr,180px);max-width:100%;aspect-ratio:1/1;padding:8px;background:#fff;border-radius:14px;box-shadow:0 0 0 1px rgba(0,0,0,.1)}
.cn-qr-sc-img svg{display:block;width:100%;height:100%}
.cn-qr-sc figcaption{font-size:14px;text-align:center}
.cn-cart-wrap .cn-cart,.cn-thanks-wrap .cn-thanks{display:flex;width:100%}
.cn-thanks-wrap{margin:18px 0}

/* Agent row (also used by the cards shortcode) */
.cn-agent{display:flex;align-items:center;gap:12px;padding:10px;border-radius:14px;color:inherit!important;min-width:0}
@media (hover:hover){.cn-agent:hover{background:rgba(0,0,0,.04);background:color-mix(in srgb,var(--cn-color) 9%,transparent)}}
.cn-av{position:relative;flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:#e6f4ef;background:color-mix(in srgb,var(--cn-color) 16%,#fff);color:var(--cn-color);display:grid;place-items:center;font-weight:700;font-size:15px}
.cn-av::before{content:attr(data-i)}
.cn-av img{position:absolute;inset:0;width:44px!important;height:44px!important;max-width:none!important;border-radius:50%;object-fit:cover;margin:0!important}
.cn-dot{position:absolute;right:0;bottom:1px;width:12px;height:12px;border-radius:50%;background:var(--cn-on);box-shadow:0 0 0 2px var(--cn-panel)}
.is-away .cn-dot{background:var(--cn-off)}
.cn-meta{flex:1;min-width:0;display:flex;flex-direction:column}
.cn-meta strong{font-weight:650;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cn-meta small{font-size:13px;color:var(--cn-mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cn-state{font-style:normal;font-size:12.5px;color:var(--cn-on);font-weight:600;margin-top:1px}
.is-away .cn-state{color:var(--cn-mute);font-weight:500}
.cn-go{flex:0 0 36px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--cn-color);color:#fff}

/* Greeting bubble */
.cn-greet{position:relative;max-width:min(280px,calc(100vw - var(--cn-x) * 2 - 10px));background:var(--cn-panel);border-radius:16px 16px 4px 16px;box-shadow:0 14px 34px -14px rgba(10,30,24,.4),0 0 0 1px var(--cn-line);animation:cn-pop .3s ease-out both}
.cn-pos-left .cn-greet{border-radius:16px 16px 16px 4px}
.cn-greet-open{display:block;width:100%;text-align:start;padding:13px 34px 13px 15px!important;font-size:14.5px;color:var(--cn-ink)!important;white-space:normal}
.cn-greet-x{position:absolute;top:4px;right:4px;width:26px;height:26px;border-radius:50%!important;font-size:18px!important;line-height:26px!important;color:var(--cn-mute)!important;text-align:center}

/* Presets */
.cn-p-glass{--cn-panel:rgba(255,255,255,.82)}
.cn-p-glass .cn-panel,.cn-p-glass .cn-greet{-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.cn-p-glass{--cn-panel:#fff}}
@media (prefers-reduced-transparency:reduce){.cn-p-glass{--cn-panel:#fff}}

.cn-p-minimal{--cn-radius:12px}
.cn-p-minimal .cn-launch{background:#fff!important;color:var(--cn-color)!important;box-shadow:0 0 0 1.5px var(--cn-color),0 8px 22px -10px rgba(0,0,0,.3)!important}
.cn-p-minimal .cn-panel{box-shadow:0 0 0 1px var(--cn-line),0 16px 40px -20px rgba(0,0,0,.3)}
.cn-p-minimal .cn-go{background:transparent;color:var(--cn-color)}

.cn-p-classic .cn-head{background:var(--cn-color);color:#fff;border-bottom:0}
.cn-p-classic .cn-head-t span{color:rgba(255,255,255,.86)}
.cn-p-classic .cn-close{color:#fff!important}

.cn-p-midnight{--cn-ink:#e8efec;--cn-mute:#9db0a9;--cn-panel:#15201d;--cn-line:rgba(255,255,255,.1);--cn-off:#5f6d68}
.cn-p-midnight .cn-av{background:color-mix(in srgb,var(--cn-color) 26%,#15201d);color:#fff}
.cn-p-midnight .cn-offline{background:rgba(255,255,255,.06)}

/* Device rules */
@media (max-width:767px){.cn-dev-desktop{display:none!important}}
@media (min-width:768px){.cn-dev-mobile{display:none!important}}

/* Inline buttons (shortcode, block, WooCommerce) */
.cn-btn-wrap{display:block;margin:12px 0}
.cn-al-center{text-align:center}.cn-al-right{text-align:right}.cn-al-left{text-align:left}
.cn-btn{--cn-color:#0f9d77;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:10px 20px;border-radius:12px;font-weight:600;font-size:16px;line-height:1.25;text-decoration:none!important;white-space:normal;text-align:center;max-width:100%;cursor:pointer}
.cn-btn-solid{background:var(--cn-color);color:#fff!important;border:0}
.cn-btn-outline{background:transparent;color:var(--cn-color)!important;box-shadow:inset 0 0 0 2px var(--cn-color)}
@media (hover:hover){.cn-btn-solid:hover{filter:brightness(1.07)}.cn-btn-outline:hover{background:color-mix(in srgb,var(--cn-color) 8%,transparent)}}
.cn-btn .cn-ico{flex:0 0 auto}
form.cart .cn-woo,.cn-woo-wrap .cn-woo{display:flex;width:100%;margin:12px 0 0;flex:1 0 100%}
.cn-woo-wrap{margin:14px 0}
body.cn-hide-cart .single_add_to_cart_button{display:none!important}

/* Cards shortcode */
.cn-cards{--cn-color:#0f9d77;--cn-ink:inherit;--cn-mute:#5d6b66;--cn-panel:#fff;--cn-line:rgba(20,33,29,.12);--cn-on:#1fb86a;--cn-off:#a3aca9;display:grid;gap:12px;margin:16px 0}
.cn-cards a,.cn-cards a *,.cn-widget a *,.cn-btn *{text-decoration:none!important}
.cn-cards .cn-card{border:1px solid var(--cn-line);background:var(--cn-panel);min-width:0}
.cn-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cn-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:640px){.cn-cols-2,.cn-cols-3{grid-template-columns:minmax(0,1fr)}}
.cn-cards.cn-p-midnight{--cn-panel:#15201d;--cn-ink:#e8efec;--cn-mute:#9db0a9;--cn-line:rgba(255,255,255,.1);color:#e8efec}

@keyframes cn-in{from{opacity:0;transform:translateY(16px) scale(.7)}to{opacity:1;transform:none}}
@keyframes cn-pop{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}
@keyframes cn-nudge{0%,100%{transform:none}30%{transform:scale(1.08)}60%{transform:scale(.97)}}
.cn-launch.is-nudge{animation:cn-nudge .6s ease-in-out 2}
@media (prefers-reduced-motion:reduce){.cn-launch,.cn-panel,.cn-greet,.cn-launch.is-nudge{animation:none}.cn-launch .cn-ico{transition:none}}

.cn-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
