/* A separate, compact adventure overview. Task-page journey styles stay intact. */
.quest-map-page{max-width:520px;margin:0 auto}
.quest-map-header{display:flex;align-items:center;gap:12px;margin:0 0 12px;min-width:0}
.quest-map-site-image{width:52px;height:52px;flex:0 0 52px;object-fit:cover;border-radius:12px;border:1px solid #d5ddcb}
.quest-map-header>div{min-width:0;flex:1}
.quest-map-header h1{font-size:24px;line-height:1.2;color:var(--title-gold);margin:0}
.quest-map-header h1 .zh{font-size:13px!important;line-height:1.35;margin-top:3px}
.quest-map-header p{font-size:14px;line-height:1.4;color:var(--forest);margin:4px 0 0}
.quest-map-header p .zh{font-size:12px!important;line-height:1.35;margin-top:3px}
.quest-map-progress{display:grid;gap:7px;margin:0 0 12px}
.quest-map-progress label,.quest-map-progress .map-progress-label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;line-height:1.35;color:var(--forest)}
.quest-map-progress .ui-label{align-items:flex-start;gap:2px}
.quest-map-progress .ui-zh{font-size:12px;line-height:1.3}
.quest-map-progress progress{display:block;appearance:none;-webkit-appearance:none;width:100%;height:7px;border:0;border-radius:99px;overflow:hidden;background:#dce4d2;color:#a8833b}
.quest-map-progress progress::-webkit-progress-bar{border-radius:99px;background:#dce4d2}
.quest-map-progress progress::-webkit-progress-value{border-radius:99px;background:linear-gradient(90deg,#a8833b,#e2be72)}
.quest-map-progress progress::-moz-progress-bar{border-radius:99px;background:linear-gradient(90deg,#a8833b,#e2be72)}
.map-instruction{font-size:14px;line-height:1.45;color:var(--muted);margin:0 0 12px}
.map-instruction .zh{font-size:12px!important}
.quest-map-page .map-continue{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin:0 0 12px}
.map-continue .ui-label{align-items:center;text-align:center}
.map-continue>svg{width:19px;height:19px;flex-shrink:0}
.adventure-map{--map-orb:64px;--map-caption:142px;position:relative;isolation:isolate;width:100%;max-width:360px;aspect-ratio:360/660;margin:0 auto;border:1px solid #d3dcc7;border-radius:24px;overflow:hidden;background:radial-gradient(ellipse at 100% 100%,#cfe1d8a6,transparent 57%),radial-gradient(ellipse at 0% 0%,#efe7c7b3,transparent 55%),#e7eddb;box-shadow:inset 0 1px 0 #fff9}
.adventure-map:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:repeating-radial-gradient(ellipse at 23% 24%,transparent 0 30px,#9faf8f25 32px 33px,transparent 35px 61px);opacity:.75}
.adventure-map:after{content:'';position:absolute;inset:12px;border:1px solid #f8f7e77a;border-radius:17px;pointer-events:none;z-index:-1}
.map-trail{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}
.map-trail path{fill:none;stroke:#aa945d;stroke-width:3;stroke-linecap:round;stroke-dasharray:5 9;vector-effect:non-scaling-stroke}
.map-trail .trail-bed{stroke:#fffef0;stroke-width:14;stroke-dasharray:none;opacity:.8}
.map-trail .trail-complete{stroke:#547b56;stroke-width:3.5}
.map-levels{position:absolute;inset:0;z-index:1;list-style:none;padding:0;margin:0}
.map-levels>li{position:absolute;left:25%;width:0;height:0;margin:0;padding:0;list-style:none}
.map-levels>li:nth-child(even){left:75%}
.map-levels>li:nth-child(1){top:8.63636%;--map-icon:#46747c}
.map-levels>li:nth-child(2){top:25.15152%;--map-icon:#60834d}
.map-levels>li:nth-child(3){top:41.66667%;--map-icon:#aa7c27}
.map-levels>li:nth-child(4){top:58.18182%;--map-icon:#79637e}
.map-levels>li:nth-child(5){top:74.69697%;--map-icon:#357a74}
.map-levels>li:nth-child(6){top:91.21212%;--map-icon:#a58127}
.map-node{position:absolute;left:0;top:0;display:flex;align-items:center;gap:10px;width:calc(var(--map-orb) + 10px + var(--map-caption));min-width:0;min-height:var(--map-orb);padding:0;border:0;border-radius:16px;background:transparent;box-shadow:none;color:var(--forest);font:inherit;line-height:1.3;text-align:left;transform:translate(calc(var(--map-orb)/-2),-50%);cursor:pointer;-webkit-tap-highlight-color:transparent}
.map-levels>li:nth-child(even) .map-node{flex-direction:row-reverse;transform:translate(calc(-100% + var(--map-orb)/2),-50%)}
.map-orb{position:relative;display:flex;flex:0 0 var(--map-orb);flex-direction:column;align-items:center;justify-content:center;gap:0;width:var(--map-orb);height:var(--map-orb);padding:3px;border:3px solid #fffef3;border-radius:50%;background:linear-gradient(145deg,#e9debb,#cbbf9b);box-shadow:0 4px 0 #8c987b50,0 5px 9px #304e3420;color:#4e5037}
.map-node-icon{display:flex;align-items:center;justify-content:center;width:25px;height:25px;color:var(--map-icon)}
.map-node-icon svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.map-letter{font-family:Georgia,'Times New Roman',serif;font-size:24px;font-weight:650;line-height:24px}
.map-status-icon{position:absolute;right:-6px;bottom:-3px;display:grid;place-items:center;width:20px;height:20px;border:2px solid #f8f8ed;border-radius:50%;background:#eef2e4;color:#5d7356;box-shadow:0 1px 3px #173d3326}
.map-status-icon:empty{display:none}
.map-status-icon svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.map-node-copy{display:flex;flex:0 0 var(--map-caption);flex-direction:column;gap:4px;width:var(--map-caption);min-width:0;padding:8px 10px;border:1px solid #d3ddc8;border-radius:12px;background:#f9fbf0e8;box-shadow:0 2px 4px #41623d0a}
.map-node-copy strong{display:block;font-size:15px;font-weight:650;line-height:1.25;letter-spacing:0}
.map-node-copy .ui-label,.map-node-copy .bi-label{display:flex;flex-direction:column;align-items:flex-start;gap:2px;max-width:100%;line-height:1.25}
.map-node-copy strong .ui-en,.map-node-copy strong .bi-en{font-size:15px;font-weight:650;line-height:1.25}
.map-node-copy strong .ui-zh,.map-node-copy strong .zh{font-size:12px!important;font-weight:400;line-height:1.25;letter-spacing:0;margin:0;color:#677561}
.map-level-number{display:block;font-size:11px;line-height:1.3;color:#66745f;letter-spacing:.01em}
.map-level-number .ui-en,.map-level-number .ui-zh,.map-level-number .bi-en,.map-level-number .zh{font-size:11px!important;line-height:1.25;letter-spacing:0;margin:0}
.map-node.available .map-orb{background:linear-gradient(145deg,#f1dfb2,#d8bd7d);border-color:#fff6df}
.map-node.current .map-orb{background:linear-gradient(145deg,#f7e3a9,#ddb86b);border-color:#fff6cf;box-shadow:0 0 0 3px #c49b4d,0 0 0 7px #edca7a40,0 5px 0 #ad945e50,0 8px 12px #76612626;color:#493c1f}
.map-node.current .map-node-copy{background:#fff3d5;border-color:#cda653;box-shadow:0 2px 7px #a7843420}
.map-node.current .map-level-number{color:#8b6328;font-weight:600}
.map-node.done .map-orb{background:linear-gradient(145deg,#35624b,#234b3d);border-color:#eff0d8;color:#f2d48e;box-shadow:0 4px 0 #173d3360,0 6px 10px #173d3320}
.map-node.done .map-node-icon{color:#eed69b}
.map-node.done .map-status-icon{background:#e6c27a;border-color:#fff6dc;color:#254d3c}
.map-node.done .map-node-copy{background:#edf4e7;border-color:#bccfb3}
.map-node.done .map-level-number{color:#42684d}
.map-node.locked .map-orb{background:linear-gradient(145deg,#e9ecdf,#d2d9c6);border-color:#f4f5e9;color:#748068;box-shadow:0 3px 0 #9ca88b40}
.map-node.locked .map-node-icon{color:#798772}
.map-node.locked .map-node-copy{background:#eff3e6dc;border-color:#d9e0cf;color:#62715c;box-shadow:none}
.map-node:disabled{opacity:1;cursor:not-allowed}
.map-node:not(:disabled):hover .map-node-copy{border-color:#ad8d45;background:#fff7df}
.map-node:not(:disabled):hover .map-orb{filter:brightness(1.04)}
.map-node:focus-visible{outline:3px solid #a67a2e;outline-offset:6px}
.map-compass{position:absolute;top:17px;right:19px;font-family:Georgia,'Times New Roman',serif;font-size:17px;color:#718367;letter-spacing:.08em;pointer-events:none}
.map-landmark{position:absolute;font-size:10px;font-weight:650;color:#6b7a5d;letter-spacing:.1em;pointer-events:none}
.map-landmark.start{top:13px;left:20px}.map-landmark.finish{bottom:13px;left:20px}
.map-tools{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:12px 0 0}
.map-tools>.text-link{display:flex;align-items:center;justify-content:center;gap:8px;flex:1 1 120px;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:#fffdf8;font-size:14px;text-align:center}
.map-tools .ui-label{align-items:center}.map-tools .ui-zh{font-size:12px}
.map-tools svg{width:17px;height:17px;flex-shrink:0}
.map-save-note{margin:10px 0 0;text-align:center;font-size:12px;line-height:1.4;color:var(--muted)}
.map-save-note .zh{font-size:12px!important;line-height:1.35}
.compact-map-return{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:0 0 3px;padding:4px 0;font-size:13px;line-height:1.3;color:var(--forest);text-decoration:none}
.compact-map-return .ui-label{align-items:flex-start;gap:1px}.compact-map-return .ui-zh{font-size:12px;line-height:1.25}
.compact-map-return>svg{width:16px;height:16px;flex-shrink:0}
@media(max-width:360px){
 .quest-map-header h1{font-size:22px}.quest-map-site-image{width:46px;height:46px;flex-basis:46px}
 .adventure-map{--map-orb:60px;--map-caption:136px;border-radius:20px}
 .map-node{gap:9px;width:calc(var(--map-orb) + 9px + var(--map-caption))}
 .map-node-copy{padding:7px 9px}.map-node-copy strong,.map-node-copy strong .ui-en,.map-node-copy strong .bi-en{font-size:14px}
 .map-node-icon,.map-node-icon svg{width:22px;height:22px}.map-letter{font-size:23px;line-height:23px}
 .map-compass{font-size:15px;right:15px;top:13px}.map-landmark.start{left:15px;top:11px}.map-landmark.finish{left:15px;bottom:11px}
}
@media(prefers-reduced-motion:no-preference){
 .map-node.current .map-orb{animation:map-station-glow 3s ease-in-out infinite}
 @keyframes map-station-glow{0%,100%{box-shadow:0 0 0 3px #c49b4d,0 0 0 7px #edca7a40,0 5px 0 #ad945e50,0 8px 12px #76612626}50%{box-shadow:0 0 0 3px #c49b4d,0 0 0 10px #edca7a12,0 5px 0 #ad945e50,0 8px 12px #76612626}}
}
@media print{.quest-map-page .map-continue,.quest-map-page .map-tools,.compact-map-return{display:none}.adventure-map{break-inside:avoid;max-width:320px}}

/* Keep the destination label clear of the final bilingual checkpoint. */
.map-landmark.finish{left:auto;right:8px;bottom:16px;writing-mode:vertical-rl;font-size:9px;letter-spacing:.12em}
@media(max-width:360px){.map-compass{display:none}}
