:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#152a3b;background:#fff;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #f1b656;outline-offset:3px}button{border:0;background:none;color:inherit}button:disabled{opacity:.35;cursor:default}a{color:#185adb}.map-app{padding:0 2px}.map-heading{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 20px;gap:20px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:750;color:#748597}.map-heading h1{font-size:30px;letter-spacing:-1px;margin:8px 0}.map-heading p{font-size:13px;color:#718094;margin:0}.header-note{font-size:12px;color:#65768a;display:flex;gap:8px;align-items:center}.live-dot{width:7px;height:7px;border-radius:50%;background:#1e9b85;box-shadow:0 0 0 4px #e4f4ee}.dates{display:flex;gap:7px;padding:0 22px 18px;overflow:auto;scrollbar-width:thin}.date{min-width:62px;flex:1;padding:10px 6px 9px;border:1px solid #e3e9ef;border-radius:10px;text-align:center;transition:background .15s}.date:hover{background:#f0f5fc}.date .week{display:block;font-size:10px;color:#7c8998}.date strong{font-size:18px;display:block;line-height:1.6}.date .city{display:block;font-size:10px;color:var(--city)}.date.active{background:var(--city);border-color:var(--city);color:white}.date.active .week,.date.active .city{color:#ffffffd9}.date.active{box-shadow:0 4px 12px #2035571c}.workspace{display:grid;grid-template-columns:310px minmax(0,1fr);height:620px;border:1px solid #dce5ec;border-radius:16px;overflow:hidden;box-shadow:0 6px 25px #173c6a09;margin:0 10px}.sidebar{display:flex;flex-direction:column;background:#fff;border-right:1px solid #e1e8ef;min-height:0}.sidebar-head{position:relative;padding:24px 22px 18px;border-bottom:1px solid #edf0f4}.sidebar-head h2{font-size:22px;line-height:1.4;margin:14px 0 9px;letter-spacing:-.5px}.sidebar-head p{font-size:12px;line-height:1.8;color:#6a798a;margin:0}.day-navigation{position:absolute;right:18px;top:16px;display:flex;gap:4px}.day-navigation button{width:29px;height:29px;border:1px solid #e3e9ef;border-radius:7px}.sidebar-scroll{overflow:auto;padding:16px 20px;flex:1;scrollbar-width:thin}.stay{padding:12px 13px;background:#f3f7fc;border-radius:9px;margin-bottom:19px;line-height:1.6;font-size:12px}.stay small{display:block;color:#748497;font-size:10px;margin-bottom:4px}.stay button{padding:0;text-align:left;color:#234b84;font-weight:700}.stops{margin:0}.stop{position:relative;display:grid;grid-template-columns:26px 1fr;column-gap:10px;padding:0 0 20px}.stop:before{content:"";position:absolute;width:1px;background:#dfe6ee;top:25px;bottom:0;left:12px}.stop:last-child:before{display:none}.stop-number{background:var(--city,#185adb);width:25px;height:25px;color:#fff;border-radius:50%;font-size:11px;font-weight:700;display:grid;place-items:center;z-index:1}.stop.optional .stop-number{background:white;color:#a67626;border:1.5px dashed #b88a34}.stop-copy small{font-size:10px;line-height:25px;color:#8290a1}.stop-copy button{display:block;text-align:left;padding:0;font-size:13px;font-weight:750;line-height:1.5}.stop-copy p{font-size:11px;color:#6f8091;line-height:1.7;margin:6px 0}.stop-copy a{font-size:10px;text-decoration:none}.stop-copy a:hover{text-decoration:underline}.day-note{font-size:11px;line-height:1.8;color:#866624;background:#fffaed;border-radius:8px;padding:12px}.day-note:empty{display:none}.sidebar-foot{padding:14px 20px;border-top:1px solid #edf0f4;font-size:10px;display:flex;gap:12px;flex-wrap:wrap}.sidebar-foot span:nth-child(1){color:#008c84}.sidebar-foot span:nth-child(2){color:#3268d8}.sidebar-foot span:nth-child(3){color:#ab7134}.sidebar-foot small{color:#8190a0;line-height:1.5;font-size:10px}.map-area{position:relative;min-width:0;background:#e5eff1}#map{position:absolute;inset:0}.map-tools{position:absolute;top:16px;left:16px;right:58px;display:flex;gap:6px;flex-wrap:wrap;z-index:2}.map-tools button{background:#fffffff5;box-shadow:0 2px 7px #12384918;border:1px solid #e2e7ed;border-radius:8px;padding:10px 12px;font-size:11px;font-weight:600}.map-tools button.active{background:#183653;color:white;border-color:#183653}.map-caption{position:absolute;top:68px;left:16px;padding:11px 14px;background:#fffffff2;border-radius:9px;max-width:calc(100% - 84px);pointer-events:none;box-shadow:0 2px 12px #1c3c5711}.map-caption b{display:block;font-size:12px;margin-bottom:4px}.map-caption span{font-size:10px;color:#6b7f90;line-height:1.5;display:block}.map-legend{position:absolute;bottom:31px;left:10px;background:#fffffff2;padding:6px 9px;border-radius:5px;font-size:9px;color:#627587;pointer-events:none}.dashed{display:inline-block;width:18px;border-top:2px dashed #677b94;vertical-align:middle;margin-right:5px}#map-message{position:absolute;bottom:66px;left:16px;right:55px;background:#fff7e1;padding:10px 12px;font-size:11px;line-height:1.6;color:#7e6023;border-radius:8px;z-index:2;max-width:420px}#map-message:empty{display:none}.map-footer{display:flex;justify-content:space-between;gap:12px;padding:13px 20px;font-size:10px;color:#8995a3}.place-marker{padding:0;display:flex;align-items:center;flex-direction:column;background:transparent;border:0}.pin-head{height:31px;min-width:31px;padding:0 8px;border-radius:18px;background:var(--pin,#185adb);color:white;display:grid;place-items:center;border:2px solid white;box-shadow:0 2px 7px #15304b40;font-size:11px;font-weight:800}.place-marker.optional .pin-head{background:white;color:#ab7134;border:2px dashed #b47f35}.pin-label{margin-top:4px;background:#fffefaee;border:1px solid #dfe7eb;padding:4px 7px;border-radius:5px;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis;font-size:10px;font-weight:650;box-shadow:0 1px 5px #20374a15}.city-marker .pin-head{min-width:40px;height:40px;border-radius:50%;font-size:15px}.city-marker .pin-label{padding:8px 11px;font-size:12px}.pin-label small{display:block;font-size:9px;font-weight:400;color:#6d7e8d;margin-top:4px}.maplibregl-popup-content{font-family:inherit;padding:18px!important;max-width:270px;border-radius:10px!important;box-shadow:0 5px 24px #1938522a!important}.popup-kicker{font-size:10px;color:#8392a1}.maplibregl-popup-content h3{margin:7px 0;font-size:15px;line-height:1.5}.maplibregl-popup-content p{font-size:11px;line-height:1.8;color:#667b8c}.maplibregl-popup-content a{display:inline-block;font-size:11px;padding-top:5px;text-decoration:none}.maplibregl-popup-content .coord-source{font-size:9px;color:#81909b;margin-left:10px}.maplibregl-popup-close-button{font-size:18px;padding:4px 8px!important}.airport-choice{display:flex;gap:5px;margin-top:10px;align-items:center;font-size:10px;flex-wrap:wrap}.airport-choice button{padding:5px 8px;border-radius:5px;background:white;border:1px solid #d8e2ef;font-size:10px}.airport-choice button.selected{background:#254f88;color:white}.overview-card{width:100%;border:1px solid #e4ebf1;border-left:3px solid var(--city);border-radius:8px;padding:13px;text-align:left;margin-bottom:10px}.overview-card b{display:block;font-size:14px;margin:3px 0 7px}.overview-card small{color:var(--city);font-size:10px}.overview-card p{font-size:11px;line-height:1.6;color:#7c8a98;margin:0}.map-area.map-unavailable #map{opacity:.25}.map-unavailable .map-caption{display:none}
@media(min-width:1450px){.workspace{grid-template-columns:340px minmax(0,1fr);height:650px}.map-heading h1{font-size:34px}}
@media(max-width:760px){.map-heading{padding:15px 10px}.map-heading h1{font-size:24px}.header-note{display:none}.dates{padding:0 10px 14px;gap:6px}.date{min-width:60px}.workspace{display:flex;flex-direction:column;height:920px;margin:0 3px;border-radius:12px}.map-area{order:0;height:470px;flex-shrink:0}.sidebar{order:1;flex:1;min-height:0;border-right:0;border-top:1px solid #e1e8ef;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr}.sidebar-head{padding:16px 18px 10px}.sidebar-head h2{font-size:18px;margin:9px 0 5px}.sidebar-head p{font-size:11px}.sidebar-scroll{padding:12px 18px}.sidebar-foot{display:none}.map-caption{top:107px;max-width:calc(100% - 76px)}.map-tools{top:10px;left:10px;gap:5px;right:49px}.map-tools button{padding:8px 9px;font-size:10px}.map-footer{font-size:9px;line-height:1.6;padding:10px;flex-direction:column;gap:3px}.pin-label{max-width:155px;font-size:9px}.map-legend{font-size:8px;bottom:31px;max-width:95%}.city-marker .pin-label{font-size:10px;padding:7px}.city-marker .pin-head{width:32px;height:32px;min-width:32px;font-size:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.place-regions{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:13px}.place-regions button{font-size:11px;border:1px solid #dce5ed;border-radius:6px;padding:7px 10px}.place-regions button.selected{background:#183653;color:#fff;border-color:#183653}.place-key{display:flex;flex-wrap:wrap;gap:8px 12px;font-size:10px;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid #edf0f4}.catalog-item{display:grid;grid-template-columns:29px 1fr;gap:10px;padding:0 0 16px}.catalog-icon{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--pin);color:white;font-size:12px}.catalog-icon.optional{background:white;border:1px dashed #b47f35;color:#ab7134}.catalog-item button{display:block;padding:0;text-align:left;font-size:12px;font-weight:700;line-height:1.6}.catalog-item small{display:block;font-size:10px;color:#708496;line-height:1.8;margin:3px 0}.catalog-item a{font-size:10px;text-decoration:none}.airport-marker{z-index:3}.airport-marker .pin-head{background:#265dc9!important;font-size:17px;border-radius:9px;min-width:35px}.catalog-pin .pin-head{height:27px;min-width:27px;font-size:12px}.catalog-pin.airport-marker .pin-head{height:32px;min-width:35px;font-size:18px}.catalog-pin .pin-label{font-size:10px}.catalog-pin .pin-label small{font-size:9px}.catalog-pin.label-crowded .pin-label{visibility:hidden}.catalog-pin:hover,.catalog-pin:focus-visible{z-index:5}.catalog-pin:hover .pin-label,.catalog-pin:focus-visible .pin-label{visibility:visible}.map-caption{top:110px}
@media(max-width:760px){.place-regions button{padding:6px 9px}.catalog-item{padding-bottom:12px}.map-caption{top:110px}}
.catalog-pin{pointer-events:none}.catalog-pin .pin-head,.catalog-pin .pin-label{pointer-events:auto}
.hotel-marker .pin-head{border-radius:8px;font-size:11px}.day-hotels{display:block;text-align:left;border:1px solid #dfd6eb!important;background:#f6f0fc!important;color:#7750aa!important;font-size:11px;margin:-7px 0 18px;padding:10px 12px!important;border-radius:7px;line-height:1.5}.map-hotel-card{padding:13px;border:1px solid #e4deeb;border-radius:9px;margin-bottom:12px;background:#fdfbff}.map-hotel-badge{display:block;font-size:10px;color:#8056b9;margin-bottom:7px}.map-hotel-card button{display:block;padding:0;text-align:left;font-size:13px;font-weight:750;line-height:1.6}.map-hotel-card>small{display:block;color:#7b8493;font-size:10px;margin:4px 0}.map-hotel-card p{font-size:10px;color:#647686;line-height:1.8;margin:9px 0}.map-hotel-quotes{border-top:1px solid #e9e2ee;padding-top:7px;margin-bottom:8px}.map-hotel-quotes>span{display:flex;flex-direction:column;gap:3px;font-size:10px;color:#6f7f8e;margin-bottom:8px}.map-hotel-quotes b{font-size:12px;color:#8056b9}.map-hotel-card>a{font-size:10px;display:inline-block;padding:6px 0;margin-right:12px;text-decoration:none}.map-hotel-card>a:hover{text-decoration:underline}
