.contact-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:1200;display:flex;align-items:center;justify-content:center;padding:1rem;backdrop-filter:blur(4px)}.contact-modal-overlay[hidden]{display:none}.contact-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;position:relative;box-shadow:var(--shadow)}.contact-modal__close{position:absolute;top:1rem;right:1rem;background:0 0;border:none;color:var(--subtext);font-size:1.5rem;cursor:pointer;line-height:1;padding:.25rem;transition:color var(--transition)}.contact-modal__close:hover{color:var(--text)}.contact-modal__title{font-size:1.4rem;font-weight:700;margin-bottom:.4rem}.contact-modal__subtitle{color:var(--subtext);font-size:.9rem;margin-bottom:1.5rem}.contact-modal--structured{padding:0;display:flex;flex-direction:column;overflow:hidden}.contact-modal--structured .contact-modal__header{flex-shrink:0;padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.contact-modal--structured .contact-modal__close{position:static;flex-shrink:0;margin-top:.1rem}.contact-modal--structured .contact-modal__title{margin-bottom:.3rem;font-size:1.3rem}.contact-modal--structured .contact-modal__subtitle{margin:0;font-size:.88rem}.contact-modal__body{flex:1;overflow-y:auto;padding:1.25rem 1.5rem}.contact-modal__footer{flex-shrink:0;padding:1rem 1.5rem;border-top:1px solid var(--border)}.field-error,.form-control.is-invalid{display:none;font-size:.78rem;color:var(--danger);margin-top:.3rem}.field-error.visible{display:block}