/* "带我一步步去" coach: dim the page, spotlight one control with a pulsing ring, explain it in a bubble. */
.coach-ring{position:fixed;z-index:2147482000;border-radius:14px;box-shadow:0 0 0 9999px rgba(14,10,24,.5);pointer-events:none;transition:left .4s cubic-bezier(.2,.8,.2,1),top .4s cubic-bezier(.2,.8,.2,1),width .4s cubic-bezier(.2,.8,.2,1),height .4s cubic-bezier(.2,.8,.2,1)}
.coach-ring[hidden]{display:none}
.coach-ring::before,.coach-ring::after{content:"";position:absolute;inset:-3px;border:3px solid #a47bff;border-radius:17px}
.coach-ring::after{animation:coach-ping 1.6s cubic-bezier(.2,.8,.2,1) infinite}
@keyframes coach-ping{0%{opacity:.9;transform:scale(1)}80%,100%{opacity:0;transform:scale(1.22)}}
.coach-tip{position:fixed;z-index:2147482001;width:280px;padding:16px 16px 14px;border-radius:18px;background:var(--bg,#fff);color:var(--ink,#111);box-shadow:0 18px 44px rgba(0,0,0,.24),0 0 0 1px rgba(0,0,0,.04);font-size:15px;line-height:1.55;transition:left .4s cubic-bezier(.2,.8,.2,1),top .4s cubic-bezier(.2,.8,.2,1)}
.coach-tip.is-in{animation:coach-in .34s cubic-bezier(.2,.9,.3,1.25)}
@keyframes coach-in{from{opacity:0;transform:scale(.92)}}
.coach-tip::before{content:"";position:absolute;width:14px;height:14px;background:inherit;transform:rotate(45deg)}
.coach-tip[data-side=right]::before{left:-7px;top:calc(var(--arrow,24px) - 7px)}
.coach-tip[data-side=left]::before{right:-7px;top:calc(var(--arrow,24px) - 7px)}
.coach-tip[data-side=bottom]::before{top:-7px;left:calc(var(--arrow,24px) - 7px)}
.coach-tip[data-side=top]::before{bottom:-7px;left:calc(var(--arrow,24px) - 7px)}
.coach-tip[data-side=none]::before{display:none}
.coach-tip small{display:block;margin:0 0 4px;font-size:12px;font-weight:700;color:#7532d6}
.coach-tip p{margin:0 0 12px}
.coach-tip div{display:flex;align-items:center;justify-content:space-between;gap:8px}
.coach-tip button{font:inherit;font-size:13px;font-weight:600;border:0;border-radius:999px;cursor:pointer}
.coach-tip [data-coach-next]{padding:8px 18px;background:var(--ink,#111);color:var(--bg,#fff)}
.coach-tip [data-coach-skip]{padding:8px 2px;background:none;color:var(--muted,#777)}
.coach-tip button:focus-visible{outline:2px solid #7532d6;outline-offset:2px}
:root[data-theme=dark] .coach-tip small{color:#b39cf7}
:root[data-theme=dark] .coach-ring::before,:root[data-theme=dark] .coach-ring::after{border-color:#b39cf7}
@media(prefers-reduced-motion:reduce){.coach-ring,.coach-tip,.coach-ring::after{animation:none!important;transition:none!important}}

/* In-page target of the current step: a soft breathing ring with a small "在这里" tag. */
body .tutorial-target-outline{border:0;border-radius:18px;box-shadow:0 0 0 2px #7532d6,0 0 0 7px rgba(117,50,214,.16),0 10px 28px rgba(117,50,214,.18);animation:target-breathe 2.2s ease-in-out infinite!important}
body .tutorial-target-outline::after{content:"在这里";position:absolute;top:-10px;left:14px;padding:1px 9px;border-radius:999px;background:#7532d6;color:#fff;font-size:11px;font-weight:600;line-height:1.6;box-shadow:0 4px 12px rgba(117,50,214,.3)}
@keyframes target-breathe{0%,100%{box-shadow:0 0 0 2px #7532d6,0 0 0 6px rgba(117,50,214,.14),0 10px 28px rgba(117,50,214,.16)}50%{box-shadow:0 0 0 2px #7532d6,0 0 0 11px rgba(117,50,214,.08),0 10px 28px rgba(117,50,214,.22)}}
@media(prefers-reduced-motion:reduce){body .tutorial-target-outline{animation:none!important}}
:root[data-theme=dark] .coach-tip{background:#1c1c1e;box-shadow:0 18px 44px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.1)}
