/* Digitaler Assistent: Knopf und Chatfenster. Werte nur aus den Design-Tokens. */

/* Knopf unten rechts – immer mit Text (Designsystem 5.6.9) */
.as-launch{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));z-index:var(--rm-z-raised);
  display:inline-flex;align-items:center;gap:var(--rm-space-2);min-height:52px;padding:0 var(--rm-space-5) 0 var(--rm-space-4);border-radius:var(--rm-radius-full);
  background:var(--rm-bg-inverse);color:var(--rm-text-on-inverse);font:700 var(--rm-type-label)/1.2 var(--rm-font-sans);box-shadow:var(--rm-shadow-e3);
  transition:transform var(--rm-duration-fast) var(--rm-ease-standard)}
.as-launch:hover{transform:translateY(-2px)}
.as-launch:active{transform:scale(.98)}
.as-launch__long{display:none}
@media (min-width:700px){.as-launch__long{display:inline}}
/* Auf der Produktseite sitzt mobil die Kaufleiste am unteren Rand: Knopf darüber setzen */
body:has(.sh-buybar:not([hidden])) .as-launch{bottom:calc(84px + env(safe-area-inset-bottom))}
@media (min-width:960px){body:has(.sh-buybar:not([hidden])) .as-launch{bottom:16px}}
body:has(dialog[open]) .as-launch{visibility:hidden}
@media (prefers-reduced-motion:reduce){.as-launch{transition:none}.as-launch:hover{transform:none}}
@media print{.as-launch{display:none}}
/* In der Kasse soll auf dem Handy nichts über dem Bestell-Knopf schweben */
@media (max-width:959px){body:has([data-checkout]) .as-launch{display:none}}

/* Fenster: mobil als Blatt von unten, am Desktop rechts unten angedockt */
dialog.as-dialog{width:min(440px,calc(100vw - 32px));height:min(680px,calc(100dvh - 32px));overflow:hidden;padding:0}
@media (min-width:600px){dialog.as-dialog{margin:auto 16px 16px auto}}
@media (max-width:599px){dialog.as-dialog{width:100vw;height:min(92dvh,760px)}}
.as-in{display:grid;grid-template-rows:auto 1fr auto;height:100%;min-height:0}
.as-head{display:flex;gap:var(--rm-space-4);align-items:flex-start;justify-content:space-between;padding:var(--rm-space-4) var(--rm-space-3) var(--rm-space-3) var(--rm-space-5);border-bottom:1px solid var(--rm-border-subtle)}
.as-head .rm-caption{display:flex;gap:var(--rm-space-2);align-items:center;margin-top:var(--rm-space-1)}
.as-head .rm-badge{min-height:22px;padding:0 8px;font-family:var(--rm-font-mono)}

.as-log{overflow-y:auto;overscroll-behavior:contain;padding:var(--rm-space-5);display:flex;flex-direction:column;gap:var(--rm-space-4);background:var(--rm-bg-canvas);min-height:0}
.as-log:focus-visible{outline-offset:-3px}
.as-msg{display:grid;gap:var(--rm-space-1);max-width:88%}
.as-msg--user{align-self:flex-end}
.as-msg--assistant{align-self:flex-start}
.as-tag{font:500 .75rem/1.3 var(--rm-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--rm-text-muted)}
.as-text{padding:var(--rm-space-3) var(--rm-space-4);border-radius:var(--rm-radius-lg);font-size:var(--rm-type-body-sm);line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.as-msg--assistant .as-text{background:var(--rm-bg-surface);border:1px solid var(--rm-border-subtle);border-top-left-radius:var(--rm-radius-sm)}
.as-msg--user .as-text{background:var(--rm-bg-brand-subtle);border-top-right-radius:var(--rm-radius-sm)}
.as-msg--note .as-text{background:var(--rm-bg-accent-subtle);border-color:transparent}
.as-inline{justify-self:start;margin-top:var(--rm-space-2);min-height:44px;font-size:var(--rm-type-body-sm)}
/* Drei ruhige Punkte, solange die Antwort entsteht */
.as-text.is-typing{min-width:64px;min-height:48px;display:flex;align-items:center}
.as-text.is-typing::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--rm-text-muted);box-shadow:12px 0 var(--rm-text-muted),24px 0 var(--rm-text-muted);animation:as-wait 1.2s var(--rm-ease-standard) infinite alternate}
@keyframes as-wait{from{opacity:.25}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.as-text.is-typing::before{animation:none}}

.as-foot{display:grid;gap:var(--rm-space-3);padding:var(--rm-space-3) var(--rm-space-5) calc(var(--rm-space-4) + env(safe-area-inset-bottom));border-top:1px solid var(--rm-border-subtle);background:var(--rm-bg-raised)}
.as-suggest{display:flex;gap:var(--rm-space-2);overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--rm-space-5) * -1);padding-inline:var(--rm-space-5)}
.as-suggest::-webkit-scrollbar{display:none}
.as-suggest:empty{display:none}
.as-chip{flex:none;min-height:44px;padding:0 var(--rm-space-4);border-radius:var(--rm-radius-full);border:2px solid var(--rm-border-default);background:var(--rm-bg-surface);font-size:var(--rm-type-body-sm);font-weight:500;white-space:nowrap}
.as-chip:hover{border-color:var(--rm-action-secondary-border);background:var(--rm-action-secondary-bg-hover)}
.as-form{display:grid;grid-template-columns:1fr auto;gap:var(--rm-space-2);align-items:end}
.as-form textarea.rm-input{min-height:var(--rm-input-h);height:var(--rm-input-h);max-height:132px;resize:none;padding-block:13px;line-height:1.4}
.as-form .rm-btn{min-height:var(--rm-input-h)}
.as-meta .rm-btn{width:100%;min-height:44px;font-size:var(--rm-type-body-sm);padding-inline:var(--rm-space-4)}
.as-reset{align-self:center;min-height:44px;padding:0 var(--rm-space-3);color:var(--rm-text-link);font-size:var(--rm-type-caption);font-weight:700;text-decoration:underline;text-underline-offset:.2em}
.as-foot .rm-caption{font-size:.8125rem}

.as-human{padding:var(--rm-space-6) var(--rm-space-5);display:grid;gap:var(--rm-space-5);align-content:start;overflow-y:auto;grid-row:2/4}
.as-contact{display:grid;gap:var(--rm-space-4)}
.as-contact>div{display:flex;gap:var(--rm-space-4);align-items:flex-start;padding:var(--rm-space-4);border-radius:var(--rm-radius-lg);background:var(--rm-bg-surface);border:1px solid var(--rm-border-subtle)}
.as-contact .rm-icon{color:var(--rm-action-secondary-text);margin-top:2px}
.as-contact dd{display:grid;gap:2px}
.as-contact a{font-size:var(--rm-type-body);min-height:32px;display:inline-flex;align-items:center}
.as-contact small{font-size:var(--rm-type-caption);color:var(--rm-text-muted)}
