.ec-launch, .ec-panel { --ec-forest: #0F3D2E; --ec-deep: #0A2B20; --ec-gold: #C9A13B; --ec-cream: #F6F3EA; --ec-mist: #E7EEE9; --ec-ink: #16231D; --ec-slate: #4D5B54; --ec-line: #DCE5E0;
	font-family: 'IBM Plex Sans', 'Segoe UI', system-ui, sans-serif; }
.ec-launch { position: fixed; right: 18px; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); z-index: 9990; display: flex; align-items: center; gap: .55rem;
	background: var(--ec-forest); color: #fff; border: 0; border-radius: 999px; padding: .8rem 1.15rem; font-size: .95rem; font-weight: 600; cursor: pointer;
	box-shadow: 0 10px 30px rgba(10, 43, 32, .35); }
.ec-launch:hover { background: #1F6B4F; }
.ec-launch:focus-visible, .ec-panel button:focus-visible, .ec-panel input:focus-visible, .ec-panel textarea:focus-visible { outline: 3px solid var(--ec-gold); outline-offset: 2px; }
.ec-dot { width: .6rem; height: .6rem; border-radius: 50%; background: var(--ec-gold); box-shadow: 0 0 0 3px rgba(201, 161, 59, .3); }
.ec-hide { display: none; }
.ec-panel { position: fixed; right: 18px; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); z-index: 9991; width: min(380px, calc(100vw - 24px)); height: min(560px, calc(100vh - 110px));
	display: flex; flex-direction: column; background: #fff; color: var(--ec-ink); border-radius: 18px; overflow: hidden; box-shadow: 0 24px 60px rgba(0, 0, 0, .28); border-top: 5px solid var(--ec-gold); }
.ec-panel[hidden] { display: none; }
.ec-head { display: flex; justify-content: space-between; align-items: center; gap: .75rem; background: var(--ec-forest); color: #fff; padding: .85rem 1rem; }
.ec-head strong { display: block; font-size: 1rem; }
.ec-head span { font-size: .78rem; color: rgba(255, 255, 255, .75); }
.ec-x { background: transparent; border: 0; color: #fff; font-size: 1.6rem; line-height: 1; cursor: pointer; padding: .1rem .4rem; border-radius: 8px; }
.ec-log { flex: 1; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: .55rem; background: var(--ec-cream); }
.ec-msg { max-width: 86%; padding: .6rem .8rem; border-radius: 14px; font-size: .9rem; line-height: 1.45; overflow-wrap: anywhere; }
.ec-msg a { color: #1F6B4F; font-weight: 600; }
.ec-bot { align-self: flex-start; background: #fff; border: 1px solid var(--ec-line); border-bottom-left-radius: 4px; }
.ec-me { align-self: flex-end; background: var(--ec-forest); color: #fff; border-bottom-right-radius: 4px; }
.ec-wait { color: var(--ec-slate); font-style: italic; }
.ec-chips { display: flex; flex-wrap: wrap; gap: .35rem; }
.ec-chip { background: #fff; color: var(--ec-forest); border: 1.5px solid var(--ec-forest); border-radius: 999px; padding: .3rem .7rem; font-size: .8rem; font-weight: 600; cursor: pointer; }
.ec-chip:hover { background: var(--ec-mist); }
.ec-form { display: flex; gap: .4rem; padding: .6rem; border-top: 1px solid var(--ec-line); background: #fff; }
.ec-in { flex: 1; min-width: 0; font: inherit; font-size: .9rem; border: 1px solid #CBD7D0; border-radius: 10px; padding: .55rem .7rem; color: var(--ec-ink); background: #fff; }
.ec-send { background: var(--ec-gold); color: var(--ec-deep); border: 0; border-radius: 10px; padding: .55rem .9rem; font-weight: 700; cursor: pointer; font: inherit; font-weight: 700; }
.ec-send:disabled { opacity: .6; }
.ec-privacy { margin: 0; padding: .35rem .8rem .55rem; font-size: .72rem; color: var(--ec-slate); background: #fff; }
.ec-cb { align-self: stretch; background: #fff; border: 1px solid var(--ec-line); border-radius: 14px; padding: .75rem; display: grid; gap: .5rem; }
.ec-cb label { display: grid; gap: .2rem; font-size: .78rem; font-weight: 600; }
.ec-cb input, .ec-cb textarea { font: inherit; font-size: .88rem; font-weight: 400; border: 1px solid #CBD7D0; border-radius: 8px; padding: .45rem .6rem; color: var(--ec-ink); background: #fff; }
.ec-cb .ec-send { justify-self: start; }
.ec-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; }
.ec-err { margin: 0; color: #A12F12; font-size: .8rem; }
@media (max-width: 480px) { .ec-panel { right: 12px; left: 12px; width: auto; height: calc(100vh - 90px); } .ec-launch { right: 12px; } }
@media (prefers-reduced-motion: no-preference) { .ec-panel:not([hidden]) { animation: ec-in .18s ease-out; } @keyframes ec-in { from { transform: translateY(12px); opacity: 0; } to { transform: none; opacity: 1; } } }
@media print { .ec-launch, .ec-panel { display: none !important; } }
