/* Kaswa-Fenster (Website + Portal). Papier und Tinte wie base.css, Linien statt Karten-Raster, keine Schatten/Blasen-Glanz. CSP: nur Klassen. */
.kw-ki{display:inline-block;padding:2px 5px 1px;border:1px solid var(--br);color:var(--gd);font:600 10px/1.3 var(--f-t);letter-spacing:.16em;vertical-align:middle}
.kw-staff{font:600 11px/1 var(--f-t);letter-spacing:.14em;text-transform:uppercase;color:var(--gr)}

/* Auslöser unten rechts */
.kw-float{position:fixed;right:16px;bottom:16px;z-index:60}
.kw-open{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:12px 18px;border:0;background:var(--gr);color:var(--pa);font:600 15px/1 var(--f-t);cursor:pointer;border-radius:0}
.kw-open:hover{background:#143426}
.kw-float:not([data-ready]) .kw-open,.kw-float noscript{display:none}   /* ohne JS kein toter Knopf; Hinweis nur auf /kaswa */
.kw-open .kw-ki{border-color:var(--go);color:var(--go)}

/* Fenster */
.kw-panel{display:flex;flex-direction:column;background:var(--pa2);border:1px solid var(--ink);color:var(--ink)}
.kw-float .kw-panel{position:fixed;right:16px;bottom:16px;width:min(400px,calc(100vw - 32px));height:min(620px,calc(100svh - 32px))}
.kw-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--ink)}
.kw-title{margin:0;display:flex;align-items:center;gap:10px}
.kw-title b{font:500 24px/1 var(--f-d);letter-spacing:.04em}
.kw-close{width:44px;height:44px;border:0;background:transparent;color:var(--ink);font:400 28px/1 var(--f-t);cursor:pointer}
.kw-log{flex:1;min-height:0;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:14px;overscroll-behavior:contain}
.kw-m{max-width:92%;overflow-wrap:anywhere}
.kw-m p{margin:0}
.kw-who{margin-bottom:4px}
.kw-body{white-space:pre-line;font:400 15px/1.55 var(--f-t);color:var(--ink)}
.kw-m-user .kw-body{color:var(--pa)}
/* Kontrast fest im Fenster: site-home.css setzt .note{opacity:.75} seitenweit → hier aufheben (Ink 17:1, Soft 8,3:1 auf --pa2) */
.kw .note{opacity:1;color:var(--soft);font-size:12.5px;line-height:1.45;letter-spacing:0}
.kw-m-kaswa,.kw-m-staff{padding-left:12px;border-left:3px solid var(--br)}
.kw-m-staff{border-left-color:var(--gr)}
.kw-m-user{align-self:flex-end;padding:9px 12px;background:var(--ink);color:var(--pa)}
.kw-m-user .kw-body{font-size:14.5px}
.kw-links{margin-top:6px!important;display:flex;gap:14px;flex-wrap:wrap}

/* Paketkarten: Linie statt Karte */
.kw-cards{margin-top:10px;display:grid;gap:0}
.kw-card{display:grid;gap:2px;padding:10px 0;border-top:1px solid var(--ru)}
.kw-card:last-child{border-bottom:1px solid var(--ru)}
.kw-card-t{font:500 20px/1.15 var(--f-d)}
.kw-card-m{font:400 13px/1.4 var(--f-t);color:var(--soft)}
.kw-card-p{font:400 20px/1.2 var(--f-a)}
.kw-card .ln-a{justify-self:start;margin-top:4px}

/* Auswahl und Eingabe */
.kw-choices{display:flex;flex-wrap:wrap;gap:8px;padding:0 14px}
.kw-choices:not(:empty){padding-top:8px;padding-bottom:8px;border-top:1px solid var(--ru)}
.kw-choice{min-height:44px;padding:9px 14px;border:1px solid var(--ink);background:transparent;color:var(--ink);font:600 14px/1.2 var(--f-t);cursor:pointer;border-radius:0;text-align:left}
.kw-choice:hover{background:var(--st)}
.kw-form{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--ink)}
.kw-form input{flex:1;min-width:0;min-height:46px;padding:10px 12px;border:1px solid #BDB4A2;border-bottom:2px solid var(--ink);border-radius:0;background:var(--pa);color:var(--ink);font:400 16px/1.4 var(--f-t)}
.kw-form input::placeholder{color:var(--wg);opacity:1}
.kw-form input:focus{outline:3px solid rgba(27,67,50,.35);outline-offset:0;border-bottom-color:var(--gr)}
.kw-send{padding:12px 16px}
.kw-send[disabled]{opacity:.5;cursor:default}
.kw-note{padding:0 14px 12px;margin:0}
.kw-busy .kw-log::after{content:'…';font:400 20px/1 var(--f-a);color:var(--soft)}

/* Eigene Seite /kaswa */
.kw-pagewrap{display:grid;gap:clamp(24px,4vw,56px);grid-template-columns:minmax(0,1fr);max-width:1180px;margin:0 auto;padding:clamp(28px,6vw,72px) var(--pad)}
.kw-kick{margin:0 0 10px;font:600 11px/1 var(--f-t);letter-spacing:.22em;text-transform:uppercase;color:var(--gd)}
.kw-intro h1{margin:0 0 14px;font:500 clamp(38px,5vw,64px)/.98 var(--f-d);letter-spacing:-.015em}
.kw-intro p{max-width:44ch;color:var(--soft)}
.kw-page .kw-panel{height:min(680px,calc(100svh - 120px));min-height:460px}
@media (min-width:900px){.kw-pagewrap{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}}

.kw-s{display:none}
/* Handy: Knopf sitzt in der Kopfzeile (kaswa.js verschiebt ihn), kurz „Kaswa KI“, Linie statt Fläche */
.kw-open.kw-open-hd{min-height:44px;padding:8px 10px;gap:6px;background:transparent;color:var(--ink);border:1px solid var(--ink);font:600 12px/1 var(--f-t);letter-spacing:.12em;text-transform:uppercase}
.kw-open.kw-open-hd:hover{background:var(--st)}
.kw-open.kw-open-hd .kw-l{display:none!important}   /* Kopf-CSS setzt span-Regeln */
.kw-open.kw-open-hd .kw-s{display:inline!important}
.kw-open-hd .kw-ki{border-color:var(--br);color:var(--gd)}
.hd-t2.has-kwb{grid-template-columns:minmax(0,1fr) auto auto;gap:12px}
.pt-hd.has-kwb .kw-open-hd{order:1}
/* Platz am Seitenende, damit der Knopf nichts dauerhaft verdeckt (Fuß, letzte Zeile im Portal) */
.has-kw .ft::after{content:'';display:block;height:56px}
.has-kw .pt-main{padding-bottom:120px}
@media (max-width:640px){
  .kw-float{right:0;bottom:0}
  .kw-float .kw-open{margin:0 10px 10px 0;min-height:44px;padding:10px 12px;font-size:14px;gap:8px}
  .kw-float .kw-panel{inset:0;width:100vw;height:100svh;border:0}
  .kw-m{max-width:96%}
}
@media (prefers-reduced-motion:no-preference){
  .kw-m{animation:kwin .28s var(--ease)}
  @keyframes kwin{from{transform:translateY(6px)}to{transform:none}}   /* ohne Einblenden: Text nie blass */
}
@media print{.kw{display:none!important}}
