/**
 * Public Forms — Unified Visual Design
 * Supplements Bootstrap 5.3.3; does NOT redefine .card / .card-header.
 * Requires: variables.css, practisphere-theme.css (via shared head.html)
 */

/* ===== Layout Container ===== */

.public-form-container {
    margin: 0 auto;
    max-width: var(--content-max-width-narrow); /* 800px */
    padding: var(--spacing-xl) var(--spacing-md);
}

@media (width <= 575.98px) {
    .public-form-container { padding: var(--spacing-lg) var(--spacing-sm); }
}

/* ===== Brand Bar ===== */
.public-form-brand {
    border-bottom: 1px solid var(--gray-200);
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    padding: var(--spacing-sm) var(--spacing-md);
    text-align: left;
}

.public-form-brand .brand-name {
    color: var(--text-primary-on-light);
    font-weight: var(--font-weight-semibold);
}

[data-bs-theme="dark"] .public-form-brand {
    border-bottom-color: var(--bcss-border, var(--gray-700));
    color: var(--bcss-text-muted);
}

[data-bs-theme="dark"] .public-form-brand .brand-name {
    color: var(--bs-body-color);
}

/* ===== Footer ===== */
.public-form-footer {
    border-top: 1px solid var(--gray-200);
    color: var(--gray-600);
    font-size: var(--font-size-xs);
    margin-top: var(--spacing-xl);
    padding: var(--spacing-md) var(--spacing-md) var(--spacing-lg);
    text-align: center;
}

.public-form-footer a {
    color: var(--text-link-accessible);
    text-decoration: none;
}

.public-form-footer a:hover {
    text-decoration: underline;
}

.public-form-footer .footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    justify-content: center;
    list-style: none;
    margin: 0;
    padding: 0;
}

.public-form-footer .footer-links li + li::before {
    color: var(--gray-400);
    content: "·";
    padding: 0 var(--spacing-sm);
}

[data-bs-theme="dark"] .public-form-footer {
    border-top-color: var(--bcss-border, var(--gray-700));
    color: var(--bcss-text-muted);
}

[data-bs-theme="dark"] .public-form-footer a {
    color: var(--primary-light);
}

/* ===== Consent Box (replaces broken light-blue-bg / invisible-text pattern) ===== */
.consent-box {
    background-color: var(--gray-100);
    border: 1px solid var(--gray-300);
    border-radius: var(--border-radius);
    color: var(--gray-900);           /* explicit dark text — WCAG AA 4.5:1+ */
    font-size: var(--font-size-sm);
    line-height: var(--line-height-loose);
    padding: var(--spacing-md) var(--spacing-lg);
}

.consent-box a {
    color: var(--text-link-accessible); /* #394855 — passes WCAG AA on --gray-100 */
    text-decoration: underline;
}

.consent-box a:hover {
    color: var(--primary-hover);
}

[data-bs-theme="dark"] .consent-box {
    background-color: var(--gray-800);
    border-color: var(--gray-700);
    color: var(--gray-100);           /* light text on dark background */
}

[data-bs-theme="dark"] .consent-box a {
    color: var(--primary-lighter);
}

/* ===== Form Check Alignment ===== */

.public-layout .form-check-label {
    padding-left: 0.25rem;
}

.public-layout .form-check-inline {
    align-items: center;
}

/* ===== HIPAA Trust Badge ===== */

.public-form-trust-badge {
    color: var(--muted-text-color);
    font-size: var(--font-size-xs);
    margin-top: var(--spacing-md);
    text-align: center;
}

.public-form-trust-badge::before {
    content: "🔒 "; /* decorative; screen readers skip emoji */
}

[data-bs-theme="dark"] .public-form-trust-badge {
    color: var(--bcss-text-muted);
}

/* ===== Submit Button Wrapper ===== */

.public-form-submit {
    display: flex;
    justify-content: center;
    margin-top: var(--spacing-lg);
}

.public-form-submit .btn {
    min-width: 12rem;
    padding: var(--touch-target-y) var(--spacing-xl);
}

@media (width <= 575.98px) {
    .public-form-submit { flex-direction: column; }
    .public-form-submit .btn { min-width: 0; width: 100%; }
}
