/* WSI Züchterverzeichnis – Einreichungsformular */
.wsi-zv-form { --wsi-zv-green: #075c59; --wsi-zv-border: #d7e1db; --wsi-zv-muted: #58696d; --wsi-zv-error: #b3261e; max-width: 860px; margin: 0 0 2em; }
.wsi-zv-form *, .wsi-zv-form *::before, .wsi-zv-form *::after { box-sizing: border-box; }
.wsi-zv-form .wsi-zv-h { margin: 0 0 .5em; }

.wsi-zv-section { margin: 0 0 1.5em !important; padding: 1.2em 1.3em 1.3em !important; border: 1px solid var(--wsi-zv-border) !important; border-radius: 8px; background: #fff; min-width: 0; }
.wsi-zv-section > legend { padding: 0 .4em !important; margin: 0 !important; font-weight: 600; font-size: 1.1em; width: auto !important; border: 0 !important; }

.wsi-zv-field { margin: 0 0 1.1em; }
.wsi-zv-field:last-child { margin-bottom: 0; }
.wsi-zv-field > label, .wsi-zv-label { display: block; margin: 0 0 .3em; font-weight: 600; }
.wsi-zv-hint { display: block; margin: 0 0 .45em; font-size: .9em; color: var(--wsi-zv-muted); }
.wsi-zv-req { color: var(--wsi-zv-error); }
.wsi-zv-opt { font-weight: 400; font-size: .9em; color: var(--wsi-zv-muted); }

.wsi-zv-form input[type="text"], .wsi-zv-form input[type="email"], .wsi-zv-form input[type="url"],
.wsi-zv-form input[type="tel"], .wsi-zv-form input[type="search"], .wsi-zv-form textarea {
	display: block; width: 100%; max-width: 100%; padding: .6em .75em; border: 1px solid #9aa79a; border-radius: 6px; background: #fff; color: #1d2327; font: inherit; line-height: 1.4; height: auto;
}
.wsi-zv-form textarea { min-height: 8em; resize: vertical; }
.wsi-zv-form input:focus-visible, .wsi-zv-form textarea:focus-visible, .wsi-zv-form summary:focus-visible, .wsi-zv-form button:focus-visible { outline: 3px solid #e99739; outline-offset: 2px; }
.wsi-zv-form [aria-invalid="true"] { border-color: var(--wsi-zv-error) !important; }

.wsi-zv-row { display: grid; grid-template-columns: 1fr 2fr; gap: 0 1em; }
.wsi-zv-row + .wsi-zv-row { grid-template-columns: 1fr 1fr; }
.wsi-zv-row--half { grid-template-columns: 1fr 1fr; }
.wsi-zv-row > .wsi-zv-field { margin-bottom: 1.1em; }
@media (max-width: 600px) { .wsi-zv-row, .wsi-zv-row + .wsi-zv-row, .wsi-zv-row--half { grid-template-columns: 1fr; } }
.wsi-zv-hint--region { margin: -.4em 0 1.1em; }

/* Auswahllisten (Land, Bundesland/Kanton) */
.wsi-zv-form select {
	display: block; width: 100%; max-width: 100%; min-height: 2.9em; padding: .6em 2.4em .6em .75em; border: 1px solid #9aa79a; border-radius: 6px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23075c59' stroke-width='2'/%3E%3C/svg%3E") no-repeat right .9em center;
	color: #1d2327; font: inherit; line-height: 1.4; -webkit-appearance: none; appearance: none; cursor: pointer;
}
.wsi-zv-form select:focus-visible { outline: 3px solid #e99739; outline-offset: 2px; }
.wsi-zv-form select.is-autofilled { border-color: var(--wsi-zv-green); box-shadow: 0 0 0 2px rgba(7, 92, 89, .15); }

.wsi-zv-radios { display: flex; flex-wrap: wrap; gap: .5em 1.5em; }
.wsi-zv-radios label, .wsi-zv-checks label, .wsi-zv-check { display: flex; align-items: flex-start; gap: .5em; font-weight: 400; cursor: pointer; }
.wsi-zv-form input[type="checkbox"], .wsi-zv-form input[type="radio"] { flex: none; width: 1.1em; height: 1.1em; margin: .2em 0 0; accent-color: var(--wsi-zv-green); }
.wsi-zv-check { margin-top: .9em; }
.wsi-zv-form .wsi-zv-field > label.wsi-zv-check { display: flex; font-weight: 400; }

/* Vogelarten: Auswahl, Gruppen als Akkordeon */
.wsi-zv-selection { display: flex; flex-wrap: wrap; align-items: center; gap: .4em .5em; margin: 0 0 .9em; padding: .65em .8em; border-radius: 8px; background: #f3f7f4; border: 1px dashed #b9cbbf; }
.wsi-zv-selection__label { font-weight: 600; font-size: .95em; }
.wsi-zv-selection__chips { display: flex; flex-wrap: wrap; gap: .4em; }
.wsi-zv-selection__empty { color: var(--wsi-zv-muted); font-size: .95em; }
.wsi-zv-form .wsi-zv-chip { display: inline-flex; align-items: center; gap: .4em; margin: 0; padding: .3em .45em .3em .75em; border: 1px solid var(--wsi-zv-green); border-radius: 999px; background: var(--wsi-zv-green); color: #fff; font: inherit; font-size: .9em; font-weight: 600; line-height: 1.2; cursor: pointer; }
.wsi-zv-form .wsi-zv-chip:hover, .wsi-zv-form .wsi-zv-chip:focus-visible { background: #043f3c; }
.wsi-zv-chip__x { display: inline-flex; align-items: center; justify-content: center; width: 1.25em; height: 1.25em; border-radius: 50%; background: rgba(255,255,255,.22); font-size: 1em; line-height: 1; }

.wsi-zv-groups { display: grid; gap: .55em; margin: 0 0 1em; }
.wsi-zv-form .wsi-zv-group { margin: 0 !important; padding: 0 !important; border: 1px solid #c9d6cd; border-radius: 8px; background: #fff; overflow: hidden; transition: border-color .15s, box-shadow .15s; }
.wsi-zv-form .wsi-zv-group > summary {
	display: flex !important; align-items: center; gap: .6em; min-height: 3.1em; margin: 0 !important; padding: .7em 1em !important;
	list-style: none !important; font-weight: 600; line-height: 1.3; color: #1d2327; cursor: pointer; background: #fff; -webkit-tap-highlight-color: transparent;
}
.wsi-zv-form .wsi-zv-group > summary::-webkit-details-marker { display: none; }
.wsi-zv-form .wsi-zv-group > summary::marker { content: ""; }
.wsi-zv-form .wsi-zv-group > summary::before, .wsi-zv-form .wsi-zv-group > summary::after { display: none !important; content: none !important; }
.wsi-zv-group__name { flex: 1 1 auto; }
.wsi-zv-group__count { flex: none; padding: .15em .6em; border-radius: 999px; background: #e3efe8; color: var(--wsi-zv-green); font-size: .8em; font-weight: 700; }
.wsi-zv-group__count[hidden] { display: none; }
.wsi-zv-group__chevron { flex: none; width: .6em; height: .6em; margin: 0 .2em 0 .3em; border-right: 2px solid var(--wsi-zv-green); border-bottom: 2px solid var(--wsi-zv-green); transform: rotate(45deg) translateY(-25%); transition: transform .2s; }
.wsi-zv-group[open] .wsi-zv-group__chevron { transform: rotate(-135deg) translateY(-25%); }
.wsi-zv-form .wsi-zv-group > summary:hover { background: #f6f9f7; }
.wsi-zv-form .wsi-zv-group[open] { border-color: var(--wsi-zv-green); box-shadow: 0 1px 6px rgba(7, 92, 89, .12); }
.wsi-zv-form .wsi-zv-group[open] > summary { border-bottom: 1px solid var(--wsi-zv-border); background: #f3f7f4; }
.wsi-zv-form .wsi-zv-group.has-selection { border-color: var(--wsi-zv-green); }
.wsi-zv-checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: .2em .8em; padding: .6em .6em .8em; }
.wsi-zv-form .wsi-zv-checks label { padding: .45em .5em; border-radius: 6px; line-height: 1.35; }
.wsi-zv-form .wsi-zv-checks label:hover { background: #f3f7f4; }
.wsi-zv-form .wsi-zv-checks input[type="checkbox"] { width: 1.25em; height: 1.25em; margin-top: .05em; }
.wsi-zv-form .wsi-zv-checks label:has(input:checked) { background: #e8f2ec; font-weight: 600; }

/* Fehlende oder fehlerhafte Angaben */
.wsi-zv-form .has-error > label, .wsi-zv-form .has-error > .wsi-zv-label { color: var(--wsi-zv-error); }
.wsi-zv-form .wsi-zv-field.has-error > input, .wsi-zv-form .wsi-zv-field.has-error > textarea, .wsi-zv-form .wsi-zv-field.has-error > select,
.wsi-zv-form [aria-invalid="true"]:is(input, textarea, select) {
	border: 2px solid var(--wsi-zv-error) !important; background-color: #fff7f6;
}
.wsi-zv-form fieldset.wsi-zv-section.has-error, .wsi-zv-form fieldset.wsi-zv-section[aria-invalid="true"] { border: 2px solid var(--wsi-zv-error) !important; background: #fffafa; }
.wsi-zv-form fieldset.has-error > legend { color: var(--wsi-zv-error); }
.wsi-zv-form .has-error .wsi-zv-radios { padding: .4em .6em; border: 2px solid var(--wsi-zv-error); border-radius: 6px; background: #fff7f6; }
.wsi-zv-form .wsi-zv-field.has-error .wsi-zv-check input[type="checkbox"] { outline: 2px solid var(--wsi-zv-error); outline-offset: 2px; }
.wsi-zv-form [data-wsi-zv-position].has-error { padding: .7em .8em; border: 2px solid var(--wsi-zv-error); border-radius: 8px; background: #fffafa; }
.wsi-zv-error { display: flex; align-items: flex-start; gap: .45em; margin: .4em 0 .5em; padding: .45em .7em; border-radius: 6px; background: #fdecea; color: #8c1d18; font-size: .9em; font-weight: 600; line-height: 1.4; }
.wsi-zv-error::before { content: "!"; flex: none; display: inline-flex; align-items: center; justify-content: center; width: 1.25em; height: 1.25em; margin-top: .05em; border-radius: 50%; background: var(--wsi-zv-error); color: #fff; font-size: .85em; font-weight: 800; line-height: 1; }

/* Hinweisfenster beim Absenden */
.wsi-zv-dialog { --wsi-zv-green: #075c59; --wsi-zv-border: #d7e1db; --wsi-zv-muted: #58696d; --wsi-zv-error: #b3261e; box-sizing: border-box; font-family: inherit; width: min(92vw, 440px); max-width: 440px; max-height: min(86vh, 640px); margin: auto; padding: 1.1em 1.1em 1em; overflow: hidden; border: 0; border-radius: 12px; background: #fff; color: #1d2327; box-shadow: 0 18px 50px rgba(0,0,0,.28); }
.wsi-zv-dialog[open] { display: flex; flex-direction: column; }
.wsi-zv-dialog::backdrop { background: rgba(16, 33, 30, .55); }
.wsi-zv-dialog__head, .wsi-zv-dialog__text { flex: none; }
.wsi-zv-dialog__head { display: flex; align-items: center; gap: .6em; margin: 0 0 .5em; }
.wsi-zv-dialog__icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 1.9em; height: 1.9em; border-radius: 50%; background: #b3261e; color: #fff; font-weight: 800; font-size: 1.05em; }
.wsi-zv-dialog .wsi-zv-dialog__title { margin: 0; font-size: 1.2em; line-height: 1.25; color: #1d2327; }
.wsi-zv-dialog__text { margin: 0 0 .7em; color: #3c4a4d; font-size: .95em; line-height: 1.5; }
.wsi-zv-dialog__list { display: grid; gap: .3em; flex: 1 1 auto; min-height: 0; overflow-y: auto; margin: 0 0 .9em; padding: 0 .1em 0 0; list-style: none; overscroll-behavior: contain; }
.wsi-zv-dialog__list li { margin: 0; padding: 0; }
.wsi-zv-dialog .wsi-zv-dialog__item { display: flex; align-items: center; justify-content: space-between; width: 100%; margin: 0; padding: .45em .75em; font-size: .95em; line-height: 1.3; border: 1px solid #f1c4c0; border-radius: 8px; background: #fdecea; color: #8c1d18; font: inherit; font-weight: 600; text-align: left; cursor: pointer; }
.wsi-zv-dialog .wsi-zv-dialog__item::after { content: "→"; margin-left: .6em; }
.wsi-zv-dialog .wsi-zv-dialog__item:hover, .wsi-zv-dialog .wsi-zv-dialog__item:focus-visible { background: #fbd9d5; outline: none; }
.wsi-zv-dialog .wsi-zv-dialog__ok { flex: none; width: 100%; margin: 0; }

.wsi-zv-btn { display: inline-block; padding: .55em 1.1em; border: 1px solid var(--wsi-zv-green); border-radius: 6px; background: #fff; color: var(--wsi-zv-green); font: inherit; font-weight: 600; line-height: 1.3; cursor: pointer; }
.wsi-zv-btn:hover, .wsi-zv-btn:focus-visible { background: var(--wsi-zv-green); color: #fff; }
.wsi-zv-btn:disabled { opacity: .6; cursor: wait; }
.wsi-zv-btn--primary { padding: .75em 1.6em; background: var(--wsi-zv-green); color: #fff; font-size: 1.05em; }
.wsi-zv-btn--primary:hover, .wsi-zv-btn--primary:focus-visible { background: #043f3c; }
.wsi-zv-btn--danger { border-color: #b3261e; color: #b3261e; }
.wsi-zv-btn--danger:hover, .wsi-zv-btn--danger:focus-visible { background: #b3261e; color: #fff; }
.wsi-zv-review-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 18px 0; }
.wsi-zv-review-actions .wsi-zv-btn { white-space: normal; text-align: center; }
.wsi-zv-linkbtn { padding: 0; border: 0; background: none; color: #075c59; font: inherit; text-align: left; text-decoration: underline; cursor: pointer; }
.wsi-zv-form .wsi-zv-clear { color: var(--wsi-zv-error); }

.wsi-zv-form .wsi-zv-search-row { display: flex; flex-wrap: wrap; gap: .5em; align-items: center; }
.wsi-zv-form .wsi-zv-search-row input[type="search"] { flex: 1 1 240px; width: auto; }
.wsi-zv-form .wsi-zv-search-row .wsi-zv-clear { margin-left: auto; }
.wsi-zv-form .wsi-zv-search-status { min-height: 1.4em; margin: .4em 0 0; font-size: .9em; }
.wsi-zv-form .wsi-zv-search-status.is-error { color: var(--wsi-zv-error); }
.wsi-zv-form .wsi-zv-search-results { margin: .2em 0 0 !important; padding: 0 !important; list-style: none !important; font-size: .9em; }
.wsi-zv-form .wsi-zv-search-results li { margin: .2em 0 !important; }
.wsi-zv-form .wsi-zv-search-results li::before { display: none !important; }
.wsi-zv-map-placeholder { margin-top: .6em; padding: 1.2em; border: 1px dashed #9aa79a; border-radius: 6px; background: #f3f6f3; text-align: center; }
.wsi-zv-map-placeholder p { margin: 0 0 .7em; }
.wsi-zv-small { font-size: .85em; color: var(--wsi-zv-muted); margin: .7em 0 0 !important; }
.wsi-zv-form .wsi-zv-picker-map { height: 360px; margin-top: .6em; border: 1px solid var(--wsi-zv-border); border-radius: 6px; z-index: 0; cursor: crosshair; }
.wsi-zv-form .wsi-zv-picker-map img { max-width: none !important; max-height: none !important; box-shadow: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; }

.wsi-zv-msg { margin: 0 0 1.2em; padding: .9em 1.1em; border-left: 4px solid; border-radius: 4px; }
.wsi-zv-msg--ok { border-color: var(--wsi-zv-green); background: #e7f3ef; color: #043f3c; }
.wsi-zv-msg--warn { border-color: #c77700; background: #fff6e5; color: #4a3500; }
.wsi-zv-msg--error { border-color: var(--wsi-zv-error); background: #fdecea; color: #5f1410; }
.wsi-zv-msg ul { margin: .4em 0 0 1.2em !important; padding: 0 !important; }
.wsi-zv-locked { padding: 1em; border: 1px solid var(--wsi-zv-border); background: #f7f7f7; }

/* Honigtopf für Spam-Bots */
.wsi-zv-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
