.map-intro{padding:30px 24px 20px}.map-intro h1{font-size:36px;line-height:1.35;letter-spacing:-1.5px;margin:21px 0 13px}.map-intro h1 span{color:#b9c5ee}.map-intro>p{color:#8b97b0;font-size:11px;line-height:1.8}.map-stats{display:flex;gap:35px;margin-top:23px}.map-stats strong{font-size:24px;font-weight:500;font-family:Impact,Arial,sans-serif}.map-stats small{display:block;color:#8792aa;font:10px Arial;margin-top:7px}.map-wrap{margin:5px 14px 0;border:1px solid #2b3851;border-radius:12px;overflow:hidden;background:radial-gradient(ellipse at 70% 40%,#172c59,#101725 70%);position:relative}.map-topline{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.5px;padding:16px;color:#869ac5}.map-topline span:first-child{display:flex;align-items:center;gap:8px}.map-viewport{height:350px;overflow:auto;scrollbar-width:thin;scrollbar-color:#344664 transparent}.geo-map{width:500px;height:480px;transform-origin:0 0;position:relative;transition:transform .4s}.map-lines{position:absolute;inset:0;width:100%;height:100%;opacity:.65}.map-watermark{position:absolute;left:26px;top:72px;color:#819bd522;font:900 49px/.92 Impact,Arial;letter-spacing:-1px;pointer-events:none}.map-city{position:absolute;transform:translate(-50%,-50%);padding:8px;display:grid;grid-template-columns:auto auto;align-items:center;column-gap:7px;text-align:left;min-width:92px;z-index:2}.map-city i{grid-column:1;width:7px;height:7px;background:#9cb5ff;box-shadow:0 0 0 6px #6a92fc15,0 0 18px #90afff;border-radius:50%;margin-left:4px}.map-city strong{grid-column:2;grid-row:2;font-size:13px;text-shadow:0 2px 8px #000}.map-city small{grid-column:2;color:#8fa5ce;font-size:8px;line-height:1.7}.map-flag{display:block;width:32px;height:27px;grid-column:1/3;font-size:30px;color:#769cff;transform-origin:0 50%;animation:mini-wave 3s ease-in-out infinite;margin-left:6px;border-left:1px solid #9badcc;padding-left:2px;margin-bottom:5px}.map-flag img{width:34px;height:23px;object-fit:cover;box-shadow:0 0 20px #5980ff55}.map-city.selected{color:#dcf69b}.map-city.selected i{background:#dcf69b;box-shadow:0 0 20px #dcf69b}.map-controls{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#0e1523;border-top:1px solid #263651;font-size:8px;color:#75849e}.map-controls button{width:34px;height:34px;font-size:18px;border:1px solid #344461;border-radius:5px;margin-left:5px}.city-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.city-list button{text-align:left;background:#141c2a;border:1px solid #27324a;border-radius:6px;padding:16px 12px;position:relative}.city-list span{display:block;font-size:18px;margin-bottom:9px}.city-list small{font-size:9px;color:#8996af}.city-list b{position:absolute;right:10px;bottom:12px;color:#869ef6;font-weight:400}.map-note{font-size:10px;line-height:1.8;color:#6f7d95;margin:20px 0}.event-card{display:flex;text-align:left;align-items:center;width:100%;padding:20px 0;gap:15px;border-bottom:1px solid #272e3c}.event-date{min-width:56px;border-right:1px solid #333d51;padding-right:14px}.event-date strong{font-size:27px;font-weight:400;white-space:nowrap}.event-date strong span{font-size:12px;color:#8897b1}.event-date small{display:block;color:#7182a2;font-size:9px;letter-spacing:3px;margin-top:7px}.event-card h3{font-size:15px;font-weight:500;margin:8px 0}.event-city{font-size:9px;color:#8998b0;line-height:1.7}.event-card p{font-size:9px;color:#6f7e98;margin:0}.event-card>b{margin-left:auto;color:#96aaff}.show-hero{background:radial-gradient(ellipse at 90% 0%,#263d76,#111725 70%);padding:24px 24px 0;overflow:hidden}.show-city-word{font-size:80px;letter-spacing:-5px;color:#8daaff44;margin:25px 0 20px;line-height:1;font-weight:900}.show-city-word span{display:block;font:9px monospace;letter-spacing:5px;margin-top:10px;color:#6e87b4}.show-ticket{border:1px solid #3a4764;padding:20px;border-radius:10px 10px 0 0;background:#121925c9}.show-ticket h1{font-size:24px;line-height:1.4;margin:15px 0 9px}.show-ticket p{color:#99a7c1;font-size:12px;margin:0 0 18px}.event-tabs{display:flex;border-bottom:1px solid #2b3446}.event-tabs button{flex:1;padding:14px 8px;color:#7f8ba3;font-size:15px;border-bottom:2px solid transparent}.event-tabs button.active{border-color:#7698ff;color:#edf2ff}.event-tabs small{font-size:10px;color:#7e93bd;margin-left:6px}.entry-card{border:1px solid #293244;background:#121823;border-radius:8px;overflow:hidden;margin-top:17px;min-width:0}.entry-open{width:100%;padding:0;text-align:left}.entry-media{position:relative;height:180px;background:#1b263b;overflow:hidden}.entry-media img{width:100%;height:100%;object-fit:cover}.flag .entry-media img{object-fit:contain;transform:rotate(-4deg) scale(.9);filter:drop-shadow(5px 12px 9px #0008)}.flag .entry-media:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent,#cbd7ff10,transparent);animation:fold 5s infinite}.entry-media span,.entry-media i{position:absolute;right:8px;bottom:8px;background:#0b101bc9;border:1px solid #7483a844;padding:4px;font-size:8px;font-style:normal;color:#bcc8e6}.entry-media i{left:8px;right:auto;font-size:7px;letter-spacing:1px}.entry-body{padding:12px}.entry-location{font-size:8px;color:#8ca5d3}.entry-body p{font-size:13px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.post-feed .entry-media{height:230px}.post-feed .entry-body{padding:17px}.post-feed .entry-location{font-size:10px}.compose-event{border:1px solid #3e5075;background:#1c2940;padding:14px;border-radius:6px;font-size:12px}.compose-event p{font-size:10px;line-height:1.7;color:#9dadc9;margin-bottom:0}#image-previews{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}#image-previews img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px}.consent{font-size:10px;display:flex;gap:9px;align-items:center;line-height:1.8;color:#9aa8c1}.consent input{width:17px;min-width:17px;accent-color:#517bff}.detail-place{display:flex;justify-content:space-between;font-size:12px;margin-bottom:18px;gap:10px}.detail-photos{display:grid;gap:8px}.detail-photos img{width:100%;border-radius:5px;display:block}.detail-message{white-space:pre-wrap;overflow-wrap:anywhere}.comment-title{font-size:15px;border-top:1px solid #303a4f;margin-top:25px;padding-top:20px}.comment{border-bottom:1px solid #273247;padding:13px 0;font-size:12px}.comment strong{color:#a8bcee;font-weight:500}.comment p{font-size:12px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}#form-error{font-size:11px;color:#d4b98d;line-height:1.8}button:disabled{opacity:.5;cursor:wait}.bottom-nav button{min-width:55px}.bottom-nav .nav-create{min-width:44px}@keyframes mini-wave{50%{transform:skewY(-6deg) rotate(-5deg)}}@media(min-width:500px){.map-viewport{height:405px}.map-intro h1{font-size:46px}.entry-media{height:220px}}@media(prefers-reduced-motion:reduce){.map-flag{animation:none}}
.map-city{width:34px;height:44px;min-width:34px;padding:0;display:block;transform:translate(-12px,-40px)}.map-city>*{pointer-events:none}.map-city .map-flag{position:absolute;left:0;top:0;margin:0}.map-city i{position:absolute;left:0;top:36px;margin:0}.map-city strong{position:absolute;left:17px;top:33px;white-space:nowrap}.map-city small{position:absolute;left:17px;top:51px;white-space:nowrap}.map-city[data-city="杭州"] strong{left:-36px;top:35px}.map-city[data-city="杭州"] small{left:-36px;top:52px}
.map-plane{position:relative}.china-svg{width:500px;height:480px;position:absolute;inset:0;overflow:visible}.province{fill:#20304a;stroke:#667999;stroke-width:.65;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .25s,filter .25s}.province:hover,.province:focus{fill:#49608c;outline:none;filter:drop-shadow(0 0 5px #7b9afa66)}.province.lit{fill:url(#province-lit);stroke:#b1c4ff;stroke-width:1}.province.islands{fill:none;stroke:#6d829f;pointer-events:none}.province-name{fill:#8293ad;font-size:8px;text-anchor:middle;pointer-events:none;letter-spacing:.5px}.province-city{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:3px;padding:5px 7px;background:#111f38e8;border:1px solid #728cce;border-radius:5px;min-height:30px;white-space:nowrap;z-index:3;box-shadow:0 3px 12px #0008}.province-city strong{font-size:13px;font-weight:500}.province-city small{font-size:8px;color:#9dadd3}.province-city>span{font-size:19px;color:#acbeff}.province-city img{width:25px;height:20px;object-fit:cover;transform:rotate(-5deg)}.south-sea-label{position:absolute;left:345px;top:405px;color:#7288a9;font-size:9px}.map-source{font-size:8px;color:#667b9b;margin:0;padding:0 14px 13px;background:#0e1523}.legend-lit,.legend-dark{display:inline-block;width:6px;height:6px;background:#5575df;margin-right:4px;margin-left:6px}.legend-dark{background:#293b59}.province-map .map-viewport{height:350px}.province-map .geo-map{position:absolute;left:0;top:0}.province-map .map-viewport{scrollbar-width:none}@media(min-width:500px){.province-map .map-viewport{height:450px}}
.event-thumb{width:52px;height:76px;object-fit:cover;flex:none;border:1px solid #45516a;border-radius:5px}.event-card{gap:10px}.event-card>div:not(.event-date){min-width:0;flex:1}.event-card h3{line-height:1.5}.event-date{min-width:46px;padding-right:8px}.event-date strong{font-size:23px}.event-status{display:inline-block;color:#9daecb;margin-right:4px}.event-status.upcoming{color:#d6ec99}.show-poster{display:block;margin:22px auto 0;max-width:400px}.show-poster img{display:block;width:100%;height:auto;border-radius:9px;border:1px solid #34435b}.show-poster+.show-city-word{font-size:42px;margin:22px 0}.show-ticket .event-evidence{font-size:10px;color:#8594af;line-height:1.8;margin:12px 0}.province-city{width:62px;min-height:26px;padding:3px;gap:2px}.province-city strong{font-size:11px}.province-city small{font-size:7px}.province-city>span{font-size:15px}.province-city img{width:18px;height:16px}.province-city.future{border-style:dashed;color:#d6ec99}
.province.lit{fill:#3d5895;stroke:#9db5ee}.province.lit:hover,.province.lit:focus{fill:#5979bd}
.show-poster img{max-height:380px;object-fit:contain;background:#090c12}.show-poster{max-width:100%}
