/* Shared form fixes retain Bootstrap's existing layout and each portal's branding. */
:root { --portal-copy:#333; --portal-muted:#595959; --portal-panel:#fff; --portal-input:#fff; --portal-line:#777; --portal-focus:#005fcc; --portal-rating:#785400; --portal-error:#a42620; }
html.dark { --portal-copy:#eee; --portal-muted:#c2c2c2; --portal-panel:#2b2b2b; --portal-input:#333; --portal-line:#aaa; --portal-focus:#8ec5ff; --portal-rating:#ffd866; --portal-error:#ffb4ab; }
.portal-contact-form { padding:0; border:0; box-shadow:none; color:var(--portal-copy); background:transparent; }
.portal-contact-form .form-control, .portal-registration .form-control { font-size:16px; color:var(--portal-copy); background:var(--portal-input); border-color:var(--portal-line); }
.portal-contact-form label { display:block; font-weight:600; color:var(--portal-copy); }
.portal-contact-form .checkbox label { font-weight:400; }
.portal-contact-form .checkbox input { margin-top:5px; }
.form-required-note, .portal-turnstile-status, .listing-review-date, .listing-review-sort { color:var(--portal-muted); }
.portal-turnstile { margin:16px 0; max-width:100%; }
.portal-turnstile-mount { max-width:100%; }
.portal-turnstile-status { margin:8px 0; font-size:13px; }
.portal-turnstile-retry[hidden] { display:none !important; }
.portal-field-error { display:block; color:var(--portal-error); margin:5px 0; }
.portal-contact-form [aria-invalid="true"], .portal-registration [aria-invalid="true"] { border-color:var(--portal-error); }
.listing-review-summary .listing-review-score-text, .listing-review-summary .listing-review-count { color:var(--portal-copy); }
.listing-review-summary .listing-review-stars li i { color:var(--portal-rating); }
.listing-review-count-link { color:inherit; text-decoration:underline; }
.listing-review-date { display:block; font-size:13px; margin:8px 0; }
.listing-review-sort { margin-bottom:20px; }
.listing-review-question legend { font-size:14px; margin-bottom:8px; color:var(--portal-copy); border:0; }
.listing-review-question { border:0; padding:0; min-width:0; }
.listing-star-input input:focus-visible + label { outline:3px solid var(--portal-focus); outline-offset:3px; }
.portal-review-report { margin-top:12px; }
.portal-review-report summary { cursor:pointer; text-decoration:underline; }
.portal-review-report textarea { margin:10px 0; }
.listing-keywords { max-height:2.8em; overflow:hidden; line-height:1.4; }
.listing-keyword-details { margin:20px 0; color:var(--portal-muted); }
.listing-keyword-details summary { cursor:pointer; }
.listing-keyword-details ul { margin-top:12px; }
.portal-password-toggle { margin-top:7px; }
.portal-registration details { margin:20px 0; }
.portal-registration summary { cursor:pointer; margin-bottom:15px; }
.portal-ad-guide { margin:20px 0; }
.portal-ad-guide th, .portal-ad-guide td { color:var(--portal-copy); }
.portal-ad-guide .table-responsive { border-color:var(--portal-line); }
.portal-search-recovery { margin:20px 0; }
.portal-search-recovery label { display:block; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible { outline:3px solid var(--portal-focus); outline-offset:3px; }
@media (max-width:480px) { .portal-contact-form .form-control { width:100%; } .portal-turnstile { margin-left:0; margin-right:0; } .modal-dialog { margin:10px; } }

/* Legal content uses the same theme and keeps its existing spacing. */

.legal-content {
    line-height: 1.8;
    color: var(--portal-copy);
}
.legal-content h2 {
    color: var(--portal-copy);
    margin-top: 30px;
    margin-bottom: 15px;
    font-size: 20px;
}
.legal-content h3 {
    color: var(--portal-muted);
    margin-top: 20px;
    margin-bottom: 10px;
    font-size: 16px;
}
.legal-content ul {
    margin-left: 20px;
    margin-bottom: 20px;
}
.legal-content li {
    margin-bottom: 8px;
}
.legal-content p {
    margin-bottom: 15px;
    text-align: justify;
}
.legal-content strong {
    color: var(--portal-copy);
}

.footer-legal-links { flex-wrap:wrap; }

.auth-screen label { color:var(--portal-copy); }
