/* KI-Assistent unten rechts (app-soll/views/partials/assistant.php, assets/assistant.js) */
.sa{position:fixed;right:18px;bottom:14px;z-index:65;display:flex;flex-direction:column;align-items:flex-end;pointer-events:none;font-family:var(--font,"Manrope",Arial,sans-serif)}
.sa>*{pointer-events:auto}
body:has(.dc-cart.on) .sa{bottom:96px}

/* Maskottchen */
.sa-bot{position:relative;width:104px;height:100px;padding:0;border:0;background:none;cursor:pointer;transform-origin:50% 90%;animation:sa-float 4.2s ease-in-out infinite;transition:transform .3s cubic-bezier(.2,.7,.2,1),opacity .3s}
.sa-bot img{position:relative;width:100%;height:auto;filter:drop-shadow(0 10px 18px rgb(4 10 28 / .45));transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.sa-bot:hover img,.sa-bot:focus-visible img{transform:scale(1.07) rotate(-3deg)}
.sa-bot.wave img{animation:sa-wave 1.3s ease-in-out}
.sa-bot.hop{animation:sa-hop .7s cubic-bezier(.2,.7,.2,1),sa-float 4.2s ease-in-out .7s infinite}
.sa-ring{position:absolute;left:50%;top:54%;width:70px;height:70px;margin:-35px 0 0 -35px;border-radius:50%;background:rgb(24 104 221 / .35);animation:sa-ping 2.4s cubic-bezier(0,0,.2,1) 3}
.sa.open .sa-bot{opacity:0;transform:scale(.6) translateY(20px);pointer-events:none}
@keyframes sa-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes sa-wave{0%,100%{transform:rotate(0)}15%{transform:rotate(-9deg)}30%{transform:rotate(7deg)}45%{transform:rotate(-7deg)}60%{transform:rotate(5deg)}75%{transform:rotate(-2deg)}}
@keyframes sa-hop{0%{transform:translateY(0) scale(1)}30%{transform:translateY(-16px) scale(1.04,.97)}60%{transform:translateY(0) scale(.98,1.03)}100%{transform:translateY(0)}}
@keyframes sa-ping{0%{transform:scale(.6);opacity:.8}80%,100%{transform:scale(1.7);opacity:0}}

/* Sprechblase */
.sa-bubble{position:relative;max-width:min(250px,calc(100vw - 150px));margin:0 66px -4px 0;padding:11px 32px 11px 14px;border-radius:16px 16px 4px 16px;background:var(--soll-cloud,#f3f6f9);color:var(--soll-navy,#0d2352);box-shadow:0 18px 40px -14px rgb(4 10 28 / .55),0 0 0 1px rgb(13 35 82 / .08);font-size:14px;font-weight:600;line-height:1.35;cursor:pointer;transform-origin:100% 100%;animation:sa-pop .45s cubic-bezier(.2,.9,.3,1.3)}
.sa-bubble::after{content:"";position:absolute;right:-6px;bottom:6px;width:14px;height:14px;background:inherit;clip-path:polygon(0 0,100% 100%,0 100%);transform:rotate(-10deg)}
.sa-bubble.out{animation:sa-out .3s ease-in forwards}
.sa-bubble p{margin:0}
.sa-bubble p .c{display:inline-block;width:2px;height:1em;margin-left:1px;vertical-align:-2px;background:currentColor;animation:sa-caret .8s steps(1) infinite}
.sa-bx{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:11px;color:var(--soll-slate,#56607f);background:none;border:0;cursor:pointer}
.sa-bx:hover{background:rgb(13 35 82 / .08)}
@keyframes sa-pop{0%{opacity:0;transform:scale(.4) translateY(10px)}100%{opacity:1;transform:none}}
@keyframes sa-out{to{opacity:0;transform:scale(.7) translateY(8px)}}
@keyframes sa-caret{50%{opacity:0}}

/* Chatfenster */
.sa-panel{position:absolute;right:0;bottom:0;display:flex;flex-direction:column;width:min(390px,calc(100vw - 24px));height:min(600px,calc(100dvh - 110px));border-radius:22px;overflow:hidden;background:rgb(var(--pop,13 35 82) / .98);color:var(--fg,#eef3f8);border:1px solid var(--line-strong,rgb(147 160 189 / .28));box-shadow:0 40px 90px -25px rgb(var(--shade,0 0 0) / calc(.75 * var(--sa,1)));backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transform-origin:100% 100%;animation:sa-open .35s cubic-bezier(.2,.8,.2,1.1)}
.sa-panel[hidden]{display:none}
@keyframes sa-open{0%{opacity:0;transform:scale(.6) translateY(30px)}100%{opacity:1;transform:none}}
.sa-head{display:flex;align-items:center;gap:10px;padding:12px 10px 12px 14px;background:linear-gradient(135deg,#1868dd,#0d2352);color:#fff}
.sa-head img{width:40px;height:auto;animation:sa-float 4.2s ease-in-out infinite}
.sa-head div{flex:1;min-width:0}
.sa-head b{display:block;font-size:15px;line-height:1.2}
.sa-head small{display:flex;align-items:center;gap:6px;font-size:12px;opacity:.85}
.sa-dot{width:7px;height:7px;border-radius:50%;background:#34d399;box-shadow:0 0 0 3px rgb(52 211 153 / .25)}
.sa-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;background:none;border:0;cursor:pointer;opacity:.85}
.sa-icon:hover{opacity:1;background:rgb(255 255 255 / .12)}
.sa-log{flex:1;overflow-y:auto;padding:16px 14px 8px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.sa-msg{max-width:88%;padding:10px 13px;border-radius:16px;font-size:14.5px;line-height:1.5;word-wrap:break-word;animation:sa-in .3s ease-out}
.sa-msg p{margin:0}.sa-msg p+p,.sa-msg p+ul,.sa-msg ul+p,.sa-msg p+ol,.sa-msg ol+p{margin-top:8px}
.sa-msg ul,.sa-msg ol{margin:0;padding-left:20px}
.sa-msg a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.sa-msg.bot{align-self:flex-start;background:rgb(var(--tint,255 255 255) / .07);border:1px solid var(--line,rgb(147 160 189 / .16));border-bottom-left-radius:5px}
.sa-msg.me{align-self:flex-end;background:var(--accent,#1868dd);color:#fff;border-bottom-right-radius:5px}
.sa-msg.err{align-self:flex-start;background:rgb(251 113 133 / .12);border:1px solid rgb(251 113 133 / .35)}
@keyframes sa-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.sa-typing{display:inline-flex;gap:4px;padding:4px 2px}
.sa-typing i{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.5;animation:sa-dots 1.1s ease-in-out infinite}
.sa-typing i:nth-child(2){animation-delay:.15s}.sa-typing i:nth-child(3){animation-delay:.3s}
@keyframes sa-dots{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}
.sa-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.sa-chip{padding:7px 12px;border-radius:999px;border:1px solid var(--line-strong,rgb(147 160 189 / .28));background:rgb(var(--tint,255 255 255) / .03);color:var(--fg,#eef3f8);font-size:13px;font-weight:600;cursor:pointer;transition:border-color .2s,background .2s}
.sa-chip:hover{border-color:var(--accent-2,#609eff);background:rgb(96 158 255 / .1)}
.sa-form{display:flex;align-items:flex-end;gap:8px;padding:10px 12px 6px;border-top:1px solid var(--line,rgb(147 160 189 / .16))}
.sa-form textarea{flex:1;min-height:42px;max-height:120px;padding:10px 12px;border-radius:14px;border:1px solid var(--line-strong,rgb(147 160 189 / .28));background:rgb(var(--well,4 10 28) / .6);color:var(--fg,#eef3f8);font:inherit;font-size:15px;line-height:1.4;resize:none}
.sa-form textarea:focus{outline:none;border-color:var(--accent-2,#609eff)}
.sa-send{flex:none;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:0;background:var(--accent,#1868dd);color:#fff;cursor:pointer;transition:transform .2s,opacity .2s}
.sa-send:hover{transform:scale(1.06)}
.sa-send:disabled{opacity:.45;cursor:default;transform:none}
.sa-note{margin:0;padding:2px 14px 10px;font-size:11.5px;line-height:1.4;color:var(--muted,#93a0bd)}
.sa-note a{color:inherit;text-decoration:underline}
.sa .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

@media (max-width:600px){
  .sa{right:10px;bottom:10px}
  .sa-bot{width:78px;height:75px}
  .sa-bubble{margin-right:50px;font-size:13.5px}
  .sa-panel{position:fixed;right:8px;left:8px;bottom:8px;width:auto;height:calc(100dvh - 16px);border-radius:18px}
}
@media (prefers-reduced-motion:reduce){
  .sa-bot,.sa-bot.hop,.sa-bot.wave img,.sa-ring,.sa-head img,.sa-bubble,.sa-panel,.sa-msg{animation:none!important}
  .sa-ring{display:none}
}
@media print{.sa{display:none}}
