/* Invicta website assistant. Uses the :root tokens defined on each page. */
:root{--ch-lift:0px}
.ch-launch{position:fixed;right:clamp(1rem,2.4vw,1.75rem);bottom:calc(clamp(1rem,2.4vw,1.75rem) + var(--ch-lift));z-index:78;display:inline-flex;align-items:center;gap:.55rem;
  height:56px;padding:0 1.25rem 0 1.05rem;border:1px solid rgba(201,164,83,.45);border-radius:999px;background:var(--forest);color:var(--white);cursor:pointer;
  font:600 .9375rem/1 var(--sans);box-shadow:0 18px 40px -14px rgba(11,46,39,.65);transform-origin:bottom right;
  transition:bottom .5s var(--ease),transform .35s var(--ease),background-color .3s var(--ease),box-shadow .35s var(--ease),border-color .3s var(--ease)}
.ch-launch i{font-size:1.5rem;color:var(--gold-soft);transition:transform .35s var(--ease)}
/* Hover: grows a little and glows gold so it stands out */
@media (hover:hover){
  .ch-launch:hover{background:var(--forest-2);border-color:rgba(201,164,83,.95);transform:translateY(-3px) scale(1.08);
    box-shadow:0 0 0 5px rgba(201,164,83,.16),0 0 26px 4px rgba(201,164,83,.45),0 22px 44px -14px rgba(11,46,39,.75)}
  .ch-launch:hover i{transform:rotate(-8deg) scale(1.08)}
}
.ch-launch:active{transform:translateY(-1px) scale(1.03)}
.ch-launch.open{background:var(--forest-2)}
.ch-launch:focus-visible{outline:2px solid var(--gold);outline-offset:3px}


.ch-panel{position:fixed;right:clamp(1rem,2.4vw,1.75rem);bottom:calc(clamp(1rem,2.4vw,1.75rem) + var(--ch-lift) + 70px);z-index:86;width:min(390px,calc(100% - 2rem));
  height:min(620px,calc(100dvh - 120px - var(--ch-lift)));display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;
  box-shadow:0 40px 80px -24px rgba(11,46,39,.55);opacity:0;transform:translateY(18px) scale(.94);transform-origin:bottom right;transition:opacity .32s var(--ease),transform .45s var(--ease)}
