*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#f8f9fa;color:#333}.app{height:100vh;display:flex;flex-direction:column;overflow:hidden}.app-header{background:linear-gradient(135deg,rgb(237,28,37) 0%,rgb(200,25,32) 100%);color:#fff;padding:1rem 2rem;text-align:center;box-shadow:0 2px 10px #0000001a}.app-header h1{font-size:1.8rem;margin-bottom:.25rem;font-weight:700}.app-header p{font-size:.9rem;opacity:.9;margin-bottom:.5rem}.legend{display:flex;justify-content:center;gap:1.5rem;margin-top:1rem;padding:.75rem;background:rgba(255,255,255,.1);border-radius:8px;flex-wrap:wrap}.legend-item{font-size:.9rem;color:#fff;font-weight:500}.main-content{display:flex;flex:1;gap:1rem;padding:1rem;max-height:60vh}.map-container{flex:2;min-height:500px;border-radius:12px;overflow:hidden;box-shadow:0 4px 20px #0000001a}.new-layout{display:flex;flex-direction:column;flex:1}.full-width-map-container{position:relative;width:100%;height:60vh;min-height:500px;border-radius:12px;overflow:hidden;box-shadow:0 4px 20px #0000001a;margin:1rem;margin-bottom:0}.map{width:100%;height:100%}.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;border-radius:12px}.loading-spinner{text-align:center;color:#ed1c25}.spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid rgb(237,28,37);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.restaurant-sidecard{position:absolute;top:1rem;right:1rem;width:350px;max-height:calc(100% - 2rem);background:white;border-radius:12px;box-shadow:0 8px 32px #0003;z-index:1000;overflow:hidden;animation:slideInRight .3s ease}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.sidecard-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:linear-gradient(135deg,rgb(237,28,37) 0%,rgb(200,25,32) 100%);color:#fff}.sidecard-header h2{margin:0;font-size:1.3rem;font-weight:600}.close-sidecard{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:background-color .2s}.close-sidecard:hover{background:rgba(255,255,255,.2)}.sidecard-content{padding:1rem;max-height:400px;overflow-y:auto}.restaurant-details{flex:1;background:white;border-radius:12px;padding:1.5rem;box-shadow:0 4px 20px #0000001a;max-height:500px;overflow-y:auto}.restaurant-details h2{color:#2c3e50;margin-bottom:.5rem;font-size:1.5rem}.restaurant-details .address{color:#666;margin-bottom:1rem;font-style:italic}.restaurant-metadata{background:#f8f9fa;border-radius:8px;padding:1rem;margin-bottom:1.5rem;border-left:4px solid rgb(237,28,37)}.metadata-row{display:flex;align-items:center;margin-bottom:.5rem;gap:.5rem}.metadata-row:last-child{margin-bottom:0}.metadata-label{font-weight:600;color:#2c3e50;min-width:120px;font-size:.9rem}.metadata-value{color:#555;font-size:.9rem;flex:1}.metadata-value a{color:#ed1c25;text-decoration:none}.metadata-value a:hover{text-decoration:underline}.metadata-awards{display:flex;flex-wrap:wrap;gap:.3rem}.award-tag-small{background:linear-gradient(135deg,#FFD700,#FFA500);color:#333;padding:.15rem .5rem;border-radius:10px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.2px;box-shadow:0 1px 3px #ffd7004d;border:1px solid #FFD700;display:inline-flex;align-items:center;gap:.2rem}.restaurant-list{background:white;margin:1rem;padding:1.5rem;border-radius:12px;box-shadow:0 4px 20px #0000001a}.restaurant-list h3{color:#2c3e50;margin-bottom:1rem;font-size:1.3rem}.restaurant-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.restaurant-card{background:#f8f9fa;padding:1rem;border-radius:8px;cursor:pointer;transition:all .3s ease;border:2px solid transparent}.card-header{display:flex;justify-content:flex-end;margin-bottom:.5rem;margin-top:-.25rem}.restaurant-card:hover{background:#e9ecef;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.restaurant-card.selected{border-color:#ed1c25;background:#e8f0fe;transform:translateY(-2px);box-shadow:0 4px 12px #dc354533}.restaurant-card h4{color:#2c3e50;margin-bottom:.5rem;font-size:1.1rem}.venue-type{color:#ed1c25;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem;padding:.2rem .5rem;background:rgba(220,53,69,.1);border-radius:12px;display:inline-block}.inquiry-method{color:#6c757d;font-size:.8rem;font-weight:500;margin-bottom:.5rem;padding:.2rem .5rem;background:rgba(108,117,125,.1);border-radius:12px;display:inline-block}.family-badge{color:#28a745;font-size:.8rem;font-weight:500;margin-bottom:.5rem;padding:.2rem .5rem;background:rgba(40,167,69,.1);border-radius:12px;display:inline-block}.brand-star{margin-left:.5rem;font-size:1.2rem;color:gold;text-shadow:0 0 3px rgba(255,215,0,.5);animation:sparkle 2s ease-in-out infinite}@keyframes sparkle{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.last-visited-icon{margin-left:.5rem;font-size:1.1rem;color:#28a745;cursor:help;transition:all .3s ease;position:relative}.last-visited-icon:hover{transform:scale(1.1);filter:brightness(1.2)}.last-visited-icon:before{content:attr(data-tooltip);position:absolute;bottom:130%;left:50%;transform:translate(-50%);background:#333;color:#fff;padding:.5rem .8rem;border-radius:6px;font-size:.8rem;font-weight:400;white-space:nowrap;opacity:0;visibility:hidden;transition:all .3s ease;z-index:1000;box-shadow:0 2px 8px #0003}.last-visited-icon:after{content:"";position:absolute;bottom:120%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#333;opacity:0;visibility:hidden;transition:all .3s ease;z-index:1000}.last-visited-icon:hover:before,.last-visited-icon:hover:after{opacity:1;visibility:visible}.status-badge{display:inline-block;padding:.2rem .6rem;border-radius:15px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;margin:0}.status-prospect{background:#e3f2fd;color:#1976d2;border:1px solid #bbdefb}.status-made-initial-contact{background:#fff3e0;color:#f57c00;border:1px solid #ffcc02}.status-disqualified{background:#ffebee;color:#d32f2f;border:1px solid #ffcdd2}.status-customer{background-color:#4caf50;color:#fff}.website{color:#666;margin:5px 0}.website a{color:#007bff;text-decoration:none}.website a:hover{text-decoration:underline}.website-badge{color:#666;font-size:.9em;margin:2px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.engagement-stats{display:flex;gap:1rem;margin-top:.5rem}.engagement-opens,.engagement-clicks{background:rgba(0,123,255,.1);color:#007bff;padding:.2rem .5rem;border-radius:12px;font-size:.8rem;font-weight:500}.engagement-opens{background:rgba(40,167,69,.1);color:#28a745}.engagement-clicks{background:rgba(220,53,69,.1);color:#ed1c25}.engagement-sent{background:rgba(108,117,125,.1);color:#6c757d}.contacts-list{display:flex;flex-direction:column;gap:1rem}.contact-card{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:1rem;margin-bottom:.5rem}.contact-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.contact-header strong{color:#495057;font-size:1rem}.contact-status{padding:.2rem .5rem;border-radius:12px;font-size:.7rem;font-weight:600;text-transform:uppercase}.contact-status.status-finished{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.contact-details{margin-bottom:.75rem}.contact-sequence{color:#6c757d;font-size:.9rem;font-weight:500}.contact-dates{display:flex;gap:1rem;margin-top:.25rem;font-size:.8rem;color:#6c757d}.contact-card .engagement-stats{flex-wrap:wrap;gap:.5rem}.contact-card .engagement-stats span{font-size:.75rem}@media (max-width: 768px){.main-content{flex-direction:column;max-height:none;min-height:calc(100vh - 200px)}.map-container{min-height:50vh;height:50vh}.restaurant-grid{grid-template-columns:1fr}.app-header h1{font-size:2rem}.app-header p{font-size:1rem}}@media (max-width: 480px){.app-header{padding:1rem}.main-content{padding:.5rem;min-height:calc(100vh - 180px)}.map-container{min-height:45vh;height:45vh}.restaurant-list{margin:.5rem;padding:1rem}.app-header p{font-size:1rem}.filters{gap:1rem;margin-top:1rem;flex-wrap:wrap}.filter-dropdown{min-width:100px;font-size:.8rem}}.filters{display:flex;gap:2rem;justify-content:center;margin-top:1.5rem;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;align-items:center;gap:.5rem}.filter-group label{font-size:.9rem;font-weight:600;color:#ffffffe6}.filter-dropdown{padding:.5rem 1rem;border:2px solid rgba(255,255,255,.3);border-radius:8px;background:rgba(255,255,255,.1);color:#fff;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-width:120px}.filter-dropdown:hover{background:rgba(255,255,255,.2);border-color:#ffffff80}.filter-dropdown:focus{outline:none;background:rgba(255,255,255,.2);border-color:#ffffffb3}.filter-dropdown option{background:#2c3e50;color:#fff}.awards-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin:.5rem 0}.award-tag{background:linear-gradient(135deg,#FFD700,#FFA500);color:#333;padding:.2rem .6rem;border-radius:12px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;box-shadow:0 2px 4px #ffd7004d;border:1px solid #FFD700;display:inline-flex;align-items:center;gap:.2rem;transition:all .3s ease}.award-tag:hover{transform:translateY(-1px);box-shadow:0 4px 8px #ffd70066}.engagement-info{background:#f8f9fa;padding:.75rem;border-radius:8px;border-left:4px solid rgb(237,28,37);margin-top:.25rem}.engagement-info strong{color:#ed1c25;font-size:1.1rem}.engagement-sequence{color:#6c757d;font-size:.9rem}.engagement-clicks{color:#28a745;font-weight:600;font-size:.9rem}.tab-navigation{display:flex;justify-content:center;gap:1rem;margin:1rem 0}.tab-button{padding:.75rem 1.5rem;border:none;border-radius:25px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;background:rgba(255,255,255,.2);color:#fff;border:2px solid rgba(255,255,255,.3)}.tab-button:hover{background:rgba(255,255,255,.3);transform:translateY(-2px)}.tab-button.active{background:white;color:#ed1c25;border-color:#fff;box-shadow:0 4px 15px #ffffff4d}.distance-analysis{flex:1;padding:2rem;max-width:1400px;margin:0 auto;width:100%}.distance-header{text-align:center;margin-bottom:2rem}.distance-header h2{font-size:2rem;color:#333;margin-bottom:.5rem}.distance-header p{font-size:1.1rem;color:#666}.distance-content{display:grid;grid-template-columns:1fr 1fr;gap:2rem;height:calc(100vh - 300px)}.mailing-list-column,.customer-distances-column{background:white;border-radius:12px;padding:1.5rem;box-shadow:0 4px 20px #0000001a;overflow:hidden;display:flex;flex-direction:column}.mailing-list-column h3,.customer-distances-column h3{font-size:1.4rem;color:#333;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid rgb(237,28,37)}.restaurant-list{flex:1;overflow-y:auto;padding:1rem;margin-top:0}.new-layout .restaurant-list{padding:2rem 1rem 1rem;background:#f8f9fa}.new-layout .restaurant-list h3{text-align:center;color:#333;font-size:1.5rem;margin-bottom:2rem;padding-bottom:.5rem;border-bottom:2px solid rgb(237,28,37)}.restaurant-list .restaurant-card{margin-bottom:1rem;padding:1rem;border:2px solid #e9ecef;border-radius:8px;cursor:pointer;transition:all .3s ease;background:white}.restaurant-list .restaurant-card:hover{border-color:#ed1c25;transform:translateY(-2px);box-shadow:0 4px 15px #667eea26}.restaurant-list .restaurant-card.selected{border-color:#ed1c25;background:linear-gradient(135deg,rgb(237,28,37) 0%,rgb(200,25,32) 100%);color:#fff}.restaurant-list .restaurant-card h4{font-size:1.1rem;margin-bottom:.5rem;color:inherit}.restaurant-list .restaurant-card .address{font-size:.9rem;opacity:.8;margin-bottom:.5rem}.restaurant-list .restaurant-card .website-link{font-size:.8rem;color:#ed1c25;text-decoration:none;font-weight:600}.restaurant-list .restaurant-card.selected .website-link{color:#ffffffe6}.customer-distance-list{flex:1;overflow-y:auto;padding-right:.5rem;max-height:calc(100vh - 400px)}.scrollable-list{overflow-y:auto;max-height:calc(100vh - 400px);scrollbar-width:thin;scrollbar-color:rgb(237,28,37) #f1f1f1}.scrollable-list::-webkit-scrollbar{width:8px}.scrollable-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.scrollable-list::-webkit-scrollbar-thumb{background:rgb(237,28,37);border-radius:4px}.scrollable-list::-webkit-scrollbar-thumb:hover{background:#5a67d8}.distance-results{flex:1;display:flex;flex-direction:column;overflow:hidden}.customer-distance-item{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid #e9ecef;border-radius:8px;margin-bottom:.75rem;transition:all .3s ease;background:#f8f9fa}.customer-distance-item:hover{background:#e9ecef;transform:translate(5px)}.distance-rank{background:linear-gradient(135deg,rgb(237,28,37) 0%,rgb(200,25,32) 100%);color:#fff;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;flex-shrink:0}.customer-info{flex:1}.customer-info h5{font-size:1rem;color:#333;margin-bottom:.25rem}.customer-address{font-size:.8rem;color:#666;margin-bottom:.25rem}.customer-type{font-size:.8rem;color:#ed1c25;font-weight:600}.distance-info{text-align:right;flex-shrink:0}.distance-value{font-size:1.1rem;font-weight:700;color:#28a745;background:rgba(40,167,69,.1);padding:.25rem .5rem;border-radius:4px}.distance-results h4{font-size:1.2rem;color:#333;margin-bottom:1rem;text-align:center;padding:.75rem;background:linear-gradient(135deg,rgb(237,28,37) 0%,rgb(200,25,32) 100%);color:#fff;border-radius:8px}.no-selection{flex:1;display:flex;align-items:center;justify-content:center;color:#666;font-style:italic}.distance-analysis .loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;z-index:1000}.main-content-split{display:flex;flex:1;gap:0;overflow:hidden}.map-section{flex:1.5;position:relative;min-width:0}.map-container-split{width:100%;height:100%;position:relative;border-radius:0;overflow:hidden}.restaurant-sidebar{flex:1.5;background:#f8f9fa;border-left:1px solid #e9ecef;display:flex;flex-direction:column;min-width:480px;max-width:600px;overflow:hidden}.restaurant-sidebar h3{background:linear-gradient(135deg,rgb(237,28,37) 0%,rgb(200,25,32) 100%);color:#fff;margin:0;padding:1rem;font-size:1.2rem;font-weight:600;text-align:center;border:none}.restaurant-tiles{flex:1;overflow-y:auto;padding:.5rem;scrollbar-width:thin;scrollbar-color:rgb(237,28,37) #f1f1f1;display:grid;grid-template-columns:1fr 1fr;gap:.5rem;align-content:start}.restaurant-tiles::-webkit-scrollbar{width:6px}.restaurant-tiles::-webkit-scrollbar-track{background:#f1f1f1}.restaurant-tiles::-webkit-scrollbar-thumb{background:rgb(237,28,37);border-radius:3px}.restaurant-tile{background:white;border:2px solid #e9ecef;border-radius:8px;padding:.75rem;cursor:pointer;transition:all .2s ease;position:relative;height:fit-content}.restaurant-tile:hover{border-color:#ed1c25;transform:translate(2px);box-shadow:0 2px 8px #dc354526}.restaurant-tile.selected{border-color:#ed1c25;background:linear-gradient(135deg,rgb(237,28,37) 0%,rgb(200,25,32) 100%);color:#fff;transform:translate(2px)}.tile-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;gap:.5rem}.restaurant-tile h4{margin:0;font-size:.9rem;font-weight:600;line-height:1.2;flex:1;color:inherit}.venue-type-small{background:rgba(220,53,69,.1);color:#ed1c25;padding:.15rem .4rem;border-radius:10px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;flex-shrink:0}.restaurant-tile.selected .venue-type-small{background:rgba(255,255,255,.2);color:#ffffffe6}.website-link{font-size:.75rem;color:#ed1c25;margin:0;text-decoration:none;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.restaurant-tile.selected .website-link{color:#ffffffe6}.map-section .restaurant-sidecard{position:absolute;top:1rem;right:1rem;width:300px;max-width:calc(100% - 2rem)}@media (max-width: 768px){.distance-content{grid-template-columns:1fr;gap:1rem}.tab-navigation{flex-direction:column;align-items:center}.customer-distance-item{flex-direction:column;align-items:flex-start;gap:.5rem}.distance-info{align-self:flex-end}.main-content-split{flex-direction:column}.map-section{height:50vh;min-height:400px}.restaurant-sidebar{min-width:100%;max-width:100%;border-left:none;border-top:1px solid #e9ecef;height:50vh}.restaurant-tiles{padding:1rem;grid-template-columns:1fr;gap:.75rem}.restaurant-tile{padding:1rem}}
