/* Gemeinsame, kompakte Abstände für öffentliche Anmeldeformulare. */
form .form-grid {
    gap: 8px 12px;
    margin-bottom: 10px;
}

/* „form-col-full“ muss auch auf Desktop die komplette Zeile belegen.
   Dadurch bleiben die Einwilligungen der zusätzlichen Familienmitglieder
   untereinander und werden nicht in zwei Spalten verteilt. */
form .form-grid > .form-col-full {
    grid-column: 1 / -1 !important;
}

form .form-group {
    margin-bottom: 8px;
    gap: 3px;
}

form h3 {
    margin: 20px 0 12px !important;
    padding-bottom: 6px;
}

form p {
    margin-top: 0;
    margin-bottom: 6px;
}

form .info-box,
form .warning-box {
    padding: 8px 11px !important;
    margin: 6px 0 !important;
    font-size: .9rem;
    line-height: 1.4;
}

form .info-box strong,
form .warning-box strong { font-size: .96rem; }

form .checkbox-item {
    padding: 9px 12px;
    margin: 0 0 8px !important;
    gap: 9px;
}

form .signature-area {
    margin: 16px 0 !important;
    padding: 14px;
}

form input:not([type="checkbox"]):not([type="radio"]),
form select,
form textarea {
    box-sizing: border-box;
    min-width: 0;
    min-height: 40px;
    padding: 7px 10px;
    line-height: 1.35;
}

form input:not([type="checkbox"]):not([type="radio"]),
form select { height: 42px; }

form textarea {
    height: auto;
    min-height: 68px;
}

form .btn-submit {
    min-height: 42px;
    margin-top: 10px;
    padding: 9px 15px;
    font-size: .94rem;
}

form h3 { margin: 15px 0 8px !important; padding-bottom: 5px; }
form .signature-area { margin: 12px 0 !important; padding: 11px; }
form .checkbox-item { padding: 8px 10px; margin-bottom: 6px !important; gap: 8px; }
form .checkbox-item-content { min-width: 0; }
form .checkbox-item-content small { display: block; font-size: .86rem; line-height: 1.4; }
form #chk_geschwister + .checkbox-item-content strong { font-size: .96rem; }
form #chk_geschwister + .checkbox-item-content small { font-size: .78rem; line-height: 1.3; }

