/* =====================================================================
   Chatbot (Modul „chatbot“) – Chatfenster für alle öffentlichen Seiten.
   Nutzt die Farben und die Eckenrundung der Seite (Admin „Design & Hero“).
   Mobile-first: unter 640px füllt der Chat den Bildschirm, darüber schwebt er unten rechts.
   Logische Eigenschaften (inline/block), damit es auch von rechts nach links stimmt.
   ===================================================================== */

.aschi{--aschi-bottom:0px;--aschi-gap:16px;position:fixed;inset-inline-end:var(--aschi-gap);inset-block-end:calc(var(--aschi-bottom) + var(--aschi-gap) + env(safe-area-inset-bottom,0px));z-index:70;font-family:var(--font-family,'Segoe UI',system-ui,-apple-system,sans-serif);color:var(--home-text,#f7fbff);line-height:1.45}
.aschi *{box-sizing:border-box}
.aschi-panel,.aschi-head{margin:0;padding:0;text-align:start}
.aschi button{font-family:inherit;cursor:pointer}
.aschi [hidden]{display:none !important}

/* ----- Startknopf ----- */
.aschi-fab{position:relative;display:grid;place-items:center;inline-size:60px;block-size:60px;border-radius:50%;border:0;background:linear-gradient(135deg,var(--brand-accent,#ff8c00),var(--pink,#ff4d8d));color:#1a0f08;box-shadow:0 16px 34px -10px rgba(255,90,120,.65),0 2px 6px rgba(0,0,0,.35);transition:transform .18s ease,box-shadow .18s ease}
.aschi-fab svg{inline-size:28px;block-size:28px}
.aschi-fab:hover{transform:translateY(-2px) scale(1.04)}
.aschi-fab:focus-visible,.aschi button:focus-visible,.aschi textarea:focus-visible,.aschi a:focus-visible{outline:3px solid #fff;outline-offset:2px}
.aschi-fab-dot{position:absolute;inset-block-start:4px;inset-inline-end:4px;inline-size:13px;block-size:13px;border-radius:50%;background:#4ade80;border:2.5px solid var(--home-night,var(--home-deep,#031a2e))}
.aschi-fab::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--brand-accent,#ff8c00);opacity:0;animation:aschi-ring 2.8s ease-out infinite}
.aschi.is-open .aschi-fab::after{animation:none}
@keyframes aschi-ring{0%{transform:scale(1);opacity:.55}70%,100%{transform:scale(1.55);opacity:0}}

/* ----- kleine Sprechblase neben dem Startknopf ----- */
.aschi-teaser{position:absolute;inset-inline-end:72px;inset-block-end:9px;display:flex;align-items:center;gap:2px;inline-size:max-content;max-inline-size:min(250px,calc(100vw - 110px));padding-block:4px;padding-inline:6px 4px;border-radius:16px;background:var(--home-panel,#082b4a);border:1px solid var(--home-line-strong,rgba(151,198,235,.32));box-shadow:0 14px 30px -12px rgba(0,0,0,.7);animation:aschi-in .35s ease both}
.aschi-teaser-text{background:none;border:0;color:inherit;font-weight:800;font-size:calc(13.5px * var(--font-scale,1));padding:8px;text-align:start}
.aschi-teaser-x{background:none;border:0;color:var(--home-muted,#b9cfe0);font-size:18px;line-height:1;inline-size:28px;block-size:28px;border-radius:50%}
.aschi-teaser-x:hover{background:rgba(255,255,255,.08);color:#fff}

/* ----- Fenster ----- */
.aschi-panel{position:fixed;inset:0;z-index:80;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--home-night-2,#05233d),var(--home-night,var(--home-deep,#031a2e)));animation:aschi-in .22s ease both;block-size:100vh;block-size:100dvh}
@keyframes aschi-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

.aschi-head{display:flex;align-items:center;gap:10px;padding-block:12px;padding-inline:14px 8px;padding-block-start:calc(12px + env(safe-area-inset-top,0px));background:linear-gradient(120deg,rgba(255,140,0,.20),rgba(255,77,141,.16) 60%,transparent);border-block-end:1px solid var(--home-line,rgba(151,198,235,.18));flex:none}
.aschi-avatar{display:grid;place-items:center;flex:none;inline-size:40px;block-size:40px;border-radius:13px;background:linear-gradient(135deg,var(--brand-accent,#ff8c00),var(--pink,#ff4d8d));color:#1a0f08;font-weight:900;font-size:19px;box-shadow:0 8px 18px -8px rgba(255,90,120,.8)}
.aschi-title{display:grid;min-inline-size:0;flex:1}
.aschi-title strong{font-size:calc(16px * var(--font-scale,1));font-weight:900;line-height:1.2}
.aschi-title small{color:var(--home-muted,#b9cfe0);font-size:calc(11.5px * var(--font-scale,1));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aschi-title small::before{content:"";display:inline-block;inline-size:7px;block-size:7px;border-radius:50%;background:#4ade80;margin-inline-end:6px;vertical-align:1px}
.aschi-icon{display:grid;place-items:center;flex:none;inline-size:40px;block-size:40px;border-radius:12px;border:0;background:none;color:var(--home-muted,#b9cfe0)}
.aschi-icon svg{inline-size:20px;block-size:20px}
.aschi-icon:hover{background:rgba(255,255,255,.08);color:#fff}

.aschi-progress{display:grid;gap:6px;padding-block:9px;padding-inline:16px;border-block-end:1px solid var(--home-line,rgba(151,198,235,.18));flex:none}
.aschi-progress span{font-size:calc(11.5px * var(--font-scale,1));font-weight:800;letter-spacing:.04em;color:var(--brand-accent,#ff8c00)}
.aschi-progress i{display:block;block-size:6px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden}
.aschi-progress b{display:block;block-size:100%;border-radius:99px;background:linear-gradient(90deg,var(--brand-accent,#ff8c00),var(--pink,#ff4d8d));transition:inline-size .4s ease}

.aschi-log{flex:1;min-block-size:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 14px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;scrollbar-color:rgba(151,198,235,.3) transparent}
.aschi-log:focus{outline:none}
.aschi-msg{display:grid;gap:8px;max-inline-size:88%;justify-items:start;animation:aschi-in .2s ease both}
.aschi-msg.is-user{align-self:flex-end;justify-items:end}
.aschi-bubble{padding:10px 14px;border-radius:18px;font-size:calc(14.5px * var(--font-scale,1));overflow-wrap:anywhere;background:rgba(255,255,255,.07);border:1px solid var(--home-line,rgba(151,198,235,.18));border-end-start-radius:6px}
.aschi-msg.is-user .aschi-bubble{background:linear-gradient(135deg,var(--brand-accent,#ff8c00),var(--pink,#ff4d8d));color:#1a0f08;font-weight:600;border:0;border-end-start-radius:18px;border-end-end-radius:6px;white-space:pre-wrap}
.aschi-bubble p{margin:0}
.aschi-bubble p + p,.aschi-bubble p + ul,.aschi-bubble ul + p{margin-block-start:7px}
.aschi-bubble ul{margin:0;padding-inline-start:18px}
.aschi-bubble li + li{margin-block-start:3px}
.aschi-info{align-self:center;margin:0;padding:5px 12px;border-radius:99px;background:rgba(74,222,128,.12);border:1px solid rgba(74,222,128,.3);color:#b9f5cf;font-size:calc(11.5px * var(--font-scale,1));text-align:center;max-inline-size:94%}

.aschi-typing .aschi-bubble{display:flex;gap:5px;padding:14px 16px}
.aschi-typing i{inline-size:7px;block-size:7px;border-radius:50%;background:var(--home-muted,#b9cfe0);animation:aschi-dot 1.1s ease-in-out infinite}
.aschi-typing i:nth-child(2){animation-delay:.15s}
.aschi-typing i:nth-child(3){animation-delay:.3s}
@keyframes aschi-dot{0%,60%,100%{transform:none;opacity:.45}30%{transform:translateY(-5px);opacity:1}}

/* ----- Antwortknöpfe ----- */
.aschi-sum{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:8px 0}
.aschi-sum dt{color:var(--home-muted,#b9cfe0);font-size:calc(12.5px * var(--font-scale,1))}
.aschi-sum dd{margin:0;font-weight:800;text-align:end;overflow-wrap:anywhere}
.aschi-backrow{display:flex;margin-block-start:2px}
.aschi-backbtn{padding:6px 12px;border-radius:999px;border:1px solid var(--home-line,rgba(151,198,235,.3));background:none;color:var(--home-muted,#b9cfe0);font-weight:700;font-size:calc(12.5px * var(--font-scale,1));min-block-size:36px}
.aschi-backbtn:hover{color:#fff;background:rgba(255,255,255,.08)}
.aschi-back-head[hidden]{display:none}
.aschi-chips{display:flex;flex-wrap:wrap;gap:8px;animation:aschi-in .25s ease both}
.aschi-chip{padding:9px 15px;border-radius:999px;border:1.5px solid rgba(255,140,0,.55);background:rgba(255,140,0,.1);color:#fff;font-weight:800;font-size:calc(13.5px * var(--font-scale,1));min-block-size:40px;transition:background .15s,transform .12s}
.aschi-chip:hover{background:rgba(255,140,0,.24);transform:translateY(-1px)}
.aschi-chip.is-main{background:linear-gradient(135deg,var(--brand-accent,#ff8c00),var(--pink,#ff4d8d));color:#1a0f08;border-color:transparent}
.aschi.is-busy .aschi-chip,.aschi.is-busy .aschi-pick{opacity:.5;pointer-events:none}

/* ----- Karten: Preis und Postleitzahl ----- */
.aschi-card{inline-size:min(100%,330px);padding:14px;border-radius:var(--radius-m,18px);background:linear-gradient(160deg,var(--home-card,#0e416a),var(--home-panel,#082b4a));border:1px solid var(--home-line-strong,rgba(151,198,235,.32));box-shadow:0 16px 30px -20px rgba(0,0,0,.9)}
.aschi-card-kicker{display:block;font-size:calc(10.5px * var(--font-scale,1));font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-accent,#ff8c00);margin-block-end:4px}
.aschi-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.aschi-card-label{font-size:calc(15px * var(--font-scale,1));font-weight:900}
.aschi-card-total{font-size:calc(24px * var(--font-scale,1));font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap;background:linear-gradient(90deg,#ffb35c,var(--brand-accent,#ff8c00) 45%,var(--pink,#ff4d8d));-webkit-background-clip:text;background-clip:text;color:transparent}
.aschi-card-plus{display:block;text-align:end;font-size:calc(11.5px * var(--font-scale,1));font-weight:700;color:#ffd9a8;margin-block-start:2px}
.aschi-card-lines{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:5px}
.aschi-card-lines li{display:flex;justify-content:space-between;gap:10px;font-size:calc(13px * var(--font-scale,1));color:var(--home-muted,#b9cfe0)}
.aschi-card-lines li span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap;color:#fff}
.aschi-code{font-style:normal;font-weight:900;color:#fff;padding:1px 7px;border-radius:7px;background:rgba(255,255,255,.1)}
.aschi-card-note{margin:10px 0 0;font-size:calc(11px * var(--font-scale,1));color:var(--home-muted,#b9cfe0);line-height:1.4}
.aschi-cta{display:block;inline-size:100%;margin-block-start:12px;padding:12px 16px;border:0;border-radius:999px;background:linear-gradient(135deg,var(--brand-accent,#ff8c00),var(--pink,#ff4d8d));color:#1a0f08;font-weight:900;font-size:calc(14px * var(--font-scale,1));box-shadow:0 12px 24px -12px rgba(255,90,120,.7)}
a.aschi-cta{text-align:center;text-decoration:none;box-sizing:border-box}
.aschi-cta.is-ghost{background:none;color:#fff;border:1.5px solid rgba(255,140,0,.55);box-shadow:none}
.aschi-cta:hover{filter:brightness(1.06)}
.aschi-card-plz dl{margin:8px 0 0;display:grid;gap:2px}
.aschi-card-plz dt{font-size:calc(10.5px * var(--font-scale,1));font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--home-muted,#b9cfe0);margin-block-start:7px}
.aschi-card-plz dd{margin:0;font-size:calc(13.5px * var(--font-scale,1));font-weight:700;display:flex;flex-wrap:wrap;gap:6px}
.aschi-pick{padding:7px 12px;border-radius:999px;border:1.5px solid rgba(255,140,0,.55);background:rgba(255,140,0,.1);color:#fff;font-weight:800;font-size:calc(12.5px * var(--font-scale,1))}
.aschi-pick:hover{background:rgba(255,140,0,.24)}

/* ----- Wahl bei den Gesundheitsfragen ----- */
.aschi-gate{padding:14px;border-radius:var(--radius-m,18px);background:rgba(255,255,255,.05);border:1px dashed var(--home-line-strong,rgba(151,198,235,.32));display:grid;gap:9px}
.aschi-gate p{margin:0;font-size:calc(13.5px * var(--font-scale,1))}
.aschi-gate .aschi-gate-note{font-size:calc(11.5px * var(--font-scale,1));color:var(--home-muted,#b9cfe0)}
.aschi-gate a,.aschi-notice a,.aschi-info a{color:inherit;text-decoration:underline}
.aschi-bubble a{color:#ffb35c;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.aschi-bubble a.aschi-soc{display:inline-flex;align-items:center;gap:7px;margin:3px 4px 3px 0;padding:7px 13px;border-radius:999px;background:linear-gradient(135deg,var(--brand-accent,#ff8c00),var(--pink,#ff4d8d));color:#1a0f08;font-weight:800;text-decoration:none;vertical-align:middle;min-block-size:36px}
.aschi-soc svg{inline-size:17px;block-size:17px;flex:none}
.aschi-soc:hover{filter:brightness(1.07)}

/* ----- Eingabe ----- */
.aschi-form{display:flex;align-items:flex-end;gap:8px;padding:10px 12px 6px;border-block-start:1px solid var(--home-line,rgba(151,198,235,.18));flex:none}
.aschi-form textarea{flex:1;min-inline-size:0;resize:none;max-block-size:120px;padding:11px 14px;border-radius:20px;border:1.5px solid var(--home-line-strong,rgba(151,198,235,.32));background:rgba(255,255,255,.06);color:#fff;font:inherit;font-size:16px;line-height:1.35}
.aschi-form textarea::placeholder{color:var(--home-muted,#b9cfe0)}
.aschi-form textarea:focus{outline:none;border-color:var(--brand-accent,#ff8c00);background:rgba(255,255,255,.09)}
.aschi-send{display:grid;place-items:center;flex:none;inline-size:46px;block-size:46px;border-radius:50%;border:0;background:linear-gradient(135deg,var(--brand-accent,#ff8c00),var(--pink,#ff4d8d));color:#1a0f08}
.aschi-send svg{inline-size:20px;block-size:20px}
.aschi-send:disabled{opacity:.5;cursor:progress}
.aschi-notice{margin:0;padding:2px 14px 10px;padding-block-end:calc(10px + env(safe-area-inset-bottom,0px));font-size:calc(10.5px * var(--font-scale,1));color:var(--home-muted,#b9cfe0);text-align:center;flex:none}

/* Handy: Seite hinter dem offenen Chat nicht mitscrollen, Startknopf verschwindet hinter dem Fenster */
@media (max-width:639px){
  html.aschi-lock,html.aschi-lock body{overflow:hidden}
}

/* ----- ab Tablet: schwebendes Fenster unten rechts ----- */
@media (min-width:640px){
  .aschi{--aschi-gap:22px}
  .aschi-panel{inset:auto;inset-inline-end:var(--aschi-gap);inset-block-end:calc(var(--aschi-bottom) + var(--aschi-gap) + 72px);inline-size:400px;block-size:min(660px,calc(100vh - var(--aschi-bottom) - 190px));block-size:min(660px,calc(100dvh - var(--aschi-bottom) - 190px));border-radius:var(--radius-l,26px);border:1px solid var(--home-line-strong,rgba(151,198,235,.32));box-shadow:0 34px 70px -24px rgba(0,0,0,.85),0 0 0 1px rgba(0,0,0,.2);overflow:hidden}
  .aschi-head{padding-block-start:12px}
  .aschi-notice{padding-block-end:10px}
}

@media (prefers-reduced-motion:reduce){
  .aschi-fab::after,.aschi-typing i,.aschi-panel,.aschi-msg,.aschi-chips,.aschi-teaser{animation:none}
  .aschi-fab,.aschi-chip,.aschi-progress b{transition:none}
}
@media print{.aschi{display:none}}

/* Angaben-Karte, Abschluss-Knopf, Formular ansehen */
.aschi-card-entered .aschi-card-kicker{text-transform:none}
.aschi-card-done{padding-block:12px}
.aschi-card-done .aschi-card-note{margin:0}
.aschi-peek-row{display:none}
.aschi-peek-head{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;border:1.5px solid rgba(255,140,0,.55);background:none;color:#fff;font-weight:800;font-size:calc(12.5px * var(--font-scale,1))}
.aschi-peek-head svg{inline-size:16px;block-size:16px;flex:none}
.aschi-peek-back{display:none}
@media (max-width:639px){
  .aschi-peek-row:not([hidden]){display:flex;justify-content:flex-end;padding:8px 14px 0}
  .aschi.is-peek:not(.is-open) .aschi-peek-back{display:block;position:absolute;inset-inline-end:72px;inset-block-end:12px;padding:10px 14px;border-radius:999px;border:0;background:linear-gradient(135deg,var(--brand-accent,#ff8c00),var(--pink,#ff4d8d));color:#1a0f08;font-weight:900;font-size:calc(13px * var(--font-scale,1));white-space:nowrap;box-shadow:0 12px 24px -12px rgba(255,90,120,.7)}
}
