/* Tutorial surface. The task scrolls; progress and its action remain in place. */
.source-guide.journey-panel{overflow:hidden;padding:22px;gap:0;box-sizing:border-box;box-shadow:0 8px 28px #00000008}
.journey-panel .sg-top{padding-bottom:18px;margin-bottom:6px;flex:none}
.panel-eyebrow{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500}
.panel-live-dot{width:6px;height:6px;border-radius:50%;background:var(--journey-accent,#8854ec)}
.journey-panel .panel-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:4px;scrollbar-gutter:stable}
.panel-step-label{display:block;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.journey-panel .panel-step-heading{position:relative;padding-top:8px}
.journey-panel .journey-art{display:block;width:150px;height:103px;margin:4px auto 15px}
.journey-panel h2{font-size:25px;line-height:1.3;letter-spacing:-.5px;margin:0 0 10px;font-weight:600}
.journey-panel p{margin:0;font-size:14px;line-height:1.7;overflow-wrap:anywhere}
.journey-panel .panel-goal{font-size:15px;color:var(--ink)}
.journey-panel .panel-explanation{margin:12px 0 22px;color:var(--muted);font-size:13px}
.journey-panel h3{font-size:12px;letter-spacing:.02em;font-weight:500;color:var(--muted);margin:0 0 12px}
.journey-panel .panel-todo{margin-top:24px}
.journey-panel .panel-todo ul{list-style:none;padding:0;margin:0}
.journey-panel .panel-todo li{display:flex;align-items:flex-start;gap:10px;margin:0;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.panel-todo li>span{width:5px;height:5px;flex:none;border-radius:50%;margin-top:9px;background:var(--muted)}
.journey-panel .panel-deliverables{margin:20px 0;font-size:13px;color:var(--muted)}
.journey-panel summary{cursor:pointer;line-height:1.6}
.panel-deliverables ul{padding-left:18px;line-height:1.8}
.panel-product{margin:22px 0;padding:14px;border:1px solid var(--line);border-radius:12px}
.panel-product summary{list-style:none;display:block}.panel-product summary::after{content:'查看商品信息 +';display:block;margin-top:8px;color:var(--muted);font-size:11px}
.panel-product[open] summary::after{content:'收起 −'}
.panel-product summary>span{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}
.panel-product summary>strong{font-size:12px;font-weight:500;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.panel-product a{display:block;margin-top:10px;font-size:12px;color:var(--ink);text-underline-offset:4px}
.panel-access-note{border:1px solid var(--line);border-radius:12px;padding:14px;margin:20px 0}
.panel-access-note strong{font-size:13px;font-weight:600}.journey-panel .panel-access-note p{margin-top:5px;color:var(--muted);font-size:12px}
.panel-bottom{flex:none;padding-top:18px;margin-top:12px;border-top:1px solid var(--line);background:var(--bg)}
.journey-progress-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:12px;margin-bottom:10px}
.journey-progress-label strong{font-weight:500}.journey-progress-label span{color:var(--muted);font-variant-numeric:tabular-nums}.journey-progress-label b{font-size:18px;font-weight:600;color:var(--ink)}
.panel-progress progress,.journey-bottom-progress progress{display:block;width:100%;height:6px;border:0;border-radius:6px;overflow:hidden;appearance:none;background:var(--line);accent-color:var(--journey-accent,#8854ec)}
.panel-progress progress::-webkit-progress-bar,.journey-bottom-progress progress::-webkit-progress-bar{background:var(--line)}
.panel-progress progress::-webkit-progress-value,.journey-bottom-progress progress::-webkit-progress-value{background:var(--journey-accent,#8854ec);border-radius:6px;transition:width .3s ease}
.panel-progress progress::-moz-progress-bar,.journey-bottom-progress progress::-moz-progress-bar{background:var(--journey-accent,#8854ec);border-radius:6px}
.journey-panel .journey-progress-note,.journey-progress-note{font-size:11px;line-height:1.5;color:var(--muted);margin:8px 0 0}
.journey-progress-note.has-skipped{color:#b32929}
.journey-panel .sg-actions{position:static;flex-shrink:0;display:flex;margin:16px 0 0;padding:0;border:0}
.journey-panel .sg-next{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:46px;font-size:14px;border-radius:11px;padding:12px 16px}
.panel-full-link{display:block;width:fit-content;margin:12px auto 0;font-size:12px;color:var(--muted);text-decoration:none}.panel-full-link:hover{color:var(--ink);text-decoration:underline}
.journey-panel .panel-feedback{font-size:12px;color:var(--muted);padding-top:10px}.journey-panel .panel-feedback:empty{display:none}
.journey-panel .panel-complete{margin-block:16px;color:var(--journey-accent,#8854ec)}
.panel-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px}.panel-loading h2{font-size:20px}.panel-loading p{color:var(--muted);font-size:13px}.panel-loading a{font-size:13px;color:var(--ink)}
.panel-loading-mark{width:26px;height:26px;border:2px solid var(--line);border-top-color:var(--ink);border-radius:50%;animation:panel-load 1s linear infinite}
.panel-loading button{padding:10px 16px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink)}
.panel-target.sg-target{outline:2px solid var(--journey-accent,#8854ec)!important;outline-offset:5px;border-radius:12px!important}.panel-target.sg-target::before,.panel-target.sg-target::after{display:none!important}
.journey-art{fill:var(--line);overflow:visible}.journey-art-main{fill:#8854ec}.journey-art-stroke{fill:none;stroke:var(--muted);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.journey-art-check{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.journey-art-trend{fill:none;stroke:#8854ec;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.panel-enter{animation:panel-arrive .32s cubic-bezier(.2,.8,.2,1) both}.panel-exit{animation:panel-depart .22s ease both}
.panel-enter .journey-art-scene{animation:panel-art-arrive .55s cubic-bezier(.2,.8,.2,1) both}
@keyframes panel-arrive{from{opacity:0;transform:translate3d(18px,0,0)}to{opacity:1;transform:none}}
@keyframes panel-depart{to{opacity:0;transform:translate3d(14px,0,0)}}
@keyframes panel-art-arrive{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes panel-load{to{transform:rotate(360deg)}}
@media(min-width:1200px){.source-guide.journey-panel{width:336px}.guide-on .content-shell{right:368px}.journey-workbench .content-shell{transition:right .3s cubic-bezier(.2,.8,.2,1)}}
/* Preserve the existing compact sheet below the desktop breakpoint. */
@media(max-width:1199px){:root{--guide-height:min(380px,48dvh)}.source-guide.journey-panel{padding:12px 16px max(12px,env(safe-area-inset-bottom))}.journey-panel .sg-top{padding-bottom:6px;margin:0}.journey-panel .journey-art{display:none}.journey-panel h2{font-size:19px}.panel-bottom{padding-top:10px;margin-top:8px}.panel-full-link{display:none}.journey-panel .sg-actions{margin-top:10px}.panel-enter{animation-name:panel-rise}.panel-exit{animation-name:panel-sink}@keyframes panel-rise{from{opacity:0;transform:translate3d(0,22px,0)}to{opacity:1;transform:none}}@keyframes panel-sink{to{opacity:0;transform:translate3d(0,18px,0)}}}
@media(prefers-reduced-motion:reduce){.panel-enter,.panel-exit,.journey-panel *{animation:none!important;transition:none!important}.journey-workbench .content-shell{transition:none!important}.panel-target.sg-target{scroll-behavior:auto}}
.journey-panel .sg-actions .panel-previous{flex:none;white-space:nowrap;font-size:12px;padding:10px 12px;min-height:46px;border-radius:11px}
.journey-panel .sg-actions .sg-next{width:auto;min-width:0}
.journey-panel .panel-review-note{font-size:11px;color:var(--muted);padding:9px 0}
.journey-panel button.panel-return{background:none;border:0;padding:0;cursor:pointer;font:inherit;font-size:12px}
/* Purple is the tutorial identity; translucent tutorial surfaces use solid fills. */
:root{--journey-accent:#8854ec;--journey-purple-ink:#6531bc;--journey-purple-fill:rgb(136 84 236 / .10);--journey-purple-border:rgb(136 84 236 / .28)}
:root[data-theme=dark]{--journey-purple-ink:#c6a4ff;--journey-purple-fill:rgb(136 84 236 / .16);--journey-purple-border:rgb(171 128 250 / .36)}
.journey-lock{display:block;width:58px;height:58px;color:var(--journey-accent);flex:none}
.journey-panel .panel-access-note{display:flex;align-items:center;gap:13px;background:var(--journey-purple-fill);border-color:var(--journey-purple-border);padding:16px}
.journey-panel .panel-access-note .journey-lock{width:37px;height:37px}
.journey-panel .panel-access-note strong,.journey-panel .panel-access-note p{color:var(--journey-purple-ink)}
.shared-workbench #main .journey-access{background:var(--journey-purple-fill);border-color:var(--journey-purple-border);padding:30px;border-radius:16px}
.shared-workbench .journey-access>.journey-lock{margin-bottom:18px}
.shared-workbench #main .journey-access h2,.shared-workbench #main .journey-access p{color:var(--journey-purple-ink)}
.shared-workbench #main .journey-access .journey-primary-link{background:var(--journey-accent);color:#fff}
.journey-panel .sg-actions .sg-next{background:var(--journey-accent);border-color:var(--journey-accent);color:#fff}
.panel-progress progress,.journey-bottom-progress progress{background:rgb(136 84 236 / .13)}
.panel-progress progress::-webkit-progress-bar,.journey-bottom-progress progress::-webkit-progress-bar{background:rgb(136 84 236 / .13)}
.journey-art-main{fill:var(--journey-accent)}.journey-art-trend{stroke:var(--journey-accent)}
