:root{--bg-primary:#0f1923;--bg-secondary:#1a2332;--bg-panel:#1a2332d9;--text-primary:#fff;--text-secondary:#a0aec0;--text-muted:#718096;--accent:#00bcd4;--accent-hover:#00acc1;--border-color:#ffffff1a;--glass-shadow:0 8px 32px 0 #0000005e;--font-family:"Noto Sans SC", system-ui, -apple-system, sans-serif}body.light-theme{--bg-primary:#f5f7fa;--bg-secondary:#fff;--bg-panel:#ffffffe6;--text-primary:#1a202c;--text-secondary:#4a5568;--text-muted:#a0aec0;--accent:#0097a7;--accent-hover:#00838f;--border-color:#0000001a;--glass-shadow:0 4px 16px 0 #0000001a}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;overflow:hidden}#root{flex-direction:column;width:100vw;height:100vh;display:flex}.custom-marker{color:#fff;cursor:pointer;text-shadow:0 1px 2px #000c;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:14px;font-weight:700;transition:transform .2s,z-index;display:flex;position:relative;box-shadow:0 4px 6px #0000004d,inset 0 0 0 2px #ffffff4d}@media (hover:hover){.custom-marker:hover{z-index:999!important;transform:scale(1.5)!important}}.marker-tooltip{background:var(--bg-secondary);color:var(--text-primary);white-space:nowrap;opacity:0;pointer-events:none;box-shadow:var(--glass-shadow);border:1px solid var(--border-color);z-index:1000;letter-spacing:.5px;text-shadow:none;border-radius:6px;padding:5px 10px;font-size:11px;font-weight:500;transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1);position:absolute;bottom:36px;left:50%;transform:translate(-50%)scale(.67)}.marker-tooltip:after{content:"";border-style:solid;border-width:4px;border-color:var(--bg-secondary) transparent transparent transparent;position:absolute;top:100%;left:50%;transform:translate(-50%)}@media (hover:hover){.custom-marker:hover .marker-tooltip{opacity:1;transform:translate(-50%)scale(.85)}}@media (width<=768px){.marker-tooltip{display:none!important}}.glass-panel{background:var(--bg-panel);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-color);box-shadow:var(--glass-shadow)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.amap-sug-result{color:#fff!important;-webkit-backdrop-filter:blur(12px)!important;background:#1a2332eb!important;border:1px solid #ffffff1a!important;border-radius:8px!important;padding:4px 0!important;box-shadow:0 4px 16px #00000080!important}.auto-item{transition:background .2s;color:#fff!important;padding:8px 12px!important}.auto-item:hover{color:var(--accent)!important;background:#ffffff1a!important}.auto-item .auto-item-span{color:#a0aec0!important}body.light-theme .amap-sug-result{color:#1a202c!important;background:#fffffff2!important;border:1px solid #0000001f!important;box-shadow:0 4px 16px #00000026!important}body.light-theme .auto-item{color:#1a202c!important}body.light-theme .auto-item:hover{color:#0097a7!important;background:#0000000f!important}body.light-theme .auto-item .auto-item-span{color:#718096!important}.map-container{flex:1;width:100%;height:100%;position:relative}.amap-container{width:100%;height:100%}.amap-logo,.amap-copyright{display:none!important}.user-loc-marker{width:24px;height:24px;position:relative}.user-loc-core{z-index:2;background:#ff3d00;border:2px solid #fff;border-radius:50%;width:16px;height:16px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 4px #00000080}.user-loc-pulse{z-index:1;background:#ff3d0066;border-radius:50%;width:48px;height:48px;animation:1.5s infinite pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (width<=768px){.amap-toolbar{bottom:140px!important;right:10px!important}.amap-scalecontrol{bottom:130px!important;left:10px!important}.custom-marker{width:26px;height:26px;font-size:12px}}.search-bar{width:100%;position:relative}.search-input{border:1px solid var(--border-color);width:100%;color:var(--text-primary);background:#ffffff0d;border-radius:8px;outline:none;padding:10px 14px 10px 36px;font-size:14px;transition:all .2s}.search-input:focus{border-color:var(--accent);background:#ffffff1a;box-shadow:0 0 0 2px #00bcd433}.search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.clear-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.clear-btn:hover{color:var(--text-primary);background:#ffffff1a}@media (width<=768px){.search-input{padding:12px 14px 12px 38px;font-size:16px}}.sidebar{border-right:1px solid var(--border-color);background:var(--bg-primary);flex-direction:column;flex:1;width:100%;min-height:0;display:flex}.sidebar-header{border-bottom:1px solid var(--border-color);background:var(--bg-secondary);flex-shrink:0;padding:20px}.sidebar-header h1{color:var(--accent);align-items:center;gap:8px;margin-bottom:12px;font-size:1.2rem;font-weight:600;display:flex}.school-list{-webkit-overflow-scrolling:touch;flex:1;padding:10px;overflow-y:auto}.school-item{cursor:pointer;background:#ffffff08;border:1px solid #0000;border-radius:6px;align-items:center;margin-bottom:4px;padding:8px 12px;transition:all .2s;display:flex}.school-item:hover{background:#ffffff14}.school-item.selected{border-color:var(--accent);background:#00bcd41a}.school-rank-badge{color:#fff;border-radius:6px;justify-content:center;align-items:center;min-width:28px;height:28px;margin-right:10px;font-size:13px;font-weight:700;display:flex;box-shadow:0 2px 4px #0003}.school-info{flex:1;min-width:0}.school-name{text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px;font-size:13px;font-weight:500;overflow:hidden}.school-meta{color:var(--text-muted);gap:6px;font-size:11px;display:flex}.school-grade{border-radius:4px;padding:1px 5px;font-size:10px;font-weight:500;line-height:1.2;display:inline-block}.school-grade.grade-aplus{color:#ff5252;background:#ff52521f;border:1px solid #ff525233}.school-grade.grade-atop{color:#ff9100;background:#ff91001f;border:1px solid #ff910040}.school-grade.grade-amid{color:gold;background:#ffd7001a;border:1px solid #ffd70033}.school-grade.grade-abot{color:#00e676;background:#00e6761a;border:1px solid #00e67633}.school-grade.grade-bplus{color:#40c4ff;background:#40c4ff1a;border:1px solid #40c4ff33}.school-grade.grade-b{color:#e040fb;background:#e040fb1a;border:1px solid #e040fb33}.school-grade.grade-new{color:#ff6e40;background:#ff6e4024;border:1px solid #ff6e4040;font-weight:700}.school-grade.grade-other{color:#b0bec5;background:#b0bec514;border:1px solid #b0bec526}body.light-theme .school-grade.grade-aplus{color:#d32f2f;background:#d32f2f0f;border-color:#d32f2f26}body.light-theme .school-grade.grade-atop{color:#e65100;background:#e651000f;border-color:#e6510026}body.light-theme .school-grade.grade-amid{color:#f57f17;background:#f57f170f;border-color:#f57f1726}body.light-theme .school-grade.grade-abot{color:#2e7d32;background:#2e7d320f;border-color:#2e7d3226}body.light-theme .school-grade.grade-bplus{color:#0288d1;background:#0288d10f;border-color:#0288d126}body.light-theme .school-grade.grade-b{color:#7b1fa2;background:#7b1fa20f;border-color:#7b1fa226}body.light-theme .school-grade.grade-new{color:#e64a19;background:#e64a190f;border-color:#e64a1926}body.light-theme .school-grade.grade-other{color:#546e7a;background:#546e7a0f;border-color:#546e7a26}@media (width<=768px){.sidebar{border-right:none}.sidebar-header{padding:12px 16px}.sidebar-header h1{margin-bottom:8px;font-size:1rem}.school-list{padding:6px 10px}.school-item{min-height:44px;margin-bottom:2px;padding:10px 12px}.school-name{font-size:14px}.school-meta{font-size:12px}}.info-panel-wrapper{pointer-events:none;z-index:20;justify-content:center;width:100%;padding:20px;display:flex;position:absolute;bottom:0;left:0}.info-panel{pointer-events:auto;width:100%;max-width:600px;box-shadow:var(--glass-shadow), 0 20px 40px #0003;border-radius:16px;flex-direction:column;transition:transform .45s cubic-bezier(.16,1,.3,1),max-height .4s cubic-bezier(.16,1,.3,1);display:flex;overflow:hidden;transform:translateY(150%)}.info-panel.visible{transform:translateY(0)}.info-panel.is-collapsed{cursor:pointer;max-height:125px;transition:transform .45s cubic-bezier(.16,1,.3,1),max-height .4s cubic-bezier(.16,1,.3,1),background-color .2s,box-shadow .2s}.info-panel.is-collapsed:hover{box-shadow:var(--glass-shadow), 0 8px 24px #00bcd426;background:#1e293bf2}body.light-theme .info-panel.is-collapsed:hover{box-shadow:var(--glass-shadow), 0 8px 20px #0097a71f;background:#fffffffa}.info-panel.is-expanded{max-height:85vh}.info-header{background:#00000040;border-bottom:1px solid #0000;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 20px 10px;transition:border-color .3s;display:flex}.info-panel.is-expanded .info-header{border-bottom:1px solid var(--border-color)}body.light-theme .info-header{background:#00000008}.info-title{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.info-title h2{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.3px;margin:0;font-size:1.15rem;font-weight:700;overflow:hidden}.info-grade{color:#fff;border-radius:20px;flex-shrink:0;padding:3px 8px;font-size:11px;font-weight:600;box-shadow:0 2px 4px #00000026}.rank-badge{background:var(--text-muted)}.grade-badge{background:var(--accent)}.grade-badge-new{animation:2.5s ease-in-out infinite pulse-glow-new;color:#fff!important;background:linear-gradient(135deg,#ff3d00,#ff9100)!important;padding:3px 10px!important;font-weight:800!important;box-shadow:0 0 10px #ff3d00a6,inset 0 0 0 1px #fff6!important}@keyframes pulse-glow-new{0%,to{transform:scale(1);box-shadow:0 0 6px #ff3d008c}50%{transform:scale(1.06);box-shadow:0 0 14px #ff3d00f2}}.info-header-actions{align-items:center;gap:6px;display:flex}.expand-toggle-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:6px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.expand-toggle-btn:hover{color:var(--text-primary);background:#ffffff14}body.light-theme .expand-toggle-btn:hover{background:#0000000d}.expand-toggle-btn svg{transition:transform .4s cubic-bezier(.16,1,.3,1)}.expand-toggle-btn.expanded svg{transform:rotate(180deg)}.close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:6px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.close-btn:hover{color:var(--text-primary);background:#ffffff14;transform:rotate(90deg)}body.light-theme .close-btn:hover{background:#0000000d}.info-peek-summary{opacity:1;align-items:center;gap:16px;max-height:55px;padding:8px 20px 16px;transition:opacity .3s,max-height .3s,padding .3s;display:flex;overflow:hidden}.info-panel.is-expanded .info-peek-summary{opacity:0;pointer-events:none;max-height:0;padding-top:0;padding-bottom:0}.peek-stat-pill{border:1px solid var(--border-color);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff08;border-radius:20px;align-items:center;gap:8px;padding:4px 12px;font-size:11.5px;font-weight:500;transition:background-color .2s;display:flex;box-shadow:0 2px 6px #0000001a}.info-panel.is-collapsed:hover .peek-stat-pill{background:#ffffff0f}body.light-theme .peek-stat-pill{background:#00000005}body.light-theme .info-panel.is-collapsed:hover .peek-stat-pill{background:#0000000a}.peek-label{color:var(--text-secondary)}.peek-value{font-weight:700}.peek-expand-hint{color:var(--accent);opacity:.8;align-items:center;gap:6px;margin-left:auto;font-size:11px;font-weight:600;animation:2s ease-in-out infinite hintPulse;display:flex}.hint-arrow-svg{animation:2s ease-in-out infinite bounceUpDown;transform:rotate(180deg)}@keyframes hintPulse{0%,to{opacity:.65}50%{opacity:1}}@keyframes bounceUpDown{0%,to{transform:translateY(0)rotate(180deg)}50%{transform:translateY(-3px)rotate(180deg)}}.info-content{opacity:1;flex-direction:column;gap:16px;max-height:calc(85vh - 65px);padding:20px;transition:opacity .3s,transform .3s;display:flex;overflow-y:auto}.info-panel.is-collapsed .info-content{opacity:0;pointer-events:none;max-height:0;padding:0;transform:translateY(10px)}.info-content::-webkit-scrollbar{width:5px}.info-content::-webkit-scrollbar-track{background:0 0}.info-content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.info-content::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.info-section{border:1px solid var(--border-color);background:#ffffff05;border-radius:12px;flex-direction:column;gap:12px;padding:14px 16px;transition:border-color .25s,background-color .25s;display:flex}body.light-theme .info-section{background:#00000005}.section-title{color:var(--accent);text-transform:uppercase;letter-spacing:.8px;margin:0;font-size:11px;font-weight:700}.info-grid{grid-template-columns:repeat(2,1fr);gap:12px 20px;display:grid}.info-stat{flex-direction:column;gap:3px;display:flex}.info-stat .label{color:var(--text-muted);font-size:11px;font-weight:500}.info-stat .value{color:var(--text-primary);font-size:13.5px;font-weight:600}.font-accent{color:var(--accent)!important}.full-width{grid-column:span 2}.sub-ratio{color:var(--text-secondary);font-size:11.5px;font-weight:400}.prev-year-badge{border:1px solid var(--border-color);color:var(--text-secondary);vertical-align:middle;background:#ffffff14;border-radius:4px;margin-left:8px;padding:1px 6px;font-size:10px;font-weight:500;display:inline-block}body.light-theme .prev-year-badge{background:#0000000a}.qq-section{position:relative}.section-header-row{justify-content:space-between;align-items:center;display:flex}.group-count-badge{color:var(--accent);background:#00bcd426;border-radius:20px;padding:2px 7px;font-size:10px;font-weight:600}body.light-theme .group-count-badge{background:#0097a71f}.qq-groups-container{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.qq-group-pill{border:1px solid var(--border-color);cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff08;border-radius:10px;justify-content:space-between;align-items:center;padding:8px 12px;transition:all .25s cubic-bezier(.16,1,.3,1);display:flex}body.light-theme .qq-group-pill{background:#00000004}.qq-group-pill:hover{border-color:var(--accent);background:#00bcd414;transform:translateY(-2px);box-shadow:0 4px 12px #00bcd41f}.qq-group-pill.copied{background:#4caf501a!important;border-color:#4caf50!important;box-shadow:0 4px 12px #4caf5026!important}.qq-pill-content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.qq-num{color:var(--text-primary);letter-spacing:.5px;font-family:Consolas,Courier New,monospace;font-size:13.5px;font-weight:700}.qq-lbl{color:var(--accent);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:10px;font-weight:600;overflow:hidden}.qq-copy-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-left:8px;padding:5px;transition:all .2s;display:flex}.qq-group-pill:hover .qq-copy-btn{color:var(--accent)}.qq-copy-btn:hover{background:#ffffff14;color:var(--text-primary)!important}body.light-theme .qq-copy-btn:hover{background:#0000000d}.copied-toast{color:#4caf50;font-size:10px;font-weight:700;animation:.25s cubic-bezier(.16,1,.3,1) fadeInToast}@keyframes fadeInToast{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.route-section{background:#00bcd40f!important;border:1px solid #00bcd433!important}body.light-theme .route-section{background:#0097a70d!important;border:1px solid #0097a726!important}.route-label{color:var(--accent)!important}.route-value{color:var(--text-primary);font-size:12.5px;font-weight:600}.info-note{border:1px solid var(--border-color);color:var(--text-secondary);background:#ffffff05;border-radius:10px;padding:10px 14px;font-size:11.5px;line-height:1.5}body.light-theme .info-note{background:#00000003}.school-tags-container{flex-wrap:wrap;gap:8px;padding:2px 0 6px;display:flex}.school-highlight-tag{-webkit-user-select:none;user-select:none;border-radius:20px;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:600;transition:all .25s cubic-bezier(.16,1,.3,1);display:inline-flex}.school-highlight-tag:hover{transform:translateY(-1.5px)}.school-highlight-tag.tag-food{color:#f59e0b;background:#f59e0b14;border:1px solid #f59e0b40;box-shadow:0 2px 6px #f59e0b0d}.school-highlight-tag.tag-food:hover{background:#f59e0b29;border-color:#f59e0b;box-shadow:0 4px 12px #f59e0b2e}body.light-theme .school-highlight-tag.tag-food{color:#b45309;background:#d977060f;border-color:#d9770633}body.light-theme .school-highlight-tag.tag-food:hover{background:#d977061f;border-color:#b45309}.school-highlight-tag.tag-dorm{color:#10b981;background:#10b98114;border:1px solid #10b98140;box-shadow:0 2px 6px #10b9810d}.school-highlight-tag.tag-dorm:hover{background:#10b98129;border-color:#10b981;box-shadow:0 4px 12px #10b9812e}body.light-theme .school-highlight-tag.tag-dorm{color:#047857;background:#0596690f;border-color:#05966933}body.light-theme .school-highlight-tag.tag-dorm:hover{background:#0596691f;border-color:#047857}.school-highlight-tag.tag-env{color:#06b6d4;background:#06b6d414;border:1px solid #06b6d440;box-shadow:0 2px 6px #06b6d40d}.school-highlight-tag.tag-env:hover{background:#06b6d429;border-color:#06b6d4;box-shadow:0 4px 12px #06b6d42e}body.light-theme .school-highlight-tag.tag-env{color:#0f766e;background:#0d94880f;border-color:#0d948833}body.light-theme .school-highlight-tag.tag-env:hover{background:#0d94881f;border-color:#0f766e}.school-highlight-tag.tag-academic{color:#818cf8;background:#6366f114;border:1px solid #6366f140;box-shadow:0 2px 6px #6366f10d}.school-highlight-tag.tag-academic:hover{background:#6366f129;border-color:#818cf8;box-shadow:0 4px 12px #6366f12e}body.light-theme .school-highlight-tag.tag-academic{color:#4338ca;background:#4f46e50f;border-color:#4f46e533}body.light-theme .school-highlight-tag.tag-academic:hover{background:#4f46e51f;border-color:#4338ca}.school-highlight-tag.tag-activity{color:#ec4899;background:#ec489914;border:1px solid #ec489940;box-shadow:0 2px 6px #ec48990d}.school-highlight-tag.tag-activity:hover{background:#ec489929;border-color:#ec4899;box-shadow:0 4px 12px #ec48992e}body.light-theme .school-highlight-tag.tag-activity{color:#be185d;background:#db27770f;border-color:#db277733}body.light-theme .school-highlight-tag.tag-activity:hover{background:#db27771f;border-color:#be185d}.school-highlight-tag.tag-default{color:var(--accent);background:#00bcd414;border:1px solid #00bcd440;box-shadow:0 2px 6px #00bcd40d}.school-highlight-tag.tag-default:hover{border-color:var(--accent);background:#00bcd429;box-shadow:0 4px 12px #00bcd42e}body.light-theme .school-highlight-tag.tag-default{color:var(--accent);background:#0097a70f;border-color:#0097a72e}body.light-theme .school-highlight-tag.tag-default:hover{border-color:var(--accent);background:#0097a71f}@media (width<=768px){.info-panel-wrapper{z-index:150;padding:10px;bottom:120px}.info-panel{border-radius:14px;max-width:100%}.info-panel.is-collapsed{max-height:102px}.info-panel.is-expanded{max-height:60vh}.info-header{padding:10px 16px 8px}.info-title h2{font-size:1rem}.info-peek-summary{gap:10px;max-height:48px;padding:4px 16px 12px}.peek-stat-pill{gap:6px;padding:3px 10px;font-size:10.5px}.peek-expand-hint{gap:4px;font-size:10.5px}.info-content{gap:12px;max-height:calc(60vh - 45px);padding:12px 14px}.info-panel.is-collapsed .info-content{max-height:0;padding:0}.info-section{gap:8px;padding:10px 12px}.info-grid{gap:8px 12px}.info-stat .value{font-size:12px}.qq-groups-container{gap:6px}.qq-group-pill{border-radius:8px;padding:6px 10px}.qq-num{font-size:12.5px}.info-note{padding:8px 12px;font-size:11px}}@media (width<=480px){.qq-groups-container{grid-template-columns:1fr}}.transport-mode{background:#ffffff0d;border-radius:8px;gap:8px;margin-top:12px;padding:4px;display:flex}.mode-btn{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;flex:1;justify-content:center;align-items:center;padding:8px;font-size:13px;transition:all .2s;display:flex}.mode-btn:hover{color:var(--text-primary);background:#ffffff1a}.mode-btn.active{background:var(--accent);color:#fff}@media (width<=768px){.transport-mode{gap:4px;margin-top:8px}.mode-btn{min-height:36px;padding:8px 4px;font-size:12px}}.my-location{border-top:1px solid var(--border-color);background:#0000001a;flex-shrink:0;padding:16px}.my-loc-btn{border:1px dashed var(--accent);width:100%;color:var(--accent);cursor:pointer;background:#00bcd41a;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px;font-weight:500;transition:all .2s;display:flex}.my-loc-btn:hover{background:#00bcd433}.my-loc-info{background:#ffffff0d;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:12px;display:flex}.my-loc-info span{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;min-width:0;font-size:13px;display:flex;overflow:hidden}.remove-loc-btn{color:#ef4444;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:4px 8px}.remove-loc-btn:hover{background:#ef44441a}.user-marker{background-color:var(--accent);border:3px solid #fff;border-radius:50%;width:24px;height:24px;animation:2s infinite pulse;box-shadow:0 0 10px #00bcd499,0 4px 6px #0000004d}@keyframes pulse{0%{box-shadow:0 0 #00bcd466}70%{box-shadow:0 0 0 10px #00bcd400}to{box-shadow:0 0 #00bcd400}}@media (width<=768px){.my-location{padding:10px 16px}.my-loc-info{padding:10px}.my-loc-info span{font-size:12px}}.app-wrapper{flex-direction:column;width:100vw;height:100dvh;display:flex;overflow:hidden}.watermark-banner{color:var(--text-muted);z-index:100;pointer-events:none;background:rgba(var(--bg-panel-rgb), .5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);letter-spacing:.5px;text-shadow:1px 1px 0 var(--bg-primary), -1px -1px 0 var(--bg-primary), 1px -1px 0 var(--bg-primary), -1px 1px 0 var(--bg-primary);opacity:.8;border-radius:8px;padding:6px 12px;font-size:18px;font-weight:500;position:absolute;top:16px;left:50%;transform:translate(-50%)}.app-container{flex:1;width:100%;display:flex;position:relative;overflow:hidden}.left-panel{z-index:10;background:var(--bg-primary);flex-direction:column;width:280px;height:100%;transition:width .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:4px 0 16px #0003}@media (width>=769px){.left-panel.collapsed{overflow:hidden;width:0!important;box-shadow:none!important;border-right:none!important}.sidebar-toggle-btn{background:var(--bg-secondary);border:1px solid var(--border-color);width:24px;height:56px;color:var(--text-primary);cursor:pointer;z-index:150;-webkit-backdrop-filter:blur(8px);border-left:none;border-radius:0 8px 8px 0;outline:none;justify-content:center;align-items:center;padding:0;transition:left .3s cubic-bezier(.4,0,.2,1),background .2s,color .2s,box-shadow .2s;display:flex;position:absolute;top:50%;left:280px;transform:translate(-50%,-50%);box-shadow:4px 0 16px #00000026}.sidebar-toggle-btn:hover{background:var(--accent);color:#fff;box-shadow:0 0 12px var(--accent)}.sidebar-toggle-btn.collapsed{border-left:1px solid var(--border-color);left:0}.sidebar-toggle-btn .toggle-icon{font-size:18px;font-weight:700;line-height:1;transition:transform .2s}.sidebar-toggle-btn:active .toggle-icon{transform:scale(.8)}}.main-content{flex:1;height:100%;position:relative}@media (width<=768px){.app-container{flex-direction:column;position:relative}.main-content{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.watermark-banner{padding:4px 10px;font-size:13px;top:10px}.left-panel.drawer{z-index:200;border-radius:16px 16px 0 0;width:100%;transition:height .35s cubic-bezier(.32,.72,0,1);position:fixed;bottom:0;left:0;overflow:hidden;box-shadow:0 -4px 24px #00000059}.left-panel.drawer-collapsed{height:120px}.left-panel.drawer-half{height:50dvh}.left-panel.drawer-full{height:85dvh}.drawer-handle{cursor:grab;touch-action:none;flex-shrink:0;justify-content:center;align-items:center;padding:10px 0 6px;display:flex}.drawer-handle-bar{background:var(--text-muted);opacity:.5;border-radius:3px;width:40px;height:5px;transition:opacity .2s}.drawer-handle:active .drawer-handle-bar{opacity:.9}}@media (width>=769px){.drawer-handle{display:none}}
