/* =====================================================================
 *  Insightians Live Chat widget
 * ===================================================================== */
.ic-root { --ic-blue: #1673e6; --ic-navy: #0b1e4a; --ic-orange: #f26a12; --ic-amber: #f9a31b; --ic-line: #e6edf7; --ic-muted: #5f6b86;
    position: fixed; right: 22px; bottom: 22px; z-index: 90; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; color: var(--ic-navy); opacity: 0; transform: translateY(12px); transition: opacity .4s, transform .4s; }
.ic-root.ready { opacity: 1; transform: none; }
.ic-root *, .ic-root *::before, .ic-root *::after { box-sizing: border-box; }
.ic-root button { font: inherit; cursor: pointer; }
.ic-root svg { display: block; }

/* ---------- launcher ---------- */
.ic-launch { position: relative; width: 66px; height: 66px; border-radius: 50%; border: 0; padding: 0; background: #fff; box-shadow: 0 18px 38px -12px rgba(11, 30, 74, .55); display: grid; place-items: center; transition: transform .25s cubic-bezier(.2, .7, .2, 1); margin-left: auto; }
.ic-launch:hover { transform: scale(1.06); }
.ic-ring { position: absolute; inset: -4px; border-radius: 50%; background: conic-gradient(from 0deg, #62bcff, #1673e6, #f9a31b, #f26a12, #62bcff); animation: icSpin 6s linear infinite; z-index: -1; }
.ic-ring::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: #fff; }
.ic-launch .ic-orb.lg { width: 54px; height: 54px; transition: transform .3s, opacity .3s; }
.ic-launch .ic-x { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; background: linear-gradient(150deg, #2b8cf0, #1673e6 45%, #0f4fb3); border-radius: 50%; opacity: 0; transform: rotate(-90deg) scale(.6); transition: transform .3s, opacity .3s; }
.ic-launch .ic-x svg { width: 26px; height: 26px; }
.ic-root[data-state="open"] .ic-launch .ic-x { opacity: 1; transform: none; }
.ic-root[data-state="open"] .ic-launch .ic-orb { opacity: 0; transform: scale(.6); }
.ic-badge { position: absolute; top: -4px; right: -4px; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: linear-gradient(135deg, #f9a31b, #f26a12); color: #fff; font-size: .75rem; font-weight: 700; display: grid; place-items: center; box-shadow: 0 0 0 3px #fff; animation: icPop .4s; }
.ic-badge[hidden] { display: none; }

/* ---------- Insi orb ---------- */
.ic-orb { display: inline-grid; place-items: center; flex: none; }
.ic-orb svg { width: 100%; height: 100%; overflow: visible; }
.ic-orb.lg { width: 54px; height: 54px; } .ic-orb.md { width: 42px; height: 42px; } .ic-orb.sm { width: 30px; height: 30px; } .ic-orb.xs { width: 22px; height: 22px; }
.ic-eye { transform-box: fill-box; transform-origin: center; animation: icBlink 5s infinite; }
.ic-eyes { animation: icLook 7s ease-in-out infinite; }
.ic-ant { animation: icAnt 2.4s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }

/* ---------- nudge ---------- */
.ic-nudge { position: absolute; right: 0; bottom: 82px; width: 270px; background: #fff; border-radius: 18px 18px 6px 18px; box-shadow: 0 20px 40px -16px rgba(11, 30, 74, .4); padding: 14px 16px; cursor: pointer; animation: icRise .45s cubic-bezier(.2, .7, .2, 1); border: 1px solid var(--ic-line); }
.ic-nudge[hidden] { display: none; }
.ic-nudge-b { display: flex; gap: 10px; align-items: flex-start; }
.ic-nudge p { margin: 0; font-size: .9rem; line-height: 1.45; font-weight: 500; padding-right: 10px; }
.ic-nudge-x { position: absolute; top: 6px; right: 6px; width: 24px; height: 24px; border: 0; background: none; color: #8a97b3; padding: 4px; border-radius: 50%; }
.ic-nudge-x:hover { background: #eef5ff; color: var(--ic-navy); }

/* ---------- panel ---------- */
.ic-panel { position: absolute; right: 0; bottom: 84px; width: 390px; height: min(640px, calc(100vh - 120px)); background: #f6f9fe; border-radius: 26px; overflow: hidden; display: flex; flex-direction: column;
    box-shadow: 0 40px 80px -24px rgba(11, 30, 74, .5), 0 0 0 1px rgba(11, 30, 74, .06); transform-origin: bottom right; animation: icOpen .35s cubic-bezier(.2, .7, .2, 1); }
.ic-panel[hidden] { display: none; }
.ic-head { position: relative; display: flex; align-items: center; gap: 10px; padding: 16px 14px 16px 18px; color: #fff; overflow: hidden; flex: none;
    background: linear-gradient(135deg, #0b1e4a 0%, #13296b 45%, #1673e6 100%); }
.ic-aurora { position: absolute; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(249, 163, 27, .55), transparent 65%); top: -120px; right: -60px; animation: icDrift 9s ease-in-out infinite alternate; pointer-events: none; }
.ic-aurora.b { background: radial-gradient(circle, rgba(98, 188, 255, .55), transparent 65%); top: -60px; left: -90px; right: auto; animation-duration: 11s; }
.ic-head > *:not(.ic-aurora):not(.ic-menu) { position: relative; }
.ic-hav { position: relative; display: grid; place-items: center; }
.ic-dot { position: absolute; right: -1px; bottom: 0; width: 12px; height: 12px; border-radius: 50%; background: #9aa7c1; box-shadow: 0 0 0 2.5px #13296b; }
.ic-dot.on { background: #35d08a; }
.ic-dot.on::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: #35d08a; animation: icPing 1.8s infinite; }
.ic-htxt { flex: 1; min-width: 0; display: grid; line-height: 1.25; }
.ic-title { font-size: 1.02rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ic-sub { font-size: .78rem; opacity: .82; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ic-hacts { display: flex; gap: 2px; }
.ic-hbtn { width: 34px; height: 34px; border-radius: 10px; border: 0; background: rgba(255, 255, 255, .08); color: #fff; display: grid; place-items: center; padding: 8px; transition: background .2s; }
.ic-hbtn:hover { background: rgba(255, 255, 255, .2); }
.ic-hbtn[hidden] { display: none; }
.ic-agav { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; color: #fff; background: linear-gradient(135deg, #f9a31b, #f26a12); font-size: .9rem; flex: none; }
.ic-agav.sm { width: 30px; height: 30px; font-size: .75rem; }
.ic-menu { position: absolute; top: 58px; right: 12px; z-index: 5; background: #fff; border-radius: 14px; box-shadow: 0 20px 40px -14px rgba(11, 30, 74, .45); padding: 6px; min-width: 220px; display: grid; }
.ic-menu[hidden] { display: none; }
.ic-menu a, .ic-menu button { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; color: var(--ic-navy); font-size: .88rem; text-decoration: none; border: 0; background: none; text-align: left; font-weight: 500; }
.ic-menu a[hidden], .ic-menu button[hidden] { display: none; }
.ic-menu a:hover, .ic-menu button:hover { background: #eef5ff; color: var(--ic-blue); }
.ic-menu svg { width: 18px; height: 18px; flex: none; }
.ic-m-wa svg { color: #1faa53; }
.ic-m-end { color: #c7362f !important; }

.ic-body { flex: 1; min-height: 0; position: relative; }
.ic-home, .ic-log { position: absolute; inset: 0; overflow-y: auto; scrollbar-width: thin; }
.ic-home[hidden], .ic-log[hidden] { display: none; }

/* ---------- home ---------- */
.ic-home { padding: 0 16px 18px; }
.ic-hero { margin: 0 -16px 14px; padding: 18px 18px 22px; background: linear-gradient(180deg, #13296b 0%, #1d4fb0 60%, #f6f9fe 100%); color: #fff; }
.ic-hi { margin: 0 0 4px; font-size: .9rem; opacity: .85; }
.ic-hero h3 { margin: 0 0 16px; font-size: 1.35rem; line-height: 1.25; color: #fff; }
.ic-ask { display: flex; background: #fff; border-radius: 16px; padding: 5px 5px 5px 14px; box-shadow: 0 16px 30px -18px rgba(11, 30, 74, .6); }
.ic-ask input { flex: 1; min-width: 0; border: 0; outline: none; font: inherit; font-size: .95rem; color: var(--ic-navy); background: none; }
.ic-ask button { width: 40px; height: 40px; border: 0; border-radius: 12px; background: linear-gradient(135deg, #f9a31b, #f26a12); color: #fff; padding: 10px; }
.ic-resume { width: 100%; display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: 16px; background: #fff; border: 1px solid #ffe0c2; text-align: left; margin-bottom: 14px; color: var(--ic-navy); box-shadow: 0 10px 22px -16px rgba(242, 106, 18, .6); }
.ic-resume > svg { width: 18px; height: 18px; color: var(--ic-orange); flex: none; }
.ic-r-t { flex: 1; min-width: 0; display: grid; }
.ic-r-t small { color: var(--ic-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .8rem; }
.ic-label { margin: 6px 2px 8px; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #8a97b3; }
.ic-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 12px; }
.ic-tile { display: grid; justify-items: center; gap: 6px; padding: 12px 6px 10px; border-radius: 14px; border: 1px solid var(--ic-line); background: #fff; color: var(--ic-navy); font-size: .74rem; font-weight: 600; line-height: 1.25; text-align: center; transition: transform .2s, box-shadow .2s, border-color .2s; }
.ic-tile span { width: 34px; height: 34px; border-radius: 11px; display: grid; place-items: center; background: #eef5ff; color: var(--ic-blue); padding: 8px; transition: background .2s, color .2s; }
.ic-tile:nth-child(even) span { background: #fff1e4; color: var(--ic-orange); }
.ic-tile:hover { transform: translateY(-2px); box-shadow: 0 12px 22px -16px rgba(11, 30, 74, .45); border-color: transparent; }
.ic-tile:hover span { background: linear-gradient(150deg, #2b8cf0, #1673e6); color: #fff; }
.ic-tile:nth-child(even):hover span { background: linear-gradient(135deg, #f9a31b, #f26a12); }
.ic-qs { display: grid; gap: 6px; margin-bottom: 14px; }
.ic-q { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 11px 12px; border-radius: 12px; border: 1px solid var(--ic-line); background: #fff; color: var(--ic-navy); font-size: .86rem; font-weight: 500; text-align: left; }
.ic-q svg { width: 16px; height: 16px; color: var(--ic-blue); flex: none; transition: transform .2s; }
.ic-q:hover { border-color: #bcd6f7; color: var(--ic-blue); }
.ic-q:hover svg { transform: translateX(3px); }
.ic-team { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 14px; background: #fff; border: 1px solid var(--ic-line); }
.ic-team-av { display: flex; }
.ic-team-av b { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-size: .66rem; color: #fff; background: linear-gradient(150deg, #2b8cf0, #1673e6); border: 2px solid #fff; margin-right: -8px; }
.ic-team-av b:nth-child(2) { background: linear-gradient(135deg, #f9a31b, #f26a12); }
.ic-team-av b:nth-child(3) { background: #fff; }
.ic-team > span:last-child { display: grid; margin-left: 6px; }
.ic-team strong { font-size: .86rem; }
.ic-team small { font-size: .76rem; color: var(--ic-muted); }
.ic-wa { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 10px; padding: 10px; border-radius: 12px; color: #11894f; background: #e9f8ef; font-size: .84rem; font-weight: 600; text-decoration: none; }
.ic-wa svg { width: 18px; height: 18px; }

/* ---------- conversation ---------- */
.ic-log { padding: 16px 14px 10px; display: flex; flex-direction: column; gap: 10px; scroll-behavior: smooth; }
.ic-log[hidden] { display: none; }
.ic-msg { display: flex; gap: 8px; align-items: flex-end; max-width: 92%; animation: icMsg .3s cubic-bezier(.2, .7, .2, 1); }
.ic-msg.me { margin-left: auto; flex-direction: row-reverse; max-width: 84%; }
.ic-col { min-width: 0; display: grid; gap: 6px; }
.ic-bub { position: relative; padding: 10px 13px 8px; border-radius: 18px 18px 18px 6px; background: #fff; border: 1px solid var(--ic-line); font-size: .9rem; line-height: 1.5; box-shadow: 0 6px 16px -14px rgba(11, 30, 74, .4); overflow-wrap: anywhere; }
.ic-msg.me .ic-bub { background: linear-gradient(150deg, #2b8cf0, #1673e6 50%, #0f4fb3); color: #fff; border: 0; border-radius: 18px 18px 6px 18px; }
.ic-msg.agent .ic-bub { border-color: #ffd8b5; background: #fffaf5; }
.ic-who { display: block; font-size: .7rem; font-weight: 700; color: var(--ic-blue); margin-bottom: 2px; letter-spacing: .02em; }
.ic-msg.agent .ic-who { color: var(--ic-orange); }
.ic-bub p { margin: 0; }
.ic-bub p + p { margin-top: 2px; }
.ic-bub ul, .ic-bub ol { margin: 4px 0; padding-left: 18px; }
.ic-bub li { margin: 2px 0; }
.ic-bub a { color: var(--ic-blue); font-weight: 600; }
.ic-msg.me .ic-bub a { color: #fff; }
.ic-bub strong { font-weight: 700; }
.ic-gap { display: block; height: 6px; }
.ic-bub time { display: block; text-align: right; font-size: .66rem; opacity: .55; margin-top: 2px; }
.ic-msg.err .ic-bub { background: #fdecec; color: #b42b25; }
.ic-err { display: block; font-style: normal; font-size: .74rem; margin-top: 4px; }
.ic-sys { text-align: center; }
.ic-sys span { display: inline-block; font-size: .72rem; color: #8a97b3; background: #edf2fa; padding: 4px 12px; border-radius: 999px; }
.ic-cards { display: grid; gap: 6px; }
.ic-card { display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 14px; background: #fff; border: 1px solid var(--ic-line); color: var(--ic-navy); text-decoration: none; transition: transform .2s, box-shadow .2s; }
.ic-card:hover { transform: translateY(-2px); box-shadow: 0 12px 22px -16px rgba(11, 30, 74, .5); }
.ic-card-ic { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; padding: 9px; color: #fff; background: linear-gradient(150deg, #2b8cf0, #1673e6 50%, #0f4fb3); flex: none; }
.ic-card.tone-orange .ic-card-ic { background: linear-gradient(135deg, #f9a31b, #f26a12); }
.ic-card-t { flex: 1; min-width: 0; display: grid; }
.ic-card-t strong { font-size: .88rem; }
.ic-card-t small { font-size: .74rem; color: var(--ic-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ic-card-go { width: 28px; height: 28px; border-radius: 50%; background: #eef5ff; color: var(--ic-blue); padding: 6px; flex: none; }
.ic-chips { display: flex; flex-wrap: wrap; gap: 6px; padding-left: 38px; animation: icMsg .35s .1s both; }
.ic-chip { border: 1px solid #bcd6f7; background: #fff; color: var(--ic-blue); border-radius: 999px; padding: 7px 13px; font-size: .8rem; font-weight: 600; transition: background .2s, color .2s, transform .2s; }
.ic-chip:hover { background: var(--ic-blue); color: #fff; transform: translateY(-1px); }
.ic-dots { display: inline-flex; gap: 4px; padding: 6px 2px; }
.ic-dots i { width: 7px; height: 7px; border-radius: 50%; background: #9fb5d4; animation: icBounce 1.2s infinite; }
.ic-dots i:nth-child(2) { animation-delay: .15s; } .ic-dots i:nth-child(3) { animation-delay: .3s; }
.ic-end { text-align: center; padding: 14px; border-radius: 16px; background: #fff; border: 1px solid var(--ic-line); margin-top: 6px; }
.ic-end p { margin: 0 0 8px; font-size: .9rem; }
.ic-stars { display: flex; justify-content: center; gap: 4px; margin-bottom: 10px; }
.ic-stars button { width: 34px; height: 34px; border: 0; background: none; color: #d7deea; padding: 4px; transition: transform .15s, color .15s; }
.ic-stars button.on, .ic-stars button:hover { color: var(--ic-amber); transform: scale(1.12); }
.ic-new { border: 0; background: linear-gradient(150deg, #2b8cf0, #1673e6 50%, #0f4fb3); color: #fff; border-radius: 12px; padding: 10px 16px; font-weight: 600; font-size: .86rem; }

/* ---------- composer ---------- */
.ic-compose { flex: none; display: flex; align-items: flex-end; gap: 8px; margin: 0 12px; padding: 8px 8px 8px 14px; background: #fff; border-radius: 18px; border: 1px solid var(--ic-line); box-shadow: 0 10px 24px -18px rgba(11, 30, 74, .5); transition: border-color .2s, box-shadow .2s; }
.ic-compose:focus-within { border-color: #9cc4f5; box-shadow: 0 0 0 4px rgba(22, 115, 230, .12); }
.ic-compose textarea { flex: 1; min-width: 0; border: 0; outline: none; resize: none; font: inherit; font-size: .92rem; line-height: 1.45; max-height: 120px; padding: 8px 0; color: var(--ic-navy); background: none; }
.ic-send { width: 40px; height: 40px; flex: none; border: 0; border-radius: 12px; background: linear-gradient(135deg, #f9a31b, #f26a12); color: #fff; padding: 10px; transition: transform .2s, opacity .2s; }
.ic-send:disabled { opacity: .35; cursor: default; }
.ic-send:not(:disabled):hover { transform: rotate(-12deg) scale(1.05); }
.ic-foot { flex: none; margin: 0; padding: 8px 0 10px; text-align: center; font-size: .68rem; color: #9aa7c1; }

/* ---------- animations ---------- */
@keyframes icSpin { to { transform: rotate(360deg); } }
@keyframes icBlink { 0%, 92%, 100% { transform: scaleY(1); } 95% { transform: scaleY(.1); } }
@keyframes icLook { 0%, 40%, 100% { transform: translateX(0); } 50%, 60% { transform: translateX(2px); } 75%, 85% { transform: translateX(-2px); } }
@keyframes icAnt { 50% { transform: scale(1.3); opacity: .8; } }
@keyframes icPop { from { transform: scale(0); } to { transform: scale(1); } }
@keyframes icRise { from { opacity: 0; transform: translateY(12px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes icOpen { from { opacity: 0; transform: translateY(16px) scale(.94); } to { opacity: 1; transform: none; } }
@keyframes icMsg { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes icBounce { 0%, 60%, 100% { transform: translateY(0); opacity: .6; } 30% { transform: translateY(-5px); opacity: 1; } }
@keyframes icPing { from { transform: scale(1); opacity: .7; } to { transform: scale(2.4); opacity: 0; } }
@keyframes icDrift { from { transform: translate(0, 0); } to { transform: translate(-40px, 30px); } }

/* ---------- mobile ---------- */
@media (max-width: 560px) {
    .ic-root { right: 14px; bottom: 14px; }
    .ic-launch { width: 58px; height: 58px; }
    .ic-launch .ic-orb.lg { width: 48px; height: 48px; }
    .ic-root[data-state="open"] .ic-launch { display: none; }
    .ic-panel { position: fixed; inset: 0; width: auto; height: auto; border-radius: 0; bottom: 0; animation-name: icRise; }
    .ic-hacts .ic-min { width: 38px; height: 38px; }
    .ic-nudge { width: min(270px, calc(100vw - 40px)); bottom: 74px; }
    .ic-compose { margin-bottom: 2px; }
}
@media (prefers-reduced-motion: reduce) {
    .ic-root *, .ic-root *::before, .ic-root *::after { animation: none !important; transition: none !important; }
}
@media print { .ic-root { display: none !important; } }

.ic-defs { position: absolute; width: 0; height: 0; overflow: hidden; }

/* options menu: rendered on the panel so the header's rounded clip doesn't cut it */
.ic-panel > .ic-menu { position: absolute; top: 66px; right: 12px; z-index: 20; animation: icRise .2s cubic-bezier(.2, .7, .2, 1); }
