*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;width:100%;overflow:hidden}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;color:#2c3e50;background-color:#ecf0f1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:#d3af37;text-decoration:none;transition-property:color;transition-duration:.3s ease;transition-timing-function:ease}a:hover{color:#b09127}button{padding:8px 16px;border:none;border-radius:4px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;cursor:pointer;transition-property:background-color,color,transform;transition-duration:.3s ease;transition-timing-function:ease}button:hover{transform:translateY(-1px)}button:active{transform:translateY(0)}button:disabled{opacity:.6;cursor:not-allowed;transform:none}input,textarea{padding:8px 16px;border:1px solid #bdc3c7;border-radius:4px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;transition-property:border-color,box-shadow;transition-duration:.3s ease;transition-timing-function:ease}input:focus,textarea:focus{outline:none;border-color:#d3af37;box-shadow:0 0 0 3px #d3af371a}ul{list-style:none}img{max-width:100%;height:auto;display:block}h1,h2,h3,h4,h5,h6{margin-bottom:8px;font-weight:600;line-height:1.2}h1{font-size:24px}h2{font-size:18px}h3{font-size:16px}p{margin-bottom:8px;line-height:1.6}#app{display:flex;height:100vh;width:100vw;position:relative}#map{flex:1;height:100%;position:relative;z-index:1}.sidebar{width:350px;height:100%;background:#fff;box-shadow:0 10px 20px #00000030,0 6px 6px #0000003b;display:flex;flex-direction:column;position:relative;z-index:10}@media (max-width: 768px){.sidebar{position:absolute;right:0;top:0;transform:translate(100%);transition-property:transform;transition-duration:.3s ease;transition-timing-function:ease}.sidebar.active{transform:translate(0)}}.sidebar-header{padding:16px;border-bottom:1px solid #ecf0f1;background:#ecf0f1}.sidebar-header h2{margin-bottom:16px;color:#2c3e50;font-size:18px}.search-bar{width:100%;padding:8px 16px;margin-bottom:16px}.search-bar input{width:100%;padding:8px 16px;border:1px solid #bdc3c7;border-radius:4px;font-size:14px}.search-bar input::placeholder{color:#7f8c8d}.category-filters{padding:16px;border-bottom:1px solid #ecf0f1}.category-filters h3{margin-bottom:8px;font-size:16px;color:#2c3e50}.category-filters .filter-group{display:flex;flex-direction:column;gap:8px}.category-filters .filter-item{display:flex;justify-content:space-between;align-items:center;padding:4px;cursor:pointer;border-radius:4px;transition-property:background-color;transition-duration:.3s ease;transition-timing-function:ease}.category-filters .filter-item:hover{background:#ecf0f1}.category-filters .filter-item label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:#2c3e50}.category-filters .filter-item label input[type=checkbox]{cursor:pointer;width:16px;height:16px}.category-filters .filter-item label .category-indicator{width:12px;height:12px;border-radius:50%;display:inline-block}.category-filters .filter-item .count{font-size:12px;color:#7f8c8d;background:#ecf0f1;padding:2px 8px;border-radius:4px}.places-list{flex:1;overflow-y:auto;padding:16px}.places-list::-webkit-scrollbar{width:8px}.places-list::-webkit-scrollbar-track{background:#ecf0f1}.places-list::-webkit-scrollbar-thumb{background:#bdc3c7;border-radius:4px}.places-list::-webkit-scrollbar-thumb:hover{background:#a1aab0}.places-list .empty-state{justify-content:center;align-items:center;display:flex;flex-direction:column;padding:32px;text-align:center;color:#7f8c8d}.places-list .empty-state p{margin-top:16px}.place-item{background:#fff;border-radius:8px;box-shadow:0 3px 6px #00000029,0 3px 6px #0000003b;padding:16px;margin-bottom:16px;cursor:pointer;transition-property:transform,box-shadow;transition-duration:.3s ease;transition-timing-function:ease;border-left:4px solid transparent}.place-item:hover{transform:translateY(-2px);box-shadow:0 10px 20px #00000030,0 6px 6px #0000003b}.place-item.active{border-left-color:#d3af37;background:#fcfaf3}.place-item .place-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.place-item .place-header h4{font-size:16px;color:#2c3e50;margin:0;flex:1}.place-item .place-header .category-badges{display:flex;gap:4px}.place-item .place-header .category-badges .badge{width:10px;height:10px;border-radius:50%;display:inline-block}.place-item .place-description{font-size:12px;color:#7f8c8d;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.place-item .place-categories{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.place-item .place-categories .category-tag{font-size:12px;padding:2px 8px;border-radius:4px;background:#ecf0f1;color:#7f8c8d}.place-item .place-logo{width:40px;height:40px;object-fit:contain;margin-bottom:8px}.info-window{max-width:300px;padding:8px}.info-window .info-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.info-window .info-header h3{font-size:16px;color:#2c3e50;margin:0}.info-window .info-header .category-indicators{display:flex;gap:4px}.info-window .info-header .category-indicators .indicator{width:12px;height:12px;border-radius:50%}.info-window .info-logo{width:60px;height:60px;object-fit:contain;margin-bottom:8px}.info-window .info-description{font-size:12px;color:#7f8c8d;margin-bottom:8px;line-height:1.4}.info-window .info-link{display:inline-block;margin-top:8px;color:#d3af37;font-size:12px;text-decoration:none}.info-window .info-link:hover{text-decoration:underline}.info-window .custom-content{margin-top:16px;padding-top:16px;border-top:1px solid #ecf0f1}.loading{display:flex;justify-content:center;align-items:center;padding:32px;color:#7f8c8d;font-size:14px}.error{background:#fff;border-radius:8px;box-shadow:0 3px 6px #00000029,0 3px 6px #0000003b;margin:16px;padding:16px;background:#fdf3f2;border-left:4px solid #e74c3c;color:#e74c3c}.error h3{margin-bottom:8px}.error p{font-size:12px}.sidebar-toggle{display:none;position:absolute;top:16px;right:16px;z-index:11;background:#fff;padding:8px 16px;border-radius:4px;box-shadow:0 3px 6px #00000029,0 3px 6px #0000003b}@media (max-width: 768px){.sidebar-toggle{display:block}}
