/* Visual layer only. The original KÜNI DOM IDs, runtime and API contract stay intact. */
.kueni-contact.kd {
 max-width: 800px;
 margin: 0;
 background: #F7FAFA;
 border: 1px solid #C8D9DC;
 border-radius: 18px;
 color: #0C1C22;
 overflow: hidden;
}
.kueni-contact .kd__head {
 display: grid;
 grid-template-columns: 56px minmax(0,1fr) auto;
 align-items: center;
 gap: 10px 13px;
 padding: 22px 28px;
 background: #F7FAFA;
 color: #0C1C22;
 border-bottom: 1px solid #DDE7E8;
}
.kueni-contact .kd__avatar {
 width: 56px;
 height: 56px;
 border: 0;
 border-radius: 0;
 background: none;
 color: #006277;
}
.kueni-contact .kd__avatar::after { display: none; }
.kueni-contact .kd__avatar img { display: block; width: 100%; height: 100%; object-fit: contain; }
.kueni-contact .kd__head .kd__id b { font-size: 21px; background: none; padding: 0; margin: 0; align-self: flex-start; }
.kueni-contact .kd__id .ku { background: none; box-shadow: none; text-shadow: none; padding: 0; margin: 0; color: #006277; align-self: flex-start; }
.kueni-contact .kd__id > span { color: #465E65; font-size: 14px; margin-top: 4px; white-space: normal; overflow: visible; }
.kueni-contact .kd__badge {
 margin: 0;
 padding: 7px 10px;
 border: 1px solid #D2E0E2;
 border-radius: 999px;
 background: #EAF0F1;
 color: #465E65;
 font-size: 12px;
 line-height: 1.2;
 font-weight: 500;
 text-transform: none;
 letter-spacing: 0;
 justify-self: end;
}
.kueni-contact .kd__badge::before { animation: none; }
.kueni-contact .kd__badge.is-ki { background: #E3F1EC; border-color: #B6D8C9; color: #245942; }
.kueni-contact .kd__restart {
 grid-column: 2 / -1;
 justify-self: end;
 min-height: 44px;
 border-radius: 9px;
 border-color: #C8D9DC;
 background: #FFFFFF;
 color: #345B66;
 font-size: 14px;
 padding: 10px 15px;
}
.kueni-contact .kd__restart:hover { border-color: #006277; color: #006277; }
.kueni-contact .kd__intro { padding: 25px 28px 28px; }
.kueni-contact .kd__introtext { color: #465E65; font-size: 16px; line-height: 1.65; margin-bottom: 20px; max-width: 65ch; }
.kueni-contact .kd__note--warn {
 background: #EEF3F4;
 color: #344F58;
 border: 1px solid #D7E3E5;
 border-radius: 10px;
 padding: 13px 15px;
 font-size: 14px;
 line-height: 1.55;
 margin-bottom: 20px;
}
.kueni-contact #kd-consent-warn { color: #7A2727; border-color: #DEBCBC; background: #FAF0F0; }
.kueni-contact .kd__einwilligung { margin-block: 20px; color: #465E65; line-height: 1.5; }
.kueni-contact .kd__einwilligung a { color: #006277; text-underline-offset: 3px; }
.kueni-contact .kd__einwilligung input { accent-color: #006277; }
.kueni-contact .btn--primary, .kueni-contact .kd__action--primary {
 background: #006277;
 color: #FFFFFF;
 border-color: #006277;
 border-radius: 10px;
 min-height: 48px;
 font-weight: 600;
 box-shadow: inset 0 1px 0 #FFFFFF20;
}
.kueni-contact .btn--primary::after { display: none; }
.kueni-contact .btn--primary:hover, .kueni-contact .kd__action--primary:hover { background: #004F60; border-color: #004F60; color: #FFFFFF; }
.kueni-contact #kd-start { width: 100%; justify-content: center; margin-top: 2px; }
.kueni-contact .kd__progress { padding: 18px 28px 8px; }
.kueni-contact .kd__bar { height: 4px; background: #DDE8EA; border-radius: 4px; }
.kueni-contact .kd__bar i { background: #006277; }
.kueni-contact .kd__bar i::after { display: none; }
.kueni-contact .kd__steps { color: #465E65; }
.kueni-contact .kd__log { background: #F7FAFA; padding: 22px 28px; border-top: 0; }
.kueni-contact .kd__msg { margin-bottom: 14px; }
.kueni-contact .kd__bubble { padding: 13px 16px; border-radius: 15px; max-width: 86%; font-size: 16px; line-height: 1.55; }
.kueni-contact .kd__msg--kueni .kd__bubble { background: #FFFFFF; color: #0C1C22; border: 1px solid #D3E1E4; border-bottom-left-radius: 5px; }
.kueni-contact :is(.kd__msg--kunde,.kd__msg--user) { justify-content: flex-end; }
.kueni-contact :is(.kd__msg--kunde,.kd__msg--user) .kd__bubble { background: #006277; color: #FFFFFF; border: 1px solid #006277; border-bottom-right-radius: 5px; }
.kueni-contact :is(.kd__msg--kunde,.kd__msg--user) .ku { background: #FFFFFF; color: #006277; }
.kueni-contact .kd__bubble--typing span { background: #006277; }
.kueni-contact .kd__quick { background: #F7FAFA; padding: 4px 28px 12px; gap: 8px; }
.kueni-contact .kd__chip, .kueni-contact .kd__action, .kueni-contact .kd__abort {
 min-height: 44px;
 border-radius: 9px;
 border-color: #C8D9DC;
 font-size: 14px;
 line-height: 1.4;
}
.kueni-contact .kd__chip { background: #FFFFFF; color: #245563; }
.kueni-contact .kd__chip:hover { background: #EAF3F4; border-color: #006277; }
.kueni-contact .kd__action--primary { border-color: #006277; }
.kueni-contact .kd__form { background: #F7FAFA; padding: 10px 28px 24px; }
.kueni-contact .kd__form textarea { border-color: #C0D4D8; border-radius: 11px; background: #FFFFFF; }
.kueni-contact .kd__form textarea:focus-visible { border-color: #006277; box-shadow: 0 0 0 3px #0062771A; }
.kueni-contact .kd__send { border-radius: 10px; }
.kueni-contact .kd__mic { border-color: #B9D1D6; color: #006277; background: #FFFFFF; }
.kueni-contact .kd__mic.is-rec { background: #006277; border-color: #006277; color: #FFFFFF; }
.kueni-contact .kd__mic-label { color: #465E65; }
.kueni-contact .kd__summary { border: 1px solid #C8D9DC; border-left: 3px solid #006277; border-radius: 12px; background: #FFFFFF; }
.kueni-contact .kd__summary h3 { border-color: #DDE7E8; }
.kueni-contact .kd__cfield { border-radius: 9px; border-color: #C0D4D8; }
.kueni-contact .kd__error { border-radius: 11px; }
.kueni-contact .kd__demohint { border-color: #D7E3E5; background: #EEF3F4; color: #465E65; }
.kueni-contact #kd-foot { color: #465E65; border-top: 1px solid #DDE7E8; padding: 16px 28px; }
.kueni-contact :is(button,a,input):focus-visible { outline: 3px solid #006277; outline-offset: 3px; }
.kueni-contact button:disabled { cursor: not-allowed; opacity: .5; }
@media (max-width: 600px) {
 .kueni-contact.kd { border-radius: 15px; }
 .kueni-contact .kd__head { padding: 18px; grid-template-columns: 48px minmax(0,1fr) auto; gap: 8px 11px; }
 .kueni-contact .kd__avatar { width: 48px; height: 48px; }
 .kueni-contact .kd__head .kd__id b { font-size: 20px; }
 .kueni-contact .kd__id > span { font-size: 13px; }
 .kueni-contact .kd__badge { padding: 6px 8px; font-size: 11px; }
 .kueni-contact .kd__intro { padding: 20px 18px 22px; }
 .kueni-contact .kd__introtext { font-size: 16px; }
 .kueni-contact .kd__note--warn { padding: 12px 13px; font-size: 13px; }
 .kueni-contact .kd__progress { padding-inline: 18px; }
 .kueni-contact .kd__log { padding: 20px 18px; }
 .kueni-contact .kd__bubble { max-width: 92%; padding: 12px 14px; font-size: 15px; }
 .kueni-contact .kd__quick { padding-inline: 18px; }
 .kueni-contact .kd__form { padding-inline: 18px; }
 .kueni-contact #kd-foot { padding-inline: 18px; }
 .kueni-contact .kd__sumrow { grid-template-columns: 1fr; gap: 3px; }
}
@media (max-width: 420px) {
 .kueni-contact .kd__avatar { grid-row: 1 / 3; }
 .kueni-contact .kd__id { grid-column: 2 / -1; }
 .kueni-contact .kd__badge { grid-column: 2; grid-row: 2; justify-self: start; }
 .kueni-contact .kd__restart { grid-column: 3; grid-row: 2; font-size: 12px; padding: 8px 10px; }
 .kueni-contact .kd__typerow { flex-wrap: wrap; }
 .kueni-contact .kd__form textarea { flex-basis: 100%; }
 .kueni-contact .kd__send { width: 100%; justify-content: center; }
}
