:root{--p:#667eea;--s:#764ba2;--bg:linear-gradient(135deg,var(--p),var(--s));--t:.3s}.center-nav{position:fixed;bottom:100px;right:0;z-index:1000;display:flex;align-items:center}.nav-button{background:var(--bg);border:0;border-radius:50% 0 0 50%;color:#fff;font-size:18px;cursor:pointer;box-shadow:-3px 0 15px rgba(102,126,234,.4);transition:all var(--t);display:flex;align-items:center;justify-content:center;width:25px;height:80px}.nav-button:hover{transform:translateX(-3px);box-shadow:-5px 0 20px rgba(102,126,234,.6)}.nav-button i{transition:transform var(--t)}.nav-button.open i{transform:rotate(180deg)}.nav-aside{position:absolute;bottom:0;right:100%;background:rgba(255,255,255,.98);border-radius:20px;box-shadow:-15px 0 50px rgba(0,0,0,.2);padding:25px;min-width:400px;max-width:450px;max-height:80vh;overflow-y:auto;backdrop-filter:blur(20px);opacity:0;visibility:hidden;transform:translateX(20px) scale(.9);transition:all .4s;margin-right:10px}.nav-aside.show{opacity:1;visibility:visible;transform:scale(1)}.nav-header{text-align:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid rgba(102,126,234,.1)}.nav-title{color:#333;font-size:18px;font-weight:700;margin:0;background:var(--bg);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.filter-section{margin-bottom:20px}.filter-legend{font-weight:700;color:#2d3748;font-size:15px;margin-bottom:12px;padding:8px 12px;background:linear-gradient(135deg,rgba(102,126,234,.1),rgba(118,75,162,.1));border-radius:10px;border-left:4px solid var(--p);display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none;border:0}.filter-legend i{color:var(--p);transition:transform var(--t)}.filter-legend.collapsed i.bi-chevron-down{transform:rotate(-90deg)}.filter-content{max-height:1000px;overflow:hidden;transition:all var(--t);opacity:1}.filter-content.collapsed{max-height:0;opacity:0}.city-group{margin-bottom:15px;padding:10px;background:rgba(102,126,234,.05);border-radius:8px;border-left:3px solid var(--p)}.city-legend{font-weight:600;color:#2d3748;font-size:14px;margin-bottom:8px;cursor:pointer;user-select:none;display:flex;align-items:center;gap:8px;padding:8px 12px;background:rgba(102,126,234,.08);border-radius:8px;transition:all var(--t);border:0}.city-legend:hover{background:rgba(102,126,234,.15);color:var(--p)}.city-legend i{color:var(--p);font-size:12px;transition:transform var(--t)}.city-legend.collapsed i{transform:rotate(-90deg)}.city-options{max-height:400px;overflow:hidden;transition:all var(--t);opacity:1;margin:8px 0 15px}.city-options.collapsed{max-height:0;opacity:0;margin:0}.nav-link{display:block;color:#4a5568;text-decoration:none;padding:6px 12px;font-size:13px;border-radius:8px;margin:2px 0;transition:all var(--t);position:relative;border:1px solid transparent;overflow:hidden}.nav-link::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(135deg,rgba(102,126,234,.1),rgba(118,75,162,.1));transition:left var(--t);z-index:-1}.nav-link:hover::before{left:0}.nav-link:hover{color:var(--p);text-decoration:none;transform:translateX(3px);font-weight:500;border-color:rgba(102,126,234,.3)}.filter-option{padding-left:20px;font-size:12px;position:relative}.filter-option::before{content:"▸";position:absolute;left:12px;color:var(--p);font-size:10px}.nav-aside::-webkit-scrollbar{width:6px}.nav-aside::-webkit-scrollbar-track{background:rgba(0,0,0,.05);border-radius:3px}.nav-aside::-webkit-scrollbar-thumb{background:rgba(102,126,234,.3);border-radius:3px}@media (max-width:768px){.center-nav{bottom:80px}.nav-button{width:20px;height:70px;font-size:16px}.nav-aside{min-width:300px;max-width:calc(100vw - 40px);padding:20px;max-height:70vh}}