/* Öffentliche Kontakt-Formulare: ergänzt bewerbung/style.css */
.kf h1 { margin-bottom: .4em; }
.kf .intro { color: var(--muted); white-space: pre-line; margin-bottom: 1.6rem; max-width: 62ch; }
.kf .field > span { display: block; font-weight: 600; font-size: .92rem; margin-bottom: .35rem; }
.kf .field > span em { font-style: normal; font-weight: 500; color: var(--muted); font-size: .82rem; margin-left: .35rem; }
.kf input[type=email], .kf input[type=date], .kf input[type=text], .kf input[type=number], .kf textarea, .kf select {
  width: 100%; padding: .65rem .8rem; font: inherit; color: var(--ink); background: var(--page); border: 1px solid var(--line); border-radius: var(--radius-sm);
}
.kf input:focus, .kf textarea:focus, .kf select:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 25%, transparent); }
.kf .field.bad input, .kf .field.bad textarea, .kf .field.bad select { border-color: var(--bad); }
.kf .ferr { color: var(--err-text); font-size: .86rem; margin-top: .35rem; display: block; }
.kf .info-block { background: var(--inset); border-radius: var(--radius-sm); padding: .85rem 1rem; margin-bottom: 1.1rem; }
.kf .info-block strong { display: block; }
.kf .info-block p { margin: .25rem 0 0; color: var(--muted); white-space: pre-line; }
.kf .opts .check { margin: .4rem 0; }
.kf .filelist { list-style: none; margin: .5rem 0 0; padding: 0; display: grid; gap: .35rem; }
.kf .filelist li { display: flex; align-items: center; gap: .6rem; background: var(--inset); border-radius: var(--radius-sm); padding: .35rem .6rem; font-size: .9rem; }
.kf .filelist li span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kf .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.kf .privacy { margin: 1.4rem 0 1.1rem; }
.kf .formerr { margin-bottom: 1rem; }
.kf .done { text-align: center; padding: 1rem 0; }
.kf .done .big { font-size: 2.6rem; color: var(--ok); margin-bottom: .6rem; }
.kf .ref { display: inline-block; font-family: var(--font-head); font-weight: 700; letter-spacing: .04em; font-size: 1.25rem; background: var(--inset); padding: .35rem .9rem; border-radius: var(--radius-sm); margin: .3rem 0 .6rem; }
.kf .cards { display: grid; gap: .9rem; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); margin-top: 1.4rem; }
.kf .cards a { display: block; text-decoration: none; color: inherit; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.1rem 1.2rem; }
.kf .cards a:hover { background: var(--hover); border-color: color-mix(in srgb, var(--ink) 30%, var(--surface)); }
.kf .cards h2 { font-size: 1.1rem; margin: 0 0 .3rem; }
.kf .cards p { margin: 0; color: var(--muted); font-size: .92rem; }
.kf .cards .cat { font-size: .78rem; font-weight: 700; color: var(--accent-text); text-transform: uppercase; letter-spacing: .05em; margin-bottom: .35rem; }

.kf abbr.req { color: var(--err-text); text-decoration: none; font-weight: 700; cursor: help; }
.kf .reqnote { font-size: .86rem; color: var(--muted); margin: 0 0 1.2rem; }
