/* TOUR-2 · Tour im Browser. Nur Tokens aus REGELWERK § 1 (Hell, Dunkel, erhöhter Kontrast) und MOTION (--cm-*).
   Eine schwebende Karte über dem Canvas, deckend (paper), nichts abgedunkelt. Text ≥ 4,5:1 (browser-tour-2-check misst).
   Der Rahmen steht nur in Ruhe: er blendet aus, solange sich etwas bewegt, und am Ziel ein (§ 2.35/§ 2.38). */
.cv-tour,.cv-tour-ptr,.cv-tour-ripple{--tour-paper:#ffffff;--tour-line:#dce1e8;--tour-row-line:#edf0f4;--tour-ink:#172033;--tour-secondary:#536176;--tour-tertiary:#8a94a6;
 --tour-accent:#356ae6;--tour-primary-fill:#356ae6;--tour-primary-ink:#ffffff;--tour-primary-hover:#2757c5;--tour-primary-pressed:#2552b9;--tour-link:#2d58b5;
 --tour-hover:#eff0f2;--tour-pressed:#e4e6e9;--tour-success:#207b54;--tour-success-soft:#e5f3ec;--tour-warning:#9c6012;--tour-select:rgba(53,106,230,.11);
 --tour-dep:#8a94a6;--tour-dep-tight:#9c6012;--tour-dep-warn:#ff3b30;--tour-ring:rgba(53,106,230,.72);--tour-halo:rgba(53,106,230,.16);
 --tour-shadow:0 16px 64px #17203345;--tour-pill-shadow:0 8px 28px #17203326;--tour-right-click:#a97820;--tour-click:rgba(23,32,51,.45)}
/* Über der Abdunklung offener Blätter (8), unter ihren Flächen (10): die Karte bleibt bedienbar. */
.cv-tour{position:fixed;inset:0;z-index:9;pointer-events:none;font-family:Commissioner,-apple-system,BlinkMacSystemFont,sans-serif;font-size:13px;line-height:18px;color:var(--tour-ink);-webkit-font-smoothing:antialiased}
@media(prefers-color-scheme:dark){.cv-tour,.cv-tour-ptr,.cv-tour-ripple{--tour-paper:#191c22;--tour-line:#3a4250;--tour-row-line:#2c323c;--tour-ink:#e7eaf0;--tour-secondary:#bec8d8;--tour-tertiary:#8f9aad;
 --tour-accent:#6f95f0;--tour-primary-fill:#8dafff;--tour-primary-ink:#0f1a33;--tour-primary-hover:#a6c0ff;--tour-primary-pressed:#abc4ff;--tour-link:#9cb6f2;
 --tour-hover:#343b46;--tour-pressed:#404959;--tour-success:#6fcf9f;--tour-success-soft:#1d3329;--tour-warning:#f3cf8c;--tour-select:rgba(111,149,240,.18);
 --tour-dep:#8f9aad;--tour-dep-tight:#f3cf8c;--tour-dep-warn:#ff453a;--tour-ring:rgba(111,149,240,.8);--tour-halo:rgba(111,149,240,.2);--tour-shadow:0 16px 64px #00000080,0 0 0 1px #ffffff14;--tour-pill-shadow:0 8px 28px #00000066;--tour-right-click:#c99a3c;--tour-click:rgba(231,234,240,.55)}}
@media(prefers-contrast:more){.cv-tour{--tour-line:#697588;--tour-secondary:#374458;--tour-link:#174ea6;--tour-tertiary:#536176}}
@media(prefers-contrast:more) and (prefers-color-scheme:dark){.cv-tour{--tour-line:#a6b3c8;--tour-secondary:#e0e6f0;--tour-link:#bfd3ff;--tour-primary-fill:#bfd3ff;--tour-tertiary:#bec8d8}}
.library-open .cv-tour,html.cv-boot-gate .cv-tour,.library-open .cv-tour-ptr{visibility:hidden}
.cv-tour button{font:inherit;min-height:0;margin:0;box-sizing:border-box;line-height:inherit}   /* gegen die allgemeinen Knopfregeln der Hülle (44 pt, Polster) */
.cv-tour :focus-visible{outline:var(--cv-focus-ring);outline-offset:0}

/* Karte: Ecke rechts unten (REGELWERK 2.2: Radius 14, deckend), Kopf „Tour · n von 8“ + Punkte + „−“. */
.cv-tour-panel{position:fixed;right:16px;bottom:66px;width:344px;max-width:calc(100vw - 32px);box-sizing:border-box;padding:12px 18px 14px;border-radius:var(--cv-r-popover);
 background:var(--tour-paper);color:var(--tour-ink);border:1px solid var(--tour-line);box-shadow:var(--tour-shadow);pointer-events:auto;overflow:hidden;
 opacity:0;transform:translateY(6px) scale(.98);transform-origin:100% 100%;transition:opacity var(--cm-dialog-enter,200ms) var(--cm-curve-fade,ease),transform var(--cm-dialog-enter,200ms) var(--cm-curve-movement,ease)}
.cv-tour-panel.is-on{opacity:1;transform:none}
/* Während die Tour selbst zieht, sperrt die Hülle alle Treffer außer der Fläche (canvas-dragging); Karte und Pille bleiben bedienbar. */
body.canvas-dragging #cv-tour.is-demo .cv-tour-panel,body.canvas-dragging #cv-tour.is-demo .cv-tour-panel *,body.canvas-dragging #cv-tour.is-demo .cv-tour-pill,body.canvas-dragging #cv-tour.is-demo .cv-tour-pill *{pointer-events:auto!important}
.cv-tour-panel[hidden]{display:none}
.cv-tour-panel.is-narrow{width:300px}
.cv-tour-panel.is-raised:not(.is-bar),.cv-tour-pill.is-raised{bottom:140px}
/* Unter 808 px: Leiste am unteren Rand (Titel, Punkte, Knöpfe; der Text bleibt kurz). */
.cv-tour-panel.is-bar{left:8px;right:8px;bottom:8px;width:auto;max-width:none;padding:10px 14px 12px;border-radius:var(--cv-r-bar)}
.cv-tour-panel.is-bar .cv-tour-body{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cv-tour-panel.is-bar .cv-tour-legend,.cv-tour-panel.is-bar .cv-tour-preview,.cv-tour-panel.is-bar .cv-tour-endmark{display:none}
.cv-tour-top{display:flex;align-items:center;gap:8px;min-height:24px}
.cv-tour-kicker{font-size:12px;line-height:16px;font-weight:600;color:var(--tour-secondary);white-space:nowrap}
.cv-tour-dots{display:flex;align-items:center;gap:2px;flex:1;min-width:0}
.cv-tour-dot,.cv-tour-dot:hover{position:relative;width:14px;height:24px;padding:0;border:0;background:transparent;cursor:pointer;flex:none;transition:width var(--cm-fade-quick,200ms) var(--cm-curve-movement,ease)}
.cv-tour-dot::after{content:"";position:absolute;left:4px;right:4px;top:50%;margin-top:-3px;height:6px;border-radius:3px;background:var(--tour-tertiary);opacity:.55;transition:background var(--cm-fade-quick,200ms) var(--cm-curve-fade,ease)}
.cv-tour-dot.is-done::after{background:var(--tour-link);opacity:1}
.cv-tour-dot.is-cur{width:24px}.cv-tour-dot.is-cur::after{background:var(--tour-accent);opacity:1}
.cv-tour-icon{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--tour-secondary);cursor:pointer;flex:none}
.cv-tour-icon:hover{background:var(--tour-hover);border-color:transparent;color:var(--tour-ink)}.cv-tour-icon[hidden]{display:none}
.cv-tour-icon svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.cv-tour-title{margin:8px 0 4px;font-size:17px;line-height:22px;font-weight:600;color:var(--tour-ink)}
.cv-tour-body{margin:0;color:var(--tour-ink)}
/* Vorführen · Ergebnis · Versuch · Geschafft */
.cv-tour-live-line{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12px;line-height:16px;color:var(--tour-secondary)}
/* TOUR-3 (G29): „Vorführung läuft“ trägt den kleinen Mac-Zeiger der Vorführung — kein blauer Kreis, kein Pulsieren. */
.cv-tour-live-ptr{display:block;width:14px;height:14px;flex:none;overflow:visible}
.cv-tour-live-ptr path{fill:#000000;stroke:#ffffff;stroke-width:1.4;stroke-linejoin:round}
.cv-tour-res,.cv-tour-hint{display:flex;gap:8px;align-items:flex-start;margin-top:12px;font-size:12px;line-height:16px;color:var(--tour-secondary)}
.cv-tour-res-icon,.cv-tour-hint-icon{width:14px;height:14px;flex:none;margin-top:1px;fill:none;stroke:var(--tour-secondary);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cv-tour-ok{display:flex;gap:8px;align-items:flex-start;margin-top:12px;padding:8px 10px;border-radius:var(--cv-r-control);background:var(--tour-success-soft);color:var(--tour-success);font-size:12px;line-height:16px;font-weight:500;animation:cvTourIn var(--cm-fade-content,400ms) var(--cm-curve-fade,ease) both}
.cv-tour-ok-icon{width:18px;height:18px;flex:none;padding:3px;box-sizing:border-box;border-radius:50%;background:var(--tour-success);fill:none;stroke:var(--tour-paper);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.cv-tour-notyet{margin:6px 0 0;font-size:12px;line-height:16px;color:var(--tour-warning)}
.cv-tour-acts{display:flex;align-items:center;gap:12px;margin-top:12px}
.cv-tour-legend{display:grid;gap:3px;margin-top:8px;font-size:12px;line-height:16px;color:var(--tour-secondary)}
.cv-tour-legend-row{display:flex;align-items:center;gap:8px}
.cv-tour-swatch{display:block;width:18px;height:0;border-top:2px solid var(--tour-dep);flex:none}
.cv-tour-swatch.is-tight{border-top-color:var(--tour-dep-tight)}.cv-tour-swatch.is-red{border-top-color:var(--tour-dep-warn)}
.cv-tour-preview{display:flex;gap:6px;margin:12px 0 2px}
.cv-tour-preview i{width:6px;height:6px;border-radius:3px;background:var(--tour-tertiary)}.cv-tour-preview i.is-cur{width:16px;background:var(--tour-accent)}
.cv-tour-endmark{display:flex;margin:6px 0 0}.cv-tour-endmark img{width:40px;height:40px}
/* Fuß: links „Tour beenden“ (Textknopf), rechts Zurück und Weiter (Standard). */
.cv-tour-foot{display:flex;align-items:center;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--tour-row-line)}
.cv-tour-panel.is-invite .cv-tour-foot{border-top:0;padding-top:0}
.cv-tour-grow{flex:1}
.cv-tour-btn{height:30px;padding:0 14px;border-radius:7px;border:1px solid var(--tour-line);background:var(--tour-paper);color:var(--tour-ink);font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;transition:background var(--cm-control-hover,100ms) var(--cm-curve-fade,ease)}
.cv-tour-btn:hover{background:var(--tour-hover);border-color:var(--tour-line)}.cv-tour-btn:active{background:var(--tour-pressed)}
.cv-tour-btn.is-primary{border-color:transparent;background:var(--tour-primary-fill);color:var(--tour-primary-ink)}
.cv-tour-btn.is-primary:hover{background:var(--tour-primary-hover);border-color:transparent}.cv-tour-btn.is-primary:active{background:var(--tour-primary-pressed)}
.cv-tour-btn.is-quiet{border-color:transparent;background:transparent;color:var(--tour-link);padding:0 8px}
.cv-tour-btn.is-quiet:hover{background:var(--tour-hover);border-color:transparent}
.cv-tour-btn.is-end{border-color:transparent;background:transparent;color:var(--tour-secondary);padding:0 2px}
.cv-tour-btn.is-end:hover{background:transparent;border-color:transparent;color:var(--tour-ink)}
.cv-tour-btn.is-link{height:auto;border-color:transparent;background:transparent;color:var(--tour-link);padding:0;font-size:12px}
.cv-tour-btn.is-link:hover{background:transparent;border-color:transparent;text-decoration:underline}

/* Pille: „Später fortsetzen“ — Tour · n von 8 · Fortsetzen. */
.cv-tour-pill,.cv-tour-pill:hover{position:fixed;right:16px;bottom:66px;display:flex;align-items:center;gap:10px;height:36px;padding:0 6px 0 14px;border-radius:18px;border:1px solid var(--tour-line);background:var(--tour-paper);color:var(--tour-ink);box-shadow:var(--tour-pill-shadow);font-size:13px;font-weight:500;cursor:pointer;pointer-events:auto;white-space:nowrap;
 opacity:0;transform:translateY(6px);transition:opacity var(--cm-fade-quick,200ms) var(--cm-curve-fade,ease),transform var(--cm-fade-quick,200ms) var(--cm-curve-movement,ease)}
.cv-tour-pill.is-on{opacity:1;transform:none}.cv-tour-pill[hidden]{display:none}
.cv-tour-pill-dots{display:flex;gap:3px}.cv-tour-pill-dots i{width:6px;height:6px;border-radius:50%;background:var(--tour-tertiary);opacity:.5}.cv-tour-pill-dots i.is-done{background:var(--tour-accent);opacity:1}
.cv-tour-pill-resume{height:26px;line-height:26px;padding:0 10px;border-radius:13px;background:var(--tour-primary-fill);color:var(--tour-primary-ink);font-size:12px}
.cv-tour-pill:hover .cv-tour-pill-resume{background:var(--tour-primary-hover)}

/* TOUR-3 (G28) · Ebenenordnung (eine für alles): Plan < Tour-Rahmen < Tour-Karte, Pille, Hilfemenü, Hinweis (.cv-tour, 9;
   Rahmen zuerst im DOM) < Blatt (10) < Hinweis/Popover/Menü der Hülle (≥ 1200) < Vorführzeiger (ganz oben, ohne Treffer).
   Menüs, Fächer und Popover des Plans liegen im Rahmen #project-canvas und damit unter dieser Ebene: solange eines offen ist,
   tritt der Rahmen zurück (tour.js `overlayOpen`, `CadvanTourEngine.ringRests`). */
/* Rahmen: 2 pt Akzent + weicher Hof, atmet nur in Ruhe. Er gleitet NIE mit: kein Übergang für Lage und Größe, nur die
   Deckkraft (aus `Layout.edgesOut`, ein `Layout.edgesIn`, beide als --ring-fade gesetzt). */
.cv-tour-ring{position:fixed;left:0;top:0;width:var(--w,0);height:var(--h,0);transform:translate(var(--x,0),var(--y,0));border-radius:var(--cv-r-bar);opacity:0;
 box-shadow:0 0 0 2px var(--tour-ring),0 0 0 6px var(--tour-halo);transition:opacity var(--ring-fade,120ms) var(--cm-curve-fade,ease)}
.cv-tour-ring.is-on{opacity:1;animation:cvTourBreathe 2.4s var(--cm-curve-fade,ease) 300ms infinite alternate}
@keyframes cvTourBreathe{from{box-shadow:0 0 0 2px var(--tour-ring),0 0 0 6px var(--tour-halo)}to{box-shadow:0 0 0 2px var(--tour-ring),0 0 0 9px var(--tour-halo)}}
@media(prefers-contrast:more){.cv-tour-ring,.cv-tour-ring.is-on{animation:none;box-shadow:0 0 0 2px var(--tour-accent)}}

/* Zeiger der Vorführung (über allem, nimmt keine Treffer an) mit Etikett bei Rechtsklick, Doppelklick, Ziehen, ↩, esc. */
.cv-tour-ptr{position:fixed;left:0;top:0;z-index:2147483001;pointer-events:none;transform:translate(var(--px,0),var(--py,0));opacity:0;transition:opacity var(--cm-fade-quick,200ms) var(--cm-curve-fade,ease)}
.cv-tour-ptr.is-on{opacity:1}
.cv-tour-ptr-arrow{display:block;width:22px;height:22px;overflow:visible;filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.4))}
/* FIX-16A (G13): der Mac-Mauszeiger — schwarzer Pfeil mit weißem Rand, wie das System ihn zeichnet (App = Browser). */
.cv-tour-ptr-arrow path{fill:#000000;stroke:#ffffff;stroke-width:1.4;stroke-linejoin:round}
.cv-tour-ptr-tag{position:absolute;left:20px;top:22px;padding:2px 7px;border-radius:99px;background:#20242c;color:#ffffff;font:600 11px/14px Commissioner,-apple-system,BlinkMacSystemFont,sans-serif;white-space:nowrap;opacity:0;transition:opacity 150ms var(--cm-curve-fade,ease)}
.cv-tour-ptr-tag.is-on{opacity:1}
.cv-tour-ripple{position:fixed;left:0;top:0;z-index:2147483000;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;border:2px solid var(--tour-click);pointer-events:none;transform:translate(var(--px,0),var(--py,0));animation:cvTourRipple 420ms ease-out both}
.cv-tour-ripple.is-right{border-color:var(--tour-right-click)}
@keyframes cvTourRipple{from{opacity:.9;scale:.4}to{opacity:0;scale:1.3}}

/* Hilfemenü „?“ und Hinweise. */
.cv-tour-menu{position:fixed;z-index:41;left:0;top:0;transform:translate(var(--x,0),var(--y,0));min-width:200px;padding:6px;border-radius:var(--cv-r-bar);border:1px solid var(--tour-line);background:var(--tour-paper);box-shadow:var(--tour-pill-shadow);pointer-events:auto;opacity:0;transition:opacity var(--cm-popover-enter,100ms) var(--cm-curve-fade,ease)}
.cv-tour-menu.is-on{opacity:1}.cv-tour-menu[hidden]{display:none}
.cv-tour-menu-item{display:block;width:100%;height:30px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:var(--tour-ink);text-align:left;font-size:13px;cursor:pointer}
/* KEYS-1 (REGELWERK § 2.27): ein Kurzbefehl steht im Menüeintrag rechtsbündig wie in Mac-Menüs. */
.cv-tour-menu-item.has-keys{display:flex;align-items:center}
.cv-menu-keys{margin-left:auto;padding-left:16px;color:var(--tour-secondary);font-size:12px}
.cv-tour-menu-item:hover,.cv-tour-menu-item:focus-visible{background:var(--tour-hover);border-color:transparent}
/* R44: Trenner zwischen den Gruppen des Hilfe-Menüs, wie im Kontomenü. */
.cv-tour-menu-sep{height:1px;margin:4px;background:var(--tour-line)}
.cv-tour-toast{position:fixed;z-index:41;left:50%;bottom:66px;max-width:min(560px,calc(100vw - 32px));padding:9px 14px;border-radius:var(--cv-r-bar);border:1px solid var(--tour-line);background:var(--tour-paper);color:var(--tour-ink);box-shadow:var(--tour-pill-shadow);font-size:13px;text-align:center;opacity:0;transform:translate(-50%,8px);transition:opacity var(--cm-fade-quick,200ms) var(--cm-curve-fade,ease),transform var(--cm-fade-quick,200ms) var(--cm-curve-movement,ease)}
.cv-tour-toast.is-on{opacity:1;transform:translate(-50%,0)}.cv-tour-toast[hidden]{display:none}
.cv-tour-live{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@keyframes cvTourIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* Bewegung reduzieren: Fahrten werden Blenden (≤ Fade.quick), der Rahmen atmet nicht, der Zeiger springt. */
@media(prefers-reduced-motion:reduce){
 .cv-tour-panel,.cv-tour-pill,.cv-tour-toast{transform:none!important;transition:opacity var(--cm-fade-quick,200ms) var(--cm-curve-fade,ease)!important}
 .cv-tour-toast{transform:translate(-50%,0)!important}
 .cv-tour-ring.is-on{animation:none}
 .cv-tour-ok{animation-duration:1ms}.cv-tour-ripple{animation-duration:1ms}.cv-tour-dot{transition:none}
}