.ch-panel.show{opacity:1;transform:none}
.ch-panel[hidden]{display:none}
.ch-head{display:flex;align-items:center;gap:.8rem;padding:.9rem .9rem .9rem 1rem;background:var(--forest);color:var(--white);flex:none}
.ch-av{width:40px;height:40px;border-radius:50%;background:var(--forest-2);display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(201,164,83,.5);flex:none}
.ch-av img{height:32px;width:32px}
.ch-title{display:inline-flex;align-items:center;gap:.55rem;font:500 1.25rem/1.1 var(--serif)}
.ch-live{position:relative;width:9px;height:9px;border-radius:50%;background:#4CC38A;flex:none}
.ch-live::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid #4CC38A;opacity:0;animation:chLive 2.4s ease-out infinite}
@keyframes chLive{0%{transform:scale(.5);opacity:.7}100%{transform:scale(1.4);opacity:0}}
.ch-x{margin-left:auto;width:40px;height:40px;display:grid;place-items:center;border:0;background:none;color:var(--white);font-size:1.2rem;cursor:pointer;border-radius:var(--radius)}
.ch-x:hover{background:rgba(238,242,239,.1)}

.ch-log{flex:1;overflow-y:auto;padding:1.1rem 1rem;display:flex;flex-direction:column;gap:.4rem;overscroll-behavior:contain}
.ch-msg{max-width:88%;padding:.75rem .95rem;border-radius:16px;font-size:.9rem;line-height:1.55;animation:chIn .28s var(--ease) both}
@keyframes chIn{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
.ch-msg p{margin:0}.ch-msg p + p{margin-top:.55rem}
.ch-bot{align-self:flex-start;background:var(--white);border:1px solid var(--line);border-bottom-left-radius:3px;color:var(--ink)}
.ch-bot + .ch-user,.ch-user + .ch-bot{margin-top:.5rem}
.ch-user{align-self:flex-end;background:var(--green);color:var(--white);border-bottom-right-radius:3px}
.ch-note{align-self:center;max-width:95%;font-size:.78rem;line-height:1.5;color:var(--ink-2);text-align:center;background:var(--mist);padding:.55rem .8rem;border-radius:8px;white-space:pre-line}
.ch-link a{font-weight:600;color:var(--green-ink)}
.ch-typing{display:inline-flex;gap:4px;padding:.9rem 1rem}
.ch-typing span{width:6px;height:6px;border-radius:50%;background:#9AA8A2;animation:chDot 1s infinite}
.ch-typing span:nth-child(2){animation-delay:.15s}.ch-typing span:nth-child(3){animation-delay:.3s}
@keyframes chDot{0%,60%,100%{opacity:.3;transform:none}30%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion: reduce){.ch-typing span{animation:none}.ch-panel,.ch-launch{transition:none}.ch-msg,.ch-note{animation:none}.ch-live::after{animation:none}}


.ch-devs{list-style:none;margin:.6rem 0 0;padding:0;display:grid;gap:.45rem}
.ch-devs li{border:1px solid var(--line);border-radius:8px;padding:.6rem .7rem;background:var(--paper)}
.ch-dev-top{display:flex;justify-content:space-between;gap:.6rem}
.ch-dev-top b{font-weight:600}
.ch-dev-top span{font-weight:600;color:var(--green-ink);white-space:nowrap}
.ch-devs small{display:block;font-size:.78rem;color:var(--ink-2);margin-top:.15rem}
.ch-plan{color:var(--ink)!important}
.ch-dev-go{margin-top:.4rem;border:0;background:none;padding:0;font:600 .78rem/1 var(--sans);color:var(--green-ink);cursor:pointer;text-decoration:underline;text-underline-offset:2px}

.ch-form{display:grid;gap:.55rem;margin-top:.75rem}
.ch-form label{display:grid;gap:.25rem;font-size:.78rem;font-weight:600;color:var(--ink)}
.ch-form label i{font-style:normal;color:#A32C1F}
.ch-form input{font:400 .9rem/1.3 var(--sans);padding:.65rem .7rem;border:1px solid #B9C4BE;border-radius:var(--radius);background:var(--paper);color:var(--ink)}
.ch-form input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(16,97,79,.18)}
.ch-form input.bad{border-color:#A32C1F}
.ch-form .btn{justify-content:center;padding:.8rem 1rem;font-size:.875rem;margin-top:.15rem}
.ch-form small{font-size:.72rem;color:var(--ink-2)}
.ch-form small a{color:var(--green-ink)}
.ch-err{margin:0;padding:.55rem .7rem;font-size:.8rem;background:#FBEDEA;border-left:3px solid #A32C1F;color:#5E1A12;border-radius:var(--radius)}
.ch-err[hidden]{display:none}

.ch-input{display:flex;gap:.5rem;padding:.7rem;border-top:1px solid var(--line);background:var(--white);flex:none}
.ch-input input{flex:1;min-width:0;font:400 .9375rem/1.3 var(--sans);padding:.7rem .85rem;border:1px solid #B9C4BE;border-radius:999px;background:var(--paper);color:var(--ink)}
.ch-input input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(16,97,79,.15)}
.ch-input button{width:44px;height:44px;flex:none;border:0;border-radius:50%;background:var(--green);color:var(--white);font-size:1.15rem;display:grid;place-items:center;cursor:pointer}
.ch-input button:hover{background:var(--forest)}
.ch-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

@media (max-width:640px){
  .ch-launch span{display:none}
  .ch-launch{width:56px;padding:0;justify-content:center}
  .ch-panel{inset:0;bottom:auto;width:100%;height:100dvh;border-radius:0;border:0}
  /* 16px stops iPhones zooming the page in when the message box is tapped */
  .ch-input input{font-size:16px}
}
