/* DP84: a passive spotlight leaves the real target visible and blocks clicks. */
#app-tour-overlay { padding:0; background:transparent; backdrop-filter:none; overflow:hidden; }
#app-tour-overlay.app-tour-offer { background:rgba(0,20,58,.65); }
.app-tour-highlight { position:fixed; pointer-events:none; left:var(--tour-target-left); top:var(--tour-target-top);
  width:var(--tour-target-width); height:var(--tour-target-height); box-sizing:border-box;
  border:2px solid #fff; outline:2px solid var(--rice-blue-bright); border-radius:var(--radius-md);
  box-shadow:0 0 0 9999px rgba(0,20,58,.65); }
.app-tour-offer .app-tour-highlight { display:none; }
#app-tour-panel { position:fixed; left:var(--tour-left,12px); top:var(--tour-top,12px);
  width:var(--tour-width,320px); max-height:var(--tour-max-height,calc(100dvh - 24px));
  box-sizing:border-box; overflow:auto; overscroll-behavior:contain; padding:16px;
  border:1px solid var(--border-mid); border-top:3px solid var(--rice-blue);
  border-radius:var(--radius-lg); background:var(--bg-primary); color:var(--text-primary); box-shadow:var(--shadow-lg); }
#app-tour-count { color:var(--text-secondary); font-size:11px; margin:0 0 6px; }
#app-tour-title { font-size:16px; line-height:1.35; margin:0; border-radius:3px; }
#app-tour-copy { font-size:13px; line-height:1.5; margin:8px 0 14px; overflow-wrap:anywhere; }
#app-tour-visual[hidden] { display:none; }
.app-tour-demo { border:1px solid var(--border-mid); border-radius:var(--radius-md); background:var(--bg-secondary); padding:10px; margin:0 0 14px; font-size:12px; line-height:1.35; }
.app-tour-demo-kicker { display:block; color:var(--text-secondary); font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; margin-bottom:7px; }
.app-tour-demo-flow { display:flex; align-items:center; justify-content:space-between; gap:6px; }
.app-tour-demo-pill,.app-tour-demo-term { display:flex; align-items:center; min-width:0; min-height:35px; flex:1; padding:5px 7px; box-sizing:border-box; border:1px solid var(--border-mid); border-radius:var(--radius-sm); background:var(--bg-primary); color:var(--text-primary); font-weight:600; }
.app-tour-demo-term { border-color:var(--rice-blue); background:var(--accent-bg); }
.app-tour-demo-arrow { flex:none; color:var(--rice-blue); font-size:19px; font-weight:700; }
.app-tour-placement-source { border:1px solid var(--border-mid); border-radius:var(--radius-sm); background:var(--bg-primary); padding:5px; }
.app-tour-placement-source > strong { display:block; margin:0 0 3px; color:var(--rice-blue); font-size:11px; }
.app-tour-placement-source .plan-browser-course { display:flex; align-items:center; gap:4px; min-height:32px; padding:3px; border:1px solid var(--border-mid); border-radius:var(--radius-sm); opacity:.65; }
.app-tour-placement-source .req-course-main { font-size:11px; }
.app-tour-placement-source .req-course-code-line { display:flex; align-items:center; gap:5px; }
.app-tour-placement-source .plan-drag-handle { width:18px; min-height:18px; }
.app-tour-placement-motion { color:var(--rice-blue); text-align:center; font-size:11px; font-weight:700; padding:3px 0; }
.app-tour-placement-card { overflow:visible; box-shadow:none; }
.app-tour-placement-card .sem-plan-header { min-height:0; padding:4px 6px; }
.app-tour-placement-card .sem-plan-title { font-size:11px; cursor:default; }
.app-tour-placement-card .sem-plan-title::after { display:none; }
.app-tour-placement-card .sem-plan-title-chev { font-size:14px; }
.app-tour-placement-card .sem-plan-meta { font-size:10px; }
.app-tour-placement-card .sem-plan-body { display:grid; gap:5px; padding:6px; }
.app-tour-placement-existing { color:var(--text-secondary); font-size:10px; }
.app-tour-placement-ghost { position:relative; display:flex; align-items:center; flex-wrap:wrap; gap:3px 5px; padding:5px; border:1px solid var(--rice-blue); border-radius:var(--radius-sm); background:var(--bg-primary); color:var(--text-primary); box-shadow:var(--shadow-md); transform:translate(3px,-2px) rotate(-1deg); font-size:11px; }
.app-tour-placement-ghost .plan-drag-handle { width:16px; min-height:16px; }
.app-tour-placement-ghost strong { color:var(--rice-blue); font-family:var(--font-mono); font-size:10px; }
.app-tour-placement-ghost span:last-child { min-width:0; }
.app-tour-placement-cue { color:var(--rice-blue); font-size:10px; font-weight:700; }
.app-tour-demo-assume { margin:0 0 7px; color:var(--text-secondary); font-size:11px; }
.app-tour-demo-scene { display:grid; gap:5px; }
.app-tour-demo-scene > strong { color:var(--rice-blue); font-size:11px; }
.app-tour-demo-card { box-shadow:none; border-radius:var(--radius-sm); }
.app-tour-demo-card .sem-plan-header { min-height:0; padding:4px 6px; }
.app-tour-demo-card .sem-plan-title { font-size:11px; cursor:default; }
.app-tour-demo-card .sem-plan-title::after { display:none; }
.app-tour-demo-card .sem-plan-title-chev { font-size:14px; }
.app-tour-demo-card .sem-plan-meta { font-size:10px; }
.app-tour-demo-card .sem-plan-body { padding:2px 5px; }
.app-tour-demo-card .planned-course-row { min-height:0; padding:2px 0; gap:2px 4px; font-size:11px; }
.app-tour-demo-card .plan-drag-handle { width:17px; min-height:17px; font-size:12px; }
.app-tour-demo-card .planned-course-code { min-width:50px; font-size:10px; }
.app-tour-demo-card .planned-course-name { font-size:11px; }
.app-tour-demo-card .planned-course-cr { font-size:10px; }
.app-tour-demo-card .row-prereq-warn { flex-basis:100%; margin-left:21px; }
/* The real row's <details> warning, drawn without a focusable disclosure. */
.app-tour-demo-card .app-tour-demo-warn { font-weight:500; color:var(--warn-text); position:relative; max-width:100%; }
.app-tour-demo-card .app-tour-demo-warn > .row-prereq-need { min-height:18px; display:flex; align-items:center; gap:4px; font-size:10px; }
.app-tour-demo-card .app-tour-demo-warn > .row-prereq-need::after { content:'\25BE'; font-size:10px; }
.app-tour-demo-down { text-align:center; color:var(--rice-blue); font-weight:700; padding:5px; }
#app-tour-controls { position:sticky; bottom:-16px; display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap;
  padding:8px 0 0; background:var(--bg-primary); }
#app-tour-controls .btn { min-height:40px; padding:8px 12px; }
#app-tour-controls .btn:first-child { margin-right:auto; }
#app-tour-panel :focus-visible { outline:3px solid var(--rice-blue-bright); outline-offset:3px; }
/* DP-140: a fine pointer keeps the reorder handle at opacity 0 until hover; the
   handle the tour highlights is shown for that stop only. */
#multiyear-view .sem-plan-body .plan-order-handle.app-tour-revealed { opacity:1; transition:none; color:var(--h-ink-2); }
@media (prefers-reduced-motion:reduce) { #app-tour-overlay *, #app-tour-overlay { animation:none; transition:none; scroll-behavior:auto; } }
