.tab-badge{background-color:var(--secondary-color);color:#fff;border-radius:50%;padding:0 5px;font-size:10px;margin-left:6px;vertical-align:middle}.heat-zones-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.heat-zone-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-left:4px solid var(--secondary-color);border-radius:var(--border-radius);padding:20px;cursor:pointer;transition:var(--transition)}.heat-zone-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-medium)}.zone-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-weight:600}.zone-name{color:var(--text-primary)}.zone-value{background:var(--secondary-color);color:#fff;padding:4px 10px;border-radius:12px;font-size:12px}.zone-details{display:grid;grid-template-columns:1fr 1fr;gap:4px;font-size:13px;color:var(--text-secondary);margin-bottom:12px}.zone-events{font-size:13px;color:var(--text-secondary)}.zone-events ul{list-style-type:none;padding-left:10px;margin-top:4px}.zone-events li{margin-bottom:2px}.zone-info-window{padding:10px;max-width:250px}.zone-info-window h4{margin-bottom:8px;color:#333}.zone-info-window p{margin:4px 0;font-size:12px;color:#666}.detailed-analysis-panel{position:fixed;top:var(--header-height);left:0;right:0;bottom:var(--footer-height);background:var(--bg-primary);border-bottom:1px solid var(--border-color);z-index:999;box-shadow:var(--shadow-light);display:flex;flex-direction:column;transform:translateY(-100%);opacity:0;visibility:hidden;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s ease,visibility .4s}.detailed-analysis-panel.show{transform:translateY(0);opacity:1;visibility:visible}.analysis-tabs{display:flex;padding:16px 24px 0;gap:8px;border-bottom:1px solid var(--border-color);overflow-x:auto;white-space:nowrap;flex-shrink:0}.analysis-tab{background:transparent;border:1px solid var(--border-color);padding:8px 16px;border-radius:20px 20px 0 0;cursor:pointer;font-size:13px;transition:var(--transition);color:var(--text-secondary);white-space:nowrap}.analysis-tab:hover{border-color:var(--primary-color);color:var(--primary-color)}.analysis-tab.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.analysis-content-detail{padding:24px;max-height:350px;overflow-y:auto;flex-grow:1;min-height:0;-webkit-overflow-scrolling:touch}.actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.action-card{background:var(--bg-secondary);border-radius:var(--border-radius);padding:20px;border:1px solid var(--border-color);transition:var(--transition);position:relative;overflow:hidden}.action-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--border-color);transition:var(--transition)}.action-card.priority-高:before{background:#ff6b6b}.action-card.priority-中:before{background:#ffb74d}.action-card.priority-低:before{background:var(--primary-color)}.action-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-medium)}.action-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.action-type-icon{font-size:20px}.action-priority{background:var(--primary-color);color:#fff;padding:4px 8px;border-radius:8px;font-size:12px;font-weight:600}.action-priority.priority-高{background:#ff6b6b}.action-priority.priority-低{background:#95a5a6}.action-confidence{font-size:12px;color:var(--text-secondary)}.action-title{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.action-description{color:var(--text-secondary);font-size:14px;line-height:1.4;margin-bottom:12px}.action-footer{padding-top:12px;border-top:1px solid var(--border-color)}.action-benefit{font-size:12px;color:var(--primary-color);font-weight:600}.demand-overview{margin-bottom:24px}.demand-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--bg-secondary);padding:16px;border-radius:var(--border-radius);display:flex;align-items:center;gap:12px;border:1px solid var(--border-color)}.stat-card .stat-icon{font-size:24px}.stat-card .stat-value{font-size:18px;font-weight:700;color:var(--text-primary)}.stat-card .stat-label{font-size:12px;color:var(--text-secondary)}.peak-hours-section h4,.demand-drivers h4{color:var(--text-primary);margin-bottom:12px;font-size:16px}.peak-hours-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:24px}.peak-hour-item{background:linear-gradient(135deg,var(--primary-color),var(--accent-color));color:#fff;padding:12px;border-radius:8px;text-align:center}.peak-time{font-size:16px;font-weight:600;margin-bottom:4px}.peak-events,.peak-density{font-size:12px;opacity:.9}.drivers-list{display:flex;flex-wrap:wrap;gap:8px}.driver-tag{background:var(--bg-secondary);padding:6px 12px;border-radius:16px;font-size:12px;border:1px solid var(--border-color);color:var(--text-secondary)}.positioning-recommendations{display:flex;flex-direction:column;gap:16px}.location-recommendation{background:var(--bg-secondary);border-radius:var(--border-radius);padding:20px;border:1px solid var(--border-color);transition:var(--transition)}.location-recommendation.best-location{border-color:var(--primary-color);box-shadow:0 0 0 2px #4ecdc433}.location-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.location-name{font-size:16px;font-weight:600;color:var(--text-primary)}.location-score{background:var(--primary-color);color:#fff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.location-details{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--text-secondary)}.location-reasoning{font-style:italic;margin-top:8px}.timing-advice-card{background:linear-gradient(135deg,var(--primary-color),var(--accent-color));color:#fff;padding:20px;border-radius:var(--border-radius);margin-bottom:24px}.timing-advice-card h4{margin-bottom:8px}.timing-main-advice{font-size:16px;line-height:1.4}.hourly-analysis h4{color:var(--text-primary);margin-bottom:16px}.hourly-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.hour-item{background:var(--bg-secondary);padding:16px;border-radius:8px;border:1px solid var(--border-color);text-align:center;transition:var(--transition)}.hour-item.peak-hour{border-color:var(--secondary-color);background:linear-gradient(135deg,#ffe5e5,#fff0f0)}.hour-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-light)}.hour-time{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.hour-opportunities,.hour-value,.hour-efficiency{font-size:12px;color:var(--text-secondary);margin-bottom:4px}.analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.analysis-card{background:var(--bg-secondary);border-radius:var(--border-radius);padding:20px;border:1px solid var(--border-color);transition:var(--transition)}.analysis-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-medium)}.analysis-card h4{margin-bottom:16px;color:var(--text-primary)}.weather-card{border-left:4px solid #2196F3}.competition-card{border-left:4px solid #FF9800}.fatigue-card{border-left:4px solid #4CAF50}.revenue-card{border-left:4px solid #9C27B0}.weather-content,.competition-content,.fatigue-content,.revenue-content{display:flex;flex-direction:column;gap:8px}.impact-level,.demand-multiplier,.weather-advice,.competition-level,.competition-ratio,.competition-advice,.energy-level,.rest-needed,.fatigue-advice,.optimization-advice,.best-period{font-size:14px;color:var(--text-secondary)}.rest-needed.needs-rest{color:#ff6b6b;font-weight:600}.quality-score{display:flex;flex-direction:column;align-items:center;gap:2px}.score-label{font-size:10px;opacity:.8}.score-value{font-size:12px;font-weight:600}.suggestion-meta{display:flex;gap:16px;font-size:13px;opacity:.9;margin-top:8px}.time-window,.expected-benefit{display:flex;align-items:center;gap:4px}.detail-btn{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:10px 18px;border-radius:20px;cursor:pointer;font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px;transition:var(--transition);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.detail-btn:hover{background:#ffffff4d;transform:translateY(-1px)}:root{--primary-color: #4ECDC4;--secondary-color: #FF6B6B;--accent-color: #45B7D1;--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--text-primary: #2c3e50;--text-secondary: #7f8c8d;--border-color: #e0e0e0;--shadow-light: 0 2px 10px rgba(0, 0, 0, .1);--shadow-medium: 0 4px 20px rgba(0, 0, 0, .15);--border-radius: 12px;--transition: all .3s cubic-bezier(.4, 0, .2, 1);--header-height: 80px;--footer-height: 80px}.dark-mode{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--text-primary: #ffffff;--text-secondary: #b0b0b0;--border-color: #404040;--shadow-light: 0 2px 10px rgba(0, 0, 0, .3);--shadow-medium: 0 4px 20px rgba(0, 0, 0, .4)}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg-primary);color:var(--text-primary);transition:var(--transition)}#app{height:100vh;display:flex;flex-direction:column;transition:var(--transition);overflow:hidden}.fixed-header{position:fixed!important;top:0;left:0;right:0;z-index:1000;height:var(--header-height)}.scrollable-content{flex:1;margin-top:var(--header-height);margin-bottom:var(--footer-height);overflow-y:auto;overflow-x:hidden}.fixed-footer{position:fixed!important;bottom:0;left:0;right:0;z-index:1000;height:var(--footer-height)}.suggestion-bar{padding:16px 24px;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:var(--transition);display:flex;align-items:center;background:linear-gradient(135deg,#4ecdc4,#44a08d);box-shadow:0 4px 20px #4ecdc44d}.suggestion-bar.high-priority{background:linear-gradient(135deg,#ff6b6b,#ff8e53);box-shadow:0 4px 20px #ff6b6b4d}.suggestion-bar.medium-priority{background:linear-gradient(135deg,#4ecdc4,#44a08d);box-shadow:0 4px 20px #4ecdc44d}.suggestion-bar.low-priority{background:linear-gradient(135deg,#95a5a6,#7f8c8d);box-shadow:0 4px 20px #95a5a64d}.dark-mode .suggestion-bar{background:linear-gradient(135deg,#2d5f5d,#1e4544)!important;box-shadow:0 4px 20px #00000080}.dark-mode .suggestion-bar.high-priority{background:linear-gradient(135deg,#d64545,#c73838)!important;box-shadow:0 4px 20px #d6454566}.dark-mode .suggestion-bar.medium-priority{background:linear-gradient(135deg,#2d5f5d,#1e4544)!important;box-shadow:0 4px 20px #2d5f5d66}.dark-mode .suggestion-bar.low-priority{background:linear-gradient(135deg,#5a6c6d,#4a5b5c)!important;box-shadow:0 4px 20px #5a6c6d66}.suggestion-content{display:flex;align-items:center;gap:20px;max-width:1400px;margin:0 auto;width:100%}.priority-indicator{display:flex;flex-direction:column;gap:8px;min-width:120px}.priority-badge{background:#fff3;padding:6px 14px;border-radius:16px;font-size:13px;font-weight:600;text-align:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.confidence-meter{height:4px;background:#fff3;border-radius:2px;overflow:hidden}.confidence-fill{height:100%;background:#fffc;border-radius:2px;transition:width .5s ease}.suggestion-main{flex:1}.suggestion-text{font-size:18px;font-weight:600;margin-bottom:4px}.suggestion-detail{font-size:14px;opacity:.9}.action-buttons{display:flex;gap:12px}.refresh-btn,.theme-btn,.detail-btn{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:10px 18px;border-radius:20px;cursor:pointer;font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px;transition:var(--transition);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.refresh-btn:hover:not(:disabled),.theme-btn:hover,.detail-btn:hover{background:#ffffff4d;transform:translateY(-1px)}.dark-mode .theme-btn{background:#ffffff4d;border-color:#ffffff80}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.btn-icon{font-size:16px}.main-container{display:flex;flex:1;min-height:100%;gap:0}.map-section{flex:1;display:flex;flex-direction:column;position:relative;min-height:100%}.map-container{flex:1;position:relative;background:var(--bg-secondary);min-height:400px}.map-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;background:var(--bg-secondary);color:var(--text-secondary)}.loading-spinner{width:50px;height:50px;border:4px solid var(--border-color);border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.map-controls{position:absolute;top:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:100}.control-btn{width:44px;height:44px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:var(--shadow-light);transition:var(--transition)}.control-btn:hover{background:var(--primary-color);color:#fff;transform:scale(1.1)}.bottom-stats{display:flex;background:var(--bg-primary);border-top:1px solid var(--border-color);padding:16px 24px;box-shadow:var(--shadow-light)}.stat-item{flex:1;display:flex;align-items:center;gap:12px;padding:0 16px}.stat-item:not(:last-child){border-right:1px solid var(--border-color)}.stat-icon{font-size:24px}.stat-info{display:flex;flex-direction:column}.stat-value{font-size:20px;font-weight:700;color:var(--text-primary)}.stat-label{font-size:12px;color:var(--text-secondary);margin-top:2px}.analysis-panel{position:fixed;bottom:100px;right:16px;width:280px;background:var(--bg-primary);border-radius:var(--border-radius);box-shadow:var(--shadow-medium);border:1px solid var(--border-color);z-index:999;transition:var(--transition);opacity:.6}.analysis-panel.collapsed{width:auto;max-height:auto}.analysis-panel.collapsed .analysis-content{display:none}.analysis-header{padding:12px 16px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border-color)}.analysis-header h4{font-size:14px;margin:0}.collapse-indicator{background:transparent;border:none;font-size:14px;cursor:pointer}.analysis-content{padding:16px}.mini-chart{display:flex;align-items:flex-end;gap:12px;height:90px;margin-bottom:24px;padding:0 8px}.chart-bar{flex:1;background:linear-gradient(to top,var(--primary-color),var(--accent-color));border-radius:2px 2px 0 0;min-height:10px;opacity:.8;transition:var(--transition)}.chart-bar{flex:1;background:linear-gradient(to top,var(--primary-color),var(--accent-color));border-radius:3px 3px 0 0;position:relative;transition:height .5s ease-out;max-height:100%}.chart-bar:before{content:attr(data-value);position:absolute;top:-20px;left:50%;transform:translate(-50%);font-size:12px;font-weight:600;color:var(--primary-color);white-space:nowrap}.chart-bar:after{content:attr(data-label);position:absolute;bottom:-20px;left:50%;transform:translate(-50%);font-size:11px;color:var(--text-secondary)}.chart-bar:last-child{background:linear-gradient(to top,var(--secondary-color),#ff8a80)}.chart-bar:last-child:before{color:var(--secondary-color);font-size:14px}.chart-bar:hover{opacity:1;transform:scaleY(1.2)}.analysis-summary{display:flex;flex-direction:column;gap:6px}.summary-item{display:flex;justify-content:space-between;font-size:12px}.summary-label{color:var(--text-secondary)}.summary-value{color:var(--text-primary);font-weight:600}.summary-value.highlight{color:var(--primary-color)}.sidebar{width:400px;background:var(--bg-primary);border-left:1px solid var(--border-color);display:flex;flex-direction:column;box-shadow:var(--shadow-medium);transition:var(--transition)}.sidebar-collapsed{width:60px}.sidebar-header{padding:24px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;background:var(--bg-secondary);flex-shrink:0}.header-left h3{color:var(--text-primary);font-size:18px;margin-bottom:4px}.event-count{background:var(--primary-color);color:#fff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.collapse-btn{background:transparent;border:1px solid var(--border-color);padding:8px;border-radius:8px;cursor:pointer;font-size:14px;transition:var(--transition)}.collapse-btn:hover{background:var(--primary-color);color:#fff}.filter-section{padding:16px 24px;border-bottom:1px solid var(--border-color);flex-shrink:0}.filter-tabs{display:flex;gap:8px}.filter-tab{background:transparent;border:1px solid var(--border-color);padding:8px 16px;border-radius:20px;cursor:pointer;font-size:13px;transition:var(--transition);color:var(--text-secondary)}.filter-tab:hover{border-color:var(--primary-color);color:var(--primary-color)}.filter-tab.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.sidebar-content{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.events-summary{padding:16px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-bottom:1px solid var(--border-color);margin-bottom:8px;border-radius:8px;flex-shrink:0}.summary-stats{display:flex;justify-content:space-around;gap:12px}.summary-stats .stat-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);font-weight:500;border-right:none;padding:0;flex:none}.summary-stats .stat-icon{font-size:16px}.events-list{flex:1;overflow-y:auto;padding:0 16px 16px;min-height:0}.no-events{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-illustration{font-size:48px;margin-bottom:16px}.refresh-empty-btn{background:var(--primary-color);color:#fff;border:none;padding:12px 24px;border-radius:var(--border-radius);cursor:pointer;margin-top:16px;font-weight:500;transition:var(--transition)}.refresh-empty-btn:hover{background:var(--secondary-color);transform:translateY(-2px)}.event-item{background:var(--bg-secondary);border-radius:var(--border-radius);padding:20px;margin-bottom:12px;cursor:pointer;transition:var(--transition);border:1px solid var(--border-color);position:relative;overflow:hidden}.event-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--border-color);transition:var(--transition)}.event-item:hover{transform:translate(4px);box-shadow:var(--shadow-medium)}.event-item.urgent:before{background:#ff6b6b}.event-item.important:before{background:#ffb74d}.event-item.normal:before{background:var(--primary-color)}.event-item.weather-event{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-left-color:#2196f3}.event-item.weather-event:before{background:#2196f3}.event-item.weather-event .event-name{color:#1565c0}.event-item.expired{opacity:.6;background:#f5f5f5}.event-item.expired .event-name{text-decoration:line-through;color:#999}.event-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.event-time{display:flex;flex-direction:column}.time-main{font-size:20px;font-weight:700;color:var(--text-primary)}.time-countdown{font-size:12px;color:var(--text-secondary);margin-top:2px}.event-priority{font-size:20px}.event-body h4{font-size:16px;color:var(--text-primary);margin-bottom:8px;font-weight:600}.event-meta{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--text-secondary);margin-bottom:12px}.event-actions{display:flex;gap:8px}.action-btn{background:transparent;border:1px solid var(--border-color);padding:6px 12px;border-radius:8px;cursor:pointer;font-size:12px;transition:var(--transition);color:var(--text-secondary)}.navigate-btn:hover{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.star-btn:hover{background:gold;border-color:gold;color:#fff}.status-indicators{position:fixed;bottom:68px;left:24px;display:flex;flex-direction:column;gap:8px;z-index:1000;opacity:.65}.status-indicator,.gps-indicator{background:var(--bg-primary);border:1px solid var(--border-color);padding:8px 16px;border-radius:20px;font-size:12px;display:flex;align-items:center;gap:8px;box-shadow:var(--shadow-light);transition:var(--transition)}.status-indicator.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.gps-indicator.active{background:#4caf50;color:#fff;border-color:#4caf50}.fab-container{position:fixed;bottom:360px;right:24px;z-index:1001}.fab-main{width:48px;height:48px;background:var(--secondary-color);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-medium);transition:var(--transition);color:#fff;font-size:20px;opacity:.6;transition:all .3s cubic-bezier(.4,0,.2,1)}.fab-main:hover,.fab-main.active{opacity:1;transform:scale(1.1);transform:rotate(45deg) scale(1.1);box-shadow:0 8px 25px #ff6b6b66}.fab-menu{position:absolute;bottom:70px;right:0;display:flex;flex-direction:column;gap:12px;transform:scale(0);transition:var(--transition);transform-origin:bottom center}.fab-menu.show{transform:scale(1)}.fab-item{width:44px;height:44px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;box-shadow:var(--shadow-light);transition:var(--transition)}.fab-item:hover{background:var(--primary-color);color:#fff;transform:scale(1.1)}@media (max-width: 1024px){.sidebar{width:350px}.suggestion-content{gap:16px}.priority-indicator{min-width:100px}.analysis-panel{width:250px;right:12px}}@media (max-width: 768px){:root{--header-height: auto;--footer-height: 70px}.scrollable-content{margin-top:130px}.main-container{flex-direction:column}.map-section{height:45vh;flex:none}.sidebar{width:100%;height:auto;flex:1}.suggestion-bar{height:auto;padding:12px 16px}.suggestion-content{flex-wrap:wrap;row-gap:12px}.priority-indicator{min-width:100px;flex-shrink:0}.suggestion-main{order:3;flex-basis:100%;text-align:center}.action-buttons{margin-left:auto}.refresh-btn,.theme-btn,.detail-btn{padding:8px 14px;font-size:13px}.bottom-stats{padding:8px 16px;height:var(--footer-height)}.bottom-stats .stat-item{gap:4px;padding:0 4px}.bottom-stats .stat-icon{font-size:20px}.bottom-stats .stat-value{font-size:16px}.bottom-stats .stat-label{font-size:10px}.analysis-panel{bottom:80px;right:12px;width:240px}.fab-container{bottom:160px;right:16px}.status-indicators{bottom:80px;left:16px}.mini-chart{gap:12px}.chart-bar:before{font-size:7px;top:-14px}.chart-bar:after{font-size:8px;bottom:-16px}.chart-bar:last-child:before{font-size:10px}.detailed-analysis-panel.show{max-height:50vh}.analysis-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:0}.analysis-tabs::-webkit-scrollbar{display:none}.analysis-content-detail{max-height:calc(50vh - 50px)}}@media (max-width: 480px){.scrollable-content{margin-top:110px}.action-buttons{gap:4px}.refresh-btn,.theme-btn,.detail-btn{padding:6px 10px;font-size:12px}.filter-tabs{gap:4px}.filter-tab{font-size:12px;padding:6px 12px}.analysis-panel{width:200px}}.scrollable-content::-webkit-scrollbar,.events-list::-webkit-scrollbar{width:6px}.scrollable-content::-webkit-scrollbar-track,.events-list::-webkit-scrollbar-track{background:var(--bg-secondary)}.scrollable-content::-webkit-scrollbar-thumb,.events-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.scrollable-content::-webkit-scrollbar-thumb:hover,.events-list::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.event-item{animation:fadeIn .5s ease-out}.custom-marker{transition:var(--transition)}.custom-marker:hover{transform:scale(1.1)}.custom-marker.dark{box-shadow:0 4px 12px #fff3}.user-location-marker{position:relative;width:20px;height:20px}.location-dot{position:absolute;width:14px;height:14px;background:#4ecdc4;border:3px solid white;border-radius:50%;box-shadow:0 2px 8px #0000004d;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2}.location-pulse{position:absolute;width:20px;height:20px;background:#4ecdc4;border-radius:50%;opacity:.4;top:50%;left:50%;transform:translate(-50%,-50%);animation:pulse 2s ease-out infinite;z-index:1}@keyframes pulse{0%{transform:translate(-50%,-50%) scale(1);opacity:.4}50%{transform:translate(-50%,-50%) scale(1.5);opacity:.2}to{transform:translate(-50%,-50%) scale(2);opacity:0}}.control-btn.locating{animation:spin 1s linear infinite;pointer-events:none;opacity:.7}.control-btn.active{background:#4ecdc4;color:#fff}.event-distance{color:var(--primary-color);font-size:11px;font-weight:600}
