/* Shared feedback for contact and lecture search; valid fields keep their original appearance. */
form.frontend-validated .required-marker { color: #a12622; font-weight: 700; white-space: nowrap; }
form.frontend-validated .validation-invalid {
    border-color: #d29a9a !important;
    background-color: #fff8f8 !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='7' fill='%23b95151'/%3E%3Cpath d='M8 4v4' stroke='white' stroke-width='2'/%3E%3Ccircle cx='8' cy='11' r='1' fill='white'/%3E%3C/svg%3E") !important;
    background-position: right 12px center !important;
    background-size: 16px 16px !important;
    background-repeat: no-repeat !important;
    padding-right: 38px !important;
}
form.frontend-validated .validation-invalid[data-validation-symbol="invalid"] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='7' fill='%23b95151'/%3E%3Cpath d='m5.5 5.5 5 5m0-5-5 5' stroke='white' stroke-width='1.6'/%3E%3C/svg%3E") !important;
}
form.frontend-validated textarea.validation-invalid { background-position: right 12px top 12px !important; }
/* Retain error descriptions for screen readers without adding visible rows beside labels. */
form.frontend-validated span.field-error {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}

.validation-tooltip {
    position: fixed;
    z-index: 10000;
    box-sizing: border-box;
    max-width: min(300px, calc(100vw - 16px));
    padding: 8px 12px;
    border: 1px solid #d29a9a;
    border-radius: 5px;
    color: #993f3f;
    background: #fff6f5;
    font-size: 14px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
.validation-tooltip[hidden] { display: none; }
/* Keep the original pink/gray distinction with sufficient white-text contrast. */
form.frontend-validated input[type="submit"] {
    color: #fff !important;
    background-color: #b32161 !important;
    border-color: #b32161 !important;
}
form.frontend-validated input[type="reset"] {
    color: #fff !important;
    background-color: #666 !important;
    border-color: #666 !important;
}
#lecture_searchForm .search-box h2 { color: #b32161; }

#lecture_searchForm .search-server-error { width: 100%; color: #993f3f; margin: 0 0 15px; }
