.cav-form {
    max-width: 560px;
    margin: 2em auto;
    padding: 24px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    background: #fafafa;
    font-family: inherit;
}

.cav-form h3 { margin: 0 0 12px; font-size: 1.3em; }

.cav-intro {
    font-size: 0.9em;
    color: #555;
    background: #fff;
    padding: 12px;
    border-left: 3px solid #4a90e2;
    margin-bottom: 20px;
}

.cav-field { margin-bottom: 16px; }
.cav-field label { display: block; font-weight: 600; margin-bottom: 6px; }

.cav-field input[type="email"],
.cav-field input[type="file"],
.cav-field input[type="date"] {
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
    font-size: 1em;
}

.cav-field .required {
    color: #c62828;
    margin-left: 2px;
}

.cav-info-box {
    background: #fffbe6;
    border-left: 3px solid #fbc02d;
    padding: 10px 14px;
    margin-bottom: 16px;
    border-radius: 3px;
    font-size: 0.9em;
}

.cav-field small { display: block; color: #777; margin-top: 4px; font-size: 0.85em; }

.cav-image-quality-hint {
    margin-top: 8px;
    padding: 8px 12px;
    border-radius: 4px;
    font-size: 0.9em;
}
.cav-image-quality-hint:empty { display: none; }
.cav-image-quality-hint.warn {
    background: #fff4e5;
    color: #8a5200;
    border-left: 3px solid #f0a33a;
}
.cav-image-quality-hint.ok {
    background: #e8f5e9;
    color: #2c7a2c;
    border-left: 3px solid #4caf50;
}

.cav-consent label {
    font-weight: normal;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.9em;
}
.cav-consent input[type="checkbox"] { margin-top: 3px; flex-shrink: 0; }

.cav-submit {
    width: 100%;
    padding: 14px;
    background: var(--primary-color, #2c7a2c);
    color: #fff;
    border: none;
    border-radius: 4px;
    font-size: 1em;
    font-weight: 600;
    cursor: pointer;
}
.cav-submit:hover:not(:disabled) {
    background: var(--primary-color-hover, #245d24);
    filter: brightness(0.9);
}
.cav-submit:disabled { opacity: 0.6; cursor: wait; }

.cav-status {
    margin-top: 16px;
    padding: 12px;
    border-radius: 4px;
    font-size: 0.95em;
    min-height: 20px;
}
.cav-status:empty { display: none; }
.cav-status.loading { background: #e8f1fb; color: #1a4d80; }
.cav-status.success { background: #e8f5e9; color: #2c7a2c; border: 1px solid #a5d6a7; }
.cav-status.error   { background: #fdecea; color: #c62828; border: 1px solid #ef9a9a; }

.cav-error { color: #c62828; padding: 16px; background: #fdecea; border-radius: 4px; }
.cav-success { color: #2c7a2c; padding: 16px; background: #e8f5e9; border-radius: 4px; }

/* Checkout-Sperre: alles innerhalb des Bildschirms halten (Mobile-Fix) */
#cav-checkout-gate {
    box-sizing: border-box;
    max-width: 100%;
    overflow-wrap: break-word;
    word-wrap: break-word;
}
#cav-checkout-gate * {
    box-sizing: border-box;
    max-width: 100%;
}
#cav-checkout-gate input[type="date"],
#cav-checkout-gate input[type="file"] {
    width: 100%;
    max-width: 100%;
    display: block;
}
#cav-checkout-gate input[type="file"] {
    white-space: normal;
    overflow: hidden;
    text-overflow: ellipsis;
}
#cav-checkout-gate label {
    display: inline;
    word-break: break-word;
}
