/* Digitaler Assistent – Maljikji Digital. Farben aus assets/style.css (:root). */
.cb-root{
  --cb-font:var(--font,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif);
  --cb-text:#1e293b; --cb-muted:#5b6b7c; --cb-line:#e2e8f0; --cb-log-bg:#f4f7f9;
  --cb-primary:#0f766e; --cb-primary-hover:#0d5f59;
  --cb-head-bg:#0b1f2a; --cb-launcher-bg:#0f766e; --cb-launcher-hover:#0d5f59; --cb-launcher-dots:#0f766e;
  --cb-user-bg:#0f3b4a; --cb-chip-border:#99d5cf; --cb-chip-text:#0d5f59; --cb-chip-hover:#effaf8;
  /* Roboter */ --cb-r-body:#0f766e; --cb-r-face:#0b1f2a; --cb-r-eye:#5eead4; --cb-r-light:#fbbf24; --cb-r-outline:#ffffff; --cb-r-cheek:#fda4af;
  /* Sprechblase */ --cb-bubble-bg:#0f766e; --cb-bubble-hover:#0d5f59; --cb-bubble-text:#ffffff; --cb-bubble-border:#ffffff;
  --cb-focus:#2563eb; --cb-disclaimer-bg:#f4f7f9; --cb-disclaimer-text:#334155;
}
.cb-head{background:linear-gradient(135deg,#0b1f2a,#0f3b4a)}
/* ---- Widget (alle Klassen mit Präfix cb-, damit nichts mit dem Website-CSS kollidiert) ---- */
.cb-root{position:fixed;right:20px;bottom:20px;z-index:2147483000;font-family:var(--cb-font);font-size:15px;line-height:1.45;color:var(--cb-text);-webkit-font-smoothing:antialiased}
.cb-root *,.cb-root *::before,.cb-root *::after{box-sizing:border-box}
.cb-root [hidden]{display:none!important}
.cb-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.cb-launcher:focus-visible,.cb-root button:focus-visible,.cb-root a:focus-visible,.cb-input:focus-visible,.cb-log:focus-visible,.cb-title:focus-visible{outline:3px solid var(--cb-focus);outline-offset:2px}
/* Launcher = animierter Roboter */
.cb-launcher{display:block;width:64px;height:64px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;margin-left:auto;transition:opacity .2s ease,transform .2s ease;-webkit-tap-highlight-color:transparent}
.cb-launcher .cb-robot{width:100%;height:100%;display:block;overflow:visible;filter:drop-shadow(0 6px 8px rgba(15,23,42,.28)) drop-shadow(0 1px 2px rgba(15,23,42,.18))}
.cb-robot .cb-r-body{fill:var(--cb-r-body)}
.cb-robot .cb-r-o{stroke:var(--cb-r-outline);stroke-width:2.2;paint-order:stroke}
.cb-robot .cb-r-face{fill:var(--cb-r-face)}
.cb-robot .cb-r-eye{fill:var(--cb-r-eye)}
.cb-robot .cb-r-shine{fill:#fff;opacity:.9}
.cb-robot .cb-r-smile{fill:none;stroke:var(--cb-r-eye);stroke-width:2.3;stroke-linecap:round}
.cb-robot .cb-r-cheek{fill:var(--cb-r-cheek);opacity:.75}
.cb-robot .cb-r-stick{fill:none;stroke:var(--cb-r-body);stroke-width:3;stroke-linecap:round}
.cb-robot .cb-r-light{fill:var(--cb-r-light);stroke:var(--cb-r-outline);stroke-width:1.6}
.cb-robot .cb-r-halo{fill:var(--cb-r-light);opacity:0}
.cb-robot .cb-r-chest{fill:var(--cb-r-light)}
.cb-robot *{transform-box:view-box}
.cb-r-all{animation:cb-r-bob 3s ease-in-out infinite}
.cb-r-head{transform-origin:32px 42px;animation:cb-r-tilt 7s ease-in-out infinite}
.cb-r-arm-r{transform-origin:51px 46.5px;animation:cb-r-wave 7s ease-in-out infinite}
.cb-r-eyes{transform-origin:32px 26px;animation:cb-r-blink 4.6s infinite}
.cb-r-light{animation:cb-r-pulse 1.8s ease-in-out infinite}
.cb-r-halo{transform-origin:32px 5.5px;animation:cb-r-halo 1.8s ease-out infinite}
.cb-launcher:hover .cb-robot,.cb-launcher:focus-visible .cb-robot{animation:cb-r-hop .7s cubic-bezier(.3,1.6,.5,1) 1}
.cb-launcher:active .cb-robot{transform:scale(.94)}
.cb-robot-mini .cb-r-all,.cb-robot-mini .cb-r-head{animation:none}
@keyframes cb-r-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2.5px)}}
@keyframes cb-r-tilt{0%,30%,46%,100%{transform:rotate(0)}34%,42%{transform:rotate(-8deg)}}
@keyframes cb-r-wave{0%,62%,86%,100%{transform:rotate(0)}66%{transform:rotate(-150deg)}70%{transform:rotate(-118deg)}74%{transform:rotate(-150deg)}78%{transform:rotate(-118deg)}82%{transform:rotate(-150deg)}}
@keyframes cb-r-blink{0%,91%,97%,100%{transform:scaleY(1)}94%{transform:scaleY(.1)}}
@keyframes cb-r-pulse{0%,100%{opacity:.65}50%{opacity:1}}
@keyframes cb-r-halo{0%{transform:scale(.6);opacity:.55}80%,100%{transform:scale(1.5);opacity:0}}
@keyframes cb-r-hop{0%{transform:translateY(0) scale(1)}35%{transform:translateY(-9px) scale(1.08)}60%{transform:translateY(0) scale(.97)}80%{transform:translateY(-3px) scale(1.02)}100%{transform:translateY(0) scale(1)}}
.cb-avatar{width:40px;height:40px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;flex:none;box-shadow:0 0 0 2px rgba(255,255,255,.25)}
.cb-avatar .cb-robot{width:32px;height:25px;display:block;overflow:visible}
/* Sprechblase links neben dem Roboter */
.cb-launcher{position:relative}
.cb-bubble{position:absolute;right:calc(100% + 10px);top:50%;margin-top:-17px;height:34px;display:flex;align-items:center;padding:0 .9rem;border-radius:999px;background:var(--cb-bubble-bg);color:var(--cb-bubble-text);font:700 14px/1 var(--cb-font);white-space:nowrap;letter-spacing:.005em;border:2px solid var(--cb-bubble-border);box-shadow:0 6px 16px rgba(15,23,42,.22),0 1px 3px rgba(15,23,42,.16);pointer-events:auto;animation:cb-b-in .45s ease-out .7s both,cb-r-bob 3s ease-in-out infinite;transition:opacity .2s ease}
.cb-bubble::after{content:"";position:absolute;right:-7px;top:50%;width:11px;height:11px;margin-top:-5.5px;background:var(--cb-bubble-bg);border-top:2px solid var(--cb-bubble-border);border-right:2px solid var(--cb-bubble-border);transform:rotate(45deg);border-radius:0 3px 0 0}
.cb-launcher:hover .cb-bubble{background:var(--cb-bubble-hover)}
.cb-launcher:hover .cb-bubble::after{background:var(--cb-bubble-hover)}
.cb-open .cb-bubble{display:none}
.cb-dodge-bubble .cb-launcher:not(:focus) .cb-bubble{opacity:0;pointer-events:none}
@keyframes cb-b-in{from{opacity:0;translate:12px 0}to{opacity:1;translate:0 0}}
.cb-dodge .cb-launcher:not(:focus){opacity:0;pointer-events:none;transform:translateY(12px)}
.cb-root{display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.cb-panel{width:384px;max-width:calc(100vw - 40px);height:min(600px,calc(100vh - 110px));height:min(600px,calc(100dvh - 110px));display:flex;flex-direction:column;background:#fff;border:1px solid var(--cb-line);border-radius:18px;box-shadow:0 24px 60px rgba(15,23,42,.28),0 4px 14px rgba(15,23,42,.12);overflow:hidden;animation:cb-in .18s ease-out}
@keyframes cb-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.cb-head{display:flex;align-items:center;gap:.7rem;padding:.85rem .85rem .85rem 1rem;background:var(--cb-head-bg);color:#fff;flex:none}
.cb-head-text{flex:1;min-width:0}
.cb-title{margin:0!important;font:700 16px/1.2 var(--cb-font)!important;color:#fff!important;letter-spacing:0}
.cb-subtitle{margin:2px 0 0!important;font-size:12.5px;line-height:1.3;color:rgba(255,255,255,.82)}
.cb-close{width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex:none}
.cb-close:hover{background:rgba(255,255,255,.14)}
.cb-close svg{width:20px;height:20px;display:block}
.cb-disclaimer{margin:0!important;padding:.5rem 1rem;font-size:12.5px;line-height:1.35;background:var(--cb-disclaimer-bg);color:var(--cb-disclaimer-text);border-bottom:1px solid var(--cb-line);flex:none}
.cb-log{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:1rem .9rem .5rem;background:var(--cb-log-bg);display:flex;flex-direction:column;gap:.55rem}
.cb-msg{max-width:88%;padding:.6rem .85rem;border-radius:16px;word-wrap:break-word;overflow-wrap:anywhere}
.cb-msg p{margin:0 0 .45em!important;font-size:15px;line-height:1.45}
.cb-msg p:last-child{margin-bottom:0!important}
.cb-bot{align-self:flex-start;background:#fff;border:1px solid var(--cb-line);border-bottom-left-radius:5px;color:var(--cb-text)}
.cb-user{align-self:flex-end;background:var(--cb-user-bg);color:#fff;border-bottom-right-radius:5px;white-space:pre-wrap}
.cb-summary{margin:.3rem 0 .5rem;display:grid;grid-template-columns:auto 1fr;gap:.2rem .7rem;font-size:14px}
.cb-summary dt{font-weight:700;color:var(--cb-muted)}
.cb-summary dd{margin:0;white-space:pre-wrap}
.cb-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.1rem 0 .35rem;padding-left:2px}
.cb-chip{display:inline-flex;align-items:center;min-height:36px;padding:.4rem .85rem;border:1.5px solid var(--cb-chip-border);border-radius:999px;background:#fff;color:var(--cb-chip-text)!important;font:600 14px/1.2 var(--cb-font);text-decoration:none!important;cursor:pointer;text-align:left;transition:background .12s ease,border-color .12s ease}
.cb-chip:hover{background:var(--cb-chip-hover);border-color:var(--cb-chip-text)}
.cb-chip-primary{background:var(--cb-primary);border-color:var(--cb-primary);color:#fff!important}
.cb-chip-primary:hover{background:var(--cb-primary-hover);border-color:var(--cb-primary-hover)}
.cb-typing{display:flex;gap:4px;padding:.75rem .9rem}
.cb-typing span{width:7px;height:7px;border-radius:50%;background:var(--cb-muted);opacity:.5;animation:cb-dot 1s infinite ease-in-out}
.cb-typing span:nth-child(2){animation-delay:.15s}.cb-typing span:nth-child(3){animation-delay:.3s}
@keyframes cb-dot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:.9;transform:translateY(-3px)}}
.cb-foot{flex:none;border-top:1px solid var(--cb-line);background:#fff;padding:.6rem .7rem .5rem}
.cb-form{display:flex;gap:.45rem;margin:0}
.cb-input{flex:1;min-width:0;height:44px;padding:0 .9rem;border:1.5px solid var(--cb-line);border-radius:999px;font:16px/1.2 var(--cb-font);color:var(--cb-text);background:#fff;margin:0}
.cb-input:focus{border-color:var(--cb-primary);outline:none}
.cb-send{width:44px;height:44px;border:0;border-radius:50%;background:var(--cb-primary);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex:none}
.cb-send:hover{background:var(--cb-primary-hover)}
.cb-send svg{width:20px;height:20px;display:block}
.cb-note{margin:.4rem .3rem 0!important;font-size:11.5px;line-height:1.35;color:var(--cb-muted)}
.cb-note a{color:var(--cb-muted);text-decoration:underline}
@media (max-width:520px){
  .cb-root{right:14px;bottom:14px}
  .cb-launcher{width:56px;height:56px}
  .cb-bubble{height:30px;margin-top:-15px;padding:0 .7rem;font-size:13px;right:calc(100% + 8px)}
  .cb-open{left:0;right:0;bottom:0;top:0}
  .cb-open .cb-launcher{display:none}
  .cb-panel{position:fixed;left:0;right:0;bottom:0;top:auto;width:100%;max-width:none;height:88vh;height:88dvh;border-radius:18px 18px 0 0;border-left:0;border-right:0;border-bottom:0}
  .cb-open::before{content:"";position:fixed;inset:0;background:rgba(15,23,42,.35)}
  .cb-foot{padding-bottom:calc(.5rem + env(safe-area-inset-bottom))}
}
@media (prefers-reduced-motion:reduce){.cb-panel,.cb-typing span,.cb-robot,.cb-robot *,.cb-bubble{animation:none!important}.cb-launcher{transition:none}.cb-r-halo{opacity:0}.cb-r-light{opacity:1}}
@media print{.cb-root{display:none!important}}
