@keyframes pin-pulse{0%,to{transform:scale(1);filter:drop-shadow(0 0 4px rgba(255,107,0,.5))}50%{transform:scale(1.18);filter:drop-shadow(0 0 10px rgba(255,107,0,.9))}}.pin-flash{animation:pin-pulse 1.4s ease-in-out infinite;transform-origin:25px 55px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}#map{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.loading-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;transition:opacity .3s ease}.loading-spinner{width:60px;height:60px;border:4px solid rgba(255,255,255,.3);border-top:4px solid #ffffff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{color:#fff;font-size:20px;font-weight:600;letter-spacing:.5px}.loading-count{color:#fffc;font-size:14px;margin-top:8px}.location-btn{position:fixed;bottom:120px;right:10px;width:48px;height:48px;background:#fff;border:none;border-radius:50%;box-shadow:0 2px 6px #0000004d;z-index:100;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#333;touch-action:manipulation}.location-btn:active{background:#f0f0f0;transform:scale(.95)}.toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%);padding:12px 24px;color:#fff;border-radius:8px;font-size:14px;z-index:10000;box-shadow:0 4px 12px #00000026;transition:opacity .3s}.toast-info{background:#3b82f6}.toast-error{background:#ef4444}#demo-banner{position:fixed;top:10px;left:50%;transform:translate(-50%);background:#000000bf;color:gold;font-size:12px;font-weight:600;letter-spacing:.5px;padding:6px 16px;border-radius:20px;z-index:500;pointer-events:none;white-space:nowrap}@media(max-width:375px){.sheet-address{font-size:16px!important}.sheet-btn{padding:12px!important;font-size:13px!important}}@media(min-width:768px){.location-btn{bottom:140px;right:20px;width:56px;height:56px}}.bottom-sheet{position:fixed;bottom:0;left:0;right:0;background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -4px 20px #00000026;z-index:1000;transform:translateY(100%);transition:transform .2s ease-out,height .2s ease-out;height:60vh;overflow:hidden;touch-action:none}.bottom-sheet.hidden{display:none}.bottom-sheet.visible{transform:translateY(0)}.bottom-sheet-handle{width:40px;height:4px;background:#d1d5db;border-radius:2px;margin:12px auto 8px;cursor:grab}.bottom-sheet-handle:active{cursor:grabbing}.bottom-sheet-content{padding:0 16px 24px;overflow-y:auto;max-height:calc(100% - 30px);-webkit-overflow-scrolling:touch}.bottom-sheet-backdrop{position:fixed;inset:0;background:#0000004d;z-index:999;opacity:0;pointer-events:none;transition:opacity .2s ease}.bottom-sheet-backdrop.visible{opacity:1;pointer-events:auto}.sheet-header{margin-bottom:12px}.sheet-address{font-size:18px;font-weight:700;color:#111827;line-height:1.3}.sheet-location{font-size:13px;color:#6b7280;margin-top:2px}.sheet-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.sheet-score-pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;color:#fff}.sheet-score-pill.hot{background:#dc2626}.sheet-score-pill.warm{background:#ea580c}.sheet-score-pill.cold{background:#2563eb}.sheet-score-pill.gap{background:#7c3aed}.sheet-tag{display:inline-flex;align-items:center;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500;background:#f3f4f6;color:#374151}.sheet-auction-row{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#fef2f2;border:1px solid #FECACA;border-radius:10px;margin-bottom:12px}.sheet-auction-icon{font-size:18px}.sheet-auction-text{font-size:14px;font-weight:600;color:#dc2626;flex:1}.sheet-auction-date{font-size:12px;color:#9ca3af}.sheet-actions{display:flex;gap:10px;margin-top:16px;padding-bottom:8px}.sheet-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border:none;border-radius:12px;font-size:14px;font-weight:700;color:#fff;cursor:pointer;touch-action:manipulation;transition:transform .1s,filter .1s}.sheet-btn:active{transform:scale(.98);filter:brightness(.9)}.sheet-btn-navigate{background:linear-gradient(180deg,#2563eb,#1d4ed8);box-shadow:0 2px 4px #0003}.sheet-btn-note{background:linear-gradient(180deg,#10b981,#059669);box-shadow:0 2px 4px #0003}.sheet-btn-icon{font-size:16px}.contacts-section{margin:12px 0}.contacts-header{font-size:14px;font-weight:600;color:#374151;margin-bottom:8px}.contacts-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}.contacts-empty{font-size:13px;color:#9ca3af;padding:12px 0}.contact-card{border-radius:10px;padding:12px;border:2px solid #E5E7EB;background:#fff}.contact-card--primary{background:#f0fdf4;border-color:#86efac}.contact-card--invalid{background:#f9fafb;border-color:#d1d5db;opacity:.6}.contact-card-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.contact-star{font-size:16px}.contact-name{font-size:15px;font-weight:700;color:#111827}.contact-badge-primary{font-size:10px;font-weight:700;background:#16a34a;color:#fff;padding:2px 8px;border-radius:10px;margin-left:auto}.contact-relationship{font-size:13px;color:#6b7280;margin-bottom:6px}.contact-phone-row{margin-bottom:6px}.contact-phone{color:#2563eb;font-size:14px;font-weight:500;text-decoration:none}.contact-meta{display:flex;align-items:center;gap:12px;font-size:12px;color:#9ca3af}.confidence-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px;vertical-align:middle}.confidence-high{background:#22c55e}.confidence-med{background:#eab308}.confidence-low{background:#ef4444}.contact-status-row{margin-top:8px}.contact-status-tag{font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px}.contact-status-wrong,.contact-status-dnc{background:#fee2e2;color:#991b1b}.contact-status-inactive{background:#f3f4f6;color:#6b7280}.log-note-form{display:flex;flex-direction:column;gap:12px}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-size:13px;font-weight:600;color:#374151}.form-group select,.form-group textarea{padding:10px 12px;border:1.5px solid #D1D5DB;border-radius:10px;font-size:14px;font-family:inherit;background:#fff;color:#111827;appearance:none;-webkit-appearance:none}.form-group select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.form-group textarea{resize:vertical;min-height:60px}.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.form-actions{display:flex;gap:10px}.btn-cancel{flex:1;padding:12px;border:1.5px solid #D1D5DB;border-radius:10px;background:#fff;font-size:14px;font-weight:600;color:#374151;cursor:pointer;touch-action:manipulation}.btn-cancel:active{background:#f3f4f6}.btn-submit{flex:1;padding:12px;border:none;border-radius:10px;background:linear-gradient(180deg,#10b981,#059669);font-size:14px;font-weight:700;color:#fff;cursor:pointer;touch-action:manipulation}.btn-submit:active{filter:brightness(.9)}.btn-submit:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.bottom-sheet-content{max-height:calc(100% - 30px)}}
