/* TASK-007 Homepage-Assistent - schwebendes Widget. Layout der Seite bleibt unveraendert (Design-Sperre). */
.lxa { --lxa-blau: #1A2744; --lxa-tief: #111A2E; --lxa-karte: #22325A; --lxa-gold: #C9A04C; --lxa-text: #E9ECF2; --lxa-grau: #A3ABBC;
  position: fixed; right: 20px; bottom: 20px; z-index: 900; font-family: var(--font-body, "Source Sans 3", system-ui, sans-serif); }
.lxa[hidden] { display: none; }
.lxa-knopf { display: flex; align-items: center; gap: 12px; border: 2px solid var(--lxa-gold); background: var(--lxa-blau); color: var(--lxa-text);
  border-radius: 999px; padding: 14px 24px 14px 14px; font-family: inherit; font-size: 18px; font-weight: 700; line-height: 1; cursor: pointer; box-shadow: 0 10px 34px rgba(0,0,0,.45), 0 0 0 4px rgba(201,160,76,.18); }
.lxa-knopf:hover, .lxa-knopf:focus-visible { background: var(--lxa-karte); outline: none; }
.lxa-knopf:focus-visible { box-shadow: 0 0 0 3px rgba(201,160,76,.45); }
.lxa-punkt { width: 40px; height: 40px; border-radius: 50%; display: block; }
.lxa-punkt svg, .lxa-avatar svg { display: block; width: 100%; height: 100%; }
.lxa-fenster { position: absolute; right: 0; bottom: 64px; width: min(380px, calc(100vw - 32px)); max-height: min(560px, calc(100vh - 110px));
  display: flex; flex-direction: column; background: var(--lxa-tief); border: 1px solid rgba(255,255,255,.14);
  border-radius: 18px; box-shadow: 0 18px 50px rgba(0,0,0,.5); overflow: hidden; }
