.page{padding:1.5rem 1.125rem 1rem}.page-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;gap:.75rem}.page-title{font-size:1.375rem;font-weight:800;color:var(--navy);letter-spacing:-.02em;line-height:1.2}.page-sub{font-size:.82rem;color:var(--text-muted);font-weight:500;margin-top:.2rem}.select-btn{padding:.4rem .875rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:.78rem;font-weight:600;background:var(--card);color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:all .15s;font-family:inherit}.select-btn:hover{border-color:var(--navy);color:var(--navy)}.search-bar{position:relative;margin-bottom:1rem}.search-bar svg{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--text-light);pointer-events:none}.search-input{width:100%;padding:.8rem 1rem .8rem 2.75rem;border:1.5px solid var(--border);border-radius:var(--radius);font-size:.9rem;background:var(--card);outline:none;transition:border-color .15s,box-shadow .15s;font-family:inherit;color:var(--text);box-shadow:var(--shadow-sm)}.search-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1a}.filter-row{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.5rem;margin-bottom:1rem;scrollbar-width:none}.filter-row::-webkit-scrollbar{display:none}.filter-chip{flex-shrink:0;padding:.4rem .875rem;border-radius:999px;font-size:.78rem;font-weight:600;border:1.5px solid var(--border);background:var(--card);color:var(--text-muted);cursor:pointer;transition:all .15s;white-space:nowrap;font-family:inherit}.filter-chip.active{background:var(--navy);border-color:var(--navy);color:#fff}.contact-count{font-size:.78rem;color:var(--text-light);margin-bottom:.875rem;font-weight:500}.contact-list{display:flex;flex-direction:column;gap:.625rem;padding-bottom:6rem}.contact-card-wrap{border-radius:14px;margin-bottom:0}.contact-card-wrap .contact-card{border-radius:14px 0 0 14px;margin-bottom:0}.this-week-btn{flex-shrink:0;width:40px;height:100%;min-height:56px;border:1px solid var(--card-border);border-left:none;border-radius:0 14px 14px 0;background:var(--card);font-size:1.1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.4;transition:opacity .15s,background .15s}.this-week-btn:hover,.this-week-btn.active{opacity:1;background:#eff6ff}.this-week-btn.active{background:#dbeafe;border-color:#93c5fd}.contact-card{background:var(--card);border-radius:14px;padding:.875rem 1rem .875rem 1.125rem;display:flex;align-items:center;gap:.875rem;text-decoration:none;color:inherit;border:1px solid var(--card-border);transition:transform .15s,box-shadow .15s,border-color .15s;cursor:pointer;box-shadow:0 1px 3px #0000000d,0 1px 2px #0000000a;position:relative;overflow:hidden}.contact-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--health-color, #e5e7eb);border-radius:14px 0 0 14px}.contact-card:active,.contact-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000014,0 2px 4px #0000000d;border-color:#d1d9e6}.avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#dbeafe,#eff6ff);display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:700;color:#1d4ed8;flex-shrink:0;text-transform:uppercase;box-shadow:0 0 0 2px #fff,0 0 0 3px #e5e7eb}.contact-info{flex:1;min-width:0}.contact-name{font-size:.925rem;font-weight:700;color:var(--text, #f1f5f9);margin-bottom:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.015em}.contact-company{font-size:.775rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.contact-badge{flex-shrink:0;font-size:.67rem;font-weight:700;padding:.22rem .6rem;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.badge-partner{background:#d1fae5;color:#065f46}.badge-prospect{background:#dbeafe;color:#1e40af}.badge-client{background:#e0e7ff;color:#3730a3}.badge-lender{background:#fef3c7;color:#92400e}.badge-supplier{background:#f3e8ff;color:#6b21a8}.badge-network{background:#f0fdf4;color:#166534}.badge-other{background:#f1f5f9;color:#64748b}.fab{position:fixed;bottom:84px;right:1.25rem;width:52px;height:52px;background:#0f2744;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #0f274459;text-decoration:none;z-index:40;transition:transform .2s,box-shadow .2s}.fab:active{transform:scale(.93);box-shadow:0 2px 8px #0f274440}.state-box{text-align:center;padding:3rem 1rem;color:#6b7280}.state-icon{font-size:2.5rem;margin-bottom:.75rem}.state-title{font-size:1rem;font-weight:600;color:#374151;margin-bottom:.375rem}.state-sub{font-size:.85rem}.skeleton-card{background:#fff;border-radius:12px;padding:1rem;display:flex;align-items:center;gap:.875rem}.skel{background:linear-gradient(90deg,#f0f4f8 25%,#e5e7eb,#f0f4f8 75%);background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:6px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skel-avatar{width:44px;height:44px;border-radius:50%;flex-shrink:0}.skel-lines{flex:1;display:flex;flex-direction:column;gap:.5rem}.skel-name{height:14px;width:55%}.skel-company{height:12px;width:38%}.contact-card.selectable{cursor:pointer}.contact-card.selected{background:var(--blue-light);border-color:var(--blue)}.card-check{display:none;width:22px;height:22px;border-radius:50%;border:2px solid #d1d5db;background:#fff;flex-shrink:0;align-items:center;justify-content:center}.bulk-mode .card-check{display:flex}.contact-card.selected .card-check{background:#3b82f6;border-color:#3b82f6;color:#fff}.bulk-bar{position:fixed;bottom:72px;left:0;right:0;background:#0f2744;color:#fff;padding:.875rem 1.25rem;display:none;align-items:center;justify-content:space-between;z-index:50;max-width:600px;margin:0 auto}.bulk-bar.visible{display:flex}.bulk-count{font-size:.9rem;font-weight:600}.bulk-actions{display:flex;gap:.5rem}.bulk-action-btn{font-size:.8rem;font-weight:600;padding:.5rem .875rem;border-radius:8px;border:none;cursor:pointer;transition:opacity .15s}.bulk-action-btn:disabled{opacity:.5}.bulk-archive{background:#ef4444;color:#fff}.bulk-merge{background:#3b82f6;color:#fff}.merge-overlay{position:fixed;inset:0;background:#0000008c;z-index:200;display:none;align-items:flex-end;justify-content:center}.merge-overlay.open{display:flex}.merge-sheet{background:var(--card);border-radius:24px 24px 0 0;padding:1.5rem 1.25rem 2rem;width:100%;max-width:600px;max-height:90vh;overflow-y:auto}.merge-handle{width:40px;height:4px;background:var(--border);border-radius:99px;margin:0 auto 1.25rem}.merge-title{font-size:1.1rem;font-weight:800;color:var(--navy);margin-bottom:.375rem}.merge-sub{font-size:.82rem;color:var(--text-muted);margin-bottom:1.25rem}.merge-cards{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1.25rem}.merge-card{border:2px solid var(--border);border-radius:14px;padding:1rem;cursor:pointer;transition:border-color .15s,background .15s}.merge-card.primary-choice{border-color:#3b82f6;background:#eff6ff}.merge-card-name{font-size:.9rem;font-weight:700;color:var(--navy);margin-bottom:.2rem}.merge-card-detail{font-size:.75rem;color:var(--text-muted);line-height:1.4}.merge-card-radio{display:flex;align-items:center;gap:.4rem;font-size:.75rem;font-weight:600;color:var(--text-muted);margin-bottom:.625rem}.merge-card.primary-choice .merge-card-radio{color:#2563eb}.merge-rule{font-size:.78rem;color:var(--text-muted);background:var(--bg);border-radius:10px;padding:.75rem 1rem;margin-bottom:1.25rem;line-height:1.5}.merge-actions{display:flex;gap:.75rem}.merge-cancel{flex:1;padding:.875rem;border-radius:12px;border:1.5px solid var(--border);background:var(--card);font-size:.9rem;font-weight:600;color:var(--text-muted);cursor:pointer;font-family:inherit}.merge-confirm{flex:2;padding:.875rem;border-radius:12px;border:none;background:#0f2744;font-size:.9rem;font-weight:700;color:#fff;cursor:pointer;font-family:inherit;transition:opacity .15s}.merge-confirm:disabled{opacity:.5}.tag-overlay{position:fixed;inset:0;background:#0000008c;z-index:200;display:none;align-items:flex-end;justify-content:center}.tag-overlay.open{display:flex}.tag-sheet{background:var(--card);border-radius:24px 24px 0 0;padding:1.5rem 1.25rem 2rem;width:100%;max-width:600px;max-height:80vh;overflow-y:auto}.tag-handle{width:40px;height:4px;background:var(--border);border-radius:99px;margin:0 auto 1.25rem}.tag-title{font-size:1.1rem;font-weight:800;color:var(--navy);margin-bottom:.25rem}.tag-sub{font-size:.82rem;color:var(--text-muted);margin-bottom:1rem}.tag-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tag-chip-sel{padding:.4rem .875rem;border-radius:999px;font-size:.8rem;font-weight:600;border:1.5px solid var(--border);background:var(--card);color:var(--text-muted);cursor:pointer;transition:all .15s;font-family:inherit}.tag-chip-sel.chosen{background:#0f2744;border-color:#0f2744;color:#fff}.tag-input-row{display:flex;gap:.5rem;margin-bottom:1.25rem}.tag-new-input{flex:1;padding:.65rem .875rem;border:1.5px solid var(--border);border-radius:10px;font-size:.88rem;font-family:inherit;color:var(--text);background:var(--card);outline:none}.tag-new-input:focus{border-color:var(--blue)}.tag-add-btn{padding:.65rem 1rem;border-radius:10px;border:none;background:var(--navy);color:#fff;font-size:.85rem;font-weight:700;cursor:pointer;font-family:inherit}.tag-actions{display:flex;gap:.75rem}.tag-cancel{flex:1;padding:.875rem;border-radius:12px;border:1.5px solid var(--border);background:var(--card);font-size:.9rem;font-weight:600;color:var(--text-muted);cursor:pointer;font-family:inherit}.tag-apply{flex:2;padding:.875rem;border-radius:12px;border:none;background:#0f2744;font-size:.9rem;font-weight:700;color:#fff;cursor:pointer;font-family:inherit;transition:opacity .15s}.tag-apply:disabled{opacity:.5}