/* Choice cards use the available row width before wrapping. */
form .choice-cards-row {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
    gap: 8px;
    align-items: stretch;
}
form .choice-cards-row > .checkbox-item { height: 100%; }
form .choice-cards-row > .form-group { grid-column: 1 / -1; }
form .choice-cards-row > #chk_geschwister-card { grid-column: 1 / -1; }
form .choice-cards-row > [id^="container_"] { grid-column: 1 / -1; }
form .health-section { width: 100%; margin: 8px 0 12px; }
form .section-label { margin-bottom: 6px; font-weight: 600; }
form .health-choice-row { display: grid !important; grid-template-columns: minmax(220px, .8fr) minmax(0, 1.6fr); gap: 10px; align-items: stretch; width: 100%; margin: 0 0 8px; }
form .health-choice-row > .health-choice-item,
form .health-choice-row > .form-group { min-width: 0; }
form .health-choice-row > .health-choice-item { display: flex; width: 100%; max-width: 100%; min-height: 58px; height: auto; padding: 8px 12px; margin: 0 !important; align-self: center; align-items: flex-start; }
form .health-choice-row > .health-choice-item > input[type="checkbox"] { flex: 0 0 auto; margin-top: 3px; }
form .health-choice-row > .health-choice-item .checkbox-item-content { flex: 0 1 auto; }
form .health-choice-row > .form-group { grid-column: auto; margin: 0 !important; min-width: 0; }
form .health-choice-row > .form-group label { margin-bottom: 3px; }
form .health-choice-row > .form-group textarea { min-height: 62px; }
form .health-choice-row > .health-choice-item .checkbox-item-content strong { font-size: .92rem; margin-bottom: 1px; }
form .health-choice-row > .health-choice-item .checkbox-item-content small { font-size: .82rem; }
form .donation-extra-row { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
form .donation-extra-row > .form-group { grid-column: auto; margin: 0 !important; }
form .donation-extra-row > .form-group label { min-height: 1.35em; }
form .donation-extra-row > .checkbox-item {
    align-self: stretch;
    min-height: 42px;
    height: 100%;
    margin: 0 !important;
    padding: 7px 11px;
    align-items: flex-start;
    gap: 9px;
}
form .donation-extra-row > .checkbox-item input[type="checkbox"] { flex: 0 0 18px; width: 18px; height: 18px; margin: 2px 0 0; }
form .donation-extra-row > .checkbox-item .checkbox-item-content { min-width: 0; }
form .donation-extra-row > .checkbox-item .checkbox-item-content strong { margin: 0 0 2px; font-size: .94rem; line-height: 1.25; }
form .donation-extra-row > .checkbox-item .checkbox-item-content small { font-size: .82rem; line-height: 1.3; }

.family-registration-disclosure {
    margin: 8px 0 !important;
    padding: 6px 0 !important;
    border-top: 1px solid var(--border-color, #dce1e7);
    border-bottom: 1px solid var(--border-color, #dce1e7);
}

.family-registration-disclosure > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    cursor: pointer;
    font-size: 1rem;
    font-weight: 700;
    list-style: none;
    min-height: 42px;
}

.family-registration-disclosure > summary::-webkit-details-marker {
    display: none;
}

.family-registration-disclosure > summary::after {
    content: "+";
    flex: 0 0 auto;
    color: var(--primary, #c62828);
    font-size: 1.35rem;
    line-height: 1;
}

.family-registration-disclosure[open] > summary::after {
    content: "−";
}

.family-registration-disclosure > p {
    margin: 7px 0 10px;
    font-size: 0.9rem;
}

.family-registration-disclosure [data-family-member-card],
.family-registration-disclosure [data-family-member],
.family-registration-disclosure .termination-family-member {
    margin: 10px 0 !important;
    padding: 12px !important;
}

.family-registration-disclosure [data-add-family-member],
.family-registration-disclosure #btn-add-family-member,
.family-registration-disclosure #btnAddTerminationFamilyMember {
    width: auto;
    min-height: 40px;
    margin-top: 8px;
    padding: 8px 14px;
    font-size: 0.92rem;
}

.family-member-extra-details {
    margin: 8px 0 !important;
    padding: 0 10px !important;
    border: 1px solid var(--border-color, #dce1e7);
    border-radius: 10px;
    background: #f8fafc;
}

.family-member-extra-details > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 38px;
    cursor: pointer;
    color: var(--text-secondary, #526173);
    font-size: 0.9rem;
    font-weight: 650;
    list-style: none;
}

.family-member-extra-details > summary::-webkit-details-marker {
    display: none;
}

.family-member-extra-details > summary::after {
    content: "+";
    flex: 0 0 auto;
    color: var(--primary, #c62828);
    font-size: 1.15rem;
    line-height: 1;
}

.family-member-extra-details[open] > summary::after {
    content: "−";
}

@media (max-width: 768px) {
    body {
        padding: 7px;
    }

    .container {
        padding: 14px 12px !important;
    }

    form .form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 6px;
        margin-bottom: 8px;
    }

    form .form-col-1 {
        grid-column: auto !important;
    }

    form .choice-cards-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    form .form-col-2,
    form .form-col-full {
        grid-column: 1 / -1 !important;
    }

    form .form-group {
        margin-bottom: 4px;
    }

    form h3 {
        margin: 17px 0 9px !important;
        font-size: 1.08rem;
    }

    form .signature-area {
        padding: 9px;
    }

    form .family-registration-disclosure {
        padding: 6px 0 !important;
    }

    form input:not([type="checkbox"]):not([type="radio"]),
    form select,
    form textarea {
        font-size: 16px;
    }

    form .info-box,
    form .warning-box { padding: 7px 9px !important; font-size: .87rem; line-height: 1.38; }
    form .info-box strong,
    form .warning-box strong { font-size: .92rem; }
    form .form-group label { font-size: .94rem; line-height: 1.35; }
    form .form-group input:not([type="checkbox"]):not([type="radio"]),
    form .form-group select { height: 42px; min-height: 42px; }
    form .form-group textarea { min-height: 64px; }
    form h3 { margin: 13px 0 7px !important; font-size: 1.12rem; }
    form .checkbox-item { padding: 7px 9px; margin-bottom: 5px !important; }
}

@media (max-width: 560px) {
    form .choice-cards-row { grid-template-columns: minmax(0, 1fr); }
    form .donation-extra-row { grid-template-columns: minmax(0, 1fr); }
    form .health-choice-row { grid-template-columns: minmax(0, 1fr); }
}
