/* Website-Chat (site/chat.js) – shared by www.tarvi.de and lippevalley.de */
.tvc{--tvc-a:#5fd8f6;--tvc-b:#2f8cff;--tvc-c:#1a5cff;--tvc-bg:rgba(9,18,32,.86);--tvc-card:rgba(255,255,255,.055);--tvc-line:rgba(140,190,255,.16);
  --tvc-ink:#eef5ff;--tvc-muted:#9eb1c9;--tvc-ease:cubic-bezier(.23,1,.32,1);--tvc-grad:linear-gradient(135deg,var(--tvc-a) 0%,var(--tvc-b) 55%,var(--tvc-c) 100%);
  position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:2147483000;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.55;color:var(--tvc-ink);
  -webkit-font-smoothing:antialiased;letter-spacing:normal}
.tvc[data-site=lippevalley]{--tvc-a:#7fe0f7;--tvc-b:#5dcbf2;--tvc-c:#2f7fe0;--tvc-bg:rgba(11,20,36,.88)}
.tvc *,.tvc *:before,.tvc *:after{box-sizing:border-box}
.tvc div,.tvc p,.tvc form,.tvc ul,.tvc ol,.tvc li{max-width:none;letter-spacing:normal}
.tvc p{color:inherit;line-height:inherit;font-size:inherit}
.tvc button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.tvc :focus-visible{outline:2px solid var(--tvc-a);outline-offset:2px}

/* launcher */
.tvc-launcher{display:flex;align-items:center;gap:10px;margin-left:auto;padding:7px 18px 7px 7px;border-radius:999px!important;
  background:rgba(10,20,36,.78)!important;border:1px solid var(--tvc-line)!important;backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);
  box-shadow:0 12px 40px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.03) inset;font-weight:600;font-size:15px;
  opacity:0;transform:translateY(12px) scale(.96);transition:transform .45s var(--tvc-ease),opacity .45s var(--tvc-ease),box-shadow .2s ease}
.tvc-ready .tvc-launcher{opacity:1;transform:none}
.tvc-launcher:active{transform:scale(.97)}
@media(hover:hover){.tvc-launcher:hover{box-shadow:0 14px 44px rgba(0,0,0,.5),0 0 28px rgba(47,140,255,.35)}.tvc-launcher:hover .tvc-orb{transform:rotate(-8deg) scale(1.05)}}
.tvc-orb{position:relative;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--tvc-grad);color:#04101f;
  box-shadow:0 0 22px rgba(95,216,246,.45);transition:transform .3s var(--tvc-ease)}
.tvc-orb:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1.5px solid var(--tvc-a);opacity:0;animation:tvc-ping 3.2s var(--tvc-ease) 1.2s 3}
.tvc-orb svg{width:22px;height:22px}
.tvc-open .tvc-launcher{opacity:0;pointer-events:none;transform:scale(.9)}
/* never over the cookie notice of tarvi.de: the launcher waits until it is answered */
body:has(.consent-banner) .tvc:not(.tvc-open) .tvc-launcher{opacity:0;pointer-events:none;transform:translateY(12px) scale(.96)}
@keyframes tvc-ping{0%{opacity:.7;transform:scale(1)}70%,100%{opacity:0;transform:scale(1.45)}}

/* panel */
.tvc-panel{position:absolute;right:0;bottom:0;width:min(400px,calc(100vw - 40px));height:min(640px,calc(100dvh - 40px));display:flex;flex-direction:column;
  border-radius:24px;background:var(--tvc-bg);border:1px solid var(--tvc-line);backdrop-filter:blur(22px) saturate(1.5);-webkit-backdrop-filter:blur(22px) saturate(1.5);
  box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.04) inset,0 -1px 0 rgba(255,255,255,.08) inset;overflow:hidden;
  transform-origin:100% 100%;opacity:0;transform:translateY(14px) scale(.96);transition:opacity .2s ease,transform .2s var(--tvc-ease)}
.tvc-panel.tvc-in{opacity:1;transform:none;transition:opacity .28s var(--tvc-ease),transform .38s var(--tvc-ease)}
.tvc-panel:before{content:"";position:absolute;inset:0 0 auto;height:140px;background:radial-gradient(80% 100% at 20% 0%,rgba(95,216,246,.16),transparent 70%),
  radial-gradient(70% 100% at 90% 0%,rgba(47,140,255,.14),transparent 70%);pointer-events:none}
