.contacts-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.25rem}.contacts-stat{background:var(--bg-card, #141418);border:1px solid rgba(255,255,255,.06);border-radius:.5rem;padding:.75rem 1rem;text-align:center}.contacts-stat__val{display:block;font-size:1.5rem;font-weight:700;color:var(--accent);letter-spacing:-.02em}.contacts-stat__label{display:block;font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:.15rem}.contacts-filters{display:flex;flex-direction:column;gap:.65rem;margin-bottom:1rem;padding:.85rem 1rem;background:var(--bg-card, #141418);border:1px solid rgba(255,255,255,.06);border-radius:.5rem}.contacts-search-wrap{position:relative;flex:1;min-width:200px}.contacts-search{width:100%;padding:.5rem .65rem .5rem 2.2rem;background:var(--bg-alt, #0F0F12);border:1px solid rgba(255,255,255,.1);border-radius:.4rem;color:var(--text);font-family:inherit;font-size:.85rem;outline:none;transition:border-color .2s}.contacts-search:focus{border-color:var(--accent)}.contacts-select{padding:.5rem .65rem;background:var(--bg-alt, #0F0F12);border:1px solid rgba(255,255,255,.1);border-radius:.4rem;color:var(--text);font-family:inherit;font-size:.85rem;outline:none;min-width:160px}.contacts-table-wrap{background:var(--bg-card, #141418);border:1px solid rgba(255,255,255,.06);border-radius:.5rem;overflow-x:auto;margin-bottom:2rem}.contacts-table{width:100%;border-collapse:collapse;font-size:.82rem}.contacts-table thead{background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.08)}.contacts-table th{padding:.65rem .75rem;text-align:left;font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);white-space:nowrap;user-select:none}.contacts-th--sortable{cursor:pointer;transition:color .2s}.contacts-th--sortable:hover{color:var(--accent)}.contacts-table td{padding:.55rem .75rem;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:top}.contacts-table tr:hover td{background:#ffffff05}.contacts-table .contact-name{font-weight:600;color:var(--text)}.contacts-table .contact-company{color:var(--text-secondary)}.contacts-table .contact-title-cell{color:var(--text-secondary);max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contacts-table .contact-email{font-family:JetBrains Mono,Fira Code,monospace;font-size:.75rem}.contacts-table .contact-email a{color:var(--teal);text-decoration:none}.contacts-table .contact-email a:hover{text-decoration:underline}.contact-email-guess{font-size:.65rem;color:var(--text-muted);font-style:italic}.contact-linkedin{display:inline-flex;align-items:center;gap:.2rem;color:#0a66c2;text-decoration:none;font-size:.72rem;opacity:.8;transition:opacity .2s}.contact-linkedin:hover{opacity:1}.role-badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.role-badge--executive_decision_maker{background:#f59e0b26;color:#f59e0b}.role-badge--financial_decision_maker{background:#6ee7b726;color:#6ee7b7}.role-badge--operational_champion{background:#9382dc26;color:#9382dc}.role-badge--revenue_influencer{background:#60a5fa26;color:#60a5fa}.role-badge--clinical_stakeholder{background:#f472b626;color:#f472b6}.role-badge--technical_stakeholder{background:#fb923c26;color:#fb923c}.role-badge--direct_user{background:#818cf826;color:#818cf8}.role-badge--unknown{background:#ffffff0f;color:var(--text-muted)}.source-badge{display:inline-block;padding:.15rem .45rem;border-radius:.25rem;font-size:.65rem;font-weight:500;background:#ffffff0f;color:var(--text-secondary);white-space:nowrap}.source-badge--npi{background:#6ee7b71a;color:#6ee7b7}.source-badge--stakeholder_scrape{background:#60a5fa1a;color:#60a5fa}.source-badge--manual{background:#f59e0b1a;color:#f59e0b}.source-badge--auto_recon{background:#9382dc1a;color:#9382dc}.contacts-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;background:var(--bg-elevated, #1A1A1F);border:1px solid rgba(255,255,255,.1);border-radius:.4rem;color:var(--text-secondary);font-family:inherit;font-size:.8rem;cursor:pointer;transition:all .15s;white-space:nowrap}.contacts-btn:hover{border-color:var(--accent);color:var(--text)}.contacts-btn--primary{background:var(--accent);border-color:var(--accent);color:#000;font-weight:600}.contacts-btn--primary:hover{background:#d97706;border-color:#d97706;color:#000}.contacts-btn--danger{background:var(--red, #EF4444);border-color:var(--red, #EF4444);color:#fff;font-weight:600}.contacts-btn--danger:hover{opacity:.85}.contacts-btn--sm{padding:.25rem .6rem;font-size:.75rem}.contacts-btn--icon{padding:.3rem;background:none;border:1px solid transparent}.contacts-btn--icon:hover{border-color:#ffffff1a;background:#ffffff0a}.contacts-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:3rem 1rem;color:var(--text-muted);font-size:.85rem}.contacts-loading__spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.1);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.contacts-pagination{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.75rem 1rem;border-top:1px solid rgba(255,255,255,.06)}.contact-modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#000000a6;backdrop-filter:blur(4px);z-index:3000;align-items:center;justify-content:center}.contact-modal.open{display:flex}.contact-modal__content{background:var(--bg-elevated, #1A1A1F);border:1px solid rgba(255,255,255,.1);border-radius:.75rem;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 12px 40px #00000080}.contact-modal__header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.08)}.contact-modal__close{background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;padding:0 .25rem;line-height:1;transition:color .2s}.contact-modal__close:hover{color:var(--text)}.contact-modal__form{padding:1rem 1.25rem 1.25rem}.contact-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.contact-form__label{display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;color:var(--text-secondary);font-weight:500}.contact-form__input{padding:.45rem .6rem;background:var(--bg-alt, #0F0F12);border:1px solid rgba(255,255,255,.1);border-radius:.35rem;color:var(--text);font-family:inherit;font-size:.85rem;outline:none;transition:border-color .2s}.contact-form__input:focus{border-color:var(--accent)}textarea.contact-form__input{resize:vertical;min-height:60px}.contacts-filters .filter-btn{display:inline-block;padding:.25rem .65rem;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:transparent;color:var(--text-secondary);font-size:.72rem;font-family:inherit;cursor:pointer;transition:all .15s ease;white-space:nowrap}.contacts-filters .filter-btn:hover{border-color:var(--accent);color:var(--accent)}.contacts-filters .filter-btn.active{background:var(--accent);border-color:var(--accent);color:#000;font-weight:600}@media(max-width:768px){.contacts-stats{grid-template-columns:repeat(2,1fr)}.contact-form-grid{grid-template-columns:1fr}.contacts-table{font-size:.75rem}.contacts-table th,.contacts-table td{padding:.4rem .5rem}}