.lxa-fenster[hidden] { display: none; }
.lxa-kopf { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: var(--lxa-blau); }
.lxa-avatar { width: 40px; height: 40px; flex-shrink: 0; border-radius: 50%; display: block; }
.lxa-kopftext { flex: 1; min-width: 0; }
.lxa-knoepfe { display: flex; gap: 2px; flex-shrink: 0; }
.lxa-titel { margin: 0; color: #fff; font: 600 18px/1.2 var(--font-head, Georgia, serif); }
.lxa-unter { margin: 2px 0 0; color: var(--lxa-grau); font-size: 12.5px; line-height: 1.3; }
.lxa-icon { background: none; border: 0; color: var(--lxa-grau); cursor: pointer; padding: 6px; border-radius: 6px; font-size: 18px; line-height: 1; }
.lxa-icon:hover, .lxa-icon:focus-visible { color: #fff; background: rgba(255,255,255,.08); outline: none; }
.lxa-icon[aria-pressed="true"] { color: var(--lxa-gold); }
.lxa-verlauf { flex: 1; overflow-y: auto; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
.lxa-msg { max-width: 88%; padding: 9px 13px; border-radius: 12px; font-size: 15px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.lxa-msg.du { align-self: flex-end; background: var(--lxa-karte); color: var(--lxa-text); border-bottom-right-radius: 4px; }
.lxa-msg.ki { align-self: flex-start; background: var(--lxa-blau); color: var(--lxa-text); border: 1px solid rgba(201,160,76,.35); border-bottom-left-radius: 4px; }
.lxa-msg.ki.lxa-start { max-width: 100%; padding: 0; background: none; border: 0; border-radius: 0; font-size: 16px; line-height: 1.55; }
.lxa-aktion { display: block; align-self: stretch; margin: 4px 0 2px; padding: 11px 18px; border: 1.5px solid var(--lxa-gold); border-radius: 999px; color: var(--lxa-text);
  font-size: 15px; font-weight: 600; text-align: center; text-decoration: none; }
.lxa-aktion:hover, .lxa-aktion:focus-visible { background: rgba(201,160,76,.14); outline: none; }
.lxa-msg.fehler { border-color: rgba(255,255,255,.2); color: var(--lxa-grau); }
.lxa-denkt { display: inline-flex; gap: 4px; }
.lxa-denkt i { width: 6px; height: 6px; border-radius: 50%; background: var(--lxa-gold); animation: lxa-hopp 1.2s infinite ease-in-out; }
.lxa-denkt i:nth-child(2) { animation-delay: .15s; } .lxa-denkt i:nth-child(3) { animation-delay: .3s; }
@keyframes lxa-hopp { 0%, 80%, 100% { opacity: .3; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-4px); } }
/* Audiowelle waehrend der Sprachausgabe */
.lxa-welle { display: flex; align-items: center; justify-content: center; gap: 4px; height: 0; opacity: 0; overflow: hidden; transition: height .25s, opacity .25s; }
.lxa.spricht .lxa-welle { height: 44px; opacity: 1; }
.lxa-welle span { width: 4px; height: 8px; border-radius: 3px; background: linear-gradient(180deg, #E4C47E, var(--lxa-gold)); }
.lxa.spricht .lxa-welle span { animation: lxa-welle 1s infinite ease-in-out; }
.lxa-welle span:nth-child(odd) { animation-duration: .8s !important; }
.lxa-welle span:nth-child(3n) { animation-duration: 1.15s !important; }
.lxa-welle span:nth-child(2) { animation-delay: -.2s; } .lxa-welle span:nth-child(3) { animation-delay: -.45s; } .lxa-welle span:nth-child(4) { animation-delay: -.1s; }
.lxa-welle span:nth-child(5) { animation-delay: -.6s; } .lxa-welle span:nth-child(6) { animation-delay: -.3s; } .lxa-welle span:nth-child(7) { animation-delay: -.75s; }
.lxa-welle span:nth-child(8) { animation-delay: -.5s; } .lxa-welle span:nth-child(9) { animation-delay: -.15s; } .lxa-welle span:nth-child(10) { animation-delay: -.65s; }
.lxa-welle span:nth-child(11) { animation-delay: -.35s; } .lxa-welle span:nth-child(12) { animation-delay: -.85s; }
@keyframes lxa-welle { 0%, 100% { height: 6px; opacity: .55; } 50% { height: 34px; opacity: 1; } }
.lxa.spricht .lxa-punkt { animation: lxa-puls 1.4s infinite; }
@keyframes lxa-puls { 0% { box-shadow: 0 0 0 0 rgba(201,160,76,.6); } 100% { box-shadow: 0 0 0 12px rgba(201,160,76,0); } }
.lxa-form { display: flex; align-items: center; gap: 6px; margin: 4px 14px 8px; padding: 6px 6px 6px 14px; border: 1px solid rgba(255,255,255,.2); border-radius: 12px; background: var(--lxa-blau); }
.lxa-form:focus-within { border-color: var(--lxa-gold); }
.lxa-form input { flex: 1; min-width: 0; background: none; color: var(--lxa-text); border: 0; padding: 8px 0; font-family: inherit; font-size: 15px; line-height: 1.3; }
.lxa-form input:focus { outline: none; }
.lxa-form button { background: var(--lxa-gold); color: var(--lxa-blau); border: 0; border-radius: 8px; padding: 0 14px; font-family: inherit; font-size: 15px; font-weight: 700; cursor: pointer; }
.lxa-form .lxa-senden { display: grid; place-items: center; width: 36px; height: 36px; flex-shrink: 0; padding: 0; border-radius: 50%; }
.lxa-form:has(input:placeholder-shown) .lxa-senden { background: rgba(255,255,255,.12); color: var(--lxa-grau); }   /* leer: grau, mit Text: Gold */
.lxa-form button:disabled { opacity: .5; cursor: default; }
.lxa-form .lxa-mikro { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; flex-shrink: 0; padding: 0; border-radius: 50%; background: var(--lxa-tief); color: var(--lxa-gold); border: 1px solid rgba(201,160,76,.55); }
.lxa-form .lxa-mikro[hidden] { display: none; }
.lxa-form .lxa-mikro:hover, .lxa-form .lxa-mikro:focus-visible { border-color: var(--lxa-gold); outline: none; }
.lxa.hoert .lxa-mikro { background: var(--lxa-gold); color: var(--lxa-blau); animation: lxa-hoert 1.2s infinite; }
@keyframes lxa-hoert { 0% { box-shadow: 0 0 0 0 rgba(201,160,76,.6); } 100% { box-shadow: 0 0 0 10px rgba(201,160,76,0); } }
.lxa-fuss { margin: 0; padding: 0 16px 12px; background: none; color: var(--lxa-grau); font-size: 11px; line-height: 1.45; text-align: center; }
.lxa-fuss a { color: var(--lxa-grau); }
@media (max-width: 520px) { .lxa { right: 16px; bottom: 16px; } .lxa-knopf .lxa-text { display: none; } .lxa-knopf { padding: 10px; } }
@media (prefers-reduced-motion: reduce) {
  .lxa.spricht .lxa-welle span, .lxa-denkt i, .lxa.spricht .lxa-punkt, .lxa.hoert .lxa-mikro { animation: none; }
  .lxa.spricht .lxa-welle span { height: 18px; }
}