.tvc-head{position:relative;display:flex;align-items:center;gap:12px;padding:16px 12px 14px 18px;border-bottom:1px solid var(--tvc-line)}
.tvc-avatar{position:relative;flex:none;width:38px;height:38px;border-radius:50%;background:var(--tvc-grad);box-shadow:0 0 18px rgba(95,216,246,.4)}
.tvc-avatar-core{position:absolute;inset:11px;border-radius:50%;background:#e9fbff;box-shadow:0 0 10px #fff;opacity:.9}
.tvc-busy .tvc-avatar-core{animation:tvc-breathe 1.2s ease-in-out infinite}
@keyframes tvc-breathe{50%{transform:scale(.6);opacity:.55}}
.tvc-titles{flex:1;min-width:0;display:flex;flex-direction:column}
.tvc-titles strong{font-size:16px;font-weight:650;letter-spacing:-.01em}
.tvc-titles span{font-size:12.5px;color:var(--tvc-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tvc-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;color:var(--tvc-muted);transition:background .15s ease,color .15s ease}
.tvc-icon svg{width:19px;height:19px}
@media(hover:hover){.tvc-icon:hover{background:rgba(255,255,255,.07);color:var(--tvc-ink)}}

/* messages */
.tvc-log{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:18px 16px 8px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}
.tvc-log:focus-visible{outline:none}
.tvc-msg{display:flex;animation:tvc-rise .32s var(--tvc-ease) both}
@keyframes tvc-rise{from{opacity:0;transform:translateY(8px)}}
.tvc-user{justify-content:flex-end}
.tvc-bubble{max-width:86%;padding:10px 14px;border-radius:18px;overflow-wrap:anywhere}
.tvc-bot .tvc-bubble{background:var(--tvc-card);border:1px solid var(--tvc-line);border-bottom-left-radius:6px}
.tvc-user .tvc-bubble{background:var(--tvc-grad);color:#03101f;font-weight:500;border-bottom-right-radius:6px;box-shadow:0 6px 20px rgba(47,140,255,.25);white-space:pre-wrap}
.tvc-bubble p{margin:0}
.tvc-bubble p+p,.tvc-bubble p+ul,.tvc-bubble p+ol,.tvc-bubble ul+p,.tvc-bubble ol+p{margin-top:8px}
.tvc-bubble ul,.tvc-bubble ol{margin:4px 0 0;padding-left:20px}
.tvc-bubble li{margin:3px 0}
.tvc-bubble li::marker{color:var(--tvc-a)}
.tvc-bubble strong{font-weight:650;color:#fff}
.tvc-bubble a{color:var(--tvc-a);text-decoration:underline;text-decoration-color:rgba(95,216,246,.4);text-underline-offset:3px}
.tvc-bubble a:hover{text-decoration-color:currentColor}
.tvc-streaming>:last-child:after{content:"";display:inline-block;width:7px;height:15px;margin-left:3px;vertical-align:-2px;border-radius:2px;background:var(--tvc-a);animation:tvc-caret 1s steps(2) infinite}
@keyframes tvc-caret{50%{opacity:0}}
.tvc-typing{display:flex;gap:5px;padding:14px 16px}
.tvc-typing i{width:7px;height:7px;border-radius:50%;background:var(--tvc-a);opacity:.35;animation:tvc-dot 1.1s ease-in-out infinite}
.tvc-typing i:nth-child(2){animation-delay:.15s}.tvc-typing i:nth-child(3){animation-delay:.3s}
@keyframes tvc-dot{30%{opacity:1;transform:translateY(-4px)}}
.tvc-error{border-color:rgba(255,140,140,.35)!important}
.tvc-retry{margin-top:8px;padding:6px 12px;border-radius:999px;border:1px solid var(--tvc-line)!important;font-size:13.5px;color:var(--tvc-a)!important}

/* suggestions */
.tvc-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px}
.tvc-chips:not(:empty){padding-bottom:12px}
.tvc-chip{padding:8px 13px;border-radius:999px;border:1px solid var(--tvc-line)!important;background:rgba(255,255,255,.035)!important;font-size:13.5px;color:var(--tvc-ink);
  text-align:left;animation:tvc-rise .4s var(--tvc-ease) both;animation-delay:calc(var(--i,0) * 50ms + 120ms);transition:border-color .15s ease,background .15s ease,transform .15s ease}
.tvc-chip:active{transform:scale(.97)}
@media(hover:hover){.tvc-chip:hover{border-color:rgba(95,216,246,.5)!important;background:rgba(95,216,246,.08)!important}}

/* input */
.tvc-form{display:flex;align-items:flex-end;gap:8px;margin:0 12px;padding:6px 6px 6px 16px;border-radius:20px;background:rgba(255,255,255,.06);border:1px solid var(--tvc-line);
  transition:border-color .15s ease,box-shadow .15s ease}
.tvc-form:focus-within{border-color:rgba(95,216,246,.55);box-shadow:0 0 0 4px rgba(95,216,246,.1)}
.tvc-input{flex:1;min-width:0;resize:none;border:0;background:transparent;color:var(--tvc-ink);font:inherit;font-size:16px;line-height:1.45;padding:7px 0;max-height:132px;outline:none!important}
.tvc-input::placeholder{color:var(--tvc-muted);opacity:.8}
.tvc-send{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:14px!important;background:var(--tvc-grad)!important;color:#03101f!important;
  box-shadow:0 4px 16px rgba(47,140,255,.35);transition:transform .15s var(--tvc-ease),opacity .15s ease,filter .15s ease}
.tvc-send svg{width:20px;height:20px}
.tvc-send:disabled{opacity:.35;box-shadow:none;cursor:default;filter:saturate(.4)}
.tvc-send:not(:disabled):active{transform:scale(.92)}
.tvc-note{margin:0;padding:9px 18px 13px;font-size:11.5px;line-height:1.4;color:var(--tvc-muted);text-align:center}
.tvc-note a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* phones: full-screen sheet */
@media(max-width:560px){
  .tvc{right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}
  .tvc-launcher{padding:6px}
  .tvc-launcher-label{display:none}
  .tvc-orb{width:50px;height:50px}
  .tvc-open{inset:0}
  .tvc-panel{position:fixed;inset:0;width:100%;height:100%;height:100dvh;border-radius:0;border:0;transform:translateY(24px);transform-origin:50% 100%}
  .tvc-head{padding-top:max(14px,env(safe-area-inset-top))}
  .tvc-note{padding-bottom:max(12px,env(safe-area-inset-bottom))}
  html.tvc-lock,html.tvc-lock body{overflow:hidden}
}
@media(prefers-reduced-motion:reduce){.tvc *,.tvc *:before,.tvc *:after{animation:none!important;transition:none!important}.tvc-launcher{opacity:1;transform:none}}
@media print{.tvc{display:none}}

/* hidden must win over display:flex, otherwise the closed panel stays invisible on top of the page and swallows taps and scrolling */
.tvc-panel[hidden]{display:none!important}
