.filterPanel{display:flex;align-items:center;gap:16px;padding:16px 0}.filterGroup{position:relative;display:flex;flex-direction:column;gap:6px}.filterLabel{font-size:14px;font-weight:500;color:#374151;margin:0}.filterSelect{min-width:160px;padding:10px 14px;background:#fff;border:1px solid #d1d5db;border-radius:8px;font-size:14px;color:#111827;cursor:pointer;transition:all .2s ease;display:flex;justify-content:space-between;align-items:center}.filterSelect:hover{border-color:#0195ff;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.filterDropdown{position:absolute;top:65px;left:0;z-index:20;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.1);display:flex;flex-direction:column;min-width:160px;overflow:hidden}.filterDropdown a,.filterDropdown span{padding:10px 14px;font-size:14px;cursor:pointer;color:#374151;transition:background .15s ease}.filterDropdown a{text-decoration:none}.filterDropdown a:hover,.filterDropdown span:hover{background:#f3f4f6}.filterOverlay{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center}.filterModal{background:#fff;border-radius:16px;padding:24px;width:380px;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,.15);display:flex;flex-direction:column;gap:16px;animation:fadeIn .25s ease}.filterSearch{display:flex;align-items:center;gap:8px;border:1px solid #d1d5db;border-radius:8px;padding:8px 10px}.filterSearch img{width:18px;height:18px;opacity:.7}.filterSearch input{border:none;outline:none;flex:1;font-size:14px;color:#111827}.filterSearch input::placeholder{color:#9ca3af}.filterCityList{display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#d1d5db transparent}.filterCityList span{padding:8px 10px;border-radius:6px;cursor:pointer;transition:background .15s ease,color .15s ease;color:#374151;font-size:14px}.filterCityList span:hover{background:#0195ff;color:#fff}.filterReset{font-size:14px;color:#0195ff;cursor:pointer;transition:color .15s ease}.filterReset:hover{color:#0195ff;text-decoration:underline}.filterPanel-container{display:flex;justify-content:center;margin-bottom:2vh;margin-left:1vh;align-items:start;flex-direction:column}@keyframes fadeIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (max-width:800px){.filterPanel{max-width:90vw;overflow-x:auto;gap:20px!important;align-items:flex-start}.filterModal{width:90%;padding:20px}.filterSelect{width:50%}}