/* Scene "migrate" — value-weighted redirect map plus a steady traffic line through cutover */
.mg-wrap { position: absolute; inset: 0; container-type: inline-size; }
.mg { position: relative; height: 100%; display: flex; flex-direction: column; padding: 14px 16px 12px; gap: 10px; }
.mg-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 11px; color: var(--muted); }
.mg-head i { font-style: normal; color: var(--accent); }
.mg-count { color: var(--dim); white-space: nowrap; }
.mg-count b { color: var(--mint); font-weight: 500; }
.mg-table { flex: 1; display: flex; flex-direction: column; gap: 4px; min-height: 0; overflow: hidden; }
.mg-row { display: grid; grid-template-columns: minmax(0, 1fr) 16px minmax(0, 1fr) 42px; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 7px; border: 1px solid var(--line); background: rgba(140, 165, 255, 0.04); font-size: 11px; opacity: 0.25; transform: translateX(-6px); transition: opacity 0.4s var(--ease), transform 0.5s var(--ease), border-color 0.4s, background 0.4s; }
.mg-row.is-on { opacity: 1; transform: none; }
.mg-row.is-bad { border-color: rgba(255, 111, 134, 0.55); background: rgba(255, 111, 134, 0.07); }
.mg-row.is-fix { animation: mg-fix 0.25s; }
@keyframes mg-fix { 50% { transform: scale(1.02); } }
.mg-old { color: var(--dim); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mg-arrow { color: var(--accent); text-align: center; }
.mg-new { color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mg-row.is-bad .mg-new { color: var(--rose); }
.mg-code { justify-self: end; min-width: 38px; justify-content: center; }
.mg-chart { position: relative; flex: none; height: 76px; border-radius: 8px; border: 1px solid var(--line); background: rgba(5, 10, 28, 0.45); overflow: hidden; }
.mg-draw { position: absolute; inset: 16px 0 4px; clip-path: inset(0 100% 0 0); }
.mg-chart.is-drawn .mg-draw { clip-path: inset(0 0 0 0); transition: clip-path 1.8s var(--ease-in-out); }
.mg-draw svg { width: 100%; height: 100%; }
.mg-line { fill: none; stroke: var(--mint); stroke-width: 2; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 4px rgba(87, 242, 176, 0.6)); }
.mg-area { fill: url(#mgFill); }
.mg-cutline { position: absolute; left: 50%; top: 0; bottom: 0; border-left: 1px dashed var(--amber); opacity: 0.8; }
.mg-cut-label { position: absolute; left: 50%; top: 4px; transform: translateX(4px); font-size: 9.5px; color: var(--amber); letter-spacing: 0.06em; }
.mg-chart-label { position: absolute; left: 10px; top: 4px; font-size: 9.5px; color: var(--dim); letter-spacing: 0.06em; }
@container (max-width: 440px) {
  .mg-row { grid-template-columns: minmax(0, 1fr) 42px; grid-template-areas: "old code" "new code"; row-gap: 2px; }
  .mg-old { grid-area: old; }
  .mg-new { grid-area: new; }
  .mg-new::before { content: "→ "; color: var(--accent); }
  .mg-arrow { display: none; }
  .mg-code { grid-area: code; }
  .mg-row:nth-child(n + 4) { display: none; }
  .mg-cut-label { top: auto; bottom: 4px; }
}
