@font-face{font-family:Barlow;src:url('BarlowCondensed-SemiBold.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
:root{--paper:#fafaf8;--ink:#242820;--muted:#73786e;--line:#dedfd9;--orange:#d75b2e;--light:#f2eee7;--radius:14px}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:#dbdcd8}body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}button,input,a{-webkit-tap-highlight-color:transparent}button{font:inherit;border:0;cursor:pointer;color:inherit;background:none}button,a{touch-action:manipulation}button{transition:background .18s,transform .15s,color .18s}button:hover{background:#24282009}button:active{transform:scale(.98)}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--orange);outline-offset:3px}::selection{background:#d75b2e33}.app{width:100%;max-width:390px;height:100dvh;margin:auto;background:var(--paper);position:relative;isolation:isolate;overflow:hidden}.view{height:100%;display:flex;flex-direction:column;animation:enter .25s ease-out}.scroll{flex:1;min-height:0;overflow:auto;scrollbar-width:none}.scroll::-webkit-scrollbar{display:none}.num{font-family:Barlow,sans-serif;font-weight:600;font-variant-numeric:tabular-nums;line-height:1}.icon{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon.small{width:18px;height:18px}.topbar{height:62px;padding:10px 18px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2;flex-shrink:0}.brand{display:flex;align-items:center;gap:8px;font-weight:650;letter-spacing:2px;font-size:16px}.brand .icon{width:26px}.tools{display:flex;gap:8px}.iconbtn{display:grid;place-items:center;width:44px;height:44px;border-radius:50%}.onmap{background:#fafaf8ee;box-shadow:0 2px 5px #24282008}.onmap:hover{background:#fff}.saved{color:var(--orange)}.map{position:relative;overflow:hidden;background:#e4e4e0;flex-shrink:0}.map canvas,.map>.terrain{position:absolute;inset:0;width:100%;height:100%}.terrain text{font-family:inherit;font-size:12px;fill:#64685e;paint-order:stroke;stroke:#e6e6e1;stroke-width:3;stroke-linejoin:round}.terrain .place{font-size:13px;font-weight:600;fill:#3f463a}.map-header{position:absolute;top:0;left:0;right:0}.detail-map{height:322px}.map-bottom{position:absolute;left:20px;bottom:14px;right:20px;display:flex;justify-content:space-between;align-items:flex-end;font-size:11px;color:#51584a}.scale{width:58px;padding-top:4px;border-top:1px solid #51584a;position:relative;line-height:1.2}.scale:before,.scale:after{content:"";position:absolute;top:-4px;width:1px;height:4px;background:#51584a}.scale:before{left:0}.scale:after{right:0}.north{position:absolute;right:26px;top:82px;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;font-weight:600;color:#4f5849}.north svg{width:15px;height:23px}.map-key{position:absolute;top:76px;left:22px;display:flex;gap:6px;align-items:center;font-size:11px;color:#575e50}.map-key i{width:5px;height:5px;border-radius:50%;background:#697661}.map-control{position:absolute;bottom:42px;right:16px}.route-title{padding:20px 22px 0}.location{font-size:12px;color:var(--muted);display:flex;gap:7px;align-items:center;margin-bottom:6px}.location .icon{width:13px;height:13px}h1,h2,p{margin:0}h1{font-size:27px;font-weight:650;line-height:1.25;letter-spacing:-.6px}.title-line{display:flex;align-items:center;justify-content:space-between;gap:12px}.difficulty{font-size:11px;font-weight:600;display:flex;align-items:center;gap:6px;white-space:nowrap}.difficulty i{width:4px;height:10px;background:#8d9782;display:inline-block;transform:skew(-18deg)}.difficulty i:last-child{background:#d3d7cd}.metrics{display:grid;grid-template-columns:repeat(3,1fr);padding:18px 22px 17px;gap:18px}.metric .value{display:flex;align-items:baseline;gap:4px}.metric .num{font-size:32px;letter-spacing:-.3px}.unit{font-size:12px;color:#545c4d}.metric .label{font-size:12px;color:var(--muted);margin-top:5px}.elevation{margin:0 22px;border-top:1px solid var(--line);padding:17px 0 0}.section-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-row h2{font-size:14px;font-weight:600}.section-row .secondary{font-size:12px;color:var(--muted)}.profile-head{margin-top:8px;display:flex;align-items:baseline;gap:5px;height:22px}.profile-head strong{font-size:13px;font-weight:500}.profile-head .num{font-size:20px;margin-left:auto}.profile-head span{font-size:11px;color:var(--muted)}.profile{position:relative;height:126px;margin:6px -3px 0;touch-action:pan-y}.profile svg{width:100%;height:100%;overflow:visible}.profile .grid{stroke:#dedfd9;stroke-width:.6;stroke-dasharray:3 5}.profile .axis{font:11px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:#73786e}.profile .profileline{stroke:#56614b;stroke-width:1.6;fill:none;stroke-linejoin:round;stroke-linecap:round}.profile .probe{stroke:var(--orange);stroke-width:1;stroke-dasharray:2 3}.profile .probe-dot{fill:var(--orange);stroke:var(--paper);stroke-width:3}.profile input{position:absolute;inset:0;margin:0;width:100%;height:100%;opacity:0;cursor:ew-resize;touch-action:pan-y}.profile:focus-within{outline:2px solid #d75b2e70;outline-offset:3px;border-radius:4px}.supply{margin:10px 22px 0;border-top:1px solid var(--line);padding-top:13px}.supply-main{width:100%;padding:0;display:flex;align-items:center;text-align:left;gap:10px;min-height:42px;border-radius:5px}.supply-main>.icon{color:#66735d;width:19px}.supply-text{flex:1}.supply-text strong{font-size:13px;font-weight:600;display:block}.supply-text span{font-size:11px;color:var(--muted)}.supply-info{padding:8px 0 2px 29px;font-size:13px;color:#626b58}.footer{flex-shrink:0;padding:12px 22px 18px;background:var(--paper);position:relative}.primary{width:100%;border-radius:14px;height:54px;display:flex;align-items:center;justify-content:center;gap:9px;background:var(--orange);color:#fff;font-size:15px;font-weight:600}.primary:hover{background:#bd4d25}.primary:disabled{opacity:.6;cursor:wait}.primary .icon{width:20px}.footer-caption{font-size:11px;color:var(--muted);text-align:center;margin-bottom:9px;display:flex;align-items:center;justify-content:center;gap:5px}.footer-caption .icon{width:12px;height:12px}.nav-top{height:52px;padding-top:8px}.status{display:flex;align-items:center;gap:6px;font-size:12px;color:#5c6850}.status i{width:6px;height:6px;background:#687d55;border-radius:50%}.nav-route{font-size:13px;font-weight:600}.turn{padding:3px 22px 16px;display:flex;gap:19px;align-items:center;min-height:134px}.turn-icon{width:66px;height:76px;stroke:var(--orange);stroke-width:6;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.turn-distance{display:flex;align-items:baseline;gap:8px}.turn-distance .num{font-size:78px;letter-spacing:-1px}.turn-distance .unit{font-size:17px}.turn-label{font-size:15px;font-weight:600;margin-top:2px}.turn-label span{font-weight:400;color:var(--muted);font-size:13px;margin-left:9px}.nav-map{height:286px}.nav-map .north{top:19px;right:26px}.nav-map .map-key{top:18px}.live-point{fill:var(--orange);stroke:#fff;stroke-width:3}.map-caption{position:absolute;left:18px;bottom:15px;background:var(--paper);padding:7px 11px;font-size:12px;border-radius:8px;display:flex;align-items:center;gap:7px}.map-caption i{width:5px;height:5px;background:#687d55;border-radius:50%}.nav-elevation{padding-top:17px;margin-top:0;border:0}.climb-heading{display:flex;align-items:baseline;gap:5px}.climb-heading .num{font-size:32px;color:var(--orange)}.climb-heading .label{font-size:15px;font-weight:600}.climb-heading .unit{font-size:13px}.climb-heading .to-summit{font-size:12px;color:var(--muted);margin-left:auto}.nav-elevation .profile{height:116px;margin-top:6px}.nav-stats{display:flex;align-items:center;margin:11px 22px 0;padding-top:14px;border-top:1px solid var(--line);gap:30px}.nav-stats .metric .num{font-size:29px}.nav-stats .metric .label{font-size:11px}.route-progress{margin-left:auto;text-align:right;font-size:11px;color:var(--muted)}.route-progress .num{font-size:21px;color:var(--ink)}.progress-track{width:53px;height:3px;background:#dedfd9;margin-top:7px}.progress-track i{display:block;width:43%;height:100%;background:var(--orange)}.nav-footer{display:flex;gap:10px;padding-top:15px}.pause{height:54px;flex:1;border-radius:14px;background:#eceee7;display:flex;align-items:center;justify-content:center;gap:7px;font-weight:600}.pause:hover{background:#e2e6da}.finish{width:98px;border:1px solid #d5dacd;border-radius:14px;font-size:14px}.finish:hover{background:#f0f1eb}.record-top{height:60px}.record-top .center-label{font-size:14px;font-weight:600}.record-intro{padding:12px 24px 0}.complete-label{font-size:12px;color:var(--orange);display:flex;gap:5px;align-items:center;margin-bottom:9px}.complete-label .icon{width:15px;height:15px} .record-intro h1{font-size:28px;line-height:1.3}.record-intro p{font-size:12px;color:var(--muted);margin-top:8px}.summit-art{position:relative;height:236px;margin:16px 0 0;overflow:hidden}.summit-art svg{width:100%;height:100%;display:block}.summit-art .summit-name{font-size:11px;fill:#747b6c}.summit-art .summit-height{font:600 20px Barlow,sans-serif;fill:var(--orange)}.summit-art .art-axis{font-size:10px;fill:#858a7e}.art-caption{position:absolute;bottom:12px;left:24px;font-size:11px;color:#777f70;letter-spacing:.3px}.art-caption b{color:#56604a;font-weight:500}.record-metrics{display:grid;grid-template-columns:1fr 1fr;gap:20px 26px;padding:18px 24px 20px;border-top:1px solid var(--line);margin:0 24px;padding-left:0;padding-right:0}.record-metrics .metric .num{font-size:41px}.record-metrics .metric .label{font-size:12px}.record-metrics .unit{font-size:13px}.mini-route{display:flex;align-items:center;gap:14px;padding:16px 0;margin:0 24px;border-top:1px solid var(--line)}.mini-route .map{width:105px;height:97px;border-radius:8px;flex-shrink:0}.mini-copy{flex:1;min-width:0}.mini-copy h2{font-size:13px;font-weight:600;margin-bottom:9px}.trail-list{font-size:12px;color:var(--muted);display:grid;gap:5px}.trail-list div{display:flex;align-items:center;gap:6px}.trail-list i{width:5px;height:5px;background:#6c7b5d;border-radius:50%}.trail-list div:last-child i{background:var(--orange)}.record-footer{padding-top:8px}.record-footer .primary{background:var(--ink)}.record-footer .primary:hover{background:#3c4434}.toast{position:absolute;z-index:10;left:22px;right:22px;bottom:91px;background:#242820;color:#fff;padding:13px 16px;border-radius:12px;font-size:13px;box-shadow:0 4px 16px #2428201f;animation:enter .18s ease-out}.sheet-backdrop{position:absolute;inset:0;z-index:20;background:#20261a4f;display:flex;align-items:flex-end}.sheet{background:var(--paper);width:100%;padding:22px 24px 24px;border-radius:22px 22px 0 0;animation:sheet .25s ease-out}.sheet h2{font-size:19px}.sheet p{font-size:14px;color:#65705a;margin:9px 0 20px;line-height:1.7}.sheet .primary{margin-top:10px}.sheet .close{height:48px;width:100%;margin-top:6px;font-size:14px}.map.zoomed canvas,.map.zoomed .terrain{transform:scale(1.35);transform-origin:52% 40%}.map canvas,.map .terrain{transition:transform .25s ease-out}.map-marker{transition:cx .16s,cy .16s}.profile .probe,.profile .probe-dot{transition:none}.record-checked{background:#edf0e8!important;color:#3f5031!important}.record-checked:hover{background:#e2e8d9!important}@media(min-width:600px){body{display:flex;align-items:center;justify-content:center}.app{height:844px;box-shadow:0 6px 32px #454b3812}}@media(max-height:800px) and (max-width:599px){.detail-map{height:29vh}.nav-map{height:28vh}.summit-art{height:24vh}.route-title{padding-top:16px}.metrics{padding-top:14px;padding-bottom:14px}.footer{padding-bottom:12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@keyframes enter{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes sheet{from{transform:translateY(25px);opacity:.8}to{transform:translateY(0);opacity:1}}
/* Round 1: keep the route decision on one screen and the next turn on its map. */
.detail-map{height:308px}.detail .profile{height:116px}.scrub-hint{display:flex;align-items:center;gap:3px}.scrub-hint .icon{width:13px;height:13px;transform:scaleX(-1)}.metric small{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;font-size:11px;font-weight:400;padding:0 3px;color:#60665b}.nav-map .map-caption{bottom:12px;font-size:11px;padding:6px 9px}.nav-map .north{right:17px;top:16px}.nav-map .map-control{bottom:13px;right:13px}.nav-map .terrain text{stroke-width:1.6;font-size:9px}.nav-map .terrain .place{font-size:10px}.nav-map .terrain .route-line{stroke-width:2.4}.nav-map .terrain .map-marker{r:4px}.nav-map .terrain .map-halo{r:12px}.nav-map .terrain .supply-map-label{display:none}.nav-map .terrain .map-probe circle{stroke-width:1.8px}.detail .footer{padding-top:14px}.supply-main{min-height:46px}.supply-text span{display:block;margin-top:3px}.detail .profile-head{margin-top:6px}.detail .elevation{padding-top:15px}
/* Round 2: roles and quantities are distinct before decorative detail. */
.primary{background:#c45128}.primary:hover{background:#b54821}.nav-map .map-marker{display:none}.nav-map .terrain .navigation-arrow{stroke-linejoin:round}.nav-map .terrain .map-halo{r:11px}.nav-map .terrain .route-line{stroke-width:2.2}.nav-map .terrain .place{font-weight:550}
/* Round 3: subtraction and precise direction on the selected exit. */
.nav-map .supply-map-point{display:none}.scrub-hint .icon{transform:none;width:15px;height:15px}.profile .axis{fill:#6f756a}.summit-art .art-axis{fill:#72796c}.map-control .icon{width:22px;height:22px}
.supply h2{font-size:12px;color:#73786e;font-weight:500;margin:0 0 5px}.supply{margin-top:8px;padding-top:10px}
