/* Kommunikation 1.0.0 – baut auf den Stilen der Benutzerverwaltung (zbv-*) auf */
.kom-wrap .kom-box { margin-bottom: 16px; }
.kom-wrap .kom-kopf { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.kom-wrap .kom-kopf h3 { margin: 0; }
.kom-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 16px; align-items: start; }
@media (max-width: 900px) { .kom-layout { grid-template-columns: minmax(0, 1fr); } }
.kom-wrap .kom-f { margin: 0 0 12px; }
.kom-wrap .kom-f > label:not(.kom-chk) { display: block; font-weight: 600; margin-bottom: 4px; }
.kom-wrap .kom-f input[type=text], .kom-wrap .kom-f input[type=email], .kom-wrap .kom-f input[type=number], .kom-wrap .kom-f input[type=tel],
.kom-wrap .kom-f input[type=password], .kom-wrap .kom-f select, .kom-wrap .kom-f textarea { width: 100%; box-sizing: border-box; }
.kom-wrap .kom-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 14px; }
.kom-wrap .kom-grid3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0 12px; }
.kom-wrap .kom-chk { display: block; font-weight: normal; margin: 3px 0; cursor: pointer; }
.kom-wrap .kom-chk input { width: auto !important; margin-right: 6px; }
.kom-wrap .kom-gruppe { margin: 6px 0 8px; display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; }
.kom-wrap .kom-gt { display: block; width: 100%; font-size: .82rem; font-weight: 600; color: #555; margin-top: 4px; }
.kom-wrap .kom-chip { display: inline-flex; align-items: center; border: 1px solid #d0d5dd; border-radius: 14px; padding: 2px 10px 2px 6px; margin: 0; font-size: .88rem; background: #fff; }
.kom-wrap .kom-chip input { margin-right: 4px; }
.kom-wrap .kom-chip.kom-leer { color: #999; border-style: dashed; }
.kom-wrap .kom-det { margin: 8px 0; border: 1px solid #e3e6ea; border-radius: 6px; padding: 6px 10px; }
.kom-wrap .kom-det summary { cursor: pointer; font-weight: 600; }
.kom-wrap .kom-personen { margin: 10px 0; position: relative; }
.kom-wrap .kom-chips { display: flex; flex-wrap: wrap; gap: 4px; margin: 4px 0; }
.kom-wrap .kom-chipx { display: inline-flex; align-items: center; gap: 4px; background: #eef3fb; border-radius: 14px; padding: 2px 4px 2px 10px; font-size: .88rem; }
.kom-wrap .kom-x { border: 0; background: none; cursor: pointer; font-size: 1rem; line-height: 1; padding: 0 4px; color: #555; }
.kom-wrap .kom-suche { width: 100% !important; box-sizing: border-box; }
.kom-wrap .kom-treffer { display: block; }
.kom-wrap .kom-treffer button { display: block; width: 100%; text-align: left; border: 1px solid #e3e6ea; border-top: 0; background: #fff; padding: 6px 10px; cursor: pointer; font: inherit; color: inherit; }
.kom-wrap .kom-treffer button:first-child { border-top: 1px solid #e3e6ea; }
.kom-wrap .kom-treffer button:hover { background: #f3f6fa; }
.kom-wrap .kom-treffer button[disabled] { color: #999; cursor: default; }
.kom-wrap .kom-treffer small { color: #777; margin-left: 6px; }
.kom-wrap .kom-zaehler { margin: 10px 0 4px; }
.kom-wrap .kom-anzahl { font-weight: 600; }
.kom-wrap .kom-empf-liste { font-size: .85rem; max-height: 220px; overflow: auto; }
.kom-wrap .kom-empf-liste .kom-hinweis { color: #a15c00; }
.kom-wrap .kom-ph { margin: 6px 0 12px; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.kom-wrap .kom-ph-btn { border: 1px solid #d0d5dd; background: #f7f8fa; border-radius: 4px; padding: 1px 6px; font-size: .8rem; cursor: pointer; font-family: monospace; color: #333; }
.kom-wrap .kom-editor { border: 1px solid #c9ced6; border-radius: 6px; background: #fff; }
.kom-wrap .kom-tb { display: flex; flex-wrap: wrap; gap: 2px; padding: 4px; border-bottom: 1px solid #e3e6ea; background: #f7f8fa; border-radius: 6px 6px 0 0; }
.kom-wrap .kom-tb button { border: 1px solid transparent; background: none; padding: 3px 8px; border-radius: 4px; cursor: pointer; font-size: .85rem; color: #333; min-width: 30px; }
.kom-wrap .kom-tb button:hover { border-color: #c9ced6; background: #fff; }
.kom-wrap .kom-ed { min-height: 260px; padding: 10px 12px; outline: none; line-height: 1.5; color: #222; }
.kom-wrap .kom-ed p { margin: 0 0 .8em; }
.kom-wrap .kom-ed:focus { box-shadow: inset 0 0 0 2px rgba(31, 78, 154, .25); }
.kom-wrap .kom-aktionen { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.kom-wrap .kom-vorl { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.kom-wrap .kom-vorl input[type=text], .kom-wrap .kom-vorl input[type=tel] { width: 190px !important; }
.kom-wrap .kom-vorlage-wahl select { width: auto !important; }
.kom-wrap .kom-anh { font-size: .9rem; }
.kom-wrap .kom-tw { overflow-x: auto; }
.kom-wrap .kom-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.kom-wrap .kom-table th, .kom-wrap .kom-table td { padding: 6px 8px; border-bottom: 1px solid #eceef1; text-align: left; vertical-align: top; }
.kom-wrap .kom-table th { font-size: .8rem; color: #555; background: #f7f8fa; }
.kom-wrap .kom-c { text-align: center !important; }
.kom-wrap .kom-nw { white-space: nowrap; }
.kom-wrap .kom-grau td { color: #999; }
.kom-wrap .kom-rot { color: #a12020; }
.kom-wrap .kom-inline { display: inline; margin: 0; }
.kom-wrap .kom-crumbs { margin: 0 0 8px; }
.kom-wrap .kom-kv th { text-align: left; padding: 4px 14px 4px 0; vertical-align: top; color: #555; white-space: nowrap; }
.kom-wrap .kom-kv td { padding: 4px 0; }
.kom-wrap .kom-vorschau { border: 1px solid #e3e6ea; border-radius: 6px; padding: 12px 16px; margin: 12px 0; background: #fff; }
.kom-wrap .kom-sms-text { font-family: inherit; max-width: 420px; background: #eef3fb; border-radius: 14px; }
.kom-wrap .kom-st { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: .8rem; background: #eee; white-space: nowrap; }
.kom-wrap .kom-st-aktiv { background: #e3f4e6; color: #1d6b2c; }
.kom-wrap .kom-st-offen { background: #fff4d6; color: #7a5a00; }
.kom-wrap .kom-st-abgemeldet { background: #eee; color: #666; }
.kom-wrap .kom-st-fehler { background: #fde4e4; color: #a12020; }
.kom-wrap .kom-filter { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 10px; }
.kom-wrap .kom-filter select, .kom-wrap .kom-filter input { width: auto !important; }
.kom-wrap .kom-seiten a, .kom-wrap .kom-seiten strong { margin-right: 6px; }
.kom-wrap .kom-sms-info { display: block; margin-top: 4px; }
.kom-wrap .kom-sms-info.kom-zu-lang { color: #a12020; font-weight: 600; }

/* Öffentliches Anmeldeformular [newsletter] */
.kom-nl { max-width: 560px; }
.kom-nl-form input[type=email], .kom-nl-form input[type=text] { width: 100%; box-sizing: border-box; }
.kom-nl-2 { display: flex; gap: 10px; }
.kom-nl-2 label { flex: 1; }
.kom-nl-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.kom-nl-msg { padding: 10px 14px; border-radius: 6px; margin-bottom: 14px; }
.kom-nl-success { background: #e3f4e6; color: #1d6b2c; }
.kom-nl-error { background: #fde4e4; color: #a12020; }
.kom-nl-info { background: #eef3fb; }

/* Boxen füllen das Raster (zbv-box ist sonst zentriert und schmal) */
.kom-wrap .zbv-box.kom-box { max-width: none; width: auto; margin-left: 0; margin-right: 0; box-sizing: border-box; }
.kom-wrap [hidden] { display: none !important; }
